* alright, dont add symlinks to delta package, we can handle them.
* also some code cleanups
This commit is contained in:
@@ -293,13 +293,17 @@ class Install(AtomicOperation):
|
|||||||
# of these files may be relocated to some other directory in the new package.
|
# of these files may be relocated to some other directory in the new package.
|
||||||
# We handle these cases here.
|
# We handle these cases here.
|
||||||
def relocate_files():
|
def relocate_files():
|
||||||
|
|
||||||
for old_file, new_file in find_relocations(self.old_files, self.files):
|
for old_file, new_file in find_relocations(self.old_files, self.files):
|
||||||
destdir = "/" + os.path.dirname(new_file.path)
|
old_path, new_path = ("/" + old_file.path, "/" + new_file.path)
|
||||||
|
|
||||||
|
destdir = os.path.dirname(new_path)
|
||||||
if not os.path.exists(destdir):
|
if not os.path.exists(destdir):
|
||||||
os.makedirs(destdir)
|
os.makedirs(destdir)
|
||||||
|
|
||||||
shutil.copy("/" + old_file.path, "/" + new_file.path)
|
if os.path.islink(old_path):
|
||||||
|
os.symlink(os.readlink(old_path), new_path)
|
||||||
|
else:
|
||||||
|
shutil.copy(old_path, new_path)
|
||||||
|
|
||||||
# remove left over files from the old package.
|
# remove left over files from the old package.
|
||||||
def clean_leftovers():
|
def clean_leftovers():
|
||||||
|
|||||||
+3
-8
@@ -44,10 +44,6 @@ def create_delta_package(old_package, new_package):
|
|||||||
tar = archive.ArchiveTar(util.join_path(newpkg_path, ctx.const.install_tar_lzma), 'tarlzma', False, False)
|
tar = archive.ArchiveTar(util.join_path(newpkg_path, ctx.const.install_tar_lzma), 'tarlzma', False, False)
|
||||||
tar.unpack_dir(newpkg_path)
|
tar.unpack_dir(newpkg_path)
|
||||||
|
|
||||||
# symlinks should be in delta package
|
|
||||||
symlinks = filter(lambda x:os.path.islink(util.join_path(newpkg_path, x.path)), newfiles.list)
|
|
||||||
files_delta = set(files_delta + symlinks)
|
|
||||||
|
|
||||||
# Create delta package
|
# Create delta package
|
||||||
deltaname = "%s-%s-%s%s" % (oldmd.package.name, oldmd.package.release, newmd.package.release, ".delta.pisi")
|
deltaname = "%s-%s-%s%s" % (oldmd.package.name, oldmd.package.release, newmd.package.release, ".delta.pisi")
|
||||||
|
|
||||||
@@ -121,10 +117,9 @@ def find_relocations(oldfiles, newfiles):
|
|||||||
|
|
||||||
relocations = []
|
relocations = []
|
||||||
for hash in files_new.keys():
|
for hash in files_new.keys():
|
||||||
if hash in files_old and files_new[hash][0].path != files_old[hash][0].path:
|
if hash in files_old:
|
||||||
# symlinks are not relocated, they already come with the delta package
|
for i in range(len(files_new[hash])):
|
||||||
if not os.path.islink("/" + files_old[hash][0].path):
|
if files_old[hash][0].path != files_new[hash][i].path:
|
||||||
for i in range(len(files_new[hash])):
|
|
||||||
relocations.append((files_old[hash][0], files_new[hash][i]))
|
relocations.append((files_old[hash][0], files_new[hash][i]))
|
||||||
|
|
||||||
return relocations
|
return relocations
|
||||||
|
|||||||
Reference in New Issue
Block a user