Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 07 Dec 2023 08:22:28 -0500
From:      "Dan Langille" <dan@langille.org>
To:        "Warner Losh" <imp@bsdimp.com>
Cc:        "freebsd-hackers@freebsd.org" <hackers@freebsd.org>
Subject:   Re: list of valid ABI combinations
Message-ID:  <66557d4f-6392-4260-b72f-613354380d55@app.fastmail.com>
In-Reply-To:  <CANCZdfpuA86qX_SMyOM4wNa0f%2BH3GKvz8TP9W7c__r8=4-WaFQ@mail.gmail.com>
References:  <090b5b29-50bd-470a-905b-b9c2016a5189@www.fastmail.com> <8634fd2e-6c8f-4d37-99e2-56f4febd74d9@app.fastmail.com> <CANCZdfpuA86qX_SMyOM4wNa0f%2BH3GKvz8TP9W7c__r8=4-WaFQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
--b9fde86793824a63a697ff31ed42c672
Content-Type: text/plain

On Wed, Dec 6, 2023, at 8:31 PM, Warner Losh wrote:
> 
> 
> On Wed, Dec 6, 2023, 6:01 PM Dan Langille <dan@langille.org> wrote:
>> On Thu, Apr 9, 2020, at 11:01 AM, Dan Langille wrote:
>> > Hello,
>> >
>> > I'm looking to add package support to FreshPorts - so you can know if a 
>> > package exists for a given ABI (e.g. FreeBSD:12:amd64).
>> >
>> > The goal, write a script which does something like this:
>> >
>> >   for abi in $ABIS
>> >   do
>> >     fetch -o abi. packagesite.txz 
>> > https://pkg.freebsd.org/$abi/latest/packagesite.txz
>> >     # parse the file, updating the database
>> >   done
>> >
>> > Is there a list of current valid ABI combinations.
>> >
>> > I see a list at https://pkg.freebsd.org/ - is this manually maintained?
>> >
>> > While my goal is to have FreshPorts require minimal intervention, I 
>> > suppose new ABI combinations do not come along frequently and could be 
>> > maintained manually. It does not seem like a huge task.
>> >
>> > More details here: https://github.com/FreshPorts/freshports/issues/142
>> 
>> I see I have been trying to figure this out for a few years.
>> 
>> Does anyone have any ideas as to where this might be determined?
> 
> It should be just the list of valid MACHINE_ARCH (make targets can give you a variation of this list).

For those following along at home:

[13:18 mydev dan ~/src/freebsd/src] % make targets
Supported TARGET/TARGET_ARCH pairs for world and kernel targets
    amd64/amd64
    arm/armv7
    arm64/aarch64
    i386/i386
    powerpc/powerpc
    powerpc/powerpc64
    powerpc/powerpc64le
    riscv/riscv64


> If you compute the cross product of that list and the supported branches {12,13,14;15} you will know what you can try. 

Is that list hosted somewhere I can script a fetch? I'm going to guess no. Granted, that list changes infrequently too.

> However, you need to know the current package builders. It's a subset of branches and abis, but since it's just the packages this should give you a matrix after you fetch.

My goal is to automatically maintain this table, from which FreshPorts fetches package information:

freshports.dev=# select * from abi order by name;
id |         name         | active 
----+----------------------+--------
  9 | FreeBSD:12:aarch64   | t
  1 | FreeBSD:12:amd64     | t
15 | FreeBSD:12:armv6     | t
16 | FreeBSD:12:armv7     | t
  8 | FreeBSD:12:i386      | t
18 | FreeBSD:12:mips64    | t
19 | FreeBSD:12:powerpc64 | t
  2 | FreeBSD:13:aarch64   | t
11 | FreeBSD:13:amd64     | t
20 | FreeBSD:13:armv6     | t
21 | FreeBSD:13:armv7     | t
10 | FreeBSD:13:i386      | t
23 | FreeBSD:13:mips64    | t
24 | FreeBSD:13:powerpc64 | t
34 | FreeBSD:13:riscv64   | t
26 | FreeBSD:14:aarch64   | t
27 | FreeBSD:14:amd64     | t
28 | FreeBSD:14:armv6     | t
29 | FreeBSD:14:armv7     | t
30 | FreeBSD:14:i386      | t
32 | FreeBSD:14:mips64    | t
33 | FreeBSD:14:powerpc64 | t
35 | FreeBSD:14:riscv64   | t
54 | FreeBSD:15:aarch64   | t
47 | FreeBSD:15:amd64     | t
48 | FreeBSD:15:armv6     | t
49 | FreeBSD:15:armv7     | t
50 | FreeBSD:15:i386      | t
51 | FreeBSD:15:mips64    | t
52 | FreeBSD:15:powerpc64 | t
53 | FreeBSD:15:riscv64   | t
(31 rows)

freshports.dev=# 

Thank you. :)

--
  Dan Langille
  dan@langille.org


--b9fde86793824a63a697ff31ed42c672
Content-Type: text/html
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE html><html><head><title></title><style type=3D"text/css">p.Mso=
Normal,p.MsoNoSpacing{margin:0}</style></head><body><div>On Wed, Dec 6, =
2023, at 8:31 PM, Warner Losh wrote:<br></div><blockquote type=3D"cite" =
id=3D"qt" style=3D""><div dir=3D"auto"><div><div><br></div><div><br></di=
v><div class=3D"qt-gmail_quote"><div dir=3D"ltr" class=3D"qt-gmail_attr"=
>On Wed, Dec 6, 2023, 6:01 PM Dan Langille &lt;<a href=3D"mailto:dan@lan=
gille.org">dan@langille.org</a>&gt; wrote:<br></div><blockquote class=3D=
"qt-gmail_quote" style=3D"margin-top:0px;margin-right:0px;margin-bottom:=
0px;margin-left:0.8ex;border-left-width:1px;border-left-style:solid;bord=
er-left-color:rgb(204, 204, 204);padding-left:1ex;"><div>On Thu, Apr 9, =
2020, at 11:01 AM, Dan Langille wrote:<br></div><div> &gt; Hello,<br></d=
iv><div> &gt;<br></div><div> &gt; I'm looking to add package support to =
FreshPorts - so you can know if a <br></div><div> &gt; package exists fo=
r a given ABI (e.g. FreeBSD:12:amd64).<br></div><div> &gt;<br></div><div=
> &gt; The goal, write a script which does something like this:<br></div=
><div> &gt;<br></div><div> &gt;&nbsp; &nbsp;for abi in $ABIS<br></div><d=
iv> &gt;&nbsp; &nbsp;do<br></div><div> &gt;&nbsp; &nbsp; &nbsp;fetch -o =
abi. packagesite.txz <br></div><div> &gt; <a href=3D"https://pkg.freebsd=
.org/$abi/latest/packagesite.txz" rel=3D"noreferrer noreferrer" target=3D=
"_blank">https://pkg.freebsd.org/$abi/latest/packagesite.txz</a><br></di=
v><div> &gt;&nbsp; &nbsp; &nbsp;# parse the file, updating the database<=
br></div><div> &gt;&nbsp; &nbsp;done<br></div><div> &gt;<br></div><div> =
&gt; Is there a list of current valid ABI combinations.<br></div><div> &=
gt;<br></div><div> &gt; I see a list at <a href=3D"https://pkg.freebsd.o=
rg/" rel=3D"noreferrer noreferrer" target=3D"_blank">https://pkg.freebsd=
.org/</a> - is this manually maintained?<br></div><div> &gt;<br></div><d=
iv> &gt; While my goal is to have FreshPorts require minimal interventio=
n, I <br></div><div> &gt; suppose new ABI combinations do not come along=
 frequently and could be <br></div><div> &gt; maintained manually. It do=
es not seem like a huge task.<br></div><div> &gt;<br></div><div> &gt; Mo=
re details here: <a href=3D"https://github.com/FreshPorts/freshports/iss=
ues/142" rel=3D"noreferrer noreferrer" target=3D"_blank">https://github.=
com/FreshPorts/freshports/issues/142</a><br></div><div> <br></div><div> =
I see I have been trying to figure this out for a few years.<br></div><d=
iv> <br></div><div> Does anyone have any ideas as to where this might be=
 determined?<br></div></blockquote></div></div><div dir=3D"auto"><br></d=
iv><div dir=3D"auto">It should be just the list of valid MACHINE_ARCH (m=
ake targets can give you a variation of this list).<br></div></div></blo=
ckquote><div><br></div><div>For those following along at home:<br></div>=
<div><br></div><div>[13:18 mydev dan ~/src/freebsd/src] % make targets<b=
r></div><div>Supported TARGET/TARGET_ARCH pairs for world and kernel tar=
gets<br></div><div>&nbsp;&nbsp;&nbsp; amd64/amd64<br></div><div>&nbsp;&n=
bsp;&nbsp; arm/armv7<br></div><div>&nbsp;&nbsp;&nbsp; arm64/aarch64<br><=
/div><div>&nbsp;&nbsp;&nbsp; i386/i386<br></div><div>&nbsp;&nbsp;&nbsp; =
powerpc/powerpc<br></div><div>&nbsp;&nbsp;&nbsp; powerpc/powerpc64<br></=
div><div>&nbsp;&nbsp;&nbsp; powerpc/powerpc64le<br></div><div>&nbsp;&nbs=
p;&nbsp; riscv/riscv64<br></div><div><br></div><div><br></div><blockquot=
e type=3D"cite" id=3D"qt" style=3D""><div dir=3D"auto"><div dir=3D"auto"=
><span style=3D"color:rgb(27, 30, 32);">If you compute the cross product=
 of that list and the supported branches {12,13,14;15} you will know wha=
t you can try. </span><br></div></div></blockquote><div><br></div><div>I=
s that list hosted somewhere I can script a fetch? I'm going to guess no=
. Granted, that list changes infrequently too.<br></div><div><br></div><=
blockquote type=3D"cite" id=3D"qt" style=3D""><div dir=3D"auto"><div dir=
=3D"auto"><span style=3D"color:rgb(27, 30, 32);">However, you need to kn=
ow the current package builders. It's a subset of branches and abis, but=
 since it's just the packages this should give you a matrix after you fe=
tch.</span><br></div></div></blockquote><div id=3D"sig65064480"><div cla=
ss=3D"signature"><br></div><div class=3D"signature">My goal is to automa=
tically maintain this table, from which FreshPorts fetches package infor=
mation:<br></div><div class=3D"signature"><br></div><div class=3D"signat=
ure">freshports.dev=3D# select * from abi order by name;<br></div></div>=
<div>id |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | active&nbsp;<br></div><div>----=
+----------------------+--------<br></div><div>&nbsp; 9 | FreeBSD:12:aar=
ch64&nbsp;&nbsp; | t<br></div><div>&nbsp; 1 | FreeBSD:12:amd64&nbsp;&nbs=
p;&nbsp;&nbsp; | t<br></div><div>15 | FreeBSD:12:armv6&nbsp;&nbsp;&nbsp;=
&nbsp; | t<br></div><div>16 | FreeBSD:12:armv7&nbsp;&nbsp;&nbsp;&nbsp; |=
 t<br></div><div>&nbsp; 8 | FreeBSD:12:i386&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
; | t<br></div><div>18 | FreeBSD:12:mips64&nbsp;&nbsp;&nbsp; | t<br></di=
v><div>19 | FreeBSD:12:powerpc64 | t<br></div><div>&nbsp; 2 | FreeBSD:13=
:aarch64&nbsp;&nbsp; | t<br></div><div>11 | FreeBSD:13:amd64&nbsp;&nbsp;=
&nbsp;&nbsp; | t<br></div><div>20 | FreeBSD:13:armv6&nbsp;&nbsp;&nbsp;&n=
bsp; | t<br></div><div>21 | FreeBSD:13:armv7&nbsp;&nbsp;&nbsp;&nbsp; | t=
<br></div><div>10 | FreeBSD:13:i386&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | t<br=
></div><div>23 | FreeBSD:13:mips64&nbsp;&nbsp;&nbsp; | t<br></div><div>2=
4 | FreeBSD:13:powerpc64 | t<br></div><div>34 | FreeBSD:13:riscv64&nbsp;=
&nbsp; | t<br></div><div>26 | FreeBSD:14:aarch64&nbsp;&nbsp; | t<br></di=
v><div>27 | FreeBSD:14:amd64&nbsp;&nbsp;&nbsp;&nbsp; | t<br></div><div>2=
8 | FreeBSD:14:armv6&nbsp;&nbsp;&nbsp;&nbsp; | t<br></div><div>29 | Free=
BSD:14:armv7&nbsp;&nbsp;&nbsp;&nbsp; | t<br></div><div>30 | FreeBSD:14:i=
386&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | t<br></div><div>32 | FreeBSD:14:mips=
64&nbsp;&nbsp;&nbsp; | t<br></div><div>33 | FreeBSD:14:powerpc64 | t<br>=
</div><div>35 | FreeBSD:14:riscv64&nbsp;&nbsp; | t<br></div><div>54 | Fr=
eeBSD:15:aarch64&nbsp;&nbsp; | t<br></div><div>47 | FreeBSD:15:amd64&nbs=
p;&nbsp;&nbsp;&nbsp; | t<br></div><div>48 | FreeBSD:15:armv6&nbsp;&nbsp;=
&nbsp;&nbsp; | t<br></div><div>49 | FreeBSD:15:armv7&nbsp;&nbsp;&nbsp;&n=
bsp; | t<br></div><div>50 | FreeBSD:15:i386&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
; | t<br></div><div>51 | FreeBSD:15:mips64&nbsp;&nbsp;&nbsp; | t<br></di=
v><div>52 | FreeBSD:15:powerpc64 | t<br></div><div>53 | FreeBSD:15:riscv=
64&nbsp;&nbsp; | t<br></div><div>(31 rows)<br></div><div><br></div><div>=
freshports.dev=3D#&nbsp;<br></div><div><br></div><div>Thank you. :)</div=
><div id=3D"sig65064480"><div class=3D"signature"><br></div><div class=3D=
"signature">--<br></div><div class=3D"signature">&nbsp; Dan Langille<br>=
</div><div class=3D"signature">&nbsp; dan@langille.org<br></div><div cla=
ss=3D"signature"><br></div></div><div><br></div></body></html>
--b9fde86793824a63a697ff31ed42c672--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?66557d4f-6392-4260-b72f-613354380d55>