aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Ziller <[email protected]>2024-11-06 15:22:09 +0100
committerEike Ziller <[email protected]>2024-11-07 07:28:52 +0000
commitfec8e320de79a03abf2cce0f4b23c8b842f1b22c (patch)
treeb4a19f617df1346eb7cab98c9d215db0dc7ce0c0
parentd30f694c76ae1313c361c4a8d379f0c163815d02 (diff)
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 <[email protected]> Reviewed-by: Patrik Teivonen <[email protected]>
-rwxr-xr-xscripts/build.py5
-rwxr-xr-xscripts/build_plugin.py5
2 files changed, 8 insertions, 2 deletions
diff --git a/scripts/build.py b/scripts/build.py
index 9739c08204c..1b4306911dc 100755
--- a/scripts/build.py
+++ b/scripts/build.py
@@ -274,7 +274,10 @@ def package_qtcreator(args, paths):
# 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']
if not args.no_zip:
if not args.no_qtcreator:
common.check_print_call(zip
diff --git a/scripts/build_plugin.py b/scripts/build_plugin.py
index 9355919e955..0de2a3949d6 100755
--- a/scripts/build_plugin.py
+++ b/scripts/build_plugin.py
@@ -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