Revision 42775 trunk/org.gvsig.desktop/org.gvsig.desktop.installer/src/main/packaging/gvspkg
gvspkg | ||
---|---|---|
25 | 25 |
|
26 | 26 |
#LINUX_EXEC_EXTENSION=".run" # antes ".bin" |
27 | 27 |
|
28 |
class Platform: |
|
29 |
def __init__(self,os,arch,exe): |
|
30 |
self.os = os |
|
31 |
self.arch = arch |
|
32 |
self.exe_extension = exe |
|
33 |
|
|
34 |
def getOS(): |
|
35 |
return self.os |
|
36 |
|
|
37 |
def getArch(): |
|
38 |
return self.arch |
|
39 |
|
|
40 |
def getExeExtension(): |
|
41 |
return self.exe_extension |
|
42 |
|
|
43 |
platforms = ( |
|
44 |
Platform("lin","x86",".run"), |
|
45 |
Platform("lin","x86_64",".run"), |
|
46 |
Platform("win","x86",".exe"), |
|
47 |
Platform("win","x86_64",".exe") |
|
48 |
) |
|
49 |
|
|
50 |
|
|
28 | 51 |
def log(msg): |
29 | 52 |
f=open("/tmp/gvspkg.log","a") |
30 | 53 |
f.write(time.ctime()) |
... | ... | |
547 | 570 |
def mks(args): |
548 | 571 |
cmd = Command(args) |
549 | 572 |
try: |
550 |
opts, args = getopt.getopt(cmd.getArgs("mks"), "ixscI:p:", ["index-only","include-default-selection", "clear-list", "exclude=", "excludepki=", "excludepkg=", "include=", "platform="])
|
|
573 |
opts, args = getopt.getopt(cmd.getArgs("mks"), "ixscI:", ["index-only","include-default-selection", "clear-list", "exclude=", "excludepki=", "excludepkg=", "include="])
|
|
551 | 574 |
except getopt.GetoptError, err: |
552 | 575 |
# print help information and exit: |
553 | 576 |
print str(err) # will print something like "option -a not recognized" |
554 | 577 |
shorthelp(args) |
555 | 578 |
sys.exit(2) |
556 | 579 |
|
557 |
platforms = ("x86", "x86_64") |
|
558 |
oss = ("lin","win") |
|
559 | 580 |
default_selection = None |
560 | 581 |
index_only = False |
561 | 582 |
clear_list=False |
... | ... | |
567 | 588 |
clear_list = True |
568 | 589 |
elif opt in ("-s", "--include-default-selection"): |
569 | 590 |
default_selection = "defaultPackages" |
570 |
elif opt in ("-p", "--platform"): |
|
571 |
if arg == "amd64": |
|
572 |
arg = "x86_64" |
|
573 |
if not platform in ( "x86", "x86_64", "all"): |
|
574 |
msgerror("Unsuported platform value "+repr(platform)+". available values are x86, x86_64, amd64 or all") |
|
575 |
sys.exit(3) |
|
576 |
platforms = (arg,) |
|
577 | 591 |
elif opt in ("-x", "--exclude"): |
578 | 592 |
excludes_pki.append(arg) |
579 | 593 |
excludes_pkg.append(arg) |
... | ... | |
643 | 657 |
mychmod(packages_gvspki+".md5",RWALL) |
644 | 658 |
|
645 | 659 |
if not index_only : |
646 |
for cur_os in oss: |
|
647 |
for cur_platform in platforms: |
|
648 |
packages_gvspks = getDist() +"/packages-"+cur_os+"-"+cur_platform+".gvspks" |
|
649 |
message( "Writing 'packages-"+cur_os+"-"+cur_platform+".gvspks' to '%s'" % packages_gvspks ) |
|
650 |
set = zipfile.ZipFile(packages_gvspks,"w",zipfile.ZIP_STORED) |
|
651 |
for info in indexes: |
|
652 |
if not ( info.code in excludes_pkg or info.getFullName() in excludes_pkg ): |
|
653 |
try: |
|
654 |
if info.hasPkg(): |
|
655 |
if cur_os == "all" or info.getOS() in ("all", cur_os) : |
|
656 |
if cur_platform == "all" or info.getArch() in ("all", cur_platform) : |
|
657 |
set.write(info.getPkgFilename(), os.path.basename(info.getPkgFilename())) |
|
658 |
except Exception, ex: |
|
659 |
msgerror("Can't add package '%s', error %s" % (index, str(ex))) |
|
660 |
else: |
|
661 |
debug("Exclude package '%s'" % info.getFullName()) |
|
662 |
if default_selection != None : |
|
663 |
set.write(default_selection,default_selection) |
|
664 |
set.close() |
|
665 |
mychmod(packages_gvspks,RWALL) |
|
660 |
for platform in platforms: |
|
661 |
packages_gvspks = getDist() +"/packages-"+platform.getOS()+"-"+platform.getArch()+".gvspks" |
|
662 |
message( "Writing 'packages-"+platform.getOS()+"-"+platform.getArch()+".gvspks' to '%s'" % packages_gvspks ) |
|
663 |
set = zipfile.ZipFile(packages_gvspks,"w",zipfile.ZIP_STORED) |
|
664 |
for info in indexes: |
|
665 |
if not ( info.code in excludes_pkg or info.getFullName() in excludes_pkg ): |
|
666 |
try: |
|
667 |
if info.hasPkg(): |
|
668 |
if info.getOS() in ("all", platform.getOS()) : |
|
669 |
if info.getArch() in ("all", platform.getArch()) : |
|
670 |
set.write(info.getPkgFilename(), os.path.basename(info.getPkgFilename())) |
|
671 |
except Exception, ex: |
|
672 |
msgerror("Can't add package '%s', error %s" % (index, str(ex))) |
|
673 |
else: |
|
674 |
debug("Exclude package '%s'" % info.getFullName()) |
|
675 |
if default_selection != None : |
|
676 |
set.write(default_selection,default_selection) |
|
677 |
set.close() |
|
678 |
mychmod(packages_gvspks,RWALL) |
|
666 | 679 |
|
667 |
md5sum(packages_gvspks,packages_gvspks+".md5")
|
|
668 |
mychmod(packages_gvspks+".md5",RWALL)
|
|
680 |
md5sum(packages_gvspks,packages_gvspks+".md5") |
|
681 |
mychmod(packages_gvspks+".md5",RWALL) |
|
669 | 682 |
|
670 | 683 |
message( "Createds package indexes.\n") |
671 | 684 |
|
... | ... | |
1041 | 1054 |
""") |
1042 | 1055 |
f.close() |
1043 | 1056 |
fname_base = "gvSIG-desktop-%s-%s-%s" % (getVersion(),build,state) |
1044 |
for cur_os in ("lin","win") : |
|
1045 |
for arch in ("x86", "x86_64"): |
|
1046 |
linkfile( |
|
1047 |
join(build_folder,fname_base + "-" + cur_os + "-" + arch + "-online.zip"), |
|
1048 |
join(portable_folder,"standard",fname_base + "-" + cur_os + "-" + arch + "-online.zip") |
|
1049 |
) |
|
1050 |
linkfile( |
|
1051 |
join(build_folder,fname_base + "-" + cur_os + "-" + arch + ".gvspks"), |
|
1052 |
join(portable_folder,"standard",fname_base + "-" + cur_os + "-" + arch + ".gvspks") |
|
1053 |
) |
|
1057 |
for platform in platforms : |
|
1058 |
linkfile( |
|
1059 |
join(build_folder,fname_base + "-" + platform.getOS() + "-" + platform.getArch() + "-online.zip"), |
|
1060 |
join(portable_folder,"standard",fname_base + "-" + platform.getOS() + "-" + platform.getArch() + "-online.zip") |
|
1061 |
) |
|
1062 |
linkfile( |
|
1063 |
join(build_folder,fname_base + "-" + cur_os + "-" + platform.getArch() + ".gvspks"), |
|
1064 |
join(portable_folder,"standard",fname_base + "-" + platform.getOS() + "-" + platform.getArch() + ".gvspks") |
|
1065 |
) |
|
1054 | 1066 |
extract_make_portable( |
1055 | 1067 |
join(build_folder,fname_base + "-lin-x86_64-online.zip"), |
1056 | 1068 |
join(portable_folder) |
... | ... | |
1110 | 1122 |
if not os.path.isdir(portable_folder) : |
1111 | 1123 |
do_prepare_portable(build,state) |
1112 | 1124 |
os.system('cd %s ; ./make-portable' % (portable_folder)) |
1113 |
""" |
|
1125 |
|
|
1114 | 1126 |
message("Removing previos portable zip files") |
1115 |
for cur_os in ("lin","win") : |
|
1116 |
for arch in ("x86", "x86_64"): |
|
1117 |
removefile(join(build_folder,"gvsig-desktop-%s-%s-%s-%s-%s.zip" % (getVersion(),build,state,cur_os,arch))) |
|
1127 |
for platform in platforms : |
|
1128 |
removefile(join(build_folder,"gvSIG-desktop-%s-%s-%s-%s-%s.zip" % (getVersion(),build,state,platform.getOS(),platform.getArch()))) |
|
1118 | 1129 |
|
1119 | 1130 |
target_folder = join(getPackagesRoot(),"dists",getVersion(),"builds",build,"misc","portable","target") |
1120 |
os.chdir(target_folder) |
|
1121 |
|
|
1122 |
for cur_os in ("lin","win") : |
|
1123 |
for arch in ("x86", "x86_64"): |
|
1124 |
message("Creating zip gvsig-desktop-%s-%s-%s-%s-%s.zip" % (getVersion(),build,state,cur_os,arch)) |
|
1125 |
zipfolder( |
|
1126 |
"gvsig-desktop-%s-%s-%s-%s-%s" % (getVersion(),build,state,cur_os,arch), |
|
1127 |
join(build_folder,"gvsig-desktop-%s-%s-%s-%s-%s.zip" % (getVersion(),build,state,cur_os,arch)) |
|
1128 |
) |
|
1129 |
""" |
|
1131 |
for platform in platforms : |
|
1132 |
message("Moving zip gvSIG-desktop-%s-%s-%s-%s-%s.zip" % (getVersion(),build,state,platform.getOS(),platform.getArch())) |
|
1133 |
shutil.move( |
|
1134 |
join(portable_folder,"gvSIG-desktop-%s-%s-%s-%s-%s" % (getVersion(),build,state,platform.getOS(),platform.getArch())), |
|
1135 |
build_folder |
|
1136 |
) |
|
1130 | 1137 |
#message("Remove temporary folders") |
1131 | 1138 |
#shutil.rmtree(target_folder) |
1132 | 1139 |
|
1133 | 1140 |
def mkdist(args): |
1134 | 1141 |
cmd = Command(args) |
1135 | 1142 |
try: |
1136 |
opts, args = getopt.getopt(cmd.getArgs("mkdist"), "b:s:p:", [ "build=", "state=", "distribution_name=", "platform" ])
|
|
1143 |
opts, args = getopt.getopt(cmd.getArgs("mkdist"), "b:s:", [ "build=", "state=", "distribution_name=" ])
|
|
1137 | 1144 |
except getopt.GetoptError, err: |
1138 | 1145 |
# print help information and exit: |
1139 | 1146 |
print str(err) # will print something like "option -a not recognized" |
... | ... | |
1143 | 1150 |
build=None |
1144 | 1151 |
state=None |
1145 | 1152 |
distribution_name = "standard" |
1146 |
platforms = ("x86", "x86_64") |
|
1147 |
oss = ("lin", "win") |
|
1148 | 1153 |
|
1149 | 1154 |
for opt, arg in opts: |
1150 | 1155 |
if opt in ("-b", "--build"): |
... | ... | |
1153 | 1158 |
state=arg |
1154 | 1159 |
elif opt in ("-N", "--distrinution-name"): |
1155 | 1160 |
distribution_name = arg |
1156 |
elif opt in ("-p", "--platform"): |
|
1157 |
if args == "amd64": |
|
1158 |
# Aceptamos la plataforma amd64 como sinonimo de x86_64 |
|
1159 |
args = "x86_64" |
|
1160 |
if not arg in ("x86","x86_64"): |
|
1161 |
print "Unsuported platform "+repr(platform)+", must be x86, x86_64 or amd64." |
|
1162 |
shorthelp(args) |
|
1163 |
sys.exit(2) |
|
1164 |
platforms = (arg,) |
|
1165 | 1161 |
else: |
1166 | 1162 |
assert False, "unhandled option %r" % opt |
1167 | 1163 |
|
... | ... | |
1190 | 1186 |
shutil.copyfile("packages.gvspki", gvspki_filename) |
1191 | 1187 |
shutil.copyfile("packages.gvspki.md5", gvspki_filename +".md5") |
1192 | 1188 |
|
1193 |
#exec_extensions = {
|
|
1194 |
# "lin" : LINUX_EXEC_EXTENSION,
|
|
1195 |
# "win" : ".exe"
|
|
1196 |
#}
|
|
1189 |
for platform in platforms:
|
|
1190 |
message( "Creating installers for platform "+cur_os+"/"+cur_arch+"...")
|
|
1191 |
gvspks_filename = "builds/"+build+"/gvSIG-desktop-" + VERSION + "-" + build+ "-" + state + "-"+platform.getOS()+"-"+platform.getArch()+".gvspks"
|
|
1192 |
online_filename = "builds/"+build+"/gvSIG-desktop-" + VERSION + "-" + build+ "-" + state + "-"+platform.getOS()+"-"+platform.getArch() + "-online.jar"
|
|
1197 | 1193 |
|
1198 |
for cur_os in oss: |
|
1199 |
exec_extension = ".jar" #exec_extensions[cur_os] |
|
1200 |
for cur_platform in platforms: |
|
1201 |
message( "Creating installers for platform "+cur_os+"/"+cur_platform+"...") |
|
1202 |
gvspks_filename = "builds/"+build+"/gvSIG-desktop-" + VERSION + "-" + build+ "-" + state + "-"+cur_os+"-"+cur_platform+".gvspks" |
|
1203 |
online_filename = "builds/"+build+"/gvSIG-desktop-" + VERSION + "-" + build+ "-" + state + "-"+cur_os+"-"+cur_platform + "-online" + exec_extension |
|
1204 |
|
|
1205 | 1194 |
if not os.path.isfile(online_filename): |
1206 |
msgwarn("Can't access the online installable for "+cur_os+"/"+cur_platform + " ("+online_filename+").")
|
|
1195 |
msgwarn("Can't access the online installable for "+platform.getOS()+"/"+platform.getArch() + " ("+online_filename+").")
|
|
1207 | 1196 |
continue |
1208 | 1197 |
|
1209 |
message( "Coping packages-"+cur_os+"-"+cur_platform+".gvspks to "+ gvspks_filename)
|
|
1210 |
shutil.copyfile("packages-"+cur_os+"-"+cur_platform+".gvspks", gvspks_filename)
|
|
1211 |
shutil.copyfile("packages-"+cur_os+"-"+cur_platform+".gvspks.md5", gvspks_filename +".md5")
|
|
1198 |
message( "Coping packages-"+platform.getOS()+"-"+platform.getArch()+".gvspks to "+ gvspks_filename)
|
|
1199 |
shutil.copyfile("packages-"+platform.getOS()+"-"+platform.getArch()+".gvspks", gvspks_filename)
|
|
1200 |
shutil.copyfile("packages-"+platform.getOS()+"-"+platform.getArch()+".gvspks.md5", gvspks_filename +".md5")
|
|
1212 | 1201 |
|
1213 | 1202 |
message( "Add execution permissions to online installables....") |
1214 | 1203 |
mychmod(online_filename,RWXALL) |
... | ... | |
1217 | 1206 |
mychmod(online_filename+".md5",RWALL) |
1218 | 1207 |
|
1219 | 1208 |
|
1220 |
executeCommand("mkinstall" , "--addjre"+cur_os, online_filename, gvspks_filename)
|
|
1209 |
executeCommand("mkinstall" , "--addjre"+platform.getOS(), online_filename, gvspks_filename)
|
|
1221 | 1210 |
|
1222 | 1211 |
message( "Renaming files from custom to standard...") |
1223 |
target_filename = "builds/"+build+"/gvSIG-desktop-" + VERSION + "-" + build+ "-" + state + "-"+cur_os+"-"+cur_platform+"-"+distribution_name + exec_extension
|
|
1212 |
target_filename = "builds/"+build+"/gvSIG-desktop-" + VERSION + "-" + build+ "-" + state + "-"+platform.getOS()+"-"+platform.getArch()+"-"+distribution_name + ".jar"
|
|
1224 | 1213 |
shutil.move( |
1225 |
"builds/"+build+"/gvSIG-desktop-" + VERSION + "-" + build+ "-" + state + "-"+cur_os+"-"+cur_platform + "-custom" + exec_extension,
|
|
1214 |
"builds/"+build+"/gvSIG-desktop-" + VERSION + "-" + build+ "-" + state + "-"+platform.getOS()+"-"+platform.getArch() + "-custom.jar",
|
|
1226 | 1215 |
target_filename |
1227 | 1216 |
) |
1228 | 1217 |
mychmod(target_filename,RWXALL) |
... | ... | |
1230 | 1219 |
md5sum(target_filename,target_filename+".md5") |
1231 | 1220 |
mychmod(target_filename+".md5",RWALL) |
1232 | 1221 |
|
1233 |
message( "Createds installers for platform "+cur_os+"/"+cur_platform+"\n")
|
|
1222 |
message( "Createds installers for platform "+platform.getOS()+"/"+platform.getArch()+"\n")
|
|
1234 | 1223 |
|
1235 | 1224 |
message( "Coping html index to browse paqueges of the distro.") |
1236 | 1225 |
shutil.rmtree("builds/"+build+"/web", ignore_errors=True) |
... | ... | |
1563 | 1552 |
--excludepki pkgcode |
1564 | 1553 |
--exclude pkgcode |
1565 | 1554 |
-s, --include-default-selection |
1566 |
-p, --platform=name |
|
1567 | 1555 |
-i, --index-only |
1568 | 1556 |
-I full-path-to-package, --include full-path-to-package |
1569 | 1557 |
|
1570 | 1558 |
mkdist [OPTIONS] |
1571 | 1559 |
-s STATE, --state=STATE |
1572 | 1560 |
-b BUILD, --build=BUILD |
1573 |
-p, --platform=all|x86|x86_64|amd64 |
|
1574 | 1561 |
-N, --distribution-name=name |
1575 | 1562 |
|
1576 | 1563 |
mkmirror [OPTIONS] |
... | ... | |
1691 | 1678 |
directorio corriente, con los nombres de paquetes a seleccionar |
1692 | 1679 |
por defecto. |
1693 | 1680 |
|
1694 |
-p | --platform=name |
|
1695 |
Indica para que plataforma queremos generar el conjunto de paquetes. |
|
1696 |
Es un parametro opcional. |
|
1697 |
Sus valores pueden ser: |
|
1698 |
- all (Se incluiren los de todas las plataformas, no solo los multiplataforma) |
|
1699 |
- x86 |
|
1700 |
- x86_64 |
|
1701 |
- amd64 (sinonimo aceptado para x86_64) |
|
1702 |
Si no se indica plataforma se generara para "all". |
|
1703 |
El indice,"gvspki", siempre llevara los de todas las plataformas, esta opcion |
|
1704 |
solo afecta a la genracion del "gvspks". |
|
1705 |
|
|
1706 |
|
|
1707 | 1681 |
-i | --index-only |
1708 | 1682 |
No crea el fichero gvspks, solo crea el gvspki |
1709 | 1683 |
|
... | ... | |
1728 | 1702 |
los ficheros en la carpeta builds de la distribucion y para saber donde debe |
1729 | 1703 |
dejar los ficheros generados. |
1730 | 1704 |
|
1731 |
-p | --platform=name |
|
1732 |
Indica para que plataforma queremos generar los instalables de gvSIG. |
|
1733 |
Es un parametro opcional. |
|
1734 |
Sus valores pueden ser: |
|
1735 |
- all (si se indica se generara para x86) |
|
1736 |
- x86 |
|
1737 |
- x86_64 |
|
1738 |
- amd64 (sinonimo aceptado para x86_64) |
|
1739 |
Si no se indica plataforma se generara para x86. |
|
1740 |
|
|
1741 | 1705 |
-N | --distribution-name=name |
1742 | 1706 |
Nombre usado como sufijo del nuevo binario a generar. Por defecto si no se |
1743 | 1707 |
indica valdra "standard". |
Also available in: Unified diff