Skip to content

Commit b0ae8ca

Browse files
authored
Archimage 4.9
1 parent e8f845e commit b0ae8ca

File tree

1 file changed

+43
-57
lines changed

1 file changed

+43
-57
lines changed

ocenaudio-bin-junest.sh

Lines changed: 43 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,9 @@ _bypass_signature_check_level() {
6868

6969
_install_junest() {
7070
echo "-----------------------------------------------------------------------------"
71-
echo "◆ Clone JuNest from https://github.com/fsquillace/junest"
71+
echo "◆ Clone JuNest from https://github.com/ivan-hc/junest"
7272
echo "-----------------------------------------------------------------------------"
73-
git clone https://github.com/fsquillace/junest.git ./.local/share/junest
73+
git clone https://github.com/ivan-hc/junest.git ./.local/share/junest
7474
echo "-----------------------------------------------------------------------------"
7575
echo "◆ Downloading JuNest archive from https://github.com/ivan-hc/junest"
7676
echo "-----------------------------------------------------------------------------"
@@ -181,12 +181,8 @@ fi
181181
if [ ! -d "$APP".AppDir/.local ]; then
182182
mkdir -p "$APP".AppDir/.local
183183
rsync -av archlinux/.local/ "$APP".AppDir/.local/ | echo "◆ Rsync .local directory to the AppDir"
184-
# Made JuNest a portable app and remove "read-only file system" errors
185-
sed -i 's#${JUNEST_HOME}/usr/bin/junest_wrapper#${HOME}/.cache/junest_wrapper.old#g' "$APP".AppDir/.local/share/junest/lib/core/wrappers.sh
186-
sed -i 's/rm -f "${JUNEST_HOME}${bin_path}_wrappers/#rm -f "${JUNEST_HOME}${bin_path}_wrappers/g' "$APP".AppDir/.local/share/junest/lib/core/wrappers.sh
187-
sed -i 's/ln/#ln/g' "$APP".AppDir/.local/share/junest/lib/core/wrappers.sh
188-
sed -i 's/rm -f "$file"/test -f "$file"/g' "$APP".AppDir/.local/share/junest/lib/core/wrappers.sh
189-
sed -i 's#--bind "$HOME" "$HOME"#--bind-try /home /home --bind-try /run/user /run/user#g' "$APP".AppDir/.local/share/junest/lib/core/namespace.sh
184+
cat "$APP".AppDir/.local/share/junest/lib/core/wrappers.patch > "$APP".AppDir/.local/share/junest/lib/core/wrappers.sh
185+
cat "$APP".AppDir/.local/share/junest/lib/core/namespace.patch > "$APP".AppDir/.local/share/junest/lib/core/namespace.sh
190186
fi
191187

192188
echo "◆ Rsync .junest directories structure to the AppDir"
@@ -211,63 +207,56 @@ rm -f "$APP".AppDir/AppRun
211207
cat <<-'HEREDOC' >> "$APP".AppDir/AppRun
212208
#!/bin/sh
213209
HERE="$(dirname "$(readlink -f "$0")")"
214-
export UNION_PRELOAD="$HERE"
215210
export JUNEST_HOME="$HERE"/.junest
216211
212+
CACHEDIR="${XDG_CACHE_HOME:-$HOME/.cache}"
213+
mkdir -p "$CACHEDIR" || exit 1
214+
217215
if command -v unshare >/dev/null 2>&1 && ! unshare --user -p /bin/true >/dev/null 2>&1; then
218-
PROOT_ON=1
219-
export PATH="$HERE"/.local/share/junest/bin/:"$PATH"
220-
mkdir -p "$HOME"/.cache
216+
PROOT_ON=1 && export PATH="$HERE"/.local/share/junest/bin/:"$PATH"
221217
else
222218
export PATH="$PATH":"$HERE"/.local/share/junest/bin
223219
fi
224220
225221
[ -z "$NVIDIA_ON" ] && NVIDIA_ON=0
226-
if [ "$NVIDIA_ON" = 1 ]; then
227-
DATADIR="${XDG_DATA_HOME:-$HOME/.local/share}"
228-
CONTY_DIR="${DATADIR}/Conty/overlayfs_shared"
229-
[ -f /sys/module/nvidia/version ] && nvidia_driver_version="$(cat /sys/module/nvidia/version)"
230-
if [ -n "$nvidia_driver_version" ]; then
231-
mkdir -p "${CONTY_DIR}"/nvidia "${CONTY_DIR}"/up/usr/lib "${CONTY_DIR}"/up/usr/share
232-
nvidia_data_dirs="egl glvnd nvidia vulkan"
233-
for d in $nvidia_data_dirs; do [ ! -d "${CONTY_DIR}"/up/usr/share/"$d" ] && ln -s /usr/share/"$d" "${CONTY_DIR}"/up/usr/share/ 2>/dev/null; done
234-
[ ! -f "${CONTY_DIR}"/nvidia/current-nvidia-version ] && echo "${nvidia_driver_version}" > "${CONTY_DIR}"/nvidia/current-nvidia-version
235-
[ -f "${CONTY_DIR}"/nvidia/current-nvidia-version ] && nvidia_driver_conty=$(cat "${CONTY_DIR}"/nvidia/current-nvidia-version)
236-
if [ "${nvidia_driver_version}" != "${nvidia_driver_conty}" ]; then
237-
rm -f "${CONTY_DIR}"/up/usr/lib/*; echo "${nvidia_driver_version}" > "${CONTY_DIR}"/nvidia/current-nvidia-version
238-
fi
239-
/sbin/ldconfig -p > "${CONTY_DIR}"/nvidia/host_libs
240-
grep -i "nvidia\|libcuda" "${CONTY_DIR}"/nvidia/host_libs | cut -d ">" -f 2 > "${CONTY_DIR}"/nvidia/host_nvidia_libs
241-
libnv_paths=$(grep "libnv" "${CONTY_DIR}"/nvidia/host_libs | cut -d ">" -f 2)
242-
for f in $libnv_paths; do strings "${f}" | grep -qi -m 1 "nvidia" && echo "${f}" >> "${CONTY_DIR}"/nvidia/host_nvidia_libs; done
243-
nvidia_libs=$(cat "${CONTY_DIR}"/nvidia/host_nvidia_libs)
244-
for n in $nvidia_libs; do libname=$(echo "$n" | sed 's:.*/::') && [ ! -f "${CONTY_DIR}"/up/usr/lib/"$libname" ] && cp "$n" "${CONTY_DIR}"/up/usr/lib/; done
245-
libvdpau_nvidia="${CONTY_DIR}/up/usr/lib/libvdpau_nvidia.so"
246-
if ! test -f "${libvdpau_nvidia}*"; then cp "$(find /usr/lib -type f -name 'libvdpau_nvidia.so*' -print -quit 2>/dev/null | head -1)" "${CONTY_DIR}"/up/usr/lib/; fi
247-
[ -f "${libvdpau_nvidia}"."${nvidia_driver_version}" ] && [ ! -f "${libvdpau_nvidia}" ] && ln -s "${libvdpau_nvidia}"."${nvidia_driver_version}" "${libvdpau_nvidia}"
248-
[ -d "${CONTY_DIR}"/up/usr/lib ] && export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}":"${CONTY_DIR}"/up/usr/lib:"${LD_LIBRARY_PATH}"
249-
[ -d "${CONTY_DIR}"/up/usr/share ] && export XDG_DATA_DIRS="${XDG_DATA_DIRS}":"${CONTY_DIR}"/up/usr/share:"${XDG_DATA_DIRS}"
222+
if [ -f /sys/module/nvidia/version ] && [ "$NVIDIA_ON" = 1 ]; then
223+
nvidia_driver_version="$(cat /sys/module/nvidia/version)"
224+
JUNEST_DIRS="${CACHEDIR}/junest_shared/usr" JUNEST_LIBS="${JUNEST_DIRS}/lib" JUNEST_NVIDIA_DATA="${JUNEST_DIRS}/share/nvidia"
225+
mkdir -p "${JUNEST_LIBS}" "${JUNEST_NVIDIA_DATA}" || exit 1
226+
[ ! -f "${JUNEST_NVIDIA_DATA}"/current-nvidia-version ] && echo "${nvidia_driver_version}" > "${JUNEST_NVIDIA_DATA}"/current-nvidia-version
227+
[ -f "${JUNEST_NVIDIA_DATA}"/current-nvidia-version ] && nvidia_driver_conty=$(cat "${JUNEST_NVIDIA_DATA}"/current-nvidia-version)
228+
if [ "${nvidia_driver_version}" != "${nvidia_driver_conty}" ]; then
229+
rm -f "${JUNEST_LIBS}"/*; echo "${nvidia_driver_version}" > "${JUNEST_NVIDIA_DATA}"/current-nvidia-version
250230
fi
231+
HOST_LIBS=$(/sbin/ldconfig -p)
232+
libnvidia_libs=$(echo "$HOST_LIBS" | grep -i "nvidia\|libcuda" | cut -d ">" -f 2)
233+
libvdpau_nvidia=$(find /usr/lib -type f -name 'libvdpau_nvidia.so*' -print -quit 2>/dev/null | head -1)
234+
libnv_paths=$(echo "$HOST_LIBS" | grep "libnv" | cut -d ">" -f 2)
235+
for f in $libnv_paths; do strings "${f}" | grep -qi -m 1 "nvidia" && libnv_libs="$libnv_libs ${f}"; done
236+
host_nvidia_libs=$(echo "$libnv_libs $libnvidia_libs $libvdpau_nvidia" | sed 's/ /\n/g' | sort | grep .)
237+
for n in $host_nvidia_libs; do libname=$(echo "$n" | sed 's:.*/::') && [ ! -f "${JUNEST_LIBS}"/"$libname" ] && cp "$n" "${JUNEST_LIBS}"/; done
238+
libvdpau="${JUNEST_LIBS}/libvdpau_nvidia.so"
239+
[ -f "${libvdpau}"."${nvidia_driver_version}" ] && [ ! -f "${libvdpau}" ] && ln -s "${libvdpau}"."${nvidia_driver_version}" "${libvdpau}"
240+
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}":"${JUNEST_LIBS}":"${LD_LIBRARY_PATH}"
251241
fi
252242
253-
PROOT_BINDINGS=""
254-
BWRAP_BINDINGS=""
255-
256243
bind_files="/etc/resolv.conf /etc/hosts /etc/nsswitch.conf /etc/passwd /etc/group /etc/machine-id /etc/asound.conf /etc/localtime "
257-
for f in $bind_files; do [ -f "$f" ] && PROOT_BINDINGS=" $PROOT_BINDINGS --bind=$f" && BWRAP_BINDINGS=" $BWRAP_BINDINGS --ro-bind-try $f $f"; done
258-
259-
bind_dirs=" /media /mnt /opt /run/media /usr/lib/locale /usr/share/fonts /usr/share/themes /var"
260-
for d in $bind_dirs; do [ -d "$d" ] && PROOT_BINDINGS=" $PROOT_BINDINGS --bind=$d" && BWRAP_BINDINGS=" $BWRAP_BINDINGS --bind-try $d $d"; done
261-
262-
PROOT_BINDS=" --bind=/dev --bind=/sys --bind=/tmp --bind=/proc $PROOT_BINDINGS --bind=/home --bind=/home/$USER "
263-
BWRAP_BINDS=" --dev-bind /dev /dev --ro-bind /sys /sys --bind-try /tmp /tmp --proc /proc $BWRAP_BINDINGS --cap-add CAP_SYS_ADMIN "
244+
bind_nvidia_data_dirs="/usr/share/egl /usr/share/glvnd /usr/share/nvidia /usr/share/vulkan"
245+
bind_dirs=" /media /mnt /opt /run/media /usr/lib/locale /usr/share/fonts /usr/share/themes /var $bind_nvidia_data_dirs"
246+
if [ "$PROOT_ON" = 1 ]; then
247+
for f in $bind_files; do [ -f "$f" ] && BINDINGS=" $BINDINGS --bind=$f"; done
248+
for d in $bind_dirs; do [ -d "$d" ] && BINDINGS=" $BINDINGS --bind=$d"; done
249+
junest_options="proot -n -b"
250+
junest_bindings=" --bind=/dev --bind=/sys --bind=/tmp --bind=/proc $BINDINGS --bind=/home --bind=/home/$USER "
251+
else
252+
for f in $bind_files; do [ -f "$f" ] && BINDINGS=" $BINDINGS --ro-bind-try $f $f"; done
253+
for d in $bind_dirs; do [ -d "$d" ] && BINDINGS=" $BINDINGS --bind-try $d $d"; done
254+
junest_options="-n -b"
255+
junest_bindings=" --dev-bind /dev /dev --ro-bind /sys /sys --bind-try /tmp /tmp --proc /proc $BINDINGS --cap-add CAP_SYS_ADMIN "
256+
fi
264257
265258
_JUNEST_CMD() {
266-
if [ "$PROOT_ON" = 1 ]; then
267-
"$HERE"/.local/share/junest/bin/junest proot -n -b "$PROOT_BINDS" "$@"
268-
else
269-
"$HERE"/.local/share/junest/bin/junest -n -b "$BWRAP_BINDS" "$@"
270-
fi
259+
"$HERE"/.local/share/junest/bin/junest $junest_options "$junest_bindings" "$@"
271260
}
272261
273262
EXEC=$(grep -e '^Exec=.*' "${HERE}"/*.desktop | head -n 1 | cut -d "=" -f 2- | sed -e 's|%.||g')
@@ -538,11 +527,8 @@ _remove_more_bloatwares() {
538527

539528
_enable_mountpoints_for_the_inbuilt_bubblewrap() {
540529
mkdir -p ./"$APP".AppDir/.junest/home
541-
mkdir -p ./"$APP".AppDir/.junest/media
542-
mkdir -p ./"$APP".AppDir/.junest/usr/lib/locale
543-
mkdir -p ./"$APP".AppDir/.junest/usr/share/fonts
544-
mkdir -p ./"$APP".AppDir/.junest/usr/share/themes
545-
mkdir -p ./"$APP".AppDir/.junest/run/media
530+
bind_dirs=$(grep "_dirs=" ./"$APP".AppDir/AppRun | tr '" ' '\n' | grep "/" | sort | xargs)
531+
for d in $bind_dirs; do mkdir -p ./"$APP".AppDir/.junest"$d"; done
546532
mkdir -p ./"$APP".AppDir/.junest/run/user
547533
rm -f ./"$APP".AppDir/.junest/etc/localtime && touch ./"$APP".AppDir/.junest/etc/localtime
548534
[ ! -f ./"$APP".AppDir/.junest/etc/asound.conf ] && touch ./"$APP".AppDir/.junest/etc/asound.conf
@@ -573,4 +559,4 @@ UPINFO="gh-releases-zsync|$GITHUB_REPOSITORY_OWNER|$REPO|$TAG|*x86_64.AppImage.z
573559

574560
ARCH=x86_64 ./appimagetool --comp zstd --mksquashfs-opt -Xcompression-level --mksquashfs-opt 20 \
575561
-u "$UPINFO" \
576-
./"$APP".AppDir "$APPNAME"_"$VERSION"-archimage4.3-x86_64.AppImage
562+
./"$APP".AppDir "$APPNAME"_"$VERSION"-archimage4.9-x86_64.AppImage

0 commit comments

Comments
 (0)