Received: from out0.migadu.com (out0.migadu.com [94.23.1.103]) by nld3-dev1.alpinelinux.org (Postfix) with ESMTPS id 1C874782CF3 for <~alpine/devel@lists.alpinelinux.org>; Fri, 12 Jun 2020 19:48:24 +0000 (UTC) X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dereferenced.org; s=default; t=1591991303; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TNzYPOrpCbH8b9qCczVIYFK9nk4YeEmhsyMGaRyPo3s=; b=EhRidNGl/BEbCuGy/L7nvuFZEvKn2ULEPABfuzBWmPDjTyn8G2Ka27oVIYhE0haxcjmGv0 HbaHhYOQ7tmsJNyXqBuuVKOGdyPyvo4AbMblTNCYANAyomf668RHWibfihruDj0yqEhYxC gUpnH0Xdp2UeKHs3bMJs3zCs3IAUTvk= From: Ariadne Conill To: ~alpine/devel@lists.alpinelinux.org Subject: Introducing autoconf-policy Date: Fri, 12 Jun 2020 13:48:18 -0600 Message-ID: <7966744.GHKkF7OKMO@localhost> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Spam-Score: 0.90 Hello, I have been working on a helper package[1] based on autoconf's config.site[2] functionality. This package can be used to do a few things that are useful to the Alpine ecosystem: * Enforcing a specific layout (e.g. FHS) in a centralized place. Much as like how we now have abuild-meson, it is possible for us to use autoconf-policy to enforce a specific layout, using the CONFIG_SITE environmental variable. This particular functionality is not yet enabled, as we need to make some changes to how builders are configured before it will work (declaring the CONFIG_SITE env variable, since the default CONFIG_SITE is $prefix/share/config.site), but once we decide to proceed it can be trivially implemented. This will allow for ./configure in abuild environment to pick up the site configuration, and accordingly, the desired layout for packaging, without having to specify --prefix and so on. * Bypassing broken tests. Right now, we are using GNU libiconv and GNU libintl primarily because autoconf's tests look for internal symbols in both to see if the libiconv and libintl implementations are "good enough." By implementing autoconf-policy, we have the capability of skipping these broken tests. * Improving configure script runtimes. Most autoconf scripts do the same basic checks. By supplying the appropriate answers for each architecture, we can reduce the number of checks that the script does. This improves configure script runtime by an order of magnitude already[3] and also improves cross-compilation. My plan is to implement the layout stuff in autoconf-policy 0.2 and promote it to main, adding it as a dependency of alpine-sdk. Why not build-base? The build-base package is for the toolchain itself, this is an alpine thing. The autoconf-policy package is likely useful to other apk-based distributions, contributions and usage are welcome there, feel free to contribute! Also, thanks to the Sabotage and Void distributions for doing a lot of the work on finding the right autoconf variables to override. Ariadne [1]: https://gitlab.alpinelinux.org/kaniini/autoconf-policy [2]: https://www.gnu.org/software/automake/manual/html_node/ config_002esite.html [3]: binutils configure phase runtime on dabuild+qemu setup is cut by ~40%.