actions.py 3.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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. import os
  7. from pisi.actionsapi import autotools
  8. from pisi.actionsapi import pisitools
  9. from pisi.actionsapi import shelltools
  10. from pisi.actionsapi import get
  11. WorkDir="Firebird-%s-0" % get.srcVERSION()
  12. def setup():
  13. shelltools.export("CFLAGS", "%s -fno-strict-aliasing" % get.CFLAGS())
  14. #shelltools.export("CXXFLAGS", "%s -std=gnu++98 -fno-lifetime-dse" % get.CXXFLAGS())
  15. shelltools.export("CXXFLAGS", "%s -fno-lifetime-dse" % get.CXXFLAGS())
  16. pisitools.dosed("src/isql/isql.epp", '"isql\s', '"fbsql ')
  17. pisitools.dosed("src/msgs/history2.sql", 'isql\s', 'fbsql ')
  18. pisitools.dosed("src/msgs/messages2.sql", 'isql\s', 'fbsql ')
  19. pisitools.dosed("src/msgs/messages2.sql", 'ISQL\s', 'FBSQL ')
  20. shelltools.system("find ./ -name \*.sh -print0 | xargs -0 chmod +x")
  21. for d in ("btyacc", "editline", "icu"):
  22. shelltools.unlinkDir("extern/%s" % d)
  23. autotools.autoreconf("-fi")
  24. autotools.configure("--prefix=/opt/firebird \
  25. --disable-static \
  26. --enable-superserver \
  27. --with-editline \
  28. --with-gnu-ld \
  29. --with-system-editline \
  30. --with-system-icu \
  31. ")
  32. def build():
  33. #Parallel build is broken
  34. #shelltools.export("CXXFLAGS", "%s -std=gnu++98 -fno-lifetime-dse" % get.CXXFLAGS())
  35. shelltools.export("CXXFLAGS", "%s -fno-lifetime-dse" % get.CXXFLAGS())
  36. autotools.make("-j1")
  37. shelltools.cd("gen")
  38. pisitools.dosed("install/makeInstallImage.sh", "exit 1", "# exit 1")
  39. pisitools.dosed("install/makeInstallImage.sh", "chown", 'echo ""# chown')
  40. pisitools.dosed("install/makeInstallImage.sh", "chmod", 'echo ""# chmod')
  41. autotools.make("-f Makefile.install buildRoot")
  42. def install():
  43. # Copy to install directory
  44. shelltools.copytree("gen/buildroot/", get.installDIR())
  45. # Move headers
  46. pisitools.remove("/usr/include/*")
  47. pisitools.domove("/opt/firebird/include", "/usr/include", "firebird")
  48. # Fix client libraries symlinks
  49. pisitools.removeDir("/usr/lib*")
  50. for libs in os.listdir("%s/opt/firebird/lib" % get.installDIR()):
  51. pisitools.dosym("/opt/firebird/lib/%s" % libs, "/usr/lib/%s" % libs)
  52. pisitools.dosym("/opt/firebird/plugins/libfbtrace.so", "/usr/lib/libfbtrace.so")
  53. # Add support for old client's
  54. pisitools.dosym("libfbclient.so", "/usr/lib/libgds.so")
  55. pisitools.dosym("libfbclient.so", "/usr/lib/libgds.so.0")
  56. pisitools.dosym("libfbclient.so", "/opt/firebird/lib/libgds.so")
  57. pisitools.dosym("libfbclient.so", "/opt/firebird/lib/libgds.so.0")
  58. # Move configuration files and security DB to /etc/firebird for painless upgrade
  59. pisitools.domove("/opt/firebird/aliases.conf", "/etc/firebird")
  60. pisitools.domove("/opt/firebird/firebird.conf", "/etc/firebird")
  61. pisitools.domove("/opt/firebird/security2.fdb", "/etc/firebird")
  62. pisitools.dosym("/etc/firebird/aliases.conf", "/opt/firebird/aliases.conf")
  63. pisitools.dosym("/etc/firebird/firebird.conf", "/opt/firebird/firebird.conf")
  64. pisitools.dosym("/etc/firebird/security2.fdb", "/opt/firebird/security2.fdb")
  65. # Set PID directory
  66. shelltools.makedirs("%s/run/firebird" % get.installDIR())
  67. #pisitools.dodir("/opt/firebird/run")
  68. # Set permissions
  69. shelltools.chmod("%s/etc/firebird/security2.fdb" % get.installDIR(), 0600)
  70. shelltools.chmod("%s/run/firebird" % get.installDIR(), 0755)
  71. #shelltools.chmod("%s/opt/firebird/run" % get.installDIR(), 0755)
  72. pisitools.dosym("/var/log/firebird.log", "/opt/firebird/firebird.log")
  73. # Useless init.d stuff
  74. pisitools.removeDir("/opt/firebird/misc/")
  75. # Prevent to conflict isql with UnixODBC's
  76. pisitools.domove("/opt/firebird/bin/isql", "/opt/firebird/bin", "fb_isql")