Skip to content

Commit 2822bac

Browse files
authored
Merge pull request #3321 from OpenShot/mangle-hw-libs
Mangle hardware library builtin paths, in libs bundled into AppImage builds
2 parents accfd6a + b8200be commit 2822bac

File tree

2 files changed

+63
-4
lines changed

2 files changed

+63
-4
lines changed

.gitlab-ci.yml

+5-4
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ linux-builder:
2323
- cd doc; make html SPHINXOPTS="-D html_theme_options.analytics_id=UA-4381101-5"; cd ..;
2424
- ~/auto-update-sphinx "$CI_PROJECT_DIR/build" "$CI_COMMIT_REF_NAME"
2525
- python3 freeze.py build
26+
- /bin/sh ./installer/mangle-hw-libs.sh "build/exe.linux-x86_64-3.4/"
2627
- python3 installer/build-server.py "$SLACK_TOKEN" "$S3_ACCESS_KEY" "$S3_SECRET_KEY" "$WINDOWS_KEY" "$WINDOWS_PASSWORD" "$GITHUB_USER" "$GITHUB_PASS" "False" "$CI_COMMIT_REF_NAME"
2728
when: always
2829
except:
@@ -84,8 +85,8 @@ windows-builder-x64:
8485
- if (-not (Test-Path "artifacts.zip")) { Invoke-WebRequest -Uri "http://gitlab.openshot.org/OpenShot/libopenshot/-/jobs/artifacts/develop/download?job=windows-builder-x64" -Headers @{"PRIVATE-TOKEN"="$ACCESS_TOKEN"} -OutFile "artifacts.zip" }
8586
- Expand-Archive -Path artifacts.zip -DestinationPath .
8687
- Copy-Item "$CI_PROJECT_DIR/build/install-x64/python/*" -Destination "$CI_PROJECT_DIR"
87-
- $env:Path = "$CI_PROJECT_DIR\build\install-x64\lib;$CI_PROJECT_DIR\build\install-x64\lib\python3.7\site-packages\;C:\msys64\mingw64\bin;C:\msys64\mingw64\lib;C:\msys64\mingw64\lib\python3.7\;C:\msys64\mingw64\lib\python3.7\site-packages\;C:\msys64\mingw64\lib\python3.7\site-packages\PyQt5;C:\msys64\usr\lib\cmake\UnitTest++;C:\msys64\usr;C:\msys64\usr\lib;" + $env:Path;
88-
- $env:PYTHONPATH = "$CI_PROJECT_DIR\build\install-x64\lib\python3.7\site-packages\;C:\msys64\usr\lib;C:\msys64\usr\lib\site-packages\;C:\msys64\mingw64\lib\python3.7\;C:\msys64\mingw64\lib\python3.7\site-packages\;C:\msys64\mingw64\lib\python3.7\site-packages\PyQt5;";
88+
- $env:Path = "$CI_PROJECT_DIR\build\install-x64\lib;$CI_PROJECT_DIR\build\install-x64\python;C:\msys64\mingw64\bin;C:\msys64\mingw64\lib;C:\msys64\mingw64\lib\python3.7\;C:\msys64\mingw64\lib\python3.7\site-packages\;C:\msys64\mingw64\lib\python3.7\site-packages\PyQt5;C:\msys64\usr\lib\cmake\UnitTest++;C:\msys64\usr;C:\msys64\usr\lib;" + $env:Path;
89+
- $env:PYTHONPATH = "$CI_PROJECT_DIR\build\install-x64\python;C:\msys64\usr\lib;C:\msys64\usr\lib\site-packages\;C:\msys64\mingw64\lib\python3.7\;C:\msys64\mingw64\lib\python3.7\site-packages\;C:\msys64\mingw64\lib\python3.7\site-packages\PyQt5;";
8990
- New-Item -path "build/install-x64/share/" -Name "$CI_PROJECT_NAME" -Value "CI_PROJECT_NAME:$CI_PROJECT_NAME`nCI_COMMIT_REF_NAME:$CI_COMMIT_REF_NAME`nCI_COMMIT_SHA:$CI_COMMIT_SHA`nCI_JOB_ID:$CI_JOB_ID" -ItemType file -force
9091
- $PREV_GIT_LABEL=(git describe --tags --abbrev=0 '@^')
9192
- git log "$PREV_GIT_LABEL..@" --oneline --pretty=format:"%C(auto,yellow)%h%C(auto,magenta)% %C(auto,blue)%>(12,trunc)%ad %C(auto,green)%<(25,trunc)%aN%C(auto,reset)%s%C(auto,red)% gD% D" --date=short > "build/install-x64/share/$CI_PROJECT_NAME.log"
@@ -111,8 +112,8 @@ windows-builder-x86:
111112
- if (-not (Test-Path "artifacts.zip")) { Invoke-WebRequest -Uri "http://gitlab.openshot.org/OpenShot/libopenshot/-/jobs/artifacts/develop/download?job=windows-builder-x86" -Headers @{"PRIVATE-TOKEN"="$ACCESS_TOKEN"} -OutFile "artifacts.zip" }
112113
- Expand-Archive -Path artifacts.zip -DestinationPath .
113114
- Copy-Item "$CI_PROJECT_DIR/build/install-x86/python/*" -Destination "$CI_PROJECT_DIR"
114-
- $env:Path = "$CI_PROJECT_DIR\build\install-x86\lib;$CI_PROJECT_DIR\build\install-x86\lib\python3.7\site-packages\;C:\msys32\mingw32\bin;C:\msys32\mingw32\lib;C:\msys32\mingw32\lib\python3.7\;C:\msys32\mingw32\lib\python3.7\site-packages\;C:\msys32\mingw32\lib\python3.7\site-packages\PyQt5;C:\msys32\usr\lib\cmake\UnitTest++;C:\msys32\usr;C:\msys32\usr\lib;" + $env:Path;
115-
- $env:PYTHONPATH = "$CI_PROJECT_DIR\build\install-x86\lib\python3.7\site-packages\;C:\msys32\usr\lib;C:\msys32\usr\lib\site-packages\;C:\msys32\mingw32\lib\python3.7\;C:\msys32\mingw32\lib\python3.7\site-packages\;C:\msys32\mingw32\lib\python3.7\site-packages\PyQt5;";
115+
- $env:Path = "$CI_PROJECT_DIR\build\install-x86\lib;$CI_PROJECT_DIR\build\install-x86\python;C:\msys32\mingw32\bin;C:\msys32\mingw32\lib;C:\msys32\mingw32\lib\python3.7\;C:\msys32\mingw32\lib\python3.7\site-packages\;C:\msys32\mingw32\lib\python3.7\site-packages\PyQt5;C:\msys32\usr\lib\cmake\UnitTest++;C:\msys32\usr;C:\msys32\usr\lib;" + $env:Path;
116+
- $env:PYTHONPATH = "$CI_PROJECT_DIR\build\install-x86\python;C:\msys32\usr\lib;C:\msys32\usr\lib\site-packages\;C:\msys32\mingw32\lib\python3.7\;C:\msys32\mingw32\lib\python3.7\site-packages\;C:\msys32\mingw32\lib\python3.7\site-packages\PyQt5;";
116117
- New-Item -path "build/install-x86/share/" -Name "$CI_PROJECT_NAME" -Value "CI_PROJECT_NAME:$CI_PROJECT_NAME`nCI_COMMIT_REF_NAME:$CI_COMMIT_REF_NAME`nCI_COMMIT_SHA:$CI_COMMIT_SHA`nCI_JOB_ID:$CI_JOB_ID" -ItemType file -force
117118
- $PREV_GIT_LABEL=(git describe --tags --abbrev=0 '@^')
118119
- git log "$PREV_GIT_LABEL..@" --oneline --pretty=format:"%C(auto,yellow)%h%C(auto,magenta)% %C(auto,blue)%>(12,trunc)%ad %C(auto,green)%<(25,trunc)%aN%C(auto,reset)%s%C(auto,red)% gD% D" --date=short > "build/install-x86/share/$CI_PROJECT_NAME.log"

installer/mangle-hw-libs.sh

+58
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
#!/bin/sh
2+
3+
4+
usage()
5+
{
6+
progname=$(basename $0)
7+
cat << __EOM__
8+
${progname} - Replace system paths encoded into shared libraries
9+
10+
Usage: ${progname} HW_LIB_DIR
11+
Arguments:
12+
HW_LIB_DIR The directory containing libraries to be processed.
13+
(Files will be modified IN PLACE, without backups.)
14+
__EOM__
15+
}
16+
17+
# Bail with usage information, if the directory path is unset
18+
[ -z $1 ] && usage && exit -1
19+
20+
# We take one argument, the path in which to look for target libraries
21+
if [ -d "$1" ]; then
22+
hw_lib_dir="$1"
23+
fi
24+
25+
# Count files processed
26+
((processed=0))
27+
28+
echo -n "Looking for libvdpau.so.1..."
29+
hwlib="${hw_lib_dir}/libvdpau.so.1"
30+
if [ -w "${hwlib}" ]; then
31+
echo -n " found, processing..."
32+
# 1: /usr/lib/x86_64-linux-gnu/vdpau => ./../lib/x86_64-linux-gnu/vdpau
33+
# 2: /usr/lib/vdpau => ./../lib/vdpau
34+
sed -i \
35+
-e 's,/usr\(/lib/x86_64-linux-gnu/vdpau\),\./\.\.\1,g' \
36+
-e 's,/usr\(/lib/vdpau\),\./\.\.\1,g' \
37+
"${hwlib}"
38+
echo " done."
39+
((processed+=1))
40+
else
41+
echo " NOT found, skipping."
42+
fi
43+
44+
echo -n "Looking for libva.so.1..."
45+
hwlib="${hw_lib_dir}/libva.so.1"
46+
if [ -w "${hwlib}" ]; then
47+
echo -n " found, processing..."
48+
# /usr/lib/x86_64-linux-gnu/dri => ./../lib/x86_64-linux-gnu/dri
49+
sed -i -e 's,/usr\(/lib/x86_64-linux-gnu/dri\),\./\.\.\1,g' "${hwlib}"
50+
echo " done."
51+
((processed+=1))
52+
else
53+
echo " NOT found, skipping."
54+
fi
55+
56+
# Final summary
57+
echo "Files processed: ${processed}" && exit 0
58+

0 commit comments

Comments
 (0)