From 90ecd52db63341d487dfa030700c907cfc96e920 Mon Sep 17 00:00:00 2001 From: Schrijvers Luc Date: Tue, 3 Dec 2024 11:58:55 +0100 Subject: [PATCH] optiimage, new recipe (#11408) --- .../additional-files/optiimage.rdef.in | 85 +++++++++++ kde-apps/optiimage/optiimage-1.0.0.recipe | 139 ++++++++++++++++++ .../patches/optiimage-1.0.0.patchset | 24 +++ 3 files changed, 248 insertions(+) create mode 100644 kde-apps/optiimage/additional-files/optiimage.rdef.in create mode 100644 kde-apps/optiimage/optiimage-1.0.0.recipe create mode 100644 kde-apps/optiimage/patches/optiimage-1.0.0.patchset diff --git a/kde-apps/optiimage/additional-files/optiimage.rdef.in b/kde-apps/optiimage/additional-files/optiimage.rdef.in new file mode 100644 index 000000000..28918baaf --- /dev/null +++ b/kde-apps/optiimage/additional-files/optiimage.rdef.in @@ -0,0 +1,85 @@ +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 { + $"6E63696611020006020000003D5555BD55550000004555CD4A000C0021C9FBFF" + $"197CF101FDBC4B990331363B0323262902000602000000BBD5813BD581000000" + $"4B95604ACAAA002ECC71FF2ECC71033DAEE903FDBC4B04FC4C0400190382E8AE" + $"05FC03C0392B02000202BA0001000000000000B8555547AAA9497FFF00C0392B" + $"FFFFC0392B0002001202B4000000000000000032CE9348B5554A0B35000033FF" + $"00000200120234000000000000000032CE934975554A0B35000033FF000004FF" + $"9904004C19020A2CB5202CB520BD18B52054B520C268B520C92FB520CA602CCA" + $"60B650CA60BD18CA6054CA60C268CA60C92F54CA60C92FCA60C268CA602CCA60" + $"BD18CA60B650CA60B52054B520C92FB520C268B5202CB520BD18B520B6502CB5" + $"20B650B5202CB5202CB5202CB5202CB520020838B5A738B5A7BA82B5A7B8D8B9" + $"5FB8D8B751B8D8BB6C38BD17BA82BD17BCD0BD16BD4EBD01BD0FBD0FBF08BCA7" + $"C047B95FC046BB22C047B79ABD4EB5BABF09B615BD0FB5AD38B5A7BCCFB5A738" + $"B5A738B5A738B5A738B5A7020838283828BACD28303030B79D30BB223838BACD" + $"38BCC6BC8FBD33BC7DBCFDBC89BEAEBC3040B95FBFBFBAE3BFBFB7DCBD33B640" + $"BEAFB68EBCFDB63538B62FBCC62838B62F382838B62F38280608FF7F2CB5202C" + $"B520B64FB520B5202CB520B64FB520BD18B52054B520C268B520C9302CCA60B6" + $"4FCA60B98DCA60BD18CA60BB52CA60BD18C34ABD18B520BD18BC35BB52B5202C" + $"B520B98DB5202CB520B5200207BA6FC047BA6FC047B8AAC20DB520C598B6E5C3" + $"D2B520C64DB52054B520C702B520C9302CCA60B64FCA6030CA6038CA6034CA60" + $"385438C26838C50FBBDAC1B2BA6FC047BB25C0FDBA6FC0470207C400BD9FC400" + $"BD9FC1B2BFEDBD184CBF65C23ABD18C67ABD1ACA60BD19C86DC0A4CA60C7B7CA" + $"60C42ECA60C930CA60CA5F54CA5FC930CA5FC67ACA5FC400CA5FC53DC83FC1DF" + $"C400BD9FC61F40C400BD9F0205BD18C400BD18C400BB05C612B6E0CA37B8F3C8" + $"24B729CA512CCA5FB776CA5FB98DC89ABD18C50FBB52C6D5BD18C4B5BD18C400" + $"BD18C45ABD18C4000205BD18B6C5BD18B6C5BD18B881BD18BBF8BD18BA3DBE53" + $"BBB8BF3730BF37BAA2BF37B81CBD18B6C5BE54B706BD18B6C5BD18B6C5BD18B6" + $"C5BD18B6C50606FF07BEB030BEB030BEB0BA8C38BB80BDBCBB80BB63BB80BA6F" + $"30BA6FBA8CBA6FB83338B740BB63B740BDBCB740BEB030BEB0B833BEB0303002" + $"042CCA602CCA60B932C8F5BC0750BA9DC78ABC07C78ABC07CA60BC07C8F5BA9D" + $"CA602CCA60B932CA602CCA600606FF073C303C303CBA413834BD7134BBAE3434" + $"3034BA4134B87E382CBBAE2CBD712C3C303CB87E3C30300207C400BC1FC400BC" + $"1FC172BEACBC57C3C7BEE5C13ABC97C407BD184CBCD7C447BF65C23AC400BDA0" + $"C1B2BFED5040CA60C400C840C1E0CA60C37FCA60C27FCA60C2FFC840C05FC400" + $"BC1F50BE3FC400BC1F020438B6B738B6B7BB18B6B7B9E830B9E8B7E8B9E8BAD7" + $"38BC07BB18BC0738BA4238B6B738B87D38B6B7020438B6B738B6B7BB18B6B7B9" + $"E830B9E8B7E8B9E8BAD738BC07BB18BC0738BA4238B6B738B87D38B6B70208C4" + $"00BCDFC400BCDFC172BF6DBC574CBEE5C1FABC97C4C8BD18C548BCD7C508BF65" + $"C2FAC400BE60C1B2C0AD50C080CA60C4C0C840C2A0CA60C440CA60C33FCA60C3" + $"BFC840C11FC400BCDF50BEFFC400BCDFC400BCDFC400BCDFC400BCDF0207BD18" + $"C3C7BD18C3C734C5E7B6B8CA27B8D8C807B70BCA4B2CCA60B767CA60B7DACA60" + $"B800CA60B7EDCA60B9B2C8ADBD17C548BB65C6FABD17C4C8BD17C3C7BD17C447" + $"BD17C3C7BD18C3C7BD17C3C7BD18C3C70208BA6FBF87BA6FBF87B8AAC14DB520" + $"C4D7B6E5C312B520C557B520C658B520C5D8B6E5C492BA6FC108B8AAC2CDBB52" + $"C1EABD18C3B0BC35C2CDBD18C330BD18C22FBD18C2AFBC35C14DBA6FBF87BB52" + $"C06ABA6FBF87BA6FBF87BA6FBF87BA6FBF87020538B52038B520BCBDB520BD18" + $"B520BCEAB520BD18BC35BD18CA60BD18C34ABCEACA6038CA60BCBDCA6038C34A" + $"38B52038BC3538B5200205BD18B520BD18B520BD45B520BD9FB520BD72B520BD" + $"9FBC35BD9FCA60BD9FC34ABD72CA60BD18CA60BD45CA60BD18C34ABD18B520BD" + $"18BC35BD18B5200205BC07B520BC07B520BC35B52038B520BC62B52038BC3538" + $"CA6038C34ABC62CA60BC07CA60BC35CA60BC07C34ABC07B520BC07BC35BC07B5" + $"200205B5A7B520B5A7B5202CB520BC07B520B9E8B520BC07BC35BC07CA60BC07" + $"C34AB9E8CA60B5A7CA602CCA60B5A7C34AB5A7B520B5A7BC35B5A7B5200205BC" + $"07B520BC07B520BB80B520BA6FB52034B520BA6FBC35BA6FCA60BA6FC34A34CA" + $"60BC07CA60BB80CA60BC07C34ABC07B520BC07BC35BC07B5200205BD9FB520BD" + $"9FB5203CB520BF37B520BEB0B520BF37BC35BF37CA60BF37C34ABEB0CA60BD9F" + $"CA603CCA60BD9FC34ABD9FB520BD9FBC35BD9FB5200209B7C7B520B7C7B520B6" + $"50B51FB520B7C7B51FB650B520B7F5B520B850B520B822B520B6D72CB5A8B64F" + $"B5A8BD18B5A8C7B7B5A8C267B5A8C930B5A8CA5FB850CA5FB6D7CA60B822CA60" + $"2CCA60B7F5CA61B65054B520C930B51FC268B520B7C7B520BD17B520B7C7B520" + $"0209B7C7CA60B7C7CA60B64FCA60B51F54B51FC92FB51FC78BB51FC730B51FC7" + $"5DB51FC8A9B7C7C9D8B64EC9D8BD17C9D8C7B7C9D8C267C9D8C930C9D8CA5FC7" + $"30CA5FC8A9CA5FC75DCA60C7B7CA5FC78ACA60C92FC7B7CA60C92FCA60C267CA" + $"60B7C7CA60BD17CA60B7C7CA60190A000100000A010101000A010102000A0201" + $"03000A030104000A040105000A050106000A060107000A070108000A03010900" + $"0A07010A000A08010B000A03010C000A05010D1001178200040A09010E000A05" + $"010F000A050110000A0A0111000A0B0112000A0B0113000A0C0114000A0D0115" + $"000A0E0116000A0F0117000A10011800" +}; diff --git a/kde-apps/optiimage/optiimage-1.0.0.recipe b/kde-apps/optiimage/optiimage-1.0.0.recipe new file mode 100644 index 000000000..e74d712b0 --- /dev/null +++ b/kde-apps/optiimage/optiimage-1.0.0.recipe @@ -0,0 +1,139 @@ +SUMMARY="Image optimizer to reduce the size of your images" +DESCRIPTION="Optimize your images with OptiImage, a useful image compressor that supports PNG, \ +JPEG, WebP and SVG file types. + +It supports both lossless and lossy compression modes with an option whether to keep or not \ +metadata of images. It additionally has a safe mode, where a new image is created instead of \ +overwriting the old one. + +It uses the following tools: +* oxipng for PNG images +* jpegoptim for JPEG images +* scour for SVG images +* cwebp for WebP images" +HOMEPAGE="https://apps.kde.org/optiimage/" +COPYRIGHT="2021-2023 Carl Schwan" +LICENSE="GNU LGPL v3" +REVISION="1" +SOURCE_URI="https://invent.kde.org/graphics/optiimage/-/archive/v$portVersion/optiimage-v$portVersion.tar.bz2" +CHECKSUM_SHA256="2706354278ab407ed013335c226b6058d36de230f816933d11d07c21c8593b48" +SOURCE_DIR="optiimage-v$portVersion" +PATCHES="optiimage-$portVersion.patchset" +ADDITIONAL_FILES="optiimage.rdef.in" + +ARCHITECTURES="all !x86_gcc2" +SECONDARY_ARCHITECTURES="x86" + +libVersion="$portVersion" +libVersionCompat="$libVersion compat >= ${libVersion%%.*}" + +PROVIDES=" + optiimage$secondaryArchSuffix = $portVersion + app:OptiImage$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix + cmd:cwebp$secondaryArchSuffix + cmd:jpegoptim + cmd:oxipng + cmd:scour + lib:libGL$secondaryArchSuffix + lib:libKirigamiAddonsStatefulApp$secondaryArchSuffix + lib:libQCoro6Core$secondaryArchSuffix + # KF6 + lib:libKF6Bookmarks$secondaryArchSuffix + lib:libKF6Completion$secondaryArchSuffix + lib:libKF6ConfigCore$secondaryArchSuffix + lib:libKF6CoreAddons$secondaryArchSuffix + lib:libKF6Crash$secondaryArchSuffix + lib:libKF6I18n$secondaryArchSuffix + lib:libKF6IconThemes$secondaryArchSuffix + lib:libKF6ItemViews$secondaryArchSuffix + lib:libKF6KIOCore$secondaryArchSuffix + lib:libKF6JobWidgets$secondaryArchSuffix + lib:libKF6Service$secondaryArchSuffix + lib:libKF6Solid$secondaryArchSuffix + lib:libKF6WidgetsAddons$secondaryArchSuffix + # Qt6 + lib:libQt6Core$secondaryArchSuffix + lib:libQt6Gui$secondaryArchSuffix + lib:libQt6Network$secondaryArchSuffix + lib:libQt6Qml$secondaryArchSuffix + lib:libQt6Quick$secondaryArchSuffix + lib:libQt6OpenGL$secondaryArchSuffix + lib:libQt6Svg$secondaryArchSuffix + lib:libQt6Widgets$secondaryArchSuffix + lib:libQt6Xml$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:libKirigamiAddonsStatefulApp$secondaryArchSuffix + devel:libQCoro6Core$secondaryArchSuffix + # KF6 + extra_cmake_modules$secondaryArchSuffix + devel:libKF6Bookmarks$secondaryArchSuffix + devel:libKF6Completion$secondaryArchSuffix + devel:libKF6ConfigCore$secondaryArchSuffix + devel:libKF6CoreAddons$secondaryArchSuffix + devel:libKF6Crash$secondaryArchSuffix + devel:libKF6I18n$secondaryArchSuffix + devel:libKF6IconThemes$secondaryArchSuffix + devel:libKF6ItemViews$secondaryArchSuffix + devel:libKF6JobWidgets$secondaryArchSuffix + devel:libKF6KIOCore$secondaryArchSuffix + devel:libKF6Service$secondaryArchSuffix + devel:libKF6Solid$secondaryArchSuffix + devel:libKF6WidgetsAddons$secondaryArchSuffix + devel:libKF6WindowSystem$secondaryArchSuffix + devel:libKirigamiPlatform$secondaryArchSuffix + # Qt6 + devel:libQt6Core$secondaryArchSuffix + devel:libQt6Qml$secondaryArchSuffix + devel:libQt6Svg$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:cmake + cmd:g++$secondaryArchSuffix + cmd:make + cmd:msgmerge$secondaryArchSuffix + cmd:pkg_config$secondaryArchSuffix + " + +BUILD() +{ + cmake -B build -S . -DCMAKE_BUILD_TYPE=Release \ + $cmakeDirArgs \ + -DCMAKE_INSTALL_BINDIR=$appsDir \ + -DECM_DIR=/system/data/cmake/Modules/ECM/cmake \ + -Wno-dev + make -C build $jobArgs +} + +INSTALL() +{ + make -C build install + + mv $appsDir/optiimage $appsDir/OptiImage + + # 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="OptiImage" + local LONG_INFO="$SUMMARY" + local APP_SIGNATURE="application/x-vnd.optiimage" + 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/optiimage.rdef.in > optiimage.rdef + + addResourcesToBinaries optiimage.rdef $appsDir/OptiImage + addAppDeskbarSymlink $appsDir/OptiImage +} diff --git a/kde-apps/optiimage/patches/optiimage-1.0.0.patchset b/kde-apps/optiimage/patches/optiimage-1.0.0.patchset new file mode 100644 index 000000000..9f47c625a --- /dev/null +++ b/kde-apps/optiimage/patches/optiimage-1.0.0.patchset @@ -0,0 +1,24 @@ +From db11f7c432c40d75eeb1580308c5db993d469df5 Mon Sep 17 00:00:00 2001 +From: Schrijvers Luc +Date: Tue, 3 Dec 2024 10:44:17 +0100 +Subject: Use Haiku icon theme + + +diff --git a/src/main.cpp b/src/main.cpp +index d82a6f5..54b5398 100644 +--- a/src/main.cpp ++++ b/src/main.cpp +@@ -25,8 +25,10 @@ using namespace Qt::Literals::StringLiterals; + + int main(int argc, char *argv[]) + { ++#if !defined(Q_OS_HAIKU) + KIconTheme::initTheme(); + QIcon::setFallbackThemeName(u"breeze"_s); ++#endif + + QApplication app(argc, argv); + KLocalizedString::setApplicationDomain("optiimage"); +-- +2.45.2 +