mbornet-hl / hl

Highlight (colorize) text data using regular expressions (efficient C program)
Other
118 stars 9 forks source link

Initial Debian packaging #18

Closed ottok closed 3 years ago

ottok commented 3 years ago

Package contents:

hl
drwxr-xr-x root/root ./  
drwxr-xr-x root/root ./usr/  
drwxr-xr-x root/root ./usr/bin/  
-rwxr-xr-x root/root ./usr/bin/hl  
drwxr-xr-x root/root ./usr/share/  
drwxr-xr-x root/root ./usr/share/doc/  
drwxr-xr-x root/root ./usr/share/doc/hl/  
-rw-r--r-- root/root ./usr/share/doc/hl/changelog.gz  
-rw-r--r-- root/root ./usr/share/doc/hl/copyright  
drwxr-xr-x root/root ./usr/share/man/  
drwxr-xr-x root/root ./usr/share/man/man1/  
-rw-r--r-- root/root ./usr/share/man/man1/hl.1.gz  
drwxr-xr-x root/root ./usr/share/man/man5/  
-rw-r--r-- root/root ./usr/share/man/man5/hl.5.gz

Lintian status:

N: Using profile debian/main.
N: Starting on group hl/1.93
N: Unpacking packages in group hl/1.93
N: ----
N: Processing changes file hl (version 1.93, arch source amd64) ...
N: ----
N: Processing source package hl (version 1.93, arch source) ...
P: hl source: package-does-not-install-examples examples/
P: hl source: source-contains-prebuilt-binary hl_alternate/hl
E: hl source: source-is-missing hl_alternate/hl
P: hl source: source-contains-prebuilt-binary bin/1.91/hl
E: hl source: source-is-missing bin/1.91/hl
P: hl source: source-contains-prebuilt-binary bin/1.92/hl
E: hl source: source-is-missing bin/1.92/hl
P: hl source: source-contains-prebuilt-binary bin/1.93/hl
E: hl source: source-is-missing bin/1.93/hl
P: hl source: source-contains-prebuilt-binary bin/1.87/i686/debian/hl
E: hl source: source-is-missing bin/1.87/i686/debian/hl
P: hl source: source-contains-prebuilt-binary bin/1.90/i686/debian/hl
E: hl source: source-is-missing bin/1.90/i686/debian/hl
P: hl source: source-contains-prebuilt-binary bin/1.46/amd64/debian/7.8/hl
E: hl source: source-is-missing bin/1.46/amd64/debian/7.8/hl
P: hl source: source-contains-prebuilt-binary bin/1.46/i386/debian/5.0.6/hl
E: hl source: source-is-missing bin/1.46/i386/debian/5.0.6/hl
P: hl source: source-contains-prebuilt-binary bin/1.51/amd64/debian/7.8/hl
E: hl source: source-is-missing bin/1.51/amd64/debian/7.8/hl
P: hl source: source-contains-prebuilt-binary bin/1.51/i386/debian/5.0.6/hl
E: hl source: source-is-missing bin/1.51/i386/debian/5.0.6/hl
P: hl source: source-contains-prebuilt-binary bin/1.59/amd64/debian/7.8/hl
E: hl source: source-is-missing bin/1.59/amd64/debian/7.8/hl
P: hl source: source-contains-prebuilt-binary bin/1.59/i386/debian/5.0.6/hl
E: hl source: source-is-missing bin/1.59/i386/debian/5.0.6/hl
P: hl source: source-contains-prebuilt-binary bin/1.61/amd/debian/7.8/hl
E: hl source: source-is-missing bin/1.61/amd/debian/7.8/hl
P: hl source: source-contains-prebuilt-binary bin/1.61/i386/debian/5.0.6/hl
E: hl source: source-is-missing bin/1.61/i386/debian/5.0.6/hl
P: hl source: source-contains-prebuilt-binary bin/1.62/amd/debian/7.8/hl
E: hl source: source-is-missing bin/1.62/amd/debian/7.8/hl
P: hl source: source-contains-prebuilt-binary bin/1.62/i386/debian/5.0.6/hl
E: hl source: source-is-missing bin/1.62/i386/debian/5.0.6/hl
P: hl source: source-contains-prebuilt-binary bin/1.62/i686/centos/5.5/hl
E: hl source: source-is-missing bin/1.62/i686/centos/5.5/hl
P: hl source: package-uses-old-debhelper-compat-version 10
W: hl source: newer-standards-version 4.5.0 (current is 4.3.0)
I: hl source: testsuite-autopkgtest-missing
N: ----
N: Processing buildinfo package hl (version 1.93, arch amd64 source) ...
N: ----
N: Processing binary package hl (version 1.93, arch amd64) ...
I: hl: hardening-no-bindnow usr/bin/hl
I: hl: spelling-error-in-manpage usr/share/man/man1/hl.1.gz specifing specifying
W: hl: manpage-has-errors-from-man usr/share/man/man1/hl.1.gz 167: warning [p 3, 10.0i]: can't break line
W: hl: manpage-has-errors-from-man usr/share/man/man5/hl.5.gz 191: warning: can't find special character `[1'
N: Finished processing group hl/1.93

I did not fix the Lintian found issues in the man pages. You can try fixing them yourself and then verify that LC_ALL=en_US.UTF-8 MANROFFSEQ='' MANWIDTH=80 man --warnings -E UTF-8 -l -Tutf8 -Z ./man1/hl.1 > /dev/null does not yield any warnings.

Testing

  1. Check out this branch
  2. In a Debian system (or Docker container) run dpkg-buildpackage on in the repository top-level.

I also published test packages at https://launchpad.net/~otto/+archive/ubuntu/ppa (build lgos at https://launchpad.net/~otto/+archive/ubuntu/ppa/+builds?build_text=&build_state=all).

ottok commented 3 years ago

Build log (here you can see what steps the dpkg-buildpackage runs):

/build# dpkg-buildpackage 
dpkg-buildpackage: info: source package hl
dpkg-buildpackage: info: source version 1.93
dpkg-buildpackage: info: source distribution unstable
dpkg-buildpackage: info: source changed by Otto Kekäläinen <otto@debian.org>
dpkg-buildpackage: info: host architecture amd64
 dpkg-source --before-build .
 debian/rules clean
dh clean --fail-missing
   dh_auto_clean -O--fail-missing
    make -j8 clean
make[1]: Entering directory '/build'
rm -f hl src/hl src/*.o
make[1]: Leaving directory '/build'
   dh_autoreconf_clean -O--fail-missing
   dh_clean -O--fail-missing
    rm -f debian/debhelper-build-stamp
    rm -rf debian/.debhelper/
    rm -f -- debian/hl.substvars debian/files
    rm -fr -- debian/hl/ debian/tmp/
    find .  \( \( \
        \( -path .\*/.git -o -path .\*/.svn -o -path .\*/.bzr -o -path .\*/.hg -o -path .\*/CVS -o -path .\*/.pc -o -path .\*/_darcs \) -prune -o -type f -a \
            \( -name '#*#' -o -name '.*~' -o -name '*~' -o -name DEADJOE \
         -o -name '*.orig' -o -name '*.rej' -o -name '*.bak' \
         -o -name '.*.orig' -o -name .*.rej -o -name '.SUMS' \
         -o -name TAGS -o \( -path '*/.deps/*' -a -name '*.P' \) \
        \) -exec rm -f {} + \) -o \
        \( -type d -a -name autom4te.cache -prune -exec rm -rf {} + \) \)
 dpkg-source -b .
dpkg-source: info: using source format '3.0 (native)'
dpkg-source: info: building hl in hl_1.93.tar.xz
dpkg-source: info: building hl in hl_1.93.dsc
 debian/rules binary
dh binary --fail-missing
   dh_update_autotools_config -O--fail-missing
   dh_autoreconf -O--fail-missing
   dh_auto_configure -O--fail-missing
   dh_auto_build -O--fail-missing
    make -j8
make[1]: Entering directory '/build'
cd src; make
make[2]: Entering directory '/build/src'
make[2]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
cc -g -O2 -fdebug-prefix-map=/build=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2  -c -o cr_main.o cr_main.c
cc -g -O2 -fdebug-prefix-map=/build=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2  -c -o cr_gpri.o cr_gpri.c
lex  -t cr_lex.l > cr_lex.c
cc -g -O2 -fdebug-prefix-map=/build=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2  -c -o cr_lex.o cr_lex.c
./hl: version 1.93
make[2]: Leaving directory '/build/src'
mv src/hl .
./hl -V
./hl: version 1.93
make[1]: [Makefile:8: hl] Error 1 (ignored)
make[1]: Leaving directory '/build'
   dh_auto_test -O--fail-missing
   create-stamp debian/debhelper-build-stamp
   dh_testroot -O--fail-missing
   dh_prep -O--fail-missing
    rm -f -- debian/hl.substvars
    rm -fr -- debian/.debhelper/generated/hl/ debian/hl/ debian/tmp/
   dh_auto_install -O--fail-missing
    install -d debian/hl
   dh_install -O--fail-missing
dh_install: Please use dh_missing --list-missing/--fail-missing instead
dh_install: This feature will be removed in compat 12.
    install -d debian/hl/usr/bin/
    cp --reflink=auto -a ./hl debian/hl/usr/bin//
    install -d debian/.debhelper/generated/hl
    dh_missing --fail-missing
   dh_installdocs -O--fail-missing
    install -d debian/hl/usr/share/doc/hl
    install -p -m0644 debian/copyright debian/hl/usr/share/doc/hl/copyright
   dh_installchangelogs -O--fail-missing
    install -p -m0644 debian/changelog debian/hl/usr/share/doc/hl/changelog
   dh_installman -O--fail-missing
    install -d debian/hl/usr/share/man/man1/
    install -p -m0644 ./man1/hl.1 debian/hl/usr/share/man/man1/hl.1
    install -d debian/hl/usr/share/man/man5/
    install -p -m0644 ./man5/hl.5 debian/hl/usr/share/man/man5/hl.5
    man -l --recode UTF-8 ./debian/hl/usr/share/man/man1/hl.1 > debian/hl/usr/share/man/man1/hl.1.dh-new
    man -l --recode UTF-8 ./debian/hl/usr/share/man/man5/hl.5 > debian/hl/usr/share/man/man5/hl.5.dh-new
    mv debian/hl/usr/share/man/man5/hl.5.dh-new debian/hl/usr/share/man/man5/hl.5
    chmod 0644 -- debian/hl/usr/share/man/man5/hl.5
    mv debian/hl/usr/share/man/man1/hl.1.dh-new debian/hl/usr/share/man/man1/hl.1
    chmod 0644 -- debian/hl/usr/share/man/man1/hl.1
   dh_systemd_enable -O--fail-missing
   dh_installinit -O--fail-missing
   dh_systemd_start -O--fail-missing
   dh_perl -O--fail-missing
   dh_link -O--fail-missing
   dh_strip_nondeterminism -O--fail-missing
   dh_compress -O--fail-missing
    cd debian/hl
    chmod a-x usr/share/doc/hl/changelog usr/share/man/man1/hl.1 usr/share/man/man5/hl.5
    gzip -9nf usr/share/doc/hl/changelog usr/share/man/man1/hl.1 usr/share/man/man5/hl.5
    cd '/build'
   dh_fixperms -O--fail-missing
    find debian/hl ! -type l -a -true -a -true -print0 2>/dev/null | xargs -0r chmod go=rX,u+rw,a-s
    find debian/hl/usr/share/doc -type f -a -true -a ! -regex 'debian/hl/usr/share/doc/[^/]*/examples/.*' -print0 2>/dev/null | xargs -0r chmod 0644
    find debian/hl/usr/share/doc -type d -a -true -a -true -print0 2>/dev/null | xargs -0r chmod 0755
    find debian/hl/usr/share/man -type f -a -true -a -true -print0 2>/dev/null | xargs -0r chmod 0644
    find debian/hl -type f \( -name '*.so.*' -o -name '*.so' -o -name '*.la' -o -name '*.a' -o -name '*.js' -o -name '*.css' -o -name '*.scss' -o -name '*.sass' -o -name '*.jpeg' -o -name '*.jpg' -o -name '*.png' -o -name '*.gif' -o -name '*.cmxs' -o -name '*.node' \) -a -true -a -true -print0 2>/dev/null | xargs -0r chmod 0644
    find debian/hl/usr/bin -type f -a -true -a -true -print0 2>/dev/null | xargs -0r chmod a+x
   dh_missing -O--fail-missing
   dh_strip -O--fail-missing
    strip --remove-section=.comment --remove-section=.note debian/hl/usr/bin/hl
   dh_makeshlibs -O--fail-missing
    rm -f debian/hl/DEBIAN/shlibs
   dh_shlibdeps -O--fail-missing
    install -d debian/hl/DEBIAN
    dpkg-shlibdeps -Tdebian/hl.substvars debian/hl/usr/bin/hl
   dh_installdeb -O--fail-missing
   dh_gencontrol -O--fail-missing
    echo misc:Depends= >> debian/hl.substvars
    echo misc:Pre-Depends= >> debian/hl.substvars
    dpkg-gencontrol -phl -ldebian/changelog -Tdebian/hl.substvars -Pdebian/hl -UMulti-Arch
    chmod 0644 -- debian/hl/DEBIAN/control
   dh_md5sums -O--fail-missing
    cd debian/hl >/dev/null && xargs -r0 md5sum | perl -pe 'if (s@^\\@@) { s/\\\\/\\/g; }' > DEBIAN/md5sums
    chmod 0644 -- debian/hl/DEBIAN/md5sums
   dh_builddeb -O--fail-missing
    dpkg-deb --root-owner-group --build debian/hl ..
dpkg-deb: building package 'hl' in '../hl_1.93_amd64.deb'.
 dpkg-genbuildinfo
 dpkg-genchanges  >../hl_1.93_amd64.changes
dpkg-genchanges: info: including full source code in upload
 dpkg-source --after-build .
dpkg-buildpackage: info: full upload; Debian-native package (full source is included)
# git status --ignored
On branch master
Your branch is up to date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   hl

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    debian/.debhelper/
    debian/debhelper-build-stamp
    debian/files
    debian/hl.substvars
    debian/hl/
    src/cr_lex.c

Ignored files:
  (use "git add -f <file>..." to include in what will be committed)

    src/cr_gpri.o
    src/cr_lex.o
    src/cr_main.o

In parent dir:

-rw-r--r--   1 root root     582 Nov 22 17:24 hl_1.93.dsc
-rw-r--r--   1 root root 1334464 Nov 22 17:24 hl_1.93.tar.xz
-rw-r--r--   1 root root    4417 Nov 22 17:24 hl_1.93_amd64.buildinfo
-rw-r--r--   1 root root    1343 Nov 22 17:24 hl_1.93_amd64.changes
-rw-r--r--   1 root root   26752 Nov 22 17:24 hl_1.93_amd64.deb

This project could easy add a .travis.yml file (for https://travis-ci.org integration) or a Github Action to automatically build the Debian packages on every commit.