On 2025-04-27 Helmut Grohne <hel...@subdivi.de> wrote: [...] > I think you missed attaching a diff. Generally, I am not opposed to > implementing in such a way. It took me quite a while to arrive at a way > that would work at all and I ended up not polishing it beyond that > point. Evidently, it served as a starting point for discussion.
Oh dear, there it is.
diff --git a/debian/control b/debian/control index df4e471a1..85d03c5ca 100644 --- a/debian/control +++ b/debian/control @@ -25,28 +25,28 @@ Build-Depends: libgnutls28-dev (>= 3.2), libgpg-error-dev (>= 1.46), libksba-dev (>= 1.6.3), - libldap2-dev, + libldap2-dev <!pkg.gnupg2.gpgvonly>, libnpth0-dev (>= 1.2), - libreadline-dev, + libreadline-dev <!pkg.gnupg2.gpgvonly>, librsvg2-bin <!nodoc>, - libsqlite3-dev, - libtss2-dev, - libusb-1.0-0-dev [!hurd-any], - openssh-client <!nocheck>, + libsqlite3-dev <!pkg.gnupg2.gpgvonly>, + libtss2-dev <!pkg.gnupg2.gpgvonly>, + libusb-1.0-0-dev [!hurd-any] <!pkg.gnupg2.gpgvonly>, + openssh-client <!nocheck !pkg.gnupg2.gpgvonly>, pkgconf, - swtpm [amd64 arm64 armel armhf i386 mips64el ppc64el riscv64 s390x] <!nocheck>, + swtpm [amd64 arm64 armel armhf i386 mips64el ppc64el riscv64 s390x] <!nocheck !pkg.gnupg2.gpgvonly>, texinfo <!nodoc>, unicode-data, zlib1g-dev | libz-dev, Build-Depends-Indep: - binutils-multiarch [!amd64 !i386], - libassuan-mingw-w64-dev (>= 2.5.0), - libgcrypt-mingw-w64-dev (>= 1.9.1), - libgpg-error-mingw-w64-dev (>= 1.50-4~), - libksba-mingw-w64-dev (>= 1.6.3), - libnpth-mingw-w64-dev (>= 1.2), - libz-mingw-w64-dev, - mingw-w64, + binutils-multiarch [!amd64 !i386] <!pkg.gnupg2.gpgvonly>, + libassuan-mingw-w64-dev (>= 2.5.0) <!pkg.gnupg2.gpgvonly>, + libgcrypt-mingw-w64-dev (>= 1.9.1) <!pkg.gnupg2.gpgvonly>, + libgpg-error-mingw-w64-dev (>= 1.50-4~) <!pkg.gnupg2.gpgvonly>, + libksba-mingw-w64-dev (>= 1.6.3) <!pkg.gnupg2.gpgvonly>, + libnpth-mingw-w64-dev (>= 1.2) <!pkg.gnupg2.gpgvonly>, + libz-mingw-w64-dev <!pkg.gnupg2.gpgvonly>, + mingw-w64 <!pkg.gnupg2.gpgvonly>, Vcs-Git: https://salsa.debian.org/debian/gnupg2.git Vcs-Browser: https://salsa.debian.org/debian/gnupg2 Homepage: https://www.gnupg.org/ @@ -55,6 +55,7 @@ Rules-Requires-Root: no Package: gpgconf Architecture: any Multi-Arch: foreign +Build-Profiles: <!pkg.gnupg2.gpgvonly> Depends: ${misc:Depends}, ${shlibs:Depends}, @@ -76,6 +77,7 @@ Package: gnupg-agent Architecture: all Section: oldlibs Multi-Arch: foreign +Build-Profiles: <!pkg.gnupg2.gpgvonly> Depends: gpg-agent (>= ${source:Version}), ${misc:Depends}, @@ -90,6 +92,7 @@ Description: GNU privacy guard - cryptographic agent (dummy transitional package Package: gpg-agent Architecture: any Multi-Arch: foreign +Build-Profiles: <!pkg.gnupg2.gpgvonly> Depends: gpgconf (= ${binary:Version}), pinentry-curses | pinentry, @@ -126,6 +129,7 @@ Description: GNU privacy guard - cryptographic agent Package: gpg-wks-server Architecture: any Multi-Arch: foreign +Build-Profiles: <!pkg.gnupg2.gpgvonly> Depends: default-mta | mail-transport-agent, gpg (= ${binary:Version}), @@ -153,6 +157,7 @@ Description: GNU privacy guard - Web Key Service server Package: gpg-wks-client Architecture: any Multi-Arch: foreign +Build-Profiles: <!pkg.gnupg2.gpgvonly> Depends: dirmngr (= ${binary:Version}), gpg (= ${binary:Version}), @@ -180,6 +185,7 @@ Description: GNU privacy guard - Web Key Service client Package: scdaemon Architecture: any Multi-Arch: foreign +Build-Profiles: <!pkg.gnupg2.gpgvonly> Depends: gpg-agent (= ${binary:Version}), ${misc:Depends}, @@ -198,6 +204,7 @@ Description: GNU privacy guard - smart card support Package: gpgsm Architecture: any Multi-Arch: foreign +Build-Profiles: <!pkg.gnupg2.gpgvonly> Depends: gpgconf (= ${binary:Version}), ${misc:Depends}, @@ -218,6 +225,7 @@ Description: GNU privacy guard - S/MIME version Package: gpg Architecture: any Multi-Arch: foreign +Build-Profiles: <!pkg.gnupg2.gpgvonly> Depends: gpgconf (= ${binary:Version}), ${misc:Depends}, @@ -249,6 +257,7 @@ Package: gnupg Architecture: all Section: metapackages Multi-Arch: foreign +Build-Profiles: <!pkg.gnupg2.gpgvonly> Depends: dirmngr (<< ${source:Version}.1~), dirmngr (>= ${source:Version}), @@ -298,6 +307,7 @@ Package: gnupg2 Architecture: all Section: oldlibs Multi-Arch: foreign +Build-Profiles: <!pkg.gnupg2.gpgvonly> Depends: gnupg (>= ${source:Version}), ${misc:Depends}, @@ -333,6 +343,7 @@ Description: GNU privacy guard - signature verification tool Package: dirmngr Architecture: any Multi-Arch: foreign +Build-Profiles: <!pkg.gnupg2.gpgvonly> Depends: adduser, gpgconf (= ${binary:Version}), @@ -366,6 +377,7 @@ Description: GNU privacy guard - network certificate management service Package: tpm2daemon Architecture: any Multi-Arch: foreign +Build-Profiles: <!pkg.gnupg2.gpgvonly> Depends: gpgconf (= ${binary:Version}), ${misc:Depends}, @@ -389,7 +401,7 @@ Description: GNU privacy guard - TPM2 support Package: gpgv-udeb Package-Type: udeb -Build-Profiles: <!noudeb> +Build-Profiles: <!noudeb !pkg.gnupg2.gpgvonly> Section: debian-installer Architecture: any Depends: @@ -407,6 +419,7 @@ Description: minimal signature verification tool Package: gpgv-static Architecture: any Multi-Arch: foreign +Build-Profiles: <!pkg.gnupg2.gpgvonly> Depends: ${misc:Depends}, ${shlibs:Depends}, @@ -431,6 +444,7 @@ Description: minimal signature verification tool (static build) Package: gpgv-win32 Architecture: all Multi-Arch: foreign +Build-Profiles: <!pkg.gnupg2.gpgvonly> Depends: ${misc:Depends}, Suggests: @@ -450,6 +464,7 @@ Package: gnupg-l10n Section: localization Architecture: all Multi-Arch: foreign +Build-Profiles: <!pkg.gnupg2.gpgvonly> Depends: ${misc:Depends}, Enhances: @@ -468,6 +483,7 @@ Description: GNU privacy guard - localization files Package: gnupg-utils Architecture: any Multi-Arch: foreign +Build-Profiles: <!pkg.gnupg2.gpgvonly> Replaces: gnupg (<< 2.1.21-4), gnupg-agent (<< 2.1.21-4), diff --git a/debian/rules b/debian/rules index fee041545..230ed7a95 100755 --- a/debian/rules +++ b/debian/rules @@ -39,10 +39,13 @@ endif %: dh $@ --with=autoreconf --builddirectory=build -GPGV_UDEB_UNNEEDED = gpgtar bzip2 gpgsm scdaemon dirmngr doc tofu exec ldap gnutls sqlite libdns keyboxd tpm2d npth +GPGV_UNNEEDED = gpgtar gpgsm scdaemon dirmngr tofu exec ldap gnutls sqlite libdns keyboxd tpm2d npth +GPGV_UDEB_UNNEEDED = $(GPGV_UNNEEDED) bzip2 doc WIN32_FLAGS=LDFLAGS="-Xlinker --no-insert-timestamp -static" CFLAGS="-g -Os" CPPFLAGS= +ifeq ($(filter pkg.gnupg2.gpgvonly,$(DEB_BUILD_PROFILES)),) + execute_after_dh_auto_configure: dh_auto_configure --builddirectory=build --verbose -- \ --libexecdir=\$${prefix}/lib/gnupg \ @@ -112,6 +115,20 @@ override_dh_shlibdeps: dpkg-shlibdeps -Tdebian/dirmngr.substvars -dRecommends debian/dirmngr/usr/lib/gnupg/dirmngr_ldap -dDepends debian/dirmngr/usr/bin/dirmngr* dh_shlibdeps -Ndirmngr +else # ifeq ($(filter pkg.gnupg2.gpgvonly,$(DEB_BUILD_PROFILES)),) +override_dh_auto_configure: + dh_auto_configure --builddirectory=build --verbose -- \ + --libexecdir=\$${prefix}/lib/gnupg \ + --enable-maintainer-mode \ + $(NODOC) \ + $(foreach x, $(GPGV_UNNEEDED), --disable-$(x)) + +override_dh_auto_test: + # stripped down build fails on make check + +endif # ifeq ($(filter pkg.gnupg2.gpgvonly,$(DEB_BUILD_PROFILES)), + + execute_before_dh_autoreconf: echo "Developer change history can be found in the source tarball. See NEWS for high-level changes." > ChangeLog