From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 3D15C737A1; Fri, 28 May 2021 16:30:09 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 33423AC31; Fri, 28 May 2021 16:30:09 +0200 (CEST) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS id A0E3CABFE; Fri, 28 May 2021 16:30:07 +0200 (CEST) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 6FCB14179F; Fri, 28 May 2021 16:30:07 +0200 (CEST) From: Fabian Ebner To: pve-devel@lists.proxmox.com, pbs-devel@lists.proxmox.com Date: Fri, 28 May 2021 16:29:39 +0200 Message-Id: <20210528143002.16190-1-f.ebner@proxmox.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.002 Adjusted score from AWL reputation of From: address KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [lib.rs, apt.rs, repositories.rs, mod.rs, apt.pm] Subject: [pve-devel] [PATCH-SERIES v5] APT repositories API/UI X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 May 2021 14:30:09 -0000 List the configured repositories, have some basic checks for them, and allow upgrading the package distribution before a major release. The plan is to use perlmod to make the Rust implementation available for PVE+PMG as well. For PBS, everything beside the upgrade call should be ready (the upgrade call should work too, but what's the best way to enable/disable the call pre/post-upgrade?) For PVE, it's all RFC. Note that pve-rs patches are based on top of Wolfang's staff repository. I hope I didn't completly misinterpret the inteded packaging/structure there, tried to base it off pmg-rs and the README. For perlmod (still feels like magic to me), I couldn't figure out how to have an Option as an argument for an exported function. Tried using undef, but got error: cannot deserialize weird magic perl values (10) Worked around by using empty string as a None replacement instead. Changes from v4: * some minor style improvements * call cargo clean with make clean in proxmox-apt * require 'deb' package type to detect enterprise/no-subscription repos * moved common_digest helper to the library * add replace_suite function in proxmox-apt and refactored suite_is_variant for re-use * ui: add reload button * ui: don't pass undefined digest parameter * add upgrade button * add RFC for PBS upgrade call * add RFCs for PVE integration Still missing (intended as followups): * integration in PMG. Changes v3 -> v4: * incorporate Fabian G.'s feedback: * switch to a per-file approach * check for official host names * fix case-sensitivity issue for .sources keys * include digests * fix write issue when there are no components (in case of an absolute suite) * add more tests Changes v2 -> v3: * incorporate Wolfgang's feedback * improve main warning's UI Changes v1 -> v2: * Perl -> Rust * PVE -> PBS * Don't rely on regexes for parsing. * Add writer and tests. * UI: pin warnings to the repository they're for. * Keep order of options consistent with configuration. * Smaller things noted on the individual patches. proxmox-apt: Fabian Ebner (6): initial commit add files for Debian packaging add functions to check for Proxmox repositories add check_repositories function add common_digest helper add replace_suite function and constants for the current/next stable suites proxmox-backup: Fabian Ebner (5): depend on new proxmox-apt crate api: apt: add repositories call ui: add APT repositories add check_repositories_call RFC: add upgrade_repositories call Cargo.toml | 1 + debian/control | 1 + src/api2/node/apt.rs | 176 +++++++++++++++++++++++++++++++++++- www/ServerAdministration.js | 8 ++ 4 files changed, 185 insertions(+), 1 deletion(-) proxmox-widget-toolkit: Fabian Ebner (3): add UI for APT repositories APT repositories: add warnings add upgrade button src/Makefile | 1 + src/node/APTRepositories.js | 465 ++++++++++++++++++++++++++++++++++++ 2 files changed, 466 insertions(+) create mode 100644 src/node/APTRepositories.js pve-rs: Fabian Ebner (5): add cargo config add perlmod crate with initial APT module add files for Debian packaging update .gitignore RFC: add upgrade_repositories wrapper .cargo/config | 5 ++ .gitignore | 6 +++ Cargo.toml | 3 +- Makefile | 73 ++++++++++++++++++++++++++ debian/changelog | 5 ++ debian/compat | 1 + debian/control | 20 +++++++ debian/copyright | 16 ++++++ debian/rules | 7 +++ debian/triggers | 1 + perlmod/Cargo.toml | 17 ++++++ perlmod/src/apt/mod.rs | 1 + perlmod/src/apt/repositories.rs | 92 +++++++++++++++++++++++++++++++++ perlmod/src/lib.rs | 1 + 14 files changed, 247 insertions(+), 1 deletion(-) create mode 100644 .cargo/config create mode 100644 Makefile create mode 100644 debian/changelog create mode 100644 debian/compat create mode 100644 debian/control create mode 100644 debian/copyright create mode 100755 debian/rules create mode 100644 debian/triggers create mode 100644 perlmod/Cargo.toml create mode 100644 perlmod/src/apt/mod.rs create mode 100644 perlmod/src/apt/repositories.rs create mode 100644 perlmod/src/lib.rs pve-manager: Fabian Ebner (4): api: apt: add call to list repositories ui: add panel for listing APT repositories api: apt: add call for repository check api: apt: add upgrade repos call PVE/API2/APT.pm | 265 ++++++++++++++++++++++++++++++++++++ www/manager6/node/Config.js | 8 ++ 2 files changed, 273 insertions(+) -- 2.20.1