diff --git a/kde-base/kwave/additional-files/icons.zip b/kde-base/kwave/additional-files/icons.zip new file mode 100644 index 000000000..f0201383a Binary files /dev/null and b/kde-base/kwave/additional-files/icons.zip differ diff --git a/kde-base/kwave/additional-files/kwave.rdef.in b/kde-base/kwave/additional-files/kwave.rdef.in new file mode 100644 index 000000000..0c3a9b55e --- /dev/null +++ b/kde-base/kwave/additional-files/kwave.rdef.in @@ -0,0 +1,30 @@ + +resource app_flags B_MULTIPLE_LAUNCH; + +resource app_version { + major = @MAJOR@, + middle = @MIDDLE@, + minor = @MINOR@, + + variety = B_APPV_FINAL, + internal = 0, + + short_info = "Kwave", + long_info = "@LONG_INFO@" +}; + +resource app_signature "@APP_SIGNATURE@"; + +resource file_types message { + "types" = "audio" +}; + +resource vector_icon { + $"6E636966030501020006033C1F1A33E78BB7ACBF3FFE4F48BB3EBD7B6C0078D9" + $"05818CFF05FF7ADD05040187020408AEBA29382D392CBC9C2EBD4F2F42343537" + $"433A3E3D45BE01C163BF1AC21546480408AEBA23322C342BBA9E2DBB512B4036" + $"33343F3C3A3E45BE67C163BF80C2154749030A0201011240FD83000000000000" + $"3EAE1C43318D49EDB901178420040A0001001241C7AB0000000000004204C3C7" + $"265AC92EBA01178420040A0101001241C7AB0000000000004204C3C7265AC92E" + $"BA0117811004" +}; diff --git a/kde-base/kwave/kwave-19.03.80.recipe b/kde-base/kwave/kwave-19.03.80.recipe new file mode 100644 index 000000000..c6d03cec5 --- /dev/null +++ b/kde-base/kwave/kwave-19.03.80.recipe @@ -0,0 +1,195 @@ +SUMMARY="A sound editor for KDE" +DESCRIPTION="Kwave is a sound editor built on KDE Frameworks 5 + +Features: + +* With Kwave you can record, play back, import and edit many sorts of audio files \ +including multi channel files +* Kwave includes some plugins to transform audio files in several ways and presents \ +a graphical view with a complete zoom and scroll capability" +HOMEPAGE="http://kwave.sourceforge.net/" +COPYRIGHT="2010-2019 KDE Organisation" +LICENSE="GNU LGPL v2" +REVISION="1" +SOURCE_URI="https://github.com/KDE/kwave/archive/v$portVersion.tar.gz" +CHECKSUM_SHA256="89120400d8ca8d27b8649ab0765ed2d9d770ec6449baa73f63794f371dd64fbc" +PATCHES="kwave-$portVersion.patchset" +ADDITIONAL_FILES=" + kwave.rdef.in + icons.zip + " + +ARCHITECTURES="x86_64" +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + kwave$secondaryArchSuffix = $portVersion + app:Kwave$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libaudiofile$secondaryArchSuffix + lib:libfftw3$secondaryArchSuffix + lib:libFLAC$secondaryArchSuffix + lib:libiconv$secondaryArchSuffix + lib:libid3$secondaryArchSuffix + lib:libintl$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix + lib:libKF5Activities$secondaryArchSuffix + lib:libKF5Archive$secondaryArchSuffix + lib:libKF5Auth$secondaryArchSuffix + lib:libKF5Bookmarks$secondaryArchSuffix + lib:libKF5Codecs$secondaryArchSuffix + lib:libKF5Completion$secondaryArchSuffix + lib:libKF5ConfigCore$secondaryArchSuffix + lib:libKF5ConfigGui$secondaryArchSuffix + lib:libKF5ConfigWidgets$secondaryArchSuffix + lib:libKF5CoreAddons$secondaryArchSuffix + lib:libKF5Crash$secondaryArchSuffix + lib:libKF5DBusAddons$secondaryArchSuffix + lib:libKF5DocTools$secondaryArchSuffix + lib:libKF5GuiAddons$secondaryArchSuffix + lib:libKF5I18n$secondaryArchSuffix + lib:libKF5IconThemes$secondaryArchSuffix + lib:libKF5ItemModels$secondaryArchSuffix + lib:libKF5ItemViews$secondaryArchSuffix + lib:libKF5JobWidgets$secondaryArchSuffix + lib:libKF5KIOCore$secondaryArchSuffix + lib:libKF5KIOFileWidgets$secondaryArchSuffix + lib:libKF5KIOWidgets$secondaryArchSuffix + lib:libKF5Notifications$secondaryArchSuffix + lib:libKF5Parts$secondaryArchSuffix + lib:libKF5Service$secondaryArchSuffix + lib:libKF5Solid$secondaryArchSuffix + lib:libKF5SonnetUi$secondaryArchSuffix + lib:libKF5TextWidgets$secondaryArchSuffix + lib:libKF5UnitConversion$secondaryArchSuffix + lib:libKF5WidgetsAddons$secondaryArchSuffix + lib:libKF5WindowSystem$secondaryArchSuffix + lib:libKF5XmlGui$secondaryArchSuffix + lib:libmad$secondaryArchSuffix + lib:libogg$secondaryArchSuffix + lib:libopus$secondaryArchSuffix + lib:libpng$secondaryArchSuffix + lib:libQt5Core$secondaryArchSuffix + lib:libQt5DBus$secondaryArchSuffix + lib:libQt5Gui$secondaryArchSuffix + lib:libQt5Network$secondaryArchSuffix + lib:libQt5PrintSupport$secondaryArchSuffix + lib:libQt5Widgets$secondaryArchSuffix + lib:libQt5Xml$secondaryArchSuffix + lib:libsamplerate$secondaryArchSuffix + lib:libvorbis$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + extra_cmake_modules$secondaryArchSuffix >= 5.55 + devel:libaudiofile$secondaryArchSuffix + devel:libfftw3$secondaryArchSuffix + devel:libFLAC$secondaryArchSuffix + devel:libiconv$secondaryArchSuffix + devel:libid3$secondaryArchSuffix + devel:libintl$secondaryArchSuffix + devel:libjpeg$secondaryArchSuffix + devel:libKF5Activities$secondaryArchSuffix + devel:libKF5Archive$secondaryArchSuffix + devel:libKF5Auth$secondaryArchSuffix + devel:libKF5Bookmarks$secondaryArchSuffix + devel:libKF5Codecs$secondaryArchSuffix + devel:libKF5Completion$secondaryArchSuffix + devel:libKF5ConfigCore$secondaryArchSuffix + devel:libKF5ConfigGui$secondaryArchSuffix + devel:libKF5ConfigWidgets$secondaryArchSuffix + devel:libKF5CoreAddons$secondaryArchSuffix + devel:libKF5Crash$secondaryArchSuffix + devel:libKF5DBusAddons$secondaryArchSuffix + devel:libKF5DocTools$secondaryArchSuffix + devel:libKF5GuiAddons$secondaryArchSuffix + devel:libKF5I18n$secondaryArchSuffix + devel:libKF5IconThemes$secondaryArchSuffix + devel:libKF5ItemModels$secondaryArchSuffix + devel:libKF5ItemViews$secondaryArchSuffix + devel:libKF5JobWidgets$secondaryArchSuffix + devel:libKF5KIOCore$secondaryArchSuffix + devel:libKF5KIOFileWidgets$secondaryArchSuffix + devel:libKF5KIOWidgets$secondaryArchSuffix + devel:libKF5Notifications$secondaryArchSuffix + devel:libKF5Parts$secondaryArchSuffix + devel:libKF5Service$secondaryArchSuffix + devel:libKF5Solid$secondaryArchSuffix + devel:libKF5SonnetUi$secondaryArchSuffix + devel:libKF5TextWidgets$secondaryArchSuffix + devel:libKF5UnitConversion$secondaryArchSuffix + devel:libKF5WidgetsAddons$secondaryArchSuffix + devel:libKF5WindowSystem$secondaryArchSuffix + devel:libKF5XmlGui$secondaryArchSuffix + devel:libmad$secondaryArchSuffix + devel:libogg$secondaryArchSuffix + devel:libopus$secondaryArchSuffix + devel:libpng$secondaryArchSuffix + devel:libQt5Core$secondaryArchSuffix >= 5.12 + devel:libsamplerate$secondaryArchSuffix + devel:libvorbis$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:cmake + cmd:g++$secondaryArchSuffix + cmd:make + cmd:python2 + cmd:find + cmd:pkg_config$secondaryArchSuffix + cmd:qdbuscpp2xml$secondaryArchSuffix >= 5 + cmd:unzip + " + +BUILD() +{ + mkdir -p build + cd build + + cmake .. \ + -DCMAKE_INSTALL_PREFIX=$appsDir/Kwave \ + -DKDE_INSTALL_DATAROOTDIR=$dataDir \ + -DKDE_INSTALL_PLUGINDIR=$addOnsDir/Qt5 \ + -DECM_DIR=/system/data/cmake/Modules/ECM/cmake \ + -DWITH_OSS=OFF \ + -DWITH_DOC=OFF \ + -DWITH_OPTIMIZED_MEMCPY=OFF \ + -DWITH_PULSEAUDIO=OFF \ + -DWITH_ALSA=OFF \ + -DWITH_MP3=ON + + make $jobArgs +} + +INSTALL() +{ + cd build + make install + mv $appsDir/Kwave/bin/kwave $appsDir/Kwave/Kwave + rm -rf $appsDir/Kwave/bin + mkdir -p $dataDir/icons/haiku/actions/22 + rm -rf $dataDir/icons/hicolor + rm -rf $dataDir/applications + + unzip -o $sourceDir/../../additional-files/icons.zip -d $dataDir/icons/haiku/actions/22 + + local APP_SIGNATURE="application/x-vnd.qt5-kwave" + local MAJOR="`echo "$portVersion" | cut -d. -f1`" + local MIDDLE="`echo "$portVersion" | cut -d. -f2`" + local MINOR="`echo "$portVersion" | cut -d. -f3`" + local LONG_INFO="$SUMMARY" + sed \ + -e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \ + -e "s|@MAJOR@|$MAJOR|" \ + -e "s|@MIDDLE@|$MIDDLE|" \ + -e "s|@MINOR@|$MINOR|" \ + -e "s|@LONG_INFO@|$LONG_INFO|" \ + $portDir/additional-files/kwave.rdef.in > kwave.rdef + + addResourcesToBinaries kwave.rdef $appsDir/Kwave/Kwave + addAppDeskbarSymlink $appsDir/Kwave/Kwave +} diff --git a/kde-base/kwave/patches/kwave-19.03.80.patchset b/kde-base/kwave/patches/kwave-19.03.80.patchset new file mode 100644 index 000000000..749d774bf --- /dev/null +++ b/kde-base/kwave/patches/kwave-19.03.80.patchset @@ -0,0 +1,146 @@ +From 33e859041b22705f6dcf91e37172eaf96f049236 Mon Sep 17 00:00:00 2001 +From: Gerasim Troeglazov <3dEyes@gmail.com> +Date: Sun, 24 Mar 2019 21:46:12 +1000 +Subject: Fix build for Haiku + + +diff --git a/kwave/CMakeLists.txt b/kwave/CMakeLists.txt +index 6e2fef8..cf0437e 100644 +--- a/kwave/CMakeLists.txt ++++ b/kwave/CMakeLists.txt +@@ -95,7 +95,6 @@ TARGET_LINK_LIBRARIES(kwave_core + KF5::Completion + KF5::ConfigCore + KF5::Crash +- KF5::DBusAddons + KF5::I18n + KF5::IconThemes + KF5::KIOFileWidgets +diff --git a/kwave/TopWidget.cpp b/kwave/TopWidget.cpp +index fb36d63..421f7c9 100644 +--- a/kwave/TopWidget.cpp ++++ b/kwave/TopWidget.cpp +@@ -1044,6 +1044,7 @@ int Kwave::TopWidget::loadFile(const QUrl &url) + } else { + qWarning("TopWidget::loadFile() failed: result=%d", res); + QString reason; ++#ifndef Q_OS_HAIKU + switch (res) { + case -ENOMEM: + reason = i18n("Out of memory"); +@@ -1060,7 +1061,7 @@ int Kwave::TopWidget::loadFile(const QUrl &url) + default: + reason = _(""); + } +- ++#endif + // show an error message box if the reason was known + if (reason.length()) { + Kwave::MessageBox::error(this, reason); +diff --git a/kwave/main.cpp b/kwave/main.cpp +index 84d7da0..85c64d5 100644 +--- a/kwave/main.cpp ++++ b/kwave/main.cpp +@@ -26,7 +26,9 @@ + #include + #include + #include ++#ifndef Q_OS_HAIKU + #include ++#endif + #include + #include + +@@ -231,10 +233,10 @@ int main(int argc, char **argv) + cmdline.process(app); + about.setupCommandLine(&cmdline); + about.processCommandLine(&cmdline); +- ++#ifndef Q_OS_HAIKU + /* let Kwave be a "unique" application, only one instance */ + KDBusService service(KDBusService::Unique); +- ++#endif + /* check for an optimized version of memcpy() */ + #ifdef WITH_OPTIMIZED_MEMCPY + probe_fast_memcpy(); +@@ -250,14 +252,14 @@ int main(int argc, char **argv) + + // now as the splash screen is in place, we can start a new instance + retval = app.newInstance(app.arguments(), QString()); +- ++#ifndef Q_OS_HAIKU + QObject::connect( + &service, + SIGNAL(activateRequested(QStringList,QString)), + &app, + SLOT(newInstance(QStringList,QString)) + ); +- ++#endif + if (retval != ECANCELED) + retval = app.exec(); + +-- +2.19.1 + + +From 854e4c138c12a2e9a88117a86fde1afc01358fdc Mon Sep 17 00:00:00 2001 +From: Gerasim Troeglazov <3dEyes@gmail.com> +Date: Sun, 31 Mar 2019 14:37:52 +1000 +Subject: Ugly fix for crash on exit + + +diff --git a/kwave/main.cpp b/kwave/main.cpp +index 85c64d5..4635cf0 100644 +--- a/kwave/main.cpp ++++ b/kwave/main.cpp +@@ -37,6 +37,12 @@ + #include "App.h" + #include "Splash.h" + ++#ifdef Q_OS_HAIKU ++#include ++#include ++#include ++#endif ++ + /** + * add data concerning the developers and + * contributers to the about data +@@ -266,6 +272,9 @@ int main(int argc, char **argv) + splash.done(); + splash.close(); + ++#ifdef Q_OS_HAIKU ++ kill(::getpid(), SIGKILL); ++#endif + return retval; + } + +-- +2.19.1 + + +From 9cebbcafbc1e367919091da6e337cd66921670e1 Mon Sep 17 00:00:00 2001 +From: Gerasim Troeglazov <3dEyes@gmail.com> +Date: Sun, 31 Mar 2019 15:27:01 +1000 +Subject: Increase sound buffer + + +diff --git a/libkwave/PlayBackParam.h b/libkwave/PlayBackParam.h +index dc3c3ef..15e3603 100644 +--- a/libkwave/PlayBackParam.h ++++ b/libkwave/PlayBackParam.h +@@ -54,7 +54,7 @@ namespace Kwave + /** Default constructor */ + PlayBackParam() + :rate(44100), channels(2), bits_per_sample(16), +- device(), bufbase(10), ++ device(), bufbase(13), + method(Kwave::PLAYBACK_NONE) + { + } +-- +2.19.1 +