[Bug 277411] ports-mgmt/pkg: @postunexec command in pkg-plist isn't executed when package is upgraded with `pkg upgrade`
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 277411] ports-mgmt/pkg: @postunexec command in pkg-plist isn't executed when package is upgraded with `pkg upgrade`"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 277411] ports-mgmt/pkg: @postunexec command in pkg-plist isn't executed when package is upgraded with `pkg upgrade`"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 277411] ports-mgmt/pkg: @postunexec command in pkg-plist isn't executed when package is upgraded with `pkg upgrade`"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 277411] ports-mgmt/pkg: @postunexec command in pkg-plist isn't executed when package is upgraded with `pkg upgrade`"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 01 Mar 2024 08:39:15 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=277411 Bug ID: 277411 Summary: ports-mgmt/pkg: @postunexec command in pkg-plist isn't executed when package is upgraded with `pkg upgrade` Product: Ports & Packages Version: Latest Hardware: Any OS: Any Status: New Severity: Affects Only Me Priority: --- Component: Individual Port(s) Assignee: pkg@FreeBSD.org Reporter: yasu@freebsd.org Assignee: pkg@FreeBSD.org Flags: maintainer-feedback?(pkg@FreeBSD.org) Created attachment 248845 --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=248845&action=edit Patch to add misc/foo to ports tree Attached patch add 'misc/foo', a sample port to reproduce the problem, to the ports tree. misc/foo is very simple. It installs only one shell script 'foo' to ${PREFIX}/bin. But pkg-plist does something more. ---------------------------------------------------------------------- % pwd /usr/ports/misc/foo % cat pkg-plist bin/foo @preexec echo "Executing @preexec command of %%PKGNAME%%." @postexec echo "Executing @postexec command of %%PKGNAME%%." @preunexec echo "Executing @preunexec command of %%PKGNAME%%." @postunexec echo "Executing @postunexec command of %%PKGNAME%%." % ---------------------------------------------------------------------- It includes @preexec/@postexec/@preunexec/@postunexec commands showing message that each command is executed. I build the port with poudriere and install the package with `pkg install`. Then I get following result. ---------------------------------------------------------------------- # pkg install -y foo Updating Poudriere repository catalogue... Fetching meta.conf: 100% 163 B 0.2kB/s 00:01 Fetching packagesite.pkg: 100% 29 KiB 30.1kB/s 00:01 Processing entries: 100% Poudriere repository update completed. 103 packages processed. All repositories are up to date. Checking integrity... done (0 conflicting) The following 1 package(s) will be affected (of 0 checked): New packages to be INSTALLED: foo: 1.0 Number of packages to be installed: 1 [1/1] Installing foo-1.0... Executing @preexec command of foo-1.0. [1/1] Extracting foo-1.0: 100% Executing @postexec command of foo-1.0. # ---------------------------------------------------------------------- And if I uninstall the package with `pkg delete` then I get following result. ---------------------------------------------------------------------- # pkg delete -y foo Checking integrity... done (0 conflicting) Deinstallation has been requested for the following 1 packages (of 0 packages in the universe): Installed packages to be REMOVED: foo: 1.0 Number of packages to be removed: 1 [1/1] Deinstalling foo-1.0... Executing @preunexec command of foo-1.0. [1/1] Deleting files for foo-1.0: 100% Executing @postunexec command of foo-1.0. # ---------------------------------------------------------------------- All of @preexec/@postexec/@preunexec/@postunexec work as is expected Next, I install foo-1.0 again, bump PORTREVISION of Makefile, rebuild the package with poudriere, and upgrade from 1.0 to 1.0_1 with `pkg upgrade`. Then I get following result. ---------------------------------------------------------------------- # pkg info -aq | fgrep foo foo-1.0 # pkg upgrade -y Updating Poudriere repository catalogue... Fetching meta.conf: 100% 163 B 0.2kB/s 00:01 Fetching packagesite.pkg: 100% 29 KiB 30.0kB/s 00:01 Processing entries: 100% Poudriere repository update completed. 103 packages processed. All repositories are up to date. Checking for upgrades (2 candidates): 100% Processing candidates (2 candidates): 100% Checking integrity... done (0 conflicting) The following 1 package(s) will be affected (of 0 checked): Installed packages to be UPGRADED: foo: 1.0 -> 1.0_1 Number of packages to be upgraded: 1 [1/1] Upgrading foo from 1.0 to 1.0_1... Executing @preexec command of foo-1.0_1. [1/1] Extracting foo-1.0_1: 100% Executing @preunexec command of foo-1.0. Executing @postexec command of foo-1.0_1. root@rolling-vm-freebsd4[73]# ---------------------------------------------------------------------- While @preexec of foo-1.0_1, @preunexec of foo-1.0 and @posttexec of foo-1.0_1 are executed, @postunexec of foo-1.0 isn't executed. -- You are receiving this mail because: You are the assignee for the bug.