source: trunk/debathena/third/lprng/debathenify-lprng @ 25736

Revision 25736, 4.2 KB checked in by jdreed, 9 years ago (diff)
Handle wheezy's LPRng, which uses an autogenerated init script, whose name we have changed in the rules file, and must therefore change the filename too
  • Property svn:executable set to *
RevLine 
[23006]1#!/bin/sh
2set -e
3
4name=lprng
[23733]5daname=debathena-lprng
[25736]6daversionappend=debathena9
[23078]7section=debathena
[23006]8
9hack_package () {
[23017]10    # Rename the package and make it not conflict with lpr or cupsys-bsd.
[23006]11    perl -pe 's/^Package: lprng$/Package: debathena-lprng/' -i debian/control
[23017]12    perl -ne '/^Provides: lpr$/ || print;' -i debian/control
13    perl -pe '/^Conflicts/ && s/lpr, //' -i debian/control
[23006]14    perl -pe '/^Conflicts/ && s/cupsys-bsd/lprng/' -i debian/control
[23017]15    perl -pe '/^Replaces/ && s/lpr/lprng/' -i debian/control
[23006]16
17    perl -n -i - debian/rules << 'EOS'
[24210]18
[23006]19        if (/^build:/) {
20            # lprng has a gcc 4.2.3-related build failure on some dists.
21            # src/common/plp_snprintf.c uses a macro safestrlen() on
22            # character arrays in four places; the macro triggers GCC's
23            # -Waddress warning since it tests for the falsehood of an
24            # array address.  This is a workaround.
25            print "confflags += --disable-werror\n";
26        }
27
28        # Since we're renaming the main package, we have to adjust
29        # where things get installed.  But make sure not to change
30        # references to debian/lprng-doc, which we aren't renaming.
31        s|debian/lprng|debian/debathena-lprng|;
32        s|debian/debathena-lprng-doc|debian/lprng-doc|;
33
34        print;
35
36        # Rename the commands.
[24210]37        if (/^(?:[^#]*MAKE.*install|\tdh_auto_install)/) {
[23006]38            my $usr = "debian/debathena-lprng/usr";
39            my $man1 = "$usr/share/man/man1";
40            my $man8 = "$usr/share/man/man8";
41            print "\trm $usr/bin/cancel\n";
42            print "\tln -s mit-lprm $usr/bin/cancel\n";
43            print "\trm $usr/bin/lp\n";
44            print "\tln -s mit-lpr $usr/bin/lp\n";
45            print "\tmv $usr/bin/cancel $usr/bin/mit-cancel\n";
46            print "\tmv $usr/bin/lp $usr/bin/mit-lp\n";
47            print "\tmv $usr/bin/lpq $usr/bin/mit-lpq\n";
48            print "\tmv $usr/bin/lprm $usr/bin/mit-lprm\n";
49            print "\tmv $usr/bin/lpr $usr/bin/mit-lpr\n";
50            print "\tmv $usr/bin/lpstat $usr/bin/mit-lpstat\n";
51            print "\tmv $usr/sbin/lpc $usr/sbin/mit-lpc\n";
52            print "\tmv $man1/cancel.1 $man1/mit-cancel.1\n";
53            print "\tmv $man1/lp.1 $man1/mit-lp.1\n";
54            print "\tmv $man1/lpq.1 $man1/mit-lpq.1\n";
55            print "\tmv $man1/lprm.1 $man1/mit-lprm.1\n";
56            print "\tmv $man1/lpr.1 $man1/mit-lpr.1\n";
57            print "\tmv $man1/lpstat.1 $man1/mit-lpstat.1\n";
58            print "\tmv $man8/lpc.8 $man8/mit-lpc.8\n";
59        }
60EOS
61
[24210]62    grep -q 'mit-lpr' debian/rules
63
[23016]64    # The postinst script sets or unsets the setuid bit of
65    # lpr/lprm/lpq and thus needs to be adjusted for the command
66    # renaming.
67    perl -pe 's|/usr/bin/lp|/usr/bin/mit-lp|' -i debian/postinst
68
[25736]69    # The init script is auto-generated in some versions, and we changed its
70    # name in the giant substitution above:
71    [ -f debian/lprng.init.in ] && mv debian/lprng.init.in debian/debathena-lprng.init.in
72
[23006]73    # The renamed binary package no longer matches the source package
74    # name, so we have to rename a bunch of debhelper files.
[23007]75    for f in config cron.daily dirs examples init.d mime postinst postrm \
76      preinst prerm templates; do
[23010]77        [ -f debian/$f ] && mv debian/$f debian/debathena-lprng.$f
[23006]78    done
79    perl -pe 's/templates/debathena-lprng.templates/' -i debian/po/POTFILES.in
80
[23008]81    # lprng's cron job generates mail to root each day if you're not
82    # running a server.  Fix this problem by making the cron script
83    # conditional on the existence of /etc/printcap, just as the
84    # init.d script is.
[24474]85    #
86    # Except CUPS happily generates an incompatibile /etc/printcap, because
87    # they hate you.  So instead, bail if cups generated /etc/printcap
[24483]88    perl -ne 'print; /#.*main/ && print "# Debathena: Exit if CUPS is our print server\n(! [ -f /etc/printcap ] || grep -q \"automatically generated by cupsd\" /etc/printcap) && exit 0\n";' \
[23008]89      -i debian/debathena-lprng.cron.daily
90
[23006]91    append_description <<EOF
92 .
[23377]93 This package was rebuilt for the Debathena project to rename the
[23006]94 package and commands so that it no longer conflicts with cupsys-bsd.
[24474]95 Additionally, the daily cron job will not be run if CUPS generated
96 /etc/printcap.
[23006]97EOF
98    add_changelog 'Rename commands.'
[23078]99    munge_sections
[24212]100    set_debathena_maintainer
[23733]101
102    perl -pe 'm{^Package: lprng-doc$} .. s{^Section: debathena}{Section: debathena-system}' -i debian/control
[23006]103}
104
105. ../common/debathenificator.sh
Note: See TracBrowser for help on using the repository browser.