From owner-freebsd-ports@freebsd.org Mon Nov 26 23:42:57 2018 Return-Path: Delivered-To: freebsd-ports@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 60FAC1148E04 for ; Mon, 26 Nov 2018 23:42:57 +0000 (UTC) (envelope-from eugen@grosbein.net) Received: from mailman.ysv.freebsd.org (mailman.ysv.freebsd.org [IPv6:2001:1900:2254:206a::50:5]) by mx1.freebsd.org (Postfix) with ESMTP id CDD2871909 for ; Mon, 26 Nov 2018 23:42:56 +0000 (UTC) (envelope-from eugen@grosbein.net) Received: by mailman.ysv.freebsd.org (Postfix) id 8DADA1148E03; Mon, 26 Nov 2018 23:42:56 +0000 (UTC) Delivered-To: ports@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 50BAA1148E02 for ; Mon, 26 Nov 2018 23:42:56 +0000 (UTC) (envelope-from eugen@grosbein.net) Received: from hz.grosbein.net (hz.grosbein.net [IPv6:2a01:4f8:d12:604::2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hz.grosbein.net", Issuer "hz.grosbein.net" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 9B14D71907 for ; Mon, 26 Nov 2018 23:42:55 +0000 (UTC) (envelope-from eugen@grosbein.net) Received: from eg.sd.rdtc.ru (eg.sd.rdtc.ru [IPv6:2a03:3100:c:13:0:0:0:5]) by hz.grosbein.net (8.15.2/8.15.2) with ESMTPS id wAQNgl9Y060518 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 27 Nov 2018 00:42:48 +0100 (CET) (envelope-from eugen@grosbein.net) X-Envelope-From: eugen@grosbein.net X-Envelope-To: mwlucas@michaelwlucas.com Received: from [10.58.0.4] ([10.58.0.4]) by eg.sd.rdtc.ru (8.15.2/8.15.2) with ESMTPS id wAQNglr6052908 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Tue, 27 Nov 2018 06:42:47 +0700 (+07) (envelope-from eugen@grosbein.net) Subject: Re: packages and base jails To: "Michael W. Lucas" , ports@freebsd.org References: <20181126202407.GA95942@mail.michaelwlucas.com> From: Eugene Grosbein Message-ID: <3348f9bf-8fb3-e6a7-6878-15e1fcfed62d@grosbein.net> Date: Tue, 27 Nov 2018 06:42:41 +0700 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <20181126202407.GA95942@mail.michaelwlucas.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=0.3 required=5.0 tests=BAYES_00,LOCAL_FROM,SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-Report: * -2.3 BAYES_00 BODY: Bayes spam probability is 0 to 1% * [score: 0.0000] * -0.0 SPF_PASS SPF: sender matches SPF record * 2.6 LOCAL_FROM From my domains X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on hz.grosbein.net X-Rspamd-Queue-Id: CDD2871909 X-Spamd-Result: default: False [-6.32 / 15.00]; ARC_NA(0.00)[]; FORGED_RECIPIENTS_FORWARDING(0.00)[]; RCVD_COUNT_FIVE(0.00)[6]; MX_INVALID(0.50)[cached]; FROM_HAS_DN(0.00)[]; FORWARDED(0.00)[ports@mailman.ysv.freebsd.org]; TO_DN_SOME(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[grosbein.net]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_SPF_PERMFAIL(0.00)[]; RCPT_COUNT_TWO(0.00)[2]; RCVD_IN_DNSWL_MED(-0.20)[5.0.0.0.0.5.0.0.0.0.0.0.0.0.0.0.a.6.0.2.4.5.2.2.0.0.9.1.1.0.0.2.list.dnswl.org : 127.0.9.2]; NEURAL_HAM_SHORT(-0.98)[-0.980,0]; RCVD_NO_TLS_LAST(0.10)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; IP_SCORE(-3.64)[ip: (-9.87), ipnet: 2001:1900:2254::/48(-4.70), asn: 10310(-3.54), country: US(-0.09)]; ASN(0.00)[asn:10310, ipnet:2001:1900:2254::/48, country:US]; FORGED_RECIPIENTS(0.00)[mwlucas@michaelwlucas.com ..,freebsd-ports@freebsd.org]; MID_RHS_MATCH_FROM(0.00)[] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Nov 2018 23:42:57 -0000 27.11.2018 3:24, Michael W. Lucas wrote: > > Hi, > > I'm writing a book on jails and am looking for BCP. I'd like to > present either "This is the approved solution and should work" or > "these are the gotchas with any of these, choose your pain." > > Folks want base jails to include packages, but also want to install > additional packages--which won't happen if /usr/local is mounted > read-only in the base jail. Trawling around the Net I see a couple > options. Both involve the primary jail using a different package > repo. The overlay jail uses the standard package repo. > > 1) primary jail uses a repo with PREFIX=/usr/pkg or /opt. Works in my > simple use cases once I set ldconfig directories in rc.conf, but I'm > told programs like pkgconfig can go sideways. > > 2) base jail repo uses with PREFIX=/. Utterly violates separation of > base and pkg, but everything should find everything out of the > box. Again, seems to work in my wimpy use cases. > > Is there an option that should work? Or is a matter of choosing > between horrors? Not sure I understand the problem which I don't have using sysutils/ezjail that uses base jail situated in /usr/local/j/basejail in my case. For each distinct jail instance, it null-mounts it read-only to /usr/local/j/${JAILNAME}/basejail and /usr/local/j/${JAILNAME} it jail's root. Inside this root, /bin is symlink to /basejail/bin, and /boot, /libexec, /rescue and /sbin are similar symlinks, so are /usr/{bin|include|lib|lib32|libdata|libexec|ports|sbin|share} all symlinks to corresponding directories inside ro-mounted /basejail/usr/... But not /usr/local nor /usr/{src|obj}, if that matters. So each jail have its own set of packages or even ports if I choose to null-mount host's /usr/ports readonly to /usr/local/j/${JAILNAME}/basejail/usr/ports and write to jail's /etc/make.conf: WRKDIRPREFIX= /var/ports DISTDIR= /var/ports/distfiles PACKAGES= /var/ports/packages INDEXDIR= /var/ports That works just fine for me.