Skip to content

Commit

Permalink
mate-extra/mate-utils: Fix bug where build depends on inkscape
Browse files Browse the repository at this point in the history
Closes: https://bugs.gentoo.org/685890
Package-Manager: Portage-2.3.62, Repoman-2.3.12
Signed-off-by: Göktürk Yüksek <[email protected]>
  • Loading branch information
NP-Hardass authored and gktrk committed May 15, 2019
1 parent 64963a9 commit 4daa571
Show file tree
Hide file tree
Showing 2 changed files with 194 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,192 @@
From 563dec11a51f4c6517509642e335a1fd64cd4ec4 Mon Sep 17 00:00:00 2001
From: rbuj <[email protected]>
Date: Thu, 2 May 2019 20:51:09 +0200
Subject: [PATCH] Make inkscape and rsvg-convert optional

TEST on Fedora:
inkscape, librsvg2-tools package are not installed on system: The user can build, install and distribute the package:

$ sudo dnf remove inkscape librsvg2-tools -y
$ ./configure --prefix=/usr
$ make
$ sudo make install
$ make distcheck

logview/data/icons:

Can not run build-png-icons target if inkscape package is not installed on system:

$ make -C logview/data/icons clean-png-icons
make: Entering directory '/home/robert/devel/mate-utils/logview/data/icons'
rm -f hicolor_apps_16x16_mate-system-log.png hicolor_apps_22x22_mate-system-log.png hicolor_apps_32x32_mate-system-log.png hicolor_apps_48x48_mate-system-log.png hicolor_apps_256x256_mate-system-log.png
make: Leaving directory '/home/robert/devel/mate-utils/logview/data/icons'
$ make -C logview/data/icons build-png-icons
make: Entering directory '/home/robert/devel/mate-utils/logview/data/icons'
make: *** No rule to make target 'hicolor_apps_16x16_mate-system-log.png', needed by 'build-png-icons'. Stop.
make: Leaving directory '/home/robert/devel/mate-utils/logview/data/icons'

Can run build-png-icons target if inkscape package is installed on system:

$ sudo dnf install inkscape -y
$ ./configure --prefix=/usr
$ make -C logview/data/icons build-png-icons
make: Entering directory '/home/robert/devel/mate-utils/logview/data/icons'
Background RRGGBBAA: ffffff00 Area 303:65:319:81 exported to 16 x 16 pixels (96 dpi) Bitmap saved as: hicolor_apps_16x16_mate-system-log.png
Background RRGGBBAA: ffffff00 Area 303:101:325:123 exported to 22 x 22 pixels (96 dpi) Bitmap saved as: hicolor_apps_22x22_mate-system-log.png
Background RRGGBBAA: ffffff00 Area 304:142:336:174 exported to 32 x 32 pixels (96 dpi) Bitmap saved as: hicolor_apps_32x32_mate-system-log.png
Background RRGGBBAA: ffffff00 Area 296:202:344:250 exported to 48 x 48 pixels (96 dpi) Bitmap saved as: hicolor_apps_48x48_mate-system-log.png
Background RRGGBBAA: ffffff00 Area 33:11:289:267 exported to 256 x 256 pixels (96 dpi) Bitmap saved as: hicolor_apps_256x256_mate-system-log.png
make: Nothing to be done for 'build-png-icons'.
make: Leaving directory '/home/robert/devel/mate-utils/logview/data/icons'

baobab/pixmaps:

Can not run build-png-icons target if librsvg2-tools package is not installed on system:

$ make -C baobab/pixmaps clean-png-icons
make: Entering directory '/home/robert/devel/mate-utils/baobab/pixmaps'
rm -f hicolor_apps_16x16_mate-disk-usage-analyzer.png hicolor_apps_22x22_mate-disk-usage-analyzer.png hicolor_apps_32x32_mate-disk-usage-analyzer.png hicolor_apps_48x48_mate-disk-usage-analyzer.png hicolor_apps_128x128_mate-disk-usage-analyzer.png
make: Leaving directory '/home/robert/devel/mate-utils/baobab/pixmaps'
$ make -C baobab/pixmaps build-png-icons
make: Entering directory '/home/robert/devel/mate-utils/baobab/pixmaps'
make: *** No rule to make target 'hicolor_apps_16x16_mate-disk-usage-analyzer.png', needed by 'build-png-icons'. Stop.
make: Leaving directory '/home/robert/devel/mate-utils/baobab/pixmaps'

Can run build-png-icons target if librsvg2-tools package is installed on system:

$ sudo dnf install -y librsvg2-tools
$ ./configure --prefix=/usr
$ make -C baobab/pixmaps build-png-icons
make: Entering directory '/home/robert/devel/mate-utils/baobab/pixmaps'
/usr/bin/rsvg-convert -w 16 -h 16 hicolor_apps_scalable_mate-disk-usage-analyzer.svg -o hicolor_apps_16x16_mate-disk-usage-analyzer.png
/usr/bin/rsvg-convert -w 22 -h 22 hicolor_apps_scalable_mate-disk-usage-analyzer.svg -o hicolor_apps_22x22_mate-disk-usage-analyzer.png
/usr/bin/rsvg-convert -w 32 -h 32 hicolor_apps_scalable_mate-disk-usage-analyzer.svg -o hicolor_apps_32x32_mate-disk-usage-analyzer.png
/usr/bin/rsvg-convert -w 48 -h 48 hicolor_apps_scalable_mate-disk-usage-analyzer.svg -o hicolor_apps_48x48_mate-disk-usage-analyzer.png
/usr/bin/rsvg-convert -w 128 -h 128 hicolor_apps_scalable_mate-disk-usage-analyzer.svg -o hicolor_apps_128x128_mate-disk-usage-analyzer.png
make: Leaving directory '/home/robert/devel/mate-utils/baobab/pixmaps'

Closes #223
---
baobab/pixmaps/Makefile.am | 6 ++++--
configure.ac | 8 ++------
logview/data/icons/Makefile.am | 31 ++++++++++++++++++++++++-------
3 files changed, 30 insertions(+), 15 deletions(-)

diff --git a/baobab/pixmaps/Makefile.am b/baobab/pixmaps/Makefile.am
index f36e8bf3..6804bef9 100644
--- a/baobab/pixmaps/Makefile.am
+++ b/baobab/pixmaps/Makefile.am
@@ -11,8 +11,10 @@ public_icons = \
hicolor_apps_scalable_mate-disk-usage-analyzer.svg \
$(NULL)

+if HAVE_RSVG_CONVERT
hicolor_apps_%.png: hicolor_apps_scalable_mate-disk-usage-analyzer.svg
$(RSVG_CONVERT) -w $(word 1, $(subst x, ,$(word 1,$(subst _, ,$*)))) -h $(word 2, $(subst x, ,$(word 1,$(subst _, ,$*)))) $^ -o $@
+endif

EXTRA_DIST = \
$(public_icons) \
@@ -20,7 +22,7 @@ EXTRA_DIST = \

###############################################################################

-install-icons: $(public_icons)
+install-icons: | $(public_icons)
for icon in $(public_icons); do \
THEME=`echo $$icon | cut -d_ -f1`; \
CONTEXT=`echo $$icon | cut -d_ -f2`; \
@@ -57,7 +59,7 @@ update-icon-cache:
fi

.PHONY: build-png-icons clean-png-icons
-build-png-icons: $(png_icons)
+build-png-icons: | $(png_icons)

clean-png-icons:
rm -f $(png_icons)
diff --git a/configure.ac b/configure.ac
index d65e5b54..0907e194 100644
--- a/configure.ac
+++ b/configure.ac
@@ -31,13 +31,9 @@ AC_PATH_PROG(GLIB_MKENUMS, [glib-mkenums])

dnl ICONS: convert svg to png
AC_PATH_PROG(RSVG_CONVERT, rsvg-convert)
-if test x$RSVG_CONVERT = x ; then
- AC_MSG_ERROR([could not locate rsvg-convert])
-fi
+AM_CONDITIONAL([HAVE_RSVG_CONVERT], [test "x$RSVG_CONVERT" != x])
AC_PATH_PROG(INKSCAPE, inkscape)
-if test x$INKSCAPE = x ; then
- AC_MSG_ERROR([could not locate inkscape])
-fi
+AM_CONDITIONAL([HAVE_INKSCAPE], [test "x$INKSCAPE" != x])

MATE_COMPILE_WARNINGS([yes])

diff --git a/logview/data/icons/Makefile.am b/logview/data/icons/Makefile.am
index 9db44489..30fff904 100644
--- a/logview/data/icons/Makefile.am
+++ b/logview/data/icons/Makefile.am
@@ -17,20 +17,37 @@ public_icons = \
hicolor_apps_scalable_mate-system-log-symbolic.svg \
$(NULL)

+if HAVE_INKSCAPE
hicolor_apps_16x16_mate-system-log.png: logview.svg
- $(INKSCAPE) -z $^ --export-area=303:65:319:81 -w=16 -h=16 -e=$@
+ $(if $(wildcard $(INKSCAPE)), \
+ $(info $(shell $(INKSCAPE) -z $^ --export-area=303:65:319:81 -w=16 -h=16 -e=$@)), \
+ $(error could not locate inkscape) \
+ )

hicolor_apps_22x22_mate-system-log.png: logview.svg
- $(INKSCAPE) -z $^ --export-area=303:101:325:123 -w=22 -h=22 -e=$@
+ $(if $(wildcard $(INKSCAPE)), \
+ $(info $(shell $(INKSCAPE) -z $^ --export-area=303:101:325:123 -w=22 -h=22 -e=$@)), \
+ $(error could not locate inkscape) \
+ )

hicolor_apps_32x32_mate-system-log.png: logview.svg
- $(INKSCAPE) -z $^ --export-area=304:142:336:174 -w=32 -h=32 -e=$@
+ $(if $(wildcard $(INKSCAPE)), \
+ $(info $(shell $(INKSCAPE) -z $^ --export-area=304:142:336:174 -w=32 -h=32 -e=$@)), \
+ $(error could not locate inkscape) \
+ )

hicolor_apps_48x48_mate-system-log.png: logview.svg
- $(INKSCAPE) -z $^ --export-area=296:202:344:250 -w=48 -h=48 -e=$@
+ $(if $(wildcard $(INKSCAPE)), \
+ $(info $(shell $(INKSCAPE) -z $^ --export-area=296:202:344:250 -w=48 -h=48 -e=$@)), \
+ $(error could not locate inkscape) \
+ )

hicolor_apps_256x256_mate-system-log.png: logview.svg
- $(INKSCAPE) -z $^ --export-area=33:11:289:267 -w=256 -h=256 -e=$@
+ $(if $(wildcard $(INKSCAPE)), \
+ $(info $(shell $(INKSCAPE) -z $^ --export-area=33:11:289:267 -w=256 -h=256 -e=$@)), \
+ $(error could not locate inkscape) \
+ )
+endif

noinst_DATA = \
logview.svg \
@@ -43,7 +60,7 @@ EXTRA_DIST = \

###############################################################################

-install-icons:
+install-icons: | $(public_icons)
for icon in $(public_icons); do \
THEME=`echo $$icon | cut -d_ -f1`; \
CONTEXT=`echo $$icon | cut -d_ -f2`; \
@@ -80,7 +97,7 @@ update-icon-cache:
fi

.PHONY: build-png-icons clean-png-icons
-build-png-icons: $(png_icons)
+build-png-icons: | $(png_icons)

clean-png-icons:
rm -f $(png_icons)
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ DEPEND="${RDEPEND}
virtual/pkgconfig
x11-base/xorg-proto"

PATCHES=( "${FILESDIR}/${PN}-1.22.1-make-inkscape-optional.patch" )

src_prepare() {
# Make apps visible in all DEs.
LC_ALL=C find . -iname '*.desktop.in*' -exec \
Expand Down

0 comments on commit 4daa571

Please sign in to comment.