From nobody Thu Sep 12 20:30:42 2024 X-Original-To: questions@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4X4TbV5v2zz5WjlY for ; Thu, 12 Sep 2024 20:30:46 +0000 (UTC) (envelope-from fatty.merchandise677@aceecat.org) Received: from beesty.loosely.org (beesty.loosely.org [IPv6:2600:3c01:e000:4c0::2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4X4TbT2lkJz42JM for ; Thu, 12 Sep 2024 20:30:45 +0000 (UTC) (envelope-from fatty.merchandise677@aceecat.org) Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of fatty.merchandise677@aceecat.org designates 2600:3c01:e000:4c0::2 as permitted sender) smtp.mailfrom=fatty.merchandise677@aceecat.org Received: from localhost ([::1] helo=beesty ident=itz) by beesty with esmtp (Exim 4.98-4-9cb179d48) (envelope-from ) id 1soqSf-000000007ry-3D26 for questions@freebsd.org; Thu, 12 Sep 2024 13:30:42 -0700 Date: Thu, 12 Sep 2024 13:30:42 -0700 From: fatty.merchandise677@aceecat.org To: questions@freebsd.org Subject: Re: port installation basics Message-ID: <1UDlGbz6DvIgGns6@aceecat.org> Mail-Followup-To: questions@freebsd.org References: List-Id: User questions List-Archive: https://lists.freebsd.org/archives/freebsd-questions List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: freebsd-questions@freebsd.org Sender: owner-freebsd-questions@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Spamd-Bar: -- X-Spamd-Result: default: False [-2.27 / 15.00]; NEURAL_HAM_SHORT(-0.98)[-0.978]; NEURAL_HAM_LONG(-0.85)[-0.848]; NEURAL_HAM_MEDIUM(-0.24)[-0.242]; R_SPF_ALLOW(-0.20)[+mx]; MIME_GOOD(-0.10)[text/plain]; ONCE_RECEIVED(0.10)[]; RCVD_COUNT_ONE(0.00)[1]; FROM_NO_DN(0.00)[]; MISSING_XM_UA(0.00)[]; ASN(0.00)[asn:63949, ipnet:2600:3c01::/32, country:SG]; RCPT_COUNT_ONE(0.00)[1]; MIME_TRACE(0.00)[0:+]; TO_MATCH_ENVRCPT_ALL(0.00)[]; ARC_NA(0.00)[]; DMARC_NA(0.00)[aceecat.org]; RCVD_TLS_LAST(0.00)[]; TO_DN_NONE(0.00)[]; MLMMJ_DEST(0.00)[questions@freebsd.org]; MID_RHS_MATCH_FROM(0.00)[]; R_DKIM_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[] X-Rspamd-Queue-Id: 4X4TbT2lkJz42JM On Thu, Sep 12, 2024 at 12:41:02PM GMT, Edward Sanford Sutton, III wrote: > > I am torn between packages and ports. I read discouraging things > > about using both, and yet I seem to need both for the following > > reasons: > Using both has problems if you change an option which changes what > is available from a dependency; if you change something in a custom > built dependency then you "may" need to custom build what depends on > it too. Making other changes like switching compilers completely > might create problematic scenarios too requiring what depends on it > to be built manually. Another issue can arise when you build ports > from a tree that is a different git checkout from the one used in > official packages. Even more confusing to think about when realizing > that not every package is rebuilt with every update; different > packages therefore don't always come from the same tree state even > on the official repo. Another thing I seem to remember from my previous dabblings (long ago): if I install a package (say bash) and later I build a port that has bash as a dependency, it will be rebuilt (and maybe even reinstalled, I don't remember that part anymore). I'd say this is broken, but maybe it's different now? > > I have not figured out how to build ports without getting sucked > > into unbounded rabbit holes of configuration dialogs. I know the > > advice to do `make config-recursive` upfront, but it doesn't help: > > what seems to be happening is that I get config dialogs for *all > > potential* recursive dependencies of the port I'm building, > > regardless of my answers along the way. For example, even if I > > exclude X11 support in git configuration, I am then confronted > > with dialogs which are only relevant to gitk. Is there any way to > > avoid this? I've tried this multiple times, always building a list of overrides in make.conf (mostly negative ones). I always end up in such a rabbit hole. I don't know what I'm doing wrong :( One of the things I like about FreeBSD is that pretty much everything has a manpage. That used to be true in some penguin distros as well, but not any more. So I try to turn on an option for that, if there is one. > `make -DBATCH` will build with defaults while `make -DINTERACTIVE` > works for the remaining ports and skips batchable ports. Most > support batch anyway. You can also define these in /etc/make.conf by > adding lines like BATCH=yes. This is interesting and potentially helpful. If I run `make -DBATCH` in a particular port subtree, will this also be in effect for the dependencies? > Flavors were the answer to get ports that can be packaged with > different options or dependencies. I say it needs work to reach full > potential but its a start and can cover cases like with/without a > gui or building to depend on different version of interpreters. Are flavors visible in the pkg tool in any way other than as simply separate packages (like emacs and emacs-nox)? > Similarly, if you are building+installing directly from the ports > tree, you are building in an unclean environment (at least after the > first port). Sometimes the ported program uses a build system that > dynamically detects the environment and modifies the build according > to what it sees. If the port doesn't override autodetections with > guaranteed forced states of what should be available or not then you > get a package that depends on something that isn't tracked properly I don't quite get this. Where else would the "impostor" environment come from? Things like a custom PATH you mean? I never got far enough for that to be a problem :-P -- Ian