Skip to content

Commit 8ca2320

Browse files
committed
add OpenSCAD AppImage
0 parents  commit 8ca2320

6 files changed

Lines changed: 169 additions & 0 deletions

File tree

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
---
2+
name: "Bug report - AppImage (please attach debug log)"
3+
about: "Report crashes or other bugs. Run the AppImage with APPIMAGE_DEBUG=1 and attach the generated log file."
4+
---
5+
6+
Please fill out the sections below.
7+
8+
## Collect the AppImage debug log (required)
9+
1. Run the AppImage with debug enabled:
10+
```sh
11+
APPIMAGE_DEBUG=1 ./MyApp.AppImage
12+
```
13+
- The AppImage will create a debug log automatically and will print the path to that log file in the terminal output.
14+
- Attach that file to this issue.
15+
16+
## Make sure to ping the maintainer of the repository when making the bug report
17+
- Often times we miss emails because not all repositories are watched automatically after being made, so please ping the maintainer of the repository when making the issue. Simply add @name-of-maintainer.
18+
19+
## Checklist
20+
- [ ] I ran the AppImage with `APPIMAGE_DEBUG=1` environment variable set.
21+
- [ ] I attached the debug log produced by the AppImage.
22+
- [ ] I pinged the maintainer of the repository.

.github/workflows/appimage.yml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: Anylinux-AppImage
2+
concurrency:
3+
group: build-${{ github.ref }}
4+
cancel-in-progress: true
5+
on:
6+
schedule:
7+
- cron: "0 7 1/21 * *" # We default to rebuilding every 21 days, change this to your liking
8+
workflow_dispatch: {}
9+
10+
jobs:
11+
build:
12+
name: "${{ matrix.name }} (${{ matrix.arch }})"
13+
runs-on: ${{ matrix.runs-on }}
14+
strategy:
15+
matrix:
16+
include:
17+
- runs-on: ubuntu-latest
18+
name: Build AppImage
19+
arch: x86_64
20+
# comment out these 3 lines if aarch64 is not wanted
21+
- runs-on: ubuntu-24.04-arm
22+
name: Build AppImage
23+
arch: aarch64
24+
container: ghcr.io/pkgforge-dev/archlinux:latest
25+
steps:
26+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
27+
- name: Preparing Container
28+
uses: pkgforge-dev/anylinux-setup-action@0964f2258d6c93d1391359978dde081fd8b3c6af # v2
29+
- name: Install Dependencies
30+
run: /bin/sh ./get-dependencies.sh
31+
- name: Make AppImage
32+
run: /bin/sh ./make-appimage.sh
33+
- name: Upload artifact
34+
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
35+
with:
36+
name: AppImage-${{ matrix.arch }}
37+
path: dist
38+
39+
release:
40+
if: ${{ github.ref_name == 'main' }}
41+
needs: [build]
42+
permissions: write-all
43+
runs-on: ubuntu-latest
44+
steps:
45+
- uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
46+
with:
47+
pattern: AppImage-*
48+
merge-multiple: true
49+
- name: Release AppImage
50+
uses: pkgforge-dev/make-stable-appimage-release@4ed3d48ccb065352b6e6c0db6d39885b201c54a0 #v1.1

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025 Package Forge (Dev)
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<div align="center">
2+
3+
# OpenSCAD-AppImage 🐧
4+
5+
[![GitHub Downloads](https://img.shields.io/github/downloads/pkgforge-dev/OpenSCAD-AppImage/total?logo=github&label=GitHub%20Downloads)](https://github.com/pkgforge-dev/OpenSCAD-AppImage/releases/latest)
6+
[![CI Build Status](https://github.com/pkgforge-dev/OpenSCAD-AppImage/actions/workflows/appimage.yml/badge.svg)](https://github.com/pkgforge-dev/OpenSCAD-AppImage/actions/workflows/appimage.yml)
7+
[![Latest Stable Release](https://img.shields.io/github/v/release/pkgforge-dev/OpenSCAD-AppImage)](https://github.com/pkgforge-dev/OpenSCAD-AppImage/releases/latest)
8+
9+
<p align="center">
10+
<img src="https://github.com/pkgforge-dev.png" width="128" />
11+
</p>
12+
13+
14+
| Latest Stable Release | Upstream URL |
15+
| :---: | :---: |
16+
| [Click here](https://github.com/pkgforge-dev/OpenSCAD-AppImage/releases/latest) | [Click here](https://openscad.org/) |
17+
18+
</div>
19+
20+
---
21+
22+
AppImage made using [quick-sharun](https://github.com/pkgforge-dev/Anylinux-AppImages/blob/main/useful-tools/quick-sharun.sh), which makes it extremely easy to turn any binary into a portable package reliably without using containers or similar tricks.
23+
24+
**This AppImage bundles everything and it should work on any Linux distro, including old and musl-based ones.**
25+
26+
This AppImage doesn't require FUSE to run at all, thanks to the [uruntime](https://github.com/VHSgunzo/uruntime).
27+
28+
This AppImage is also supplied with a self-updater by default, so any updates to this application won't be missed, you will be prompted for permission to check for updates and if agreed you will then be notified when a new update is available.
29+
30+
Self-updater is disabled by default if AppImage managers like [am](https://github.com/ivan-hc/AM), [soar](https://github.com/pkgforge/soar) or [dbin](https://github.com/xplshn/dbin) exist, which manage AppImage updates.
31+
32+
<details>
33+
<summary><b><i>raison d'être</i></b></summary>
34+
<img src="https://github.com/user-attachments/assets/d40067a6-37d2-4784-927c-2c7f7cc6104b" alt="Inspiration Image">
35+
</a>
36+
</details>
37+
38+
---
39+
40+
More at: [AnyLinux-AppImages](https://pkgforge-dev.github.io/Anylinux-AppImages/)

get-dependencies.sh

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!/bin/sh
2+
3+
set -eu
4+
5+
ARCH=$(uname -m)
6+
7+
echo "Installing package dependencies..."
8+
echo "---------------------------------------------------------------"
9+
pacman -Syu --noconfirm openscad qt5-wayland
10+
11+
echo "Installing debloated packages..."
12+
echo "---------------------------------------------------------------"
13+
get-debloated-pkgs --add-common --prefer-nano

make-appimage.sh

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#!/bin/sh
2+
3+
set -eu
4+
5+
ARCH=$(uname -m)
6+
VERSION=$(pacman -Q openscad | awk '{print $2; exit}')
7+
export ARCH VERSION
8+
export OUTPATH=./dist
9+
export ADD_HOOKS="self-updater.hook"
10+
export UPINFO="gh-releases-zsync|${GITHUB_REPOSITORY%/*}|${GITHUB_REPOSITORY#*/}|latest|*$ARCH.AppImage.zsync"
11+
export ICON=/usr/share/icons/hicolor/512x512/apps/openscad.png
12+
export DESKTOP=/usr/share/applications/openscad.desktop
13+
export DEPLOY_OPENGL=1
14+
15+
# Deploy dependencies
16+
quick-sharun \
17+
/usr/bin/openscad \
18+
/usr/share/openscad
19+
20+
# Turn AppDir into AppImage
21+
quick-sharun --make-appimage
22+
23+
quick-sharun --simple-test ./dist/*.AppImage

0 commit comments

Comments
 (0)