Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
2e9e80d
Create appimage.sh
Twig6943 Sep 27, 2025
91ed955
Create appimage.yml
Twig6943 Sep 27, 2025
b453305
Update appimage.yml
Twig6943 Sep 27, 2025
54790bd
Update appimage.yml
Twig6943 Sep 27, 2025
3944cbf
Update appimage.yml
Twig6943 Sep 27, 2025
7a81539
Update appimage.yml
Twig6943 Sep 27, 2025
7483761
Add files via upload
Twig6943 Sep 27, 2025
cbcc9b8
Update appimage.yml
Twig6943 Sep 27, 2025
5509c6e
Update appimage.yml
Twig6943 Sep 27, 2025
5d9dfea
Update appimage.sh
Twig6943 Sep 27, 2025
3a8b082
Update appimage.yml
Twig6943 Sep 27, 2025
a97e6c8
Update appimage.yml
Twig6943 Sep 27, 2025
8bccbe8
Update appimage.yml
Twig6943 Sep 27, 2025
ce29dd6
Update appimage.yml
Twig6943 Sep 27, 2025
0da2753
Update appimage.yml
Twig6943 Sep 27, 2025
e8f055c
Update appimage.yml
Twig6943 Sep 27, 2025
7c62f57
Update appimage.yml
Twig6943 Sep 27, 2025
d1bf445
Create am-test.sh
Twig6943 Sep 27, 2025
a235132
Update appimage.yml
Twig6943 Sep 27, 2025
8c93c7c
Update am-test.sh
Twig6943 Sep 27, 2025
f0919d6
Update am-test.sh
Twig6943 Sep 27, 2025
5810934
Update am-test.sh
Twig6943 Sep 27, 2025
7ce3fd0
Create crappy-test.sh
Twig6943 Sep 27, 2025
12045ea
Update crappy-test.sh
Twig6943 Sep 27, 2025
279790f
Create crappy-test.yml
Twig6943 Sep 27, 2025
3aa3af7
Update crappy-test.yml
Twig6943 Sep 27, 2025
9fbc6e6
Update crappy-test.sh
Twig6943 Sep 27, 2025
ff6d26a
Update crappy-test.yml
Twig6943 Sep 27, 2025
8007291
Update crappy-test.yml
Twig6943 Sep 27, 2025
81d0b20
Update crappy-test.sh
Twig6943 Sep 27, 2025
0913b32
Update crappy-test.sh
Twig6943 Sep 27, 2025
f9898c7
Update crappy-test.sh
Twig6943 Sep 27, 2025
7a56303
Delete pkg/appimage.sh
Twig6943 Sep 27, 2025
777e84f
Delete pkg/woeusb_ng-0.2.12-py3-none-any.whl
Twig6943 Sep 27, 2025
6bc956e
Update crappy-test.sh
Twig6943 Sep 27, 2025
ce91e4e
Update crappy-test.sh
Twig6943 Sep 27, 2025
c80822c
Update WoeUSB-ng.desktop
Twig6943 Sep 27, 2025
b6b9f17
Add files via upload
Twig6943 Sep 27, 2025
7f871b5
Rename woeusb-logo.png to miscellanoues/woeusb-logo.png
Twig6943 Sep 27, 2025
dcddecd
Rename woeusb-logo.png to woeusb-logo.png
Twig6943 Sep 27, 2025
9ab8547
Update and rename am-test.sh to appimage.sh
Twig6943 Sep 27, 2025
fe53c9d
Update and rename crappy-test.sh to appimage-sharun.sh
Twig6943 Sep 27, 2025
41fbeb6
Update appimage.yml
Twig6943 Sep 27, 2025
dd417d9
Update appimage.yml
Twig6943 Sep 27, 2025
00a06bd
Update appimage.yml
Twig6943 Sep 27, 2025
3ec9885
Update appimage.sh
Twig6943 Sep 27, 2025
ffcd3a1
Update appimage.yml
Twig6943 Sep 27, 2025
74975a2
Update crappy-test.yml
Twig6943 Sep 27, 2025
ad52221
Update appimage.yml
Twig6943 Sep 27, 2025
56b98d1
Update appimage.yml
Twig6943 Sep 27, 2025
b101dc1
Update appimage.yml
Twig6943 Sep 27, 2025
bc350f0
Update appimage.yml
Twig6943 Sep 27, 2025
0cbb993
Update crappy-test.yml
Twig6943 Sep 27, 2025
fe3e60d
Rename crappy-test.yml to appimage-sharun.yml
Twig6943 Sep 27, 2025
c27aaf9
Update appimage.yml
Twig6943 Sep 27, 2025
d1006ff
Update appimage-sharun.yml
Twig6943 Sep 27, 2025
4ccf379
Create sigma.sh
Twig6943 Sep 27, 2025
ae08f98
Create sigma.yml
Twig6943 Sep 27, 2025
2cd5ce9
Update appimage.sh
Twig6943 Sep 27, 2025
64395ef
Delete pkg/sigma.sh
Twig6943 Sep 27, 2025
e38aadf
Delete .github/workflows/sigma.yml
Twig6943 Sep 27, 2025
976b8f5
Update appimage.sh
Twig6943 Sep 27, 2025
f8bc01e
Update appimage.sh
Twig6943 Sep 27, 2025
1f32c00
Update appimage.yml
Twig6943 Sep 27, 2025
d2acfcf
Update appimage.sh
Twig6943 Sep 27, 2025
0a3ad51
Update appimage.yml
Twig6943 Sep 27, 2025
1c427bd
Update appimage.yml
Twig6943 Sep 27, 2025
657be27
Update appimage.yml
Twig6943 Sep 27, 2025
f8852d5
Update appimage.yml
Twig6943 Sep 28, 2025
dc6718c
Update appimage.yml
Twig6943 Sep 28, 2025
823bb40
Update appimage.yml
Twig6943 Sep 28, 2025
29ddcae
Update appimage.yml
Twig6943 Sep 28, 2025
1b4da53
Update appimage.yml
Twig6943 Sep 28, 2025
fcf5812
Update workaround.py
Twig6943 Sep 28, 2025
7944813
Update appimage.sh
Twig6943 Sep 28, 2025
46bb9d8
Update appimage.sh
Twig6943 Sep 28, 2025
470697e
Update appimage-sharun.sh
Twig6943 Sep 28, 2025
73ef424
Update appimage-sharun.yml
Twig6943 Sep 28, 2025
3d8fae0
Update appimage-sharun.sh
Twig6943 Sep 28, 2025
2ac0142
Update appimage-sharun.sh
Twig6943 Sep 28, 2025
1e7beb3
Update appimage-sharun.sh
Twig6943 Sep 28, 2025
69d0888
Update appimage-sharun.sh
Twig6943 Sep 28, 2025
3a49058
Update appimage-sharun.sh
Twig6943 Sep 28, 2025
6b7de27
Update appimage-sharun.sh
Twig6943 Sep 28, 2025
26052e6
Update appimage-sharun.sh
Twig6943 Sep 28, 2025
4fb4a13
Update appimage-sharun.sh
Twig6943 Sep 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 57 additions & 0 deletions .github/workflows/appimage-sharun.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: Build WoeUSB-ng AppImage (EXP)

on:
workflow_dispatch:

jobs:
build-appimage:
# run the job inside an Arch Linux container
runs-on: ubuntu-latest
container:
image: archlinux:latest

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Refresh pacman DB and install build dependencies
run: |
pacman -Syu --noconfirm
pacman -S --noconfirm \
base-devel \
python \
python-build \
python-pip \
python-virtualenv \
python-setuptools \
python-wheel \
wget \
xz \
patchelf \
gtk3 \
libjpeg-turbo \
libtiff \
libpng \
expat \
curl \
libx11 \
libxext \
libxinerama \
libxcursor \
libxrandr \
libxi \
fuse2 \
git
ln -sf /usr/bin/python3 /usr/bin/python

- name: Make AppImage script executable
run: chmod +x pkg/appimage-sharun.sh

- name: Build AppImage
run: pkg/appimage-sharun.sh

- name: Upload AppImage
uses: actions/upload-artifact@v4
with:
name: woeusb-ng-appimage
path: WoeUSB-ng-build/**/*.AppImage
57 changes: 57 additions & 0 deletions .github/workflows/appimage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: Build WoeUSB-ng AppImage (Arch)

on:
workflow_dispatch:

jobs:
build-appimage:
# run the job inside an Arch Linux container
runs-on: ubuntu-latest
container:
image: archlinux:latest

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Refresh pacman DB and install build dependencies
run: |
pacman -Syu --noconfirm
pacman -S --noconfirm \
base-devel \
python \
python-build \
python-pip \
python-virtualenv \
python-setuptools \
python-wheel \
wget \
xz \
patchelf \
gtk3 \
libjpeg-turbo \
libtiff \
libpng \
expat \
curl \
libx11 \
libxext \
libxinerama \
libxcursor \
libxrandr \
libxi \
fuse2 \
git
ln -sf /usr/bin/python3 /usr/bin/python

- name: Make AppImage script executable
run: chmod +x pkg/appimage.sh

- name: Build AppImage
run: pkg/appimage.sh

- name: Upload AppImage
uses: actions/upload-artifact@v4
with:
name: woeusb-ng-appimage
path: WoeUSB-ng-build/**/*.AppImage
2 changes: 1 addition & 1 deletion WoeUSB/workaround.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ def support_windows_7_uefi_boot(source_fs_mountpoint, target_fs_mountpoint):
:param target_fs_mountpoint:
:return:
"""
grep = subprocess.run(["grep", "--extended-regexp", "--quiet", "^MinServer=7[0-9]{3}\.[0-9]",
grep = subprocess.run(["grep", "--extended-regexp", "--quiet", r"^MinServer=7[0-9]{3}\.[0-9]",
source_fs_mountpoint + "/sources/cversion.ini"],
stdout=subprocess.PIPE).stdout.decode("utf-8").strip()
if grep == "" and not os.path.isfile(source_fs_mountpoint + "/bootmgr.efi"):
Expand Down
4 changes: 3 additions & 1 deletion miscellaneous/WoeUSB-ng.desktop
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
#!/usr/bin/env xdg-open
[Desktop Entry]
Name=WoeUSB-ng
Comment=Create your own USB stick windows installer from an ISO image or a real DVD.
Exec=woeusbgui
Icon=/usr/share/icons/WoeUSB-ng/icon.ico
Icon=woeusb-logo
Terminal=false
Type=Application
Categories=Utility;
StartupNotify=true
Binary file added miscellaneous/woeusb-logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
100 changes: 100 additions & 0 deletions pkg/appimage-sharun.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
#!/bin/bash
set -e

# --- Paths ---
ROOT=$(pwd)
BUILD="$ROOT/WoeUSB-ng-build"
APPDIR="$BUILD/AppDir"
SRC="$BUILD/WoeUSB-ng"

echo "Root: $ROOT"
echo "Build dir: $BUILD"
echo "AppDir: $APPDIR"
echo "Source dir: $SRC"

# --- Clean previous build ---
rm -rf "$BUILD"
mkdir -p "$APPDIR/usr/bin"
mkdir -p "$APPDIR/usr/lib"

# --- Step 1: Clone repository and apply patch ---
git clone https://github.com/Twig6943/WoeUSB-ng.git "$SRC"
cd "$SRC"
wget -O "pr79.patch" "https://gitlab.com/chaotic-aur/pkgbuilds/-/raw/main/woeusb-ng/pr79.patch"
patch --forward --strip=1 < pr79.patch || true

# --- Step 2: Detect Python version ---
PYVER=$(python3 -c "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}')")
echo "Using Python version $PYVER"

# --- Step 2b: Create virtual environment for dependencies ---
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip

# Install all Python dependencies
pip install \
wxPython==4.2.3 \
installer \
setuptools \
wheel \
build \
termcolor

# --- Step 3: Install all Python packages into AppDir ---
mkdir -p "$APPDIR/usr/lib/python${PYVER}/site-packages"
VENV_LIB=".venv/lib/python${PYVER}/site-packages"
cp -r $VENV_LIB/* "$APPDIR/usr/lib/python${PYVER}/site-packages/"

# --- Step 4: Copy WoeUSB source code ---
if [ ! -d "$SRC/src/WoeUSB" ]; then
echo "Error: WoeUSB source folder not found at $SRC/src/WoeUSB"
exit 1
fi
cp -r "$SRC/src/WoeUSB" "$APPDIR/usr/lib/python${PYVER}/site-packages/"
touch "$APPDIR/usr/lib/python${PYVER}/site-packages/WoeUSB/__init__.py"

# --- Step 5: Create woeusbgui launcher ---
mkdir -p "$APPDIR/usr/bin"
cat > "$APPDIR/usr/bin/woeusbgui" << 'EOF'
#!/bin/bash
PYVER=$(python3 -c "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}')")
export PYTHONPATH="$(dirname "$(dirname "$(readlink -f "${0}")")")/lib/python${PYVER}/site-packages:$PYTHONPATH"
exec python3 -m WoeUSB.gui "$@"
EOF
chmod +x "$APPDIR/usr/bin/woeusbgui"

# --- Step 6: Copy desktop, logo, polkit ---
mkdir -p "$APPDIR/usr/share/applications"
cp "$SRC/miscellaneous/WoeUSB-ng.desktop" "$APPDIR/"
cp "$SRC/miscellaneous/WoeUSB-ng.desktop" "$APPDIR/usr/share/applications/"
chmod 644 "$APPDIR/WoeUSB-ng.desktop" "$APPDIR/usr/share/applications/WoeUSB-ng.desktop"

cp "$SRC/miscellaneous/woeusb-logo.png" "$APPDIR/"
mkdir -p "$APPDIR/usr/share/polkit-1/actions"
cp "$SRC/miscellaneous/com.github.woeusb.woeusb-ng.policy" "$APPDIR/usr/share/polkit-1/actions/"

# --- Step 7: Create AppRun ---
cat > "$APPDIR/AppRun" << 'EOF'
#!/bin/bash
HERE="$(dirname "$(readlink -f "${0}")")"
PYVER=$(python3 -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")')
export PYTHONPATH="$HERE/usr/lib/python${PYVER}/site-packages:$PYTHONPATH"
exec python3 "$HERE/usr/bin/woeusbgui" "$@"
EOF
chmod +x "$APPDIR/AppRun"

# --- Step 8: Debug: list AppDir contents ---
echo "Contents of AppDir before building:"
ls -R "$APPDIR"

# --- Step 9: Download AppImageTool ---
cd "$BUILD"
wget -O "appimagetool-x86_64.AppImage" \
"https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage"
chmod +x "appimagetool-x86_64.AppImage"

# --- Step 10: Build AppImage in non-FUSE mode ---
./appimagetool-x86_64.AppImage "$APPDIR" "WoeUSB-ng-x86_64.AppImage" --no-appstream

echo "✅ AppImage built successfully: $BUILD/WoeUSB-ng-x86_64.AppImage"
81 changes: 81 additions & 0 deletions pkg/appimage.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
#!/bin/bash
set -e

# Remove any previous build
rm -rf "./WoeUSB-ng-build"
mkdir -p "./WoeUSB-ng-build/AppDir/usr"

# Step 1: Clone repository and apply patch
cd "./WoeUSB-ng-build"
git clone https://github.com/Twig6943/WoeUSB-ng.git
cd "WoeUSB-ng"
wget -O "pr79.patch" "https://gitlab.com/chaotic-aur/pkgbuilds/-/raw/main/woeusb-ng/pr79.patch"
patch --forward --strip=1 < pr79.patch || true

# Step 2: Create a virtual environment for build tools
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip

# Install installer before using it
pip install installer

# Step 4: Install wxPython manually into AppDir/usr
wget -O "wxpython-4.2.3-cp312-cp312-linux_x86_64.whl" \
"https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-24.04/wxpython-4.2.3-cp312-cp312-linux_x86_64.whl"
python3 -m installer --prefix="../AppDir/usr" "wxpython-4.2.3-cp312-cp312-linux_x86_64.whl"

# Install remaining Python build tools
pip install setuptools wheel build termcolor

#wxpython

# Step 3: Build wheel and install into AppDir/usr
python3 -m build --wheel --no-isolation
python3 -m installer --prefix="../AppDir/usr" dist/*.whl

# Step 3b: Copy data and locale directories manually
mkdir -p ../AppDir/usr/lib/python3.12/site-packages/WoeUSB
cp -r src/WoeUSB/data ../AppDir/usr/lib/python3.12/site-packages/WoeUSB/
cp -r src/WoeUSB/locale ../AppDir/usr/lib/python3.12/site-packages/WoeUSB/

# Done with build tools, deactivate venv
deactivate

# Step 5: Copy desktop file (ensure valid location for AppImage)
if [ ! -f "miscellaneous/WoeUSB-ng.desktop" ]; then
echo "Error: Desktop file missing at miscellaneous/WoeUSB-ng.desktop"
exit 1
fi
mkdir -p "../AppDir/usr/share/applications"
cp "miscellaneous/WoeUSB-ng.desktop" "../AppDir/"
cp "miscellaneous/WoeUSB-ng.desktop" "../AppDir/usr/share/applications/"
chmod 644 "../AppDir/WoeUSB-ng.desktop"
chmod 644 "../AppDir/usr/share/applications/WoeUSB-ng.desktop"

# Step 6: Copy logo
if [ ! -f "miscellaneous/woeusb-logo.png" ]; then
echo "Error: logo missing at miscellaneous/woeusb-logo.png"
exit 1
fi
cp "miscellaneous/woeusb-logo.png" "../AppDir/"

# Step 7: Copy polkit policy
mkdir -p "../AppDir/usr/share/polkit-1/actions"
cp "miscellaneous/com.github.woeusb.woeusb-ng.policy" "../AppDir/usr/share/polkit-1/actions/"

# Step 8: Create AppRun launcher
cat > "../AppDir/AppRun" << 'EOF'
#!/bin/bash
HERE="$(dirname "$(readlink -f "${0}")")"
export PYTHONPATH="$HERE/usr/lib/python3.12/site-packages:$PYTHONPATH"
exec python3 "$HERE/usr/bin/woeusbgui" "$@"
EOF
chmod +x "../AppDir/AppRun"

# Step 9: Download AppImageTool and build AppImage
cd ..
wget -O "appimagetool-x86_64.AppImage" \
"https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage"
chmod +x "appimagetool-x86_64.AppImage"
APPIMAGE_EXTRACT_AND_RUN=1 ./appimagetool-x86_64.AppImage "AppDir" "WoeUSB-ng-x86_64.AppImage"