Skip to content

Commit cbf44fc

Browse files
authored
Merge pull request #8 from Stefterv/flathub-release
Flathub release
2 parents 3f36db5 + b338d51 commit cbf44fc

File tree

6 files changed

+173
-88
lines changed

6 files changed

+173
-88
lines changed

.github/workflows/release-gradle.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ jobs:
153153
ORG_GRADLE_PROJECT_compose.desktop.mac.notarization.password: ${{ secrets.PROCESSING_APP_PASSWORD }}
154154
ORG_GRADLE_PROJECT_compose.desktop.mac.notarization.teamID: ${{ secrets.PROCESSING_TEAM_ID }}
155155
ORG_GRADLE_PROJECT_snapname: ${{ vars.SNAP_NAME }}
156+
ORG_GRADLE_PROJECT_snapconfinement: ${{ vars.SNAP_CONFINEMENT }}
156157

157158
- name: Sign files with Trusted Signing
158159
if: runner.os == 'Windows'

app/build.gradle.kts

Lines changed: 38 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -80,16 +80,17 @@ compose.desktop {
8080
upgradeUuid = "89d8d7fe-5602-4b12-ba10-0fe78efbd602"
8181
}
8282
linux {
83-
appCategory = "Programming"
83+
debMaintainer = "hello@processing.org"
8484
menuGroup = "Development;Programming;"
85+
appCategory = "Programming"
8586
iconFile = rootProject.file("build/linux/processing.png")
8687
// Fix fonts on some Linux distributions
8788
jvmArgs("-Dawt.useSystemAAFontSettings=on")
8889

89-
fileAssociation("pde", "Processing Source Code", "application/x-processing")
90-
fileAssociation("pyde", "Processing Python Source Code", "application/x-processing")
91-
fileAssociation("pdez", "Processing Sketch Bundle", "application/x-processing")
92-
fileAssociation("pdex", "Processing Contribution Bundle", "application/x-processing")
90+
fileAssociation("application/x-processing","pde", "Processing Source Code",rootProject.file("build/shared/lib/icons/pde-512.png"))
91+
fileAssociation("application/x-processing","pyde", "Processing Python Source Code",rootProject.file("build/shared/lib/icons/pde-512.png"))
92+
fileAssociation("application/x-processing","pdez", "Processing Sketch Bundle",rootProject.file("build/shared/lib/icons/pde-512.png"))
93+
fileAssociation("application/x-processing","pdex", "Processing Contribution Bundle", rootProject.file("build/shared/lib/icons/pde-512.png"))
9394
}
9495
}
9596
}
@@ -228,61 +229,44 @@ tasks.register<Exec>("packageCustomMsi"){
228229

229230

230231
tasks.register("generateSnapConfiguration"){
231-
val name = findProperty("snapname") ?: rootProject.name
232+
onlyIf { OperatingSystem.current().isLinux }
233+
234+
val distributable = tasks.named<AbstractJPackageTask>("createDistributable").get()
235+
dependsOn(distributable)
236+
237+
val name = findProperty("snapname") as String? ?: rootProject.name
232238
val arch = when (System.getProperty("os.arch")) {
233239
"amd64", "x86_64" -> "amd64"
234240
"aarch64" -> "arm64"
235241
else -> System.getProperty("os.arch")
236242
}
237-
238-
onlyIf { OperatingSystem.current().isLinux }
239-
val distributable = tasks.named<AbstractJPackageTask>("createDistributable").get()
240-
dependsOn(distributable)
241-
243+
val confinement = findProperty("snapconfinement") as String? ?: "strict"
242244
val dir = distributable.destinationDir.get()
243-
val content = """
244-
name: $name
245-
version: $version
246-
base: core22
247-
summary: A creative coding editor
248-
description: |
249-
Processing is a flexible software sketchbook and a programming language designed for learning how to code.
250-
confinement: strict
251-
252-
apps:
253-
processing:
254-
command: opt/processing/bin/Processing
255-
desktop: opt/processing/lib/processing-Processing.desktop
256-
environment:
257-
LD_LIBRARY_PATH: ${'$'}SNAP/opt/processing/lib/runtime/lib:${'$'}LD_LIBRARY_PATH
258-
LIBGL_DRIVERS_PATH: ${'$'}SNAP/usr/lib/${'$'}SNAPCRAFT_ARCH_TRIPLET/dri
259-
plugs:
260-
- desktop
261-
- desktop-legacy
262-
- wayland
263-
- x11
264-
- network
265-
- opengl
266-
- home
267-
- removable-media
268-
- audio-playback
269-
- audio-record
270-
- pulseaudio
271-
- gpio
272-
273-
parts:
274-
processing:
275-
plugin: dump
276-
source: deb/processing_$version-1_$arch.deb
277-
source-type: deb
278-
stage-packages:
279-
- openjdk-17-jre
280-
override-prime: |
281-
snapcraftctl prime
282-
rm -vf usr/lib/jvm/java-17-openjdk-*/lib/security/cacerts
283-
chmod -R +x opt/processing/lib/app/resources/jdk
284-
""".trimIndent()
285-
dir.file("../snapcraft.yaml").asFile.writeText(content)
245+
val base = layout.projectDirectory.file("linux/snapcraft.base.yml")
246+
247+
doFirst {
248+
249+
var content = base
250+
.asFile
251+
.readText()
252+
.replace("\$name", name)
253+
.replace("\$arch", arch)
254+
.replace("\$version", version as String)
255+
.replace("\$confinement", confinement)
256+
.let {
257+
if (confinement != "classic") return@let it
258+
// If confinement is not strict, remove the PLUGS section
259+
val start = it.indexOf("# PLUGS START")
260+
val end = it.indexOf("# PLUGS END")
261+
if (start != -1 && end != -1) {
262+
val before = it.substring(0, start)
263+
val after = it.substring(end + "# PLUGS END".length)
264+
return@let before + after
265+
}
266+
return@let it
267+
}
268+
dir.file("../snapcraft.yaml").asFile.writeText(content)
269+
}
286270
}
287271

288272
tasks.register<Exec>("packageSnap"){

app/linux/org.processing.pde.yml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
id: org.processing.pde
2+
runtime: org.freedesktop.Platform
3+
runtime-version: '24.08'
4+
sdk: org.freedesktop.Sdk
5+
command: Processing
6+
finish-args:
7+
- --socket=x11
8+
- --share=ipc
9+
- --device=all
10+
- --filesystem=home
11+
- --socket=pulseaudio
12+
- --share=network
13+
14+
modules:
15+
- name: Processing
16+
buildsystem: simple
17+
build-commands:
18+
# Unpack Processing deb
19+
- ar x processing.deb
20+
- tar --zstd -xf data.tar.zst
21+
- mv opt/processing/* /app/
22+
- find /app/lib/app/resources/jdk/bin -type f -exec chmod +x {} +
23+
24+
# Install the desktop file and icon
25+
- install -D /app/lib/processing-Processing.desktop /app/share/applications/org.processing.pde.desktop
26+
- sed -i 's/^Icon=.*/Icon=org.processing.pde/' /app/share/applications/org.processing.pde.desktop
27+
- sed -i 's/^Exec=.*/Exec=\/app\/bin\/Processing/' /app/share/applications/org.processing.pde.desktop
28+
29+
# Install the mimetype info
30+
- install -D /app/lib/processing-Processing-MimeInfo.xml /app/share/mime/packages/org.processing.pde.xml
31+
32+
# - install -D /app/lib/Processing.png /app/share/icons/hicolor/512x512/apps/org.processing.pde.png
33+
- install -D /app/lib/application-x-processing.png /app/share/icons/hicolor/512x512/mimetypes/org.processing.pde-text-x-processing.png
34+
35+
sources:
36+
- type: file
37+
path: ../build/compose/binaries/main/deb/processing_1.0.0-1_amd64.deb
38+
dest-filename: processing.deb

app/linux/snapcraft.base.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: $name
2+
version: $version
3+
base: core22
4+
summary: A creative coding editor
5+
description: |
6+
Processing is a flexible software sketchbook and a programming language designed for learning how to code.
7+
confinement: $confinement
8+
9+
apps:
10+
processing:
11+
command: opt/processing/bin/Processing
12+
desktop: opt/processing/lib/processing-Processing.desktop
13+
environment:
14+
LD_LIBRARY_PATH: $SNAP/opt/processing/lib/runtime/lib:$LD_LIBRARY_PATH
15+
LIBGL_DRIVERS_PATH: $SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/dri
16+
# PLUGS START
17+
plugs:
18+
- desktop
19+
- desktop-legacy
20+
- wayland
21+
- x11
22+
- network
23+
- opengl
24+
- home
25+
- removable-media
26+
- audio-playback
27+
- audio-record
28+
- pulseaudio
29+
- gpio
30+
# PLUGS END
31+
32+
parts:
33+
processing:
34+
plugin: dump
35+
source: deb/processing_$version-1_$arch.deb
36+
source-type: deb
37+
stage-packages:
38+
- openjdk-17-jre
39+
override-prime: |
40+
snapcraftctl prime
41+
rm -vf usr/lib/jvm/java-17-openjdk-*/lib/security/cacerts
42+
chmod -R +x opt/processing/lib/app/resources/jdk

build/linux/processing-pde.xml

Lines changed: 35 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -2,41 +2,42 @@
22
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
33
<mime-type type="text/x-processing">
44
<comment>Processing source code</comment>
5-
<comment xml:lang="ara">شفرة مصدر Processing</comment>
6-
<comment xml:lang="be@latin">Kryničny kod Processing</comment>
7-
<comment xml:lang="bg">Изходен код на Processing</comment>
8-
<comment xml:lang="ca">codi font en Processing</comment>
9-
<comment xml:lang="da">Processingkildekode</comment>
10-
<comment xml:lang="de">Processing-Quelltext</comment>
11-
<comment xml:lang="el">πηγαίος κώδικας Processing</comment>
12-
<comment xml:lang="en_GB">Processing source code</comment>
13-
<comment xml:lang="eo">Processing-fontkodo</comment>
14-
<comment xml:lang="es">código fuente en Processing</comment>
15-
<comment xml:lang="eu">Processing iturburu-kodea</comment>
16-
<comment xml:lang="fi">Processing-lähdekoodi</comment>
17-
<comment xml:lang="fr">code source Processing</comment>
18-
<comment xml:lang="ga">cód foinseach Processing</comment>
19-
<comment xml:lang="hu">Processing-forráskód</comment>
20-
<comment xml:lang="id">Kode program Processing</comment>
21-
<comment xml:lang="it">Codice sorgente Processing</comment>
22-
<comment xml:lang="ja">Processing ソースコード</comment>
23-
<comment xml:lang="lt">Processing pradinis kodas</comment>
24-
<comment xml:lang="lv">Processing pirmkods</comment>
25-
<comment xml:lang="ms">Kod sumber Processing</comment>
26-
<comment xml:lang="nb">Processing-kildekode</comment>
27-
<comment xml:lang="nl">Processing-broncode</comment>
28-
<comment xml:lang="nn">Processing-kjeldekode</comment>
29-
<comment xml:lang="pl">Kod źródłowy Processing</comment>
30-
<comment xml:lang="pt">código fonte Processing</comment>
31-
<comment xml:lang="pt_BR">Código fonte Processing</comment>
32-
<comment xml:lang="ru">исходный код Processing</comment>
33-
<comment xml:lang="sq">Kod burues Processing</comment>
34-
<comment xml:lang="sv">Processing-källkod</comment>
35-
<comment xml:lang="uk">Вихідний код на мові Processing</comment>
36-
<comment xml:lang="vi">Mã nguồn Processing</comment>
37-
<comment xml:lang="zh_CN">Processing 源代码</comment>
38-
<comment xml:lang="zh_TW">Processing 源代碼</comment>
5+
<comment xml:lang="ara">شفرة مصدر Processing</comment>
6+
<comment xml:lang="be@latin">Kryničny kod Processing</comment>
7+
<comment xml:lang="bg">Изходен код на Processing</comment>
8+
<comment xml:lang="ca">codi font en Processing</comment>
9+
<comment xml:lang="da">Processingkildekode</comment>
10+
<comment xml:lang="de">Processing-Quelltext</comment>
11+
<comment xml:lang="el">πηγαίος κώδικας Processing</comment>
12+
<comment xml:lang="en_GB">Processing source code</comment>
13+
<comment xml:lang="eo">Processing-fontkodo</comment>
14+
<comment xml:lang="es">código fuente en Processing</comment>
15+
<comment xml:lang="eu">Processing iturburu-kodea</comment>
16+
<comment xml:lang="fi">Processing-lähdekoodi</comment>
17+
<comment xml:lang="fr">code source Processing</comment>
18+
<comment xml:lang="ga">cód foinseach Processing</comment>
19+
<comment xml:lang="hu">Processing-forráskód</comment>
20+
<comment xml:lang="id">Kode program Processing</comment>
21+
<comment xml:lang="it">Codice sorgente Processing</comment>
22+
<comment xml:lang="ja">Processing ソースコード</comment>
23+
<comment xml:lang="lt">Processing pradinis kodas</comment>
24+
<comment xml:lang="lv">Processing pirmkods</comment>
25+
<comment xml:lang="ms">Kod sumber Processing</comment>
26+
<comment xml:lang="nb">Processing-kildekode</comment>
27+
<comment xml:lang="nl">Processing-broncode</comment>
28+
<comment xml:lang="nn">Processing-kjeldekode</comment>
29+
<comment xml:lang="pl">Kod źródłowy Processing</comment>
30+
<comment xml:lang="pt">código fonte Processing</comment>
31+
<comment xml:lang="pt_BR">Código fonte Processing</comment>
32+
<comment xml:lang="ru">исходный код Processing</comment>
33+
<comment xml:lang="sq">Kod burues Processing</comment>
34+
<comment xml:lang="sv">Processing-källkod</comment>
35+
<comment xml:lang="uk">Вихідний код на мові Processing</comment>
36+
<comment xml:lang="vi">Mã nguồn Processing</comment>
37+
<comment xml:lang="zh_CN">Processing 源代码</comment>
38+
<comment xml:lang="zh_TW">Processing 源代碼</comment>
3939
<sub-class-of type="text/x-csrc"/>
4040
<glob pattern="*.pde"/>
41+
<icon name="org.processing.pde-text-x-processing" />
4142
</mime-type>
4243
</mime-info>
Lines changed: 19 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)