Hi Helmut,
On Wed, 8 Jul 2020 18:49:42 +0200, Helmut Grohne <helmut@subdivi.de> wrote:
[...]
> > diff --git a/debian/control.in/main b/debian/control.in/main
> > index 659267bd..c513a01a 100644
> > --- a/debian/control.in/main
> > +++ b/debian/control.in/main
> > @@ -12,7 +12,8 @@ Build-Depends: gettext, dpkg (>= 1.18.7), dpkg-dev (>=
> > 1.17.14), xz-utils, file, g++-9, g++-9-multilib [amd64 i386
> > kfreebsd-amd64 mips mipsel mipsn32 mipsn32el mips64 mips64el mipsr6
> > mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el powerpc ppc64 s390x
> > sparc sparc64 x32] <!nobiarch>, python3:native, libidn2-0 (>= 2.0.5~)
> > <!nocheck>,
> > - libc-bin (>= @GLIBC_VERSION@) <cross>
> > + libc-bin (>= @GLIBC_VERSION@) <cross>,
> > + libgd-dev <!stage1> <!stage2>
>
> I suggest adding a trailing comma to make the diff for the next change
> smaller.
>
> > Build-Depends-Indep: perl, po-debconf (>= 1.0)
> > Maintainer: GNU Libc Maintainers <debian-glibc@lists.debian.org>
> > Uploaders: Clint Adams <clint@debian.org>, Aurelien Jarno
> > <aurel32@debian.org>, Adam Conrad <adconrad@0c3.net>, Samuel Thibault
> > <sthibault@debian.org> @@ -47,11 +48,31 @@ Section: libdevel Priority:
> > optional Multi-Arch: foreign
> > Depends: ${shlibs:Depends}, ${misc:Depends}
> > -Recommends: manpages, manpages-dev
> > +Recommends: libc-devtools (>> @GLIBC_VERSION@)
> > Build-Profiles: <!stage1>
> > Description: GNU C Library: Development binaries
> > This package contains utility programs related to the GNU C Library
> > development package.
> > + .
> > + * gencat: generate message catalogs
> > + * rpcgen: compile RPC protocols to C
> > +
> > +Package: libc-devtools
> > +Architecture: any
> > +Section: devel
> > +Priority: optional
> > +Multi-Arch: foreign
>
> I doubt that memusage is eligible for Multi-Arch: foreign.
>
> > +Depends: ${shlibs:Depends}, ${misc:Depends}
> > +Recommends: manpages, manpages-dev
> > +Build-Profiles: <!stage1> <!stage2>
>
> You need Breaks + Replaces here. With the current patch, piuparts should
> be unhappy.
Thanks for the careful review, I’ve fixed all the above in the attached patch
(using ${binary:Version} for Breaks/Replaces for now).
Regards,
Stephen
From c0322308d2be0a5e54fa39ae1437f0fad7901540 Mon Sep 17 00:00:00 2001
From: Stephen Kitt <skitt@debian.org>
Date: Tue, 21 Apr 2020 20:55:53 +0200
Subject: [PATCH] Build and package memusage*
This builds memusage and memusagestat in the libc pass, and ships them
in a new package, libc-devtools (short for "libc-provided developer
tools", and not libc-dev-tools to avoid making it seem to
closely-related to libc-dev-bin). This involves adding a
build-dependency on libgd-dev (outside stage1 and stage2). Other tools
which are not used to build *with* libc, but useful for development in
general, are moved to libc-devtools: mtrace, sotruss, sprof.
libc-dev-bin recommends libc-devtools to provide a simple
transition (see #91815 for the discussion).
Closes: #91815
Signed-off-by: Stephen Kitt <skitt@debian.org>
---
debian/control.in/main | 27 +++++++++++++++++--
debian/debhelper.in/libc-dev-bin.install | 3 ---
debian/debhelper.in/libc-dev-bin.manpages | 1 -
debian/debhelper.in/libc-devtools.install | 5 ++++
...rrides => libc-devtools.lintian-overrides} | 2 ++
debian/debhelper.in/libc-devtools.manpages | 1 +
debian/rules | 3 +++
debian/rules.d/build.mk | 8 ++++++
8 files changed, 44 insertions(+), 6 deletions(-)
create mode 100644 debian/debhelper.in/libc-devtools.install
rename debian/debhelper.in/{libc-dev-bin.lintian-overrides => libc-devtools.lintian-overrides} (58%)
create mode 100644 debian/debhelper.in/libc-devtools.manpages
diff --git a/debian/control.in/main b/debian/control.in/main
index 659267bd..2a2fb5a8 100644
--- a/debian/control.in/main
+++ b/debian/control.in/main
@@ -12,7 +12,8 @@ Build-Depends: gettext, dpkg (>= 1.18.7), dpkg-dev (>= 1.17.14), xz-utils, file,
g++-9, g++-9-multilib [amd64 i386 kfreebsd-amd64 mips mipsel mipsn32 mipsn32el mips64 mips64el mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el powerpc ppc64 s390x sparc sparc64 x32] <!nobiarch>,
python3:native,
libidn2-0 (>= 2.0.5~) <!nocheck>,
- libc-bin (>= @GLIBC_VERSION@) <cross>
+ libc-bin (>= @GLIBC_VERSION@) <cross>,
+ libgd-dev <!stage1> <!stage2>,
Build-Depends-Indep: perl, po-debconf (>= 1.0)
Maintainer: GNU Libc Maintainers <debian-glibc@lists.debian.org>
Uploaders: Clint Adams <clint@debian.org>, Aurelien Jarno <aurel32@debian.org>, Adam Conrad <adconrad@0c3.net>, Samuel Thibault <sthibault@debian.org>
@@ -47,11 +48,33 @@ Section: libdevel
Priority: optional
Multi-Arch: foreign
Depends: ${shlibs:Depends}, ${misc:Depends}
-Recommends: manpages, manpages-dev
+Recommends: libc-devtools (>> @GLIBC_VERSION@)
Build-Profiles: <!stage1>
Description: GNU C Library: Development binaries
This package contains utility programs related to the GNU C Library
development package.
+ .
+ * gencat: generate message catalogs
+ * rpcgen: compile RPC protocols to C
+
+Package: libc-devtools
+Architecture: any
+Section: devel
+Priority: optional
+Multi-Arch: no
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Breaks: libc-dev-bin (<< ${binary:Version})
+Replaces: libc-dev-bin (<< ${binary:Version})
+Recommends: manpages, manpages-dev
+Build-Profiles: <!stage1> <!stage2>
+Description: GNU C Library: Development tools
+ This package contains development tools shipped by the GNU C
+ Library.
+ .
+ * memusage, memusagestat: profile a program's memory usage
+ * mtrace: interpret the malloc trace log
+ * sotruss: trace shared library calls
+ * sprof: display shared object profiling data
Package: libc-l10n
Architecture: all
diff --git a/debian/debhelper.in/libc-dev-bin.install b/debian/debhelper.in/libc-dev-bin.install
index 0d760a7e..902029b5 100644
--- a/debian/debhelper.in/libc-dev-bin.install
+++ b/debian/debhelper.in/libc-dev-bin.install
@@ -1,5 +1,2 @@
debian/tmp-libc/usr/bin/gencat usr/bin
-debian/tmp-libc/usr/bin/mtrace usr/bin
debian/tmp-libc/usr/bin/rpcgen usr/bin
-debian/tmp-libc/usr/bin/sotruss usr/bin
-debian/tmp-libc/usr/bin/sprof usr/bin
diff --git a/debian/debhelper.in/libc-dev-bin.manpages b/debian/debhelper.in/libc-dev-bin.manpages
index c33123a0..576ec52c 100644
--- a/debian/debhelper.in/libc-dev-bin.manpages
+++ b/debian/debhelper.in/libc-dev-bin.manpages
@@ -1,3 +1,2 @@
debian/local/manpages/gencat.1
debian/local/manpages/rpcgen.1
-debian/local/manpages/sotruss.1
diff --git a/debian/debhelper.in/libc-devtools.install b/debian/debhelper.in/libc-devtools.install
new file mode 100644
index 00000000..7a0024da
--- /dev/null
+++ b/debian/debhelper.in/libc-devtools.install
@@ -0,0 +1,5 @@
+debian/tmp-libc/usr/bin/memusage usr/bin
+debian/tmp-libc/usr/bin/memusagestat usr/bin
+debian/tmp-libc/usr/bin/mtrace usr/bin
+debian/tmp-libc/usr/bin/sotruss usr/bin
+debian/tmp-libc/usr/bin/sprof usr/bin
diff --git a/debian/debhelper.in/libc-dev-bin.lintian-overrides b/debian/debhelper.in/libc-devtools.lintian-overrides
similarity index 58%
rename from debian/debhelper.in/libc-dev-bin.lintian-overrides
rename to debian/debhelper.in/libc-devtools.lintian-overrides
index eedd7cbd..1031449a 100644
--- a/debian/debhelper.in/libc-dev-bin.lintian-overrides
+++ b/debian/debhelper.in/libc-devtools.lintian-overrides
@@ -1,3 +1,5 @@
# these manpages are provided by the manpages package
+libc-dev-bin: binary-without-manpage usr/bin/memusage
+libc-dev-bin: binary-without-manpage usr/bin/memusagestat
libc-dev-bin: binary-without-manpage usr/bin/mtrace
libc-dev-bin: binary-without-manpage usr/bin/sprof
diff --git a/debian/debhelper.in/libc-devtools.manpages b/debian/debhelper.in/libc-devtools.manpages
new file mode 100644
index 00000000..c43e02da
--- /dev/null
+++ b/debian/debhelper.in/libc-devtools.manpages
@@ -0,0 +1 @@
+debian/local/manpages/sotruss.1
diff --git a/debian/rules b/debian/rules
index 97e00f91..84bddc48 100755
--- a/debian/rules
+++ b/debian/rules
@@ -136,6 +136,9 @@ ifneq ($(filter stage1,$(DEB_BUILD_PROFILES)),)
endif
else
DEB_ARCH_REGULAR_PACKAGES = $(libc) $(libc)-dev $(libc)-dbg $(libc)-pic libc-bin libc-dev-bin
+ ifeq ($(filter stage2,$(DEB_BUILD_PROFILES)),)
+ DEB_ARCH_REGULAR_PACKAGES += libc-devtools
+ endif
DEB_INDEP_REGULAR_PACKAGES = glibc-doc glibc-source libc-l10n locales
ifneq ($(filter noudeb,$(DEB_BUILD_PROFILES)),)
DEB_UDEB_PACKAGES =
diff --git a/debian/rules.d/build.mk b/debian/rules.d/build.mk
index 0d03116a..7dbe9024 100644
--- a/debian/rules.d/build.mk
+++ b/debian/rules.d/build.mk
@@ -37,7 +37,15 @@ $(stamp)configure_%: $(stamp)config_sub_guess $(stamp)patch $(KERNEL_HEADER_DIR)
echo "BASH := /bin/bash" >> $(DEB_BUILDDIR)/configparms
echo "KSH := /bin/bash" >> $(DEB_BUILDDIR)/configparms
echo "SHELL := /bin/bash" >> $(DEB_BUILDDIR)/configparms
+ifeq (,$(filter stage1 stage2,$(DEB_BUILD_PROFILES)))
+ if [ "$(curpass)" = "libc" ]; then \
+ echo "LIBGD = yes" >> $(DEB_BUILDDIR)/configparms; \
+ else \
+ echo "LIBGD = no" >> $(DEB_BUILDDIR)/configparms; \
+ fi
+else
echo "LIBGD = no" >> $(DEB_BUILDDIR)/configparms
+endif
echo "bindir = $(bindir)" >> $(DEB_BUILDDIR)/configparms
echo "datadir = $(datadir)" >> $(DEB_BUILDDIR)/configparms
echo "complocaledir = $(complocaledir)" >> $(DEB_BUILDDIR)/configparms
--
2.20.1
Attachment:
pgpXDG6s9M9uz.pgp
Description: OpenPGP digital signature