Source: srt
Version: 1.4.1-5
Severity: serious
Tags: patch ftbfs
Justification: fails to build from source (but built successfully in the past)

Dear colleagues,

Doing a no-change rebuild of srt for buster-backports/amd64, I noticed that
'gbp buildpackage' fails on 'dh clean --with sphinxdoc':

dpkg-checkbuilddeps: error: Unmet build dependencies: cmake chrpath help2man 
libgnutls28-dev libssl-dev pkg-config tclsh
.[1;33mW: Unmet build-dependency in source.[0m
dpkg-source: info: using patch list from debian/patches/series
dpkg-source: info: applying 001-multiarch-rpath.patch
dh clean --with sphinxdoc
dh: error: unable to load addon sphinxdoc: Can't locate 
Debian/Debhelper/Sequence/sphinxdoc.pm in @INC (you may need to install the 
Debian::Debhelper::Sequence
BEGIN failed--compilation aborted at (eval 14) line 1.

make: *** [debian/rules:21: clean] Error 25

The core issue is that sphinxdoc is installed in chroot while dh_clean is first
called on host system. Figuring this out, I noticed that libsrt-doc has no files
except of changelog.gz and copyright.

I fixed the issues and provided a doc-base registration of HTML manual.
Please review the attached patches and upload a backportvto buster once fixed.

Vasyl

-- System Information:
Debian Release: bullseye/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 4.15.0-108-generic (SMP w/6 CPU cores)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=C, LC_CTYPE=C (charmap=UTF-8) (ignored: LC_ALL set to 
en_US.UTF-8), LANGUAGE=C (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: unable to detect
>From ec7f2e365f90ea8d2d9e7b7f730f902d9b59b6b8 Mon Sep 17 00:00:00 2001
From: Vasyl Gello <vasek.ge...@gmail.com>
Date: Fri, 19 Jun 2020 08:09:12 +0000
Subject: [PATCH 1/4] debian: move python3-sphinx to Build-Depends-Indep

Fixes FTBFS edge case using pbuilder chroot, when dh_clean invoked
on host system to build source package fails to find debhelper sequence
provided by a package listed in Build-Depends and installed later inside
the chroot.

The solution is adapted from pynfft package:
https://salsa.debian.org/science-team/pynfft/-/commit/4c4c47acc0dba6ee0f3fa6cf4c3fc6f5555fbe41

The "override_dh_auto_build" conflicts with 
"override_dh_auto_build-{arch,indep}", so
renaming "override_dh_auto_build" to "override_dh_auto_build-arch".

Thanks-To: to Mattia Rizzolo <mat...@debian.org>
Signed-off-by: Vasyl Gello <vasek.ge...@gmail.com>
---
 debian/control | 2 +-
 debian/rules   | 6 ++++--
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/debian/control b/debian/control
index 063cae9..58c9ae8 100644
--- a/debian/control
+++ b/debian/control
@@ -8,8 +8,8 @@ Build-Depends: debhelper-compat (= 13),
  libgnutls28-dev,
  libssl-dev,
  pkg-config,
- python3-sphinx,
  tclsh
+Build-Depends-Indep:  python3-sphinx
 Standards-Version: 4.5.0
 Section: libs
 Homepage: https://github.com/Haivision/srt
diff --git a/debian/rules b/debian/rules
index 7a832ed..081541a 100755
--- a/debian/rules
+++ b/debian/rules
@@ -18,7 +18,7 @@ include /usr/share/dpkg/default.mk  # provides DEB_VERSION
 export USE_ENCLIB=gnutls
 
 %:
-       dh $@ --with sphinxdoc
+       dh $@
 
 override_dh_auto_clean:
        dh_clean
@@ -33,12 +33,14 @@ override_dh_auto_configure:
        cd build-openssl && cmake .. $(CMAKE_OPTS) -DUSE_ENCLIB=openssl
        cd build-gnutls && cmake .. $(CMAKE_OPTS) -DUSE_ENCLIB=gnutls 
-DTARGET_srt=srt-gnutls
 
-override_dh_auto_build:
+override_dh_auto_build-arch:
        #dh_auto_build --builddirectory=debian/build/openssl
        #dh_auto_build --builddirectory=debian/build/gnutls
        mkdir -p build-openssl build-gnutls
        cd build-openssl && $(MAKE)
        cd build-gnutls && $(MAKE)
+
+override_dh_auto_build-indep:
        http_proxy='http://127.0.0.1:9/' python3 -m sphinx -N -c debian -bhtml 
docs debian/html
 
 override_dh_auto_install:
-- 
2.27.0

>From 6a0ca791c0c832dda75f6f00b0453b34933cf4ab Mon Sep 17 00:00:00 2001
From: Vasyl Gello <vasek.ge...@gmail.com>
Date: Sat, 27 Jun 2020 10:49:24 +0000
Subject: [PATCH 2/4] debian: install HTML documents to libsrt-doc

Documents generated by sphinx were installed nowhere,
and libsrt-doc had no document files at all.

Fixing it by providing debian/libsrt-doc.docs

Signed-off-by: Vasyl Gello <vasek.ge...@gmail.com>
---
 debian/libsrt-doc.docs | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 debian/libsrt-doc.docs

diff --git a/debian/libsrt-doc.docs b/debian/libsrt-doc.docs
new file mode 100644
index 0000000..82dbdaf
--- /dev/null
+++ b/debian/libsrt-doc.docs
@@ -0,0 +1 @@
+debian/html
-- 
2.27.0

>From de168b1ed490295a7fde12fc5db79bee44992044 Mon Sep 17 00:00:00 2001
From: Vasyl Gello <vasek.ge...@gmail.com>
Date: Sat, 27 Jun 2020 11:48:23 +0000
Subject: [PATCH 3/4] debian: spare Sphinx doctrees into debian/doctrees

 * Fixes Lintisn warning 'package-contains-python-doctree-file'

Signed-off-by: Vasyl Gello <vasek.ge...@gmail.com>
---
 debian/rules | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/debian/rules b/debian/rules
index 081541a..49603f0 100755
--- a/debian/rules
+++ b/debian/rules
@@ -22,7 +22,7 @@ export USE_ENCLIB=gnutls
 
 override_dh_auto_clean:
        dh_clean
-       rm -rf CMakeFiles/ debian/html build-openssl build-gnutls
+       rm -rf CMakeFiles/ debian/doctrees debian/html build-openssl 
build-gnutls
 
 override_dh_auto_configure:
        #dh_auto_configure --builddirectory=debian/build/openssl \
@@ -41,7 +41,7 @@ override_dh_auto_build-arch:
        cd build-gnutls && $(MAKE)
 
 override_dh_auto_build-indep:
-       http_proxy='http://127.0.0.1:9/' python3 -m sphinx -N -c debian -bhtml 
docs debian/html
+       http_proxy='http://127.0.0.1:9/' python3 -m sphinx -N -c debian -d 
debian/doctrees -bhtml docs debian/html
 
 override_dh_auto_install:
        #dh_auto_install
-- 
2.27.0

>From 0e23af202b32cb2c00e6fe38fc8c8df2bd29fe7e Mon Sep 17 00:00:00 2001
From: Vasyl Gello <vasek.ge...@gmail.com>
Date: Sat, 27 Jun 2020 12:11:01 +0000
Subject: [PATCH 4/4] debian: Add doc-base registration

Signed-off-by: Vasyl Gello <vasek.ge...@gmail.com>
---
 debian/libsrt-doc.doc-base | 10 ++++++++++
 1 file changed, 10 insertions(+)
 create mode 100644 debian/libsrt-doc.doc-base

diff --git a/debian/libsrt-doc.doc-base b/debian/libsrt-doc.doc-base
new file mode 100644
index 0000000..e8a2295
--- /dev/null
+++ b/debian/libsrt-doc.doc-base
@@ -0,0 +1,10 @@
+Document: libsrt-doc
+Title: Documentation for SRT (Secure Reliable Transport) library
+Author: Haivision, Inc
+Abstract: This manual describes the Secure Reliable Transport
+ protocol and application development using libsrt.
+Section: Programming/C++
+
+Format: HTML
+Index: /usr/share/doc/libsrt-doc/html/API.html
+Files: /usr/share/doc/libsrt-doc/html/*.html
-- 
2.27.0

Reply via email to