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

Revision 25736, 4.2 KB checked in by jdreed, 12 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.