Bug#994751: pango1.0: the development package does not include static libraries

2021-09-23 Thread Alfonso Sanchez-Beato
On Mon, Sep 20, 2021 at 6:05 PM Simon McVittie  wrote:
>
> Control: tags -1 = moreinfo
>
> On Mon, 20 Sep 2021 at 17:29:34 +0200, Alfonso Sanchez-Beato wrote:
> > On Mon, Sep 20, 2021 at 5:05 PM Simon McVittie  wrote:
> > > libpango-1.0.so.0 depends on libgio-2.0.so.0, which depends on
> > > libmount.so.1, which is only available as a shared library
> >
> > I do not see a dependency on libgio when I run ldd on
> > libpango-1.0.so.0, although it does depend on libglib-2.0.so.0 and
> > libgobject-2.0.so.0.
>
> Maybe the dependency was only introduced in a recent version? It's
> certainly there in Debian unstable, which is the only suite where adding
> static libraries would be in-scope for Debian (other than experimental,
> but there's currently no version of pango1.0 in experimental), for at
> least amd64 and i386.

Right, I double checked and indeed the latest in unstable has that dependency.

>
> > Besides, it is possible to compile statically against libpango and
> > still compile dynamically against some of its dependencies.
> ...
> > > More generally, configurations that aren't actively tested typically
> > > don't work, so if I enable static linking in a particular package,
> > > I would want to have at least superficial autopkgtest coverage for it
> > > (see debian/tests/build-static and debian/tests/build in src:glib2.0 for
> > > an example)
> >
> > I will be happy to provide such a test if that is the blocker for landing 
> > this.
>
> If this is something that works in unstable, then please do.

Please see the new attached patch.

>
> smcv

Thanks,
Alfonso
diff -Nru pango1.0-1.48.10+ds1/debian/changelog pango1.0-1.48.10+ds1/debian/changelog
--- pango1.0-1.48.10+ds1/debian/changelog	2021-09-17 09:54:40.0 +
+++ pango1.0-1.48.10+ds1/debian/changelog	2021-09-22 14:10:13.0 +
@@ -1,3 +1,15 @@
+pango1.0 (1.48.10+ds1-2) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Include archive files to allow static compilation of the libraries
+- d/rules: Build also archive files for static compilation
+- d/libpango1.0-dev.install: Include archive files
+- d/tests/build: Add --static option
+- d/tests/build-static: Exercise static linking
+- d/tests/control: Add build-static test
+
+ -- Alfonso Sanchez-Beato (email Canonical)   Wed, 22 Sep 2021 14:10:13 +
+
 pango1.0 (1.48.10+ds1-1) unstable; urgency=medium
 
   * Team upload
diff -Nru pango1.0-1.48.10+ds1/debian/libpango1.0-dev.install pango1.0-1.48.10+ds1/debian/libpango1.0-dev.install
--- pango1.0-1.48.10+ds1/debian/libpango1.0-dev.install	2021-09-17 09:54:40.0 +
+++ pango1.0-1.48.10+ds1/debian/libpango1.0-dev.install	2021-09-22 14:06:45.0 +
@@ -1,4 +1,5 @@
 usr/include
+usr/lib/*/*.a
 usr/lib/*/*.so
 usr/lib/*/pkgconfig/*.pc
 usr/share/gir-1.0
diff -Nru pango1.0-1.48.10+ds1/debian/rules pango1.0-1.48.10+ds1/debian/rules
--- pango1.0-1.48.10+ds1/debian/rules	2021-09-17 09:54:40.0 +
+++ pango1.0-1.48.10+ds1/debian/rules	2021-09-22 14:06:45.0 +
@@ -21,6 +21,7 @@
 		-Dauto_features=enabled \
 		-Dgtk_doc=$(with_docs) \
 		-Dinstall-tests=true \
+		-Ddefault_library=both \
 		$(NULL)
 
 override_dh_auto_test-arch:
diff -Nru pango1.0-1.48.10+ds1/debian/tests/build pango1.0-1.48.10+ds1/debian/tests/build
--- pango1.0-1.48.10+ds1/debian/tests/build	2021-09-17 09:54:40.0 +
+++ pango1.0-1.48.10+ds1/debian/tests/build	2021-09-22 14:10:13.0 +
@@ -1,11 +1,36 @@
 #!/bin/sh
 # autopkgtest check: Builds a small application against libcairo2-dev, checking
 # if it compiles, links and runs successfully.
-# Author: Rafał Cieślak  
+# Authors: Rafał Cieślak ,
+#  Alfonso Sánchez-Beato 
 
 set -e
 set -u
 
+mode=dynamic
+
+getopt_temp="$(getopt -o '' --long 'static' -n debian/tests/build -- "$@")"
+eval set -- "$getopt_temp"
+
+while true; do
+case "$1" in
+(--static)
+mode=static
+shift
+continue
+;;
+
+(--)
+shift
+break
+;;
+
+(*)
+echo "getopt: Internal error" >&2
+exit 2
+esac
+done
+
 WORKDIR=$(mktemp -d)
 cleanup () {
 rm -fr "$WORKDIR"
@@ -31,9 +56,26 @@
 }
 EOF
 
-# Deliberately word-splitting, that's how pkg-config works:
-# shellcheck disable=SC2046
-"${CROSS_COMPILE}gcc" -o build_test build_test.c $("${CROSS_COMPILE}pkg-config" --cflags --libs pango)
+
+case "$mode" in
+(static)
+# Compile all statically but libgraphite and libmount, that do not have
+# static version yet.
+flags=$("${CROSS_COMPILE}pkg-config" --cflags --static --libs pango)
+flags=$(echo "$flags&

Bug#994757: libgraphite2-dev: no archive files for static compilation are included in the -dev package

2021-09-22 Thread Alfonso Sanchez-Beato
On Mon, Sep 20, 2021 at 5:39 PM Rene Engelhard  wrote:
>
> notfound 994757 1.3.13-11
>
> severity 994757 wishlist
>
> thanks
>
> Hi,
>
> Am 20.09.21 um 16:43 schrieb Alfonso Sanchez-Beato:
> > Package: libgraphite2-dev
> > Version: 1.3.13-11build1
>
> There is no such version. You are reporting against Debian, please use
> proper versions existing there.
>
>
> Also you are reporting against a obsolete version which doesn't exist
> anymore (and in stable stuff like this won't be changed):
>
> $ rmadison libgraphite2-dev
>
> libgraphite2-dev | 1.3.13-7| oldstable   | amd64, arm64,
> armel, armhf, i386, mips, mips64el, mipsel, ppc64el, s390x
> libgraphite2-dev | 1.3.14-1| stable  | amd64, arm64,
> armel, armhf, i386, mips64el, mipsel, ppc64el, s390x
> libgraphite2-dev | 1.3.14-1| testing | amd64, arm64,
> armel, armhf, i386, mips64el, mipsel, ppc64el, s390x
> libgraphite2-dev | 1.3.14-1| unstable| amd64, arm64,
> armel, armhf, i386, mips64el, mipsel, ppc64el, s390x
>
> > There is no libgraphite2.a file, so it is not possible to compile statically
> > against this library.
> Because upstream doesn't build one in their standard build and I didn't
> bother to manually build it as in your patch ...
> > See attached patch to solve this.
> .. as I am not sure. Why would people want to statically build against
>
> libgraphite2.a anyways?

My use case is to compile an embedded application with all
dependencies bundled in,
including libpango, libgraphite, and others, to minimize the final
size of the image (no other
apps would use the shared libs anyway). But I think it can be useful
in other cases too,
and that in general having the option to compile statically cannot be harmful.

>
> > -- System Information:
> > Debian Release: bullseye/sid
> >   APT prefers focal-updates
> >   APT policy: (500, 'focal-updates'), (500, 'focal-security'), (500, 
> > 'focal'), (100, 'focal-backports')
> > Architecture: amd64 (x86_64)
> > Foreign Architectures: i386
>
> Ah, this explains it. If you use Ubuntu please do some care to make a correct 
> Debian bug report.

Do you want me to create a new bug? I was about to do it, but thought
that would create more noise by now.

>
>
> Regards,
>
>
> Rene
>
>

Thanks,
Alfonso



Bug#994752: Bug#994751: pango1.0: the development package does not include static libraries

2021-09-22 Thread Alfonso Sanchez-Beato
On Mon, Sep 20, 2021 at 6:05 PM Simon McVittie  wrote:
>
> Control: tags -1 = moreinfo
>
> On Mon, 20 Sep 2021 at 17:29:34 +0200, Alfonso Sanchez-Beato wrote:
> > On Mon, Sep 20, 2021 at 5:05 PM Simon McVittie  wrote:
> > > libpango-1.0.so.0 depends on libgio-2.0.so.0, which depends on
> > > libmount.so.1, which is only available as a shared library
> >
> > I do not see a dependency on libgio when I run ldd on
> > libpango-1.0.so.0, although it does depend on libglib-2.0.so.0 and
> > libgobject-2.0.so.0.
>
> Maybe the dependency was only introduced in a recent version? It's
> certainly there in Debian unstable, which is the only suite where adding
> static libraries would be in-scope for Debian (other than experimental,
> but there's currently no version of pango1.0 in experimental), for at
> least amd64 and i386.

Right, I double checked and indeed the latest in unstable has that dependency.

>
> > Besides, it is possible to compile statically against libpango and
> > still compile dynamically against some of its dependencies.
> ...
> > > More generally, configurations that aren't actively tested typically
> > > don't work, so if I enable static linking in a particular package,
> > > I would want to have at least superficial autopkgtest coverage for it
> > > (see debian/tests/build-static and debian/tests/build in src:glib2.0 for
> > > an example)
> >
> > I will be happy to provide such a test if that is the blocker for landing 
> > this.
>
> If this is something that works in unstable, then please do.

Please see the new attached patch.

>
> smcv

Thanks,
Alfonso
diff -Nru pango1.0-1.48.10+ds1/debian/changelog pango1.0-1.48.10+ds1/debian/changelog
--- pango1.0-1.48.10+ds1/debian/changelog	2021-09-17 09:54:40.0 +
+++ pango1.0-1.48.10+ds1/debian/changelog	2021-09-22 14:10:13.0 +
@@ -1,3 +1,15 @@
+pango1.0 (1.48.10+ds1-2) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Include archive files to allow static compilation of the libraries
+- d/rules: Build also archive files for static compilation
+- d/libpango1.0-dev.install: Include archive files
+- d/tests/build: Add --static option
+- d/tests/build-static: Exercise static linking
+- d/tests/control: Add build-static test
+
+ -- Alfonso Sanchez-Beato (email Canonical)   Wed, 22 Sep 2021 14:10:13 +
+
 pango1.0 (1.48.10+ds1-1) unstable; urgency=medium
 
   * Team upload
diff -Nru pango1.0-1.48.10+ds1/debian/libpango1.0-dev.install pango1.0-1.48.10+ds1/debian/libpango1.0-dev.install
--- pango1.0-1.48.10+ds1/debian/libpango1.0-dev.install	2021-09-17 09:54:40.0 +
+++ pango1.0-1.48.10+ds1/debian/libpango1.0-dev.install	2021-09-22 14:06:45.0 +
@@ -1,4 +1,5 @@
 usr/include
+usr/lib/*/*.a
 usr/lib/*/*.so
 usr/lib/*/pkgconfig/*.pc
 usr/share/gir-1.0
diff -Nru pango1.0-1.48.10+ds1/debian/rules pango1.0-1.48.10+ds1/debian/rules
--- pango1.0-1.48.10+ds1/debian/rules	2021-09-17 09:54:40.0 +
+++ pango1.0-1.48.10+ds1/debian/rules	2021-09-22 14:06:45.0 +
@@ -21,6 +21,7 @@
 		-Dauto_features=enabled \
 		-Dgtk_doc=$(with_docs) \
 		-Dinstall-tests=true \
+		-Ddefault_library=both \
 		$(NULL)
 
 override_dh_auto_test-arch:
diff -Nru pango1.0-1.48.10+ds1/debian/tests/build pango1.0-1.48.10+ds1/debian/tests/build
--- pango1.0-1.48.10+ds1/debian/tests/build	2021-09-17 09:54:40.0 +
+++ pango1.0-1.48.10+ds1/debian/tests/build	2021-09-22 14:10:13.0 +
@@ -1,11 +1,36 @@
 #!/bin/sh
 # autopkgtest check: Builds a small application against libcairo2-dev, checking
 # if it compiles, links and runs successfully.
-# Author: Rafał Cieślak  
+# Authors: Rafał Cieślak ,
+#  Alfonso Sánchez-Beato 
 
 set -e
 set -u
 
+mode=dynamic
+
+getopt_temp="$(getopt -o '' --long 'static' -n debian/tests/build -- "$@")"
+eval set -- "$getopt_temp"
+
+while true; do
+case "$1" in
+(--static)
+mode=static
+shift
+continue
+;;
+
+(--)
+shift
+break
+;;
+
+(*)
+echo "getopt: Internal error" >&2
+exit 2
+esac
+done
+
 WORKDIR=$(mktemp -d)
 cleanup () {
 rm -fr "$WORKDIR"
@@ -31,9 +56,26 @@
 }
 EOF
 
-# Deliberately word-splitting, that's how pkg-config works:
-# shellcheck disable=SC2046
-"${CROSS_COMPILE}gcc" -o build_test build_test.c $("${CROSS_COMPILE}pkg-config" --cflags --libs pango)
+
+case "$mode" in
+(static)
+# Compile all statically but libgraphite and libmount, that do not have
+# static version yet.
+flags=$("${CROSS_COMPILE}pkg-config" --cflags --static --libs pango)
+flags=$(echo "$flags&

Bug#994751: pango1.0: the development package does not include static libraries

2021-09-20 Thread Alfonso Sanchez-Beato
On Mon, Sep 20, 2021 at 5:05 PM Simon McVittie  wrote:
>
> Control: forcemerge 994752 994751
> Control: severity 994752 wishlist
> Control: tags 994752 + wontfix
>
> On Mon, 20 Sep 2021 at 15:40:27 +0200, Alfonso Sanchez-Beato wrote:
> > The development package for pango (libpango1.0-dev) does not include static
> > libraries so it is not possible to link these libraries statically.
>
> libpango-1.0.so.0 depends on libgio-2.0.so.0, which depends on
> libmount.so.1, which is only available as a shared library, so it
> doesn't seem like it is going to be possible to link these libraries
> statically regardless of whether we build a .a file or not. It doesn't
> seem desirable to make the build take longer to build something that
> won't actually work as desired.

I do not see a dependency on libgio when I run ldd on
libpango-1.0.so.0, although it does depend on libglib-2.0.so.0 and
libgobject-2.0.so.0.

Besides, it is possible to compile statically against libpango and
still compile dynamically against some of its dependencies. I am doing
that for my use case and it works just fine.

>
> More generally, configurations that aren't actively tested typically
> don't work, so if I enable static linking in a particular package,
> I would want to have at least superficial autopkgtest coverage for it
> (see debian/tests/build-static and debian/tests/build in src:glib2.0 for
> an example). However, for this particular package, it doesn't seem like
> that is going to be possible.

I will be happy to provide such a test if that is the blocker for landing this.

>
> smcv



Bug#994757: libgraphite2-dev: no archive files for static compilation are included in the -dev package

2021-09-20 Thread Alfonso Sanchez-Beato
Package: libgraphite2-dev
Version: 1.3.13-11build1
Severity: normal
Tags: patch

Dear Maintainer,

There is no libgraphite2.a file, so it is not possible to compile statically
against this library. See attached patch to solve this.



-- System Information:
Debian Release: bullseye/sid
  APT prefers focal-updates
  APT policy: (500, 'focal-updates'), (500, 'focal-security'), (500, 'focal'), 
(100, 'focal-backports')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.4.0-84-generic (SMP w/8 CPU cores)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE, 
TAINT_UNSIGNED_MODULE
Locale: LANG=es_ES.UTF-8, LC_CTYPE=es_ES.UTF-8 (charmap=UTF-8), 
LANGUAGE=es_ES.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages libgraphite2-dev depends on:
ii  libgraphite2-3  1.3.13-11build1

libgraphite2-dev recommends no packages.

Versions of packages libgraphite2-dev suggests:
pn  libgraphite2-utils  

-- no debconf information
diff -Nru graphite2-1.3.14/debian/changelog graphite2-1.3.14/debian/changelog
--- graphite2-1.3.14/debian/changelog   2020-04-01 11:11:00.0 +0200
+++ graphite2-1.3.14/debian/changelog   2021-09-17 17:11:16.0 +0200
@@ -1,3 +1,9 @@
+graphite2 (1.3.14-2) unstable; urgency=medium
+
+  * Build also archive for static compilation
+
+ -- Alfonso Sanchez-Beato (email Canonical) 
  Fri, 17 Sep 2021 17:11:16 +0200
+
 graphite2 (1.3.14-1) unstable; urgency=medium
 
   * New upstream version 1.3.14
diff -Nru graphite2-1.3.14/debian/libgraphite2-dev.install 
graphite2-1.3.14/debian/libgraphite2-dev.install
--- graphite2-1.3.14/debian/libgraphite2-dev.install2020-04-01 
11:11:00.0 +0200
+++ graphite2-1.3.14/debian/libgraphite2-dev.install2021-09-17 
17:09:42.0 +0200
@@ -1,3 +1,4 @@
 usr/include
+usr/lib/*/lib*.a
 usr/lib/*/lib*.so
 usr/lib/*/pkgconfig
diff -Nru graphite2-1.3.14/debian/rules graphite2-1.3.14/debian/rules
--- graphite2-1.3.14/debian/rules   2020-04-01 10:51:17.0 +0200
+++ graphite2-1.3.14/debian/rules   2021-09-17 17:10:55.0 +0200
@@ -2,9 +2,17 @@
 
 export DPKG_EXPORT_BUILDFLAGS = 0
 include /usr/share/dpkg/architecture.mk
+build = build
+build_static = build-static
 
 %:
-   dh $@ --with python3 --buildsystem=cmake --builddirectory=build
+   dh $@ --with python3 --buildsystem=cmake --builddirectory=${build}
+
+override_dh_auto_build-arch:
+   dh_auto_build -O--buildsystem=cmake \
+   -Nlibgraphite2-doc -Npython3-graphite2
+   dh_auto_build -O--buildsystem=cmake -O--builddirectory=${build_static} \
+   -Nlibgraphite2-doc -Npython3-graphite2
 
 override_dh_auto_build-indep:
@echo "Building docs"
@@ -12,6 +20,7 @@
 
 override_dh_auto_install-arch:
dh_auto_install -a
+   dh_auto_install --builddirectory=${build_static} -a
 
 override_dh_auto_install-indep:
 
@@ -20,9 +29,9 @@
python$$v setup.py -v install --prefix=/usr 
--root=$(CURDIR)/debian/python3-graphite2; \
done
 
-override_dh_auto_test: export LD_LIBRARY_PATH := $(CURDIR)/build/src
+override_dh_auto_test: export LD_LIBRARY_PATH := $(CURDIR)/${build}/src
 override_dh_auto_test:
-   set -e; if [ -f ./build/src/libgraphite2.so.3 ]; then \
+   set -e; if [ -f ./${build}/src/libgraphite2.so.3 ]; then \
dh_auto_test; \
fi
 
@@ -33,9 +42,11 @@
rm -rf tests/__pycache__
rm -rf python/graphite2/__pycache__
rm -rf python/graphite2.egg-info
+   dh_auto_clean --builddirectory=${build_static}
dh_auto_clean
 
 override_dh_auto_configure:
dh_auto_configure -- -DCMAKE_BUILD_TYPE:STRING=Release 
-DGRAPHITE2_NTRACING:BOOL=ON -DLIB_SUFFIX=/$(DEB_HOST_MULTIARCH) 
-DPYTHON_EXECUTABLE=$(shell which python3)
+   dh_auto_configure --builddirectory=${build_static} -- 
-DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE:STRING=Release 
-DGRAPHITE2_NTRACING:BOOL=ON -DLIB_SUFFIX=/$(DEB_HOST_MULTIARCH) 
-DPYTHON_EXECUTABLE=$(shell which python3)
find . -type f ! -name "rules" ! -name "changelog" \
-exec sed -i -e 's/\-O3//g' {} \;



Bug#994752: libpango1.0-dev: the development package does not include static libraries

2021-09-20 Thread Alfonso Sanchez-Beato
Package: libpango1.0-dev
Version: 1.44.7-2ubuntu4
Severity: normal
Tags: patch

Dear Maintainer,

The development package for pango (libpango1.0-dev) does not include static
libraries so it is not possible to link these libraries statically. Please see
attached patch.



-- System Information:
Debian Release: bullseye/sid
  APT prefers focal-updates
  APT policy: (500, 'focal-updates'), (500, 'focal-security'), (500, 'focal'), 
(100, 'focal-backports')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.4.0-84-generic (SMP w/8 CPU cores)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE, 
TAINT_UNSIGNED_MODULE
Locale: LANG=es_ES.UTF-8, LC_CTYPE=es_ES.UTF-8 (charmap=UTF-8), 
LANGUAGE=es_ES.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages libpango1.0-dev depends on:
ii  gir1.2-pango-1.0 1.44.7-2ubuntu4
ii  libcairo2-dev1.16.0-4ubuntu1
ii  libfontconfig1-dev   2.13.1-2ubuntu3
ii  libfreetype6-dev 2.10.1-2ubuntu0.1
ii  libfribidi-dev   1.0.8-2
ii  libglib2.0-dev   2.64.6-1~ubuntu20.04.4
ii  libharfbuzz-dev  2.6.4-1ubuntu4
ii  libpango-1.0-0   1.44.7-2ubuntu4
ii  libpangocairo-1.0-0  1.44.7-2ubuntu4
ii  libpangoft2-1.0-01.44.7-2ubuntu4
ii  libpangoxft-1.0-01.44.7-2ubuntu4
ii  libthai-dev  0.1.28-3
ii  libx11-dev   2:1.6.9-2ubuntu1.2
ii  libxft-dev   2.3.3-0ubuntu1
ii  libxrender-dev   1:0.9.10-1
ii  pango1.0-tools   1.44.7-2ubuntu4
ii  pkg-config   0.29.1-0ubuntu4

libpango1.0-dev recommends no packages.

Versions of packages libpango1.0-dev suggests:
ii  imagemagick  8:6.9.10.23+dfsg-2.1ubuntu11.4
ii  imagemagick-6.q16 [imagemagick]  8:6.9.10.23+dfsg-2.1ubuntu11.4
pn  libpango1.0-doc  

-- no debconf information
diff -Nru pango1.0-1.48.9+ds1/debian/changelog 
pango1.0-1.48.9+ds1/debian/changelog
--- pango1.0-1.48.9+ds1/debian/changelog2021-08-20 12:21:25.0 
+0200
+++ pango1.0-1.48.9+ds1/debian/changelog2021-09-16 19:06:40.0 
+0200
@@ -1,3 +1,9 @@
+pango1.0 (1.48.9+ds1-2) experimental; urgency=medium
+
+  * Include archive files to allow static compilation of the libraries
+
+ -- Alfonso Sanchez-Beato (email Canonical) 
  Thu, 16 Sep 2021 19:06:40 +0200
+
 pango1.0 (1.48.9+ds1-1) experimental; urgency=medium
 
   * Team upload
diff -Nru pango1.0-1.48.9+ds1/debian/libpango1.0-dev.install 
pango1.0-1.48.9+ds1/debian/libpango1.0-dev.install
--- pango1.0-1.48.9+ds1/debian/libpango1.0-dev.install  2021-08-20 
12:21:25.0 +0200
+++ pango1.0-1.48.9+ds1/debian/libpango1.0-dev.install  2021-09-16 
19:05:40.0 +0200
@@ -1,4 +1,5 @@
 usr/include
+usr/lib/*/*.a
 usr/lib/*/*.so
 usr/lib/*/pkgconfig/*.pc
 usr/share/gir-1.0
diff -Nru pango1.0-1.48.9+ds1/debian/rules pango1.0-1.48.9+ds1/debian/rules
--- pango1.0-1.48.9+ds1/debian/rules2021-08-20 12:21:25.0 +0200
+++ pango1.0-1.48.9+ds1/debian/rules2021-09-16 19:05:40.0 +0200
@@ -21,6 +21,7 @@
-Dauto_features=enabled \
-Dgtk_doc=$(with_docs) \
-Dinstall-tests=true \
+   -Ddefault_library=both \
$(NULL)
 
 override_dh_auto_test-arch:



Bug#994751: pango1.0: the development package does not include static libraries

2021-09-20 Thread Alfonso Sanchez-Beato
Source: pango1.0
Version: 1.48.9+ds1-1
Severity: normal
Tags: patch

Dear Maintainer,

The development package for pango (libpango1.0-dev) does not include static
libraries so it is not possible to link these libraries statically.



-- System Information:
Debian Release: bullseye/sid
  APT prefers focal-updates
  APT policy: (500, 'focal-updates'), (500, 'focal-security'), (500, 'focal'),
(100, 'focal-backports')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.4.0-84-generic (SMP w/8 CPU cores)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE,
TAINT_UNSIGNED_MODULE
Locale: LANG=es_ES.UTF-8, LC_CTYPE=es_ES.UTF-8 (charmap=UTF-8),
LANGUAGE=es_ES.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
diff -Nru pango1.0-1.48.9+ds1/debian/changelog pango1.0-1.48.9+ds1/debian/changelog
--- pango1.0-1.48.9+ds1/debian/changelog	2021-08-20 12:21:25.0 +0200
+++ pango1.0-1.48.9+ds1/debian/changelog	2021-09-16 19:06:40.0 +0200
@@ -1,3 +1,9 @@
+pango1.0 (1.48.9+ds1-2) experimental; urgency=medium
+
+  * Include archive files to allow static compilation of the libraries
+
+ -- Alfonso Sanchez-Beato (email Canonical)   Thu, 16 Sep 2021 19:06:40 +0200
+
 pango1.0 (1.48.9+ds1-1) experimental; urgency=medium
 
   * Team upload
diff -Nru pango1.0-1.48.9+ds1/debian/libpango1.0-dev.install pango1.0-1.48.9+ds1/debian/libpango1.0-dev.install
--- pango1.0-1.48.9+ds1/debian/libpango1.0-dev.install	2021-08-20 12:21:25.0 +0200
+++ pango1.0-1.48.9+ds1/debian/libpango1.0-dev.install	2021-09-16 19:05:40.0 +0200
@@ -1,4 +1,5 @@
 usr/include
+usr/lib/*/*.a
 usr/lib/*/*.so
 usr/lib/*/pkgconfig/*.pc
 usr/share/gir-1.0
diff -Nru pango1.0-1.48.9+ds1/debian/rules pango1.0-1.48.9+ds1/debian/rules
--- pango1.0-1.48.9+ds1/debian/rules	2021-08-20 12:21:25.0 +0200
+++ pango1.0-1.48.9+ds1/debian/rules	2021-09-16 19:05:40.0 +0200
@@ -21,6 +21,7 @@
 		-Dauto_features=enabled \
 		-Dgtk_doc=$(with_docs) \
 		-Dinstall-tests=true \
+		-Ddefault_library=both \
 		$(NULL)
 
 override_dh_auto_test-arch:



Bug#863761: klibc-utils: klibc does not support the reboot syscall argument

2018-01-04 Thread Alfonso Sanchez-Beato
Hi Ben,

On Fri, Dec 29, 2017 at 12:38 AM, Ben Hutchings <b...@decadent.org.uk> wrote:

> Control: severity -1 wishlist
> Control: tag -1 upstream
>
> On Wed, 31 May 2017 08:34:04 +0200
> Alfonso Sanchez-Beato <alfonso.sanchez-be...@canonical.com> wrote:
> > Package: klibc-utils
> > Version: 2.0.4-8ubuntu3
> > Severity: normal
> > Tags: patch
> >
> > Dear Maintainer,
> >
> > klibc "reboot" command does not support the reboot syscall argument, so
> we
> > cannot do things like "reboot recovery" in devices that follow the
> Android
> > partitions conventions.
> >
> > This bug has been reported in Ubuntu at
> > <https://bugs.launchpad.net/ubuntu/+source/klibc/+bug/1692494>
> >
> > It has also been sent upstream at
> > <http://www.zytor.com/pipermail/klibc/2017-May/003957.html>
> >
> > The attached patch resolves the issue.
>
> I'm having trouble seeing why this is important.
>
> - What is a Debian/Ubuntu initramfs doing on a device designed for
>   Android, which typically doesn't require or support use of an
>   initramfs?
>

Android kernels do support and use initramfs (it is always stored in the
boot partition of the device).


> - Why is it important to have this facility in the initramfs, rather
>   than in the 'real' system?
>

To be able to use arguments in the reboot command like "reboot recovery",
which will reboot but will use the recovery partition instead of the boot
partition for loading the kernel. This sort of functionality is useful when
implementing some sort of recovery after being unable to start from the
rootfs.

Note that regardless of this concrete use case, systemd reboot command does
support using arguments and there is no reason for not supporting this in
klibc too.


> - Doesn't Ubuntu always use busybox and glibc in the initramfs, anyway?
>

No, it uses klibc.


>
> (Alternately, try to convince upstream of the importance, as it doesn't
> seem to have had any response yet.)
>

Upstream seems to be dead, there has been no response to any patch sent to
the upstream list in years.

Thanks,
Alfonso


>
> Ben.
>
> --
> Ben Hutchings
> The two most common things in the universe are hydrogen and stupidity.
>
>


Bug#863761: klibc-utils: klibc does not support the reboot syscall argument

2017-05-31 Thread Alfonso Sanchez-Beato
Package: klibc-utils
Version: 2.0.4-8ubuntu3
Severity: normal
Tags: patch

Dear Maintainer,

klibc "reboot" command does not support the reboot syscall argument, so we
cannot do things like "reboot recovery" in devices that follow the Android
partitions conventions.

This bug has been reported in Ubuntu at
<https://bugs.launchpad.net/ubuntu/+source/klibc/+bug/1692494>

It has also been sent upstream at
<http://www.zytor.com/pipermail/klibc/2017-May/003957.html>

The attached patch resolves the issue.



-- System Information:
Debian Release: stretch/sid
  APT prefers yakkety-updates
  APT policy: (500, 'yakkety-updates'), (500, 'yakkety-security'), (500, 
'yakkety-proposed'), (500, 'yakkety'), (100, 'yakkety-backports')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.8.0-53-generic (SMP w/8 CPU cores)
Locale: LANG=es_ES.UTF-8, LC_CTYPE=es_ES.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages klibc-utils depends on:
ii  libklibc  2.0.4-8ubuntu3

klibc-utils recommends no packages.

klibc-utils suggests no packages.

-- no debconf information
Description: Add support for reboot syscall argument
 Add support to the reboot command so an argument for the 4th parameter
 of the syscall can be passed around. This can be useful in, say, devices
 that follow Android partitions conventions, so we can do things like
 rebootinig to the kernel in recovery partition with "reboot recovery".
Author: Alfonso Sanchez-beato <alfonso.sanchez-be...@canonical.com>
Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/klibc/+bug/1692494
Forwarded: http://www.zytor.com/pipermail/klibc/2017-May/003957.html
Last-Update: 2017-05-22

--- klibc-2.0.4.orig/usr/include/sys/reboot.h
+++ klibc-2.0.4/usr/include/sys/reboot.h
@@ -16,8 +16,8 @@
 #define RB_DISABLE_CAD	LINUX_REBOOT_CMD_CAD_OFF
 #define RB_POWER_OFF	LINUX_REBOOT_CMD_POWER_OFF
 
-/* glibc-ish one-argument version */
-__extern int reboot(int);
+/* two-arguments version of reboot */
+__extern int reboot(int, void *);
 
 /* Native four-argument system call */
 __extern int __reboot(int, int, int, void *);
--- klibc-2.0.4.orig/usr/klibc/reboot.c
+++ klibc-2.0.4/usr/klibc/reboot.c
@@ -6,10 +6,10 @@
 #include 
 #include 
 
-/* This provides the one-argument glibc-ish version of reboot.
+/* This provides two-argument reboot function (glibc flag plus reboot argument).
The full four-argument system call is available as __reboot(). */
 
-int reboot(int flag)
+int reboot(int flag, void *arg)
 {
-	return __reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, flag, NULL);
+	return __reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, flag, arg);
 }
--- klibc-2.0.4.orig/usr/utils/halt.c
+++ klibc-2.0.4/usr/utils/halt.c
@@ -6,7 +6,7 @@
 
 static __noreturn usage(void)
 {
-	static char mesg[] = "Usage: {halt|reboot|poweroff} [-n]\n";
+	static char mesg[] = "Usage: {halt|reboot|poweroff} [-n] [reboot-arg]\n";
 	write(2, mesg, sizeof(mesg) - 1);
 	exit(1);
 }
@@ -16,6 +16,7 @@ int main(int argc, char *argv[])
 	int cmd = 0; /* initalize to shut gcc up */
 	int do_sync = 1;
 	char *ptr, *ptr2;
+	char *reboot_arg = NULL;
 
 	/* Which action (program name)? */
 	ptr2 = ptr = argv[0];
@@ -32,23 +33,28 @@ int main(int argc, char *argv[])
 		usage();
 
 	/* Walk options */
-	while (*++argv && **argv == '-')
-		switch (*++*argv) {
-		case 'f':
-			break; /* -f assumed */
-		case 'n':
-			do_sync = 0;
-			break;
-		default:
-			usage();
+	while (*++argv)
+		if (**argv == '-') {
+			switch (*++*argv) {
+			case 'f':
+break; /* -f assumed */
+			case 'n':
+do_sync = 0;
+break;
+			default:
+usage();
+			}
+		} else if (cmd == LINUX_REBOOT_CMD_RESTART) {
+			reboot_arg = *argv;
+			cmd = LINUX_REBOOT_CMD_RESTART2;
+		} else {
+			usage(); /* args, not reboot == error */
 		}
-	if (*argv)
-		usage(); /* any args == error */
 
 	if (do_sync)
 		sync();
-	reboot(LINUX_REBOOT_CMD_CAD_OFF); /* Enable CTRL+ALT+DEL */
-	if (!reboot(cmd)) {
+	reboot(LINUX_REBOOT_CMD_CAD_OFF, NULL); /* Enable CTRL+ALT+DEL */
+	if (!reboot(cmd, reboot_arg)) {
 		/* Success. Currently, CMD_HALT returns, so stop the world */
 		/* kill(-1, SIGSTOP); */
 		kill(getpid(), SIGSTOP);
Description: Add support for reboot syscall argument
 Add support to the reboot command so an argument for the 4th parameter
 of the syscall can be passed around. This can be useful in, say, devices
 that follow Android partitions conventions, so we can do things like
 rebootinig to the kernel in recovery partition with "reboot recovery".
Author: Alfonso Sanchez-beato <alfonso.sanchez-be...@canonical.com>
Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/klibc/+bug/1692494
Forwarded: http://www.zytor.com/pipermail/klibc/2017-May/003957.html
Last-Update: 2017-05-22

--- klibc-2.0.4.orig/usr/include/sys/reboot.h
+++ klibc-2.0.4/usr/include/sys/reboo