diff options
Diffstat (limited to 'cpp/newmakebindist.py')
-rwxr-xr-x | cpp/newmakebindist.py | 181 |
1 files changed, 102 insertions, 79 deletions
diff --git a/cpp/newmakebindist.py b/cpp/newmakebindist.py index dc15cd76114..636abf6b5a6 100755 --- a/cpp/newmakebindist.py +++ b/cpp/newmakebindist.py @@ -42,9 +42,40 @@ class Package: self.filelist = filelist self.other = other - def writeHdr(self, ofile): + def writeHdr(self, ofile, version, release, installDir): ofile.write("\n") + ofile.write("%define _unpackaged_files_terminate_build 0\n") + ofile.write("Summary: " + self.summary + "\n") + ofile.write("Name: " + self.name + "\n") + ofile.write("Version: " + version + "\n") + ofile.write("Release: " + release + "\n") + if self.requires <> "": + ofile.write("Requires: " + self.requires + "\n") + ofile.write("License: GPL\n") + ofile.write("Group: Development/Libraries\n") + ofile.write("Vendor: ZeroC Inc\n") + ofile.write("URL: http://www.zeroc.com/index.html\n") + ofile.write("Source0: http://www.zeroc.com/downloads/%{name}-%{version}.tar.gz\n") + ofile.write("Source1: http://www.zeroc.com/downloads/%{name}J-%{version}.tar.gz\n") + ofile.write("Source2: http://www.zeroc.com/downloads/%{name}Py-%{version}.tar.gz\n") + ofile.write("Source3: http://www.zeroc.com/downloads/%{name}CS-%{version}.tar.gz\n") + ofile.write("\n") + ofile.write("BuildRoot: " + installDir + "\n") + ofile.write("Prefix: /usr\n") + ofile.write("\n") + ofile.write("%description\n") + ofile.write("\n") + ofile.write("%prep\n") + ofile.write("\n") + ofile.write("%build\n") + ofile.write("\n") + ofile.write("%install\n") + ofile.write("\n") + ofile.write("%clean\n") + ofile.write("\n") + ofile.write("\n") + def writeFileList(self, ofile, version, intVersion): ofile.write("%defattr(644, root, root, 755)\n\n") for perm, f in self.filelist: @@ -61,11 +92,14 @@ class Package: if f.find("%version%"): f = f.replace("%version%", version) - if f.endswith(".so"): - ofile.write(prefix + "/usr/" + f + "." + version + "\n") - ofile.write(prefix + "/usr/" + f + "." + str(intVersion) + "\n") - ofile.write(prefix + "/usr/" + f + "\n") + if perm == "lib" and f.endswith(".VERSION"): + fname = os.path.splitext(f)[0] + ofile.write(prefix + "/usr/" + fname + "." + version + "\n") + ofile.write(prefix + "/usr/" + fname + "." + str(intVersion) + "\n") + else: + ofile.write(prefix + "/usr/" + f + "\n") + ofile.write("\n") def writeFiles(self, ofile, version, intVersion): @@ -76,7 +110,7 @@ class Package: # Represents subpackages in an RPM spec file. # class Subpackage(Package): - def writeHdr(self, ofile): + def writeHdr(self, ofile, version, release, installDir): ofile.write("%package " + self.name + "\n") ofile.write("Summary: " + self.summary + "\n") ofile.write("Group: " + self.group + "\n") @@ -108,9 +142,9 @@ transforms = [ ("lib/Ice.jar", "lib/Ice-%version%/Ice.jar" ), # the Ice spec file. # fileLists = [ - Package("main", + Package("ice", "", - "The Ice runtime and tools.", + "The Internet Communications Engine (ICE) is a modern alternative to object middleware", "Development/Libraries Development/Tools System Environment/Libraries", "", "", @@ -130,18 +164,18 @@ fileLists = [ ("exe", "bin/icepatch2server"), ("exe", "bin/icestormadmin"), ("exe", "bin/slice2docbook"), - ("lib", "lib/libFreeze.so"), - ("lib", "lib/libGlacier2.so"), - ("lib", "lib/libIceBox.so"), - ("lib", "lib/libIcePack.so"), - ("lib", "lib/libIcePatch2.so"), - ("lib", "lib/libIce.so"), - ("lib", "lib/libIceSSL.so"), - ("lib", "lib/libIceStormService.so"), - ("lib", "lib/libIceStorm.so"), - ("lib", "lib/libIceUtil.so"), - ("lib", "lib/libIceXML.so"), - ("lib", "lib/libSlice.so"), + ("lib", "lib/libFreeze.so.VERSION"), + ("lib", "lib/libGlacier2.so.VERSION"), + ("lib", "lib/libIceBox.so.VERSION"), + ("lib", "lib/libIcePack.so.VERSION"), + ("lib", "lib/libIcePatch2.so.VERSION"), + ("lib", "lib/libIce.so.VERSION"), + ("lib", "lib/libIceSSL.so.VERSION"), + ("lib", "lib/libIceStormService.so.VERSION"), + ("lib", "lib/libIceStorm.so.VERSION"), + ("lib", "lib/libIceUtil.so.VERSION"), + ("lib", "lib/libIceXML.so.VERSION"), + ("lib", "lib/libSlice.so.VERSION"), ("dir", "share/slice"), ("dir", "share/doc/Ice-%version%/images"), ("dir", "share/doc/Ice-%version%/manual"), @@ -157,18 +191,24 @@ fileLists = [ [("exe", "bin/slice2cpp"), ("exe", "bin/slice2freeze"), ("dir", "include"), - ("dir", "share/doc/Ice-%version%/demo_cpp"), + ("lib", "lib/libFreeze.so"), + ("lib", "lib/libGlacier2.so"), + ("lib", "lib/libIceBox.so"), + ("lib", "lib/libIcePack.so"), + ("lib", "lib/libIcePatch2.so"), + ("lib", "lib/libIce.so"), + ("lib", "lib/libIceSSL.so"), + ("lib", "lib/libIceStormService.so"), + ("lib", "lib/libIceStorm.so"), + ("lib", "lib/libIceUtil.so"), + ("lib", "lib/libIceXML.so"), + ("lib", "lib/libSlice.so"), + ("dir", "share/doc/Ice-%version%/demo"), ("file", "share/doc/Ice-%version%/config/Make.cxx.rules"), ("file", "share/doc/Ice-%version%/config/makedepend.py"), ("file", "share/doc/Ice-%version%/config/makecerts"), ("file", "share/doc/Ice-%version%/config/makeprops.py"), - ("file", "share/doc/Ice-%version%/config/Make.rules.AIX"), - ("file", "share/doc/Ice-%version%/config/Make.rules.Darwin"), - ("file", "share/doc/Ice-%version%/config/Make.rules.FreeBSD"), - ("file", "share/doc/Ice-%version%/config/Make.rules.HP-UX"), ("file", "share/doc/Ice-%version%/config/Make.rules.Linux"), - ("file", "share/doc/Ice-%version%/config/Make.rules.SunOS"), - ("file", "share/doc/Ice-%version%/config/PropertyNames.def"), ("file", "share/doc/Ice-%version%/config/server.cnf"), ("file", "share/doc/Ice-%version%/config/client.cnf"), ("file", "share/doc/Ice-%version%/config/generic.cnf"), @@ -201,7 +241,7 @@ fileLists = [ "", [("exe", "bin/slice2cs"), ("file", "share/doc/Ice-%version%/config/Make.cs.rules"), - ("dir", "share/doc/Ice-%version%/demo_csharp")]), + ("dir", "share/doc/Ice-%version%/democs")]), Subpackage("java-devel", "ice-java", "Ice tools developing Ice applications in Java", @@ -223,7 +263,7 @@ fileLists = [ ("file", "share/doc/Ice-%version%/config/common.rpm.xml"), ("file", "share/doc/Ice-%version%/config/common.src.xml"), ("file", "share/doc/Ice-%version%/config/common.xml"), - ("dir", "share/doc/Ice-%version%/demo_java")]), + ("dir", "share/doc/Ice-%version%/demoj")]), Subpackage("python", "ice python", "Ice runtime for Python applications", @@ -238,13 +278,13 @@ fileLists = [ "", "", [("exe", "bin/slice2py"), - ("dir", "share/doc/Ice-%version%/demo_python")]) + ("dir", "share/doc/Ice-%version%/demopy")]) ] noarchFileList = [ - Package("java", + Package("ice-java", "ice db4-java >= 4.2", - "Ice runtime for Java applications", + "The Internet Communications Engine (ICE) is a modern alternative to object middleware", "Development/Libraries", "", "BuildArch: noarch", @@ -341,7 +381,7 @@ def extractDemos(buildDir, version, distro, demoDir): os.chdir(buildDir + "/demotree") os.system("tar xvfz ../sources/" + distro + ".tar.gz " + distro + "/demo " + distro + "/config " \ + distro + "/certs") - shutil.move(distro + "/demo", buildDir + "/Ice-" + version + "-demos/demo_" + demoDir) + shutil.move(distro + "/demo", buildDir + "/Ice-" + version + "-demos/demo" + demoDir) # # 'System' copying of files here because its just easier! @@ -366,7 +406,7 @@ def extractDemos(buildDir, version, distro, demoDir): # # C++ specific build modifications. # - if demoDir == "cpp": + if demoDir == "": tcwd = os.getcwd() os.chdir(buildDir + "/Ice-" + version + "-demos/config") shutil.move(os.getcwd() + "/Make.rules", os.getcwd() + "/Make.cxx.rules") @@ -392,7 +432,7 @@ def extractDemos(buildDir, version, distro, demoDir): # # C# specific build modifications # - elif demoDir == "csharp": + elif demoDir == "cs": tcwd = os.getcwd() os.chdir(buildDir + "/Ice-" + version + "-demos/config") shutil.move(os.getcwd() + "/Make.rules", os.getcwd() + "/Make.cs.rules") @@ -417,7 +457,7 @@ def extractDemos(buildDir, version, distro, demoDir): os.system("sh -c 'for f in `find . -name .depend` ; do echo \"\" > $f ; done'") os.chdir(tcwd) - elif demoDir == "java": + elif demoDir == "j": tcwd = os.getcwd() os.chdir(buildDir + "/Ice-" + version + "-demos/config") # @@ -449,7 +489,7 @@ def archiveDemoTree(buildDir, version): # # ********************************************************************** -ifeq ($(findstring demo_csharp, $(CURDIR)), demo_csharp) +ifeq ($(findstring democs, $(CURDIR)), democs) include $(top_srcdir)/config/Make.cs.rules else include $(top_srcdir)/config/Make.cxx.rules @@ -462,6 +502,24 @@ endif # os.remove("Ice-" + version + "-demos/config/TestUtil.py") os.remove("Ice-" + version + "-demos/config/IcePackAdmin.py") + + # + # Remove compiled Java. + # + os.system("sh -c 'for f in `find Ice-" + version + "-demos/demoj -name classes -type d` ; do rm -rf $f/* ; done'") + + # + # Remove generated source files. + # + os.system("sh -c 'for f in `find Ice-" + version + "-demos/demoj -name generated -type d` ; do rm -rf $f/* ; done'") + + # + # Remove Windows project files. + # + os.system("sh -c 'for f in `find Ice-" + version + "-demos -regex \".*\.ds[wp]\" ` ; do rm -rf $f ; done'") + os.system("sh -c 'for f in `find Ice-" + version + "-demos/democs -name \"*.sln\" ` ; do rm -rf $f ; done'") + os.system("sh -c 'for f in `find Ice-" + version + "-demos/democs -name \"*.csproj\" ` ; do rm -rf $f ; done'") + os.system("tar cvfz Ice-" + version + "-demos.tar.gz Ice-" + version + "-demos") os.chdir(cwd) @@ -527,38 +585,6 @@ def strip(files): print "Stripping " + f os.system(stripCmd + f) -def printRPMHeader(ofile, name, version, release, installDir): - """Used on Linux only. Prints out the header portion of an RPM spec file for building the RPM""" - ofile.write("%define _unpackaged_files_terminate_build 0\n") - ofile.write("Summary: The Internet Communications Engine (ICE) is a modern alternative to object middleware such ") - ofile.write("as CORBA\n") - ofile.write("Name: " + name + "\n") - ofile.write("Version: " + version + "\n") - ofile.write("Release: " + release + "\n") - ofile.write("License: GPL\n") - ofile.write("Group: Development/Libraries\n") - ofile.write("Vendor: ZeroC Inc\n") - ofile.write("URL: http://www.zeroc.com/index.html\n") - ofile.write("Source0: http://www.zeroc.com/downloads/%{name}-%{version}.tar.gz\n") - ofile.write("Source1: http://www.zeroc.com/downloads/%{name}J-%{version}.tar.gz\n") - ofile.write("Source2: http://www.zeroc.com/downloads/%{name}Py-%{version}.tar.gz\n") - ofile.write("Source3: http://www.zeroc.com/downloads/%{name}CS-%{version}.tar.gz\n") - ofile.write("\n") - ofile.write("BuildRoot: " + installDir + "\n") - ofile.write("Prefix: /usr\n") - ofile.write("\n") - ofile.write("%description\n") - ofile.write("\n") - ofile.write("%prep\n") - ofile.write("\n") - ofile.write("%build\n") - ofile.write("\n") - ofile.write("%install\n") - ofile.write("\n") - ofile.write("%clean\n") - ofile.write("\n") - ofile.write("\n") - def missingPathParts(source, dest): print "Calculating : " + source + " and " + dest @@ -725,9 +751,8 @@ def main(): # if printSpecFile: ofile = sys.stdout - printRPMHeader(ofile, "ice", version, "1", installDir) for v in fileLists: - v.writeHdr(ofile) + v.writeHdr(ofile, version, "1", installDir) ofile.write("\n\n\n") for v in fileLists: v.writeFiles(ofile, version, soVersion) @@ -749,10 +774,10 @@ def main(): # # Ice must be first or building the other source distributions will fail. # - sourceTarBalls = [ ("ice", "Ice-" + version, "cpp"), - ("icej","IceJ-" + version, "java"), - ("icecs","IceCS-" + version, "csharp"), - ("icepy","IcePy-" + version, "python") ] + sourceTarBalls = [ ("ice", "Ice-" + version, ""), + ("icej","IceJ-" + version, "j"), + ("icecs","IceCS-" + version, "cs"), + ("icepy","IcePy-" + version, "py") ] os.environ['ICE_HOME'] = installDir + "/Ice-" + version currentLibraryPath = None @@ -798,9 +823,8 @@ def main(): if getPlatform() == "linux": transformDirectories(transforms, version, installDir) ofile = open(buildDir + "/Ice-" + version + ".spec", "w") - printRPMHeader(ofile, "ice", version, "1", installDir) for v in fileLists: - v.writeHdr(ofile) + v.writeHdr(ofile, version, "1", installDir) ofile.write("\n\n\n") for v in fileLists: v.writeFiles(ofile, version, soVersion) @@ -822,9 +846,8 @@ def main(): # Build noarch RPMs # ofile = open(buildDir + "/IceJ-" + version + ".spec", "w") - printRPMHeader(ofile, "ice-java", version, "1", installDir) for v in noarchFileList: - v.writeHdr(ofile) + v.writeHdr(ofile, version, "1", installDir) ofile.write("\n\n\n") for v in noarchFileList: v.writeFiles(ofile, version, soVersion) |