Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 4 Sep 2024 09:56:40 +0200
From:      Baptiste Daroussin <bapt@freebsd.org>
To:        Alan Somers <asomers@freebsd.org>
Cc:        Warner Losh <imp@bsdimp.com>, Poul-Henning Kamp <phk@phk.freebsd.dk>,  FreeBSD Hackers <freebsd-hackers@freebsd.org>
Subject:   Re: It's not Rust, it's FreeBSD (and LLVM)
Message-ID:  <tk5tvpcxqetffj5icfdmglax5rfykhx7643zix2wah7ow3z7fg@l3obxwsblnxu>
In-Reply-To: <CAOtMX2j%2BT3h9mg8a0AcYMbg2%2BWQFN14NhaQFs%2BjM-3hAmNBsBg@mail.gmail.com>
References:  <202409031532.483FW0If007252@critter.freebsd.dk> <CANCZdfrhK1iTZL5uxciqK_FGb%2Bzha_NZ15LsY42f%2B_z3KbPmJw@mail.gmail.com> <CAOtMX2go95=RFjegzchgMTYNdZfatzGDVcavp8O6=bK9yks1bQ@mail.gmail.com> <202409031950.483JoBuh009465@critter.freebsd.dk> <CAOtMX2jwu9bUDgM=jxtP5t794VUPjNx3GtrVgYqvGcSiZqHwVQ@mail.gmail.com> <CANCZdfrJ149NguCYMuZs8M7cswQGkLnRYqsfND4Jpc7yajU_Jg@mail.gmail.com> <CAOtMX2j%2BT3h9mg8a0AcYMbg2%2BWQFN14NhaQFs%2BjM-3hAmNBsBg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue 03 Sep 14:40, Alan Somers wrote:
> On Tue, Sep 3, 2024 at 2:21 PM Warner Losh <imp@bsdimp.com> wrote:
> >
> >
> >
> > On Tue, Sep 3, 2024, 2:19 PM Alan Somers <asomers@freebsd.org> wrote:
> >>
> >> On Tue, Sep 3, 2024 at 1:50 PM Poul-Henning Kamp <phk@phk.freebsd.dk> wrote:
> >> >
> >> > --------
> >> > Alan Somers writes:
> >> >
> >> > > For example, libifconfig and the /dev/cam/ctl ioctls are both unstable.
> >> > > A port that uses one of those and is built for FreeBSD 14.0 won't
> >> > > necessarily work for 14.1.
> >> >
> >> > Isn't that also a problem today ?
> >> >
> >> > What difference does it make that src is distributed as a package ?
> >>
> >> Not "a package" but "many packages".  The pkgbase concept builds a
> >> separate package for almost every dir under lib, bin, sbin, usr.bin,
> >> and usr.sbin.  So the problem will be that libifconfig and its
> >> consumers will be distributed separately, whereas they are currently
> >> distributed together.
> >
> >
> > Won't versions and dependencies solve this? They aren't tied to a kernel version since its a stable ABI.
> >
> > Warnrr
> >>
> >> -Alan
> 
> Aren't you the one who just said that the ABI will need to become
> stable?  Or did you only mean that about the /dev/cam/ctl ioctls?  For
> private libs, the easiest thing would be if pkgbase could put libs and
> their consumers into the same package.  But that might not always be
> possible.
> 

There is 2 things: internal libs and private libs. Internal libs are only static
linked and never live anywhere but in the source tree, this means it cannot be
used by things built outside of the sourcetree, then there are privatelib, it is
perfectly fine for a program built outside of the source tree to be linked to a
privatelib as soon as the consumers understands the risks pkg itself is a good
example of this as it links to libprivatezstd.

Private libs are by designed installed in /usr/lib therefore as soon as we allow
pkg at buildtime to lookup for dependency in base (side note: we do not because
pkgbase is not officially a thing so nothing is able to declare what base is
exposition as things to depend on, but pkg knows how to do it and would work
actually better for dependency resolution if we lived in a world where base will
be always packaged.) then privatelib dependency perfectly works, there is no
need to bundle them into pkg.

About the ABI stability, I am claiming since day one of the problem there we
should have a list of packages that are tight to minor releases, either marked
as such in the ports tree, or extracted out of the ports tree, and we have a
dedicated build for those and only for those. this will solve the problem of ABI
solition. and pkg supports everything for this to work properly.

This means we would have 3 repositories:
- https://pkg.freebsd.org/${ABI}/base_release_${VERSION_MINOR}/
- https://pkg.freebsd.org/${ABI}/${VERSION_MINOR}/latest (the packages per release)
- https://pkg.freebsd.org/${ABI}/latest

We have many actionable options, it just needs someone to actually do one and
make it happen.

Best regards,
Bapt



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?tk5tvpcxqetffj5icfdmglax5rfykhx7643zix2wah7ow3z7fg>