From b70c549d6bbf8b58e26a57fee2be46bc3eb279fb Mon Sep 17 00:00:00 2001 From: Paolo Gentili Date: Mon, 27 Apr 2026 10:04:39 +0200 Subject: [PATCH 1/5] new: logseq-og snapcraft.yaml --- snap-og/snap/gui/icon.svg | 20 +++++++++ snap-og/snap/gui/logseq.desktop | 7 +++ snap-og/snap/snapcraft.yaml | 79 +++++++++++++++++++++++++++++++++ 3 files changed, 106 insertions(+) create mode 100644 snap-og/snap/gui/icon.svg create mode 100644 snap-og/snap/gui/logseq.desktop create mode 100644 snap-og/snap/snapcraft.yaml diff --git a/snap-og/snap/gui/icon.svg b/snap-og/snap/gui/icon.svg new file mode 100644 index 0000000..3850d4b --- /dev/null +++ b/snap-og/snap/gui/icon.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/snap-og/snap/gui/logseq.desktop b/snap-og/snap/gui/logseq.desktop new file mode 100644 index 0000000..164de60 --- /dev/null +++ b/snap-og/snap/gui/logseq.desktop @@ -0,0 +1,7 @@ +[Desktop Entry] +Name=Logseq Desktop +Exec=logseq %U +Terminal=false +Type=Application +Icon=${SNAP}/snap/gui/icon.svg +Categories=Utility diff --git a/snap-og/snap/snapcraft.yaml b/snap-og/snap/snapcraft.yaml new file mode 100644 index 0000000..da4df31 --- /dev/null +++ b/snap-og/snap/snapcraft.yaml @@ -0,0 +1,79 @@ +name: logseq +base: core22 +adopt-info: logseq +summary: Logseq is a privacy-first, open-source knowledge base. +description: | + Logseq is a privacy-first, open-source knowledge base that works on top of local plain-text Markdown and Org-mode files. Use it to write, organize and share your thoughts, keep your to-do list, and build your own digital garden. + +grade: stable +confinement: strict + +parts: + logseq: + plugin: nil + source: https://github.com/logseq/og.git + source-depth: 1 + source-tag: '1.0.0' + build-packages: + - curl + - default-jdk + - libgif-dev + - zip + stage-packages: + - libnss3 + - libnspr4 + + override-pull: | + craftctl default + craftctl set version=$(git describe --tags) + + set -x + + # Install node + curl -fsSL https://deb.nodesource.com/setup_22.x | bash - + apt-get install -y nodejs + + # Install clojure at required version + curl -fsSL https://download.clojure.org/install/linux-install-1.11.1.1413.sh | bash - + + override-build: | + craftctl default + + set -x + + npm install --global yarn + yarn config set network-timeout 1000000 + yarn install + + yarn cljs:release && yarn release-electron &&\ + mv ./static/out/Logseq-linux-* $SNAPCRAFT_PART_INSTALL/app &&\ + chmod 755 $SNAPCRAFT_PART_INSTALL/app + +apps: + logseq: + command: app/Logseq --no-sandbox + extensions: + - gnome + plugs: + - network + - shmem + - home + - etc-gitconfig + - gitconfig + - ssh-keys + - audio-playback + - removable-media + +plugs: + shmem: + interface: shared-memory + private: true + etc-gitconfig: + interface: system-files + read: + - /etc/gitconfig + gitconfig: + interface: personal-files + read: + - $HOME/.gitconfig + - $HOME/.config/git/config From 218631122c35eb4cdb9856818425d0287e627473 Mon Sep 17 00:00:00 2001 From: Paolo Gentili Date: Mon, 27 Apr 2026 10:05:57 +0200 Subject: [PATCH 2/5] change: check daily for logseq-og versions --- .github/workflows/auto-update.yaml | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/.github/workflows/auto-update.yaml b/.github/workflows/auto-update.yaml index b87979c..677022e 100644 --- a/.github/workflows/auto-update.yaml +++ b/.github/workflows/auto-update.yaml @@ -13,9 +13,18 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout this repo - uses: actions/checkout@v3 - - name: Run desktop-snaps action - uses: ubuntu/desktop-snaps@stable + uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3 + + - name: Update snapcraft.yaml + uses: ubuntu/desktop-snaps@12a322bc9b39889b93b71ffa2a1a1b2f0932cff5 # stable + with: + token: ${{ secrets.GITHUB_TOKEN }} + repo: ${{ github.repository }} + yaml-path: snap/snapcraft.yaml + + - name: Update legacy (og) snapcraft.yaml + uses: ubuntu/desktop-snaps@12a322bc9b39889b93b71ffa2a1a1b2f0932cff5 # stable with: token: ${{ secrets.GITHUB_TOKEN }} repo: ${{ github.repository }} + yaml-path: snap-og/snap/snapcraft.yaml From a8df3821f6d037752a44b60867afa4e576c6545f Mon Sep 17 00:00:00 2001 From: Paolo Gentili Date: Mon, 27 Apr 2026 10:07:20 +0200 Subject: [PATCH 3/5] change: test snap build, filtered by snap path --- .github/workflows/test-snap-can-build.yml | 26 ++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test-snap-can-build.yml b/.github/workflows/test-snap-can-build.yml index 2245891..d7b8048 100644 --- a/.github/workflows/test-snap-can-build.yml +++ b/.github/workflows/test-snap-can-build.yml @@ -5,20 +5,40 @@ on: branches: [ main ] jobs: + detect-changes: + runs-on: ubuntu-latest + outputs: + projects: ${{ steps.filter.outputs.changes }} + steps: + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + - uses: dorny/paths-filter@d1c1ffe0248fe513906c8e24db8ea791d46f8590 # v3 + id: filter + with: + filters: | + snap: + - 'snap/**' + snap-og: + - 'snap-og/**' + build-and-check: + needs: detect-changes + if: needs.detect-changes.outputs.projects != '[]' strategy: fail-fast: false matrix: + project: ${{ fromJSON(needs.detect-changes.outputs.projects) }} runner: [ubuntu-24.04, ubuntu-24.04-arm] runs-on: "${{ matrix.runner }}" steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 - - uses: snapcore/action-build@v1 + - uses: snapcore/action-build@3bdaa03e1ba6bf59a65f84a751d943d549a54e79 # v1 id: build + with: + path: ${{ matrix.project == 'snap' && '.' || matrix.project }} - - uses: diddlesnaps/snapcraft-review-action@v1 + - uses: diddlesnaps/snapcraft-review-action@40554b42331cf84dab19ef98c382620427f13482 # v1 with: snap: ${{ steps.build.outputs.snap }} isClassic: 'false' From de0c7fdd8aef1f8dcee1d9e9efa4b7ebbbff72e5 Mon Sep 17 00:00:00 2001 From: Paolo Gentili Date: Mon, 27 Apr 2026 10:09:56 +0200 Subject: [PATCH 4/5] change: workflow to publish (disable for og until we have the track) --- .github/workflows/push-snap.yml | 40 ++++++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/.github/workflows/push-snap.yml b/.github/workflows/push-snap.yml index cdf7e72..1566776 100644 --- a/.github/workflows/push-snap.yml +++ b/.github/workflows/push-snap.yml @@ -6,20 +6,54 @@ on: workflow_dispatch: jobs: + detect-changes: + runs-on: ubuntu-latest + outputs: + projects: ${{ steps.set.outputs.projects }} + steps: + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + + - if: github.event_name != 'workflow_dispatch' + uses: dorny/paths-filter@d1c1ffe0248fe513906c8e24db8ea791d46f8590 # v3 + id: filter + with: + filters: | + snap: + - 'snap/**' + snap-og: + - 'snap-og/**' + + - id: set + run: | + if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then + echo 'projects=["snap","snap-og"]' >> "$GITHUB_OUTPUT" + else + echo 'projects=${{ steps.filter.outputs.changes }}' >> "$GITHUB_OUTPUT" + fi + build-and-publish: + needs: detect-changes + if: needs.detect-changes.outputs.projects != '[]' strategy: fail-fast: false matrix: + project: ${{ fromJSON(needs.detect-changes.outputs.projects) }} runner: [ubuntu-24.04, ubuntu-24.04-arm] runs-on: "${{ matrix.runner }}" steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 - - uses: snapcore/action-build@v1 + - uses: snapcore/action-build@3bdaa03e1ba6bf59a65f84a751d943d549a54e79 # v1 id: build + with: + path: ${{ matrix.project == 'snap' && '.' || matrix.project }} + + - if: matrix.project == 'snap-og' + run: echo "Skipping publish for snap-og — og track not yet provisioned (built ${{ steps.build.outputs.snap }})" - - uses: snapcore/action-publish@v1 + - if: matrix.project != 'snap-og' + uses: snapcore/action-publish@214b86e5ca036ead1668c79afb81e550e6c54d40 # v1 env: SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.STORE_LOGIN }} with: From ef6445340ff686c6e6b8903ae7fd6dcfe87c599f Mon Sep 17 00:00:00 2001 From: Paolo Gentili Date: Mon, 27 Apr 2026 10:49:30 +0200 Subject: [PATCH 5/5] fix: binary name --- snap-og/snap/snapcraft.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/snap-og/snap/snapcraft.yaml b/snap-og/snap/snapcraft.yaml index da4df31..1e4ca93 100644 --- a/snap-og/snap/snapcraft.yaml +++ b/snap-og/snap/snapcraft.yaml @@ -46,12 +46,12 @@ parts: yarn install yarn cljs:release && yarn release-electron &&\ - mv ./static/out/Logseq-linux-* $SNAPCRAFT_PART_INSTALL/app &&\ + mv ./static/out/Logseq-OG-linux-* $SNAPCRAFT_PART_INSTALL/app &&\ chmod 755 $SNAPCRAFT_PART_INSTALL/app apps: logseq: - command: app/Logseq --no-sandbox + command: app/Logseq-OG --no-sandbox extensions: - gnome plugs: