From patchwork Fri Apr 23 16:15:32 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robin Roevens X-Patchwork-Id: 4208 Return-Path: Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) client-signature ECDSA (P-384)) (Client CN "mail01.haj.ipfire.org", Issuer "R3" (verified OK)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 4FRfYM5HRFz44R4 for ; Fri, 23 Apr 2021 16:16:23 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) client-signature ECDSA (P-384)) (Client CN "mail02.haj.ipfire.org", Issuer "R3" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4FRfYL189jzBZ; Fri, 23 Apr 2021 16:16:22 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [127.0.0.1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 4FRfYL0QDdz2y0r; Fri, 23 Apr 2021 16:16:22 +0000 (UTC) Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) client-signature ECDSA (P-384)) (Client CN "mail01.haj.ipfire.org", Issuer "R3" (verified OK)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 4FRfYK4SlZz2xLb for ; Fri, 23 Apr 2021 16:16:21 +0000 (UTC) Received: from knopi.disroot.org (knopi.disroot.org [178.21.23.139]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mail01.ipfire.org (Postfix) with ESMTPS id 4FRfYF08T8z5Z for ; Fri, 23 Apr 2021 16:16:17 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by disroot.org (Postfix) with ESMTP id 734DC5300E for ; Fri, 23 Apr 2021 18:16:16 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at disroot.org Received: from knopi.disroot.org ([127.0.0.1]) by localhost (disroot.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id yAT-mxN7LEd2 for ; Fri, 23 Apr 2021 18:16:15 +0200 (CEST) Received: from amaterasu.sicho.home ([192.168.0.1] helo=chojin.sicho.home) by filekeeper.sicho.home with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1lZyTC-0007uY-2I; Fri, 23 Apr 2021 18:15:54 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=disroot.org; s=mail; t=1619194574; bh=Pq+92x3fOW1VWc7+jpcyzHSGtbW2oDi1uGeRyoJ3vJw=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=K8STPvssntjWTSqM0YBHtkWglueyUy7+Y433HgJ4rt7ouGS/asDCK9usVmhTwh16r MgXAzh+5JiUqmA8IKDqdwOboauNSOsPFGJx8XVsJ07xGWKpMLTF02yDjbXHtSFOuaN 6ESdw25Nx35lM7VwB+EIt4CzGcPrvP4u4n8i1A7qifqnd9AUHMFfeFHfmdHEnENOjA dQa8RyBZ2wx4jbDcMkh1pbeYAkG1LYZ00v/eRhoej9px+ozWlu7xYuIyrick2D9rP4 GfrkQ5QmSyt9EhKAGeA+eB5pzlrtI0zADP1zJJAzY18F/ZvYAG1NH27J9oss0YYtk6 ddtwTO8QLzOLg== From: Robin Roevens To: development@lists.ipfire.org Subject: [PATCH 1/3] buildprocess: Add extra metadata to meta-* files Date: Fri, 23 Apr 2021 18:15:32 +0200 Message-Id: <20210423161534.32738-2-robin.roevens@disroot.org> In-Reply-To: <20210423161534.32738-1-robin.roevens@disroot.org> References: <20210423161534.32738-1-robin.roevens@disroot.org> Mime-Version: 1.0 X-filekeeper-MailScanner-ID: 1lZyTC-0007uY-2I X-filekeeper-MailScanner: Found to be clean X-filekeeper-MailScanner-From: robin.roevens@disroot.org X-filekeeper-MailScanner-Watermark: 1619799358.37567@rwLghHF5Ikd0b/88BY4CJA ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=lists.ipfire.org; s=202003rsa; t=1619194577; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=9qD+IBr6V/p+hJtxe9mZTpr4+u+dTb+X5eZ/rzHzvq8=; b=BWwGjqCgNbodxfMVNqrBy+fPnp/0tJSV1xv/0KNTUUI0souMeNOBPDqyGHfVr0EJts4Bea bBnvGoaxwQmTgmatV8OPGCHu3OV9RScCh4DHMpBsWNqkozuAxe6YBf6aySEWaFjp8C4qPB oYFutDP/bmRXcQ15mqNz8QjvUaMWh89G5KSx2v5nYd0KEk7OiUzv8MlsFXo2vlW8JAerZ0 HP/yiazJgB5J7LX0zkXmeCl2nPtHiyRaLtbT2tCZa288j4lhksFxfj62YNSn73QuCc5FRL BF9C0zNq8G3cZMcGVehWKRzhdNJVZyTBukIXj/l1e4k4zjm5M8WG2YL+d+kEcw== ARC-Authentication-Results: i=1; mail01.ipfire.org; dkim=pass header.d=disroot.org header.s=mail header.b=K8STPvss; dmarc=pass (policy=quarantine) header.from=disroot.org; spf=pass (mail01.ipfire.org: domain of robin.roevens@disroot.org designates 178.21.23.139 as permitted sender) smtp.mailfrom=robin.roevens@disroot.org ARC-Seal: i=1; s=202003rsa; d=lists.ipfire.org; t=1619194577; a=rsa-sha256; cv=none; b=JeuFgCFQNGqEfdQkOzUolIswgKlgYzIHrAzIW4b2erKNMKamXf8iCpznFwmbNtS7SUHqOy Az8jgqGm4bxWVZRoDXvHEYtiElgkPfNUb10yxnqEjzLYgQiwC7+Ji9V+Bpz4n69UzEMkiS qgmxxNHJ6uPBLIJrvjHqf+/vtqlEWLnXgzTlrJf5/7RM6GSesDfxJsx6OMyo3oGk4N/wUw PFT+YGQfmGRcEjujsC129+Mfx1hUn+Mlq1NmzQoBxP3HiAEnUgZHw2wBVBdGtKXkk+8413 BDU6IosVBqoW9Q+NXp+sanRsF2S/pWAQ1WqBWRWF8YW63iFqxXlEm7oCPOEE+w== X-Rspamd-Server: mail01.haj.ipfire.org X-Spamd-Result: default: False [-1.90 / 11.00]; ARC_NA(0.00)[]; R_DKIM_ALLOW(-0.20)[disroot.org:s=mail]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+a:c]; MV_CASE(0.50)[]; MIME_GOOD(-0.10)[text/plain]; PREVIOUSLY_DELIVERED(0.00)[development@lists.ipfire.org]; BROKEN_CONTENT_TYPE(1.50)[]; R_MISSING_CHARSET(2.50)[]; RCVD_COUNT_THREE(0.00)[4]; TO_MATCH_ENVRCPT_SOME(0.00)[]; IP_REPUTATION_HAM(-2.40)[asn: 50673(-0.34), country: NL(-0.01), ip: 178.21.23.139(-0.85)]; DKIM_TRACE(0.00)[disroot.org:+]; RCPT_COUNT_TWO(0.00)[2]; MID_CONTAINS_FROM(1.00)[]; BLOCKLISTDE_FAIL(0.00)[178.21.23.139:server fail]; DMARC_POLICY_ALLOW(-0.50)[disroot.org,quarantine]; NEURAL_HAM(-1.00)[-1.000]; ARC_SIGNED(0.00)[lists.ipfire.org:s=202003rsa:i=1]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:50673, ipnet:178.21.23.0/24, country:NL]; BAYES_HAM(-3.00)[99.99%] X-Rspamd-Queue-Id: 4FRfYF08T8z5Z Authentication-Results: mail01.ipfire.org; dkim=pass header.d=disroot.org header.s=mail header.b=K8STPvss; dmarc=pass (policy=quarantine) header.from=disroot.org; spf=pass (mail01.ipfire.org: domain of robin.roevens@disroot.org designates 178.21.23.139 as permitted sender) smtp.mailfrom=robin.roevens@disroot.org X-BeenThere: development@lists.ipfire.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: IPFire development talk List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: development-bounces@lists.ipfire.org Sender: "Development" * Introduce SUMMARY and INITSCRIPTS macro's in LFS-makefiles. * Add a Summary and InitScripts field to the meta-* addon files containing the value's of those macro's. * Replace the INSTALL_INITSCRIPT makefile macro by a new INSTALL_INITSCRIPTS macro/method that will install all initscripts defined in the new INITSCRIPTS macro. * Adapt libvirt and zabbix_agentd pak as examples of how to use this. Signed-off-by: Robin Roevens --- lfs/Config | 8 ++++++-- lfs/libvirt | 6 ++++-- lfs/zabbix_agentd | 5 ++++- src/pakfire/meta | 2 ++ 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/lfs/Config b/lfs/Config index eadbbc408..61d6f0c82 100644 --- a/lfs/Config +++ b/lfs/Config @@ -299,15 +299,19 @@ define PAK # Create meta file sed \ -e "s/NAME/$(PROG)/g" \ + -e "s/SUMMARY/$(SUMMARY)/g" \ -e "s/VER/$(VER)/g" \ -e "s/RELEASE/$(PAK_VER)/g" \ -e "s/DEPS/$(DEPS)/g" \ -e "s/SIZE/$$(stat --format=%s /install/packages/$(PROG)-$(VER)-$(PAK_VER).ipfire)/g" \ + -e "s/INITSCRIPTS/$(INITSCRIPTS)/g" \ < /usr/src/src/pakfire/meta > /install/packages/meta-$(PROG) endef -define INSTALL_INITSCRIPT - install -m 754 -v $(DIR_SRC)/src/initscripts/packages/$(1) /etc/rc.d/init.d/$(1) +define INSTALL_INITSCRIPTS + for initscript in $(INITSCRIPTS); do \ + install -m 754 -v $(DIR_SRC)/src/initscripts/packages/$$initscript /etc/rc.d/init.d/$$initscript; \ + done endef ifeq "$(BUILD_ARCH)" "$(filter $(BUILD_ARCH),aarch64 riscv64)" diff --git a/lfs/libvirt b/lfs/libvirt index 28a95d317..be5d3db3a 100644 --- a/lfs/libvirt +++ b/lfs/libvirt @@ -25,6 +25,7 @@ include Config VER = 6.5.0 +SUMMARY = Server side daemon and supporting files for libvirt THISAPP = libvirt-$(VER) DL_FILE = $(THISAPP).tar.xz @@ -37,6 +38,8 @@ PAK_VER = 25 DEPS = ebtables libpciaccess libtirpc libyajl ncat qemu +INITSCRIPTS= libvirtd virtlogd + ############################################################################### # Top-level Rules ############################################################################### @@ -121,8 +124,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP)/build_libvirt && make install #install initscripts - $(call INSTALL_INITSCRIPT,libvirtd) - $(call INSTALL_INITSCRIPT,virtlogd) + @$(INSTALL_INITSCRIPTS) mv /usr/libexec/libvirt-guests.sh /etc/rc.d/init.d/libvirt-guests # Backup diff --git a/lfs/zabbix_agentd b/lfs/zabbix_agentd index c69643a54..a72fe024b 100644 --- a/lfs/zabbix_agentd +++ b/lfs/zabbix_agentd @@ -25,6 +25,7 @@ include Config VER = 4.2.6 +SUMMARY = Zabbix Agent THISAPP = zabbix-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -35,6 +36,8 @@ PROG = zabbix_agentd PAK_VER = 4 DEPS = +INITSCRIPTS= zabbix_agentd + ############################################################################### # Top-level Rules ############################################################################### @@ -106,7 +109,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) chown zabbix.zabbix /var/run/zabbix # Install initscripts - $(call INSTALL_INITSCRIPT,zabbix_agentd) + @$(INSTALL_INITSCRIPTS) # Install sudoers include file install -v -m 644 $(DIR_SRC)/config/zabbix_agentd/sudoers \ diff --git a/src/pakfire/meta b/src/pakfire/meta index d97b2a0fa..849b9cd6c 100644 --- a/src/pakfire/meta +++ b/src/pakfire/meta @@ -1,6 +1,8 @@ Name: NAME +Summary: SUMMARY ProgVersion: VER Release: RELEASE Size: SIZE Dependencies: DEPS File: NAME-VER-RELEASE.ipfire +InitScripts: INITSCRIPTS From patchwork Fri Apr 23 16:15:33 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robin Roevens X-Patchwork-Id: 4209 Return-Path: Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) client-signature ECDSA (P-384)) (Client CN "mail01.haj.ipfire.org", Issuer "R3" (verified OK)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 4FRfYP1j84z44R4 for ; Fri, 23 Apr 2021 16:16:25 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) client-signature ECDSA (P-384)) (Client CN "mail02.haj.ipfire.org", Issuer "R3" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4FRfYL4gRpz1Zb; Fri, 23 Apr 2021 16:16:22 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [127.0.0.1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 4FRfYL13Mqz2yNS; Fri, 23 Apr 2021 16:16:22 +0000 (UTC) Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) client-signature ECDSA (P-384)) (Client CN "mail01.haj.ipfire.org", Issuer "R3" (verified OK)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 4FRfYK4kVNz2xmS for ; Fri, 23 Apr 2021 16:16:21 +0000 (UTC) Received: from knopi.disroot.org (knopi.disroot.org [178.21.23.139]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mail01.ipfire.org (Postfix) with ESMTPS id 4FRfYD1lsBzBZ for ; Fri, 23 Apr 2021 16:16:16 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by disroot.org (Postfix) with ESMTP id E4C5252DD7 for ; Fri, 23 Apr 2021 18:16:15 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at disroot.org Received: from knopi.disroot.org ([127.0.0.1]) by localhost (disroot.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id RpL2b0PE7pLJ for ; Fri, 23 Apr 2021 18:16:14 +0200 (CEST) Received: from amaterasu.sicho.home ([192.168.0.1] helo=chojin.sicho.home) by filekeeper.sicho.home with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1lZyTF-0007uY-An; Fri, 23 Apr 2021 18:15:57 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=disroot.org; s=mail; t=1619194573; bh=JZWJ34kNbtCUvY70OmEJe7qOtQPl3k4muAD54k4inoM=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=WjYuMdmAKlHhsvyUUu36UArJm/2XA58mYp06muAUAYzrMyYLbjwCHRJurPUUQlp9n ERhCo1arMe2X0517L0H1Zeu4qm3nlUdY1gkILmq0IPsE/md1xPfOUrFiXni/Y1wI+T jjPkpdkA0k6uIbPD/oQAvHmjibAeI1B7VEaIBhU3XS7sGGJSR7hjdrOhkkaXpQXOJt ZTqwncQDmLlgVb6seUWBhaDnPZqL02bHRFDjWFN0WhCx9/25HaR6WJqa2lZSrZ2YbN sGNimIExBxuw1G2NZlPRepR4vkG/gg1vGQzBEYo4ozNUVkSG6XTUvCKFUc1roAp5BJ h7SIXsdldn+mQ== From: Robin Roevens To: development@lists.ipfire.org Subject: [PATCH 2/3] pakfire: add 'info ' option Date: Fri, 23 Apr 2021 18:15:33 +0200 Message-Id: <20210423161534.32738-3-robin.roevens@disroot.org> In-Reply-To: <20210423161534.32738-1-robin.roevens@disroot.org> References: <20210423161534.32738-1-robin.roevens@disroot.org> Mime-Version: 1.0 X-filekeeper-MailScanner-ID: 1lZyTF-0007uY-An X-filekeeper-MailScanner: Found to be clean X-filekeeper-MailScanner-From: robin.roevens@disroot.org X-filekeeper-MailScanner-Watermark: 1619799358.60258@iDO7p3OfJsNy4GRl41wCOQ ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=lists.ipfire.org; s=202003rsa; t=1619194576; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=+F0UDBdWPZv8+7T0EZg9r8/1qGG+Mme6YgJY1eFbhvg=; b=lrnunU2LwBCR9s5z0CID9rVHFaTZ1Eh5w/0ObFo6vWD+HxPBb/y1gQzJCk3u068IPsvRbN Sx3HdsYwnhXj6UOmO0Lv4//WHaZ1qzBZ+S4QS48uZDocWXL0PwE8l73eA3Wg2DWjHxAGXJ yJEd77Quy0Ywd5zwDSirwfXdmh4Z7hwixkYGWKb0iTxRCMts6Dh4/WOo377P0m7gVIGRSv odCaggg5hRW7QBVtW2Oexogh/KxhJSxP2qjxdmkXOA/AxE0y9L8I1aHT2y1ok72sdazdsG k88680IdvZVjBBWD7JRvYKqIx9rGT7m1cwguMg4vQ81WLWeFccq9yU6xxBQ9hQ== ARC-Authentication-Results: i=1; mail01.ipfire.org; dkim=pass header.d=disroot.org header.s=mail header.b=WjYuMdmA; dmarc=pass (policy=quarantine) header.from=disroot.org; spf=pass (mail01.ipfire.org: domain of robin.roevens@disroot.org designates 178.21.23.139 as permitted sender) smtp.mailfrom=robin.roevens@disroot.org ARC-Seal: i=1; s=202003rsa; d=lists.ipfire.org; t=1619194576; a=rsa-sha256; cv=none; b=bTMyxHYEVSjVA0K+kmDLYik0Vgl2C4OGz7ji4JGdczF0klGk9D0Mx7klIosl3pfS0zE2Ag 1obM1z9XMDr9I2076YIJW+Qj3eG95WbjrcUI8AUd2RfLcpaHfmi9en3AptLuwQYMJRX3eC 6LyZ6yjZ/Duq1g6HY+imhJ+LxKbmGIvQcIwCenJ5CMfMyJFfVS4mpC12AmtR0SWanbgleK LDp0pjvwNOD2xqFevmW3Q8pRVyNoXUIC00CYI8VsX5DZa7ymr20algEDOLgGaqZae3oa2B DOzqpgiUHuPEw/AzgtwxJir2d3dFabcRLAePqZyKDfvraY69P6G4PmqXJ3ryIQ== X-Rspamd-Server: mail01.haj.ipfire.org X-Spamd-Result: default: False [-1.90 / 11.00]; ARC_NA(0.00)[]; R_DKIM_ALLOW(-0.20)[disroot.org:s=mail]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+a:c]; MV_CASE(0.50)[]; MIME_GOOD(-0.10)[text/plain]; PREVIOUSLY_DELIVERED(0.00)[development@lists.ipfire.org]; BROKEN_CONTENT_TYPE(1.50)[]; R_MISSING_CHARSET(2.50)[]; RCVD_COUNT_THREE(0.00)[4]; TO_MATCH_ENVRCPT_SOME(0.00)[]; IP_REPUTATION_HAM(-2.40)[asn: 50673(-0.34), country: NL(-0.01), ip: 178.21.23.139(-0.85)]; DKIM_TRACE(0.00)[disroot.org:+]; RCPT_COUNT_TWO(0.00)[2]; MID_CONTAINS_FROM(1.00)[]; BLOCKLISTDE_FAIL(0.00)[178.21.23.139:server fail]; DMARC_POLICY_ALLOW(-0.50)[disroot.org,quarantine]; NEURAL_HAM(-1.00)[-1.000]; ARC_SIGNED(0.00)[lists.ipfire.org:s=202003rsa:i=1]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:50673, ipnet:178.21.23.0/24, country:NL]; BAYES_HAM(-3.00)[99.99%] X-Rspamd-Queue-Id: 4FRfYD1lsBzBZ Authentication-Results: mail01.ipfire.org; dkim=pass header.d=disroot.org header.s=mail header.b=WjYuMdmA; dmarc=pass (policy=quarantine) header.from=disroot.org; spf=pass (mail01.ipfire.org: domain of robin.roevens@disroot.org designates 178.21.23.139 as permitted sender) smtp.mailfrom=robin.roevens@disroot.org X-BeenThere: development@lists.ipfire.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: IPFire development talk List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: development-bounces@lists.ipfire.org Sender: "Development" Add an 'info ' option to pakfire to display pakfile metadata and current state of the pak on the system. Signed-off-by: Robin Roevens --- src/pakfire/lib/functions.pl | 124 ++++++++++++++++++++++++++++++++++- src/pakfire/pakfire | 21 ++++++ 2 files changed, 144 insertions(+), 1 deletion(-) diff --git a/src/pakfire/lib/functions.pl b/src/pakfire/lib/functions.pl index 4d5c6219a..46da06a88 100644 --- a/src/pakfire/lib/functions.pl +++ b/src/pakfire/lib/functions.pl @@ -110,7 +110,8 @@ sub usage { &Pakfire::message("Usage: pakfire [options] "); &Pakfire::message(" - Contacts the servers for new lists of paks."); &Pakfire::message(" - Installs the latest version of all paks."); - &Pakfire::message(" - Outputs a short list with all available paks."); + &Pakfire::message(" [installed/notinstalled] - Outputs a list with all, installed or available paks."); + &Pakfire::message(" - Output pak metadata."); &Pakfire::message(" - Outputs a summary about available core upgrades, updates and a required reboot"); &Pakfire::message(""); &Pakfire::message(" Global options:"); @@ -538,6 +539,127 @@ sub dblist { } } +sub pakinfo { + ### This subroutine shows available info for a package + # Pass package name and type of info as argument: &Pakfire::pakinfo(package, "latest") + # Type can be "latest" or "installed" + # Usage is always with two argument. + my $pak = shift; + my $info_type = shift; + + my $found = 0; + my @templine; + my ($available_version, $available_release); + + if ("$info_type" eq "latest") { + ### Make sure that the info is not outdated. + &Pakfire::dbgetlist("noforce"); + + ### Check if package is in packages_list and get latest available version + open(FILE, "<$Conf::dbdir/lists/packages_list.db"); + my @db = ; + close(FILE); + + foreach (@db) { + @templine = split(/;/,$_); + if ("$templine[0]" eq "$pak" ) { + $found = 1; + $available_version = $templine[1]; + $available_release = $templine[2]; + break; + } + } + } + + ### Parse latest package metadata + my $installed = !&isinstalled("$pak"); + my @file; + + if ($found && "$info_type" eq "latest") { + getmetafile("$pak"); + + open(FILE, "<$Conf::dbdir/meta/meta-$pak"); + @file = ; + close(FILE); + } elsif ($installed) { + open(FILE, "<$Conf::dbdir/installed/meta-$pak"); + @file = ; + close(FILE); + } else { + message("PAKFIRE WARN: Pak '$pak' not found."); + return 1; + } + + my ($name, $summary, $size, $dependencies, $pakfile, $initscripts); + foreach $line (@file) { + @templine = split(/\: /,$line); + if ("$templine[0]" eq "Name") { + $name = $templine[1]; + chomp($name); + } elsif ("$templine[0]" eq "Summary") { + $summary = $templine[1]; + chomp($summary); + } elsif ("$templine[0]" eq "Size") { + $size = &beautifysize("$templine[1]"); + chomp($size); + } elsif ("$templine[0]" eq "Dependencies") { + $dependencies = $templine[1]; + chomp($dependencies); + } elsif ("$templine[0]" eq "File") { + $pakfile = $templine[1]; + chomp($pakfile); + } elsif ("$templine[0]" eq "InitScripts") { + $initscripts = $templine[1]; + chomp($initscripts); + } + } + + ### Get installed version information + my ($installed_version, $installed_release); + + if ($installed) { + open(FILE, "<$Conf::dbdir/installed/meta-$pak"); + @file = ; + close(FILE); + + foreach $line (@file) { + @templine = split(/\: /,$line); + if ("$templine[0]" eq "ProgVersion") { + $installed_version = $templine[1]; + chomp($installed_version); + } elsif ("$templine[0]" eq "Release") { + $installed_release = $templine[1]; + chomp($installed_release); + } + } + } + + print "Name: $name\n"; + if ("$info_type" eq "latest") { + print "Version: $available_version-$available_release\n"; + } else { + print "Version: $installed_version-$installed_release\n"; + } + print "Summary: $summary\nSize: $size\nDependencies: $dependencies\nPakfile: $pakfile\nInitScripts: $initscripts\n"; + if ($installed) { + print "Installed: Yes\n"; + } else { + print "Installed: No\n"; + } + if ("$info_type" eq "latest") { + if (!$found) { + print "Status: obsolete (version $installed_version-$installed_release is installed)\n"; + } elsif ($installed && "$installed_release" < "$available_release") { + print "Status: outdated (version $installed_version-$installed_release is installed)\n"; + } elsif ($installed) { + print "Status: up-to-date\n"; + } else { + print "Status: not installed\n"; + } + } + print "\n"; +} + sub resolvedeps_one { my $pak = shift; diff --git a/src/pakfire/pakfire b/src/pakfire/pakfire index c69a8d3ad..5507c8e92 100644 --- a/src/pakfire/pakfire +++ b/src/pakfire/pakfire @@ -303,6 +303,27 @@ &Pakfire::message("PAKFIRE WARN: Not a known option $ARGV[1]") if ($ARGV[1]); &Pakfire::dblist("all", "noweb"); } + + } elsif ("$ARGV[0]" eq "info") { + shift; + + my @paks; + my $pak; + foreach $pak (@ARGV) { + unless ("$pak" =~ "^-") { + push(@paks,$pak); + } + } + + unless ("@paks") { + &Pakfire::message("PAKFIRE ERROR: missing package name"); + &Pakfire::usage; + exit 1; + } + + foreach $pak (@paks) { + &Pakfire::pakinfo("$pak", "latest"); + } } elsif ("$ARGV[0]" eq "resolvedeps") { foreach (@ARGV) { From patchwork Fri Apr 23 16:15:34 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robin Roevens X-Patchwork-Id: 4210 Return-Path: Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) client-signature ECDSA (P-384)) (Client CN "mail01.haj.ipfire.org", Issuer "R3" (verified OK)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 4FRfYX5tfRz44R4 for ; Fri, 23 Apr 2021 16:16:32 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) client-signature ECDSA (P-384)) (Client CN "mail02.haj.ipfire.org", Issuer "R3" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4FRfYX2pR6z2cD; Fri, 23 Apr 2021 16:16:32 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [127.0.0.1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 4FRfYX2135z2y0r; Fri, 23 Apr 2021 16:16:32 +0000 (UTC) Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) client-signature ECDSA (P-384)) (Client CN "mail01.haj.ipfire.org", Issuer "R3" (verified OK)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 4FRfYW3Pztz2xLb for ; Fri, 23 Apr 2021 16:16:31 +0000 (UTC) Received: from knopi.disroot.org (knopi.disroot.org [178.21.23.139]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mail01.ipfire.org (Postfix) with ESMTPS id 4FRfYS5nv0z5Z for ; Fri, 23 Apr 2021 16:16:28 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by disroot.org (Postfix) with ESMTP id 3786253032 for ; Fri, 23 Apr 2021 18:16:28 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at disroot.org Received: from knopi.disroot.org ([127.0.0.1]) by localhost (disroot.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id sXMK8mpg211u for ; Fri, 23 Apr 2021 18:16:26 +0200 (CEST) Received: from amaterasu.sicho.home ([192.168.0.1] helo=chojin.sicho.home) by filekeeper.sicho.home with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1lZyTH-0007uY-8q; Fri, 23 Apr 2021 18:15:59 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=disroot.org; s=mail; t=1619194581; bh=DxADJthE0ozXEYEdyjLxtZ6JjrjmypICDMDQDYu7pI8=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=f4D2f2FSe5lr+KxDSjd3ES8PrLOuSZroPqOZ3coRinn1fvUFDuD8a5BSCjqc0beep o+itTEobv2FA3gMXDrK4epHLO9cyVTmbxmRVlq6ubI454LYSD+HcNLskKmxMthEXGb ReU0+FvcRnMt1SeQrTIFg1Sr5mKBgqJCXe/R+uubnGWSdGs1EG6u3TMc8XD4y7nMXI R8+7+Gs8F/+whkhgDxwu2B64KscpyDk+9d47XYQlsPXtNCEvZOsv0XvMkqo6zCq97y IeeGXONBaS5tDPTi6js55Hpy/cSo13u4B2bP0q7MBzWH+hUXEx2w8J6Y5bWCeuviUY 8g2yY/hrq995A== From: Robin Roevens To: development@lists.ipfire.org Subject: [PATCH 3/3] services.cgi: use new Pakfire::pakinfo function Date: Fri, 23 Apr 2021 18:15:34 +0200 Message-Id: <20210423161534.32738-4-robin.roevens@disroot.org> In-Reply-To: <20210423161534.32738-1-robin.roevens@disroot.org> References: <20210423161534.32738-1-robin.roevens@disroot.org> Mime-Version: 1.0 X-filekeeper-MailScanner-ID: 1lZyTH-0007uY-8q X-filekeeper-MailScanner: Found to be clean X-filekeeper-MailScanner-From: robin.roevens@disroot.org X-filekeeper-MailScanner-Watermark: 1619799373.16979@bV0BR/XuRpbzMGaMmpEX8Q ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=lists.ipfire.org; s=202003rsa; t=1619194588; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=atky2w0Td7Gv8HkD8tzbrBrPav9e2RhP1QTYO8x762A=; b=UMbogUqRzm9nRO/xdMvdZ/66zF2yQ0ajl+QVEynEV1zcJYDoKRsMUJW1uwQnGXpQNaPVWP UmBpeZ+S9sfDloiwyWW6FWbMVegm5YHMCM5mdpoPhR7RQZoJpCOJpHknlcgVpvFi4nB0h1 lEKGD6F+VqX2SOuALGQCgkSK0oko0X+waoQeK+09rYcbo1IDdKm57QzIpfui6g5Q422Ew6 v+1HM4Z6Fb1MQ3sU8lytehOGtsHA16dLZPRiZqHwElCV8voydLJKMbEXdePgYVddyLZsd1 DK0nX9rt7y/G1MLxLG0um7Fwj0FA9cBGjKI3Dn2R4iOsmGhLUFdUv8yRlwNmsA== ARC-Authentication-Results: i=1; mail01.ipfire.org; dkim=pass header.d=disroot.org header.s=mail header.b=f4D2f2FS; dmarc=pass (policy=quarantine) header.from=disroot.org; spf=pass (mail01.ipfire.org: domain of robin.roevens@disroot.org designates 178.21.23.139 as permitted sender) smtp.mailfrom=robin.roevens@disroot.org ARC-Seal: i=1; s=202003rsa; d=lists.ipfire.org; t=1619194588; a=rsa-sha256; cv=none; b=hXiVBKYMyMrmsK0QfPw8oDSUspfRkEJYDCPHl1y1SFMIeH0EeuejpG/MYOfM40Cf8oTvlZ 8ZNGjYzlwMy1sEGJcr0hUeBlyZHPRBaFR54hbFHCH7Piiw12XIfREEJe1si9ReOYHLGpgT gLnkoXoRgQX98PiBxZV8R0BbJaq0QhUd5R0puGFy6mHdYx1tPyxu77pzAimaCho6MWZFck 0cofyEq/GiPUUjahfciKmXcVRMOJZvHm1N0EeT4SJoE8tW7aCEbv/8rgQoBE6wSzoZLLUg ylajWaP61hByhnPUHe5i41VGOJZB7lP+uvpWCyb8HJH8ypUkTWCIVKr01ZPsdg== X-Rspamd-Server: mail01.haj.ipfire.org X-Spamd-Result: default: False [-2.20 / 11.00]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+a:c]; MV_CASE(0.50)[]; R_MISSING_CHARSET(2.50)[]; REPLY(-4.00)[]; BROKEN_CONTENT_TYPE(1.50)[]; IP_REPUTATION_HAM(-2.40)[asn: 50673(-0.34), country: NL(-0.01), ip: 178.21.23.139(-0.85)]; RCVD_COUNT_THREE(0.00)[4]; ARC_SIGNED(0.00)[lists.ipfire.org:s=202003rsa:i=1]; DKIM_TRACE(0.00)[disroot.org:+]; RCPT_COUNT_TWO(0.00)[2]; DMARC_POLICY_ALLOW(-0.50)[disroot.org,quarantine]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:~]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:50673, ipnet:178.21.23.0/24, country:NL]; BAYES_HAM(-0.10)[65.65%]; ARC_NA(0.00)[]; R_DKIM_ALLOW(-0.20)[disroot.org:s=mail]; FROM_HAS_DN(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[development@lists.ipfire.org]; HTML_SHORT_LINK_IMG_3(0.50)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; BLOCKLISTDE_FAIL(0.00)[178.21.23.139:server fail]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM(-1.00)[-1.000]; MIME_HTML_ONLY(0.20)[] X-Rspamd-Queue-Id: 4FRfYS5nv0z5Z Authentication-Results: mail01.ipfire.org; dkim=pass header.d=disroot.org header.s=mail header.b=f4D2f2FS; dmarc=pass (policy=quarantine) header.from=disroot.org; spf=pass (mail01.ipfire.org: domain of robin.roevens@disroot.org designates 178.21.23.139 as permitted sender) smtp.mailfrom=robin.roevens@disroot.org X-BeenThere: development@lists.ipfire.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: IPFire development talk List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: development-bounces@lists.ipfire.org Sender: "Development" X-Spam: Yes Use new Pakfire::pakinfo function to determine installed addons and related services/initscripts more reliable. Signed-off-by: Robin Roevens --- html/cgi-bin/services.cgi | 96 ++++++++++++++++++++++++--------------- 1 file changed, 59 insertions(+), 37 deletions(-) diff --git a/html/cgi-bin/services.cgi b/html/cgi-bin/services.cgi index 38b89ef1e..66b0d711f 100644 --- a/html/cgi-bin/services.cgi +++ b/html/cgi-bin/services.cgi @@ -29,6 +29,7 @@ require '/var/ipfire/general-functions.pl'; require "${General::swroot}/lang.pl"; require "${General::swroot}/header.pl"; require "${General::swroot}/graphs.pl"; +require "/opt/pakfire/lib/functions.pl"; my %color = (); my %mainsettings = (); @@ -160,48 +161,69 @@ END my $lines=0; # Used to count the outputlines to make different bgcolor - # Generate list of installed addon pak's - opendir (DIR, "/opt/pakfire/db/installed") || die "Cannot opendir /opt/pakfire/db/installed/: $!"; - my @pak = sort readdir DIR; - foreach (@pak){ - chomp($_); - next unless (m/^meta-/); - s/^meta-//; - - # Check which of the paks are services - if (-e "/etc/init.d/$_") { - # blacklist some packages - # - # alsa has trouble with the volume saving and was not really stopped - # mdadm should not stopped with webif because this could crash the system - # - if ( $_ eq 'squid' ) { - next; - } - if ( ($_ ne "alsa") && ($_ ne "mdadm") ) { - $lines++; - if ($lines % 2){ - print ""; - $col="bgcolor='$color{'color22'}'"; - }else{ - print ""; - $col="bgcolor='$color{'color20'}'"; + my ($paklist, $pakinfo); + my (@templine, @templine2); + my ($listline, $infoline); + my @paks; + my @addon_services; + + # Generate list of installed addon pak services + $Pakfire::enable_colors = 0; + open OUT, '>', \$paklist; + select OUT; + eval { \&Pakfire::dblist("installed", "noweb"); }; + select STDOUT; + + foreach $listline (split(/^/, "$paklist")) { + chomp($listline); + @templine = split(/\: /, $listline); + + if ("@templine[0]" eq "Name") { + open OUT, '>', \$pakinfo; + select OUT; + eval { \&Pakfire::pakinfo("@templine[1]", "installed"); }; + select STDOUT; + + foreach $infoline (split(/^/, $pakinfo)) { + chomp($infoline); + @templine2 = split(/\: /, $infoline); + + if ("@templine2[0]" eq "InitScripts" && "@templine2[1]") { + push(@addon_services, split(" ", "@templine2[1]")); } - print "$_ "; - my $status = isautorun($_,$col); - print "$status "; - print "$Lang::tr{"; - print "$Lang::tr{ "; - my $status = &isrunningaddon($_,$col); - $status =~ s/\\[[0-1]\;[0-9]+m//g; - - chomp($status); - print "$status"; - print ""; } } } + foreach (@addon_services) { + $lines++; + if ($lines % 2){ + print ""; + $col="bgcolor='$color{'color22'}'"; + }else{ + print ""; + $col="bgcolor='$color{'color20'}'"; + } + print "$_ "; + my $status = isautorun($_,$col); + print "$status "; + # Don't allow user to start/stop folowing services from webui: + # - alsa has trouble with the volume saving and was not really stopped + if ($_ eq "alsa") { + print ""; + print " "; + } else { + print "$Lang::tr{"; + print "$Lang::tr{ "; + } + my $status = &isrunningaddon($_,$col); + $status =~ s/\\[[0-1]\;[0-9]+m//g; + + chomp($status); + print "$status"; + print ""; + } + print "\n"; &Header::closebox();