-
Notifications
You must be signed in to change notification settings - Fork 0
/
avidemux
158 lines (142 loc) · 5.91 KB
/
avidemux
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
#!/usr/bin/env bash
APP=avidemux
# CREATE A TEMPORARY DIRECTORY
mkdir -p tmp
cd tmp
# DOWNLOADING THE DEPENDENCIES
if test -f ./appimagetool; then
echo " appimagetool already exists" 1> /dev/null
else
echo " Downloading appimagetool..."
wget -q https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage -O appimagetool
fi
if test -f ./pkg2appimage; then
echo " pkg2appimage already exists" 1> /dev/null
else
echo " Downloading pkg2appimage..."
wget -q https://raw.githubusercontent.com/ivan-hc/AM-application-manager/main/tools/pkg2appimage
fi
chmod a+x ./appimagetool ./pkg2appimage
rm -f ./recipe.yml
# CREATING THE HEAD OF THE RECIPE
echo "app: $APP
binpatch: true
ingredients:
dist: stable
sources:
- deb https://www.deb-multimedia.org testing main non-free
- deb http://deb.debian.org/debian/ stable main contrib non-free
packages:
- $APP" >> recipe.yml
# DOWNLOAD ALL THE NEEDED PACKAGES AND COMPILE THE APPDIR
./pkg2appimage ./recipe.yml
# LIBUNIONPRELOAD
#wget https://github.com/project-portable/libunionpreload/releases/download/amd64/libunionpreload.so
#chmod a+x libunionpreload.so
#mv ./libunionpreload.so ./$APP/$APP.AppDir/
# COMPILE SCHEMAS
glib-compile-schemas ./$APP/$APP.AppDir/usr/share/glib-2.0/schemas/ || echo "No ./usr/share/glib-2.0/schemas/"
# CUSTOMIZE THE APPRUN
rm -R -f ./$APP/$APP.AppDir/AppRun
cat >> ./$APP/$APP.AppDir/AppRun << 'EOF'
#!/bin/bash
OPENGL_NAME="libGL.so.1"
PULSE_NAME="libpulse-simple.so.0"
LIBVA_NAME="libva.so.2"
LIBVDPAU_NAME="libvdpau.so.1"
if ! (/sbin/ldconfig -p | grep -q ${OPENGL_NAME})
then
echo "Legacy OpenGL library (${OPENGL_NAME}) not found on host, aborting."
exit 1
fi
if ! (/sbin/ldconfig -p | grep -q ${PULSE_NAME})
then
echo "PulseAudio Simple API library (${PULSE_NAME}) not found on host, aborting."
exit 1
fi
# make relative-path arguments absolute before changing directory
args=("--portable");
paramprefix="--";
param="--load";#enable filename as first/single argument, with --load as supposed default action
for arg in "$@";
do # add argument as is, or realpath of argument, depending on paramprefix
[ "${arg::2}" = "$paramprefix" ] && args+=("$arg") && param="$arg" || {
case "$param" in
--append|--load|--run|--save*)
args+=("$(realpath -- "$arg")") ;;
*)
args+=("$arg") ;;
esac
}
[ "$arg" == "$paramprefix" ] && paramprefix="123" && param="--load"; # new paramprefix will never match length-2 string again
done;
HERE="$(dirname "$(readlink -f "${0}")")"
cd "${HERE}/usr/"
#export QT_STYLE_OVERRIDE="fusion"
FT_PROBE_EXE_NAME="freetype_probe"
if [ -z "${ADM_APPIMAGE_USE_SYSTEM_FONT_LIBS}" ] && [ -e "${HERE}/${FT_PROBE_EXE_NAME}" ]; then
"${HERE}/${FT_PROBE_EXE_NAME}"
ADM_APPIMAGE_USE_SYSTEM_FONT_LIBS=$?
fi
if [ "x${ADM_APPIMAGE_USE_SYSTEM_FONT_LIBS}" != "x1" ]
then
echo "Using bundled freetype, fontconfig and fribidi." \
"Export ADM_APPIMAGE_USE_SYSTEM_FONT_LIBS=1 to use the system ones instead."
echo "This is recommended for systems with fontconfig >= 2.13"
LD_LIBRARY_PATH="${HERE}/opt/lib:${LD_LIBRARY_PATH}"
else
echo "Using system freetype, fontconfig and fribidi."
fi
if (/sbin/ldconfig -p | grep -q ${LIBVA_NAME})
then
echo "Using system libva."
else
echo "${LIBVA_NAME} not found on host, using bundled version."
LD_LIBRARY_PATH="${HERE}/usr/lib/va:${LD_LIBRARY_PATH}"
fi
if (/sbin/ldconfig -p | grep -q ${LIBVDPAU_NAME})
then
echo "Using system libvdpau."
else
echo "${LIBVDPAU_NAME} not found on host, using bundled version."
LD_LIBRARY_PATH="${HERE}/usr/lib/vdpau:${LD_LIBRARY_PATH}"
fi
export LD_LIBRARY_PATH="${HERE}/usr/lib/:${HERE}/usr/lib/qt5:${LD_LIBRARY_PATH}"
export PATH="${HERE}/usr/bin:${PATH}"
# choose binary depending on substrings "_jobs" or "_cli" in the name appImage is called by
if [[ "${ARGV0##*/}" =~ _jobs ]]
then "${HERE}/usr/bin/avidemux3_jobs_qt5" "${args[@]}"
elif [[ "${ARGV0##*/}" =~ _cli ]]
then "${HERE}/usr/bin/avidemux3_cli" "${args[@]}"
else "${HERE}/usr/bin/avidemux3_qt5" "${args[@]}"
fi
cd -
EOF
# MADE THE APPRUN EXECUTABLE
chmod a+x ./$APP/$APP.AppDir/AppRun
# END OF THE PART RELATED TO THE APPRUN, NOW WE WELL SEE IF EVERYTHING WORKS ----------------------------------------------------------------------
# IMPORT THE LAUNCHER AND THE ICON TO THE APPDIR IF THEY NOT EXIST
if test -f ./$APP/$APP.AppDir/*.desktop; then
echo "The desktop file exists"
else
echo "Trying to get the .desktop file"
cp ./$APP/$APP.AppDir/usr/share/applications/*$(ls . | grep -i $APP | cut -c -4)*desktop ./$APP/$APP.AppDir/ 2>/dev/null
fi
ICONNAME=$(cat ./$APP/$APP.AppDir/*desktop | grep "Icon=" | head -1 | cut -c 6-)
cp ./$APP/$APP.AppDir/usr/share/icons/hicolor/22x22/apps/*$ICONNAME* ./$APP/$APP.AppDir/ 2>/dev/null
cp ./$APP/$APP.AppDir/usr/share/icons/hicolor/24x24/apps/*$ICONNAME* ./$APP/$APP.AppDir/ 2>/dev/null
cp ./$APP/$APP.AppDir/usr/share/icons/hicolor/32x32/apps/*$ICONNAME* ./$APP/$APP.AppDir/ 2>/dev/null
cp ./$APP/$APP.AppDir/usr/share/icons/hicolor/48x48/apps/*$ICONNAME* ./$APP/$APP.AppDir/ 2>/dev/null
cp ./$APP/$APP.AppDir/usr/share/icons/hicolor/64x64/apps/*$ICONNAME* ./$APP/$APP.AppDir/ 2>/dev/null
cp ./$APP/$APP.AppDir/usr/share/icons/hicolor/128x128/apps/*$ICONNAME* ./$APP/$APP.AppDir/ 2>/dev/null
cp ./$APP/$APP.AppDir/usr/share/icons/hicolor/256x256/apps/*$ICONNAME* ./$APP/$APP.AppDir/ 2>/dev/null
cp ./$APP/$APP.AppDir/usr/share/icons/hicolor/512x512/apps/*$ICONNAME* ./$APP/$APP.AppDir/ 2>/dev/null
cp ./$APP/$APP.AppDir/usr/share/icons/hicolor/scalable/apps/*$ICONNAME* ./$APP/$APP.AppDir/ 2>/dev/null
cp ./$APP/$APP.AppDir/usr/share/applications/*$ICONNAME* ./$APP/$APP.AppDir/ 2>/dev/null
# UNCOMMENT THE FOLLOWING LINE TO REMOVE FILES IN "METAINFO" IN CASE OF ERRORS WITH "APPSTREAM"
rm -R -f ./$APP/$APP.AppDir/usr/share/metainfo/*
# EXPORT THE APP TO AN APPIMAGE
ARCH=x86_64 ./appimagetool --comp zstd --mksquashfs-opt -Xcompression-level --mksquashfs-opt 20 ./$APP/$APP.AppDir
cd ..
mv ./tmp/*.AppImage .
chmod a+x *.AppImage