diff --git a/debian/changelog b/debian/changelog index 0a8ec61b6e..87c9e8ca0b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,17 @@ +gtk+3.0 (3.20.5-2) UNRELEASED; urgency=medium + + * Split gtk-update-icon-cache utility out of libgtk-3-bin into a separate + package called gtk-update-icon-cache to break a dependency cycle with + adwaita-icon-theme when building the package. (Closes: #747392) + As the gtk-update-icon-cache binary doesn't actually have any libgtk-3-0 + dependency, there is no longer a reason to ship a gtk2 and gtk3 variant. + So from now on we will only ship one implementation built from src:gtk+3.0 + and drop the Debian specific -3.0 suffix. To simplify the transition make + libgtk-3-bin depend on gtk-update-icon-cache. Once all theme packages have + been updated, this dependency can be dropped. + + -- Michael Biebl Sun, 22 May 2016 08:31:36 +0200 + gtk+3.0 (3.20.5-1) unstable; urgency=medium * New upstream release. diff --git a/debian/control b/debian/control index e8a3db1dd0..0d7afdbcd7 100644 --- a/debian/control +++ b/debian/control @@ -124,7 +124,8 @@ Architecture: any Multi-Arch: foreign Depends: ${misc:Depends}, ${shlibs:Depends}, libgtk-3-0 (>= ${source:Version}), - libgtk-3-common (>= ${source:Version}) + libgtk-3-common (>= ${source:Version}), + gtk-update-icon-cache Description: programs for the GTK+ graphical user interface library GTK+ is a multi-platform toolkit for creating graphical user interfaces. Offering a complete set of widgets, GTK+ is suitable @@ -247,6 +248,25 @@ Description: GTK+ graphical user interface library -- gir bindings This package can be used by other packages using the GIRepository format to generate dynamic bindings. +Package: gtk-update-icon-cache +Architecture: any +Multi-Arch: foreign +Section: misc +Priority: optional +Depends: ${misc:Depends}, + ${shlibs:Depends} +Breaks: libgtk2.0-bin (<< 2.24.30-2), + libgtk-3-bin (<< 3.20.5-2) +Replaces: libgtk2.0-bin (<< 2.24.30-2), + libgtk-3-bin (<< 3.20.5-2) +Description: icon theme caching utility + gtk-update-icon-cache creates mmap()able cache files for icon themes. + . + GTK+ can use the cache files created by gtk-update-icon-cache to avoid a lot + of system call and disk seek overhead when the application starts. Since the + format of the cache files allows them to be mmap()ed shared between multiple + applications, the overall memory consumption is reduced as well. + Package: libgail-3-0 Architecture: any Multi-Arch: same diff --git a/debian/control.in b/debian/control.in index b9f5cc7b92..01540addc3 100644 --- a/debian/control.in +++ b/debian/control.in @@ -124,7 +124,8 @@ Architecture: any Multi-Arch: foreign Depends: ${misc:Depends}, ${shlibs:Depends}, @SHARED_PKG@ (>= ${source:Version}), - @COMMON_PKG@ (>= ${source:Version}) + @COMMON_PKG@ (>= ${source:Version}), + gtk-update-icon-cache Description: programs for the GTK+ graphical user interface library GTK+ is a multi-platform toolkit for creating graphical user interfaces. Offering a complete set of widgets, GTK+ is suitable @@ -247,6 +248,25 @@ Description: GTK+ graphical user interface library -- gir bindings This package can be used by other packages using the GIRepository format to generate dynamic bindings. +Package: gtk-update-icon-cache +Architecture: any +Multi-Arch: foreign +Section: misc +Priority: optional +Depends: ${misc:Depends}, + ${shlibs:Depends} +Breaks: libgtk2.0-bin (<< 2.24.30-2), + libgtk-3-bin (<< 3.20.5-2) +Replaces: libgtk2.0-bin (<< 2.24.30-2), + libgtk-3-bin (<< 3.20.5-2) +Description: icon theme caching utility + gtk-update-icon-cache creates mmap()able cache files for icon themes. + . + GTK+ can use the cache files created by gtk-update-icon-cache to avoid a lot + of system call and disk seek overhead when the application starts. Since the + format of the cache files allows them to be mmap()ed shared between multiple + applications, the overall memory consumption is reduced as well. + Package: libgail-3-0 Architecture: any Multi-Arch: same diff --git a/debian/gtk-update-icon-cache.install b/debian/gtk-update-icon-cache.install new file mode 100644 index 0000000000..3c4895f489 --- /dev/null +++ b/debian/gtk-update-icon-cache.install @@ -0,0 +1,3 @@ +../../../debian/update-icon-caches usr/sbin/ +usr/bin/gtk-update-icon-cache +usr/share/man/man1/gtk-update-icon-cache.1 diff --git a/debian/libgtk-3-bin.manpages b/debian/gtk-update-icon-cache.manpages similarity index 100% rename from debian/libgtk-3-bin.manpages rename to debian/gtk-update-icon-cache.manpages diff --git a/debian/libgtk-3-bin.postrm b/debian/gtk-update-icon-cache.preinst similarity index 75% rename from debian/libgtk-3-bin.postrm rename to debian/gtk-update-icon-cache.preinst index d4ec365886..121eb260c3 100644 --- a/debian/libgtk-3-bin.postrm +++ b/debian/gtk-update-icon-cache.preinst @@ -1,7 +1,8 @@ -#!/bin/sh -e +#!/bin/sh set -e -if [ "$1" = remove ] ; then +# Clean up existing diversions from libgtk-3-bin +if dpkg --compare-versions "$2" lt "3.20.5-2" ; then dpkg-divert --remove --package libgtk-3-bin --rename \ --divert /usr/sbin/update-icon-caches.gtk2 \ /usr/sbin/update-icon-caches @@ -11,5 +12,3 @@ if [ "$1" = remove ] ; then fi #DEBHELPER# - -exit 0 diff --git a/debian/libgtk-3-0.install.in b/debian/libgtk-3-0.install.in index 27e9ab23c5..140526cca5 100644 --- a/debian/libgtk-3-0.install.in +++ b/debian/libgtk-3-0.install.in @@ -1,5 +1,4 @@ usr/bin/gtk-query-immodules-3.0 @LIBDIR@/@SHARED_PKG@ -usr/bin/gtk-update-icon-cache @LIBDIR@/@SHARED_PKG@ @MODULES_BASE_PATH@/immodules/*.so @MODULES_BASE_PATH@/printbackends/*.so @LIBDIR@/libgtk*.so.* diff --git a/debian/libgtk-3-bin.install b/debian/libgtk-3-bin.install index d031f3d6ce..1edd79618e 100644 --- a/debian/libgtk-3-bin.install +++ b/debian/libgtk-3-bin.install @@ -9,4 +9,3 @@ usr/share/man/man1/gtk-builder-tool.1 usr/share/man/man1/gtk-launch.1 usr/share/man/man1/gtk-query-immodules-3.0.1 usr/share/man/man1/gtk-query-settings.1 -usr/share/man/man1/gtk-update-icon-cache.1 diff --git a/debian/libgtk-3-bin.links.in b/debian/libgtk-3-bin.links.in index cc7a501dbe..54bf0ae8dd 100644 --- a/debian/libgtk-3-bin.links.in +++ b/debian/libgtk-3-bin.links.in @@ -1,3 +1,2 @@ -@LIBDIR@/@SHARED_PKG@/gtk-update-icon-cache-3.0 usr/bin/gtk-update-icon-cache-3.0 usr/share/doc/@COMMON_PKG@/@NEWS@ usr/share/doc/@BIN_PKG@/@NEWS@ usr/share/doc/@COMMON_PKG@/@README@ usr/share/doc/@BIN_PKG@/@README@ diff --git a/debian/libgtk-3-bin.preinst b/debian/libgtk-3-bin.preinst deleted file mode 100644 index 4dceabce16..0000000000 --- a/debian/libgtk-3-bin.preinst +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh -e -set -e - -if [ "$1" = install ] || [ "$1" = upgrade ] ; then - if dpkg-divert --listpackage /usr/sbin/update-icon-caches | grep -q libgtk3.0-bin; then - dpkg-divert --remove --package libgtk3.0-bin --rename \ - --divert /usr/sbin/update-icon-caches.gtk2 \ - /usr/sbin/update-icon-caches - dpkg-divert --remove --package libgtk3.0-bin --rename \ - --divert /usr/share/man/man8/update-icon-caches.gtk2.8.gz \ - /usr/share/man/man8/update-icon-caches.8.gz - fi - - dpkg-divert --add --package libgtk-3-bin --rename \ - --divert /usr/sbin/update-icon-caches.gtk2 \ - /usr/sbin/update-icon-caches - dpkg-divert --add --package libgtk-3-bin --rename \ - --divert /usr/share/man/man8/update-icon-caches.gtk2.8.gz \ - /usr/share/man/man8/update-icon-caches.8.gz -fi - -#DEBHELPER# - -exit 0 diff --git a/debian/rules b/debian/rules index 52791c3983..e011982092 100644 --- a/debian/rules +++ b/debian/rules @@ -170,15 +170,3 @@ pre-build:: # Add dependencies to generate files from the debian/*.in ones build-indep: $(call dh_subst_files,$(DEB_INDEP_PACKAGES)) build-arch: $(call dh_subst_files,$(DEB_ARCH_PACKAGES)) - -binary-install/$(SHARED_PKG):: - # Install the binaries with a -3.0 suffix - mv debian/$(SHARED_PKG)/$(LIBDIR)/$(SHARED_PKG)/gtk-update-icon-cache \ - debian/$(SHARED_PKG)/$(LIBDIR)/$(SHARED_PKG)/gtk-update-icon-cache-3.0 - -binary-install/$(BIN_PKG):: - # Install the binaries with a -3.0 suffix - mv debian/$(BIN_PKG)/usr/share/man/man1/gtk-update-icon-cache.1 \ - debian/$(BIN_PKG)/usr/share/man/man1/gtk-update-icon-cache-3.0.1 - install -m 0755 -D debian/update-icon-caches \ - debian/$(BIN_PKG)/usr/sbin/update-icon-caches diff --git a/debian/update-icon-caches b/debian/update-icon-caches index 41de2c5faf..2accbe0adc 100644 --- a/debian/update-icon-caches +++ b/debian/update-icon-caches @@ -13,7 +13,7 @@ for dir in "$@"; do fi if [ -f "$dir"/index.theme ]; then # Generate or regenerate the cache - if ! gtk-update-icon-cache-3.0 --force --quiet "$dir"; then + if ! gtk-update-icon-cache --force --quiet "$dir"; then echo "WARNING: icon cache generation failed for $dir" fi else