From c4f0adb31678caa9d6fab93a141626f7ba466a58 Mon Sep 17 00:00:00 2001 From: Joshua Glass Date: Wed, 9 Feb 2022 14:42:24 +0000 Subject: [PATCH 01/23] Add Beta branch for arduino 2.0 --- arduino-appdata-fixes.patch | 22 -- cc.arduino.arduinoide.appdata.xml | 44 ++++ cc.arduino.arduinoide.desktop | 9 + cc.arduino.arduinoide.json | 328 ++++-------------------------- cc.arduino.arduinoide.png | Bin 0 -> 10496 bytes flathub.json | 4 + 6 files changed, 92 insertions(+), 315 deletions(-) delete mode 100644 arduino-appdata-fixes.patch create mode 100644 cc.arduino.arduinoide.appdata.xml create mode 100644 cc.arduino.arduinoide.desktop create mode 100644 cc.arduino.arduinoide.png create mode 100644 flathub.json diff --git a/arduino-appdata-fixes.patch b/arduino-appdata-fixes.patch deleted file mode 100644 index 5d09ca1..0000000 --- a/arduino-appdata-fixes.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- a/build/linux/dist/appdata.xml -+++ b/build/linux/dist/appdata.xml -@@ -36,6 +36,19 @@ - - - -+ -+ -+
    -+
  • Removed log4j from IDE. Fix CVE-2021-45105, CVE-2021-45046
  • -+
-+
-+
-+ -+ -+ -+ -+ -+ - - - diff --git a/cc.arduino.arduinoide.appdata.xml b/cc.arduino.arduinoide.appdata.xml new file mode 100644 index 0000000..669ff9d --- /dev/null +++ b/cc.arduino.arduinoide.appdata.xml @@ -0,0 +1,44 @@ + + + cc.arduino.arduinoide.desktop + CC-BY-SA-3.0 + AGPL-3.0 + Arduino IDE + Open-source electronics prototyping platform + Arduino LLC + +

+ Arduino is an open-source electronics prototyping platform based + on flexible, easy-to-use hardware and software. It's intended for + artists, designers, hobbyists, and anyone interested in creating + interactive objects or environments. +

+

+ Included is an integrated development environment that can be used + to develop and upload code to compatible microcontrollers. +

+
+ + + +
    +
  • https://github.com/arduino/arduino-ide/releases/tag/2.0.0-rc3
  • +
+
+
+
+ + + https://github.com/arduino/arduino-ide/raw/main/static/screenshot.png + Image of Arduino IDE v2 + + + http://www.arduino.cc/ + https://www.arduino.cc/en/Guide/HomePage + https://github.com/arduino/Arduino/issues + https://github.com/arduino/Arduino/tree/master/arduino-core/src/processing/app/i18n + https://www.arduino.cc/en/Main/Contribute + + arduino.appdata.xml@mavit.org.uk + +
diff --git a/cc.arduino.arduinoide.desktop b/cc.arduino.arduinoide.desktop new file mode 100644 index 0000000..23ad2e9 --- /dev/null +++ b/cc.arduino.arduinoide.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=Arduino IDE +Exec=arduino-ide +Icon=cc.arduino.arduinoide +Comment=Arduino IDE v2 on Flathub +Terminal=false +Type=Application +Categories=Development;IDE;Java; +StartupWMClass=jetbrains-studio diff --git a/cc.arduino.arduinoide.json b/cc.arduino.arduinoide.json index abedf68..dda8e6f 100644 --- a/cc.arduino.arduinoide.json +++ b/cc.arduino.arduinoide.json @@ -1,20 +1,9 @@ { "app-id": "cc.arduino.arduinoide", - "command": "arduino", "runtime": "org.freedesktop.Platform", "runtime-version": "21.08", "sdk": "org.freedesktop.Sdk", - "sdk-extensions": [ - "org.freedesktop.Sdk.Extension.openjdk8" - ], - "rename-icon": "arduino", - "build-options": { - "cflags": "-O2 -g", - "cxxflags": "-O2 -g", - "env": { - "V": "1" - } - }, + "command": "arduino-ide", "finish-args": [ "--socket=x11", "--share=ipc", @@ -22,22 +11,7 @@ "--device=all", "--filesystem=home" ], - "cleanup": [ - "/include", - "/lib/pkgconfig", - "/share/aclocal", - "/share/info", - "/bin/usbhid-dump", - "/share/man" - ], "modules": [ - { - "name": "openjdk", - "buildsystem": "simple", - "build-commands": [ - "/usr/lib/sdk/openjdk8/install.sh" - ] - }, "shared-modules/libusb/libusb.json", { "name": "usbutils", @@ -56,292 +30,60 @@ ] }, { - "name": "arduino", + "name": "arduino-ide", "buildsystem": "simple", - "build-options": { - "env": { - "PATH": "/usr/bin:/usr/lib/sdk/openjdk8/bin", - "JAVA_HOME": "/usr/lib/sdk/openjdk8/jvm/java-8-openjdk" - } - }, "build-commands": [ - "./ant/bin/ant --execdebug build", - "mkdir -p /app/bin /app/Arduino", - "cp -a linux/work/* /app/Arduino", - "ln -s /app/Arduino/arduino /app/bin", - "ln -s /app/jre /app/Arduino", - "mv /app/Arduino/jre /app/Arduino/java", - "mkdir -p /app/share/icons/hicolor", - "cp -a /app/Arduino/lib/icons/* /app/share/icons/hicolor", - "install -Dp -m 0644 /app/Arduino/lib/desktop.template /app/share/applications/cc.arduino.arduinoide.desktop", - "desktop-file-edit --set-key=\"Exec\" --set-value=\"arduino %F\" /app/share/applications/${FLATPAK_ID}.desktop", - "desktop-file-edit --set-icon=\"cc.arduino.arduinoide\" /app/share/applications/cc.arduino.arduinoide.desktop", - "install -Dp -m 0644 /app/Arduino/lib/appdata.xml /app/share/metainfo/cc.arduino.arduinoide.appdata.xml", - "install -Dp -m 0644 /app/Arduino/lib/arduino-arduinoide.xml /app/share/mime/packages/cc.arduino.arduinoide.xml" + "ls /app/", + "install -D apply_extra /app/bin/apply_extra", + "install -D arduino-ide.sh /app/bin/arduino-ide", + "install -Dm644 cc.arduino.arduinoide.png /app/share/icons/hicolor/128x128/apps/cc.arduino.arduinoide.png", + "install -Dm644 cc.arduino.arduinoide.appdata.xml /app/share/appdata/cc.arduino.arduinoide.appdata.xml", + "install -Dm644 cc.arduino.arduinoide.desktop /app/share/applications/cc.arduino.arduinoide.desktop" ], - "subdir": "build", "sources": [ - { - "type": "archive", - "url": "https://github.com/arduino/Arduino/releases/download/1.8.19/arduino-1.8.19.tar.xz", - "sha256": "350c7e64a38d562c3c5b61e9b93d4d64455a2c71bd0773a5c593198b8efa578d", - "x-checker-data": { - "type": "anitya", - "project-id": 105, - "version-pattern": "^([\\d.]+)$", - "url-template": "https://github.com/arduino/Arduino/releases/download/$version/arduino-$version.tar.xz" - } - }, - { - "type": "patch", - "path": "arduino-appdata-fixes.patch" - }, - { - "type": "file", - "url": "https://downloads.arduino.cc/reference-1.6.6-3.zip", - "sha256": "c3bfb7f9b408fd99a4a1c0f3b022f0a8b10abae6dc28e35d38b4a0df62903685", - "dest": "build/shared" - }, - { - "type": "file", - "url": "https://downloads.arduino.cc/Galileo_help_files-1.6.2.zip", - "sha256": "1c70276e4783286d59c8ac0132c3286e7dcf6825bea65e25747a94416b07aa61", - "dest": "build/shared" - }, - { - "type": "file", - "url": "https://downloads.arduino.cc/Edison_help_files-1.6.2.zip", - "sha256": "56718ce5b2b090d79dae298f6ff9a09c8c1a77f74e3594a951f7035877cc45f4", - "dest": "build/shared" - }, - { - "type": "file", - "url": "https://downloads.arduino.cc/cores/avr-1.8.3.tar.bz2", - "sha256": "de8a9b982477762d3d3e52fc2b682cdd8ff194dc3f1d46f4debdea6a01b33c14", - "dest": "build" - }, - { - "type": "file", - "url": "https://github.com/arduino/arduino-examples/archive/1.9.1.zip", - "sha256": "900c4885843c3f650b4f34308ba6d45d7117279de628d810c6ec17dd06213684", - "dest": "build", - "dest-filename": "arduino-examples-1.9.1.zip" - }, - { - "type": "file", - "url": "https://github.com/arduino-libraries/Ethernet/archive/2.0.0.zip", - "sha256": "a8a650774a613f6eaeae49e2b32f003e42b65be4adc479944b9d071b98214d41", - "dest": "build", - "dest-filename": "Ethernet-2.0.0.zip" - }, - { - "type": "file", - "url": "https://github.com/arduino-libraries/GSM/archive/1.0.6.zip", - "sha256": "737187d301a6d6eade181488106d3826f6466a926f570fa1d5dfb303729fb1ce", - "dest": "build", - "dest-filename": "GSM-1.0.6.zip" - }, - { - "type": "file", - "url": "https://github.com/arduino-libraries/Stepper/archive/1.1.3.zip", - "sha256": "9bdc308d1b4a0bafde01123c80aa25458bc6bd22609fd3d13f50ae0aeb32dbcf", - "dest": "build", - "dest-filename": "Stepper-1.1.3.zip" - }, - { - "type": "file", - "url": "https://github.com/arduino-libraries/TFT/archive/1.0.6.zip", - "sha256": "bcc8e2a0ec6add55ca13ccca801331c3c090f3d4c46fd0b34545ed0cc7edc9b4", - "dest": "build", - "dest-filename": "TFT-1.0.6.zip" - }, - { - "type": "file", - "url": "https://github.com/arduino-libraries/WiFi/archive/1.2.7.zip", - "sha256": "c61d68237742a39b7d5843496749e123c6721083bd002bcbdd118a630416b2ba", - "dest": "build", - "dest-filename": "WiFi-1.2.7.zip" - }, - { - "type": "file", - "url": "https://github.com/firmata/arduino/archive/2.5.8.zip", - "sha256": "429cdb6f0a4c6b8cadb2d3a3ecb6a50cb083833454332827f67abac26dc6b44a", - "dest": "build", - "dest-filename": "Firmata-2.5.8.zip" - }, - { - "type": "file", - "url": "https://github.com/arduino-libraries/Bridge/archive/1.7.0.zip", - "sha256": "4823cca4e0a60311c0a5bb75a8bced780a99987ccd86f91926559e23ab58f6e2", - "dest": "build", - "dest-filename": "Bridge-1.7.0.zip" - }, - { - "type": "file", - "url": "https://github.com/arduino-libraries/Robot_Control/archive/1.0.4.zip", - "sha256": "077f70f2672c75b8c9c75bf4623db4025407d7e43b9cd281a1088e0e5f5e6ade", - "dest": "build", - "dest-filename": "Robot_Control-1.0.4.zip" - }, - { - "type": "file", - "url": "https://github.com/arduino-libraries/Robot_Motor/archive/1.0.3.zip", - "sha256": "7cf64dc179931da6104f136e78283310940d53f10151f27583599ef36acc7bde", - "dest": "build", - "dest-filename": "Robot_Motor-1.0.3.zip" - }, - { - "type": "file", - "url": "https://github.com/arduino-libraries/RobotIRremote/archive/2.0.0.zip", - "sha256": "06c5dc9b28e0b12003944b16914f9e8fc8a9c31a078269181f174972aeaaba48", - "dest": "build", - "dest-filename": "RobotIRremote-2.0.0.zip" - }, - { - "type": "file", - "url": "https://github.com/arduino-libraries/SpacebrewYun/archive/1.0.2.zip", - "sha256": "48cf66b677dc1ce03643a6bdd222f9be6d86081c29d6dda870108bd075ad1ab5", - "dest": "build", - "dest-filename": "SpacebrewYun-1.0.2.zip" - }, - { - "type": "file", - "url": "https://github.com/arduino-libraries/Temboo/archive/1.2.1.zip", - "sha256": "1dd15dc3a0ea5eaa6f9a9ddcfc2d22f40b4a15736bd585b59257b2a56174dfbb", - "dest": "build", - "dest-filename": "Temboo-1.2.1.zip" - }, - { - "type": "file", - "url": "https://github.com/arduino-libraries/Esplora/archive/1.0.4.zip", - "sha256": "44d9dd32ff15cf6a7aa48ade99fce890501cf09b931bdbad080338345e76d4b5", - "dest": "build", - "dest-filename": "Esplora-1.0.4.zip" - }, - { - "type": "file", - "url": "https://github.com/arduino-libraries/Mouse/archive/1.0.1.zip", - "sha256": "f9faf86c9c51c398aa531cb47d9613bc48ba34ae6af3a992ceb4b8fb3b96d280", - "dest": "build", - "dest-filename": "Mouse-1.0.1.zip" - }, - { - "type": "file", - "url": "https://github.com/arduino-libraries/Keyboard/archive/1.0.2.zip", - "sha256": "a34c261f4746d658647e5632e4bae8641d8055ed354f820f5aeec4904b92ce9f", - "dest": "build", - "dest-filename": "Keyboard-1.0.2.zip" - }, - { - "type": "file", - "url": "https://github.com/arduino-libraries/SD/archive/1.2.4.zip", - "sha256": "df0d17e201600fcdcf2ae9bbd76d2919125d9afc1c73934cd799619bfa4d6f88", - "dest": "build", - "dest-filename": "SD-1.2.4.zip" - }, - { - "type": "file", - "url": "https://github.com/arduino-libraries/Servo/archive/1.1.8.zip", - "sha256": "f267d1406fc721156f762440a633226fa9f510da8007adef1acc5eeafc2775e5", - "dest": "build", - "dest-filename": "Servo-1.1.8.zip" - }, { "type": "file", - "url": "https://github.com/arduino-libraries/LiquidCrystal/archive/1.0.7.zip", - "sha256": "36f513107a565655766647657252f43407755abb6709156492d9133b3ece3df3", - "dest": "build", - "dest-filename": "LiquidCrystal-1.0.7.zip" + "path": "cc.arduino.arduinoide.desktop" }, { "type": "file", - "url": "https://github.com/Adafruit/Adafruit_CircuitPlayground/archive/1.11.3.zip", - "sha256": "60be19022f459e8fab1bf6c0763c675c88257d99db37a2a95c5a63db705fdcb4", - "dest": "build", - "dest-filename": "Adafruit_Circuit_Playground-1.11.3.zip" + "path": "cc.arduino.arduinoide.appdata.xml" }, { "type": "file", - "url": "https://github.com/arduino-libraries/WiFi101-FirmwareUpdater-Plugin/releases/download/v0.12.0/WiFi101-Updater-ArduinoIDE-Plugin-0.12.0.zip", - "sha256": "e9133b4abfed9393d57a89e1cda6ba5af45acfeedabfe32149828f0229da3a48", - "dest": "build/shared" + "path": "cc.arduino.arduinoide.png" }, { - "type": "file", - "url": "https://downloads.arduino.cc/libastylej-2.05.1-5.zip", - "sha256": "def22874099c28d482720ee2a444ec4709f0980bae41f3ebb6033bbc79beb486", - "dest": "build" - }, - { - "type": "file", - "url": "https://downloads.arduino.cc/liblistSerials/liblistSerials-1.4.2-2.zip", - "sha256": "a338d470822de19bd971bd7a71d43f5273ba082baa9236be28c44b47c3e51f6b", - "dest": "build" - }, - { - "only-arches": ["aarch64"], - "type": "file", - "url": "https://downloads.arduino.cc/tools/arduino-builder-linuxaarch64-1.6.1.tar.bz2", - "sha256": "04b70022f1add0e41f8cdf3b5b568ba4b01072185d147a01a893c27085b21f14", - "dest": "build" - }, - { - "only-arches": ["x86_64"], - "type": "file", - "url": "https://downloads.arduino.cc/tools/arduino-builder-linux64-1.6.1.tar.bz2", - "sha256": "4141ee0beac4e6facc5fcf8191fbb0fb9f5441d2407a47a869977531c87b5171", - "dest": "build" - }, - { - "only-arches": ["aarch64"], - "type": "file", - "url": "https://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino7-aarch64-pc-linux-gnu.tar.bz2", - "sha256": "03d322b9df6da17289e9e7c6233c34a8535d9c645c19efc772ba19e56914f339", - "dest": "build/linux" + "type": "extra-data", + "filename": "arduino-ide.zip", + "size": 362856480, + "only-arches": [ + "x86_64" + ], + "url": "https://github.com/arduino/arduino-ide/releases/download/2.0.0-rc3/arduino-ide_2.0.0-rc3_Linux_64bit.zip", + "sha256": "835e69c76fb1d093f1d72f8fe2ea92c1b8cb34a37702de174f85eee4865f78a4" }, { - "only-arches": ["x86_64"], - "type": "file", - "url": "https://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino7-x86_64-pc-linux-gnu.tar.bz2", - "sha256": "bd8c37f6952a2130ac9ee32c53f6a660feb79bee8353c8e289eb60fdcefed91e", - "dest": "build/linux" - }, - { - "only-arches": ["aarch64"], - "type": "file", - "url": "https://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-aarch64-pc-linux-gnu.tar.bz2", - "sha256": "6cf948f751acfe7b96684537f2291c766ec8b54b4f7dc95539864821456fa9fc", - "dest": "build/linux" - }, - { - "only-arches": ["x86_64"], - "type": "file", - "url": "https://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-x86_64-pc-linux-gnu.tar.bz2", - "sha256": "accdfb920af2aabf4f7461d2ac73c0751760f525216dc4e7657427a78c60d13d", - "dest": "build/linux" - }, - { - "only-arches": ["aarch64"], - "type": "file", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.3.0-linux_aarch64.tar.bz2", - "sha256": "835ed8f37cffac37e979d1b0f6041559592d3d98be52f0e8611b76c4858e4113", - "dest": "build/linux" - }, - { - "only-arches": ["x86_64"], - "type": "file", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.3.0-linux_amd64.tar.bz2", - "sha256": "aa45ee2441ffc3a122daec5802941d1fa2ac47adf5c5c481b5e0daa4dc259ffa", - "dest": "build/linux" + "type": "script", + "dest-filename": "apply_extra", + "commands": [ + "unzip /app/extra/arduino-ide.zip", + "rm -f /app/extra/arduino-ide.zip", + "mv /app/extra/arduino-ide_2.0.0-rc3_Linux_64bit /app/extra/arduino-ide", + "chmod 4755 /app/extra/arduino-ide/chrome-sandbox", + "chmod +x /app/extra/arduino-ide/arduino-ide" + ] }, { - "type": "archive", - "url": "https://archive.apache.org/dist/ant/binaries/apache-ant-1.10.11-bin.tar.xz", - "sha256": "baa049855cdecbefa62539555824058e52412e5ebe8f102e1db944cb762e06d9", - "dest": "build/ant" + "type": "script", + "dest-filename": "arduino-ide.sh", + "commands": [ + "exec env \"PATH=$PATH:$EXTRA_PATH\" /app/extra/arduino-ide/arduino-ide --no-sandbox" + ] } ] }, - "python3-pyserial.json" + "python3-pyserial.json", + "shared-modules/libsecret/libsecret.json" ] } diff --git a/cc.arduino.arduinoide.png b/cc.arduino.arduinoide.png new file mode 100644 index 0000000000000000000000000000000000000000..c87f69544d9d50023e73f0181e467eade0877420 GIT binary patch literal 10496 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 Date: Wed, 9 Feb 2022 14:59:35 +0000 Subject: [PATCH 02/23] remove "URL" --- cc.arduino.arduinoide.appdata.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cc.arduino.arduinoide.appdata.xml b/cc.arduino.arduinoide.appdata.xml index 669ff9d..22791bc 100644 --- a/cc.arduino.arduinoide.appdata.xml +++ b/cc.arduino.arduinoide.appdata.xml @@ -22,7 +22,7 @@
    -
  • https://github.com/arduino/arduino-ide/releases/tag/2.0.0-rc3
  • +
  • Updated to version 2 release candidate 3. github.com/arduino/arduino-ide/releases/tag/2.0.0-rc3
From 28713740d0650c8518104ed16b65bb46937070f6 Mon Sep 17 00:00:00 2001 From: Joshua Glass Date: Wed, 9 Feb 2022 17:54:56 +0000 Subject: [PATCH 03/23] Added git to the instance as there was an error from arduino saying git wasn't installed. Added permissions for keychain access (as this is used), wayland access and notifications. --- cc.arduino.arduinoide.json | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/cc.arduino.arduinoide.json b/cc.arduino.arduinoide.json index dda8e6f..1a329c3 100644 --- a/cc.arduino.arduinoide.json +++ b/cc.arduino.arduinoide.json @@ -6,10 +6,14 @@ "command": "arduino-ide", "finish-args": [ "--socket=x11", + "--socket=wayland", "--share=ipc", "--share=network", "--device=all", - "--filesystem=home" + "--filesystem=home", + "--filesystem=xdg-run/keyring", + "--talk-name=org.freedesktop.secrets", + "--talk-name=org.freedesktop.Notifications" ], "modules": [ "shared-modules/libusb/libusb.json", @@ -29,6 +33,24 @@ ] }, + { + "name": "git", + "make-args": [ + "NO_TCLTK=1", + "INSTALL_SYMLINKS=1" + ], + "make-install-args": [ + "NO_TCLTK=1", + "INSTALL_SYMLINKS=1" + ], + "sources": [ + { + "type": "archive", + "url": "https://www.kernel.org/pub/software/scm/git/git-2.35.1.tar.gz", + "sha256": "9845a37dd01f9faaa7d8aa2078399d3aea91b43819a5efea6e2877b0af09bd43" + } + ] + }, { "name": "arduino-ide", "buildsystem": "simple", From b20f7d9b634a1a34be3f45a307bb2c364c6765c0 Mon Sep 17 00:00:00 2001 From: Joshua Glass <28513051+joshuag1000@users.noreply.github.com> Date: Wed, 9 Feb 2022 18:40:49 +0000 Subject: [PATCH 04/23] Update links. --- cc.arduino.arduinoide.appdata.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cc.arduino.arduinoide.appdata.xml b/cc.arduino.arduinoide.appdata.xml index 22791bc..2d94c8f 100644 --- a/cc.arduino.arduinoide.appdata.xml +++ b/cc.arduino.arduinoide.appdata.xml @@ -35,8 +35,8 @@ http://www.arduino.cc/ https://www.arduino.cc/en/Guide/HomePage - https://github.com/arduino/Arduino/issues - https://github.com/arduino/Arduino/tree/master/arduino-core/src/processing/app/i18n + https://github.com//arduino/arduino-ide/issues + https://github.com/arduino/arduino-ide/tree/master/arduino-core/src/processing/app/i18n https://www.arduino.cc/en/Main/Contribute arduino.appdata.xml@mavit.org.uk From e19012b7ede172815d1aae91f45b0b33a72962b5 Mon Sep 17 00:00:00 2001 From: Joshua Glass <28513051+joshuag1000@users.noreply.github.com> Date: Wed, 9 Feb 2022 18:43:57 +0000 Subject: [PATCH 05/23] remove java tag add electronics tag --- cc.arduino.arduinoide.desktop | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cc.arduino.arduinoide.desktop b/cc.arduino.arduinoide.desktop index 23ad2e9..ea81405 100644 --- a/cc.arduino.arduinoide.desktop +++ b/cc.arduino.arduinoide.desktop @@ -5,5 +5,5 @@ Icon=cc.arduino.arduinoide Comment=Arduino IDE v2 on Flathub Terminal=false Type=Application -Categories=Development;IDE;Java; +Categories=Development;IDE;Electronics; StartupWMClass=jetbrains-studio From d5e7fe2a27b5865ce61504a37c91c57bd0fa5684 Mon Sep 17 00:00:00 2001 From: Joshua Glass Date: Wed, 9 Feb 2022 18:54:31 +0000 Subject: [PATCH 06/23] removed pyserial Not needed for v2 --- cc.arduino.arduinoide.json | 1 - python3-pyserial.json | 14 -------------- 2 files changed, 15 deletions(-) delete mode 100644 python3-pyserial.json diff --git a/cc.arduino.arduinoide.json b/cc.arduino.arduinoide.json index 1a329c3..f8a2b65 100644 --- a/cc.arduino.arduinoide.json +++ b/cc.arduino.arduinoide.json @@ -105,7 +105,6 @@ } ] }, - "python3-pyserial.json", "shared-modules/libsecret/libsecret.json" ] } diff --git a/python3-pyserial.json b/python3-pyserial.json deleted file mode 100644 index 4348961..0000000 --- a/python3-pyserial.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "python3-pyserial", - "buildsystem": "simple", - "build-commands": [ - "pip3 install --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"pyserial\"" - ], - "sources": [ - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/07/bc/587a445451b253b285629263eb51c2d8e9bcea4fc97826266d186f96f558/pyserial-3.5-py2.py3-none-any.whl", - "sha256": "c4451db6ba391ca6ca299fb3ec7bae67a5c55dde170964c7a14ceefec02f2cf0" - } - ] -} From b4770874d116073279e45646a98a2ff9eaabfd62 Mon Sep 17 00:00:00 2001 From: Joshua Glass Date: Wed, 9 Feb 2022 21:12:32 +0000 Subject: [PATCH 07/23] Revert "removed pyserial Not needed for v2" Turns out we need this This reverts commit d5e7fe2a27b5865ce61504a37c91c57bd0fa5684. --- cc.arduino.arduinoide.json | 1 + python3-pyserial.json | 14 ++++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 python3-pyserial.json diff --git a/cc.arduino.arduinoide.json b/cc.arduino.arduinoide.json index f8a2b65..1a329c3 100644 --- a/cc.arduino.arduinoide.json +++ b/cc.arduino.arduinoide.json @@ -105,6 +105,7 @@ } ] }, + "python3-pyserial.json", "shared-modules/libsecret/libsecret.json" ] } diff --git a/python3-pyserial.json b/python3-pyserial.json new file mode 100644 index 0000000..4348961 --- /dev/null +++ b/python3-pyserial.json @@ -0,0 +1,14 @@ +{ + "name": "python3-pyserial", + "buildsystem": "simple", + "build-commands": [ + "pip3 install --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"pyserial\"" + ], + "sources": [ + { + "type": "file", + "url": "https://files.pythonhosted.org/packages/07/bc/587a445451b253b285629263eb51c2d8e9bcea4fc97826266d186f96f558/pyserial-3.5-py2.py3-none-any.whl", + "sha256": "c4451db6ba391ca6ca299fb3ec7bae67a5c55dde170964c7a14ceefec02f2cf0" + } + ] +} From 5c9634281e4d8c4ff4592275064d1913ee071517 Mon Sep 17 00:00:00 2001 From: Joshua Glass <28513051+joshuag1000@users.noreply.github.com> Date: Wed, 9 Feb 2022 22:33:45 +0000 Subject: [PATCH 08/23] remove unneeded build line --- cc.arduino.arduinoide.json | 1 - 1 file changed, 1 deletion(-) diff --git a/cc.arduino.arduinoide.json b/cc.arduino.arduinoide.json index 1a329c3..d0bfa5d 100644 --- a/cc.arduino.arduinoide.json +++ b/cc.arduino.arduinoide.json @@ -55,7 +55,6 @@ "name": "arduino-ide", "buildsystem": "simple", "build-commands": [ - "ls /app/", "install -D apply_extra /app/bin/apply_extra", "install -D arduino-ide.sh /app/bin/arduino-ide", "install -Dm644 cc.arduino.arduinoide.png /app/share/icons/hicolor/128x128/apps/cc.arduino.arduinoide.png", From ab5d728229b7534ce88e9a05d9752fcef14b34f1 Mon Sep 17 00:00:00 2001 From: Joshua Glass Date: Wed, 9 Feb 2022 23:23:14 +0000 Subject: [PATCH 09/23] mv command now ambiguous prep for multiple arch --- cc.arduino.arduinoide.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cc.arduino.arduinoide.json b/cc.arduino.arduinoide.json index d0bfa5d..5dee20b 100644 --- a/cc.arduino.arduinoide.json +++ b/cc.arduino.arduinoide.json @@ -90,7 +90,7 @@ "commands": [ "unzip /app/extra/arduino-ide.zip", "rm -f /app/extra/arduino-ide.zip", - "mv /app/extra/arduino-ide_2.0.0-rc3_Linux_64bit /app/extra/arduino-ide", + "mv /app/extra/arduino-ide* /app/extra/arduino-ide", "chmod 4755 /app/extra/arduino-ide/chrome-sandbox", "chmod +x /app/extra/arduino-ide/arduino-ide" ] From 0d48e72cfcc49fd3d0c277a405c77664c100ac82 Mon Sep 17 00:00:00 2001 From: Joshua Glass Date: Tue, 22 Feb 2022 19:19:20 +0000 Subject: [PATCH 10/23] Just some changes in the install method. --- .gitignore | 2 ++ cc.arduino.arduinoide.json | 27 ++++++++------------------- 2 files changed, 10 insertions(+), 19 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..77276a2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +Build/ +.flatpak-builder/ diff --git a/cc.arduino.arduinoide.json b/cc.arduino.arduinoide.json index 5dee20b..3d6537f 100644 --- a/cc.arduino.arduinoide.json +++ b/cc.arduino.arduinoide.json @@ -17,6 +17,8 @@ ], "modules": [ "shared-modules/libusb/libusb.json", + "python3-pyserial.json", + "shared-modules/libsecret/libsecret.json", { "name": "usbutils", "config-opts": [ @@ -55,7 +57,7 @@ "name": "arduino-ide", "buildsystem": "simple", "build-commands": [ - "install -D apply_extra /app/bin/apply_extra", + "mv ./arduino-ide /app/arduino-ide", "install -D arduino-ide.sh /app/bin/arduino-ide", "install -Dm644 cc.arduino.arduinoide.png /app/share/icons/hicolor/128x128/apps/cc.arduino.arduinoide.png", "install -Dm644 cc.arduino.arduinoide.appdata.xml /app/share/appdata/cc.arduino.arduinoide.appdata.xml", @@ -75,36 +77,23 @@ "path": "cc.arduino.arduinoide.png" }, { - "type": "extra-data", - "filename": "arduino-ide.zip", - "size": 362856480, + "type": "archive", + "dest-filename": "arduino-ide.zip", + "dest": "arduino-ide", "only-arches": [ "x86_64" ], "url": "https://github.com/arduino/arduino-ide/releases/download/2.0.0-rc3/arduino-ide_2.0.0-rc3_Linux_64bit.zip", "sha256": "835e69c76fb1d093f1d72f8fe2ea92c1b8cb34a37702de174f85eee4865f78a4" }, - { - "type": "script", - "dest-filename": "apply_extra", - "commands": [ - "unzip /app/extra/arduino-ide.zip", - "rm -f /app/extra/arduino-ide.zip", - "mv /app/extra/arduino-ide* /app/extra/arduino-ide", - "chmod 4755 /app/extra/arduino-ide/chrome-sandbox", - "chmod +x /app/extra/arduino-ide/arduino-ide" - ] - }, { "type": "script", "dest-filename": "arduino-ide.sh", "commands": [ - "exec env \"PATH=$PATH:$EXTRA_PATH\" /app/extra/arduino-ide/arduino-ide --no-sandbox" + "exec /app/arduino-ide/arduino-ide --no-sandbox" ] } ] - }, - "python3-pyserial.json", - "shared-modules/libsecret/libsecret.json" + } ] } From 64e7262ae5c4f7c3776f89f73bc392e2927d81b6 Mon Sep 17 00:00:00 2001 From: Joshua Glass Date: Wed, 2 Mar 2022 18:33:28 +0000 Subject: [PATCH 11/23] Update to release candidate 4, Still unable to get zypak working however i am going to try compiling from source later --- cc.arduino.arduinoide.json | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/cc.arduino.arduinoide.json b/cc.arduino.arduinoide.json index 3d6537f..3a9f4b6 100644 --- a/cc.arduino.arduinoide.json +++ b/cc.arduino.arduinoide.json @@ -7,6 +7,7 @@ "finish-args": [ "--socket=x11", "--socket=wayland", + "--socket=system-bus", "--share=ipc", "--share=network", "--device=all", @@ -83,14 +84,14 @@ "only-arches": [ "x86_64" ], - "url": "https://github.com/arduino/arduino-ide/releases/download/2.0.0-rc3/arduino-ide_2.0.0-rc3_Linux_64bit.zip", - "sha256": "835e69c76fb1d093f1d72f8fe2ea92c1b8cb34a37702de174f85eee4865f78a4" + "url": "https://github.com/arduino/arduino-ide/releases/download/2.0.0-rc4/arduino-ide_2.0.0-rc4_Linux_64bit.zip", + "sha256": "1f498f8299ffd7815ca0dd2e856a9000a3dfc60f5f9e958bc57a9ab2c9bb300e" }, { "type": "script", "dest-filename": "arduino-ide.sh", "commands": [ - "exec /app/arduino-ide/arduino-ide --no-sandbox" + "exec /app/arduino-ide/arduino-ide --no-sandbox \"$@\"" ] } ] From 1c0f203371983152168b227fdf53e2a2152a8249 Mon Sep 17 00:00:00 2001 From: Joshua Glass Date: Wed, 2 Mar 2022 18:36:50 +0000 Subject: [PATCH 12/23] Update xml --- cc.arduino.arduinoide.appdata.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/cc.arduino.arduinoide.appdata.xml b/cc.arduino.arduinoide.appdata.xml index 2d94c8f..3108080 100644 --- a/cc.arduino.arduinoide.appdata.xml +++ b/cc.arduino.arduinoide.appdata.xml @@ -19,6 +19,7 @@

+
    From 78185c56c00323ca612859a94249e857fb0c72bb Mon Sep 17 00:00:00 2001 From: Joshua Glass <28513051+joshuag1000@users.noreply.github.com> Date: Wed, 2 Mar 2022 19:02:44 +0000 Subject: [PATCH 13/23] repair xml file (oops) --- cc.arduino.arduinoide.appdata.xml | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/cc.arduino.arduinoide.appdata.xml b/cc.arduino.arduinoide.appdata.xml index 3108080..63e13f7 100644 --- a/cc.arduino.arduinoide.appdata.xml +++ b/cc.arduino.arduinoide.appdata.xml @@ -19,14 +19,20 @@

    - + + +
      +
    • Updated to version 2 release candidate 4. github.com/arduino/arduino-ide/releases/tag/2.0.0-rc4
    • +
    +
    +
    - -
      -
    • Updated to version 2 release candidate 3. github.com/arduino/arduino-ide/releases/tag/2.0.0-rc3
    • -
    -
    -
    + +
      +
    • Updated to version 2 release candidate 3. github.com/arduino/arduino-ide/releases/tag/2.0.0-rc3
    • +
    +
    +
    From 1ae0767a39542a92e582fc596e511932dd83de48 Mon Sep 17 00:00:00 2001 From: Joshua Date: Thu, 10 Mar 2022 14:25:47 +0000 Subject: [PATCH 14/23] Update to rc5 --- cc.arduino.arduinoide.appdata.xml | 11 +++++++++-- cc.arduino.arduinoide.json | 4 ++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/cc.arduino.arduinoide.appdata.xml b/cc.arduino.arduinoide.appdata.xml index 63e13f7..3bee8ce 100644 --- a/cc.arduino.arduinoide.appdata.xml +++ b/cc.arduino.arduinoide.appdata.xml @@ -19,20 +19,27 @@

    + + +
      +
    • Updated to version 2 release candidate 5. github.com/arduino/arduino-ide/releases/tag/2.0.0-rc5
    • +
    +
    +
    • Updated to version 2 release candidate 4. github.com/arduino/arduino-ide/releases/tag/2.0.0-rc4
    -
    +
    • Updated to version 2 release candidate 3. github.com/arduino/arduino-ide/releases/tag/2.0.0-rc3
    -
    +
    diff --git a/cc.arduino.arduinoide.json b/cc.arduino.arduinoide.json index 3a9f4b6..586dd35 100644 --- a/cc.arduino.arduinoide.json +++ b/cc.arduino.arduinoide.json @@ -84,8 +84,8 @@ "only-arches": [ "x86_64" ], - "url": "https://github.com/arduino/arduino-ide/releases/download/2.0.0-rc4/arduino-ide_2.0.0-rc4_Linux_64bit.zip", - "sha256": "1f498f8299ffd7815ca0dd2e856a9000a3dfc60f5f9e958bc57a9ab2c9bb300e" + "url": "https://github.com/arduino/arduino-ide/releases/download/2.0.0-rc5/arduino-ide_2.0.0-rc5_Linux_64bit.zip", + "sha256": "28df1e5f2457d4f191f19c266d12ca9b31750542c91fd6d00bdf21d533f38664" }, { "type": "script", From 845d1fc8b7270d6d155fb03ff6709fa775ebe658 Mon Sep 17 00:00:00 2001 From: Joshua Glass Date: Wed, 20 Apr 2022 12:45:11 +0100 Subject: [PATCH 15/23] Update to rc6 --- cc.arduino.arduinoide.appdata.xml | 7 +++++++ cc.arduino.arduinoide.json | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/cc.arduino.arduinoide.appdata.xml b/cc.arduino.arduinoide.appdata.xml index 3bee8ce..4bfdce0 100644 --- a/cc.arduino.arduinoide.appdata.xml +++ b/cc.arduino.arduinoide.appdata.xml @@ -19,6 +19,13 @@

    + + +
      +
    • Updated to version 2 release candidate 6. github.com/arduino/arduino-ide/releases/tag/2.0.0-rc6
    • +
    +
    +
      diff --git a/cc.arduino.arduinoide.json b/cc.arduino.arduinoide.json index 586dd35..8d1eb73 100644 --- a/cc.arduino.arduinoide.json +++ b/cc.arduino.arduinoide.json @@ -84,8 +84,8 @@ "only-arches": [ "x86_64" ], - "url": "https://github.com/arduino/arduino-ide/releases/download/2.0.0-rc5/arduino-ide_2.0.0-rc5_Linux_64bit.zip", - "sha256": "28df1e5f2457d4f191f19c266d12ca9b31750542c91fd6d00bdf21d533f38664" + "url": "https://github.com/arduino/arduino-ide/releases/download/2.0.0-rc6/arduino-ide_2.0.0-rc6_Linux_64bit.zip", + "sha256": "6c4a60d18d30895fe0de6872ca89b5404bf1a2874e32bf3d958a9e6a934e824f" }, { "type": "script", From 05535d46cecb5edcdb6e66506014f0cec0f344dd Mon Sep 17 00:00:00 2001 From: Joshua Glass Date: Mon, 9 May 2022 20:51:10 +0100 Subject: [PATCH 16/23] Updated Git version. --- arduino-ide.sh | 13 +++++++++++++ cc.arduino.arduinoide.json | 20 +++++++++++--------- 2 files changed, 24 insertions(+), 9 deletions(-) create mode 100644 arduino-ide.sh diff --git a/arduino-ide.sh b/arduino-ide.sh new file mode 100644 index 0000000..a72e70a --- /dev/null +++ b/arduino-ide.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +FLAGS='--no-sandbox' + +if [[ $XDG_SESSION_TYPE == "wayland" ]] && [ -c /dev/nvidia0 ] +then + FLAGS="$FLAGS --disable-gpu-sandbox" +fi + +# I'm Unable to get this working just yet. +#env TMPDIR=$XDG_CACHE_HOME zypak-wrapper /app/arduino-ide/arduino-ide $FLAGS "$@" + +exec /app/arduino-ide/arduino-ide $FLAGS "$@" diff --git a/cc.arduino.arduinoide.json b/cc.arduino.arduinoide.json index 8d1eb73..f24cacf 100644 --- a/cc.arduino.arduinoide.json +++ b/cc.arduino.arduinoide.json @@ -1,13 +1,17 @@ { "app-id": "cc.arduino.arduinoide", + "base": "org.electronjs.Electron2.BaseApp", + "base-version": "21.08", "runtime": "org.freedesktop.Platform", "runtime-version": "21.08", "sdk": "org.freedesktop.Sdk", "command": "arduino-ide", + "separate-locales": false, "finish-args": [ "--socket=x11", "--socket=wayland", "--socket=system-bus", + "--socket=pulseaudio", "--share=ipc", "--share=network", "--device=all", @@ -16,6 +20,7 @@ "--talk-name=org.freedesktop.secrets", "--talk-name=org.freedesktop.Notifications" ], + "modules": [ "shared-modules/libusb/libusb.json", "python3-pyserial.json", @@ -49,8 +54,8 @@ "sources": [ { "type": "archive", - "url": "https://www.kernel.org/pub/software/scm/git/git-2.35.1.tar.gz", - "sha256": "9845a37dd01f9faaa7d8aa2078399d3aea91b43819a5efea6e2877b0af09bd43" + "url": "https://www.kernel.org/pub/software/scm/git/git-2.36.1.tar.gz", + "sha256": "37d936fd17c81aa9ddd3dba4e56e88a45fa534ad0ba946454e8ce818760c6a2c" } ] }, @@ -65,6 +70,10 @@ "install -Dm644 cc.arduino.arduinoide.desktop /app/share/applications/cc.arduino.arduinoide.desktop" ], "sources": [ + { + "type": "file", + "path": "arduino-ide.sh" + }, { "type": "file", "path": "cc.arduino.arduinoide.desktop" @@ -86,13 +95,6 @@ ], "url": "https://github.com/arduino/arduino-ide/releases/download/2.0.0-rc6/arduino-ide_2.0.0-rc6_Linux_64bit.zip", "sha256": "6c4a60d18d30895fe0de6872ca89b5404bf1a2874e32bf3d958a9e6a934e824f" - }, - { - "type": "script", - "dest-filename": "arduino-ide.sh", - "commands": [ - "exec /app/arduino-ide/arduino-ide --no-sandbox \"$@\"" - ] } ] } From 03b024087856f4f5a85cf8a69a65caaeccd41639 Mon Sep 17 00:00:00 2001 From: Joshua Glass <28513051+joshuag1000@users.noreply.github.com> Date: Thu, 19 May 2022 23:41:13 +0100 Subject: [PATCH 17/23] Update cc.arduino.arduinoide.desktop --- cc.arduino.arduinoide.desktop | 1 - 1 file changed, 1 deletion(-) diff --git a/cc.arduino.arduinoide.desktop b/cc.arduino.arduinoide.desktop index ea81405..c93e172 100644 --- a/cc.arduino.arduinoide.desktop +++ b/cc.arduino.arduinoide.desktop @@ -6,4 +6,3 @@ Comment=Arduino IDE v2 on Flathub Terminal=false Type=Application Categories=Development;IDE;Electronics; -StartupWMClass=jetbrains-studio From 0c5fff8bde18c6338c0cbe425970edfd6873c75e Mon Sep 17 00:00:00 2001 From: Joshua Glass Date: Fri, 20 May 2022 11:01:08 +0100 Subject: [PATCH 18/23] Updated to build from source Needs work to tidy. todo later --- cc.arduino.arduinoide.json | 43 ++++++++++++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 9 deletions(-) diff --git a/cc.arduino.arduinoide.json b/cc.arduino.arduinoide.json index f24cacf..96e6981 100644 --- a/cc.arduino.arduinoide.json +++ b/cc.arduino.arduinoide.json @@ -5,6 +5,9 @@ "runtime": "org.freedesktop.Platform", "runtime-version": "21.08", "sdk": "org.freedesktop.Sdk", + "sdk-extensions": [ + "org.freedesktop.Sdk.Extension.node14" + ], "command": "arduino-ide", "separate-locales": false, "finish-args": [ @@ -20,6 +23,12 @@ "--talk-name=org.freedesktop.secrets", "--talk-name=org.freedesktop.Notifications" ], + "build-options": { + "append-path": "/usr/lib/sdk/node14/bin", + "env": { + "NPM_CONFIG_LOGLEVEL": "info" + } + }, "modules": [ "shared-modules/libusb/libusb.json", @@ -62,8 +71,28 @@ { "name": "arduino-ide", "buildsystem": "simple", + "build-options": { + "build-args": [ + "--share=network" + ], + "env": { + "XDG_CACHE_HOME": "/run/build/arduino-ide/flatpak-node/cache", + "npm_config_cache": "/run/build/arduino-ide/flatpak-node/npm-cache", + "npm_config_nodedir": "/usr/lib/sdk/node14", + "npm_config_no_save": "true", + "npm_config_loglevel": "verbose", + "npm_config_offline": "false", + "YARN_DISABLE_SELF_UPDATE_CHECK": "true" + } + }, "build-commands": [ - "mv ./arduino-ide /app/arduino-ide", + "yarn --cwd ./build/arduino-ide-source/electron/packager/", + "yarn --cwd ./build/arduino-ide-source/electron/packager/ package", + "mv ./build/arduino-ide-source/electron/build/dist/*Linux_64bit.zip ./build/arduino-ide.zip", + "unzip ./build/arduino-ide.zip -d ./build/arduino-ide/", + "rm -f ./build/arduino-ide.zip", + "mv ./build/arduino-ide/ /app/arduino-ide/", + "rm -rf ./build/", "install -D arduino-ide.sh /app/bin/arduino-ide", "install -Dm644 cc.arduino.arduinoide.png /app/share/icons/hicolor/128x128/apps/cc.arduino.arduinoide.png", "install -Dm644 cc.arduino.arduinoide.appdata.xml /app/share/appdata/cc.arduino.arduinoide.appdata.xml", @@ -87,14 +116,10 @@ "path": "cc.arduino.arduinoide.png" }, { - "type": "archive", - "dest-filename": "arduino-ide.zip", - "dest": "arduino-ide", - "only-arches": [ - "x86_64" - ], - "url": "https://github.com/arduino/arduino-ide/releases/download/2.0.0-rc6/arduino-ide_2.0.0-rc6_Linux_64bit.zip", - "sha256": "6c4a60d18d30895fe0de6872ca89b5404bf1a2874e32bf3d958a9e6a934e824f" + "type": "git", + "url": "https://github.com/arduino/arduino-ide.git", + "tag": "2.0.0-rc6", + "dest": "build/arduino-ide-source" } ] } From 8177a7a0f51d0f5da7a5dd158456340ac1a05612 Mon Sep 17 00:00:00 2001 From: Joshua Glass Date: Fri, 20 May 2022 16:38:11 +0100 Subject: [PATCH 19/23] Updated to v2 icon --- cc.arduino.arduinoide.png | Bin 10496 -> 77329 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/cc.arduino.arduinoide.png b/cc.arduino.arduinoide.png index c87f69544d9d50023e73f0181e467eade0877420..ec2ecfcbf70c19cc63803b1b6ab074588eb2c96c 100644 GIT binary patch literal 77329 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 Date: Fri, 20 May 2022 16:43:35 +0100 Subject: [PATCH 20/23] Prep for zypak - possible --- arduino-ide.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arduino-ide.sh b/arduino-ide.sh index a72e70a..f85179c 100644 --- a/arduino-ide.sh +++ b/arduino-ide.sh @@ -8,6 +8,8 @@ then fi # I'm Unable to get this working just yet. +#ELECTRON_RUN_AS_NODE=1 +#ZYPAK_SPAWN_LATEST_ON_REEXEC=0 #env TMPDIR=$XDG_CACHE_HOME zypak-wrapper /app/arduino-ide/arduino-ide $FLAGS "$@" exec /app/arduino-ide/arduino-ide $FLAGS "$@" From 8e9a7ce7883f6079fee01b0590e9947c1a9c6428 Mon Sep 17 00:00:00 2001 From: Joshua Glass Date: Fri, 20 May 2022 16:43:52 +0100 Subject: [PATCH 21/23] Revert "Updated to build from source Needs work to tidy. todo later" This reverts commit 0c5fff8bde18c6338c0cbe425970edfd6873c75e. --- cc.arduino.arduinoide.json | 43 ++++++++------------------------------ 1 file changed, 9 insertions(+), 34 deletions(-) diff --git a/cc.arduino.arduinoide.json b/cc.arduino.arduinoide.json index 96e6981..f24cacf 100644 --- a/cc.arduino.arduinoide.json +++ b/cc.arduino.arduinoide.json @@ -5,9 +5,6 @@ "runtime": "org.freedesktop.Platform", "runtime-version": "21.08", "sdk": "org.freedesktop.Sdk", - "sdk-extensions": [ - "org.freedesktop.Sdk.Extension.node14" - ], "command": "arduino-ide", "separate-locales": false, "finish-args": [ @@ -23,12 +20,6 @@ "--talk-name=org.freedesktop.secrets", "--talk-name=org.freedesktop.Notifications" ], - "build-options": { - "append-path": "/usr/lib/sdk/node14/bin", - "env": { - "NPM_CONFIG_LOGLEVEL": "info" - } - }, "modules": [ "shared-modules/libusb/libusb.json", @@ -71,28 +62,8 @@ { "name": "arduino-ide", "buildsystem": "simple", - "build-options": { - "build-args": [ - "--share=network" - ], - "env": { - "XDG_CACHE_HOME": "/run/build/arduino-ide/flatpak-node/cache", - "npm_config_cache": "/run/build/arduino-ide/flatpak-node/npm-cache", - "npm_config_nodedir": "/usr/lib/sdk/node14", - "npm_config_no_save": "true", - "npm_config_loglevel": "verbose", - "npm_config_offline": "false", - "YARN_DISABLE_SELF_UPDATE_CHECK": "true" - } - }, "build-commands": [ - "yarn --cwd ./build/arduino-ide-source/electron/packager/", - "yarn --cwd ./build/arduino-ide-source/electron/packager/ package", - "mv ./build/arduino-ide-source/electron/build/dist/*Linux_64bit.zip ./build/arduino-ide.zip", - "unzip ./build/arduino-ide.zip -d ./build/arduino-ide/", - "rm -f ./build/arduino-ide.zip", - "mv ./build/arduino-ide/ /app/arduino-ide/", - "rm -rf ./build/", + "mv ./arduino-ide /app/arduino-ide", "install -D arduino-ide.sh /app/bin/arduino-ide", "install -Dm644 cc.arduino.arduinoide.png /app/share/icons/hicolor/128x128/apps/cc.arduino.arduinoide.png", "install -Dm644 cc.arduino.arduinoide.appdata.xml /app/share/appdata/cc.arduino.arduinoide.appdata.xml", @@ -116,10 +87,14 @@ "path": "cc.arduino.arduinoide.png" }, { - "type": "git", - "url": "https://github.com/arduino/arduino-ide.git", - "tag": "2.0.0-rc6", - "dest": "build/arduino-ide-source" + "type": "archive", + "dest-filename": "arduino-ide.zip", + "dest": "arduino-ide", + "only-arches": [ + "x86_64" + ], + "url": "https://github.com/arduino/arduino-ide/releases/download/2.0.0-rc6/arduino-ide_2.0.0-rc6_Linux_64bit.zip", + "sha256": "6c4a60d18d30895fe0de6872ca89b5404bf1a2874e32bf3d958a9e6a934e824f" } ] } From 823bc65f2fcd2641c4e7a3922573f4938dfe3f6f Mon Sep 17 00:00:00 2001 From: Joshua Glass Date: Fri, 20 May 2022 17:07:13 +0100 Subject: [PATCH 22/23] I cracked zypak's secrets Zypak should work now meaning that --no-sandbox is nolonger needed still struggling with compile from source but i will get there in the future. --- arduino-ide.sh | 11 ++++------- cc.arduino.arduinoide.json | 16 ++++++++++++++-- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/arduino-ide.sh b/arduino-ide.sh index f85179c..7c267cc 100644 --- a/arduino-ide.sh +++ b/arduino-ide.sh @@ -1,15 +1,12 @@ #!/bin/bash -FLAGS='--no-sandbox' +FLAGS='' if [[ $XDG_SESSION_TYPE == "wayland" ]] && [ -c /dev/nvidia0 ] then FLAGS="$FLAGS --disable-gpu-sandbox" fi -# I'm Unable to get this working just yet. -#ELECTRON_RUN_AS_NODE=1 -#ZYPAK_SPAWN_LATEST_ON_REEXEC=0 -#env TMPDIR=$XDG_CACHE_HOME zypak-wrapper /app/arduino-ide/arduino-ide $FLAGS "$@" - -exec /app/arduino-ide/arduino-ide $FLAGS "$@" +# I cracked zypak's secrets +export ZYPAK_SPAWN_LATEST_ON_REEXEC=0 +env TMPDIR=$XDG_CACHE_HOME zypak-wrapper /app/arduino-ide/arduino-ide /app/arduino-ide/resources/app/src-gen/frontend/electron-main.js $FLAGS "$@" diff --git a/cc.arduino.arduinoide.json b/cc.arduino.arduinoide.json index f24cacf..36f249b 100644 --- a/cc.arduino.arduinoide.json +++ b/cc.arduino.arduinoide.json @@ -1,7 +1,5 @@ { "app-id": "cc.arduino.arduinoide", - "base": "org.electronjs.Electron2.BaseApp", - "base-version": "21.08", "runtime": "org.freedesktop.Platform", "runtime-version": "21.08", "sdk": "org.freedesktop.Sdk", @@ -97,6 +95,20 @@ "sha256": "6c4a60d18d30895fe0de6872ca89b5404bf1a2874e32bf3d958a9e6a934e824f" } ] + }, + { + "name": "zypak", + "sources": [ + { + "type": "git", + "url": "https://github.com/refi64/zypak.git", + "tag": "v2022.04", + "commit": "55a60d110301e8dd37b631503c3524ab7baaf7aa", + "x-checker-data": { + "type": "git" + } + } + ] } ] } From 940f682f4f1168d1ec6980790f6143bcf33c8e3b Mon Sep 17 00:00:00 2001 From: Joshua Glass Date: Fri, 20 May 2022 22:46:05 +0100 Subject: [PATCH 23/23] Updated the manifest to correct any innacurate data. --- cc.arduino.arduinoide.appdata.xml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/cc.arduino.arduinoide.appdata.xml b/cc.arduino.arduinoide.appdata.xml index 4bfdce0..26198ef 100644 --- a/cc.arduino.arduinoide.appdata.xml +++ b/cc.arduino.arduinoide.appdata.xml @@ -3,7 +3,7 @@ cc.arduino.arduinoide.desktop CC-BY-SA-3.0 AGPL-3.0 - Arduino IDE + Arduino IDE 2.x Open-source electronics prototyping platform Arduino LLC @@ -17,7 +17,11 @@ Included is an integrated development environment that can be used to develop and upload code to compatible microcontrollers.

      +

      + This is version 2 of the Arduino IDE. Version 2 is currently still in beta. +

      + @@ -48,18 +52,19 @@ + https://github.com/arduino/arduino-ide/raw/main/static/screenshot.png Image of Arduino IDE v2 + http://www.arduino.cc/ - https://www.arduino.cc/en/Guide/HomePage + https://docs.arduino.cc/software/ide-v2 https://github.com//arduino/arduino-ide/issues - https://github.com/arduino/arduino-ide/tree/master/arduino-core/src/processing/app/i18n - https://www.arduino.cc/en/Main/Contribute + https://github.com/arduino/arduino-ide/tree/main/i18n + https://www.arduino.cc/en/donate/ - arduino.appdata.xml@mavit.org.uk