[Patch] Using MACHINE_ARCH identifiers in pkg

olli hauer ohauer at gmx.de
Thu Aug 14 19:38:47 UTC 2014


On 2014-08-14 17:35, Nathan Whitehorn wrote:
> 
> On 08/14/14 08:02, Bryan Drewery wrote:
>> On 5/28/2014 11:54 AM, Nathan Whitehorn wrote:
>>> The current/previous values are also kept so
>>> that the patched pkg can install a package marked either with an x86:64
>>> or amd64-type architecture ID (symlinks will be needed for a little bit
>>> on the package server to allow both clients to work). Limited testing
>>> suggests it works well -- I can fetch and install packages fine. More
>>> testing would be great.
>> Symlinks are now setup to make testing of this easier.
>>
>> I'll let Bapt signoff on this patch officially and its timeframe. It
>> seems reasonable to me. The use of 'x86' almost caused a regression
>> recently due to its ambiguity.
>>
>> Cheers,
>> Bryan
>>
> 
> Thanks Bryan! If anyone is interested in testing the adapted pkg, there is a patch that can be applied to ports at http://people.freebsd.org/~nwhitehorn/pkg-new-abi.diff. It tries to make this transition as painless as possible by doing the following things:
> 1. Have pkg use e.g. FreeBSD:11:amd64 instead of freebsd:11:x86:64 as an ABI string.
> 2. Maintain the freebsd:11:x86:64-type strings as the "altabi" config variable.
> 3. pkg will install packages where the architecture ID matches either the ABI or ALTABI value, which means that new pkg can install packages made with the older version.
> 4. Patches the ports-mgmt/pkg Makefile so that the package for pkg itself is given a freebsd:11:x86:64-type architecture. This prevents pkg from choking on an update to itself and should, with the symlinks discussed above, make the transition painless and transparent.
> 
> Especially point (4) I'd appreciate testing on if anyone is generating private package repositories.
> -Nathan

Hi Nathan,

Thanks for the patch, but there is a possible chicken <-> egg issue.

I removed old pkg packages from the last build and running a new build so pkg was build with the patch.
The first client complains about wrong architecture and there was no way to reinstall pkg (even not with force)
Quick solution was to distribute pkg-static to the client and reinstall pkg with the new pkg-static.
After the upgrade everything is running as usual ;)

Are there better upgrade paths then my quick workaround ?

Output after pd build was finished on the first client.

# pkg update -f
Updating repository catalogue
Fetching meta.txz: 100% of 584 B
Fetching digests.txz: 100% of 43 kB
Fetching packagesite.txz: 100% of 138 kB

Adding new entries: 34%
pkg: wrong architecture: FreeBSD:8:amd64 instead of freebsd:8:x86:64

pkg: repository str contains packages with wrong ABI: FreeBSD:8:amd64
Adding new entries: 100%
pkg: Unable to update repository str


Update with help of the patched pkg

# ~/pkg-static update -f
Updating repository catalogue
pkg-static: Repository str has a wrong packagesite, need to re-create database
Fetching meta.txz: 100% of 584 B
Fetching digests.txz: 100% of 43 kB
Fetching packagesite.txz: 100% of 138 kB

Adding new entries: 100%
Incremental update completed, 500 packages processed:
0 packages updated, 0 removed and 500 added.

--
olli


More information about the freebsd-ports mailing list