Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
9ce1d78
Add Support for Typelib Packaging (#33)
danyeaw Jun 11, 2022
19b9f99
Add a how it works section to the README (#34)
danyeaw Jun 11, 2022
55105be
Instruct users to make the plugin executable
TheAssassin Sep 1, 2022
d39bea4
Update Ubuntu gtk4 image
iTrooz Oct 2, 2022
e0d1f95
Fix GTK_PATH
TheTumultuousUnicornOfDarkness Oct 11, 2022
f46da60
Do not hardcode '/usr/lib/x86_64-linux-gnu' as fallback
TheTumultuousUnicornOfDarkness Feb 28, 2023
ca4ae09
Add some search paths and module deployments needed for RHEL-based bu…
freakboy3742 Mar 12, 2023
5ce0401
Allow for RHEL-style /usr/lib64 paths in build filesystem (#45)
freakboy3742 Apr 1, 2023
474c039
Normalize APPDIR to absolute path
rmartin16 Apr 1, 2023
858e909
CI: update actions to Node.js 16
TheTumultuousUnicornOfDarkness Apr 1, 2023
1f054c8
CI: extract AppImage from container
TheTumultuousUnicornOfDarkness Apr 1, 2023
fb06e22
Use color-scheme instead of gtk-theme to check for light/dark theme
TheTumultuousUnicornOfDarkness Apr 5, 2023
e3450bf
Fix search_library_path() on Debian i386
TheTumultuousUnicornOfDarkness Jul 21, 2023
edfaf7d
Update Debian gtk4 image
TheTumultuousUnicornOfDarkness Jul 21, 2023
167e408
CI: fix dependencies for containers
TheTumultuousUnicornOfDarkness Jul 26, 2023
b27f339
CI: install dpkg-dev package for Debian and Ubuntu
TheTumultuousUnicornOfDarkness Jul 26, 2023
cba816b
Merge pull request #51 from linuxdeploy/fix_debian_i386
TheTumultuousUnicornOfDarkness Jul 26, 2023
5050cbb
GTK library path handling fixes
rmartin16 Jul 26, 2023
97290a3
Fix multiarch triplet library for `search_tool`
rmartin16 Jul 31, 2023
221b680
Prefer color-scheme from org.freedesktop.portal.Desktop
easyteacher Sep 17, 2023
c08d598
CI: add support for more arch
TheTumultuousUnicornOfDarkness Jul 27, 2023
0a983ad
CI: give a better name to pipelines
TheTumultuousUnicornOfDarkness Jul 27, 2023
3b67a1d
Fix COLOR_SCHEME when commands exit with error
TheTumultuousUnicornOfDarkness Oct 1, 2023
3d6da75
Use Dependabot to update GitHub actions
TheAssassin Jul 2, 2026
1ee2a93
Bump actions/checkout from 3 to 7
dependabot[bot] Jul 2, 2026
7a3fbc3
Bump actions/upload-artifact from 3 to 7
dependabot[bot] Jul 2, 2026
596310a
Merge remote-tracking branch 'upstream/master'
FabianLars Aug 26, 2026
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
6 changes: 6 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
47 changes: 33 additions & 14 deletions .github/workflows/containers.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Containers
name: GTK Widget Factory from containers

on: [push, pull_request]

Expand All @@ -8,31 +8,50 @@ jobs:
matrix:
gtk-version: [gtk3, gtk4]
linux-distro: [debian, fedora, opensuse, ubuntu]
arch: [amd64]
include:
- gtk-version: gtk3
linux-distro: debian
arch: 386
- gtk-version: gtk4
linux-distro: debian
arch: 386

name: ${{ matrix.linux-distro }} ${{ matrix.gtk-version }}
name: ${{ matrix.linux-distro }} ${{ matrix.arch }} ${{ matrix.gtk-version }}
runs-on: ubuntu-latest

env:
GTK_VERSION: ${{ matrix.gtk-version }}
LINUX_DISTRO: ${{ matrix.linux-distro }}
ARTIFACT_DIR: "${{ github.workspace }}/AppImages"
ARCHITECTURE: ${{ matrix.arch }}
IMAGE_NAME: "linuxdeploy-plugin-${{ matrix.gtk-version }}:${{ matrix.linux-distro }}"
CONTAINER_NAME: "${{ matrix.linux-distro }}-${{ matrix.gtk-version }}"
ARTIFACT_DIR: "${{ github.workspace }}/AppImage"

steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v7

- name: Set extra environment variables
run: |
case "${ARCHITECTURE}" in
386) echo MACHINE="i386" >> "$GITHUB_ENV";;
amd64) echo MACHINE="x86_64" >> "$GITHUB_ENV";;
esac

- name: Build container
run: |
mkdir -pv "${ARTIFACT_DIR}"
buildah bud \
--squash \
-v "${ARTIFACT_DIR}:/AppImage:rw,z,shared" \
-t "linuxdeploy-plugin-${GTK_VERSION}:${LINUX_DISTRO}" \
-f "containers/${GTK_VERSION}/Dockerfile.${LINUX_DISTRO}" \
.

- uses: actions/upload-artifact@v2
buildah bud --arch="${ARCHITECTURE}" --build-arg MACHINE="${MACHINE}" --tag "${IMAGE_NAME}" --file "containers/${GTK_VERSION}/Dockerfile.${LINUX_DISTRO}" .

- name: Extract AppImage from container
run: |
mkdir --verbose --parents "${ARTIFACT_DIR}"
podman run --arch="${ARCHITECTURE}" --name "${CONTAINER_NAME}" --interactive --detach --rm --entrypoint /bin/bash "${IMAGE_NAME}"
podman cp "${CONTAINER_NAME}:/AppImage/Widget_Factory.AppImage" "${ARTIFACT_DIR}"
podman stop "${CONTAINER_NAME}" --time 0

- uses: actions/upload-artifact@v7
with:
name: ${{ matrix.linux-distro }} with ${{ matrix.gtk-version }}
name: ${{ matrix.gtk-version }}_${{ matrix.linux-distro }}_${{ env.MACHINE }}
path: ${{ env.ARTIFACT_DIR }}/
retention-days: 30
6 changes: 3 additions & 3 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: CI
name: Test plugin

on: [push, pull_request]

Expand All @@ -13,12 +13,12 @@ jobs:
DEPLOY_GTK_VERSION: 3

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v7

- name: Setup dependencies
run: |
sudo apt-get update -y -qq
sudo apt-get install -y -qq libgtk-3-0 libgtk-3-dev wget tree
sudo apt-get install -y -qq dpkg-dev libgtk-3-0 libgtk-3-dev gir1.2-gtk-3.0 wget tree libgirepository1.0-dev libfuse2

- name: Download external binairies
run: |
Expand Down
24 changes: 24 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,16 @@ This plugin requires the following dependencies in order to work properly:
- `pkg-config` or `pkgconf` command
- librsvg2 development files
- GTK development files
- GObject Introspection development files

## Usage

```bash
# get linuxdeploy and linuxdeploy-plugin-gtk
> wget -c "https://raw.githubusercontent.com/linuxdeploy/linuxdeploy-plugin-gtk/master/linuxdeploy-plugin-gtk.sh"
> wget -c "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage"
# make them executable so that we can call them (and also, plugins called from linuxdeploy are called like binaries)
> chmod +x linuxdeploy-x86_64.AppImage linuxdeploy-plugin-gtk.sh

# get list of variables
> ./linuxdeploy-plugin-gtk.sh --help
Expand All @@ -30,3 +33,24 @@ This plugin requires the following dependencies in order to work properly:
# call through linuxdeploy
> ./linuxdeploy-x86_64.AppImage --appdir AppDir --plugin gtk --output appimage --icon-file mypackage.png --desktop-file mypackage.desktop
```


## How it Works

This plugin is written in bash and goes through a series of steps to make sure
that all the libraries and other files are pulled in for GTK apps to work
properly once in the AppImage. The steps include:

1. Detects the GTK version to use
1. Installs itself as a hook in `$APPDIR/apprun-hooks`
1. Uses `gsettings` to set a light or dark adwaita theme
1. Installs the GLib schemas and then runs `glib-compile-schemas` on them
1. Installs the GIRepository typelibs for gobject-introspection
1. Copies the GTK libs and sets GTK path related environmental variables to
1 locations in the APPDIR
1. Updates the input method module registration (immodules) cache
1. Installs the GDK Pixbuf libraries and cache, and then updates the cache
1 using gdk-pixbuf-query-loaders
1. Installs additional libraries including Gdk, GObject, Gio, librsvg, Pango,
1 PangoCairo, and PangoFT2
1. Manually sets the RPATH for the GTK modules
15 changes: 9 additions & 6 deletions containers/gtk3/Dockerfile.debian
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,17 @@ FROM docker.io/debian:buster AS build-stage
WORKDIR /linuxdeploy
ENV APPIMAGE_EXTRACT_AND_RUN=1
ENV DEBIAN_FRONTEND=noninteractive
ARG MACHINE=x86_64
ARG APPDIR=/AppDir
ARG TZ=UTC
RUN ln -snf "/usr/share/zoneinfo/$TZ" "/etc/localtime" && echo "$TZ" > /etc/timezone
RUN apt-get update && \
apt-get install -y wget librsvg2-dev file findutils pkg-config libgtk-3-0 libgtk-3-dev gtk-3-examples
apt-get install -y dpkg-dev wget librsvg2-dev file findutils pkg-config libgtk-3-0 \
libgtk-3-dev gtk-3-examples gir1.2-gtk-3.0 libgirepository1.0-dev
COPY . .
ADD "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage" .
RUN chmod +x *.sh *.AppImage
RUN ./linuxdeploy-x86_64.AppImage \
ADD "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-${MACHINE}.AppImage" "linuxdeploy-${MACHINE}.AppImage"
RUN chmod --verbose +x *.sh *.AppImage
RUN ./linuxdeploy-${MACHINE}.AppImage \
--appdir ${APPDIR} \
--plugin gtk \
--output appimage \
Expand All @@ -22,5 +24,6 @@ FROM docker.io/debian:buster
VOLUME ["/AppImage"]
WORKDIR /AppImage
ENV APPIMAGE_EXTRACT_AND_RUN=1
COPY --from=build-stage "/linuxdeploy/Widget_Factory-x86_64.AppImage" .
ENTRYPOINT ["./Widget_Factory-x86_64.AppImage"]
ARG MACHINE=x86_64
COPY --from=build-stage "/linuxdeploy/Widget_Factory-${MACHINE}.AppImage" "./Widget_Factory.AppImage"
ENTRYPOINT ["./Widget_Factory.AppImage"]
15 changes: 9 additions & 6 deletions containers/gtk3/Dockerfile.fedora
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
FROM docker.io/fedora:latest AS build-stage
WORKDIR /linuxdeploy
ENV APPIMAGE_EXTRACT_AND_RUN=1
ARG MACHINE=x86_64
ARG APPDIR=/AppDir
RUN dnf install -y wget librsvg2-devel file findutils pkgconfig gtk3 gtk3-devel
RUN dnf install -y wget librsvg2-devel file findutils pkgconfig gtk3 gtk3-devel \
gobject-introspection-devel
COPY . .
ADD "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage" .
RUN chmod +x *.sh *.AppImage
ADD "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-${MACHINE}.AppImage" .
RUN chmod --verbose +x *.sh *.AppImage
RUN gtk-query-immodules-3.0-64 --update-cache
RUN ./linuxdeploy-x86_64.AppImage \
RUN ./linuxdeploy-${MACHINE}.AppImage \
--appdir ${APPDIR} \
--plugin gtk \
--output appimage \
Expand All @@ -19,5 +21,6 @@ FROM docker.io/fedora:latest
VOLUME ["/AppImage"]
WORKDIR /AppImage
ENV APPIMAGE_EXTRACT_AND_RUN=1
COPY --from=build-stage "/linuxdeploy/Widget_Factory-x86_64.AppImage" .
ENTRYPOINT ["./Widget_Factory-x86_64.AppImage"]
ARG MACHINE=x86_64
COPY --from=build-stage "/linuxdeploy/Widget_Factory-${MACHINE}.AppImage" "./Widget_Factory.AppImage"
ENTRYPOINT ["./Widget_Factory.AppImage"]
15 changes: 9 additions & 6 deletions containers/gtk3/Dockerfile.opensuse
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
FROM docker.io/opensuse/leap:15 AS build-stage
WORKDIR /linuxdeploy
ENV APPIMAGE_EXTRACT_AND_RUN=1
ARG MACHINE=x86_64
ARG APPDIR=/AppDir
RUN zypper install -y wget librsvg2-devel file findutils pkg-config gtk3 gtk3-devel
RUN zypper install -y wget librsvg2-devel file findutils pkg-config gtk3 gtk3-devel \
typelib-1_0-Gtk-3_0 gobject-introspection-devel
COPY . .
ADD "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage" .
RUN chmod +x *.sh *.AppImage
RUN ./linuxdeploy-x86_64.AppImage \
ADD "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-${MACHINE}.AppImage" .
RUN chmod --verbose +x *.sh *.AppImage
RUN ./linuxdeploy-${MACHINE}.AppImage \
--appdir ${APPDIR} \
--plugin gtk \
--output appimage \
Expand All @@ -18,5 +20,6 @@ FROM docker.io/opensuse/leap:15
VOLUME ["/AppImage"]
WORKDIR /AppImage
ENV APPIMAGE_EXTRACT_AND_RUN=1
COPY --from=build-stage "/linuxdeploy/Widget_Factory-x86_64.AppImage" .
ENTRYPOINT ["./Widget_Factory-x86_64.AppImage"]
ARG MACHINE=x86_64
COPY --from=build-stage "/linuxdeploy/Widget_Factory-${MACHINE}.AppImage" "./Widget_Factory.AppImage"
ENTRYPOINT ["./Widget_Factory.AppImage"]
15 changes: 9 additions & 6 deletions containers/gtk3/Dockerfile.ubuntu
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,17 @@ FROM docker.io/ubuntu:focal AS build-stage
WORKDIR /linuxdeploy
ENV APPIMAGE_EXTRACT_AND_RUN=1
ENV DEBIAN_FRONTEND=noninteractive
ARG MACHINE=x86_64
ARG APPDIR=/AppDir
ARG TZ=UTC
RUN ln -snf "/usr/share/zoneinfo/$TZ" "/etc/localtime" && echo "$TZ" > /etc/timezone
RUN apt-get update && \
apt-get install -y wget librsvg2-dev file findutils pkg-config libgtk-3-0 libgtk-3-dev gtk-3-examples
apt-get install -y dpkg-dev wget librsvg2-dev file findutils pkg-config libgtk-3-0 \
libgtk-3-dev gtk-3-examples gir1.2-gtk-3.0 libgirepository1.0-dev libfuse2
COPY . .
ADD "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage" .
RUN chmod +x *.sh *.AppImage
RUN ./linuxdeploy-x86_64.AppImage \
ADD "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-${MACHINE}.AppImage" .
RUN chmod --verbose +x *.sh *.AppImage
RUN ./linuxdeploy-${MACHINE}.AppImage \
--appdir ${APPDIR} \
--plugin gtk \
--output appimage \
Expand All @@ -22,5 +24,6 @@ FROM docker.io/ubuntu:focal
VOLUME ["/AppImage"]
WORKDIR /AppImage
ENV APPIMAGE_EXTRACT_AND_RUN=1
COPY --from=build-stage "/linuxdeploy/Widget_Factory-x86_64.AppImage" .
ENTRYPOINT ["./Widget_Factory-x86_64.AppImage"]
ARG MACHINE=x86_64
COPY --from=build-stage "/linuxdeploy/Widget_Factory-${MACHINE}.AppImage" "./Widget_Factory.AppImage"
ENTRYPOINT ["./Widget_Factory.AppImage"]
21 changes: 11 additions & 10 deletions containers/gtk4/Dockerfile.debian
Original file line number Diff line number Diff line change
@@ -1,28 +1,29 @@
# GTK4 is not yet supported on Debian Stable
FROM docker.io/debian:experimental AS build-stage
FROM docker.io/debian:bookworm AS build-stage
WORKDIR /linuxdeploy
ENV APPIMAGE_EXTRACT_AND_RUN=1
ENV DEBIAN_FRONTEND=noninteractive
ARG MACHINE=x86_64
ARG APPDIR=/AppDir
ARG TZ=UTC
RUN ln -snf "/usr/share/zoneinfo/$TZ" "/etc/localtime" && echo "$TZ" > /etc/timezone
RUN apt-get update && \
apt-get install -y wget librsvg2-dev file findutils pkg-config && \
apt-get install -y -t experimental libgtk-4-1 libgtk-4-dev gtk-4-examples
apt-get install -y dpkg-dev wget librsvg2-dev file findutils pkg-config && \
apt-get install -y libgtk-4-1 libgtk-4-dev gtk-4-examples gir1.2-gtk-4.0 libgirepository1.0-dev
COPY . .
ADD "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage" .
RUN chmod +x *.sh *.AppImage
RUN ./linuxdeploy-x86_64.AppImage \
ADD "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-${MACHINE}.AppImage" .
RUN chmod --verbose +x *.sh *.AppImage
RUN ./linuxdeploy-${MACHINE}.AppImage \
--appdir ${APPDIR} \
--plugin gtk \
--output appimage \
--executable /usr/bin/gtk4-widget-factory \
--desktop-file /usr/share/applications/org.gtk.WidgetFactory4.desktop \
--icon-file /usr/share/icons/hicolor/scalable/apps/org.gtk.WidgetFactory4.svg

FROM docker.io/debian:experimental
FROM docker.io/debian:bookworm
VOLUME ["/AppImage"]
WORKDIR /AppImage
ENV APPIMAGE_EXTRACT_AND_RUN=1
COPY --from=build-stage "/linuxdeploy/Widget_Factory-x86_64.AppImage" .
ENTRYPOINT ["./Widget_Factory-x86_64.AppImage"]
ARG MACHINE=x86_64
COPY --from=build-stage "/linuxdeploy/Widget_Factory-${MACHINE}.AppImage" "./Widget_Factory.AppImage"
ENTRYPOINT ["./Widget_Factory.AppImage"]
15 changes: 9 additions & 6 deletions containers/gtk4/Dockerfile.fedora
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
FROM docker.io/fedora:latest AS build-stage
WORKDIR /linuxdeploy
ENV APPIMAGE_EXTRACT_AND_RUN=1
ARG MACHINE=x86_64
ARG APPDIR=/AppDir
RUN dnf install -y wget librsvg2-devel file findutils pkgconfig gtk4 gtk4-devel gtk4-devel-tools
RUN dnf install -y wget librsvg2-devel file findutils pkgconfig gtk4 gtk4-devel gtk4-devel-tools \
gobject-introspection-devel
COPY . .
ADD "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage" .
RUN chmod +x *.sh *.AppImage
RUN ./linuxdeploy-x86_64.AppImage \
ADD "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-${MACHINE}.AppImage" .
RUN chmod --verbose +x *.sh *.AppImage
RUN ./linuxdeploy-${MACHINE}.AppImage \
--appdir ${APPDIR} \
--plugin gtk \
--output appimage \
Expand All @@ -18,5 +20,6 @@ FROM docker.io/fedora:latest
VOLUME ["/AppImage"]
WORKDIR /AppImage
ENV APPIMAGE_EXTRACT_AND_RUN=1
COPY --from=build-stage "/linuxdeploy/Widget_Factory-x86_64.AppImage" .
ENTRYPOINT ["./Widget_Factory-x86_64.AppImage"]
ARG MACHINE=x86_64
COPY --from=build-stage "/linuxdeploy/Widget_Factory-${MACHINE}.AppImage" "./Widget_Factory.AppImage"
ENTRYPOINT ["./Widget_Factory.AppImage"]
15 changes: 9 additions & 6 deletions containers/gtk4/Dockerfile.opensuse
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@
FROM docker.io/opensuse/tumbleweed:latest AS build-stage
WORKDIR /linuxdeploy
ENV APPIMAGE_EXTRACT_AND_RUN=1
ARG MACHINE=x86_64
ARG APPDIR=/AppDir
RUN zypper install -y wget librsvg2-devel file findutils pkg-config gtk4 gtk4-devel
RUN zypper install -y wget librsvg2-devel file findutils pkg-config gtk4 gtk4-devel \
typelib-1_0-Gtk-4_0 gobject-introspection-devel
COPY . .
ADD "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage" .
RUN chmod +x *.sh *.AppImage
RUN ./linuxdeploy-x86_64.AppImage \
ADD "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-${MACHINE}.AppImage" .
RUN chmod --verbose +x *.sh *.AppImage
RUN ./linuxdeploy-${MACHINE}.AppImage \
--appdir ${APPDIR} \
--plugin gtk \
--output appimage \
Expand All @@ -19,5 +21,6 @@ FROM docker.io/opensuse/tumbleweed:latest
VOLUME ["/AppImage"]
WORKDIR /AppImage
ENV APPIMAGE_EXTRACT_AND_RUN=1
COPY --from=build-stage "/linuxdeploy/Widget_Factory-x86_64.AppImage" .
ENTRYPOINT ["./Widget_Factory-x86_64.AppImage"]
ARG MACHINE=x86_64
COPY --from=build-stage "/linuxdeploy/Widget_Factory-${MACHINE}.AppImage" "./Widget_Factory.AppImage"
ENTRYPOINT ["./Widget_Factory.AppImage"]
19 changes: 11 additions & 8 deletions containers/gtk4/Dockerfile.ubuntu
Original file line number Diff line number Diff line change
@@ -1,26 +1,29 @@
FROM docker.io/ubuntu:hirsute AS build-stage
FROM docker.io/ubuntu:jammy AS build-stage
WORKDIR /linuxdeploy
ENV APPIMAGE_EXTRACT_AND_RUN=1
ENV DEBIAN_FRONTEND=noninteractive
ARG MACHINE=x86_64
ARG APPDIR=/AppDir
ARG TZ=UTC
RUN ln -snf "/usr/share/zoneinfo/$TZ" "/etc/localtime" && echo "$TZ" > /etc/timezone
RUN apt-get update && \
apt-get install -y wget librsvg2-dev file findutils pkg-config libgtk-4-1 libgtk-4-dev gtk-4-examples
apt-get install -y dpkg-dev wget librsvg2-dev file findutils pkg-config libgtk-4-1 \
libgtk-4-dev gtk-4-examples gir1.2-gtk-4.0 libgirepository1.0-dev libfuse2
COPY . .
ADD "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage" .
RUN chmod +x *.sh *.AppImage
RUN ./linuxdeploy-x86_64.AppImage \
ADD "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-${MACHINE}.AppImage" .
RUN chmod --verbose +x *.sh *.AppImage
RUN ./linuxdeploy-${MACHINE}.AppImage \
--appdir ${APPDIR} \
--plugin gtk \
--output appimage \
--executable /usr/bin/gtk4-widget-factory \
--desktop-file /usr/share/applications/org.gtk.WidgetFactory4.desktop \
--icon-file /usr/share/icons/hicolor/scalable/apps/org.gtk.WidgetFactory4.svg

FROM docker.io/ubuntu:hirsute
FROM docker.io/ubuntu:jammy
VOLUME ["/AppImage"]
WORKDIR /AppImage
ENV APPIMAGE_EXTRACT_AND_RUN=1
COPY --from=build-stage "/linuxdeploy/Widget_Factory-x86_64.AppImage" .
ENTRYPOINT ["./Widget_Factory-x86_64.AppImage"]
ARG MACHINE=x86_64
COPY --from=build-stage "/linuxdeploy/Widget_Factory-${MACHINE}.AppImage" "./Widget_Factory.AppImage"
ENTRYPOINT ["./Widget_Factory.AppImage"]
Loading
Loading