[Patch] Using MACHINE_ARCH identifiers in pkg

Bryan Drewery bdrewery at FreeBSD.org
Thu Aug 14 19:42:17 UTC 2014


On 8/14/2014 2:38 PM, 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
> 

Something I've mentioned to Bapt a few times is that pkg needs a way to
have a list of accepted ABI strings. Then we could add both the old and
the new style as accepted (internally) so that old and new repositories
will continue to work.

-- 
Regards,
Bryan Drewery

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20140814/2743c0d1/attachment.sig>


More information about the freebsd-ports mailing list