From 99a1f5418e137d3502332489496f704113e25a15 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sat, 12 Jul 2025 02:18:36 +0000 Subject: [PATCH 001/180] Sync files from source repository --- latest-release.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/latest-release.txt b/latest-release.txt index 54ac2e5..35e3a54 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1,2 @@ https://github.com/ivan-hc/VirtualBox-appimage/releases/download/7.1.6/VirtualBox-KVM_7.1.6-archimage4.3-x86_64.AppImage +Sat Jul 12 02:18:36 UTC 2025 From 52a1d85b24c598273b8e62b14bd039ff80282d0a Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sun, 13 Jul 2025 02:26:59 +0000 Subject: [PATCH 002/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 35e3a54..09dc030 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1,2 +1,2 @@ https://github.com/ivan-hc/VirtualBox-appimage/releases/download/7.1.6/VirtualBox-KVM_7.1.6-archimage4.3-x86_64.AppImage -Sat Jul 12 02:18:36 UTC 2025 +Sun Jul 13 02:26:59 UTC 2025 From 404d046141de0a8353c4f6047aec9031e7dfa31d Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Mon, 14 Jul 2025 02:22:27 +0000 Subject: [PATCH 003/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 09dc030..b85c86f 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1,2 +1,2 @@ https://github.com/ivan-hc/VirtualBox-appimage/releases/download/7.1.6/VirtualBox-KVM_7.1.6-archimage4.3-x86_64.AppImage -Sun Jul 13 02:26:59 UTC 2025 +Mon Jul 14 02:22:27 UTC 2025 From 0422f41e2ca9357cb97c308891fce4aa9414ab09 Mon Sep 17 00:00:00 2001 From: iVAN <88724353+ivan-hc@users.noreply.github.com> Date: Tue, 15 Jul 2025 03:12:19 +0200 Subject: [PATCH 004/180] Update cronjob.yml --- .github/workflows/cronjob.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cronjob.yml b/.github/workflows/cronjob.yml index a5cdfd9..a8833cd 100644 --- a/.github/workflows/cronjob.yml +++ b/.github/workflows/cronjob.yml @@ -20,10 +20,9 @@ jobs: - name: "Checkout source repository" uses: actions/checkout@v4 - - name: "List releases" + - name: "Release date" run: | - curl -Ls https://api.github.com/repos/${GITHUB_REPOSITORY}/releases/latest | sed 's/[()",{} ]/\n/g' | grep -oi "https.*mage$" > latest-release.txt - date >> latest-release.txt + date > latest-release.txt - name: "Push to Source" run: | From 6b1152c7070f1e3f8c5c3d98f90962e3822b749e Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Tue, 15 Jul 2025 02:21:58 +0000 Subject: [PATCH 005/180] Sync files from source repository --- latest-release.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/latest-release.txt b/latest-release.txt index b85c86f..b952956 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1,2 +1 @@ -https://github.com/ivan-hc/VirtualBox-appimage/releases/download/7.1.6/VirtualBox-KVM_7.1.6-archimage4.3-x86_64.AppImage -Mon Jul 14 02:22:27 UTC 2025 +Tue Jul 15 02:21:58 UTC 2025 From 2d5e3c8095dc405aee304381410fa9bb18b40984 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Wed, 16 Jul 2025 02:18:54 +0000 Subject: [PATCH 006/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index b952956..befc7a5 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Tue Jul 15 02:21:58 UTC 2025 +Wed Jul 16 02:18:54 UTC 2025 From d747e2f37caa6f1385046969262d77f49e0a02f1 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Thu, 17 Jul 2025 02:19:23 +0000 Subject: [PATCH 007/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index befc7a5..8018935 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Wed Jul 16 02:18:54 UTC 2025 +Thu Jul 17 02:19:23 UTC 2025 From dbff6b462259d1a2f13f599c0ebe416c94771bc8 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Fri, 18 Jul 2025 02:20:55 +0000 Subject: [PATCH 008/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 8018935..a30e541 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Thu Jul 17 02:19:23 UTC 2025 +Fri Jul 18 02:20:55 UTC 2025 From 36c2de0c31435664cc2167ee4345ed59a55c6e12 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sat, 19 Jul 2025 02:08:57 +0000 Subject: [PATCH 009/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index a30e541..9be8661 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Fri Jul 18 02:20:55 UTC 2025 +Sat Jul 19 02:08:57 UTC 2025 From 6c2fd0885f1f0b71f6d83d2881cfd19bfa7f4289 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sun, 20 Jul 2025 02:29:23 +0000 Subject: [PATCH 010/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 9be8661..3f58fa5 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sat Jul 19 02:08:57 UTC 2025 +Sun Jul 20 02:29:23 UTC 2025 From d086840745e7a10e171e57c64167e728e45f45ca Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Mon, 21 Jul 2025 02:26:03 +0000 Subject: [PATCH 011/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 3f58fa5..4b8b026 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sun Jul 20 02:29:23 UTC 2025 +Mon Jul 21 02:26:03 UTC 2025 From 55f7bbee72af34fae04f1f4ad328b7297bee9c35 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Tue, 22 Jul 2025 02:20:06 +0000 Subject: [PATCH 012/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 4b8b026..5f38352 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Mon Jul 21 02:26:03 UTC 2025 +Tue Jul 22 02:20:06 UTC 2025 From 29742cda925d8fd4e97a74aca366311a3bd1e04d Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Wed, 23 Jul 2025 02:21:31 +0000 Subject: [PATCH 013/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 5f38352..ab20fd6 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Tue Jul 22 02:20:06 UTC 2025 +Wed Jul 23 02:21:31 UTC 2025 From d4708e88ae8bf4b92094cf8e2db43f3ff1525aa5 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Thu, 24 Jul 2025 02:20:24 +0000 Subject: [PATCH 014/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index ab20fd6..1cff672 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Wed Jul 23 02:21:31 UTC 2025 +Thu Jul 24 02:20:24 UTC 2025 From afbf60a6ef3003ebce76c4836678c92bcb32ebde Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Fri, 25 Jul 2025 02:20:01 +0000 Subject: [PATCH 015/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 1cff672..bfa1277 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Thu Jul 24 02:20:24 UTC 2025 +Fri Jul 25 02:20:01 UTC 2025 From 07381aaae62ab4565d9ab8f52c0a0d6162e90204 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sat, 26 Jul 2025 02:10:28 +0000 Subject: [PATCH 016/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index bfa1277..138eea0 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Fri Jul 25 02:20:01 UTC 2025 +Sat Jul 26 02:10:28 UTC 2025 From 73168db95bdf8d35056c148bfa4eb3f3e34f3151 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sun, 27 Jul 2025 02:30:28 +0000 Subject: [PATCH 017/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 138eea0..39e1a7c 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sat Jul 26 02:10:28 UTC 2025 +Sun Jul 27 02:30:28 UTC 2025 From 26b7cd66a2e904133a5bb0090e2b752b0208a2f2 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Mon, 28 Jul 2025 02:26:56 +0000 Subject: [PATCH 018/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 39e1a7c..2536702 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sun Jul 27 02:30:28 UTC 2025 +Mon Jul 28 02:26:56 UTC 2025 From aa77b3de7395a06e7f2a7b421a64e7719c32eee1 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Tue, 29 Jul 2025 02:32:02 +0000 Subject: [PATCH 019/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 2536702..89bc7d8 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Mon Jul 28 02:26:56 UTC 2025 +Tue Jul 29 02:32:02 UTC 2025 From df73d3a6d6a057910c23497d87f499d89dc8ca01 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Wed, 30 Jul 2025 02:23:36 +0000 Subject: [PATCH 020/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 89bc7d8..7797bb9 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Tue Jul 29 02:32:02 UTC 2025 +Wed Jul 30 02:23:36 UTC 2025 From 6802237aa14898f2d01de723e4e1246a43ae471a Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Thu, 31 Jul 2025 02:22:47 +0000 Subject: [PATCH 021/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 7797bb9..0931bab 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Wed Jul 30 02:23:36 UTC 2025 +Thu Jul 31 02:22:47 UTC 2025 From e92f076cbe35539b2e36df94501edeaa55342dbd Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Fri, 1 Aug 2025 02:34:20 +0000 Subject: [PATCH 022/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 0931bab..313a547 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Thu Jul 31 02:22:47 UTC 2025 +Fri Aug 1 02:34:20 UTC 2025 From e275e591d004d36d6eca5ff1804da8640780817d Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sat, 2 Aug 2025 02:11:07 +0000 Subject: [PATCH 023/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 313a547..f346e27 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Fri Aug 1 02:34:20 UTC 2025 +Sat Aug 2 02:11:07 UTC 2025 From 60c28ddfc26c3be58cc92951099b0ea10dba1a2e Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sun, 3 Aug 2025 02:32:57 +0000 Subject: [PATCH 024/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index f346e27..d08d99a 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sat Aug 2 02:11:07 UTC 2025 +Sun Aug 3 02:32:57 UTC 2025 From 335dc7fbcbb817657ff6275533c886c1008c076d Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Mon, 4 Aug 2025 02:32:11 +0000 Subject: [PATCH 025/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index d08d99a..9de5f47 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sun Aug 3 02:32:57 UTC 2025 +Mon Aug 4 02:32:11 UTC 2025 From e05feba2491c04de02920d640a452e6540c39f2a Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Tue, 5 Aug 2025 02:25:52 +0000 Subject: [PATCH 026/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 9de5f47..ce30e82 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Mon Aug 4 02:32:11 UTC 2025 +Tue Aug 5 02:25:52 UTC 2025 From c6c78a15325b8bc7c8ee6eaf5748d12189e05af5 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Wed, 6 Aug 2025 02:24:09 +0000 Subject: [PATCH 027/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index ce30e82..0e3d9dd 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Tue Aug 5 02:25:52 UTC 2025 +Wed Aug 6 02:24:09 UTC 2025 From 3899a26ccbb8607b1083b0b6eb75cec77ffa83bc Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Thu, 7 Aug 2025 02:24:28 +0000 Subject: [PATCH 028/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 0e3d9dd..1d17787 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Wed Aug 6 02:24:09 UTC 2025 +Thu Aug 7 02:24:28 UTC 2025 From 45cf98e9333166623efb6b8429dede786720c007 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Fri, 8 Aug 2025 02:24:17 +0000 Subject: [PATCH 029/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 1d17787..4ab05aa 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Thu Aug 7 02:24:28 UTC 2025 +Fri Aug 8 02:24:17 UTC 2025 From 52d9520ed56ea20261b7fac01a2166b4edb33b64 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sat, 9 Aug 2025 02:06:28 +0000 Subject: [PATCH 030/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 4ab05aa..da87a02 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Fri Aug 8 02:24:17 UTC 2025 +Sat Aug 9 02:06:28 UTC 2025 From 121113b52dee8b62592be466dc664eeae93a9e11 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sun, 10 Aug 2025 02:28:06 +0000 Subject: [PATCH 031/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index da87a02..83e9d98 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sat Aug 9 02:06:28 UTC 2025 +Sun Aug 10 02:28:06 UTC 2025 From adcdc93a8b4eefb73ec545f1a4cf9ff70e48ba21 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Mon, 11 Aug 2025 02:23:57 +0000 Subject: [PATCH 032/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 83e9d98..1f4985e 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sun Aug 10 02:28:06 UTC 2025 +Mon Aug 11 02:23:57 UTC 2025 From f04f79b148cd5456a961b250d94af8876a394f5e Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Tue, 12 Aug 2025 02:05:49 +0000 Subject: [PATCH 033/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 1f4985e..96ae638 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Mon Aug 11 02:23:57 UTC 2025 +Tue Aug 12 02:05:49 UTC 2025 From 8a49bd19a2d2246487ea6071ecebc53c4e06c610 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Wed, 13 Aug 2025 02:07:30 +0000 Subject: [PATCH 034/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 96ae638..a8afeee 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Tue Aug 12 02:05:49 UTC 2025 +Wed Aug 13 02:07:30 UTC 2025 From 25258bbb1f1ec23f01cd7b40e51d6d66e45183e0 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Thu, 14 Aug 2025 02:08:10 +0000 Subject: [PATCH 035/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index a8afeee..e4bd0d4 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Wed Aug 13 02:07:30 UTC 2025 +Thu Aug 14 02:08:10 UTC 2025 From 9d1a8b425c2574ebf5f886b3c20acb792cac0162 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Fri, 15 Aug 2025 02:08:45 +0000 Subject: [PATCH 036/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index e4bd0d4..dd44c08 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Thu Aug 14 02:08:10 UTC 2025 +Fri Aug 15 02:08:45 UTC 2025 From 4a9c832c8ce089b260002cfa9d95641b5cd2372c Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sat, 16 Aug 2025 02:02:55 +0000 Subject: [PATCH 037/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index dd44c08..c3be2d4 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Fri Aug 15 02:08:45 UTC 2025 +Sat Aug 16 02:02:55 UTC 2025 From 9b0f97774a7ea5118282571a4c22cfa5cd69e027 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sun, 17 Aug 2025 02:20:36 +0000 Subject: [PATCH 038/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index c3be2d4..6e55a08 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sat Aug 16 02:02:55 UTC 2025 +Sun Aug 17 02:20:36 UTC 2025 From 1d4bbc0f28a6db2b637fadc6f441a9aa25e59a72 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Mon, 18 Aug 2025 02:20:57 +0000 Subject: [PATCH 039/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 6e55a08..529cfc7 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sun Aug 17 02:20:36 UTC 2025 +Mon Aug 18 02:20:57 UTC 2025 From fe0f104de5ec9f46b58479d8bb6729d7b79619bc Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Tue, 19 Aug 2025 02:01:42 +0000 Subject: [PATCH 040/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 529cfc7..a7c64b3 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Mon Aug 18 02:20:57 UTC 2025 +Tue Aug 19 02:01:42 UTC 2025 From f0739ecf1d39cf01de43075942c55dc0258d13b7 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Wed, 20 Aug 2025 01:59:28 +0000 Subject: [PATCH 041/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index a7c64b3..424c5c8 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Tue Aug 19 02:01:42 UTC 2025 +Wed Aug 20 01:59:28 UTC 2025 From 2b566e243dc73cc2b8783220d09e3a435e49dc12 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Thu, 21 Aug 2025 01:58:22 +0000 Subject: [PATCH 042/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 424c5c8..ec0e416 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Wed Aug 20 01:59:28 UTC 2025 +Thu Aug 21 01:58:22 UTC 2025 From 1c10b3568e8be98ea68a2532bac7b59aff10848c Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Fri, 22 Aug 2025 01:59:16 +0000 Subject: [PATCH 043/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index ec0e416..c05bd5c 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Thu Aug 21 01:58:22 UTC 2025 +Fri Aug 22 01:59:16 UTC 2025 From 12c45ec0586fef5326a6cceb5e2e16f37483e9d0 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sat, 23 Aug 2025 01:55:00 +0000 Subject: [PATCH 044/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index c05bd5c..594a87e 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Fri Aug 22 01:59:16 UTC 2025 +Sat Aug 23 01:55:00 UTC 2025 From 9da0f9701768a53c1d1b5a5e9e5bb15f3e8222e7 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sun, 24 Aug 2025 02:10:12 +0000 Subject: [PATCH 045/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 594a87e..c8663f1 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sat Aug 23 01:55:00 UTC 2025 +Sun Aug 24 02:10:12 UTC 2025 From 8a2244caa6f0dd2423d9634fabee0f3a0956d556 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Mon, 25 Aug 2025 02:04:03 +0000 Subject: [PATCH 046/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index c8663f1..cfdb258 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sun Aug 24 02:10:12 UTC 2025 +Mon Aug 25 02:04:03 UTC 2025 From 9c8628b6f77ab6f62c0b8e258b89b8fdbd8dab29 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Tue, 26 Aug 2025 02:00:14 +0000 Subject: [PATCH 047/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index cfdb258..23f22ed 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Mon Aug 25 02:04:03 UTC 2025 +Tue Aug 26 02:00:14 UTC 2025 From 1e71098bb0585c4dfb100c87fca7cb0895d73e25 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Wed, 27 Aug 2025 01:56:19 +0000 Subject: [PATCH 048/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 23f22ed..8281936 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Tue Aug 26 02:00:14 UTC 2025 +Wed Aug 27 01:56:19 UTC 2025 From 0162fb47fda3c22535f0976293be9b10d038430e Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Thu, 28 Aug 2025 01:55:31 +0000 Subject: [PATCH 049/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 8281936..863ace2 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Wed Aug 27 01:56:19 UTC 2025 +Thu Aug 28 01:55:31 UTC 2025 From 38ab51725559d93ae659f694c76d2166c004f2c7 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Fri, 29 Aug 2025 01:55:28 +0000 Subject: [PATCH 050/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 863ace2..00f7fe2 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Thu Aug 28 01:55:31 UTC 2025 +Fri Aug 29 01:55:28 UTC 2025 From f4ed8c939a80cb539561cf5390067d1c9635ef70 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sat, 30 Aug 2025 01:49:51 +0000 Subject: [PATCH 051/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 00f7fe2..233da74 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Fri Aug 29 01:55:28 UTC 2025 +Sat Aug 30 01:49:51 UTC 2025 From 65443343e57cf8350ff97ed89961edbc93f7437a Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sun, 31 Aug 2025 02:01:26 +0000 Subject: [PATCH 052/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 233da74..224ca18 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sat Aug 30 01:49:51 UTC 2025 +Sun Aug 31 02:01:26 UTC 2025 From c8371054715c8c09da2c67a4a725d2af6ad573cb Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Mon, 1 Sep 2025 02:12:30 +0000 Subject: [PATCH 053/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 224ca18..a46789c 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sun Aug 31 02:01:26 UTC 2025 +Mon Sep 1 02:12:29 UTC 2025 From c71d60dda05751c94615b89f7cc715ef88685086 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Tue, 2 Sep 2025 01:57:32 +0000 Subject: [PATCH 054/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index a46789c..fdb6f59 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Mon Sep 1 02:12:29 UTC 2025 +Tue Sep 2 01:57:32 UTC 2025 From 45fe018bd404ce7f93e82d0916dff4b851dd72cb Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Wed, 3 Sep 2025 01:49:24 +0000 Subject: [PATCH 055/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index fdb6f59..7100ec0 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Tue Sep 2 01:57:32 UTC 2025 +Wed Sep 3 01:49:24 UTC 2025 From c908e1e9d6d7e62750f384e44a7133e098d17f12 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Thu, 4 Sep 2025 01:49:59 +0000 Subject: [PATCH 056/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 7100ec0..5d90f3c 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Wed Sep 3 01:49:24 UTC 2025 +Thu Sep 4 01:49:59 UTC 2025 From c3a99debef424137adc31cf3ed7066a07974cd8c Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Fri, 5 Sep 2025 01:52:51 +0000 Subject: [PATCH 057/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 5d90f3c..e3b4f00 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Thu Sep 4 01:49:59 UTC 2025 +Fri Sep 5 01:52:51 UTC 2025 From 8ea829c1123deb07af0845b5ab23ac214c9a3208 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sat, 6 Sep 2025 01:49:42 +0000 Subject: [PATCH 058/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index e3b4f00..7e86f07 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Fri Sep 5 01:52:51 UTC 2025 +Sat Sep 6 01:49:42 UTC 2025 From ec4d9afc00d03f5476606a8e0841f0986feb6c0a Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sun, 7 Sep 2025 01:58:41 +0000 Subject: [PATCH 059/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 7e86f07..97c6067 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sat Sep 6 01:49:42 UTC 2025 +Sun Sep 7 01:58:41 UTC 2025 From 4b0f9a7a7ef4c0b14afc28825b335faf52770ff3 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Mon, 8 Sep 2025 01:58:33 +0000 Subject: [PATCH 060/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 97c6067..ecb9260 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sun Sep 7 01:58:41 UTC 2025 +Mon Sep 8 01:58:33 UTC 2025 From 581048fbb3a2ce5e225be43e706e99a23e179de7 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Tue, 9 Sep 2025 01:54:31 +0000 Subject: [PATCH 061/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index ecb9260..37be517 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Mon Sep 8 01:58:33 UTC 2025 +Tue Sep 9 01:54:31 UTC 2025 From 09a9a4eedbca905c5c9b1e4210a5d9a591868fbd Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Wed, 10 Sep 2025 01:50:34 +0000 Subject: [PATCH 062/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 37be517..428f763 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Tue Sep 9 01:54:31 UTC 2025 +Wed Sep 10 01:50:34 UTC 2025 From 9067a42b88a3648a76f8d02b972ce37e8e90406c Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Thu, 11 Sep 2025 01:53:43 +0000 Subject: [PATCH 063/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 428f763..878bcae 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Wed Sep 10 01:50:34 UTC 2025 +Thu Sep 11 01:53:43 UTC 2025 From 712adbdc09e9bd5116325dec104494e8a1e83eda Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Fri, 12 Sep 2025 01:49:07 +0000 Subject: [PATCH 064/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 878bcae..57499e0 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Thu Sep 11 01:53:43 UTC 2025 +Fri Sep 12 01:49:07 UTC 2025 From 63d96ada84a1203f2f0642c7e9e6e5fd010fbe07 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sat, 13 Sep 2025 01:44:36 +0000 Subject: [PATCH 065/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 57499e0..780bddb 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Fri Sep 12 01:49:07 UTC 2025 +Sat Sep 13 01:44:36 UTC 2025 From c6dbd7bfceb5c714fc2b984c5dfe6972a1e3afbe Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sun, 14 Sep 2025 01:58:12 +0000 Subject: [PATCH 066/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 780bddb..347ddf9 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sat Sep 13 01:44:36 UTC 2025 +Sun Sep 14 01:58:12 UTC 2025 From 4b4a0295c2e88f971a24e90afc86ba515fe7745b Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Mon, 15 Sep 2025 01:59:41 +0000 Subject: [PATCH 067/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 347ddf9..bcf840f 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sun Sep 14 01:58:12 UTC 2025 +Mon Sep 15 01:59:41 UTC 2025 From a87f0649e73441e51718c67be2863876dfa206a3 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Tue, 16 Sep 2025 01:50:39 +0000 Subject: [PATCH 068/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index bcf840f..80eafc3 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Mon Sep 15 01:59:41 UTC 2025 +Tue Sep 16 01:50:39 UTC 2025 From 957664561d55be81e06f20428f14bd5a67124169 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Wed, 17 Sep 2025 01:50:30 +0000 Subject: [PATCH 069/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 80eafc3..581bc31 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Tue Sep 16 01:50:39 UTC 2025 +Wed Sep 17 01:50:30 UTC 2025 From 4f5ee97bb8ae2efb50e06550380c6aa0f98ded1a Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Thu, 18 Sep 2025 01:50:29 +0000 Subject: [PATCH 070/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 581bc31..dc5eb54 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Wed Sep 17 01:50:30 UTC 2025 +Thu Sep 18 01:50:29 UTC 2025 From bf3df35251560cc1ceef85a2beb831e70e834e09 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Fri, 19 Sep 2025 01:53:51 +0000 Subject: [PATCH 071/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index dc5eb54..a496c4a 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Thu Sep 18 01:50:29 UTC 2025 +Fri Sep 19 01:53:51 UTC 2025 From 2567d6ebdfe09d496dd4565ecd6a3a4cd4abf56c Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sat, 20 Sep 2025 01:48:22 +0000 Subject: [PATCH 072/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index a496c4a..0d03aad 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Fri Sep 19 01:53:51 UTC 2025 +Sat Sep 20 01:48:22 UTC 2025 From 573f2ccc1b794e2f56929198dc26654116b92dd6 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sun, 21 Sep 2025 02:01:37 +0000 Subject: [PATCH 073/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 0d03aad..c442da6 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sat Sep 20 01:48:22 UTC 2025 +Sun Sep 21 02:01:37 UTC 2025 From 56b13166f683bf01b004685c4a1e29463a395119 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Mon, 22 Sep 2025 02:01:37 +0000 Subject: [PATCH 074/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index c442da6..ce2795e 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sun Sep 21 02:01:37 UTC 2025 +Mon Sep 22 02:01:37 UTC 2025 From 67c6b903aa4b24351d073d30e151ee62d9bda841 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Tue, 23 Sep 2025 01:51:07 +0000 Subject: [PATCH 075/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index ce2795e..467c756 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Mon Sep 22 02:01:37 UTC 2025 +Tue Sep 23 01:51:07 UTC 2025 From 651b31eacfce1b99217b98fb198fc29deb824665 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Wed, 24 Sep 2025 01:52:47 +0000 Subject: [PATCH 076/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 467c756..d66276e 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Tue Sep 23 01:51:07 UTC 2025 +Wed Sep 24 01:52:47 UTC 2025 From 94eab7664ebc95ed093b043920f1aa0251c78e90 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Thu, 25 Sep 2025 01:53:41 +0000 Subject: [PATCH 077/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index d66276e..8028484 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Wed Sep 24 01:52:47 UTC 2025 +Thu Sep 25 01:53:41 UTC 2025 From 1aee5f6739160dc7613ac5529b26db25246a11c5 Mon Sep 17 00:00:00 2001 From: iVAN <88724353+ivan-hc@users.noreply.github.com> Date: Thu, 25 Sep 2025 08:09:48 +0200 Subject: [PATCH 078/180] Update virtualbox-kvm-junest.sh --- virtualbox-kvm-junest.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/virtualbox-kvm-junest.sh b/virtualbox-kvm-junest.sh index e3a0a6f..622a7cb 100644 --- a/virtualbox-kvm-junest.sh +++ b/virtualbox-kvm-junest.sh @@ -122,6 +122,8 @@ if [ -n "$APP" ]; then ./.local/share/junest/bin/junest -- yay --noconfirm -S alsa-lib gtk3 xapp ./.local/share/junest/bin/junest -- yay --noconfirm -S libxml2-legacy ./.local/share/junest/bin/junest -- yay --noconfirm -S "$APP" + curl -#Lo gdk-pixbuf2-2.x-x86_64.pkg.tar.zst https://github.com/pkgforge-dev/archlinux-pkgs-debloated/releases/download/continuous/gdk-pixbuf2-mini-x86_64.pkg.tar.zst || exit 1 + ./.local/share/junest/bin/junest -- yay --noconfirm -U "$HOME"/gdk-pixbuf2-2.x-x86_64.pkg.tar.zst ./.local/share/junest/bin/junest -- glib-compile-schemas /usr/share/glib-2.0/schemas/ else echo "No app found, exiting"; exit 1 From dc694d6a461399242f7e95f19eb29f6c8415f191 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Fri, 26 Sep 2025 01:52:49 +0000 Subject: [PATCH 079/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 8028484..df7c95a 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Thu Sep 25 01:53:41 UTC 2025 +Fri Sep 26 01:52:49 UTC 2025 From 7c042c5cf8b5e9b662ca8f8438bb8068e8087979 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sat, 27 Sep 2025 01:48:11 +0000 Subject: [PATCH 080/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index df7c95a..49b43a8 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Fri Sep 26 01:52:49 UTC 2025 +Sat Sep 27 01:48:11 UTC 2025 From 5b5618e7af5a2f48a5317c44ecca81937f53b59a Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sun, 28 Sep 2025 02:02:57 +0000 Subject: [PATCH 081/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 49b43a8..5f46734 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sat Sep 27 01:48:11 UTC 2025 +Sun Sep 28 02:02:57 UTC 2025 From 47e6cb2e460574bb3335ccbd037b07ffa4d4b373 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Mon, 29 Sep 2025 01:56:08 +0000 Subject: [PATCH 082/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 5f46734..97eb289 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sun Sep 28 02:02:57 UTC 2025 +Mon Sep 29 01:56:08 UTC 2025 From a1ff27263d66940acd24074905dff570d330767f Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Tue, 30 Sep 2025 01:50:33 +0000 Subject: [PATCH 083/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 97eb289..ac817c0 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Mon Sep 29 01:56:08 UTC 2025 +Tue Sep 30 01:50:33 UTC 2025 From a1ee4ac6ab426185ba719a1a06715f71f147ba9c Mon Sep 17 00:00:00 2001 From: iVAN <88724353+ivan-hc@users.noreply.github.com> Date: Wed, 1 Oct 2025 00:52:04 +0200 Subject: [PATCH 084/180] Update junest-CI.yml --- .github/workflows/junest-CI.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/junest-CI.yml b/.github/workflows/junest-CI.yml index 0ffb6b2..47640e7 100644 --- a/.github/workflows/junest-CI.yml +++ b/.github/workflows/junest-CI.yml @@ -5,7 +5,7 @@ concurrency: on: schedule: - - cron: "0 14 * * 4" + - cron: "0 14 1/20 * *" workflow_dispatch: jobs: From 6ea294fb9541af6cebc7a408e65d3f528729b4a1 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Wed, 1 Oct 2025 02:03:35 +0000 Subject: [PATCH 085/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index ac817c0..f2ee6d1 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Tue Sep 30 01:50:33 UTC 2025 +Wed Oct 1 02:03:35 UTC 2025 From 961dc675f14b5634eb4f7024a02020b44fd1ce35 Mon Sep 17 00:00:00 2001 From: iVAN <88724353+ivan-hc@users.noreply.github.com> Date: Thu, 2 Oct 2025 02:00:11 +0200 Subject: [PATCH 086/180] Update virtualbox-kvm-junest.sh --- virtualbox-kvm-junest.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/virtualbox-kvm-junest.sh b/virtualbox-kvm-junest.sh index 622a7cb..87b60e1 100644 --- a/virtualbox-kvm-junest.sh +++ b/virtualbox-kvm-junest.sh @@ -124,6 +124,10 @@ if [ -n "$APP" ]; then ./.local/share/junest/bin/junest -- yay --noconfirm -S "$APP" curl -#Lo gdk-pixbuf2-2.x-x86_64.pkg.tar.zst https://github.com/pkgforge-dev/archlinux-pkgs-debloated/releases/download/continuous/gdk-pixbuf2-mini-x86_64.pkg.tar.zst || exit 1 ./.local/share/junest/bin/junest -- yay --noconfirm -U "$HOME"/gdk-pixbuf2-2.x-x86_64.pkg.tar.zst + curl -#Lo llvm-libs-2.x-x86_64.pkg.tar.zst https://github.com/pkgforge-dev/archlinux-pkgs-debloated/releases/download/continuous/llvm-libs-nano-x86_64.pkg.tar.zst || exit 1 + ./.local/share/junest/bin/junest -- yay --noconfirm -U "$HOME"/llvm-libs-2.x-x86_64.pkg.tar.zst + curl -#Lo mesa-2.x-x86_64.pkg.tar.zst https://github.com/pkgforge-dev/archlinux-pkgs-debloated/releases/download/continuous/mesa-nano-x86_64.pkg.tar.zst || exit 1 + ./.local/share/junest/bin/junest -- yay --noconfirm -U "$HOME"/mesa-2.x-x86_64.pkg.tar.zst ./.local/share/junest/bin/junest -- glib-compile-schemas /usr/share/glib-2.0/schemas/ else echo "No app found, exiting"; exit 1 From 83c660f0a206c9e9310fa1ac7e11816c6cab9b66 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Thu, 2 Oct 2025 01:51:10 +0000 Subject: [PATCH 087/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index f2ee6d1..a2133a8 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Wed Oct 1 02:03:35 UTC 2025 +Thu Oct 2 01:51:10 UTC 2025 From 76ba8f3d1a9ad8729cf416842cd63cd91ee7ee4a Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Fri, 3 Oct 2025 01:50:47 +0000 Subject: [PATCH 088/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index a2133a8..b544b60 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Thu Oct 2 01:51:10 UTC 2025 +Fri Oct 3 01:50:47 UTC 2025 From 160509a3adbfff65d8efb94618f91fca369a6d78 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sat, 4 Oct 2025 01:46:31 +0000 Subject: [PATCH 089/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index b544b60..6da62e8 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Fri Oct 3 01:50:47 UTC 2025 +Sat Oct 4 01:46:31 UTC 2025 From cd6b31a128d4c41ae6ee91b6b89fd44e6337483c Mon Sep 17 00:00:00 2001 From: iVAN <88724353+ivan-hc@users.noreply.github.com> Date: Sun, 5 Oct 2025 00:42:43 +0200 Subject: [PATCH 090/180] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7e8416c..fa5bb35 100644 --- a/README.md +++ b/README.md @@ -135,7 +135,7 @@ Exec=virtualbox VirtualBoxVM --comment ... ### *"*AM*" Application Manager* #### *Package manager, database & solutions for all AppImages and portable apps for GNU/Linux!* -[![Istantanea_2024-06-26_17-00-46 png](https://github.com/ivan-hc/AM/assets/88724353/671f5eb0-6fb6-4392-b45e-af0ea9271d9b)](https://github.com/ivan-hc/AM) +[![sample.png](https://raw.githubusercontent.com/ivan-hc/AM/main/sample/sample.png)](https://github.com/ivan-hc/AM) [![Readme](https://img.shields.io/github/stars/ivan-hc/AM?label=%E2%AD%90&style=for-the-badge)](https://github.com/ivan-hc/AM/stargazers) [![Readme](https://img.shields.io/github/license/ivan-hc/AM?label=&style=for-the-badge)](https://github.com/ivan-hc/AM/blob/main/LICENSE) From d85ebdb74ea1b4203511976682bb3d63e0097b13 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sun, 5 Oct 2025 02:01:45 +0000 Subject: [PATCH 091/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 6da62e8..56d6359 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sat Oct 4 01:46:31 UTC 2025 +Sun Oct 5 02:01:45 UTC 2025 From 902be97787f5814f6f912b6567bc8cf4a8306ce2 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Mon, 6 Oct 2025 01:54:23 +0000 Subject: [PATCH 092/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 56d6359..786b6c0 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sun Oct 5 02:01:45 UTC 2025 +Mon Oct 6 01:54:23 UTC 2025 From 90d9948d459c82e4b1edad74b5bbe77770647184 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Tue, 7 Oct 2025 01:51:53 +0000 Subject: [PATCH 093/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 786b6c0..f895724 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Mon Oct 6 01:54:23 UTC 2025 +Tue Oct 7 01:51:53 UTC 2025 From 66d06da65ad231ef78dc7f81399941bb08e8b702 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Wed, 8 Oct 2025 01:51:44 +0000 Subject: [PATCH 094/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index f895724..22a8696 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Tue Oct 7 01:51:53 UTC 2025 +Wed Oct 8 01:51:44 UTC 2025 From 353e45eb21dfba1258c0ad57ba689498583ff3eb Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Thu, 9 Oct 2025 01:52:49 +0000 Subject: [PATCH 095/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 22a8696..f3ca727 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Wed Oct 8 01:51:44 UTC 2025 +Thu Oct 9 01:52:49 UTC 2025 From e1f3cb3bebb43178c11e74b584e854649a2f9230 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Fri, 10 Oct 2025 01:53:30 +0000 Subject: [PATCH 096/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index f3ca727..9d6b0a2 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Thu Oct 9 01:52:49 UTC 2025 +Fri Oct 10 01:53:30 UTC 2025 From fcfb372088f3fca049db0dfe39c46190939bb00d Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sat, 11 Oct 2025 01:48:25 +0000 Subject: [PATCH 097/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 9d6b0a2..62a2f8e 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Fri Oct 10 01:53:30 UTC 2025 +Sat Oct 11 01:48:25 UTC 2025 From bbe90f7448371ba57ca420987d2990350d64fd2d Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sun, 12 Oct 2025 01:57:15 +0000 Subject: [PATCH 098/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 62a2f8e..926e975 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sat Oct 11 01:48:25 UTC 2025 +Sun Oct 12 01:57:15 UTC 2025 From b8d259786c045a7b9d7793739b34ee1ddf423f8b Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Mon, 13 Oct 2025 02:00:49 +0000 Subject: [PATCH 099/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 926e975..6ce9780 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sun Oct 12 01:57:15 UTC 2025 +Mon Oct 13 02:00:49 UTC 2025 From 8d558b0bd2434df5e48ababa1427a76c636c81a2 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Tue, 14 Oct 2025 01:53:33 +0000 Subject: [PATCH 100/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 6ce9780..4c317cc 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Mon Oct 13 02:00:49 UTC 2025 +Tue Oct 14 01:53:33 UTC 2025 From a0432ac817ce26bd93b61ff312f98c3cb0a0cfba Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Wed, 15 Oct 2025 01:56:29 +0000 Subject: [PATCH 101/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 4c317cc..11f4651 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Tue Oct 14 01:53:33 UTC 2025 +Wed Oct 15 01:56:29 UTC 2025 From 646cdc22a18d5fa034174d456141b56af403b772 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Thu, 16 Oct 2025 01:55:18 +0000 Subject: [PATCH 102/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 11f4651..5f8a7ca 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Wed Oct 15 01:56:29 UTC 2025 +Thu Oct 16 01:55:18 UTC 2025 From 871f6bea55180f7aa38e768ad002bcfc376699a3 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sun, 19 Oct 2025 02:07:00 +0000 Subject: [PATCH 103/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 5f8a7ca..c8e2eb5 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Thu Oct 16 01:55:18 UTC 2025 +Sun Oct 19 02:07:00 UTC 2025 From 4946a2bdbc764c9353f187ad96a87317ccc2cb7e Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Mon, 20 Oct 2025 02:04:11 +0000 Subject: [PATCH 104/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index c8e2eb5..e2f60dd 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sun Oct 19 02:07:00 UTC 2025 +Mon Oct 20 02:04:11 UTC 2025 From d738aa938233912c23fcc34add80ab41ad89e832 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Tue, 21 Oct 2025 01:57:25 +0000 Subject: [PATCH 105/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index e2f60dd..49b6b30 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Mon Oct 20 02:04:11 UTC 2025 +Tue Oct 21 01:57:25 UTC 2025 From 5db8ebac3f33aeec9806940f620e5bc5c416dcaf Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Wed, 22 Oct 2025 02:00:42 +0000 Subject: [PATCH 106/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 49b6b30..f4b9495 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Tue Oct 21 01:57:25 UTC 2025 +Wed Oct 22 02:00:42 UTC 2025 From 1e0d62d14dac755d811b4b66cd32cb866d5fa2d6 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Thu, 23 Oct 2025 01:56:05 +0000 Subject: [PATCH 107/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index f4b9495..95c7f0f 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Wed Oct 22 02:00:42 UTC 2025 +Thu Oct 23 01:56:05 UTC 2025 From 56d04f75447ccc4a3550e9c96899e79feb0914aa Mon Sep 17 00:00:00 2001 From: iVAN <88724353+ivan-hc@users.noreply.github.com> Date: Thu, 23 Oct 2025 13:31:31 +0200 Subject: [PATCH 108/180] Update virtualbox-kvm-junest.sh - Archimage 5.0 --- virtualbox-kvm-junest.sh | 752 ++++++++++++++++++--------------------- 1 file changed, 342 insertions(+), 410 deletions(-) diff --git a/virtualbox-kvm-junest.sh b/virtualbox-kvm-junest.sh index 87b60e1..9f3d0fe 100644 --- a/virtualbox-kvm-junest.sh +++ b/virtualbox-kvm-junest.sh @@ -2,47 +2,101 @@ APP=virtualbox-kvm BIN="virtualbox" #CHANGE THIS IF THE NAME OF THE BINARY IS DIFFERENT FROM "$APP" (for example, the binary of "obs-studio" is "obs") -DEPENDENCES="alsa-lib alsa-oss alsa-plugins alsa-tools alsa-utils jack2 \ -pulseaudio pulseaudio-alsa libpulse libsndfile libasyncns libogg libvorbis flac opus mpg123 lame \ -libpipewire pipewire pipewire-alsa pipewire-audio pipewire-pulse" #SYNTAX: "APP1 APP2 APP3 APP4...", LEAVE BLANK IF NO OTHER DEPENDENCIES ARE NEEDED +DEPENDENCES="alsa-lib alsa-oss alsa-plugins alsa-tools alsa-utils dbus flac jack2 lame libasyncns libogg libpipewire libpulse libsndfile libvorbis mpg123 opus pipewire pipewire-alsa pipewire-audio pulseaudio pulseaudio-alsa qt6-base" #SYNTAX: "APP1 APP2 APP3 APP4...", LEAVE BLANK IF NO OTHER DEPENDENCIES ARE NEEDED BASICSTUFF="binutils debugedit gzip" COMPILERS="base-devel" -vboxver=$(curl -Ls https://gitlab.com/chaotic-aur/pkgbuilds/-/raw/main/virtualbox-kvm/PKGBUILD | grep vboxver | head -1 | tr "'" '\n' | grep "^[0-9]") - -############################################################################# -# KEYWORDS TO FIND AND SAVE WHEN COMPILING THE APPIMAGE -############################################################################# - +# Set keywords to searchan include in names of directories and files in /usr/bin (BINSAVED), /usr/share (SHARESAVED) and /usr/lib (LIBSAVED) BINSAVED="kmod lsmod ldconfig" -SHARESAVED="SAVESHAREPLEASE" -lib_audio_keywords="alsa jack pipewire pulse" +SHARESAVED="alsa" lib_browser_launcher="gio-launch-desktop libasound.so libatk-bridge libatspi libcloudproviders libdb- libdl.so libedit libepoxy libgtk-3.so.0 libjson-glib libnssutil libpthread.so librt.so libtinysparql libwayland-cursor libX11-xcb.so libxapp-gtk3-module.so libXcursor libXdamage libXi.so libxkbfile.so libXrandr p11 pk" -LIBSAVED="libicui libxcb-cursor libxcb-util.so libxml2 $lib_audio_keywords $lib_browser_launcher" +LIBSAVED="ibicui libxcb-cursor libxcb-util.so libxml pulse DBus $lib_browser_launcher" + +# Set the items you want to manually REMOVE. Complete the path in /etc/, /usr/bin/, /usr/lib/, /usr/lib/python*/ and /usr/share/ respectively. +# The "rm" command will take into account the listed object/path and add an asterisk at the end, completing the path to be removed. +# Some keywords and paths are already set. Remove them if you consider them necessary for the AppImage to function properly. +ETC_REMOVED="makepkg.conf pacman" +BIN_REMOVED="gcc" +LIB_REMOVED="cmake gcc gconv libgphobos" +PYTHON_REMOVED="__pycache__/" +SHARE_REMOVED="gcc icons/AdwaitaLegacy icons/Adwaita/cursors/ terminfo i18n" + +# Post-installation processes (add whatever you want) +_post_installation_processes() { + printf "\n◆ User's processes: \n\n" + + ############################################################################# + # PATCH FOR VIRTUALBOX + ############################################################################# + + # Fix locale + mkdir -p AppDir/.junest/usr/lib/virtualbox/nls + mv AppDir/.junest/usr/share/virtualbox/nls/* AppDir/.junest/usr/lib/virtualbox/nls/ + rm -R -f AppDir/.junest/usr/share/virtualbox/nls + + # Add guest additions + if ! test -f ./VBoxGuestAdditions.iso; then + wget https://download.virtualbox.org/virtualbox/"${vboxver}"/VBoxGuestAdditions_"${vboxver}".iso -O ./VBoxGuestAdditions.iso || exit 1 + fi + mkdir -p AppDir/.junest/usr/lib/virtualbox/additions + cp -r VBoxGuestAdditions.iso AppDir/.junest/usr/lib/virtualbox/additions/ || exit 1 + + # Add extension pack + if ! test -f ./Extension_Pack.tar; then + wget https://download.virtualbox.org/virtualbox/"${vboxver}"/Oracle_VirtualBox_Extension_Pack-"${vboxver}".vbox-extpack -O ./Extension_Pack.tar + fi + mkdir -p shrunk + tar xfC ./Extension_Pack.tar shrunk + rm -r shrunk/{darwin*,solaris*,win*} + tar -c --gzip --file shrunk.vbox-extpack -C shrunk . + mkdir -p AppDir/.junest/usr/share/virtualbox/extensions + cp -r shrunk.vbox-extpack AppDir/.junest/usr/share/virtualbox/extensions/Oracle_VirtualBox_Extension_Pack-"${vboxver}".vbox-extpack + mkdir -p AppDir/.junest/usr/share/licenses/virtualbox-ext-oracle/ + cp -r shrunk/ExtPack-license.txt AppDir/.junest/usr/share/licenses/virtualbox-ext-oracle/PUEL + mkdir -p AppDir/.junest/usr/lib/virtualbox/ExtensionPacks/Oracle_VirtualBox_Extension_Pack + cp -r shrunk/* AppDir/.junest/usr/lib/virtualbox/ExtensionPacks/Oracle_VirtualBox_Extension_Pack/ + + # Install the "VBoxCreateUSBNode.sh" script in /usr/lib/virtualbox + mkdir -p AppDir/.junest/usr/lib/virtualbox + cp -r AppDir/.junest/usr/share/virtualbox/VBoxCreateUSBNode.sh AppDir/.junest/usr/lib/virtualbox/ + chown -R root:vboxusers AppDir/.junest/usr/lib/virtualbox + + # Create and install the 60-vboxusb.rules file in /etc/udev/rules.d + mkdir -p AppDir/.junest/etc/udev/rules.d + cat <<-'HEREDOC' >> AppDir/.junest/etc/udev/rules.d/60-vboxusb.rules + SUBSYSTEM=="usb_device", ACTION=="add", RUN+="/usr/lib/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}" + SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", RUN+="/usr/lib/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}" + SUBSYSTEM=="usb_device", ACTION=="remove", RUN+="/usr/lib/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor" + SUBSYSTEM=="usb", ACTION=="remove", ENV{DEVTYPE}=="usb_device", RUN+="/usr/lib/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor" + HEREDOC -[ -n "$lib_browser_launcher" ] && DEPENDENCES="$DEPENDENCES xapp hicolor-icon-theme" + # Allow VirtualBox to be used in PROOT mode + sed -i 's/^MY_DIR=/#MY_DIR=/g' AppDir/.junest/usr/bin/VBox || exit 1 -############################################################################# + # Remove annoying vboxdrv messages + sed -i 's/elif ! lsmod/elif ! echo vboxdrv/g' AppDir/.junest/usr/bin/VBox || exit 1 + sed -i 's# ! -c /dev/vboxdrv# -d /dev/vboxdrv#g' AppDir/.junest/usr/bin/VBox || exit 1 +} + +vboxver=$(curl -Ls https://gitlab.com/chaotic-aur/pkgbuilds/-/raw/main/virtualbox-kvm/PKGBUILD | grep vboxver | head -1 | tr "'" '\n' | grep "^[0-9]") + +########################################################################################################################################################## # SETUP THE ENVIRONMENT -############################################################################# - -# Download appimagetool -if [ ! -f ./appimagetool ]; then - echo "-----------------------------------------------------------------------------" - echo "◆ Downloading \"appimagetool\" from https://github.com/AppImage/appimagetool" - echo "-----------------------------------------------------------------------------" - curl -#Lo appimagetool https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage && chmod a+x appimagetool -fi +########################################################################################################################################################## # Create and enter the AppDir -mkdir -p "$APP".AppDir archlinux && cd archlinux || exit 1 +mkdir -p AppDir archlinux && cd archlinux || exit 1 + +_JUNEST_CMD() { + ./.local/share/junest/bin/junest "$@" +} # Set archlinux as a temporary $HOME directory HOME="$(dirname "$(readlink -f "$0")")" -############################################################################# +########################################################################################################################################################## # DOWNLOAD, INSTALL AND CONFIGURE JUNEST -############################################################################# +########################################################################################################################################################## _enable_multilib() { printf "\n[multilib]\nInclude = /etc/pacman.d/mirrorlist" >> ./.junest/etc/pacman.conf @@ -50,13 +104,18 @@ _enable_multilib() { _enable_chaoticaur() { # This function is ment to be used during the installation of JuNest, see "_pacman_patches" - ./.local/share/junest/bin/junest -- sudo pacman-key --recv-key 3056513887B78AEB --keyserver keyserver.ubuntu.com - ./.local/share/junest/bin/junest -- sudo pacman-key --lsign-key 3056513887B78AEB - ./.local/share/junest/bin/junest -- sudo pacman-key --populate chaotic - ./.local/share/junest/bin/junest -- sudo pacman --noconfirm -U 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst' 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst' + _JUNEST_CMD -- sudo pacman-key --recv-key 3056513887B78AEB --keyserver keyserver.ubuntu.com + _JUNEST_CMD -- sudo pacman-key --lsign-key 3056513887B78AEB + _JUNEST_CMD -- sudo pacman-key --populate chaotic + _JUNEST_CMD -- sudo pacman --noconfirm -U 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst' 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst' printf "\n[chaotic-aur]\nInclude = /etc/pacman.d/chaotic-mirrorlist" >> ./.junest/etc/pacman.conf } +_enable_archlinuxcn() { + _JUNEST_CMD -- sudo pacman --noconfirm -U "https://repo.archlinuxcn.org/x86_64/$(curl -Ls https://repo.archlinuxcn.org/x86_64/ | tr '"' '\n' | grep "^archlinuxcn-keyring.*zst$" | tail -1)" + printf "\n[archlinuxcn]\n#SigLevel = Never\nServer = http://repo.archlinuxcn.org/\$arch" >> ./.junest/etc/pacman.conf +} + _custom_mirrorlist() { COUNTRY=$(curl -i ipinfo.io 2>/dev/null | grep country | cut -c 15- | cut -c -2) if [ -n "$GITHUB_REPOSITORY_OWNER" ] || ! curl --output /dev/null --silent --head --fail "https://archlinux.org/mirrorlist/?country=$COUNTRY" 1>/dev/null; then @@ -71,215 +130,197 @@ _bypass_signature_check_level() { } _install_junest() { - echo "-----------------------------------------------------------------------------" - echo "◆ Clone JuNest from https://github.com/fsquillace/junest" - echo "-----------------------------------------------------------------------------" - git clone https://github.com/fsquillace/junest.git ./.local/share/junest - echo "-----------------------------------------------------------------------------" - echo "◆ Downloading JuNest archive from https://github.com/ivan-hc/junest" - echo "-----------------------------------------------------------------------------" - curl -#Lo junest-x86_64.tar.gz https://github.com/ivan-hc/junest/releases/download/continuous/junest-x86_64.tar.gz - ./.local/share/junest/bin/junest setup -i junest-x86_64.tar.gz - rm -f junest-x86_64.tar.gz + printf -- "-----------------------------------------------------------------------------\n◆ Clone JuNest from https://github.com/ivan-hc/junest\n-----------------------------------------------------------------------------\n" + git clone https://github.com/ivan-hc/junest.git ./.local/share/junest + printf -- "-----------------------------------------------------------------------------\n◆ Downloading JuNest archive from https://github.com/ivan-hc/junest\n-----------------------------------------------------------------------------\n" + if [ ! -f ./junest-x86_64.tar.gz ]; then + curl -#Lo junest-x86_64.tar.gz https://github.com/ivan-hc/junest/releases/download/continuous/junest-x86_64.tar.gz || exit 1 + fi + _JUNEST_CMD setup -i junest-x86_64.tar.gz echo " Apply patches to PacMan..." #_enable_multilib _enable_chaoticaur + #_enable_archlinuxcn _custom_mirrorlist _bypass_signature_check_level # Update arch linux in junest - ./.local/share/junest/bin/junest -- sudo pacman -Syy - ./.local/share/junest/bin/junest -- sudo pacman --noconfirm -Syu + _JUNEST_CMD -- sudo pacman -Syy + _JUNEST_CMD -- sudo pacman --noconfirm -Syu } if ! test -d "$HOME/.local/share/junest"; then - echo "-----------------------------------------------------------------------------" - echo " DOWNLOAD, INSTALL AND CONFIGURE JUNEST" - echo "-----------------------------------------------------------------------------" + printf -- "-----------------------------------------------------------------------------\n DOWNLOAD, INSTALL AND CONFIGURE JUNEST\n-----------------------------------------------------------------------------\n" _install_junest else - echo "-----------------------------------------------------------------------------" - echo " RESTART JUNEST" - echo "-----------------------------------------------------------------------------" + printf -- "-----------------------------------------------------------------------------\n RESTART JUNEST\n-----------------------------------------------------------------------------\n" fi -############################################################################# +########################################################################################################################################################## # INSTALL PROGRAMS USING YAY -############################################################################# +########################################################################################################################################################## -./.local/share/junest/bin/junest -- yay -Syy -./.local/share/junest/bin/junest -- gpg --keyserver keyserver.ubuntu.com --recv-key C01E1CAD5EA2C4F0B8E3571504C367C218ADD4FF # UNCOMMENT IF YOU USE THE AUR +_JUNEST_CMD -- yay -Syy +_JUNEST_CMD -- gpg --keyserver keyserver.ubuntu.com --recv-key C01E1CAD5EA2C4F0B8E3571504C367C218ADD4FF # UNCOMMENT IF YOU USE THE AUR if [ -n "$BASICSTUFF" ]; then - ./.local/share/junest/bin/junest -- yay --noconfirm -S "$BASICSTUFF" + _JUNEST_CMD -- yay --noconfirm -S $BASICSTUFF fi if [ -n "$COMPILERS" ]; then - ./.local/share/junest/bin/junest -- yay --noconfirm -S "$COMPILERS" + _JUNEST_CMD -- yay --noconfirm -S $COMPILERS + _JUNEST_CMD -- yay --noconfirm -S python # to force one Python version and prevent modules from being installed in different directories (e.g. "mesonbuild") fi if [ -n "$DEPENDENCES" ]; then - ./.local/share/junest/bin/junest -- yay --noconfirm -S "$DEPENDENCES" + _JUNEST_CMD -- yay --noconfirm -S $DEPENDENCES fi if [ -n "$APP" ]; then - ./.local/share/junest/bin/junest -- yay --noconfirm -S alsa-lib gtk3 xapp - ./.local/share/junest/bin/junest -- yay --noconfirm -S libxml2-legacy - ./.local/share/junest/bin/junest -- yay --noconfirm -S "$APP" - curl -#Lo gdk-pixbuf2-2.x-x86_64.pkg.tar.zst https://github.com/pkgforge-dev/archlinux-pkgs-debloated/releases/download/continuous/gdk-pixbuf2-mini-x86_64.pkg.tar.zst || exit 1 - ./.local/share/junest/bin/junest -- yay --noconfirm -U "$HOME"/gdk-pixbuf2-2.x-x86_64.pkg.tar.zst - curl -#Lo llvm-libs-2.x-x86_64.pkg.tar.zst https://github.com/pkgforge-dev/archlinux-pkgs-debloated/releases/download/continuous/llvm-libs-nano-x86_64.pkg.tar.zst || exit 1 - ./.local/share/junest/bin/junest -- yay --noconfirm -U "$HOME"/llvm-libs-2.x-x86_64.pkg.tar.zst - curl -#Lo mesa-2.x-x86_64.pkg.tar.zst https://github.com/pkgforge-dev/archlinux-pkgs-debloated/releases/download/continuous/mesa-nano-x86_64.pkg.tar.zst || exit 1 - ./.local/share/junest/bin/junest -- yay --noconfirm -U "$HOME"/mesa-2.x-x86_64.pkg.tar.zst - ./.local/share/junest/bin/junest -- glib-compile-schemas /usr/share/glib-2.0/schemas/ + _JUNEST_CMD -- yay --noconfirm -S alsa-lib gtk3 hicolor-icon-theme xapp xdg-utils xorg-server-xvfb + _JUNEST_CMD -- yay --noconfirm -S "$APP" + VERSION="$vboxver" + # Use debloated packages + debloated_soueces="https://github.com/pkgforge-dev/archlinux-pkgs-debloated/releases/download/continuous" + extra_vk_packages="vulkan-asahi vulkan-broadcom vulkan-freedreno vulkan-intel vulkan-nouveau vulkan-panfrost vulkan-radeon" + extra_packages="ffmpeg gdk-pixbuf2 gtk3 gtk4 intel-media-driver llvm-libs mangohud mesa opus qt6-base $extra_vk_packages" + for p in $extra_packages; do + if _JUNEST_CMD -- yay -Qs "$p"; then + if [ ! -f ./"$p"-2.x-x86_64.pkg.tar.zst ]; then + curl -#Lo "$p"-2.x-x86_64.pkg.tar.zst "$debloated_soueces/$p-mini-x86_64.pkg.tar.zst" || exit 1 + fi + _JUNEST_CMD -- yay --noconfirm -U "$HOME"/"$p"-2.x-x86_64.pkg.tar.zst + fi + done + # Try to compile schema files + _JUNEST_CMD -- glib-compile-schemas /usr/share/glib-2.0/schemas/ else echo "No app found, exiting"; exit 1 fi cd .. -echo "" -echo "-----------------------------------------------------------------------------" -echo " CREATING THE APPDIR" -echo "-----------------------------------------------------------------------------" -echo "" +printf -- "\n-----------------------------------------------------------------------------\n CREATING THE APPDIR\n-----------------------------------------------------------------------------\n\n" + +if [ ! -f ./deps ]; then + rm -Rf AppDir/* +elif [ -f ./deps ]; then + DEPENDENCES0=$(cat ./deps) + [ "$DEPENDENCES0" != "$DEPENDENCES" ] && rm -Rf AppDir/* +fi # Set locale rm -f archlinux/.junest/etc/locale.conf sed -i 's/LANG=${LANG:-C}/LANG=$LANG/g' archlinux/.junest/etc/profile.d/locale.sh # Add launcher and icon -rm -f ./*.desktop -LAUNCHER=$(grep -iRl "$BIN" archlinux/.junest/usr/share/applications/* | grep ".desktop" | head -1) -cp -r "$LAUNCHER" "$APP".AppDir/ +rm -f AppDir/*.desktop +LAUNCHER=$(grep -iRl "^Exec.*$BIN" archlinux/.junest/usr/share/applications/* | grep ".desktop" | head -1) +cp -r "$LAUNCHER" AppDir/ ICON="virtualbox.png" [ -z "$ICON" ] && ICON="$BIN" -cp -r archlinux/.junest/usr/share/icons/*"$ICON"* "$APP".AppDir/ 2>/dev/null -cp -r archlinux/.junest/usr/share/icons/hicolor/22x22/mimetypes/*"$ICON"* "$APP".AppDir/ 2>/dev/null -cp -r archlinux/.junest/usr/share/icons/hicolor/24x24/mimetypes/*"$ICON"* "$APP".AppDir/ 2>/dev/null -cp -r archlinux/.junest/usr/share/icons/hicolor/32x32/mimetypes/*"$ICON"* "$APP".AppDir/ 2>/dev/null -cp -r archlinux/.junest/usr/share/icons/hicolor/48x48/mimetypes/*"$ICON"* "$APP".AppDir/ 2>/dev/null -cp -r archlinux/.junest/usr/share/icons/hicolor/64x64/mimetypes/*"$ICON"* "$APP".AppDir/ 2>/dev/null -cp -r archlinux/.junest/usr/share/icons/hicolor/128x128/mimetypes/*"$ICON"* "$APP".AppDir/ 2>/dev/null -cp -r archlinux/.junest/usr/share/icons/hicolor/192x192/mimetypes/*"$ICON"* "$APP".AppDir/ 2>/dev/null -cp -r archlinux/.junest/usr/share/icons/hicolor/256x256/mimetypes/*"$ICON"* "$APP".AppDir/ 2>/dev/null -cp -r archlinux/.junest/usr/share/icons/hicolor/512x512/mimetypes/*"$ICON"* "$APP".AppDir/ 2>/dev/null -cp -r archlinux/.junest/usr/share/icons/hicolor/scalable/mimetypes/*"$ICON"* "$APP".AppDir/ 2>/dev/null -cp -r archlinux/.junest/usr/share/pixmaps/*"$ICON"* "$APP".AppDir/ 2>/dev/null +cp -r archlinux/.junest/usr/share/icons/*"$ICON"* AppDir/ 2>/dev/null +cp -r archlinux/.junest/usr/share/icons/hicolor/22x22/mimetypes/*"$ICON"* AppDir/ 2>/dev/null +cp -r archlinux/.junest/usr/share/icons/hicolor/24x24/mimetypes/*"$ICON"* AppDir/ 2>/dev/null +cp -r archlinux/.junest/usr/share/icons/hicolor/32x32/mimetypes/*"$ICON"* AppDir/ 2>/dev/null +cp -r archlinux/.junest/usr/share/icons/hicolor/48x48/mimetypes/*"$ICON"* AppDir/ 2>/dev/null +cp -r archlinux/.junest/usr/share/icons/hicolor/64x64/mimetypes/*"$ICON"* AppDir/ 2>/dev/null +cp -r archlinux/.junest/usr/share/icons/hicolor/128x128/mimetypes/*"$ICON"* AppDir/ 2>/dev/null +cp -r archlinux/.junest/usr/share/icons/hicolor/192x192/mimetypes/*"$ICON"* AppDir/ 2>/dev/null +cp -r archlinux/.junest/usr/share/icons/hicolor/256x256/mimetypes/*"$ICON"* AppDir/ 2>/dev/null +cp -r archlinux/.junest/usr/share/icons/hicolor/512x512/mimetypes/*"$ICON"* AppDir/ 2>/dev/null +cp -r archlinux/.junest/usr/share/icons/hicolor/scalable/mimetypes/*"$ICON"* AppDir/ 2>/dev/null +cp -r archlinux/.junest/usr/share/pixmaps/*"$ICON"* AppDir/ 2>/dev/null # Test if the desktop file and the icon are in the root of the future appimage (./*appdir/*) -if test -f "$APP".AppDir/*.desktop; then +if test -f AppDir/*.desktop; then echo "◆ The .desktop file is available in $APP.AppDir/" -elif test -f archlinux/.junest/usr/bin/"$BIN"; then - echo "◆ No .desktop file available for $APP, creating a new one" - cat <<-HEREDOC >> "$APP".AppDir/"$APP".desktop - [Desktop Entry] - Version=1.0 - Type=Application - Name=$(echo "$APP" | tr '[:lower:]' '[:upper:]') - Comment= - Exec=$BIN - Icon=tux - Categories=Utility; - Terminal=true - StartupNotify=true - HEREDOC - curl -Lo "$APP".AppDir/tux.png https://raw.githubusercontent.com/Portable-Linux-Apps/Portable-Linux-Apps.github.io/main/favicon.ico 2>/dev/null -else - echo "No binary in path... aborting all the processes." +elif ! test -f archlinux/.junest/usr/bin/"$BIN"; then + echo "No binary in path... aborting all the processes." exit 0 fi -if [ ! -d "$APP".AppDir/.local ]; then - mkdir -p "$APP".AppDir/.local - rsync -av archlinux/.local/ "$APP".AppDir/.local/ | echo "◆ Rsync .local directory to the AppDir" +if [ ! -d AppDir/.local ]; then + mkdir -p AppDir/.local + rsync -av archlinux/.local/ AppDir/.local/ | echo "◆ Rsync .local directory to the AppDir" # Made JuNest a portable app and remove "read-only file system" errors - sed -i 's#${JUNEST_HOME}/usr/bin/junest_wrapper#${HOME}/.cache/junest_wrapper.old#g' "$APP".AppDir/.local/share/junest/lib/core/wrappers.sh - sed -i 's/rm -f "${JUNEST_HOME}${bin_path}_wrappers/#rm -f "${JUNEST_HOME}${bin_path}_wrappers/g' "$APP".AppDir/.local/share/junest/lib/core/wrappers.sh - sed -i 's/ln/#ln/g' "$APP".AppDir/.local/share/junest/lib/core/wrappers.sh - sed -i 's/rm -f "$file"/test -f "$file"/g' "$APP".AppDir/.local/share/junest/lib/core/wrappers.sh - sed -i 's#--bind "$HOME" "$HOME"#--bind-try /home /home --bind-try /run/user /run/user#g' "$APP".AppDir/.local/share/junest/lib/core/namespace.sh + cat AppDir/.local/share/junest/lib/core/wrappers.patch > AppDir/.local/share/junest/lib/core/wrappers.sh + cat AppDir/.local/share/junest/lib/core/namespace.patch > AppDir/.local/share/junest/lib/core/namespace.sh fi echo "◆ Rsync .junest directories structure to the AppDir" -rm -Rf "$APP".AppDir/.junest/* +rm -Rf AppDir/.junest/* archdirs=$(find archlinux/.junest -type d | sed 's/^archlinux\///g') for d in $archdirs; do - mkdir -p "$APP".AppDir/"$d" + mkdir -p AppDir/"$d" done symlink_dirs=" bin sbin lib lib64 usr/sbin usr/lib64" for l in $symlink_dirs; do - cp -r archlinux/.junest/"$l" "$APP".AppDir/.junest/"$l" + cp -r archlinux/.junest/"$l" AppDir/.junest/"$l" done -rsync -av archlinux/.junest/usr/bin_wrappers/ "$APP".AppDir/.junest/usr/bin_wrappers/ | echo "◆ Rsync bin_wrappers to the AppDir" -rsync -av archlinux/.junest/etc/* "$APP".AppDir/.junest/etc/ | echo "◆ Rsync /etc" +rsync -av archlinux/.junest/usr/bin_wrappers/ AppDir/.junest/usr/bin_wrappers/ | echo "◆ Rsync bin_wrappers to the AppDir" +rsync -av archlinux/.junest/etc/* AppDir/.junest/etc/ | echo "◆ Rsync /etc" -############################################################################# +########################################################################################################################################################## # APPRUN -############################################################################# +########################################################################################################################################################## -rm -f "$APP".AppDir/AppRun -cat <<-'HEREDOC' >> "$APP".AppDir/AppRun +rm -f AppDir/AppRun +cat <<-'HEREDOC' >> AppDir/AppRun #!/bin/sh HERE="$(dirname "$(readlink -f "$0")")" -export UNION_PRELOAD="$HERE" export JUNEST_HOME="$HERE"/.junest -export MY_DIR="$JUNEST_HOME"/usr/lib/virtualbox + +CACHEDIR="${XDG_CACHE_HOME:-$HOME/.cache}" +mkdir -p "$CACHEDIR" || exit 1 if command -v unshare >/dev/null 2>&1 && ! unshare --user -p /bin/true >/dev/null 2>&1; then - PROOT_ON=1 - export PATH="$HERE"/.local/share/junest/bin/:"$PATH" - mkdir -p "$HOME"/.cache + PROOT_ON=1 && export PATH="$HERE"/.local/share/junest/bin/:"$PATH" else export PATH="$PATH":"$HERE"/.local/share/junest/bin fi [ -z "$NVIDIA_ON" ] && NVIDIA_ON=1 -if [ "$NVIDIA_ON" = 1 ]; then - DATADIR="${XDG_DATA_HOME:-$HOME/.local/share}" - CONTY_DIR="${DATADIR}/Conty/overlayfs_shared" - [ -f /sys/module/nvidia/version ] && nvidia_driver_version="$(cat /sys/module/nvidia/version)" - if [ -n "$nvidia_driver_version" ]; then - mkdir -p "${CONTY_DIR}"/nvidia "${CONTY_DIR}"/up/usr/lib "${CONTY_DIR}"/up/usr/share - nvidia_data_dirs="egl glvnd nvidia vulkan" - for d in $nvidia_data_dirs; do [ ! -d "${CONTY_DIR}"/up/usr/share/"$d" ] && ln -s /usr/share/"$d" "${CONTY_DIR}"/up/usr/share/ 2>/dev/null; done - [ ! -f "${CONTY_DIR}"/nvidia/current-nvidia-version ] && echo "${nvidia_driver_version}" > "${CONTY_DIR}"/nvidia/current-nvidia-version - [ -f "${CONTY_DIR}"/nvidia/current-nvidia-version ] && nvidia_driver_conty=$(cat "${CONTY_DIR}"/nvidia/current-nvidia-version) - if [ "${nvidia_driver_version}" != "${nvidia_driver_conty}" ]; then - rm -f "${CONTY_DIR}"/up/usr/lib/*; echo "${nvidia_driver_version}" > "${CONTY_DIR}"/nvidia/current-nvidia-version - fi - /sbin/ldconfig -p > "${CONTY_DIR}"/nvidia/host_libs - grep -i "nvidia\|libcuda" "${CONTY_DIR}"/nvidia/host_libs | cut -d ">" -f 2 > "${CONTY_DIR}"/nvidia/host_nvidia_libs - libnv_paths=$(grep "libnv" "${CONTY_DIR}"/nvidia/host_libs | cut -d ">" -f 2) - for f in $libnv_paths; do strings "${f}" | grep -qi -m 1 "nvidia" && echo "${f}" >> "${CONTY_DIR}"/nvidia/host_nvidia_libs; done - nvidia_libs=$(cat "${CONTY_DIR}"/nvidia/host_nvidia_libs) - for n in $nvidia_libs; do libname=$(echo "$n" | sed 's:.*/::') && [ ! -f "${CONTY_DIR}"/up/usr/lib/"$libname" ] && cp "$n" "${CONTY_DIR}"/up/usr/lib/; done - libvdpau_nvidia="${CONTY_DIR}/up/usr/lib/libvdpau_nvidia.so" - if ! test -f "${libvdpau_nvidia}*"; then cp "$(find /usr/lib -type f -name 'libvdpau_nvidia.so*' -print -quit 2>/dev/null | head -1)" "${CONTY_DIR}"/up/usr/lib/; fi - [ -f "${libvdpau_nvidia}"."${nvidia_driver_version}" ] && [ ! -f "${libvdpau_nvidia}" ] && ln -s "${libvdpau_nvidia}"."${nvidia_driver_version}" "${libvdpau_nvidia}" - [ -d "${CONTY_DIR}"/up/usr/lib ] && export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}":"${CONTY_DIR}"/up/usr/lib:"${LD_LIBRARY_PATH}" - [ -d "${CONTY_DIR}"/up/usr/share ] && export XDG_DATA_DIRS="${XDG_DATA_DIRS}":"${CONTY_DIR}"/up/usr/share:"${XDG_DATA_DIRS}" +if [ -f /sys/module/nvidia/version ] && [ "$NVIDIA_ON" = 1 ]; then + nvidia_driver_version="$(cat /sys/module/nvidia/version)" + JUNEST_DIRS="${CACHEDIR}/junest_shared/usr" JUNEST_LIBS="${JUNEST_DIRS}/lib" JUNEST_NVIDIA_DATA="${JUNEST_DIRS}/share/nvidia" + mkdir -p "${JUNEST_LIBS}" "${JUNEST_NVIDIA_DATA}" || exit 1 + [ ! -f "${JUNEST_NVIDIA_DATA}"/current-nvidia-version ] && echo "${nvidia_driver_version}" > "${JUNEST_NVIDIA_DATA}"/current-nvidia-version + [ -f "${JUNEST_NVIDIA_DATA}"/current-nvidia-version ] && nvidia_driver_conty=$(cat "${JUNEST_NVIDIA_DATA}"/current-nvidia-version) + if [ "${nvidia_driver_version}" != "${nvidia_driver_conty}" ]; then + rm -f "${JUNEST_LIBS}"/*; echo "${nvidia_driver_version}" > "${JUNEST_NVIDIA_DATA}"/current-nvidia-version fi + HOST_LIBS=$(/sbin/ldconfig -p) + libnvidia_libs=$(echo "$HOST_LIBS" | grep -i "nvidia\|libcuda" | cut -d ">" -f 2) + libvdpau_nvidia=$(find /usr/lib -type f -name 'libvdpau_nvidia.so*' -print -quit 2>/dev/null | head -1) + libnv_paths=$(echo "$HOST_LIBS" | grep "libnv" | cut -d ">" -f 2) + for f in $libnv_paths; do strings "${f}" | grep -qi -m 1 "nvidia" && libnv_libs="$libnv_libs ${f}"; done + host_nvidia_libs=$(echo "$libnv_libs $libnvidia_libs $libvdpau_nvidia" | sed 's/ /\n/g' | sort | grep .) + for n in $host_nvidia_libs; do libname=$(echo "$n" | sed 's:.*/::') && [ ! -f "${JUNEST_LIBS}"/"$libname" ] && cp "$n" "${JUNEST_LIBS}"/; done + libvdpau="${JUNEST_LIBS}/libvdpau_nvidia.so" + [ -f "${libvdpau}"."${nvidia_driver_version}" ] && [ ! -f "${libvdpau}" ] && ln -s "${libvdpau}"."${nvidia_driver_version}" "${libvdpau}" + export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}":"${JUNEST_LIBS}":"${LD_LIBRARY_PATH}" fi -PROOT_BINDINGS="" -BWRAP_BINDINGS="" - bind_files="/etc/resolv.conf /etc/hosts /etc/nsswitch.conf /etc/passwd /etc/group /etc/machine-id /etc/asound.conf /etc/localtime " -for f in $bind_files; do [ -f "$f" ] && PROOT_BINDINGS=" $PROOT_BINDINGS --bind=$f" && BWRAP_BINDINGS=" $BWRAP_BINDINGS --ro-bind-try $f $f"; done - -bind_dirs=" /media /mnt /opt /run/media /usr/lib/locale /usr/share/fonts /usr/share/themes /var" -for d in $bind_dirs; do [ -d "$d" ] && PROOT_BINDINGS=" $PROOT_BINDINGS --bind=$d" && BWRAP_BINDINGS=" $BWRAP_BINDINGS --bind-try $d $d"; done - -PROOT_BINDS=" --bind=/dev --bind=/sys --bind=/tmp --bind=/proc $PROOT_BINDINGS --bind=/home --bind=/home/$USER " -BWRAP_BINDS=" --dev-bind /dev /dev --ro-bind /sys /sys --bind-try /tmp /tmp --proc /proc $BWRAP_BINDINGS --cap-add CAP_SYS_ADMIN " +bind_nvidia_data_dirs="/usr/share/egl /usr/share/glvnd /usr/share/nvidia /usr/share/vulkan" +bind_dirs=" /media /mnt /opt /run/media /usr/lib/locale /usr/share/fonts /usr/share/themes /var $bind_nvidia_data_dirs" +if [ "$PROOT_ON" = 1 ]; then + for f in $bind_files; do [ -f "$f" ] && BINDINGS=" $BINDINGS --bind=$f"; done + for d in $bind_dirs; do [ -d "$d" ] && BINDINGS=" $BINDINGS --bind=$d"; done + junest_options="proot -n -b" + junest_bindings=" --bind=/dev --bind=/sys --bind=/tmp --bind=/proc $BINDINGS --bind=/home --bind=/home/$USER " +else + for f in $bind_files; do [ -f "$f" ] && BINDINGS=" $BINDINGS --ro-bind-try $f $f"; done + for d in $bind_dirs; do [ -d "$d" ] && BINDINGS=" $BINDINGS --bind-try $d $d"; done + junest_options="-n -b" + junest_bindings=" --dev-bind /dev /dev --ro-bind /sys /sys --bind-try /tmp /tmp --proc /proc $BINDINGS --cap-add CAP_SYS_ADMIN " +fi _JUNEST_CMD() { - if [ "$PROOT_ON" = 1 ]; then - "$HERE"/.local/share/junest/bin/junest proot -n -b "$PROOT_BINDS" "$@" - else - "$HERE"/.local/share/junest/bin/junest -n -b "$BWRAP_BINDS" "$@" - fi + "$HERE"/.local/share/junest/bin/junest $junest_options "$junest_bindings" "$@" } +#EXEC=$(grep -e '^Exec=.*' "${HERE}"/*.desktop | head -n 1 | cut -d "=" -f 2- | sed -e 's|%.||g') +#if ! echo "$EXEC" | grep -q "/usr/bin"; then EXEC="/usr/bin/$EXEC"; fi + if command -v sudo >/dev/null 2>&1; then export SUDOCMD="sudo" elif command -v doas >/dev/null 2>&1; then @@ -337,8 +378,6 @@ VBoxUSB_enable() { printf "\nIt is recommended that you reboot for the changes to take effect.\n" } -EXEC=$(grep -e '^Exec=.*' "${HERE}"/*.desktop | head -n 1 | cut -d "=" -f 2- | sed -e 's|%.||g') - case "$1" in '') _JUNEST_CMD -- /usr/bin/virtualbox @@ -359,29 +398,66 @@ case "$1" in _JUNEST_CMD -- /usr/bin/VirtualBox "$@" ;; esac + HEREDOC -chmod a+x "$APP".AppDir/AppRun -sed -i "s/VERSION/$vboxver/g" "$APP".AppDir/AppRun +chmod a+x AppDir/AppRun -############################################################################# -# EXTRACT PACKAGES -############################################################################# +########################################################################################################################################################## +# DEPLOY DEPENDENCIES +########################################################################################################################################################## -[ -z "$extraction_count" ] && extraction_count=0 -[ ! -f ./autodeps ] && echo "$extraction_count" > ./autodeps -[ -f ./autodeps ] && autodeps=$(cat ./autodeps) -[ "$autodeps" != "$extraction_count" ] && rm -Rf ./deps ./packages && echo "$extraction_count" > ./autodeps +printf -- "\n-----------------------------------------------------------------------------\n IMPLEMENTING APP'S SPECIFIC LIBRARIES (SHARUN)\n-----------------------------------------------------------------------------\n" + +_run_quick_sharun() { + cd archlinux || exit 1 + SHARUN="https://raw.githubusercontent.com/pkgforge-dev/Anylinux-AppImages/refs/heads/main/useful-tools/quick-sharun.sh" + + if [ ! -f ./quick-sharun ]; then + wget --retry-connrefused --tries=30 "$SHARUN" -O ./quick-sharun || exit 1 + chmod +x ./quick-sharun + fi -[ ! -f ./userdeps ] && echo "$DEPENDENCES" > ./userdeps -[ -f ./userdeps ] && userdeps=$(cat ./userdeps) -[ "$userdeps" != "$DEPENDENCES" ] && rm -Rf ./deps ./packages && echo "$DEPENDENCES" > ./userdeps + _JUNEST_CMD -- ./quick-sharun /usr/bin/"$BIN" + + cd .. || exit 1 + echo "$DEPENDENCES" > ./deps + [ ! -f ./deps ] && touch ./deps + printf "\n-----------------------------------------------------------------------------\n" +} + +if [ ! -f ./deps ]; then + _run_quick_sharun + echo "$DEPENDENCES" > ./deps +elif [ -f ./deps ]; then + DEPENDENCES0=$(cat ./deps) + if [ "$DEPENDENCES0" != "$DEPENDENCES" ]; then + _run_quick_sharun + fi +fi + +rsync -av archlinux/AppDir/etc/* AppDir/.junest/etc/ | printf "\n◆ Saving /etc" +rsync -av archlinux/AppDir/bin/* AppDir/.junest/usr/bin/ | printf "\n◆ Saving /usr/bin" +rsync -av archlinux/AppDir/lib/* AppDir/.junest/usr/lib/ | printf "\n◆ Saving /usr/lib" +rsync -av archlinux/AppDir/share/* AppDir/.junest/usr/share/ | printf "\n◆ Saving /usr/share\n" + +# Extract the main package in the AppDir +_extract_base_to_AppDir() { + rsync -av base/etc/* AppDir/.junest/etc/ 2>/dev/null + rsync -av base/usr/bin/* AppDir/.junest/usr/bin/ 2>/dev/null + rsync -av base/usr/lib/* AppDir/.junest/usr/lib/ 2>/dev/null + rsync -av base/usr/share/* AppDir/.junest/usr/share/ 2>/dev/null + if [ -d archlinux/.junest/usr/lib32 ]; then + mkdir -p AppDir/.junest/usr/lib32 + rsync -av archlinux/.junest/usr/lib32/* AppDir/.junest/usr/lib32/ 2>/dev/null + fi +} _extract_main_package() { mkdir -p base rm -Rf ./base/* - pkg_full_path=$(find ./archlinux -type f -name "$APP-*zst") + pkg_full_path=$(find ./archlinux/.junest -type f -name "$APP-*zst") if [ "$(echo "$pkg_full_path" | wc -l)" = 1 ]; then - pkg_full_path=$(find ./archlinux -type f -name "$APP-*zst") + pkg_full_path=$(find ./archlinux/.junest -type f -name "$APP-*zst") else for p in $pkg_full_path; do if tar fx "$p" .PKGINFO -O | grep -q "pkgname = $APP$"; then @@ -391,138 +467,70 @@ _extract_main_package() { fi [ -z "$pkg_full_path" ] && echo "💀 ERROR: no package found for \"$APP\", operation aborted!" && exit 0 tar fx "$pkg_full_path" -C ./base/ - VERSION=$(cat ./base/.PKGINFO | grep pkgver | cut -c 10- | sed 's@.*:@@') - mkdir -p deps -} - -_download_missing_packages() { - localpackage=$(find ./archlinux -name "$arg-[0-9]*zst") - if ! test -f "$localpackage"; then - ./archlinux/.local/share/junest/bin/junest -- yay --noconfirm -Sw "$arg" - fi + _extract_base_to_AppDir | printf "\n◆ Extract the base package to AppDir\n" } -_extract_package() { - _download_missing_packages &> /dev/null - pkg_full_path=$(find ./archlinux -name "$arg-[0-9]*zst") - pkgname=$(echo "$pkg_full_path" | sed 's:.*/::') - [ ! -f ./packages ] && rm -Rf ./deps/* && touch ./packages - if [ -z "$( ls -A './deps' )" ]; then - rm -f ./packages - echo "" - echo "-----------------------------------------------------------------------------" - echo " EXTRACTING PACKAGES" - echo "-----------------------------------------------------------------------------" - echo "" - fi - if test -f "$pkg_full_path"; then - if ! grep -q "$pkgname" ./packages 2>/dev/null;then - echo "◆ Extracting $pkgname" - tar fx "$pkg_full_path" -C ./deps/ --warning=no-unknown-keyword - echo "$pkgname" >> ./packages - fi - [ -n "$lib_browser_launcher" ] && [[ "$arg" =~ (hicolor-icon-theme|xapp) ]] && tar fx "$pkg_full_path" -C ./base/ --warning=no-unknown-keyword --exclude='.PKGINFO' - fi -} - -_determine_packages_and_libraries() { - if echo "$arg" | grep -q "\.so"; then - LIBSAVED="$LIBSAVED $arg" - elif [ "$arg" != autoconf ] && [ "$arg" != autoconf ] && [ "$arg" != automake ] && [ "$arg" != bison ] && [ "$arg" != debugedit ] && [ "$arg" != dkms ] && [ "$arg" != fakeroot ] && [ "$arg" != flatpak ] && [ "$arg" != linux ] && [ "$arg" != gcc ] && [ "$arg" != make ] && [ "$arg" != pacman ] && [ "$arg" != patch ] && [ "$arg" != systemd ] \ - && ! echo "$arg" | grep -q "$BIN"; then - _extract_package - cat ./deps/.PKGINFO 2>/dev/null | grep "^depend = " | cut -c 10- | sed 's/=.*//' >> depdeps - rm -f ./deps/.* - fi -} - -_extract_deps() { - DEPS=$(sort -u ./depdeps) - for arg in $DEPS; do - _determine_packages_and_libraries - done -} - -_extract_all_dependences() { - rm -f ./depdeps - - OPTDEPS=$(cat ./base/.PKGINFO 2>/dev/null | grep "^optdepend = " | sed 's/optdepend = //g' | sed 's/=.*//' | sed 's/:.*//') - for arg in $OPTDEPS; do - _determine_packages_and_libraries - done - [ -f ./depdeps ] && _extract_deps - rm -f ./depdeps - - ARGS=$(echo "$DEPENDENCES" | tr " " "\n") - for arg in $ARGS; do - _determine_packages_and_libraries - done - - DEPS=$(cat ./base/.PKGINFO 2>/dev/null | grep "^depend = " | sed 's/depend = //g' | sed 's/=.*//') - for arg in $DEPS; do - _determine_packages_and_libraries - done - - # Set the level of sub-dependencies extraction, the higher the number, the bigger the AppImage will be - if [ "$extraction_count" != 0 ]; then - for e in $(seq "$extraction_count"); do _extract_deps; done +_extract_core_dependencies() { + if [ -n "$DEPENDENCES" ]; then + for d in $DEPENDENCES; do + if test -f ./archlinux/"$d"-*; then + tar fx ./archlinux/"$d"-* -C ./base/ | printf "\n◆ Force \"$d\"" + else + pkg_full_path=$(find ./archlinux -type f -name "$d-[0-9]*zst") + tar fx "$pkg_full_path" -C ./base/ | printf "\n◆ Force \"$d\"" + fi + done + _extract_base_to_AppDir | printf "\n\n◆ Extract core dependencies to AppDir\n" fi } _extract_main_package -_extract_all_dependences +_extract_core_dependencies -echo "" -echo "-----------------------------------------------------------------------------" -echo " IMPLEMENTING NECESSARY LIBRARIES (MAY TAKE SEVERAL MINUTES)" -echo "-----------------------------------------------------------------------------" -echo "" +tar fx "$(find ./archlinux -type f -name "hicolor-icon-theme-[0-9]*zst")" -C ./base/ 2>/dev/null + +printf -- "\n-----------------------------------------------------------------------------\n IMPLEMENTING USER'S SELECTED FILES AND DIRECTORIES\n-----------------------------------------------------------------------------\n\n" # Save files in /usr/bin _savebins() { echo "◆ Saving files in /usr/bin" - cp -r ./archlinux/.junest/usr/bin/bwrap ./"$APP".AppDir/.junest/usr/bin/ - cp -r ./archlinux/.junest/usr/bin/proot* ./"$APP".AppDir/.junest/usr/bin/ - cp -r ./archlinux/.junest/usr/bin/*$BIN* ./"$APP".AppDir/.junest/usr/bin/ + cp -r ./archlinux/.junest/usr/bin/bwrap AppDir/.junest/usr/bin/ + cp -r ./archlinux/.junest/usr/bin/proot* AppDir/.junest/usr/bin/ + cp -r ./archlinux/.junest/usr/bin/*$BIN* AppDir/.junest/usr/bin/ + cp -r ./archlinux/.junest/usr/bin/gio* AppDir/.junest/usr/bin/ + cp -r ./archlinux/.junest/usr/bin/xdg-* AppDir/.junest/usr/bin/ + cp -r ./archlinux/.junest/usr/bin/ps AppDir/.junest/usr/bin/ coreutils="[ basename cat chmod chown cp cut dir dirname du echo env expand expr fold head id ln ls mkdir mv readlink realpath rm rmdir seq sleep sort stty sum sync tac tail tee test timeout touch tr true tty uname uniq wc who whoami yes" - utils_bin="awk bash $coreutils gawk gio grep ld ldd sed sh strings xdg-open" + utils_bin="awk bash $coreutils gawk gio grep ld ldd sed sh strings" for b in $utils_bin; do - cp -r ./archlinux/.junest/usr/bin/"$b" ./"$APP".AppDir/.junest/usr/bin/ + cp -r ./archlinux/.junest/usr/bin/"$b" AppDir/.junest/usr/bin/ done for arg in $BINSAVED; do - cp -r ./archlinux/.junest/usr/bin/*"$arg"* ./"$APP".AppDir/.junest/usr/bin/ + cp -r ./archlinux/.junest/usr/bin/*"$arg"* AppDir/.junest/usr/bin/ done } # Save files in /usr/lib _savelibs() { echo "◆ Detect libraries related to /usr/bin files" - libs4bin=$(readelf -d ./"$APP".AppDir/.junest/usr/bin/* 2>/dev/null | grep NEEDED | tr '[] ' '\n' | grep ".so") + libs4bin=$(readelf -d AppDir/.junest/usr/bin/* 2>/dev/null | grep NEEDED | tr '[] ' '\n' | grep ".so") echo "◆ Saving JuNest core libraries" - cp -r ./archlinux/.junest/usr/lib/ld-linux-x86-64.so* ./"$APP".AppDir/.junest/usr/lib/ - lib_preset="$APP $BIN gconv libdw libelf libresolv.so libtinfo.so $libs4bin" - LIBSAVED="$lib_preset $LIBSAVED $SHARESAVED" + cp -r ./archlinux/.junest/usr/lib/ld-linux-x86-64.so* AppDir/.junest/usr/lib/ + lib_preset="$APP $BIN libdw libelf libresolv.so libtinfo.so profile.d $libs4bin" + LIBSAVED="$lib_preset $LIBSAVED" for arg in $LIBSAVED; do LIBPATHS="$LIBPATHS $(find ./archlinux/.junest/usr/lib -maxdepth 20 -wholename "*$arg*" | sed 's/\.\/archlinux\///g')" done for arg in $LIBPATHS; do - [ ! -d "$APP".AppDir/"$arg" ] && cp -r ./archlinux/"$arg" "$APP".AppDir/"$arg" & + [ ! -d AppDir/"$arg" ] && cp -r ./archlinux/"$arg" AppDir/"$arg" & done wait - core_libs=$(find ./"$APP".AppDir -type f) + core_libs=$(find AppDir -type f) lib_core=$(for c in $core_libs; do readelf -d "$c" 2>/dev/null | grep NEEDED | tr '[] ' '\n' | grep ".so"; done) - echo "◆ Detect libraries of the main package" - base_libs=$(find ./base -type f | uniq) - lib_base_0=$(for b in $base_libs; do readelf -d "$b" 2>/dev/null | grep NEEDED | tr '[] ' '\n' | grep ".so"; done) - - echo "◆ Detect libraries of the dependencies" - dep_libs=$(find ./deps -executable -name "*.so*") - lib_deps=$(for d in $dep_libs; do readelf -d "$d" 2>/dev/null | grep NEEDED | tr '[] ' '\n' | grep ".so"; done) - echo "◆ Detect and copy base libs" - basebin_libs=$(find ./base -executable -name "*.so*") + basebin_libs=$(find ./AppDir -executable -name "*.so*") lib_base_1=$(for b in $basebin_libs; do readelf -d "$b" 2>/dev/null | grep NEEDED | tr '[] ' '\n' | grep ".so"; done) lib_base_1=$(echo "$lib_base_1" | tr ' ' '\n' | sort -u | xargs) lib_base_2=$(for b in $lib_base_1; do readelf -d ./archlinux/.junest/usr/lib/"$b" 2>/dev/null | grep NEEDED | tr '[] ' '\n' | grep ".so"; done) @@ -541,14 +549,10 @@ _savelibs() { lib_base_8=$(echo "$lib_base_8" | tr ' ' '\n' | sort -u | xargs) lib_base_9=$(for b in $lib_base_8; do readelf -d ./archlinux/.junest/usr/lib/"$b" 2>/dev/null | grep NEEDED | tr '[] ' '\n' | grep ".so"; done) lib_base_9=$(echo "$lib_base_9" | tr ' ' '\n' | sort -u | xargs) - lib_base_libs="$lib_core $lib_base_0 $lib_base_1 $lib_base_2 $lib_base_3 $lib_base_4 $lib_base_5 $lib_base_6 $lib_base_7 $lib_base_8 $lib_base_9 $lib_deps" + lib_base_libs="$lib_core $lib_base_1 $lib_base_2 $lib_base_3 $lib_base_4 $lib_base_5 $lib_base_6 $lib_base_7 $lib_base_8 $lib_base_9" lib_base_libs=$(echo "$lib_base_libs" | tr ' ' '\n' | sort -u | sed 's/.so.*/.so/' | xargs) for l in $lib_base_libs; do - rsync -av ./archlinux/.junest/usr/lib/"$l"* ./"$APP".AppDir/.junest/usr/lib/ & - done - wait - for l in $lib_base_libs; do - rsync -av ./deps/usr/lib/"$l"* ./"$APP".AppDir/.junest/usr/lib/ & + rsync -av ./archlinux/.junest/usr/lib/"$l"* AppDir/.junest/usr/lib/ & done wait } @@ -558,7 +562,7 @@ _saveshare() { echo "◆ Saving directories in /usr/share" SHARESAVED="$SHARESAVED $APP $BIN fontconfig glib- locale mime wayland X11" for arg in $SHARESAVED; do - cp -r ./archlinux/.junest/usr/share/*"$arg"* ./"$APP".AppDir/.junest/usr/share/ + cp -r ./archlinux/.junest/usr/share/*"$arg"* AppDir/.junest/usr/share/ done } @@ -566,146 +570,74 @@ _savebins 2>/dev/null _savelibs 2>/dev/null _saveshare 2>/dev/null -echo "" -echo "-----------------------------------------------------------------------------" -echo " ASSEMBLING THE APPIMAGE" -echo "-----------------------------------------------------------------------------" -echo "" +printf -- "\n-----------------------------------------------------------------------------\n ASSEMBLING THE APPIMAGE\n-----------------------------------------------------------------------------\n" -_rsync_main_package() { - rm -Rf ./base/.* - rsync -av ./base/ ./"$APP".AppDir/.junest/ | echo "◆ Rsync the content of the \"$APP\" package" -} - -_rsync_dependences() { - rm -Rf ./deps/.* - chmod -R 777 ./deps/* - rsync -av ./deps/ ./"$APP".AppDir/.junest/ | echo "◆ Rsync all dependencies, please wait" -} +_post_installation_processes -_rsync_main_package -_rsync_dependences - -############################################################################# +########################################################################################################################################################## # REMOVE BLOATWARES, ENABLE MOUNTPOINTS -############################################################################# +########################################################################################################################################################## _remove_more_bloatwares() { - etc_remove="makepkg.conf pacman" - for r in $etc_remove; do - rm -Rf ./"$APP".AppDir/.junest/etc/"$r"* - done - bin_remove="gcc" - for r in $bin_remove; do - rm -Rf ./"$APP".AppDir/.junest/usr/bin/"$r"* - done - lib_remove="cmake gcc gconv libgphobos" - for r in $lib_remove; do - rm -Rf ./"$APP".AppDir/.junest/usr/lib/"$r"* - done - share_remove="gcc i18n" - for r in $share_remove; do - rm -Rf ./"$APP".AppDir/.junest/usr/share/"$r"* - done - echo Y | rm -Rf ./"$APP".AppDir/.cache/yay/* - find ./"$APP".AppDir/.junest/usr/share/doc/* -not -iname "*$BIN*" -a -not -name "." -delete 2> /dev/null #REMOVE ALL DOCUMENTATION NOT RELATED TO THE APP - find ./"$APP".AppDir/.junest/usr/share/locale/*/*/* -not -iname "*$BIN*" -a -not -name "." -delete 2> /dev/null #REMOVE ALL ADDITIONAL LOCALE FILES - rm -Rf ./"$APP".AppDir/.junest/home # remove the inbuilt home - rm -Rf ./"$APP".AppDir/.junest/usr/include # files related to the compiler - rm -Rf ./"$APP".AppDir/.junest/usr/share/man # AppImages are not ment to have man command - rm -Rf ./"$APP".AppDir/.junest/usr/lib/python*/__pycache__/* # if python is installed, removing this directory can save several megabytes - rm -Rf ./"$APP".AppDir/.junest/usr/lib/libgallium* - rm -Rf ./"$APP".AppDir/.junest/usr/lib/libgo.so* - rm -Rf ./"$APP".AppDir/.junest/usr/lib/libLLVM* # included in the compilation phase, can sometimes be excluded for daily use - rm -Rf ./"$APP".AppDir/.junest/var/* # remove all packages downloaded with the package manager + for r in $ETC_REMOVED; do rm -Rf AppDir/.junest/etc/"$r"*; done + for r in $BIN_REMOVED; do rm -Rf AppDir/.junest/usr/bin/"$r"*; done + for r in $LIB_REMOVED; do rm -Rf AppDir/.junest/usr/lib/"$r"*; done + for r in $PYTHON_REMOVED; do rm -Rf AppDir/.junest/usr/lib/python*/"$r"*; done + for r in $SHARE_REMOVED; do rm -Rf AppDir/.junest/usr/share/"$r"*; done + echo Y | rm -Rf AppDir/.cache/yay/* + find AppDir/.junest/usr/share/doc/* -not -iname "*$BIN*" -a -not -name "." -delete 2> /dev/null #REMOVE ALL DOCUMENTATION NOT RELATED TO THE APP + find AppDir/.junest/usr/share/locale/*/*/* -not -iname "*$BIN*" -a -not -name "." -delete 2> /dev/null #REMOVE ALL ADDITIONAL LOCALE FILES + rm -Rf AppDir/.junest/home # remove the inbuilt home + rm -Rf AppDir/.junest/usr/include # files related to the compiler + rm -Rf AppDir/.junest/usr/share/man # AppImages are not ment to have man command + rm -Rf AppDir/.junest/var/* # remove all packages downloaded with the package manager } _enable_mountpoints_for_the_inbuilt_bubblewrap() { - mkdir -p ./"$APP".AppDir/.junest/home - mkdir -p ./"$APP".AppDir/.junest/media - mkdir -p ./"$APP".AppDir/.junest/usr/lib/locale - mkdir -p ./"$APP".AppDir/.junest/usr/share/fonts - mkdir -p ./"$APP".AppDir/.junest/usr/share/themes - mkdir -p ./"$APP".AppDir/.junest/run/media - mkdir -p ./"$APP".AppDir/.junest/run/user - rm -f ./"$APP".AppDir/.junest/etc/localtime && touch ./"$APP".AppDir/.junest/etc/localtime - [ ! -f ./"$APP".AppDir/.junest/etc/asound.conf ] && touch ./"$APP".AppDir/.junest/etc/asound.conf - [ ! -e ./"$APP".AppDir/.junest/usr/share/X11/xkb ] && rm -f ./"$APP".AppDir/.junest/usr/share/X11/xkb && mkdir -p ./"$APP".AppDir/.junest/usr/share/X11/xkb && sed -i -- 's# /var"$# /usr/share/X11/xkb /var"#g' ./"$APP".AppDir/AppRun + mkdir -p AppDir/.junest/home + mkdir -p AppDir/.junest/media + mkdir -p AppDir/.junest/usr/lib/locale + share_dirs="egl fonts glvnd nvidia themes vulkan" + for d in $share_dirs; do mkdir -p AppDir/.junest/usr/share/"$d"; done + mkdir -p AppDir/.junest/run/media + mkdir -p AppDir/.junest/run/user + rm -f AppDir/.junest/etc/localtime && touch AppDir/.junest/etc/localtime + [ ! -f AppDir/.junest/etc/asound.conf ] && touch AppDir/.junest/etc/asound.conf + [ ! -e AppDir/.junest/usr/share/X11/xkb ] && rm -f AppDir/.junest/usr/share/X11/xkb && mkdir -p AppDir/.junest/usr/share/X11/xkb && sed -i -- 's# /var"$# /usr/share/X11/xkb /var"#g' AppDir/AppRun } -############################################################################# -# PATCH FOR VIRTUALBOX -############################################################################# - -# Fix locale -mkdir -p ./"$APP".AppDir/.junest/usr/lib/virtualbox/nls -mv ./"$APP".AppDir/.junest/usr/share/virtualbox/nls/* ./"$APP".AppDir/.junest/usr/lib/virtualbox/nls/ -rm -R -f ./"$APP".AppDir/.junest/usr/share/virtualbox/nls - -# Add guest additions -if ! test -f ./VBoxGuestAdditions.iso; then - wget https://download.virtualbox.org/virtualbox/"${vboxver}"/VBoxGuestAdditions_"${vboxver}".iso -O ./VBoxGuestAdditions.iso || exit 1 -fi -mkdir -p ./"$APP".AppDir/.junest/usr/lib/virtualbox/additions -cp -r VBoxGuestAdditions.iso ./"$APP".AppDir/.junest/usr/lib/virtualbox/additions/ || exit 1 - -# Add extension pack -if ! test -f ./Extension_Pack.tar; then - wget https://download.virtualbox.org/virtualbox/"${vboxver}"/Oracle_VirtualBox_Extension_Pack-"${vboxver}".vbox-extpack -O ./Extension_Pack.tar -fi -mkdir -p shrunk -tar xfC ./Extension_Pack.tar shrunk -rm -r shrunk/{darwin*,solaris*,win*} -tar -c --gzip --file shrunk.vbox-extpack -C shrunk . -mkdir -p ./"$APP".AppDir/.junest/usr/share/virtualbox/extensions -cp -r shrunk.vbox-extpack ./"$APP".AppDir/.junest/usr/share/virtualbox/extensions/Oracle_VirtualBox_Extension_Pack-"${vboxver}".vbox-extpack -mkdir -p ./"$APP".AppDir/.junest/usr/share/licenses/virtualbox-ext-oracle/ -cp -r shrunk/ExtPack-license.txt ./"$APP".AppDir/.junest/usr/share/licenses/virtualbox-ext-oracle/PUEL -mkdir -p ./"$APP".AppDir/.junest/usr/lib/virtualbox/ExtensionPacks/Oracle_VirtualBox_Extension_Pack -cp -r shrunk/* ./"$APP".AppDir/.junest/usr/lib/virtualbox/ExtensionPacks/Oracle_VirtualBox_Extension_Pack/ - -# Install the "VBoxCreateUSBNode.sh" script in /usr/lib/virtualbox -mkdir -p ./"$APP".AppDir/.junest/usr/lib/virtualbox -cp -r ./"$APP".AppDir/.junest/usr/share/virtualbox/VBoxCreateUSBNode.sh ./"$APP".AppDir/.junest/usr/lib/virtualbox/ -chown -R root:vboxusers ./"$APP".AppDir/.junest/usr/lib/virtualbox - -# Create and install the 60-vboxusb.rules file in /etc/udev/rules.d -mkdir -p ./"$APP".AppDir/.junest/etc/udev/rules.d -cat <<-'HEREDOC' >> ./"$APP".AppDir/.junest/etc/udev/rules.d/60-vboxusb.rules -SUBSYSTEM=="usb_device", ACTION=="add", RUN+="/usr/lib/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}" -SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", RUN+="/usr/lib/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}" -SUBSYSTEM=="usb_device", ACTION=="remove", RUN+="/usr/lib/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor" -SUBSYSTEM=="usb", ACTION=="remove", ENV{DEVTYPE}=="usb_device", RUN+="/usr/lib/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor" -HEREDOC - -# Allow VirtualBox to be used in PROOT mode -sed -i 's/^MY_DIR=/#MY_DIR=/g' ./"$APP".AppDir/.junest/usr/bin/VBox || exit 1 - -# Remove annoying vboxdrv messages -sed -i 's/elif ! lsmod/elif ! echo vboxdrv/g' ./"$APP".AppDir/.junest/usr/bin/VBox || exit 1 -sed -i 's# ! -c /dev/vboxdrv# -d /dev/vboxdrv#g' ./"$APP".AppDir/.junest/usr/bin/VBox || exit 1 - -# Fix libcurl -rm -f ./"$APP".AppDir/.junest/usr/lib/libcurl* && cp -r ./archlinux/.junest/usr/lib/libcurl* ./"$APP".AppDir/.junest/usr/lib/ +printf "\n◆ Trying to reduce size:\n\n" _remove_more_bloatwares -find ./"$APP".AppDir/.junest/usr/lib ./"$APP".AppDir/.junest/usr/lib32 -type f -regex '.*\.a' -exec rm -f {} \; 2>/dev/null -find ./"$APP".AppDir/.junest/usr -type f -regex '.*\.so.*' -exec strip --strip-debug {} \; -find ./"$APP".AppDir/.junest/usr/bin -type f ! -regex '.*\.so.*' -exec strip --strip-unneeded {} \; -find ./"$APP".AppDir/.junest/usr -type d -empty -delete +find AppDir/.junest/usr/lib AppDir/.junest/usr/lib32 -type f -regex '.*\.a' -exec rm -f {} \; 2>/dev/null +find AppDir/.junest/usr -type f -regex '.*\.so.*' -exec strip --strip-debug {} \; +find AppDir/.junest/usr/bin -type f ! -regex '.*\.so.*' -exec strip --strip-unneeded {} \; +find AppDir/.junest/usr -type d -empty -delete _enable_mountpoints_for_the_inbuilt_bubblewrap -############################################################################# +########################################################################################################################################################## # CREATE THE APPIMAGE -############################################################################# +########################################################################################################################################################## if test -f ./*.AppImage; then rm -Rf ./*archimage*.AppImage; fi -#APPNAME=$(cat ./"$APP".AppDir/*.desktop | grep 'Name=' | head -1 | cut -c 6- | sed 's/ /-/g') APPNAME="VirtualBox-KVM" -VERSION="$vboxver" -UPINFO="gh-releases-zsync|$GITHUB_REPOSITORY_OWNER|VirtualBox-appimage|latest|*x86_64.AppImage.zsync" +REPO="VirtualBox-appimage" +TAG="latest" +UPINFO="gh-releases-zsync|$GITHUB_REPOSITORY_OWNER|$REPO|$TAG|*x86_64.AppImage.zsync" + echo "$VERSION" > ./version -ARCH=x86_64 ./appimagetool --comp zstd --mksquashfs-opt -Xcompression-level --mksquashfs-opt 20 \ - -u "$UPINFO" \ - ./"$APP".AppDir "$APPNAME"_"$VERSION"-archimage4.3-x86_64.AppImage + +_appimagetool() { + if ! command -v appimagetool 1>/dev/null; then + if [ ! -f ./appimagetool ]; then + echo " Downloading appimagetool..." && curl -#Lo appimagetool https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-"$ARCH".AppImage && chmod a+x ./appimagetool || exit 1 + fi + ./appimagetool "$@" + else + appimagetool "$@" + fi +} + +ARCH=x86_64 _appimagetool -u "$UPINFO" \ + AppDir "$APPNAME"_"$VERSION"-archimage5.0-x86_64.AppImage From 41488d1a0c7d6d46cd6bcfd2564af8bbcefc6fb3 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Fri, 24 Oct 2025 01:52:11 +0000 Subject: [PATCH 109/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 95c7f0f..ece1674 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Thu Oct 23 01:56:05 UTC 2025 +Fri Oct 24 01:52:11 UTC 2025 From c77d4b565bb03c11d96d3b2c7de0c06a32b8af53 Mon Sep 17 00:00:00 2001 From: iVAN <88724353+ivan-hc@users.noreply.github.com> Date: Fri, 24 Oct 2025 13:14:23 +0200 Subject: [PATCH 110/180] Update virtualbox-kvm-junest.sh --- virtualbox-kvm-junest.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/virtualbox-kvm-junest.sh b/virtualbox-kvm-junest.sh index 9f3d0fe..f084de9 100644 --- a/virtualbox-kvm-junest.sh +++ b/virtualbox-kvm-junest.sh @@ -410,6 +410,7 @@ printf -- "\n------------------------------------------------------------------- _run_quick_sharun() { cd archlinux || exit 1 + rm -Rf AppDir/* SHARUN="https://raw.githubusercontent.com/pkgforge-dev/Anylinux-AppImages/refs/heads/main/useful-tools/quick-sharun.sh" if [ ! -f ./quick-sharun ]; then From f02a8069d831d8343e787ca1b4e148c70fa3efe1 Mon Sep 17 00:00:00 2001 From: iVAN <88724353+ivan-hc@users.noreply.github.com> Date: Fri, 24 Oct 2025 14:02:52 +0200 Subject: [PATCH 111/180] Update virtualbox-kvm-junest.sh --- virtualbox-kvm-junest.sh | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/virtualbox-kvm-junest.sh b/virtualbox-kvm-junest.sh index f084de9..bafe14f 100644 --- a/virtualbox-kvm-junest.sh +++ b/virtualbox-kvm-junest.sh @@ -596,11 +596,8 @@ _remove_more_bloatwares() { _enable_mountpoints_for_the_inbuilt_bubblewrap() { mkdir -p AppDir/.junest/home - mkdir -p AppDir/.junest/media - mkdir -p AppDir/.junest/usr/lib/locale - share_dirs="egl fonts glvnd nvidia themes vulkan" - for d in $share_dirs; do mkdir -p AppDir/.junest/usr/share/"$d"; done - mkdir -p AppDir/.junest/run/media + bind_dirs=$(grep "_dirs=" AppDir/AppRun | tr '" ' '\n' | grep "/" | sort | xargs) + for d in $bind_dirs; do mkdir -p AppDir/.junest"$d"; done mkdir -p AppDir/.junest/run/user rm -f AppDir/.junest/etc/localtime && touch AppDir/.junest/etc/localtime [ ! -f AppDir/.junest/etc/asound.conf ] && touch AppDir/.junest/etc/asound.conf From 9944d44b6171576e53fdd9bc2d7f70f6cdfe011a Mon Sep 17 00:00:00 2001 From: iVAN <88724353+ivan-hc@users.noreply.github.com> Date: Sat, 25 Oct 2025 03:07:46 +0200 Subject: [PATCH 112/180] Update virtualbox-kvm-junest.sh --- virtualbox-kvm-junest.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/virtualbox-kvm-junest.sh b/virtualbox-kvm-junest.sh index bafe14f..c47d1a6 100644 --- a/virtualbox-kvm-junest.sh +++ b/virtualbox-kvm-junest.sh @@ -179,7 +179,7 @@ if [ -n "$APP" ]; then # Use debloated packages debloated_soueces="https://github.com/pkgforge-dev/archlinux-pkgs-debloated/releases/download/continuous" extra_vk_packages="vulkan-asahi vulkan-broadcom vulkan-freedreno vulkan-intel vulkan-nouveau vulkan-panfrost vulkan-radeon" - extra_packages="ffmpeg gdk-pixbuf2 gtk3 gtk4 intel-media-driver llvm-libs mangohud mesa opus qt6-base $extra_vk_packages" + extra_packages="ffmpeg gdk-pixbuf2 gtk3 gtk4 intel-media-driver librsvg llvm-libs mangohud mesa opus qt6-base $extra_vk_packages" for p in $extra_packages; do if _JUNEST_CMD -- yay -Qs "$p"; then if [ ! -f ./"$p"-2.x-x86_64.pkg.tar.zst ]; then From be06e050958aaf01a355037a5481ce6899f517ba Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sat, 25 Oct 2025 01:53:51 +0000 Subject: [PATCH 113/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index ece1674..9a26e20 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Fri Oct 24 01:52:11 UTC 2025 +Sat Oct 25 01:53:51 UTC 2025 From d974e09cfc4aa660d998a8320f5cf59d0e0f4677 Mon Sep 17 00:00:00 2001 From: iVAN <88724353+ivan-hc@users.noreply.github.com> Date: Sat, 25 Oct 2025 21:08:00 +0200 Subject: [PATCH 114/180] Update virtualbox-kvm-junest.sh --- virtualbox-kvm-junest.sh | 382 +++------------------------------------ 1 file changed, 28 insertions(+), 354 deletions(-) diff --git a/virtualbox-kvm-junest.sh b/virtualbox-kvm-junest.sh index c47d1a6..2c37f6b 100644 --- a/virtualbox-kvm-junest.sh +++ b/virtualbox-kvm-junest.sh @@ -2,7 +2,7 @@ APP=virtualbox-kvm BIN="virtualbox" #CHANGE THIS IF THE NAME OF THE BINARY IS DIFFERENT FROM "$APP" (for example, the binary of "obs-studio" is "obs") -DEPENDENCES="alsa-lib alsa-oss alsa-plugins alsa-tools alsa-utils dbus flac jack2 lame libasyncns libogg libpipewire libpulse libsndfile libvorbis mpg123 opus pipewire pipewire-alsa pipewire-audio pulseaudio pulseaudio-alsa qt6-base" #SYNTAX: "APP1 APP2 APP3 APP4...", LEAVE BLANK IF NO OTHER DEPENDENCIES ARE NEEDED +DEPENDENCES="alsa-lib alsa-oss alsa-plugins alsa-tools alsa-utils dbus flac jack2 lame libasyncns libogg libpipewire libpulse libsndfile libvorbis mpg123 opus pipewire pipewire-alsa pipewire-audio procps-ng pulseaudio pulseaudio-alsa qt6-base" #SYNTAX: "APP1 APP2 APP3 APP4...", LEAVE BLANK IF NO OTHER DEPENDENCIES ARE NEEDED BASICSTUFF="binutils debugedit gzip" COMPILERS="base-devel" @@ -21,6 +21,13 @@ LIB_REMOVED="cmake gcc gconv libgphobos" PYTHON_REMOVED="__pycache__/" SHARE_REMOVED="gcc icons/AdwaitaLegacy icons/Adwaita/cursors/ terminfo i18n" +# Set mountpoints, they are ment to be set into the AppRun. +# Default mounted files are /etc/resolv.conf, /etc/hosts, /etc/nsswitch.conf, /etc/passwd, /etc/group, /etc/machine-id, /etc/asound.conf and /etc/localtime +# Default mounted directories are /media, /mnt, /opt, /run/media, /usr/lib/locale, /usr/share/fonts, /usr/share/themes, /var, and Nvidia-related directories +# Do not touch this if you are not sure. +mountpoint_files="" +mountpoint_dirs="" + # Post-installation processes (add whatever you want) _post_installation_processes() { printf "\n◆ User's processes: \n\n" @@ -84,6 +91,12 @@ vboxver=$(curl -Ls https://gitlab.com/chaotic-aur/pkgbuilds/-/raw/main/virtualbo # SETUP THE ENVIRONMENT ########################################################################################################################################################## +# Download archimage-builder.sh +if [ ! -f ./archimage-builder.sh ]; then + ARCHIMAGE_BUILDER="https://raw.githubusercontent.com/ivan-hc/ArchImage/refs/heads/main/core/archimage-builder.sh" + wget --retry-connrefused --tries=30 "$ARCHIMAGE_BUILDER" -O ./archimage-builder.sh || exit 0 +fi + # Create and enter the AppDir mkdir -p AppDir archlinux && cd archlinux || exit 1 @@ -162,164 +175,30 @@ fi _JUNEST_CMD -- yay -Syy _JUNEST_CMD -- gpg --keyserver keyserver.ubuntu.com --recv-key C01E1CAD5EA2C4F0B8E3571504C367C218ADD4FF # UNCOMMENT IF YOU USE THE AUR -if [ -n "$BASICSTUFF" ]; then - _JUNEST_CMD -- yay --noconfirm -S $BASICSTUFF -fi -if [ -n "$COMPILERS" ]; then - _JUNEST_CMD -- yay --noconfirm -S $COMPILERS - _JUNEST_CMD -- yay --noconfirm -S python # to force one Python version and prevent modules from being installed in different directories (e.g. "mesonbuild") -fi -if [ -n "$DEPENDENCES" ]; then - _JUNEST_CMD -- yay --noconfirm -S $DEPENDENCES -fi -if [ -n "$APP" ]; then - _JUNEST_CMD -- yay --noconfirm -S alsa-lib gtk3 hicolor-icon-theme xapp xdg-utils xorg-server-xvfb - _JUNEST_CMD -- yay --noconfirm -S "$APP" - VERSION="$vboxver" - # Use debloated packages - debloated_soueces="https://github.com/pkgforge-dev/archlinux-pkgs-debloated/releases/download/continuous" - extra_vk_packages="vulkan-asahi vulkan-broadcom vulkan-freedreno vulkan-intel vulkan-nouveau vulkan-panfrost vulkan-radeon" - extra_packages="ffmpeg gdk-pixbuf2 gtk3 gtk4 intel-media-driver librsvg llvm-libs mangohud mesa opus qt6-base $extra_vk_packages" - for p in $extra_packages; do - if _JUNEST_CMD -- yay -Qs "$p"; then - if [ ! -f ./"$p"-2.x-x86_64.pkg.tar.zst ]; then - curl -#Lo "$p"-2.x-x86_64.pkg.tar.zst "$debloated_soueces/$p-mini-x86_64.pkg.tar.zst" || exit 1 - fi - _JUNEST_CMD -- yay --noconfirm -U "$HOME"/"$p"-2.x-x86_64.pkg.tar.zst - fi - done - # Try to compile schema files - _JUNEST_CMD -- glib-compile-schemas /usr/share/glib-2.0/schemas/ -else - echo "No app found, exiting"; exit 1 -fi -cd .. - -printf -- "\n-----------------------------------------------------------------------------\n CREATING THE APPDIR\n-----------------------------------------------------------------------------\n\n" - -if [ ! -f ./deps ]; then - rm -Rf AppDir/* -elif [ -f ./deps ]; then - DEPENDENCES0=$(cat ./deps) - [ "$DEPENDENCES0" != "$DEPENDENCES" ] && rm -Rf AppDir/* -fi +[ -f ../archimage-builder.sh ] && source ../archimage-builder.sh install "$@" -# Set locale -rm -f archlinux/.junest/etc/locale.conf -sed -i 's/LANG=${LANG:-C}/LANG=$LANG/g' archlinux/.junest/etc/profile.d/locale.sh - -# Add launcher and icon -rm -f AppDir/*.desktop -LAUNCHER=$(grep -iRl "^Exec.*$BIN" archlinux/.junest/usr/share/applications/* | grep ".desktop" | head -1) -cp -r "$LAUNCHER" AppDir/ -ICON="virtualbox.png" -[ -z "$ICON" ] && ICON="$BIN" -cp -r archlinux/.junest/usr/share/icons/*"$ICON"* AppDir/ 2>/dev/null -cp -r archlinux/.junest/usr/share/icons/hicolor/22x22/mimetypes/*"$ICON"* AppDir/ 2>/dev/null -cp -r archlinux/.junest/usr/share/icons/hicolor/24x24/mimetypes/*"$ICON"* AppDir/ 2>/dev/null -cp -r archlinux/.junest/usr/share/icons/hicolor/32x32/mimetypes/*"$ICON"* AppDir/ 2>/dev/null -cp -r archlinux/.junest/usr/share/icons/hicolor/48x48/mimetypes/*"$ICON"* AppDir/ 2>/dev/null -cp -r archlinux/.junest/usr/share/icons/hicolor/64x64/mimetypes/*"$ICON"* AppDir/ 2>/dev/null -cp -r archlinux/.junest/usr/share/icons/hicolor/128x128/mimetypes/*"$ICON"* AppDir/ 2>/dev/null -cp -r archlinux/.junest/usr/share/icons/hicolor/192x192/mimetypes/*"$ICON"* AppDir/ 2>/dev/null -cp -r archlinux/.junest/usr/share/icons/hicolor/256x256/mimetypes/*"$ICON"* AppDir/ 2>/dev/null -cp -r archlinux/.junest/usr/share/icons/hicolor/512x512/mimetypes/*"$ICON"* AppDir/ 2>/dev/null -cp -r archlinux/.junest/usr/share/icons/hicolor/scalable/mimetypes/*"$ICON"* AppDir/ 2>/dev/null -cp -r archlinux/.junest/usr/share/pixmaps/*"$ICON"* AppDir/ 2>/dev/null - -# Test if the desktop file and the icon are in the root of the future appimage (./*appdir/*) -if test -f AppDir/*.desktop; then - echo "◆ The .desktop file is available in $APP.AppDir/" -elif ! test -f archlinux/.junest/usr/bin/"$BIN"; then - echo "No binary in path... aborting all the processes." - exit 0 -fi - -if [ ! -d AppDir/.local ]; then - mkdir -p AppDir/.local - rsync -av archlinux/.local/ AppDir/.local/ | echo "◆ Rsync .local directory to the AppDir" - # Made JuNest a portable app and remove "read-only file system" errors - cat AppDir/.local/share/junest/lib/core/wrappers.patch > AppDir/.local/share/junest/lib/core/wrappers.sh - cat AppDir/.local/share/junest/lib/core/namespace.patch > AppDir/.local/share/junest/lib/core/namespace.sh -fi +cd .. -echo "◆ Rsync .junest directories structure to the AppDir" -rm -Rf AppDir/.junest/* -archdirs=$(find archlinux/.junest -type d | sed 's/^archlinux\///g') -for d in $archdirs; do - mkdir -p AppDir/"$d" -done -symlink_dirs=" bin sbin lib lib64 usr/sbin usr/lib64" -for l in $symlink_dirs; do - cp -r archlinux/.junest/"$l" AppDir/.junest/"$l" -done +########################################################################################################################################################## +# APPDIR +########################################################################################################################################################## -rsync -av archlinux/.junest/usr/bin_wrappers/ AppDir/.junest/usr/bin_wrappers/ | echo "◆ Rsync bin_wrappers to the AppDir" -rsync -av archlinux/.junest/etc/* AppDir/.junest/etc/ | echo "◆ Rsync /etc" +[ -f ./archimage-builder.sh ] && source ./archimage-builder.sh appdir "$@" ########################################################################################################################################################## # APPRUN ########################################################################################################################################################## rm -f AppDir/AppRun -cat <<-'HEREDOC' >> AppDir/AppRun -#!/bin/sh -HERE="$(dirname "$(readlink -f "$0")")" -export JUNEST_HOME="$HERE"/.junest -CACHEDIR="${XDG_CACHE_HOME:-$HOME/.cache}" -mkdir -p "$CACHEDIR" || exit 1 +# Set to "1" if you want to add Nvidia drivers manager in the AppRun +export NVIDIA_ON=1 -if command -v unshare >/dev/null 2>&1 && ! unshare --user -p /bin/true >/dev/null 2>&1; then - PROOT_ON=1 && export PATH="$HERE"/.local/share/junest/bin/:"$PATH" -else - export PATH="$PATH":"$HERE"/.local/share/junest/bin -fi +[ -f ./archimage-builder.sh ] && source ./archimage-builder.sh apprun "$@" -[ -z "$NVIDIA_ON" ] && NVIDIA_ON=1 -if [ -f /sys/module/nvidia/version ] && [ "$NVIDIA_ON" = 1 ]; then - nvidia_driver_version="$(cat /sys/module/nvidia/version)" - JUNEST_DIRS="${CACHEDIR}/junest_shared/usr" JUNEST_LIBS="${JUNEST_DIRS}/lib" JUNEST_NVIDIA_DATA="${JUNEST_DIRS}/share/nvidia" - mkdir -p "${JUNEST_LIBS}" "${JUNEST_NVIDIA_DATA}" || exit 1 - [ ! -f "${JUNEST_NVIDIA_DATA}"/current-nvidia-version ] && echo "${nvidia_driver_version}" > "${JUNEST_NVIDIA_DATA}"/current-nvidia-version - [ -f "${JUNEST_NVIDIA_DATA}"/current-nvidia-version ] && nvidia_driver_conty=$(cat "${JUNEST_NVIDIA_DATA}"/current-nvidia-version) - if [ "${nvidia_driver_version}" != "${nvidia_driver_conty}" ]; then - rm -f "${JUNEST_LIBS}"/*; echo "${nvidia_driver_version}" > "${JUNEST_NVIDIA_DATA}"/current-nvidia-version - fi - HOST_LIBS=$(/sbin/ldconfig -p) - libnvidia_libs=$(echo "$HOST_LIBS" | grep -i "nvidia\|libcuda" | cut -d ">" -f 2) - libvdpau_nvidia=$(find /usr/lib -type f -name 'libvdpau_nvidia.so*' -print -quit 2>/dev/null | head -1) - libnv_paths=$(echo "$HOST_LIBS" | grep "libnv" | cut -d ">" -f 2) - for f in $libnv_paths; do strings "${f}" | grep -qi -m 1 "nvidia" && libnv_libs="$libnv_libs ${f}"; done - host_nvidia_libs=$(echo "$libnv_libs $libnvidia_libs $libvdpau_nvidia" | sed 's/ /\n/g' | sort | grep .) - for n in $host_nvidia_libs; do libname=$(echo "$n" | sed 's:.*/::') && [ ! -f "${JUNEST_LIBS}"/"$libname" ] && cp "$n" "${JUNEST_LIBS}"/; done - libvdpau="${JUNEST_LIBS}/libvdpau_nvidia.so" - [ -f "${libvdpau}"."${nvidia_driver_version}" ] && [ ! -f "${libvdpau}" ] && ln -s "${libvdpau}"."${nvidia_driver_version}" "${libvdpau}" - export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}":"${JUNEST_LIBS}":"${LD_LIBRARY_PATH}" -fi - -bind_files="/etc/resolv.conf /etc/hosts /etc/nsswitch.conf /etc/passwd /etc/group /etc/machine-id /etc/asound.conf /etc/localtime " -bind_nvidia_data_dirs="/usr/share/egl /usr/share/glvnd /usr/share/nvidia /usr/share/vulkan" -bind_dirs=" /media /mnt /opt /run/media /usr/lib/locale /usr/share/fonts /usr/share/themes /var $bind_nvidia_data_dirs" -if [ "$PROOT_ON" = 1 ]; then - for f in $bind_files; do [ -f "$f" ] && BINDINGS=" $BINDINGS --bind=$f"; done - for d in $bind_dirs; do [ -d "$d" ] && BINDINGS=" $BINDINGS --bind=$d"; done - junest_options="proot -n -b" - junest_bindings=" --bind=/dev --bind=/sys --bind=/tmp --bind=/proc $BINDINGS --bind=/home --bind=/home/$USER " -else - for f in $bind_files; do [ -f "$f" ] && BINDINGS=" $BINDINGS --ro-bind-try $f $f"; done - for d in $bind_dirs; do [ -d "$d" ] && BINDINGS=" $BINDINGS --bind-try $d $d"; done - junest_options="-n -b" - junest_bindings=" --dev-bind /dev /dev --ro-bind /sys /sys --bind-try /tmp /tmp --proc /proc $BINDINGS --cap-add CAP_SYS_ADMIN " -fi - -_JUNEST_CMD() { - "$HERE"/.local/share/junest/bin/junest $junest_options "$junest_bindings" "$@" -} - -#EXEC=$(grep -e '^Exec=.*' "${HERE}"/*.desktop | head -n 1 | cut -d "=" -f 2- | sed -e 's|%.||g') -#if ! echo "$EXEC" | grep -q "/usr/bin"; then EXEC="/usr/bin/$EXEC"; fi +# AppRun footer, here you can add options and change the way the AppImage interacts with its internal structure +cat <<-'HEREDOC' >> AppDir/AppRun if command -v sudo >/dev/null 2>&1; then export SUDOCMD="sudo" @@ -403,215 +282,10 @@ HEREDOC chmod a+x AppDir/AppRun ########################################################################################################################################################## -# DEPLOY DEPENDENCIES -########################################################################################################################################################## - -printf -- "\n-----------------------------------------------------------------------------\n IMPLEMENTING APP'S SPECIFIC LIBRARIES (SHARUN)\n-----------------------------------------------------------------------------\n" - -_run_quick_sharun() { - cd archlinux || exit 1 - rm -Rf AppDir/* - SHARUN="https://raw.githubusercontent.com/pkgforge-dev/Anylinux-AppImages/refs/heads/main/useful-tools/quick-sharun.sh" - - if [ ! -f ./quick-sharun ]; then - wget --retry-connrefused --tries=30 "$SHARUN" -O ./quick-sharun || exit 1 - chmod +x ./quick-sharun - fi - - _JUNEST_CMD -- ./quick-sharun /usr/bin/"$BIN" - - cd .. || exit 1 - echo "$DEPENDENCES" > ./deps - [ ! -f ./deps ] && touch ./deps - printf "\n-----------------------------------------------------------------------------\n" -} - -if [ ! -f ./deps ]; then - _run_quick_sharun - echo "$DEPENDENCES" > ./deps -elif [ -f ./deps ]; then - DEPENDENCES0=$(cat ./deps) - if [ "$DEPENDENCES0" != "$DEPENDENCES" ]; then - _run_quick_sharun - fi -fi - -rsync -av archlinux/AppDir/etc/* AppDir/.junest/etc/ | printf "\n◆ Saving /etc" -rsync -av archlinux/AppDir/bin/* AppDir/.junest/usr/bin/ | printf "\n◆ Saving /usr/bin" -rsync -av archlinux/AppDir/lib/* AppDir/.junest/usr/lib/ | printf "\n◆ Saving /usr/lib" -rsync -av archlinux/AppDir/share/* AppDir/.junest/usr/share/ | printf "\n◆ Saving /usr/share\n" - -# Extract the main package in the AppDir -_extract_base_to_AppDir() { - rsync -av base/etc/* AppDir/.junest/etc/ 2>/dev/null - rsync -av base/usr/bin/* AppDir/.junest/usr/bin/ 2>/dev/null - rsync -av base/usr/lib/* AppDir/.junest/usr/lib/ 2>/dev/null - rsync -av base/usr/share/* AppDir/.junest/usr/share/ 2>/dev/null - if [ -d archlinux/.junest/usr/lib32 ]; then - mkdir -p AppDir/.junest/usr/lib32 - rsync -av archlinux/.junest/usr/lib32/* AppDir/.junest/usr/lib32/ 2>/dev/null - fi -} - -_extract_main_package() { - mkdir -p base - rm -Rf ./base/* - pkg_full_path=$(find ./archlinux/.junest -type f -name "$APP-*zst") - if [ "$(echo "$pkg_full_path" | wc -l)" = 1 ]; then - pkg_full_path=$(find ./archlinux/.junest -type f -name "$APP-*zst") - else - for p in $pkg_full_path; do - if tar fx "$p" .PKGINFO -O | grep -q "pkgname = $APP$"; then - pkg_full_path="$p" - fi - done - fi - [ -z "$pkg_full_path" ] && echo "💀 ERROR: no package found for \"$APP\", operation aborted!" && exit 0 - tar fx "$pkg_full_path" -C ./base/ - _extract_base_to_AppDir | printf "\n◆ Extract the base package to AppDir\n" -} - -_extract_core_dependencies() { - if [ -n "$DEPENDENCES" ]; then - for d in $DEPENDENCES; do - if test -f ./archlinux/"$d"-*; then - tar fx ./archlinux/"$d"-* -C ./base/ | printf "\n◆ Force \"$d\"" - else - pkg_full_path=$(find ./archlinux -type f -name "$d-[0-9]*zst") - tar fx "$pkg_full_path" -C ./base/ | printf "\n◆ Force \"$d\"" - fi - done - _extract_base_to_AppDir | printf "\n\n◆ Extract core dependencies to AppDir\n" - fi -} - -_extract_main_package -_extract_core_dependencies - -tar fx "$(find ./archlinux -type f -name "hicolor-icon-theme-[0-9]*zst")" -C ./base/ 2>/dev/null - -printf -- "\n-----------------------------------------------------------------------------\n IMPLEMENTING USER'S SELECTED FILES AND DIRECTORIES\n-----------------------------------------------------------------------------\n\n" - -# Save files in /usr/bin -_savebins() { - echo "◆ Saving files in /usr/bin" - cp -r ./archlinux/.junest/usr/bin/bwrap AppDir/.junest/usr/bin/ - cp -r ./archlinux/.junest/usr/bin/proot* AppDir/.junest/usr/bin/ - cp -r ./archlinux/.junest/usr/bin/*$BIN* AppDir/.junest/usr/bin/ - cp -r ./archlinux/.junest/usr/bin/gio* AppDir/.junest/usr/bin/ - cp -r ./archlinux/.junest/usr/bin/xdg-* AppDir/.junest/usr/bin/ - cp -r ./archlinux/.junest/usr/bin/ps AppDir/.junest/usr/bin/ - coreutils="[ basename cat chmod chown cp cut dir dirname du echo env expand expr fold head id ln ls mkdir mv readlink realpath rm rmdir seq sleep sort stty sum sync tac tail tee test timeout touch tr true tty uname uniq wc who whoami yes" - utils_bin="awk bash $coreutils gawk gio grep ld ldd sed sh strings" - for b in $utils_bin; do - cp -r ./archlinux/.junest/usr/bin/"$b" AppDir/.junest/usr/bin/ - done - for arg in $BINSAVED; do - cp -r ./archlinux/.junest/usr/bin/*"$arg"* AppDir/.junest/usr/bin/ - done -} - -# Save files in /usr/lib -_savelibs() { - echo "◆ Detect libraries related to /usr/bin files" - libs4bin=$(readelf -d AppDir/.junest/usr/bin/* 2>/dev/null | grep NEEDED | tr '[] ' '\n' | grep ".so") - - echo "◆ Saving JuNest core libraries" - cp -r ./archlinux/.junest/usr/lib/ld-linux-x86-64.so* AppDir/.junest/usr/lib/ - lib_preset="$APP $BIN libdw libelf libresolv.so libtinfo.so profile.d $libs4bin" - LIBSAVED="$lib_preset $LIBSAVED" - for arg in $LIBSAVED; do - LIBPATHS="$LIBPATHS $(find ./archlinux/.junest/usr/lib -maxdepth 20 -wholename "*$arg*" | sed 's/\.\/archlinux\///g')" - done - for arg in $LIBPATHS; do - [ ! -d AppDir/"$arg" ] && cp -r ./archlinux/"$arg" AppDir/"$arg" & - done - wait - core_libs=$(find AppDir -type f) - lib_core=$(for c in $core_libs; do readelf -d "$c" 2>/dev/null | grep NEEDED | tr '[] ' '\n' | grep ".so"; done) - - echo "◆ Detect and copy base libs" - basebin_libs=$(find ./AppDir -executable -name "*.so*") - lib_base_1=$(for b in $basebin_libs; do readelf -d "$b" 2>/dev/null | grep NEEDED | tr '[] ' '\n' | grep ".so"; done) - lib_base_1=$(echo "$lib_base_1" | tr ' ' '\n' | sort -u | xargs) - lib_base_2=$(for b in $lib_base_1; do readelf -d ./archlinux/.junest/usr/lib/"$b" 2>/dev/null | grep NEEDED | tr '[] ' '\n' | grep ".so"; done) - lib_base_2=$(echo "$lib_base_2" | tr ' ' '\n' | sort -u | xargs) - lib_base_3=$(for b in $lib_base_2; do readelf -d ./archlinux/.junest/usr/lib/"$b" 2>/dev/null | grep NEEDED | tr '[] ' '\n' | grep ".so"; done) - lib_base_3=$(echo "$lib_base_3" | tr ' ' '\n' | sort -u | xargs) - lib_base_4=$(for b in $lib_base_3; do readelf -d ./archlinux/.junest/usr/lib/"$b" 2>/dev/null | grep NEEDED | tr '[] ' '\n' | grep ".so"; done) - lib_base_4=$(echo "$lib_base_4" | tr ' ' '\n' | sort -u | xargs) - lib_base_5=$(for b in $lib_base_4; do readelf -d ./archlinux/.junest/usr/lib/"$b" 2>/dev/null | grep NEEDED | tr '[] ' '\n' | grep ".so"; done) - lib_base_5=$(echo "$lib_base_5" | tr ' ' '\n' | sort -u | xargs) - lib_base_6=$(for b in $lib_base_5; do readelf -d ./archlinux/.junest/usr/lib/"$b" 2>/dev/null | grep NEEDED | tr '[] ' '\n' | grep ".so"; done) - lib_base_6=$(echo "$lib_base_6" | tr ' ' '\n' | sort -u | xargs) - lib_base_7=$(for b in $lib_base_6; do readelf -d ./archlinux/.junest/usr/lib/"$b" 2>/dev/null | grep NEEDED | tr '[] ' '\n' | grep ".so"; done) - lib_base_7=$(echo "$lib_base_7" | tr ' ' '\n' | sort -u | xargs) - lib_base_8=$(for b in $lib_base_7; do readelf -d ./archlinux/.junest/usr/lib/"$b" 2>/dev/null | grep NEEDED | tr '[] ' '\n' | grep ".so"; done) - lib_base_8=$(echo "$lib_base_8" | tr ' ' '\n' | sort -u | xargs) - lib_base_9=$(for b in $lib_base_8; do readelf -d ./archlinux/.junest/usr/lib/"$b" 2>/dev/null | grep NEEDED | tr '[] ' '\n' | grep ".so"; done) - lib_base_9=$(echo "$lib_base_9" | tr ' ' '\n' | sort -u | xargs) - lib_base_libs="$lib_core $lib_base_1 $lib_base_2 $lib_base_3 $lib_base_4 $lib_base_5 $lib_base_6 $lib_base_7 $lib_base_8 $lib_base_9" - lib_base_libs=$(echo "$lib_base_libs" | tr ' ' '\n' | sort -u | sed 's/.so.*/.so/' | xargs) - for l in $lib_base_libs; do - rsync -av ./archlinux/.junest/usr/lib/"$l"* AppDir/.junest/usr/lib/ & - done - wait -} - -# Save files in /usr/share -_saveshare() { - echo "◆ Saving directories in /usr/share" - SHARESAVED="$SHARESAVED $APP $BIN fontconfig glib- locale mime wayland X11" - for arg in $SHARESAVED; do - cp -r ./archlinux/.junest/usr/share/*"$arg"* AppDir/.junest/usr/share/ - done -} - -_savebins 2>/dev/null -_savelibs 2>/dev/null -_saveshare 2>/dev/null - -printf -- "\n-----------------------------------------------------------------------------\n ASSEMBLING THE APPIMAGE\n-----------------------------------------------------------------------------\n" - -_post_installation_processes - -########################################################################################################################################################## -# REMOVE BLOATWARES, ENABLE MOUNTPOINTS +# COMPILE ########################################################################################################################################################## -_remove_more_bloatwares() { - for r in $ETC_REMOVED; do rm -Rf AppDir/.junest/etc/"$r"*; done - for r in $BIN_REMOVED; do rm -Rf AppDir/.junest/usr/bin/"$r"*; done - for r in $LIB_REMOVED; do rm -Rf AppDir/.junest/usr/lib/"$r"*; done - for r in $PYTHON_REMOVED; do rm -Rf AppDir/.junest/usr/lib/python*/"$r"*; done - for r in $SHARE_REMOVED; do rm -Rf AppDir/.junest/usr/share/"$r"*; done - echo Y | rm -Rf AppDir/.cache/yay/* - find AppDir/.junest/usr/share/doc/* -not -iname "*$BIN*" -a -not -name "." -delete 2> /dev/null #REMOVE ALL DOCUMENTATION NOT RELATED TO THE APP - find AppDir/.junest/usr/share/locale/*/*/* -not -iname "*$BIN*" -a -not -name "." -delete 2> /dev/null #REMOVE ALL ADDITIONAL LOCALE FILES - rm -Rf AppDir/.junest/home # remove the inbuilt home - rm -Rf AppDir/.junest/usr/include # files related to the compiler - rm -Rf AppDir/.junest/usr/share/man # AppImages are not ment to have man command - rm -Rf AppDir/.junest/var/* # remove all packages downloaded with the package manager -} - -_enable_mountpoints_for_the_inbuilt_bubblewrap() { - mkdir -p AppDir/.junest/home - bind_dirs=$(grep "_dirs=" AppDir/AppRun | tr '" ' '\n' | grep "/" | sort | xargs) - for d in $bind_dirs; do mkdir -p AppDir/.junest"$d"; done - mkdir -p AppDir/.junest/run/user - rm -f AppDir/.junest/etc/localtime && touch AppDir/.junest/etc/localtime - [ ! -f AppDir/.junest/etc/asound.conf ] && touch AppDir/.junest/etc/asound.conf - [ ! -e AppDir/.junest/usr/share/X11/xkb ] && rm -f AppDir/.junest/usr/share/X11/xkb && mkdir -p AppDir/.junest/usr/share/X11/xkb && sed -i -- 's# /var"$# /usr/share/X11/xkb /var"#g' AppDir/AppRun -} - -printf "\n◆ Trying to reduce size:\n\n" - -_remove_more_bloatwares -find AppDir/.junest/usr/lib AppDir/.junest/usr/lib32 -type f -regex '.*\.a' -exec rm -f {} \; 2>/dev/null -find AppDir/.junest/usr -type f -regex '.*\.so.*' -exec strip --strip-debug {} \; -find AppDir/.junest/usr/bin -type f ! -regex '.*\.so.*' -exec strip --strip-unneeded {} \; -find AppDir/.junest/usr -type d -empty -delete -_enable_mountpoints_for_the_inbuilt_bubblewrap +[ -f ./archimage-builder.sh ] && source ./archimage-builder.sh compile "$@" ########################################################################################################################################################## # CREATE THE APPIMAGE @@ -638,4 +312,4 @@ _appimagetool() { } ARCH=x86_64 _appimagetool -u "$UPINFO" \ - AppDir "$APPNAME"_"$VERSION"-archimage5.0-x86_64.AppImage + AppDir "$APPNAME"_"$vboxver"-archimage5.0-x86_64.AppImage From 729a34487f9d0c5dc3c4a02313799a36d75b3c7d Mon Sep 17 00:00:00 2001 From: iVAN <88724353+ivan-hc@users.noreply.github.com> Date: Sat, 25 Oct 2025 23:38:56 +0200 Subject: [PATCH 115/180] Update virtualbox-kvm-junest.sh --- virtualbox-kvm-junest.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/virtualbox-kvm-junest.sh b/virtualbox-kvm-junest.sh index 2c37f6b..39d853e 100644 --- a/virtualbox-kvm-junest.sh +++ b/virtualbox-kvm-junest.sh @@ -9,8 +9,7 @@ COMPILERS="base-devel" # Set keywords to searchan include in names of directories and files in /usr/bin (BINSAVED), /usr/share (SHARESAVED) and /usr/lib (LIBSAVED) BINSAVED="kmod lsmod ldconfig" SHARESAVED="alsa" -lib_browser_launcher="gio-launch-desktop libasound.so libatk-bridge libatspi libcloudproviders libdb- libdl.so libedit libepoxy libgtk-3.so.0 libjson-glib libnssutil libpthread.so librt.so libtinysparql libwayland-cursor libX11-xcb.so libxapp-gtk3-module.so libXcursor libXdamage libXi.so libxkbfile.so libXrandr p11 pk" -LIBSAVED="ibicui libxcb-cursor libxcb-util.so libxml pulse DBus $lib_browser_launcher" +LIBSAVED="ibicui libxcb-cursor libxcb-util.so libxml pulse DBus" # Set the items you want to manually REMOVE. Complete the path in /etc/, /usr/bin/, /usr/lib/, /usr/lib/python*/ and /usr/share/ respectively. # The "rm" command will take into account the listed object/path and add an asterisk at the end, completing the path to be removed. From 9e6ce76c9eccf659b2d71db58beb8bb9389f2cad Mon Sep 17 00:00:00 2001 From: iVAN <88724353+ivan-hc@users.noreply.github.com> Date: Sun, 26 Oct 2025 00:39:20 +0200 Subject: [PATCH 116/180] Update virtualbox-kvm-junest.sh --- virtualbox-kvm-junest.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/virtualbox-kvm-junest.sh b/virtualbox-kvm-junest.sh index 39d853e..003e8d5 100644 --- a/virtualbox-kvm-junest.sh +++ b/virtualbox-kvm-junest.sh @@ -85,6 +85,7 @@ _post_installation_processes() { } vboxver=$(curl -Ls https://gitlab.com/chaotic-aur/pkgbuilds/-/raw/main/virtualbox-kvm/PKGBUILD | grep vboxver | head -1 | tr "'" '\n' | grep "^[0-9]") +export ICON="virtualbox.png" ########################################################################################################################################################## # SETUP THE ENVIRONMENT From 28a107b1945fcbfa998282460adef20ca901cd38 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sun, 26 Oct 2025 02:02:59 +0000 Subject: [PATCH 117/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 9a26e20..1bb3a34 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sat Oct 25 01:53:51 UTC 2025 +Sun Oct 26 02:02:59 UTC 2025 From 4e11ac2d5b8a8b94865f3f019adee34828c410c6 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Mon, 27 Oct 2025 02:07:21 +0000 Subject: [PATCH 118/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 1bb3a34..38996f1 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sun Oct 26 02:02:59 UTC 2025 +Mon Oct 27 02:07:21 UTC 2025 From 925469628d416d013a4cf75c21eaca06862f4078 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Tue, 28 Oct 2025 01:56:31 +0000 Subject: [PATCH 119/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 38996f1..441aa4e 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Mon Oct 27 02:07:21 UTC 2025 +Tue Oct 28 01:56:31 UTC 2025 From 8f81dd1ab16467664f9db5356369e01bdadbcbbc Mon Sep 17 00:00:00 2001 From: iVAN <88724353+ivan-hc@users.noreply.github.com> Date: Tue, 28 Oct 2025 11:20:20 +0100 Subject: [PATCH 120/180] Update virtualbox-kvm-junest.sh - fix version in AppRun - fix PROOT usage --- virtualbox-kvm-junest.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/virtualbox-kvm-junest.sh b/virtualbox-kvm-junest.sh index 003e8d5..215d878 100644 --- a/virtualbox-kvm-junest.sh +++ b/virtualbox-kvm-junest.sh @@ -35,6 +35,8 @@ _post_installation_processes() { # PATCH FOR VIRTUALBOX ############################################################################# + sed -i "s/VERSION/$vboxver/g" AppDir/AppRun + # Fix locale mkdir -p AppDir/.junest/usr/lib/virtualbox/nls mv AppDir/.junest/usr/share/virtualbox/nls/* AppDir/.junest/usr/lib/virtualbox/nls/ @@ -77,7 +79,7 @@ _post_installation_processes() { HEREDOC # Allow VirtualBox to be used in PROOT mode - sed -i 's/^MY_DIR=/#MY_DIR=/g' AppDir/.junest/usr/bin/VBox || exit 1 + sed -i 's#^MY_DIR=.*#MY_DIR="${JUNEST_HOME}/usr/lib/virtualbox"#g' AppDir/.junest/usr/bin/VBox || exit 1 # Remove annoying vboxdrv messages sed -i 's/elif ! lsmod/elif ! echo vboxdrv/g' AppDir/.junest/usr/bin/VBox || exit 1 From 7ed6d0c09821ec2939e953afe2d8dec239f391ec Mon Sep 17 00:00:00 2001 From: iVAN <88724353+ivan-hc@users.noreply.github.com> Date: Tue, 28 Oct 2025 11:41:14 +0100 Subject: [PATCH 121/180] Update virtualbox-kvm-junest.sh - fix tag release --- virtualbox-kvm-junest.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/virtualbox-kvm-junest.sh b/virtualbox-kvm-junest.sh index 215d878..3707ad7 100644 --- a/virtualbox-kvm-junest.sh +++ b/virtualbox-kvm-junest.sh @@ -300,7 +300,7 @@ REPO="VirtualBox-appimage" TAG="latest" UPINFO="gh-releases-zsync|$GITHUB_REPOSITORY_OWNER|$REPO|$TAG|*x86_64.AppImage.zsync" -echo "$VERSION" > ./version +echo "$vboxver" > ./version _appimagetool() { if ! command -v appimagetool 1>/dev/null; then From 6770dbe28318d4d852625147b21c9d91e897dd46 Mon Sep 17 00:00:00 2001 From: iVAN <88724353+ivan-hc@users.noreply.github.com> Date: Tue, 28 Oct 2025 14:34:33 +0100 Subject: [PATCH 122/180] Update virtualbox-kvm-junest.sh --- virtualbox-kvm-junest.sh | 62 +++++----------------------------------- 1 file changed, 7 insertions(+), 55 deletions(-) diff --git a/virtualbox-kvm-junest.sh b/virtualbox-kvm-junest.sh index 3707ad7..4bfd15e 100644 --- a/virtualbox-kvm-junest.sh +++ b/virtualbox-kvm-junest.sh @@ -113,63 +113,15 @@ HOME="$(dirname "$(readlink -f "$0")")" # DOWNLOAD, INSTALL AND CONFIGURE JUNEST ########################################################################################################################################################## -_enable_multilib() { - printf "\n[multilib]\nInclude = /etc/pacman.d/mirrorlist" >> ./.junest/etc/pacman.conf -} - -_enable_chaoticaur() { - # This function is ment to be used during the installation of JuNest, see "_pacman_patches" - _JUNEST_CMD -- sudo pacman-key --recv-key 3056513887B78AEB --keyserver keyserver.ubuntu.com - _JUNEST_CMD -- sudo pacman-key --lsign-key 3056513887B78AEB - _JUNEST_CMD -- sudo pacman-key --populate chaotic - _JUNEST_CMD -- sudo pacman --noconfirm -U 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst' 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst' - printf "\n[chaotic-aur]\nInclude = /etc/pacman.d/chaotic-mirrorlist" >> ./.junest/etc/pacman.conf -} - -_enable_archlinuxcn() { - _JUNEST_CMD -- sudo pacman --noconfirm -U "https://repo.archlinuxcn.org/x86_64/$(curl -Ls https://repo.archlinuxcn.org/x86_64/ | tr '"' '\n' | grep "^archlinuxcn-keyring.*zst$" | tail -1)" - printf "\n[archlinuxcn]\n#SigLevel = Never\nServer = http://repo.archlinuxcn.org/\$arch" >> ./.junest/etc/pacman.conf -} +_enable_archlinuxcn() { ARCHLINUXCN_ON="1"; } +_enable_chaoticaur() { CHAOTICAUR_ON="1"; } +_enable_multilib() { MULTILIB_ON="1"; } -_custom_mirrorlist() { - COUNTRY=$(curl -i ipinfo.io 2>/dev/null | grep country | cut -c 15- | cut -c -2) - if [ -n "$GITHUB_REPOSITORY_OWNER" ] || ! curl --output /dev/null --silent --head --fail "https://archlinux.org/mirrorlist/?country=$COUNTRY" 1>/dev/null; then - curl -Ls https://archlinux.org/mirrorlist/all | awk NR==2 RS= | sed 's/#Server/Server/g' > ./.junest/etc/pacman.d/mirrorlist - else - curl -Ls "https://archlinux.org/mirrorlist/?country=$COUNTRY" | sed 's/#Server/Server/g' > ./.junest/etc/pacman.d/mirrorlist - fi -} +#_enable_archlinuxcn +_enable_chaoticaur +#_enable_multilib -_bypass_signature_check_level() { - sed -i 's/#SigLevel/SigLevel/g; s/Required DatabaseOptional/Never/g' ./.junest/etc/pacman.conf -} - -_install_junest() { - printf -- "-----------------------------------------------------------------------------\n◆ Clone JuNest from https://github.com/ivan-hc/junest\n-----------------------------------------------------------------------------\n" - git clone https://github.com/ivan-hc/junest.git ./.local/share/junest - printf -- "-----------------------------------------------------------------------------\n◆ Downloading JuNest archive from https://github.com/ivan-hc/junest\n-----------------------------------------------------------------------------\n" - if [ ! -f ./junest-x86_64.tar.gz ]; then - curl -#Lo junest-x86_64.tar.gz https://github.com/ivan-hc/junest/releases/download/continuous/junest-x86_64.tar.gz || exit 1 - fi - _JUNEST_CMD setup -i junest-x86_64.tar.gz - echo " Apply patches to PacMan..." - #_enable_multilib - _enable_chaoticaur - #_enable_archlinuxcn - _custom_mirrorlist - _bypass_signature_check_level - - # Update arch linux in junest - _JUNEST_CMD -- sudo pacman -Syy - _JUNEST_CMD -- sudo pacman --noconfirm -Syu -} - -if ! test -d "$HOME/.local/share/junest"; then - printf -- "-----------------------------------------------------------------------------\n DOWNLOAD, INSTALL AND CONFIGURE JUNEST\n-----------------------------------------------------------------------------\n" - _install_junest -else - printf -- "-----------------------------------------------------------------------------\n RESTART JUNEST\n-----------------------------------------------------------------------------\n" -fi +[ -f ../archimage-builder.sh ] && source ../archimage-builder.sh junest-setup "$@" ########################################################################################################################################################## # INSTALL PROGRAMS USING YAY From 586e924a75fb66e2eea81738829fa69771962eda Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Wed, 29 Oct 2025 02:04:02 +0000 Subject: [PATCH 123/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 441aa4e..088c4ff 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Tue Oct 28 01:56:31 UTC 2025 +Wed Oct 29 02:04:02 UTC 2025 From 5cb7cb86ef8a9a664f43d8015ba064efac816b7f Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Thu, 30 Oct 2025 02:02:34 +0000 Subject: [PATCH 124/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 088c4ff..077421f 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Wed Oct 29 02:04:02 UTC 2025 +Thu Oct 30 02:02:34 UTC 2025 From 8e86254d7bbb15be3cb630958de6cb7dc098f00f Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Fri, 31 Oct 2025 01:59:48 +0000 Subject: [PATCH 125/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 077421f..d034108 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Thu Oct 30 02:02:34 UTC 2025 +Fri Oct 31 01:59:47 UTC 2025 From 90c21cdedda54e15a1b509272c12a9ebf97ddd9c Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sat, 1 Nov 2025 02:03:22 +0000 Subject: [PATCH 126/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index d034108..630780e 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Fri Oct 31 01:59:47 UTC 2025 +Sat Nov 1 02:03:22 UTC 2025 From cdd37b8987cc244bb9dc9487ddec820f6baf9848 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sun, 2 Nov 2025 02:06:04 +0000 Subject: [PATCH 127/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 630780e..65eeb09 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sat Nov 1 02:03:22 UTC 2025 +Sun Nov 2 02:06:04 UTC 2025 From be1d527ebb92c75ee2288e840e59b3bd26d95f8b Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Mon, 3 Nov 2025 02:05:04 +0000 Subject: [PATCH 128/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 65eeb09..81bb7d6 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sun Nov 2 02:06:04 UTC 2025 +Mon Nov 3 02:05:04 UTC 2025 From 81cbe3f47db369d483b51c2cf1d5796d864f96d2 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Tue, 4 Nov 2025 02:00:15 +0000 Subject: [PATCH 129/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 81bb7d6..f275e3e 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Mon Nov 3 02:05:04 UTC 2025 +Tue Nov 4 02:00:15 UTC 2025 From c2bd9a350c73c97f5d0ddbaaf61ac664d07ee806 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Wed, 5 Nov 2025 02:01:40 +0000 Subject: [PATCH 130/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index f275e3e..36c5491 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Tue Nov 4 02:00:15 UTC 2025 +Wed Nov 5 02:01:40 UTC 2025 From c727e3c3cf29b34e177c2029f7bd7ee3307375c7 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Thu, 6 Nov 2025 02:01:49 +0000 Subject: [PATCH 131/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 36c5491..ab771d7 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Wed Nov 5 02:01:40 UTC 2025 +Thu Nov 6 02:01:49 UTC 2025 From 43ecb039c5496ef713a5a46aaf40b5c552bbcca2 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Fri, 7 Nov 2025 02:00:17 +0000 Subject: [PATCH 132/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index ab771d7..255e2f0 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Thu Nov 6 02:01:49 UTC 2025 +Fri Nov 7 02:00:17 UTC 2025 From a49bcca21c6cc676b81946b61b23b8400437a545 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sat, 8 Nov 2025 01:54:02 +0000 Subject: [PATCH 133/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 255e2f0..f83271b 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Fri Nov 7 02:00:17 UTC 2025 +Sat Nov 8 01:54:02 UTC 2025 From af26e4574e767f8f853306962820921a5be9d14a Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sun, 9 Nov 2025 02:04:56 +0000 Subject: [PATCH 134/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index f83271b..a2b7b02 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sat Nov 8 01:54:02 UTC 2025 +Sun Nov 9 02:04:56 UTC 2025 From 8eee746b48c06ea0518d5158eb71010e06411c57 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Mon, 10 Nov 2025 02:06:08 +0000 Subject: [PATCH 135/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index a2b7b02..8c3a991 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sun Nov 9 02:04:56 UTC 2025 +Mon Nov 10 02:06:08 UTC 2025 From 2f3c4459bf95cbe286959d7dd16a77d35b15e816 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Tue, 11 Nov 2025 02:02:32 +0000 Subject: [PATCH 136/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 8c3a991..0cb582c 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Mon Nov 10 02:06:08 UTC 2025 +Tue Nov 11 02:02:32 UTC 2025 From 83d870754b7194ecff54157c79947479748c3dab Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Wed, 12 Nov 2025 02:01:34 +0000 Subject: [PATCH 137/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 0cb582c..c12b5b7 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Tue Nov 11 02:02:32 UTC 2025 +Wed Nov 12 02:01:34 UTC 2025 From 3f1fb087eefb796c1fe82cae68995adc2ac36cc0 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Thu, 13 Nov 2025 02:03:39 +0000 Subject: [PATCH 138/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index c12b5b7..77ba23d 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Wed Nov 12 02:01:34 UTC 2025 +Thu Nov 13 02:03:39 UTC 2025 From aaa15f39ef8008aacc01b01825198504cf43aa92 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Fri, 14 Nov 2025 02:02:03 +0000 Subject: [PATCH 139/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 77ba23d..8ca3a88 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Thu Nov 13 02:03:39 UTC 2025 +Fri Nov 14 02:02:03 UTC 2025 From 791500e421f5997bb128c10649b1c403d4ccd99c Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sat, 15 Nov 2025 01:58:00 +0000 Subject: [PATCH 140/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 8ca3a88..154bfd9 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Fri Nov 14 02:02:03 UTC 2025 +Sat Nov 15 01:58:00 UTC 2025 From fa683cc6b95418bafae5cb3569ea314d4566e166 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sun, 16 Nov 2025 02:08:09 +0000 Subject: [PATCH 141/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 154bfd9..e2171d6 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sat Nov 15 01:58:00 UTC 2025 +Sun Nov 16 02:08:09 UTC 2025 From 900306ed5f24c23ca22682482ce08db429ebfe32 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Mon, 17 Nov 2025 02:03:08 +0000 Subject: [PATCH 142/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index e2171d6..bc06b38 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sun Nov 16 02:08:09 UTC 2025 +Mon Nov 17 02:03:08 UTC 2025 From cb4e945c288037b361a4ce36db5471ac335c8a38 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Tue, 18 Nov 2025 02:01:29 +0000 Subject: [PATCH 143/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index bc06b38..20e2d28 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Mon Nov 17 02:03:08 UTC 2025 +Tue Nov 18 02:01:29 UTC 2025 From 942175a93f153a80c415190ed07b252aaa6256c5 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Wed, 19 Nov 2025 02:01:06 +0000 Subject: [PATCH 144/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 20e2d28..6ca6926 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Tue Nov 18 02:01:29 UTC 2025 +Wed Nov 19 02:01:06 UTC 2025 From 177259e96a3e285d1d554af7e350f7ea5fc84def Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Thu, 20 Nov 2025 01:59:34 +0000 Subject: [PATCH 145/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 6ca6926..620a58f 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Wed Nov 19 02:01:06 UTC 2025 +Thu Nov 20 01:59:34 UTC 2025 From 951b6d0c0bcc6dc2e2f3144da3fd7e11c21c9ab8 Mon Sep 17 00:00:00 2001 From: iVAN <88724353+ivan-hc@users.noreply.github.com> Date: Thu, 20 Nov 2025 17:05:30 +0100 Subject: [PATCH 146/180] Update virtualbox-kvm-junest.sh --- virtualbox-kvm-junest.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/virtualbox-kvm-junest.sh b/virtualbox-kvm-junest.sh index 4bfd15e..875defd 100644 --- a/virtualbox-kvm-junest.sh +++ b/virtualbox-kvm-junest.sh @@ -265,5 +265,4 @@ _appimagetool() { fi } -ARCH=x86_64 _appimagetool -u "$UPINFO" \ - AppDir "$APPNAME"_"$vboxver"-archimage5.0-x86_64.AppImage +ARCH=x86_64 _appimagetool -u "$UPINFO" AppDir "$APPNAME"_"$vboxver"-"$ARCHIMAGE_VERSION"-x86_64.AppImage From af56412b7754b6379c55e080e56577db76e8dbfe Mon Sep 17 00:00:00 2001 From: iVAN <88724353+ivan-hc@users.noreply.github.com> Date: Thu, 20 Nov 2025 20:00:34 +0100 Subject: [PATCH 147/180] Update virtualbox-kvm-junest.sh --- virtualbox-kvm-junest.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/virtualbox-kvm-junest.sh b/virtualbox-kvm-junest.sh index 875defd..13e73f3 100644 --- a/virtualbox-kvm-junest.sh +++ b/virtualbox-kvm-junest.sh @@ -127,9 +127,6 @@ _enable_chaoticaur # INSTALL PROGRAMS USING YAY ########################################################################################################################################################## -_JUNEST_CMD -- yay -Syy -_JUNEST_CMD -- gpg --keyserver keyserver.ubuntu.com --recv-key C01E1CAD5EA2C4F0B8E3571504C367C218ADD4FF # UNCOMMENT IF YOU USE THE AUR - [ -f ../archimage-builder.sh ] && source ../archimage-builder.sh install "$@" cd .. From 339f985a30099e9a9666d36b32f19a6879c4845b Mon Sep 17 00:00:00 2001 From: iVAN <88724353+ivan-hc@users.noreply.github.com> Date: Fri, 21 Nov 2025 01:43:29 +0100 Subject: [PATCH 148/180] Update cronjob.yml --- .github/workflows/cronjob.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cronjob.yml b/.github/workflows/cronjob.yml index a8833cd..d9cc767 100644 --- a/.github/workflows/cronjob.yml +++ b/.github/workflows/cronjob.yml @@ -1,7 +1,7 @@ name: Github Action with a cronjob trigger on: schedule: - - cron: "0 0 * * *" + - cron: "0 0 1/10 * *" workflow_dispatch: @@ -18,7 +18,7 @@ jobs: runs-on: ubuntu-latest steps: - name: "Checkout source repository" - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: "Release date" run: | From d4af0cc57839b8ede957a55254be8fdbb8634bbd Mon Sep 17 00:00:00 2001 From: iVAN <88724353+ivan-hc@users.noreply.github.com> Date: Fri, 21 Nov 2025 02:13:28 +0100 Subject: [PATCH 149/180] Update junest-CI.yml --- .github/workflows/junest-CI.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/junest-CI.yml b/.github/workflows/junest-CI.yml index 47640e7..daaf79b 100644 --- a/.github/workflows/junest-CI.yml +++ b/.github/workflows/junest-CI.yml @@ -12,7 +12,7 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v6 - name: build if: always() From 0ef1b7e44fc57863a203f22c8f45e7b134844020 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Mon, 1 Dec 2025 01:40:47 +0000 Subject: [PATCH 150/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 620a58f..d1b08c2 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Thu Nov 20 01:59:34 UTC 2025 +Mon Dec 1 01:40:47 UTC 2025 From ff3610e4a56fafa4f346cb728d6818ecd45597d0 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Thu, 11 Dec 2025 01:21:15 +0000 Subject: [PATCH 151/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index d1b08c2..5a0398d 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Mon Dec 1 01:40:47 UTC 2025 +Thu Dec 11 01:21:15 UTC 2025 From 4067f471ce9e1626080e5af050dddcb93163daaa Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sun, 21 Dec 2025 01:26:12 +0000 Subject: [PATCH 152/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 5a0398d..6539d1b 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Thu Dec 11 01:21:15 UTC 2025 +Sun Dec 21 01:26:12 UTC 2025 From d5ba8e4b334d085cb7da1edb81e67822949ae925 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Wed, 31 Dec 2025 01:22:47 +0000 Subject: [PATCH 153/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 6539d1b..27af216 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sun Dec 21 01:26:12 UTC 2025 +Wed Dec 31 01:22:47 UTC 2025 From 9b613e6a5773951f4bb0f52efd34d14fd35eec57 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Thu, 1 Jan 2026 01:40:17 +0000 Subject: [PATCH 154/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 27af216..5be26cd 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Wed Dec 31 01:22:47 UTC 2025 +Thu Jan 1 01:40:17 UTC 2026 From a9a8e512953b6ed68d7be7a46339b45e0a704cf1 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sun, 11 Jan 2026 01:40:25 +0000 Subject: [PATCH 155/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 5be26cd..42e9ec8 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Thu Jan 1 01:40:17 UTC 2026 +Sun Jan 11 01:40:25 UTC 2026 From c0e42bb81f5c8a50f833bf2cad683784fdd1ee28 Mon Sep 17 00:00:00 2001 From: iVAN <88724353+ivan-hc@users.noreply.github.com> Date: Tue, 13 Jan 2026 13:58:45 +0100 Subject: [PATCH 156/180] Add vulkan-icd-loader --- virtualbox-kvm-junest.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/virtualbox-kvm-junest.sh b/virtualbox-kvm-junest.sh index 13e73f3..aea68b2 100644 --- a/virtualbox-kvm-junest.sh +++ b/virtualbox-kvm-junest.sh @@ -2,7 +2,7 @@ APP=virtualbox-kvm BIN="virtualbox" #CHANGE THIS IF THE NAME OF THE BINARY IS DIFFERENT FROM "$APP" (for example, the binary of "obs-studio" is "obs") -DEPENDENCES="alsa-lib alsa-oss alsa-plugins alsa-tools alsa-utils dbus flac jack2 lame libasyncns libogg libpipewire libpulse libsndfile libvorbis mpg123 opus pipewire pipewire-alsa pipewire-audio procps-ng pulseaudio pulseaudio-alsa qt6-base" #SYNTAX: "APP1 APP2 APP3 APP4...", LEAVE BLANK IF NO OTHER DEPENDENCIES ARE NEEDED +DEPENDENCES="alsa-lib alsa-oss alsa-plugins alsa-tools alsa-utils dbus flac jack2 lame libasyncns libogg libpipewire libpulse libsndfile libvorbis mpg123 opus pipewire pipewire-alsa pipewire-audio procps-ng pulseaudio pulseaudio-alsa qt6-base vulkan-icd-loader" #SYNTAX: "APP1 APP2 APP3 APP4...", LEAVE BLANK IF NO OTHER DEPENDENCIES ARE NEEDED BASICSTUFF="binutils debugedit gzip" COMPILERS="base-devel" From a0f3e0ff7c9da93423e08ac65778f0906938e1fc Mon Sep 17 00:00:00 2001 From: iVAN <88724353+ivan-hc@users.noreply.github.com> Date: Fri, 16 Jan 2026 04:19:51 +0100 Subject: [PATCH 157/180] Add Vulkan support + code refactoring in the AppRun fix https://github.com/ivan-hc/VirtualBox-appimage/issues/28 --- virtualbox-kvm-junest.sh | 123 ++++++++++++++++++++------------------- 1 file changed, 64 insertions(+), 59 deletions(-) diff --git a/virtualbox-kvm-junest.sh b/virtualbox-kvm-junest.sh index aea68b2..a580e2c 100644 --- a/virtualbox-kvm-junest.sh +++ b/virtualbox-kvm-junest.sh @@ -2,7 +2,9 @@ APP=virtualbox-kvm BIN="virtualbox" #CHANGE THIS IF THE NAME OF THE BINARY IS DIFFERENT FROM "$APP" (for example, the binary of "obs-studio" is "obs") -DEPENDENCES="alsa-lib alsa-oss alsa-plugins alsa-tools alsa-utils dbus flac jack2 lame libasyncns libogg libpipewire libpulse libsndfile libvorbis mpg123 opus pipewire pipewire-alsa pipewire-audio procps-ng pulseaudio pulseaudio-alsa qt6-base vulkan-icd-loader" #SYNTAX: "APP1 APP2 APP3 APP4...", LEAVE BLANK IF NO OTHER DEPENDENCIES ARE NEEDED +audio_pkgs="alsa-lib alsa-oss alsa-plugins alsa-tools alsa-utils flac jack2 lame libogg libpipewire libpulse libvorbis mpg123 opus pipewire pipewire-alsa pipewire-audio pulseaudio pulseaudio-alsa" +vulkan_pkgs="libdisplay-info libdrm libxcb libxshmfence llvm-libs spirv-tools vulkan-asahi vulkan-gfxstream vulkan-icd-loader vulkan-intel vulkan-mesa-implicit-layers vulkan-nouveau vulkan-radeon vulkan-swrast vulkan-tools vulkan-virtio" +DEPENDENCES=$(echo "$audio_pkgs $vulkan_pkgs dbus libasyncns libsndfile procps-ng qt6-base" | tr ' ' '\n' | sort -u | xargs) #SYNTAX: "APP1 APP2 APP3 APP4...", LEAVE BLANK IF NO OTHER DEPENDENCIES ARE NEEDED BASICSTUFF="binutils debugedit gzip" COMPILERS="base-devel" @@ -152,81 +154,84 @@ export NVIDIA_ON=1 cat <<-'HEREDOC' >> AppDir/AppRun if command -v sudo >/dev/null 2>&1; then - export SUDOCMD="sudo" + export SUDOCMD="sudo" elif command -v doas >/dev/null 2>&1; then - export SUDOCMD="doas" + export SUDOCMD="doas" else - echo 'ERROR: No sudo or doas found' - exit 1 + echo 'ERROR: No sudo or doas found' + exit 1 fi Show_help_message() { - printf " Available options:\n" - printf "\n --vbox-usb-enable\n" - printf "\n Enable USB support in Virtual Machines. Requires \"sudo\" password.\n" - printf "\n The above option does the following:\n" - printf "\n - Creates the \"vboxusers\" group" - printf "\n - Adds your \$USER to the \"vboxusers\" group" - printf "\n - Creates the /usr/lib/virtualbox directory on the host system" - printf "\n - Installs the \"VBoxCreateUSBNode.sh\" script in /usr/lib/virtualbox" - printf "\n - Creates the /etc/udev/rules.d directory" - printf "\n - Creates and installs the \"60-vboxusb.rules\" file in /etc/udev/rules.d\n" - printf "\n VirtualBoxVM\n" - printf "\n A VirtualBox command to handle Virtual Machines via command line\n\n" + printf " Available options:\n" + printf "\n --vbox-usb-enable\n" + printf "\n Enable USB support in Virtual Machines. Requires \"sudo\" password.\n" + printf "\n The above option does the following:\n" + printf "\n - Creates the \"vboxusers\" group" + printf "\n - Adds your \$USER to the \"vboxusers\" group" + printf "\n - Creates the /usr/lib/virtualbox directory on the host system" + printf "\n - Installs the \"VBoxCreateUSBNode.sh\" script in /usr/lib/virtualbox" + printf "\n - Creates the /etc/udev/rules.d directory" + printf "\n - Creates and installs the \"60-vboxusb.rules\" file in /etc/udev/rules.d\n" + printf "\n VirtualBoxVM\n" + printf "\n A VirtualBox command to handle Virtual Machines via command line\n\n" } VBoxUSB_enable() { - printf "\n The above option does the following:\n" - printf "\n - Creates the \"vboxusers\" group" - printf "\n - Adds your \$USER to the \"vboxusers\" group" - printf "\n - Creates the /usr/lib/virtualbox directory on the host system" - printf "\n - Installs the \"VBoxCreateUSBNode.sh\" script in /usr/lib/virtualbox" - printf "\n - Creates the /etc/udev/rules.d directory" - printf "\n - Creates and installs the \"60-vboxusb.rules\" file in /etc/udev/rules.d\n" - printf "\n See also https://github.com/cyberus-technology/virtualbox-kvm#usb-pass-through\n" - printf "\nAuthentication is required\n" - if ! test -f /usr/lib/virtualbox/VBoxCreateUSBNode.sh; then - # Create the "vboxusers" group and add $USER - $SUDOCMD groupadd -r vboxusers -U "$USER" - # Create the directory /usr/lib/virtualbox on the host system - $SUDOCMD mkdir -p /usr/lib/virtualbox - # Install the "VBoxCreateUSBNode.sh" script in /usr/lib/virtualbox - _JUNEST_CMD -- cp /usr/share/virtualbox/VBoxCreateUSBNode.sh ./ - chmod a+x VBoxCreateUSBNode.sh - $SUDOCMD mv VBoxCreateUSBNode.sh /usr/lib/virtualbox/ - $SUDOCMD chown -R root:vboxusers /usr/lib/virtualbox - fi - if ! test -f /etc/udev/rules.d/60-vboxusb.rules; then - # Create the directory /etc/udev/rules.d - $SUDOCMD mkdir -p /etc/udev/rules.d - # Create and install the 60-vboxusb.rules file in /etc/udev/rules.d - _JUNEST_CMD -- cp /etc/udev/rules.d/60-vboxusb.rules ./ - $SUDOCMD mv 60-vboxusb.rules /etc/udev/rules.d/ - # Reload the udev rules - $SUDOCMD systemctl reload systemd-udevd - fi - printf "\nIt is recommended that you reboot for the changes to take effect.\n" + printf "\n The above option does the following:\n" + printf "\n - Creates the \"vboxusers\" group" + printf "\n - Adds your \$USER to the \"vboxusers\" group" + printf "\n - Creates the /usr/lib/virtualbox directory on the host system" + printf "\n - Installs the \"VBoxCreateUSBNode.sh\" script in /usr/lib/virtualbox" + printf "\n - Creates the /etc/udev/rules.d directory" + printf "\n - Creates and installs the \"60-vboxusb.rules\" file in /etc/udev/rules.d\n" + printf "\n See also https://github.com/cyberus-technology/virtualbox-kvm#usb-pass-through\n" + printf "\nAuthentication is required\n" + if ! test -f /usr/lib/virtualbox/VBoxCreateUSBNode.sh; then + # Create the "vboxusers" group and add $USER + $SUDOCMD groupadd -r vboxusers -U "$USER" + # Create the directory /usr/lib/virtualbox on the host system + $SUDOCMD mkdir -p /usr/lib/virtualbox + # Install the "VBoxCreateUSBNode.sh" script in /usr/lib/virtualbox + _JUNEST_CMD -- cp /usr/share/virtualbox/VBoxCreateUSBNode.sh ./ + chmod a+x VBoxCreateUSBNode.sh + $SUDOCMD mv VBoxCreateUSBNode.sh /usr/lib/virtualbox/ + $SUDOCMD chown -R root:vboxusers /usr/lib/virtualbox + fi + if ! test -f /etc/udev/rules.d/60-vboxusb.rules; then + # Create the directory /etc/udev/rules.d + $SUDOCMD mkdir -p /etc/udev/rules.d + # Create and install the 60-vboxusb.rules file in /etc/udev/rules.d + _JUNEST_CMD -- cp /etc/udev/rules.d/60-vboxusb.rules ./ + $SUDOCMD mv 60-vboxusb.rules /etc/udev/rules.d/ + # Reload the udev rules + $SUDOCMD systemctl reload systemd-udevd + fi + printf "\nIt is recommended that you reboot for the changes to take effect.\n" } case "$1" in '') - _JUNEST_CMD -- /usr/bin/virtualbox - ;; + _JUNEST_CMD -- /usr/bin/virtualbox + ;; 'VirtualBoxVM') - _JUNEST_CMD -- /usr/bin/VirtualBoxVM "$@" - ;; + _JUNEST_CMD -- /usr/bin/VirtualBoxVM "$@" + ;; '-h'|'--help') - Show_help_message - ;; + Show_help_message + ;; '--vbox-usb-enable') - VBoxUSB_enable - ;; + VBoxUSB_enable + ;; '-v'|'--version') - echo "VirtualBox VERSION KVM" - ;; + echo "VirtualBox VERSION KVM" + ;; 'virtualbox'|*) - _JUNEST_CMD -- /usr/bin/VirtualBox "$@" -;; + _JUNEST_CMD -- /usr/bin/VirtualBox "$@" + ;; +'vulkaninfo') + _JUNEST_CMD -- vulkaninfo "$@" + ;; esac HEREDOC From 06dcad31aa65c094409275b85cb5970891abd3e3 Mon Sep 17 00:00:00 2001 From: iVAN <88724353+ivan-hc@users.noreply.github.com> Date: Fri, 16 Jan 2026 04:46:04 +0100 Subject: [PATCH 158/180] Update virtualbox-kvm-junest.sh --- virtualbox-kvm-junest.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/virtualbox-kvm-junest.sh b/virtualbox-kvm-junest.sh index a580e2c..25b7654 100644 --- a/virtualbox-kvm-junest.sh +++ b/virtualbox-kvm-junest.sh @@ -229,9 +229,6 @@ case "$1" in 'virtualbox'|*) _JUNEST_CMD -- /usr/bin/VirtualBox "$@" ;; -'vulkaninfo') - _JUNEST_CMD -- vulkaninfo "$@" - ;; esac HEREDOC From c32887601c17a50e9195adbae57c74e739c2f775 Mon Sep 17 00:00:00 2001 From: iVAN <88724353+ivan-hc@users.noreply.github.com> Date: Tue, 20 Jan 2026 21:55:14 +0100 Subject: [PATCH 159/180] Include all vitualbox-kvm dependencies --- virtualbox-kvm-junest.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/virtualbox-kvm-junest.sh b/virtualbox-kvm-junest.sh index 25b7654..6ebd345 100644 --- a/virtualbox-kvm-junest.sh +++ b/virtualbox-kvm-junest.sh @@ -2,9 +2,11 @@ APP=virtualbox-kvm BIN="virtualbox" #CHANGE THIS IF THE NAME OF THE BINARY IS DIFFERENT FROM "$APP" (for example, the binary of "obs-studio" is "obs") +vbox_depends=$(curl -Ls "https://raw.githubusercontent.com/archlinux/aur/refs/heads/virtualbox-kvm/.SRCINFO" | grep "depends =" | grep -v "makedepends\|optdepends" | awk '{print $3}' | xargs) +[ -z "$vbox_depends" ] && exit 1 audio_pkgs="alsa-lib alsa-oss alsa-plugins alsa-tools alsa-utils flac jack2 lame libogg libpipewire libpulse libvorbis mpg123 opus pipewire pipewire-alsa pipewire-audio pulseaudio pulseaudio-alsa" vulkan_pkgs="libdisplay-info libdrm libxcb libxshmfence llvm-libs spirv-tools vulkan-asahi vulkan-gfxstream vulkan-icd-loader vulkan-intel vulkan-mesa-implicit-layers vulkan-nouveau vulkan-radeon vulkan-swrast vulkan-tools vulkan-virtio" -DEPENDENCES=$(echo "$audio_pkgs $vulkan_pkgs dbus libasyncns libsndfile procps-ng qt6-base" | tr ' ' '\n' | sort -u | xargs) #SYNTAX: "APP1 APP2 APP3 APP4...", LEAVE BLANK IF NO OTHER DEPENDENCIES ARE NEEDED +DEPENDENCES=$(echo "$audio_pkgs $vulkan_pkgs $vbox_depends dbus libasyncns libsndfile procps-ng qt6-base" | tr ' ' '\n' | sort -u | xargs) #SYNTAX: "APP1 APP2 APP3 APP4...", LEAVE BLANK IF NO OTHER DEPENDENCIES ARE NEEDED BASICSTUFF="binutils debugedit gzip" COMPILERS="base-devel" From dd954e8896d8b1812d5723baced7a6a579572d68 Mon Sep 17 00:00:00 2001 From: iVAN <88724353+ivan-hc@users.noreply.github.com> Date: Tue, 20 Jan 2026 22:10:00 +0100 Subject: [PATCH 160/180] Undo last commit --- virtualbox-kvm-junest.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/virtualbox-kvm-junest.sh b/virtualbox-kvm-junest.sh index 6ebd345..25b7654 100644 --- a/virtualbox-kvm-junest.sh +++ b/virtualbox-kvm-junest.sh @@ -2,11 +2,9 @@ APP=virtualbox-kvm BIN="virtualbox" #CHANGE THIS IF THE NAME OF THE BINARY IS DIFFERENT FROM "$APP" (for example, the binary of "obs-studio" is "obs") -vbox_depends=$(curl -Ls "https://raw.githubusercontent.com/archlinux/aur/refs/heads/virtualbox-kvm/.SRCINFO" | grep "depends =" | grep -v "makedepends\|optdepends" | awk '{print $3}' | xargs) -[ -z "$vbox_depends" ] && exit 1 audio_pkgs="alsa-lib alsa-oss alsa-plugins alsa-tools alsa-utils flac jack2 lame libogg libpipewire libpulse libvorbis mpg123 opus pipewire pipewire-alsa pipewire-audio pulseaudio pulseaudio-alsa" vulkan_pkgs="libdisplay-info libdrm libxcb libxshmfence llvm-libs spirv-tools vulkan-asahi vulkan-gfxstream vulkan-icd-loader vulkan-intel vulkan-mesa-implicit-layers vulkan-nouveau vulkan-radeon vulkan-swrast vulkan-tools vulkan-virtio" -DEPENDENCES=$(echo "$audio_pkgs $vulkan_pkgs $vbox_depends dbus libasyncns libsndfile procps-ng qt6-base" | tr ' ' '\n' | sort -u | xargs) #SYNTAX: "APP1 APP2 APP3 APP4...", LEAVE BLANK IF NO OTHER DEPENDENCIES ARE NEEDED +DEPENDENCES=$(echo "$audio_pkgs $vulkan_pkgs dbus libasyncns libsndfile procps-ng qt6-base" | tr ' ' '\n' | sort -u | xargs) #SYNTAX: "APP1 APP2 APP3 APP4...", LEAVE BLANK IF NO OTHER DEPENDENCIES ARE NEEDED BASICSTUFF="binutils debugedit gzip" COMPILERS="base-devel" From a5c52b130a8da441b29c106c8dabb3bbf10acc26 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Wed, 21 Jan 2026 01:26:05 +0000 Subject: [PATCH 161/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 42e9ec8..fe5765e 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sun Jan 11 01:40:25 UTC 2026 +Wed Jan 21 01:26:05 UTC 2026 From d6c3c133edb3b3cc8d9ec32f801cd5ec5e4a0723 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sat, 31 Jan 2026 01:43:15 +0000 Subject: [PATCH 162/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index fe5765e..3c28d3b 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Wed Jan 21 01:26:05 UTC 2026 +Sat Jan 31 01:43:15 UTC 2026 From 97b84ea47bf50b33ed36cf158a815aa006f2914c Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sun, 1 Feb 2026 02:01:40 +0000 Subject: [PATCH 163/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 3c28d3b..9f40635 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sat Jan 31 01:43:15 UTC 2026 +Sun Feb 1 02:01:40 UTC 2026 From 584e3a473c671977781bbbf37c3c55b7a4854aa8 Mon Sep 17 00:00:00 2001 From: iVAN <88724353+ivan-hc@users.noreply.github.com> Date: Thu, 5 Feb 2026 02:11:12 +0100 Subject: [PATCH 164/180] Workaround locale troubles ...in some releases the language is not correctly detected --- virtualbox-kvm-junest.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/virtualbox-kvm-junest.sh b/virtualbox-kvm-junest.sh index 25b7654..1a50ea8 100644 --- a/virtualbox-kvm-junest.sh +++ b/virtualbox-kvm-junest.sh @@ -39,10 +39,9 @@ _post_installation_processes() { sed -i "s/VERSION/$vboxver/g" AppDir/AppRun - # Fix locale + # Workaround locale troubles (in some releases the language is not correctly detected) mkdir -p AppDir/.junest/usr/lib/virtualbox/nls - mv AppDir/.junest/usr/share/virtualbox/nls/* AppDir/.junest/usr/lib/virtualbox/nls/ - rm -R -f AppDir/.junest/usr/share/virtualbox/nls + cp -r AppDir/.junest/usr/share/virtualbox/nls/* AppDir/.junest/usr/lib/virtualbox/nls/ # Add guest additions if ! test -f ./VBoxGuestAdditions.iso; then From eae3fcde25c9a86d05f22e49ccbf092709ef39ac Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Wed, 11 Feb 2026 02:02:12 +0000 Subject: [PATCH 165/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 9f40635..d36886a 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sun Feb 1 02:01:40 UTC 2026 +Wed Feb 11 02:02:12 UTC 2026 From 5382ddab467b9ee271da653af0a54959c03ada8c Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sat, 21 Feb 2026 01:45:11 +0000 Subject: [PATCH 166/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index d36886a..167224e 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Wed Feb 11 02:02:12 UTC 2026 +Sat Feb 21 01:45:11 UTC 2026 From f19aba0a7b09702e9e488580296eaa99548e3dae Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sun, 1 Mar 2026 01:59:54 +0000 Subject: [PATCH 167/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 167224e..f7c83d6 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sat Feb 21 01:45:11 UTC 2026 +Sun Mar 1 01:59:54 UTC 2026 From 48f4b1cc38b812b991ce3ab68cf0338072a59d61 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Wed, 11 Mar 2026 01:45:41 +0000 Subject: [PATCH 168/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index f7c83d6..171ee27 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sun Mar 1 01:59:54 UTC 2026 +Wed Mar 11 01:45:41 UTC 2026 From 4192090204f2307a07646b34d1d8ee1ff437206e Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sat, 21 Mar 2026 01:45:24 +0000 Subject: [PATCH 169/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 171ee27..9445b37 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Wed Mar 11 01:45:41 UTC 2026 +Sat Mar 21 01:45:24 UTC 2026 From f33ce212e68c364c859b12fa002e3c64802573a2 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Tue, 31 Mar 2026 02:03:28 +0000 Subject: [PATCH 170/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 9445b37..5f490c4 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sat Mar 21 01:45:24 UTC 2026 +Tue Mar 31 02:03:28 UTC 2026 From 60917f2d640d7f07d8dc85d1309e5ac8d062df81 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Wed, 1 Apr 2026 02:11:46 +0000 Subject: [PATCH 171/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 5f490c4..54cfffe 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Tue Mar 31 02:03:28 UTC 2026 +Wed Apr 1 02:11:46 UTC 2026 From 955934325184e4e976a9ad93848a16cad9b51fc9 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sat, 11 Apr 2026 01:58:06 +0000 Subject: [PATCH 172/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 54cfffe..f4c3380 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Wed Apr 1 02:11:46 UTC 2026 +Sat Apr 11 01:58:06 UTC 2026 From 8f9f799c90a281ea21fb6c19f672e63e3a7d931f Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Tue, 21 Apr 2026 02:12:11 +0000 Subject: [PATCH 173/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index f4c3380..48f5760 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sat Apr 11 01:58:06 UTC 2026 +Tue Apr 21 02:12:11 UTC 2026 From 8c1ee16f1f4dfc7b146b4e49cc637dc34b3cddbf Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Fri, 1 May 2026 02:43:54 +0000 Subject: [PATCH 174/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 48f5760..a0360be 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Tue Apr 21 02:12:11 UTC 2026 +Fri May 1 02:43:54 UTC 2026 From 4a9fd7f112aa54f3374e15c8be136a717324163e Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Mon, 11 May 2026 02:47:54 +0000 Subject: [PATCH 175/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index a0360be..d81b2ae 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Fri May 1 02:43:54 UTC 2026 +Mon May 11 02:47:54 UTC 2026 From ed2076603efbd4e79a0a0d4ca76409365c8de003 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Thu, 21 May 2026 02:55:49 +0000 Subject: [PATCH 176/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index d81b2ae..2f7b00b 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Mon May 11 02:47:54 UTC 2026 +Thu May 21 02:55:49 UTC 2026 From 780ff99ad3ee95f4c375cb268e83280c1fce3441 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sun, 31 May 2026 03:26:53 +0000 Subject: [PATCH 177/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 2f7b00b..00a5474 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Thu May 21 02:55:49 UTC 2026 +Sun May 31 03:26:53 UTC 2026 From 3546311d754190ce7c473f0778975a92f940dbef Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Mon, 1 Jun 2026 03:39:21 +0000 Subject: [PATCH 178/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 00a5474..0ef094a 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Sun May 31 03:26:53 UTC 2026 +Mon Jun 1 03:39:21 UTC 2026 From 40ae665a3dbcbb1be63b428926575bd46abe4e91 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Thu, 11 Jun 2026 03:35:04 +0000 Subject: [PATCH 179/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index 0ef094a..bd9234d 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Mon Jun 1 03:39:21 UTC 2026 +Thu Jun 11 03:35:04 UTC 2026 From 6f8ca7d67ac92f338eb5f0a9b89d384eb8296f11 Mon Sep 17 00:00:00 2001 From: ivan-hc Date: Sun, 21 Jun 2026 03:45:03 +0000 Subject: [PATCH 180/180] Sync files from source repository --- latest-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-release.txt b/latest-release.txt index bd9234d..ba93da8 100644 --- a/latest-release.txt +++ b/latest-release.txt @@ -1 +1 @@ -Thu Jun 11 03:35:04 UTC 2026 +Sun Jun 21 03:45:03 UTC 2026