[23006] | 1 | #!/bin/sh |
---|
| 2 | set -e |
---|
| 3 | |
---|
| 4 | name=lprng |
---|
[23733] | 5 | daname=debathena-lprng |
---|
[25736] | 6 | daversionappend=debathena9 |
---|
[23078] | 7 | section=debathena |
---|
[23006] | 8 | |
---|
| 9 | hack_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 | } |
---|
| 60 | EOS |
---|
| 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] | 97 | EOF |
---|
| 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 |
---|