Bug#646061: Please transition libcroco3 for multiarch

Steve Langasek steve.langasek at canonical.com
Thu Oct 20 22:51:13 UTC 2011


Package: libcroco
Version: 0.6.2-1
Severity: normal
Tags: patch
User: ubuntu-devel at lists.ubuntu.com
Usertags: origin-ubuntu precise ubuntu-patch

Hi folks,

Please find attached a patch to libcroco to transition it to use the
multiarch library paths as described at
<http://wiki.debian.org/Multiarch/Implementation>.  This patch is being
applied in Ubuntu precise.

Since libcroco3 is a dependency of librsvg2-2, it sits fairly low in the
desktop dependency tree, so this will help with the multiarch installability
of a number of relevant cases.

Please note that this patch also addresses bug #462349 about including a
binary in the shared library package.  Even if the executable meets policy's
requirements by changing name for every soname change, it's still
incompatible with multiarch since two binaries from two different
architectures can't occupy the same path.  (I'm also not sure this does meet
the policy requirement, because the library soname is libcroco-0.6.so.3 and
the executable is named csslint-0.6 - what happens when libcroco-0.6.so.4
comes out?)

The changelog entry for this Ubuntu upload is:

  * Build for multiarch.
  * Move csslint to a new libcroco-tools package, for multiarch cleanliness.
  * croco-config.in: libdir is never used, so don't set it at all - this lets
    the executable be the same across architectures and allows the -dev
    package to be Multi-Arch: same.

Thanks for considering the patch.

-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
slangasek at ubuntu.com                                     vorlon at debian.org
-------------- next part --------------
=== modified file 'croco-config.in'
--- croco-config.in	2004-07-29 23:30:57 +0000
+++ croco-config.in	2011-10-20 22:13:12 +0000
@@ -4,7 +4,6 @@
 exec_prefix=@exec_prefix@
 exec_prefix_set=no
 includedir=@includedir@
-libdir=@libdir@
 
 usage()
 {

=== modified file 'debian/compat'
--- debian/compat	2009-11-04 10:22:19 +0000
+++ debian/compat	2011-10-20 21:08:34 +0000
@@ -1 +1 @@
-6
+9

=== modified file 'debian/control'
--- debian/control	2009-11-04 10:22:19 +0000
+++ debian/control	2011-10-20 22:14:42 +0000
@@ -1,10 +1,15 @@
+# This file is autogenerated. DO NOT EDIT!
+# 
+# Modifications should be made to debian/control.in instead.
+# This file is regenerated automatically in the clean target.
+
 Source: libcroco
 Section: libs
 Priority: optional
 Maintainer: Sebastien Bacher <seb128 at debian.org>
 Uploaders: Debian GNOME Maintainers <pkg-gnome-maintainers at lists.alioth.debian.org>, Josselin Mouette <joss at debian.org>, Kilian Krause <kilian at debian.org>, Loic Minier <lool at dooz.org>, Sebastian Dr?ge <slomo at debian.org>
-Build-Depends: cdbs,
-               debhelper (>= 6),
+Build-Depends: cdbs (>= 0.4.93~),
+               debhelper (>= 8.1.3~),
                gnome-pkg-tools (>= 0.7),
                libxml2-dev (>= 2.4.23),
                libglib2.0-dev (>= 2.0),
@@ -16,6 +21,7 @@
 Package: libcroco3-dev
 Section: libdevel
 Architecture: any
+Multi-Arch: same
 Depends: ${misc:Depends},
          ${shlibs:Depends},
          libcroco3 (= ${binary:Version}),
@@ -47,6 +53,8 @@
 Package: libcroco3
 Section: libs
 Architecture: any
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
 Depends: ${shlibs:Depends},
          ${misc:Depends}
 Description: a generic Cascading Style Sheet (CSS) parsing and manipulation toolkit
@@ -69,3 +77,30 @@
     engine at the moment is libxml2.
  .
  This package contains the shared libraries.
+
+Package: libcroco-tools
+Section: libs
+Architecture: any
+Depends: ${shlibs:Depends},
+         ${misc:Depends}
+Description: Cascading Style Sheet (CSS) parsing and manipulation toolkit - utils
+ Services provided by Libcroco
+  * A parser module that provides
+    o A SAC like API. SAC stands for Simple API for CSS. SAC is an event driven
+      API wich resembles SAX in the xml world.
+    o A CSSOM like API. CSSOM stands for Cascading Style Sheet Object Model. 
+ .
+    The libcroco parser implements the CSS Level 2 specification, the CSS 
+    forward compatibility rules and the CSS cascading rules.
+ .
+  * A CSS2 selection engine
+    Given an xml element node (that obviously comes from an xml document) and
+    a stylesheet cascade, the Libcroco selection engine can evaluate the css 
+    selectors of the cascade and return the style properties associated to 
+    the xml element node.
+ .
+    Note that the xml manipulation toolkit used by the libcroco selection 
+    engine at the moment is libxml2.
+ .
+ This package contains csslint, a standalone utility based on libcroco that
+ can be used for testing CSS correctness.

=== modified file 'debian/control.in'
--- debian/control.in	2009-11-04 10:22:19 +0000
+++ debian/control.in	2011-10-20 22:14:42 +0000
@@ -3,8 +3,8 @@
 Priority: optional
 Maintainer: Sebastien Bacher <seb128 at debian.org>
 Uploaders: @GNOME_TEAM@
-Build-Depends: cdbs,
-               debhelper (>= 6),
+Build-Depends: cdbs (>= 0.4.93~),
+               debhelper (>= 8.1.3~),
                gnome-pkg-tools (>= 0.7),
                libxml2-dev (>= 2.4.23),
                libglib2.0-dev (>= 2.0),
@@ -16,6 +16,7 @@
 Package: libcroco3-dev
 Section: libdevel
 Architecture: any
+Multi-Arch: same
 Depends: ${misc:Depends},
          ${shlibs:Depends},
          libcroco3 (= ${binary:Version}),
@@ -47,6 +48,8 @@
 Package: libcroco3
 Section: libs
 Architecture: any
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
 Depends: ${shlibs:Depends},
          ${misc:Depends}
 Description: a generic Cascading Style Sheet (CSS) parsing and manipulation toolkit
@@ -69,3 +72,30 @@
     engine at the moment is libxml2.
  .
  This package contains the shared libraries.
+
+Package: libcroco-tools
+Section: libs
+Architecture: any
+Depends: ${shlibs:Depends},
+         ${misc:Depends}
+Description: Cascading Style Sheet (CSS) parsing and manipulation toolkit - utils
+ Services provided by Libcroco
+  * A parser module that provides
+    o A SAC like API. SAC stands for Simple API for CSS. SAC is an event driven
+      API wich resembles SAX in the xml world.
+    o A CSSOM like API. CSSOM stands for Cascading Style Sheet Object Model. 
+ .
+    The libcroco parser implements the CSS Level 2 specification, the CSS 
+    forward compatibility rules and the CSS cascading rules.
+ .
+  * A CSS2 selection engine
+    Given an xml element node (that obviously comes from an xml document) and
+    a stylesheet cascade, the Libcroco selection engine can evaluate the css 
+    selectors of the cascade and return the style properties associated to 
+    the xml element node.
+ .
+    Note that the xml manipulation toolkit used by the libcroco selection 
+    engine at the moment is libxml2.
+ .
+ This package contains csslint, a standalone utility based on libcroco that
+ can be used for testing CSS correctness.

=== added file 'debian/libcroco-tools.install'
--- debian/libcroco-tools.install	1970-01-01 00:00:00 +0000
+++ debian/libcroco-tools.install	2011-10-20 21:56:18 +0000
@@ -0,0 +1 @@
+usr/bin/csslint*

=== modified file 'debian/libcroco3-dev.install'
--- debian/libcroco3-dev.install	2009-11-04 10:22:19 +0000
+++ debian/libcroco3-dev.install	2011-10-20 21:09:04 +0000
@@ -1,6 +1,6 @@
-debian/tmp/usr/include
-debian/tmp/usr/lib/pkgconfig
-debian/tmp/usr/lib/*.so
-debian/tmp/usr/lib/*.la
-debian/tmp/usr/lib/*.a
-debian/tmp/usr/bin/croco*config
+usr/include
+usr/lib/*/pkgconfig
+usr/lib/*/*.so
+usr/lib/*/*.la
+usr/lib/*/*.a
+usr/bin/croco*config

=== modified file 'debian/libcroco3.install'
--- debian/libcroco3.install	2009-11-04 10:22:19 +0000
+++ debian/libcroco3.install	2011-10-20 22:02:29 +0000
@@ -1,2 +1 @@
-debian/tmp/usr/lib/*.so.*
-debian/tmp/usr/bin/csslint*
+usr/lib/*/*.so.*

=== modified file 'debian/rules'
--- debian/rules	2009-11-04 10:22:19 +0000
+++ debian/rules	2011-10-20 21:13:04 +0000
@@ -9,9 +9,9 @@
 -include /usr/share/gnome-pkg-tools/1/rules/gnome-get-source.mk
 
 DEB_DH_MAKESHLIBS_ARGS_ALL += -V
-DEB_CONFIGURE_EXTRA_FLAGS += --disable-gtk-doc
+DEB_CONFIGURE_EXTRA_FLAGS += --disable-gtk-doc \
+	--libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH)
 
 common-install-impl::
-	chrpath -d debian/tmp/usr/lib/*.so*
+	chrpath -d debian/tmp/usr/lib/*/*.so*
 	chrpath -d debian/tmp/usr/bin/csslint*
-



More information about the pkg-gnome-maintainers mailing list