[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#770009: convert(1) very slow on mips with no FPU



On 15/08/15 19:02, roucaries bastien wrote:
> On Sat, Aug 15, 2015 at 3:08 PM, Simon McVittie <smcv@debian.org> wrote:
>> Bastien: perhaps the conversion of SVG to 14 PNG icons could move to the
>> arch-indep part of the build, and the smoke-test could be something
>> simpler, like a single image-resize operation? Even if that takes an
>> hour (leading to maybe a 3-4 hour total build time), that's way better
>> than spending 16 hours on a smoke-test.
> 
> Yes but I do not want to do that before next version. My priority is
> the new c++ library.

Someone (possibly jcristau?) seems to have rescheduled the
imagemagick/8:6.8.9.9-5.1 build on mips with a longer-than-default
inactivity timeout. We should know by tomorrow morning whether that has
worked; if it has, I'll leave it alone. If it has not worked, I might
NMU with the attached patch so that this part of the libstdc++
transition can start moving forward again. The release team probably
don't want to start binNMUs against the new imagemagick until it has
built on all architectures.

The attached patch moves the icons from imagemagick-6.q16 to
imagemagick-common so that they can be built by one of the -indep
stages. This does increase the installed size on systems that have the
imagemagick libraries, but not the executables, by around 350K; that
doesn't seem too expensive (and it saves space in the archive, by not
duplicating the icons). Installed size on systems that have the
executables is unaffected.

To get some trivial testing on each architecture even on non-FPU
machines, I've added a very simple format conversion (GIF to PNG) as an
alternative to the test suite.

    S
diffstat for imagemagick-6.8.9.9 imagemagick-6.8.9.9

 changelog                  |   10 ++++++++
 display-im6.desktop.in     |    4 +--
 display.desktop.in         |    4 +--
 imagemagick-6.q16.install  |    2 -
 imagemagick-common.install |    2 +
 rules                      |   51 +++++++++++++++++++++++++--------------------
 6 files changed, 45 insertions(+), 28 deletions(-)

diff -Nru imagemagick-6.8.9.9/debian/changelog imagemagick-6.8.9.9/debian/changelog
--- imagemagick-6.8.9.9/debian/changelog	2015-08-12 07:58:40.000000000 +0100
+++ imagemagick-6.8.9.9/debian/changelog	2015-08-15 19:29:13.000000000 +0100
@@ -1,3 +1,13 @@
+imagemagick (8:6.8.9.9-5.2) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Move icons from imagemagick-6.q16 to imagemagick-common so that
+    they don't have to be built by each architecture. mips buildds
+    don't have a FPU, making convert(1) prohibitively slow there.
+    (Closes: #770009)
+
+ -- Simon McVittie <smcv@debian.org>  Sat, 15 Aug 2015 19:29:11 +0100
+
 imagemagick (8:6.8.9.9-5.1) unstable; urgency=medium
 
   * Non-maintainer upload.
diff -Nru imagemagick-6.8.9.9/debian/display.desktop.in imagemagick-6.8.9.9/debian/display.desktop.in
--- imagemagick-6.8.9.9/debian/display.desktop.in	2015-08-12 07:58:40.000000000 +0100
+++ imagemagick-6.8.9.9/debian/display.desktop.in	2015-08-15 18:45:46.000000000 +0100
@@ -6,9 +6,9 @@
 Comment[pt]=Exiba e edite arquivos de imagem
 Exec=/usr/lib/$(DEB_HOST_MULTIARCH)/ImageMagick-$(DEB_UPSTREAM_VERSION_DROPREVISION)/bin-$(QUANTUMDEPTH)/display %f
 Terminal=false
-Icon=display-im$(IMVERSION).$(LCQUANTUMDEPTH)
+Icon=display-im$(IMVERSION)
 Type=Application
 Categories=Graphics;
 Keywords=Image;Slideshow;View;Transform;Enhance;F/X;Special Effects
 Keywords[fr]=Image;Diaporama;Visualiser;Transformer;Améliorer;Effets spéciaux
-MimeType=image/avs;image/bie;image/x-ms-bmp;image/cmyk;image/dcx;image/eps;image/fax;image/fits;image/gif;image/gray;image/jpeg;image/pjpeg;image/miff;image/mono;image/mtv;image/x-portable-bitmap;image/pcd;image/pcx;image/pdf;image/x-portable-graymap;image/pict;image/png;image/x-portable-anymap;image/x-portable-pixmap;image/ps;image/rad;image/x-rgb;image/rgba;image/rla;image/rle;image/sgi;image/sun-raster;image/targa;image/tiff;image/uyvy;image/vid;image/viff;image/x-xbitmap;image/x-xpixmap;image/x-xwindowdump;image/x-icon;image/yuv;
\ No newline at end of file
+MimeType=image/avs;image/bie;image/x-ms-bmp;image/cmyk;image/dcx;image/eps;image/fax;image/fits;image/gif;image/gray;image/jpeg;image/pjpeg;image/miff;image/mono;image/mtv;image/x-portable-bitmap;image/pcd;image/pcx;image/pdf;image/x-portable-graymap;image/pict;image/png;image/x-portable-anymap;image/x-portable-pixmap;image/ps;image/rad;image/x-rgb;image/rgba;image/rla;image/rle;image/sgi;image/sun-raster;image/targa;image/tiff;image/uyvy;image/vid;image/viff;image/x-xbitmap;image/x-xpixmap;image/x-xwindowdump;image/x-icon;image/yuv;
diff -Nru imagemagick-6.8.9.9/debian/display-im6.desktop.in imagemagick-6.8.9.9/debian/display-im6.desktop.in
--- imagemagick-6.8.9.9/debian/display-im6.desktop.in	2015-08-12 07:58:40.000000000 +0100
+++ imagemagick-6.8.9.9/debian/display-im6.desktop.in	2015-08-15 18:45:59.000000000 +0100
@@ -6,9 +6,9 @@
 Comment[pt]=Exiba e edite arquivos de imagem
 Exec=/usr/bin/display-im$(IMVERSION) %f
 Terminal=false
-Icon=display-im$(IMVERSION).$(QUANTUMDEPTH)
+Icon=display-im$(IMVERSION)
 Type=Application
 Categories=Graphics;
 Keywords=Image;Slideshow;View;Transform;Enhance;F/X;Special Effects
 Keywords[fr]=Image;Diaporama;Visualiser;Transformer;Améliorer;Effets spéciaux
-MimeType=image/avs;image/bie;image/x-ms-bmp;image/cmyk;image/dcx;image/eps;image/fax;image/fits;image/gif;image/gray;image/jpeg;image/pjpeg;image/miff;image/mono;image/mtv;image/x-portable-bitmap;image/pcd;image/pcx;image/pdf;image/x-portable-graymap;image/pict;image/png;image/x-portable-anymap;image/x-portable-pixmap;image/ps;image/rad;image/x-rgb;image/rgba;image/rla;image/rle;image/sgi;image/sun-raster;image/targa;image/tiff;image/uyvy;image/vid;image/viff;image/x-xbitmap;image/x-xpixmap;image/x-xwindowdump;image/x-icon;image/yuv;
\ No newline at end of file
+MimeType=image/avs;image/bie;image/x-ms-bmp;image/cmyk;image/dcx;image/eps;image/fax;image/fits;image/gif;image/gray;image/jpeg;image/pjpeg;image/miff;image/mono;image/mtv;image/x-portable-bitmap;image/pcd;image/pcx;image/pdf;image/x-portable-graymap;image/pict;image/png;image/x-portable-anymap;image/x-portable-pixmap;image/ps;image/rad;image/x-rgb;image/rgba;image/rla;image/rle;image/sgi;image/sun-raster;image/targa;image/tiff;image/uyvy;image/vid;image/viff;image/x-xbitmap;image/x-xpixmap;image/x-xwindowdump;image/x-icon;image/yuv;
diff -Nru imagemagick-6.8.9.9/debian/imagemagick-6.q16.install imagemagick-6.8.9.9/debian/imagemagick-6.q16.install
--- imagemagick-6.8.9.9/debian/imagemagick-6.q16.install	2015-08-12 07:58:40.000000000 +0100
+++ imagemagick-6.8.9.9/debian/imagemagick-6.q16.install	2015-08-15 18:36:26.000000000 +0100
@@ -1,5 +1,3 @@
-usr/share/icons/hicolor/*
-usr/share/pixmaps/*
 usr/share/applications/display-im6.q16.desktop
 usr/lib/*/ImageMagick-*/bin-Q16/compare*
 usr/lib/*/ImageMagick-*/bin-Q16/animate*
diff -Nru imagemagick-6.8.9.9/debian/imagemagick-common.install imagemagick-6.8.9.9/debian/imagemagick-common.install
--- imagemagick-6.8.9.9/debian/imagemagick-common.install	2015-08-12 07:58:40.000000000 +0100
+++ imagemagick-6.8.9.9/debian/imagemagick-common.install	2015-08-15 18:36:35.000000000 +0100
@@ -1 +1,3 @@
 etc/
+usr/share/icons/hicolor/*
+usr/share/pixmaps/*
diff -Nru imagemagick-6.8.9.9/debian/rules imagemagick-6.8.9.9/debian/rules
--- imagemagick-6.8.9.9/debian/rules	2015-08-12 07:58:40.000000000 +0100
+++ imagemagick-6.8.9.9/debian/rules	2015-08-15 20:35:22.000000000 +0100
@@ -133,7 +133,6 @@
 	cd debian/build-quantum-indep/PerlMagick/default/ && perl Makefile.PL INSTALLDIRS=vendor
 
 # dh_auto_build in build directory
-# build icons cache build for each arch in order to get more testing 
 quantum_override_dh_auto_build-arch_%:
 	dh_auto_build --builddirectory="debian/build-quantum-$*" -- all perl-build
 
@@ -145,6 +144,8 @@
 
 # dh_auto_test in build directory
 # display log in case of failure
+# On machines with no FPU, don't run the full test suite because it would
+# take forever, but do a simple conversion as a smoke-test instead.
 quantum_override_dh_auto_test-arch_%:
 	if test "BUG#703262" = "SOLVED" ; then \
         unset DISPLAY; \
@@ -158,6 +159,10 @@
 		if ! dh_auto_test --builddirectory="debian/build-quantum-$*"; then \
 			find "debian/build-quantum-$*/tests" -name *.log -exec cat {} \; ; \
 	    	fi; \
+	    else \
+		unset DISPLAY; \
+		cd debian/build-quantum-$*; \
+		$(CONVERT) $(CURDIR)/images/button.gif test.png; \
 	    fi ;\
 	fi; \
 	fi
@@ -206,27 +211,6 @@
                       "debian/tmp-$*/usr/lib/$(DEB_HOST_MULTIARCH)/ImageMagick-$(DEB_UPSTREAM_VERSION_DROPREVISION)/bin-$(DEFAULTQUANTUMDEPTH)/"; \
 	done;
 
-
-	# build icons cache (build for each arch in order to get more testing)
-	while read SIZE; do \
-		mkdir -p $(CURDIR)/debian/tmp-$*/usr/share/icons/hicolor/$$SIZE/apps/ ;\
-		cd $(CURDIR)/debian/build-quantum-$*; \
-		$(CONVERT) $(CURDIR)/debian/display-im$(DEB_UPSTREAM_VERSION_MAJOR).svg \
-	                   $(CONVERT_FLAGS) -resize $$SIZE \
-	                   -gravity center -extent $$SIZE  \
-			   $(CURDIR)/debian/tmp-$*/usr/share/icons/hicolor/$$SIZE/apps/display-im$(DEB_UPSTREAM_VERSION_MAJOR).${shell echo $* | sed -e 's/\(.*\)/\L\1/'}.png; \
-	done < $(CURDIR)/debian/display-im$(DEB_UPSTREAM_VERSION_MAJOR).iconssize
-	# make xpm
-	mkdir -p $(CURDIR)/debian/tmp-$*/usr/share/pixmaps/
-	cd $(CURDIR)/debian/build-quantum-$*; \
-	$(CONVERT) $(CURDIR)/debian/display-im$(DEB_UPSTREAM_VERSION_MAJOR).svg $(CONVERT_FLAGS) -resize 32x32 \
-                -gravity center -extent 32x32  \
-		$(CURDIR)/debian/tmp-$*/usr/share/pixmaps/display-im$(DEB_UPSTREAM_VERSION_MAJOR).${shell echo $* | sed -e 's/\(.*\)/\L\1/'}.xpm
-	# do not forget svgz
-	mkdir -p $(CURDIR)/debian/tmp-$*/usr/share/icons/hicolor/scalable/apps/
-	gzip -c -n -9 $(CURDIR)/debian/display-im$(DEB_UPSTREAM_VERSION_MAJOR).svg \
-		> $(CURDIR)/debian/tmp-$*/usr/share/icons/hicolor/scalable/apps/display-im$(DEB_UPSTREAM_VERSION_MAJOR).${shell echo $* | sed -e 's/\(.*\)/\L\1/'}.svgz
-
 	# add desktop for default
 	mkdir -p debian/tmp-$*/usr/share/applications/
 	sed < $(CURDIR)/debian/display.desktop.in \
@@ -301,6 +285,29 @@
 	# install default perl
 	cd debian/build-quantum-indep/PerlMagick/default/ && make install DESTDIR=$(CURDIR)/debian/tmp-indep
 
+	# build icons cache
+	# This was previously done per-quantum-depth and per-architecture
+	# as a smoke-test, but convert(1) is really expensive on mips buildds
+	# without an FPU.
+	while read SIZE; do \
+		mkdir -p $(CURDIR)/debian/tmp-indep/usr/share/icons/hicolor/$$SIZE/apps/ ;\
+		cd $(CURDIR)/debian/build-quantum-$(DEFAULTQUANTUMDEPTH); \
+		$(CONVERT) $(CURDIR)/debian/display-im$(DEB_UPSTREAM_VERSION_MAJOR).svg \
+	                   $(CONVERT_FLAGS) -resize $$SIZE \
+	                   -gravity center -extent $$SIZE  \
+			   $(CURDIR)/debian/tmp-indep/usr/share/icons/hicolor/$$SIZE/apps/display-im$(DEB_UPSTREAM_VERSION_MAJOR).png; \
+	done < $(CURDIR)/debian/display-im$(DEB_UPSTREAM_VERSION_MAJOR).iconssize
+	# make xpm
+	mkdir -p $(CURDIR)/debian/tmp-indep/usr/share/pixmaps/
+	cd $(CURDIR)/debian/build-quantum-$(DEFAULTQUANTUMDEPTH); \
+	$(CONVERT) $(CURDIR)/debian/display-im$(DEB_UPSTREAM_VERSION_MAJOR).svg $(CONVERT_FLAGS) -resize 32x32 \
+                -gravity center -extent 32x32  \
+		$(CURDIR)/debian/tmp-indep/usr/share/pixmaps/display-im$(DEB_UPSTREAM_VERSION_MAJOR).xpm
+	# do not forget svgz
+	mkdir -p $(CURDIR)/debian/tmp-indep/usr/share/icons/hicolor/scalable/apps/
+	gzip -c -n -9 $(CURDIR)/debian/display-im$(DEB_UPSTREAM_VERSION_MAJOR).svg \
+		> $(CURDIR)/debian/tmp-indep/usr/share/icons/hicolor/scalable/apps/display-im$(DEB_UPSTREAM_VERSION_MAJOR).svgz
+
 	# Remove empty directories in debian/tmp
 	-find $(CURDIR)/debian/tmp-indep -type d -empty | xargs -r rmdir -p
 

Reply to: