[Patch] Using MACHINE_ARCH identifiers in pkg

Nathan Whitehorn nwhitehorn at freebsd.org
Thu Aug 14 22:00:17 UTC 2014


On 08/14/14 12:38, olli hauer wrote:
> 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
>

Hm, that's weird. The patch is specifically designed to fix this. Could 
you run pkg info -F pkg.txz on the new pkg package that you can't install?
-Nathan


More information about the freebsd-ports mailing list