From owner-freebsd-ports@freebsd.org Fri Feb 12 14:56:40 2016 Return-Path: Delivered-To: freebsd-ports@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 57567AA67DF for ; Fri, 12 Feb 2016 14:56:40 +0000 (UTC) (envelope-from jim@ohlste.in) Received: from mail-qg0-x22d.google.com (mail-qg0-x22d.google.com [IPv6:2607:f8b0:400d:c04::22d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 18A7B1AB0 for ; Fri, 12 Feb 2016 14:56:38 +0000 (UTC) (envelope-from jim@ohlste.in) Received: by mail-qg0-x22d.google.com with SMTP id b35so63650451qge.0 for ; Fri, 12 Feb 2016 06:56:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ohlste-in.20150623.gappssmtp.com; s=20150623; h=subject:to:references:cc:from:message-id:date:user-agent :mime-version:in-reply-to:content-type:content-transfer-encoding; bh=bni2K2kT0iPjCHP33umfV3PKRCWtqTHyUm0xnUvVR70=; b=ZxU11mE1v71Uv7phmaC4UNZo7l+2YUx1ytBLVu+Ms6gx25wS4AxYz/nevgRn+lVfNG JEInKuR8T2A7Md0wXsyuUC2FTF75Ext6TSHsCZ2wsMV62Fy3qV8rOZWXNdNQlG5M1Wmi jfFz3sXH+9FGx1FKcXFtJJ2MXKBhFIv5sH+0m/bCpih5rKj4l/7mPRotIC0JlE9tmMqT n+2HEv4RMDeyYKeLaexjzJc12nffjThjZmRSUy0JNBqwEuqANEX5KYlaN6bR7NTdNncs 2lz4Q4cRAb95+4cOgcXM9NEBGaVoC19J3EgA8aOcy/nG1kpm/NMsoosMpBrMPnSoWqJk i0lQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:cc:from:message-id:date :user-agent:mime-version:in-reply-to:content-type :content-transfer-encoding; bh=bni2K2kT0iPjCHP33umfV3PKRCWtqTHyUm0xnUvVR70=; b=jV+rYQhQ4GFGNDEPZLzsBe64AbaOmcuTDMyUz9DO/IU78aCYZu8Us919FxMmphV04z gf6eiyjaJLroegXnGRNoNXaY4lw8h8aY8ZApdae9TbrOcyqxiHQpPdZ1MGdSaFjvC2HB ni0rgzF0eFHRUZA5zM4b5kfJZC3sy/Uh90sRu+07HdX32uraCv+u9tcDarERqu394k4S BsGl8IcpVlgevXcH/FSl36TtXmvy+G7IEomuyMAuvcABRtgXzmSaJjkEgy1ej1Wyikbs V0+8qSSpe8z1HyJCgPM0rqL+3eZn/R4Fz2nS+WdBxMdqcTuzFzuucUipd6U1rEAhWyhF KE+A== X-Gm-Message-State: AG10YORPCkBRaG8WPRrpBzzQlRwIhH7Gw967fbM3HjKRrqNM/J1Vas5fGCY/Q0Sd/4BCJg== X-Received: by 10.141.1.2 with SMTP id c2mr2570251qhd.32.1455288997786; Fri, 12 Feb 2016 06:56:37 -0800 (PST) Received: from [192.168.1.18] (pool-96-249-243-37.nrflva.fios.verizon.net. [96.249.243.37]) by smtp.googlemail.com with ESMTPSA id u10sm5666614qhc.0.2016.02.12.06.56.36 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 12 Feb 2016 06:56:37 -0800 (PST) Subject: Re: Removing documentation To: Royce Williams , John Marino References: <56B754A8.3030605@marino.st> <56BCE01D.4010701@FreeBSD.org> <56BCE218.40403@marino.st> <56BCEC5F.4020007@marino.st> Cc: Kevin Oberman , lev@freebsd.org, FreeBSD Mailing List From: Jim Ohlstein Message-ID: <56BDF2A3.9030100@ohlste.in> Date: Fri, 12 Feb 2016 09:56:35 -0500 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Feb 2016 14:56:40 -0000 Hello, On 2/11/16 7:22 PM, Royce Williams wrote: > On Thu, Feb 11, 2016 at 11:17 AM, John Marino wrote: >> On 2/11/2016 9:08 PM, Royce Williams wrote: >>> On Thu, Feb 11, 2016 at 10:33 AM, John Marino wrote: >>>> >>>> On 2/11/2016 8:25 PM, Lev Serebryakov wrote: >>>>> -----BEGIN PGP SIGNED MESSAGE----- >>>>> Hash: SHA512 >>>>> >>>>> On 07.02.2016 17:28, John Marino wrote: >>>>> >>>>>> ports-mgmt/synth. I would love to hear what signficant thing >>>>>> portmaster can do that Synth can't. (honestly) >>>>> Be installed FROM PORTS without all this build-one-more-gcc stuff. >>>>> Ada? For *port*management* tool? Are you joking? >>>> >>>> Let me guess. You've spent actually 0.0 nanoseconds preparing on the >>>> subject before providing this enlightened take for the list. >>> >>> >>> Having read the entire thread, separate from the relative merits of >>> Synth, the core of Lev's incredulity isn't that off the mark. >>> >>> On the face of it, Synth requiring ncurses seems reasonable ... but >>> its Ada dependency is a bit of a mild POLA violation. >>> >>> Don't get me wrong -- I actually think Ada is pretty cool, and Lev >>> could have been nicer about it ;), but he's essentially right. >>> >>> People's instincts are that software management is core functionality, >>> and should have few unusual dependencies. >>> >>> My earlier side-thread point stands. FreeBSD software management is >>> fragmented. Until that is resolved, a lot of time and effort will be >>> wasted treating the symptoms. >> >> Actually, you missed the fact that synth (nor poudriere) doesnt >> re-invent anything. Both are tightly integrated with pkg(8). You spoke >> of both as if they were similar to portupgrade. >> >> The "wrapper situation" that you proposed is already here. So the whole >> "fragmented" thing is not really true. > > Is the abstraction is happening at the equivalent level here? The > platforms that I'm thinking of -- that appear to have already solved > this entire class of problem long ago -- feature wrappers around > apt-get, not wrappers around dpkg. > > I'm advocating that we stop quasi-providing four different flavors of > apt-get. Until there is a single and official mechanism for both > dependency resolution and configuration option management, the > fragmentation remains. Sadly, I also use dpkg-based systems, not my first choice, but because sometimes they're the best currently available tool for the job at hand. I'd need about thirty hands to use my fingers to count how many times apt-get has left me with a broken package system, though aptitude usually is able to fix that. Most often that has happened after adding a third party repo (it happened recently with using MariDB's own repo instead of the official package) or when compiling from source and trying to delete unnecessary cruft. The biggest drawback to those systems is that compiling software and registering it can be a pain in the ass. The second biggest problem is those systems (Debian and Ubuntu specifically) are built around users who are totally willing to have the developers choose which options will be compiled in to "official" and "non-official" repos. That is, people who compile their own binaries are really an afterthought in the Debian and Ubuntu world. Some might call that a strength, and yes, dpkg is a nice system for people who want that kind of thing. It's made Debian based systems very popular, no doubt about it. FreeBSD is different in that regard. The ports system is one of the things that makes it great. Being able to choose whether to compile everything, compile some ports and use official packages (or non-official repos) for others, or entirely to use pre-built binaries is one of the great strengths of FreeBSD and is one of the features that distinguishes it from most flavors of GNU/Linux. There are even tools for creating repos fairly easily. Have you ever tried to write a spec file for an RPM based distro? Ugh! Unfortunately, dpkg is not designed for people in those first two categories above. It can be made to work, but requires much more effort. Add in systemd and the nightmare continues... This discussion is aimed at people who prefer to compile at least some of their own binaries, else they wouldn't need Portmaster or Synth or poudriere or portupgrade. Really and truly, and with due respect, speaking about dpkg is really a diversion, unintentional as it may be, and detracts from your main point about a totally unified package/ports system, which you believe belongs in base. I don't entirely disagree with that, but having choices about what wraps around pkg(8) should be up to the user. I use poudriere. For my purposes it's the best available tool. Even if you have half a dozen jails on one box poudriere + pkg makes distributing binaries to those jails a joy. Synth might do the same. Portmaster might be satisfactory for building a small number of ports in a system that mostly uses official packages. Portupgrade, if you can live with the ruby dependency and the occasional risk that it will crap out when upgrading a dependency, still works well for solitary systems using only ports. My point is that the main tool is there. It's pkg(8). It does a _reasonably_ good job of sussing out what's necessary, installing only run dependencies, and avoiding "dependency hell". For people who use only official packages I'd daresay it's superior to apt-get. Can it be improved? Yes. I have a wishlist in fact. However, it's a young tool that really is excellent, especially compared to what was (not) present previously. What tools, if any, a user chooses to employ around pkg is up to that user. On Debian and Ubuntu I need both apt-* tools and aptitude. On FreeBSD I currently use poudriere. Others only need pkg itself. In my use case, I compile everything myself because I like to customize options and there also may be a slight control issue there as well. ;) I use poudriere and maintain different repos for different options. Just the other day I spun up a new one for the yet to committed PHP 7.0 ports. It took a couple of minutes to do, though compiling some of the modules was an effort - separate issue. I created a jail, added that repo, installed php70, and was ready to test. To do that on Debian would probably have been a lot more effort, though I imagine someone has a repo out there with packages, if I wanted to use someone else's packages... > >> Synth is a binary. There's no POLA there. > > If there were no ports system, and everything was package-driven, I'd > agree. Synth and its cousins exist because people work from ports -- > which means that dependencies matter. > >> There's no requirement to build from ports, that's an unsubstanciated >> invention. Notice that not a single person could defend that position >> after a challenge. There's no technical basis for it; it's just emotional. > > The laissez-faire "there's no requirement to build from ports" that > permeates FreeBSD is exactly what's wrong. The fact that half of the > documentation and quasi-official tools tell people "hey, use one of > these three ports management tools, or maybe packages, pick what works > for you -- oh, and be sure to check /usr/ports/UPDATING every time you > touch any port or package" is a deep symptom of this fragmentation. > >> In a straight fly-off against any of the tools, Synth wins hands down >> with any objective measurement. Poudriere is slightly more bulletproof >> and more appropriate for a cluster (as it was targetted at) but for >> average user Synth is better suited. >> >> It's a concurrent builder. Ada is a concurrent language. How is its >> suitability even a debate? > > Because FreeBSD software management itself is not purely package based. > > As long as the ports system exists (and I think it should!), the > management of compilation requirements -- especially for something > that might need to be bootstrapped early, like a software management > tool -- is a valid topic. > > To be clear: except for the Ada/ruby/whatever dependency chain, my > beef isn't with Synth qua Synth. It's that every time we spin up Yet > Another Optional Software Management Tool, we fragment further. If > Synth becomes the holy grail of package management -- so compelling > that it becomes the only choice people would want to make, which is > what I think we need -- then it should become part of base. > > If that happened, would we want to ship with Ada in base? If not, why not? > This is a good point. I still don't understand why pkg(8) is not in the base (though I imagine there's a reason and it takes less than a minute to install). There can't be many users who install a base system and use it without a single additional piece of software. However, for my $0.02, that is the only change I'd make to base at this point with respect to package management, aside from my pkg(8) wishlist. As an aside, and fwiw, unless there is a non-GPL'd Ada compiler out there, we won't see Ada or any Ada-based binaries in base, even if Synth turns out to be the best thing since sliced bread. -- Jim Ohlstein "Never argue with a fool, onlookers may not be able to tell the difference." - Mark Twain