actions.py 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  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 subprocess
  7. from pisi.actionsapi import get
  8. from pisi.actionsapi import autotools
  9. from pisi.actionsapi import pisitools
  10. from pisi.actionsapi import shelltools
  11. # jobs = "-j"+ subprocess.check_output("nproc 2>/dev/null", shell=True).rstrip("\n")
  12. # jobs = subprocess.check_output("nproc 2>/dev/null", shell=True).rstrip("\n")
  13. jobs = subprocess.check_output("nproc 2>/dev/null", shell=True).decode("utf-8").rstrip("\n")
  14. # jobs = "-j" + subprocess.check_output("nproc 2>/dev/null", shell=True).decode().strip()
  15. shelltools.export("ALT_PARALLEL_COMPILE_JOBS", jobs)
  16. shelltools.export("HOTSPOT_BUILD_JOBS", jobs)
  17. shelltools.export("LC_ALL", "C")
  18. def setup():
  19. shelltools.export("CFLAGS", "%s -fPIC -O3" % get.CFLAGS())
  20. shelltools.export("CXXFLAGS", "%s -fPIC -O3" % get.CXXFLAGS())
  21. shelltools.export("CC", "gcc")
  22. shelltools.export("CXX", "g++")
  23. #shelltools.system('export DISTRIBUTION_PATCHES="patches/fontconfig-paths.diff \
  24. #patches/openjdk7_nonreparenting-wm.diff"')
  25. #patches/giflib_5.1.diff
  26. autotools.rawConfigure("\
  27. --disable-tests \
  28. --disable-Werror \
  29. --with-parallel-jobs=%s \
  30. --enable-nss \
  31. --disable-system-kerberos \
  32. --disable-system-pcsc \
  33. --disable-system-sctp \
  34. --enable-bootstrap \
  35. --with-jdk-home=/usr/lib/jvm/java-8-openjdk \
  36. --with-ecj-jar=/usr/share/java/ecj.jar \
  37. --with-vendor-name='PisiLinux' \
  38. --with-pkgversion='PisiLinux build 8u.452_3.35.0' \
  39. " % jobs.replace("-j", ""))
  40. def build():
  41. shelltools.system("make JOBS=%s" % jobs)
  42. # autotools.make()
  43. def check():
  44. autotools.make("check -k")
  45. def install():
  46. jvmdir="/usr/lib/jvm/java-8-openjdk"
  47. pisitools.dodoc("AUTHORS", "ChangeLog", "COPYING", "HACKING", "README", "NEWS")
  48. #cd main output directory
  49. shelltools.cd("openjdk.build")
  50. #---- install openjdk8-doc
  51. pisitools.insinto("/usr/share/doc/openjdk8-doc", "docs/*")
  52. #install openjdk8-src
  53. pisitools.insinto(jvmdir, "images/j2sdk-image/src.zip")
  54. #---- instal jdk8-openjdk
  55. for d in ["include","lib","bin"]:
  56. pisitools.insinto(jvmdir, "images/j2sdk-image/%s" % d)
  57. for f in shelltools.ls("%s/usr/lib/jvm/java-8-openjdk/bin" % get.installDIR()):
  58. if not f in ["java", "java-rmi.cgi", "keytool", "orbd",
  59. "pack200", "policytool", "rmid", "rmiregistry",
  60. "servertool", "tnameserv", "unpack200", "jjs", "clhsdb", "hsdb"]:
  61. pisitools.dosym("/usr/lib/jvm/java-8-openjdk/bin/%s" % f, "/usr/bin/%s" % f)
  62. #install man pages
  63. for man in shelltools.ls("images/j2sdk-image/man/man1"):
  64. pisitools.insinto("/usr/share/man/man1", "images/j2sdk-image/man/man1/%s" % man, "%s" % man)
  65. for man in shelltools.ls("images/j2sdk-image/man/ja_JP.UTF-8/man1"):
  66. pisitools.insinto("/usr/share/man/ja/man1", "images/j2sdk-image/man/ja_JP.UTF-8/man1/%s" % man, "%s" % man )
  67. pisitools.insinto("/usr/share/applications", "../jconsole.desktop", "jconsole-jdk8.desktop")
  68. shelltools.system("chmod go+r %s%s/lib/sa-jdi.jar" %(get.installDIR(), jvmdir))
  69. #---- instal jre8-openjdk
  70. pisitools.insinto("%s/jre/bin" % jvmdir , "images/j2sdk-image/jre/bin/*")
  71. #pisitools.insinto("%s/jre/lib/amd64" % jvmdir , "j2sdk-image/jre/lib/amd64/xawt")
  72. for binfile in shelltools.ls("images/j2sdk-image/jre/bin"):
  73. pisitools.dosym("%s/jre/bin/%s" % (jvmdir, binfile), "/usr/bin/%s" % binfile)
  74. pisitools.insinto("/usr/share/applications", "../policytool.desktop", "policytool-jdk8.desktop")
  75. for size in [16, 24, 32, 48]:
  76. fullsize = "%dx%d" % ((size, ) * 2)
  77. pisitools.insinto("/usr/share/icons/hicolor/%s/apps/" % fullsize, "../openjdk/jdk/src/solaris/classes/sun/awt/X11/java-icon%d.png" % size, "java8.png")
  78. #---- install jre8-openjdk-headless
  79. pisitools.insinto("%s/jre/" % jvmdir , "images/j2sdk-image/jre/lib")
  80. pisitools.insinto("%s/jre/bin" % jvmdir, "images/j2sdk-image/jre/bin/*")
  81. #pisitools.rename("%s/jre/lib/fontconfig.Ubuntu.properties.src" % jvmdir , "fontconfig.properties")
  82. #pisitools.rename("%s/jre/lib/fontconfig.Ubuntu.bfc" % jvmdir , "fontconfig.bfc")
  83. #pisitools.remove("%s/jre/lib/fontconfig.*.bfc" % jvmdir)
  84. #pisitools.remove("%s/jre/lib/fontconfig.*.properties.src" % jvmdir)
  85. pisitools.domove("%s/jre/lib/*.properties*" % jvmdir,"/etc/java-8-openjdk/")
  86. for propfile in shelltools.ls("%s/etc/java-8-openjdk/" % get.installDIR()):
  87. pisitools.dosym("/etc/java-8-openjdk/%s" % propfile, "%s/jre/lib/%s" % (jvmdir, propfile))
  88. pisitools.domove("%s/jre/lib/images/cursors/cursors.properties" % jvmdir,"/etc/java-8-openjdk/cursors/")
  89. pisitools.dosym("/etc/java-8-openjdk/cursors/cursors.properties", "%s/jre/lib/images/cursors/cursors.properties" % jvmdir)
  90. pisitools.rename("%s/jre/lib/management/jmxremote.password.template" % jvmdir , "jmxremote.password")
  91. pisitools.rename("%s/jre/lib/management/snmp.acl.template" % jvmdir , "snmp.acl")
  92. for f in ["management.properties", "jmxremote.access", "jmxremote.password", "snmp.acl"]:
  93. pisitools.domove("%s/jre/lib/management/%s" % (jvmdir, f),"/etc/java-8-openjdk/management/")
  94. pisitools.dosym("/etc/java-8-openjdk/management/%s" % f, "%s/jre/lib/management/%s" % (jvmdir, f))
  95. for f in ["java.policy","java.security","nss.cfg"]:
  96. pisitools.domove("%s/jre/lib/security/%s" % (jvmdir, f),"/etc/java-8-openjdk/security/")
  97. pisitools.dosym("/etc/java-8-openjdk/security/%s" % f, "%s/jre/lib/security/%s" % (jvmdir, f))
  98. #confs=os.listdir("%s/etc/java-8-openjdk/" % get.installDIR())
  99. #for i in confs:
  100. #shelltools.system("chmod 0644 %s/etc/java-8-openjdk/%s" % (get.installDIR, i))
  101. #pisitools.domove("%s/jre/lib/fontconfig.bfc" % jvmdir,"/etc/java-8-openjdk/")
  102. pisitools.domove("%s/jre/lib/amd64/jvm.cfg" % jvmdir,"/etc/java-8-openjdk/")
  103. pisitools.dosym("/etc/java-8-openjdk/jvm.cfg" , "%s/jre/lib/amd64/jvm.cfg" % jvmdir)
  104. for license in ["LICENSE", "THIRD_PARTY_README", "release", "ASSEMBLY_EXCEPTION"]:
  105. pisitools.insinto("/usr/share/doc/jre8-openjdk-headless", "images/j2re-image/%s" % license)
  106. pisitools.remove("%s/jre/lib/security/cacerts" % jvmdir)
  107. #seems we need to add this symlink into ca-certificates-java package ?
  108. pisitools.dosym("/etc/ssl/certs/java/cacerts", "%s/jre/lib/security/cacerts" % jvmdir)
  109. pisitools.dosed("%s/usr/share/applications/policytool-jdk8.desktop" % get.installDIR(), "_JREBINDIR_", "/usr/lib/jvm/java-8-openjdk/jre/bin")
  110. pisitools.dosed("%s/usr/share/applications/jconsole-jdk8.desktop" % get.installDIR(), "_SDKBINDIR_", "/usr/lib/jvm/java-8-openjdk/bin")
  111. #icons
  112. pisitools.dosed("%s/usr/share/applications/policytool-jdk8.desktop" % get.installDIR(), "Icon=java-1.8.0-openjdk", "Icon=java8-1.8.0-openjdk")
  113. pisitools.dosed("%s/usr/share/applications/jconsole-jdk8.desktop" % get.installDIR(), "Icon=java-1.8.0-openjdk", "Icon=java8-1.8.0-openjdk")