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

Bug#986344: marked as done (unblock (pre-approval): gimp/2.10.22-4)



Your message dated Wed, 07 Apr 2021 18:22:19 +0000
with message-id <E1lUCol-0005O2-MK@respighi.debian.org>
and subject line unblock gimp
has caused the Debian Bug report #986344,
regarding unblock (pre-approval): gimp/2.10.22-4
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
986344: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=986344
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

I'd like permission to upload gimp with improved dependency handling.

[ Reason ]
Fix dependencies to make partial upgrades safer

[ Impact ]
Without these changes, users who do partial upgrades from buster might
encounter one of these failure modes:
* libbabl-0.1-0 is an insufficent version, causing gimp to refuse to start
  (#983568)
* liblcms2-2 is a version older than the one gimp was compiled against,
  which gimp wrongly thinks means it's insufficient, causing gimp to refuse
  to start if buster's version of liblcms (which satisifies its dependency
  and has all the required symbols) is still installed (#900819, #986192)

Additionally, the message printed for #900819, #986192 is really confusing,
because it implies that version 2.9 is less than the version "2.2" that
gimp_2.10.22-3 was compiled against. It was really compiled against 2.12;
gimp compares the encoded version numbers 2090 and 2120 correctly, but
then parses the encoded version number 2120 incorrectly when formatting
the error message.

[ Tests ]
For brevity "old gimp" refers to 2.10.22-3 in testing and "new gimp" is
the proposed version.

For #900819, #986192: on a Debian 11 / GNOME virtual machine:
* old gimp correctly launches normally with liblcms2-2 from Debian 11
  (v2.12)
* old gimp wrongly fails to launch, with a confusing error message, when
  liblcms2-2 from buster (v2.9) or stretch (v2.8) is LD_PRELOADed
* old gimp correctly fails to launch when a mock implementation of
  cmsGetEncodedCMMversion() that returns 1234 (indicating liblcms2-2
  v1.23.4) is LD_PRELOADed, but the error message wrongly describes the
  version number as 1.3
* new gimp correctly launches normally with liblcms2-2 from Debian 11
* new gimp correctly launches normally with liblcms2-2 from buster or
  stretch LD_PRELOADed
* new gimp correctly fails to launch when a mock implementation of
  cmsGetEncodedCMMversion() that returns 1234 is LD_PRELOADed, but this
  time the error message correctly describes it as version 1.23

For #983568: `apt-cache show gimp` indicates that old gimp wrongly
Depends: libbabl-0.1-0 (>= 0.1.10). `dpkg -s gimp` indicates that new
gimp correctly Depends: libbabl-0.1-0 (>= 0.1.78).

[ Risks ]
This is a high-visibility package, but the changes are trivial.

[ Checklist ]
  [x] all changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in testing

unblock gimp/2.10.22-4
diffstat for gimp-2.10.22 gimp-2.10.22

 changelog                                                          |   23 ++++
 patches/01_hurd_ftbfs.patch                                        |    3 
 patches/02_hurd_ftbfs.patch                                        |   13 ++
 patches/app-Don-t-second-guess-the-dependency-system.patch         |   56 ++++++++++
 patches/app-Print-2-digit-LittleCMS-minor-versions-correctly.patch |   41 +++++++
 patches/series                                                     |    2 
 shlibs.local                                                       |    1 
 7 files changed, 137 insertions(+), 2 deletions(-)

diff -Nru gimp-2.10.22/debian/changelog gimp-2.10.22/debian/changelog
--- gimp-2.10.22/debian/changelog	2021-03-20 11:21:08.000000000 +0000
+++ gimp-2.10.22/debian/changelog	2021-04-03 23:21:59.000000000 +0100
@@ -1,3 +1,26 @@
+gimp (2.10.22-4) unstable; urgency=medium
+
+  * Team upload
+
+  [ Laurent Bigonville ]
+  * Drop debian/shlibs.local, not needed anymore.
+    This file has the adverse effect of lowering the required version of
+    libbabl-0.1-0. The library now ships a .symbols file with
+    Build-Depends-Package, so let dh_shlibs adjust the dependency version
+    automatically (Closes: #983568)
+
+  [ Simon McVittie ]
+  * d/p/app-Print-2-digit-LittleCMS-minor-versions-correctly.patch:
+    Print 2-digit lcms minor versions correctly. Related to #900819, #986192.
+  * d/p/app-Don-t-second-guess-the-dependency-system.patch:
+    Don't require lcms runtime version >= compile-time version.
+    If no new symbols referenced by GIMP have been introduced (as is the
+    case when upgrading from 2.9 to 2.12~rc1), we only need a dependency
+    on version 2.9. (Closes: #900819, #986192)
+  * d/p/*_hurd_ftbfs.patch: Add patch metadata
+
+ -- Simon McVittie <smcv@debian.org>  Sat, 03 Apr 2021 23:21:59 +0100
+
 gimp (2.10.22-3) unstable; urgency=medium
 
   * debian/control.in: Add graphviz to the dependencies.
diff -Nru gimp-2.10.22/debian/patches/01_hurd_ftbfs.patch gimp-2.10.22/debian/patches/01_hurd_ftbfs.patch
--- gimp-2.10.22/debian/patches/01_hurd_ftbfs.patch	2021-03-20 11:21:08.000000000 +0000
+++ gimp-2.10.22/debian/patches/01_hurd_ftbfs.patch	2021-04-03 23:21:59.000000000 +0100
@@ -2,7 +2,8 @@
 Date: Sun, 1 Apr 2018 17:43:04 -0400
 Subject: Define PATH_MAX to fix build on the Hurd.
 
-Forwarded: no
+Forwarded: https://gitlab.gnome.org/GNOME/gimp/-/merge_requests/424
+Applied-upstream: no
 ---
  libgimpbase/gimpreloc.c | 3 +++
  1 file changed, 3 insertions(+)
diff -Nru gimp-2.10.22/debian/patches/02_hurd_ftbfs.patch gimp-2.10.22/debian/patches/02_hurd_ftbfs.patch
--- gimp-2.10.22/debian/patches/02_hurd_ftbfs.patch	2021-03-20 11:21:08.000000000 +0000
+++ gimp-2.10.22/debian/patches/02_hurd_ftbfs.patch	2021-04-03 23:21:59.000000000 +0100
@@ -1,3 +1,16 @@
+From: Svante Signell <svante.signell@gmail.com>
+Date: Tue, 6 Aug 2019 21:04:22 +0200
+Subject: qbist: Define PATH_MAX on Hurd
+
+Bug-Debian: https://bugs.debian.org/934077
+Forwarded: https://gitlab.gnome.org/GNOME/gimp/-/merge_requests/424
+Applied-upstream: no
+---
+ plug-ins/common/qbist.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/plug-ins/common/qbist.c b/plug-ins/common/qbist.c
+index f8f94d4..6f1b582 100644
 --- a/plug-ins/common/qbist.c
 +++ b/plug-ins/common/qbist.c
 @@ -38,6 +38,9 @@
diff -Nru gimp-2.10.22/debian/patches/app-Don-t-second-guess-the-dependency-system.patch gimp-2.10.22/debian/patches/app-Don-t-second-guess-the-dependency-system.patch
--- gimp-2.10.22/debian/patches/app-Don-t-second-guess-the-dependency-system.patch	1970-01-01 01:00:00.000000000 +0100
+++ gimp-2.10.22/debian/patches/app-Don-t-second-guess-the-dependency-system.patch	2021-04-03 23:21:59.000000000 +0100
@@ -0,0 +1,56 @@
+From: Simon McVittie <smcv@debian.org>
+Date: Sat, 3 Apr 2021 11:40:22 +0100
+Subject: app: Don't second-guess the dependency system
+
+Removing this check makes the treatment of LittleCMS consistent with
+all the other dependencies checked in the same file, which only check
+that the runtime version is at least the required version.
+
+As long as we were compiled against LittleCMS >= 2.8, and are now
+running against a version that has at least the same symbols, it doesn't
+necessarily matter whether the version we are running against is the
+same one we were compiled against.
+
+Distributions like Debian and Ubuntu track the versions in which
+individual symbols were introduced, which allows runtime dependencies
+to be weakened when no newer symbols are actually used; this is
+practically necessary when working with very large numbers of packages,
+to avoid a new version of a dependency library unnecessarily blocking
+upgrade of dependent packages. However, this doesn't work if dependent
+packages add their own checks that bypass this mechanism.
+
+Bug-Debian: https://bugs.debian.org/900819
+Bug-Debian: https://bugs.debian.org/986192
+Signed-off-by: Simon McVittie <smcv@debian.org>
+Forwarded: https://gitlab.gnome.org/GNOME/gimp/-/merge_requests/430
+---
+ app/sanity.c | 16 ----------------
+ 1 file changed, 16 deletions(-)
+
+diff --git a/app/sanity.c b/app/sanity.c
+index 7360fd0..a0550d3 100644
+--- a/app/sanity.c
++++ b/app/sanity.c
+@@ -391,22 +391,6 @@ sanity_check_lcms (void)
+ 
+   gint lcms_version = cmsGetEncodedCMMversion ();
+ 
+-  if (LCMS_VERSION > lcms_version)
+-    {
+-      return g_strdup_printf
+-        ("Liblcms2 version mismatch!\n\n"
+-         "GIMP was compiled against LittleCMS version %d.%d, but the\n"
+-         "LittleCMS version found at runtime is only %d.%d.\n\n"
+-         "Somehow you or your software packager managed\n"
+-         "to install a LittleCMS that is older than what GIMP was\n"
+-         "built against.\n\n"
+-         "Please make sure that the installed LittleCMS version\n"
+-         "is at least %d.%d and that headers and library match.",
+-         LCMS_VERSION / 1000, LCMS_VERSION % 1000 / 10,
+-         lcms_version / 1000, lcms_version % 1000 / 10,
+-         LCMS_VERSION / 1000, LCMS_VERSION % 1000 / 10);
+-    }
+-
+   if (lcms_version < (LCMS_REQUIRED_MAJOR * 1000 +
+                       LCMS_REQUIRED_MINOR * 10))
+     {
diff -Nru gimp-2.10.22/debian/patches/app-Print-2-digit-LittleCMS-minor-versions-correctly.patch gimp-2.10.22/debian/patches/app-Print-2-digit-LittleCMS-minor-versions-correctly.patch
--- gimp-2.10.22/debian/patches/app-Print-2-digit-LittleCMS-minor-versions-correctly.patch	1970-01-01 01:00:00.000000000 +0100
+++ gimp-2.10.22/debian/patches/app-Print-2-digit-LittleCMS-minor-versions-correctly.patch	2021-04-03 23:21:59.000000000 +0100
@@ -0,0 +1,41 @@
+From: Simon McVittie <smcv@debian.org>
+Date: Sat, 3 Apr 2021 11:18:30 +0100
+Subject: app: Print 2-digit LittleCMS minor versions correctly
+
+LittleCMS 2.12.0 defines LCMS_VERSION as 2120. We want to print that
+as 2.12.0, not 2.2.0.
+
+Bug: https://gitlab.gnome.org/GNOME/gimp/-/issues/6505
+Bug-Debian: https://bugs.debian.org/900819
+Bug-Debian: https://bugs.debian.org/986192
+Signed-off-by: Simon McVittie <smcv@debian.org>
+Forwarded: https://gitlab.gnome.org/GNOME/gimp/-/merge_requests/429
+---
+ app/sanity.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/app/sanity.c b/app/sanity.c
+index 0ad044a..7360fd0 100644
+--- a/app/sanity.c
++++ b/app/sanity.c
+@@ -402,16 +402,16 @@ sanity_check_lcms (void)
+          "built against.\n\n"
+          "Please make sure that the installed LittleCMS version\n"
+          "is at least %d.%d and that headers and library match.",
+-         LCMS_VERSION / 1000, LCMS_VERSION % 100 / 10,
+-         lcms_version / 1000, lcms_version % 100 / 10,
+-         LCMS_VERSION / 1000, LCMS_VERSION % 100 / 10);
++         LCMS_VERSION / 1000, LCMS_VERSION % 1000 / 10,
++         lcms_version / 1000, lcms_version % 1000 / 10,
++         LCMS_VERSION / 1000, LCMS_VERSION % 1000 / 10);
+     }
+ 
+   if (lcms_version < (LCMS_REQUIRED_MAJOR * 1000 +
+                       LCMS_REQUIRED_MINOR * 10))
+     {
+       const gint lcms_major_version = lcms_version / 1000;
+-      const gint lcms_minor_version = lcms_version % 100 / 10;
++      const gint lcms_minor_version = lcms_version % 1000 / 10;
+ 
+       return g_strdup_printf
+         ("Liblcms2 version too old!\n\n"
diff -Nru gimp-2.10.22/debian/patches/series gimp-2.10.22/debian/patches/series
--- gimp-2.10.22/debian/patches/series	2021-03-20 11:21:08.000000000 +0000
+++ gimp-2.10.22/debian/patches/series	2021-04-03 23:21:59.000000000 +0100
@@ -1,2 +1,4 @@
+app-Print-2-digit-LittleCMS-minor-versions-correctly.patch
+app-Don-t-second-guess-the-dependency-system.patch
 01_hurd_ftbfs.patch
 02_hurd_ftbfs.patch
diff -Nru gimp-2.10.22/debian/shlibs.local gimp-2.10.22/debian/shlibs.local
--- gimp-2.10.22/debian/shlibs.local	2021-03-20 11:21:08.000000000 +0000
+++ gimp-2.10.22/debian/shlibs.local	1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-libbabl-0.1 0 libbabl-0.1-0 (>= 0.1.10)

--- End Message ---
--- Begin Message ---
Unblocked.

--- End Message ---

Reply to: