# $Id$ # Maintainer: Alexander F Rødseth # Contributor: Daniel Micay pkgname=('rust' 'rust-docs') epoch=1 pkgver=1.12.0 pkgrel=2 pkgdesc='Systems programming language focused on safety, speed and concurrency' arch=('x86_64' 'i686') url='http://www.rust-lang.org/' license=('MIT' 'Apache') groups=('rust') makedepends=('jemalloc' 'llvm' 'python2' 'rust') options=('docs' 'staticlibs' '!strip') source=("https://static.rust-lang.org/dist/rustc-${pkgver}-src.tar.gz"{,asc}) sha256sums=('ac5907d6fa96c19bd5901d8d99383fb8755127571ead3d4070cce9c1fb5f337a' 'SKIP') validpgpkeys=('108F66205EAEB0AAA8DD5E1C85AB96E6FA1BE5FE') # Rust Language (Tag and Release Signing Key) #gpg --keyserver hkp://keys.gnupg.net --recv-keys 108F66205EAEB0AAA8DD5E1C85AB96E6FA1BE5FE prepare() { cd "${srcdir}/rustc-${pkgver}" # ensure we use system libs rm -r src/{llvm,jemalloc} # minimize makedepends # curl: used only to fetch stage0 rustc (we bootstrap with previous version) sed -i -e 's/^[[:blank:]]*probe_need CFG_CURL/#\0/' configure # cmake: used only to build custom llvm (we use system llvm) sed -i -e 's/^[[:blank:]]*probe_need CFG_CMAKE/#\0/' configure # TODO: python2 is most likely also not needed # use arch's build flags for non-rust sources (e.g. libbacktrace) sed -i -e "s/CFG_GCCISH_CFLAGS_.* :=/\0 $CFLAGS/" mk/cfg/*.mk sed -i -e "s/CFG_GCCISH_CXXFLAGS_.* :=/\0 $CXXFLAGS/" mk/cfg/*.mk sed -i -e "s/CFG_GCCISH_LINK_FLAGS_.* :=/\0 $LDFLAGS/" mk/cfg/*.mk # for rust sources, rustc/llvm flags could be set via $RUSTFLAGS } build() { cd "${srcdir}/rustc-${pkgver}" ./configure \ --prefix=/usr \ --release-channel=stable \ --disable-rpath \ --disable-manage-submodules \ --enable-local-rust --local-rust-root=/usr \ --enable-jemalloc --jemalloc-root=/usr/lib \ --llvm-root=/usr --disable-codegen-tests # d-cg-t: fix configure error on missing bin/FileCheck with system-llvm make } package_rust() { depends=('gcc-libs' 'llvm-libs') cd "${srcdir}/rustc-${pkgver}" make DESTDIR="${pkgdir}" install install -Dm644 -t "${pkgdir}"/usr/share/licenses/${pkgname}/ LICENSE-{APACHE,MIT} # delete rust-installer stuff (only useful for manual installs) rm "${pkgdir}"/usr/lib/rustlib/{components,install.log,manifest-*,rust-installer-version,uninstall.sh} # replace copies of shared libs with symlinks cd "${pkgdir}"/usr/lib ln -sf rustlib/*/lib/*.so . # split package for docs mv "${pkgdir}"/usr/share/doc "${srcdir}"/ } package_rust-docs() { pkgdesc='Documentation for the Rust programming language' cd "${srcdir}/rustc-${pkgver}" install -Dm644 -t "${pkgdir}"/usr/share/licenses/${pkgname}/ LICENSE-{APACHE,MIT} mv "${srcdir}"/doc "${pkgdir}"/usr/share/ } # vim:set ts=2 sw=2 et: