actions.py 3.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-
  3. #
  4. # Licensed under the GNU General Public License, version 3.
  5. # See the file http://www.gnu.org/licenses/gpl.txt
  6. from pisi.actionsapi import shelltools
  7. from pisi.actionsapi import autotools
  8. from pisi.actionsapi import pisitools
  9. from pisi.actionsapi import get
  10. import os
  11. def setup():
  12. # Patch compressed PPDs
  13. for patch in sorted(os.listdir("ppd-patches")):
  14. shelltools.system("./patch-ppds ppd-patches/%s" % patch)
  15. for f in ("NEWS", "INSTALL", "README", "AUTHORS", "ChangeLog"):
  16. shelltools.touch(f)
  17. pisitools.dosed("Makefile.am", "^rulesdir = .*$", "rulesdir = /lib/udev/rules.d")
  18. # Migrate device ids from hpcups drv to hpijs drv
  19. #shelltools.system("./copy-deviceids prnt/drv/hpcups.drv.in prnt/drv/hpijs.drv.in > hpijs.drv.in.new")
  20. #shelltools.move("hpijs.drv.in.new", "prnt/drv/hpijs.drv.in")
  21. # Strip duplex constraints from hpcups
  22. pisitools.dosed("prnt/drv/hpcups.drv.in", "(UIConstraints.* \*Duplex)", "//\\1")
  23. # Change python shebang
  24. shelltools.system("find -name '*.py' -print0 | xargs -0 sed -i 's,^#!/usr/bin/env python,#!/usr/bin/python,'")
  25. # These are barely the defaults except:
  26. # --enable-foomatic-drv-install (default=no) (respected by Fedora, enabled by Ubuntu)
  27. autotools.autoreconf("-fi")
  28. autotools.configure("--with-cupsbackenddir=/usr/lib/cups/backend \
  29. --with-drvdir=/usr/share/cups/drv \
  30. --with-hpppddir=/usr/share/cups/model/hplip \
  31. --with-docdir=/usr/share/doc/hplip \
  32. --with-mimedir=/usr/share/cups/mime \
  33. --enable-qt5 \
  34. --enable-hpijs-install \
  35. --enable-udev-acl-rules \
  36. --enable-pp-build \
  37. --enable-fax-build \
  38. --enable-gui-build \
  39. --enable-dbus-build \
  40. --enable-scan-build \
  41. --enable-network-build \
  42. --enable-hpcups-install \
  43. --enable-cups-drv-install \
  44. --enable-foomatic-drv-install \
  45. --disable-qt4 \
  46. --disable-qt3 \
  47. --disable-policykit \
  48. --disable-doc-build \
  49. --disable-foomatic-ppd-install \
  50. --disable-foomatic-rip-hplip-install")
  51. # Remove hardcoded rpaths
  52. pisitools.dosed("libtool", "^hardcode_libdir_flag_spec=.*", "hardcode_libdir_flag_spec=\"\"")
  53. pisitools.dosed("libtool", "^runpath_var=LD_RUN_PATH", "runpath_var=DIE_RPATH_DIE")
  54. def build():
  55. autotools.make()
  56. def install():
  57. autotools.rawInstall("DESTDIR=%s ppddir=/usr/share/cups/model/hplip" % get.installDIR())
  58. # Create a compatibility symlink for foomatic-rip-hplip
  59. pisitools.dosym("/usr/lib/cups/filter/foomatic-rip", "/usr/lib/cups/filter/foomatic-rip-hplip")
  60. # Remove the hal preprobe rules as they were causing breakage (bug #479648).
  61. # Remove hal directory as well.
  62. pisitools.removeDir("/usr/share/hal/")
  63. # Remove unpackaged stuff (Fedora)
  64. #pisitools.remove("/usr/share/hplip/fax/pstotiff*")
  65. #pisitools.remove("/usr/share/cups/mime/pstotiff.types")
  66. #pisitools.remove("/usr/share/hplip/pkservice.py")
  67. #pisitools.remove("/usr/bin/hp-pkservice")
  68. # Do not mess with sane, init, foomatic etc.
  69. pisitools.removeDir("/etc/sane.d")
  70. # Create empty plugins directory
  71. pisitools.dodir("/usr/share/hplip/prnt/plugins")
  72. # This notifies user through libnotify when the printer requires a firmware
  73. # Should port it to KNotify if possible, argh.
  74. pisitools.remove("/lib/udev/rules.d/56-hpmud.rules")
  75. # --disable-doc-build used. It doesn't go to the true directory.
  76. pisitools.dohtml("doc/*")