Hi Josch,

This package builds just fine either on or off an island. The "pre-built artifacts" is actually the build support provided by the upstream for their official release package. It is nice to rebuild the build support, but is not required nor always desired.

Milan


On 2/8/24 18:24, Johannes Schauer Marin Rodrigues wrote:
Source: less
Version: 590-2
Severity: serious
Tags: patch

Hi,

the current curl packaging uses pre-built artifacts from the upstream
tarball without regenerating them. Attempting to regenerate them by
running "make -f Makefile.aut" proceeds to call curl to download stuff
from ftp://ftp.unicode.org. To fix this, I added a build dependency on
unicode-data and symlinked the relevant files in the source tree to the
files shipped by the unicode-data package. While I was at it, my patch
also regenerates all the other files which were so far just copypasted
from the upstream tarball without verifying whether they can really be
built using Debian main. This is the patch:

diff -Nru less-590/debian/control less-590/debian/control
--- less-590/debian/control     2023-03-12 15:49:03.000000000 +0100
+++ less-590/debian/control     2024-02-08 23:12:54.000000000 +0100
@@ -4,7 +4,8 @@
  Maintainer: Milan Kupcevic <mi...@debian.org>
  Build-Depends:
   debhelper (>= 12),
- libncurses-dev
+ libncurses-dev,
+ unicode-data
  Standards-Version: 4.6.2
  Vcs-Git: https://salsa.debian.org/debian/less.git
  Vcs-Browser: https://salsa.debian.org/debian/less
diff -Nru less-590/debian/rules less-590/debian/rules
--- less-590/debian/rules       2023-02-12 11:17:35.000000000 +0100
+++ less-590/debian/rules       2024-02-08 23:16:58.000000000 +0100
@@ -12,3 +12,20 @@
        dh_auto_configure -- \
          --with-regex=gnu \
          --with-editor=/usr/bin/editor
+
+execute_before_dh_auto_build:
+       mkdir -p unicode
+       ln -s /usr/share/unicode/UnicodeData.txt unicode/UnicodeData.txt
+       ln -s /usr/share/unicode/EastAsianWidth.txt unicode/EastAsianWidth.txt
+       make -f Makefile.aut
+
+execute_before_dh_auto_clean:
+       set -e; for t in "" echo key; do mv "less$$t.nro" "less$$t.bak"; done
+       make -f Makefile.aut clean
+       rm -f *.nro *.man help.c funcs.h defines.h.in configure
+       rm -f unicode/UnicodeData.txt unicode/EastAsianWidth.txt
+       [ ! -d unicode ] || rmdir unicode
+       set -e; for t in "" echo key; do mv "less$$t.bak" "less$$t.nro"; touch 
"less$$t.nro.VER" "less$$t.nro"; done
+
+execute_before_dh_auto_install:
+       make -f Makefile.aut distfiles


The stunt with preserving the *.nro files is necessary because the upstream
tarball does not ship the *.nro.VER files which are then made into *.nro files
by replacing @@VERSION@@ and @@DATE@@ with their respective values. Technically
this is a case where the original source is missing from the Debian tarball but
this replacement is probably trivial enough to not be a DFSG violation.

The patch could be made much simpler if you were using a tarball from the
upstream git instead of the distribution tarball which is missing sources but
you probably have your reasons for doing it this way.

Thanks!

cheers, josch

Reply via email to