Subject: Re: bug#27556: libpng has wrong hash. [Fwd: Re: why has the hash for libpng-apng 1.6.28 changed?]

From: ng0 <[email-masked]>
Date: Tue, 1 Aug 2017 15:47:08 +0000

ng0 transcribed 2.5K bytes:
> Leo Famulari transcribed 2.2K bytes:
> > On Sun, Jul 30, 2017 at 09:37:22AM +0000, ng0 wrote:
> > > Efraim Flashner transcribed 4.1K bytes:
> > > > On Wed, Jul 26, 2017 at 06:56:51AM +0000, ng0 wrote:
> > > > > My really strong guess is that we never updated the hash for
> > > > > libpng-apng when the libpng was updated fron which libpng-apng
> > > > > inherits its version.
> > 
> > [...]
> > 
> > > > git blame shows that back in February I updated libpng to 1.6.28 from
> > > > 1.6.25, but that the last time libpng-apng was touched was by ng0 back
> > > > in January.
> > > > 
> > > > commit: 864738baaa7bb75c08647ccfc684736479e67f7f
> > 
> > Aha, that must be it!
> > 
> > > Okay, so I will send the update for libpng-apng (which due to its
> > > inheritance of libpng is just the hash) and I will also add a second
> > > commit which adds a comment above libpng that we must update libpng-apng
> > > when we update libpng, if that's already possible (libpng-apng might not
> > > immediately be up to date, but we don't update libpng immediately aswell
> > > due to it being a core-updates candidate).
> > 
> > I think we should give libpng-apng its own version because, as you said,
> > libpng-apng may not be developed at the same pace as libpng. This way,
> > we won't end up with a broken libpng-apng again.

I appended a patch how I understood your idea.
-- 
ng0
GnuPG: A88C8ADD129828D7EAC02E52E22F9BBFEE348588
GnuPG: https://n0is.noblogs.org/my-keys
https://www.infotropique.org https://krosos.org
From 4326cad38700df43909eb6f430217fdfa4eca89f Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Tue, 1 Aug 2017 15:37:28 +0000
Subject: [PATCH] gnu: libpng-apng: Update to 1.6.28.

Fixes <https://bugs.gnu.org/27556>.

* gnu/packages/image.scm (libpng-apng): Update to 1.6.28.
Remove inherit of 'libpng'.
(version): Use own version, remove 'package-version libpng'.
(source): Add it.
(arguments): Update hash of libpng-apng source.
---
 gnu/packages/image.scm | 32 ++++++++++++++++++++++++++------
 1 file changed, 26 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 139be6281..3be675fc2 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -14,7 +14,7 @@
 ;;; Copyright © 2016 Eric Bavier <[email-masked]>
 ;;; Copyright © 2016 Arun Isaac <[email-masked]>
 ;;; Copyright © 2016, 2017 Kei Kebreau <[email-masked]>
-;;; Copyright © 2017 ng0 <[email-masked]>
+;;; Copyright © 2017 ng0 <[email-masked]>
 ;;; Copyright © 2017 Hartmut Goebel <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -91,11 +91,27 @@ library.  It supports almost all PNG features and is extensible.")
    (license license:zlib)
    (home-page "http://www.libpng.org/pub/png/libpng.html")))
 
+;; libpng-apng could be not in sync with libpng,
+;; reference bug: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27556
 (define-public libpng-apng
   (package
-    (inherit libpng)
     (name "libpng-apng")
-    (version (package-version libpng))
+    (version "1.6.28")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (list (string-append "mirror://sourceforge/libpng/libpng16/"
+                                 version "/libpng-" version ".tar.xz")
+                  (string-append
+                   "ftp://ftp.simplesystems.org/pub/libpng/png/src"
+                   "/libpng16/libpng-" version ".tar.xz")
+                  (string-append
+                   "ftp://ftp.simplesystems.org/pub/libpng/png/src/history"
+                   "/libpng16/libpng-" version ".tar.xz")))
+       (sha256
+        (base32
+         "0ylgyx93hnk38haqrh8prd3ax5ngzwvjqw5cxw7p9nxmwsfyrlyq"))))
+    (build-system gnu-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -111,7 +127,7 @@ library.  It supports almost all PNG features and is extensible.")
                (and (apply-patch "the-patch")
                     (for-each apply-patch
                               (find-files "\\.patch"))))
-           #t))
+             #t))
          (add-before 'configure 'no-checks
            (lambda _
              (substitute* "Makefile.in"
@@ -126,15 +142,19 @@ library.  It supports almost all PNG features and is extensible.")
                                   version "/libpng-" version "-apng.patch.gz"))
                   (sha256
                    (base32
-                    "026r0gbkf6d6v54wca02cdxln8sj4m2c1yk62sj2aasv2ki2ffh5"))))))
+                    "0m5nv70n9903x3xzxw9qqc6sgf2rp106ha0x6gix0xf8wcrljaab"))))))
     (native-inputs
      `(("libtool" ,libtool)))
+    ;; libpng.la says "-lz", so propagate it.
+    (propagated-inputs
+     `(("zlib" ,zlib)))
     (synopsis "APNG patch for libpng")
     (description
      "APNG (Animated Portable Network Graphics) is an unofficial
 extension of the APNG (Portable Network Graphics) format.
 APNG patch provides APNG support to libpng.")
-    (home-page "https://sourceforge.net/projects/libpng-apng/")))
+    (home-page "https://sourceforge.net/projects/libpng-apng/")
+    (license license:zlib)))
 
 (define-public libpng-1.2
   (package
-- 
2.13.3