Package: pngtools
Version: 0.4-1
Severity: normal
Tags: patch pending

Dear maintainer,

I've prepared an NMU for pngtools (versioned as 0.4-1.1) and
uploaded it to DELAYED/7. Please feel free to tell me if I
should delay it longer.

Regards.
diff -u pngtools-0.4/debian/control pngtools-0.4/debian/control
--- pngtools-0.4/debian/control
+++ pngtools-0.4/debian/control
@@ -2,7 +2,7 @@
 Section: graphics
 Priority: optional
 Maintainer: Nelson A. de Oliveira <nao...@debian.org>
-Build-Depends: cdbs, debhelper (>= 7), libpng12-dev
+Build-Depends: cdbs, debhelper (>= 7), libpng-dev
 Standards-Version: 3.8.3
 Homepage: http://www.stillhq.com/pngtools/
 
diff -u pngtools-0.4/debian/changelog pngtools-0.4/debian/changelog
--- pngtools-0.4/debian/changelog
+++ pngtools-0.4/debian/changelog
@@ -1,3 +1,11 @@
+pngtools (0.4-1.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix "FTBFS with libpng 1.5", taking patch from Nobuhiro (Closes: #641892)
+  * Change B-D to libpng-dev from libpng12-dev (Closes: #662476)
+
+ -- Tobias Frost <t...@debian.org>  Thu, 07 Jan 2016 01:05:36 +0100
+
 pngtools (0.4-1) unstable; urgency=low
 
   * New upstream release;
only in patch2:
unchanged:
--- pngtools-0.4.orig/Makefile.in
+++ pngtools-0.4/Makefile.in
@@ -67,7 +67,7 @@
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -lpng
 SOURCES = $(pngchunkdesc_SOURCES) $(pngchunks_SOURCES) \
        $(pngcp_SOURCES) $(pnginfo_SOURCES)
 DIST_SOURCES = $(pngchunkdesc_SOURCES) $(pngchunks_SOURCES) \
only in patch2:
unchanged:
--- pngtools-0.4.orig/pnginfo.c
+++ pngtools-0.4/pnginfo.c
@@ -136,6 +136,10 @@
   unsigned long imageBufSize, width, height, runlen;
   unsigned char signature;
   int bitdepth, colourtype;
+  png_byte channels;
+  int interlace_type, compression_type, filter_type;
+  png_uint_32 res_x, res_y;
+  int unit_type;
   png_uint_32 i, j, rowbytes;
   png_structp png;
   png_infop info;
@@ -177,8 +181,8 @@
   png_init_io (png, image);
   png_set_sig_bytes (png, 8);
   png_read_info (png, info);
-  png_get_IHDR (png, info, &width, &height, &bitdepth, &colourtype, NULL,
-               NULL, NULL);
+  png_get_IHDR (png, info, &width, &height, &bitdepth, &colourtype, 
&interlace_type, &compression_type, &filter_type);
+  channels = png_get_channels(png, info);
 
   ///////////////////////////////////////////////////////////////////////////
   // Start displaying information
@@ -187,15 +191,25 @@
   printf ("  Image Width: %d Image Length: %d\n", width, height);
   if(tiffnames == pnginfo_true){
     printf ("  Bits/Sample: %d\n", bitdepth);
-    printf ("  Samples/Pixel: %d\n", info->channels);
-    printf ("  Pixel Depth: %d\n", info->pixel_depth); // Does this add value?
+    printf ("  Samples/Pixel: %d\n", channels);
+    printf ("  Pixel Depth: %d\n",channels * bitdepth);        // Does this 
add value?
   }
   else{
     printf ("  Bitdepth (Bits/Sample): %d\n", bitdepth);
-    printf ("  Channels (Samples/Pixel): %d\n", info->channels);
-    printf ("  Pixel depth (Pixel Depth): %d\n", info->pixel_depth);   // Does 
this add value?
+    printf ("  Channels (Samples/Pixel): %d\n", channels);
+    printf ("  Pixel depth (Pixel Depth): %d\n",  channels * bitdepth);        
// Does this add value?
   }
 
+  png_bytep trans_alpha;
+  int num_trans;
+  png_color_16p trans_color;
+  png_colorp palette;
+  int num_palette;
+
+  png_get_tRNS(png, info, &trans_alpha, &num_trans, &trans_color);
+  png_get_PLTE(png, info, &palette, &num_palette);
+  png_get_pHYs_dpi(png, info, &res_x, &res_y, &unit_type);
+
   // Photometric interp packs a lot of information
   printf ("  Colour Type (Photometric Interpretation): ");
 
@@ -207,10 +221,10 @@
 
     case PNG_COLOR_TYPE_PALETTE:
       printf ("PALETTED COLOUR ");
-      if (info->num_trans > 0)
+      if (num_trans > 0)
        printf ("with alpha ");
       printf ("(%d colours, %d transparent) ",
-             info->num_palette, info->num_trans);
+             num_palette, num_trans);
       break;
 
     case PNG_COLOR_TYPE_RGB:
@@ -232,7 +246,7 @@
   printf ("\n");
 
   printf ("  Image filter: ");
-  switch (info->filter_type)
+  switch (filter_type)
     {
     case PNG_FILTER_TYPE_BASE:
       printf ("Single row per byte filter ");
@@ -249,7 +263,7 @@
   printf ("\n");
 
   printf ("  Interlacing: ");
-  switch (info->interlace_type)
+  switch (interlace_type)
     {
     case PNG_INTERLACE_NONE:
       printf ("No interlacing ");
@@ -266,7 +280,7 @@
   printf ("\n");
 
   printf ("  Compression Scheme: ");
-  switch (info->compression_type)
+  switch (compression_type)
     {
     case PNG_COMPRESSION_TYPE_BASE:
       printf ("Deflate method 8, 32k window");
@@ -278,9 +292,8 @@
     }
   printf ("\n");
 
-  printf ("  Resolution: %d, %d ",
-         info->x_pixels_per_unit, info->y_pixels_per_unit);
-  switch (info->phys_unit_type)
+  printf ("  Resolution: %d, %d ",res_x, res_y);
+  switch (unit_type)
     {
     case PNG_RESOLUTION_UNKNOWN:
       printf ("(unit unknown)");
@@ -299,15 +312,19 @@
   // FillOrder is always msb-to-lsb, big endian
   printf ("  FillOrder: msb-to-lsb\n  Byte Order: Network (Big Endian)\n");
 
+  png_textp text_ptr;
+  int num_text;
+  png_get_text(png, info, &text_ptr, &num_text);
+
   // Text comments
-  printf ("  Number of text strings: %d of %d\n",
-         info->num_text, info->max_text);
+  printf ("  Number of text strings: %d\n",
+         num_text);
 
-  for (i = 0; i < info->num_text; i++)
+  for (i = 0; i < num_text; i++)
     {
-      printf ("    %s ", info->text[i].key);
+      printf ("    %s ", text_ptr[i].key);
 
-      switch (info->text[1].compression)
+      switch (text_ptr[1].compression)
        {
        case -1:
          printf ("(tEXt uncompressed)");
@@ -332,12 +349,12 @@
 
       printf (": ");
       j = 0;
-      while (info->text[i].text[j] != '\0')
+      while (text_ptr[i].text[j] != '\0')
        {
-         if (info->text[i].text[j] == '\n')
+         if (text_ptr[i].text[j] == '\n')
            printf ("\\n");
          else
-           fputc (info->text[i].text[j], stdout);
+           fputc (text_ptr[i].text[j], stdout);
 
          j++;
        }
@@ -385,14 +402,14 @@
 
          printf ("Dumping the bitmap for this image:\n");
          printf ("(Expanded samples result in %d bytes per pixel, %d channels 
with %d bytes per channel)\n\n", 
-                 info->channels * bytespersample, info->channels, 
bytespersample);
+                 channels * bytespersample, channels, bytespersample);
 
          // runlen is used to stop us displaying repeated byte patterns over 
and over --
          // I display them once, and then tell you how many times it occured 
in the file.
          // This currently only applies to runs on zeros -- I should one day 
add an
          // option to extend this to runs of other values as well
          runlen = 0;
-         for (i = 0; i < rowbytes * height / info->channels; i += 
info->channels * bytespersample)
+         for (i = 0; i < rowbytes * height / channels; i += channels * 
bytespersample)
            {
              int scount, bcount, pixel;
 
@@ -408,16 +425,16 @@
 
              // Determine if this is a pixel whose entire value is zero
              pixel = 0;
-             for(scount = 0; scount < info->channels; scount++)
+             for(scount = 0; scount < channels; scount++)
                for(bcount = 0; bcount < bytespersample; bcount++)
                  pixel += bitmap[i + scount * bytespersample + bcount];
 
              if ((runlen == 0) && !pixel)
                {
                  printf ("[");
-                 for(scount = 0; scount < info->channels; scount++){
+                 for(scount = 0; scount < channels; scount++){
                    for(bcount = 0; bcount < bytespersample; bcount++) 
printf("00");
-                   if(scount != info->channels - 1) printf(" ");
+                   if(scount != channels - 1) printf(" ");
                  }
                  printf ("] ");
                  runlen++;
@@ -425,10 +442,10 @@
 
              if (runlen == 0){
                printf ("[");
-               for(scount = 0; scount < info->channels; scount++){
+               for(scount = 0; scount < channels; scount++){
                  for(bcount = 0; bcount < bytespersample; bcount++)
                    printf("%02x", (unsigned char) bitmap[i + scount * 
bytespersample + bcount]);
-                 if(scount != info->channels - 1) printf(" ");
+                 if(scount != channels - 1) printf(" ");
                }
                printf("] ");
              }
only in patch2:
unchanged:
--- pngtools-0.4.orig/pngread.c
+++ pngtools-0.4/pngread.c
@@ -68,7 +68,7 @@
   // palette is correctly reported...
   //png_set_strip_alpha (png);
   png_read_update_info (png, info);
-  *channels = info->channels;
+  *channels = png_get_channels(png, info);
   
   rowbytes = png_get_rowbytes (png, info);
   if((row_pointers = malloc (*height * sizeof (png_bytep))) == NULL){

Reply via email to