Build: Fix zipping of dev package on Linux

Official 7zip normally checks for the existence of symlink targets, and
fails if they do not. That can be avoided with a command line flag. This
is important for the dev packages on Linux, where the libFoo.so is a
symlink to the actual library, and the symlink is part of the dev
package, but the actual library part of the non-dev package.

Change-Id: Ibd5855c4e106c96058a693d87e84d0f2d8f93365
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Patrik Teivonen <patrik.teivonen@qt.io>
This commit is contained in:
Eike Ziller
2024-11-06 15:22:09 +01:00
parent d30f694c76
commit fec8e320de
2 changed files with 8 additions and 2 deletions

View File

@@ -149,7 +149,10 @@ def package(args, paths):
common.check_print_call(command + [paths.install])
# use -mf=off to avoid usage of the ARM executable compression filter,
# which cannot be extracted by p7zip
zip = ['7z', 'a', '-mmt' + args.zip_threads, '-mf=off']
# use -snl to preserve symlinks even if their target doesn't exist
# which is important for the _dev package on Linux
# (only works with official/upstream 7zip)
zip = ['7z', 'a', '-mmt' + args.zip_threads, '-mf=off', '-snl']
common.check_print_call(zip + [os.path.join(paths.result, args.name + '.7z'), '*'],
paths.install)
if os.path.exists(paths.dev_install): # some plugins might not provide anything in Devel