Revision 42775 trunk/org.gvsig.desktop/org.gvsig.desktop.installer/src/main/packaging/gvspkg

View differences:

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