Date: Tue, 8 Oct 2013 09:19:31 +0200 From: =?UTF-8?Q?Ulrich_Sp=C3=B6rlein?= <uqs@FreeBSD.org> To: Bryan Drewery <bryan@shatow.net> Cc: ports@freebsd.org Subject: Re: [HEADSUP] Staging, packaging and more Message-ID: <CAJ9axoSZsJmWxmy7FKRq8vCHm_Gv_2ueGLREJ-dPabdVDuAq0Q@mail.gmail.com> In-Reply-To: <52528B3C.5020906@shatow.net> References: <20131003084814.GB99713@ithaqua.etoilebsd.net> <524D6059.2000700@FreeBSD.org> <524DD120.4000701@freebsd.org> <20131003203501.GA1371@medusa.sysfault.org> <CAGwOe2Ye2MLz3QpyMW3wyN9ew%2BiNnTETS1oOi_%2B8dPehUcWa0w@mail.gmail.com> <20131004061833.GA1367@medusa.sysfault.org> <20131004063259.GC72453@ithaqua.etoilebsd.net> <20131004065753.GV82824@droso.dk> <20131004070158.GE72453@ithaqua.etoilebsd.net> <20131004111256.GC98118@admin.xzibition.com> <CAJ9axoSF2%2BRys6MG078XCEkKEs2kEpVJegGgqFN3b2t2%2BR80kw@mail.gmail.com> <7D0F44D08D6643B9AA3EA3FD2E5DB255@white> <52528B3C.5020906@shatow.net>
next in thread | previous in thread | raw e-mail | index | archive | help
2013/10/7 Bryan Drewery <bryan@shatow.net>: > On 10/6/2013 9:16 PM, Dewayne Geraghty wrote: >>> -----Original Message----- >>> From: owner-freebsd-ports@freebsd.org >>> [mailto:owner-freebsd-ports@freebsd.org] On Behalf Of Ulrich Sp=C3=B6rl= ein >>> Sent: Sunday, 6 October 2013 11:20 PM >>> To: Bryan Drewery >>> Cc: ports@freebsd.org; Baptiste Daroussin; Fernando Apestegu=C3=ADa >>> Subject: Re: [HEADSUP] Staging, packaging and more >>> Importance: Low >>> >>> 2013/10/4 Bryan Drewery <bryan@shatow.net>: >>>> On Fri, Oct 04, 2013 at 09:01:58AM +0200, Baptiste Daroussin wrote: >>>>> On Fri, Oct 04, 2013 at 08:57:53AM +0200, Erwin Lansing wrote: >>>>>> On Fri, Oct 04, 2013 at 08:32:59AM +0200, Baptiste >>> Daroussin wrote: >>>>>>>>>>> >>>>>>>>>>> Please no devel packages. >>>>>>>>>> >>>>>>>>>> Seconded. >>>>>>>>> >>>>>>>>> What's wrong with devel packages? >>>>>>>> >>>>>>>> It complicates things for developers and custom software on >>>>>>>> FreeBSD. The typical situation that I see on most Linux >>>>>>>> platforms is a lot of confusion by people, why their custom >>>>>>>> software XYZ does not properly build - the most >>> common answer: >>>>>>>> they forgot to install a tremendous amount of dev packages, >>>>>>>> containing headers, build tools and whatnot. >>>>>>>> On FreeBSD, you can rely on the fact that if you >>> installed e.g. >>>>>>>> libGL, you can start building your own GL >>> applications without >>>>>>>> the need to install several libGL-dev, libX11-dev, >>> ... packages first. >>>>>>>> This is something, which I personally see as a big >>> plus of the >>>>>>>> FreeBSD ports system and which makes FreeBSD >>> attractive as a development platform. >>>>>>>> >>>>>>> >>>>>>> On the other ends, that makes the package fat for embedded >>>>>>> systems, that also makes some arbitrary runtime >>> conflicts between >>>>>>> packages (because they both provide the same symlink >>> on the .so, >>>>>>> while we could live with 2 version at runtime), that leads to >>>>>>> tons of potential issue while building locally, and that makes >>>>>>> having sometime insane issues with dependency >>> tracking. Why having .a, .la, .h etc in production servers? >>> It could greatly reduce PBI size, etc. >>>>>>> >>>>>>> Personnaly I do have no strong opinion in one or another >>>>>>> direction. Should we be nicer with developers? with end users? >>>>>>> with embedded world? That is the question to face to >>> decide if -devel packages is where we want to go or not. >>>>>>> >>>>>> >>>>>> If we chose to go down that path, at least we should chose a >>>>>> different name as we've used the -devel suffix for many >>> years for >>>>>> developmental versions. >>>>>> >>>>>> I must agree that it is one of the things high on my >>> list of things >>>>>> that irritate me with several Linux distributions but I >>> can see the >>>>>> point for for embedded systems as well. But can't we >>> have both? >>>>>> Create three packages, a default full package and split >>> packages of >>>>>> -bin, -lib, and even -doc. My first though twas to make >>> the full >>>>>> package a meta-package that would install the split >>> packages in the >>>>>> background, but that would probably be confusing for >>> users at the >>>>>> end of the day, so rather just have it be a real package. >>>>>> >>>>> I do like that idea very much, and it is easily doable >>> with stage :) >>>> >>>> +1 to splitting packages for embedded usage. >>> >>> -1 for the split, as it will not fix anybody's problem. >>> >>> On regular machines, disk space is cheap and having to >>> install more packages is just annoying to users. Think of the >>> time wasted that people are told to apt-get libfoo-dev before >>> they can build anything from github, or similar. > > Are you suggesting we should just auto install all of ports then? The > hassle of installing required dependencies for something outside of the > normal system is going to happen either way. > >>> >>> If you actually *are* space constricted on your tiny embedded >>> machine, what the fuck are you doing with the sqlite database >>> and all the metadata about ports/packages anyway? Just rm >>> /usr/include and /usr/share/doc, /usr/share/man, etc. when >>> building your disk image. >>> But you are doing that already anyway, so this solves no >>> actual problem for you. >>> >>> My two cents >>> Uli >> Concur with Uli, sans expletive. > > Subpackages has no harm to anyone. The idea that "too many packages > hurts me" is bad. It's 1 more entry in 'pkg info'. The overall savings > in BW/Space is good for everyone. It makes upgrades faster for > non-developer users who don't need headers. A lot of ports already track > DOCS/EXAMPLES. Subpackages are just an extension/refactoring of that effo= rt. I have the same opinion on stripping docs/examples as I have for stripping headers, so that argument doesn't count :) As for just "one more" package, I still remember the X11 -> Xorg split where your typical system suddenly went from 150 ports to 350 ports installed and every ports/pkg tool slowed down to a crawl. Please understand that "more packages" triggers some bad memories for some people here. > There are plenty of ideas and ways to make this user friendly by > automatically installing/depending on the subpackages, as they > effectively are today with DOCS/EXAMPLES options. > >> >> If you don't care about /var/db/pkg or sqlite then its easier to remove = the unnecessary files after the build process and repackage >> the packages (tar --exclude), leaving the clients' servers to >> pkg_add -r -f > > The suggestions to rm -rf /usr/include etc and /var/db/pkg are big hacks > that will break binary package upgrades. Don't forget that is the end > goal here. The goal for "proper" machines? Sure! I can't wait to have it, but I also have X GB of space to waste on the machines that would ever need to run pkg upgrade. I honestly do not understand the requirements for tiny systems (where this space savings could be worth the effort). Are these really machines that you will ever touch again (remotely even!?). If it's a machine that has internet access and does firmware/package upgrades over the net, surely it does not fall into the category of being overly space restricted? And I would still punt the responsibility of trimming packages down to a minimum to the actual producers of said embedded system, as opposed to burdening thousands of port maintainers with this for ports that will *never* end up on such a device anyway. >> And yes some ports require parts of share or (unbelievably) examples to = function correctly. > > You say some can't work, but still suggest to rm -rf it. That is not a > good solution. The package maintainer should define that so the package > works, without you hacking at it. You are misquoting two different people here ... Could the proponents of this scheme maybe do some research and gather some numbers? On your typical desktop and server, count the number of blocks used up by installed packages and the "overhead" of includes/manpages as well as examples/docs. Share the results. Thanks Uli
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ9axoSZsJmWxmy7FKRq8vCHm_Gv_2ueGLREJ-dPabdVDuAq0Q>