actions.py 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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. WorkDir="%s-%s" % (get.srcNAME(), get.srcVERSION())
  11. pisitools.cflags.add("-fno-strict-aliasing")
  12. def setup():
  13. # nss-pem
  14. #shelltools.copytree("../nss-pem-3ade37c5c4ca5a6094e3f4b2e4591405db1867dd/nss/lib/ckfw/pem", "nss/lib/ckfw")
  15. # Respect LDFLAGS
  16. pisitools.dosed("nss/coreconf/rules.mk", "(\$\(MKSHLIB\))\s-o", r"\1 $(LDFLAGS) -o")
  17. # Fix missing includes
  18. shelltools.system("sed 's|-Ideprecated|-Ideprecated -I../util -I../softoken -I.|' -i nss/lib/freebl/Makefile")
  19. # Create nss.pc and nss-config dynamically
  20. shelltools.system("./generate-pc-config.sh")
  21. def build():
  22. pisitools.dosed("nss/coreconf/Linux.mk", " -shared ", " -Wl,-O1,--as-needed -shared ")
  23. if get.ARCH() == "x86_64":
  24. shelltools.export("USE_64", "1")
  25. shelltools.export("BUILD_OPT", "1")
  26. shelltools.export("NSS_ENABLE_ECC", "1")
  27. shelltools.export("NSS_USE_SYSTEM_SQLITE", "1")
  28. shelltools.export("NSPR_INCLUDE_DIR", "`nspr-config --includedir`")
  29. shelltools.export("NSPR_LIB_DIR", "`nspr-config --libdir`")
  30. shelltools.export("XCFLAGS", get.CFLAGS())
  31. # Use system zlib
  32. shelltools.export("PKG_CONFIG_ALLOW_SYSTEM_LIBS", "1")
  33. shelltools.export("PKG_CONFIG_ALLOW_SYSTEM_CFLAGS", "1")
  34. autotools.make("-C nss/coreconf -j2")
  35. autotools.make("-C nss/lib/util -j2")
  36. autotools.make("-C nss/lib/dbm")
  37. autotools.make("-C nss/lib/sysinit -j2")
  38. autotools.make("-C nss all -j2")
  39. def install():
  40. for binary in ["*util", "shlibsign", "signtool", "signver", "ssltap"]:
  41. pisitools.insinto("/usr/bin","dist/Linux*/bin/%s" % binary, sym=False)
  42. for lib in ["*.a","*.chk","*.so"]:
  43. pisitools.insinto("/usr/lib","dist/Linux*/lib/%s" % lib, sym=False)
  44. # Headers
  45. for header in ["dist/private/nss/*.h","dist/public/nss/*.h"]:
  46. pisitools.insinto("/usr/include/nss3", header, sym=False)
  47. # Drop executable bits from headers
  48. shelltools.chmod("%s/usr/include/nss3/*.h" % get.installDIR(), mode=0644)
  49. # Install nss-config and nss.pc
  50. pisitools.insinto("/usr/lib/pkgconfig", "dist/pkgconfig/nss.pc")
  51. pisitools.insinto("/usr/bin", "dist/pkgconfig/nss-config")
  52. # create empty NSS database
  53. pisitools.dodir("/etc/pki/nssdb")
  54. shelltools.export("LD_LIBRARY_PATH", "%s/usr/lib" % get.installDIR())
  55. shelltools.system("%s/usr/bin/modutil -force -dbdir \"sql:%s/etc/pki/nssdb\" -create" % (get.installDIR(), get.installDIR()))
  56. shelltools.chmod("%s/etc/pki/nssdb/*" % get.installDIR(), 0644)
  57. pisitools.dosed("%s/etc/pki/nssdb/*" % get.installDIR(), get.installDIR(), "")
  58. # srt Conflicts
  59. pisitools.remove("/usr/lib/libgtest.a")