[pkg-gnupg-maint] Bug#1055238: pinentry: Please add bootstrapping profile

Samuel Thibault sthibault at debian.org
Thu Nov 2 17:33:45 GMT 2023


Source: pinentry
Severity: normal
Tags: patch

Hello,

When bootstrapping a new port, buildds needs to use gnupg to sign
packages, which depends on gpg-agent, which depends on pinentry. But
pinentry build-deps on qt, gtk etc. which we don't really want to
bootstrap by hand. The attached patch adds build profiles that can be
used to easily build pinentry-tty, then install buildds, and let them
build the rest.

(I had to switch the no-secret/secret configuration, otherwise the
pinentry.info file doesn't get found in the nogtk profile)

Samuel

-- System Information:
Debian Release: trixie/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable-debug'), (500, 'testing-debug'), (500, 'stable-security'), (500, 'stable-debug'), (500, 'oldstable-proposed-updates-debug'), (500, 'oldstable-proposed-updates'), (500, 'oldoldstable-proposed-updates'), (500, 'oldoldstable'), (500, 'buildd-unstable'), (500, 'unstable'), (500, 'stable'), (500, 'oldstable'), (1, 'experimental-debug'), (1, 'buildd-experimental'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386, arm64

Kernel: Linux 6.5.0-1-amd64 (SMP w/8 CPU threads; PREEMPT)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

-- 
Samuel
---
Pour une évaluation indépendante, transparente et rigoureuse !
Je soutiens la Commission d'Évaluation de l'Inria.
-------------- next part --------------
--- debian/control.original	2023-11-02 18:12:13.454799542 +0100
+++ debian/control	2023-11-02 18:12:30.682864897 +0100
@@ -7,18 +7,18 @@
 Build-Depends:
  debhelper-compat (= 13),
  libassuan-dev (>= 2.1.0),
- libfltk1.3-dev,
- libgcr-3-dev,
- libglib2.0-dev (>= 2.15.5),
+ libfltk1.3-dev <!pkg.pinentry.nofltk>,
+ libgcr-3-dev <!pkg.pinentry.nogtk>,
+ libglib2.0-dev (>= 2.15.5) <!pkg.pinentry.nogtk>,
  libgpg-error-dev (>= 1.16),
- libgtk2.0-dev (>= 2.4.0),
- libncurses5-dev,
- libncursesw5-dev,
- libqt5waylandclient5-dev,
- libsecret-1-dev,
+ libgtk2.0-dev (>= 2.4.0) <!pkg.pinentry.nogtk>,
+ libncurses5-dev <!pkg.pinentry.nocurses>,
+ libncursesw5-dev <!pkg.pinentry.nocurses>,
+ libqt5waylandclient5-dev <!pkg.pinentry.noqt>,
+ libsecret-1-dev <!pkg.pinentry.nogtk>,
  m4,
  pkg-config,
- qtbase5-dev,
+ qtbase5-dev <!pkg.pinentry.noqt>,
  texinfo,
 Standards-Version: 4.6.1
 Homepage: https://www.gnupg.org/related_software/pinentry/
@@ -29,6 +29,7 @@
 Package: pinentry-curses
 Architecture: any
 Multi-Arch: foreign
+Build-Profiles: <!pkg.pinentry.nocurses>
 Depends:
  ${misc:Depends},
  ${shlibs:Depends},
@@ -87,6 +88,7 @@
 Package: pinentry-qt
 Architecture: any
 Multi-Arch: foreign
+Build-Profiles: <!pkg.pinentry.noqt>
 Depends:
  ${misc:Depends},
  ${shlibs:Depends},
@@ -111,6 +113,7 @@
 
 Package: pinentry-gtk2
 Architecture: any
+Build-Profiles: <!pkg.pinentry.nogtk>
 Depends:
  ${misc:Depends},
  ${shlibs:Depends},
@@ -139,6 +142,7 @@
 Package: pinentry-fltk
 Architecture: any
 Multi-Arch: foreign
+Build-Profiles: <!pkg.pinentry.nofltk>
 Depends:
  ${misc:Depends},
  ${shlibs:Depends},
@@ -167,6 +171,7 @@
 Package: pinentry-gnome3
 Architecture: any
 Multi-Arch: foreign
+Build-Profiles: <!pkg.pinentry.nogtk>
 Depends:
  gcr,
  ${misc:Depends},
--- debian/rules.original	2023-11-02 18:12:18.838819816 +0100
+++ debian/rules	2023-11-02 18:14:39.283391832 +0100
@@ -2,34 +2,60 @@
 
 QT_SELECT = qt5
 export QT_SELECT
-SHARED_CONFIGS = --disable-rpath --without-libcap --disable-pinentry-emacs --disable-inside-emacs --enable-fallback-curses --disable-pinentry-tqt --disable-pinentry-efl
+SHARED_CONFIGS = --disable-rpath --without-libcap --disable-pinentry-emacs --disable-inside-emacs --disable-pinentry-tqt --disable-pinentry-efl
 export DEB_BUILD_MAINT_OPTIONS = hardening=+bindnow
 
+ifeq (,$(filter pkg.pinentry.nocurses,$(DEB_BUILD_PROFILES)))
+ENABLE_CURSES = --enable-pinentry-curses
+FALLBACK_CURSES = --enable-fallback-curses 
+else
+ENABLE_CURSES = --disable-pinentry-curses
+FALLBACK_CURSES = --disable-fallback-curses 
+endif
+
+ifeq (,$(filter pkg.pinentry.noqt,$(DEB_BUILD_PROFILES)))
+ENABLE_QT = --enable-pinentry-qt
+else
+ENABLE_QT = --disable-pinentry-qt
+endif
+
+ifeq (,$(filter pkg.pinentry.nofltk,$(DEB_BUILD_PROFILES)))
+ENABLE_FLTK = --enable-pinentry-fltk
+else
+ENABLE_FLTK = --disable-pinentry-fltk
+endif
+
 %:
 	dh $@
 
 override_dh_auto_configure:
-	dh_auto_configure --builddirectory=build-no-libsecret -- \
+	dh_auto_configure -- \
 		$(SHARED_CONFIGS) --disable-libsecret \
 		--enable-pinentry-tty \
-		--enable-pinentry-curses \
-		--enable-pinentry-qt \
+		$(ENABLE_CURSES) \
+		$(FALLBACK_CURSES) \
+		$(ENABLE_QT) \
 		--disable-pinentry-qt4 \
-		--enable-pinentry-fltk \
+		$(ENABLE_FLTK) \
 		--disable-pinentry-gtk2 \
 		--disable-pinentry-gnome3
-	dh_auto_configure -- $(SHARED_CONFIGS) \
+ifeq (,$(filter pkg.pinentry.nogtk,$(DEB_BUILD_PROFILES)))
+	dh_auto_configure --builddirectory=build-libsecret -- $(SHARED_CONFIGS) \
 		--disable-pinentry-tty \
 		--disable-pinentry-curses \
+		$(FALLBACK_CURSES) \
 		--disable-pinentry-qt \
 		--disable-pinentry-qt4 \
 		--disable-pinentry-fltk \
 		--enable-pinentry-gtk2 \
 		--enable-pinentry-gnome3
+endif
 
 override_dh_auto_build:
-	dh_auto_build --builddirectory=build-no-libsecret
 	dh_auto_build
+ifeq (,$(filter pkg.pinentry.nogtk,$(DEB_BUILD_PROFILES)))
+	dh_auto_build --builddirectory=build-libsecret
+endif
 
 override_dh_installdocs:
 	dh_installdocs -A NEWS AUTHORS
--- debian/pinentry-curses.install.original	2023-11-02 18:18:17.988832606 +0100
+++ debian/pinentry-curses.install	2023-11-02 18:18:25.948884041 +0100
@@ -1 +1 @@
-build-no-libsecret/curses/pinentry-curses usr/bin
+usr/bin/pinentry-curses
--- debian/pinentry-fltk.install.original	2023-11-02 18:18:17.992832632 +0100
+++ debian/pinentry-fltk.install	2023-11-02 18:18:30.556913691 +0100
@@ -1 +1 @@
-build-no-libsecret/fltk/pinentry-fltk usr/bin
+usr/bin/pinentry-fltk
--- debian/pinentry-gnome3.install.original	2023-11-02 18:18:17.992832632 +0100
+++ debian/pinentry-gnome3.install	2023-11-02 18:19:09.157158690 +0100
@@ -1 +1 @@
-usr/bin/pinentry-gnome3
+build-libsecret/gnome3/pinentry-gnome3 usr/bin
--- debian/pinentry-gtk2.install.original	2023-11-02 18:18:17.992832632 +0100
+++ debian/pinentry-gtk2.install	2023-11-02 18:19:26.781268698 +0100
@@ -1 +1 @@
-usr/bin/pinentry-gtk-2
+build-libsecret/gtk+-2/pinentry-gtk-2 usr/bin
--- debian/pinentry-qt.install.original	2023-11-02 18:18:17.996832658 +0100
+++ debian/pinentry-qt.install	2023-11-02 18:19:34.613317242 +0100
@@ -1 +1 @@
-build-no-libsecret/qt/pinentry-qt usr/bin
+usr/bin/pinentry-qt
--- debian/pinentry-tty.install.original	2023-11-02 18:18:17.996832658 +0100
+++ debian/pinentry-tty.install	2023-11-02 18:19:39.333346400 +0100
@@ -1 +1 @@
-build-no-libsecret/tty/pinentry-tty usr/bin/
+usr/bin/pinentry-tty


More information about the pkg-gnupg-maint mailing list