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 <[email protected]>  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 <[email protected]>
-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 <[email protected]>
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: QPxTool
+Upstream-Contact: Gennady "ShultZ" Kozlov <[email protected]>
 Source: https://sourceforge.net/projects/qpxtool/files/
 
+Files: *
 Copyright: 2005-2007 Gennady "ShultZ" Kozlov <[email protected]>
 License: GPL-2+
 
-Files: ./debian/*
+Files: debian/*
 Copyright:
  2010 Alessio Treglia <[email protected]>
  2006-2008 Daniel Baumann <[email protected]>
+ 2012 Nobuhiro Iwamatsu <[email protected]>
+ 2012 Boris Pek <[email protected]>
 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 <[email protected]>
+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 <[email protected]>
+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 via email to