X-Original-To: alpine-devel@lists.alpinelinux.org Delivered-To: alpine-devel@mail.alpinelinux.org Received: from mail-ea0-f170.google.com (mail-ea0-f170.google.com [209.85.215.170]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mail.alpinelinux.org (Postfix) with ESMTPS id 50049DC00A3 for ; Fri, 19 Jul 2013 12:33:27 +0000 (UTC) Received: by mail-ea0-f170.google.com with SMTP id h10so2423917eaj.1 for ; Fri, 19 Jul 2013 05:33:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:date:from:to:subject:message-id:x-mailer:mime-version :content-type:content-transfer-encoding; bh=uKIQ2p7zgt+rYXoetza5v5Jwlr8kg4Q2IZo3hkmav/E=; b=s9ORpGKgaLezn0ySBPYWtEzJ6ehTeZ5cE7AErLj7RHF5ZJ50Pz138zXtBI9pdAIGxr 1WubiEdBi4VWWSbTE+Fktt1PXMEqJMY4roym3U+N/QpHlvUg8TxszTeN7GmvmwWvSOW3 WZ72VqWHoglEbABX/Cy6WSzPpPUlaxM+Z4cq2CRD8W+I2Ac/WMc32ia1PprWggYVqp/k cDcCM4M8lxbu8NdjYYmn3EgU+hiw23VP0xNwI6gKwD7IkoAQws4mDrg2vZ7wsh5S1RmV bIh68xUEMkCImGO2yTpoWdJjjnYhPufk3hXM6G16iVWpcCKvOyWK3FV2dJm2MFEJOiYB PSng== X-Received: by 10.15.90.139 with SMTP id q11mr15743740eez.137.1374237205555; Fri, 19 Jul 2013 05:33:25 -0700 (PDT) Received: from vostro ([2001:1bc8:101:f402:21c:23ff:fefc:bf0b]) by mx.google.com with ESMTPSA id n45sm27173008eew.1.2013.07.19.05.33.24 for (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Fri, 19 Jul 2013 05:33:25 -0700 (PDT) Sender: =?UTF-8?Q?Timo_Ter=C3=A4s?= Date: Fri, 19 Jul 2013 15:33:52 +0300 From: Timo Teras To: alpine-devel@lists.alpinelinux.org Subject: [alpine-devel] Alpine arm/musl, abuild changes needed Message-ID: <20130719153352.7fcfb85b@vostro> X-Mailer: Claws Mail 3.9.2 (GTK+ 2.24.20; i686-pc-linux-gnu) X-Mailinglist: alpine-devel Precedence: list List-Id: Alpine Development List-Unsubscribe: List-Post: List-Help: List-Subscribe: Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Hi, I've been now working roughly few weeks and already come quite a long way. Basically, I have cross-building of core APKBUILDs working, and we have qemu-user emulated vserver for building. However, native compile bootstrapping did introduce few additional problems. And also the fact that emulation is slow, I'd like to do few things to speed up things. Basically, musl support is present in newest autotools and gnulib. But many packages use old versions - or are even so old releases that those are not used. This is way we had abuild do config.sub updating earlier. We just also pushed abuild patch to set CLIBC always properly to help with our libc variants. This is now set automatically from abuild.conf CHOST (same applies to CARCH). This simplifies a bit some of the APKBUILDs we have currently. But seems we need to do additional hackery with autotools and gnulib, so we'd like to ask feedback on the following things: 1) usage of config.cache We'd like to start using config.cache in similar manner with sabotage. That is we provide a fixed config.cache for autotools usage. This speeds up ./configure, and in addition allows us to force certain values to make sure e.g. gnulib behaves. This means we need to pass --cache-file to ./configure. I'd prefer to point it to /usr/share/abuild/config.cache that basically just does something like: source /usr/share/abuild/config.cache.$CARCH source /usr/share/abuild/config.cache.$CLIBC For reference, the sabotage config.cache template is at: https://github.com/rofl0r/sabotage/blob/master/KEEP/config.cache 2) standard configure options The above means we need update basically all of our autotools APKBUILDs. We have options to: a) have a script to update APKBUILDs to standard autotools magic b) have abuild function to call ./configure c) export $abuild_configure_options I'm personally leaning for a, or a+c. In any case, we should likely move --prefix and other path related autotools defines, along with --build, --host, --target and --with-sysroot here. 3) config.sub, config.guess updating We previously patched abuild to go and update this to latest version that support musl in post_unpack. But we are now thinking of reverting this, and having abuild export "update_config_sub" or similar, that could be called in prepare hook. This would make it more explicit for the user that we are replacing these. 4) fixing embedded gnulib Seems gnulib got musl support around 2012-06. But we again have the same problem as with autotools. Only fraction of packages ship with new enough gnulib. The nasty thing seems to be that we need to regenerate configure if we update the in-tree gnulib copy. And that opens another can of worms - how to update per-package autotools magic to work with latest autotools. Sabotage seems to just manually fiddle with gnulib to make it compile. Ideas here are welcome what to do. --- As an afterthought. I noticed abuildhelper that frameworkizes autotools. However, only audacity uses that. I personally would try to have APKBUILDs not using that kind of frameworks. So if when we implement 2) above would it make sense to convert audacity to that as well, and remove abuildhelper? - Timo --- Unsubscribe: alpine-devel+unsubscribe@lists.alpinelinux.org Help: alpine-devel+help@lists.alpinelinux.org ---