From b13248c657b134ccfa71d0cca468847acdee2ac3 Mon Sep 17 00:00:00 2001 From: Auri Date: Sun, 25 Oct 2020 17:13:56 +0200 Subject: [PATCH] New package: dmd2.091 - libphobos2.091 conflicts with libphobos2.081 - backport clean ld exit - disable parallel build --- srcpkgs/dmd2.091/files/dmd.conf | 2 + .../dmd2.091/patches/backport-ld-exit.patch | 11 +++ srcpkgs/dmd2.091/template | 79 +++++++++++++++++++ 3 files changed, 92 insertions(+) create mode 100644 srcpkgs/dmd2.091/files/dmd.conf create mode 100644 srcpkgs/dmd2.091/patches/backport-ld-exit.patch create mode 100644 srcpkgs/dmd2.091/template diff --git a/srcpkgs/dmd2.091/files/dmd.conf b/srcpkgs/dmd2.091/files/dmd.conf new file mode 100644 index 00000000000..e8d42d10620 --- /dev/null +++ b/srcpkgs/dmd2.091/files/dmd.conf @@ -0,0 +1,2 @@ +[Environment] +DFLAGS=-I/usr/include/d -I/usr/include/d/druntime/import -L-L/usr/lib -L-L/usr/lib -L--no-warn-search-mismatch -L--export-dynamic -fPIC diff --git a/srcpkgs/dmd2.091/patches/backport-ld-exit.patch b/srcpkgs/dmd2.091/patches/backport-ld-exit.patch new file mode 100644 index 00000000000..d4d34035791 --- /dev/null +++ b/srcpkgs/dmd2.091/patches/backport-ld-exit.patch @@ -0,0 +1,11 @@ +--- dmd/src/dmd/link.d ++++ dmd/src/dmd/link.d +@@ -782,7 +782,7 @@ public int runLINK() + close(fds[0]); + execvp(argv[0], argv.tdata()); + perror(argv[0]); // failed to execute +- return -1; ++ _exit(-1); + } + else if (childpid == -1) + { diff --git a/srcpkgs/dmd2.091/template b/srcpkgs/dmd2.091/template new file mode 100644 index 00000000000..72521df7cd3 --- /dev/null +++ b/srcpkgs/dmd2.091/template @@ -0,0 +1,79 @@ +# Template file for 'dmd2.091' +pkgname=dmd2.091 +version=2.091.0 +revision=1 +create_wrksrc=yes +hostmakedepends="dmd2.081 which" +makedepends="git" +depends="gcc" +short_desc="Digital Mars D compiler, 2.091" +maintainer="Auri " +license="BSL-1.0" +homepage="http://www.digitalmars.com/d/2.0/" +distfiles=" + https://github.com/dlang/dmd/archive/v${version}.tar.gz>dmd-${version}.tar.gz + https://github.com/dlang/druntime/archive/v${version}.tar.gz>druntime-${version}.tar.gz + https://github.com/dlang/phobos/archive/v${version}.tar.gz>phobos-${version}.tar.gz + http://downloads.dlang.org/releases/2.x/${version}/dmd.${version}.linux.tar.xz" +checksum="bcca38f4b80b51ae0a1955dc29e6cbfaa4d01d94869ddfcacf9292898c34343a + cc8ba196b08cca04488d97d0e35c878f7351b7d8128aec90eaa312d2bd9a6af2 + df9f81eecda4366adc5ca9ed31a0b4474c248544b120ff6fa3f6cb45917d8769 + 6e4bd4ee73a553921cdca7e3e21768b842b18186d07c0b4898fbd13a359875c0" +conf_files="/etc/dmd.conf" +provides="d-compiler-${version}_${revision}" +conflicts="dmd-bootstrap dmd2.081 libphobos2.081" +nopie=yes +nocross=yes +disable_parallel_build=yes +LDFLAGS="-lpthread" + +case "$XBPS_TARGET_MACHINE" in + x86_64*) _archbits=64;; + i686) _archbits=32;; + *) broken="unsupported arch upstream";; +esac + +post_extract() { + mv dmd-${version} dmd + mv druntime-${version} druntime + mv phobos-${version} phobos +} + +do_build() { + local dmd + + cd dmd + make ${makejobs} -f posix.mak MODEL=${_archbits} TARGET_CPU=X86 ENABLE_RELEASE=1 PIC=1 + dmd=${wrksrc}/dmd/generated/linux/release/$_archbits/dmd + + make ${makejobs} -C docs + + cd ../druntime + make ${makejobs} -f posix.mak MODEL=${_archbits} DMD=$dmd ENABLE_RELEASE=1 PIC=1 + + cd ../phobos + make ${makejobs} -f posix.mak MODEL=${_archbits} DMD=$dmd ENABLE_RELEASE=1 PIC=1 +} + +do_install() { + cd dmd + vbin generated/linux/release/$_archbits/dmd + vinstall ${FILESDIR}/dmd.conf 644 etc + + # note: dmd, druntime and phobos all share the same license + vlicense LICENSE.txt + + vman generated/docs/man/man1/dmd.1 + vman generated/docs/man/man5/dmd.conf.5 + + vmkdir usr/include/d + + cd ../phobos + cp -r ./{*.d,etc,std} ${PKGDESTDIR}/usr/include/d + vinstall generated/linux/release/$_archbits/libphobos2.a 644 usr/lib libphobos2.a + + cd ../druntime + vmkdir usr/include/d/druntime + cp -r import ${PKGDESTDIR}/usr/include/d/druntime + vinstall generated/linux/release/$_archbits/libdruntime.a 644 usr/lib libdruntime.a +}