[PATCH]Create CD/DVD that include update RPM packages(exclude old RPM packages).

ぽちけん pochi_ken at hotmail.com
Sun Jun 17 05:54:36 UTC 2007


Hi, everyone.
 
This pungi's patch is able to create easily CD/DVD that inclde update RPM packages (exclude old PRM packages automatically).
Apply a patch and add line below to yum.conf.f7.i386 .
#-------------------------
exclude=*debuginfo*
[fedorai-update]name=Fedora 7 - updatebaseurl=http://[mirror site URL]/fedora/updates/7/i386/enabled=1gpgcheck=0
#-------------------------
 
Example of execution.
#pungi -c /etc/pungi/f7-fedora.i386
 
We can create a DVD that use a new kernel package and update packages.
And to rebuilt anaconda installer that use a new kernel.
 
Have a nice day!
Best regards.
 
 
 
--- /usr/lib/python2.5/site-packages/pypungi/gather.py 2007-05-26 07:15:48.000000000 +0900+++ /usr/lib/python2.5/site-packages/pypungi/gather.py.new 2007-06-16 07:14:07.000000000 +0900@@ -387,3 +387,54 @@                 shutil.copy2(path, local)              os.link(local, os.path.join(pkgdir, os.path.basename(remote)))+++    # Add removeOldPackages 20070616 Pochi_ken <pochi_ken at hotmail.com>+    def removeOldPackages(self):+        """Cycle through the check of rpms and+           update the package objects and delete the old package objects."""++        pkgdir = os.path.join(self.config.get('default', 'destdir'),+                              self.config.get('default', 'version'), +                              self.config.get('default', 'flavor'), +                              self.config.get('default', 'arch'), +                              self.config.get('default', 'osdir'),+                              self.config.get('default', 'product_path'))+        local = sel!
 f.config.get('default','cachedir') + '/'+        localfiles = os.listdir(local)+        trot = yum.rpmUtils.transaction.initReadOnlyTransaction()+        rpmlst = []+        for filename in localfiles:+            rpmfile = local + filename+            try:+                hdr = yum.rpmUtils.miscutils.hdrFromPackage(trot, rpmfile)+                rpmlst.append((rpmfile, hdr))+                self.logger.info("Reading header info from %s" % rpmfile)+            except:+                self.logger.info("Could not read header info in %s" % rpmfile)+        rpmlst.sort()+        c = 0+        oldrpmlst = []+        while (c < (len(rpmlst)-1)):+            i = 1+            while (i < 5):+                cRPMpkg = yum.rpmUtils.miscutils.pkgTupleFromHeader(rpmlst[c][1])+                nRPMpkg = yum.rpmUtils.miscutils.pkgTupleFromHeader(rpmlst[c+i][1])+                if (cRPMpkg[0] == nRPMpkg[0]) and (cRPMpkg[1] == nRPMpkg[1]):+                    cRPMEVR = cRPMpkg[2:]+         !
            nRPMEVR = nRPMpkg[2:]+                    if yum.rp!
 mUtils.m
iscutils.compareEVR(nRPMEVR, cRPMEVR) == 1:+                        oldrpmlst.append(rpmlst[c][0])+                    else:+                        oldrpmlst.append(rpmlst[c+i][0])+                        rpmlst.pop(c+i)+                        c = c-1+                i = i+1+                if ((c+i) > (len(rpmlst)-1)):+                    i = 5+            c = c+1+        for filename in oldrpmlst:+            self.logger.info("Old package %s is removed." % filename)+            os.remove(filename)+            os.remove(os.path.join(pkgdir, os.path.basename(filename)))+    # END removeOldPackage--- /usr/bin/pungi 2007-05-31 01:30:29.000000000 +0900+++ /usr/bin/pungi.new 2007-06-13 22:21:15.000000000 +0900@@ -101,13 +101,17 @@      # Actually do work.     if not config.get('default', 'arch') == 'source':+        mygather = pypungi.gather.Gather(config, pkglist)         if opts.do_all or opts.do_gather:-            mygather = pypungi.gather.Gather(config, pkglist)          !
    mygather.getPackageObjects()             mygather.downloadPackages()-            if config.getboolean('default', 'getsource'):-                mygather.getSRPMList()-                mygather.downloadSRPMs()++        if opts.do_all or opts.do_remove:+            mygather.removeOldPackages()++        if config.getboolean('default', 'getsource'):+            mygather.getSRPMList()+            mygather.downloadSRPMs()          mypungi = pypungi.pungi.Pungi(config) @@ -153,6 +157,8 @@           help="Enable ALL stages")         parser.add_option("-G", action="store_true", default=False, dest="do_gather",           help="Flag to enable processing the Gather stage")+        parser.add_option("-R", action="store_true", default=False, dest="do_remove",+          help="Flag to enable processing the Remove stage")         parser.add_option("-B", action="store_true", default=False, dest="do_buildinstall",           help="Flag to enable processing the BuildInstall stage")         par!
 ser.add_option("-P", action="store_true", default=False, dest=!
 "do_pack
ageorder",@@ -164,7 +170,7 @@           (opts, args) = parser.parse_args()-        if opts.do_gather or opts.do_buildinstall or opts.do_packageorder or opts.do_splittree or opts.do_createiso:+        if opts.do_gather or opts.do_remove or opts.do_buildinstall or opts.do_packageorder or opts.do_splittree or opts.do_createiso:             opts.do_all = False         if len(sys.argv) < 2:             parser.print_help()
_________________________________________________________________
Windows Vista ついに発売!
http://search.msn.co.jp/results.aspx?q=windows+vista&FORM=MSNH&cp=65001
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/fedora-buildsys-list/attachments/20070617/1f2190bb/attachment.htm>


More information about the Fedora-buildsys-list mailing list