Skip to content

Commit

Permalink
Merge pull request #104769 from symphorien/appimage-run-locale
Browse files Browse the repository at this point in the history
appimage-run: parse readelf's output in C locale
  • Loading branch information
Mic92 authored Nov 24, 2020
2 parents fbeebf8 + 4d51f95 commit 79086e5
Showing 1 changed file with 7 additions and 3 deletions.
10 changes: 7 additions & 3 deletions pkgs/build-support/appimage/appimage-exec.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
#!@shell@
# shellcheck shell=bash

if [ -n "$DEBUG" ] ; then
set -x
fi
Expand All @@ -13,8 +15,10 @@ unpack() {
local out="$2"

# https://github.com/AppImage/libappimage/blob/ca8d4b53bed5cbc0f3d0398e30806e0d3adeaaab/src/libappimage/utils/MagicBytesChecker.cpp#L45-L63
local appimageSignature=$(readelf -h "$src" | awk 'NR==2{print $10$11;}')
local appimageType=$(readelf -h "$src" | awk 'NR==2{print $12;}')
local appimageSignature;
appimageSignature="$(LC_ALL=C readelf -h "$src" | awk 'NR==2{print $10$11;}')"
local appimageType;
appimageType="$(LC_ALL=C readelf -h "$src" | awk 'NR==2{print $12;}')"

# check AppImage signature
if [ "$appimageSignature" != "4149" ]; then
Expand All @@ -35,7 +39,7 @@ unpack() {

# multiarch offset one-liner using same method as AppImage
# see https://gist.github.com/probonopd/a490ba3401b5ef7b881d5e603fa20c93
offset=$(readelf -h "$src" | awk 'NR==13{e_shoff=$5} NR==18{e_shentsize=$5} NR==19{e_shnum=$5} END{print e_shoff+e_shentsize*e_shnum}')
offset=$(LC_ALL=C readelf -h "$src" | awk 'NR==13{e_shoff=$5} NR==18{e_shentsize=$5} NR==19{e_shnum=$5} END{print e_shoff+e_shentsize*e_shnum}')
echo "Uncompress $(basename "$src") of type $appimageType @ offset $offset"
unsquashfs -q -d "$out" -o "$offset" "$src"
chmod go-w "$out"
Expand Down

0 comments on commit 79086e5

Please sign in to comment.