Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 16 Jun 2012 21:11:36 +0200
From:      Olli Hauer <ohauer@FreeBSD.org>
To:        freebsd-ports@freebsd.org
Subject:   Re: [CFT] UNIQUENAME patches
Message-ID:  <4FDCDA68.9010807@FreeBSD.org>
In-Reply-To: <4FDCAB02.2040701@FreeBSD.org>
References:  <4FD8AFEC.6070605@FreeBSD.org> <CADLo83-Pr5Qqa6oUFKmfbLuuDOCiDQoiLVvjPfvJ1fT8ou0h9g@mail.gmail.com> <4FDC9488.2010509@FreeBSD.org> <20120616145341.GK98264@ithaqua.etoilebsd.net> <4FDCAB02.2040701@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2012-06-16 17:49, Matthew Seaman wrote:
> On 16/06/2012 15:53, Baptiste Daroussin wrote:
>> What could be added is a UNIQUENAMESUFFIX to be able to have a finer grain name.
> 
> That's certainly possible, but I was thinking about your plans to create
> sub-packages.  As I understand it, you'll be building and installing
> each port into a staging area, and then creating a number of different
> packages from what's in the staging area.
> 
> So for a port foo, you might create:
> 
>     foo-0.99          --- the foo application and libfoo.so.0 shared
>                           library
>     foo-docs-0.99     --- documentation
>     foo-examples-0.99 --- example configurations etc.
>     foo-devlibs-0.99  --- *.h headers, libfoo.a static lib, profiling
>                           libs and other things useful for developers.
>
> 
> and so forth.  So these are distinct packages all from one port with its
> own UNIQUENAME and hence all using that port's OPTIONS settings, and all
> built in one block.
> 
> Having UNIQUENAMESUFFIX for docs, examples, devlibs etc. would imply all
> of those are entirely separate ports, like the way bacula and
> bacula-docs are handled at the moment.
> 

This looks like most RPM packages are build but with one major difference

With one RPM spec file you can build foo, foo-docs, foo-devlibs and
foo-examples in one build and get 4 rpm's in one run.

With the ports infrastructure we have to run several builds
 one for foo, one for foo-devlibs and maybe one for foo-docs if docs are
 generated.

Here we can take bacula, pgsql or mysql as example.
To build the server and the client the build is done twice and only
different files are taken to crate the package.

Unless the ports infrastructure can build several packages from one port
in one run this looks for me very impractical and time consuming.

Also DEPENDENCY handling can become a real mess if a port needs
foo, foo-devlibs , bar, bar-devlibs ... to build.

Even this writeup looks critical I think I like the idea to split the
packages if pkg has also the ability to search for packages like
'yum search' or apt ..


I always smiled if I read Linux $fillInDistro has x thousands
packages and if you look seriously divide the amount by 3 or 4 to get
a real number.

I suspect FreeBSD will be hit easily 50.000 packages with this split.
How much additional time will take to do a full portstree build ??


> I can see there will need to be some sort of SUBPACKAGESUFFIXES variable
> and associated gubbins in the ports makefiles, to do that,
> plus something like tagging the entries in pkg-plist to identify which
> sub-package they should belong to.
> 
> Trying to mix that with UNIQUENAMESUFFIXes would get pretty complicated.
> Not to mention the question of foo-devel -- is that the devel
> sub-package of the foo port, or a separate foo-devel port?[*]

> [*] Hmmm... maybe sub-packages suffixes should use a different
> separator:  foo-0.99, foo--docs-0.99, foo--examples-0.99
> foo--devlibs-0.99 (?)
> 

Looks silly but you have more then the '-' (_ + %)
for example foo+docs, foo__docs, foo%docs

--
Regards,
olli



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