[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.