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

Freeze exception for qpxtool/0.7.1.002-6



Dear release team,

I ask for a freeze exception for qpxtool version 0.7.1.002-6.

I have prepared few QA uploads. But unfortunately not all of them were
sponsored before freeze [1].

This update of the package does not fix any RC bug, but it fixes important
and wishlist bugs. Also the quality of package was improved in common.

File in attachment was produced using command:

$ debdiff qpxtool_0.7.1.002-5.dsc qpxtool_0.7.1.002-6.dsc > qpxtool_0.7.1.002-5:0.7.1.002-6.diff

It would be nice to see this updated package in Wheezy.

Best regards,
Boris

[1] http://bugs.debian.org/cgi-bin/pkgreport.cgi?include=subject%3A[QA];package=sponsorship-requests
diff -Nru qpxtool-0.7.1.002/debian/changelog qpxtool-0.7.1.002/debian/changelog
--- qpxtool-0.7.1.002/debian/changelog	2011-06-21 14:04:14.000000000 +0300
+++ qpxtool-0.7.1.002/debian/changelog	2012-06-26 03:13:59.000000000 +0300
@@ -1,3 +1,24 @@
+qpxtool (0.7.1.002-6) unstable; urgency=low
+
+  * QA upload.
+  * Bumped Standards-Version to 3.9.3 (was 3.9.2).
+  * Bumped debhelper version to 9 (was 7.0.50~); updated debian/compat.
+  * Added file debian/patches/05-add-hardening-flags-in-compiler-options.patch.
+  * Updated debian/rules: added hardening flags in compiler options.
+  * Changed build dependency from libpng12-dev to libpng-dev.
+    Added file debian/patches/04-fix-build-with-libpng15.patch.
+    Added small hack in debian/rules (see LIBPNG_VER variable).
+    Build with libpng version 1.5.10 was tested successfully.
+    (Closes: #662481, #648127)
+  * Used [kfreebsd-any] instead of hardcoded list of kFreeBSD architectures
+    [kfreebsd-i386 kfreebsd-amd64] in build dependency. (Closes: #634714)
+  * File debian/copyright was updated in according to Copyright format 1.0.
+  * Fixed such lintian warnings and notes:
+    - out-of-date-copyright-format-uri
+    - hardening-no-relro and hardening-no-fortify-functions
+
+ -- Boris Pek <tehnick-8@mail.ru>  Tue, 26 Jun 2012 03:11:10 +0300
+
 qpxtool (0.7.1.002-5) unstable; urgency=low
 
   * QA upload.
diff -Nru qpxtool-0.7.1.002/debian/compat qpxtool-0.7.1.002/debian/compat
--- qpxtool-0.7.1.002/debian/compat	2011-06-21 14:02:14.000000000 +0300
+++ qpxtool-0.7.1.002/debian/compat	2012-06-26 03:13:59.000000000 +0300
@@ -1 +1 @@
-7
+9
diff -Nru qpxtool-0.7.1.002/debian/control qpxtool-0.7.1.002/debian/control
--- qpxtool-0.7.1.002/debian/control	2011-06-21 14:03:58.000000000 +0300
+++ qpxtool-0.7.1.002/debian/control	2012-06-26 03:13:59.000000000 +0300
@@ -2,12 +2,12 @@
 Section: otherosfs
 Priority: optional
 Maintainer: Debian QA Group <packages@qa.debian.org>
-Build-Depends: debhelper (>= 7.0.50~),
- libcam-dev [kfreebsd-i386 kfreebsd-amd64],
- libpng12-dev,
+Build-Depends: debhelper (>= 9),
+ libcam-dev [kfreebsd-any],
+ libpng-dev,
  qt4-qmake,
  libqt4-dev
-Standards-Version: 3.9.2
+Standards-Version: 3.9.3
 Homepage: http://qpxtool.sourceforge.net/
 Vcs-Git: git://git.debian.org/collab-maint/qpxtool.git
 Vcs-Browser: http://git.debian.org/?p=collab-maint/qpxtool.git
diff -Nru qpxtool-0.7.1.002/debian/copyright qpxtool-0.7.1.002/debian/copyright
--- qpxtool-0.7.1.002/debian/copyright	2011-06-21 14:02:14.000000000 +0300
+++ qpxtool-0.7.1.002/debian/copyright	2012-06-26 03:13:59.000000000 +0300
@@ -1,30 +1,33 @@
-Format-Specification: http://svn.debian.org/wsvn/dep/web/deps/dep5.mdwn?op=file&rev=135
-Name: QPxTool
-Maintainer: Gennady "ShultZ" Kozlov <qpxtool@mail.ru>
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: QPxTool
+Upstream-Contact: Gennady "ShultZ" Kozlov <qpxtool@mail.ru>
 Source: https://sourceforge.net/projects/qpxtool/files/
 
+Files: *
 Copyright: 2005-2007 Gennady "ShultZ" Kozlov <qpxtool@mail.ru>
 License: GPL-2+
 
-Files: ./debian/*
+Files: debian/*
 Copyright:
  2010 Alessio Treglia <alessio@debian.org>
  2006-2008 Daniel Baumann <daniel@debian.org>
+ 2012 Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
+ 2012 Boris Pek <tehnick-8@mail.ru>
 License: GPL-2+
 
 License: GPL-2+
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2
- of the License, or (at your option) any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
  .
  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.
  .
  You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-X-Comment: On Debian systems, the complete text of the GNU General Public
- License can be found in /usr/share/common-licenses/GPL-2 file.
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+ .
+ On Debian systems, the complete text of the GNU General
+ Public License can be found in `/usr/share/common-licenses/GPL-2'.
diff -Nru qpxtool-0.7.1.002/debian/patches/04-fix-build-with-libpng15.patch qpxtool-0.7.1.002/debian/patches/04-fix-build-with-libpng15.patch
--- qpxtool-0.7.1.002/debian/patches/04-fix-build-with-libpng15.patch	1970-01-01 03:00:00.000000000 +0300
+++ qpxtool-0.7.1.002/debian/patches/04-fix-build-with-libpng15.patch	2012-06-26 03:13:59.000000000 +0300
@@ -0,0 +1,224 @@
+Description: Fix FTBFS with libpng >= 1.4
+Author: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
+Bug-Debian: http://bugs.debian.org/662481
+            http://bugs.debian.org/648127
+Last-Update: 2012-06-26
+
+--- a/console/f1tattoo/f1tattoo.cpp
++++ b/console/f1tattoo/f1tattoo.cpp
+@@ -81,6 +81,58 @@ int get_device_info(drive_info* drive)
+ }
+ 
+ #ifdef USE_LIBPNG
++static int my_png_get_image_width(png_structp png_ptr, png_infop info_ptr) {
++#if PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR >= 4 
++	return png_get_image_width(png_ptr, info_ptr);
++#else
++	return info_ptr->width;
++#endif
++}
++
++static int my_png_get_image_height(png_structp png_ptr, png_infop info_ptr) {
++#if PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR >= 4 
++	return png_get_image_height(png_ptr, info_ptr);
++#else
++	return info_ptr->height;
++#endif
++}
++
++static png_byte my_png_get_color_type(png_structp png_ptr, png_infop info_ptr)
++{
++#if PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR >= 4
++	return png_get_color_type(png_ptr, info_ptr);
++#else
++	return info_ptr->color_type;
++#endif
++}
++
++static png_uint_32 my_png_get_valid(png_structp png_ptr, png_infop info_ptr, png_uint_32 flags)
++{
++#if PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR >= 4
++	return png_get_valid(png_ptr, info_ptr, PNG_INFO_PLTE);
++#else
++	return (info_ptr->valid & flags);
++#endif
++}
++
++static int my_png_get_bit_depth(png_structp png_ptr, png_infop info_ptr)
++{
++#if PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR >= 4
++	return png_get_bit_depth(png_ptr, info_ptr);
++#else
++	return info_ptr->bit_depth;
++#endif
++}
++
++static int my_png_get_rowbytes(png_structp png_ptr, png_infop info_ptr)
++{
++#if PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR >= 4
++	return png_get_rowbytes(png_ptr, info_ptr);
++#else
++	return info_ptr->rowbytes;
++#endif
++}
++
+ bool tattoo_read_png(unsigned char *buf, uint32_t rows, FILE *fp)
+ {
+ 	png_byte	header[8];	// 8 is the maximum size that can be checked
+@@ -95,6 +147,10 @@ bool tattoo_read_png(unsigned char *buf,
+ 	uint32_t row, col;
+ 	int      c;
+ 	int32_t  r,g,b;
++	int num_palette;
++#if PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR >= 4
++	png_colorp palette;
++#endif
+ 
+ 	if (fread(header, 1, 8, fp) < 8) {
+ 		printf("Error reading PNG header\n");
+@@ -129,9 +185,11 @@ bool tattoo_read_png(unsigned char *buf,
+ 
+ 	png_read_info(png_ptr, info_ptr);
+ 
+-	printf("Image size: %ld x %ld\n", info_ptr->width, info_ptr->height);
++	printf("Image size: %ld x %ld\n",
++					my_png_get_image_width(png_ptr, info_ptr),
++					my_png_get_image_height(png_ptr, info_ptr));
+ 
+-	if (info_ptr->width != 3744U || info_ptr->height != rows ) {
++	if (my_png_get_image_width(png_ptr, info_ptr) != 3744U || my_png_get_image_height(png_ptr, info_ptr) != rows ) {
+ 		printf("Image should be 3744 x %d", rows);
+ 		return 1;
+ 	}
+@@ -140,17 +198,21 @@ bool tattoo_read_png(unsigned char *buf,
+ //	height = info_ptr->height;
+ //	bit_depth = info_ptr->bit_depth;
+ 
++#if PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR >= 4 
+ 	number_of_passes = png_set_interlace_handling(png_ptr);
++#else
++	number_of_passes = png_set_interlace_handling(png_ptr);
++#endif
+ 	png_read_update_info(png_ptr, info_ptr);
+ 
+-	printf("Color type: [%d] ", info_ptr->color_type);
+-	switch (info_ptr->color_type) {
++	printf("Color type: [%d] ", my_png_get_color_type(png_ptr, info_ptr));
++	switch (my_png_get_color_type(png_ptr, info_ptr)) {
+ 	    case PNG_COLOR_TYPE_GRAY:
+ 			printf("PNG_COLOR_TYPE_GRAY\n");
+ 			break;
+ 	    case PNG_COLOR_TYPE_PALETTE:
+ 			printf("PNG_COLOR_TYPE_PALETTE\n");
+-			if (!(info_ptr->valid & PNG_INFO_PLTE)) {
++			if (!(my_png_get_valid(png_ptr, info_ptr, PNG_INFO_PLTE))) {
+ 				printf("PNG color type is indexed, but no palette found!");
+ 				goto err_read_png;
+ 			}
+@@ -168,49 +230,64 @@ bool tattoo_read_png(unsigned char *buf,
+ 			printf("unlnown PNG color type!\n");
+ 			goto err_read_png;
+ 	}
+-	printf("Bit depth : %d\n", info_ptr->bit_depth);
+-	if (info_ptr->bit_depth != 8) {
++	printf("Bit depth : %d\n", my_png_get_bit_depth(png_ptr, info_ptr));
++	if (my_png_get_bit_depth(png_ptr, info_ptr) != 8) {
+ 		printf("Unsupported bit depth!\n");
+ 		goto err_read_png;
+ 	}
+-	if (info_ptr->valid & PNG_INFO_PLTE) {
+-		printf("Palette   : %d colors\n", info_ptr->num_palette);
++
++#if PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR >= 4
++	png_get_PLTE(png_ptr, info_ptr, &palette, &num_palette);
++#else
++	num_palette = info_ptr->num_palette;
++#endif
++	if (my_png_get_valid(png_ptr, info_ptr, PNG_INFO_PLTE)) {
++		printf("Palette   : %d colors\n", num_palette);
+ 	} else {
+ 		printf("Palette   : NO\n");
+ 	}
+-	printf("ROW bytes : %ld\n", info_ptr->rowbytes);
++	printf("ROW bytes : %ld\n", my_png_get_rowbytes(png_ptr, info_ptr));
+ 
+ 
+ 	raw_row_pointer = buf;
+-	png_row_pointer = (png_byte*) malloc(info_ptr->rowbytes);
++	png_row_pointer = (png_byte*) malloc(my_png_get_rowbytes(png_ptr, info_ptr));
+ 	for (row=0; row<rows; row++) {
+ 		if (setjmp(png_jmpbuf(png_ptr))) {
+ 			printf("png_jmpbuf failed!\n");
+ 			goto err_read_png;
+ 		}
+ 		png_read_row(png_ptr, png_row_pointer, NULL);
+-		if (info_ptr->width < 3744U)
++		if (my_png_get_image_width(png_ptr, info_ptr) < 3744U)
+ 			memset(raw_row_pointer, 0, 3744);
+ 
+-		switch (info_ptr->color_type) {
++		switch (my_png_get_color_type(png_ptr, info_ptr)) {
+ 		    case PNG_COLOR_TYPE_GRAY:
+-				for (col=0; col<info_ptr->width; col++) {
++				for (col=0; col<my_png_get_image_width(png_ptr, info_ptr); col++) {
+ 					raw_row_pointer[col] = png_row_pointer[col] ^ 0xFF;
+ //					memcpy(raw_row_pointer, png_row_pointer, 3744);
+ 				}
+ 				break;
+ 		    case PNG_COLOR_TYPE_PALETTE:
+-				for (col=0; col<info_ptr->width; col++) {
++				for (col=0; col<my_png_get_image_width(png_ptr, info_ptr); col++) {
+ 					c = png_row_pointer[col];
++#if PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR >= 4
++					r = palette[c].red;
++					g = palette[c].green;
++					b = palette[c].blue;
++#else
+ 					r = info_ptr->palette[c].red;
+ 					g = info_ptr->palette[c].green;
+ 					b = info_ptr->palette[c].blue;
++#endif
+ 					c = (r*11 + g*16 + b*5) / 32;
+ 					raw_row_pointer[col] = c ^ 0xFF;
+ 				}
++#if PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR >= 4
++				png_set_PLTE(png_ptr, info_ptr, palette, num_palette);
++#endif
+ 				break;
+ 		    case PNG_COLOR_TYPE_RGB:
+-				for (col=0; col<info_ptr->width; col++) {
++				for (col=0; col< my_png_get_image_width(png_ptr, info_ptr); col++) {
+ 					r = png_row_pointer[col*3];
+ 					g = png_row_pointer[col*3+1];
+ 					b = png_row_pointer[col*3+2];
+@@ -219,7 +296,7 @@ bool tattoo_read_png(unsigned char *buf,
+ 				}
+ 				break;
+ 		    case PNG_COLOR_TYPE_RGB_ALPHA:
+-				for (col=0; col<info_ptr->width; col++) {
++				for (col=0; col<my_png_get_image_width(png_ptr, info_ptr); col++) {
+ 					r = png_row_pointer[col*4];
+ 					g = png_row_pointer[col*4+1];
+ 					b = png_row_pointer[col*4+2];
+@@ -228,7 +305,7 @@ bool tattoo_read_png(unsigned char *buf,
+ 				}
+ 				break;
+ 		    case PNG_COLOR_TYPE_GRAY_ALPHA:
+-				for (col=0; col<info_ptr->width; col++) {
++				for (col=0; col<my_png_get_image_width(png_ptr, info_ptr); col++) {
+ 					raw_row_pointer[col] = png_row_pointer[col*2] ^ 0xFF;
+ 				}
+ 				break;
+--- a/Makefile
++++ b/Makefile
+@@ -10,8 +10,8 @@ LIBS_INET =
+ LIBS_DL   = -ldl
+ LIBS_THREAD = -lpthread
+ 
+-LPNG_INC  = -I/usr/include/libpng12
+-LPNG_LIB  = -L/usr/lib -lpng12
++LPNG_INC  = -I/usr/include/lib${LIBPNG_VER}
++LPNG_LIB  = -L/usr/lib -l${LIBPNG_VER}
+ 
+ 
+ CXXFLAGS += -Wall -O2 -fPIC -DUSE_LIBPNG  
diff -Nru qpxtool-0.7.1.002/debian/patches/05-add-hardening-flags-in-compiler-options.patch qpxtool-0.7.1.002/debian/patches/05-add-hardening-flags-in-compiler-options.patch
--- qpxtool-0.7.1.002/debian/patches/05-add-hardening-flags-in-compiler-options.patch	1970-01-01 03:00:00.000000000 +0300
+++ qpxtool-0.7.1.002/debian/patches/05-add-hardening-flags-in-compiler-options.patch	2012-06-26 03:13:59.000000000 +0300
@@ -0,0 +1,18 @@
+Description: Add hardening flags in compiler options
+Author: Boris Pek <tehnick-8@mail.ru>
+Last-Update: 2012-06-21
+
+--- a/gui/qpxtool.pro
++++ b/gui/qpxtool.pro
+@@ -13,6 +13,11 @@ TARGET = qpxtool
+ DEPENDPATH += . include locale src
+ INCLUDEPATH += . include
+ 
++QMAKE_CXXFLAGS += $(Q_CXXFLAGS)
++QMAKE_CFLAGS_DEBUG += $(Q_CFLAGS)
++QMAKE_CFLAGS_RELEASE += $(Q_CFLAGS)
++QMAKE_LFLAGS += $(Q_LDFLAGS)
++
+ # Input
+ HEADERS += include/about.h \
+            include/abstractpreview.h \
diff -Nru qpxtool-0.7.1.002/debian/patches/series qpxtool-0.7.1.002/debian/patches/series
--- qpxtool-0.7.1.002/debian/patches/series	2011-06-21 14:02:14.000000000 +0300
+++ qpxtool-0.7.1.002/debian/patches/series	2012-06-26 03:13:59.000000000 +0300
@@ -1,3 +1,5 @@
 01-makefile.patch
 02-desktop_file.patch
 03-ftbfs_kfreebsd.patch
+04-fix-build-with-libpng15.patch
+05-add-hardening-flags-in-compiler-options.patch
diff -Nru qpxtool-0.7.1.002/debian/rules qpxtool-0.7.1.002/debian/rules
--- qpxtool-0.7.1.002/debian/rules	2011-06-21 14:02:14.000000000 +0300
+++ qpxtool-0.7.1.002/debian/rules	2012-06-26 03:13:59.000000000 +0300
@@ -6,6 +6,14 @@
 export QPXTRANSPORT_EXTRA_LIBS="-lcam"
 endif
 
+Q_CPPFLAGS:=$(shell dpkg-buildflags --get CPPFLAGS)
+Q_CFLAGS:=$(shell dpkg-buildflags --get CFLAGS) $(Q_CPPFLAGS)
+Q_CXXFLAGS:=$(shell dpkg-buildflags --get CXXFLAGS) $(Q_CPPFLAGS)
+Q_LDFLAGS:=$(shell dpkg-buildflags --get LDFLAGS) -Wl,--as-needed
+export Q_CPPFLAGS Q_CFLAGS Q_CXXFLAGS Q_LDFLAGS
+
+export LIBPNG_VER="png$(shell dpkg -l | grep libpng | sed -e 's:^.*  libpng\([0-9]*\).*$:\1:' | uniq)"
+
 %:
 	dh $@
 

Reply to: