Compare commits

..

4 Commits

Author SHA1 Message Date
Xavier Roche
a16820a282 debian: refresh stale webhttrack browser dependency
The webhttrack Depends listed iceape-browser, iceweasel, icecat, mozilla,
firefox and mozilla-firefox as browser alternatives. All six have been
removed from Debian (iceweasel was only ever a firefox-esr stub, firefox is
not in Debian main), so qa.debian.org/debcheck flagged them as half-broken
relationships. The OR-chain still resolved via the trailing www-browser
virtual package, so it was noise rather than a real installability failure.

Replace them with firefox-esr | chromium | www-browser: two real browsers
that exist in Debian today plus the virtual fallback. google-chrome is left
out deliberately since it is not in the Debian archive and would reintroduce
the same half-broken relationship.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Xavier Roche <roche@httrack.com>
2026-06-14 21:21:25 +02:00
Xavier Roche
95a62d5557 Merge pull request #349 from xroche/ci/deb-package
ci: build and lintian-gate the Debian packages
2026-06-14 21:16:48 +02:00
Xavier Roche
8d1517400c ci: build and lintian-gate the Debian packages
Add a CI job that builds the Debian packages on every push/PR through the
same tools/mkdeb.sh maintainers release with, so packaging regressions
(control, rules, file manifests, lintian) surface in CI instead of at
release time. One amd64/gcc run is enough: packaging is arch- and
compiler-independent and the existing matrix already covers compile
portability. The job is unsigned and uploads nothing; its value is the
pass/fail and the lintian gate.

Make mkdeb.sh fail the build on any lintian error or warning, and refresh
the lintian overrides so the package is clean at that level:

- Drop dead overrides whose tags lintian no longer emits (breakout-link,
  the libhttrack spelling-error-in-binary).
- Rewrite the pointed-hint overrides (extra-license-file,
  package-contains-documentation-outside-usr-share-doc,
  hardening-no-fortify-functions): their match context is now empty and the
  path shows only as a display pointer, so a path context never matches.
  Match with '*' as the working webhttrack-common override already does.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Xavier Roche <roche@httrack.com>
2026-06-14 21:10:49 +02:00
Xavier Roche
558d82f499 Merge pull request #348 from xroche/build/regen-autotools
Regenerate committed autotools/libtool files
2026-06-14 20:35:09 +02:00
7 changed files with 49 additions and 9 deletions

View File

@@ -61,6 +61,32 @@ jobs:
if: failure()
run: cat tests/test-suite.log 2>/dev/null || true
# Validate the Debian packaging via the same script maintainers release with.
# One amd64/gcc run is enough: packaging (control/rules/manifest/lintian/quilt
# source build) is arch- and compiler-independent, and the build matrix above
# already covers compile portability. lintian runs with --fail-on=error.
deb:
name: deb package (lintian)
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Install packaging toolchain
run: |
set -euo pipefail
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
build-essential autoconf automake libtool autoconf-archive \
zlib1g-dev libssl-dev \
debhelper devscripts lintian fakeroot
# --unsigned: CI has no GPG key (also skips the release sig/checksums).
# debuild builds every package, then lintian gates on errors.
- name: Build Debian packages
run: bash tools/mkdeb.sh --unsigned --no-release-artifacts
dco:
name: DCO sign-off
# Only checkable on a PR, where we have the base..head commit range.

5
debian/changelog vendored
View File

@@ -8,6 +8,11 @@ httrack (3.49.8-1) unstable; urgency=medium
common-licenses/GPL-3, use a secure version=4 watch file, add
Rules-Requires-Root and Vcs-Browser, and override the false-positive
source-is-missing on the bundled HTML documentation.
* Refresh the webhttrack browser dependency: drop the removed alternatives
(iceape-browser, iceweasel, icecat, mozilla, firefox, mozilla-firefox)
that no longer exist in Debian and triggered half-broken relationships on
the QA debcheck page. Depend on firefox-esr | chromium | www-browser
instead.
-- Xavier Roche <xavier@debian.org> Sun, 07 Jun 2026 14:29:24 +0200

2
debian/control vendored
View File

@@ -30,7 +30,7 @@ Description: Copy websites to your computer (Offline browser)
Package: webhttrack
Architecture: any
Multi-Arch: foreign
Depends: ${misc:Depends}, ${shlibs:Depends}, webhttrack-common, sensible-utils, iceape-browser | iceweasel | icecat | mozilla | firefox | mozilla-firefox | www-browser
Depends: ${misc:Depends}, ${shlibs:Depends}, webhttrack-common, sensible-utils, firefox-esr | chromium | www-browser
Replaces: webhttrack-common (<< 3.43.9-2)
Breaks: webhttrack-common (<< 3.43.9-2)
Suggests: httrack, httrack-doc

View File

@@ -1,2 +1,6 @@
httrack-doc: extra-license-file usr/share/httrack/html/license.txt
httrack-doc: package-contains-documentation-outside-usr-share-doc usr/share/httrack/*
# httrack ships its HTML manual (and the bundled license) under
# /usr/share/httrack/html by design; /usr/share/doc/httrack/html symlinks into
# it (see debian/rules). These are pointed hints whose match context is empty,
# so the path lives in the display pointer, not the override -- match with '*'.
httrack-doc: extra-license-file *
httrack-doc: package-contains-documentation-outside-usr-share-doc *

View File

@@ -1,4 +1,7 @@
libhttrack-dev: breakout-link *
libhttrack-dev: hardening-no-fortify-functions usr/lib/x86_64-linux-gnu/httrack/libtest/*
libhttrack-dev: package-contains-documentation-outside-usr-share-doc usr/share/httrack/libtest/readme.txt
# The libtest example shared objects are unhardened test fixtures shipped for
# the test harness, and their readme sits beside them under /usr/share/httrack.
# Both are pointed hints with an empty match context, so match with '*'.
libhttrack-dev: hardening-no-fortify-functions *
libhttrack-dev: package-contains-documentation-outside-usr-share-doc *
# config.h is installed as a public dev header; the package-name match is expected.
libhttrack-dev: package-name-defined-in-config-h usr/include/httrack/config.h

View File

@@ -1,2 +1,3 @@
# The shared libraries ship without a versioned symbols control file (ABI is
# tracked via the SONAME and a strict =version dependency, see debian/rules).
libhttrack2: no-symbols-control-file usr/lib/*
libhttrack2: spelling-error-in-binary usr/lib/*/libhttrack.so.* updat update

View File

@@ -153,8 +153,9 @@ main() {
cp -a "$export_dir/debian" "httrack-$ver/debian"
)
# Build (debuild also runs lintian and signs).
local -a debuild_opts=(--lintian-opts -I -i)
# Build (debuild also runs lintian and signs). --fail-on aborts on a lintian
# error or warning, so neither a release nor CI produces an unclean package.
local -a debuild_opts=(--lintian-opts -I -i "--fail-on=error,warning")
local -a build_opts=()
[[ $source_only -eq 1 ]] && build_opts+=(-S)
if [[ $unsigned -eq 1 ]]; then