From owner-freebsd-ports@freebsd.org Sun Feb 16 00:14:16 2020 Return-Path: Delivered-To: freebsd-ports@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0EECA24DF25 for ; Sun, 16 Feb 2020 00:14:16 +0000 (UTC) (envelope-from troubledaemon@gmail.com) Received: from mail-qk1-x742.google.com (mail-qk1-x742.google.com [IPv6:2607:f8b0:4864:20::742]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Knfb0jXsz403h for ; Sun, 16 Feb 2020 00:14:14 +0000 (UTC) (envelope-from troubledaemon@gmail.com) Received: by mail-qk1-x742.google.com with SMTP id u124so12405526qkh.13 for ; Sat, 15 Feb 2020 16:14:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=68pDpuDPOa44OYIHIDag/fAbLdCjQVSJP9ta4qJQVBE=; b=ooQQe3QkctDEoqjKbjnVqQB2rfTx100MY4iYNU3rUdy+88cUckOkuyOjDKH5uQpHqg Z8JDD3B6eIPTnLXebsVmDXBDVVKxoCPteWagRTkqY/8QyqCUB7BKy6i0ObfQArGMbVHm N8cxcwsdZMZqGtdO81pYFj/jgTIHAmNIh42kYd61HtzlfsuPcqy4uNIsw0SrmENwQPSM YDXkD985q0ls1uz8XQwchPVDhsniz1WiEKWTS0U/h/e4Lq6QVicD/RE6zY325Vn6OwUf 8WamXlFTRT9fC6anSfRNVwHOEJSNqE/kdlPZ882SPGDnx2WYoZF4PPYRAzEqJaDxv/gK WL8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=68pDpuDPOa44OYIHIDag/fAbLdCjQVSJP9ta4qJQVBE=; b=UvfigQIAe0L+QRbmXytjzZbPayUeVLGvMHnUgbNMxqR7f701QPbwH3loQxWeuROj1l ShLfPmUCYJUZvRxEXk/K52NL7E/IASEqqBDP8DFli06M4djtgQmH3cGGUXjW7RSC+tB+ fR4dDvqPm+lY9qeGmo8XM5vX93eaXKo6T1oVMW/BCKbr3+dFheFF0KsmCCVVb6Aa0Iwc 3PES6Q7nHil9+5zdkxPfj3S7fiUEvFQeKYtw7TgiREsZUubMy44IEEx6IqJ9sYcC9J9q PlQSVjfn3mkJ4+ujl4FDHeaENB4TrpEoPfgPmxWKPH6+GqRLI+xGJR1c5OTIJ6yU+EfZ G0lw== X-Gm-Message-State: APjAAAULlJdrz8yu7MrDqRLbTTEOd4QuJiR46hYzs7QpTPPr4cJsAq2J Ua5VLChF+tl3sNBiuwv93PfvR3/zElqU7Sbif10= X-Google-Smtp-Source: APXvYqyVbmQseFJVeMDFmfw9Wxljc0Rhoy6wmXqtwN8/ObyPuNURlt62iZXnW2VGJevh+LUuiRjy9G294Fl+QVN77lI= X-Received: by 2002:a37:aa0d:: with SMTP id t13mr9169015qke.167.1581812053975; Sat, 15 Feb 2020 16:14:13 -0800 (PST) MIME-Version: 1.0 References: <3743CEAE-BCC9-479E-8367-F3DA0E30496E@kreme.com> In-Reply-To: <3743CEAE-BCC9-479E-8367-F3DA0E30496E@kreme.com> From: Dan McGrath Date: Sat, 15 Feb 2020 19:14:03 -0500 Message-ID: Subject: Re: Starting with poudriere To: "@lbutlr" Cc: FreeBSD X-Rspamd-Queue-Id: 48Knfb0jXsz403h X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=ooQQe3Qk; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of troubledaemon@gmail.com designates 2607:f8b0:4864:20::742 as permitted sender) smtp.mailfrom=troubledaemon@gmail.com X-Spamd-Result: default: False [-1.70 / 15.00]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36]; FREEMAIL_FROM(0.00)[gmail.com]; URI_COUNT_ODD(1.00)[7]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; RCPT_COUNT_TWO(0.00)[2]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; FORGED_SENDER(0.30)[danmcgrathca@gmail.com,troubledaemon@gmail.com]; IP_SCORE(0.00)[ip: (2.09), ipnet: 2607:f8b0::/32(-1.89), asn: 15169(-1.68), country: US(-0.05)]; MIME_TRACE(0.00)[0:+,1:+,2:~]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; TAGGED_FROM(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com.dwl.dnswl.org : 127.0.5.0]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; FROM_NEQ_ENVFROM(0.00)[danmcgrathca@gmail.com,troubledaemon@gmail.com]; FROM_HAS_DN(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[freebsd-ports@freebsd.org]; IP_SCORE_FREEMAIL(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[2.4.7.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; RCVD_COUNT_TWO(0.00)[2]; RCVD_TLS_ALL(0.00)[] Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.29 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: Sun, 16 Feb 2020 00:14:16 -0000 Hi, Just a bit of a heads up that poudriere will require you to be on the new version of FreeBSD before you can build for it on the current system. For example, if you are running 12.1, and you upgrade poudriere's jail to 13.0, it will complain that you have to be running that version on the host you are using it on. Ideally, poudriere should be running on it's own dedicated system, not the one you intend to deploy to. As for how I use it here, I use salt to deploy to the poudriere machine, with one repo per host/jail. It's been good, but things get very hairy with this approach since all of the ports need to be recompiled whenever you update the jail (say from 12.1-RELEASE-p1 to 12.1-RELEASE-p2). When you start to have multiple port trees, multiple jails and multiple sets, the permutations of this start to really kick you in the face :) I built on a tiny old quad core VM, which makes matters worse. In terms of how I actually use things, originally I started off doing "poudriere options ...", and would go through pressing enter for every menu config option, and for each repo (host/jail) that I have. This was a pain, especially during quarterly changes where the on disk files in /usr/local/etc/poudriere.d/ for each -- directory would have to be copied to a new filename in order to start from the previous settings, and then change what is new etc. Eventually I learned that I could just erase all that, skip the "poudriere options", and specify the defaults that I want/need to override in the /usr/local/etc/poudriere.d/make.conf file. That I could specify options per port, as needed with something like this: OPTIONS_SET+=3D GSSAPI_NONE OPTIONS_UNSET+=3D CUPS DBUS X11 DOCBOOK EXAMPLES KERBEROS PERFSCHEMA PERFSC= HM GSSAPI_BASE GSSAPI_HEIMDAL GSSAPI_MIT WAYLAND OPENGL XCB DEFAULT_VERSIONS+=3D ssl=3Dopenssl # Python DEFAULT_VERSIONS+=3D python=3D3.7 python3=3D3.7 # Ensure apache uses event MPM or ZTS will disable and php extensions will fail # to build inside poduriere! WITH_MPM=3Devent # Apache 2.4 www_apache24_UNSET+=3D MPM_PREFORK MPM_WORKER www_apache24_SET+=3D MPM_EVENT # Ensure ZTS www_mod_php72_SET+=3D ZTS lang_php72_SET+=3D ZTS That should get you an idea how to setup the make.conf, at least. With this approach, I don't have to deal with the headaches of going through millions of menu options every time stuff changes. While I still need to migrate to more of a "single repo" approach, it is nice having dedicated repos for each jail, but it does mean that you are compiling the same stuff over and over, so be warned! Interesting note was that I originally had ccache installed in the system, and even with SSD's over network storage, was finding that the I/O was actually adding to my compile times, so I just disable it now. As for your question of the file to use to build a bunch of ports, the approach I use is a layout like this: /poudriere/ /poudriere/113amd64 /poudriere/113amd64/2019Q4 /poudriere/113amd64/2019Q4/host_a /poudriere/113amd64/2019Q4/host_b /poudriere/113amd64/2020Q1 /poudriere/113amd64/2020Q1/host_a /poudriere/113amd64/2020Q1/host_b /poudriere/113amd64/bulk-2019Q4.sh /poudriere/113amd64/bulk-2020Q1.sh /poudriere/113amd64/clean-2019Q4.sh /poudriere/113amd64/clean-2020Q1.sh /poudriere/121amd64 /poudriere/121amd64/2019Q4 /poudriere/121amd64/2019Q4/host_a /poudriere/121amd64/2019Q4/host_b /poudriere/121amd64/2020Q1 /poudriere/121amd64/2020Q1/host_a /poudriere/121amd64/2020Q1/host_b /poudriere/121amd64/bulk-2019Q4.sh /poudriere/121amd64/bulk-2020Q1.sh /poudriere/121amd64/clean-2019Q4.sh /poudriere/121amd64/clean-2020Q1.sh /poudriere/bulk-all.sh /poudriere/update-2019Q4.sh /poudriere/update-2020Q1.sh Where the bulk-all.sh script just runs the bulk-.sh and clean scripts. As sample of one of them would be: #!/bin/sh # # Because variables # JAIL=3D"113amd64" TREE=3D"2020Q1" LIST_PREFIX=3D"/poudriere/${JAIL}/${TREE}" # Bulk compile for lcv in ${LIST_PREFIX}/*; do echo "Bulk for $lcv..." # read -p "Press ENTER to continue. " INPUT nice poudriere bulk -j $JAIL -p $TREE -z $(basename ${lcv}) -f "${lcv}" done Of course, the clean script would replace s/bulk/clean/, but you get the idea. More of a prototype script than anything, but it "works", although could most certainly be done better! Hopefully this gives you a bit of insight and understanding into the system, and possible approaches to setting things up. Best of luck! o/ Cheers, Danny McGrath On Sat, Feb 15, 2020 at 6:33 PM @lbutlr wrote: > I=E2=80=99ve setup a new FreeBSD 12.1 system and am going to give poudrie= re a > whirl on it. > > The machine is currently setup as a two drive zfs mirror and I have used > pkg to install a few basic things (sudo, zsh, poudriere itself, etc). > > I am reading through < > https://wiki.freebsd.org/VladimirKrstulja/Guides/Poudriere#A3._Create_the= _list_of_ports_wanted_in_the_repo> > and I have some questions. > > First, the example of says that if we don=E2=80=99t change any options, t= he > defaults will be used. OK, but it makes no mention on how we might change > or set options? Is this simply talking about the build options panels tha= t > sometimes come up (Build examples, support ssl, use sqlite or MySQL, etc)= , > and when I first go to build a =E2=80=9Cpersistent list=E2=80=9D those op= tion screens will > come up and I can make changes and they will be saved? Or is there > something else that I need to do? > > Second, let's say that I want to setup the machine to build postfix, > dovecot, apache, pigeonhole, marisadb, postfixadmin, rpoundcube, and hord= e > all in on =E2=80=9Cpersistent list=E2=80=9D since all of these pacajkges = are need to do > mail and webmail, do I simply list the packages in a single file the way > the page lists www/firefox? > > Once I have poudriere setup and running and I=E2=80=99m comfortable with = it, do I > need to do anything to have it =E2=80=9Ctake over=E2=80=9D sudo and anyth= ing else that I > installed via pkg? > > Sorry for the rather basic questions. > > > -- > "Are you pondering what I'm pondering?" > "I think so, Brain, but why would anyone want to see Snow White and > the Seven Samurai?=E2=80=9D > > > _______________________________________________ > freebsd-ports@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-ports > To unsubscribe, send any mail to "freebsd-ports-unsubscribe@freebsd.org" >