From owner-freebsd-ports@FreeBSD.ORG Tue Apr 28 21:52:49 2015 Return-Path: Delivered-To: ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 91877C71; Tue, 28 Apr 2015 21:52:49 +0000 (UTC) Received: from elsa.codelab.cz (elsa.codelab.cz [94.124.105.4]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A5F801C0F; Tue, 28 Apr 2015 21:52:47 +0000 (UTC) Received: from elsa.codelab.cz (localhost [127.0.0.1]) by elsa.codelab.cz (Postfix) with ESMTP id 8E0B92842B; Tue, 28 Apr 2015 23:45:04 +0200 (CEST) Received: from illbsd.quip.test (ip-89-177-50-74.net.upcbroadband.cz [89.177.50.74]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by elsa.codelab.cz (Postfix) with ESMTPSA id 95FF428428; Tue, 28 Apr 2015 23:45:02 +0200 (CEST) Message-ID: <553FFF5E.5070600@quip.cz> Date: Tue, 28 Apr 2015 23:45:02 +0200 From: Miroslav Lachman <000.fbsd@quip.cz> User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:35.0) Gecko/20100101 Firefox/35.0 SeaMonkey/2.32 MIME-Version: 1.0 To: bdrewery@FreeBSD.org CC: FreeBSD Ports Subject: poudriere-3.1.4 options not working as expected Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit 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: Tue, 28 Apr 2015 21:52:49 -0000 I am trying to set up own pkg repository for our servers. We have different FreeBSD versions, arch and roles of servers, so I am in the stage of finding common set of ports, options etc. For example. We have "projectA" with 3 webservers with simmilar set o installed ports and used options, but one of them is also mailserver - so it have some additional ports. Twho servers are on 10.1-RELEASE and the third is on 8.4-RELEASE I created to files with list of origins: projectA and projectA-server3 projectA is a list of common ports for all 3 servers projectA-server3 is a list of additional ports for the third server - mailserver I configured options for common set "projectA" with command # poudriere options -z projectA -p default -f /usr/local/etc/poudriere.d/pkglists/projectA This first problem is that it shows me dialogs for additional options which I deselect in previous dialog. For example I configured "memcached" without SASL, pecl-memcached without SASL, "libmemcached" without SASL but it still asks me to configure Cyrus-SASL options ┌───────────────────────────── memcached-1.4.22 ───────────────────────────────┐ │ ┌──────────────────────────────────────────────────────────────────────────┐ │ │ │ [ ] DOCS Build and/or install documentation │ │ │ │+[ ] DTRACE Enable dtrace probes │ │ │ │+[ ] SASL Enable SASL Authentication │ │ ┌──────────────────────────── libevent2-2.0.22_1 ──────────────────────────────┐ │ ┌──────────────────────────────────────────────────────────────────────────┐ │ │ │+[ ] OPENSSL SSL/TLS support via OpenSSL │ │ │ │+[x] THREADS Threading support │ │ ┌────────────────────────── pecl-memcached-2.2.0_3 ────────────────────────────┐ │ ┌──────────────────────────────────────────────────────────────────────────┐ │ │ │+[ ] IGBINARY Binary serializer support │ │ │ │+[ ] SASL SASL authentication support │ │ ┌─────────────────────────── libmemcached-1.0.18 ──────────────────────────────┐ │ ┌──────────────────────────────────────────────────────────────────────────┐ │ │ │+[ ] DEBUG Build with debugging support │ │ │ │+[ ] DTRACE Enable DTrace support │ │ │ │+[x] MEMASLAP Load generation and benchmark tool │ │ │ │+[ ] SASL SASL authentication support │ │ │ │─────────────────────────────────── HASH ─────────────────────────────────│ │ │ │+[x] FNV64 Enable fnv64 hashing │ │ │ │+[ ] HSIEH Enable hsieh hashing │ │ │ │+[x] MURMUR Enable murmur hashing │ │ ┌─────────────────────────── cyrus-sasl-2.1.26_9 ──────────────────────────────┐ │ ┌──────────────────────────────────────────────────────────────────────────┐ │ │ │+[ ] ALWAYSTRUE the alwaystrue password verifier │ │ │ │+[ ] AUTHDAEMOND use of authdaemon │ │ │ │ [ ] DOCS Build and/or install documentation │ │ │ │+[ ] KEEP_DB_OPEN Keep handle to Berkeley DB open │ │ │ │+[ ] OBSOLETE_CRAM_ATTR cmusaslsecretCRAM-MD5 property │ │ │ │+[ ] BDB Berkeley DB support │ │ │ │+[ ] MYSQL MySQL database support │ │ │ │+[ ] PGSQL PostgreSQL database support │ │ │ │─────────────────────────────────── MECH ─────────────────────────────────│ │ │ │+[ ] CRAM CRAM-MD5 authentication │ │ │ │+[ ] DIGEST DIGEST-MD5 authentication │ │ │ │+[x] LOGIN LOGIN authentication │ │ │ │+[ ] NTLM NTLM authentication │ │ │ │+[ ] OTP OTP authentication │ │ │ │+[x] PLAIN PLAIN authentication │ │ │ │+[ ] SCRAM SCRAM authentication │ │ │ │───────────────────────── SQLite database support ────────────────────────│ │ │ │+( ) SQLITE2 SQLite 2 database │ │ │ │+( ) SQLITE3 SQLite 3 database support │ │ Options in files are stored right (UNSET+=SASL) # cat /usr/local/etc/poudriere.d/projectA-options/databases_libmemcached/options # This file is auto-generated by 'make config'. # Options for libmemcached-1.0.18 _OPTIONS_READ=libmemcached-1.0.18 _FILE_COMPLETE_OPTIONS_LIST=DEBUG DTRACE MEMASLAP SASL FNV64 HSIEH MURMUR OPTIONS_FILE_UNSET+=DEBUG OPTIONS_FILE_UNSET+=DTRACE OPTIONS_FILE_SET+=MEMASLAP OPTIONS_FILE_UNSET+=SASL OPTIONS_FILE_SET+=FNV64 OPTIONS_FILE_UNSET+=HSIEH OPTIONS_FILE_SET+=MURMUR Package set is built without SASL (no cyrus-sasl package in /vol0/poudriere/data/packages/10_1_amd64-default-projectA/All/) limbmemcached was built with "options": { "DEBUG": "off", "DTRACE": "off", "MEMASLAP": "on", "SASL": "off", "FNV64": "on", "HSIEH": "off", "MURMUR": "on" } So why poudriere options did ask me for cyrus-sasl option if it is not needed and not built? The second problem is that I tried to combine two ports lists together for projectA-server3 and set options for server3 this way: # poudriere options -z projectA -p default -j 8_4_amd64 -f /usr/local/etc/poudriere.d/pkglists/projectA-server3 I was expecting this command to asks me for an options only for this list of additional ports and it did. (stored in 8_4_amd64-projectA-options) So far so good. But I need to build all ports (from both lists) for this machine (server3) because it is 8.4 and not 10.1, so I used command # poudriere bulk -v -j 8_4_amd64 -z projectA -p default -f /usr/local/etc/poudriere.d/pkglists/projectA -f /usr/local/etc/poudriere.d/pkglists/projectA-server3 I expected it to use common options from directory poudriere.d/projectA-options and additional options from poudriere.d/8_4_amd64-projectA-options but all packages not having options in poudriere.d/8_4_amd64-projectA-options (but having them in poudriere.d/projectA-options) were built with default options. libmemcached was built with SASL "options": { "DEBUG": "off", "DTRACE": "off", "MEMASLAP": "on", "SASL": "on", "FNV64": "on", "HSIEH": "off", "MURMUR": "on" } After reading the docs on https://fossil.etoilebsd.net/poudriere/doc/trunk/doc/poudriere.8.wiki#x437573746f6d206275696c64206f7074696f6e73 I expected poudriere to combine options from both directories together. Which it didn't and after reading the docs again and again... the word "mounting" is what I overlooked on the first reading. So now I read it as "only the first found options directory is mounted". Is it possible to use some kind of union mount / unionfs to overlay all found directories according to CUSTOMISATION order? And in the meantime - is it possible to use multiple -f for "poudriere options" command? As it is not written in docs, I didn't try it and thought it is not possible and there is not need to use it if directories are combined. Because now I don't have a way to store options in 8_4_amd64-projectA-options directory by one "poudriere options" command. Or am I doing something wrong? Should I use symlinks from projectA-options to 8_4_amd64-projectA-options for each port directory to share options between these two build sets? Or copy them from common directory (projectA-options) to the other (8_4_amd64-projectA-options)? What is the best way to maintain this kind of configuration? Thank you in advance and thanks for poudriere - really nice tool for port builds! Miroslav Lachman