From owner-freebsd-ports@freebsd.org Mon Dec 19 00:31:47 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 55B59C72930 for ; Mon, 19 Dec 2016 00:31:47 +0000 (UTC) (envelope-from baptiste.daroussin@gmail.com) 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 330A689E for ; Mon, 19 Dec 2016 00:31:47 +0000 (UTC) (envelope-from baptiste.daroussin@gmail.com) Received: by mailman.ysv.freebsd.org (Postfix) id 32582C7292E; Mon, 19 Dec 2016 00:31:47 +0000 (UTC) Delivered-To: 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 31FB7C7292C for ; Mon, 19 Dec 2016 00:31:47 +0000 (UTC) (envelope-from baptiste.daroussin@gmail.com) Received: from mail-wj0-x22d.google.com (mail-wj0-x22d.google.com [IPv6:2a00:1450:400c:c01::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 BA89B899 for ; Mon, 19 Dec 2016 00:31:46 +0000 (UTC) (envelope-from baptiste.daroussin@gmail.com) Received: by mail-wj0-x22d.google.com with SMTP id v7so136994069wjy.2 for ; Sun, 18 Dec 2016 16:31:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:date:from:to:subject:message-id:mime-version :content-disposition:user-agent; bh=smB9A7tF8QoYWovI4mU54N82RkjnwfUY3jQed5jr9M4=; b=DNX1ENMoOqa+KJA/Qohr2aYmvBYdDboLMVIO8wJ+Jq/7FgdqRSiNGB54g5aKYzUviT j8ZUP4LK95qao3n+BwQp2mNlakAbc3JASapEqdwNSkZ5Gf9tDHAwKWFYCeLBWlCLA9Gj MXHemQPUw/ggtz37huMQNAfudO0/2H9E7hjY1I0psVSjqe4R4NtBJ//KRAd927aEsnwe yEuDc4TcNqtK2CMkiKVmDP+9PY0Z0ijiW4T/gibEgeskorMpA69Culh3XXP8eHeIRzjS Hk+OqgsnIL29LDaL0r3l8bfaNy8QZ8s3//BPSafscVIC3IBOZkvfgajKKfaFeb4MNrq4 iS/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:subject:message-id :mime-version:content-disposition:user-agent; bh=smB9A7tF8QoYWovI4mU54N82RkjnwfUY3jQed5jr9M4=; b=brms+tuqrzuZsdkOYK6xMI/ERnAe2xSR6SoDM9GToAGNdaPYr4MkXkWq28dA89Nz4k lzK4YNaFhb6eZ73xpo/+qE8e7tg4VQs0yK7HVMAstK47JbY9liUUeEuJs6Zc2lDUSjlz Ez8LWbpJG9R5XvgKX6E/bOobdML9BCWkzDUu7qitWdaAaGHCxpONgNOqPwOrel7nrtdP ZI1c3yJsuJhCpH4K+wZvTPt3yStek70Aw6PPgF/JhY67Ny3Th607kPFX9ObaI/T/G46J Bk9NWfM+D0CwRi2u+BBXMEeQGt1TH9XH/8jgFarjA/lpvsnxBzeWoiyZy/Rb5rdhg3Kd gutg== X-Gm-Message-State: AKaTC0022lqZ2yw7JG7ZYwL9pa3R47pl0Ne967rXOWYh0nrehlWQDnkkvR6PKLIfwNlBSQ== X-Received: by 10.194.8.226 with SMTP id u2mr11413055wja.91.1482107504989; Sun, 18 Dec 2016 16:31:44 -0800 (PST) Received: from ivaldir.etoilebsd.net ([2001:41d0:8:db4c::1]) by smtp.gmail.com with ESMTPSA id f134sm14734240wmf.19.2016.12.18.16.31.44 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 18 Dec 2016 16:31:44 -0800 (PST) Sender: Baptiste Daroussin Date: Mon, 19 Dec 2016 01:31:43 +0100 From: Baptiste Daroussin To: ports@FreeBSD.org Subject: HEADSUP: FLAVORS (initial version) and subpackages proposals Message-ID: <20161219003143.c2qo5wn3a5kiua3m@ivaldir.etoilebsd.net> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="7l5z4llzssmpc7e6" Content-Disposition: inline User-Agent: NeoMutt/20161126 (1.7.1) X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Dec 2016 00:31:47 -0000 --7l5z4llzssmpc7e6 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi all, I have been working for a while on 2 long standing feature request for the ports tree: flavors and subpackages. For flavors I would like to propose a simple approach first which is more like a rework of the slave ports for now: Examples available here: https://reviews.freebsd.org/D8840 (with the implementation) and https://reviews.freebsd.org/D8843 Design: introduce a 3rd level in the hierarchy and make it work a bit like slave ports pros: - all slave ports are self hosted under the same directory: easier for maintenance - should work with all existing tools cons: - hackish: it is not really much more than a slave port - it adds plenty of new Makefiles :( I think anyway this is an improvement Next step after that is in would be to extend it to allow some dependency on "I depend on whatever flavor if port X" Subpackages: Design: Add a new macro MULTI_PACKAGES flag plist with an @pkg{suffixofthesubpackage} file the framework will split the plist into small plist and create all the packages All variables like COMMENT can be overridden with a COMMENT_${suffixofthesubpackage} pros: - simple and working almost now - allow to simplify lots of ports - options friendly (_PACKAGE automatically appends a new entry to MULTI_PACKAGES) cons: - will break the paradigm that certain tools depend on (portmaster/portupgrade in particular are a huge problem since they are not actively maintained) Example of the usage: https://people.freebsd.org/~bapt/multipackage.diff Note that I took the mpg123 as an example because it was a simple one to test not because it may need subpackages As a result you build 3 packages: mpg123 (the runtime tools) mpg123-lib: the runtime libraries mpg123-sndio: the sndio plugin LIB_DEPENDS on ports depending on libmpg123.so does not have to be changed, the framework already automatically register only the mpg123-lib as a dependency and not others. Not the example is missing one thing: a dependency between mpeg123-lib and mpg123 The second is not ready yet and would take time to land Any comment? Best regards, Bapt --7l5z4llzssmpc7e6 Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEgOTj3suS2urGXVU3Y4mL3PG3PloFAlhXKm0ACgkQY4mL3PG3 PlqPGQ/8DBFLa5boRqUe6DMw3WVOz8x0XY5O5ji9cXITAPeBF2q6jgCao7sqsXOx 3RePlpGZqq1wMPjNPGnnLlQ5IfT1NrSP6+Wsg3oa157x/oJM67oOHuzESKR3jXtX QhFHGTwvcqJXpbkoPtiNXDq4DB3J7Sesr9sB6yfpoBH8Hvj52vKdcjOFv50JKpR9 TUJU/K2UdO4tqILB5gifGf2zefCfxMEBLa8thDdPeseKDnAtoC4Mr6jTwgFFUBxT uSvg8hSAdZAZ7viCkqGZEYP1keG+H6V1QbDdEVfhd7Kuc2ZEIFsgILpuIRKaQHoH U1g/zyZo5Zydil90LFFZiGFngn2nVy33cYL24AmZvYDBhPg8Nk2yxRV02bqsOdYL he5UlhhNF2RrqSEImRdX4Le0mu67NVhBM7DMa2IhwHQaKJL6Nej1gvclWKa5lQ7m 3UpEXw7O5Kc11eZ7yKXOHCt8elvkd0KIBgFwOc/wyQd72iHBAfsW4qV3vaEF2Ybq khvyXBxWBj905cFpW4qhRbM4xPPKLOC+3XIUH/RqYAjBofQa+xP87BKicNAru9CE QgDpIihloe+0ZJqmuSwgWyaE9hJ4kIx3ftC50lhm+0r4g/oH8CEY852Akx4Mspoe GsVSRmQIGr1aTz9VfziwDfrZ5FChUThK4hiRTMpWXw+cT8uiDbQ= =J7DF -----END PGP SIGNATURE----- --7l5z4llzssmpc7e6--