From owner-freebsd-ports@FreeBSD.ORG Thu Jun 19 17:22:39 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 BFF0CFF9; Thu, 19 Jun 2014 17:22:39 +0000 (UTC) Received: from c.mail.sonic.net (c.mail.sonic.net [64.142.111.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A869F26FC; Thu, 19 Jun 2014 17:22:39 +0000 (UTC) Received: from aurora.physics.berkeley.edu (aurora.Physics.Berkeley.EDU [128.32.117.67]) (authenticated bits=0) by c.mail.sonic.net (8.14.4/8.14.4) with ESMTP id s5JHMUnr031235 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Thu, 19 Jun 2014 10:22:30 -0700 Message-ID: <53A31C56.90401@freebsd.org> Date: Thu, 19 Jun 2014 10:22:30 -0700 From: Nathan Whitehorn User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:24.0) Gecko/20100101 Thunderbird/24.5.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> In-Reply-To: <20140528170440.GA80273@ivaldir.etoilebsd.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Sonic-ID: C;JgrWStb34xG2klHmUc16mQ== M;6jwqS9b34xG2klHmUc16mQ== 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: Thu, 19 Jun 2014 17:22:39 -0000 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