actions.py 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  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 get
  7. from pisi.actionsapi import autotools
  8. from pisi.actionsapi import pisitools
  9. from pisi.actionsapi import shelltools
  10. pisitools.flags.add("-fPIC -fno-strict-aliasing -fno-strict-overflow -fstack-protector-all")
  11. pisitools.cxxflags.add("-I/usr/include/et")
  12. def rename_man_pages():
  13. manpages = ["appl/bsd/klogind.M",
  14. "appl/bsd/kshd.M",
  15. "appl/sample/sserver/sserver.M",
  16. "appl/telnet/telnetd/telnetd.8",
  17. "appl/gssftp/ftpd/ftpd.M",
  18. "config-files/kdc.conf.M",
  19. "config-files/krb5.conf.M",
  20. "kadmin/cli/kadmin.M",
  21. "slave/kpropd.M",
  22. "slave/kprop.M"]
  23. for manpage in manpages:
  24. shelltools.move(manpage, "%s.in" % manpage)
  25. def setup():
  26. shelltools.cd("src")
  27. shelltools.system("sed -i -e 's/^YYSTYPE yylval/&={0}/' lib/krb5/krb/deltat.c")
  28. pisitools.dosed("util/ac_check_krb5.m4", "(KRB5ROOT=\/usr)\/local", r"\1")
  29. autotools.autoreconf("-fi")
  30. # Fix pthread linking
  31. #pisitools.dosed("configure", "-lthread", "-lpthread")
  32. #pisitools.dosed("configure", "-pthread", "-lpthread")
  33. autotools.configure("--localstatedir=/var/lib \
  34. --without-tcl \
  35. --without-hesiod \
  36. --enable-shared \
  37. --enable-kdc-lookaside-cache \
  38. --without-system-verto \
  39. --disable-rpath \
  40. --with-system-et \
  41. --with-system-ss \
  42. --enable-dns-for-realm")
  43. # Fix krb5-config script to remove rpaths and CFLAGS
  44. #pisitools.dosed("krb5-config", "^CC_LINK=.*", "CC_LINK='$(CC) $(PROG_LIBPATH)'")
  45. # Fix unused dependency
  46. pisitools.dosed("config/shlib.conf"," -shared ", " -Wl,--as-needed -shared ")
  47. def build():
  48. autotools.make("-C src/")
  49. # def check():
  50. # check failed
  51. # autotools.make("-C src/ -j1 check")
  52. # import tempfile
  53. # import shutil
  54. # tmpdir = tempfile.mkdtemp(prefix='pisitest')
  55. # autotools.make("-C src/ check TMPDIR=%s -j1" % tmpdir)
  56. # shutil.rmtree("rm -rf %s" % tmpdir)
  57. def install():
  58. pisitools.dodoc("NOTICE", "README")
  59. shelltools.cd("src")
  60. autotools.rawInstall("DESTDIR=%s" % get.installDIR())
  61. # Install additional headers
  62. for d in ("kadm5", "krb5"):
  63. pisitools.insinto("/usr/include/%s" % d, "include/%s/*.h" % d)
  64. # Add "k" prefix to some apps and manpages to resolve conflicts
  65. #for app in ["telnetd", "ftpd"]:
  66. # pisitools.rename("/usr/share/man/man8/%s.8" % app, "k%s.8" % app)
  67. # pisitools.rename("/usr/sbin/%s" % app, "k%s" % app)
  68. #for app in ["rcp", "rsh", "telnet", "ftp", "rlogin"]:
  69. # pisitools.rename("/usr/share/man/man1/%s.1" % app, "k%s.1" % app)
  70. # pisitools.rename("/usr/bin/%s" % app, "k%s" % app)
  71. # Remove examples
  72. pisitools.removeDir("/usr/share/examples")