Compare commits

...

214 Commits

Author SHA1 Message Date
Wolfgang
f372cf0d76 update proxmox-backup-server-4.0.20-1
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-11-15 12:26:39 +00:00
Wolfgang
514e19f15e update pve-xtermjs-5.5.0-3, proxmox-termproxy-2.0.3
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-11-15 11:16:04 +00:00
Wolfgang
da9eaf4a5b use the commit patch for the compile fix
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-11-08 09:13:41 +00:00
Wolfgang
3e6525f604 update proxmox-backup-server-4.0.19-1
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-11-07 23:05:34 +00:00
Wolfgang
081846002d update proxmox-backup-server-4.0.18-1
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-10-27 16:41:11 +00:00
Wolfgang
4073e38b47 update proxmox-backup-server-4.0.17-1
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-10-16 17:53:54 +00:00
Wolfgang
f4462568a2 update proxmox-backup-server-4.0.16-1
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-10-02 16:49:40 +00:00
Wolfgang
d6684e5afc update proxmox-backup-server-4.0.15-1
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-09-16 10:51:38 +00:00
Wolfgang
b4f29bae45 fix email adress in changelog
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-08-23 10:26:14 +00:00
Wolfgang
e13e20f0b9 fix: syslog not working in web ui (fixes #66)
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-08-23 07:00:39 +00:00
Wolfgang
3925cbdf64 update proxmox-backup-server-4.0.14-1
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-08-13 17:14:23 +00:00
dependabot[bot]
352dccb36d Bump actions/checkout from 4 to 5
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-13 06:57:30 +02:00
Wolfgang
bbcd43b1dd update README
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-08-12 19:02:22 +00:00
Wolfgang
8ea4801cd3 enable automatic updates for github-actions
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-08-12 18:15:50 +00:00
Wolfgang
0fd91d2cfe update proxmox-backup-server-4.0.13-1
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-08-11 18:09:38 +00:00
kapitainsky
9de48a1b11 Raspberry Pi OS apt update && apt upgrade failing
Raspberry Pi OS `apt update && apt upgrade` failing 

https://github.com/wofferl/proxmox-backup-arm64/issues/60
2025-08-08 19:38:07 +02:00
Wolfgang
cecd77c2aa update proxmox-backup-server-4.0.12-1
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-08-08 14:26:38 +00:00
Wolfgang
4937670238 update proxmox-backup-server-4.0.11-4
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-08-06 22:11:27 +00:00
Wolfgang
8fd409e64e update proxmox-backup-server-4.0.11-2
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-08-06 17:26:22 +00:00
Wolfgang
bac1e03de8 update README
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-08-06 17:25:43 +00:00
Wolfgang
4665209838 update proxmox-backup-4.0.11-1
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-08-06 05:59:55 +00:00
Wolfgang
dd38110940 update proxmox-backup-4.0.10-1
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-08-05 19:37:07 +00:00
Wolfgang
36b0ae8a4c update proxmox-backup-4.0.9-1
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-08-05 05:52:20 +00:00
Wolfgang
43ef5044c0 add option to automtically download and install a specific version
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-08-01 15:25:03 +00:00
Wolfgang
4ae0c091e0 update proxmox-backup-4.0.8-1
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-07-31 20:47:05 +00:00
Wolfgang
738f3c7283 update proxmox-termproxy-2.0.2
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-07-28 16:42:58 +00:00
Wolfgang
839f3b7b76 update proxmox-backup-4.0.7-1
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-07-28 15:32:05 +00:00
Wolfgang
33782a1f24 update dependencies minimal versions
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-07-24 20:29:03 +00:00
Wolfgang
2d3f28ce51 update proxmox-mini-journalreader-1.6
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-07-24 20:23:17 +00:00
Wolfgang
d50f7fe86d change pbs repository to trixie/pbs-test
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-07-24 20:18:09 +00:00
Wolfgang
7d580c1be9 fix proxmox-biome build
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-07-24 18:13:20 +00:00
Wolfgang
3a52c36f53 update proxmox-backup-4.0.6-2
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-07-24 16:51:26 +00:00
Wolfgang
4c0562367c update proxmox-biome-2.0.6-2
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-07-24 16:50:58 +00:00
Wolfgang
ff38abbf8d add option to test all three build processes (amd64, arm64-native and arm64-cross)
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-07-24 16:17:20 +00:00
Wolfgang
88f3008eef update proxmox-backup-4.0.5-1
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-07-23 23:05:40 +00:00
Wolfgang
8448491729 update proxmox-backup-4.0.2-1
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-07-23 21:18:49 +00:00
Wolfgang
0433e07439 update proxmox-mini-journalreader to 1.5
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-07-23 21:00:43 +00:00
Wolfgang
5c8e2f69f0 remove unused pve-eslint
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-07-23 20:59:54 +00:00
Wolfgang
175b39c7c8 remove librust-h2 workaround
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-07-23 20:59:54 +00:00
Wolfgang
311105a27b change pbs devel repository to trixie
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-07-23 20:59:54 +00:00
Wolfgang
bbe3a3692f update biome-2.0.6-1
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-07-23 20:59:50 +00:00
Wolfgang
23adb35317 rework buildtest action
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-07-23 20:59:50 +00:00
Wolfgang
6715e0396a use ubuntu-24.04-arm runner for release action
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-07-23 20:59:46 +00:00
Wolfgang
d102faa586 use stable toolchain to avoid conflict when cross compiling
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-06-18 09:58:04 +00:00
Wolfgang
6af6a72a10 fix proxmox-biome cross build
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-06-17 22:14:49 +00:00
Wolfgang
bf30a2413c add missing devel dependencies
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-06-17 21:25:30 +00:00
Wolfgang
6ef2abd989 fix client build
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-06-17 20:52:52 +00:00
Wolfgang
660c795524 update pre-built info
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-06-17 20:35:28 +00:00
Wolfgang
d27356d2b9 add missing devel dependency in github action workflow
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-06-17 20:26:57 +00:00
Wolfgang
9f581dfb08 fix formatting for important
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-06-17 20:08:46 +00:00
Wolfgang
ef5f796882 update proxmox-backup-4.0.0-1
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-06-17 20:04:28 +00:00
Wolfgang
f2fb3676f8 update info about building pbs 3.x and 4.x
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-06-17 20:02:26 +00:00
Wolfgang
ad77c964cb update github actions for building pbs 4.x on debian trixie
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-06-17 19:49:49 +00:00
Wolfgang
168a6b429a build and install dev dependency proxmox-biome
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-06-17 19:18:25 +00:00
Wolfgang
8e1ac174e7 update proxmox-backup-3.4.2-1
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-06-04 17:45:00 +00:00
Tobias Bodmer
c0aca61ebe Add crosscompililation package pkgconf
Without it, OpenSSL cannot be installed.
2025-06-01 18:35:02 +02:00
Wolfgang
fae8e1f64b exclude static client from install
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-04-16 19:23:26 +00:00
Wolfgang
23d00e7cc1 update proxmox-backup-3.4.1-1
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-04-16 18:16:19 +00:00
Wolfgang
32ab05f429 update proxmox-backup-3.4.0-1
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-04-10 16:20:46 +00:00
Wolfgang
ab3e451ed7 update pve-xtermjs to 5.5.0-2 and proxmox-termproxy to 1.1.0
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-04-07 21:49:41 +00:00
Wolfgang
3362b1b96f update proxmox-backup-3.3.7-1
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-04-06 09:38:28 +00:00
Wolfgang
1b9c823956 update proxmox-backup-3.3.6-1
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-04-03 20:23:37 +00:00
Wolfgang
48fd0a1319 update proxmox-backup-3.3.5-1
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-04-03 19:26:28 +00:00
Wolfgang
7b6ad9d99a use patched librust-h2-dev from proxmox devel repository
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-04-03 18:24:42 +00:00
Wolfgang
cd0fd7e873 update proxmox-backup-3.3.4-1
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-03-13 18:23:25 +00:00
Wolfgang
faa282d822 remove obsolete proxmox patch
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-02-13 07:54:49 +00:00
Wolfgang
bc3c476d5e update proxmox-backup-3.3.3-1
Signed-off-by: Wolfgang <github@linux-dude.de>
2025-02-13 07:06:49 +00:00
Wolfgang
5ddd4852f8 update proxmox-backup-3.3.2-2
Signed-off-by: Wolfgang <github@linux-dude.de>
2024-12-10 17:52:29 +00:00
Wolfgang
020a9d2f1c update proxmox-backup-3.3.2-1
Signed-off-by: Wolfgang <github@linux-dude.de>
2024-12-10 17:13:23 +00:00
Wolfgang
97d6c06c88 update proxmox-backup-3.3.1-1
Signed-off-by: Wolfgang <github@linux-dude.de>
2024-12-05 16:06:29 +00:00
Wolfgang
1947c9560a update proxmox-backup-3.3.0-2
Signed-off-by: Wolfgang <github@linux-dude.de>
2024-11-28 18:54:28 +00:00
Wolfgang
8317a5e0d1 update proxmox-backup-3.3.0-1
Signed-off-by: Wolfgang <github@linux-dude.de>
2024-11-28 17:01:53 +00:00
Wolfgang
25e7c98522 update proxmox-backup-3.2.14-1
Signed-off-by: Wolfgang <github@linux-dude.de>
2024-11-27 17:48:59 +00:00
Wolfgang
cec6c6dfa5 update proxmox-backup-3.2.13-1
Signed-off-by: Wolfgang <github@linux-dude.de>
2024-11-26 21:17:48 +00:00
Wolfgang
cf9ef874e4 update proxmox-backup-3.2.12-1
Signed-off-by: Wolfgang <github@linux-dude.de>
2024-11-26 16:46:06 +00:00
Wolfgang
9d86752f68 exit after install
Signed-off-by: Wolfgang <github@linux-dude.de>
2024-11-26 07:04:55 +00:00
Wolfgang
6a2c719f8c update proxmox-backup-3.2.11-1
Signed-off-by: Wolfgang <github@linux-dude.de>
2024-11-21 18:57:09 +00:00
Wolfgang
ab281d9374 update proxmox-backup-3.2.10-1
Signed-off-by: Wolfgang <github@linux-dude.de>
2024-11-20 20:21:38 +00:00
Wolfgang
4a63a0338d update proxmox-backup-3.2.9-1
Signed-off-by: Wolfgang <github@linux-dude.de>
2024-11-16 12:52:55 +00:00
Wolfgang
63a21b014d small syntax fixes 2024-11-11 18:36:10 +00:00
Wolfgang
042413e1b8 use exact filenames when installing automatically downloaded files 2024-11-11 17:58:57 +00:00
Wolfgang
b4ca3389e4 don't download dbgsym packages automatically, they are not needed on productive systems 2024-11-11 17:30:36 +00:00
Wolfgang
5105c83405 make clear that ./build.sh install also downloads the packages if not locally found 2024-11-11 17:29:24 +00:00
Wolfgang
a60d1c7bba no fan from automatic executing unknown scripts from download 2024-11-11 17:17:12 +00:00
william
7cd10f96dc dynamic installation (#48)
* script commit & readme

* script commit & readme
2024-11-11 18:13:44 +01:00
Wolfgang
b70700e8c1 update proxmox-backup-3.2.8-1
Signed-off-by: Wolfgang <github@linux-dude.de>
2024-10-22 05:11:55 +00:00
Wolfgang
21fa6326a0 remove experimental note from cross compiling info 2024-07-06 08:50:12 +00:00
Wolfgang
3030389cf4 append package changelog to the release notes 2024-07-06 08:46:31 +00:00
Wolfgang
6795922c7c remove unused tools to free up disk space on the runner image 2024-07-05 14:34:12 +00:00
Wolfgang
2941711a15 show free space before build 2024-07-04 22:30:25 +00:00
Wolfgang
9620ca4f8d show diskspace before and after build 2024-07-04 22:08:15 +00:00
Wolfgang
265280a452 move deb packages instead of copy to save space 2024-07-04 22:07:18 +00:00
Wolfgang
1bbb782977 update proxmox-backup-3.2.7-1 2024-07-04 20:25:46 +00:00
Wolfgang
7b1988d076 remove support for building proxmox backup on bullseye 2024-06-30 20:56:15 +00:00
Wolfgang
2d593e7d29 remove unused pbsversion option from buildtest worklfow 2024-06-30 20:51:41 +00:00
Wolfgang
7e72b143ea remove support for building proxmox backup 2.x 2024-06-30 20:44:42 +00:00
Wolfgang
e6995b619d update proxmox-backup-3.2.6-1 2024-06-17 16:46:12 +00:00
Wolfgang
17c534a8a0 update proxmox-backup-3.2.5-1 2024-06-10 22:18:50 +00:00
Wolfgang
cb2d149fdd update proxmox-backup-3.2.4-1 2024-06-05 17:28:18 +00:00
Wolfgang
8d11281433 update workflow actions 2024-05-26 21:05:32 +00:00
Wolfgang
da98dea0d2 update proxmox-backup-3.2.3-1 2024-05-26 20:22:42 +00:00
Wolfgang
5d8218b5b5 update proxmox-backup 3.2.2-1 2024-04-25 10:41:51 +00:00
Wolfgang
97f58bce2a update proxmox-backup 3.2.1-1 2024-04-25 10:39:57 +00:00
Wolfgang
23452312c4 update proxmox-backup 3.2.0-1 2024-04-24 22:09:48 +00:00
Wolfgang
a59c0477c3 Update README.md
Add info for changing swapsize with dphys-swapfile service (closes: #45)
2024-03-26 00:43:16 +01:00
Wolfgang
29f1ba5d4b Update README.md
Add info for RPi5 kernel (closes: #40)
2024-03-25 21:43:16 +01:00
Wolfgang
cf50616c33 update proxmox-backup 3.1.5-1 2024-03-25 18:05:45 +00:00
Wolfgang
d6b9a095f9 set correct file names (fixes: #44) 2024-02-10 19:24:24 +00:00
Wolfgang
67697b65a0 update proxmox-backup 3.1.4-1 2024-02-01 17:57:09 +00:00
Wolfgang
ef3da4be87 update release info 2024-02-01 17:57:02 +00:00
Wolfgang
fa37028210 update readme 2024-02-01 17:56:58 +00:00
Wolfgang
9c7af09258 update proxmox-backup 2.4.6-1 2024-02-01 17:47:42 +00:00
Wolfgang
b89812a950 update proxmox-backup 2.4.5-1 2024-01-24 18:14:05 +00:00
Wolfgang
ff08172815 update proxmox-backup 3.1.3-1 2024-01-22 19:10:05 +00:00
Wolfgang
99f7efc3f1 dashboard officially fixed in 3.1.3-1 2024-01-22 18:10:10 +00:00
Wolfgang
4c70693260 update pve-xtermjs 5.3.0-3 2023-12-11 19:28:42 +00:00
Wolfgang
3f62ca3136 fix duplicated timestamp in kernel version output on dashboard 2023-12-03 14:44:47 +00:00
Wolfgang
3e830636f1 fix dashboard endless loading with custom kernels 2023-12-03 14:21:18 +00:00
Wolfgang
fe4740df49 update proxmox-backup 3.1.2-1 2023-11-30 16:26:53 +00:00
Wolfgang
257ddc5221 update proxmox-backup 3.1.0-1 2023-11-29 17:52:26 +00:00
Wolfgang
fd65a05528 update proxmox-backup 3.0.5-1 2023-11-28 16:29:20 +00:00
Wolfgang
d33d8c992c Merge pull request #41 from wofferl/termproxy-update
Termproxy update
2023-11-28 17:25:17 +01:00
Wolfgang
f3846cd23f update proxmox-backup 2.4.4-1 2023-11-11 12:06:06 +00:00
Wolfgang
5af2971829 update pve-xtermjs to 5.3.0-2 / proxmox-termproxy to 1.0.1 2023-10-30 10:58:31 +00:00
Wolfgang
c75168cdfa update pve-xtermjs to 5.3.0-1 / proxmox-termproxy to 1.0.0 2023-10-17 21:59:36 +00:00
Wolfgang
a77f306483 fix empty basimage 2023-10-09 05:55:48 +00:00
Wolfgang
3a9bcc72ee set correct baseimage when testing packages 2023-10-08 22:32:20 +00:00
Wolfgang
01a97f82da fix RUN command 2023-10-08 22:14:52 +00:00
Wolfgang
da26ee63da pkg-config changed with bookworm 2023-10-08 21:23:07 +00:00
Wolfgang
865b0fde03 set correct dist names 2023-10-08 19:48:10 +00:00
Wolfgang
1391a970be change release workflow for 3.x to bookworm 2023-10-08 19:39:23 +00:00
Wolfgang
01dcca2028 don't change latest release flag 2023-10-03 21:49:24 +00:00
Wolfgang
d63d66bbea update proxmox-backup 3.0.4-1 2023-10-03 11:34:17 +00:00
Wolfgang
f022ddfc7d fix interactive server buildtest 2023-09-28 17:17:29 +00:00
Wolfgang
aab8e23215 update proxmox-backup 3.0.3-1 2023-09-27 22:37:54 +00:00
Wolfgang
0684ab7acb cleanup workflows 2023-09-27 22:35:16 +00:00
Wolfgang
51ef83992d add inputs to workflow_dispatch and start workflow automatically when pushing tags 2023-09-27 20:56:43 +00:00
Wolfgang
47af74ec15 use sed for another set of changes 2023-09-27 20:51:58 +00:00
Wolfgang
72b49d84c8 fix client 3.x only compilation on bullseye 2023-08-07 15:52:15 +00:00
Wolfgang
31fb94d1f3 add info for 3.x to README 2023-08-06 20:54:25 +00:00
Wolfgang
f70a8954c1 remove duplicate parameter 2023-08-06 20:50:33 +00:00
Wolfgang
392ef5cab7 update pve-xtermjs to 4.16.0-3 2023-08-06 20:48:26 +00:00
Wolfgang
687af006c9 add build support for version 3.x
- automatically build version 2.x on bullseye and 3.x on bookworm
- force build version 3.x on bullseye with pbs3 option
2023-08-06 20:46:49 +00:00
Wolfgang
170b9375c5 add possibility to download a specific release 2023-08-03 08:20:06 +00:00
Wolfgang
ac81d4c789 add version to worklow name 2023-08-03 08:20:02 +00:00
Wolfgang
aa3c54bfd0 change install folders with sed instead of using a patch 2023-08-03 08:01:17 +00:00
Wolfgang
2aab7c0eb2 create packages dir before parameter selection needed for download option 2023-07-24 14:31:56 +00:00
Wolfgang
5ba0200514 add option to download latest pre-built binaries from github 2023-07-21 19:18:31 +00:00
Wolfgang
ac3f44b525 update proxmox-backup to 2.4.3-1 2023-07-13 02:35:34 +00:00
Wolfgang
ae4b79b6d5 remove rust build dependencies with sed instead of having constantly adapt the patch 2023-07-12 21:45:03 +00:00
Wolfgang
f49755f002 set correct multi arch env 2023-06-29 18:47:02 +00:00
Wolfgang
79314720e5 add new release workflow for cross compiling proxmox backup using qemu/buildx actions (build time now ~40 min instead of > 5 hours). Install test moved from normal Dockerfile to github Dockerfile. 2023-06-29 15:54:10 +00:00
Wolfgang
30142f3fca add release workflow for cross-building on debian bullseye 2023-06-29 07:17:58 +00:00
Wolfgang
23ab98e988 enable cross compiling on unprivileged systems like lxc or docker container without binfmt_misc 2023-06-28 22:08:14 +00:00
Wolfgang
630ce02d4c fix cross compiling on ubuntu 2023-06-28 22:02:02 +00:00
Wolfgang
fa4bcac6ce add info for cross compiling 2023-06-28 09:03:00 +02:00
Wolfgang
b972a9dee2 add support for cross compiling 2023-06-27 22:22:54 +00:00
Wolfgang
9a97e5d3ac prepare dependencies for cross compiling 2023-06-27 17:17:23 +00:00
Wolfgang
58c1d68c90 update proxmox-backup to 2.4.2-2 2023-06-27 16:32:24 +00:00
Wolfgang
41e0d953ca set draft flag in release workflow 2023-06-01 20:23:28 +00:00
Wolfgang
de9e6431c4 install test must be done in container 2023-06-01 20:10:13 +00:00
Wolfgang
876d3e2fdc fix base image 2023-06-01 10:45:59 +00:00
Wolfgang
d9d851d854 add release workflow for debian/bullseye/arm64 2023-06-01 09:01:50 +00:00
Wolfgang
a8f4127b36 set additional package info about the origin of the build binaries 2023-06-01 09:01:06 +00:00
Wolfgang
bbd5d4fbe1 add install tests to buildtest workflows 2023-06-01 07:23:49 +00:00
Wolfgang
e9f3a872de change worklow names 2023-05-30 18:07:53 +00:00
Wolfgang
3693f68d8c add workflows for arm64 build tests on debian/bullseye 2023-05-30 18:07:20 +00:00
Wolfgang
6c535fc16a add build args for docker build 2023-05-30 18:05:53 +00:00
Wolfgang
ef45df26e6 Delete test.yml 2023-05-30 00:00:03 +02:00
Wolfgang
1da424c3ae use wildcard for file extension when copying files, dbgsym files on ubuntu uses .debb 2023-05-29 21:58:15 +00:00
Wolfgang
d844d35fd8 Update server-ubuntu.yml 2023-05-29 22:36:58 +02:00
Wolfgang
47d12191c2 Update server-ubuntu.yml
add workaround for eslint "Cannot find module 'colors'" error.
2023-05-29 22:31:35 +02:00
Wolfgang
3a2f335ac0 Update test.yml 2023-05-29 22:23:52 +02:00
Wolfgang
caabe50fe5 Update test.yml 2023-05-29 21:52:37 +02:00
Wolfgang
0c42bfa351 Update test.yml 2023-05-29 21:51:04 +02:00
Wolfgang
a0efb35d1f Update test.yml 2023-05-29 21:44:34 +02:00
Wolfgang
83736f0ec4 Update test.yml 2023-05-29 21:04:43 +02:00
Wolfgang
27e2fcf6fd Update test.yml 2023-05-29 20:38:40 +02:00
Wolfgang
46a37bd206 Update test.yml 2023-05-29 20:37:01 +02:00
Wolfgang
beed92f894 Update test.yml 2023-05-29 19:45:53 +02:00
Wolfgang
f5b49ef152 Update server-ubuntu.yml
remove accidentally added client option
2023-05-29 13:31:33 +02:00
Wolfgang
d42895c968 Update client-ubuntu.yml
When enabling debug mode, start build.sh with debug also
2023-05-29 13:30:55 +02:00
Wolfgang
b37912b4b4 Update server-ubuntu.yml
When enabling debug mode, start build.sh with debug also
2023-05-29 12:52:34 +02:00
Wolfgang
059983ed54 Update test.yml 2023-05-29 12:48:56 +02:00
Wolfgang
1ece2e1901 Create test.yml 2023-05-29 12:44:19 +02:00
Wolfgang
48b6195538 Create server-ubuntu.yml
Add workflow for server build test on ubuntu 22.04
2023-05-29 11:23:46 +02:00
Wolfgang
0c19e596f5 Create client-ubuntu.yml
Add workflow for client build test on ubuntu 22.04
2023-05-29 11:13:22 +02:00
Wolfgang
369ff8cbf2 fix installing dependencies in docker on ubuntu that want user input 2023-05-28 23:05:22 +00:00
Wolfgang
4d3d7d3e7f fix checking wrong dependencies 2023-05-28 22:47:54 +00:00
Wolfgang
02000f1c42 enable bash xtrace and add some additional info in debug mode 2023-05-28 17:14:30 +00:00
Wolfgang
8b31eee927 select only packages whose dependencies are fulfilled (fixes #33) 2023-05-28 16:54:01 +00:00
Wolfgang
9e00eb1023 fix client only build on ubuntu (env variables doesn't seem to apply here) #33 2023-05-28 16:09:47 +00:00
Wolfgang
e320f6276a fix dependeny problem when building client only, sphinx-build is needed for generating man pages (fixes: #32) 2023-05-28 09:00:01 +00:00
Wolfgang
7945d1f590 if only the client is built download and install just the packages needed 2023-05-24 14:34:48 +00:00
Wolfgang
0f7896a71b add debug option to output the complete build process also to a file (build.log) 2023-05-24 08:36:49 +00:00
Wolfgang
9cb8b7fa76 update promox-mini-journalreader to 1.4.0 2023-05-18 19:54:39 +00:00
Wolfgang
4748b26174 update proxmox-backup to 2.4.2-1 2023-05-18 19:45:40 +00:00
Wolfgang
4dd0c5f764 fix formatting 2023-04-07 21:33:10 +00:00
Wolfgang
75b9fddaf2 add command line option for client only compilation (fixes #30) 2023-04-07 21:29:17 +00:00
Wolfgang
56aa265033 add option to disable tests during compilation (helpful to save time when testing build script) 2023-04-07 19:58:41 +00:00
Wolfgang
77b39b6acb Split patch in build and arch dependency. Make build script independet of the architecture (support both amd64 and arm64) 2023-04-07 12:09:14 +00:00
Wolfgang
47ccf75633 make sure fakeroot is installed 2023-04-07 12:00:25 +00:00
Wolfgang
9be53cbd96 add workaround for memory bug (https://github.com/rust-lang/cargo/issues/10583) 2023-03-31 07:15:05 +00:00
Wolfgang
a7ef29bd5b Merge pull request #29 from simoncaron/feature/build-using-docker
[Feature] Add Dockerfile to build arm64 packages using docker buildx
2023-03-31 09:11:02 +02:00
Simon Caron
f154c2937a Merge branch 'main' into feature/build-using-docker 2023-03-30 14:02:13 -04:00
Simon Caron
cbefbad736 Fix Output command 2023-03-30 14:01:23 -04:00
Wolfgang
cf6bc24994 Make sure not to get outdated data from a proxy cache 2023-03-30 12:24:23 +02:00
Wolfgang
630fe3c4e2 Show some info in the preparation phase 2023-03-30 12:24:16 +02:00
Simon Caron
1a5b5c5c16 Fix doc 2023-03-30 00:50:57 -04:00
Simon Caron
ecfa6723be Build using docker 2023-03-30 00:47:12 -04:00
Wolfgang
0abc0227d7 update proxmox-backup to 2.4.1-1 2023-03-29 14:12:33 +02:00
Wolfgang
a609f11ca2 Merge branch 'MAFLO321-update' 2023-03-29 14:10:30 +02:00
Matthias Freund
4f5b8d58df update proxmox-backup to 2.4.0-2
- drop no-ksm patch
2023-03-28 08:16:43 +00:00
Wolfgang
77174fd2ba fix web ui console (Fixes #27) 2023-03-14 22:26:18 +01:00
22 changed files with 1415 additions and 512 deletions

27
.github/Dockerfile.crosscompile-arm64 vendored Normal file
View File

@@ -0,0 +1,27 @@
ARG baseimage=debian:bullseye-slim
FROM ${baseimage} as builder-stage
ARG buildoptions
# workaround for memory bug https://github.com/rust-lang/cargo/issues/10583
ENV CARGO_NET_GIT_FETCH_WITH_CLI=true
ENV DEBIAN_FRONTEND=noninteractive
SHELL ["/bin/bash", "-c"]
RUN dpkg --add-architecture arm64
RUN apt update && apt-get install -y --no-install-recommends \
build-essential crossbuild-essential-arm64 curl ca-certificates sudo git lintian \
pkg-config libudev-dev:arm64 libssl-dev:arm64 libapt-pkg-dev:arm64 apt:amd64 \
libclang-dev libpam0g-dev:arm64 pkgconf:arm64 zlib1g-dev:arm64 \
qemu-user-binfmt
RUN grep -qi bookworm /etc/os-release && apt-get install -y pkg-config:arm64 || true
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -sSf | sh -s -- -y
RUN source ~/.cargo/env && rustup target add aarch64-unknown-linux-gnu
COPY . /build/
WORKDIR /build
RUN df -h
RUN source ~/.cargo/env && ./build.sh ${buildoptions}
FROM scratch
COPY --from=builder-stage /build/*.log /build/packages/* /

9
.github/Dockerfile.installtest vendored Normal file
View File

@@ -0,0 +1,9 @@
ARG baseimage=debian:bullseye-slim
FROM ${baseimage} as builder-stage
ENV DEBIAN_FRONTEND=noninteractive
COPY . /build/
WORKDIR /build/packages
RUN ls -l
RUN apt update && apt-get -y install $(find /build/packages/ -name '*.deb' ! -name '*static*.deb')

7
.github/PREBUILD.md vendored Normal file
View File

@@ -0,0 +1,7 @@
_These are unofficial binary packages of Proxmox Backup Server 4.x for debian/trixie._
The proxmox-backup*,promox-mini-journalreader and pve-xtermjs packages are build using the source from https://git.proxmox.com/ with the build.sh script and the github action docker buildx workflow. The other arch independent packages were downloaded from http://download.proxmox.com/debian/pbs/dists/trixie/pbs-no-subscription/binary-amd64/.
Use at your own risk.
**Official Changelog**

15
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,15 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
version: 2
updates:
# Maintain dependencies for GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
labels:
- "actions update"

136
.github/workflows/buildtest.yml vendored Normal file
View File

@@ -0,0 +1,136 @@
name: Buildtest
run-name: Buildtest ${{ github.event.inputs.package }} ${{ github.event.inputs.version }} ${{ github.event.inputs.baseimage }} (${{ github.event.inputs.arch }})
on:
workflow_dispatch:
inputs:
package:
type: choice
description: Package
options:
- server
- client
version:
type: choice
description: Version
options:
- 4.x
arch:
type: choice
description: Target Arch
options:
- arm64-native
- arm64-cross
- amd64
- all
baseimage:
type: choice
description: Base Image
options:
- debian:trixie-slim
- debian:bookworm-slim
- ubuntu:noble
- ubuntu:jammy
jobs:
build-arm64-native:
if: ${{ github.event.inputs.arch == 'arm64-native' || github.event.inputs.arch == 'all' }}
runs-on: ubuntu-24.04-arm
steps:
- name: Free up disk space
run: |
sudo rm -rf /usr/local/.ghcup
sudo rm -rf /usr/local/lib/android
sudo rm -rf /usr/local/lib/node_modules
sudo rm -rf /usr/share/dotnet
sudo rm -rf /usr/share/swift
- name: Checkout
uses: actions/checkout@v5
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build packages
run: |
options=""
[ "${{ github.event.inputs.package }}" = "client" ] && options="client"
[ "${RUNNER_DEBUG}" = "1" ] && options=$options" debug"
docker buildx build -o packages --build-arg buildoptions="github ${options}" --build-arg baseimage=${{ github.event.inputs.baseimage }} --platform linux/arm64 .
echo "DEB_VERSION=$(dpkg --info packages/proxmox-backup-server_*.deb | sed -n '/Version/ s/[^:]\+: //p')" >> $GITHUB_ENV
echo "DEB_VERSION_UPSTREAM=$(dpkg --info packages/proxmox-backup-server_*.deb | sed -n '/Version/ s/[^:]\+: \([0-9.]\+\)-[0-9]/\1/p')" >> $GITHUB_ENV
- name: Test packages
run: |
docker buildx build --build-arg baseimage=${{ github.event.inputs.baseimage }} --platform linux/arm64 -f .github/Dockerfile.installtest .
build-arm64-cross:
if: ${{ github.event.inputs.arch == 'arm64-cross' || github.event.inputs.arch == 'all' }}
runs-on: ubuntu-24.04
steps:
- name: Free up disk space
run: |
sudo rm -rf /usr/local/.ghcup
sudo rm -rf /usr/local/lib/android
sudo rm -rf /usr/local/lib/node_modules
sudo rm -rf /usr/share/dotnet
sudo rm -rf /usr/share/swift
- name: Checkout
uses: actions/checkout@v5
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build packages
run: |
options=""
[ "${{ github.event.inputs.package }}" = "client" ] && options="client"
[ "${RUNNER_DEBUG}" = "1" ] && options=$options" debug"
docker buildx build -o packages --build-arg buildoptions="cross github ${options}" --build-arg baseimage=${{ github.event.inputs.baseimage }} --platform linux/amd64 -f .github/Dockerfile.crosscompile-arm64 .
echo "DEB_VERSION=$(dpkg --info packages/proxmox-backup-server_*.deb | sed -n '/Version/ s/[^:]\+: //p')" >> $GITHUB_ENV
echo "DEB_VERSION_UPSTREAM=$(dpkg --info packages/proxmox-backup-server_*.deb | sed -n '/Version/ s/[^:]\+: \([0-9.]\+\)-[0-9]/\1/p')" >> $GITHUB_ENV
- name: Test packages
run: |
docker buildx build --build-arg baseimage=${{ github.event.inputs.baseimage }} --platform linux/arm64 -f .github/Dockerfile.installtest .
build-amd64:
if: ${{ github.event.inputs.arch == 'amd64' || github.event.inputs.arch == 'all' }}
runs-on: ubuntu-24.04
steps:
- name: Free up disk space
run: |
sudo rm -rf /usr/local/.ghcup
sudo rm -rf /usr/local/lib/android
sudo rm -rf /usr/local/lib/node_modules
sudo rm -rf /usr/share/dotnet
sudo rm -rf /usr/share/swift
- name: Checkout
uses: actions/checkout@v5
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build packages
run: |
options=""
[ "${{ github.event.inputs.package }}" = "client" ] && options="client"
[ "${RUNNER_DEBUG}" = "1" ] && options=$options" debug"
docker buildx build -o packages --build-arg buildoptions="github ${options}" --build-arg baseimage=${{ github.event.inputs.baseimage }} --platform linux/amd64 .
echo "DEB_VERSION=$(dpkg --info packages/proxmox-backup-server_*.deb | sed -n '/Version/ s/[^:]\+: //p')" >> $GITHUB_ENV
echo "DEB_VERSION_UPSTREAM=$(dpkg --info packages/proxmox-backup-server_*.deb | sed -n '/Version/ s/[^:]\+: \([0-9.]\+\)-[0-9]/\1/p')" >> $GITHUB_ENV
- name: Test packages
run: |
docker buildx build --build-arg baseimage=${{ github.event.inputs.baseimage }} --platform linux/amd64 -f .github/Dockerfile.installtest .

66
.github/workflows/release.yml vendored Normal file
View File

@@ -0,0 +1,66 @@
name: Release
run-name: Release ${{ github.ref_name }} ${{ github.event.inputs.version }} Debian/Trixie (arm64)
on:
workflow_dispatch:
inputs:
version:
type: choice
description: Version
options:
- 4.x
push:
tags:
- 4.**
jobs:
build:
permissions:
contents: write
runs-on: ubuntu-24.04-arm
steps:
- name: Free up disk space
run: |
sudo rm -rf /usr/local/.ghcup
sudo rm -rf /usr/local/lib/android
sudo rm -rf /usr/local/lib/node_modules
sudo rm -rf /usr/share/dotnet
sudo rm -rf /usr/share/swift
df -h
- name: Checkout
uses: actions/checkout@v5
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build packages
run: |
baseimage="debian:trixie-slim"
echo "DEB_DIST=Debian/Trixie" >> $GITHUB_ENV
if [ "${RUNNER_DEBUG}" = "1" ]; then
docker buildx build -o packages --build-arg buildoptions="github debug" --build-arg baseimage=${baseimage} --platform linux/arm64 -f Dockerfile .
else
docker buildx build -o packages --build-arg buildoptions="github" --build-arg baseimage=${baseimage} --platform linux/arm64 -f Dockerfile .
fi
sudo apt -y install apt-listchanges
apt-listchanges --latest=1 -f text packages/proxmox-backup-server_*.deb | sed -e '/^\(apt-listchanges.*\|[-]\+\)$/d' >> .github/PREBUILD.md
echo "DEB_VERSION=$(dpkg --info packages/proxmox-backup-server_*.deb | sed -n '/Version/ s/[^:]\+: //p')" >> $GITHUB_ENV
echo "DEB_VERSION_UPSTREAM=$(dpkg --info packages/proxmox-backup-server_*.deb | sed -n '/Version/ s/[^:]\+: \([0-9.]\+\)-[0-9]/\1/p')" >> $GITHUB_ENV
- name: Test packages
run: |
df -h
baseimage="debian:trixie-slim"
docker buildx build --build-arg baseimage=${baseimage} --platform linux/arm64 -f .github/Dockerfile.installtest .
- name: Release packages
uses: ncipollo/release-action@v1
with:
artifacts: "packages/*.deb"
bodyFile: ".github/PREBUILD.md"
tag: ${{ env.DEB_VERSION }}
name: Version ${{ env.DEB_VERSION }} (${{ env.DEB_DIST }})
draft: true
makeLatest: false

1
.gitignore vendored
View File

@@ -1,3 +1,4 @@
/packages
/packages_build
/sources
rust-toolchain.toml

22
Dockerfile Normal file
View File

@@ -0,0 +1,22 @@
ARG baseimage=debian:bookworm-slim
FROM ${baseimage} as builder-stage
ARG buildoptions
# workaround for memory bug https://github.com/rust-lang/cargo/issues/10583
ENV CARGO_NET_GIT_FETCH_WITH_CLI=true
ENV DEBIAN_FRONTEND=noninteractive
RUN apt update && apt-get install -y --no-install-recommends \
build-essential curl ca-certificates sudo git lintian \
pkg-config libudev-dev libssl-dev libapt-pkg-dev libclang-dev \
libpam0g-dev zlib1g-dev
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -sSf | sh -s -- -y
COPY . /build/
WORKDIR /build
SHELL ["/bin/bash", "-c"]
RUN source ~/.cargo/env && ./build.sh ${buildoptions}
FROM scratch
COPY --from=builder-stage /build/*.log /build/packages/* /

120
README.md
View File

@@ -1,28 +1,91 @@
# proxmox-backup-arm64
Script for building Proxmox Backup Server 2.x for Armbian64 based on Bullseye<br />
Script for building Proxmox Backup Server **4.x** for **Debian/Trixie**<br />
To build Proxmox Backup Server **3.x** for **Debian/Bookworm** use the stable-3 branch.
At least 4 GB are required for compiling. On devices with low memory, SWAP must be used (see help section).
## Install build essentials and dependencies
## Download pre-built packages
You can find unoffical debian packages for **Bookworm** or **Trixie** that are created with the build.sh script and github actions at https://github.com/wofferl/proxmox-backup-arm64/releases.
With the script you can also download all files of the latest **Debian/Trixie** release at once
**Download and install**
```./build.sh install``` or a specific version ```./build.sh install=4.0.20-1```
**Download only**
```./build.sh download``` or a specific verision ```./build.sh download=4.0.20-1```
## Build manually
### Install build essentials and dependencies
```
apt-get install -y --no-install-recommends \
build-essential curl ca-certificates sudo git lintian \
build-essential curl ca-certificates sudo git lintian fakeroot \
pkg-config libudev-dev libssl-dev libapt-pkg-dev libclang-dev \
libpam0g-dev
libpam0g-dev zlib1g-dev
```
## Install ``rustup``
### Install ``rustup``
```
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -sSf | sh -s
source ~/.cargo/env
```
## Start build script
### Start build script
```
./build.sh
./build.sh
```
or
```
./build.sh client (build only proxmox-backup-client package)
```
The compilation can take several hours.<br />
After that you can find the finished packages in the folder packages/
## Build using docker
You can build arm64 .deb packages using the provided Dockerfile and docker buildx:
```
docker buildx build -o packages --platform linux/arm64 .
```
You can also set build arguments for base image and build.sh options:
```
docker buildx build -o packages --build-arg buildoptions="client debug" --build-arg baseimage=ubuntu:jammy --platform linux/arm64 .
```
Once the docker build is completed, packages will be copied from the docker build image to a folder named `packages` in the root folder.
## Build using cross compiler
### Enable multi arch and install build essentials and dependencies
For cross compiling you need to enable multiarch and install the needed build dependencies for the target architecture. For the tests to work qemu-user-binfmt is needed.
```
dpkg --add-architecture arm64
```
```
apt update && apt-get install -y --no-install-recommends \
build-essential crossbuild-essential-arm64 curl ca-certificates sudo git lintian \
pkg-config libudev-dev:arm64 libssl-dev:arm64 libapt-pkg-dev:arm64 apt:amd64 \
libclang-dev libpam0g-dev:arm64 pkgconf:arm64 zlib1g-dev:arm64 \
qemu-user-binfmt
```
(apt:amd64 is necessary because libapt-pkg-dev:arm64 would break the dependencies without it)
### Install ``rustup`` and add target arch
```
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -sSf | sh -s
source ~/.cargo/env
rustup target add aarch64-unknown-linux-gnu
```
### Start build script
```
./build.sh cross
```
## Install all needed packages
### Server
```
@@ -35,7 +98,8 @@ sudo apt install \
./proxmox-backup-server_*_arm64.deb \
./proxmox-mini-journalreader_*_arm64.deb \
./proxmox-widget-toolkit_*_all.deb \
./pve-xtermjs_*_arm64.deb
./proxmox-termproxy_*_arm64.deb \
./pve-xtermjs_*_all.deb
```
### Client
@@ -46,6 +110,12 @@ sudo apt install \
```
## Help section
### Debugging
you can add the debug option to redirect the complete build process output also to a file (build.log)
```
./build.sh debug
```
### Console commands
to see PBS users:
@@ -71,10 +141,42 @@ Check swap memory:
swapon --show or free -h
```
Create and enable 4G swap file:
Change swapsize on systems with fstab enabled swap:
```
sudo swapoff /var/swap
sudo fallocate -l 4G /var/swap
sudo mkswap /var/swap
sudo swapon /var/swap
```
Change swapsize on systems with dphys-swapfile service:
```
sudo sed -i "s#.*CONF_\(SWAPSIZE\|MAXSWAP\)=.*#CONF_\1=4096#" /etc/dphys-swapfile
sudo service dphys-swapfile restart
```
### 400 Bad Request on Raspberry Pi 5 (https://github.com/wofferl/proxmox-backup-arm64/issues/40)
The Raspberry Pi 5 uses a kernel with 16k page-size, which is incompatible with Proxmox Backup Server (jemalloc/Rust).
So you need to a 4k kernel on the RPi5 for Proxmox Backup Server to work.
### Raspberry Pi OS `apt update && apt upgrade` failing (https://github.com/wofferl/proxmox-backup-arm64/issues/60)
As Proxmox source repository does not work for ARM architecture anyway in order to keep underlying Raspberry Pi OS
up to date by running `apt update && apt upgrade` it is required to comment it out from apt sources.
```
sudo sed -i 's#^Enabled:.*#Enabled: false#g' /etc/apt/sources.list.d/pbs-enterprise.sources
```
/etc/apt/sources.list.d/pbs-enterprise.sources
```
Types: deb
URIs: https://enterprise.proxmox.com/debian/pbs
Suites: trixie
Components: pbs-enterprise
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
Enabled: false
```

370
build.sh
View File

@@ -19,7 +19,7 @@ function download_package() {
url=$(select_package "${repo}" "${package}" "${version_test[@]}")
if [ -z "${url}" ]; then
echo "Error package ${package} in version " "${version_test[@]}" " not found"
echo "Error package ${package} in version " "${version_test[@]}" " not found" >&2
return 1
fi
@@ -30,15 +30,15 @@ function download_package() {
return 0
fi
echo "${package} downloading..." >&2
echo "${package} downloading...${url}" >&2
curl -sSfL "${url}" -o "${file}"
echo "${file}"
}
function git_clone_or_fetch() {
url=${1} # url/name.git
name_git=${url##*/} # name.git
name=${name_git%.git} # name
url=${1} # url/name.git
name_git=${url##*/} # name.git
name=${name_git%.git} # name
if [ ! -d "${name}" ]; then
git clone "${url}"
@@ -50,9 +50,9 @@ function git_clone_or_fetch() {
function git_clean_and_checkout() {
commit_id=${1}
path=${2}
path_args=( )
path_args=()
if [[ "${path}" != "" ]]; then
path_args=( "-C" "${path}" )
path_args=("-C" "${path}")
fi
git "${path_args[@]}" clean -ffdx
@@ -62,9 +62,26 @@ function git_clean_and_checkout() {
function load_packages() {
url=${1}
curl -sSf "${url}" \
| gzip -d - \
| sed '/./{H;$!d} ; x ; s/^.*Package: \([^\n]*\).*Version: \([^\n]*\).*Filename: \([^\n]*\).*$/\1 \2 \3/p'
curl -sSf -H 'Cache-Control: no-cache' "${url}" |
gzip -d - |
awk -F": " '/^(Package|Version|Depends|Filename)/ {
if($1 == "Package") {
version="";
depends="";
filename="";
package=$2;
}
else if($1 == "Version") {
version=$2;
}
else if($1 == "Depends") {
depends=$2;
}
else if($1 == "Filename") {
filename=$2;
print package";"version";"filename";"depends;
}
}'
}
function select_package() {
@@ -85,24 +102,65 @@ function select_package() {
file_target=
while IFS= read -r line; do
name=${line%% *}
name=${line%%;*}
line=${line##*${name};}
if [[ "${name}" == "${package_name}" ]]; then
version=${line#* }
version=${version% *}
file=${line##* }
if dpkg --compare-versions "${version}" "${version_test[@]}" \
&& dpkg --compare-versions "${version}" '>>' "${version_target}"; then
version=${line%%;*}
line=${line##*${version};}
file=${line%%;*}
line=${line##*${file};}
depends=${line}
if dpkg --compare-versions "${version}" "${version_test[@]}" &&
dpkg --compare-versions "${version}" '>>' "${version_target}"; then
if [ -n "$depends" ]; then
sudo apt satisfy -s "${depends}" >/dev/null 2>&1 || continue
fi
version_target=${version}
file_target=${file}
fi
fi
done <<<"${packages_target}"
if [ -z "${file_target}" ]; then
return 1
if [ -n "${file_target}" ]; then
url=${url_base}/${file_target}
echo "${url}"
fi
}
function set_package_info() {
if [ "$GITHUB_ACTION" ]; then
sed -i "s#^Maintainer:.*#Maintainer: Github Action <github@linux-dude.de>#" debian/control
sed -i "s#^Homepage:.*#Homepage: https://github.com/wofferl/proxmox-backup-arm64#" debian/control
else
sed -i "s#^\(Maintainer.*\)\$#\1\nOrigin: https://github.com/wofferl/proxmox-backup-arm64#" debian/control
fi
}
file_list=()
function download_release() {
version=${1:-latest}
release_url="https://api.github.com/repos/wofferl/proxmox-backup-arm64/releases/${version}"
echo "Downloading ${version} released files to "${PACKAGES}
for download_url in $(curl -sSf ${release_url} | sed -n '/browser_download_url/ {/static\|dbgsym/!s/.*\(https[^"]*\)"/\1/p}'); do
file=$(basename ${download_url})
if [ -e ${PACKAGES}/${file} ]; then
echo "${file} already exist"
else
echo "Downloading ${file}"
curl -sSfLO ${download_url} --output-dir ${PACKAGES}
fi
file_list+=("${PACKAGES}/${file}")
done
}
function install_server() {
if [ "${#file_list[@]}" -gt 0 ]; then
sudo apt-get install -y \
"${file_list[@]}"
else
echo "No files found!"
fi
url=${url_base}/${file_target}
echo "${url}"
}
SUDO="${SUDO:-sudo -E}"
@@ -113,112 +171,262 @@ PACKAGES="${BASE}/packages"
PACKAGES_BUILD="${BASE}/packages_build"
PATCHES="${BASE}/patches"
SOURCES="${BASE}/sources"
LOGFILE="build.log"
PACKAGE_ARCH=$(dpkg-architecture -q DEB_BUILD_ARCH)
HOST_ARCH=$(dpkg-architecture -q DEB_HOST_ARCH)
HOST_CPU=$(dpkg-architecture -q DEB_HOST_GNU_CPU)
HOST_SYSTEM=$(dpkg-architecture -q DEB_HOST_GNU_SYSTEM)
BUILD_PACKAGE="server"
BUILD_PROFILES=""
GITHUB_ACTION=""
export DEB_HOST_RUST_TYPE=${HOST_CPU}-unknown-${HOST_SYSTEM}
. /etc/os-release
[ ! -d "${PACKAGES}" ] && mkdir -p "${PACKAGES}"
while [ "$#" -ge 1 ]; do
case "$1" in
client)
BUILD_PACKAGE="client"
BUILD_PROFILES=${BUILD_PROFILES}",nodoc"
[[ ${BUILD_PROFILES} =~ nocheck ]] || BUILD_PROFILES=${BUILD_PROFILES}",nocheck"
export DEB_BUILD_OPTIONS="nocheck"
;;
cross)
PACKAGE_ARCH=arm64
BUILD_PROFILES=${BUILD_PROFILES}",cross"
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=/usr/bin/aarch64-linux-gnu-gcc
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUNNER=qemu-aarch64
export CARGO_BUILD_TARGET=aarch64-unknown-linux-gnu
export TARGET=aarch64-unknown-linux-gnu
export PKG_CONFIG=/usr/bin/aarch64-linux-gnu-pkg-config
export PKG_CONFIG_LIBDIR=/usr/lib/aarch64-linux-gnu/pkgconfig/
export CC=/usr/bin/aarch64-linux-gnu-gcc
export DEB_HOST_MULTIARCH=aarch64-linux-gnu
export DEB_HOST_RUST_TYPE=aarch64-unknown-linux-gnu
;;
install*)
if [[ "$1" =~ install=[0-9.-]+ ]]; then
download_release tags/${1/*=/}
else
download_release
fi
install_server
exit 0
;;
download*)
if [[ "$1" =~ download=[0-9.-]+ ]]; then
download_release tags/${1/*=/}
else
download_release
fi
exit 0
;;
github)
GITHUB_ACTION="true"
;;
nocheck)
[[ ${BUILD_PROFILES} =~ nocheck ]] || BUILD_PROFILES=${BUILD_PROFILES}",nocheck"
export DEB_BUILD_OPTIONS="nocheck"
;;
debug)
exec &> >(tee "${LOGFILE}")
echo "$@"
cat /etc/os-release
rustc -V
cargo -V
set -x
;;
*)
echo "usage $0 [client] [nocheck] [debug] [download]"
exit 1
;;
esac
shift
done
[ -n "${BUILD_PROFILES}" ] && BUILD_PROFILES="--build-profiles=${BUILD_PROFILES#,}"
if [ ! -d "${PATCHES}" ]; then
echo "Directory ${PATCHES} is missing! Have you cloned the repository?"
exit 1
fi
[ ! -d "${PACKAGES}" ] && mkdir -p "${PACKAGES}"
[ ! -d "${PACKAGES_BUILD}" ] && mkdir -p "${PACKAGES_BUILD}"
[ ! -d "${SOURCES}" ] && mkdir -p "${SOURCES}"
echo "Download packages list from proxmox devel repository"
PACKAGES_DEVEL=$(load_packages http://download.proxmox.com/debian/devel/dists/trixie/main/binary-amd64/Packages.gz)
echo "Download packages list from pbs-test repository"
PACKAGES_PBS=$(load_packages http://download.proxmox.com/debian/pbs/dists/trixie/pbs-test/binary-amd64/Packages.gz)
PACKAGES_DEVEL=$(load_packages http://download.proxmox.com/debian/devel/dists/bullseye/main/binary-amd64/Packages.gz)
PACKAGES_PBS=$(load_packages http://download.proxmox.com/debian/pbs/dists/bullseye/pbs-no-subscription/binary-amd64/Packages.gz)
echo "Download dependencies"
EXTJS_VER=(">=" "7~")
PBS_I18N_VER=(">=" "0")
PROXMOX_ACME_VER=(">=" "0")
PROXMOX_WIDGETTOOLKIT_VER=(">=" "3.5.2")
PVE_ESLINT_VER=(">=" "7.18.0-1")
QRCODEJS_VER=(">=" "1.20201119")
download_package pbs pbs-i18n "${PBS_I18N_VER[@]}" "${PACKAGES}" >/dev/null
download_package pbs libjs-extjs "${EXTJS_VER[@]}" "${PACKAGES}" >/dev/null
download_package pbs libjs-qrcodejs "${QRCODEJS_VER[@]}" "${PACKAGES}" >/dev/null
download_package pbs libproxmox-acme-plugins "${PROXMOX_ACME_VER[@]}" "${PACKAGES}" >/dev/null
download_package pbs proxmox-widget-toolkit "${PROXMOX_WIDGETTOOLKIT_VER[@]}" "${PACKAGES}" >/dev/null
packages_install=(
"$(download_package devel proxmox-widget-toolkit-dev "${PROXMOX_WIDGETTOOLKIT_VER[@]}" "${PACKAGES_BUILD}")"
"$(download_package devel pve-eslint "${PVE_ESLINT_VER[@]}" "${PACKAGES_BUILD}")"
)
PBS_I18N_VER=(">=" "3.5.0")
PROXMOX_ACME_VER=(">=" "1.7.0")
PROXMOX_WIDGETTOOLKIT_VER=(">=" "5.0.2")
QRCODEJS_VER=(">=" "1.20230525")
if [ "${BUILD_PACKAGE}" = "server" ]; then
download_package pbs pbs-i18n "${PBS_I18N_VER[@]}" "${PACKAGES}" >/dev/null
download_package pbs libjs-extjs "${EXTJS_VER[@]}" "${PACKAGES}" >/dev/null
download_package pbs libjs-qrcodejs "${QRCODEJS_VER[@]}" "${PACKAGES}" >/dev/null
download_package pbs libproxmox-acme-plugins "${PROXMOX_ACME_VER[@]}" "${PACKAGES}" >/dev/null
download_package pbs proxmox-widget-toolkit "${PROXMOX_WIDGETTOOLKIT_VER[@]}" "${PACKAGES}" >/dev/null
fi
if [ "${BUILD_PACKAGE}" = "server" ]; then
packages_install=(
"$(download_package devel proxmox-widget-toolkit-dev "${PROXMOX_WIDGETTOOLKIT_VER[@]}" "${PACKAGES_BUILD}")"
)
fi
echo "Install build dependencies"
${SUDO} apt install -y "${packages_install[@]}"
cat <<EOF >rust-toolchain.toml
[toolchain]
channel="1.88.0"
targets = [ "${CARGO_BUILD_TARGET:-$(rustc -vV 2>/dev/null | awk '/^host/ { print $2 }')}" ]
EOF
cd "${SOURCES}"
if [ "${BUILD_PACKAGE}" != "client" ]; then
PROXMOX_BIOME_VER="2.0.6-2"
PROXMOX_BIOME_GIT="3c6f4292f32800a1e5d73d8940e5ae6f36af0c40" # 2.0.6-2
PROXMOX_BIOME_DOWNLOAD_VER=("=" "$PROXMOX_BIOME_VER")
if [ "${HOST_ARCH}" = "amd64" ]; then
set +e
download_package devel proxmox-biome "${PROXMOX_BIOME_DOWNLOAD_VER[@]}" "${PACKAGES_BUILD}"
set -e
fi
if [ ! -e "${PACKAGES_BUILD}/proxmox-biome_${PROXMOX_BIOME_VER}_${HOST_ARCH}.deb" ]; then
git_clone_or_fetch https://git.proxmox.com/git/proxmox-biome.git
git_clean_and_checkout ${PROXMOX_BIOME_GIT} proxmox-biome
patch -p1 -d proxmox-biome/ <"${PATCHES}/proxmox-biome-build.patch"
if [ "${HOST_ARCH}" = "arm64" ]; then
patch -p1 -d proxmox-biome/ <"${PATCHES}/proxmox-biome-arm.patch"
fi
cd proxmox-biome
set_package_info
${SUDO} apt -y build-dep .
env -i HOME=${HOME} TERM=${TERM} bash -c 'source /etc/profile; source ~/.cargo/env; env; make deb'
mv -f proxmox-biome_${PROXMOX_BIOME_VER}_${HOST_ARCH}.deb "${PACKAGES_BUILD}"
cd ..
else
echo "proxmox-biome up-to-date"
fi
if [ -e "${PACKAGES_BUILD}/proxmox-biome_${PROXMOX_BIOME_VER}_${HOST_ARCH}.deb" ]; then
${SUDO} apt install -y "${PACKAGES_BUILD}/proxmox-biome_${PROXMOX_BIOME_VER}_${HOST_ARCH}.deb"
else
echo "proxmox-biome dependency missing"
exit 1
fi
fi
PROXMOX_BACKUP_VER="2.3.3-1"
PROXMOX_BACKUP_GIT="bde9e3d74c86d1600409f81e2a72de91e717cd62"
PATHPATTERNS_GIT="916e41c50e75a718ab7b1b95dc770eed9cd7a403" # 0.1.2-1
PROXMOX_ACME_RS_GIT="abc0bdd09d5c3501534510d49da0ae8fa5c05c05" # 0.4.0
PROXMOX_APT_GIT="8a7a719aec23ad98a00bb452f0ced4cbf88ba591" # 0.9.3-1
PROMXOX_FUSE_GIT="8d57fb64f044ea3dcfdef77ed5f1888efdab0708" # 0.1.4
PROXMOX_GIT="9c44e9b410a7eab21160d9588dcb8f5d88f1f979"
PROXMOX_OPENID_GIT="ecf59cbb74278ea0e9710466508158ed6a6828c4" # 0.9.9-1
PXAR_GIT="29cbeed3e1b52f5eef455cdfa8b5e93f4e3e88f5" # 0.10.2-1
if [ ! -e "${PACKAGES}/proxmox-backup-server_${PROXMOX_BACKUP_VER}_arm64.deb" ]; then
PROXMOX_BACKUP_VER="4.0.20-1"
PROXMOX_BACKUP_GIT="a17276fea051861dcbefd64cb149a067788f4774"
PROXMOX_GIT="1ca670858e0494f932c38e34caaca9acfdff4e31"
PATHPATTERNS_GIT="42e5e96e30297da878a4d4b3a7fa52b65c1be0ab" # 1.0.0-1
PXAR_GIT="993c66fcb8819770f279cb9fb4d13f58f367606c" # 1.0.0-1
PROXMOX_FUSE_GIT="87dbf9bfef9169286263bccffaae3206635ca108" # 1.0.0-1
if [ ! -e "${PACKAGES}/proxmox-backup-${BUILD_PACKAGE}_${PROXMOX_BACKUP_VER}_${PACKAGE_ARCH}.deb" ]; then
git_clone_or_fetch https://git.proxmox.com/git/proxmox.git
git_clean_and_checkout ${PROXMOX_GIT} proxmox
git_clone_or_fetch https://git.proxmox.com/git/proxmox-fuse.git
git_clean_and_checkout ${PROMXOX_FUSE_GIT} proxmox-fuse
git_clean_and_checkout ${PROXMOX_FUSE_GIT} proxmox-fuse
git_clone_or_fetch https://git.proxmox.com/git/pxar.git
git_clean_and_checkout ${PXAR_GIT} pxar
git_clone_or_fetch https://git.proxmox.com/git/pathpatterns.git
git_clean_and_checkout ${PATHPATTERNS_GIT} pathpatterns
git_clone_or_fetch https://git.proxmox.com/git/proxmox-acme-rs.git
git_clean_and_checkout ${PROXMOX_ACME_RS_GIT} proxmox-acme-rs
git_clone_or_fetch https://git.proxmox.com/git/proxmox-apt.git
git_clean_and_checkout ${PROXMOX_APT_GIT} proxmox-apt
git_clone_or_fetch https://git.proxmox.com/git/proxmox-openid-rs.git
git_clean_and_checkout ${PROXMOX_OPENID_GIT} proxmox-openid-rs
git_clone_or_fetch https://git.proxmox.com/git/proxmox-backup.git
git_clean_and_checkout ${PROXMOX_BACKUP_GIT} proxmox-backup
patch -p1 -d proxmox/ < "${PATCHES}/proxmox-no-ksm.patch"
patch -p1 -d proxmox-backup/ < "${PATCHES}/proxmox-backup-arm.patch"
sed -i '/dh-cargo\|cargo:native\|rustc:native\|librust-/d' proxmox-backup/debian/control
sed -i 's/\(latexmk\|proxmox-widget-toolkit-dev\|python3-sphinx\)/\1:all/' proxmox-backup/debian/control
sed -i '/patch.crates-io/,/pxar/s/^#//' proxmox-backup/Cargo.toml
patch -p1 -d proxmox-backup/ <"${PATCHES}/proxmox-backup-build.patch"
if [ "${BUILD_PACKAGE}" = "client" ]; then
sed -i '/proxmox-biome/d' proxmox-backup/debian/control
patch -p1 -d proxmox-backup/ <"${PATCHES}/proxmox-backup-client.patch"
fi
if [ "${PACKAGE_ARCH}" = "arm64" ]; then
sed -i "s/x86_64-linux-gnu/aarch64-linux-gnu/" proxmox-backup/debian/proxmox-backup-file-restore.install
sed -i "s/x86_64-linux-gnu/aarch64-linux-gnu/" proxmox-backup/debian/proxmox-backup-file-restore.postinst
sed -i "s/x86_64-linux-gnu/aarch64-linux-gnu/" proxmox-backup/debian/proxmox-backup-server.install
fi
if [[ "${BUILD_PROFILES}" =~ cross ]]; then
patch -p1 -d proxmox-backup/ <"${PATCHES}/proxmox-backup-cross.patch"
sed -i 's/\(xindy\|proxmox-biome\)\b/\1:native/' proxmox-backup/debian/control
fi
# fix compile error with pxar
patch -p1 -R -d proxmox-backup/ < "${PATCHES}/proxmox-backup-compile-fix.patch"
cd proxmox-backup/
set_package_info
cargo vendor
${SUDO} apt -y build-dep .
dpkg-buildpackage -b -us -uc
${SUDO} apt -y build-dep -a${PACKAGE_ARCH} ${BUILD_PROFILES} .
export DEB_VERSION=$(dpkg-parsechangelog -SVersion)
export DEB_VERSION_UPSTREAM=$(dpkg-parsechangelog -SVersion | cut -d- -f1)
dpkg-buildpackage -a${PACKAGE_ARCH} -b -us -uc ${BUILD_PROFILES}
cd ..
cp -a proxmox-backup-client{,-dbgsym}_${PROXMOX_BACKUP_VER}_arm64.deb \
proxmox-backup-docs_${PROXMOX_BACKUP_VER}_all.deb \
proxmox-backup-file-restore{,-dbgsym}_${PROXMOX_BACKUP_VER}_arm64.deb \
proxmox-backup-server{,-dbgsym}_${PROXMOX_BACKUP_VER}_arm64.deb \
"${PACKAGES}"
if [ "${BUILD_PACKAGE}" = "client" ]; then
mv -f proxmox-backup-client_${PROXMOX_BACKUP_VER}_${PACKAGE_ARCH}.deb \
"${PACKAGES}"
else
mv -f proxmox-backup-client{,-static}{,-dbgsym}_${PROXMOX_BACKUP_VER}_${PACKAGE_ARCH}.* \
proxmox-backup-docs_${PROXMOX_BACKUP_VER}_all.deb \
proxmox-backup-file-restore{,-dbgsym}_${PROXMOX_BACKUP_VER}_${PACKAGE_ARCH}.* \
proxmox-backup-server{,-dbgsym}_${PROXMOX_BACKUP_VER}_${PACKAGE_ARCH}.* \
"${PACKAGES}"
fi
else
echo "proxmox-backup up-to-date"
fi
PVE_XTERMJS_VER="4.16.0-1"
PVE_XTERMJS_GIT="8dcff86a32c3ba8754b84e8aabb01369ef3de407"
PROXMOX_XTERMJS_GIT="41862eeb95b70201c47dfd27fca37879e23be3ff"
if [ ! -e "${PACKAGES}/pve-xtermjs_${PVE_XTERMJS_VER}_arm64.deb" ]; then
git_clone_or_fetch https://git.proxmox.com/git/proxmox.git
git_clean_and_checkout ${PROXMOX_XTERMJS_GIT} proxmox
[ "${BUILD_PACKAGE}" = "client" ] && exit 0
PVE_XTERMJS_VER="5.5.0-3"
PVE_XTERMJS_GIT="1c92330cccb21fb65abcff6e35848b712592dccb"
PROXMOX_XTERMJS_GIT="deb32a6c4a21bea0d72059de0835fde504296bf0"
PROXMOX_TERMPROXY_VER="2.0.3"
if [ ! -e "${PACKAGES}/proxmox-termproxy_${PROXMOX_TERMPROXY_VER}_${PACKAGE_ARCH}.deb" ]; then
git_clone_or_fetch https://git.proxmox.com/git/pve-xtermjs.git
git_clean_and_checkout ${PVE_XTERMJS_GIT} pve-xtermjs
patch -p1 -d pve-xtermjs/ < "${PATCHES}/pve-xtermjs-arm.patch"
patch -p1 -d pve-xtermjs/ <"${PATCHES}/pve-xtermjs-arm.patch"
[[ "${BUILD_PROFILES}" =~ cross ]] &&
patch -p1 -d pve-xtermjs/ <"${PATCHES}/pve-xtermjs-cross.patch"
cd pve-xtermjs/
${SUDO} apt -y build-dep .
make deb
git_clone_or_fetch https://git.proxmox.com/git/proxmox.git
git_clean_and_checkout ${PROXMOX_XTERMJS_GIT} proxmox
cd termproxy
set_package_info
${SUDO} apt -y -a${PACKAGE_ARCH} build-dep .
BUILD_MODE=release make deb
cd ..
cp -a pve-xtermjs_${PVE_XTERMJS_VER}_arm64.deb "${PACKAGES}"
cd xterm.js
make deb
mv -f pve-xtermjs_${PVE_XTERMJS_VER}_all.deb "${PACKAGES}"
cd ..
mv -f proxmox-termproxy_${PROXMOX_TERMPROXY_VER}_${PACKAGE_ARCH}.deb "${PACKAGES}"
else
echo "pve-xtermjs up-to-date"
fi
PROXMOX_JOURNALREADER_VER="1.3-1"
PROXMOX_JOURNALREADER_GIT="09cd4c8e692c5d357fa360e600a34dc3036cda59"
if [ ! -e "${PACKAGES}/proxmox-mini-journalreader_${PROXMOX_JOURNALREADER_VER}_arm64.deb" ]; then
PROXMOX_JOURNALREADER_VER="1.6-1"
PROXMOX_JOURNALREADER_GIT="b09ee543344fb7082a27346ecb0008f38af6367d"
if [ ! -e "${PACKAGES}/proxmox-mini-journalreader_${PROXMOX_JOURNALREADER_VER}_${PACKAGE_ARCH}.deb" ]; then
git_clone_or_fetch https://git.proxmox.com/git/proxmox-mini-journalreader.git
git_clean_and_checkout ${PROXMOX_JOURNALREADER_GIT} proxmox-mini-journalreader
patch -p1 -d proxmox-mini-journalreader/ < ${PATCHES}/proxmox-mini-journalreader.patch
patch -p1 -d proxmox-mini-journalreader/ <${PATCHES}/proxmox-mini-journalreader.patch
[[ "${BUILD_PROFILES}" =~ cross ]] &&
patch -p1 -d proxmox-mini-journalreader/ <"${PATCHES}/proxmox-mini-journalreader-cross.patch"
cd proxmox-mini-journalreader/
${SUDO} apt -y build-dep .
set_package_info
${SUDO} apt -y -a${PACKAGE_ARCH} build-dep .
make deb
cp -a proxmox-mini-journalreader{,-dbgsym}_${PROXMOX_JOURNALREADER_VER}_arm64.deb "${PACKAGES}"
mv -f proxmox-mini-journalreader{,-dbgsym}_${PROXMOX_JOURNALREADER_VER}_${PACKAGE_ARCH}.deb "${PACKAGES}"
cd ..
else
echo "proxmox-mini-journalreader up-to-date"

View File

@@ -1,279 +0,0 @@
diff --git a/.cargo/config b/.cargo/config
index 3b5b6e48..50908c05 100644
--- a/.cargo/config
+++ b/.cargo/config
@@ -1,5 +1,17 @@
-[source]
-[source.debian-packages]
-directory = "/usr/share/cargo/registry"
[source.crates-io]
-replace-with = "debian-packages"
+replace-with = "vendored-sources"
+
+[source."git://git.proxmox.com/git/pathpatterns.git"]
+git = "git://git.proxmox.com/git/pathpatterns.git"
+replace-with = "vendored-sources"
+
+[source."git://git.proxmox.com/git/proxmox-fuse.git"]
+git = "git://git.proxmox.com/git/proxmox-fuse.git"
+replace-with = "vendored-sources"
+
+[source."git://git.proxmox.com/git/pxar.git"]
+git = "git://git.proxmox.com/git/pxar.git"
+replace-with = "vendored-sources"
+
+[source.vendored-sources]
+directory = "vendor"
diff --git a/Cargo.toml b/Cargo.toml
index 2bf9ae48..588de82f 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -238,27 +238,29 @@ proxmox-rrd.workspace = true
# Local path overrides
# NOTE: You must run `cargo update` after changing this for it to take effect!
[patch.crates-io]
-#proxmox-acme-rs = { path = "../proxmox-acme-rs" }
-#proxmox-apt = { path = "../proxmox-apt" }
-#proxmox-async = { path = "../proxmox/proxmox-async" }
-#proxmox-compression = { path = "../proxmox/proxmox-compression" }
-#proxmox-borrow = { path = "../proxmox/proxmox-borrow" }
-#proxmox-fuse = { path = "../proxmox-fuse" }
-#proxmox-http = { path = "../proxmox/proxmox-http" }
-#proxmox-io = { path = "../proxmox/proxmox-io" }
-#proxmox-lang = { path = "../proxmox/proxmox-lang" }
-#proxmox-openid = { path = "../proxmox-openid-rs" }
-#proxmox-router = { path = "../proxmox/proxmox-rest-server" }
-#proxmox-router = { path = "../proxmox/proxmox-router" }
-#proxmox-schema = { path = "../proxmox/proxmox-schema" }
-#proxmox-section-config = { path = "../proxmox/proxmox-section-config" }
-#proxmox-shared-memory = { path = "../proxmox/proxmox-shared-memory" }
-#proxmox-sys = { path = "../proxmox/proxmox-sys" }
-#proxmox-serde = { path = "../proxmox/proxmox-serde" }
-#proxmox-tfa = { path = "../proxmox/proxmox-tfa" }
-#proxmox-time = { path = "../proxmox/proxmox-time" }
-#proxmox-uuid = { path = "../proxmox/proxmox-uuid" }
-#pxar = { path = "../pxar" }
+proxmox-acme-rs = { path = "../proxmox-acme-rs" }
+proxmox-apt = { path = "../proxmox-apt" }
+proxmox-async = { path = "../proxmox/proxmox-async" }
+proxmox-compression = { path = "../proxmox/proxmox-compression" }
+proxmox-borrow = { path = "../proxmox/proxmox-borrow" }
+proxmox-fuse = { path = "../proxmox-fuse" }
+proxmox-http = { path = "../proxmox/proxmox-http" }
+proxmox-io = { path = "../proxmox/proxmox-io" }
+proxmox-lang = { path = "../proxmox/proxmox-lang" }
+proxmox-metrics = { path = "../proxmox/proxmox-metrics" }
+proxmox-openid = { path = "../proxmox-openid-rs" }
+proxmox-rest-server = { path = "../proxmox/proxmox-rest-server" }
+proxmox-router = { path = "../proxmox/proxmox-router" }
+proxmox-schema = { path = "../proxmox/proxmox-schema" }
+proxmox-section-config = { path = "../proxmox/proxmox-section-config" }
+proxmox-shared-memory = { path = "../proxmox/proxmox-shared-memory" }
+proxmox-subscription = { path = "../proxmox/proxmox-subscription" }
+proxmox-sys = { path = "../proxmox/proxmox-sys" }
+proxmox-serde = { path = "../proxmox/proxmox-serde" }
+proxmox-tfa = { path = "../proxmox/proxmox-tfa" }
+proxmox-time = { path = "../proxmox/proxmox-time" }
+proxmox-uuid = { path = "../proxmox/proxmox-uuid" }
+pxar = { path = "../pxar" }
[features]
default = []
diff --git a/debian/control b/debian/control
index 02f32ef8..13d713ff 100644
--- a/debian/control
+++ b/debian/control
@@ -2,124 +2,7 @@ Source: rust-proxmox-backup
Section: admin
Priority: optional
Build-Depends: debhelper (>= 12),
- dh-cargo (>= 24),
- cargo:native (>= 0.65.0-1),
- rustc:native,
libstd-rust-dev,
- librust-anyhow-1+default-dev,
- librust-apt-pkg-native-0.3+default-dev (>= 0.3.2-~~),
- librust-base64-0.13+default-dev,
- librust-bitflags-1+default-dev (>= 1.2.1-~~),
- librust-bytes-1+default-dev,
- librust-cidr-0.2+default-dev (>= 0.2.1-~~),
- librust-crc32fast-1+default-dev,
- librust-crossbeam-channel-0.5+default-dev,
- librust-endian-trait-0.6+arrays-dev,
- librust-endian-trait-0.6+default-dev,
- librust-env-logger-0.9+default-dev,
- librust-flate2-1+default-dev,
- librust-foreign-types-0.3+default-dev,
- librust-futures-0.3+default-dev,
- librust-h2-0.3+default-dev,
- librust-h2-0.3+stream-dev,
- librust-handlebars-3+default-dev,
- librust-hex-0.4+default-dev (>= 0.4.3-~~),
- librust-hex-0.4+serde-dev (>= 0.4.3-~~),
- librust-http-0.2+default-dev,
- librust-hyper-0.14+default-dev,
- librust-hyper-0.14+full-dev,
- librust-lazy-static-1+default-dev (>= 1.4-~~),
- librust-libc-0.2+default-dev,
- librust-log-0.4+default-dev (>= 0.4.17-~~),
- librust-nix-0.26+default-dev (>= 0.26.1-~~),
- librust-nom-7+default-dev,
- librust-num-traits-0.2+default-dev,
- librust-once-cell-1+default-dev (>= 1.3.1-~~),
- librust-openssl-0.10+default-dev (>= 0.10.40-~~),
- librust-pam-0.7+default-dev,
- librust-pam-sys-0.5+default-dev,
- librust-pathpatterns-0.1+default-dev (>= 0.1.2-~~),
- librust-percent-encoding-2+default-dev (>= 2.1-~~),
- librust-pin-project-lite-0.2+default-dev,
- librust-proxmox-acme-rs-0.4+default-dev,
- librust-proxmox-apt-0.9+default-dev,
- librust-proxmox-async-0.4+default-dev,
- librust-proxmox-borrow-1+default-dev,
- librust-proxmox-compression-0.1+default-dev (>= 0.1.1-~~),
- librust-proxmox-fuse-0.1+default-dev (>= 0.1.3-~~),
- librust-proxmox-http-0.7+client-dev,
- librust-proxmox-http-0.7+client-trait-dev,
- librust-proxmox-http-0.7+default-dev,
- librust-proxmox-http-0.7+http-helpers-dev,
- librust-proxmox-http-0.7+proxmox-async-dev,
- librust-proxmox-http-0.7+websocket-dev,
- librust-proxmox-io-1+default-dev (>= 1.0.1-~~),
- librust-proxmox-io-1+tokio-dev (>= 1.0.1-~~),
- librust-proxmox-lang-1+default-dev (>= 1.1-~~),
- librust-proxmox-metrics-0.2+default-dev,
- librust-proxmox-openid-0.9+default-dev (>= 0.9.9-~~),
- librust-proxmox-rest-server-0.2+default-dev (>= 0.2.1-~~),
- librust-proxmox-router-1+cli-dev (>= 1.3.1-~~),
- librust-proxmox-router-1+default-dev (>= 1.3.1-~~),
- librust-proxmox-router-1+server-dev (>= 1.3.1-~~),
- librust-proxmox-schema-1+api-macro-dev (>= 1.3.6-~~),
- librust-proxmox-schema-1+default-dev (>= 1.3.6-~~),
- librust-proxmox-section-config-1+default-dev,
- librust-proxmox-serde-0.1+default-dev (>= 0.1.1-~~),
- librust-proxmox-serde-0.1+serde-json-dev (>= 0.1.1-~~),
- librust-proxmox-shared-memory-0.2+default-dev (>= 0.2.3-~~),
- librust-proxmox-subscription-0.3+api-types-dev,
- librust-proxmox-subscription-0.3+default-dev,
- librust-proxmox-sys-0.4+acl-dev (>= 0.4.2-~~),
- librust-proxmox-sys-0.4+crypt-dev (>= 0.4.2-~~),
- librust-proxmox-sys-0.4+default-dev (>= 0.4.2-~~),
- librust-proxmox-sys-0.4+logrotate-dev (>= 0.4.2-~~),
- librust-proxmox-sys-0.4+sortable-macro-dev (>= 0.4.2-~~),
- librust-proxmox-sys-0.4+timer-dev (>= 0.4.2-~~),
- librust-proxmox-tfa-2+api-dev (>= 2.1-~~),
- librust-proxmox-tfa-2+api-types-dev (>= 2.1-~~),
- librust-proxmox-tfa-2+default-dev (>= 2.1-~~),
- librust-proxmox-time-1+default-dev (>= 1.1.2-~~),
- librust-proxmox-uuid-1+default-dev,
- librust-proxmox-uuid-1+serde-dev,
- librust-pxar-0.10+default-dev (>= 0.10.2-~~),
- librust-regex-1+default-dev (>= 1.5.5-~~),
- librust-rustyline-9+default-dev,
- librust-serde-1+default-dev,
- librust-serde-1+derive-dev,
- librust-serde-cbor-0.11+default-dev (>= 0.11.1-~~),
- librust-serde-json-1+default-dev,
- librust-serde-plain-1+default-dev,
- librust-siphasher-0.3+default-dev,
- librust-syslog-4+default-dev,
- librust-tar-0.4+default-dev,
- librust-termcolor-1+default-dev (>= 1.1.2-~~),
- librust-thiserror-1+default-dev,
- librust-tokio-1+default-dev (>= 1.6-~~),
- librust-tokio-1+fs-dev (>= 1.6-~~),
- librust-tokio-1+io-std-dev (>= 1.6-~~),
- librust-tokio-1+io-util-dev (>= 1.6-~~),
- librust-tokio-1+macros-dev (>= 1.6-~~),
- librust-tokio-1+net-dev (>= 1.6-~~),
- librust-tokio-1+parking-lot-dev (>= 1.6-~~),
- librust-tokio-1+process-dev (>= 1.6-~~),
- librust-tokio-1+rt-dev (>= 1.6-~~),
- librust-tokio-1+rt-multi-thread-dev (>= 1.6-~~),
- librust-tokio-1+signal-dev (>= 1.6-~~),
- librust-tokio-1+sync-dev (>= 1.6-~~),
- librust-tokio-1+time-dev (>= 1.6-~~),
- librust-tokio-openssl-0.6+default-dev (>= 0.6.1-~~),
- librust-tokio-stream-0.1+default-dev,
- librust-tokio-util-0.7+codec-dev,
- librust-tokio-util-0.7+default-dev,
- librust-tokio-util-0.7+io-dev,
- librust-tower-service-0.3+default-dev,
- librust-udev-0.4+default-dev,
- librust-url-2+default-dev (>= 2.1-~~),
- librust-walkdir-2+default-dev,
- librust-xdg-2+default-dev (>= 2.2-~~),
- librust-zstd-0.6+bindgen-dev,
- librust-zstd-0.6+default-dev,
libacl1-dev,
libfuse3-dev,
libsystemd-dev (>= 246-~~),
diff --git a/debian/proxmox-backup-file-restore.install b/debian/proxmox-backup-file-restore.install
index d952836e..7e1bf2dd 100644
--- a/debian/proxmox-backup-file-restore.install
+++ b/debian/proxmox-backup-file-restore.install
@@ -1,4 +1,4 @@
usr/bin/proxmox-file-restore
usr/share/man/man1/proxmox-file-restore.1
usr/share/zsh/vendor-completions/_proxmox-file-restore
-usr/lib/x86_64-linux-gnu/proxmox-backup/file-restore/proxmox-restore-daemon
+usr/lib/aarch64-linux-gnu/proxmox-backup/file-restore/proxmox-restore-daemon
diff --git a/debian/proxmox-backup-file-restore.postinst b/debian/proxmox-backup-file-restore.postinst
index feb0557b..9501d29b 100755
--- a/debian/proxmox-backup-file-restore.postinst
+++ b/debian/proxmox-backup-file-restore.postinst
@@ -4,7 +4,7 @@ set -e
update_initramfs() {
# regenerate initramfs for single file restore VM
- INST_PATH="/usr/lib/x86_64-linux-gnu/proxmox-backup/file-restore"
+ INST_PATH="/usr/lib/aarch64-linux-gnu/proxmox-backup/file-restore"
CACHE_PATH="/var/cache/proxmox-backup/file-restore-initramfs.img"
CACHE_PATH_DBG="/var/cache/proxmox-backup/file-restore-initramfs-debug.img"
diff --git a/debian/proxmox-backup-server.install b/debian/proxmox-backup-server.install
index 6e2219b4..82954cdd 100644
--- a/debian/proxmox-backup-server.install
+++ b/debian/proxmox-backup-server.install
@@ -4,11 +4,11 @@ etc/proxmox-backup-banner.service /lib/systemd/system/
etc/proxmox-backup-daily-update.service /lib/systemd/system/
etc/proxmox-backup-daily-update.timer /lib/systemd/system/
etc/pbs-enterprise.list /etc/apt/sources.list.d/
-usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-backup-api
-usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-backup-proxy
-usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-backup-banner
-usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-daily-update
-usr/lib/x86_64-linux-gnu/proxmox-backup/sg-tape-cmd
+usr/lib/aarch64-linux-gnu/proxmox-backup/proxmox-backup-api
+usr/lib/aarch64-linux-gnu/proxmox-backup/proxmox-backup-proxy
+usr/lib/aarch64-linux-gnu/proxmox-backup/proxmox-backup-banner
+usr/lib/aarch64-linux-gnu/proxmox-backup/proxmox-daily-update
+usr/lib/aarch64-linux-gnu/proxmox-backup/sg-tape-cmd
usr/sbin/proxmox-backup-debug
usr/sbin/proxmox-backup-manager
usr/bin/pmtx
diff --git a/debian/rules b/debian/rules
index b13ba334..323da5ed 100755
--- a/debian/rules
+++ b/debian/rules
@@ -4,12 +4,9 @@
DH_VERBOSE = 1
include /usr/share/dpkg/pkg-info.mk
-include /usr/share/rustc/architecture.mk
export BUILD_MODE=release
-CARGO=/usr/share/cargo/bin/cargo
-
export CFLAGS CXXFLAGS CPPFLAGS LDFLAGS
export DEB_HOST_RUST_TYPE DEB_HOST_GNU_TYPE
export CARGO_HOME = $(CURDIR)/debian/cargo_home
@@ -21,7 +18,6 @@ export DEB_CARGO_PACKAGE=proxmox-backup
dh $@ --with=bash-completion
override_dh_auto_configure:
- $(CARGO) prepare-debian $(CURDIR)/debian/cargo_registry --link-from-system
dh_auto_configure
override_dh_auto_build:

View File

@@ -0,0 +1,95 @@
diff --git a/.cargo/config.toml b/.cargo/config.toml
index a439c97b..a95ae483 100644
--- a/.cargo/config.toml
+++ b/.cargo/config.toml
@@ -1,8 +1,20 @@
-[source]
-[source.debian-packages]
-directory = "/usr/share/cargo/registry"
[source.crates-io]
-replace-with = "debian-packages"
+replace-with = "vendored-sources"
+
+[source."git://git.proxmox.com/git/pathpatterns.git"]
+git = "git://git.proxmox.com/git/pathpatterns.git"
+replace-with = "vendored-sources"
+
+[source."git://git.proxmox.com/git/proxmox-fuse.git"]
+git = "git://git.proxmox.com/git/proxmox-fuse.git"
+replace-with = "vendored-sources"
+
+[source."git://git.proxmox.com/git/pxar.git"]
+git = "git://git.proxmox.com/git/pxar.git"
+replace-with = "vendored-sources"
+
+[source.vendored-sources]
+directory = "vendor"
[profile.release]
debug=true
diff --git a/Makefile b/Makefile
index 2012ae5d..51fbd408 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,4 @@
include /usr/share/dpkg/default.mk
-include /usr/share/rustc/architecture.mk
include defines.mk
PACKAGE := proxmox-backup
@@ -42,7 +41,7 @@ SUBCRATES != cargo metadata --no-deps --format-version=1 \
STATIC_TARGET_DIR := target/static-build
ifeq ($(BUILD_MODE), release)
CARGO_BUILD_ARGS += --release --target $(DEB_HOST_RUST_TYPE)
-CARGO_STATIC_CONFIG ?= --config debian/cargo_home/config.static.toml
+CARGO_STATIC_CONFIG ?= --config .cargo/config.static.toml
CARGO_STATIC_BUILD_ARGS += $(CARGO_STATIC_CONFIG) --release --target $(DEB_HOST_RUST_TYPE) --target-dir $(STATIC_TARGET_DIR)
COMPILEDIR := target/$(DEB_HOST_RUST_TYPE)/release
STATIC_COMPILEDIR := $(STATIC_TARGET_DIR)/$(DEB_HOST_RUST_TYPE)/release
diff --git a/debian/rules b/debian/rules
index ab48cce1..723b714f 100755
--- a/debian/rules
+++ b/debian/rules
@@ -4,10 +4,9 @@
DH_VERBOSE = 1
include /usr/share/dpkg/pkg-info.mk
-include /usr/share/rustc/architecture.mk
export BUILD_MODE=release
-export CARGO_STATIC_CONFIG=--config debian/cargo_home/config.static.toml
+export CARGO_STATIC_CONFIG=--config .cargo/config.static.toml
# sync with Makefile!
STATIC_TARGET_DIR := target/static-build
@@ -18,11 +17,9 @@ STATIC_COMPILEDIR := $(STATIC_TARGET_DIR)/$(DEB_HOST_RUST_TYPE)/debug
endif
# end sync with Makefile!
-export CARGO=/usr/share/cargo/bin/cargo
-
export CFLAGS CXXFLAGS CPPFLAGS LDFLAGS
export DEB_HOST_RUST_TYPE DEB_HOST_GNU_TYPE
-export CARGO_HOME = $(CURDIR)/debian/cargo_home
+export CARGO_HOME = $(CURDIR)/.cargo
export DEB_CARGO_CRATE=proxmox-backup_$(DEB_VERSION_UPSTREAM)
export DEB_CARGO_PACKAGE=proxmox-backup
@@ -37,15 +34,9 @@ endif
override_dh_auto_configure:
@perl -ne 'if (/^version\s*=\s*"(\d+(?:\.\d+)+)"/) { my $$v_cargo = $$1; my $$v_deb = "$(DEB_VERSION_UPSTREAM)"; \
die "ERROR: d/changelog <-> Cargo.toml version mismatch: $$v_cargo != $$v_deb\n" if $$v_cargo ne $$v_deb; exit(0); }' Cargo.toml
- $(CARGO) prepare-debian $(CURDIR)/debian/cargo_registry --link-from-system
# add a new config for static building, sync with Makefile!
- cp debian/cargo_home/config.toml debian/cargo_home/config.static.toml
- sed -ri -e 's!^(rustflags = .*)\]$$!\1, "-C", "target-feature=+crt-static", "-L", "$(STATIC_COMPILEDIR)/deps-stubs/"\]!' debian/cargo_home/config.static.toml
- # `cargo build` and `cargo install` have different config precedence, symlink
- # the wrapper config into a place where `build` picks it up as well..
- # https://doc.rust-lang.org/cargo/commands/cargo-install.html#configuration-discovery
- mkdir -p .cargo
- ln -s $(CARGO_HOME)/config.toml $(CURDIR)/.cargo/config.toml
+ cp $(CARGO_HOME)/config.toml $(CARGO_HOME)/config.static.toml
+ echo '[build]\nrustflags = ["-C", "target-feature=+crt-static"]' >> $(CARGO_HOME)/config.static.toml
dh_auto_configure
override_dh_auto_build:

View File

@@ -0,0 +1,259 @@
diff --git a/Makefile b/Makefile
index 51fbd408..d1546dd4 100644
--- a/Makefile
+++ b/Makefile
@@ -5,32 +5,21 @@ PACKAGE := proxmox-backup
ARCH := $(DEB_BUILD_ARCH)
export DEB_HOST_RUST_TYPE
-SUBDIRS := etc www docs templates
+SUBDIRS := docs
# Binaries usable by users
USR_BIN := \
proxmox-backup-client \
- proxmox-file-restore \
- pxar \
- proxmox-tape \
- pmtx \
- pmt
+ pxar
# Binaries usable by admins
-USR_SBIN := \
- proxmox-backup-manager \
- proxmox-backup-debug
+USR_SBIN :=
# Binaries for services:
-SERVICE_BIN := \
- proxmox-backup-api \
- proxmox-backup-banner \
- proxmox-backup-proxy \
- proxmox-daily-update
+SERVICE_BIN :=
# Single file restore daemon
-RESTORE_BIN := \
- proxmox-restore-daemon
+RESTORE_BIN :=
SUBCRATES != cargo metadata --no-deps --format-version=1 \
| jq -r .workspace_members'[]' \
@@ -79,8 +68,7 @@ STATIC_CLIENT_DEB=$(PACKAGE)-client-static_$(DEB_VERSION)_$(ARCH).deb
STATIC_CLIENT_DBG_DEB=$(PACKAGE)-client-static-dbgsym_$(DEB_VERSION)_$(ARCH).deb
DOC_DEB=$(PACKAGE)-docs_$(DEB_VERSION)_all.deb
-DEBS=$(SERVER_DEB) $(SERVER_DBG_DEB) $(CLIENT_DEB) $(CLIENT_DBG_DEB) \
- $(RESTORE_DEB) $(RESTORE_DBG_DEB) $(STATIC_CLIENT_DEB) $(STATIC_CLIENT_DBG_DEB)
+DEBS=${CLIENT_DEB} ${CLIENT_DBG_DEB}
DSC = rust-$(PACKAGE)_$(DEB_VERSION).dsc
@@ -177,31 +165,11 @@ cargo-build:
$(COMPILED_BINS) $(COMPILEDIR)/dump-catalog-shell-cli $(COMPILEDIR)/docgen &:
$(CARGO) build $(CARGO_BUILD_ARGS) \
- --package proxmox-backup-banner \
- --bin proxmox-backup-banner \
--package proxmox-backup-client \
--bin proxmox-backup-client \
--bin dump-catalog-shell-cli \
- --bin proxmox-backup-debug \
- --package proxmox-file-restore \
- --bin proxmox-file-restore \
--package pxar-bin \
- --bin pxar \
- --package pbs-tape \
- --bin pmt \
- --bin pmtx \
- --package proxmox-restore-daemon \
- --bin proxmox-restore-daemon \
- --package proxmox-backup \
- --bin docgen \
- --bin pbs3to4 \
- --bin proxmox-backup-api \
- --bin proxmox-backup-manager \
- --bin proxmox-backup-proxy \
- --bin proxmox-daily-update \
- --bin proxmox-file-restore \
- --bin proxmox-tape \
- --bin sg-tape-cmd
+ --bin pxar
touch "$@"
.PHONY: proxmox-backup-client-static
@@ -232,20 +200,9 @@ install: $(COMPILED_BINS) $(STATIC_BINS)
$(foreach i,$(USR_SBIN), \
install -m755 $(COMPILEDIR)/$(i) $(DESTDIR)$(SBINDIR)/ ; \
install -m644 zsh-completions/_$(i) $(DESTDIR)$(ZSH_COMPL_DEST)/ ;)
- install -m755 $(COMPILEDIR)/pbs3to4 $(DESTDIR)$(SBINDIR)/
- install -dm755 $(DESTDIR)$(LIBEXECDIR)/proxmox-backup
- install -dm755 $(DESTDIR)$(LIBEXECDIR)/proxmox-backup/file-restore
- $(foreach i,$(RESTORE_BIN), \
- install -m755 $(COMPILEDIR)/$(i) $(DESTDIR)$(LIBEXECDIR)/proxmox-backup/file-restore/ ;)
- # install sg-tape-cmd as setuid binary
- install -m4755 -o root -g root $(COMPILEDIR)/sg-tape-cmd $(DESTDIR)$(LIBEXECDIR)/proxmox-backup/sg-tape-cmd
- $(foreach i,$(SERVICE_BIN), \
- install -m755 $(COMPILEDIR)/$(i) $(DESTDIR)$(LIBEXECDIR)/proxmox-backup/ ;)
install -m755 $(STATIC_COMPILEDIR)/proxmox-backup-client $(DESTDIR)$(BINDIR)/proxmox-backup-client-static
install -m755 $(STATIC_COMPILEDIR)/pxar $(DESTDIR)$(BINDIR)/pxar-static
- $(MAKE) -C www install
$(MAKE) -C docs install
- $(MAKE) -C templates install
.PHONY: upload
upload: UPLOAD_DIST ?= $(DEB_DISTRIBUTION)
diff --git a/debian/control b/debian/control
index e9c6cbd7..f57ac84c 100644
--- a/debian/control
+++ b/debian/control
@@ -19,7 +19,7 @@ Build-Depends: debhelper (>= 12~),
proxmox-widget-toolkit-dev:all <!nodoc>,
python3-docutils,
python3-pygments,
- python3-sphinx:all <!nodoc>,
+ python3-sphinx:all,
rsync,
texlive-fonts-extra <!nodoc>,
texlive-fonts-recommended <!nodoc>,
@@ -33,37 +33,6 @@ Vcs-Browser: https://git.proxmox.com/?p=proxmox-backup.git;a=summary
Homepage: https://www.proxmox.com
Rules-Requires-Root: binary-targets
-Package: proxmox-backup-server
-Architecture: any
-Depends: fonts-font-awesome,
- gdisk,
- libjs-extjs (>= 7~),
- libjs-qrcodejs (>= 1.20201119),
- libproxmox-acme-plugins,
- libsgutils2-1.48,
- libzstd1 (>= 1.3.8),
- lvm2,
- openssh-server,
- pbs-i18n,
- postfix | mail-transport-agent,
- proxmox-backup-docs,
- proxmox-mini-journalreader,
- proxmox-termproxy (>= 2.0.3),
- proxmox-widget-toolkit (>= 4.3.3),
- pve-xtermjs (>= 4.7.0-1),
- sg3-utils,
- smartmontools,
- ${misc:Depends},
- ${shlibs:Depends},
-Recommends: ifupdown2,
- proxmox-mail-forward,
- proxmox-network-interface-pinning,
- proxmox-offline-mirror-helper,
- zfsutils-linux,
-Description: Proxmox Backup Server daemon with tools and GUI
- This package contains the Proxmox Backup Server daemons and related
- tools. This includes a web-based graphical user interface.
-
Package: proxmox-backup-client
Architecture: any
Depends: qrencode, ${misc:Depends}, ${shlibs:Depends},
@@ -78,21 +47,3 @@ Conflicts: proxmox-backup-client,
Description: Proxmox Backup Client tools (statically linked)
This package contains the Proxmox Backup client, which provides a
simple command line tool to create and restore backups.
-
-Package: proxmox-backup-docs
-Build-Profiles: <!nodoc>
-Section: doc
-Depends: fonts-font-awesome, libjs-extjs, libjs-mathjax, ${misc:Depends},
-Architecture: all
-Description: Proxmox Backup Documentation
- This package contains the Proxmox Backup Documentation files.
-
-Package: proxmox-backup-file-restore
-Architecture: any
-Depends: ${misc:Depends}, ${shlibs:Depends},
-Recommends: proxmox-backup-restore-image, pve-qemu-kvm (>= 5.0.0-9),
-Breaks: proxmox-backup-restore-image (<< 0.3.1),
-Description: Proxmox Backup single file restore tools for pxar and block device backups
- This package contains the Proxmox Backup single file restore client for
- restoring individual files and folders from both host/container and VM/block
- device backups. It includes a block device restore driver using QEMU.
diff --git a/debian/rules b/debian/rules
index 723b714f..07299c88 100755
--- a/debian/rules
+++ b/debian/rules
@@ -55,11 +55,6 @@ override_dh_auto_install:
mv debian/tmp/usr/bin/proxmox-backup-client-static debian/proxmox-backup-client-static/usr/bin/proxmox-backup-client
mv debian/tmp/usr/bin/pxar-static debian/proxmox-backup-client-static/usr/bin/pxar
-override_dh_installsystemd:
- dh_installsystemd -pproxmox-backup-server proxmox-backup-daily-update.timer
- # note: we start/try-reload-restart services manually in postinst
- dh_installsystemd --no-start --no-restart-after-upgrade --no-stop-on-upgrade
-
override_dh_fixperms:
dh_fixperms --exclude sg-tape-cmd
diff --git a/docs/Makefile b/docs/Makefile
index 5cf5fc17..9aac52e8 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -1,59 +1,17 @@
include ../defines.mk
GENERATED_SYNOPSIS := \
- config/acl/roles.rst \
- config/datastore/config.rst \
- config/domains/config.rst \
- config/media-pool/config.rst \
- config/notifications-priv/config.rst \
- config/notifications/config.rst \
- config/remote/config.rst \
- config/sync/config.rst \
- config/tape-job/config.rst \
- config/tape/config.rst \
- config/user/config.rst \
- config/verification/config.rst \
- config/prune/config.rst \
- pmt/synopsis.rst \
- pmtx/synopsis.rst \
proxmox-backup-client/catalog-shell-synopsis.rst \
- proxmox-backup-client/synopsis.rst \
- proxmox-backup-debug/synopsis.rst \
- proxmox-backup-manager/synopsis.rst \
- proxmox-file-restore/synopsis.rst \
- proxmox-tape/synopsis.rst \
pxar/synopsis.rst \
MAN1_PAGES := \
- pbs3to4.1 \
- pmt.1 \
- pmtx.1 \
proxmox-backup-client.1 \
- proxmox-backup-debug.1 \
- proxmox-backup-manager.1 \
- proxmox-backup-proxy.1 \
- proxmox-file-restore.1 \
- proxmox-tape.1 \
pxar.1 \
# FIXME: prefix all man pages that are not directly relating to an existing executable with
# `proxmox-backup.`, like the newer added proxmox-backup.node.cfg but add backwards compatible
# symlinks, e.g. with a "5pbs" man page "suffix section".
MAN5_PAGES := \
- acl.cfg.5 \
- datastore.cfg.5 \
- domains.cfg.5 \
- media-pool.cfg.5 \
- proxmox-backup.node.cfg.5 \
- notifications-priv.cfg.5 \
- notifications.cfg.5 \
- remote.cfg.5 \
- sync.cfg.5 \
- tape-job.cfg.5 \
- tape.cfg.5 \
- user.cfg.5 \
- verification.cfg.5 \
- prune.cfg.5 \
PRUNE_SIMULATOR_FILES := \
prune-simulator/index.html \

View File

@@ -0,0 +1,32 @@
commit 6174f9b3c7d1cf366de230798d4bf9e271235dbe
Author: Thomas Lamprecht <t.lamprecht@proxmox.com>
Date: Fri Nov 7 12:33:15 2025 +0100
pxar extract: code style improvement for error logging
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
diff --git a/pbs-client/src/pxar/extract.rs b/pbs-client/src/pxar/extract.rs
index 61f29349..0257201d 100644
--- a/pbs-client/src/pxar/extract.rs
+++ b/pbs-client/src/pxar/extract.rs
@@ -1333,15 +1333,12 @@ where
}
.await
{
- let display_string = entry.path().display().to_string();
error!(
- "error extracting {}: {}",
- if matches!(entry.kind(), EntryKind::GoodbyeTable) {
- "<directory>"
- } else {
- &display_string
+ "error extracting {}: {err}",
+ match entry.kind() {
+ EntryKind::GoodbyeTable => "<directory>",
+ _ => &entry.path().display().to_string(),
},
- err
);
}

View File

@@ -0,0 +1,88 @@
diff --git a/docs/Makefile b/docs/Makefile
index 9aac52e8..24282e83 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -67,16 +67,16 @@ ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(SPHINXOPTS) .
all: ${MAN1_PAGES} ${MAN5_PAGES}
config/%/config.rst: ${COMPILEDIR}/docgen
- ${COMPILEDIR}/docgen $*.cfg >$@
+ qemu-aarch64 ${COMPILEDIR}/docgen $*.cfg >$@
config/acl/roles.rst: ${COMPILEDIR}/docgen
- ${COMPILEDIR}/docgen "config::acl::Role" >$@
+ qemu-aarch64 ${COMPILEDIR}/docgen "config::acl::Role" >$@
%/synopsis.rst: ${COMPILEDIR}/%
- $< printdoc > $@
+ qemu-aarch64 $< printdoc > $@
proxmox-backup-client/catalog-shell-synopsis.rst: ${COMPILEDIR}/dump-catalog-shell-cli
- ${COMPILEDIR}/dump-catalog-shell-cli > proxmox-backup-client/catalog-shell-synopsis.rst
+ qemu-aarch64 ${COMPILEDIR}/dump-catalog-shell-cli > proxmox-backup-client/catalog-shell-synopsis.rst
${MAN1_PAGES} ${MAN5_PAGES}: man-pages
@@ -91,7 +91,7 @@ onlinehelpinfo:
@echo "Build finished. OnlineHelpInfo.js is in $(BUILDDIR)/scanrefs."
api-viewer/apidata.js: ${COMPILEDIR}/docgen
- ${COMPILEDIR}/docgen apidata.js >$@
+ qemu-aarch64 ${COMPILEDIR}/docgen apidata.js >$@
api-viewer/apidoc.js: ${API_VIEWER_FILES}
cat ${API_VIEWER_FILES} >$@.tmp
diff --git a/pxar-bin/tests/pxar.rs b/pxar-bin/tests/pxar.rs
index 2da5884a..29851db8 100644
--- a/pxar-bin/tests/pxar.rs
+++ b/pxar-bin/tests/pxar.rs
@@ -17,7 +17,8 @@ fn pxar_create_and_extract() {
println!("run '{exec_path} create archive.pxar {src_dir}'");
- Command::new(&exec_path)
+ Command::new("qemu-aarch64")
+ .arg(&exec_path)
.arg("create")
.arg("./tests/archive.pxar")
.arg(src_dir)
@@ -26,7 +27,8 @@ fn pxar_create_and_extract() {
println!("run '{exec_path} extract archive.pxar {dest_dir}'");
- Command::new(&exec_path)
+ Command::new("qemu-aarch64")
+ .arg(&exec_path)
.arg("extract")
.arg("./tests/archive.pxar")
.arg("--target")
@@ -93,7 +95,8 @@ fn pxar_split_archive_test() {
println!("run '{exec_path} create archive.mpxar {src_dir} --payload-output archive.ppxar'");
- Command::new(&exec_path)
+ Command::new("qemu-aarch64")
+ .arg(&exec_path)
.arg("create")
.arg("./tests/archive.mpxar")
.arg(src_dir)
@@ -101,7 +104,8 @@ fn pxar_split_archive_test() {
.status()
.unwrap_or_else(|err| panic!("Failed to invoke '{exec_path}': {err}"));
- let output = Command::new(&exec_path)
+ let output = Command::new("qemu-aarch64")
+ .arg(&exec_path)
.arg("list")
.arg("./tests/archive.mpxar")
.arg("--payload-input=./tests/archive.ppxar")
@@ -122,7 +126,8 @@ fn pxar_split_archive_test() {
println!("run '{exec_path} extract archive.mpxar {dest_dir} --payload-input archive.ppxar'");
- Command::new(&exec_path)
+ Command::new("qemu-aarch64")
+ .arg(&exec_path)
.arg("extract")
.arg("./tests/archive.mpxar")
.arg("--payload-input=./tests/archive.ppxar")

View File

@@ -0,0 +1,47 @@
diff --git a/Makefile b/Makefile
index 18e5ce27..65cf9e8d 100644
--- a/Makefile
+++ b/Makefile
@@ -2,8 +2,8 @@ include /usr/share/dpkg/pkg-info.mk
PACKAGE=proxmox-biome
-DEB=$(PACKAGE)_$(DEB_VERSION_UPSTREAM_REVISION)_amd64.deb
-DEB_DBG=$(PACKAGE)-dbgsym_$(DEB_VERSION_UPSTREAM_REVISION)_amd64.deb
+DEB=$(PACKAGE)_$(DEB_VERSION_UPSTREAM_REVISION)_arm64.deb
+DEB_DBG=$(PACKAGE)-dbgsym_$(DEB_VERSION_UPSTREAM_REVISION)_arm64.deb
BUILDDIR=$(PACKAGE)-$(DEB_VERSION_UPSTREAM)
@@ -45,7 +45,7 @@ $(BUILDDIR):
deb: $(DEB)
$(DEB) $(DEB_DBG) &: $(BUILDDIR)
- cd $(BUILDDIR); dpkg-buildpackage -b -us -uc
+ cd $(BUILDDIR); dpkg-buildpackage -aarm64 -b -us -uc
lintian $(DEB)
.PHONY: upload
diff --git a/biome/rust-toolchain.toml b/biome/rust-toolchain.toml
index fbae3fa6..7c761706 100644
--- a/biome/rust-toolchain.toml
+++ b/biome/rust-toolchain.toml
@@ -2,4 +2,4 @@
# The default profile includes rustc, rust-std, cargo, rust-docs, rustfmt and clippy.
# https://rust-lang.github.io/rustup/concepts/profiles.html
profile = "default"
-channel = "1.87.0"
+channel = "stable"
diff --git a/debian/control b/debian/control
index 7109d042..80bcb58b 100644
--- a/debian/control
+++ b/debian/control
@@ -8,7 +8,7 @@ Homepage: https://biomejs.dev/
Standards-Version: 4.7.0.0
Package: proxmox-biome
-Architecture: amd64
+Architecture: arm64
Depends: ${misc:Depends}, ${shlibs:Depends},
Description: Biome offers JS formatter and linter, usable via CLI and LSP.
Biome is a performant toolchain for web projects, it aims to provide developer

View File

@@ -0,0 +1,13 @@
diff --git a/debian/control b/debian/control
index bcfa86d0..ec90b4df 100644
--- a/debian/control
+++ b/debian/control
@@ -2,7 +2,7 @@ Source: proxmox-biome
Section: admin
Priority: optional
Maintainer: Proxmox Support Team <support@proxmox.com>
-Build-Depends: cargo, debhelper-compat (= 12), shellcheck,
+Build-Depends: debhelper-compat (= 12), shellcheck,
Homepage: https://biomejs.dev/
Standards-Version: 4.7.0.0

View File

@@ -0,0 +1,44 @@
diff --git a/Makefile b/Makefile
index 615c077..50a72ac 100644
--- a/Makefile
+++ b/Makefile
@@ -7,8 +7,8 @@ GITVERSION:=$(shell git rev-parse HEAD)
BUILDDIR ?= $(PACKAGE)-$(DEB_VERSION_UPSTREAM)
-DEB=$(PACKAGE)_$(DEB_VERSION_UPSTREAM_REVISION)_$(DEB_BUILD_ARCH).deb
-DBGDEB=$(PACKAGE)-dbgsym_$(DEB_VERSION_UPSTREAM_REVISION)_$(DEB_BUILD_ARCH).deb
+DEB=$(PACKAGE)_$(DEB_VERSION_UPSTREAM_REVISION)_$(DEB_HOST_ARCH).deb
+DBGDEB=$(PACKAGE)-dbgsym_$(DEB_VERSION_UPSTREAM_REVISION)_$(DEB_HOST_ARCH).deb
DEBS=$(DEB) $(DBGDEB)
DSC=$(PACKAGE)_$(DEB_VERSION_UPSTREAM_REVISION).dsc
@@ -24,13 +24,13 @@ $(BUILDDIR): src debian
deb: $(DEB)
$(DBGDEB): $(DEB)
$(DEB): $(BUILDDIR)
- cd $(BUILDDIR); dpkg-buildpackage -b -us -uc
+ cd $(BUILDDIR); dpkg-buildpackage -aarm64 -b -us -uc
lintian $(DEBS)
.PHONY: dsc
dsc: $(DSC)
$(DSC): $(BUILDDIR)
- cd $(BUILDDIR); dpkg-buildpackage -S -us -uc -d
+ cd $(BUILDDIR); dpkg-buildpackage -aarm64 -S -us -uc -d
lintian $(DSC)
sbuild: $(DSC)
diff --git a/src/Makefile b/src/Makefile
index 6807b67..3f31c07 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -14,7 +14,7 @@ LDFLAGS += $(shell pkg-config --libs $(LIBS))
all: $(PROGRAM)
$(PROGRAM): $(SOURCES)
- gcc $< -o $@ $(CFLAGS) $(LDFLAGS)
+ ${CC} $< -o $@ $(CFLAGS) $(LDFLAGS)
.PHONY: install
install: $(PROGRAM) $(MANPAGE)

View File

@@ -1,17 +1,26 @@
diff --git a/src/mini-journalreader.c b/src/mini-journalreader.c
index 7ce7857..520fb1e 100644
index 0489d4a..8fccb99 100644
--- a/src/mini-journalreader.c
+++ b/src/mini-journalreader.c
@@ -174,7 +174,7 @@ static bool print_field(sd_journal *j, const char *field) {
@@ -64,7 +64,7 @@ static void print_error_and_exit(const char *fmt, ...) {
fprintf(stdout, "], \"error\":\"");
for (int i = 0; i < message_len; i++) {
char c = message[i];
- if (c == '"' || c == '\\' || (c >= 0 && c <= 0x1F)) {
+ if (c == '"' || c == '\\' || c <= 0x1F) {
fprintf(stdout, "\\u%04X", c);
} else {
fprintf(stdout, "%c", c);
@@ -216,7 +216,7 @@ static bool print_field(sd_journal *j, const char *field) {
if (json) {
char tmp[7];
for (size_t i = 0; i < l;i++) {
- if (d[i] == '"' || d[i] == '\\' || (d[i] >= 0 && d[i] <= 0x1F)) {
+ if (d[i] == '"' || d[i] == '\\' || d[i] <= 0x1F) {
sprintf(tmp, "\\u%04X", d[i]);
print_to_buf(tmp, 6);
} else {
@@ -263,10 +263,12 @@ int main(int argc, char *argv[]) {
char tmp[7];
for (size_t i = 0; i < l; i++) {
- if (d[i] == '"' || d[i] == '\\' || (d[i] >= 0 && d[i] <= 0x1F)) {
+ if (d[i] == '"' || d[i] == '\\' || d[i] <= 0x1F) {
sprintf(tmp, "\\u%04X", d[i]);
print_to_buf(tmp, 6);
} else {
@@ -305,10 +305,12 @@ int main(int argc, char *argv[]) {
uint64_t begin = 0;
uint64_t end = 0;
char c;
@@ -19,9 +28,23 @@ index 7ce7857..520fb1e 100644
progname = argv[0];
- while ((c = (char)getopt (argc, argv, "b:e:d:n:f:t:jh")) != -1) {
+ while ((opt = getopt (argc, argv, "b:e:d:n:f:t:jh")) != -1) {
- while ((c = (char)getopt(argc, argv, "b:e:d:n:f:t:jh")) != -1) {
+ while ((opt = getopt(argc, argv, "b:e:d:n:f:t:jh")) != -1) {
+ c = (char) opt;
switch (c) {
case 'b':
begin = arg_to_uint64(optarg);
case 'b':
begin = arg_to_uint64(optarg);
diff --git a/debian/changelog b/debian/changelog
index 9cb9914..3575f4f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+proxmox-mini-journalreader (1.6-1) trixie; urgency=medium
+
+ * fix ERROR: invalid option or missing argument
+
+ -- Wolfgang <github@linux-dude.de> Sat, 23 Aug 2025 08:46:01 +0200
+
proxmox-mini-journalreader (1.6) trixie; urgency=medium
* rebuild for Debian 13 "Trixie" based Proxmox releases.

View File

@@ -1,27 +0,0 @@
diff --git a/proxmox-sys/src/linux/procfs/mod.rs b/proxmox-sys/src/linux/procfs/mod.rs
index 30b9978..ccb14aa 100644
--- a/proxmox-sys/src/linux/procfs/mod.rs
+++ b/proxmox-sys/src/linux/procfs/mod.rs
@@ -4,6 +4,7 @@ use std::fmt;
use std::fs::OpenOptions;
use std::io::{BufRead, BufReader};
use std::net::{Ipv4Addr, Ipv6Addr};
+use std::path::Path;
use std::str::FromStr;
use std::sync::RwLock;
use std::time::Instant;
@@ -455,8 +456,12 @@ pub fn read_meminfo() -> Result<ProcFsMemInfo, Error> {
meminfo.swapused = meminfo.swaptotal - meminfo.swapfree;
- let spages_line = file_read_firstline("/sys/kernel/mm/ksm/pages_sharing")?;
- meminfo.memshared = spages_line.trim_end().parse::<u64>()? * 4096;
+ if Path::new("/sys/kernel/mm/ksm/pages_sharing").exists() {
+ let spages_line = file_read_firstline("/sys/kernel/mm/ksm/pages_sharing")?;
+ meminfo.memshared = spages_line.trim_end().parse::<u64>()? * 4096;
+ } else {
+ meminfo.memshared = 0;
+ }
Ok(meminfo)
}

View File

@@ -1,36 +1,38 @@
diff --git a/.cargo/config b/.cargo/config
index 3b5b6e4..b08ce29 100644
--- a/.cargo/config
+++ b/.cargo/config
@@ -1,5 +1,5 @@
diff --git a/.cargo/config.toml b/.cargo/config.toml
index 7b442dc..6a5ba20 100644
--- a/.cargo/config.toml
+++ b/.cargo/config.toml
@@ -1,8 +1,8 @@
[source]
-[source.debian-packages]
-directory = "/usr/share/cargo/registry"
+[source.vendor]
+directory = "vendor"
+directory = "termproxy/vendor"
[source.crates-io]
-replace-with = "debian-packages"
+replace-with = "vendor"
diff --git a/Cargo.toml b/Cargo.toml
index 60c3ae0..8464181 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -16,3 +16,8 @@ curl = "0.4"
clap = "2.33"
[profile.release]
debug = true
diff --git a/termproxy/Cargo.toml b/termproxy/Cargo.toml
index d0325f4..6721965 100644
--- a/termproxy/Cargo.toml
+++ b/termproxy/Cargo.toml
@@ -22,3 +22,7 @@ nix = { version = "0.29", features = ["fs", "ioctl", "process", "term"] }
pico-args = "0.5"
proxmox-io = "1"
proxmox-sys = "0.2"
+zstd-sys = { features = [ "pkg-config" ] }
form_urlencoded = "1.2"
+
+[patch.crates-io]
+proxmox-io = { path = "../proxmox/proxmox-io" }
+proxmox-sys = { path = "../proxmox/proxmox-sys" }
diff --git a/Makefile b/Makefile
index cd583fb..42d62fe 100644
--- a/Makefile
+++ b/Makefile
@@ -35,6 +35,14 @@ $(SUBDIRS):
cargo-build:
cargo build $(CARGO_BUILD_ARGS)
+proxmox-lang = { path = "../proxmox/proxmox-lang" }
diff --git a/termproxy/Makefile b/termproxy/Makefile
index 5622380..6209365 100644
--- a/termproxy/Makefile
+++ b/termproxy/Makefile
@@ -35,6 +35,13 @@ $(TERMPROXY_BIN): .do-cargo-build
$(CARGO) build $(CARGO_BUILD_ARGS)
touch .do-cargo-build
+.PHONY: cargo-vendor
+cargo-vendor:
@@ -39,92 +41,89 @@ index cd583fb..42d62fe 100644
+ rm -f vendor/endian_trait_derive/rust-toolchain
+ sed -i "s#\"rust-toolchain[^,]\+,##" vendor/endian_trait/.cargo-checksum.json
+ sed -i "s#\"rust-toolchain[^,]\+,##" vendor/endian_trait_derive/.cargo-checksum.json
+
.PHONY: build
build:
rm -rf build
@@ -53,9 +61,10 @@ build:
.PHONY: cargo-build
cargo-build: .do-cargo-build
@@ -53,10 +60,10 @@ $(ORIG_SRC_TAR): $(BUILDDIR)
.PHONY: deb
deb: ${DEB}
-$(DEB): build
- cd build; dpkg-buildpackage -b -uc -us --no-pre-clean
- lintian ${DEB}
+$(DEB): cargo-vendor
deb: $(DEB)
-$(DEB) $(DBG_DEB) &: $(BUILDDIR)
- cd $(BUILDDIR); dpkg-buildpackage -b -uc -us
- lintian $(DEB)
- @echo $(DEB)
+$(DEB) $(DBG_DEB) &: cargo-vendor
+ echo "git clone git://git.proxmox.com/git/pve-xtermjs.git\\ngit checkout ${GITVERSION}" > debian/SOURCE
+ DEB_CARGO_PACKAGE=$(PACKAGE) dpkg-buildpackage -b -uc -us --no-pre-clean
+ lintian ../${DEB}
@echo ${DEB}
+ lintian ../$(DEB)
.PHONY: dsc
diff --git a/debian/cargo-checksum.json b/debian/cargo-checksum.json
new file mode 100644
index 0000000..e69de29
diff --git a/debian/compat b/debian/compat
new file mode 100644
index 0000000..f599e28
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+10
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..d59a66c
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,30 @@
+Source: rust-termproxy
+Section: admin
+Priority: optional
+Build-Depends: debhelper (>= 12),
+ libzstd-dev
+Maintainer: Proxmox Support Team <support@proxmox.com>
+Standards-Version: 4.5.1
+Vcs-Git: git://git.proxmox.com/git/pve-xtermjs.git
+Vcs-Browser: https://git.proxmox.com/?p=pve-xtermjs.git;a=summary
+Homepage: https://www.proxmox.com
+Rules-Requires-Root: no
+
+Package: pve-xtermjs
+Architecture: any
+Multi-Arch: allowed
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+ ${cargo:Depends}
+Recommends:
+ ${cargo:Recommends}
+Suggests:
+ ${cargo:Suggests}
+Provides:
+ ${cargo:Provides}
+Built-Using: ${cargo:Built-Using}
+XB-X-Cargo-Built-Using: ${cargo:X-Cargo-Built-Using}
+Description: HTML/JS Shell client for Proxmox projects
+ This package provides an xterm.js client/proxy for Proxmoxprojects' Hosts,
+ Proxmox VE containers or Proxmox VE VM's serial-terminals.
diff --git a/debian/rules b/debian/rules
index 2b62edd..436684e 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,7 +1,7 @@
#!/usr/bin/make -f
dsc:
diff --git a/termproxy/debian/control b/termproxy/debian/control
index 1a26f1c..583a584 100644
--- a/termproxy/debian/control
+++ b/termproxy/debian/control
@@ -1,20 +1,8 @@
Source: proxmox-termproxy
Section: admin
Priority: optional
-Build-Depends: cargo:native,
- debhelper-compat (= 13),
- dh-cargo (>= 25),
- librust-anyhow-1+default-dev,
- librust-form-urlencoded-dev,
- librust-libc-0.2+default-dev (>= 0.2.107-~~),
- librust-mio-1+default-dev,
- librust-mio-1+net-dev,
- librust-mio-1+os-ext-dev,
- librust-nix-0.29+default-dev (>= 0.26.1-~~),
- librust-pico-args-0.5+default-dev,
- librust-proxmox-io-1+default-dev,
+Build-Depends: debhelper-compat (= 13),
libstd-rust-dev,
- rustc:native,
Maintainer: Proxmox Support Team <support@proxmox.com>
Standards-Version: 4.6.1
Vcs-Git: git://git.proxmox.com/git/pve-xtermjs.git
@@ -26,7 +14,7 @@ Package: proxmox-termproxy
Architecture: any
Multi-Arch: allowed
Depends: ${misc:Depends}, ${shlibs:Depends},
-Recommends: pve-xtermjs
+Recommends: pve-xtermjs:all
Breaks: pve-xtermjs (<< 5.3.0~)
Replaces: pve-xtermjs (<< 5.3.0~)
Description: Wrapper proxy for executing programs in the system terminal
diff --git a/termproxy/debian/rules b/termproxy/debian/rules
index add090b..7d25614 100755
--- a/termproxy/debian/rules
+++ b/termproxy/debian/rules
@@ -4,7 +4,6 @@
DH_VERBOSE = 1
%:
- dh $@ --buildsystem cargo
+ dh $@
include /usr/share/dpkg/pkg-info.mk
-include /usr/share/rustc/architecture.mk
override_dh_auto_build:
dh_auto_build
diff --git a/debian/rules.debcargo.hint b/debian/rules.debcargo.hint
index 92c239b..4aaf62a 100755
--- a/debian/rules.debcargo.hint
+++ b/debian/rules.debcargo.hint
@@ -1,6 +1,6 @@
#!/usr/bin/make -f
%:
- dh $@ --buildsystem cargo
+ dh $@
export BUILD_MODE=release
override_dh_auto_test:
dh_auto_test -- test --all
@@ -23,7 +22,6 @@ export DEB_CARGO_PACKAGE=proxmox-termproxy
override_dh_auto_configure:
@perl -ne 'if (/^version\s*=\s*"(\d+(?:\.\d+)+)"/) { my $$v_cargo = $$1; my $$v_deb = "$(DEB_VERSION_UPSTREAM)"; \
die "ERROR: d/changelog <-> Cargo.toml version mismatch: $$v_cargo != $$v_deb\n" if $$v_cargo ne $$v_deb; exit(0); }' Cargo.toml
- $(CARGO) prepare-debian $(CURDIR)/debian/cargo_registry --link-from-system
dh_auto_configure
override_dh_missing:
diff --git a/xterm.js/debian/control b/xterm.js/debian/control
index 71cf01f..9c98b84 100644
--- a/xterm.js/debian/control
+++ b/xterm.js/debian/control
@@ -11,7 +11,7 @@ Rules-Requires-Root: no
Package: pve-xtermjs
Architecture: all
-Depends: ${misc:Depends}, proxmox-termproxy
+Depends: ${misc:Depends}, proxmox-termproxy:any
Description: HTML/TypeScript based fully-featured terminal for Proxmox projects
Provides the xterm.js frontend for the terminal feature in Proxmox projects'
web UI's, like for host administration or Proxmox VE containers shells.

View File

@@ -0,0 +1,16 @@
diff --git a/termproxy/Makefile b/termproxy/Makefile
index d7655b9..dd84a23 100644
--- a/termproxy/Makefile
+++ b/termproxy/Makefile
@@ -13,9 +13,9 @@ DSC=$(PACKAGE)_$(DEB_VERSION).dsc
CARGO ?= cargo
ifeq ($(BUILD_MODE), release)
CARGO_BUILD_ARGS += --release
-COMPILEDIR := target/release
+COMPILEDIR := target/aarch64-unknown-linux-gnu/release
else
-COMPILEDIR := target/debug
+COMPILEDIR := target/aarch64-unknown-linux-gnu/debug
endif
PREFIX = /usr