From 42e118ed45f727b91613591b87ba79ca4d7da218 Mon Sep 17 00:00:00 2001 From: Gerasim Troeglazov <3dEyes@gmail.com> Date: Fri, 28 Jan 2022 12:09:52 +1000 Subject: [PATCH] Inkscape: rework recipe * add icons for applications * move shared to $dataDir * fix system iconset detection --- .../additional-files/inkscape.rdef.in | 33 +++++ .../inkscape/additional-files/inkview.rdef.in | 32 +++++ media-gfx/inkscape/inkscape-1.1.1.recipe | 118 ++++++++++++++---- .../inkscape/patches/inkscape-1.1.1.patchset | 42 ++++++- 4 files changed, 199 insertions(+), 26 deletions(-) create mode 100644 media-gfx/inkscape/additional-files/inkscape.rdef.in create mode 100644 media-gfx/inkscape/additional-files/inkview.rdef.in diff --git a/media-gfx/inkscape/additional-files/inkscape.rdef.in b/media-gfx/inkscape/additional-files/inkscape.rdef.in new file mode 100644 index 000000000..be2c7a34b --- /dev/null +++ b/media-gfx/inkscape/additional-files/inkscape.rdef.in @@ -0,0 +1,33 @@ + +resource app_flags B_MULTIPLE_LAUNCH; + +resource app_version { + major = @MAJOR@, + middle = @MIDDLE@, + minor = @MINOR@, + variety = B_APPV_FINAL, + internal = 0, + short_info = "Inkscape", + long_info = "@LONG_INFO@" +}; + +resource app_signature "@APP_SIGNATURE@"; + +resource vector_icon { + $"6E63696604020006023394F93D1F7CBD1F7C3394F94AF8B549B1ED00B7B7B7FF" + $"16165B05FF050104016703020EBF6EB434BF6EB434BF31B434BEC4B47B3EB44E" + $"35B7B2B490BE21B7F7BAEAB458BE57B430BEFAB434BEA7B42CBF4EB47BBFDEB4" + $"48BFA2B7E2C3E0BEAFCBE5BB48C7E3BEE1CC20BF70CC42BF28CC42BFB8CC42C0" + $"31CBE5BFFFCC20C397C7E3CA65BFDEC6FEC3E0CA97BFA2CAAFBEFACAB3BF4ECA" + $"ABBEA7CA4FBE21CA87BE57C6E8BAEAC01BB47BC382B7B2BFEBB44DBF6EB434BF" + $"ADB434BF6EB434BF6EB434BF6EB434BF6EB434020FBF6BB633BF6BB633BF34B6" + $"33BED3B672BEFEB64ABD4EB7E2BA42BAC4BBC8B953B9B9BB45B884BC62B909BB" + $"E4B877BC6EB85EBC86B86ABC7AB74CBD4EBAC9BD87BA61BD9DBBCCBD44BC03BB" + $"89BB3CBB9CBD06BB70BE13BDC7BCECBDB7BF59BDD9C29ABB87C0EBBB78C3D5BB" + $"92C5CBBD64C492BD90C626BD58C68ABC9CC725BD2FC5E4BBFEC497BAC4C53DBB" + $"61C311B953C006B672C18BB7E2BFDBB649BF6BB633BFA3B633BF6BB633BF6BB6" + $"33BF6BB633BF6BB6330A04405E5F5447482B4F040A030102000A020100123FDE" + $"210000000000003FC07C420852379CAB01178522040A000100023FDE21000000" + $"0000003FC07C420852379CAB0A010101023FDE210000000000003FC07C420852" + $"379CAB" +}; diff --git a/media-gfx/inkscape/additional-files/inkview.rdef.in b/media-gfx/inkscape/additional-files/inkview.rdef.in new file mode 100644 index 000000000..82f3162d7 --- /dev/null +++ b/media-gfx/inkscape/additional-files/inkview.rdef.in @@ -0,0 +1,32 @@ + +resource app_flags B_MULTIPLE_LAUNCH; + +resource app_version { + major = @MAJOR@, + middle = @MIDDLE@, + minor = @MINOR@, + variety = B_APPV_FINAL, + internal = 0, + short_info = "Inkview", + long_info = "@LONG_INFO@" +}; + +resource app_signature "@APP_SIGNATURE@"; + +resource vector_icon { + $"6E63696604020006023394F93D1F7CBD1F7C3394F94AF8B549B1ED00E2E2E2FF" + $"0581C105FF050104016703020EBF6EB434BF6EB434BF31B434BEC4B47B3EB44E" + $"35B7B2B490BE21B7F7BAEAB458BE57B430BEFAB434BEA7B42CBF4EB47BBFDEB4" + $"48BFA2B7E2C3E0BEAFCBE5BB48C7E3BEE1CC20BF70CC42BF28CC42BFB8CC42C0" + $"31CBE5BFFFCC20C397C7E3CA65BFDEC6FEC3E0CA97BFA2CAAFBEFACAB3BF4ECA" + $"ABBEA7CA4FBE21CA87BE57C6E8BAEAC01BB47BC382B7B2BFEBB44DBF6EB434BF" + $"ADB434BF6EB434BF6EB434BF6EB434BF6EB434020FBF6BB633BF6BB633BF34B6" + $"33BED3B672BEFEB64ABD4EB7E2BA42BAC4BBC8B953B9B9BB45B884BC62B909BB" + $"E42C392C39B7D4BCEAB6B5BDBDBAC9BD87BA61BD9DBBCCBD443A32BC95BA3F3D" + $"343D3BBD66BDB1BFD4BDD347354135C3C5BB684F3AC4DCBD53C615BD4FC68ABC" + $"9C553CC5E4BBFEC497BAC4C53DBB61C311B953C006B672C18BB7E2BFDBB649BF" + $"6BB633BFA3B633BF6BB633BF6BB633BF6BB633BF6BB6330A04405E5F5447482B" + $"4F040A030102000A020100123FDE210000000000003FC07C420852379CAB0117" + $"8522040A000100023FDE210000000000003FC07C420852379CAB0A010101023F" + $"DE210000000000003FC07C420852379CAB" +}; diff --git a/media-gfx/inkscape/inkscape-1.1.1.recipe b/media-gfx/inkscape/inkscape-1.1.1.recipe index f2e17506b..1257f2272 100644 --- a/media-gfx/inkscape/inkscape-1.1.1.recipe +++ b/media-gfx/inkscape/inkscape-1.1.1.recipe @@ -9,50 +9,96 @@ which is supported by many other applications including web browsers." HOMEPAGE="https://inkscape.org/" COPYRIGHT="2021 Inkscape Developers" LICENSE="GNU GPL v2" -REVISION="1" +REVISION="2" SOURCE_URI="https://inkscape.org/gallery/item/29255/inkscape-$portVersion.tar.xz" CHECKSUM_SHA256="aeca0b9d33b5b1cfa9aa70433bdee6a8c3d020ffafc2e6f0c9a60eed7a7978af" SOURCE_DIR="inkscape-1.1.1_2021-09-20_3bf5ae0d25" PATCHES="inkscape-$portVersion.patchset" +ADDITIONAL_FILES=" + inkscape.rdef.in + inkview.rdef.in + " ARCHITECTURES="all !x86_gcc2" SECONDARY_ARCHITECTURES="?x86" PROVIDES=" inkscape$secondaryArchSuffix = $portVersion - app:inkscape$secondaryArchSuffix = $portVersion + lib:lib2geom$secondaryArchSuffix = $portVersion + app:Inkscape = $portVersion + app:Inkview = $portVersion " REQUIRES=" haiku$secondaryArchSuffix boehm_gc$secondaryArchSuffix - lib:libgtkmm_3.0$secondaryArchSuffix + lib:libatkmm_1.6$secondaryArchSuffix lib:libboost_filesystem$secondaryArchSuffix - lib:liblcms2$secondaryArchSuffix + lib:libcairo$secondaryArchSuffix + lib:libcairomm_1.0$secondaryArchSuffix + lib:libcdr_0.1$secondaryArchSuffix lib:libfontconfig$secondaryArchSuffix - lib:libpango_1.0$secondaryArchSuffix - lib:libsoup_2.4$secondaryArchSuffix + lib:libfreetype$secondaryArchSuffix + lib:libglib_2.0$secondaryArchSuffix + lib:libglibmm_2.4$secondaryArchSuffix + lib:libgiomm_2.4$secondaryArchSuffix + lib:libgdk_3$secondaryArchSuffix + lib:libgdk_pixbuf_2.0$secondaryArchSuffix + lib:libgomp$secondaryArchSuffix + lib:libGraphicsMagick++$secondaryArchSuffix lib:libgsl$secondaryArchSuffix + lib:libgtk_3$secondaryArchSuffix + lib:libgtkmm_3.0$secondaryArchSuffix + lib:libharfbuzz$secondaryArchSuffix + lib:libiconv$secondaryArchSuffix + lib:libintl$secondaryArchSuffix + lib:liblcms2$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix + lib:libpango_1.0$secondaryArchSuffix + lib:libpangomm_1.4$secondaryArchSuffix + lib:libpng16$secondaryArchSuffix + lib:librevenge_0.0$secondaryArchSuffix + lib:librevenge_stream_0.0$secondaryArchSuffix + lib:librsvg_2$secondaryArchSuffix + lib:libsigc_2.0$secondaryArchSuffix + lib:libsoup_2.4$secondaryArchSuffix lib:libdouble_conversion$secondaryArchSuffix lib:libpotrace$secondaryArchSuffix + lib:libvisio_0.1$secondaryArchSuffix + lib:libwpd_0.10$secondaryArchSuffix + lib:libwpg_0.3$secondaryArchSuffix + lib:libX11$secondaryArchSuffix + lib:libxml2$secondaryArchSuffix lib:libxslt$secondaryArchSuffix - - # so gdk-pixbuf can load SVG icons - librsvg$secondaryArchSuffix + lib:libz$secondaryArchSuffix " BUILD_REQUIRES=" haiku${secondaryArchSuffix}_devel boehm_gc${secondaryArchSuffix}_devel - devel:libgtkmm_3.0$secondaryArchSuffix devel:libboost_filesystem$secondaryArchSuffix - devel:liblcms2$secondaryArchSuffix + devel:libcdr_0.1$secondaryArchSuffix devel:libfontconfig$secondaryArchSuffix - devel:libpango_1.0$secondaryArchSuffix - devel:libsoup_2.4$secondaryArchSuffix + devel:libfreetype$secondaryArchSuffix + devel:libglib_2.0$secondaryArchSuffix + devel:libglibmm_2.4$secondaryArchSuffix + devel:libGraphicsMagick$secondaryArchSuffix + devel:libGraphicsMagickWand$secondaryArchSuffix devel:libgsl$secondaryArchSuffix + devel:libgtkmm_3.0$secondaryArchSuffix + devel:libjpeg$secondaryArchSuffix + devel:liblcms2$secondaryArchSuffix + devel:libpango_1.0$secondaryArchSuffix + devel:libpng16$secondaryArchSuffix + devel:librevenge_0.0$secondaryArchSuffix + devel:libsoup_2.4$secondaryArchSuffix devel:libdouble_conversion$secondaryArchSuffix devel:libpotrace$secondaryArchSuffix + devel:libvisio_0.1$secondaryArchSuffix + devel:libwpd_0.10$secondaryArchSuffix + devel:libwpg_0.3$secondaryArchSuffix + devel:libxml2$secondaryArchSuffix devel:libxslt$secondaryArchSuffix + devel:libz$secondaryArchSuffix " BUILD_PREREQUIRES=" cmd:cmake @@ -64,8 +110,11 @@ BUILD_PREREQUIRES=" BUILD() { LDFLAGS="-Wl,--as-needed" \ - cmake . -GNinja -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=$appsDir/Inkscape + cmake . $cmakeDirArgs -GNinja \ + -DCMAKE_BUILD_TYPE=Release \ + -DSHARE_INSTALL=$dataDir \ + -DINKSCAPE_DATADIR=$dataDir \ + -DPACKAGE_LOCALE_DIR=$dataDir/locale # otherwise it runs out of memory, unfortunately ninja -j1 @@ -75,12 +124,37 @@ INSTALL() { ninja install - mv $appsDir/Inkscape/bin/inkscape $appsDir/Inkscape/Inkscape - mv $appsDir/Inkscape/bin/inkview $appsDir/Inkscape/inkview - mv $appsDir/Inkscape/lib/inkscape/* $appsDir/Inkscape/lib/ - rm -rf $appsDir/Inkscape/lib/inkscape - rm -rf $appsDir/Inkscape/lib/cmake - rm -rf $appsDir/Inkscape/include + mkdir -p $appsDir + mv $binDir/inkscape $appsDir/Inkscape + mv $binDir/inkview $appsDir/Inkview - addAppDeskbarSymlink $appsDir/Inkscape/Inkscape + rm -rf $binDir $developDir $libDir/{cmake,pkgconfig} + + local APP_SIGNATURE="application/x-vnd.inkscape-inkscape" + 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/inkscape.rdef.in > inkscape.rdef + + local APP_SIGNATURE="application/x-vnd.inkscape-inkview" + 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/inkview.rdef.in > inkview.rdef + + addResourcesToBinaries inkscape.rdef $appsDir/Inkscape + addAppDeskbarSymlink $appsDir/Inkscape + + addResourcesToBinaries inkview.rdef $appsDir/Inkview + addAppDeskbarSymlink $appsDir/Inkview } diff --git a/media-gfx/inkscape/patches/inkscape-1.1.1.patchset b/media-gfx/inkscape/patches/inkscape-1.1.1.patchset index 715ad1c37..29d6894b1 100644 --- a/media-gfx/inkscape/patches/inkscape-1.1.1.patchset +++ b/media-gfx/inkscape/patches/inkscape-1.1.1.patchset @@ -1,4 +1,4 @@ -From 4f9abbf12f8d63f0b5e03e4195fa441d1456257b Mon Sep 17 00:00:00 2001 +From e052477f15c3e413b6c4c56968da0b7d21e657e1 Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Mon, 24 Jan 2022 17:27:43 -0500 Subject: Fix build without Poppler. @@ -27,7 +27,7 @@ index 4d77e4d..c1e33a5 100644 2.30.2 -From 1a8a3ec107603368cf0c40a986f36d90e9d972e0 Mon Sep 17 00:00:00 2001 +From 28b1c87d4b61f2bf721415361686b59413b30c12 Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Mon, 24 Jan 2022 20:07:10 -0500 Subject: tracedialog: Fix build under Haiku. @@ -52,7 +52,7 @@ index 869510d..05f446d 100644 2.30.2 -From fd79229a6a9875630ac595bc60b29b205ac309c6 Mon Sep 17 00:00:00 2001 +From 128dc87b37403f22c6f4437d32f5aee7ee2f2ca8 Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Mon, 24 Jan 2022 21:57:22 -0500 Subject: Another no-Poppler fix. @@ -93,7 +93,7 @@ index e02a575..d460ac1 100644 2.30.2 -From c86c492577876a99210437167adff470b7b05902 Mon Sep 17 00:00:00 2001 +From fa5d76c4a094d2b8f85fd95c6fd685fbd0f9d1cb Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Wed, 26 Jan 2022 12:17:06 -0500 Subject: Add mechanism to get the program path under Haiku. @@ -134,3 +134,37 @@ index 1d61748..a8e8da1 100644 -- 2.30.2 + +From a4c73b83baa32c3eaa0a9b6f213ac09a56118b56 Mon Sep 17 00:00:00 2001 +From: Gerasim Troeglazov <3dEyes@gmail.com> +Date: Fri, 28 Jan 2022 08:26:36 +1000 +Subject: Use glib for datadir + + +diff --git a/src/inkscape-main.cpp b/src/inkscape-main.cpp +index 7ac16f8..a7445b2 100644 +--- a/src/inkscape-main.cpp ++++ b/src/inkscape-main.cpp +@@ -16,6 +16,10 @@ + #include + #endif + ++#ifdef __HAIKU__ ++#include ++#endif ++ + #include "inkscape-application.h" + #include "path-prefix.h" + +@@ -70,7 +74,7 @@ static void set_themes_env() + + if (xdg_data_dirs.empty()) { + // initialize with reasonable defaults (should match what glib would do if the variable were unset!) +-#ifdef _WIN32 ++#if defined(_WIN32) || defined(__HAIKU__) + // g_get_system_data_dirs is actually not cached on Windows, + // so we can just call it directly and modify XDG_DATA_DIRS later + auto data_dirs = Glib::get_system_data_dirs(); +-- +2.30.2 +