From 4c4e950d3d5151b664468cd112f504dbcbc7764f Mon Sep 17 00:00:00 2001
From: neochaos42 <125705606+neochaos42@users.noreply.github.com>
Date: Thu, 27 Mar 2025 00:34:05 -0500
Subject: [PATCH 01/17] Update build.yml

Add linux arm 64 builds
---
 .github/workflows/build.yml | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 5bb25811a..b6e51a66a 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -16,7 +16,7 @@ on:
       - 'static/**'
       - '*.md'
     tags:
-      - '[0-9]+.[0-9]+.[0-9]+*'
+      - '[0-9]+.[0-9]+.[0-9]+*'   
   workflow_dispatch:
     inputs:
       paid-runners:
@@ -133,6 +133,16 @@ env:
           name: macOS_arm64_dmg
         - path: '*macOS_arm64.zip'
           name: macOS_arm64_zip
+    - config:
+        name: ARM Ubuntu 22.04
+        runs-on: ubuntu-22.04-arm
+        container: |
+          null
+        job-transfer-artifact-suffix: ARM_64bit
+        mergeable-channel-file: 'false'
+      artifacts:
+        - path: '*ARM_64bit.tar.gz'
+          name: ARM_64bit_tarball
   PAID_RUNNER_BUILD_DATA: |
     # This system was implemented to allow selective use of paid GitHub-hosted runners, due to the Apple Silicon runner
     # incurring a charge at that time. Free Apple Silicon runners are now available so the configuration was moved to
@@ -289,7 +299,7 @@ jobs:
       # to skip passing signing credentials to electron-builder
       IS_WINDOWS_CONFIG: ${{ matrix.config.name == 'Windows' }}
       INSTALLER_CERT_WINDOWS_CER: "/tmp/cert.cer"
-      # We are hardcoding the path for signtool because is not present on the windows PATH env var by default.
+      # We are hardcoding the path for signtool because it is not present on the Windows PATH env var by default.
       # Keep in mind that this path could change when upgrading to a new runner version
       SIGNTOOL_PATH: "C:/Program Files (x86)/Windows Kits/10/bin/10.0.19041.0/x86/signtool.exe"
       WIN_CERT_PASSWORD: ${{ secrets[matrix.config.certificate-password-secret] }}
@@ -308,6 +318,10 @@ jobs:
     timeout-minutes: 90
 
     steps:
+      - name: Install Chromium (ARM only)
+        if: matrix.config.name == 'ARM Ubuntu 22.04'
+        run: sudo apt-get update && sudo apt-get install -y chromium-browser
+
       - name: Symlink custom working directory
         shell: cmd
         if: runner.os == 'Windows' && matrix.config.working-directory
@@ -317,7 +331,6 @@ jobs:
       - name: Checkout
         uses: actions/checkout@v4
 
-
       - name: Install Node.js
         if: runner.name != 'WINDOWS-SIGN-PC'
         uses: actions/setup-node@v4

From 937c2746fcdd8f29778b9872e94fc6f841dd6935 Mon Sep 17 00:00:00 2001
From: neochaos42 <125705606+neochaos42@users.noreply.github.com>
Date: Wed, 16 Apr 2025 18:46:10 -0500
Subject: [PATCH 02/17] Update build.yml

---
 .github/workflows/build.yml | 19 +++----------------
 1 file changed, 3 insertions(+), 16 deletions(-)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 957e75d70..8d8fb2557 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -16,7 +16,7 @@ on:
       - 'static/**'
       - '*.md'
     tags:
-      - '[0-9]+.[0-9]+.[0-9]+*'   
+      - '[0-9]+.[0-9]+.[0-9]+*'
   workflow_dispatch:
     inputs:
       paid-runners:
@@ -133,16 +133,6 @@ env:
           name: macOS_arm64_dmg
         - path: '*macOS_arm64.zip'
           name: macOS_arm64_zip
-    - config:
-        name: ARM Ubuntu 22.04
-        runs-on: ubuntu-22.04-arm
-        container: |
-          null
-        job-transfer-artifact-suffix: ARM_64bit
-        mergeable-channel-file: 'false'
-      artifacts:
-        - path: '*ARM_64bit.tar.gz'
-          name: ARM_64bit_tarball
   PAID_RUNNER_BUILD_DATA: |
     # This system was implemented to allow selective use of paid GitHub-hosted runners, due to the Apple Silicon runner
     # incurring a charge at that time. Free Apple Silicon runners are now available so the configuration was moved to
@@ -300,7 +290,7 @@ jobs:
       # to skip passing signing credentials to electron-builder
       IS_WINDOWS_CONFIG: ${{ matrix.config.name == 'Windows' }}
       INSTALLER_CERT_WINDOWS_CER: "/tmp/cert.cer"
-      # We are hardcoding the path for signtool because it is not present on the Windows PATH env var by default.
+      # We are hardcoding the path for signtool because is not present on the windows PATH env var by default.
       # Keep in mind that this path could change when upgrading to a new runner version
       SIGNTOOL_PATH: "C:/Program Files (x86)/Windows Kits/10/bin/10.0.19041.0/x86/signtool.exe"
       WIN_CERT_PASSWORD: ${{ secrets[matrix.config.certificate-password-secret] }}
@@ -320,10 +310,6 @@ jobs:
     timeout-minutes: 90
 
     steps:
-      - name: Install Chromium (ARM only)
-        if: matrix.config.name == 'ARM Ubuntu 22.04'
-        run: sudo apt-get update && sudo apt-get install -y chromium-browser
-
       - name: Symlink custom working directory
         shell: cmd
         if: runner.os == 'Windows' && matrix.config.working-directory
@@ -333,6 +319,7 @@ jobs:
       - name: Checkout
         uses: actions/checkout@v4
 
+
       - name: Install Node.js
         if: runner.name != 'WINDOWS-SIGN-PC'
         uses: actions/setup-node@v4

From d99e577c9325f20e744f12ee0875098cfb504c77 Mon Sep 17 00:00:00 2001
From: neochaos42 <125705606+neochaos42@users.noreply.github.com>
Date: Wed, 16 Apr 2025 19:02:05 -0500
Subject: [PATCH 03/17] Update build.yml


From c5af77de9c2acec90f073ab64afbbdb626865e03 Mon Sep 17 00:00:00 2001
From: neochaos42 <125705606+neochaos42@users.noreply.github.com>
Date: Wed, 16 Apr 2025 19:03:29 -0500
Subject: [PATCH 04/17] Update build.yml

---
 .github/workflows/build.yml | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 8d8fb2557..939bf3fbc 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -16,7 +16,7 @@ on:
       - 'static/**'
       - '*.md'
     tags:
-      - '[0-9]+.[0-9]+.[0-9]+*'
+      - '[0-9]+.[0-9]+.[0-9]+*'   
   workflow_dispatch:
     inputs:
       paid-runners:
@@ -133,6 +133,18 @@ env:
           name: macOS_arm64_dmg
         - path: '*macOS_arm64.zip'
           name: macOS_arm64_zip
+    - config:
+        name: ARM Ubuntu 22.04
+        runs-on: ubuntu-22.04-arm
+        container: |
+          null
+        job-transfer-artifact-suffix: ARM_64bit
+        mergeable-channel-file: 'true'
+      artifacts:
+        - path: '*Linux_arm64.zip'
+          name: Linux_arm64_zip
+        - path: '*Linux_arm64.AppImage'
+          name: Linux_arm64_app_image
   PAID_RUNNER_BUILD_DATA: |
     # This system was implemented to allow selective use of paid GitHub-hosted runners, due to the Apple Silicon runner
     # incurring a charge at that time. Free Apple Silicon runners are now available so the configuration was moved to
@@ -290,7 +302,7 @@ jobs:
       # to skip passing signing credentials to electron-builder
       IS_WINDOWS_CONFIG: ${{ matrix.config.name == 'Windows' }}
       INSTALLER_CERT_WINDOWS_CER: "/tmp/cert.cer"
-      # We are hardcoding the path for signtool because is not present on the windows PATH env var by default.
+      # We are hardcoding the path for signtool because it is not present on the Windows PATH env var by default.
       # Keep in mind that this path could change when upgrading to a new runner version
       SIGNTOOL_PATH: "C:/Program Files (x86)/Windows Kits/10/bin/10.0.19041.0/x86/signtool.exe"
       WIN_CERT_PASSWORD: ${{ secrets[matrix.config.certificate-password-secret] }}
@@ -310,6 +322,10 @@ jobs:
     timeout-minutes: 90
 
     steps:
+      - name: Install Chromium (ARM only)
+        if: matrix.config.name == 'ARM Ubuntu 22.04'
+        run: sudo apt-get update && sudo apt-get install -y chromium-browser
+
       - name: Symlink custom working directory
         shell: cmd
         if: runner.os == 'Windows' && matrix.config.working-directory
@@ -319,7 +335,6 @@ jobs:
       - name: Checkout
         uses: actions/checkout@v4
 
-
       - name: Install Node.js
         if: runner.name != 'WINDOWS-SIGN-PC'
         uses: actions/setup-node@v4

From 27b1cb528e107609467431705a42fb53ddc780ee Mon Sep 17 00:00:00 2001
From: neochaos42 <125705606+neochaos42@users.noreply.github.com>
Date: Wed, 16 Apr 2025 21:26:14 -0500
Subject: [PATCH 05/17] Update build.yml

---
 .github/workflows/build.yml | 39 +++----------------------------------
 1 file changed, 3 insertions(+), 36 deletions(-)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 939bf3fbc..6a171e6b8 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -139,17 +139,14 @@ env:
         container: |
           null
         job-transfer-artifact-suffix: ARM_64bit
-        mergeable-channel-file: 'true'
+        mergeable-channel-file: 'false'
       artifacts:
-        - path: '*Linux_arm64.zip'
-          name: Linux_arm64_zip
-        - path: '*Linux_arm64.AppImage'
-          name: Linux_arm64_app_image
+        - path: '*ARM_64bit.tar.gz'
+          name: ARM_64bit_tarball
   PAID_RUNNER_BUILD_DATA: |
     # This system was implemented to allow selective use of paid GitHub-hosted runners, due to the Apple Silicon runner
     # incurring a charge at that time. Free Apple Silicon runners are now available so the configuration was moved to
     # `BASE_BUILD_DATA`, but the system was left in place for future use.
-
 jobs:
   run-determination:
     runs-on: ubuntu-latest
@@ -172,9 +169,7 @@ jobs:
             # There is no need to run the other jobs.
             RESULT="false"
           fi
-
           echo "result=$RESULT" >> $GITHUB_OUTPUT
-
   build-type-determination:
     needs: run-determination
     if: needs.run-determination.outputs.result == 'true'
@@ -211,13 +206,11 @@ jobs:
             is_nightly="false"
             channel_name="nightly"
           fi
-
           echo "is-release=$is_release" >> $GITHUB_OUTPUT
           echo "is-nightly=$is_nightly" >> $GITHUB_OUTPUT
           echo "channel-name=$channel_name" >> $GITHUB_OUTPUT
           # Only attempt upload to Amazon S3 if the credentials are available.
           echo "publish-to-s3=${{ secrets.AWS_ROLE_ARN != '' }}" >> $GITHUB_OUTPUT
-
   select-targets:
     needs: build-type-determination
     runs-on: ubuntu-latest
@@ -244,7 +237,6 @@ jobs:
                 --output-format json \
                 '[.[].config]'
             )"
-
             artifact_matrix="$(
               (
                 echo "${{ env.BASE_BUILD_DATA }}";
@@ -254,11 +246,9 @@ jobs:
                 --output-format json \
                 'map(.artifacts[] + (.config | pick(["job-transfer-artifact-suffix"])))'
             )"
-
             # The build matrix produces two macOS jobs (x86 and ARM) so the "channel update info files"
             # generated by each must be merged.
             merge_channel_files="true"
-
           else
             build_matrix="$(
               echo "${{ env.BASE_BUILD_DATA }}" | \
@@ -266,31 +256,25 @@ jobs:
                 --output-format json \
                 '[.[].config]'
             )"
-
             artifact_matrix="$(
               echo "${{ env.BASE_BUILD_DATA }}" | \
               yq \
                 --output-format json \
                 'map(.artifacts[] + (.config | pick(["job-transfer-artifact-suffix"])))'
             )"
-
             merge_channel_files="false"
           fi
-
           # Set workflow step outputs.
           # See: https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings
           delimiter="$RANDOM"
           echo "build-matrix<<$delimiter" >> $GITHUB_OUTPUT
           echo "$build_matrix" >> $GITHUB_OUTPUT
           echo "$delimiter" >> $GITHUB_OUTPUT
-
           delimiter="$RANDOM"
           echo "artifact-matrix<<$delimiter" >> $GITHUB_OUTPUT
           echo "$artifact_matrix" >> $GITHUB_OUTPUT
           echo "$delimiter" >> $GITHUB_OUTPUT
-
           echo "merge-channel-files=$merge_channel_files" >> $GITHUB_OUTPUT
-
   build:
     name: build (${{ matrix.config.name }})
     needs:
@@ -331,7 +315,6 @@ jobs:
         if: runner.os == 'Windows' && matrix.config.working-directory
         run: |
           if not exist "${{ matrix.config.working-directory }}" mklink /d "${{ matrix.config.working-directory }}" "C:\actions-runner\_work\arduino-ide\arduino-ide"
-
       - name: Checkout
         uses: actions/checkout@v4
 
@@ -352,7 +335,6 @@ jobs:
             install \
               --global \
               "yarn@${{ env.YARN_VERSION }}"
-
       - name: Install Python 3.x
         if: fromJSON(matrix.config.container) == null && runner.name != 'WINDOWS-SIGN-PC'
         uses: actions/setup-python@v5
@@ -392,15 +374,12 @@ jobs:
             export CSC_KEY_PASSWORD="${{ secrets[matrix.config.certificate-password-secret] }}"
             export CSC_FOR_PULL_REQUEST=true
           fi
-
           npx node-gyp install
           yarn install
-
           yarn --cwd arduino-ide-extension build
           yarn --cwd electron-app rebuild
           yarn --cwd electron-app build
           yarn --cwd electron-app package
-
       # Both macOS jobs generate a "channel update info file" with same path and name. The second job to complete would
       # overwrite the file generated by the first in the workflow artifact.
       - name: Stage channel file for merge
@@ -414,11 +393,9 @@ jobs:
           mv \
             "${{ env.BUILD_ARTIFACTS_PATH }}/${{ needs.build-type-determination.outputs.channel-name }}-mac.yml" \
             "${staged_channel_files_path}/${{ needs.build-type-determination.outputs.channel-name }}-mac-${{ runner.arch }}.yml"
-
           # Set workflow environment variable for use in other steps.
           # See: https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#setting-an-environment-variable
           echo "STAGED_CHANNEL_FILES_PATH=$staged_channel_files_path" >> "$GITHUB_ENV"
-
       - name: Upload staged-for-merge channel file artifact
         uses: actions/upload-artifact@v4
         if: >
@@ -440,7 +417,6 @@ jobs:
         shell: cmd
         run: |
           rmdir /s /q "${{ matrix.config.working-directory }}\${{ env.BUILD_ARTIFACTS_PATH }}"
-
   merge-channel-files:
     needs:
       - build-type-determination
@@ -454,7 +430,6 @@ jobs:
         run: |
           # See: https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#setting-an-environment-variable
           echo "CHANNEL_FILES_PATH=${{ runner.temp }}/channel-files" >> "$GITHUB_ENV"
-
       - name: Checkout
         uses: actions/checkout@v4
 
@@ -493,7 +468,6 @@ jobs:
         run: |
           sudo apt-get update
           sudo apt-get install -y libx11-dev libxkbfile-dev libsecret-1-dev
-
       - name: Install dependencies
         run: yarn
 
@@ -503,7 +477,6 @@ jobs:
             ./scripts/merge-channel-files.js \
               --channel "${{ needs.build-type-determination.outputs.channel-name }}" \
               --input "${{ env.CHANNEL_FILES_PATH }}"
-
       - name: Upload merged channel files job transfer artifact
         uses: actions/upload-artifact@v4
         with:
@@ -570,16 +543,13 @@ jobs:
             fi
           fi
           echo -e "$BODY"
-
           # Set workflow step output
           # See: https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings
           DELIMITER="$RANDOM"
           echo "BODY<<$DELIMITER" >> $GITHUB_OUTPUT
           echo "$BODY" >> $GITHUB_OUTPUT
           echo "$DELIMITER" >> $GITHUB_OUTPUT
-
           echo "$BODY" > CHANGELOG.txt
-
       - name: Upload changelog job transfer artifact
         if: needs.build-type-determination.outputs.is-nightly == 'true'
         uses: actions/upload-artifact@v4
@@ -630,7 +600,6 @@ jobs:
       - name: Publish Nightly [S3]
         run: |
           aws s3 sync ${{ env.ARTIFACTS_FOLDER }} s3://${{ secrets.DOWNLOADS_BUCKET }}/arduino-ide/nightly
-
   release:
     needs:
       - build-type-determination
@@ -668,7 +637,6 @@ jobs:
         id: tag_name
         run: |
           echo "TAG_NAME=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
-
       - name: Publish Release [GitHub]
         uses: svenstaro/upload-release-action@2.9.0
         with:
@@ -690,7 +658,6 @@ jobs:
         if: needs.build-type-determination.outputs.publish-to-s3 == 'true'
         run: |
           aws s3 sync ${{ env.ARTIFACTS_FOLDER }} s3://${{ secrets.DOWNLOADS_BUCKET }}/arduino-ide
-
   clean:
     # This job must run after all jobs that use the transfer artifact.
     needs:

From 2c0bcba812f123a15c54db7a476627595e91b366 Mon Sep 17 00:00:00 2001
From: neochaos42 <125705606+neochaos42@users.noreply.github.com>
Date: Wed, 16 Apr 2025 22:36:50 -0500
Subject: [PATCH 06/17] Update build.yml

---
 .github/workflows/build.yml | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 6a171e6b8..668722065 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -139,10 +139,12 @@ env:
         container: |
           null
         job-transfer-artifact-suffix: ARM_64bit
-        mergeable-channel-file: 'false'
+        mergeable-channel-file: 'true'
       artifacts:
-        - path: '*ARM_64bit.tar.gz'
-          name: ARM_64bit_tarball
+        - path: '*Linux_arm64.zip'
+          name: Linux_arm64_zip
+        - path: '*Linux_arm64.AppImage'
+          name: Linux_arm64_app_image
   PAID_RUNNER_BUILD_DATA: |
     # This system was implemented to allow selective use of paid GitHub-hosted runners, due to the Apple Silicon runner
     # incurring a charge at that time. Free Apple Silicon runners are now available so the configuration was moved to

From c30be536b2bb35a44286c42fb98d1b10598ef243 Mon Sep 17 00:00:00 2001
From: neochaos42 <125705606+neochaos42@users.noreply.github.com>
Date: Thu, 17 Apr 2025 02:42:13 -0500
Subject: [PATCH 07/17] Update build.yml

---
 .github/workflows/build.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 668722065..47d54ddd1 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -133,7 +133,7 @@ env:
           name: macOS_arm64_dmg
         - path: '*macOS_arm64.zip'
           name: macOS_arm64_zip
-    - config:
+     - config:
         name: ARM Ubuntu 22.04
         runs-on: ubuntu-22.04-arm
         container: |

From 10da5e852fb9a8aabed7d4a1d41c182741a635a2 Mon Sep 17 00:00:00 2001
From: neochaos42 <125705606+neochaos42@users.noreply.github.com>
Date: Thu, 17 Apr 2025 02:45:50 -0500
Subject: [PATCH 08/17] Update build.yml

---
 .github/workflows/build.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 47d54ddd1..668722065 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -133,7 +133,7 @@ env:
           name: macOS_arm64_dmg
         - path: '*macOS_arm64.zip'
           name: macOS_arm64_zip
-     - config:
+    - config:
         name: ARM Ubuntu 22.04
         runs-on: ubuntu-22.04-arm
         container: |

From ad88b6987e38915c45ca73d65c53e3e7d9cd8340 Mon Sep 17 00:00:00 2001
From: neochaos42 <125705606+neochaos42@users.noreply.github.com>
Date: Sat, 19 Apr 2025 13:07:41 -0500
Subject: [PATCH 09/17] Update build.yml

---
 .github/workflows/build.yml | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 668722065..d9d7e1ea3 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -101,6 +101,8 @@ env:
           name: Linux_X86-64_zip
         - path: '*Linux_64bit.AppImage'
           name: Linux_X86-64_app_image
+        - path: '*Linux_64bit.deb'
+          name: Linux_64bit.deb
     - config:
         name: macOS x86
         runs-on: macos-13
@@ -144,7 +146,8 @@ env:
         - path: '*Linux_arm64.zip'
           name: Linux_arm64_zip
         - path: '*Linux_arm64.AppImage'
-          name: Linux_arm64_app_image
+        - path: '*Linux_arm64.deb'
+          name: Linux_arm64.deb
   PAID_RUNNER_BUILD_DATA: |
     # This system was implemented to allow selective use of paid GitHub-hosted runners, due to the Apple Silicon runner
     # incurring a charge at that time. Free Apple Silicon runners are now available so the configuration was moved to

From 114a844ba80351bf708e8bd9f1703abdac1999ef Mon Sep 17 00:00:00 2001
From: neochaos42 <125705606+neochaos42@users.noreply.github.com>
Date: Sat, 19 Apr 2025 13:09:13 -0500
Subject: [PATCH 10/17] Update package.json

---
 electron-app/package.json | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/electron-app/package.json b/electron-app/package.json
index 774fe56bc..a0d1a9fe9 100644
--- a/electron-app/package.json
+++ b/electron-app/package.json
@@ -154,7 +154,8 @@
     "linux": {
       "target": [
         "zip",
-        "AppImage"
+        "AppImage",
+        "deb"
       ],
       "category": "Development",
       "icon": "resources/icons"

From d843ef03f7f9cdabbac96868a78146cbb67ca4b0 Mon Sep 17 00:00:00 2001
From: neochaos42 <125705606+neochaos42@users.noreply.github.com>
Date: Sat, 19 Apr 2025 13:23:24 -0500
Subject: [PATCH 11/17] Update package.json

---
 electron-app/package.json | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/electron-app/package.json b/electron-app/package.json
index a0d1a9fe9..fdbccd626 100644
--- a/electron-app/package.json
+++ b/electron-app/package.json
@@ -4,6 +4,7 @@
   "version": "2.3.7",
   "license": "AGPL-3.0-or-later",
   "main": "./src-gen/backend/electron-main.js",
+  "homepage": "https://arduino.cc/en/software",
   "dependencies": {
     "@theia/core": "1.57.0",
     "@theia/debug": "1.57.0",
@@ -102,7 +103,7 @@
       }
     }
   },
-  "author": "Arduino SA",
+  "author": "Arduino SA (https://arduino.cc/) <security@arduino.cc>",
   "description": "Arduino IDE",
   "build": {
     "appId": "cc.arduino.IDE2",

From 9637be3ca0cfe91a224f2774c674b963833d6d53 Mon Sep 17 00:00:00 2001
From: neochaos <neochaos42@gmail.com>
Date: Sat, 19 Apr 2025 13:47:14 -0500
Subject: [PATCH 12/17] test arm build debian

---
 .github/workflows/build.yml | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index d9d7e1ea3..4e1770235 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -315,6 +315,14 @@ jobs:
         if: matrix.config.name == 'ARM Ubuntu 22.04'
         run: sudo apt-get update && sudo apt-get install -y chromium-browser
 
+      - name: Ensure fpm works on ARM64
+        if: matrix.config.name == 'ARM Ubuntu 22.04'
+        run: |
+          sudo apt-get update
+          sudo apt-get install -y ruby ruby-dev
+          sudo gem install fpm
+          echo "USE_SYSTEM_FPM=true" >> $GITHUB_ENV
+
       - name: Symlink custom working directory
         shell: cmd
         if: runner.os == 'Windows' && matrix.config.working-directory

From 1700c894338770af6e5e039ca2eac5324978d8a3 Mon Sep 17 00:00:00 2001
From: neochaos42 <125705606+neochaos42@users.noreply.github.com>
Date: Sat, 19 Apr 2025 14:11:52 -0500
Subject: [PATCH 13/17] Update post-package.js

---
 electron-app/scripts/post-package.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/electron-app/scripts/post-package.js b/electron-app/scripts/post-package.js
index b346f558f..99f99f6e2 100644
--- a/electron-app/scripts/post-package.js
+++ b/electron-app/scripts/post-package.js
@@ -131,7 +131,7 @@ async function copyFilesToBuildArtifacts() {
     case 'linux': {
       filesToCopy.push(
         ...glob
-          .sync('**/arduino-ide*.{zip,AppImage}', { cwd })
+          .sync('**/arduino-ide*.{zip,AppImage,deb}', { cwd })
           .map((p) => path.join(cwd, p))
       );
       break;

From 2d76e761932d29601911089668c31aea3994d00b Mon Sep 17 00:00:00 2001
From: neochaos42 <125705606+neochaos42@users.noreply.github.com>
Date: Sat, 19 Apr 2025 14:42:23 -0500
Subject: [PATCH 14/17] Update test-javascript.yml

---
 .github/workflows/test-javascript.yml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.github/workflows/test-javascript.yml b/.github/workflows/test-javascript.yml
index a1665f4f5..04ff2e861 100644
--- a/.github/workflows/test-javascript.yml
+++ b/.github/workflows/test-javascript.yml
@@ -79,6 +79,7 @@ jobs:
           - macos-latest
           - ubuntu-latest
           - windows-latest
+          - ubuntu-22.04-arm
 
     steps:
       - name: Checkout

From a114c6fc78ff8773a162148b42e8154a65d5406a Mon Sep 17 00:00:00 2001
From: neochaos42 <125705606+neochaos42@users.noreply.github.com>
Date: Sat, 19 Apr 2025 15:26:55 -0500
Subject: [PATCH 15/17] Update build.yml

---
 .github/workflows/build.yml | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 4e1770235..8ec95b9a2 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -102,7 +102,7 @@ env:
         - path: '*Linux_64bit.AppImage'
           name: Linux_X86-64_app_image
         - path: '*Linux_64bit.deb'
-          name: Linux_64bit.deb
+          name: Linux_64bit_deb
     - config:
         name: macOS x86
         runs-on: macos-13
@@ -146,8 +146,9 @@ env:
         - path: '*Linux_arm64.zip'
           name: Linux_arm64_zip
         - path: '*Linux_arm64.AppImage'
+          name: Linux_arm64_app_image
         - path: '*Linux_arm64.deb'
-          name: Linux_arm64.deb
+          name: Linux_arm64_deb
   PAID_RUNNER_BUILD_DATA: |
     # This system was implemented to allow selective use of paid GitHub-hosted runners, due to the Apple Silicon runner
     # incurring a charge at that time. Free Apple Silicon runners are now available so the configuration was moved to

From 7f801fae162fdc303c35c33f185244ef8c3e582c Mon Sep 17 00:00:00 2001
From: neochaos <neochaos42@gmail.com>
Date: Sat, 19 Apr 2025 16:39:16 -0500
Subject: [PATCH 16/17] Update build.yml

---
 .github/workflows/build.yml | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 8ec95b9a2..8320374da 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -87,6 +87,7 @@ env:
           name: Windows_X86-64_MSI
         - path: '*Windows_64bit.zip'
           name: Windows_X86-64_zip
+
     - config:
         name: Linux
         runs-on: ubuntu-latest
@@ -103,6 +104,7 @@ env:
           name: Linux_X86-64_app_image
         - path: '*Linux_64bit.deb'
           name: Linux_64bit_deb
+
     - config:
         name: macOS x86
         runs-on: macos-13
@@ -120,6 +122,7 @@ env:
           name: macOS_X86-64_dmg
         - path: '*macOS_64bit.zip'
           name: macOS_X86-64_zip
+
     - config:
         name: macOS ARM
         runs-on: macos-latest
@@ -135,6 +138,7 @@ env:
           name: macOS_arm64_dmg
         - path: '*macOS_arm64.zip'
           name: macOS_arm64_zip
+          
     - config:
         name: ARM Ubuntu 22.04
         runs-on: ubuntu-22.04-arm

From 2928f5eafbfce90c30e42a8109bd7070f6250b9a Mon Sep 17 00:00:00 2001
From: neochaos <neochaos42@gmail.com>
Date: Sat, 19 Apr 2025 16:54:13 -0500
Subject: [PATCH 17/17] fix typo

---
 .github/workflows/build.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 8320374da..5c7f93f01 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -103,7 +103,7 @@ env:
         - path: '*Linux_64bit.AppImage'
           name: Linux_X86-64_app_image
         - path: '*Linux_64bit.deb'
-          name: Linux_64bit_deb
+          name: Linux_X86-64_deb
 
     - config:
         name: macOS x86
@@ -138,7 +138,7 @@ env:
           name: macOS_arm64_dmg
         - path: '*macOS_arm64.zip'
           name: macOS_arm64_zip
-          
+
     - config:
         name: ARM Ubuntu 22.04
         runs-on: ubuntu-22.04-arm