From owner-freebsd-ports@FreeBSD.ORG Mon Jul 7 03:47:11 2014 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id A58E1CB4; Mon, 7 Jul 2014 03:47:11 +0000 (UTC) Received: from i3mail.icecube.wisc.edu (i3mail.icecube.wisc.edu [128.104.255.23]) by mx1.freebsd.org (Postfix) with ESMTP id 33B8F23B4; Mon, 7 Jul 2014 03:47:11 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by i3mail.icecube.wisc.edu (Postfix) with ESMTP id 5654A3805B; Sun, 6 Jul 2014 22:47:10 -0500 (CDT) X-Virus-Scanned: amavisd-new at icecube.wisc.edu Received: from i3mail.icecube.wisc.edu ([127.0.0.1]) by localhost (i3mail.icecube.wisc.edu [127.0.0.1]) (amavisd-new, port 10030) with ESMTP id qaUjy6HVpQ5z; Sun, 6 Jul 2014 22:47:10 -0500 (CDT) Received: from comporellon.tachypleus.net (polaris.tachypleus.net [75.101.50.44]) by i3mail.icecube.wisc.edu (Postfix) with ESMTPSA id 6E62038054; Sun, 6 Jul 2014 22:47:09 -0500 (CDT) Message-ID: <53BA183C.5000808@freebsd.org> Date: Sun, 06 Jul 2014 20:47:08 -0700 From: Nathan Whitehorn User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Baptiste Daroussin Subject: Re: [Patch] Using MACHINE_ARCH identifiers in pkg References: <5383EEB6.6010703@freebsd.org> <538614AB.4070803@freebsd.org> <20140528170440.GA80273@ivaldir.etoilebsd.net> <53A31C56.90401@freebsd.org> <20140626213045.GF24440@ivaldir.etoilebsd.net> In-Reply-To: <20140626213045.GF24440@ivaldir.etoilebsd.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Warner Losh , FreeBSD Mailing List X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Jul 2014 03:47:11 -0000 On 06/26/14 14:30, Baptiste Daroussin wrote: > On Thu, Jun 19, 2014 at 10:22:30AM -0700, Nathan Whitehorn wrote: >> >> On 05/28/14 10:04, Baptiste Daroussin wrote: >>> On Wed, May 28, 2014 at 09:54:03AM -0700, Nathan Whitehorn wrote: >>>> The following was in a deep and increasingly branched thread on the SVN >>>> list. I've forwarded the relevant part here. The discussion was on using >>>> MACHINE_ARCH codes for package architectures in pkg instead of the >>>> existing ones (which are equivalent) to make script-writing easier and >>>> improve consistency with the way the src and ports trees work. The >>>> patches below are designed to make transitioning the architecture >>>> identifiers as painless as possible. >>>> -Nathan >>>> >>>> ------------------------------------------------------------------------ >>>> >>>> I've written two patches today. The first >>>> (http://people.freebsd.org/~nwhitehorn/pkg_machinearch.diff) is to pkg >>>> itself and the second >>>> (http://people.freebsd.org/~nwhitehorn/pkg_bootstrap_machinearch.diff) >>>> is to the pkg bootstrapper in base. These switch pkg from using >>>> identifiers like "freebsd:11:arm:32:eb:eabi:softfp" to identifiers like >>>> "FreeBSD:11:armeb", matching the canonical FreeBSD platform identifiers. >>>> The strings it uses can be predicted easily from scripts, as they are >>>> identical in all cases to the output of `uname -s`:`uname -r | cut -f 1 >>>> -d .`:`uname -p`. >>>> >>>> I tried to avoid changing much, so the patches are pretty short. >>>> Internally, the patch introduces a translation table to pkg that >>>> contains all extant FreeBSD and Dragonfly BSD architectures and moves >>>> between the ELF-based coding and MACHINE_ARCH values. This is kind of >>>> gross, but has the least possibility for regression, and can easily be >>>> changed behind the scenes later. Platform detection uses the same >>>> ELF-parsing code as before. 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. >>>> >>>> One small issue is how to bootstrap the change for existing binary >>>> package users. The modified pkg can use packages with either >>>> architecture ID just fine, but the current one will barf on the >>>> FreeBSD:11:amd64 package containing its own update. There are a couple >>>> of options: manual instructions, marking that one package with the >>>> old-style architecture ID, etc. None should be more than slightly >>>> irritating, though. The least bumpy route, I think, is making >>>> directories with both the old and new names, but putting only one >>>> package in the old-named directory: a special intermediate version of >>>> pkg marked with the old architecture ID but able to install from the new >>>> one. Then you just have to deal with two rounds of updates without any >>>> other intervention, which is not so bad. >>>> -Nathan >>>> >>>> >>>> >>> Thanks I'll be away for a couple of days, but I'll have a look and test your >>> patch in all situation we need to support and come back to you if needed or >>> directly commit; >>> >>> regards, >>> Bapt >> Have you had a chance to look at this yet? I'm happy to help with any >> testing if you need. >> -Nathan > I do like the appraoch but I haven't yet had time to study the side effect, it > is already complicated to get pkg 1.3 out, I are quite close now so this will > wait for 1.4, but I'll push it on top of my TODO list for 1.4. > > regards, > Bapt Great, thanks! Any change of making some symlinks between the two schemes on pkg.freebsd.org in the meantime? That would make it easier to test the new code and should take only 30 seconds. -Nathan