View | Details | Raw Unified | Return to bug 40932 | Differences between
and this patch

Collapse All | Expand All

(-)a/branches/ucs-4.0/ucs-4.0-4/base/univention-updater/modules/univention/updater/mirror.py (-2 / +18 lines)
 Lines 39-44   import itertools Link Here 
39
import logging
39
import logging
40
from operator import itemgetter
40
from operator import itemgetter
41
from debian.deb822 import Packages
41
from debian.deb822 import Packages
42
from apt import apt_pkg
42
43
43
from tools import UniventionUpdater, UCS_Version, NullHandler
44
from tools import UniventionUpdater, UCS_Version, NullHandler
44
try:
45
try:
 Lines 274-284   class UniventionMirror( UniventionUpdater ): Link Here 
274
275
275
	def _compress(self, filename):
276
	def _compress(self, filename):
276
		self.log.debug('Compressing %s ...', filename)
277
		self.log.debug('Compressing %s ...', filename)
277
		subprocess.call(
278
		sorter = subprocess.Popen(
279
			('apt-sortpkgs', filename),
280
			stdout=subprocess.PIPE,
281
		)
282
		compressor = subprocess.Popen(
278
			('gzip',),
283
			('gzip',),
279
			stdin=open(filename, 'rb'),
284
			stdin=subprocess.PIPE,
280
			stdout=open(filename + '.gz', 'wb'),
285
			stdout=open(filename + '.gz', 'wb'),
281
		)
286
		)
287
		prev = None
288
		for pkg in Packages.iter_paragraphs(sorter.stdout):
289
			if prev:
290
				if prev["Package"] != pkg["Package"]:
291
					compressor.stdin.write("%s\n" % prev)
292
				elif apt_pkg.version_compare(prev["Version"], pkg["Version"]) >= 0:
293
					continue
294
			prev = pkg
295
		if prev:
296
			compressor.stdin.write("%s\n" % prev)
297
		compressor.stdin.close()
282
298
283
	def _release(self, outdir, dist, archs, version):
299
	def _release(self, outdir, dist, archs, version):
284
		rel_name = os.path.join(outdir, 'dists', dist, 'Release')
300
		rel_name = os.path.join(outdir, 'dists', dist, 'Release')
(-)a/branches/ucs-4.1/ucs-4.1-1/base/univention-updater/modules/univention/updater/mirror.py (-2 / +18 lines)
 Lines 39-44   import itertools Link Here 
39
import logging
39
import logging
40
from operator import itemgetter
40
from operator import itemgetter
41
from debian.deb822 import Packages
41
from debian.deb822 import Packages
42
from apt import apt_pkg
42
43
43
from tools import UniventionUpdater, NullHandler
44
from tools import UniventionUpdater, NullHandler
44
from ucs_version import UCS_Version
45
from ucs_version import UCS_Version
 Lines 275-285   class UniventionMirror(UniventionUpdater): Link Here 
275
276
276
    def _compress(self, filename):
277
    def _compress(self, filename):
277
        self.log.debug('Compressing %s ...', filename)
278
        self.log.debug('Compressing %s ...', filename)
278
        subprocess.call(
279
        sorter = subprocess.Popen(
280
            ('apt-sortpkgs', filename),
281
            stdout=subprocess.PIPE,
282
        )
283
        compressor = subprocess.Popen(
279
            ('gzip',),
284
            ('gzip',),
280
            stdin=open(filename, 'rb'),
285
            stdin=subprocess.PIPE,
281
            stdout=open(filename + '.gz', 'wb'),
286
            stdout=open(filename + '.gz', 'wb'),
282
        )
287
        )
288
        prev = None
289
        for pkg in Packages.iter_paragraphs(sorter.stdout):
290
            if prev:
291
                if prev["Package"] != pkg["Package"]:
292
                    compressor.stdin.write("%s\n" % prev)
293
                elif apt_pkg.version_compare(prev["Version"], pkg["Version"]) >= 0:
294
                    continue
295
            prev = pkg
296
        if prev:
297
            compressor.stdin.write("%s\n" % prev)
298
        compressor.stdin.close()
283
299
284
    def _release(self, outdir, dist, archs, version):
300
    def _release(self, outdir, dist, archs, version):
285
        rel_name = os.path.join(outdir, 'dists', dist, 'Release')
301
        rel_name = os.path.join(outdir, 'dists', dist, 'Release')

Return to bug 40932