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.
--- 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