Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 22 Oct 2023 07:50:44 +0900
From:      Tatsuki Makino <tatsuki_makino@hotmail.com>
To:        "freebsd-ports@FreeBSD.org" <freebsd-ports@freebsd.org>
Subject:   Re: lang/perl5.36: update procedure written in UPDATING is not enough
Message-ID:  <SI2PR01MB5036F4F881FCB6005E220CCCFADAA@SI2PR01MB5036.apcprd01.prod.exchangelabs.com>
In-Reply-To: <202310211305.39LD5Qt8086896@nuc.oldach.net>
References:  <202310211305.39LD5Qt8086896@nuc.oldach.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Helge Oldach wrote on 2023/10/21 14:49:
> portupgrade -f `pkg query %ro-%rv lang/perl5.28`

In the case of portmaster, it is portmaster -r perl5- .
Reinstalling everything listed in `pkg info -q -r perl5` like this is overkill.
Perhaps that is why the method that used to be "portmaster -r perl5-" (20141126) is now using "portmaster -f `pkg shlib -qR libperl.so.5.26`".

Most of *.pm files installed in /usr/local/lib/perl5/site_perl/mach/5.36/ use DynaLoader, so most ports that install it have a library linked to libperl.so.5.36.
So, those ports are targeted for updating as per the procedure.

Ports that are not targeted for updating in this procedure, but need to be reinstalled, seem to create a file named .packlist in /usr/local/lib/perl5/site_perl/mach/5.36/ directory.
Port like p5-Text-CSV-2.03 (textproc/p5-Text-CSV) is such ports.

Reinstalling all p5-* ports is slight but overkill.
Port like p5-SGMLSpm-1.03_2 (textproc/p5-SGMLSpm) is such ports.
It doesn't seem to have a file that involves the old version number.
The only reason it doesn't have a .packlist could be because it hasn't been reinstalled in a long time :)

Since perl scripts are byte-compiled and then executed, there should be no problem if a file in a running script is replaced.
The new file will be used from the next run.

Regards.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?SI2PR01MB5036F4F881FCB6005E220CCCFADAA>