[Patch] Using MACHINE_ARCH identifiers in pkg
Nathan Whitehorn
nwhitehorn at freebsd.org
Tue Sep 16 16:05:14 UTC 2014
On 08/26/14 09:01, Nathan Whitehorn wrote:
> On 08/18/14 15:02, olli hauer wrote:
>> On 2014-08-18 18:15, Nathan Whitehorn wrote:
>>> On 08/14/14 13:40, olli hauer wrote:
>>>> On 2014-08-14 21:42, Bryan Drewery wrote:
>>>>> On 8/14/2014 2:38 PM, olli hauer wrote:
>>>>>> On 2014-08-14 17:35, Nathan Whitehorn wrote:
>>>> ...
>>>>
>>>>> 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.
>>>>>
>>>> Ups, rollback is not possible after the client database was updated.
>>>>
>>>> Even by rollback and rebuild the package metadata the following
>>>> error pops up.
>>>>
>>>> ~/pkg-static.old_ABI 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: 34%
>>>> pkg-static: wrong architecture: FreeBSD:8:amd64 instead of
>>>> freebsd:8:x86:64
>>>>
>>>> pkg-static: repository str contains packages with wrong ABI:
>>>> FreeBSD:8:amd64
>>>> Adding new entries: 100%
>>>> pkg-static: Unable to update repository str
>>>
>>> Hm. I'm not sure how to handle this. There are two places that emit
>>> hard errors in such cases: pkg-add, which is fine since we have a
>>> workaround there, and here. The check is at line 446 of
>>> libpkg/repo/binary/update.c (you can comment it out for testing).
>>> For this one, there does not seem to be any good solution and we
>>> need to find one since this is the same issue you ran into the
>>> upgrade path.
>>>
>>> Here are the two options I see. They are similar to each other, and
>>> we could do both for some time.
>>> 1. Make an intermediate pkg that is otherwise unaltered but doesn't
>>> have this check during updates and keep it in the tree for some
>>> substantial length of time so most people have it by the time we
>>> want upgrades to the new ABI strings.
>>> 2. Set PKGNG_ALTABI globally on the ports tree for i386 and amd64
>>> for some period of time so that all built packages get the current
>>> ABI identifiers rather than the new ones.
>>>
>>> Any preference here? Or other options?
>>
>> Hi Nathan,
>>
>> Your suggestion 2) could do the trick, at last for current ports.
>>
>> I will see if I can do some additional tests the next days, specially
>> with mixed ABI strings in the packages.
>>
>
> Did you have any chance to do the tests? I prepared a new version of
> the patch at http://people.freebsd.org/~nwhitehorn/pkg-new-abi-v2.diff
> that marks all built binary packages for i386 and amd64 with the
> freebsd:*:x86:* identifiers and so should prevent the old version of
> pkg from bailing on a repository with mixed ABI strings. Testing would
> be much appreciated.
> -Nathan
I've made a third version of the patch that chases some recent updates
to the ports tree and can be found at:
http://people.freebsd.org/~nwhitehorn/pkg-new-abi-v3.diff
Please let me know if you run into any difficulties.
-Nathan
More information about the freebsd-ports
mailing list