shithub: puzzles

Download patch

ref: c0308c9319d40438db668e67fb944e08062148c7
parent: 9df80d7587f9d0060ab74d3cb862e438a9f79291
author: Simon Tatham <anakin@pobox.com>
date: Sat Oct 3 09:15:59 EDT 2015

Add '-set colorspace RGB' to some icon convert commands.

Its absence was breaking the icon build on Ubuntu 14.04, because you
ask convert to map an image into a specific 16-colour palette, and it
does so and _then_ nonconsensually maps those colours in turn through
a colourspace transformation you didn't ask for, causing icon.pl to
fail an assertion when it finds an RGB value not in the palette.

--- a/icons/Makefile
+++ b/icons/Makefile
@@ -27,6 +27,10 @@
 BIN = ../
 PIC = ./
 
+# Work around newer ImageMagick unilaterally distorting colours when
+# converting to PNG.
+CSP = -set colorspace RGB
+
 base: $(BASE)
 web: $(WEB)
 pngicons: $(P48D24) $(P32D24) $(P16D24)
@@ -93,7 +97,7 @@
 # seems to work better than reducing it in 24 bits and then
 # dithering.
 $(IBASE4): %-ibase4.png: %-ibase.png
-	convert -colors 16 +dither -map $(PIC)win16pal.xpm $^ $@
+	convert -colors 16 +dither $(CSP) -map $(PIC)win16pal.xpm $^ $@
 
 # Build the 24-bit PNGs for the icons, at three sizes.
 $(P48D24): %-48d24.png: %-ibase.png
@@ -115,15 +119,15 @@
 # much...)
 $(P48D4): %-48d4.png: %-ibase4.png
 	$(PIC)square.pl 48 1 $^ $@-tmp2.png
-	convert -colors 16 -map $(PIC)win16pal.xpm $@-tmp2.png $@
+	convert -colors 16 $(CSP) -map $(PIC)win16pal.xpm $@-tmp2.png $@
 	rm -f $@-tmp2.png
 $(P32D4): %-32d4.png: %-ibase.png
 	$(PIC)square.pl 32 1 $^ $@-tmp2.png
-	convert -colors 16 -map $(PIC)win16pal.xpm $@-tmp2.png $@
+	convert -colors 16 $(CSP) -map $(PIC)win16pal.xpm $@-tmp2.png $@
 	rm -f $@-tmp2.png
 $(P16D4): %-16d4.png: %-ibase.png
 	$(PIC)square.pl 16 1 $^ $@-tmp2.png
-	convert -colors 16 -map $(PIC)win16pal.xpm $@-tmp2.png $@
+	convert -colors 16 $(CSP) -map $(PIC)win16pal.xpm $@-tmp2.png $@
 	rm -f $@-tmp2.png
 
 # Build the actual Windows icons themselves, by feeding all those