From 811143a409583e4b1cba3c7a0bbc29ff2eed23f9 Mon Sep 17 00:00:00 2001 From: Schrijvers Luc Date: Wed, 12 Jun 2024 07:44:53 +0200 Subject: [PATCH] kid3, new recipe (#10592) --- .../kid3/additional-files/kid3.rdef.in | 109 ++++++++++++ media-sound/kid3/kid3-3.9.5.recipe | 155 ++++++++++++++++++ media-sound/kid3/patches/kid3-3.9.5.patchset | 51 ++++++ 3 files changed, 315 insertions(+) create mode 100644 media-sound/kid3/additional-files/kid3.rdef.in create mode 100644 media-sound/kid3/kid3-3.9.5.recipe create mode 100644 media-sound/kid3/patches/kid3-3.9.5.patchset diff --git a/media-sound/kid3/additional-files/kid3.rdef.in b/media-sound/kid3/additional-files/kid3.rdef.in new file mode 100644 index 000000000..2be9dcd27 --- /dev/null +++ b/media-sound/kid3/additional-files/kid3.rdef.in @@ -0,0 +1,109 @@ +resource app_flags B_SINGLE_LAUNCH; + +resource app_version { + major = @MAJOR@, + middle = @MIDDLE@, + minor = @MINOR@, + + variety = B_APPV_FINAL, + internal = 0, + + short_info = "@APP_NAME@", + long_info = "@LONG_INFO@" +}; + +resource app_signature "@APP_SIGNATURE@"; + +resource vector_icon { + $"6E63696612039DA161034B6983040079030887A50500039DB8D2037590AE0400" + $"7504FF7603314E6C04007F05FF02001202323FFBB8776AB8247CB2971146A46C" + $"4A47670000B2FF000004004C04005403EEDE85053303CEA185210404BFB9B9B9" + $"ECB9B9B9ECC0B3BC8AC6CFB993C3C1B8CAC9DCBA5CC5D9BF98C48ABE06C728C1" + $"2AC712C140020BBCA9B4F4BCA9B4F4BF3DB51FC2ECBC03C1E3B802C41BC096BF" + $"DAC5A0C2BBC4E4BF17C5D2BD89C571BE4EC5BDBB16C43F28C1DBB8A3C30DB582" + $"C142B439BFB4B4A1C110B3D0BE57B49CBCA2B411BD9EB661BA6EB9E9B605B825" + $"B839BA62B58DBB91B50EBAF0B537BBEEB4F6BCA9B4F4BC4BB4EEBCA9B4F4BCA9" + $"B4F4BCA9B4F4BCA9B4F4020BBCA9B4F4BCA9B4F4BF3DB51FC2ECBC03C1E3B802" + $"C41BC096BFDAC5A0C2BBC4E4BF17C5D2BD89C571BE4EC5BDBB16C43F28C1DBB8" + $"A3C30DB582C142B439BFB4B4A1C110B3D0BE57B49CBCA2B411BD9EB661BA6EB9" + $"E9B605B825B839BA62B58DBB91B50EBAF0B537BBEEB4F6BCA9B4F4BC4BB4EEBC" + $"A9B4F4BCA9B4F4BCA9B4F4BCA9B4F40607FF1FBA01B620BA01B620BB20BB26BD" + $"5EC532BC3FC02CBAFCC40EB63AC1C7B89BC2EBB566C132B452BFB0B4B7C102B3" + $"ECBE5EB4B2BCB6B42ABDAAB677BA84BA01B620B83CB852BA01B620B6200607FF" + $"1FBA01B620BA01B620BB20BB26BD5EC532BC3FC02CBAFCC40EB63AC1C7B89BC2" + $"EBB566C132B452BFB0B4B7C102B3ECBE5EB4B2BCB6B42ABDAAB677BA84BA01B6" + $"20B83CB852BA01B620B6200208B8B5BEB0B8B5BEB0B973C18FBD09C501BB19C3" + $"F8BEF9C60BC218C3B7C0E6C58DC34AC1E1C2D2BC1BC391BEFBC214B93CBE7E27" + $"C06EB6D4BC8EB4C1B96FB714BAA1B53FB83EB8EAB8B5BEB0B7F7BBD1B8B5BEB0" + $"B8B5BEB0B8B5BEB0B8B5BEB00208B8B5BEB0B8B5BEB0B973C18FBD09C501BB19" + $"C3F8BEF9C60BC218C3B7C0E6C58DC34AC1E1C2D2BC1BC391BEFBC214B93CBE7E" + $"27C06EB6D4BC8EB4C1B96FB714BAA1B53FB83EB8EAB8B5BEB0B7F7BBD1B8B5BE" + $"B0B8B5BEB0B8B5BEB0B8B5BEB00208BA11BE4FBA11BE4FBAB8C0D7BD99C3F2BC" + $"11C2FDBF22C4E7C17FC2F3C09EC486C260C161C1DCBC53C284BEDAC135B9CBBE" + $"53B6B0BFDCB7A5BCCBB5BCBA6EB7AFBB4FB61DB98DB941BA11BE4FB969BBC8BA" + $"11BE4FBA11BE4FBA11BE4FBA11BE4F0208BA11BE4FBA11BE4FBAB8C0D7BD99C3" + $"F2BC11C2FDBF22C4E7C17FC2F3C09EC486C260C161C1DCBC53C284BEDAC135B9" + $"CBBE53B6B0BFDCB7A5BCCBB5BCBA6EB7AFBB4FB61DB98DB941BA11BE4FB969BB" + $"C8BA11BE4FBA11BE4FBA11BE4FBA11BE4F0208BA11BE4FBA11BE4FBAB8C0D7BD" + $"99C3F2BC11C2FDBF22C4E7C17FC2F3C09EC486C260C161C1DCBC53C284BEDAC1" + $"35B9CBBE53B6B0BFDCB7A5BCCBB5BCBA6EB7AFBB4FB61DB98DB941BA11BE4FB9" + $"69BBC8BA11BE4FBA11BE4FBA11BE4FBA11BE4F0208BA11BE4FBA11BE4FBAB8C0" + $"D7BD99C3F2BC11C2FDBF22C4E7C17FC2F3C09EC486C260C161C1DCBC53C284BE" + $"DAC135B9CBBE53B6B0BFDCB7A5BCCBB5BCBA6EB7AFBB4FB61DB98DB941BA11BE" + $"4FB969BBC8BA11BE4FBA11BE4FBA11BE4FBA11BE4F0607FE1FBDC4B67CBD16BB" + $"B2BD35B8D3BCF8BE91BDFBBFDFBDB5BF55BE42C068C0B4C3CEBEEEC228BF48C4" + $"FCB9F4BD06BB87C47BB95DB847BDC4B67CBB48B575BDC4B67CB67C0208BAA7BE" + $"23BAA7BE23BAE3BF0BBBEDC027BB5FBFD0BC7CC07EBD58BFCABD06C05BBDAABF" + $"3ABD7CBD6BBDB8BE52BD40BC83BC36BB67BCC4BBBEBBA7BB10BACB36BB1DBB33" + $"BA79BC54BAA7BE23BA6BBD3CBAA7BE23BAA7BE23BAA7BE23BAA7BE230208BAA7" + $"BE23BAA7BE23BAE3BF0BBBEDC027BB5FBFD0BC7CC07EBD58BFCABD06C05BBDAA" + $"BF3ABD7CBD6BBDB8BE52BD40BC83BC36BB67BCC4BBBEBBA7BB10BACB36BB1DBB" + $"33BA79BC54BAA7BE23BA6BBD3CBAA7BE23BAA7BE23BAA7BE23BAA7BE230208BA" + $"A7BE23BAA7BE23BAE3BF0BBBEDC027BB5FBFD0BC7CC07EBD58BFCABD06C05BBD" + $"AABF3ABD7CBD6BBDB8BE52BD40BC83BC36BB67BCC4BBBEBBA7BB10BACB36BB1D" + $"BB33BA79BC54BAA7BE23BA6BBD3CBAA7BE23BAA7BE23BAA7BE23BAA7BE230208" + $"BAA7BE23BAA7BE23BAE3BF0BBBEDC027BB5FBFD0BC7CC07EBD58BFCABD06C05B" + $"BDAABF3ABD7CBD6BBDB8BE52BD40BC83BC36BB67BCC4BBBEBBA7BB10BACB36BB" + $"1DBB33BA79BC54BAA7BE23BA6BBD3CBAA7BE23BAA7BE23BAA7BE23BAA7BE2302" + $"08B8B5BEB0B8B5BEB0B973C18FBD09C501BB19C3F8BEF9C60BC218C3B7C0E6C5" + $"8DC34AC1E1C2D2BC1BC391BEFBC214B93CBE7E27C06EB6D4BC8EB4C1B96FB714" + $"BAA1B53FB83EB8EAB8B5BEB0B7F7BBD1B8B5BEB0B8B5BEB0B8B5BEB0B8B5BEB0" + $"06047FBDE928BDE928C079B5D5C109C432C5B0BF31C49EBFE6BDE928C170B73C" + $"BDE9282806047FBCB9C01DBCB9C01DBE61BE9EBBA9BB77BCAFBB63BD79BD83BC" + $"B9C01DBBD1BF7CBCB9C01DC01D0606FF07B95AC0F1B95AC0F1BA0FC1F8BB7BC4" + $"04BAC5C2FEBBD7C48AB48BBFFFB591C20CB3FEBDF2B803BC73B803BC73B875BD" + $"F2B95AC0F1B8E7BF72B95AC0F1C0F106047FBD56C4CFBD56C4CFBAC6C52EBA10" + $"B650B56ABB87B6DFBAFFBD56C4CFB9E8C335BD56C4CFC4CF06047FBD8DC499BD" + $"8DC499BAFDC4F4BA6DB697B5C6BB98B6D8BAE3BD8DC499BA06C38DBD8DC499C4" + $"990606FF07C73EC008C73EC008C80FC008C8BBC182C8BBC0B0C8BBC254C73EC2" + $"FFC80FC2FFC66CC2FFC5C3C182C5C3C254C5C3C0B0C73EC008C66CC008C73EC0" + $"08C008020AC845BE64C845BE64C351BFBDB969C271BE5DC117B90E47B8FBC341" + $"B8DCC2E8B9D2C5A1BB80CA61BAA9C801BB9FCABABC5BCAD4BC00CAEDC150C97A" + $"CB3AC6C7C645C821CB95C6AECBA5C5F7CBC4C650CACFC397C923BED7C9F9C137" + $"C903BE7EC845BE64C8A0BE4BC845BE64C845BE64C845BE64C845BE640606FF07" + $"C73EC008C73EC008C80FC008C8BBC182C8BBC0B0C8BBC254C73EC2FFC80FC2FF" + $"C66CC2FFC5C3C182C5C3C254C5C3C0B0C73EC008C66CC008C73EC008C008020A" + $"C845BE64C845BE64C351BFBDB969C271BE5DC117B90E47B8FBC341B8DCC2E8B9" + $"D2C5A1BB80CA61BAA9C801BB9FCABABC5BCAD4BC00CAEDC150C97ACB3AC6C7C6" + $"45C821CB95C6AECBA5C5F7CBC4C650CACFC397C923BED7C9F9C137C903BE7EC8" + $"45BE64C8A0BE4BC845BE64C845BE64C845BE64C845BE6404020BC72DC146C72D" + $"C146CA7EBD2CC6B8BCE30208BF33C722BF33C722BF4BC778BEDDC84EBF2BC7EA" + $"BE8FC8B2BDB9C906BE20C8F8BD52C914BCEBC892BD04C8E8BCD3C83DBD41C767" + $"BCF3C7CABD8FC703BE65C6AEBDFEC6BCBECCC6A0BF33C722BF1AC6CCBF33C722" + $"BF33C722BF33C722BF33C7220208BF33C722BF33C722BF4BC778BEDDC84EBF2B" + $"C7EABE8FC8B2BDB9C906BE20C8F8BD52C914BCEBC892BD04C8E8BCD3C83DBD41" + $"C767BCF3C7CABD8FC703BE65C6AEBDFEC6BCBECCC6A0BF33C722BF1AC6CCBF33" + $"C722BF33C722BF33C722BF33C7220002BF36C72ABF36C72ABEB9C5BCBDBFC2DF" + $"BE3CC44EBDBFC2DF0605FF01BDA9C2BABDA9C2BABD91C2F4BDDCC39BBDCDC355" + $"BFF7C2A8C0FEC4F3C147C5E5BF21C1BCBDA9C2BA3BC27FBDA9C2BAC2BA0605FF" + $"01BDA9C2BABDA9C2BABD91C2F4BDDCC39BBDCDC355BFF7C2A8C0FEC4F3C147C5" + $"E5BF21C1BCBDA9C2BA3BC27FBDA9C2BAC2BA0002C22FC702C22FC702C431C66D" + $"C834C543C632C5D8C834C5431F0A0001001001178222040A010101000A020102" + $"1001178102040A030103000A0401041001178002040A050105000A0401061001" + $"178000040A060107000A0701081001178100040A060109000A04010A10011780" + $"00040A08010B000A09010C000A0A010D1001178100040A09010E000A04010F10" + $"01178000040A0701101001178100040A0B0111000A0B0112000A0C0113000A0D" + $"0114000A0E0115000A0F021617000A100218191001178102040A00011A100117" + $"8222040A10011B000A10011C1001178100040A10011D1001178122040A10011E" + $"000A10011F1001178002040A110120100117842204" +}; diff --git a/media-sound/kid3/kid3-3.9.5.recipe b/media-sound/kid3/kid3-3.9.5.recipe new file mode 100644 index 000000000..47f1d7330 --- /dev/null +++ b/media-sound/kid3/kid3-3.9.5.recipe @@ -0,0 +1,155 @@ +SUMMARY="Audio Tag Editor" +DESCRIPTION="With Kid3, an audio tag editor, you can edit tags in MP3, Ogg/Vorbis, DSF, FLAC, \ +Opus, MPC, APE, MP4/AAC, MP2, Speex, TrueAudio, WavPack, WMA, WAV, AIFF and tracker files. + +All frames in the ID3 tags of MP3 files can be edited, and it is possible to convert between \ +ID3v1.1, ID3v2.3 and ID3v2.4. Synchronized lyrics can be edited, imported and exported to LRC \ +Karaoke files. + +The tags of multiple files can be set together. It is possible to generate tags from file names \ +or the contents of other tag fields and to generate file names from tags and rename folders from \ +tags. Automatic case conversion and string replacement help to keep tags consistent. + +Album data can be imported from gnudb.org, MusicBrainz, Discogs, Amazon; automatic batch import \ +is available for multiple folders. It is also possible to export data and generate play lists." +HOMEPAGE="https://apps.kde.org/kid3/" +COPYRIGHT="2003-2024 Urs Fleisch" +LICENSE="GNU GPL v2" +REVISION="1" +SOURCE_URI="https://download.kde.org/stable/kid3/$portVersion/kid3-$portVersion.tar.xz" +CHECKSUM_SHA256="a424fedde35c176e3b44334422aad43848418772da020751d00d0874e5ce8145" +PATCHES="kid3-$portVersion.patchset" +ADDITIONAL_FILES="kid3.rdef.in" + +ARCHITECTURES="all !x86_gcc2" +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + kid3$secondaryArchSuffix = $portVersion + cmd:kid3$secondaryArchSuffix = $portVersion + cmd:kid3_cli$secondaryArchSuffix = $portVersion + cmd:kid3_qt$secondaryArchSuffix = $portVersion + lib:libkid3_core$secondaryArchSuffix = $portVersion + lib:libkid3_gui$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libGL$secondaryArchSuffix + lib:libopenal$secondaryArchSuffix + lib:libreadline$secondaryArchSuffix + # KF6 + lib:libKF6ColorScheme$secondaryArchSuffix + lib:libKF6ConfigCore$secondaryArchSuffix + lib:libKF6ConfigWidgets$secondaryArchSuffix + lib:libKF6CoreAddons$secondaryArchSuffix + lib:libKF6KIOCore$secondaryArchSuffix + lib:libKF6WidgetsAddons$secondaryArchSuffix + lib:libKF6XmlGui$secondaryArchSuffix + # Qt6 + lib:libQt6Core$secondaryArchSuffix + lib:libQt6Gui$secondaryArchSuffix + lib:libQt6Multimedia$secondaryArchSuffix + lib:libQt6Network$secondaryArchSuffix + lib:libQt6Widgets$secondaryArchSuffix + lib:libQt6Xml$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:libchromaprint$secondaryArchSuffix + devel:libFLAC$secondaryArchSuffix + devel:libgstreamer_1.0$secondaryArchSuffix + devel:libid3_3.8$secondaryArchSuffix + devel:libreadline$secondaryArchSuffix + devel:libtag$secondaryArchSuffix >= 2 + devel:libvorbisfile$secondaryArchSuffix + devel:libz$secondaryArchSuffix + # KF6 + extra_cmake_modules$secondaryArchSuffix + devel:libKF6Bookmarks$secondaryArchSuffix + devel:libKF6Codecs$secondaryArchSuffix + devel:libKF6ColorScheme$secondaryArchSuffix + devel:libKF6Completion$secondaryArchSuffix + devel:libKF6ConfigCore$secondaryArchSuffix + devel:libKF6ConfigWidgets$secondaryArchSuffix + devel:libKF6CoreAddons$secondaryArchSuffix + devel:libKF6DocTools$secondaryArchSuffix + devel:libKF6ItemViews$secondaryArchSuffix + devel:libKF6JobWidgets$secondaryArchSuffix + devel:libKF6KIOCore$secondaryArchSuffix + devel:libKF6Service$secondaryArchSuffix + devel:libKF6Solid$secondaryArchSuffix + devel:libKF6WidgetsAddons$secondaryArchSuffix + devel:libKF6WindowSystem$secondaryArchSuffix + devel:libKF6XmlGui$secondaryArchSuffix + # Qt6 + qt6_tools${secondaryArchSuffix}_devel + devel:libQt6Core$secondaryArchSuffix + devel:libQt6Multimedia$secondaryArchSuffix + devel:libQt6Qml$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + docbook_xsl_stylesheets >= 1.79.2 + cmd:cmake + cmd:g++$secondaryArchSuffix + cmd:make + cmd:msgfmt + cmd:msgmerge + cmd:pkg_config$secondaryArchSuffix + cmd:python3 + cmd:xsltproc + " + +PATCH() +{ + sed -e '/add_subdirectory(doc)/ s/^#*/#/' -i CMakeLists.txt +} + +BUILD() +{ + cmake -Bbuild -S. $cmakeDirArgs \ + -DCMAKE_BUILD_TYPE=Release \ + -DECM_DIR=/system/data/cmake/Modules/ECM/cmake \ + -DDOCBOOK_XSL_DIR=/system/data/xml/docbook/xsl-stylesheets-1.79.2 \ + -DWITH_APPS="CLI;Qt;KDE" \ + -DLIB_SUFFIX="$secondaryArchSuffix" \ + -DWITH_DBUS=OFF + make -C build $jobArgs +} + + +INSTALL() +{ + make -C build install + + # move libraries up (not found in the current directory when launched from Terminal) + mv $libDir/kid3/lib* $libDir + rm -rf $libDir/kid3 + + # cleanup + rm -rf $dataDir/{applications,metainfo} + + local MAJOR="`echo "$portVersion" | cut -d. -f1`" + local MIDDLE="`echo "$portVersion" | cut -d. -f2`" + local MINOR="`echo "$portVersion" | cut -d. -f3`" + local APP_NAME="Kid3" + local LONG_INFO="$SUMMARY" + local APP_SIGNATURE="application/x-vnd.kid3" + sed \ + -e "s|@MAJOR@|$MAJOR|" \ + -e "s|@MIDDLE@|$MIDDLE|" \ + -e "s|@MINOR@|$MINOR|" \ + -e "s|@LONG_INFO@|$LONG_INFO|" \ + -e "s|@APP_NAME@|$APP_NAME|" \ + -e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \ + $portDir/additional-files/kid3.rdef.in > kid3.rdef + + addResourcesToBinaries kid3.rdef $binDir/kid3-qt + addAppDeskbarSymlink $binDir/kid3-qt Kid3 +} + +TEST() +{ + # 1 test (fails) + ctest --test-dir build --output-on-failure +} diff --git a/media-sound/kid3/patches/kid3-3.9.5.patchset b/media-sound/kid3/patches/kid3-3.9.5.patchset new file mode 100644 index 000000000..430cec52f --- /dev/null +++ b/media-sound/kid3/patches/kid3-3.9.5.patchset @@ -0,0 +1,51 @@ +From 18de459335880bcf3cd5d4c212c94dcba7d04ff4 Mon Sep 17 00:00:00 2001 +From: Schrijvers Luc +Date: Wed, 22 May 2024 09:12:16 +0200 +Subject: Add Haiku specific paths + + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ddb7afc..c29405f 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -140,6 +140,14 @@ elseif(ANDROID) + set(WITH_PLUGINSDIR_DEFAULT ".") + set(QT_ANDROID_APP_VERSION ${KID3_VERSION}) + set(QT_ANDROID_APP_VERSION_CODE 29) ++elseif(HAIKU) ++ set(WITH_DATAROOTDIR_DEFAULT "data") ++ set(WITH_DOCDIR_DEFAULT "documentation/packages/kid3-qt") ++ set(WITH_TRANSLATIONSDIR_DEFAULT "data/kid3/translations") ++ set(WITH_QMLDIR_DEFAULT "data/Qt6/qml") ++ set(WITH_BINDIR_DEFAULT "bin") ++ set(WITH_LIBDIR_DEFAULT "lib${LIB_SUFFIX}/kid3") ++ set(WITH_PLUGINSDIR_DEFAULT "add-ons/Qt6/kid3") + else() + set(WITH_DATAROOTDIR_DEFAULT "share") + set(WITH_DOCDIR_DEFAULT "share/doc/kid3-qt") +-- +2.43.2 + + +From 5c4b75b751bbd2bb1c65d1b4be4ab5e2131cd92e Mon Sep 17 00:00:00 2001 +From: Schrijvers Luc +Date: Wed, 22 May 2024 10:31:36 +0200 +Subject: Fix hardcoded "share" path + + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c29405f..c7bea6d 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -165,7 +165,7 @@ endif() + set(WITH_DATAROOTDIR ${WITH_DATAROOTDIR_DEFAULT} CACHE STRING + "data root directory relative to CMAKE_INSTALL_PREFIX") + if(BUILD_KDE_APP) +- set(WITH_DBUSDIR "share/dbus-1/interfaces" CACHE STRING ++ set(WITH_DBUSDIR "${WITH_DATAROOTDIR}/dbus-1/interfaces" CACHE STRING + "dbus directory relative to CMAKE_INSTALL_PREFIX") + endif() + set(WITH_DOCDIR ${WITH_DOCDIR_DEFAULT} CACHE STRING +-- +2.43.2 +