[Pkg-phototools-devel] Bug#736215: New upstream release
Jackson Doak
noskcaj at ubuntu.com
Tue Jan 21 05:25:18 UTC 2014
package: pngquant
version: 2.0.1-1
tags: patch
priority: wishlist
A new release of pngquant is now out. Could it please be uploaded? I have
included an upload ready debdiff.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/pkg-phototools-devel/attachments/20140121/043ce1ec/attachment-0001.html>
-------------- next part --------------
diff -Nru pngquant-2.0.1/debian/changelog pngquant-2.0.2/debian/changelog
--- pngquant-2.0.1/debian/changelog 2013-11-26 08:46:18.000000000 +1100
+++ pngquant-2.0.2/debian/changelog 2014-01-21 16:22:51.000000000 +1100
@@ -1,3 +1,10 @@
+pngquant (2.0.2-1) UNRELEASED; urgency=medium
+
+ * New upstream release
+ * Use upstream's manpage, it's more complete
+
+ -- Jackson Doak <noskcaj at ubuntu.com> Tue, 21 Jan 2014 16:20:54 +1100
+
pngquant (2.0.1-1) unstable; urgency=low
* New upstream version
diff -Nru pngquant-2.0.1/debian/manpages pngquant-2.0.2/debian/manpages
--- pngquant-2.0.1/debian/manpages 2013-11-26 08:46:18.000000000 +1100
+++ pngquant-2.0.2/debian/manpages 2014-01-21 16:22:32.000000000 +1100
@@ -1 +1 @@
-debian/pngquant.1
+pngquant.1
diff -Nru pngquant-2.0.1/debian/pngquant.1 pngquant-2.0.2/debian/pngquant.1
--- pngquant-2.0.1/debian/pngquant.1 2013-11-26 08:46:18.000000000 +1100
+++ pngquant-2.0.2/debian/pngquant.1 1970-01-01 10:00:00.000000000 +1000
@@ -1,42 +0,0 @@
-.TH PNGQUANT 1 "Thu, 07 Dec 2006 00:33:40 -0200"
-.SH NAME
-pngquant \- PNG image optimising utility
-.SH SYNOPSIS
-.B pngquant
-.RI "[ options ] <ncolors> [pngfile [pngfile ...]]"
-.br
-.B pngquant
-.RI "[ options ] \-map mapfile [pngfile [pngfile ...]]"
-.br
-.PP
-Note that it's \fBrequired\fP to specify the number of colors (\fI<ncolors>\fP) or the \fImapfile\fP. Arguments in square brackets are optional.
-.SH DESCRIPTION
-This manual page documents briefly the
-.B pngquant
-command.
-.PP
-\fBpngquant\fP quantizes one or more 32-bit RGBA PNGs to 8-bit (or smaller) RGBA-palette PNGs using either ordered dithering or Floyd-Steinberg diffusion dithering (default). The output filename is the same as the input name except that it ends in \fI-fs8.png\fP or \fI-or8.png\fP (unless the input is stdin, in which case the quantized image will go to stdout). The default behavior if the output file exists is to skip the conversion; use \fI-force\fP to overwrite.
-.SH OPTIONS
-.TP
-.B \-force
-Overwrite existing output files.
-.TP
-.B \-ordened, \-nofloyd, \-nofs
-Use ordered dithering.
-.TP
-.B \-verbose, \-noquiet
-Print status messages.
-.TP
-.B NOTE:
-the \-map option is NOT YET SUPPORTED.
-.SH EXAMPLE
-Creating a new image with the number of colors reduced to 64:
-.TP
- pngquant 64 image.png
-.TP
-The resulting image will have 64 colors and will be saved as \fBimage-fs8.png\fP.
-.SH AUTHOR
-pngquant was written by Greg Roelofs <newt at pobox.com>.
-.PP
-This manual page was written by Nelson A. de Oliveira <naoliv at debian.org>,
-for the Debian project (but may be used by others).
diff -Nru pngquant-2.0.1/INSTALL pngquant-2.0.2/INSTALL
--- pngquant-2.0.1/INSTALL 2013-10-24 09:20:48.000000000 +1100
+++ pngquant-2.0.2/INSTALL 2014-01-17 09:12:45.000000000 +1100
@@ -14,6 +14,7 @@
pngquant uses GNU Makefile. To compile on FreeBSD you will need to use gmake,
and on Windows the MinGW compiler (MSVC does not support C99).
+pngquant will compile with libpng 1.2, but you should use 1.5 or later.
##Compilation with OpenMP
diff -Nru pngquant-2.0.1/lib/libimagequant.c pngquant-2.0.2/lib/libimagequant.c
--- pngquant-2.0.1/lib/libimagequant.c 2013-10-24 09:20:48.000000000 +1100
+++ pngquant-2.0.2/lib/libimagequant.c 2014-01-17 09:12:45.000000000 +1100
@@ -68,12 +68,6 @@
void *log_flush_callback_user_info;
};
-struct pngquant_options {
- liq_attr *liq;
- liq_image *fixed_palette_image;
- bool floyd, using_stdin, force, ie_mode;
-};
-
struct liq_image {
const char *magic_header;
void* (*malloc)(size_t);
diff -Nru pngquant-2.0.1/lib/libimagequant.h pngquant-2.0.2/lib/libimagequant.h
--- pngquant-2.0.1/lib/libimagequant.h 2013-10-24 09:20:48.000000000 +1100
+++ pngquant-2.0.2/lib/libimagequant.h 2014-01-17 09:12:45.000000000 +1100
@@ -1,6 +1,6 @@
-//
-// http://pngquant.org
-//
+/*
+ * http://pngquant.org
+ */
#ifndef LIBIMAGEQUANT_H
#define LIBIMAGEQUANT_H
diff -Nru pngquant-2.0.1/lib/Makefile pngquant-2.0.2/lib/Makefile
--- pngquant-2.0.1/lib/Makefile 2013-10-24 09:20:48.000000000 +1100
+++ pngquant-2.0.2/lib/Makefile 2014-01-17 09:12:45.000000000 +1100
@@ -9,11 +9,15 @@
DLLIMP=libimagequant_dll.a
DLLDEF=libimagequant_dll.def
-CFLAGSOPT ?= -DNDEBUG -O3 -fstrict-aliasing -ffast-math -funroll-loops -fomit-frame-pointer -ffinite-math-only
+CFLAGSOPT ?= -DNDEBUG -O3 -ffast-math -funroll-loops -fomit-frame-pointer
CFLAGS ?= -Wall -Wno-unknown-pragmas -I. $(CFLAGSOPT)
CFLAGS += -std=c99 $(CFLAGSADD)
+ifdef USE_SSE
+CFLAGS += -DUSE_SSE=$(USE_SSE)
+endif
+
OBJS = pam.o mediancut.o blur.o mempool.o viter.o nearest.o libimagequant.o
BUILD_CONFIGURATION="$(CC) $(CFLAGS) $(LDFLAGS)"
@@ -30,10 +34,10 @@
$(MAKE) CFLAGSADD="-DLIQ_EXPORT='__declspec(dllexport)'" $(DLL)
openmp::
- $(MAKE) CFLAGSADD=-fopenmp OPENMPFLAGS="-Bstatic -lgomp" -j8 -$(MAKEFLAGS)
+ $(MAKE) CFLAGSADD=-fopenmp OPENMPFLAGS="-Bstatic -lgomp" -j8
$(DLL) $(DLLIMP): $(OBJS)
- $(CC) -shared -o $(DLL) $(OBJS) $(LDFLAGS) -Wl,--out-implib,$(DLLIMP),--output-def,$(DLLDEF)
+ $(CC) -fPIC -shared -o $(DLL) $(OBJS) $(LDFLAGS) -Wl,--out-implib,$(DLLIMP),--output-def,$(DLLDEF)
$(STATICLIB): $(OBJS)
$(AR) $(ARFLAGS) $@ $^
diff -Nru pngquant-2.0.1/lib/MANUAL.md pngquant-2.0.2/lib/MANUAL.md
--- pngquant-2.0.1/lib/MANUAL.md 2013-10-24 09:20:48.000000000 +1100
+++ pngquant-2.0.2/lib/MANUAL.md 2014-01-17 09:12:45.000000000 +1100
@@ -1,42 +1,44 @@
-#libimagequant?Image Quantization Library
+# libimagequant?Image Quantization Library
Small, portable C library for high-quality conversion of RGBA images to 8-bit indexed-color (palette) images.
It's powering [pngquant2](http://pngquant.org).
-##License
+## License
[BSD-like](https://raw.github.com/pornel/improved-pngquant/master/lib/COPYRIGHT).
It can be linked with both free and closed-source software.
-##Download
+## Download
-The library is currently a part of the [pngquant2 project](https://github.com/pornel/improved-pngquant/tree/lib/lib).
+The [library](http://pngquant.org/lib) is currently a part of the [pngquant2 project](https://github.com/pornel/improved-pngquant/tree/lib/lib).
-Files needed for the library are only in the `lib/` directory inside the repository.
+Files needed for the library are only in the `lib/` directory inside the repository (and you can ignore the rest).
-##Compiling and Linking
+## Compiling and Linking
The library can be linked with ANSI C and C++ programs. It has no external dependencies.
-To build it run:
+To build on Unix-like systems run:
make -C lib
it will create `lib/libimagequant.a` which you can link with your program.
- gcc yourprogram.c lib/libimagequant.a
+ gcc yourprogram.c /path/to/lib/libimagequant.a
Alternatively you can compile the library with your program simply by including all `.c` files (and define `NDEBUG` to get fast build):
gcc -std=c99 -O3 -DNDEBUG lib/*.c yourprogram.c
-###Compiling on Windows
+### Compiling on Windows/Visual Studio
-The library can be compiled with any C compiler that has at least basic support for C99 (GCC, clang, ICC, C++ Builder, even Tiny C Compiler). Unfortunately as of 2013 Visual Studio (MSVC) has not yet been updated to support C newer than the 1989 version.
+The library can be compiled with any C compiler that has at least basic support for C99 (GCC, clang, ICC, C++ Builder, even Tiny C Compiler), but Visual Studio 2012 and older are not up to date with the 1999 C standard. There are 3 options for using `libimagequant` with Visual Studio:
-On Windows you can compile the library with GCC from MinGW or Cygwin. Use GCC to build `libimagequant.a` (using instructions above) and add it along with `libgcc.a` (shipped with the compiler) to your VC project.
+ * Use Visual Studio **2013** (MSVC12) or newer.
+ * Or use GCC from [MinGW](http://www.mingw.org). Use GCC to build `libimagequant.a` (using above instructions for Unix) and add it along with `libgcc.a` (shipped with the MinGW compiler) to your VC project.
+ * Or use [C++ version of `libimagequant`](https://github.com/pornel/pngquant/tree/cpp). The C++ version is not as up-to-date as C version, but should be compatible with Visual Studio older than 2013 (VC12).
-##Overview
+## Overview
The basic flow is:
@@ -63,7 +65,7 @@
liq_image_destroy(image);
liq_result_destroy(res);
-It's safe to pass `NULL` to any function accepting `liq_attr`, `liq_image`, `liq_result`. These objects can be reused multiple times. Functions returning `liq_error` return `LIQ_OK` on success.
+It's safe to pass `NULL` to any function accepting `liq_attr`, `liq_image`, `liq_result`. These objects can be reused multiple times. Functions returning `liq_error` return `LIQ_OK` (`0`) on success and non-zero on error.
There are 3 ways to create image object for quantization:
@@ -71,7 +73,7 @@
* `liq_image_create_rgba_rows()` for non-contiguous RGBA bitmaps (that have padding between rows or reverse order, e.g. BMP).
* `liq_image_create_custom()` for RGB, ABGR, YUV and all other formats that can be converted on-the-fly to RGBA (you have to supply the conversion function).
-##Functions
+## Functions
----
@@ -79,7 +81,7 @@
Returns object that will hold initial settings (atrributes) for the library. The object should be freed using `liq_attr_destroy()` after it's no longer needed.
-Returns `NULL` if the library cannot run on the current machine (e.g. the library has been compiled for SSE2-capable x86 CPU and run on VIA C3 CPU).
+Returns `NULL` in the unlikely case that the library cannot run on the current machine (e.g. the library has been compiled for SSE2-capable x86 CPU and run on VIA C3 CPU).
----
@@ -209,7 +211,7 @@
Freeing `liq_result` also frees any `liq_palette` obtained from it.
-##Advanced Functions
+## Advanced Functions
----
@@ -252,11 +254,11 @@
----
- liq_image *liq_image_create_custom(liq_attr *attr, liq_image_get_rgba_row_callback *row_callback, void* user_info, int width, int height, double gamma);
+ liq_image *liq_image_create_custom(liq_attr *attr, liq_image_get_rgba_row_callback *row_callback, void *user_info, int width, int height, double gamma);
<p>
- void image_get_rgba_row_callback(liq_color row_out[], int row_index, int width, void* user_info) {
+ void image_get_rgba_row_callback(liq_color row_out[], int row_index, int width, void *user_info) {
for(int column_index=0; column_index < width; column_index++) {
row_out[column_index] = /* generate pixel at (row_index, column_index) */;
}
@@ -272,7 +274,7 @@
To use RGB image:
- void rgb_to_rgba_callback(liq_color row_out[], int row_index, int width, void* user_info) {
+ void rgb_to_rgba_callback(liq_color row_out[], int row_index, int width, void *user_info) {
unsigned char *rgb_row = ((unsigned char *)user_info) + 3*width*row_index;
for(int i=0; i < width; i++) {
@@ -347,18 +349,18 @@
----
- void liq_set_log_callback(liq_attr*, liq_log_callback_function*, void* user_info);
+ void liq_set_log_callback(liq_attr*, liq_log_callback_function*, void *user_info);
<p>
- void log_callback_function(const liq_attr*, const char *message, void* user_info) {}
+ void log_callback_function(const liq_attr*, const char *message, void *user_info) {}
----
- void liq_set_log_flush_callback(liq_attr*, liq_log_flush_callback_function*, void* user_info);
+ void liq_set_log_flush_callback(liq_attr*, liq_log_flush_callback_function*, void *user_info);
<p>
- void log_flush_callback_function(const liq_attr*, void* user_info) {}
+ void log_flush_callback_function(const liq_attr*, void *user_info) {}
Sets up callback function to be called when the library reports work progress or errors. The callback must not call any library functions.
@@ -399,7 +401,7 @@
Getters for `width`, `height` and `gamma` of the input image.
-##Multithreading
+## Multithreading
The library is stateless and doesn't use any global or thread-local storage. It doesn't use any locks.
@@ -408,7 +410,7 @@
The library needs to sort unique colors present in the image. Although the sorting algorithm does few things to make stack usage minimal in typical cases, there is no guarantee against extremely degenerate cases, so threads should have automatically growing stack.
-###OpenMP
+### OpenMP
The library will parallelize some operations if compiled with OpenMP.
@@ -416,7 +418,7 @@
Callback of `liq_image_create_custom()` may be called from different threads at the same time.
-##Acknowledgements
+## Acknowledgements
Thanks to Irfan Skiljan for helping test the first version of the library.
diff -Nru pngquant-2.0.1/lib/mempool.c pngquant-2.0.2/lib/mempool.c
--- pngquant-2.0.1/lib/mempool.c 2013-10-24 09:20:48.000000000 +1100
+++ pngquant-2.0.2/lib/mempool.c 2014-01-17 09:12:45.000000000 +1100
@@ -35,9 +35,9 @@
.used = sizeof(struct mempool),
.next = old,
};
- uintptr_t mptr_used_start = (uintptr_t)(*mptr + (*mptr)->used);
+ uintptr_t mptr_used_start = (uintptr_t)(*mptr) + (*mptr)->used;
(*mptr)->used += (ALIGN_MASK + 1 - (mptr_used_start & ALIGN_MASK)) & ALIGN_MASK; // reserve bytes required to make subsequent allocations aligned
- assert(!((uintptr_t)(*mptr + (*mptr)->used) & ALIGN_MASK));
+ assert(!(((uintptr_t)(*mptr) + (*mptr)->used) & ALIGN_MASK));
return mempool_alloc(mptr, size, size);
}
diff -Nru pngquant-2.0.1/Makefile pngquant-2.0.2/Makefile
--- pngquant-2.0.1/Makefile 2013-10-24 09:20:48.000000000 +1100
+++ pngquant-2.0.2/Makefile 2014-01-17 09:12:45.000000000 +1100
@@ -1,5 +1,5 @@
# Makefile for pngquant
-VERSION = $(shell grep 'define PNGQUANT_VERSION' pngquant.c | egrep -Eo '[12]\.[0-9.]*')
+VERSION = $(shell grep 'define PNGQUANT_VERSION' pngquant.c | grep -Eo '[12]\.[0-9.]*')
# This changes default "cc" to "gcc", but still allows customization of the CC variable
# if this line causes problems with non-GNU make, just remove it:
@@ -13,12 +13,33 @@
CUSTOMLIBPNG ?= ../libpng
CUSTOMZLIB ?= ../zlib
-CFLAGSOPT ?= -DNDEBUG -O3 -fstrict-aliasing -ffast-math -funroll-loops -fomit-frame-pointer -ffinite-math-only
+CFLAGSOPT ?= -DNDEBUG -O3 -ffast-math -funroll-loops -fomit-frame-pointer
-CFLAGS ?= -Wall -Wno-unknown-pragmas -I. -I$(CUSTOMLIBPNG) -I$(CUSTOMZLIB) -I/usr/local/include/ -I/usr/include/ -I/usr/X11/include/ $(CFLAGSOPT)
+CFLAGS ?= -Wall -Wno-unknown-pragmas -I. -I/usr/local/include/ -I/usr/include/ $(CFLAGSOPT)
CFLAGS += -std=c99 $(CFLAGSADD)
-LDFLAGS ?= -L$(CUSTOMLIBPNG) -L$(CUSTOMZLIB) -L/usr/local/lib/ -L/usr/lib/ -L/usr/X11/lib/
+LDFLAGS ?= -L/usr/local/lib/ -L/usr/lib/
+
+ifneq "$(wildcard /usr/X11/lib/)" ""
+LDFLAGS += -L/usr/X11/lib/
+CFLAGS += -I/usr/X11/include/
+endif
+
+ifneq "$(wildcard /opt/local/lib)" ""
+LDFLAGS += -L/opt/local/lib
+CFLAGS += -I/opt/local/include/libpng15
+endif
+
+ifneq "$(wildcard $(CUSTOMLIBPNG))" ""
+LDFLAGS += -L$(CUSTOMLIBPNG) -L$(CUSTOMLIBPNG)/lib
+CFLAGS += -I$(CUSTOMLIBPNG) -I$(CUSTOMLIBPNG)/include
+endif
+
+ifneq "$(wildcard $(CUSTOMZLIB))" ""
+LDFLAGS += -L$(CUSTOMZLIB) -L$(CUSTOMZLIB)/lib
+CFLAGS += -I$(CUSTOMZLIB) -I$(CUSTOMZLIB)/include
+endif
+
LDFLAGS += -lpng -lz -lm lib/libimagequant.a -lm $(LDFLAGSADD)
OBJS = pngquant.o rwpng.o
@@ -41,7 +62,7 @@
all: $(BIN)
lib/libimagequant.a::
- $(MAKE) -C lib -$(MAKEFLAGS) static
+ $(MAKE) -C lib static
openmp::
$(MAKE) CFLAGSADD="$(CFLAGSADD) -fopenmp" OPENMPFLAGS="-Bstatic -lgomp" -j8 $(MKFLAGS)
@@ -73,7 +94,7 @@
clean:
rm -f $(BIN) $(OBJS) $(COCOA_OBJS) $(TARFILE) build_configuration
- $(MAKE) -C lib -$(MAKEFLAGS) clean
+ $(MAKE) -C lib clean
build_configuration::
@test -f build_configuration && test $(BUILD_CONFIGURATION) = "`cat build_configuration`" || echo > build_configuration $(BUILD_CONFIGURATION)
diff -Nru pngquant-2.0.1/pngquant.c pngquant-2.0.2/pngquant.c
--- pngquant-2.0.1/pngquant.c 2013-10-24 09:20:48.000000000 +1100
+++ pngquant-2.0.2/pngquant.c 2014-01-17 09:12:45.000000000 +1100
@@ -13,7 +13,7 @@
** implied warranty.
*/
-#define PNGQUANT_VERSION "2.0.1 (September 2013)"
+#define PNGQUANT_VERSION "2.0.2 (January 2014)"
#define PNGQUANT_USAGE "\
usage: pngquant [options] [ncolors] [pngfile [pngfile ...]]\n\n\
@@ -41,6 +41,9 @@
#include <stdbool.h>
#include <getopt.h>
+extern char *optarg;
+extern int optind, opterr;
+
#if defined(WIN32) || defined(__WIN32__)
# include <fcntl.h> /* O_BINARY */
# include <io.h> /* setmode() */
diff -Nru pngquant-2.0.1/rwpng.c pngquant-2.0.2/rwpng.c
--- pngquant-2.0.1/rwpng.c 2013-10-24 09:20:48.000000000 +1100
+++ pngquant-2.0.2/rwpng.c 2014-01-17 09:12:45.000000000 +1100
@@ -31,6 +31,7 @@
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include "png.h"
#include "rwpng.h"
@@ -48,8 +49,18 @@
void rwpng_version_info(FILE *fp)
{
+ const char *pngver = png_get_header_ver(NULL);
+
fprintf(fp, " Compiled with libpng %s; using libpng %s.\n",
- PNG_LIBPNG_VER_STRING, png_get_header_ver(NULL));
+ PNG_LIBPNG_VER_STRING, pngver);
+
+#if PNG_LIBPNG_VER < 10600
+ if (strcmp(pngver, "1.3.") < 0) {
+ fputs("\nWARNING: Your version of libpng is outdated and may produce corrupted files.\n"
+ "Please recompile pngquant with newer version of libpng (1.5 or later.)\n", fp);
+ }
+#endif
+
#if USE_COCOA
fputs(" Compiled with Apple Cocoa image reader.\n", fp);
#endif
@@ -142,9 +153,7 @@
if (!(color_type & PNG_COLOR_MASK_ALPHA)) {
#ifdef PNG_READ_FILLER_SUPPORTED
- /* GRP: expand palette to RGB, and grayscale or RGB to GA or RGBA */
- if (color_type == PNG_COLOR_TYPE_PALETTE)
- png_set_expand(png_ptr);
+ png_set_expand(png_ptr);
png_set_filler(png_ptr, 65535L, PNG_FILLER_AFTER);
#else
fprintf(stderr, "pngquant readpng: image is neither RGBA nor GA\n");
@@ -291,6 +300,7 @@
/* set the image parameters appropriately */
int sample_depth;
+#if PNG_LIBPNG_VER > 10400 /* old libpng corrupts files with low depth */
if (mainprog_ptr->num_palette <= 2)
sample_depth = 1;
else if (mainprog_ptr->num_palette <= 4)
@@ -298,6 +308,7 @@
else if (mainprog_ptr->num_palette <= 16)
sample_depth = 4;
else
+#endif
sample_depth = 8;
png_set_IHDR(png_ptr, info_ptr, mainprog_ptr->width, mainprog_ptr->height,
More information about the Pkg-phototools-devel
mailing list