diff options
author | 2015-08-08 13:49:04 -0700 | |
---|---|---|
committer | 2015-08-08 17:38:18 -0700 | |
commit | 56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch) | |
tree | 3f91093cdb475e565ae857f1c5a7fd339e2d781e /dev-lang | |
download | gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2 gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip |
proj/gentoo: Initial commit
This commit represents a new era for Gentoo:
Storing the gentoo-x86 tree in Git, as converted from CVS.
This commit is the start of the NEW history.
Any historical data is intended to be grafted onto this point.
Creation process:
1. Take final CVS checkout snapshot
2. Remove ALL ChangeLog* files
3. Transform all Manifests to thin
4. Remove empty Manifests
5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$
5.1. Do not touch files with -kb/-ko keyword flags.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests
X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project
X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration
X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn
X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts
X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration
X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging
X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'dev-lang')
956 files changed, 66113 insertions, 0 deletions
diff --git a/dev-lang/R/Manifest b/dev-lang/R/Manifest new file mode 100644 index 000000000000..d6134ee943d1 --- /dev/null +++ b/dev-lang/R/Manifest @@ -0,0 +1,7 @@ +DIST R-20130129.bash_completion.bz2 4209 SHA256 487e969b94563fec98ec58de7e6142e9361d4219088add0fca282b482a9e01b1 SHA512 910b26e16cfebe677f438abfa5f2652e582db143d91dbf0e7d4b1ea33462c7e5c89c3a3619c63ae98bba26b11a5adb16eda9d344f8cdbe4f0feabc546993c1a5 WHIRLPOOL 2368efaed37fcb6e010f6a234864631f68549bd8e3f733561170cc5b28f5557e546d8561246fb265a481a47991a262fec3acf6abc1dc3929a9357405e0d3c6fc +DIST R-3.0.1.tar.gz 25508280 SHA256 af90488af3141103b211dc81b6f17d1f0faf4f17684c579a32dfeb25d0d87134 SHA512 470edbf4a4fccf9310add110d7fa7f338e410e412b3ec84f6ea5f1253e94a435e185a7a1b62b22aee443293147ff7bcca139015b490a9271a502b1bfbf1426a2 WHIRLPOOL f45c960280f51cba3a4f3730fa79671808b3c07fd49f97b2cdce4a1de45986e62ac9bb24c6f764386a3ef1034a266b86f041a1a1652ec7f687a4db08a074d22e +DIST R-3.0.3.tar.gz 28075821 SHA256 b97cfd9540f294ab786e846153f3dd8605610d7e27616bfb4296795bc4fde6d6 SHA512 881c9c0a8d866eb87218a5cdca72153c9ef0fa0a0f091595fc065bdcbc1ea8b0bd1a2fb3008457b12e1b5025a7e70bd7764de4286a57ad3f73226367b2fc4e83 WHIRLPOOL 076d041c0581dc211a4ee53cf5cad731dc0ece33bbb34f8c066dc660ef0c1f7dcfc1b3359c6a0cebfa2ccec9b689776965a530edcf9f81758c4e003242347225 +DIST R-3.1.0.tar.gz 28469975 SHA256 8a680390f84c58c01dcdefd682eaa0e90389f09e6d2f2e090c71af40065f5fe2 SHA512 bb21fc90c7d37a5328031ed784e7dcbd20259d1837c33db3b51c14a116939a53496683d5de142a1223e89fc12406294efc67bed3595131615e9607d5ffab5ce2 WHIRLPOOL b376180d700d18780eb344b737a3a1bfc8b40f67967032e0f34abf940d76c3ffd7694be9f2f10be985571e8f94d92a6970a3d1cba503280e3fcf6df7a5e4298e +DIST R-3.1.1.tar.gz 28606569 SHA256 ce5c4d5e34414ce8f1ec2d5642861435fa1ddc4cd89bd336172bbe25a62c7a19 SHA512 a75d8b82645bd9486873669b802924448d591013076e3d7dc958502dc6f0dac7d7fb78f3921d34a1eac1383f141b6e800f4293f7fac09651e0176cf84c431af9 WHIRLPOOL ec05c70193a229cbaf15f3432853070c6666c3963a4e2719a6d8ff188bfc2cada0d1f2fe90a9dd6b43f46913138afed0be387ba73b7f9c4d87abc362cc8a5393 +DIST R-3.1.2.tar.gz 28655941 SHA256 bcd150afcae0e02f6efb5f35a6ab72432be82e849ec52ce0bb89d8c342a8fa7a SHA512 fee20cd94d14bd46cc36fb265ed4d64f44eaa3929dd13c62d29a5883fde607aba63e28a4b0f265ede63f78788996deaee36acf6a70cc0bc90a705c9782be01a1 WHIRLPOOL f02d543c0fd7e89e63aba844b7c0f651a9a6bb5dbfcd58bdb64b49d08335c3270383eb62291b9f2f20ef6ec9f39eef5cf77ae1af3109296f8b1898227cca99d1 +DIST R-3.2.0.tar.gz 29124927 SHA256 f5ae953f18ba6f3d55b46556bbbf73441350f9fd22625402b723a2b81ff64f35 SHA512 c6041c854251d51dd936d3a3632c2958a0437c58488f93e5ba810e957fb7f2276e3fe4f615fb4705f2fc5a66aa50a828b54b5e4e7b4358c7fd465c71531b9828 WHIRLPOOL e21a65b9197a202691dbe903b441caf7d8b92efdffb86dcccdbf09d080177cfd472a54d381df1cca749937434ffb9c08ac74198457e320353207cd00837e1086 diff --git a/dev-lang/R/R-3.0.1.ebuild b/dev-lang/R/R-3.0.1.ebuild new file mode 100644 index 000000000000..da39c7900104 --- /dev/null +++ b/dev-lang/R/R-3.0.1.ebuild @@ -0,0 +1,206 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit bash-completion-r1 autotools eutils flag-o-matic fortran-2 multilib versionator toolchain-funcs + +BCP=${PN}-20130129.bash_completion +DESCRIPTION="Language and environment for statistical computing and graphics" +HOMEPAGE="http://www.r-project.org/" +SRC_URI=" + mirror://cran/src/base/R-3/${P}.tar.gz + bash-completion? ( http://dev.gentoo.org/~bicatali/distfiles/${BCP}.bz2 )" + +LICENSE="|| ( GPL-2 GPL-3 ) LGPL-2.1" +SLOT="0" +KEYWORDS="amd64 hppa ia64 ppc ppc64 sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos" +IUSE="bash-completion cairo doc icu java jpeg lapack minimal nls openmp perl png prefix profile readline static-libs tiff tk X" +REQUIRED_USE="png? ( || ( cairo X ) ) jpeg? ( || ( cairo X ) ) tiff? ( || ( cairo X ) )" + +CDEPEND=" + app-arch/bzip2 + app-text/ghostscript-gpl + dev-libs/libpcre + virtual/blas + cairo? ( x11-libs/cairo[X] x11-libs/pango ) + icu? ( dev-libs/icu:= ) + jpeg? ( virtual/jpeg:0 ) + lapack? ( virtual/lapack ) + perl? ( dev-lang/perl ) + png? ( media-libs/libpng:0= ) + readline? ( sys-libs/readline:0= ) + tk? ( dev-lang/tk:0= ) + X? ( x11-libs/libXmu x11-misc/xdg-utils )" + +DEPEND="${CDEPEND} + virtual/pkgconfig + doc? ( + virtual/latex-base + dev-texlive/texlive-fontsrecommended + )" + +RDEPEND="${CDEPEND} + ( || ( <sys-libs/zlib-1.2.5.1-r1 >=sys-libs/zlib-1.2.5.1-r2[minizip] ) ) + app-arch/xz-utils + java? ( >=virtual/jre-1.5 )" + +RESTRICT="minimal? ( test )" + +R_DIR="${EROOT%/}/usr/$(get_libdir)/${PN}" + +pkg_setup() { + if use openmp; then + FORTRAN_NEED_OPENMP=1 + tc-has-openmp || die "Please enable openmp support in your compiler" + fi + fortran-2_pkg_setup + filter-ldflags -Wl,-Bdirect -Bdirect + # avoid using existing R installation + unset R_HOME + # Temporary fix for bug #419761 + if [[ ($(tc-getCC) == *gcc) && ($(gcc-version) == 4.7) ]]; then + append-flags -fno-ipa-cp-clone + fi +} + +src_prepare() { + # gentoo bug #322965 (not applied upstream) + # https://bugs.r-project.org/bugzilla3/show_bug.cgi?id=14505 + epatch "${FILESDIR}"/${PN}-2.11.1-parallel.patch + + # respect ldflags (not applied upstream) + # https://bugs.r-project.org/bugzilla3/show_bug.cgi?id=14506 + epatch "${FILESDIR}"/${PN}-2.12.1-ldflags.patch + + # gentoo bug #383431 + # https://bugs.r-project.org/bugzilla3/show_bug.cgi?id=14951 + epatch "${FILESDIR}"/${PN}-2.13.1-zlib_header_fix.patch + + # https://bugs.r-project.org/bugzilla3/show_bug.cgi?id=14953 + epatch "${FILESDIR}"/${PN}-3.0.0-rmath-shared.patch + + # fix packages.html for doc (gentoo bug #205103) + sed -i \ + -e "s:../../../library:../../../../$(get_libdir)/R/library:g" \ + src/library/tools/R/Rd.R || die + + # fix Rscript path when installed (gentoo bug #221061) + sed -i \ + -e "s:-DR_HOME='\"\$(rhome)\"':-DR_HOME='\"${R_DIR}\"':" \ + src/unix/Makefile.in || die "sed unix Makefile failed" + + # fix HTML links to manual (gentoo bug #273957) + sed -i \ + -e 's:\.\./manual/:manual/:g' \ + $(grep -Flr ../manual/ doc) || die "sed for HTML links failed" + + use lapack && \ + export LAPACK_LIBS="$($(tc-getPKG_CONFIG) --libs lapack)" + + if use X; then + export R_BROWSER="$(type -p xdg-open)" + export R_PDFVIEWER="$(type -p xdg-open)" + fi + use perl && \ + export PERL5LIB="${S}/share/perl:${PERL5LIB:+:}${PERL5LIB}" + + # don't search /usr/local + sed -i -e '/FLAGS=.*\/local\//c\: # removed by ebuild' configure.ac || die + # Fix for Darwin (OS X) + if use prefix; then + if [[ ${CHOST} == *-darwin* ]] ; then + sed -i \ + -e 's:-install_name libR.dylib:-install_name ${libdir}/R/lib/libR.dylib:' \ + -e 's:-install_name libRlapack.dylib:-install_name ${libdir}/R/lib/libRlapack.dylib:' \ + -e 's:-install_name libRblas.dylib:-install_name ${libdir}/R/lib/libRblas.dylib:' \ + -e "/SHLIB_EXT/s/\.so/.dylib/" \ + configure.ac || die + # sort of "undo" 2.14.1-rmath-shared.patch + sed -i \ + -e "s:-Wl,-soname=libRmath.so:-install_name ${EROOT%/}/usr/$(get_libdir)/libRmath.dylib:" \ + src/nmath/standalone/Makefile.in || die + else + append-ldflags -Wl,-rpath="${EROOT%/}/usr/$(get_libdir)/R/lib" + fi + fi + AT_M4DIR=m4 eaclocal + eautoconf +} + +src_configure() { + econf \ + --enable-byte-compiled-packages \ + --enable-R-shlib \ + --disable-R-framework \ + --with-system-zlib \ + --with-system-bzlib \ + --with-system-pcre \ + --with-system-xz \ + --without-blas \ + --docdir="${EPREFIX}/usr/share/doc/${PF}" \ + rdocdir="${EPREFIX}/usr/share/doc/${PF}" \ + $(use_enable nls) \ + $(use_enable openmp) \ + $(use_enable profile R-profiling) \ + $(use_enable profile memory-profiling) \ + $(use_enable static-libs static) \ + $(use_enable static-libs R-static-lib) \ + $(use_with cairo) \ + $(use_with icu ICU) \ + $(use_with jpeg jpeglib) \ + $(use_with lapack) \ + $(use_with !minimal recommended-packages) \ + $(use_with png libpng) \ + $(use_with readline) \ + $(use_with tiff libtiff) \ + $(use_with tk tcltk) \ + $(use_with X x) +} + +src_compile() { + export VARTEXFONTS="${T}/fonts" + emake AR="$(tc-getAR)" + emake -C src/nmath/standalone shared $(use static-libs && echo static) AR="$(tc-getAR)" + use doc && emake info pdf +} + +src_install() { + default + emake -j1 -C src/nmath/standalone DESTDIR="${D}" install + + if use doc; then + emake DESTDIR="${D}" install-info install-pdf + dosym ../manual /usr/share/doc/${PF}/html/manual + fi + + cat > 99R <<-EOF + LDPATH=${R_DIR}/lib + R_HOME=${R_DIR} + EOF + doenvd 99R + use bash-completion && newbashcomp "${WORKDIR}"/${BCP} ${PN} + # The buildsystem has a different understanding of install_names than what + # we require. Since it builds modules like shared objects (wrong), many + # objects (all modules) get an incorrect install_name. Fixing the build + # system here is not really trivial. + if [[ ${CHOST} == *-darwin* ]] ; then + local mod + pushd "${ED}"/usr/lib/R > /dev/null + for mod in $(find . -name "*.dylib") ; do + mod=${mod#./} + install_name_tool -id "${EPREFIX}/usr/lib/R/${mod}" \ + "${mod}" + done + popd > /dev/null + fi + docompress -x /usr/share/doc/${PF}/NEWS.rds +} + +pkg_postinst() { + if use java; then + einfo "Re-initializing java paths for ${P}" + R CMD javareconf + fi +} diff --git a/dev-lang/R/R-3.0.3.ebuild b/dev-lang/R/R-3.0.3.ebuild new file mode 100644 index 000000000000..6b4fe58cb7c6 --- /dev/null +++ b/dev-lang/R/R-3.0.3.ebuild @@ -0,0 +1,203 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit bash-completion-r1 autotools eutils flag-o-matic fortran-2 multilib versionator toolchain-funcs + +BCP=${PN}-20130129.bash_completion +DESCRIPTION="Language and environment for statistical computing and graphics" +HOMEPAGE="http://www.r-project.org/" +SRC_URI=" + mirror://cran/src/base/R-3/${P}.tar.gz + bash-completion? ( http://dev.gentoo.org/~bicatali/distfiles/${BCP}.bz2 )" + +LICENSE="|| ( GPL-2 GPL-3 ) LGPL-2.1" +SLOT="0" +KEYWORDS="~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos" +IUSE="bash-completion cairo doc icu java jpeg lapack minimal nls openmp perl png prefix profile readline static-libs tiff tk X" +REQUIRED_USE="png? ( || ( cairo X ) ) jpeg? ( || ( cairo X ) ) tiff? ( || ( cairo X ) )" + +CDEPEND=" + app-arch/bzip2:0= + app-arch/xz-utils:0= + app-text/ghostscript-gpl + dev-libs/libpcre:3= + virtual/blas:0 + || ( >=sys-apps/coreutils-8.15 sys-freebsd/freebsd-bin app-misc/realpath ) + cairo? ( x11-libs/cairo[X] x11-libs/pango ) + icu? ( dev-libs/icu:= ) + jpeg? ( virtual/jpeg:0 ) + lapack? ( virtual/lapack:0 ) + perl? ( dev-lang/perl ) + png? ( media-libs/libpng:0= ) + readline? ( sys-libs/readline:0= ) + tiff? ( media-libs/tiff:0= ) + tk? ( dev-lang/tk:0= ) + X? ( x11-libs/libXmu:0= x11-misc/xdg-utils )" + +DEPEND="${CDEPEND} + virtual/pkgconfig + doc? ( + virtual/latex-base + dev-texlive/texlive-fontsrecommended + )" + +RDEPEND="${CDEPEND} + ( || ( <sys-libs/zlib-1.2.5.1-r1:0 >=sys-libs/zlib-1.2.5.1-r2:0[minizip] ) ) + java? ( >=virtual/jre-1.5 )" + +RESTRICT="minimal? ( test )" + +R_DIR="${EROOT%/}/usr/$(get_libdir)/${PN}" + +pkg_setup() { + if use openmp; then + if [[ $(tc-getCC) == *gcc ]] && ! tc-has-openmp; then + ewarn "OpenMP is not available in your current selected gcc" + die "need openmp capable gcc" + fi + FORTRAN_NEED_OPENMP=1 + fi + fortran-2_pkg_setup + filter-ldflags -Wl,-Bdirect -Bdirect + # avoid using existing R installation + unset R_HOME + # Temporary fix for bug #419761 + if [[ ($(tc-getCC) == *gcc) && ($(gcc-version) == 4.7) ]]; then + append-flags -fno-ipa-cp-clone + fi +} + +src_prepare() { + epatch \ + "${FILESDIR}"/${PN}-2.11.1-parallel.patch \ + "${FILESDIR}"/${PN}-2.13.1-zlib_header_fix.patch \ + "${FILESDIR}"/${PN}-3.0.0-rmath-shared.patch + + # fix packages.html for doc (gentoo bug #205103) + sed -i \ + -e "s:../../../library:../../../../$(get_libdir)/R/library:g" \ + src/library/tools/R/Rd.R || die + + # fix Rscript path when installed (gentoo bug #221061) + sed -i \ + -e "s:-DR_HOME='\"\$(rhome)\"':-DR_HOME='\"${R_DIR}\"':" \ + src/unix/Makefile.in || die "sed unix Makefile failed" + + # fix HTML links to manual (gentoo bug #273957) + sed -i \ + -e 's:\.\./manual/:manual/:g' \ + $(grep -Flr ../manual/ doc) || die "sed for HTML links failed" + + use lapack && \ + export LAPACK_LIBS="$($(tc-getPKG_CONFIG) --libs lapack)" + + if use X; then + export R_BROWSER="$(type -p xdg-open)" + export R_PDFVIEWER="$(type -p xdg-open)" + fi + use perl && \ + export PERL5LIB="${S}/share/perl:${PERL5LIB:+:}${PERL5LIB}" + + # don't search /usr/local + sed -i -e '/FLAGS=.*\/local\//c\: # removed by ebuild' configure.ac || die + # Fix for Darwin (OS X) + if use prefix; then + if [[ ${CHOST} == *-darwin* ]] ; then + sed -i \ + -e 's:-install_name libR.dylib:-install_name ${libdir}/R/lib/libR.dylib:' \ + -e 's:-install_name libRlapack.dylib:-install_name ${libdir}/R/lib/libRlapack.dylib:' \ + -e 's:-install_name libRblas.dylib:-install_name ${libdir}/R/lib/libRblas.dylib:' \ + -e "/SHLIB_EXT/s/\.so/.dylib/" \ + configure.ac || die + # sort of "undo" 2.14.1-rmath-shared.patch + sed -i \ + -e "s:-Wl,-soname=libRmath.so:-install_name ${EROOT%/}/usr/$(get_libdir)/libRmath.dylib:" \ + src/nmath/standalone/Makefile.in || die + else + append-ldflags -Wl,-rpath="${EROOT%/}/usr/$(get_libdir)/R/lib" + fi + fi + AT_M4DIR=m4 eaclocal + eautoconf +} + +src_configure() { + econf \ + --enable-byte-compiled-packages \ + --enable-R-shlib \ + --disable-R-framework \ + --with-system-zlib \ + --with-system-bzlib \ + --with-system-pcre \ + --with-system-xz \ + --with-blas="$($(tc-getPKG_CONFIG) --libs blas)" \ + --docdir="${EPREFIX}/usr/share/doc/${PF}" \ + rdocdir="${EPREFIX}/usr/share/doc/${PF}" \ + $(use_enable nls) \ + $(use_enable openmp) \ + $(use_enable profile R-profiling) \ + $(use_enable profile memory-profiling) \ + $(use_enable static-libs static) \ + $(use_enable static-libs R-static-lib) \ + $(use_with cairo) \ + $(use_with icu ICU) \ + $(use_with jpeg jpeglib) \ + $(use_with lapack) \ + $(use_with !minimal recommended-packages) \ + $(use_with png libpng) \ + $(use_with readline) \ + $(use_with tiff libtiff) \ + $(use_with tk tcltk) \ + $(use_with tk tk-config "${EPREFIX}"/usr/lib/tkConfig.sh) \ + $(use_with tk tcl-config "${EPREFIX}"/usr/lib/tclConfig.sh) \ + $(use_with X x) +} + +src_compile() { + export VARTEXFONTS="${T}/fonts" + emake AR="$(tc-getAR)" + emake -C src/nmath/standalone shared $(use static-libs && echo static) AR="$(tc-getAR)" + use doc && emake info pdf +} + +src_install() { + default + emake -j1 -C src/nmath/standalone DESTDIR="${D}" install + + if use doc; then + emake DESTDIR="${D}" install-info install-pdf + dosym ../manual /usr/share/doc/${PF}/html/manual + fi + + cat > 99R <<-EOF + LDPATH=${R_DIR}/lib + R_HOME=${R_DIR} + EOF + doenvd 99R + use bash-completion && newbashcomp "${WORKDIR}"/${BCP} ${PN} + # The buildsystem has a different understanding of install_names than what + # we require. Since it builds modules like shared objects (wrong), many + # objects (all modules) get an incorrect install_name. Fixing the build + # system here is not really trivial. + if [[ ${CHOST} == *-darwin* ]] ; then + local mod + pushd "${ED}"/usr/lib/R > /dev/null + for mod in $(find . -name "*.dylib") ; do + mod=${mod#./} + install_name_tool -id "${EPREFIX}/usr/lib/R/${mod}" \ + "${mod}" + done + popd > /dev/null + fi + docompress -x /usr/share/doc/${PF}/NEWS.rds +} + +pkg_postinst() { + if use java; then + einfo "Re-initializing java paths for ${P}" + R CMD javareconf + fi +} diff --git a/dev-lang/R/R-3.1.0.ebuild b/dev-lang/R/R-3.1.0.ebuild new file mode 100644 index 000000000000..0ff21980d8f8 --- /dev/null +++ b/dev-lang/R/R-3.1.0.ebuild @@ -0,0 +1,206 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit bash-completion-r1 autotools eutils flag-o-matic fortran-2 multilib versionator toolchain-funcs + +BCP=${PN}-20130129.bash_completion +DESCRIPTION="Language and environment for statistical computing and graphics" +HOMEPAGE="http://www.r-project.org/" +SRC_URI=" + mirror://cran/src/base/R-3/${P}.tar.gz + bash-completion? ( http://dev.gentoo.org/~bicatali/distfiles/${BCP}.bz2 )" + +LICENSE="|| ( GPL-2 GPL-3 ) LGPL-2.1" +SLOT="0" +KEYWORDS="~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos" +IUSE="bash-completion cairo doc icu java jpeg lapack minimal nls openmp perl png prefix profile readline static-libs tiff tk X" +REQUIRED_USE="png? ( || ( cairo X ) ) jpeg? ( || ( cairo X ) ) tiff? ( || ( cairo X ) )" + +CDEPEND=" + app-arch/bzip2:0= + app-arch/xz-utils:0= + app-text/ghostscript-gpl + dev-libs/libpcre:3= + virtual/blas:0 + || ( >=sys-apps/coreutils-8.15 sys-freebsd/freebsd-bin app-misc/realpath ) + cairo? ( x11-libs/cairo:0=[X] x11-libs/pango:0= ) + icu? ( dev-libs/icu:= ) + jpeg? ( virtual/jpeg:0 ) + lapack? ( virtual/lapack:0 ) + perl? ( dev-lang/perl ) + png? ( media-libs/libpng:0= ) + readline? ( sys-libs/readline:0= ) + tiff? ( media-libs/tiff:0= ) + tk? ( dev-lang/tk:0= ) + X? ( x11-libs/libXmu:0= x11-misc/xdg-utils )" + +DEPEND="${CDEPEND} + virtual/pkgconfig + doc? ( + virtual/latex-base + dev-texlive/texlive-fontsrecommended + )" + +RDEPEND="${CDEPEND} + ( || ( <sys-libs/zlib-1.2.5.1-r1:0 >=sys-libs/zlib-1.2.5.1-r2:0[minizip] ) ) + java? ( >=virtual/jre-1.5 )" + +RESTRICT="minimal? ( test )" + +R_DIR="${EROOT%/}/usr/$(get_libdir)/${PN}" + +pkg_setup() { + if use openmp; then + if [[ $(tc-getCC) == *gcc ]] && ! tc-has-openmp; then + ewarn "OpenMP is not available in your current selected gcc" + die "need openmp capable gcc" + fi + FORTRAN_NEED_OPENMP=1 + fi + fortran-2_pkg_setup + filter-ldflags -Wl,-Bdirect -Bdirect + # avoid using existing R installation + unset R_HOME + # Temporary fix for bug #419761 + if [[ ($(tc-getCC) == *gcc) && ($(gcc-version) == 4.7) ]]; then + append-flags -fno-ipa-cp-clone + fi +} + +src_prepare() { + epatch \ + "${FILESDIR}"/${PN}-2.11.1-parallel.patch \ + "${FILESDIR}"/${PN}-2.13.1-zlib_header_fix.patch \ + "${FILESDIR}"/${PN}-3.0.0-rmath-shared.patch + + # fix packages.html for doc (gentoo bug #205103) + sed -i \ + -e "s:../../../library:../../../../$(get_libdir)/R/library:g" \ + src/library/tools/R/Rd.R || die + + # fix Rscript path when installed (gentoo bug #221061) + sed -i \ + -e "s:-DR_HOME='\"\$(rhome)\"':-DR_HOME='\"${R_DIR}\"':" \ + src/unix/Makefile.in || die "sed unix Makefile failed" + + # fix HTML links to manual (gentoo bug #273957) + sed -i \ + -e 's:\.\./manual/:manual/:g' \ + $(grep -Flr ../manual/ doc) || die "sed for HTML links failed" + + use lapack && \ + export LAPACK_LIBS="$($(tc-getPKG_CONFIG) --libs lapack)" + + if use X; then + export R_BROWSER="$(type -p xdg-open)" + export R_PDFVIEWER="$(type -p xdg-open)" + fi + use perl && \ + export PERL5LIB="${S}/share/perl:${PERL5LIB:+:}${PERL5LIB}" + + # don't search /usr/local + sed -i -e '/FLAGS=.*\/local\//c\: # removed by ebuild' configure.ac || die + # Fix for Darwin (OS X) + if use prefix; then + if [[ ${CHOST} == *-darwin* ]] ; then + sed -i \ + -e 's:-install_name libR.dylib:-install_name ${libdir}/R/lib/libR.dylib:' \ + -e 's:-install_name libRlapack.dylib:-install_name ${libdir}/R/lib/libRlapack.dylib:' \ + -e 's:-install_name libRblas.dylib:-install_name ${libdir}/R/lib/libRblas.dylib:' \ + -e "/SHLIB_EXT/s/\.so/.dylib/" \ + configure.ac || die + # sort of "undo" 2.14.1-rmath-shared.patch + sed -i \ + -e "s:-Wl,-soname=libRmath.so:-install_name ${EROOT%/}/usr/$(get_libdir)/libRmath.dylib:" \ + src/nmath/standalone/Makefile.in || die + else + append-ldflags -Wl,-rpath="${EROOT%/}/usr/$(get_libdir)/R/lib" + fi + fi + AT_M4DIR=m4 eaclocal + eautoconf +} + +src_configure() { + # --with-system-tre \ + # tre is patched from upstream + econf \ + --enable-byte-compiled-packages \ + --enable-R-shlib \ + --disable-R-framework \ + --with-system-zlib \ + --with-system-bzlib \ + --with-system-pcre \ + --with-system-xz \ + --with-blas="$($(tc-getPKG_CONFIG) --libs blas)" \ + --docdir="${EPREFIX}/usr/share/doc/${PF}" \ + rdocdir="${EPREFIX}/usr/share/doc/${PF}" \ + $(use_enable nls) \ + $(use_enable openmp) \ + $(use_enable profile R-profiling) \ + $(use_enable profile memory-profiling) \ + $(use_enable static-libs static) \ + $(use_enable static-libs R-static-lib) \ + $(use_with cairo) \ + $(use_with icu ICU) \ + $(use_with jpeg jpeglib) \ + $(use_with lapack) \ + $(use_with !minimal recommended-packages) \ + $(use_with png libpng) \ + $(use_with readline) \ + $(use_with tiff libtiff) \ + $(use_with tk tcltk) \ + $(use_with tk tk-config "${EPREFIX}"/usr/lib/tkConfig.sh) \ + $(use_with tk tcl-config "${EPREFIX}"/usr/lib/tclConfig.sh) \ + $(use_with X x) +} + +src_compile() { + export VARTEXFONTS="${T}/fonts" + emake AR="$(tc-getAR)" + emake -C src/nmath/standalone \ + shared $(use static-libs && echo static) AR="$(tc-getAR)" + use doc && emake info pdf +} + +src_install() { + default + emake -j1 -C src/nmath/standalone DESTDIR="${D}" install + + if use doc; then + emake DESTDIR="${D}" install-info install-pdf + dosym ../manual /usr/share/doc/${PF}/html/manual + fi + + cat > 99R <<-EOF + LDPATH=${R_DIR}/lib + R_HOME=${R_DIR} + EOF + doenvd 99R + use bash-completion && newbashcomp "${WORKDIR}"/${BCP} ${PN} + # The buildsystem has a different understanding of install_names than + # we require. Since it builds modules like shared objects (wrong), many + # objects (all modules) get an incorrect install_name. Fixing the build + # system here is not really trivial. + if [[ ${CHOST} == *-darwin* ]] ; then + local mod + pushd "${ED}"/usr/lib/R > /dev/null + for mod in $(find . -name "*.dylib") ; do + mod=${mod#./} + install_name_tool -id "${EPREFIX}/usr/lib/R/${mod}" \ + "${mod}" + done + popd > /dev/null + fi + docompress -x /usr/share/doc/${PF}/NEWS.rds +} + +pkg_postinst() { + if use java; then + einfo "Re-initializing java paths for ${P}" + R CMD javareconf + fi +} diff --git a/dev-lang/R/R-3.1.1.ebuild b/dev-lang/R/R-3.1.1.ebuild new file mode 100644 index 000000000000..695519aa8194 --- /dev/null +++ b/dev-lang/R/R-3.1.1.ebuild @@ -0,0 +1,206 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit bash-completion-r1 autotools eutils flag-o-matic fortran-2 multilib versionator toolchain-funcs + +BCP=${PN}-20130129.bash_completion +DESCRIPTION="Language and environment for statistical computing and graphics" +HOMEPAGE="http://www.r-project.org/" +SRC_URI=" + mirror://cran/src/base/R-3/${P}.tar.gz + http://dev.gentoo.org/~bicatali/distfiles/${BCP}.bz2" + +LICENSE="|| ( GPL-2 GPL-3 ) LGPL-2.1" +SLOT="0" +KEYWORDS="~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos" +IUSE="cairo doc icu java jpeg lapack minimal nls openmp perl png prefix profile readline static-libs tiff tk X" +REQUIRED_USE="png? ( || ( cairo X ) ) jpeg? ( || ( cairo X ) ) tiff? ( || ( cairo X ) )" + +CDEPEND=" + app-arch/bzip2:0= + app-arch/xz-utils:0= + app-text/ghostscript-gpl + >=dev-libs/libpcre-8.35:3= + virtual/blas:0 + || ( >=sys-apps/coreutils-8.15 sys-freebsd/freebsd-bin app-misc/realpath ) + cairo? ( x11-libs/cairo:0=[X] x11-libs/pango:0= ) + icu? ( dev-libs/icu:= ) + jpeg? ( virtual/jpeg:0 ) + lapack? ( virtual/lapack:0 ) + perl? ( dev-lang/perl ) + png? ( media-libs/libpng:0= ) + readline? ( sys-libs/readline:0= ) + tiff? ( media-libs/tiff:0= ) + tk? ( dev-lang/tk:0= ) + X? ( x11-libs/libXmu:0= x11-misc/xdg-utils )" + +DEPEND="${CDEPEND} + virtual/pkgconfig + doc? ( + virtual/latex-base + dev-texlive/texlive-fontsrecommended + )" + +RDEPEND="${CDEPEND} + ( || ( <sys-libs/zlib-1.2.5.1-r1:0 >=sys-libs/zlib-1.2.5.1-r2:0[minizip] ) ) + java? ( >=virtual/jre-1.5 )" + +RESTRICT="minimal? ( test )" + +R_DIR="${EROOT%/}/usr/$(get_libdir)/${PN}" + +pkg_setup() { + if use openmp; then + if [[ $(tc-getCC) == *gcc ]] && ! tc-has-openmp; then + ewarn "OpenMP is not available in your current selected gcc" + die "need openmp capable gcc" + fi + FORTRAN_NEED_OPENMP=1 + fi + fortran-2_pkg_setup + filter-ldflags -Wl,-Bdirect -Bdirect + # avoid using existing R installation + unset R_HOME + # Temporary fix for bug #419761 + if [[ ($(tc-getCC) == *gcc) && ($(gcc-version) == 4.7) ]]; then + append-flags -fno-ipa-cp-clone + fi +} + +src_prepare() { + epatch \ + "${FILESDIR}"/${PN}-2.11.1-parallel.patch \ + "${FILESDIR}"/${PN}-2.13.1-zlib_header_fix.patch \ + "${FILESDIR}"/${PN}-3.0.0-rmath-shared.patch + + # fix packages.html for doc (gentoo bug #205103) + sed -i \ + -e "s:../../../library:../../../../$(get_libdir)/R/library:g" \ + src/library/tools/R/Rd.R || die + + # fix Rscript path when installed (gentoo bug #221061) + sed -i \ + -e "s:-DR_HOME='\"\$(rhome)\"':-DR_HOME='\"${R_DIR}\"':" \ + src/unix/Makefile.in || die "sed unix Makefile failed" + + # fix HTML links to manual (gentoo bug #273957) + sed -i \ + -e 's:\.\./manual/:manual/:g' \ + $(grep -Flr ../manual/ doc) || die "sed for HTML links failed" + + use lapack && \ + export LAPACK_LIBS="$($(tc-getPKG_CONFIG) --libs lapack)" + + if use X; then + export R_BROWSER="$(type -p xdg-open)" + export R_PDFVIEWER="$(type -p xdg-open)" + fi + use perl && \ + export PERL5LIB="${S}/share/perl:${PERL5LIB:+:}${PERL5LIB}" + + # don't search /usr/local + sed -i -e '/FLAGS=.*\/local\//c\: # removed by ebuild' configure.ac || die + # Fix for Darwin (OS X) + if use prefix; then + if [[ ${CHOST} == *-darwin* ]] ; then + sed -i \ + -e 's:-install_name libR.dylib:-install_name ${libdir}/R/lib/libR.dylib:' \ + -e 's:-install_name libRlapack.dylib:-install_name ${libdir}/R/lib/libRlapack.dylib:' \ + -e 's:-install_name libRblas.dylib:-install_name ${libdir}/R/lib/libRblas.dylib:' \ + -e "/SHLIB_EXT/s/\.so/.dylib/" \ + configure.ac || die + # sort of "undo" 2.14.1-rmath-shared.patch + sed -i \ + -e "s:-Wl,-soname=libRmath.so:-install_name ${EROOT%/}/usr/$(get_libdir)/libRmath.dylib:" \ + src/nmath/standalone/Makefile.in || die + else + append-ldflags -Wl,-rpath="${EROOT%/}/usr/$(get_libdir)/R/lib" + fi + fi + AT_M4DIR=m4 eaclocal + eautoconf +} + +src_configure() { + # --with-system-tre \ + # tre is patched from upstream + econf \ + --enable-byte-compiled-packages \ + --enable-R-shlib \ + --disable-R-framework \ + --with-system-zlib \ + --with-system-bzlib \ + --with-system-pcre \ + --with-system-xz \ + --with-blas="$($(tc-getPKG_CONFIG) --libs blas)" \ + --docdir="${EPREFIX}/usr/share/doc/${PF}" \ + rdocdir="${EPREFIX}/usr/share/doc/${PF}" \ + $(use_enable nls) \ + $(use_enable openmp) \ + $(use_enable profile R-profiling) \ + $(use_enable profile memory-profiling) \ + $(use_enable static-libs static) \ + $(use_enable static-libs R-static-lib) \ + $(use_with cairo) \ + $(use_with icu ICU) \ + $(use_with jpeg jpeglib) \ + $(use_with lapack) \ + $(use_with !minimal recommended-packages) \ + $(use_with png libpng) \ + $(use_with readline) \ + $(use_with tiff libtiff) \ + $(use_with tk tcltk) \ + $(use_with tk tk-config "${EPREFIX}"/usr/lib/tkConfig.sh) \ + $(use_with tk tcl-config "${EPREFIX}"/usr/lib/tclConfig.sh) \ + $(use_with X x) +} + +src_compile() { + export VARTEXFONTS="${T}/fonts" + emake AR="$(tc-getAR)" + emake -C src/nmath/standalone \ + shared $(use static-libs && echo static) AR="$(tc-getAR)" + use doc && emake info pdf +} + +src_install() { + default + emake -j1 -C src/nmath/standalone DESTDIR="${D}" install + + if use doc; then + emake DESTDIR="${D}" install-info install-pdf + dosym ../manual /usr/share/doc/${PF}/html/manual + fi + + cat > 99R <<-EOF + LDPATH=${R_DIR}/lib + R_HOME=${R_DIR} + EOF + doenvd 99R + newbashcomp "${WORKDIR}"/${BCP} ${PN} + # The buildsystem has a different understanding of install_names than + # we require. Since it builds modules like shared objects (wrong), many + # objects (all modules) get an incorrect install_name. Fixing the build + # system here is not really trivial. + if [[ ${CHOST} == *-darwin* ]] ; then + local mod + pushd "${ED}"/usr/lib/R > /dev/null + for mod in $(find . -name "*.dylib") ; do + mod=${mod#./} + install_name_tool -id "${EPREFIX}/usr/lib/R/${mod}" \ + "${mod}" + done + popd > /dev/null + fi + docompress -x /usr/share/doc/${PF}/NEWS.rds +} + +pkg_postinst() { + if use java; then + einfo "Re-initializing java paths for ${P}" + R CMD javareconf + fi +} diff --git a/dev-lang/R/R-3.1.2.ebuild b/dev-lang/R/R-3.1.2.ebuild new file mode 100644 index 000000000000..695519aa8194 --- /dev/null +++ b/dev-lang/R/R-3.1.2.ebuild @@ -0,0 +1,206 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit bash-completion-r1 autotools eutils flag-o-matic fortran-2 multilib versionator toolchain-funcs + +BCP=${PN}-20130129.bash_completion +DESCRIPTION="Language and environment for statistical computing and graphics" +HOMEPAGE="http://www.r-project.org/" +SRC_URI=" + mirror://cran/src/base/R-3/${P}.tar.gz + http://dev.gentoo.org/~bicatali/distfiles/${BCP}.bz2" + +LICENSE="|| ( GPL-2 GPL-3 ) LGPL-2.1" +SLOT="0" +KEYWORDS="~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos" +IUSE="cairo doc icu java jpeg lapack minimal nls openmp perl png prefix profile readline static-libs tiff tk X" +REQUIRED_USE="png? ( || ( cairo X ) ) jpeg? ( || ( cairo X ) ) tiff? ( || ( cairo X ) )" + +CDEPEND=" + app-arch/bzip2:0= + app-arch/xz-utils:0= + app-text/ghostscript-gpl + >=dev-libs/libpcre-8.35:3= + virtual/blas:0 + || ( >=sys-apps/coreutils-8.15 sys-freebsd/freebsd-bin app-misc/realpath ) + cairo? ( x11-libs/cairo:0=[X] x11-libs/pango:0= ) + icu? ( dev-libs/icu:= ) + jpeg? ( virtual/jpeg:0 ) + lapack? ( virtual/lapack:0 ) + perl? ( dev-lang/perl ) + png? ( media-libs/libpng:0= ) + readline? ( sys-libs/readline:0= ) + tiff? ( media-libs/tiff:0= ) + tk? ( dev-lang/tk:0= ) + X? ( x11-libs/libXmu:0= x11-misc/xdg-utils )" + +DEPEND="${CDEPEND} + virtual/pkgconfig + doc? ( + virtual/latex-base + dev-texlive/texlive-fontsrecommended + )" + +RDEPEND="${CDEPEND} + ( || ( <sys-libs/zlib-1.2.5.1-r1:0 >=sys-libs/zlib-1.2.5.1-r2:0[minizip] ) ) + java? ( >=virtual/jre-1.5 )" + +RESTRICT="minimal? ( test )" + +R_DIR="${EROOT%/}/usr/$(get_libdir)/${PN}" + +pkg_setup() { + if use openmp; then + if [[ $(tc-getCC) == *gcc ]] && ! tc-has-openmp; then + ewarn "OpenMP is not available in your current selected gcc" + die "need openmp capable gcc" + fi + FORTRAN_NEED_OPENMP=1 + fi + fortran-2_pkg_setup + filter-ldflags -Wl,-Bdirect -Bdirect + # avoid using existing R installation + unset R_HOME + # Temporary fix for bug #419761 + if [[ ($(tc-getCC) == *gcc) && ($(gcc-version) == 4.7) ]]; then + append-flags -fno-ipa-cp-clone + fi +} + +src_prepare() { + epatch \ + "${FILESDIR}"/${PN}-2.11.1-parallel.patch \ + "${FILESDIR}"/${PN}-2.13.1-zlib_header_fix.patch \ + "${FILESDIR}"/${PN}-3.0.0-rmath-shared.patch + + # fix packages.html for doc (gentoo bug #205103) + sed -i \ + -e "s:../../../library:../../../../$(get_libdir)/R/library:g" \ + src/library/tools/R/Rd.R || die + + # fix Rscript path when installed (gentoo bug #221061) + sed -i \ + -e "s:-DR_HOME='\"\$(rhome)\"':-DR_HOME='\"${R_DIR}\"':" \ + src/unix/Makefile.in || die "sed unix Makefile failed" + + # fix HTML links to manual (gentoo bug #273957) + sed -i \ + -e 's:\.\./manual/:manual/:g' \ + $(grep -Flr ../manual/ doc) || die "sed for HTML links failed" + + use lapack && \ + export LAPACK_LIBS="$($(tc-getPKG_CONFIG) --libs lapack)" + + if use X; then + export R_BROWSER="$(type -p xdg-open)" + export R_PDFVIEWER="$(type -p xdg-open)" + fi + use perl && \ + export PERL5LIB="${S}/share/perl:${PERL5LIB:+:}${PERL5LIB}" + + # don't search /usr/local + sed -i -e '/FLAGS=.*\/local\//c\: # removed by ebuild' configure.ac || die + # Fix for Darwin (OS X) + if use prefix; then + if [[ ${CHOST} == *-darwin* ]] ; then + sed -i \ + -e 's:-install_name libR.dylib:-install_name ${libdir}/R/lib/libR.dylib:' \ + -e 's:-install_name libRlapack.dylib:-install_name ${libdir}/R/lib/libRlapack.dylib:' \ + -e 's:-install_name libRblas.dylib:-install_name ${libdir}/R/lib/libRblas.dylib:' \ + -e "/SHLIB_EXT/s/\.so/.dylib/" \ + configure.ac || die + # sort of "undo" 2.14.1-rmath-shared.patch + sed -i \ + -e "s:-Wl,-soname=libRmath.so:-install_name ${EROOT%/}/usr/$(get_libdir)/libRmath.dylib:" \ + src/nmath/standalone/Makefile.in || die + else + append-ldflags -Wl,-rpath="${EROOT%/}/usr/$(get_libdir)/R/lib" + fi + fi + AT_M4DIR=m4 eaclocal + eautoconf +} + +src_configure() { + # --with-system-tre \ + # tre is patched from upstream + econf \ + --enable-byte-compiled-packages \ + --enable-R-shlib \ + --disable-R-framework \ + --with-system-zlib \ + --with-system-bzlib \ + --with-system-pcre \ + --with-system-xz \ + --with-blas="$($(tc-getPKG_CONFIG) --libs blas)" \ + --docdir="${EPREFIX}/usr/share/doc/${PF}" \ + rdocdir="${EPREFIX}/usr/share/doc/${PF}" \ + $(use_enable nls) \ + $(use_enable openmp) \ + $(use_enable profile R-profiling) \ + $(use_enable profile memory-profiling) \ + $(use_enable static-libs static) \ + $(use_enable static-libs R-static-lib) \ + $(use_with cairo) \ + $(use_with icu ICU) \ + $(use_with jpeg jpeglib) \ + $(use_with lapack) \ + $(use_with !minimal recommended-packages) \ + $(use_with png libpng) \ + $(use_with readline) \ + $(use_with tiff libtiff) \ + $(use_with tk tcltk) \ + $(use_with tk tk-config "${EPREFIX}"/usr/lib/tkConfig.sh) \ + $(use_with tk tcl-config "${EPREFIX}"/usr/lib/tclConfig.sh) \ + $(use_with X x) +} + +src_compile() { + export VARTEXFONTS="${T}/fonts" + emake AR="$(tc-getAR)" + emake -C src/nmath/standalone \ + shared $(use static-libs && echo static) AR="$(tc-getAR)" + use doc && emake info pdf +} + +src_install() { + default + emake -j1 -C src/nmath/standalone DESTDIR="${D}" install + + if use doc; then + emake DESTDIR="${D}" install-info install-pdf + dosym ../manual /usr/share/doc/${PF}/html/manual + fi + + cat > 99R <<-EOF + LDPATH=${R_DIR}/lib + R_HOME=${R_DIR} + EOF + doenvd 99R + newbashcomp "${WORKDIR}"/${BCP} ${PN} + # The buildsystem has a different understanding of install_names than + # we require. Since it builds modules like shared objects (wrong), many + # objects (all modules) get an incorrect install_name. Fixing the build + # system here is not really trivial. + if [[ ${CHOST} == *-darwin* ]] ; then + local mod + pushd "${ED}"/usr/lib/R > /dev/null + for mod in $(find . -name "*.dylib") ; do + mod=${mod#./} + install_name_tool -id "${EPREFIX}/usr/lib/R/${mod}" \ + "${mod}" + done + popd > /dev/null + fi + docompress -x /usr/share/doc/${PF}/NEWS.rds +} + +pkg_postinst() { + if use java; then + einfo "Re-initializing java paths for ${P}" + R CMD javareconf + fi +} diff --git a/dev-lang/R/R-3.2.0-r1.ebuild b/dev-lang/R/R-3.2.0-r1.ebuild new file mode 100644 index 000000000000..f8ee36f425bc --- /dev/null +++ b/dev-lang/R/R-3.2.0-r1.ebuild @@ -0,0 +1,207 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit bash-completion-r1 autotools eutils flag-o-matic fortran-2 multilib versionator toolchain-funcs + +BCP=${PN}-20130129.bash_completion +DESCRIPTION="Language and environment for statistical computing and graphics" +HOMEPAGE="http://www.r-project.org/" +SRC_URI=" + mirror://cran/src/base/R-3/${P}.tar.gz + http://dev.gentoo.org/~bicatali/distfiles/${BCP}.bz2" + +LICENSE="|| ( GPL-2 GPL-3 ) LGPL-2.1" +SLOT="0" +KEYWORDS="~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos" +IUSE="cairo doc icu java jpeg lapack minimal nls openmp perl png prefix profile readline static-libs tiff tk X" +REQUIRED_USE="png? ( || ( cairo X ) ) jpeg? ( || ( cairo X ) ) tiff? ( || ( cairo X ) )" + +CDEPEND=" + app-arch/bzip2:0= + app-arch/xz-utils:0= + app-text/ghostscript-gpl + >=dev-libs/libpcre-8.35:3= + virtual/blas:0 + || ( >=sys-apps/coreutils-8.15 sys-freebsd/freebsd-bin app-misc/realpath ) + cairo? ( x11-libs/cairo:0=[X] x11-libs/pango:0= ) + icu? ( dev-libs/icu:= ) + jpeg? ( virtual/jpeg:0 ) + lapack? ( virtual/lapack:0 ) + perl? ( dev-lang/perl ) + png? ( media-libs/libpng:0= ) + readline? ( sys-libs/readline:0= ) + tiff? ( media-libs/tiff:0= ) + tk? ( dev-lang/tk:0= ) + X? ( x11-libs/libXmu:0= x11-misc/xdg-utils )" + +DEPEND="${CDEPEND} + virtual/pkgconfig + doc? ( + virtual/latex-base + dev-texlive/texlive-fontsrecommended + )" + +RDEPEND="${CDEPEND} + ( || ( <sys-libs/zlib-1.2.5.1-r1:0 >=sys-libs/zlib-1.2.5.1-r2:0[minizip] ) ) + java? ( >=virtual/jre-1.5 )" + +RESTRICT="minimal? ( test )" + +R_DIR="${EROOT%/}/usr/$(get_libdir)/${PN}" + +pkg_setup() { + if use openmp; then + if [[ $(tc-getCC) == *gcc ]] && ! tc-has-openmp; then + ewarn "OpenMP is not available in your current selected gcc" + die "need openmp capable gcc" + fi + FORTRAN_NEED_OPENMP=1 + fi + fortran-2_pkg_setup + filter-ldflags -Wl,-Bdirect -Bdirect + # avoid using existing R installation + unset R_HOME + # Temporary fix for bug #419761 + if [[ ($(tc-getCC) == *gcc) && ($(gcc-version) == 4.7) ]]; then + append-flags -fno-ipa-cp-clone + fi +} + +src_prepare() { + epatch \ + "${FILESDIR}"/${PN}-2.11.1-parallel.patch \ + "${FILESDIR}"/${PN}-2.13.1-zlib_header_fix.patch \ + "${FILESDIR}"/${PN}-3.0.0-rmath-shared.patch \ + "${FILESDIR}"/${PN}-3.2.0-omitted-extern-R_running_as_main_program.patch + + # fix packages.html for doc (gentoo bug #205103) + sed -i \ + -e "s:../../../library:../../../../$(get_libdir)/R/library:g" \ + src/library/tools/R/Rd.R || die + + # fix Rscript path when installed (gentoo bug #221061) + sed -i \ + -e "s:-DR_HOME='\"\$(rhome)\"':-DR_HOME='\"${R_DIR}\"':" \ + src/unix/Makefile.in || die "sed unix Makefile failed" + + # fix HTML links to manual (gentoo bug #273957) + sed -i \ + -e 's:\.\./manual/:manual/:g' \ + $(grep -Flr ../manual/ doc) || die "sed for HTML links failed" + + use lapack && \ + export LAPACK_LIBS="$($(tc-getPKG_CONFIG) --libs lapack)" + + if use X; then + export R_BROWSER="$(type -p xdg-open)" + export R_PDFVIEWER="$(type -p xdg-open)" + fi + use perl && \ + export PERL5LIB="${S}/share/perl:${PERL5LIB:+:}${PERL5LIB}" + + # don't search /usr/local + sed -i -e '/FLAGS=.*\/local\//c\: # removed by ebuild' configure.ac || die + # Fix for Darwin (OS X) + if use prefix; then + if [[ ${CHOST} == *-darwin* ]] ; then + sed -i \ + -e 's:-install_name libR.dylib:-install_name ${libdir}/R/lib/libR.dylib:' \ + -e 's:-install_name libRlapack.dylib:-install_name ${libdir}/R/lib/libRlapack.dylib:' \ + -e 's:-install_name libRblas.dylib:-install_name ${libdir}/R/lib/libRblas.dylib:' \ + -e "/SHLIB_EXT/s/\.so/.dylib/" \ + configure.ac || die + # sort of "undo" 2.14.1-rmath-shared.patch + sed -i \ + -e "s:-Wl,-soname=libRmath.so:-install_name ${EROOT%/}/usr/$(get_libdir)/libRmath.dylib:" \ + src/nmath/standalone/Makefile.in || die + else + append-ldflags -Wl,-rpath="${EROOT%/}/usr/$(get_libdir)/R/lib" + fi + fi + AT_M4DIR=m4 eaclocal + eautoconf +} + +src_configure() { + # --with-system-tre \ + # tre is patched from upstream + econf \ + --enable-byte-compiled-packages \ + --enable-R-shlib \ + --disable-R-framework \ + --with-system-zlib \ + --with-system-bzlib \ + --with-system-pcre \ + --with-system-xz \ + --with-blas="$($(tc-getPKG_CONFIG) --libs blas)" \ + --docdir="${EPREFIX}/usr/share/doc/${PF}" \ + rdocdir="${EPREFIX}/usr/share/doc/${PF}" \ + $(use_enable nls) \ + $(use_enable openmp) \ + $(use_enable profile R-profiling) \ + $(use_enable profile memory-profiling) \ + $(use_enable static-libs static) \ + $(use_enable static-libs R-static-lib) \ + $(use_with cairo) \ + $(use_with icu ICU) \ + $(use_with jpeg jpeglib) \ + $(use_with lapack) \ + $(use_with !minimal recommended-packages) \ + $(use_with png libpng) \ + $(use_with readline) \ + $(use_with tiff libtiff) \ + $(use_with tk tcltk) \ + $(use_with tk tk-config "${EPREFIX}"/usr/lib/tkConfig.sh) \ + $(use_with tk tcl-config "${EPREFIX}"/usr/lib/tclConfig.sh) \ + $(use_with X x) +} + +src_compile() { + export VARTEXFONTS="${T}/fonts" + emake AR="$(tc-getAR)" + emake -C src/nmath/standalone \ + shared $(use static-libs && echo static) AR="$(tc-getAR)" + use doc && emake info pdf +} + +src_install() { + default + emake -j1 -C src/nmath/standalone DESTDIR="${D}" install + + if use doc; then + emake DESTDIR="${D}" install-info install-pdf + dosym ../manual /usr/share/doc/${PF}/html/manual + fi + + cat > 99R <<-EOF + LDPATH=${R_DIR}/lib + R_HOME=${R_DIR} + EOF + doenvd 99R + newbashcomp "${WORKDIR}"/${BCP} ${PN} + # The buildsystem has a different understanding of install_names than + # we require. Since it builds modules like shared objects (wrong), many + # objects (all modules) get an incorrect install_name. Fixing the build + # system here is not really trivial. + if [[ ${CHOST} == *-darwin* ]] ; then + local mod + pushd "${ED}"/usr/lib/R > /dev/null + for mod in $(find . -name "*.dylib") ; do + mod=${mod#./} + install_name_tool -id "${EPREFIX}/usr/lib/R/${mod}" \ + "${mod}" + done + popd > /dev/null + fi + docompress -x /usr/share/doc/${PF}/NEWS.rds +} + +pkg_postinst() { + if use java; then + einfo "Re-initializing java paths for ${P}" + R CMD javareconf + fi +} diff --git a/dev-lang/R/files/R-2.11.1-parallel.patch b/dev-lang/R/files/R-2.11.1-parallel.patch new file mode 100644 index 000000000000..c713d335badd --- /dev/null +++ b/dev-lang/R/files/R-2.11.1-parallel.patch @@ -0,0 +1,17 @@ +Fix ocasional failure with parallel install +Gentoo bug: https://bugs.gentoo.org/show_bug.cgi?id=322965 +R bug: https://bugs.r-project.org/bugzilla3/show_bug.cgi?id=14505 + +Patch by Sebastien Fabbro + +--- src/include/Makefile.in.orig 2010-06-15 18:18:54.000000000 +0000 ++++ src/include/Makefile.in 2010-06-15 18:19:48.000000000 +0000 +@@ -81,7 +81,7 @@ + Rmath.h0: $(srcdir)/Rmath.h0.in $(top_builddir)/config.status + @cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ + +-install: installdirs install-intl-@USE_INCLUDED_LIBINTL@ ++install: $(OBJ_HEADERS) installdirs install-intl-@USE_INCLUDED_LIBINTL@ + @for d in $(SUBDIRS); do \ + (cd $${d} && $(MAKE) $@) || exit 1; \ + done diff --git a/dev-lang/R/files/R-2.12.1-ldflags.patch b/dev-lang/R/files/R-2.12.1-ldflags.patch new file mode 100644 index 000000000000..2876ac3a4164 --- /dev/null +++ b/dev-lang/R/files/R-2.12.1-ldflags.patch @@ -0,0 +1,15 @@ +Respect ldflags on rscript +Patch by Sebastien Fabbro +https://bugs.r-project.org/bugzilla3/show_bug.cgi?id=14506 + +--- src/unix/Makefile.in.orig 2010-12-22 16:58:19.000000000 +0000 ++++ src/unix/Makefile.in 2010-12-22 16:54:16.000000000 +0000 +@@ -66,7 +66,7 @@ + + ## we need to build at install time to capture the correct 'rhome' + install-Rscript: +- $(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) -DR_HOME='"$(rhome)"' -o Rscript \ ++ $(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) $(LDFLAGS) -DR_HOME='"$(rhome)"' -o Rscript \ + $(srcdir)/Rscript.c + @$(MKINSTALLDIRS) "$(DESTDIR)$(Rexecbindir)" + @$(INSTALL_PROGRAM) Rscript "$(DESTDIR)$(Rexecbindir)/Rscript" diff --git a/dev-lang/R/files/R-2.13.1-zlib_header_fix.patch b/dev-lang/R/files/R-2.13.1-zlib_header_fix.patch new file mode 100644 index 000000000000..136acb26055f --- /dev/null +++ b/dev-lang/R/files/R-2.13.1-zlib_header_fix.patch @@ -0,0 +1,20 @@ +Update for zlib header changes for zlib > 1.2.5 + +Gentoo bug: https://bugs.gentoo.org/show_bug.cgi?id=383431 +R bug: https://bugs.r-project.org/bugzilla3/show_bug.cgi?id=14951 + +Patch by Michael Schreckenbauer + +--- src/main/unzip.h.orig 2011-09-24 19:35:53.000000000 -0700 ++++ src/main/unzip.h 2011-09-24 19:37:06.000000000 -0700 +@@ -58,6 +58,10 @@ + #define ZLIB_FILEFUNC_SEEK_END (2) + #define ZLIB_FILEFUNC_SEEK_SET (0) + ++#ifndef OF ++#define OF(x) x ++#endif ++ + #define ZLIB_FILEFUNC_MODE_READ (1) + #define ZLIB_FILEFUNC_MODE_WRITE (2) + #define ZLIB_FILEFUNC_MODE_READWRITEFILTER (3) diff --git a/dev-lang/R/files/R-2.14.1-rmath-shared.patch b/dev-lang/R/files/R-2.14.1-rmath-shared.patch new file mode 100644 index 000000000000..c16f20e756de --- /dev/null +++ b/dev-lang/R/files/R-2.14.1-rmath-shared.patch @@ -0,0 +1,24 @@ +Link with libm to fix unresolved symbols when linked with as-needed +and add a soname to the standalone math library +Patch by Sebastien Fabbro +--- src/nmath/standalone/Makefile.in.orig 2010-03-17 14:43:22.000000000 +0000 ++++ src/nmath/standalone/Makefile.in 2012-01-02 17:40:13.000000000 +0000 +@@ -64,7 +64,8 @@ + Rexeclibdir_LTLIBRARIES = $(libRmath_la) + libRmath_la_SOURCES = $(SOURCES) + libRmath_la_OBJECTS = $(OBJECTS:.o=.lo) +-libRmath_la_LDFLAGS = ++libRmath_la_LDFLAGS = -Wl,-soname=libRmath.so ++libRmath_la_LIBADD = $(LIBM) + + CLEANFILES = Makedeps *.d *.o *.lo test $(SOURCES) + DISTCLEANFILES = Makefile $(Rexeclibdir_LIBRARIES) $(Rexeclibdir_LTLIBRARIES) +@@ -116,7 +117,7 @@ + $(RANLIB) $@ + + $(libRmath_la): $(libRmath_la_OBJECTS) +- $(DYLIB_LINK) -o $@ $(libRmath_la_LDFLAGS) $(libRmath_la_OBJECTS) ++ $(DYLIB_LINK) $(libRmath_la_LDFLAGS) $(libRmath_la_OBJECTS) $(libRmath_la_LIBADD) -o $@ + + test: $(srcdir)/test.c + $(CC) -o $@ $(ALL_CPPFLAGS) $(ALL_CFLAGS) $(srcdir)/test.c \ diff --git a/dev-lang/R/files/R-3.0.0-rmath-shared.patch b/dev-lang/R/files/R-3.0.0-rmath-shared.patch new file mode 100644 index 000000000000..f53fb7910511 --- /dev/null +++ b/dev-lang/R/files/R-3.0.0-rmath-shared.patch @@ -0,0 +1,28 @@ +Link with libm to fix unresolved symbols when linked with as-needed +and add a soname to the standalone math library +R bug: https://bugs.r-project.org/bugzilla3/show_bug.cgi?id=14953 + +Patch by Sebastien Fabbro +Adapted to R-3.0.0 by Denis Dupeyron + +--- src/nmath/standalone/Makefile.in.orig 2013-04-04 14:39:15.777544946 -0600 ++++ src/nmath/standalone/Makefile.in 2013-04-04 14:40:51.256153179 -0600 +@@ -64,7 +64,8 @@ + Rexeclibdir_LTLIBRARIES = $(libRmath_la) + libRmath_la_SOURCES = $(SOURCES) + libRmath_la_OBJECTS = $(OBJECTS:.o=.lo) +-libRmath_la_LDFLAGS = ++libRmath_la_LDFLAGS = -Wl,-soname=libRmath.so ++libRmath_la_LIBADD = $(LIBM) + + CLEANFILES = Makedeps *.d *.o *.lo test $(SOURCES) + DISTCLEANFILES = Makefile $(Rexeclibdir_LIBRARIES) $(Rexeclibdir_LTLIBRARIES) +@@ -117,7 +118,7 @@ + + ## under peculiar circumstances, $(LIBM) here helps. + $(libRmath_la): $(libRmath_la_OBJECTS) +- $(DYLIB_LINK) -o $@ $(libRmath_la_LDFLAGS) $(libRmath_la_OBJECTS) $(LIBM) ++ $(DYLIB_LINK) $(libRmath_la_LDFLAGS) $(libRmath_la_OBJECTS) $(libRmath_la_LIBADD) -o $@ + + test: $(srcdir)/test.c + $(CC) -o $@ $(ALL_CPPFLAGS) $(ALL_CFLAGS) $(srcdir)/test.c \ diff --git a/dev-lang/R/files/R-3.2.0-omitted-extern-R_running_as_main_program.patch b/dev-lang/R/files/R-3.2.0-omitted-extern-R_running_as_main_program.patch new file mode 100644 index 000000000000..eebe5088ff98 --- /dev/null +++ b/dev-lang/R/files/R-3.2.0-omitted-extern-R_running_as_main_program.patch @@ -0,0 +1,12 @@ +--- R-3.2.0-orig/src/include/Rinterface.h 2015-03-19 10:02:16.000000000 +1100 ++++ R-3.2.0/src/include/Rinterface.h 2015-05-01 23:02:17.541946810 +1000 +@@ -90,7 +90,8 @@ + void fpu_setup(Rboolean); + + /* in unix/system.c */ +-int R_running_as_main_program; ++/* Gentoo bug 547478 R bug https://bugs.r-project.org/bugzilla3/show_bug.cgi?id=15899 */ ++extern int R_running_as_main_program; + + #ifdef CSTACK_DEFNS + /* duplicating Defn.h */ diff --git a/dev-lang/R/metadata.xml b/dev-lang/R/metadata.xml new file mode 100644 index 000000000000..1deadcbddd09 --- /dev/null +++ b/dev-lang/R/metadata.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <herd>sci-mathematics</herd> + <maintainer> + <email>calchan@gentoo.org</email> + <name>Denis Dupeyron</name> + </maintainer> + <longdescription lang="en"> + R is GNU S, a system for statistical computation and graphics. It + consists of a language plus a run-time environment with graphics, a + debugger, access to certain system functions, and the ability to run + programs stored in script files. + + The core of R is an interpreted computer language which allows + branching and looping as well as modular programming using functions. + The R distribution contains functionality for a large number of + statistical procedures such as: linear and generalized linear + models, nonlinear regression models, time series analysis, classical + parametric and nonparametric tests, clustering, smoothing and + graphical data representations. Additional modules ("add-on + packages") are available for a variety of specific purposes but are + not distributed with this package. +</longdescription> +</pkgmetadata> diff --git a/dev-lang/ats/Manifest b/dev-lang/ats/Manifest new file mode 100644 index 000000000000..dcfc012e60bb --- /dev/null +++ b/dev-lang/ats/Manifest @@ -0,0 +1 @@ +DIST ats-lang-anairiats-0.2.9.tgz 2466767 SHA256 44bbf49f7bea0e411c5a24ae0ea3ecf1d771886b6bd19ea6798badb01f1512fd SHA512 fc7df7bc032ad665c9c8376245bb52f88f71ab81d36fa6f18e66886d9d19f247f54888a8ae3fa5adf17117ee6826bbbde1a177040dc2657f6da0f98d66b035e3 WHIRLPOOL 9d0f2906c87c98aca69ff0f76db19d42adc8bf5a97625b4f8c13bc751690c389e8b2f871206bad09a64ec2913b740cc38a65448c056a227ac561d832a1541e2e diff --git a/dev-lang/ats/ats-0.2.9.ebuild b/dev-lang/ats/ats-0.2.9.ebuild new file mode 100644 index 000000000000..4bab28a1075b --- /dev/null +++ b/dev-lang/ats/ats-0.2.9.ebuild @@ -0,0 +1,34 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +DESCRIPTION="ATS Programming Language" +HOMEPAGE="http://www.ats-lang.org" +SRC_URI="http://downloads.sourceforge.net/project/ats-lang/ats-lang/anairiats-${PV}/${PN}-lang-anairiats-${PV}.tgz" + +SLOT="0" +LICENSE="GPL-3" +KEYWORDS="~amd64 ~x86" +IUSE="" + +RDEPEND=" + dev-libs/glib + x11-libs/gtk+:2 + sys-libs/ncurses + dev-libs/gmp + dev-libs/libpcre + virtual/opengl + media-libs/libsdl + dev-libs/boehm-gc + " +DEPEND="${RDEPEND} + virtual/pkgconfig + " + +S="${WORKDIR}"/ats-lang-anairiats-${PV} + +src_compile() { + emake -j1 +} diff --git a/dev-lang/ats/metadata.xml b/dev-lang/ats/metadata.xml new file mode 100644 index 000000000000..6719fcd2bb35 --- /dev/null +++ b/dev-lang/ats/metadata.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer> + <email>patrick@gentoo.org</email> + <name>Patrick Lauer</name> + </maintainer> +</pkgmetadata> diff --git a/dev-lang/bas/Manifest b/dev-lang/bas/Manifest new file mode 100644 index 000000000000..e794ae1b5216 --- /dev/null +++ b/dev-lang/bas/Manifest @@ -0,0 +1 @@ +DIST bas-2.4.tar.gz 258055 SHA256 2a147dd75a80049c1e6030c97aadb03a31fdbb622d0e18bd7961d167c9b48fac SHA512 1a86805d1981a7bc920d7f6ab7827ee9f0ed9535b78b4c46718106e7abe0b1ef9298631e7e4d3d9bf206a8ca0e1239db48a9d94b0b85b71101aea0956d1454d7 WHIRLPOOL 15a1c8a7f00158e330c13998f00976ab10258d8dffb9689722cb01db7ddd62fd15b6a1cc8ad91368a578729e312088a34f29dcaf60b960e43736e3aa2ff8049d diff --git a/dev-lang/bas/bas-2.4.ebuild b/dev-lang/bas/bas-2.4.ebuild new file mode 100644 index 000000000000..286c97c33545 --- /dev/null +++ b/dev-lang/bas/bas-2.4.ebuild @@ -0,0 +1,40 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=4 +inherit autotools eutils toolchain-funcs + +DESCRIPTION="An interpreter for the classic dialect of the programming language BASIC" +HOMEPAGE="http://www.moria.de/~michael/bas/" +SRC_URI="http://www.moria.de/~michael/bas/${P}.tar.gz" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="lr0" + +RDEPEND="sys-libs/ncurses + virtual/libintl" +DEPEND="${RDEPEND} + sys-devel/gettext" + +src_prepare() { + epatch \ + "${FILESDIR}"/${PN}-2.1-makefile.patch + + eautoconf +} + +src_configure() { + tc-export AR + econf \ + $(use_enable lr0) +} + +src_install() { + emake DESTDIR="${D}" install + dodoc NEWS README + insinto /usr/share/doc/${PF}/pdf + doins bas.pdf +} diff --git a/dev-lang/bas/files/bas-2.1-makefile.patch b/dev-lang/bas/files/bas-2.1-makefile.patch new file mode 100644 index 000000000000..3be4bb09eafa --- /dev/null +++ b/dev-lang/bas/files/bas-2.1-makefile.patch @@ -0,0 +1,49 @@ +Fixes makefile.in to respect DESTDIR during install +Fixes makefile.in to use $MAKE instead of 'make' +Fixes makefile.in to respect AR during libbas build + +Patch by Kevin McCarthy <signals42@gmail.com> + +--- Makefile.in ++++ Makefile.in +@@ -27,7 +27,7 @@ + libbas.a: auto.o bas.o fs.o global.o token.o program.o \ + str.o value.o var.o + rm -f $@ +- ar cq $@ auto.o bas.o fs.o global.o token.o program.o \ ++ $(AR) cq $@ auto.o bas.o fs.o global.o token.o program.o \ + str.o value.o var.o + @RANLIB@ libbas.a + +@@ -35,7 +35,7 @@ + install-po-no: + install-po-yes: $(CATALOGS) + for cat in $(CATALOGS); do \ +- dir=$(localedir)/`basename $$cat .mo`/LC_MESSAGES; \ ++ dir=$(DESTDIR)/$(localedir)/`basename $$cat .mo`/LC_MESSAGES; \ + [ -d $$dir ] || @INSTALL@ -m 755 -d $$dir; \ + @INSTALL@ -m 644 $$cat $$dir/bas.mo; \ + done +@@ -44,14 +44,14 @@ + for i in test/test*; do ./$$i || break; done + + install: all +- @INSTALL@ -m 755 -d @bindir@ +- @INSTALL@ bas @bindir@/bas +- @INSTALL@ -m 755 -d @libdir@ +- @INSTALL@ -m 644 libbas.a @libdir@/libbas.a +- @RANLIB@ @libdir@/libbas.a +- @INSTALL@ -m 755 -d @mandir@/man1 +- @INSTALL@ -m 644 bas.1 @mandir@/man1/bas.1 +- make install-po ++ @INSTALL@ -m 755 -d $(DESTDIR)/@bindir@ ++ @INSTALL@ bas $(DESTDIR)/@bindir@/bas ++ @INSTALL@ -m 755 -d $(DESTDIR)/@libdir@ ++ @INSTALL@ -m 644 libbas.a $(DESTDIR)/@libdir@/libbas.a ++ @RANLIB@ $(DESTDIR)/@libdir@/libbas.a ++ @INSTALL@ -m 755 -d $(DESTDIR)/@mandir@/man1 ++ @INSTALL@ -m 644 bas.1 $(DESTDIR)/@mandir@/man1/bas.1 ++ $(MAKE) install-po + + .c.o: + $(CC) -c $(CPPFLAGS) $(CFLAGS) $< diff --git a/dev-lang/bas/metadata.xml b/dev-lang/bas/metadata.xml new file mode 100644 index 000000000000..367faed79b46 --- /dev/null +++ b/dev-lang/bas/metadata.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer> + <email>maintainer-needed@gentoo.org</email> + </maintainer> + <use> + <flag name='lr0'>Use the LR0 parser instead of the recursive descending parser</flag> + </use> +</pkgmetadata> diff --git a/dev-lang/bashforth/Manifest b/dev-lang/bashforth/Manifest new file mode 100644 index 000000000000..1053fecb20af --- /dev/null +++ b/dev-lang/bashforth/Manifest @@ -0,0 +1 @@ +DIST bashforth-0.58a 78391 SHA256 846eb063e49aae42c38c29c792ec71a9e0d7b0d60f04cd69c15a8cb53257d128 SHA512 55a158fc80d6108a9151537d9d222f23dbeab9b3c9c821068c15ace283b050c0630da8e1cc0a30d997d76acbcd5f7cc38662c997df0d87b7ce68bb3de446d296 WHIRLPOOL 7041a9f9a903c2850c743668eebc410002f8843bee053c341403b9933f9e8b2e1ce9c6a4c785f84bcc67bc51dc6fd6abab7f55f940bd00c642456c20e86737bf diff --git a/dev-lang/bashforth/bashforth-0.58a.ebuild b/dev-lang/bashforth/bashforth-0.58a.ebuild new file mode 100644 index 000000000000..6abe4a1689ec --- /dev/null +++ b/dev-lang/bashforth/bashforth-0.58a.ebuild @@ -0,0 +1,25 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=4 + +DESCRIPTION="String-threaded Forth interpreter in Bash" +HOMEPAGE="http://www.forthfreak.net/index.cgi?BashForth" +SRC_URI="http://forthfreak.net/${PN}.versions/${P}" +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~mips ~ppc ~ppc64 ~x86" +IUSE="" + +DEPEND=">app-shells/bash-3.0" + +S="${WORKDIR}" + +src_unpack() { + cp "${DISTDIR}/${P}" "${S}" +} + +src_install() { + newbin "${P}" "${PN}" +} diff --git a/dev-lang/bashforth/metadata.xml b/dev-lang/bashforth/metadata.xml new file mode 100644 index 000000000000..1e7587374fdf --- /dev/null +++ b/dev-lang/bashforth/metadata.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer> + <email>blueness@gentoo.org</email> + <name>Anthony G. Basile</name> + </maintainer> +</pkgmetadata> diff --git a/dev-lang/bff/Manifest b/dev-lang/bff/Manifest new file mode 100644 index 000000000000..a7985e553090 --- /dev/null +++ b/dev-lang/bff/Manifest @@ -0,0 +1,2 @@ +DIST bff-1.0.3.1.tar.gz 2617 SHA256 189438f69bf0b66728caa1afed99e83fc03cdd3bdbcfa3c10c766e7bbea50712 SHA512 0bf9e20ffff204f3092b7f02197002880a0be0f4851f4c5f29bcb0974b90e5d518588c334b4f9224ed3320191269c7b4bfe42bd0339ef5ba86bee8bf1cf2a66d WHIRLPOOL be6e7ee7cbd2da649c3d7c0c29075996a552a9d716fdd34268390e5b6a38f8a4db77c5ab9f7c17c9b5066b605aaeb7950398092be697c961a10b2300d00a6f17 +DIST mandelbrot.b 11669 SHA256 f0f048e90855450fb06f2bea21f914f0d24e6b6c15fd050c68176ff794c6229e SHA512 3a1950f8be61fd33e563fe17dbc1297deae3ec2d276a6895e4bbb7d55c5bcf33ec7e9024d9776ad5c9c29b25c55bd08dea71403a60f9478fb3b80c22303d0862 WHIRLPOOL 8dca9257c6c6e1c56a8e5b4b9dc3cd698b44d28499b1760caff7b1fe3bdf8ebafdd30fc92b0134484e91d97bf59b6b2ad8dcc5b02892f28d4bb74add97d892e0 diff --git a/dev-lang/bff/bff-1.0.3.1.ebuild b/dev-lang/bff/bff-1.0.3.1.ebuild new file mode 100644 index 000000000000..ee86e1e1a0f2 --- /dev/null +++ b/dev-lang/bff/bff-1.0.3.1.ebuild @@ -0,0 +1,41 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +inherit toolchain-funcs + +DESCRIPTION="a brainfuck interpreter" +HOMEPAGE="http://swapped.cc/bf/" +SRC_URI="http://swapped.cc/bf/files/${P}.tar.gz + test? ( http://swapped.cc/bf/files/mandelbrot.b )" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="amd64 arm hppa ia64 m68k ppc ppc64 s390 sh x86" +IUSE="test" + +DEPEND="" +RDEPEND="" + +src_unpack() { + unpack ${P}.tar.gz + use test && cp "${DISTDIR}"/mandelbrot.b "${S}"/ +} + +src_compile() { + $(tc-getCC) -Wall ${CFLAGS} ${LDFLAGS} -o bff bff.c || die "compile failed" +} + +src_test() { + ebegin "Running mandelbrot test" + ./bff mandelbrot.b > mandelbrot.out + eend $? || die + [[ $(md5sum mandelbrot.out) == "5024283fa65866ddd347b877798e84d8 "* ]] \ + && cat mandelbrot.out \ + || die "mandelbrot did not output correctly" +} + +src_install() { + dobin bff || die + dodoc README +} diff --git a/dev-lang/bff/metadata.xml b/dev-lang/bff/metadata.xml new file mode 100644 index 000000000000..9e77c1fd69b1 --- /dev/null +++ b/dev-lang/bff/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<maintainer> +<email>maintainer-needed@gentoo.org</email> +</maintainer> +<longdescription lang="en"> +bff is a slightly optimized interpreter for brainfuck, a turing-complete +programming language. +</longdescription> +</pkgmetadata> + diff --git a/dev-lang/blassic/Manifest b/dev-lang/blassic/Manifest new file mode 100644 index 000000000000..382955a9885d --- /dev/null +++ b/dev-lang/blassic/Manifest @@ -0,0 +1 @@ +DIST blassic-0.10.2.tgz 361603 SHA256 b0ef334d5c1c710643f1dd11e651ce091e7059aa5e9895b547dfa86c3638bdfa SHA512 20f7210fd42ff58e11d7238aee37c21f18b733faf11edeb1d1a3e78c8fb524e37f0c871a2ab6b6608daaf593c4b4e8da4e2f86cddb8ad5e23905b0ce081feffa WHIRLPOOL ba571518104e319c47a341654f241e0b53ece0b614f200a824440fd0e67795a375d4f1703ccaa42ac8c85572c0ee6b0d3c980379094bc836fc4d866e2678cf1a diff --git a/dev-lang/blassic/blassic-0.10.2.ebuild b/dev-lang/blassic/blassic-0.10.2.ebuild new file mode 100644 index 000000000000..bb82254467ac --- /dev/null +++ b/dev-lang/blassic/blassic-0.10.2.ebuild @@ -0,0 +1,33 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +inherit autotools eutils + +DESCRIPTION="classic Basic interpreter" +HOMEPAGE="http://blassic.org" +SRC_URI="http://blassic.org/bin/${P}.tgz" + +LICENSE="GPL-2" +KEYWORDS="amd64 hppa ppc x86 ~x86-linux ~ppc-macos ~x86-macos" +SLOT="0" +IUSE="X" + +RDEPEND="sys-libs/ncurses + X? ( x11-libs/libICE x11-libs/libX11 x11-libs/libSM )" +DEPEND="${RDEPEND} + X? ( x11-proto/xproto )" + +src_prepare() { + epatch "${FILESDIR}"/${P}-tinfo.patch + eautoreconf +} + +src_configure() { + econf \ + --disable-svgalib \ + $(use_with X x) +} + +DOCS=( AUTHORS NEWS README THANKS TODO ) diff --git a/dev-lang/blassic/files/blassic-0.10.2-tinfo.patch b/dev-lang/blassic/files/blassic-0.10.2-tinfo.patch new file mode 100644 index 000000000000..3253532a6bc2 --- /dev/null +++ b/dev-lang/blassic/files/blassic-0.10.2-tinfo.patch @@ -0,0 +1,12 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -191,7 +191,8 @@ + AC_CHECK_HEADERS([ncurses.h],,[ncurses_found=no]) + if test "$ncurses_found" = yes + then +- AC_CHECK_LIB([ncurses],[tputs],,[ncurses_found=no]) ++ AC_CHECK_LIB([tinfo],[tputs],, ++ AC_CHECK_LIB([ncurses],[tputs],,[ncurses_found=no])) + if test "$ncurses_found" = yes + then + AC_DEFINE(BLASSIC_CONFIG_USE_NCURSES) diff --git a/dev-lang/blassic/metadata.xml b/dev-lang/blassic/metadata.xml new file mode 100644 index 000000000000..6e8b0800bd5e --- /dev/null +++ b/dev-lang/blassic/metadata.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<maintainer> + <email>mr_bones_@gentoo.org</email> + <name>Michael Sterrett</name> +</maintainer> +<longdescription> +Blassic is a classic Basic interpreter. The line numbers are mandatory, +and it has PEEK & POKE. The main goal is to execute programs written in +old interpreters, but it can be used as a scripting language. Many examples +are included in /usr/share/blassic/examples/. +</longdescription> +</pkgmetadata> diff --git a/dev-lang/c-intercal/Manifest b/dev-lang/c-intercal/Manifest new file mode 100644 index 000000000000..dbf4bee23046 --- /dev/null +++ b/dev-lang/c-intercal/Manifest @@ -0,0 +1 @@ +DIST intercal-0.29.pax.gz 1003800 SHA256 fba1678bdd058350742fad2f3f0673bcea9f4c8add761855a67d8ada6650950b SHA512 0789278b334f65b6e2034493cf08b26a9885e7aec09072c9d9d3d2796b2c6b09f13a856afea1f77f6c6aac0f386b0a76e35ddd9c87584386f3b8a0ad30bddd31 WHIRLPOOL 9039db79d0ecfd17abdd2ba4788d5e812d4fc5db1fab3ba554567ec3d08cd7091408d054903e8a59dbf77fc78f5408dfc1608eaac0b10e1bf76c32b3a92e300d diff --git a/dev-lang/c-intercal/c-intercal-29.0.ebuild b/dev-lang/c-intercal/c-intercal-29.0.ebuild new file mode 100644 index 000000000000..f1dbfc2a418c --- /dev/null +++ b/dev-lang/c-intercal/c-intercal-29.0.ebuild @@ -0,0 +1,76 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=4 + +inherit elisp-common eutils multilib + +# C-INTERCAL uses minor-major ordering of version components and +# negative version numbers. We map version components -1, -2, ... +# to 65535, 65534, ..., and subtract one from the next component. +# For example, upstream version 0.28 is mapped to Gentoo version 28.0 +# and 0.-2.0.29 is mapped to 28.65535.65534.0. +get_intercal_version() { + local i=.${1:-${PV}} j k c=0 + while [[ ${i} ]]; do + (( k = ${i##*.} + c )) + (( (c = (k >= 32768)) && (k -= 65536) )) + i=${i%.*} + j=${j}.${k} + done + echo ${j#.} +} + +MY_PN="${PN#c-}" +MY_PV="$(get_intercal_version)" +DESCRIPTION="C-INTERCAL - INTERCAL to binary (via C) compiler" +HOMEPAGE="http://c.intercal.org.uk" +SRC_URI="http://overload.intercal.org.uk/c/${MY_PN}-${MY_PV}.pax.gz" + +LICENSE="GPL-2 FDL-1.2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="emacs examples" + +DEPEND="emacs? ( virtual/emacs )" +RDEPEND="${DEPEND}" + +MY_PV2=${MY_PV%.${MY_PV##*.}} +S="${WORKDIR}/${MY_PN}-${MY_PV2##*.}.${MY_PV##*.}" +SITEFILE="50${PN}-gentoo.el" + +src_unpack() { + tar xzf "${DISTDIR}/${A}" || die "tar failed" +} + +src_compile() { + emake + + if use emacs; then + elisp-compile etc/intercal.el || die + fi +} + +src_install() { + emake DESTDIR="${D}" install + dodoc BUGS NEWS HISTORY README doc/THEORY.txt + + if use emacs; then + elisp-install ${PN} etc/intercal.{el,elc} || die + elisp-site-file-install "${FILESDIR}/${SITEFILE}" || die + fi + + if use examples; then + insinto /usr/share/doc/${PF} + doins -r pit + fi +} + +pkg_postinst() { + use emacs && elisp-site-regen +} + +pkg_postrm() { + use emacs && elisp-site-regen +} diff --git a/dev-lang/c-intercal/files/50c-intercal-gentoo.el b/dev-lang/c-intercal/files/50c-intercal-gentoo.el new file mode 100644 index 000000000000..c376230eb41a --- /dev/null +++ b/dev-lang/c-intercal/files/50c-intercal-gentoo.el @@ -0,0 +1,4 @@ +(add-to-list 'load-path "@SITELISP@") +(autoload 'intercal-mode "intercal" + "A major editing mode for the language Intercal." t) +;;(add-to-list 'auto-mode-alist '("\\.i\\'" . intercal-mode)) diff --git a/dev-lang/c-intercal/metadata.xml b/dev-lang/c-intercal/metadata.xml new file mode 100644 index 000000000000..6c6ba5563b73 --- /dev/null +++ b/dev-lang/c-intercal/metadata.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<maintainer> + <email>ulm@gentoo.org</email> +</maintainer> +<maintainer> + <email>pchrist@gentoo.org</email> +</maintainer> +<longdescription> + An implementation of the language INTERCAL, legendary for its perversity + and horribleness (this version adds COME FROM for extra flavor). Comes with + language manual and examples including possibly the entire extant body of + INTERCAL code. Now supports i18n and l14n (to Ancient Roman locale only). + Now with fix patch by Donald Knuth. +</longdescription> +</pkgmetadata> diff --git a/dev-lang/cfortran/Manifest b/dev-lang/cfortran/Manifest new file mode 100644 index 000000000000..6c32e575f4bd --- /dev/null +++ b/dev-lang/cfortran/Manifest @@ -0,0 +1,2 @@ +DIST cfortran_4.4-14.diff.gz 23084 SHA256 b49fe76e90f4f7c37e9b9709f4efdc4eee44e781d4c1f3842eed24fac0633daa SHA512 1e0b267efc17c2ba30ca1108d59ef87d1a401e6b88bea2c7045458f8cfad6ec9a05f6bf4a08c1d6cb314c790a4969a1f0fdf0c7b6abc28bae544928aad5b0218 WHIRLPOOL 5e07597d527303c1c15d155ac259f41a4d49e3b3285cc581b044ab5a52d05f8228309eea0a27b7e1a40b255fe3330dea4bf6ab4c1ab3453998ac6500ad17e727 +DIST cfortran_4.4.orig.tar.gz 120119 SHA256 ac7182f01afd3cc14b2525850509109598683eeb1e066c4a1f18661fb0d3d926 SHA512 969d0db566ecd7ed7945cac7f8ceea1cbd94ab427734ba83882acf97022c83b1417e32515d847fee89144137f58f7041cf5164fc397f3d7526f3aa958f8b038c WHIRLPOOL a5544fb9c23b5042d7dd2b52a516115b74e12bc54751f2cd6448eecd4f70cd86854ee4b7bac1248d312155e8be9d756e06d0d4a5bbed4162509a1b2b448330de diff --git a/dev-lang/cfortran/cfortran-4.4-r2.ebuild b/dev-lang/cfortran/cfortran-4.4-r2.ebuild new file mode 100644 index 000000000000..b7be931d525c --- /dev/null +++ b/dev-lang/cfortran/cfortran-4.4-r2.ebuild @@ -0,0 +1,38 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +inherit eutils + +DEB_PR="14" + +DESCRIPTION="Header file allowing to call Fortran routines from C and C++" +SRC_URI="mirror://debian/pool/main/c/${PN}/${PN}_${PV}.orig.tar.gz + mirror://debian/pool/main/c/${PN}/${PN}_${PV}-${DEB_PR}.diff.gz" +HOMEPAGE="http://www-zeus.desy.de/~burow/cfortran/" +KEYWORDS="alpha amd64 hppa ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~x86-macos" +LICENSE="LGPL-2" +IUSE="examples" +SLOT="0" + +src_unpack() { + unpack ${A} + cd "${S}" + epatch "${WORKDIR}"/${PN}_${PV}-${DEB_PR}.diff + if use examples; then + tar xfz cfortran.examples.tar.gz + mv eg examples + ln -sfn sz1.c examples/sz1/sz1.C + ln -sfn pz.c examples/pz/pz.C + fi +} + +src_install() { + insinto /usr/include/cfortran + doins cfortran.h || die + dosym cfortran/cfortran.h /usr/include/cfortran.h || die + dodoc cfortran.doc debian/{NEWS,changelog,copyright} + insinto /usr/share/doc/${PF} + doins cfortran.html index.htm cfortest.c cfortex.f + use examples && doins -r examples +} diff --git a/dev-lang/cfortran/cfortran-4.4-r3.ebuild b/dev-lang/cfortran/cfortran-4.4-r3.ebuild new file mode 100644 index 000000000000..fea33052e184 --- /dev/null +++ b/dev-lang/cfortran/cfortran-4.4-r3.ebuild @@ -0,0 +1,50 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit eutils + +DEB_PR="14" + +DESCRIPTION="Header file allowing to call Fortran routines from C and C++" +HOMEPAGE="http://www-zeus.desy.de/~burow/cfortran/" +SRC_URI=" + mirror://debian/pool/main/c/${PN}/${PN}_${PV}.orig.tar.gz + mirror://debian/pool/main/c/${PN}/${PN}_${PV}-${DEB_PR}.diff.gz" + +SLOT="0" +LICENSE="LGPL-2" +KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~x86-macos" +IUSE="examples" + +src_unpack() { + default + if use examples; then + tar xvzf "${S}"/cfortran.examples.tar.gz || die + mv eg examples || die + ln -sfn sz1.c examples/sz1/sz1.C || die + ln -sfn pz.c examples/pz/pz.C || die + fi +} + +src_prepare() { + epatch "${WORKDIR}"/${PN}_${PV}-${DEB_PR}.diff +} + +src_install() { + insinto /usr/include/cfortran + doins cfortran.h + + dosym cfortran/cfortran.h /usr/include/cfortran.h + + dodoc cfortran.doc debian/{NEWS,changelog,copyright} + + dohtml cfortran.html index.htm cfortest.c cfortex.f + + if use examples; then + insinto /usr/share/${PN} + doins -r "${WORKDIR}"/examples + fi +} diff --git a/dev-lang/cfortran/metadata.xml b/dev-lang/cfortran/metadata.xml new file mode 100644 index 000000000000..db1151c490fb --- /dev/null +++ b/dev-lang/cfortran/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <herd>sci</herd> + <longdescription lang="en"> + cfortran is a header file to ease bridge between C and FORTRAN. It + provides an interface between C and FORTRAN routines and global + data, i.e. structures and COMMON blocks. This package includes + patches from Debian for better support on newer compilers and architectures. +</longdescription> +</pkgmetadata> diff --git a/dev-lang/cilk/Manifest b/dev-lang/cilk/Manifest new file mode 100644 index 000000000000..1ca7aa3bf83c --- /dev/null +++ b/dev-lang/cilk/Manifest @@ -0,0 +1 @@ +DIST cilk-5.4.6.tar.gz 1270768 SHA256 0bee5386fabc87c97d716331b1b492eb8f18c8a8398c566afa3663f27139c9f6 SHA512 1ad082c5e1f42a4f15130673d1d43a0b5dedd80ca0e3182765065be8dccce72b26087243ca3405460dcc90332a84c3c5b1decf5a4650505fb738e7e085998e0e WHIRLPOOL 168138300c33c99a8906ad4c4755b57b7fc360bf5042a63b029a7c58cb7572674c9e8a67fe488ac9573461ea5a0cda69cb3d796abca375a4ecd0fcd7cb9bac4b diff --git a/dev-lang/cilk/cilk-5.4.6-r1.ebuild b/dev-lang/cilk/cilk-5.4.6-r1.ebuild new file mode 100644 index 000000000000..7d1818221164 --- /dev/null +++ b/dev-lang/cilk/cilk-5.4.6-r1.ebuild @@ -0,0 +1,36 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +inherit flag-o-matic autotools eutils + +DESCRIPTION="Language for multithreaded parallel programming based on ANSI C" +HOMEPAGE="http://supertech.csail.mit.edu/cilk" +SRC_URI="http://supertech.csail.mit.edu/${PN}/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" +IUSE="doc examples static-libs" + +src_prepare() { + epatch "${FILESDIR}"/${P}-autotools.patch + eautoreconf +} + +src_configure() { + append-cppflags -D_XOPEN_SOURCE=600 -D_POSIX_C_SOURCE=200809L + replace-flags -O[2-9] -O1 + econf --with-perfctr=no $(use_enable static-libs static) +} + +src_install() { + emake DESTDIR="${D}" install + dodoc NEWS README THANKS + use doc && dodoc doc/manual.pdf + if use examples; then + insinto /usr/share/doc/${PF} + doins -r examples + fi +} diff --git a/dev-lang/cilk/files/cilk-5.4.6-autotools.patch b/dev-lang/cilk/files/cilk-5.4.6-autotools.patch new file mode 100644 index 000000000000..9f2d62b90410 --- /dev/null +++ b/dev-lang/cilk/files/cilk-5.4.6-autotools.patch @@ -0,0 +1,81 @@ +diff -Nur cilk-5.4.6.orig/cilk2c/Makefile.am cilk-5.4.6/cilk2c/Makefile.am +--- cilk-5.4.6.orig/cilk2c/Makefile.am 2012-11-12 21:18:50.374020109 -0800 ++++ cilk-5.4.6/cilk2c/Makefile.am 2012-11-12 21:19:09.667111443 -0800 +@@ -1,4 +1,6 @@ +-pkglib_PROGRAMS = cilk2c ++pkglibexec_PROGRAMS = cilk2c ++ ++BUILT_SOURCES = ANSI-C.c ANSI-C.h + + cilk2c_SOURCES = analyze.c ast.c complex-types.c constexpr.c \ + container.c conversions.c dataflow.c elide.c initializer.c list.c \ +diff -Nur cilk-5.4.6.orig/configure.ac cilk-5.4.6/configure.ac +--- cilk-5.4.6.orig/configure.ac 2012-11-12 21:18:50.371020111 -0800 ++++ cilk-5.4.6/configure.ac 2012-11-12 21:19:09.668111459 -0800 +@@ -1,8 +1,8 @@ + dnl Process this file with autoconf to produce a configure script. + AC_INIT + AC_CONFIG_SRCDIR([config.h.in]) +-AM_CONFIG_HEADER([config.h runtime/cilk-sysdep.h]) +-AC_PREREQ(2.53) ++AC_CONFIG_HEADERS([config.h runtime/cilk-sysdep.h]) ++AC_PREREQ(2.68) + AM_INIT_AUTOMAKE(cilk, 5.4.6) + AC_CANONICAL_HOST + +@@ -20,7 +20,7 @@ + + dnl Checks for required programs. + if test "$GCC" != "yes"; then +- AC_ERROR("I cannot find gcc. gcc is required for Cilk to work.") ++ AC_MSG_ERROR("I cannot find gcc. gcc is required for Cilk to work.") + fi + + dnl Checks for libraries. +diff -Nur cilk-5.4.6.orig/examples/Makefile.am cilk-5.4.6/examples/Makefile.am +--- cilk-5.4.6.orig/examples/Makefile.am 2012-11-12 21:18:50.370020112 -0800 ++++ cilk-5.4.6/examples/Makefile.am 2012-11-12 21:20:06.347380163 -0800 +@@ -5,13 +5,13 @@ + NPROC = 4 + PROGFLAGS = --nproc $(NPROC) --yield + +-CILKFLAGS=@CFLAGS@ ++CILKFLAGS=-O2 + CILKCOMPILE = $(CILK) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CILKFLAGS) $(CILKFLAGS) + CILKLD = $(CILK) + CILKLINK = $(CILKLD) $(AM_CILKFLAGS) $(CILKFLAGS) $(PERFCTR_LIBS) $(LDFLAGS) -o $@ + LINK=$(CILKLINK) + +-noinst_PROGRAMS=hello fib fib-serial testall ck magic knapsack queens \ ++check_PROGRAMS=hello fib fib-serial testall ck magic knapsack queens \ + cilksort fft test-locks bucket cholesky game nfib kalah matmul lu plu \ + heat test-errno strassen rectmul spacemul \ + test-void-func \ +@@ -58,7 +58,7 @@ + EXTRA_DIST = knapsack-example1.input knapsack-example2.input \ + knapsack-example3.input + +-check: hello testall fft fib lu matmul cilksort heat test-locks test-errno ++check-local: hello testall fft fib lu matmul cilksort heat test-locks test-errno + @echo "Runnig Cilk tests. This will take a while." + ./hello $(PROGFLAGS) + ./test-void-func $(PROGFLAGS) +diff -Nur cilk-5.4.6.orig/runtime/Makefile.am cilk-5.4.6/runtime/Makefile.am +--- cilk-5.4.6.orig/runtime/Makefile.am 2012-11-12 21:18:50.375020110 -0800 ++++ cilk-5.4.6/runtime/Makefile.am 2012-11-12 21:19:09.668111459 -0800 +@@ -1,5 +1,5 @@ + lib_LTLIBRARIES = libcilk.la libcilk.g.la libcilk.p.la libcilk.g.p.la +-pkglib_LIBRARIES = libcilkrt0.a libcilkrt0g.a libcilkrt0p.a libcilkrt0gp.a ++lib_LIBRARIES = libcilkrt0.a libcilkrt0g.a libcilkrt0p.a libcilkrt0gp.a + + CILK_HFILES = cilk-cilk2c.h cilk.h cilk-lib.h cilk-lib.cilkh \ + gcc-builtin.h cilk-cilk2c-pre.h +@@ -8,7 +8,7 @@ + cmdline.c internal-malloc.c timing.c invoke-main.c malloc.c debug.c \ + workers.c mutex.c + +-pkginclude_HEADERS = $(CILK_HFILES) cilk-conf.h cilk-sysdep.h ++include_HEADERS = $(CILK_HFILES) cilk-conf.h cilk-sysdep.h + + CILK_SRC = cilk-internal.h $(CILK_CFILES) $(CILK_HFILES) + COMMON_LINK_FLAGS = -version-info 1:3:0 @PTHREAD_LIBS@ diff --git a/dev-lang/cilk/metadata.xml b/dev-lang/cilk/metadata.xml new file mode 100644 index 000000000000..86b18b2b236c --- /dev/null +++ b/dev-lang/cilk/metadata.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<herd>sci</herd> +<longdescription lang="en"> + Cilk is a language for multithreaded parallel programming based on + ANSI C. Cilk is especially effective for exploiting dynamic, highly + asynchronous parallelism, which can be difficult to write in data-parallel or + message-passing style. Cilk provides an effective platform for + programming dense and sparse numerical algorithms, such as matrix + factorization and N-body simulations. Cilk is algorithmic, in that + the runtime system employs a scheduler that allows the performance + of programs to be estimated accurately based on abstract complexity + measures. +</longdescription> +</pkgmetadata> diff --git a/dev-lang/cll1h/Manifest b/dev-lang/cll1h/Manifest new file mode 100644 index 000000000000..70a508bafa52 --- /dev/null +++ b/dev-lang/cll1h/Manifest @@ -0,0 +1 @@ +DIST cll1h-0.6.tar.gz 6569 SHA256 3f3e964d7b2e2779c13e6f08f1ca9fe97b9b8a698dcf26eea9e2f16246adf6dc SHA512 19b2716519d169d6c090c64c60db318008ac807723d73420d29b75d8b5cf74d56b2b68177483a861ab659efe24cdc1b6e1f17a9fd3c373490bcb1e755ba784b2 WHIRLPOOL 851f920e221eea0dd7e9eea011646f2bdac5dcb23367c8747a075904d5ec7fb095077a287f6a8866c375f66a0194bb3d5f2cfde3a6399272f72c9ca9344448ea diff --git a/dev-lang/cll1h/cll1h-0.6-r1.ebuild b/dev-lang/cll1h/cll1h-0.6-r1.ebuild new file mode 100644 index 000000000000..8a86362d03d1 --- /dev/null +++ b/dev-lang/cll1h/cll1h-0.6-r1.ebuild @@ -0,0 +1,26 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=4 + +DESCRIPTION="C<<1 programming language system" +HOMEPAGE="http://gpl.arachne.cz/" +SRC_URI="http://gpl.arachne.cz/download/${P}.tar.gz" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos" +IUSE="" + +DEPEND="" +RDEPEND="sys-devel/gcc" + +src_install() { + insinto /usr/include + doins cll1.h + dodoc cll1.txt + docinto examples + dodoc demos/*.c + docompress -x /usr/share/doc/"${PF}"/examples +} diff --git a/dev-lang/cll1h/metadata.xml b/dev-lang/cll1h/metadata.xml new file mode 100644 index 000000000000..d9cd2cad66c2 --- /dev/null +++ b/dev-lang/cll1h/metadata.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<maintainer> +<email>maintainer-needed@gentoo.org</email> +</maintainer> +</pkgmetadata> diff --git a/dev-lang/clojure/Manifest b/dev-lang/clojure/Manifest new file mode 100644 index 000000000000..334ac5de3b48 --- /dev/null +++ b/dev-lang/clojure/Manifest @@ -0,0 +1,2 @@ +DIST clojure-1.5.1.tar.gz 540021 SHA256 ee6cc9360e3545a35cdd6a9ae48b5f4034ef2eb2aaa19721df976078952a805b SHA512 8bc4b7098ec11a3cd4d077f32607c5d23118d5f84b88af69b2051c4dd5b17f28f092b77206fba87e23f1163d2d0f7a2c37b1b1ffa1bcfef3ad4c8f74695d71cd WHIRLPOOL e77d13a771903100a3fe6b0ade84375217c5b150498e727a7cef2d856a4004e640e0c95717fb67be6cae1fbab7611189a1f3999726f7bbec43968eef646dcb32 +DIST clojure-1.6.0.tar.gz 579154 SHA256 70b664b24bd8cc7bf0b5519cfa5fa98424eb3e23303fec04b24a03b8bc4f0b4a SHA512 52bf54d157dae77e71e53bac421daa1bca7ef55b837600c8b04751a545cbed0f04d3718543031d1e5b8ca43e2518d356082b9f8c029c2e318996450cfaee9c81 WHIRLPOOL b79b008773ad678e6418a719183c5b240ad0629d3a32384ec6e5979f0377ba2bd39768f27b71da815342bffbd8bdfa5b66cb24e90cf4f489273b33515f591509 diff --git a/dev-lang/clojure/clojure-1.5.1.ebuild b/dev-lang/clojure/clojure-1.5.1.ebuild new file mode 100644 index 000000000000..0b432548557b --- /dev/null +++ b/dev-lang/clojure/clojure-1.5.1.ebuild @@ -0,0 +1,33 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +JAVA_PKG_IUSE="source test" + +inherit java-pkg-2 java-ant-2 + +DESCRIPTION="Clojure is a dynamic programming language that targets the Java Virtual Machine" +HOMEPAGE="http://clojure.org/" +SRC_URI="https://github.com/clojure/clojure/tarball/${P} -> ${P}.tar.gz" + +LICENSE="EPL-1.0" +SLOT="1.5" +KEYWORDS="amd64 x86 ~x86-linux" +IUSE="" +RESTRICT="test" # patches welcome to fix the test + +RDEPEND=">=virtual/jre-1.5" +DEPEND=">=virtual/jdk-1.5" + +S=${WORKDIR}/clojure-clojure-22c7e75 + +src_test() { + java-pkg-2_src_test +} + +src_install() { + java-pkg_newjar ${P/_/-}.jar + java-pkg_dolauncher ${PN}-${SLOT} --main clojure.main + dodoc changes.md readme.txt +} diff --git a/dev-lang/clojure/clojure-1.6.0.ebuild b/dev-lang/clojure/clojure-1.6.0.ebuild new file mode 100644 index 000000000000..d7acc4b6b261 --- /dev/null +++ b/dev-lang/clojure/clojure-1.6.0.ebuild @@ -0,0 +1,33 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +JAVA_PKG_IUSE="source test" + +inherit java-pkg-2 java-ant-2 + +DESCRIPTION="Clojure is a dynamic programming language that targets the Java Virtual Machine" +HOMEPAGE="http://clojure.org/" +SRC_URI="https://github.com/clojure/clojure/tarball/${P} -> ${P}.tar.gz" + +LICENSE="EPL-1.0 Apache-2.0 BSD" +SLOT="1.6" +KEYWORDS="amd64 x86 ~x86-linux" +IUSE="" +RESTRICT="test" # patches welcome to fix the test + +RDEPEND=">=virtual/jre-1.6" +DEPEND=">=virtual/jdk-1.6" + +S=${WORKDIR}/clojure-clojure-42ce994 + +src_test() { + java-pkg-2_src_test +} + +src_install() { + java-pkg_newjar ${P/_/-}.jar + java-pkg_dolauncher ${PN}-${SLOT} --main clojure.main + dodoc changes.md readme.txt +} diff --git a/dev-lang/clojure/metadata.xml b/dev-lang/clojure/metadata.xml new file mode 100644 index 000000000000..761b85fc5178 --- /dev/null +++ b/dev-lang/clojure/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer> + <email>mr_bones_@gentoo.org</email> + <name>Michael Sterrett</name> + </maintainer> + <upstream> + <remote-id type="github">clojure/clojure</remote-id> + </upstream> +</pkgmetadata> diff --git a/dev-lang/closure-compiler-bin/Manifest b/dev-lang/closure-compiler-bin/Manifest new file mode 100644 index 000000000000..737c089f310e --- /dev/null +++ b/dev-lang/closure-compiler-bin/Manifest @@ -0,0 +1,5 @@ +DIST closure-compiler-bin-20120305.tar.gz 4905502 SHA256 593037f0f4e8df99293384559d64c3f89f50cecbd36f9a8755b3d4ddeeea89f2 SHA512 53c10a2731e4da8e49c46154c5a997a8b68f2d2e6a86baf4268425b3be416be1e4e9bc64809098484536af980e1192d649a95bd1088bb4da7ba83d4b7dad054f WHIRLPOOL 6e140b19282c1564a715aedd1ccee264ee5ea85e7da94f47fe9d59a3b3c9733cd0797b49238b49e68e25a7ce6957b9b3e26214b23ed41547378f45020d6d3490 +DIST closure-compiler-bin-20121212.tar.gz 5436614 SHA256 a78280bfe585be69648c0777d97bd33d9374d035463125521ca532d203974f60 SHA512 bb7bf694ff8aa9b932a6b248414884fc0d9cef6ab44d88cfad256ebd707ca299b21d2ee313a3b024032fc5eec0ffc4b7080182882af3c2311a2ad1f4ca85d1f9 WHIRLPOOL 5935f6ca1aada268a7d0fca28765c0ad4fc775891cf8f44148b81898838d5a3521a911b13efcb7a97e541f346ddb5fdeb6c998fddf6ed638c0d1fb4c52e87469 +DIST closure-compiler-bin-20130227.tar.gz 5694074 SHA256 c8ac4796e61919a4112ed616cc1734caf69b5aa5e777d5b0428defb21c253537 SHA512 f9ea62e994e1989643e3fe3db8fbe8c66eda34196b30bb31cdccbcbb4c209231bc35e705d5ac8cbcc73aecca8325e41ca48879eb624090b595a05413a56eb243 WHIRLPOOL ec4adc79e51fe5365a3087fc5d92fa1da15939a31f80c36faeda5aff3820cb58a7d77f52883f125c80c74cfa57aa3e830d98dd0975391186658339a66a457b93 +DIST closure-compiler-bin-20130411.tar.gz 5719640 SHA256 8487ab0b22f3c3e1d96ab518d42da057b113a41a685c1e68088c73fa9addcc3c SHA512 19cda8997828f58954ad94b63777aaf3157ce557af16090b6fc7dfc6333d57f901b630b75443a1b0ce961baec3989aae47061e92f97742be051f4451d8ae4023 WHIRLPOOL 3ee276d2f377be03f8bc33ba910770aa2631cc20392855d9dafc25fccc7ea0b393ecb98c20da9932eb6732e68bffc4218b87455260c4ac67d8bf7481aeef7e08 +DIST closure-compiler-bin-20150126.tar.gz 5654460 SHA256 9b8eb3ada77a440f09b32807be492f7b71429e6677d2227866fb2b50d9c7574a SHA512 fe302299aa9f5e21c6db4ebb628b63b83a84faea57a533c52d5f1590617d7df1ab484a1f32a4f666ed23de12860e30cd2f43da33fa5ec7dbb27048d2905d537c WHIRLPOOL 5e4f532ddf90577a84613af18e9a81561090a3518dd994f0f3407fa0bc16c3d94f2934c4437519e14394353e43147b5a9677ee5d413b5f08c00136ef6e9f9471 diff --git a/dev-lang/closure-compiler-bin/closure-compiler-bin-20120305.ebuild b/dev-lang/closure-compiler-bin/closure-compiler-bin-20120305.ebuild new file mode 100644 index 000000000000..8d86d9cc484e --- /dev/null +++ b/dev-lang/closure-compiler-bin/closure-compiler-bin-20120305.ebuild @@ -0,0 +1,30 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="4" + +inherit java-pkg-2 + +DESCRIPTION="JavaScript optimizing compiler" +HOMEPAGE="http://code.google.com/p/closure-compiler/" +SRC_URI="http://closure-compiler.googlecode.com/files/compiler-${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="" + +RDEPEND=">=virtual/jre-1.6" + +S=${WORKDIR} + +src_install() { + java-pkg_jarinto /opt/${PN}-${SLOT}/lib + java-pkg_newjar compiler.jar ${PN}.jar + java-pkg_dolauncher \ + ${PN%-bin} \ + --jar /opt/${PN}-${SLOT}/lib/${PN}.jar \ + -into /opt + dodoc README +} diff --git a/dev-lang/closure-compiler-bin/closure-compiler-bin-20121212.ebuild b/dev-lang/closure-compiler-bin/closure-compiler-bin-20121212.ebuild new file mode 100644 index 000000000000..5f49369896c0 --- /dev/null +++ b/dev-lang/closure-compiler-bin/closure-compiler-bin-20121212.ebuild @@ -0,0 +1,30 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="4" + +inherit java-pkg-2 + +DESCRIPTION="JavaScript optimizing compiler" +HOMEPAGE="http://code.google.com/p/closure-compiler/" +SRC_URI="http://closure-compiler.googlecode.com/files/compiler-${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="" + +RDEPEND=">=virtual/jre-1.6" + +S=${WORKDIR} + +src_install() { + java-pkg_jarinto /opt/${PN}-${SLOT}/lib + java-pkg_newjar compiler.jar ${PN}.jar + java-pkg_dolauncher \ + ${PN%-bin} \ + --jar /opt/${PN}-${SLOT}/lib/${PN}.jar \ + -into /opt + dodoc README +} diff --git a/dev-lang/closure-compiler-bin/closure-compiler-bin-20130227.ebuild b/dev-lang/closure-compiler-bin/closure-compiler-bin-20130227.ebuild new file mode 100644 index 000000000000..5f49369896c0 --- /dev/null +++ b/dev-lang/closure-compiler-bin/closure-compiler-bin-20130227.ebuild @@ -0,0 +1,30 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="4" + +inherit java-pkg-2 + +DESCRIPTION="JavaScript optimizing compiler" +HOMEPAGE="http://code.google.com/p/closure-compiler/" +SRC_URI="http://closure-compiler.googlecode.com/files/compiler-${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="" + +RDEPEND=">=virtual/jre-1.6" + +S=${WORKDIR} + +src_install() { + java-pkg_jarinto /opt/${PN}-${SLOT}/lib + java-pkg_newjar compiler.jar ${PN}.jar + java-pkg_dolauncher \ + ${PN%-bin} \ + --jar /opt/${PN}-${SLOT}/lib/${PN}.jar \ + -into /opt + dodoc README +} diff --git a/dev-lang/closure-compiler-bin/closure-compiler-bin-20130411.ebuild b/dev-lang/closure-compiler-bin/closure-compiler-bin-20130411.ebuild new file mode 100644 index 000000000000..5f49369896c0 --- /dev/null +++ b/dev-lang/closure-compiler-bin/closure-compiler-bin-20130411.ebuild @@ -0,0 +1,30 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="4" + +inherit java-pkg-2 + +DESCRIPTION="JavaScript optimizing compiler" +HOMEPAGE="http://code.google.com/p/closure-compiler/" +SRC_URI="http://closure-compiler.googlecode.com/files/compiler-${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="" + +RDEPEND=">=virtual/jre-1.6" + +S=${WORKDIR} + +src_install() { + java-pkg_jarinto /opt/${PN}-${SLOT}/lib + java-pkg_newjar compiler.jar ${PN}.jar + java-pkg_dolauncher \ + ${PN%-bin} \ + --jar /opt/${PN}-${SLOT}/lib/${PN}.jar \ + -into /opt + dodoc README +} diff --git a/dev-lang/closure-compiler-bin/closure-compiler-bin-20150126.ebuild b/dev-lang/closure-compiler-bin/closure-compiler-bin-20150126.ebuild new file mode 100644 index 000000000000..81c9ee43b7c8 --- /dev/null +++ b/dev-lang/closure-compiler-bin/closure-compiler-bin-20150126.ebuild @@ -0,0 +1,30 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="4" + +inherit java-pkg-2 + +DESCRIPTION="JavaScript optimizing compiler" +HOMEPAGE="https://github.com/google/closure-compiler" +SRC_URI="http://dl.google.com/closure-compiler/compiler-${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="" + +RDEPEND=">=virtual/jre-1.6" + +S=${WORKDIR} + +src_install() { + java-pkg_jarinto /opt/${PN}-${SLOT}/lib + java-pkg_newjar compiler.jar ${PN}.jar + java-pkg_dolauncher \ + ${PN%-bin} \ + --jar /opt/${PN}-${SLOT}/lib/${PN}.jar \ + -into /opt + dodoc README.md +} diff --git a/dev-lang/closure-compiler-bin/metadata.xml b/dev-lang/closure-compiler-bin/metadata.xml new file mode 100644 index 000000000000..42d57aedbec2 --- /dev/null +++ b/dev-lang/closure-compiler-bin/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer> + <email>vapier@gentoo.org</email> + <description>make whatever changes you want except for removal -- i need a compiler that avoids installing a jdk</description> + </maintainer> + <upstream> + <remote-id type="github">google/closure-compiler</remote-id> + </upstream> +</pkgmetadata> diff --git a/dev-lang/coffee-script/Manifest b/dev-lang/coffee-script/Manifest new file mode 100644 index 000000000000..9567d32cc942 --- /dev/null +++ b/dev-lang/coffee-script/Manifest @@ -0,0 +1 @@ +DIST coffee-script-1.9.3.tar.gz 810246 SHA256 8c8faeeee21ed3cdde727fcc08ed6062d9d0233679317f026160aee8bfa85060 SHA512 660826e27f842ed67ec6ef59f734087c95585e03b6b8c6d25c8ecfc567f3161f59034e730b61e5f806edaaa7ec6c805ad6d14902857aaf09cf6193b0fe14f506 WHIRLPOOL c99eab68344609b5352ee7b7f59ebb4e6c90d1454c3cf37ac8cb00b1add0637e2e56084864ae54cdeb494a6966a97e896bf95760e1e8dbe1b26c0fc75abd5a41 diff --git a/dev-lang/coffee-script/coffee-script-1.9.3-r1.ebuild b/dev-lang/coffee-script/coffee-script-1.9.3-r1.ebuild new file mode 100644 index 000000000000..98497739ed49 --- /dev/null +++ b/dev-lang/coffee-script/coffee-script-1.9.3-r1.ebuild @@ -0,0 +1,48 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit multilib + +MY_PN="coffeescript" + +DESCRIPTION="A little language that compiles into javascript" +HOMEPAGE="http://coffeescript.org/" + +# The tests are missing from the npm registry package, so use Github +# instead. +SRC_URI="https://github.com/jashkenas/${MY_PN}/archive/${PV}.tar.gz + -> ${P}.tar.gz" +S="${WORKDIR}/${MY_PN}-${PV}" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +# This package has a test suite (that works), but it requires a number +# of packages not in the tree. See thread "NPM / NodeJS project" on the +# gentoo-dev archives for more info. +IUSE="doc examples" + +RDEPEND="net-libs/nodejs" + +src_install(){ + local npm_module_dir="/usr/$(get_libdir)/node/${PN}" + insinto "${npm_module_dir}" + doins *.js package.json + doins -r lib + dodoc CONTRIBUTING.md README.md + + use doc && dodoc -r documentation + use examples && dodoc -r examples + + # The coffee and cake "binaries" use a relative path to find the lib + # directory, so we have to symlink them rather than use dobin(). + exeinto "${npm_module_dir}/bin" + doexe bin/cake + doexe bin/coffee + dosym "${npm_module_dir}/bin/cake" "/usr/bin/cake" + dosym "${npm_module_dir}/bin/coffee" "/usr/bin/coffee" +} diff --git a/dev-lang/coffee-script/metadata.xml b/dev-lang/coffee-script/metadata.xml new file mode 100644 index 000000000000..fd269876d51e --- /dev/null +++ b/dev-lang/coffee-script/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer> + <email>mjo@gentoo.org</email> + <name>Michael Orlitzky</name> + </maintainer> + <upstream> + <remote-id type="github">jashkenas/coffeescript</remote-id> + </upstream> +</pkgmetadata> diff --git a/dev-lang/confluence/Manifest b/dev-lang/confluence/Manifest new file mode 100644 index 000000000000..e51da980b9fd --- /dev/null +++ b/dev-lang/confluence/Manifest @@ -0,0 +1 @@ +DIST confluence-0.10.6.tar.gz 118762 SHA256 7ab76a4183dae9f2429df5cb07b0df293c50cd947e3c051a6784561e8d3b3273 SHA512 904ea553a917ac2aafc33464fe4175bca76c53c51c50819ea92326dd5a1451e98eca6a56db28b7041814e5e4cea61da618012087a79fa9ec670ca67fc0014d25 WHIRLPOOL 74ad34b66a5f38185b00ac955d10da9b81fdba6b6f9422182550eb039d82782bf168e82a8df738a2fa3f2d615fe36bf605feb5c0b0b3b92c9c67132c4d63fc4d diff --git a/dev-lang/confluence/confluence-0.10.6.ebuild b/dev-lang/confluence/confluence-0.10.6.ebuild new file mode 100644 index 000000000000..85c0c915bb7b --- /dev/null +++ b/dev-lang/confluence/confluence-0.10.6.ebuild @@ -0,0 +1,47 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="2" + +inherit eutils + +DESCRIPTION="Functional programming language for reactive system design (digital logic, hard-real-time software)" +HOMEPAGE="http://www.funhdl.org/wiki/doku.php?id=confluence" +SRC_URI="http://www.funhdl.org/download/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="alpha ~amd64 ia64 ~ppc ~sparc x86" +IUSE="+ocamlopt" + +# min version so we are sure we always have ocamlopt in IUSE +RDEPEND=">=dev-lang/ocaml-3.10[ocamlopt?]" +DEPEND="${RDEPEND} + sys-apps/sed" + +src_prepare() { + # Install non binary stuff in share... + sed -i -e "s:lib/confluence:share/confluence:" Makefile || die "failed to sed the makefile" + sed -i -e "s:lib/confluence:share/confluence:" src/cfeval/cf.ml || die "failed to sed ml files" + sed -i -e "s:lib/confluence:share/confluence:" src/cfeval/cfParserUtil.ml || die "failed to sed ml files" + if ! use ocamlopt; then + sed -i -e "s:cmxa:cma:" src/Makefile || die "failed to disable ocamlopt support" + sed -i -e "s:cmx:cmo:" src/Makefile || die "failed to disable ocamlopt support" + fi +} + +src_compile() { + if use ocamlopt; then + emake -j1 PREFIX="${D}/usr" OCAMLLIB=`ocamlc -where` || die "failed to build" + else + emake -j1 OCAMLOPT="ocamlc" OCAMLC="ocamlc" PREFIX="${D}/usr" OCAMLLIB=`ocamlc -where` || die "failed to build" + fi +} + +src_install() { + emake -j1 PREFIX="${D}/usr" OCAMLLIB=`ocamlc -where` install || die "install failed" + echo "CF_LIB=/usr/share/confluence" > "${T}/99${PN}" + doenvd "${T}/99${PN}" + dodoc NEWS || die +} diff --git a/dev-lang/confluence/metadata.xml b/dev-lang/confluence/metadata.xml new file mode 100644 index 000000000000..2193d772e351 --- /dev/null +++ b/dev-lang/confluence/metadata.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<herd>ml</herd> +</pkgmetadata> diff --git a/dev-lang/dmd-bin/Manifest b/dev-lang/dmd-bin/Manifest new file mode 100644 index 000000000000..85904b4c011d --- /dev/null +++ b/dev-lang/dmd-bin/Manifest @@ -0,0 +1,2 @@ +DIST dmd.1.016.zip 4813864 SHA256 839c0d0288560989e16271e842c368347ff392c648b8fe5e4daa9853dfd6684d SHA512 d7d801904c706b2a1fbecadc51a49f2549a4a8b2da6027195d56c9ff2a271ad2f90eb091b80066a0a4608d38905de988a7320c9c720df876bad79dd4f5c14674 WHIRLPOOL 619d0d5a5baf849fff96433b332b99fc868bb30f6cfeab1221f217c953d546312c0ebc088f782edbfcd1630d4541f998167493df20bf90288c718fb51fc6f993 +DIST dmd.2.008.zip 5325757 SHA256 8d8a0b4399ebf1ecc7e88ee68852db5e944ec7b88607d7c02a150bfcdfaf2b64 SHA512 a66aa0141147f2c6a46938c235bc2f7747f493fd09c5265b7d6bb77242075f5e262efb2b03425f2e2ed1e6b7c2bef4ab4c0e935e1ce8167738abb86f4967db96 WHIRLPOOL 356f307353a57fa75a32866d7c21b95f92da308bd6d2afc8bb7bc559a6f18138c6f17975b2b4ea7e332130bbb5e37d1b0ec96ac28d63331a8b13b972e959d8de diff --git a/dev-lang/dmd-bin/dmd-bin-1.016.ebuild b/dev-lang/dmd-bin/dmd-bin-1.016.ebuild new file mode 100644 index 000000000000..31876f81e6de --- /dev/null +++ b/dev-lang/dmd-bin/dmd-bin-1.016.ebuild @@ -0,0 +1,109 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +inherit eutils + +MY_P=${P/-bin/} +MY_P=${MY_P/-/.} + +DESCRIPTION="Digital Mars D Compiler" +HOMEPAGE="http://www.digitalmars.com/d/" +SRC_URI="http://ftp.digitalmars.com/${MY_P}.zip" + +LICENSE="DMD" +SLOT="0" +KEYWORDS="~x86" +RESTRICT="mirror strip" + +LOC="/opt/dmd" +S="${WORKDIR}" + +DEPEND="sys-apps/findutils + app-arch/unzip" +RDEPEND="~virtual/libstdc++-3.3" + +src_unpack() { + unpack ${A} + + # Remove unneccessary files + mv "${S}"/dmd/lib/libphobos.a "${S}"/dmd + rm -r "${S}"/dmd/lib + mkdir "${S}"/dmd/lib + mv "${S}"/dmd/libphobos.a "${S}"/dmd/lib + + rm -r "${S}"/dm + rm "${S}"/dmd/bin/*.dll "${S}"/dmd/bin/*.exe "${S}"/dmd/bin/readme.txt + rm "${S}"/dmd/bin/sc.ini "${S}"/dmd/bin/windbg.hlp + + # Cleanup line endings + cd "${S}"/dmd + edos2unix `find . -name '*.c' -type f` + edos2unix `find . -name '*.d' -type f` + edos2unix `find . -name '*.ddoc' -type f` + edos2unix `find . -name '*.h' -type f` + edos2unix `find . -name '*.mak' -type f` + edos2unix `find . -name '*.txt' -type f` + edos2unix `find samples -name '*.html' -type f` + + # Fix permissions + fperms guo=r `find . -type f` + fperms guo=rx `find . -type d` + fperms guo=rx bin/dmd bin/dumpobj bin/obj2asm bin/rdmd +} + +src_compile() { + cd "${S}"/dmd/src/phobos + sed -i -e "s:DMD=.*:DMD=${S}/dmd/bin/dmd -I${S}/dmd/src/phobos -L${S}/dmd/lib/libphobos.a:" linux.mak internal/gc/linux.mak + edos2unix linux.mak internal/gc/linux.mak + make -f linux.mak + cp libphobos.a "${S}"/dmd/lib + + # Clean up + make -f linux.mak clean + rm internal/gc/*.o +} + +src_install() { + cd "${S}"/dmd + + # Broken dmd.conf + # http://d.puremagic.com/issues/show_bug.cgi?id=278 + mv bin/dmd bin/dmd.bin + cat <<END > "bin/dmd" +#!/bin/sh +${LOC}/bin/dmd.bin -I${LOC}/src/phobos -L${LOC}/lib/libphobos.a \$* +END + fperms guo=rx bin/dmd bin/dmd.bin + + # Man pages + doman man/man1/dmd.1 + doman man/man1/dumpobj.1 + doman man/man1/obj2asm.1 + rm -r man + + # Install + mkdir "${D}/opt" + mv "${S}/dmd" "${D}/opt/dmd" + + # Set PATH + doenvd "${FILESDIR}/25dmd" +} + +pkg_postinst () { + ewarn "The DMD Configuration file has been disabled, " + ewarn "and will be re-enabled when: " + ewarn " " + ewarn "http://d.puremagic.com/issues/show_bug.cgi?id=278" + ewarn " " + ewarn "has been fixed. Meanwhile, please supply all your" + ewarn "configuration options in the /opt/dmd/bin/dmd " + ewarn "shell script. " + ewarn " " + ewarn "You may need to run: " + ewarn " " + ewarn "env-update && source /etc/profile " + ewarn " " + ewarn "to be able to use the compiler immediately. " + ewarn " " +} diff --git a/dev-lang/dmd-bin/dmd-bin-2.008-r1.ebuild b/dev-lang/dmd-bin/dmd-bin-2.008-r1.ebuild new file mode 100644 index 000000000000..cbe2bdb2ee5f --- /dev/null +++ b/dev-lang/dmd-bin/dmd-bin-2.008-r1.ebuild @@ -0,0 +1,105 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +inherit eutils + +MY_P=${P/-bin/} +MY_P=${MY_P/-/.} + +DESCRIPTION="Digital Mars D Compiler" +HOMEPAGE="http://www.digitalmars.com/d/" +SRC_URI="http://ftp.digitalmars.com/${MY_P}.zip" + +LICENSE="DMD" +SLOT="0" +KEYWORDS="~amd64 ~x86" +RESTRICT="mirror strip" + +LOC="/opt/dmd" +S="${WORKDIR}" + +DEPEND="sys-apps/findutils + app-arch/unzip" +RDEPEND="" + +src_unpack() { + unpack ${A} + + # Cleanup line endings + cd "${S}/dmd" + edos2unix `find . -name '*.c' -type f` + edos2unix `find . -name '*.d' -type f` + edos2unix `find . -name '*.ddoc' -type f` + edos2unix `find . -name '*.h' -type f` + edos2unix `find . -name '*.mak' -type f` + edos2unix `find . -name '*.txt' -type f` + edos2unix `find samples -name '*.html' -type f` + edos2unix src/phobos/linux.mak src/phobos/internal/gc/linux.mak + + # Fix permissions and clean up + fperms guo=r `find . -type f` + fperms guo=rx `find . -type d` + fperms guo=rx bin/dmd bin/dumpobj bin/obj2asm bin/rdmd +} + +src_compile() { + # Don't use teh bundled library since on gentoo we do teh compile + cd "${S}/dmd/src/phobos" + sed -i -e "s:DMD=.*:DMD=${S}/dmd/bin/dmd:" linux.mak internal/gc/linux.mak + # Can't use emake, customized build system + make -f linux.mak + cp obj/release/libphobos2.a "${S}/dmd/lib" + + # Clean up + make -f linux.mak clean +} + +src_install() { + cd "${S}/dmd" + + # Setup dmd.conf + cat <<END > "bin/dmd.conf" +[Environment] +DFLAGS=-I/opt/dmd/src/phobos -L-L/opt/dmd/lib +END + insinto /etc + doins bin/dmd.conf + + # Man pages + doman man/man1/dmd.1 + doman man/man1/dumpobj.1 + doman man/man1/obj2asm.1 + + # Documentation + dohtml "html/d/*" "html/d/phobos/*" + + # Install + exeinto /opt/dmd/bin + doexe bin/dmd + doexe bin/dumpobj + doexe bin/obj2asm + doexe bin/rdmd + + insinto /opt/dmd/lib + doins lib/libphobos2.a + + insinto /opt/dmd/samples + doins "samples/d/*" + + # Phobos and DMD source + mv src "${D}/opt/dmd/" + + # Set PATH + doenvd "${FILESDIR}/25dmd" +} + +pkg_postinst () { + ewarn "You may need to run: " + ewarn "env-update && source /etc/profile " + ewarn "to be able to use the compiler immediately. " + einfo " " + einfo "The bundled samples and sources may be found in " + einfo "/opt/dmd/samples and /opt/dmd/src respectively. " + einfo " " +} diff --git a/dev-lang/dmd-bin/files/25dmd b/dev-lang/dmd-bin/files/25dmd new file mode 100644 index 000000000000..ab7699d90d75 --- /dev/null +++ b/dev-lang/dmd-bin/files/25dmd @@ -0,0 +1,2 @@ +PATH=/opt/dmd/bin +ROOTPATH=/opt/dmd/bin diff --git a/dev-lang/dmd-bin/metadata.xml b/dev-lang/dmd-bin/metadata.xml new file mode 100644 index 000000000000..8160b30f53e5 --- /dev/null +++ b/dev-lang/dmd-bin/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<herd>lang-misc</herd> +<longdescription> + This package provides a binary version of + the D language compiler from Digital Mars +</longdescription> +</pkgmetadata> diff --git a/dev-lang/ekopath/Manifest b/dev-lang/ekopath/Manifest new file mode 100644 index 000000000000..6fb3ce597919 --- /dev/null +++ b/dev-lang/ekopath/Manifest @@ -0,0 +1,3 @@ +DIST ekopath-2015-06-29-installer.run 61567050 SHA256 b98b2b686a7a9624b81838a37b64d8bbfc450b40c7fdfd9957c8a1690a68d4a8 SHA512 e56a9436f837df8d7acd3b9789d50316002ff42b0139b9aa7025f63ad27d98c586715277f3818a10a443d28653a1afd52f69b7101b36afd40beb4594ecbd8f91 WHIRLPOOL 42fe5fc00e83990bcf7c05a76e861d86626d54249da58608d6925323a522f7f2dc5806807aa56deceacce701386163eb34d96344fda4c49bd9b71bedc029ae3b +DIST ekopath-2015-07-07-installer.run 59012713 SHA256 7e0026405b38f46932fc5b11ebef4c828bc9c0cf05e85f365d314949a091bdd0 SHA512 c68a4b986e9f48ae70c891535a71238a43ba5afa5dcf36c900798292096abf245cc434b03dee8c9ad87e35d7ac1f27c361edcec41dae9989fee6092dd98f5fd3 WHIRLPOOL d32c2564d0c5240fa9c112224c52b38ec2a96062c69d6e4264e610e531258fc3bf8205c4c338890ece3cecf857ffa32cced2d20339f69f098e064bf96306c51e +DIST ekopath-2015-08-03-installer.run 59079587 SHA256 21e2f3339321e0de09a3e5df250c2dc52aa2ad9c95534a19539c342817f14c2b SHA512 1628f9bfbbce19d666a7ea6158c0abf6a159ef7680854456cfa811fe2a55b9228b34105ce97894af6d714fe23d2d3f0b3f0829c6dec67dd1318b52b3bc541b09 WHIRLPOOL 0978ecb39a8ef3291f05730b17c4df86538a540d5b8f01da699ed821f2aab8da8578a7a0b19a5af74fa560b1ae7c4d6ac06d178aff49aa1fd4b3440b8aa5d0e5 diff --git a/dev-lang/ekopath/ekopath-6.0.430_p20150629.ebuild b/dev-lang/ekopath/ekopath-6.0.430_p20150629.ebuild new file mode 100644 index 000000000000..ab16a2fc6227 --- /dev/null +++ b/dev-lang/ekopath/ekopath-6.0.430_p20150629.ebuild @@ -0,0 +1,74 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit versionator multilib pax-utils + +MY_PV=$(get_version_component_range 1-3) +DATE=$(get_version_component_range 4) +DATE=${DATE#p} +DATE=${DATE:0:4}-${DATE:4:2}-${DATE:6} +INSTALLER=${PN}-${DATE}-installer.run + +DESCRIPTION="PathScale EKOPath Compiler Suite" +HOMEPAGE="http://www.pathscale.com/ekopath-compiler-suite" +SRC_URI="http://c591116.r16.cf2.rackcdn.com/${PN}/nightly/Linux/${INSTALLER}" + +LICENSE="all-rights-reserved" +SLOT="0" +KEYWORDS="~amd64" +IUSE="" + +DEPEND="!!app-arch/rpm" +RDEPEND="" + +RESTRICT="bindist mirror" + +QA_PREBUILT=" + opt/${PN}/lib/${MY_PV}/x8664/* + opt/${PN}/bin/*" + +S="${WORKDIR}" + +src_unpack() { + cp "${DISTDIR}/${INSTALLER}" "${S}/" || die + chmod +x "${S}/${INSTALLER}" || die +} + +src_prepare() { + cat > 99${PN} <<-EOF + PATH=${EROOT%/}/opt/${PN}/bin + ROOTPATH=${EROOT%/}/opt/${PN}/bin + LDPATH=${EROOT%/}/opt/${PN}/lib:${EROOT%/}/opt/${PN}/lib/${MY_PV}/x8664/64 + MANPATH=${EROOT%/}/opt/${PN}/docs/man + EOF +} + +src_install() { + # EI_PAX marking is obsolete and PT_PAX breaks the binary. + # We must use XT_PAX to run the installer. + if [[ ${PAX_MARKINGS} == "XT" ]]; then + pax-mark m "${INSTALLER}" + fi + + ./"${INSTALLER}" \ + --prefix "${ED%/}/opt/${PN}" \ + --mode unattended || die + + if [[ ! -d ${ED%/}/opt/${PN}/lib/${MY_PV} ]]; then + local guess + cd "${ED%/}/opt/${PN}/lib" && guess=( * ) + + if [[ ${guess[@]} ]]; then + die "Incorrect release version in PV, guessing it should be: ${guess[*]}" + else + die "No libdir installed" + fi + fi + [[ -x ${ED%}/opt/${PN}/bin/pathcc ]] || die "No pathcc executable was installed, your hardware is unsupported most likely" + + rm -r "${ED}/opt/${PN}"/uninstall* || die + doenvd 99${PN} +} diff --git a/dev-lang/ekopath/ekopath-6.0.439_p20150707.ebuild b/dev-lang/ekopath/ekopath-6.0.439_p20150707.ebuild new file mode 100644 index 000000000000..ab16a2fc6227 --- /dev/null +++ b/dev-lang/ekopath/ekopath-6.0.439_p20150707.ebuild @@ -0,0 +1,74 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit versionator multilib pax-utils + +MY_PV=$(get_version_component_range 1-3) +DATE=$(get_version_component_range 4) +DATE=${DATE#p} +DATE=${DATE:0:4}-${DATE:4:2}-${DATE:6} +INSTALLER=${PN}-${DATE}-installer.run + +DESCRIPTION="PathScale EKOPath Compiler Suite" +HOMEPAGE="http://www.pathscale.com/ekopath-compiler-suite" +SRC_URI="http://c591116.r16.cf2.rackcdn.com/${PN}/nightly/Linux/${INSTALLER}" + +LICENSE="all-rights-reserved" +SLOT="0" +KEYWORDS="~amd64" +IUSE="" + +DEPEND="!!app-arch/rpm" +RDEPEND="" + +RESTRICT="bindist mirror" + +QA_PREBUILT=" + opt/${PN}/lib/${MY_PV}/x8664/* + opt/${PN}/bin/*" + +S="${WORKDIR}" + +src_unpack() { + cp "${DISTDIR}/${INSTALLER}" "${S}/" || die + chmod +x "${S}/${INSTALLER}" || die +} + +src_prepare() { + cat > 99${PN} <<-EOF + PATH=${EROOT%/}/opt/${PN}/bin + ROOTPATH=${EROOT%/}/opt/${PN}/bin + LDPATH=${EROOT%/}/opt/${PN}/lib:${EROOT%/}/opt/${PN}/lib/${MY_PV}/x8664/64 + MANPATH=${EROOT%/}/opt/${PN}/docs/man + EOF +} + +src_install() { + # EI_PAX marking is obsolete and PT_PAX breaks the binary. + # We must use XT_PAX to run the installer. + if [[ ${PAX_MARKINGS} == "XT" ]]; then + pax-mark m "${INSTALLER}" + fi + + ./"${INSTALLER}" \ + --prefix "${ED%/}/opt/${PN}" \ + --mode unattended || die + + if [[ ! -d ${ED%/}/opt/${PN}/lib/${MY_PV} ]]; then + local guess + cd "${ED%/}/opt/${PN}/lib" && guess=( * ) + + if [[ ${guess[@]} ]]; then + die "Incorrect release version in PV, guessing it should be: ${guess[*]}" + else + die "No libdir installed" + fi + fi + [[ -x ${ED%}/opt/${PN}/bin/pathcc ]] || die "No pathcc executable was installed, your hardware is unsupported most likely" + + rm -r "${ED}/opt/${PN}"/uninstall* || die + doenvd 99${PN} +} diff --git a/dev-lang/ekopath/ekopath-6.0.468_p20150803.ebuild b/dev-lang/ekopath/ekopath-6.0.468_p20150803.ebuild new file mode 100644 index 000000000000..ab16a2fc6227 --- /dev/null +++ b/dev-lang/ekopath/ekopath-6.0.468_p20150803.ebuild @@ -0,0 +1,74 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit versionator multilib pax-utils + +MY_PV=$(get_version_component_range 1-3) +DATE=$(get_version_component_range 4) +DATE=${DATE#p} +DATE=${DATE:0:4}-${DATE:4:2}-${DATE:6} +INSTALLER=${PN}-${DATE}-installer.run + +DESCRIPTION="PathScale EKOPath Compiler Suite" +HOMEPAGE="http://www.pathscale.com/ekopath-compiler-suite" +SRC_URI="http://c591116.r16.cf2.rackcdn.com/${PN}/nightly/Linux/${INSTALLER}" + +LICENSE="all-rights-reserved" +SLOT="0" +KEYWORDS="~amd64" +IUSE="" + +DEPEND="!!app-arch/rpm" +RDEPEND="" + +RESTRICT="bindist mirror" + +QA_PREBUILT=" + opt/${PN}/lib/${MY_PV}/x8664/* + opt/${PN}/bin/*" + +S="${WORKDIR}" + +src_unpack() { + cp "${DISTDIR}/${INSTALLER}" "${S}/" || die + chmod +x "${S}/${INSTALLER}" || die +} + +src_prepare() { + cat > 99${PN} <<-EOF + PATH=${EROOT%/}/opt/${PN}/bin + ROOTPATH=${EROOT%/}/opt/${PN}/bin + LDPATH=${EROOT%/}/opt/${PN}/lib:${EROOT%/}/opt/${PN}/lib/${MY_PV}/x8664/64 + MANPATH=${EROOT%/}/opt/${PN}/docs/man + EOF +} + +src_install() { + # EI_PAX marking is obsolete and PT_PAX breaks the binary. + # We must use XT_PAX to run the installer. + if [[ ${PAX_MARKINGS} == "XT" ]]; then + pax-mark m "${INSTALLER}" + fi + + ./"${INSTALLER}" \ + --prefix "${ED%/}/opt/${PN}" \ + --mode unattended || die + + if [[ ! -d ${ED%/}/opt/${PN}/lib/${MY_PV} ]]; then + local guess + cd "${ED%/}/opt/${PN}/lib" && guess=( * ) + + if [[ ${guess[@]} ]]; then + die "Incorrect release version in PV, guessing it should be: ${guess[*]}" + else + die "No libdir installed" + fi + fi + [[ -x ${ED%}/opt/${PN}/bin/pathcc ]] || die "No pathcc executable was installed, your hardware is unsupported most likely" + + rm -r "${ED}/opt/${PN}"/uninstall* || die + doenvd 99${PN} +} diff --git a/dev-lang/ekopath/metadata.xml b/dev-lang/ekopath/metadata.xml new file mode 100644 index 000000000000..b78884b8579c --- /dev/null +++ b/dev-lang/ekopath/metadata.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<herd>sci</herd> +<maintainer> + <email>mgorny@gentoo.org</email> + <name>Michał Górny</name> + <description>Co-maintainer</description> +</maintainer> +<longdescription> + The PathScale EKOPath Compiler Suite offers programmers a rich set of tools and + one of the world's most sophisticated optimization infrastructures to maximize + program performance on any Intel 64 or AMD64 platform supporting Intel MMX, + SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AMD SSE4A and AVX. +</longdescription> +</pkgmetadata> diff --git a/dev-lang/elixir/Manifest b/dev-lang/elixir/Manifest new file mode 100644 index 000000000000..190d49144f73 --- /dev/null +++ b/dev-lang/elixir/Manifest @@ -0,0 +1,11 @@ +DIST elixir-0.11.2.tar.gz 848108 SHA256 bd3099af3f8b2796e88559b78e1474638ff6ef4894342ea5f0858d00f018fd65 SHA512 2800dfa3d152dd67634c35f31fe1f0a2c59d2db128b80ae6ad07253b1215e181a25c215c5865089adbc122026458ed2d7db4b031823326ee206bd5bcb8f77477 WHIRLPOOL 3fe2cde17708ffe9ece58be18a24d26985c33db54a8b85a55da5809628d499f0a13849cf0b0acd50adb8d4bce9b2492b96a5b609802a4d19fbaa780c98f3e8f2 +DIST elixir-0.12.5.tar.gz 876886 SHA256 8b6ad20decb0a71240d00005daca2e2145a721552455896e091477f53d26a47c SHA512 63e436938deec9916c11598af24897d80a3c3dcda983e5ff281a595b2ef02d4605fb13f9cbef442653fd4e461db77e6588589c280f9425ee9163970ca8752532 WHIRLPOOL 9e59cc1a4e683882d78e16cf266422b193e95f58cf3cc705ba41af20b9cc376e432bfc45b69a98a15cd0494dee72ea1eba443e69d4ca2bf5a250bb42cdf786fb +DIST elixir-0.13.3.tar.gz 936934 SHA256 2e2349dc42350b0ef23220f9cc89ea0194f0017e8282d08579c730e91d46cb9e SHA512 cca45b6c9165ef428d22474d803ddd769e3eb1fd80b56dce874fb0ae1ab35f75210742b7dd543316cf8b6379ebd4b4f2265ad04780f6abe6db6cf708ec2d4203 WHIRLPOOL 998e32e45be96126500318224adfc99ea443e91b34362907962c648e62a5a9b708c0a6efa9da69fb0ede5248c6a10634f119b5446ec12f6d460b950de1f72929 +DIST elixir-0.14.3.tar.gz 989493 SHA256 7fb49733c1fad8129183d1dd00f7433d56fbc7d9980cc9fdd54f0e472f7d89ee SHA512 4e099beb3877802e47a79e59eddd7a19c00ffb80c6242e24cf0f989688d6d0b3ec8db5a889914b0c2e9ba861ccc2ceda3c913d099aefe24a16fa0aa6ec0fef1b WHIRLPOOL a85d649c14bee7313e71f1b660f36d9828ac947baf600ea85f5fff348a1f4d6357b37b7c7a4e20f2c9800ed54da92d1224d88b5686744e9bf9fc1c9af318f16c +DIST elixir-0.15.1.tar.gz 1017067 SHA256 8e608abf90a6e9a25ef5fb7e45dfd04e2cb7e1fecb4ac260bf6652885a7f0c50 SHA512 6e10400e15f34e962485ffeefe7a728a688c3b6b31d32ae0d1f990a369810e73cb85bcb3645054b3fb6b3bfaf50249fb074d2894cb58581d71c4d2155225588a WHIRLPOOL 15e8303cc5c1dc3f426331bd1d524505691ee6f072f7eae90d3d25bdd3ec15bee36e42b2f3527457fba3e86828e89380228a02bb7b4ebdb28626d570e6264599 +DIST elixir-1.0.0.tar.gz 1032066 SHA256 527774b05bcaacb0347299b42035b606107e88665fcdd415b0b62704ad7928b2 SHA512 96978fc0df8bd59d22801f376a31d3d5802f5c16e76299a5c7fcfe50c733596b02b9092a92a16edb571fac1bda63a1dbaf38daf586675079d2d21e0f595a5d5d WHIRLPOOL 80ce9826b4288d050e3539643bfe54965ca3162123fa1d1326bf98de72baf3eb87ecfd81ee6b9937845af50d52029a35514bcb48c4700494ac0392f6427f354e +DIST elixir-1.0.1.tar.gz 1033936 SHA256 87ecbe8aa8eecfed5033a80b0f1ad2fe95ef835fa909fde65fbc622a5aa3431b SHA512 88743b578bdd0f70356d6adfa0793ebe13a77b0022692b7329be9f192dd61ebf14e802b331e79e40460dd7b6937bf5fe12cb82bb5672db14f320385cadf5ba72 WHIRLPOOL a80ff718431163714a68ccf807c2b5db3f40bbd1307d28d03d7c661e72204a697e89b76491c0b288edcba1a598fcbf5442f14dee432e4aa1d88f6f43268511c7 +DIST elixir-1.0.2.tar.gz 1033260 SHA256 6156ee396e85045358d11a6839e157e8fa9573b7414bddbd2c91843ed2b4b962 SHA512 3768bdfeab7478df5e8e7208f5f6e5fad584d3beef78784a322e346851a39c0da5657cb0f88632246377d0795ac735bd80e7a68ca879c08b9e21283a807b4511 WHIRLPOOL 6b766c6cff9f95e95b218ff830ae1d0655e52197c817f9f0b484e7a4f94c37da931ffe48e6caa5430a00fc4807ac0a870bf175b2e20a0c016748de606d106369 +DIST elixir-1.0.3.tar.gz 1039041 SHA256 ec6c4eaffcb771d91bdea9fb274600c624fd16b1891d194b3fcb2b521f52cc75 SHA512 d48636c355181a633dfc5d256f9a1718d74137686080c965d2d568e3d9b0f5cc1352f2ed4d12e50bd89c4cfc9cd59e7a1112ae22979012845df0556124151d1e WHIRLPOOL e76b92272598aba72e9b067eef20492b692f9d4aeeff796a35dc9ea2ee27eed40a5eea369bb92c3a58e23001cf5ea627eb72bf7b7b8b13827f8601479f104135 +DIST elixir-1.0.4.tar.gz 1040843 SHA256 79341fde3b01217aa252b8996d1b1b27cd1006cb89fe43446d5241e3dcb84bad SHA512 c25bc101fd3d1bc8bfb8c793b5da95ac544d0b921538dc24fcd92ff87d1f6248f3c760f714dd7fe061827c5495004d4f7d6d4788c28daf9d519694e49afd5e0f WHIRLPOOL 3ede94b8151319198be053c8e432d801cbbd3386c8c931d5f075696e21668272d3fc058a6f7f9726fd4f6989a70e16d99850d8852703bf23c115ce2cd44a539b +DIST elixir-1.0.5.tar.gz 1043275 SHA256 5ce5c226b3d11d751b41ad79b915b86f13f8a1b89ef3e733321d3f46ff4d81b8 SHA512 1f621e1a3939433dc91a0e2f7e62512b074ce2e8dc7190535570056875f82eda2001a333a51627e39b0f710e104409c8d17aea9635235b0963265d39b32c9f6c WHIRLPOOL eea70416f08132654e9cc4b65342971cdd7793b45d97fbe5cb1b8e6739a3befb16d72ce15b485a8c2a3204462c8b54afc9c2d934c924863e3a6342e8067644fe diff --git a/dev-lang/elixir/elixir-0.11.2.ebuild b/dev-lang/elixir/elixir-0.11.2.ebuild new file mode 100644 index 000000000000..00d92e3def29 --- /dev/null +++ b/dev-lang/elixir/elixir-0.11.2.ebuild @@ -0,0 +1,28 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit multilib + +DESCRIPTION="Elixir programming language" +HOMEPAGE="http://elixir-lang.org" +SRC_URI="https://github.com/elixir-lang/elixir/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="Apache-2.0 ErlPL-1.1" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="" + +DEPEND=">=dev-lang/erlang-16" +RDEPEND="${DEPEND}" + +src_compile() { + emake Q="" +} + +src_install() { + emake DESTDIR="${D}" LIBDIR="$(get_libdir)" PREFIX="/usr" install + dodoc README.md CHANGELOG.md CONTRIBUTING.md +} diff --git a/dev-lang/elixir/elixir-0.12.5.ebuild b/dev-lang/elixir/elixir-0.12.5.ebuild new file mode 100644 index 000000000000..fb0c4b1ffc9f --- /dev/null +++ b/dev-lang/elixir/elixir-0.12.5.ebuild @@ -0,0 +1,28 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit multilib + +DESCRIPTION="Elixir programming language" +HOMEPAGE="http://elixir-lang.org" +SRC_URI="https://github.com/elixir-lang/elixir/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="Apache-2.0 ErlPL-1.1" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="" + +DEPEND=">=dev-lang/erlang-16" +RDEPEND="${DEPEND}" + +src_compile() { + emake Q="" +} + +src_install() { + emake DESTDIR="${D}" LIBDIR="$(get_libdir)" PREFIX="/usr" install + dodoc README.md CHANGELOG.md CONTRIBUTING.md +} diff --git a/dev-lang/elixir/elixir-0.13.3.ebuild b/dev-lang/elixir/elixir-0.13.3.ebuild new file mode 100644 index 000000000000..0a9e1387f09b --- /dev/null +++ b/dev-lang/elixir/elixir-0.13.3.ebuild @@ -0,0 +1,28 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit multilib + +DESCRIPTION="Elixir programming language" +HOMEPAGE="http://elixir-lang.org" +SRC_URI="https://github.com/elixir-lang/elixir/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="Apache-2.0 ErlPL-1.1" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="" + +DEPEND=">=dev-lang/erlang-17" +RDEPEND="${DEPEND}" + +src_compile() { + emake Q="" +} + +src_install() { + emake DESTDIR="${D}" LIBDIR="$(get_libdir)" PREFIX="/usr" install + dodoc README.md CHANGELOG.md CONTRIBUTING.md +} diff --git a/dev-lang/elixir/elixir-0.14.3.ebuild b/dev-lang/elixir/elixir-0.14.3.ebuild new file mode 100644 index 000000000000..0a9e1387f09b --- /dev/null +++ b/dev-lang/elixir/elixir-0.14.3.ebuild @@ -0,0 +1,28 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit multilib + +DESCRIPTION="Elixir programming language" +HOMEPAGE="http://elixir-lang.org" +SRC_URI="https://github.com/elixir-lang/elixir/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="Apache-2.0 ErlPL-1.1" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="" + +DEPEND=">=dev-lang/erlang-17" +RDEPEND="${DEPEND}" + +src_compile() { + emake Q="" +} + +src_install() { + emake DESTDIR="${D}" LIBDIR="$(get_libdir)" PREFIX="/usr" install + dodoc README.md CHANGELOG.md CONTRIBUTING.md +} diff --git a/dev-lang/elixir/elixir-0.15.1.ebuild b/dev-lang/elixir/elixir-0.15.1.ebuild new file mode 100644 index 000000000000..0a9e1387f09b --- /dev/null +++ b/dev-lang/elixir/elixir-0.15.1.ebuild @@ -0,0 +1,28 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit multilib + +DESCRIPTION="Elixir programming language" +HOMEPAGE="http://elixir-lang.org" +SRC_URI="https://github.com/elixir-lang/elixir/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="Apache-2.0 ErlPL-1.1" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="" + +DEPEND=">=dev-lang/erlang-17" +RDEPEND="${DEPEND}" + +src_compile() { + emake Q="" +} + +src_install() { + emake DESTDIR="${D}" LIBDIR="$(get_libdir)" PREFIX="/usr" install + dodoc README.md CHANGELOG.md CONTRIBUTING.md +} diff --git a/dev-lang/elixir/elixir-1.0.0.ebuild b/dev-lang/elixir/elixir-1.0.0.ebuild new file mode 100644 index 000000000000..0a9e1387f09b --- /dev/null +++ b/dev-lang/elixir/elixir-1.0.0.ebuild @@ -0,0 +1,28 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit multilib + +DESCRIPTION="Elixir programming language" +HOMEPAGE="http://elixir-lang.org" +SRC_URI="https://github.com/elixir-lang/elixir/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="Apache-2.0 ErlPL-1.1" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="" + +DEPEND=">=dev-lang/erlang-17" +RDEPEND="${DEPEND}" + +src_compile() { + emake Q="" +} + +src_install() { + emake DESTDIR="${D}" LIBDIR="$(get_libdir)" PREFIX="/usr" install + dodoc README.md CHANGELOG.md CONTRIBUTING.md +} diff --git a/dev-lang/elixir/elixir-1.0.1.ebuild b/dev-lang/elixir/elixir-1.0.1.ebuild new file mode 100644 index 000000000000..0a9e1387f09b --- /dev/null +++ b/dev-lang/elixir/elixir-1.0.1.ebuild @@ -0,0 +1,28 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit multilib + +DESCRIPTION="Elixir programming language" +HOMEPAGE="http://elixir-lang.org" +SRC_URI="https://github.com/elixir-lang/elixir/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="Apache-2.0 ErlPL-1.1" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="" + +DEPEND=">=dev-lang/erlang-17" +RDEPEND="${DEPEND}" + +src_compile() { + emake Q="" +} + +src_install() { + emake DESTDIR="${D}" LIBDIR="$(get_libdir)" PREFIX="/usr" install + dodoc README.md CHANGELOG.md CONTRIBUTING.md +} diff --git a/dev-lang/elixir/elixir-1.0.2.ebuild b/dev-lang/elixir/elixir-1.0.2.ebuild new file mode 100644 index 000000000000..0a9e1387f09b --- /dev/null +++ b/dev-lang/elixir/elixir-1.0.2.ebuild @@ -0,0 +1,28 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit multilib + +DESCRIPTION="Elixir programming language" +HOMEPAGE="http://elixir-lang.org" +SRC_URI="https://github.com/elixir-lang/elixir/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="Apache-2.0 ErlPL-1.1" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="" + +DEPEND=">=dev-lang/erlang-17" +RDEPEND="${DEPEND}" + +src_compile() { + emake Q="" +} + +src_install() { + emake DESTDIR="${D}" LIBDIR="$(get_libdir)" PREFIX="/usr" install + dodoc README.md CHANGELOG.md CONTRIBUTING.md +} diff --git a/dev-lang/elixir/elixir-1.0.3.ebuild b/dev-lang/elixir/elixir-1.0.3.ebuild new file mode 100644 index 000000000000..77a909a3db85 --- /dev/null +++ b/dev-lang/elixir/elixir-1.0.3.ebuild @@ -0,0 +1,28 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit multilib + +DESCRIPTION="Elixir programming language" +HOMEPAGE="http://elixir-lang.org" +SRC_URI="https://github.com/elixir-lang/elixir/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="Apache-2.0 ErlPL-1.1" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="" + +DEPEND=">=dev-lang/erlang-17" +RDEPEND="${DEPEND}" + +src_compile() { + emake Q="" +} + +src_install() { + emake DESTDIR="${D}" LIBDIR="$(get_libdir)" PREFIX="/usr" install + dodoc README.md CHANGELOG.md CONTRIBUTING.md +} diff --git a/dev-lang/elixir/elixir-1.0.4.ebuild b/dev-lang/elixir/elixir-1.0.4.ebuild new file mode 100644 index 000000000000..77a909a3db85 --- /dev/null +++ b/dev-lang/elixir/elixir-1.0.4.ebuild @@ -0,0 +1,28 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit multilib + +DESCRIPTION="Elixir programming language" +HOMEPAGE="http://elixir-lang.org" +SRC_URI="https://github.com/elixir-lang/elixir/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="Apache-2.0 ErlPL-1.1" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="" + +DEPEND=">=dev-lang/erlang-17" +RDEPEND="${DEPEND}" + +src_compile() { + emake Q="" +} + +src_install() { + emake DESTDIR="${D}" LIBDIR="$(get_libdir)" PREFIX="/usr" install + dodoc README.md CHANGELOG.md CONTRIBUTING.md +} diff --git a/dev-lang/elixir/elixir-1.0.5.ebuild b/dev-lang/elixir/elixir-1.0.5.ebuild new file mode 100644 index 000000000000..77a909a3db85 --- /dev/null +++ b/dev-lang/elixir/elixir-1.0.5.ebuild @@ -0,0 +1,28 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit multilib + +DESCRIPTION="Elixir programming language" +HOMEPAGE="http://elixir-lang.org" +SRC_URI="https://github.com/elixir-lang/elixir/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="Apache-2.0 ErlPL-1.1" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="" + +DEPEND=">=dev-lang/erlang-17" +RDEPEND="${DEPEND}" + +src_compile() { + emake Q="" +} + +src_install() { + emake DESTDIR="${D}" LIBDIR="$(get_libdir)" PREFIX="/usr" install + dodoc README.md CHANGELOG.md CONTRIBUTING.md +} diff --git a/dev-lang/elixir/metadata.xml b/dev-lang/elixir/metadata.xml new file mode 100644 index 000000000000..d553c3568b72 --- /dev/null +++ b/dev-lang/elixir/metadata.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer> + <email>hasufell@gentoo.org</email> + <name>Julian Ospald</name> + </maintainer> + <maintainer> + <email>styx.mp@gmail.com</email> + <name>Mikhail</name> + </maintainer> + <upstream> + <bugs-to> + https://github.com/elixir-lang/elixir/issues + </bugs-to> + <changelog> + https://github.com/elixir-lang/elixir/blob/master/CHANGELOG.md + </changelog> + <doc lang='en'> + http://elixir-lang.org/docs.html + </doc> + <remote-id type='github'> + elixir-lang/elixir + </remote-id> + </upstream> +</pkgmetadata> diff --git a/dev-lang/epic/Manifest b/dev-lang/epic/Manifest new file mode 100644 index 000000000000..5b4e80be0bf1 --- /dev/null +++ b/dev-lang/epic/Manifest @@ -0,0 +1,4 @@ +DIST epic-0.9.2.tar.gz 65607 SHA256 dca5fb553e383ff1984fb4de9e734a6c4a1390290aafa7bf5b4718d7d1743bc7 SHA512 f9ec3011e8e54d061180a1b3f945158741b35f91ee75ea065df2871d2a872ab8117bb5d34912e4ef84fd39c681eff10fb070a2fdfb23342bfc23aed5bd61534e WHIRLPOOL 85e9982abffd84eea89436912fbccf8e1aa131c9eebcf0354fdea20d321f6f9b3c40eccd6e9044c6c9fa76967180f761fc10928eda501ee17c1c2164e08fa3b5 +DIST epic-0.9.3.2.tar.gz 87050 SHA256 30f5fc0fcd67461c9b19a7ab8d50ef9ddc44430e4fb699171091116df552e3d0 SHA512 de265363ef57500ff544d8fcba5cae95bdd8f5562dff3191595f75a1e37658c1906ffa36b1252e21be06143e0f9096e606f1c59bcaff1026972d70595c76c342 WHIRLPOOL 859308b1ed4b3868cf03b9b68c9de67267f4de5971a81a61e19f65b79e27ca587d40a771285007fb9f730803756b8c5cf521b1c38a71472113524dd8cfa6a3b1 +DIST epic-0.9.3.3.tar.gz 87163 SHA256 559844322f0f3c6d511d70e1a3166175f4aea084ea0e109b161b4d1d4296e82a SHA512 f957eb5402eebad9d52f0d38cf552c00ff5df9caffce97961e761e7c91ed33dee520cb0255f6547db1c05ed6dda7a3e4833d375a5fc0ebe7e94502736a49c566 WHIRLPOOL be19a826d292f490c618659ba8c482cc74cf2239c1585a1d26b62265623858daeb79bdb65b14ede58d0d695a9a0c7f5397d6c3b94c0e5c9326e3b9cc0533096d +DIST epic-0.9.3.tar.gz 86632 SHA256 6708a21cdf226f0a9344afaf1ee25900b74462d94ed681f815252305251d1ef5 SHA512 2db308f62561f6b4dbada2064754e9e9cbac21ebc3148e04dd102c8eeb6e122f1361374a8900a5daadcb1dac823c21cc5f7164b2ca902183e8647e936991ce08 WHIRLPOOL cbd4e03ff0d1db4551224c884517be1dc4f44521434ca32a52df1743eb691ccd9c4157ca01e64258668473984ec44fff215e43647c0eef9aea015f6fe601de37 diff --git a/dev-lang/epic/epic-0.9.2.ebuild b/dev-lang/epic/epic-0.9.2.ebuild new file mode 100644 index 000000000000..6d6ab69f0202 --- /dev/null +++ b/dev-lang/epic/epic-0.9.2.ebuild @@ -0,0 +1,27 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +# ebuild generated by hackport 0.2.14 + +EAPI="4" + +CABAL_FEATURES="bin lib profile haddock hoogle hscolour" +inherit haskell-cabal + +DESCRIPTION="Compiler for a simple functional language" +HOMEPAGE="http://www.dcs.st-and.ac.uk/~eb/epic.php" +SRC_URI="mirror://hackage/packages/archive/${PN}/${PV}/${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="" + +RDEPEND="dev-haskell/cabal + dev-haskell/mtl[profile?] + >=dev-libs/boehm-gc-7.0[threads] + >=dev-lang/ghc-6.10.1" +DEPEND="${RDEPEND} + >=dev-haskell/cabal-1.8.0.4 + dev-haskell/happy" diff --git a/dev-lang/epic/epic-0.9.3.2.ebuild b/dev-lang/epic/epic-0.9.3.2.ebuild new file mode 100644 index 000000000000..7dc8a8442ce7 --- /dev/null +++ b/dev-lang/epic/epic-0.9.3.2.ebuild @@ -0,0 +1,33 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +# ebuild generated by hackport 0.4.4.9999 + +CABAL_FEATURES="bin lib profile haddock hoogle hscolour" +inherit eutils haskell-cabal + +DESCRIPTION="Compiler for a simple functional language" +HOMEPAGE="http://www.dcs.st-and.ac.uk/~eb/epic.php" +SRC_URI="mirror://hackage/packages/archive/${PN}/${PV}/${P}.tar.gz" + +LICENSE="BSD" +SLOT="0/${PV}" +KEYWORDS="~amd64 ~x86" +IUSE="" + +RDEPEND="dev-haskell/cabal:=[profile?] + dev-haskell/mtl:=[profile?] + >=dev-libs/boehm-gc-7.0[threads] + >=dev-lang/ghc-7.4.1:= +" +DEPEND="${RDEPEND} + >=dev-haskell/cabal-1.8.0.4 +" + +src_prepare() { + # Bug #438422, upstream at https://github.com/edwinb/EpiVM/issues/5. + epatch "${FILESDIR}"/respect-user-cflags.patch +} diff --git a/dev-lang/epic/epic-0.9.3.3.ebuild b/dev-lang/epic/epic-0.9.3.3.ebuild new file mode 100644 index 000000000000..b3201fc5325d --- /dev/null +++ b/dev-lang/epic/epic-0.9.3.3.ebuild @@ -0,0 +1,34 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +# ebuild generated by hackport 0.4.5.9999 + +CABAL_FEATURES="bin lib profile haddock hoogle hscolour" +inherit eutils haskell-cabal + +DESCRIPTION="Compiler for a simple functional language" +HOMEPAGE="http://www.dcs.st-and.ac.uk/~eb/epic.php" +SRC_URI="mirror://hackage/packages/archive/${PN}/${PV}/${P}.tar.gz" + +LICENSE="BSD" +SLOT="0/${PV}" +KEYWORDS="~amd64 ~x86" +IUSE="" + +RDEPEND="dev-haskell/cabal:=[profile?] + dev-haskell/mtl:=[profile?] + >=dev-libs/boehm-gc-7.0[threads] + dev-libs/gmp:0 + >=dev-lang/ghc-7.4.1:= +" +DEPEND="${RDEPEND} + >=dev-haskell/cabal-1.8.0.4 +" + +src_prepare() { + # Bug #438422, upstream at https://github.com/edwinb/EpiVM/issues/5. + epatch "${FILESDIR}"/respect-user-cflags.patch +} diff --git a/dev-lang/epic/epic-0.9.3.ebuild b/dev-lang/epic/epic-0.9.3.ebuild new file mode 100644 index 000000000000..6bb5318741ad --- /dev/null +++ b/dev-lang/epic/epic-0.9.3.ebuild @@ -0,0 +1,29 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +# ebuild generated by hackport 0.3.9999 + +CABAL_FEATURES="bin lib profile haddock hoogle hscolour" +inherit base haskell-cabal + +DESCRIPTION="Compiler for a simple functional language" +HOMEPAGE="http://www.dcs.st-and.ac.uk/~eb/epic.php" +SRC_URI="mirror://hackage/packages/archive/${PN}/${PV}/${P}.tar.gz" + +LICENSE="BSD" +SLOT="0/${PV}" +KEYWORDS="~amd64 ~x86" +IUSE="" + +RDEPEND="dev-haskell/cabal:=[profile?] + dev-haskell/mtl:=[profile?] + >=dev-libs/boehm-gc-7.0[threads] + >=dev-lang/ghc-6.10.4:=" +DEPEND="${RDEPEND} + >=dev-haskell/cabal-1.8.0.4 + dev-haskell/happy" + +PATCHES=("${FILESDIR}/${PN}-0.9.3-ghc-7.6.patch") diff --git a/dev-lang/epic/files/epic-0.9.3-ghc-7.6.patch b/dev-lang/epic/files/epic-0.9.3-ghc-7.6.patch new file mode 100644 index 000000000000..d168f032b92f --- /dev/null +++ b/dev-lang/epic/files/epic-0.9.3-ghc-7.6.patch @@ -0,0 +1,53 @@ +--- epic-0.9.3-orig/Epic/Language.lhs 2012-02-28 10:44:29.000000000 +1100 ++++ epic-0.9.3/Epic/Language.lhs 2012-09-14 16:20:29.841939337 +1000 +@@ -1,9 +1,14 @@ +-> {-# LANGUAGE FlexibleInstances, MultiParamTypeClasses, ++> {-# LANGUAGE FlexibleInstances, MultiParamTypeClasses, CPP, + > FunctionalDependencies #-} + + > module Epic.Language where + + > import Control.Monad ++#if MIN_VERSION_base(4,6,0) ++> import Control.Exception.Base ++#endif ++ ++ + > import System.IO + > import System.Directory + > import System.Environment +@@ -379,7 +384,13 @@ + > environment :: String -> IO (Maybe String) + > environment x = catch (do e <- getEnv x + > return (Just e)) +-> (\_ -> return Nothing) ++#if MIN_VERSION_base(4,6,0) ++> (\y-> do return (y::SomeException); return Nothing) ++#endif ++> ++#if !MIN_VERSION_base(4,6,0) ++> (\_-> return Nothing) ++#endif + + Some tests + +--- epic-0.9.3-orig/Epic/CodegenC.lhs 2012-02-28 10:44:29.000000000 +1100 ++++ epic-0.9.3/Epic/CodegenC.lhs 2012-09-14 16:13:48.061329048 +1000 +@@ -1,3 +1,4 @@ ++> {-#LANGUAGE FlexibleContexts#-} + > module Epic.CodegenC where + + > import Control.Monad.State +@@ -98,10 +99,11 @@ + > if (x>max) then put x else return () + + > cgs [] = return "" ++ + > cgs (x:xs) = do xc <- cg x + > xsc <- cgs xs + > return $ xc ++ "\n" ++ xsc +- ++> cg:: (MonadState Int m) => ByteOp -> m [Char] + > cg (CALL t fn args) = return $ tmp t ++ " = " ++ quickcall fn ++ + > targs "(" args ++ ");" + > cg (TAILCALL t fn args) diff --git a/dev-lang/epic/files/respect-user-cflags.patch b/dev-lang/epic/files/respect-user-cflags.patch new file mode 100644 index 000000000000..eedfd253afec --- /dev/null +++ b/dev-lang/epic/files/respect-user-cflags.patch @@ -0,0 +1,13 @@ +diff --git a/evm/Makefile b/evm/Makefile +index 7e6c5ff..f40f1a4 100644 +--- a/evm/Makefile ++++ b/evm/Makefile +@@ -1,6 +1,7 @@ + CC = gcc + #CFLAGS = -Wall -g -DUSE_BOEHM +-CFLAGS = -Wall -O3 -DUSE_BOEHM ++CFLAGS ?= -Wall -O3 ++CFLAGS += -DUSE_BOEHM + OBJS = closure.o stdfuns.o emalloc.o sparks.o + INSTALLDIR = ${PREFIX}/lib/evm + diff --git a/dev-lang/epic/metadata.xml b/dev-lang/epic/metadata.xml new file mode 100644 index 000000000000..b242285af822 --- /dev/null +++ b/dev-lang/epic/metadata.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <herd>haskell</herd> + <maintainer> + <email>haskell@gentoo.org</email> + </maintainer> + <longdescription> + Epic is a simple functional language which compiles to + reasonably efficient C code, using the Boehm-Demers-Weiser + garbage collector (<http://www.hpl.hp.com/personal/Hans_Boehm/gc/>). + It is intended as a compiler back end, and is currently used + as a back end for Epigram (<http://www.e-pig.org>) and Idris + (<http://idris-lang.org/>). + It can be invoked either as a library or an application. + </longdescription> +</pkgmetadata> diff --git a/dev-lang/erlang/Manifest b/dev-lang/erlang/Manifest new file mode 100644 index 000000000000..80c9fdcf1694 --- /dev/null +++ b/dev-lang/erlang/Manifest @@ -0,0 +1,12 @@ +DIST otp_doc_html_17.3.tar.gz 33444170 SHA256 bd8278b34f610d6025549640d4e03d79d2a69d7129ea230c0d71d7e6b231f5b3 SHA512 4b1f46c4258b7189b3651af8763916d791888bbc2232c9db60cfda019f611d34d215225fadc88dcfc39539a2c00fbe13b0feba59dea334b77522d7777dc55497 WHIRLPOOL 97930374b82609e27e7ea997050efaf7e92817ec5503fa895a9db30faf1a1c293a6582c769a12ab407eb6981d53aeb58d6a1d558a3b97aa8d2b533cab5aa4c3b +DIST otp_doc_html_17.5.tar.gz 33510258 SHA256 baba1d373c1faacf4a1a6ec1220d57d0cb2b977edb74f32cd58dc786361c6cf5 SHA512 d3e455452e6d6e241c40de6e41a7b1069f8daa45c8d2340adb62f8867948261692c8465db7e288378942ebe86fd938847756992600da93aa99cb294fadcb5211 WHIRLPOOL 9657c1fd133fa713d0f30bae0394f47f43b090149ec3457a177bd9f129c052b73f1e757762ced02c1c8bcbaec294e845859b18b0e2004429e04df8e04e36cade +DIST otp_doc_html_18.0.tar.gz 33857396 SHA256 e5a766f68406f5025f921ec32e8959937189ed1245e24b03a74156a8898b03b2 SHA512 5fcbd1ac7fb5f646e181ede385a56adb8d754bc645fd9313c2e3a77a01cb686b1c5975695207f388a78c9599b0d4e6b52c7ea121e900c0a1e2ab20679c0bede1 WHIRLPOOL 5e9174059212b3f5023c04b19164184937b2eb4cbea29103a85813f630b733e60e600e31d3478b3ef759150421b6153a1a3e946e313706bc23e110e01dc1a945 +DIST otp_doc_html_R15B03-1.tar.gz 30436303 SHA256 d06f580f11d1303217a5c1cf8d68a98d7e01c535be934dcd430ecdc254f7572e SHA512 8a22ad702d50f40162f7d6051dbbc0226af449f7a1dcfb087e952dd7eb7213257940933441cfb68f055746450e3e5aa2c5ed8107ac67af7c3a940afb195af8c7 WHIRLPOOL ac10f9ce0ffd4cbd98617e4018e5a4729ce83f0ace6a4db219e7beef2f3a626a8c9a419c7f7772c934ca50310f55486df7eb24955ba845a9230c69c93e183d33 +DIST otp_doc_man_17.3.tar.gz 1357195 SHA256 3fabdac0b0594432fdd8186fa2c74ff49a629a9bcc4174e3bd605a3d4002dab7 SHA512 2e1c483dae85b84bb15950bb06e765ab47ec10785d1fe9b06dce0310dfd3d194b4690ed19e4b16c79a21c8fd1a701895a21af0ceb3422ceee84498d16d984715 WHIRLPOOL bd86e3ba1df1a73efdcd746e50f941620c0d16595901f8336f5180d1030cd8103c52d2f8c9f550984591ab9f439484ffa73b58fdd30de442ee08a0371119f458 +DIST otp_doc_man_17.5.tar.gz 1363320 SHA256 85b1b2a1011fc01af550f1fe9e5a599a4c5f2a35d264d2804af1d05590a857c3 SHA512 98d241aa127cfe377e5efc52284cd324713cacefc96db5992275c4f8712a9e35e43f0dbc0d2a8d58a1127fbfa3f762eb001aea1bb1c9fa82205a3d83659ad548 WHIRLPOOL b790046a449824aa02e11bef6b84a7027351edba0fffd241221e690739df30c9c692074b7354612970d8d02b3c1bccfdbd81bb988af9874d181f177ffed49e2c +DIST otp_doc_man_18.0.tar.gz 1389178 SHA256 e44f0ec36ee0683867bc2aa9cc7fbb020d9dfd57338f37b98dcd0771f5b95673 SHA512 d3e757b15ee03b4fd89b21a456b89c847a60f4715fb8257c4d3d4f431798cb8d1ae30978608bc85db7f0e25d51072a2d32927745ff410956dca11a01ae4fa034 WHIRLPOOL 83fc8d483a5385b053f5c24e51f35d448dd5ab8e4228500a858422192da17078dbd0f776cbea6d2f77a483c97397cb7e80b5bb5184157611c49743d05fd542bd +DIST otp_doc_man_R15B03-1.tar.gz 1305001 SHA256 07980d8014c7cf8194b7078c137353f5083992add4663ced3dcba2ff91f228d8 SHA512 eb07552c83a942c1e7f1960b45edfab97b0628a1e08c7c827a07d77797901b4b60a6719b35d0f92a49eb04ada924e9263df70968a5920efc6ccf8e4e966933c6 WHIRLPOOL 764495a8bb67e2c67493452c83ff890d959aa5cd3bd711fce75b3c756dbacb913e50f7d92aab14dc33d6839daaac5a37dc7bcc11fc6392af11dd506a8d99076c +DIST otp_src_17.3.tar.gz 67050599 SHA256 d4be03eb346016f4ca95d53eb9437ffaa6106762f153620dd98cd7f7733b76e4 SHA512 89d005fc3fdb4dc76c191b6e6a35e03f66ce01d765ba4f58cdd812d358025c62e032443d7ae73fea5b06bf6f27c9bf4e786f8090627ecb1e1309b88b82892910 WHIRLPOOL ef73ea10df2126c129ddb85c0a2bd72c6a7885b200b4d584577beab7c90b84f81647e017f2814dc4406427d4b22f48626db983636bcd5a8648f861484bfe6eff +DIST otp_src_17.5.tar.gz 67242289 SHA256 3c28820c981b30c50df8ac2a4a238e5813454fa3ed2ad530bc7948a282846474 SHA512 cfd082c8baee7ded370a34f15a1ba3b846b7d81e06edc36c62308c9220697925f1feda91eeecb70fc658f8987087256f51a2ebd0c526d16eeb09c72889d2390d WHIRLPOOL 3c3d987981383bf148b9788fae0574da398ff63d81eea13da0463bed303922d06fe54354de1cd3d37091eb23438939c645176ab565877f06cc1f11235c4d8d3d +DIST otp_src_18.0.tar.gz 68124710 SHA256 a0b69da34b4f218eb7d63d9e96fc120aa7257bb6c37a0f40fb388e188b4111aa SHA512 84ec2a3834270c1babe153572d6187faa36c12128e604037d55be01719788c0dd79d46769ea7090d530b746206a25fe02346b02849abee10ee41ed4ac7567c02 WHIRLPOOL 7edc237ef906da5e086bcb7b37fe23da3293b3635f612adc9239736e17731270bf64624444c5556d9fd7a03e4e64678a3bd294d04be2aada2a88d897dad9bee0 +DIST otp_src_R15B03-1.tar.gz 76123810 SHA256 4bccac86dd76aec050252e44276a0283a0df9218e6470cf042a9b9f9dfc9476c SHA512 baa8f388bd56bbdf1d3818802d011970fb51d38d14434532b1e4f04c1b8203e5a0cd9cc870f93a993cce750cd1af6e4b7df40dffc44e455353bce9d7c46c8e34 WHIRLPOOL ce76d01dfd17e0bc70e3daa7eab218000d1e802f55b0892e2e9654d2ea262f214f3bd006c0988885e787a1cfe782e8b61d5d1ee3a1d05cbced465b5a28e2de2e diff --git a/dev-lang/erlang/erlang-15.2.3.1.ebuild b/dev-lang/erlang/erlang-15.2.3.1.ebuild new file mode 100644 index 000000000000..b5476abf4a69 --- /dev/null +++ b/dev-lang/erlang/erlang-15.2.3.1.ebuild @@ -0,0 +1,175 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=3 +WX_GTK_VER="2.8" + +inherit elisp-common eutils java-pkg-opt-2 multilib versionator wxwidgets + +# NOTE: If you need symlinks for binaries please tell maintainers or +# open up a bug to let it be created. + +# erlang uses a really weird versioning scheme which caused quite a few problems +# already. Thus we do a slight modification converting all letters to digits to +# make it more sane (see e.g. #26420) + +# the next line selects the right source. +ERL_VER=($(get_version_components)) +MY_PV="R$(get_major_version)B0${ERL_VER[2]}" + +# ATTN!! Take care when processing the C, etc version! +MY_P=otp_src_${MY_PV} + +DESCRIPTION="Erlang programming language, runtime environment, and large collection of libraries" +HOMEPAGE="http://www.erlang.org/" +SRC_URI="http://www.erlang.org/download/${MY_P}-${ERL_VER[3]}.tar.gz + http://erlang.org/download/otp_doc_man_${MY_PV}-${ERL_VER[3]}.tar.gz + doc? ( http://erlang.org/download/otp_doc_html_${MY_PV}-${ERL_VER[3]}.tar.gz )" + +LICENSE="ErlPL-1.1" +SLOT="0" +KEYWORDS="alpha amd64 ~arm ~ia64 ppc ppc64 sparc x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris" +IUSE="compat-ethread doc emacs halfword hipe java kpoll odbc smp sctp ssl tk wxwidgets" + +RDEPEND=">=dev-lang/perl-5.6.1 + ssl? ( >=dev-libs/openssl-0.9.7d ) + emacs? ( virtual/emacs ) + java? ( >=virtual/jdk-1.2 ) + odbc? ( dev-db/unixODBC )" +DEPEND="${RDEPEND} + wxwidgets? ( x11-libs/wxGTK:2.8[X,opengl] virtual/glu ) + sctp? ( net-misc/lksctp-tools ) + tk? ( dev-lang/tk )" + +S="${WORKDIR}/${MY_P}" + +SITEFILE=50${PN}-gentoo.el + +pkg_setup() { + if use halfword ; then + use amd64 || die "halfword support is limited to amd64" + fi +} + +src_prepare() { + use odbc || sed -i 's: odbc : :' lib/Makefile + + # bug 263129, don't ignore LDFLAGS, reported upstream + sed -e 's:LDFLAGS = \$(DED_LDFLAGS):LDFLAGS += \$(DED_LDFLAGS):' -i "${S}"/lib/megaco/src/flex/Makefile.in || die + + # don't ignore LDFLAGS, reported upstream + sed -e 's:LDFLAGS = \$(ODBC_LIB) \$(EI_LDFLAGS):LDFLAGS += \$(ODBC_LIB) \$(EI_LDFLAGS):' -i "${S}"/lib/odbc/c_src/Makefile.in || die + + if ! use wxwidgets; then + sed -i 's: wx : :' lib/Makefile + rm -rf lib/wx + fi + + # Nasty workaround, reported upstream + cp "${S}"/lib/configure.in.src "${S}"/lib/configure.in || die + + # bug 383697 + sed -i '1i#define OF(x) x' erts/emulator/drivers/common/gzio.c || die +} + +src_configure() { + use java || export JAVAC=false + + econf \ + --enable-threads \ + --enable-shared-zlib \ \ + $(use_enable sctp) \ + $(use_enable halfword halfword-emulator) \ + $(use_enable hipe) \ + $(use_with ssl ssl "${EPREFIX}"/usr) \ + $(use_enable ssl dynamic-ssl-lib) \ + $(use_enable kpoll kernel-poll) \ + $(use_enable smp smp-support) \ + $(use compat-ethread && echo "--enable-ethread-pre-pentium4-compatibility") \ + $(use x64-macos && echo "--enable-darwin-64bit") \ + || die +} + +src_compile() { + use java || export JAVAC=false + emake || die + + if use emacs ; then + pushd lib/tools/emacs + elisp-compile *.el || die + popd + fi +} + +extract_version() { + sed -n -e "/^$2 = \(.*\)$/s::\1:p" "${S}/$1/vsn.mk" +} + +src_install() { + local ERL_LIBDIR=/usr/$(get_libdir)/erlang + local ERL_INTERFACE_VER=$(extract_version lib/erl_interface EI_VSN) + local ERL_ERTS_VER=$(extract_version erts VSN) + + emake INSTALL_PREFIX="${D}" install || die + dodoc AUTHORS README.md + + dosym "${ERL_LIBDIR}/bin/erl" /usr/bin/erl + dosym "${ERL_LIBDIR}/bin/erlc" /usr/bin/erlc + dosym "${ERL_LIBDIR}/bin/escript" /usr/bin/escript + dosym \ + "${ERL_LIBDIR}/lib/erl_interface-${ERL_INTERFACE_VER}/bin/erl_call" \ + /usr/bin/erl_call + dosym "${ERL_LIBDIR}/erts-${ERL_ERTS_VER}/bin/beam" /usr/bin/beam + use smp && dosym "${ERL_LIBDIR}/erts-${ERL_ERTS_VER}/bin/beam.smp" /usr/bin/beam.smp + + ## Remove ${D} from the following files + sed -e "s:${D}::g" -i "${ED}${ERL_LIBDIR}/bin/erl" || die + sed -e "s:${D}::g" -i "${ED}${ERL_LIBDIR}/bin/start" || die + grep -rle "${D}" "${ED}/${ERL_LIBDIR}/erts-${ERL_ERTS_VER}" | xargs sed -i -e "s:${D}::g" + + ## Clean up the no longer needed files + rm "${ED}/${ERL_LIBDIR}/Install"||die + + for i in "${WORKDIR}"/man/man* ; do + dodir "${ERL_LIBDIR}/${i##${WORKDIR}}" + done + for file in "${WORKDIR}"/man/man*/*.[1-9]; do + # doman sucks so we can't use it + cp ${file} "${ED}/${ERL_LIBDIR}"/man/man${file##*.}/ + done + # extend MANPATH, so the normal man command can find it + # see bug 189639 + dodir /etc/env.d/ + echo "MANPATH=\"${EPREFIX}${ERL_LIBDIR}/man\"" > "${ED}/etc/env.d/90erlang" + + if use doc ; then + dohtml -A README,erl,hrl,c,h,kwc,info -r \ + "${WORKDIR}"/doc "${WORKDIR}"/lib "${WORKDIR}"/erts-* + fi + + if use emacs ; then + pushd "${S}" + elisp-install erlang lib/tools/emacs/*.{el,elc} + sed -e "s:/usr/share:${EPREFIX}/usr/share:g" \ + "${FILESDIR}"/${SITEFILE} > "${T}"/${SITEFILE} + elisp-site-file-install "${T}"/${SITEFILE} + popd + fi + + newinitd "${FILESDIR}"/epmd.init epmd || die +} + +pkg_postinst() { + use emacs && elisp-site-regen + elog + elog "If you need a symlink to one of Erlang's binaries," + elog "please open a bug on http://bugs.gentoo.org/" + elog + elog "Gentoo's versioning scheme differs from the author's, so please refer to this version as ${MY_PV}" + elog +} + +pkg_postrm() { + use emacs && elisp-site-regen +} diff --git a/dev-lang/erlang/erlang-17.3.ebuild b/dev-lang/erlang/erlang-17.3.ebuild new file mode 100644 index 000000000000..0d9af90b3838 --- /dev/null +++ b/dev-lang/erlang/erlang-17.3.ebuild @@ -0,0 +1,159 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=4 +WX_GTK_VER="2.8" + +inherit autotools elisp-common eutils java-pkg-opt-2 multilib systemd versionator wxwidgets + +# NOTE: If you need symlinks for binaries please tell maintainers or +# open up a bug to let it be created. + +DESCRIPTION="Erlang programming language, runtime environment, and large collection of libraries" +HOMEPAGE="http://www.erlang.org/" +SRC_URI="http://www.erlang.org/download/otp_src_${PV}.tar.gz + http://erlang.org/download/otp_doc_man_${PV}.tar.gz + doc? ( http://erlang.org/download/otp_doc_html_${PV}.tar.gz )" + +LICENSE="ErlPL-1.1" +SLOT="0" +KEYWORDS="alpha amd64 ~arm ~ia64 ppc ppc64 sparc x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris" +IUSE="compat-ethread doc emacs halfword hipe java kpoll odbc smp sctp ssl systemd tk wxwidgets" + +RDEPEND=">=dev-lang/perl-5.6.1 + ssl? ( >=dev-libs/openssl-0.9.7d ) + emacs? ( virtual/emacs ) + java? ( >=virtual/jdk-1.2 ) + odbc? ( dev-db/unixODBC )" +DEPEND="${RDEPEND} + wxwidgets? ( x11-libs/wxGTK:2.8[X,opengl] virtual/glu ) + sctp? ( net-misc/lksctp-tools ) + tk? ( dev-lang/tk )" + +S="${WORKDIR}/otp_src_${PV}" + +SITEFILE=50${PN}-gentoo.el + +pkg_setup() { + if use halfword ; then + use amd64 || die "halfword support is limited to amd64" + fi +} + +src_prepare() { + use odbc || sed -i 's: odbc : :' lib/Makefile + + # bug 263129, don't ignore LDFLAGS, reported upstream + sed -e 's:LDFLAGS = \$(DED_LDFLAGS):LDFLAGS += \$(DED_LDFLAGS):' -i "${S}"/lib/megaco/src/flex/Makefile.in + + # don't ignore LDFLAGS, reported upstream + sed -e 's:LDFLAGS = \$(ODBC_LIB) \$(EI_LDFLAGS):LDFLAGS += \$(ODBC_LIB) \$(EI_LDFLAGS):' -i "${S}"/lib/odbc/c_src/Makefile.in + + if ! use wxwidgets; then + sed -i 's: wx : :' lib/Makefile + rm -rf lib/wx + fi + + # Nasty workaround, reported upstream + cp "${S}"/lib/configure.in.src "${S}"/lib/configure.in + + # bug 383697 + sed -i '1i#define OF(x) x' erts/emulator/drivers/common/gzio.c + cd erts && eautoreconf +} + +src_configure() { + use java || export JAVAC=false + + econf \ + --enable-threads \ + $(use_enable sctp) \ + $(use_enable systemd) \ + $(use_enable halfword halfword-emulator) \ + $(use_enable hipe) \ + $(use_with ssl ssl "${EPREFIX}"/usr) \ + $(use_enable ssl dynamic-ssl-lib) \ + $(use_enable kpoll kernel-poll) \ + $(use_enable smp smp-support) \ + $(use compat-ethread && echo "--enable-ethread-pre-pentium4-compatibility") \ + $(use x64-macos && echo "--enable-darwin-64bit") +} + +src_compile() { + use java || export JAVAC=false + emake + + if use emacs ; then + pushd lib/tools/emacs + elisp-compile *.el + popd + fi +} + +extract_version() { + sed -n -e "/^$2 = \(.*\)$/s::\1:p" "${S}/$1/vsn.mk" +} + +src_install() { + local ERL_LIBDIR=/usr/$(get_libdir)/erlang + local ERL_INTERFACE_VER=$(extract_version lib/erl_interface EI_VSN) + local ERL_ERTS_VER=$(extract_version erts VSN) + + emake INSTALL_PREFIX="${D}" install + dodoc AUTHORS README.md + + dosym "${ERL_LIBDIR}/bin/erl" /usr/bin/erl + dosym "${ERL_LIBDIR}/bin/erlc" /usr/bin/erlc + dosym "${ERL_LIBDIR}/bin/escript" /usr/bin/escript + dosym \ + "${ERL_LIBDIR}/lib/erl_interface-${ERL_INTERFACE_VER}/bin/erl_call" \ + /usr/bin/erl_call + dosym "${ERL_LIBDIR}/erts-${ERL_ERTS_VER}/bin/beam" /usr/bin/beam + use smp && dosym "${ERL_LIBDIR}/erts-${ERL_ERTS_VER}/bin/beam.smp" /usr/bin/beam.smp + + ## Remove ${D} from the following files + sed -e "s:${D}::g" -i "${ED}${ERL_LIBDIR}/bin/erl" + sed -e "s:${D}::g" -i "${ED}${ERL_LIBDIR}/bin/start" + grep -rle "${D}" "${ED}/${ERL_LIBDIR}/erts-${ERL_ERTS_VER}" | xargs sed -i -e "s:${D}::g" + + ## Clean up the no longer needed files + rm "${ED}/${ERL_LIBDIR}/Install" + + for i in "${WORKDIR}"/man/man* ; do + dodir "${ERL_LIBDIR}/${i##${WORKDIR}}" + done + for file in "${WORKDIR}"/man/man*/*.[1-9]; do + # doman sucks so we can't use it + cp ${file} "${ED}/${ERL_LIBDIR}"/man/man${file##*.}/ + done + # extend MANPATH, so the normal man command can find it + # see bug 189639 + dodir /etc/env.d/ + echo "MANPATH=\"${EPREFIX}${ERL_LIBDIR}/man\"" > "${ED}/etc/env.d/90erlang" + + if use doc ; then + dohtml -A README,erl,hrl,c,h,kwc,info -r \ + "${WORKDIR}"/doc "${WORKDIR}"/lib "${WORKDIR}"/erts-* + fi + + if use emacs ; then + pushd "${S}" + elisp-install erlang lib/tools/emacs/*.{el,elc} + sed -e "s:/usr/share:${EPREFIX}/usr/share:g" \ + "${FILESDIR}"/${SITEFILE} > "${T}"/${SITEFILE} + elisp-site-file-install "${T}"/${SITEFILE} + popd + fi + + newinitd "${FILESDIR}"/epmd.init epmd + systemd_dounit "${FILESDIR}"/epmd.service +} + +pkg_postinst() { + use emacs && elisp-site-regen +} + +pkg_postrm() { + use emacs && elisp-site-regen +} diff --git a/dev-lang/erlang/erlang-17.5.ebuild b/dev-lang/erlang/erlang-17.5.ebuild new file mode 100644 index 000000000000..069811e46665 --- /dev/null +++ b/dev-lang/erlang/erlang-17.5.ebuild @@ -0,0 +1,159 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=4 +WX_GTK_VER="2.8" + +inherit autotools elisp-common eutils java-pkg-opt-2 multilib systemd versionator wxwidgets + +# NOTE: If you need symlinks for binaries please tell maintainers or +# open up a bug to let it be created. + +DESCRIPTION="Erlang programming language, runtime environment, and large collection of libraries" +HOMEPAGE="http://www.erlang.org/" +SRC_URI="http://www.erlang.org/download/otp_src_${PV}.tar.gz + http://erlang.org/download/otp_doc_man_${PV}.tar.gz + doc? ( http://erlang.org/download/otp_doc_html_${PV}.tar.gz )" + +LICENSE="ErlPL-1.1" +SLOT="0" +KEYWORDS="alpha amd64 ~arm ~ia64 ppc ~ppc64 sparc x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris" +IUSE="compat-ethread doc emacs halfword hipe java kpoll odbc smp sctp ssl systemd tk wxwidgets" + +RDEPEND=">=dev-lang/perl-5.6.1 + ssl? ( >=dev-libs/openssl-0.9.7d ) + emacs? ( virtual/emacs ) + java? ( >=virtual/jdk-1.2 ) + odbc? ( dev-db/unixODBC )" +DEPEND="${RDEPEND} + wxwidgets? ( x11-libs/wxGTK:2.8[X,opengl] virtual/glu ) + sctp? ( net-misc/lksctp-tools ) + tk? ( dev-lang/tk )" + +S="${WORKDIR}/otp_src_${PV}" + +SITEFILE=50${PN}-gentoo.el + +pkg_setup() { + if use halfword ; then + use amd64 || die "halfword support is limited to amd64" + fi +} + +src_prepare() { + use odbc || sed -i 's: odbc : :' lib/Makefile + + # bug 263129, don't ignore LDFLAGS, reported upstream + sed -e 's:LDFLAGS = \$(DED_LDFLAGS):LDFLAGS += \$(DED_LDFLAGS):' -i "${S}"/lib/megaco/src/flex/Makefile.in + + # don't ignore LDFLAGS, reported upstream + sed -e 's:LDFLAGS = \$(ODBC_LIB) \$(EI_LDFLAGS):LDFLAGS += \$(ODBC_LIB) \$(EI_LDFLAGS):' -i "${S}"/lib/odbc/c_src/Makefile.in + + if ! use wxwidgets; then + sed -i 's: wx : :' lib/Makefile + rm -rf lib/wx + fi + + # Nasty workaround, reported upstream + cp "${S}"/lib/configure.in.src "${S}"/lib/configure.in + + # bug 383697 + sed -i '1i#define OF(x) x' erts/emulator/drivers/common/gzio.c + cd erts && eautoreconf +} + +src_configure() { + use java || export JAVAC=false + + econf \ + --enable-threads \ + $(use_enable sctp) \ + $(use_enable systemd) \ + $(use_enable halfword halfword-emulator) \ + $(use_enable hipe) \ + $(use_with ssl ssl "${EPREFIX}"/usr) \ + $(use_enable ssl dynamic-ssl-lib) \ + $(use_enable kpoll kernel-poll) \ + $(use_enable smp smp-support) \ + $(use compat-ethread && echo "--enable-ethread-pre-pentium4-compatibility") \ + $(use x64-macos && echo "--enable-darwin-64bit") +} + +src_compile() { + use java || export JAVAC=false + emake + + if use emacs ; then + pushd lib/tools/emacs + elisp-compile *.el + popd + fi +} + +extract_version() { + sed -n -e "/^$2 = \(.*\)$/s::\1:p" "${S}/$1/vsn.mk" +} + +src_install() { + local ERL_LIBDIR=/usr/$(get_libdir)/erlang + local ERL_INTERFACE_VER=$(extract_version lib/erl_interface EI_VSN) + local ERL_ERTS_VER=$(extract_version erts VSN) + + emake INSTALL_PREFIX="${D}" install + dodoc AUTHORS README.md + + dosym "${ERL_LIBDIR}/bin/erl" /usr/bin/erl + dosym "${ERL_LIBDIR}/bin/erlc" /usr/bin/erlc + dosym "${ERL_LIBDIR}/bin/escript" /usr/bin/escript + dosym \ + "${ERL_LIBDIR}/lib/erl_interface-${ERL_INTERFACE_VER}/bin/erl_call" \ + /usr/bin/erl_call + dosym "${ERL_LIBDIR}/erts-${ERL_ERTS_VER}/bin/beam" /usr/bin/beam + use smp && dosym "${ERL_LIBDIR}/erts-${ERL_ERTS_VER}/bin/beam.smp" /usr/bin/beam.smp + + ## Remove ${D} from the following files + sed -e "s:${D}::g" -i "${ED}${ERL_LIBDIR}/bin/erl" + sed -e "s:${D}::g" -i "${ED}${ERL_LIBDIR}/bin/start" + grep -rle "${D}" "${ED}/${ERL_LIBDIR}/erts-${ERL_ERTS_VER}" | xargs sed -i -e "s:${D}::g" + + ## Clean up the no longer needed files + rm "${ED}/${ERL_LIBDIR}/Install" + + for i in "${WORKDIR}"/man/man* ; do + dodir "${ERL_LIBDIR}/${i##${WORKDIR}}" + done + for file in "${WORKDIR}"/man/man*/*.[1-9]; do + # doman sucks so we can't use it + cp ${file} "${ED}/${ERL_LIBDIR}"/man/man${file##*.}/ + done + # extend MANPATH, so the normal man command can find it + # see bug 189639 + dodir /etc/env.d/ + echo "MANPATH=\"${EPREFIX}${ERL_LIBDIR}/man\"" > "${ED}/etc/env.d/90erlang" + + if use doc ; then + dohtml -A README,erl,hrl,c,h,kwc,info -r \ + "${WORKDIR}"/doc "${WORKDIR}"/lib "${WORKDIR}"/erts-* + fi + + if use emacs ; then + pushd "${S}" + elisp-install erlang lib/tools/emacs/*.{el,elc} + sed -e "s:/usr/share:${EPREFIX}/usr/share:g" \ + "${FILESDIR}"/${SITEFILE} > "${T}"/${SITEFILE} + elisp-site-file-install "${T}"/${SITEFILE} + popd + fi + + newinitd "${FILESDIR}"/epmd.init epmd + systemd_dounit "${FILESDIR}"/epmd.service +} + +pkg_postinst() { + use emacs && elisp-site-regen +} + +pkg_postrm() { + use emacs && elisp-site-regen +} diff --git a/dev-lang/erlang/erlang-18.0.ebuild b/dev-lang/erlang/erlang-18.0.ebuild new file mode 100644 index 000000000000..547d0a5aa6dc --- /dev/null +++ b/dev-lang/erlang/erlang-18.0.ebuild @@ -0,0 +1,158 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=4 +WX_GTK_VER="2.8" + +inherit autotools elisp-common eutils java-pkg-opt-2 multilib systemd versionator wxwidgets + +# NOTE: If you need symlinks for binaries please tell maintainers or +# open up a bug to let it be created. + +DESCRIPTION="Erlang programming language, runtime environment, and large collection of libraries" +HOMEPAGE="http://www.erlang.org/" +SRC_URI="http://www.erlang.org/download/otp_src_${PV}.tar.gz + http://erlang.org/download/otp_doc_man_${PV}.tar.gz + doc? ( http://erlang.org/download/otp_doc_html_${PV}.tar.gz )" + +LICENSE="ErlPL-1.1" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris" +IUSE="compat-ethread doc emacs halfword hipe java kpoll odbc smp sctp ssl systemd tk wxwidgets" + +RDEPEND="ssl? ( >=dev-libs/openssl-0.9.7d ) + emacs? ( virtual/emacs ) + java? ( >=virtual/jdk-1.2 ) + odbc? ( dev-db/unixODBC )" +DEPEND="${RDEPEND} + wxwidgets? ( x11-libs/wxGTK:2.8[X,opengl] virtual/glu ) + sctp? ( net-misc/lksctp-tools ) + tk? ( dev-lang/tk )" + +S="${WORKDIR}/otp_src_${PV}" + +SITEFILE=50${PN}-gentoo.el + +pkg_setup() { + if use halfword ; then + use amd64 || die "halfword support is limited to amd64" + fi +} + +src_prepare() { + use odbc || sed -i 's: odbc : :' lib/Makefile + + # bug 263129, don't ignore LDFLAGS, reported upstream + sed -e 's:LDFLAGS = \$(DED_LDFLAGS):LDFLAGS += \$(DED_LDFLAGS):' -i "${S}"/lib/megaco/src/flex/Makefile.in + + # don't ignore LDFLAGS, reported upstream + sed -e 's:LDFLAGS = \$(ODBC_LIB) \$(EI_LDFLAGS):LDFLAGS += \$(ODBC_LIB) \$(EI_LDFLAGS):' -i "${S}"/lib/odbc/c_src/Makefile.in + + if ! use wxwidgets; then + sed -i 's: wx : :' lib/Makefile + rm -rf lib/wx + fi + + # Nasty workaround, reported upstream + cp "${S}"/lib/configure.in.src "${S}"/lib/configure.in + + # bug 383697 + sed -i '1i#define OF(x) x' erts/emulator/drivers/common/gzio.c + cd erts && eautoreconf +} + +src_configure() { + use java || export JAVAC=false + + econf \ + --enable-threads \ + $(use_enable sctp) \ + $(use_enable systemd) \ + $(use_enable halfword halfword-emulator) \ + $(use_enable hipe) \ + $(use_with ssl ssl "${EPREFIX}"/usr) \ + $(use_enable ssl dynamic-ssl-lib) \ + $(use_enable kpoll kernel-poll) \ + $(use_enable smp smp-support) \ + $(use compat-ethread && echo "--enable-ethread-pre-pentium4-compatibility") \ + $(use x64-macos && echo "--enable-darwin-64bit") +} + +src_compile() { + use java || export JAVAC=false + emake + + if use emacs ; then + pushd lib/tools/emacs + elisp-compile *.el + popd + fi +} + +extract_version() { + sed -n -e "/^$2 = \(.*\)$/s::\1:p" "${S}/$1/vsn.mk" +} + +src_install() { + local ERL_LIBDIR=/usr/$(get_libdir)/erlang + local ERL_INTERFACE_VER=$(extract_version lib/erl_interface EI_VSN) + local ERL_ERTS_VER=$(extract_version erts VSN) + + emake INSTALL_PREFIX="${D}" install + dodoc AUTHORS README.md + + dosym "${ERL_LIBDIR}/bin/erl" /usr/bin/erl + dosym "${ERL_LIBDIR}/bin/erlc" /usr/bin/erlc + dosym "${ERL_LIBDIR}/bin/escript" /usr/bin/escript + dosym \ + "${ERL_LIBDIR}/lib/erl_interface-${ERL_INTERFACE_VER}/bin/erl_call" \ + /usr/bin/erl_call + dosym "${ERL_LIBDIR}/erts-${ERL_ERTS_VER}/bin/beam" /usr/bin/beam + use smp && dosym "${ERL_LIBDIR}/erts-${ERL_ERTS_VER}/bin/beam.smp" /usr/bin/beam.smp + + ## Remove ${D} from the following files + sed -e "s:${D}::g" -i "${ED}${ERL_LIBDIR}/bin/erl" + sed -e "s:${D}::g" -i "${ED}${ERL_LIBDIR}/bin/start" + grep -rle "${D}" "${ED}/${ERL_LIBDIR}/erts-${ERL_ERTS_VER}" | xargs sed -i -e "s:${D}::g" + + ## Clean up the no longer needed files + rm "${ED}/${ERL_LIBDIR}/Install" + + for i in "${WORKDIR}"/man/man* ; do + dodir "${ERL_LIBDIR}/${i##${WORKDIR}}" + done + for file in "${WORKDIR}"/man/man*/*.[1-9]; do + # doman sucks so we can't use it + cp ${file} "${ED}/${ERL_LIBDIR}"/man/man${file##*.}/ + done + # extend MANPATH, so the normal man command can find it + # see bug 189639 + dodir /etc/env.d/ + echo "MANPATH=\"${EPREFIX}${ERL_LIBDIR}/man\"" > "${ED}/etc/env.d/90erlang" + + if use doc ; then + dohtml -A README,erl,hrl,c,h,kwc,info -r \ + "${WORKDIR}"/doc "${WORKDIR}"/lib "${WORKDIR}"/erts-* + fi + + if use emacs ; then + pushd "${S}" + elisp-install erlang lib/tools/emacs/*.{el,elc} + sed -e "s:/usr/share:${EPREFIX}/usr/share:g" \ + "${FILESDIR}"/${SITEFILE} > "${T}"/${SITEFILE} + elisp-site-file-install "${T}"/${SITEFILE} + popd + fi + + newinitd "${FILESDIR}"/epmd.init epmd + systemd_dounit "${FILESDIR}"/epmd.service +} + +pkg_postinst() { + use emacs && elisp-site-regen +} + +pkg_postrm() { + use emacs && elisp-site-regen +} diff --git a/dev-lang/erlang/files/16.2-tinfo.patch b/dev-lang/erlang/files/16.2-tinfo.patch new file mode 100644 index 000000000000..f51ba582d8c1 --- /dev/null +++ b/dev-lang/erlang/files/16.2-tinfo.patch @@ -0,0 +1,11 @@ +--- erts/configure.in.bak 2013-11-04 14:47:47.838188678 +0100 ++++ erts/configure.in 2013-11-04 14:46:54.352439671 +0100 +@@ -1322,7 +1322,7 @@ + if test "x$with_termcap" != "xno" && + test "X$host" != "Xwin32"; then + # try these libs +- termcap_libs="ncurses curses termcap termlib" ++ termcap_libs="tinfo ncurses curses termcap termlib" + + for termcap_lib in $termcap_libs; do + AC_CHECK_LIB($termcap_lib, tgetent, TERMCAP_LIB="-l$termcap_lib") diff --git a/dev-lang/erlang/files/17.0-systemd.patch b/dev-lang/erlang/files/17.0-systemd.patch new file mode 100644 index 000000000000..2dba8c897fe6 --- /dev/null +++ b/dev-lang/erlang/files/17.0-systemd.patch @@ -0,0 +1,85 @@ +--- erts/configure.in 2014-05-08 10:07:18.691087332 +0200 ++++ erts/configure.in 2014-05-08 10:12:56.579375822 +0200 +@@ -366,6 +366,11 @@ + $with_assumed_cache_line_size, + [Assumed cache-line size (in bytes)]) + ++AC_ARG_ENABLE(systemd, ++AS_HELP_STRING([--enable-systemd], [enable systemd support in epmd]), ++[], ++[enable_systemd=no]) ++ + dnl Magic test for clearcase. + OTP_RELEASE= + if test "${ERLANG_COMMERCIAL_BUILD}" != ""; then +@@ -1042,8 +1047,6 @@ + AC_CHECK_LIB(inet, main) + AC_CHECK_LIB(util, openpty) + +-AC_CHECK_LIB(systemd-daemon, sd_listen_fds) +- + dnl Try to find a thread library. + dnl + dnl ETHR_LIB_NAME, ETHR_LIBS, ETHR_X_LIBS, ETHR_THR_LIB_BASE and ETHR_DEFS +@@ -1679,7 +1682,29 @@ + #endif + ]) + +-AC_CHECK_HEADERS(systemd/sd-daemon.h) ++dnl ---------------------------------------------------------------------- ++dnl Check the availability of systemd ++dnl ---------------------------------------------------------------------- ++if test x"$enable_systemd" != x"no"; then ++ ++systemd_daemon_save_LIBS=$LIBS ++LIBS= ++AC_SEARCH_LIBS(sd_listen_fds,[systemd systemd-daemon], ++ [have_sd_listen_fds=yes],[have_sd_listen_fds=no],$systemd_daemon_save_LIBS) ++AC_CHECK_HEADERS(systemd/sd-daemon.h, ++ [have_systemd_sd_daemon_h=yes],[have_systemd_sd_daemon_h=no]) ++ ++if test x"$have_sd_listen_fds" = x"yes" && \ ++ test x"$have_systemd_sd_daemon_h" = x"yes"; then ++ AC_DEFINE([HAVE_SYSTEMD_DAEMON],[1],[Define if you have systemd daemon]) ++ SYSTEMD_DAEMON_LIBS=$LIBS ++elif test x"$enable_systemd" = x"yes"; then ++ AC_MSG_FAILURE([--enable-systemd was given, but test for systemd failed]) ++fi ++LIBS=$systemd_daemon_save_LIBS ++fi ++AC_SUBST(SYSTEMD_DAEMON_LIBS) ++ + + dnl ---------------------------------------------------------------------- + dnl Check the availability for libdlpi +--- erts/epmd/src/Makefile.in 2014-05-08 10:07:58.344182314 +0200 ++++ erts/epmd/src/Makefile.in 2014-05-08 10:12:56.580375784 +0200 +@@ -84,7 +84,7 @@ + ifeq ($(findstring ose,$(TARGET)),ose) + LIBS = $(ERTS_INTERNAL_LIBS) @LIBS@ + else +-LIBS = @LIBS@ $(ERTS_INTERNAL_LIBS) ++LIBS = @LIBS@ @SYSTEMD_DAEMON_LIBS@ $(ERTS_INTERNAL_LIBS) + endif + LDFLAGS = @LDFLAGS@ + +--- erts/epmd/src/epmd_srv.c 2014-05-08 10:07:49.137392770 +0200 ++++ erts/epmd/src/epmd_srv.c 2014-05-08 10:12:39.777759407 +0200 +@@ -213,7 +213,7 @@ + node_init(g); + g->conn = conn_init(g); + +-#ifdef HAVE_SYSTEMD_SD_DAEMON_H ++#ifdef HAVE_SYSTEMD_DAEMON + if (g->is_systemd) + { + int n; +@@ -310,7 +310,7 @@ + SET_ADDR(iserv_addr[0],EPMD_ADDR_ANY,sport); + num_sockets = 1; + } +-#ifdef HAVE_SYSTEMD_SD_DAEMON_H ++#ifdef HAVE_SYSTEMD_DAEMON + } + #endif + diff --git a/dev-lang/erlang/files/50erlang-gentoo.el b/dev-lang/erlang/files/50erlang-gentoo.el new file mode 100644 index 000000000000..db1ae7636f1d --- /dev/null +++ b/dev-lang/erlang/files/50erlang-gentoo.el @@ -0,0 +1,5 @@ +;;; erlang site-lisp configuration + +(add-to-list 'load-path "@SITELISP@") +(require 'erlang-start) +(setq erlang-root-dir "/usr/share") diff --git a/dev-lang/erlang/files/epmd.init b/dev-lang/erlang/files/epmd.init new file mode 100644 index 000000000000..8bcc2d9675d4 --- /dev/null +++ b/dev-lang/erlang/files/epmd.init @@ -0,0 +1,20 @@ +#!/sbin/runscript +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the Erlang Public License 1.1 +# $Id$ + +depend() { + need net +} + +start() { + ebegin "Starting Erlang Port Mapper Daemon" + start-stop-daemon --start --quiet --user nobody --group nobody --exec /usr/bin/epmd -- -daemon + eend $? +} + +stop() { + ebegin "Stopping Erlang Port Mapper Daemon" + /usr/bin/epmd -kill >/dev/null + eend $? +} diff --git a/dev-lang/erlang/files/epmd.service b/dev-lang/erlang/files/epmd.service new file mode 100644 index 000000000000..57382ff36a40 --- /dev/null +++ b/dev-lang/erlang/files/epmd.service @@ -0,0 +1,9 @@ +[Unit] +Description=Erlang Portmapper Daemon +Wants=network.target + +[Service] +ExecStart=/usr/bin/epmd + +[Install] +WantedBy=multi-user.target diff --git a/dev-lang/erlang/metadata.xml b/dev-lang/erlang/metadata.xml new file mode 100644 index 000000000000..b78c5d38c90e --- /dev/null +++ b/dev-lang/erlang/metadata.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<herd>lang-misc</herd> +<maintainer> +<email>djc@gentoo.org</email> +<name>Dirkjan Ochtman</name> +</maintainer> + <use> + <flag name="hipe">HIgh Performance Erlang extension</flag> + <flag name="halfword">Enable halfword emulator</flag> + <flag name="kpoll">Enable kernel polling support</flag> + <flag name="sctp">Support for Stream Control Transmission Protocol</flag> + <flag name="compat-ethread">Enable compatibility with pre-pentium 4 CPUs in the ethread library.</flag> + </use> +<longdescription> +Erlang is a programming language designed at the Ericsson +Computer Science Laboratory. Open-source Erlang is being +released to help encourage the spread of Erlang outside +Ericsson. +</longdescription> +</pkgmetadata> diff --git a/dev-lang/esco/Manifest b/dev-lang/esco/Manifest new file mode 100644 index 000000000000..b36d0e17720b --- /dev/null +++ b/dev-lang/esco/Manifest @@ -0,0 +1 @@ +DIST esco-src-0.512.tar.gz 382056 SHA256 646e88b3ff16346e41061c6cd33c37cb5e2e7d3b2b2b8604f6931fe1723935d1 SHA512 4d02af7097abbd6770a891065ea9d7d3f9acdd9c7c9164f726dba2385db48993e7fe9baa4fc57aac2d998544788416700933d473f1e9467c9f94e240f80ccf97 WHIRLPOOL 91cfdfe44756bf3b5328b8dc42d746dc33487c3565f6e172396d27e9ea5377f6e4f8fb2b6e8b28d89da8343fd437c39174c7d92daeb0157c815da64e101042c7 diff --git a/dev-lang/esco/esco-0.512.ebuild b/dev-lang/esco/esco-0.512.ebuild new file mode 100644 index 000000000000..2e7858ef662c --- /dev/null +++ b/dev-lang/esco/esco-0.512.ebuild @@ -0,0 +1,32 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +MY_PN="${PN}-src" +MY_P="${MY_PN}-${PV}" + +DESCRIPTION="Combine interpreter of esoteric languages" +HOMEPAGE="http://esco.sourceforge.net/" +SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +IUSE="gmp linguas_ru" + +DEPEND="gmp? ( dev-libs/gmp )" +RDEPEND="${DEPEND}" + +DOCS=( AUTHORS ChangeLog README TODO docs/basics.txt ) + +src_configure() { + econf $(use_with gmp) +} + +src_install() { + default + use linguas_ru && dodoc docs/README_RU.utf8 +} diff --git a/dev-lang/esco/metadata.xml b/dev-lang/esco/metadata.xml new file mode 100644 index 000000000000..852bb704e58e --- /dev/null +++ b/dev-lang/esco/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer> + <email>pinkbyte@gentoo.org</email> + <name>Sergey Popov</name> + </maintainer> + <upstream> + <remote-id type="sourceforge">esco</remote-id> + </upstream> +</pkgmetadata> diff --git a/dev-lang/execline/Manifest b/dev-lang/execline/Manifest new file mode 100644 index 000000000000..d0ed12e70c31 --- /dev/null +++ b/dev-lang/execline/Manifest @@ -0,0 +1 @@ +DIST execline-2.1.1.0.tar.gz 75967 SHA256 9e1a9b95772b64bd623c1ddea6200909cca0eb659893ac47857848928eaff7dc SHA512 250fe449b39a198193f1431b249b342f3c6c499fea12779a55d0e27aec2095285bbf9dc2a48d84eebdf9f540ecf5e67ef39393243ca0fadfc764d2cc95ac0b6b WHIRLPOOL ce92f6d7786e5f1efcfb5298b1fa8a561957c6b9f542ace49b815e69f98da4f88adcd339f7210d61d7ae1298573cd9bc31c22c6f7b3c8ac30f44986c88241f32 diff --git a/dev-lang/execline/execline-2.1.1.0.ebuild b/dev-lang/execline/execline-2.1.1.0.ebuild new file mode 100644 index 000000000000..d62084749469 --- /dev/null +++ b/dev-lang/execline/execline-2.1.1.0.ebuild @@ -0,0 +1,55 @@ +# Copyright 2013-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit multilib + +DESCRIPTION="a non-interactive scripting language similar to SH" +HOMEPAGE="http://www.skarnet.org/software/execline/" +SRC_URI="http://www.skarnet.org/software/${PN}/${P}.tar.gz" + +LICENSE="ISC" +SLOT="0" +KEYWORDS="amd64 ~x86" +IUSE="static static-libs" + +DEPEND=">=sys-devel/make-4.0 + static? ( >=dev-libs/skalibs-2.3.1.0[static-libs] ) + !static? ( >=dev-libs/skalibs-2.3.1.0 ) +" +RDEPEND="!static? ( >=dev-libs/skalibs-2.3.1.0 )" + +src_prepare() { + # Remove QA warning about LDFLAGS addition + sed -i "s~tryldflag LDFLAGS_AUTO -Wl,--hash-style=both~:~" "${S}/configure" || die +} + +src_configure() +{ + econf \ + $(use_enable static-libs static) \ + $(use_enable static allstatic) \ + $(use_enable !static shared) \ + --bindir=/bin \ + --sbindir=/sbin \ + --dynlibdir=/$(get_libdir) \ + --libdir=/usr/$(get_libdir)/${PN} \ + --datadir=/etc \ + --sysdepdir=/usr/$(get_libdir)/${PN} \ + --with-dynlib=/$(get_libdir) \ + --with-lib=/usr/$(get_libdir)/skalibs \ + --with-sysdeps=/usr/$(get_libdir)/skalibs +} + +src_compile() +{ + emake DESTDIR="${D}" +} + +src_install() +{ + default + dohtml -r doc/* +} diff --git a/dev-lang/execline/metadata.xml b/dev-lang/execline/metadata.xml new file mode 100644 index 000000000000..8004498b8ba8 --- /dev/null +++ b/dev-lang/execline/metadata.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer> + <email>williamh@gentoo.org</email> + <name>William Hubbs</name> + </maintainer> + <longdescription lang="en"> + Execline is a non-interactive scripting language similar to sh. + According to the home page, the syntax is far mor logical and + predictable than sh, and has no security issues. + </longdescription> +</pkgmetadata> diff --git a/dev-lang/f2c/Manifest b/dev-lang/f2c/Manifest new file mode 100644 index 000000000000..38008a9806c6 --- /dev/null +++ b/dev-lang/f2c/Manifest @@ -0,0 +1,3 @@ +DIST f2c-20060507.tar.bz2 186677 SHA256 5d1f7579139bc474bdc5455a0d1726cab30f09f2c13c9110bdf3813066b10e2a SHA512 d0c9019b65a8ad2fd769ada596646a1cd9b682dcc8afa2cd99081376d967fbe959186a38d74570ab4bcce7622c58c8c10042948fa56e0a7080b12111c2b99b1e WHIRLPOOL a88b3e4aec80a064168ac640b6370fa5afc3d1584d6507abf53aefc471ef438aa4fded4e0cbe30d64c68324c93e97ec1f10097851f4850c55a3266bdd3ee34fc +DIST f2c_20100827-1.debian.tar.gz 15659 SHA256 1597878d24b4261094f67853b681db1be53dce5a320052d52e5203de765bd2dd SHA512 784d3f1a74311a933b54103d36dd18eb879bef1816ea82e8d93ef5a0eb7582d4ddde3a2b764d15b78194bab4cdf940480089e8b920002134af66cdf095708535 WHIRLPOOL e71139315c318c160bddd2c76486d88b0429a7e8b8f67dd2e9d6f259e2b83ce6351a95b683d7caa95d31ca64c8421d07ff90d69ec7f974d62013653f8c6beb09 +DIST f2c_20100827.orig.tar.gz 417930 SHA256 d3d1bbf814e3f6d7adf4fb86d092997dbb4994899e85b9f436920b79f0ea55b9 SHA512 2c28d8c06e53b569816e7982725133d46e9b145a84ec51771f4cca2409098f894648ebe5b8089a1ddd8468be62394b0edb5985e50baeea8129e4f507236d6c0d WHIRLPOOL c19022a3b9d269d69e3e4f507a6675f632fc2ef29da825099083aaa71f6b547a61f1ff229c1ecf5b201a98d697f8226719a305c0bdb3684db10e19b3e8c6339d diff --git a/dev-lang/f2c/f2c-20060507.ebuild b/dev-lang/f2c/f2c-20060507.ebuild new file mode 100644 index 000000000000..09be3136a745 --- /dev/null +++ b/dev-lang/f2c/f2c-20060507.ebuild @@ -0,0 +1,37 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +inherit eutils toolchain-funcs + +DESCRIPTION="Fortran to C converter" +HOMEPAGE="http://www.netlib.org/f2c" +#SRC_URI="ftp://netlib.bell-labs.com/netlib/f2c/src.tar" +# To create, download src.tar, ungzip everything inside, then tar.bz2 the whole +# thing. +SRC_URI="mirror://gentoo/${P}.tar.bz2" + +LICENSE="HPND" +SLOT="0" +KEYWORDS="amd64 ppc ppc64 x86 ~x86-fbsd" +IUSE="" + +RDEPEND="dev-libs/libf2c" +DEPEND="${RDEPEND}" + +S="${WORKDIR}/src" + +src_compile() { + emake \ + -f makefile.u \ + CC=$(tc-getCC) \ + CFLAGS="${CFLAGS}" \ + || die "make failed" +} + +src_install() { + mv -f f2c.1t f2c.1 + doman f2c.1 + dobin f2c + dodoc README Notice +} diff --git a/dev-lang/f2c/f2c-20100827.ebuild b/dev-lang/f2c/f2c-20100827.ebuild new file mode 100644 index 000000000000..107d53bd2898 --- /dev/null +++ b/dev-lang/f2c/f2c-20100827.ebuild @@ -0,0 +1,51 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=4 + +inherit eutils toolchain-funcs + +DEB_PV=20100827 +DEB_PR=1 +DEB_P=${PN}_${DEB_PV} + +DESCRIPTION="Fortran to C converter" +HOMEPAGE="http://www.netlib.org/f2c" +SRC_URI=" + mirror://debian/pool/main/${PN:0:1}/${PN}/${DEB_P}.orig.tar.gz + mirror://debian/pool/main/${PN:0:1}/${PN}/${DEB_P}-${DEB_PR}.debian.tar.gz" + +LICENSE="HPND" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~x86-fbsd ~amd64-linux ~x86-linux" +IUSE="doc" + +RDEPEND="dev-libs/libf2c" +DEPEND="" + +S="${WORKDIR}/${PN}" + +src_prepare() { + # selective list of patches from debian + epatch \ + "${WORKDIR}"/debian/patches/0000-prequilt-tweaks.patch \ + "${WORKDIR}"/debian/patches/0002-prototype-rmdir.patch \ + "${WORKDIR}"/debian/patches/0003-struct-init-braces.patch \ + "${WORKDIR}"/debian/patches/0004-man-dash-hyphen-slash.patch + sed -i -e '/^CC/d' -e '/^CFLAGS/d' src/makefile.u || die + tc-export CC +} + +src_compile() { + emake -C src -f makefile.u +} + +src_install() { + doman f2c.1 + use doc && dodoc f2c.pdf + newdoc "${WORKDIR}"/debian/changelog debian.changelog + cd src + dobin f2c + dodoc README Notice +} diff --git a/dev-lang/f2c/metadata.xml b/dev-lang/f2c/metadata.xml new file mode 100644 index 000000000000..adca89fcd3f8 --- /dev/null +++ b/dev-lang/f2c/metadata.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <herd>sci</herd> + <longdescription lang="en"> + F2C compiles FORTRAN 77 sources by converting to C/C++ sources and + compiling the later with gcc. The resulting binaries depend on the + libf2c runtime library. +</longdescription> + <longdescription lang="de"> + F2C kompiliert FORTRAN 77 Quellcode durch Konvertierung in C/C++ + Quellcode und deren anschließendes Kompilieren mit Hilfe von gcc. Die + produzierten Binärdateien benötigen die Laufzeitbibliothek libf2c. +</longdescription> +</pkgmetadata> diff --git a/dev-lang/falcon/Manifest b/dev-lang/falcon/Manifest new file mode 100644 index 000000000000..e76bd45cf2df --- /dev/null +++ b/dev-lang/falcon/Manifest @@ -0,0 +1 @@ +DIST Falcon-0.9.6.4.tar.gz 1782796 SHA256 24f4294f93c192f21d3590795a9fdd864c3f2d376cb0baac9c1e11e893cfaf81 SHA512 244fc0cc6811d9c918a1983d93e380982584016d84752b00d3adc17e46d7a7cbf9d20f09b7562316b1c9ea6eaaa91c1cb931f4469f7d510d9084f1daaca732a5 WHIRLPOOL 2178d6307fcd516f490fada540af649a60ca39f8640215b926f153316ab349ed9b46e47c7849270a20632e9639ca65d635f88ed4d0a2fccf718967ce83106a8b diff --git a/dev-lang/falcon/falcon-0.9.6.4.ebuild b/dev-lang/falcon/falcon-0.9.6.4.ebuild new file mode 100644 index 000000000000..89e124c350e9 --- /dev/null +++ b/dev-lang/falcon/falcon-0.9.6.4.ebuild @@ -0,0 +1,51 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="2" + +inherit cmake-utils multilib + +MY_P=${P/f/F} + +DESCRIPTION="An open source general purpose untyped language written in C++" +HOMEPAGE="http://falconpl.org/" +SRC_URI="http://falconpl.org/project_dl/_official_rel/${MY_P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="debug readline" + +DEPEND=" + dev-libs/libpcre + sys-libs/zlib + readline? ( sys-libs/readline ) +" +RDEPEND="${DEPEND}" + +S=${WORKDIR}/${MY_P} + +DOCS="AUTHORS ChangeLog README RELNOTES" + +src_configure() { + mycmakeargs=( + -DFALCON_DISABLE_RPATH=ON + -DFALCON_LIB_DIR=$(get_libdir) + -DFALCON_SKIP_BISON=ON + -DFALCON_WITH_MANPAGES=ON + -DFALCON_WITH_INTERNAL_PCRE=OFF + -DFALCON_WITH_INTERNAL_ZLIB=OFF + -DFALCON_WITH_GPL_READLINE=ON + $(cmake-utils_use readline FALCON_WITH_EDITLINE) + ) + cmake-utils_src_configure +} + +src_test() { + FALCON_LOAD_PATH=".;${CMAKE_BUILD_DIR}/core/clt" + for testsuite in "${S}/core/tests/testsuite" "${S}/modules/feathers/tests/testsuite"; do + "${CMAKE_BUILD_DIR}/core/clt/faltest/faltest" \ + -d "${testsuite}" || die "faltest in ${testsuite} failed" + done +} diff --git a/dev-lang/falcon/metadata.xml b/dev-lang/falcon/metadata.xml new file mode 100644 index 000000000000..6318a491915d --- /dev/null +++ b/dev-lang/falcon/metadata.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <herd>lang-misc</herd> +</pkgmetadata> diff --git a/dev-lang/ferite/Manifest b/dev-lang/ferite/Manifest new file mode 100644 index 000000000000..f5d5339288d1 --- /dev/null +++ b/dev-lang/ferite/Manifest @@ -0,0 +1 @@ +DIST ferite-1.1.17.tar.gz 2174774 SHA256 d407f3db45482e17f41820fb029cf8b06e6104699b8d7340f3946f57d3f4e690 SHA512 475983b865fba492661e59b7470b7e46889f29ed8ba829b112354963fafcbed6ab4d4677579337c1c4ed730c6fe02897743f56edae335ceda6277da975d1098f WHIRLPOOL d563849e7b1ebe19657f319ecf970ad4987d10c28c29729da2868b10b7466159f5210e8bb7c065b8fccb7314ebc764dc8dbe97484c138c70ec066ecd12ebb005 diff --git a/dev-lang/ferite/ferite-1.1.17-r1.ebuild b/dev-lang/ferite/ferite-1.1.17-r1.ebuild new file mode 100644 index 000000000000..1bd7daee9cca --- /dev/null +++ b/dev-lang/ferite/ferite-1.1.17-r1.ebuild @@ -0,0 +1,79 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=4 + +inherit autotools eutils multilib + +DESCRIPTION="A clean, lightweight, object oriented scripting language" +HOMEPAGE="http://www.ferite.org/" +SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" + +LICENSE="BSD" +SLOT="1" +KEYWORDS="~alpha amd64 ppc -sparc x86 ~amd64-linux ~x86-linux ~ppc-macos" +IUSE="" + +DEPEND=" + >=dev-libs/libpcre-5 + dev-libs/libxml2" +RDEPEND="${DEPEND}" + +src_prepare() { + epatch ${FILESDIR}/ferite-pcre.patch || die + + # use docsdir variable, install to DESTDIR + sed \ + -e '/docsdir =/!s:$(prefix)/share/doc/ferite:$(DESTDIR)$(docsdir):' \ + -i docs/Makefile.am || die + + # Install docs to /usr/share/doc/${PF}, not .../${PN} + sed \ + -e "s:doc/ferite:doc/${PF}:" \ + -i Makefile.am \ + docs/Makefile.am \ + scripts/test/Makefile.am \ + scripts/test/rmi/Makefile.am || die + + # Don't override the user's LDFLAGS + sed \ + -e 's:_LDFLAGS = :&$(AM_LDFLAGS) :' \ + -e '/^LDFLAGS/s:^:AM_:' \ + -i modules/*/Makefile.am \ + libs/{aphex,triton}/src/Makefile.am \ + src/Makefile.am || die + + # Only build/install shared libs for modules (can't use static anyway) + sed -i -e '/_LDFLAGS/s:-module:& -shared:' modules/*/Makefile.am || die + + # use LIBADD to ensure proper deps (fix parallel build) + sed \ + -e '/^stream_la_LDFLAGS/s:-L\. -lferitestream::' \ + -e '/^stream_la_LIBADD/s:$:libferitestream.la:' \ + -i modules/stream/Makefile.am || die + + # Make sure we install in $(get_libdir), not lib + sed -i -e "s|\$prefix/lib|\$prefix/$(get_libdir)|g" configure.ac || die + + # We copy feritedoc to ${T} in src_install, then patch it in-situ + # note that this doesn't actually work right, currently - it still tries + # to pull from / instead of ${D}, and I can't figure out how to fix that + sed -i -e 's:$(prefix)/bin/:${T}/:' docs/Makefile.am || die + + eautoreconf +} + +src_configure() { + econf --libdir="${EPREFIX}/usr/$(get_libdir)" +} + +src_install() { + cp tools/doc/feritedoc "${T}" || die + sed -i -e '/^prefix/s:prefix:${T}:g' "${T}"/feritedoc || die + sed -i -e '/^$prefix/s:$prefix/bin/ferite:'"${ED}"'usr/bin/ferite:' "${T}"/feritedoc || die + sed -i -e 's:$library_path $library_path:${S}/tools/doc ${S}/tools/doc:' "${T}"/feritedoc || die + export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}${LD_LIBRARY_PATH:+:}${ED}usr/lib" + emake DESTDIR="${D}" LIBDIR="${EPREFIX}"/usr/$(get_libdir) install + prune_libtool_files +} diff --git a/dev-lang/ferite/files/ferite-pcre.patch b/dev-lang/ferite/files/ferite-pcre.patch new file mode 100644 index 000000000000..1e2e19ce4811 --- /dev/null +++ b/dev-lang/ferite/files/ferite-pcre.patch @@ -0,0 +1,26 @@ +diff -pruN ferite-1.1.17.orig/modules/regexp/regexp.fec ferite-1.1.17/modules/regexp/regexp.fec +--- ferite-1.1.17.orig/modules/regexp/regexp.fec 2009-07-15 19:21:34.000000000 +0200 ++++ ferite-1.1.17/modules/regexp/regexp.fec 2013-02-01 02:33:40.438849775 +0100 +@@ -427,7 +427,8 @@ class Regexp { + } + + /* get the number of subparts */ +- captured_str_cnt = pcre_info( rgx->compiled_re, NULL, NULL ) + 1; ++ pcre_fullinfo( rgx->compiled_re, NULL, PCRE_INFO_CAPTURECOUNT, &captured_str_cnt ); ++ captured_str_cnt++; + /* create an offset array */ + size_offsets = (int)(captured_str_cnt * 3); + offsets = (int *)fmalloc(size_offsets * sizeof(int)); +diff -pruN ferite-1.1.17.orig/modules/regexp/regexp_Regexp.c ferite-1.1.17/modules/regexp/regexp_Regexp.c +--- ferite-1.1.17.orig/modules/regexp/regexp_Regexp.c 2009-07-17 08:59:19.000000000 +0200 ++++ ferite-1.1.17/modules/regexp/regexp_Regexp.c 2013-02-01 02:33:16.647875845 +0100 +@@ -88,7 +88,8 @@ FE_NATIVE_FUNCTION( ferite_regexp_Regexp + } + + /* get the number of subparts */ +- captured_str_cnt = pcre_info( rgx->compiled_re, NULL, NULL ) + 1; ++ pcre_fullinfo( rgx->compiled_re, NULL, PCRE_INFO_CAPTURECOUNT, &captured_str_cnt ); ++ captured_str_cnt++; + /* create an offset array */ + size_offsets = (int)(captured_str_cnt * 3); + offsets = (int *)fmalloc(size_offsets * sizeof(int)); diff --git a/dev-lang/ferite/metadata.xml b/dev-lang/ferite/metadata.xml new file mode 100644 index 000000000000..c5d9211b3c1e --- /dev/null +++ b/dev-lang/ferite/metadata.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer> + <email>maintainer-needed@gentoo.org</email> + </maintainer> + <upstream> + <remote-id type="sourceforge">ferite</remote-id> + </upstream> +</pkgmetadata> diff --git a/dev-lang/fpc/Manifest b/dev-lang/fpc/Manifest new file mode 100644 index 000000000000..c99167a7d141 --- /dev/null +++ b/dev-lang/fpc/Manifest @@ -0,0 +1,18 @@ +DIST fpc-2.6.2-doc-html.tar.gz 4716648 SHA256 2f30db4ad0687cfeb990bff1933aea6c644c8c49460051bafb1645863fd14005 SHA512 abefed1ac92e49d3ef18599c6d0e44c6963bda214a599f2d9c1df64c88f3bd43fc31baf1b7a032b626f4caedca225b55f99a06f1828b2da143cd07d8cd242999 WHIRLPOOL 4f4b13eb5e55aaf271be9ee93ec7ec425169940cd85d65b796c63e0b09b111ec381ae9274dcd8b671e9ff0b81f6b2abebbc99628e6791aa1682feb11d9aadf89 +DIST fpc-2.6.2-fpctoc.htx.bz2 124078 SHA256 de9b948c4d3d3f41f7a4c1eb1d0a022d6a0cd2cd3860d738dc8c0183c3207e78 SHA512 98f53ec7a2ddd6403696c5b0feb8c05797b1c267593adce0e3a50132238c0b5abd2f00886f0e68f73b449e0376ef7ebbf666ba3eb9362cffbb1f0fffd6886591 WHIRLPOOL 3dc2d0d633962635a9fa74e5c6f984d658ae5a7c5254b1ff0317d94820525262d3f741dec05a8af35844e2471cfa4939bed98a7fa3fb492cb9075fb6ebbbdf50 +DIST fpc-2.6.2.arm-linux.tar 32501760 SHA256 c961ea868ac2c7ea9a724a8ed5f5d4c3965e0ada61e97735e75252a50067e68e SHA512 c7f5a5b1938608cf3195549a3272c0932c08ee6601ffc516bab2cd7efd52145fbd6e03ad6664d1c876de02e89de63674cdc064dc23d228b73a621a5cd1e23220 WHIRLPOOL b0c8eacdac44615891a1fed574098a95e8616caaad4472c933b44e054d6f2237c79f66cc7e6a8f17d1d263d762ba723b94f41652b0ec0aaa0abaf9ae828dbeec +DIST fpc-2.6.2.i386-linux.tar 45905920 SHA256 d625a3dfdb248d1975a580ee01c43db3bfe05610248b2196bafddbb74579eac9 SHA512 741b01821cbc4eb1e2602bd69ccce58fac48640e06868ba29896a24376f77afe07a27ebd26a7936cc4bb813685b7151e7d64806ebe1bfce8988254a921015280 WHIRLPOOL 88ab9381c1f84f511770602f00148418e71daf6d107fbd6f341b61981809987b710f70761e0e840b40811b487389072ba53f3493f1fae7844afafd674c5b000a +DIST fpc-2.6.2.powerpc-linux.tar 44462080 SHA256 c2e7847c0a6d41820e3eb2da50122ac8fe5eade02157551f5857933d5a4e13c6 SHA512 a0894e56143115e35a00da48eb7cb11d90907b4474065b5092d2084cf5733c8d0ece74ec90f654dcf8b92e0cf016a7f5c6f48c8d02a2f85950f37a609583966a WHIRLPOOL db7b91f267d1321a49743ce682b4ed4f42699cb4b85bb15a3efbd1447e00e70fac1157ff21756bdf547528a6055221cf2296941efdb8bbdee6db6905730fcdc2 +DIST fpc-2.6.2.powerpc64-linux.tar 49336320 SHA256 b4870ad23405324dd3549f03fe6d8662b9dff17eafe681046b28d63be542989e SHA512 e5a8e75302b6281ac14a1b299ee208ffa3f447e87ed3e74113f82b0e99175ebc71a4431bcef26a0fb99ca8566748c743dc69f8d7bc756889f17a7b1e1cfd267b WHIRLPOOL b4725180d5de66ccb64408552a3449a88c7a6ba47213e81411dcef4a1fc14f756d4e73ec6f10082d7572183229fd1da3f7e802b3681cfa2f1b3280ee7c914bcc +DIST fpc-2.6.2.sparc-linux.tar 33843200 SHA256 3a1918c7076e4984f8c085d0dde672907f730940214c5abca2d9513051d1cd79 SHA512 9f6ba30680bd51ccb6b627935ce2cc10dfa8671f621d5ef7d7e047b036c48934829e165c3f9bbac61bbccda8b679ee132fc26e41c4f9b66cf30966481eb81f09 WHIRLPOOL c754e925761d99bc0ad5185d19ee2f0db83a5c5bafca26051efccfeef4db5f3f29464542127d27b950a0cef6463f5333eec7dea260fd386fab74ec5ef26facf6 +DIST fpc-2.6.2.x86_64-linux.tar 48332800 SHA256 e05aed29318c250ce3c494c3938c905c7853620da8cbc4d66ba584160690e558 SHA512 3ac22bff975197b3ecc40bd76bb66093f71253290d6eb095e1bf014cb1cdf0354cf05212516bca008d9b525f906c173c1bf2067eda9015cb3db64a42b576a512 WHIRLPOOL b52d8ba4b97c83bba051a771d1b952839440828bfabd18004ca9b03ba3f1f3763b73396940c965aeeb4944ef05f7f968658629214c0ab777b9b3841286d7d40a +DIST fpc-2.6.4-doc-html.tar.gz 4864530 SHA256 bdfa09ff5d362bc39262fa33f8f4365a4767871df17095b3cbf83582c60d0e3b SHA512 c76b15c3c9c47d687bb4760753f605a169c7e76b8b8478dc4e557d0a172f9e7ce7abb24fc1512f7eaa305807a1f4cb0a1305bb02e983f932b02aa9683026e54d WHIRLPOOL a24a99cc5a0450f377a3235b5d9d697a431e93a9825263869ee5d861dd91a3f3f18ca899beec01a8180e60da24769fb2e85c52c8be307e8fd5497dc3fc01aac9 +DIST fpc-2.6.4-fpctoc.htx.bz2 125626 SHA256 2718b88921370cadee365849224b0edbb3a2a0d4e3f2c9767f4631d246ce5050 SHA512 12fdc2755adfabbda74257b058e00072e5e11925b8e62cf7959b2acab90b3e226b8f51544a127f88fc3cd473ba9794e6c9da4e73c04ced2a0d41994b520cd33d WHIRLPOOL 73279b563c683fdb8c25546b9c3f8438a464ca6499f38e30bab2ab452c943802035753bd8c442fd17f12b02cffe79d29c2d242b38d37ab33e46553376a791331 +DIST fpc-2.6.4.arm-linux.tar 38440960 SHA256 cf0aa330a60327865125e74063ef9e62648f26ce8431fba548204e94c9da3fdc SHA512 3a11ebed39f37021201cac8a7e435d7ef3b1110d6893de7faf33651ff9b5a9aa13b6b529b0011132850386048483a55754ed8b1dba7de2e7ba9b2e881e7f0203 WHIRLPOOL 67e19376a6d5a1a5d374397e2af4d311cde5e2a06e9de31302a5c0f87ae9647c1510ab73216b4e9ab2cab0fd93050662154254cf89cc6a5c365dfad45a67ba04 +DIST fpc-2.6.4.i386-linux.tar 47718400 SHA256 3ca6271d18f9b4f48b4bd6e9500045cd18964aea62abede9cf9f130f3c72e602 SHA512 2c1c33c80553d8a331f4fb35e1b136ab195de9fa03ab566b218a265a64cc75447a697a34472fa9cceeedf1e3acd664fada2cd36d60b319ea43eed7e1f9e57615 WHIRLPOOL 4f2fa5b569907dcec030e4501670b7b2d4b13da429c9ef0900de64cda95820d05a03b290b4487ee86751264647d4218fa3d583f1054f8fb7fc9f39993c740ddb +DIST fpc-2.6.4.powerpc-linux.tar 48220160 SHA256 c1af7e353b7ac40fdd542fbcb6fbfb0cc8f8c68bc0c89e14d3aeeac4c86ed752 SHA512 a78b416a6dd59a10ad50c3549956f15fae5962b64d43be1f1d605befd035732cf860146970dcb410080f9ceb2af1a4f798434fceb11be550cb87d41c72be1810 WHIRLPOOL 4a1d285c682b31f8cdd4cd6c317bd3ad26f88894117c9de71bb982e7ba6aab5fe21075687d4b141d01ef0362c00ea7b3b665d2fd2913e5bafdb6331f049588c3 +DIST fpc-2.6.4.powerpc64-linux.tar 53975040 SHA256 20a0b4ef0810afe826c4dbf7003f72f5968c3b7caa581e3202f29e38c075fa29 SHA512 0e978f68e339f12e2c53c8641c4f0918604b6b970949159dd20c49d65dabb5253d338d180da144eea3c6102a0110c401d03efbd634885220a320fce5fc686b16 WHIRLPOOL 65c3c496a32f86372db1eb7dc81dd413b0c813313fc6acf3d09c90d37c7c923b4c03420c9043b25dc054072bcbec4b8cb1255bd2e95ad1b966001d09d7031982 +DIST fpc-2.6.4.source.tar.gz 29904088 SHA256 c16f2e6e0274c7afc0f1d2dded22d0fec98fe329b1d5b2f011af1655f3a1cc29 SHA512 653968786b40c69c3703f67cddfe7c501686cc8b3524a045498c247dc36b66a6619e9cdb5bb5ca002fb700ddc0b653f2a4298e92527df46fc09c8a69e8e9c3a5 WHIRLPOOL 73fa37e002c1674dee097955b6e199df4bd2a25e0149121810593378b9083660bf1e3eda7398b07d9e97a5a6bdbffe41018d2e40d4b86915076f097422dae417 +DIST fpc-2.6.4.x86_64-linux.tar 50350080 SHA256 196c386f927d772c447fb4c84f61b29133891d14261f0ed3aa773c2f9dda3b39 SHA512 3a993d1f978353a1d68d8ce2cd62748a875b0d0589ed8daf71ebba545b51879b09173e26245e02ac327b5d64932153a7695975c02f3f266642b4ef68e8ff48dc WHIRLPOOL eba5dde2fa6614ebc1e3969a7a8524c779cdb7a3ebdb8855872669387488d5606f0c482cc8e9f8ac9db33203edbb5e0fc01c26c61d3179cd67479167705ecc2a +DIST fpcbuild-2.6.2.tar.gz 55198144 SHA256 75ad700ccc772b07304c286b0aae95f48a504b15fe890a36361d17dc8e92d83c SHA512 ecc28e8c63fd6bdd6a1b02b0aca4b7ac861bd4c0e815146ab34181fff63f3f60102c227e17317efdc30d6e97b6003b708ed9853f1d21f9e5faabcc89c85a91fe WHIRLPOOL 8614adf51cb71072dc1a4ed9b79acb1943b58decfcadbefd260dfbf20b07f9cba1b5c91c3b57ea78cf89ceb4de102e7cc4d0d93c54e7101bbfa3151b80c0af26 +DIST fpcbuild-2.6.4.tar.gz 55604643 SHA256 8d9c3bcfa469d9b37c05663e2775d179809e4b3443604fac7d21aa64c9a56daa SHA512 7c48fb48a3742ffe533a8a172758071c0a1129ffac09231e6969aa1d31bac346dc764598b6ae78dc9d25585a788f6ed4f2b4c39502774d4d3620f09185b807de WHIRLPOOL d2cb72917031f6ffaeb66c2e1e4f0bc18050da2437241da9e6655af4f62aa3e05c7f7c89ba88ba3f96ee20571c3e0d733bebab7a9c2e3f04aa2f0208bb1dc7f9 diff --git a/dev-lang/fpc/fpc-2.6.2.ebuild b/dev-lang/fpc/fpc-2.6.2.ebuild new file mode 100644 index 000000000000..aece8d6df85f --- /dev/null +++ b/dev-lang/fpc/fpc-2.6.2.ebuild @@ -0,0 +1,174 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit toolchain-funcs + +HOMEPAGE="http://www.freepascal.org/" +DESCRIPTION="Free Pascal Compiler" +SRC_URI="mirror://sourceforge/freepascal/fpcbuild-${PV}.tar.gz + amd64? ( mirror://sourceforge/freepascal/${P}.x86_64-linux.tar ) + arm? ( mirror://sourceforge/freepascal/${P}.arm-linux.tar ) + ppc? ( mirror://sourceforge/freepascal/${P}.powerpc-linux.tar ) + ppc64? ( mirror://sourceforge/freepascal/${P}.powerpc64-linux.tar ) + sparc? ( mirror://sourceforge/freepascal/${P}.sparc-linux.tar ) + x86? ( mirror://sourceforge/freepascal/${P}.i386-linux.tar ) + doc? ( mirror://sourceforge/freepascal/Documentation/${PV}/doc-html.tar.gz -> ${P}-doc-html.tar.gz + http://dev.gentoo.org/~radhermit/distfiles/${P}-fpctoc.htx.bz2 )" + +SLOT="0" +LICENSE="GPL-2 LGPL-2.1-with-linking-exception" +KEYWORDS="amd64 ~arm ppc x86" +IUSE="doc ide source" + +RDEPEND="ide? ( !dev-lang/fpc-ide )" + +RESTRICT="strip" #269221 + +S=${WORKDIR}/fpcbuild-${PV}/fpcsrc + +pkg_pretend() { + if [[ ${MERGE_TYPE} != binary ]]; then + # Bug 475210 + if $(tc-getLD) --version | grep -q "GNU gold"; then + eerror "fpc does not function correctly when built with the gold linker." + eerror "Please select the bfd linker with binutils-config." + die "GNU gold detected" + fi + fi +} + +src_unpack() { + case ${ARCH} in + amd64) FPC_ARCH="x86_64" PV_BIN=${PV} ;; + arm) FPC_ARCH="arm" PV_BIN=${PV} ;; + ppc) FPC_ARCH="powerpc" PV_BIN=${PV} ;; + ppc64) FPC_ARCH="powerpc64" PV_BIN=${PV} ;; + sparc) FPC_ARCH="sparc" PV_BIN=${PV} ;; + x86) FPC_ARCH="i386" PV_BIN=${PV} ;; + *) die "This ebuild doesn't support ${ARCH}." ;; + esac + + unpack ${A} + + tar -xf ${P}.${FPC_ARCH}-linux/binary.${FPC_ARCH}-linux.tar || die "Unpacking binary.${FPC_ARCH}-linux.tar failed!" + tar -xzf base.${FPC_ARCH}-linux.tar.gz || die "Unpacking base.${FPC_ARCH}-linux.tar.gz failed!" +} + +src_prepare() { + find "${WORKDIR}" -name Makefile -exec sed -i -e 's/ -Xs / /g' {} + || die + + # let the pkg manager compress man files + sed -i '/find man.* gzip /d' "${WORKDIR}"/fpcbuild-${PV}/install/man/Makefile || die +} + +set_pp() { + case ${ARCH} in + amd64) FPC_ARCH="x64" ;; + arm) FPC_ARCH="arm" ;; + ppc) FPC_ARCH="ppc" ;; + ppc64) FPC_ARCH="ppc64" ;; + sparc) FPC_ARCH="sparc" ;; + x86) FPC_ARCH="386" ;; + *) die "This ebuild doesn't support ${ARCH}." ;; + esac + + case ${1} in + bootstrap) pp="${WORKDIR}"/lib/fpc/${PV_BIN}/ppc${FPC_ARCH} ;; + new) pp="${S}"/compiler/ppc${FPC_ARCH} ;; + *) die "set_pp: unknown argument: ${1}" ;; + esac +} + +src_compile() { + local pp + + # Using the bootstrap compiler. + set_pp bootstrap + + emake -j1 PP="${pp}" compiler_cycle AS="$(tc-getAS)" + + # Save new compiler from cleaning... + cp "${S}"/compiler/ppc${FPC_ARCH} "${S}"/ppc${FPC_ARCH}.new || die + + # ...rebuild with current version... + emake -j1 PP="${S}"/ppc${FPC_ARCH}.new AS="$(tc-getAS)" compiler_cycle + + # ..and clean up afterwards + rm "${S}"/ppc${FPC_ARCH}.new || die + + # Using the new compiler. + set_pp new + + emake -j1 PP="${pp}" AS="$(tc-getAS)" rtl_clean + + emake -j1 PP="${pp}" AS="$(tc-getAS)" rtl packages_all utils + + if use ide ; then + cd "${S}"/ide || die + emake -j1 PP="${pp}" AS="$(tc-getAS)" + fi +} + +src_install() { + local pp + set_pp new + + set -- PP="${pp}" FPCMAKE="${S}/utils/fpcm/fpcmake" \ + INSTALL_PREFIX="${D}"/usr \ + INSTALL_DOCDIR="${D}"/usr/share/doc/${PF} \ + INSTALL_MANDIR="${D}"/usr/share/man \ + INSTALL_SOURCEDIR="${D}"/usr/lib/fpc/${PV}/source + + emake -j1 "$@" compiler_install rtl_install packages_install utils_install + + dosym ../lib/fpc/${PV}/ppc${FPC_ARCH} /usr/bin/ppc${FPC_ARCH} + + cd "${S}"/../install/doc || die + emake -j1 "$@" installdoc + + cd "${S}"/../install/man || die + emake -j1 "$@" installman + + if use doc ; then + cd "${S}"/../../doc || die + dodoc -r * + newdoc "${WORKDIR}"/${P}-fpctoc.htx fpctoc.htx + docompress -x /usr/share/doc/${PF}/fpctoc.htx + fi + + if use ide ; then + cd "${S}"/ide + emake -j1 "$@" install + fi + + if use source ; then + cd "${S}" || die + shift + emake -j1 PP="${D}"/usr/bin/ppc${FPC_ARCH} "$@" sourceinstall + find "${D}"/usr/lib/fpc/${PV}/source -name '*.o' -exec rm {} \; + fi + + "${D}"/usr/lib/fpc/${PV}/samplecfg "${D}"/usr/lib/fpc/${PV} "${D}"/etc || die + + sed -i "s:${D}::g" "${D}"/etc/fpc.cfg || die + + if use ide ; then + sed -e "s:${D}::g" \ + -i "${D}"/etc/fppkg.cfg \ + -i "${D}"/etc/fppkg/* \ + -i "${D}"/usr/lib/fpc/${PV}/ide/text/fp*.cfg \ + || die + fi + + rm -r "${D}"/usr/lib/fpc/lexyacc || die +} + +pkg_postinst() { + if [[ -z ${REPLACING_VERSIONS} ]] && use ide; then + einfo "To read the documentation in the fpc IDE, enable the doc USE flag" + einfo "and add /usr/share/doc/${PF}/fpctoc.htx to the Help Files list." + fi +} diff --git a/dev-lang/fpc/fpc-2.6.4.ebuild b/dev-lang/fpc/fpc-2.6.4.ebuild new file mode 100644 index 000000000000..2d8f16c8d7dd --- /dev/null +++ b/dev-lang/fpc/fpc-2.6.4.ebuild @@ -0,0 +1,175 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit toolchain-funcs + +HOMEPAGE="http://www.freepascal.org/" +DESCRIPTION="Free Pascal Compiler" +SRC_URI="mirror://sourceforge/freepascal/fpcbuild-${PV}.tar.gz + mirror://sourceforge/freepascal/fpc-${PV}.source.tar.gz + amd64? ( mirror://sourceforge/freepascal/${P}.x86_64-linux.tar ) + arm? ( mirror://sourceforge/freepascal/${P}.arm-linux.tar ) + ppc? ( mirror://sourceforge/freepascal/${P}.powerpc-linux.tar ) + ppc64? ( mirror://sourceforge/freepascal/${P}.powerpc64-linux.tar ) + sparc? ( mirror://sourceforge/freepascal/${PN}-2.6.2.sparc-linux.tar ) + x86? ( mirror://sourceforge/freepascal/${P}.i386-linux.tar ) + doc? ( mirror://sourceforge/freepascal/Documentation/${PV}/doc-html.tar.gz -> ${P}-doc-html.tar.gz + http://dev.gentoo.org/~radhermit/distfiles/${P}-fpctoc.htx.bz2 )" + +SLOT="0" +LICENSE="GPL-2 LGPL-2.1-with-linking-exception" +KEYWORDS="amd64 ~arm ppc x86" +IUSE="doc ide source" + +RDEPEND="ide? ( !dev-lang/fpc-ide )" + +RESTRICT="strip" #269221 + +S=${WORKDIR}/fpcbuild-${PV}/fpcsrc + +pkg_pretend() { + if [[ ${MERGE_TYPE} != binary ]]; then + # Bug 475210 + if $(tc-getLD) --version | grep -q "GNU gold"; then + eerror "fpc does not function correctly when built with the gold linker." + eerror "Please select the bfd linker with binutils-config." + die "GNU gold detected" + fi + fi +} + +src_unpack() { + case ${ARCH} in + amd64) FPC_ARCH="x86_64" PV_BIN=${PV} ;; + arm) FPC_ARCH="arm" PV_BIN=${PV} ;; + ppc) FPC_ARCH="powerpc" PV_BIN=${PV} ;; + ppc64) FPC_ARCH="powerpc64" PV_BIN=${PV} ;; + sparc) FPC_ARCH="sparc" PV_BIN=2.6.2 ;; + x86) FPC_ARCH="i386" PV_BIN=${PV} ;; + *) die "This ebuild doesn't support ${ARCH}." ;; + esac + + unpack ${A} + + tar -xf ${PN}-${PV_BIN}.${FPC_ARCH}-linux/binary.${FPC_ARCH}-linux.tar || die "Unpacking binary.${FPC_ARCH}-linux.tar failed!" + tar -xzf base.${FPC_ARCH}-linux.tar.gz || die "Unpacking base.${FPC_ARCH}-linux.tar.gz failed!" +} + +src_prepare() { + find "${WORKDIR}" -name Makefile -exec sed -i -e 's/ -Xs / /g' {} + || die + + # let the pkg manager compress man files + sed -i '/find man.* gzip /d' "${WORKDIR}"/fpcbuild-${PV}/install/man/Makefile || die +} + +set_pp() { + case ${ARCH} in + amd64) FPC_ARCH="x64" ;; + arm) FPC_ARCH="arm" ;; + ppc) FPC_ARCH="ppc" ;; + ppc64) FPC_ARCH="ppc64" ;; + sparc) FPC_ARCH="sparc" ;; + x86) FPC_ARCH="386" ;; + *) die "This ebuild doesn't support ${ARCH}." ;; + esac + + case ${1} in + bootstrap) pp="${WORKDIR}"/lib/fpc/${PV_BIN}/ppc${FPC_ARCH} ;; + new) pp="${S}"/compiler/ppc${FPC_ARCH} ;; + *) die "set_pp: unknown argument: ${1}" ;; + esac +} + +src_compile() { + local pp + + # Using the bootstrap compiler. + set_pp bootstrap + + emake -j1 PP="${pp}" compiler_cycle AS="$(tc-getAS)" + + # Save new compiler from cleaning... + cp "${S}"/compiler/ppc${FPC_ARCH} "${S}"/ppc${FPC_ARCH}.new || die + + # ...rebuild with current version... + emake -j1 PP="${S}"/ppc${FPC_ARCH}.new AS="$(tc-getAS)" compiler_cycle + + # ..and clean up afterwards + rm "${S}"/ppc${FPC_ARCH}.new || die + + # Using the new compiler. + set_pp new + + emake -j1 PP="${pp}" AS="$(tc-getAS)" rtl_clean + + emake -j1 PP="${pp}" AS="$(tc-getAS)" rtl packages_all utils + + if use ide ; then + cd "${S}"/ide || die + emake -j1 PP="${pp}" AS="$(tc-getAS)" + fi +} + +src_install() { + local pp + set_pp new + + set -- PP="${pp}" FPCMAKE="${S}/utils/fpcm/fpcmake" \ + INSTALL_PREFIX="${D}"/usr \ + INSTALL_DOCDIR="${D}"/usr/share/doc/${PF} \ + INSTALL_MANDIR="${D}"/usr/share/man \ + INSTALL_SOURCEDIR="${D}"/usr/lib/fpc/${PV}/source + + emake -j1 "$@" compiler_install rtl_install packages_install utils_install + + dosym ../lib/fpc/${PV}/ppc${FPC_ARCH} /usr/bin/ppc${FPC_ARCH} + + cd "${S}"/../install/doc || die + emake -j1 "$@" installdoc + + cd "${S}"/../install/man || die + emake -j1 "$@" installman + + if use doc ; then + cd "${S}"/../../doc || die + dodoc -r * + newdoc "${WORKDIR}"/${P}-fpctoc.htx fpctoc.htx + docompress -x /usr/share/doc/${PF}/fpctoc.htx + fi + + if use ide ; then + cd "${S}"/ide + emake -j1 "$@" install + fi + + if use source ; then + cd "${S}" || die + shift + emake -j1 PP="${D}"/usr/bin/ppc${FPC_ARCH} "$@" sourceinstall + find "${D}"/usr/lib/fpc/${PV}/source -name '*.o' -exec rm {} \; + fi + + "${D}"/usr/lib/fpc/${PV}/samplecfg "${D}"/usr/lib/fpc/${PV} "${D}"/etc || die + + sed -i "s:${D}::g" "${D}"/etc/fpc.cfg || die + + if use ide ; then + sed -e "s:${D}::g" \ + -i "${D}"/etc/fppkg.cfg \ + -i "${D}"/etc/fppkg/* \ + -i "${D}"/usr/lib/fpc/${PV}/ide/text/fp*.cfg \ + || die + fi + + rm -r "${D}"/usr/lib/fpc/lexyacc || die +} + +pkg_postinst() { + if [[ -z ${REPLACING_VERSIONS} ]] && use ide; then + einfo "To read the documentation in the fpc IDE, enable the doc USE flag" + einfo "and add /usr/share/doc/${PF}/fpctoc.htx to the Help Files list." + fi +} diff --git a/dev-lang/fpc/metadata.xml b/dev-lang/fpc/metadata.xml new file mode 100644 index 000000000000..b2e0e1884e31 --- /dev/null +++ b/dev-lang/fpc/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <herd>lang-misc</herd> + <use> + <flag name="ide">Build and install the Free Pascal Compiler IDE</flag> + </use> + <upstream> + <remote-id type="sourceforge">freepascal</remote-id> + </upstream> +</pkgmetadata> diff --git a/dev-lang/fsharp/Manifest b/dev-lang/fsharp/Manifest new file mode 100644 index 000000000000..c06d43040807 --- /dev/null +++ b/dev-lang/fsharp/Manifest @@ -0,0 +1 @@ +DIST fsharp-3.1.1.31.tar.gz 31369171 SHA256 9b39c3f4625475c2553668ddbca337ec52fa3a637a05ae14a61a41abe39568b0 SHA512 fcbdad5780a5dd6ab55c380d70b8d0a38f25088e2bb49078468a2cd723b604a14bee6ba2d1005094b1f777a894208654b3f8d3876c5f72126ddc24f96e1eb049 WHIRLPOOL e9060e1e8ccfd3b0efcfeb1148cb5182390e738e8b462746e87d52acaacf5561b53cde50c920a1e4f6929ddf9f3ad0ca6a7d1e9eb8fd3b10af37a375675df019 diff --git a/dev-lang/fsharp/fsharp-3.1.1.31.ebuild b/dev-lang/fsharp/fsharp-3.1.1.31.ebuild new file mode 100644 index 000000000000..ef9be8c1c83c --- /dev/null +++ b/dev-lang/fsharp/fsharp-3.1.1.31.ebuild @@ -0,0 +1,28 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="5" + +AUTOTOOLS_AUTORECONF=1 + +inherit autotools-utils mono-env + +DESCRIPTION="The F# Compiler" +HOMEPAGE="https://github.com/fsharp/fsharp" +SRC_URI="https://github.com/fsharp/fsharp/archive/${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~x86 ~amd64" +IUSE="" + +MAKEOPTS+=" -j1" #nowarn +DEPEND="dev-lang/mono" +RDEPEND="${DEPEND}" + +AUTOTOOLS_IN_SOURCE_BUILD=1 + +src_install() { + autotools-utils_src_install +} diff --git a/dev-lang/fsharp/metadata.xml b/dev-lang/fsharp/metadata.xml new file mode 100644 index 000000000000..1740437050d0 --- /dev/null +++ b/dev-lang/fsharp/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <herd>dotnet</herd> + <longdescription> + Mono/.NET open-source, strongly typed, multi-paradigm programming language encompassing functional, imperative and object-oriented programming techniques. Most often used as a cross-platform CLI language. + </longdescription> + <upstream> + <remote-id type="github">fsharp/fsharp</remote-id> + </upstream> +</pkgmetadata> diff --git a/dev-lang/gdl/Manifest b/dev-lang/gdl/Manifest new file mode 100644 index 000000000000..4a390d7fcd98 --- /dev/null +++ b/dev-lang/gdl/Manifest @@ -0,0 +1,2 @@ +DIST gdl-0.9.4.tar.gz 2191342 SHA256 e18010cd874cad7b1fd8c752e9386571156e1fb066f2d27ecbcc15bbfc9514fa SHA512 46921eb3333a6b890187a6c75f71758e5e234b76d61a194e17de81ace10760659a4a676060490a5ef7374fd1acadf47c7f565133c19ea165e04c54a577b3c723 WHIRLPOOL a760fcf37e47235e3d21c8c852b65560894e29cfe3684bfee6e83f2d1d060dcaa41a2f9e60e41cbae55d9e5a2036518a5aad22cfd6f07b951a978e1ba2446eae +DIST gdl-0.9.5.tar.gz 2341992 SHA256 cc9635e836b5ea456cad93f8a07d589aed8649668fbd14c4aad22091991137e2 SHA512 10f004956fedc1ae5a99a9398f82e64982267a59637fc8823591b9573df9ce136b303a0fcebd774475b9bea266a640e2b66cd590c85b57b6cf505f40448e0d3a WHIRLPOOL 6ef59fc574ce26e798d30e9b4fdec9f49b82933b500901c8013c60de884ed6601d99c58ecd17221191cea121914dffce4c59211ce86b2c43fb40d43ce7ce033b diff --git a/dev-lang/gdl/files/0.9.2-antlr.patch b/dev-lang/gdl/files/0.9.2-antlr.patch new file mode 100644 index 000000000000..9c8e6abb2358 --- /dev/null +++ b/dev-lang/gdl/files/0.9.2-antlr.patch @@ -0,0 +1,76 @@ +diff -Nur gdl-0.9.2.orig/CMakeLists.txt gdl-0.9.2/CMakeLists.txt +--- gdl-0.9.2.orig/CMakeLists.txt 2011-12-22 20:18:17.000000000 +0000 ++++ gdl-0.9.2/CMakeLists.txt 2011-12-22 20:32:20.000000000 +0000 +@@ -94,6 +94,8 @@ + + set(GDL_DATA_DIR "/share/gnudatalanguage" CACHE PATH "Choose data install directory relative to CMAKE_INSTALL_PREFIX") + ++set(BUNDLED_ANTLR OFF CACHE BOOL "Use bundled ANTLR grammar ?") ++set(ANTLRDIR "" CACHE PATH "Specify the system ANTLR directory tree") + + # check for 64-bit OS + if(${CMAKE_SIZEOF_VOID_P} EQUAL 8) +@@ -143,9 +145,15 @@ + # mpi + check_include_file(mpi.h HAVE_MPI_H) + +-# SA: whithout it compilation of antlr fails if there's a conflicting +-# version of antlr in system-wide directories +-include_directories(src) ++if(BUNDLED_ANTLR) ++ # SA: whithout it compilation of antlr fails if there's a conflicting ++ # version of antlr in system-wide directories ++ include_directories(src) ++else(BUNDLED_ANTLR) ++ find_package(ANTLR QUIET) ++ set(LIBRARIES ${LIBRARIES} ${ANTLR_LIBRARIES}) ++ include_directories(${ANTLR_INCLUDE_DIR}) ++endif(BUNDLED_ANTLR) + + # Ncurses MANDATORY + # -DNCURSESDIR=DIR +diff -Nur gdl-0.9.2.orig/CMakeModules/FindANTLR.cmake gdl-0.9.2/CMakeModules/FindANTLR.cmake +--- gdl-0.9.2.orig/CMakeModules/FindANTLR.cmake 1970-01-01 01:00:00.000000000 +0100 ++++ gdl-0.9.2/CMakeModules/FindANTLR.cmake 2011-12-22 21:03:34.000000000 +0000 +@@ -0,0 +1,11 @@ ++ ++ ++find_library(ANTLR_LIBRARIES NAMES antlr) ++find_path(ANTLR_INCLUDE_DIR NAMES antlr/ANTLRUtil.hpp) ++include(FindPackageHandleStandardArgs) ++find_package_handle_standard_args(ANTLR DEFAULT_MSG ANTLR_LIBRARIES ANTLR_INCLUDE_DIR) ++ ++mark_as_advanced( ++ANTLR_LIBRARIES ++ANTLR_INCLUDE_DIR ++) +diff -Nur gdl-0.9.2.orig/src/CMakeLists.txt gdl-0.9.2/src/CMakeLists.txt +--- gdl-0.9.2.orig/src/CMakeLists.txt 2011-12-22 20:18:17.000000000 +0000 ++++ gdl-0.9.2/src/CMakeLists.txt 2011-12-22 20:31:27.000000000 +0000 +@@ -224,9 +224,8 @@ + widget.cpp + ) + +-add_subdirectory(antlr) + +-include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/src/antlr ${CMAKE_BINARY_DIR}) ++include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/src ${CMAKE_BINARY_DIR}) + link_directories(${LINK_DIRECTORIES}) + + if(PYTHON_MODULE) #libgdl +@@ -237,8 +236,13 @@ + add_executable(gdl ${SOURCES}) + endif(PYTHON_MODULE) + +-add_dependencies(gdl antlr) # be sure that antlr is built before gdl +-target_link_libraries(gdl antlr) # link antlr against gdl ++if(BUNDLED_ANTLR) ++ add_subdirectory(antlr) ++ include_directories(${CMAKE_SOURCE_DIR}/src/antlr) ++ add_dependencies(gdl antlr) # be sure that antlr is built before gdl ++ target_link_libraries(gdl antlr) # link antlr against gdl ++endif(BUNDLED_ANTLR) ++ + target_link_libraries(gdl ${LIBRARIES}) + add_definitions(-DHAVE_CONFIG_H) + diff --git a/dev-lang/gdl/files/0.9.2-include.patch b/dev-lang/gdl/files/0.9.2-include.patch new file mode 100644 index 000000000000..49613da16e21 --- /dev/null +++ b/dev-lang/gdl/files/0.9.2-include.patch @@ -0,0 +1,10 @@ +--- gdl-0.9.2.orig/src/cformat.g 2010-07-25 17:59:19.000000000 +0100 ++++ gdl-0.9.2/src/cformat.g 2012-06-21 16:34:12.000000000 +0100 +@@ -16,6 +16,7 @@ + ***************************************************************************/ + + header "pre_include_cpp" { ++#include <cstdlib> + #include "includefirst.hpp" + } + diff --git a/dev-lang/gdl/files/0.9.2-proj4.patch b/dev-lang/gdl/files/0.9.2-proj4.patch new file mode 100644 index 000000000000..594b6d5cbae8 --- /dev/null +++ b/dev-lang/gdl/files/0.9.2-proj4.patch @@ -0,0 +1,27 @@ +--- gdl-0.9.2.orig/CMakeLists.txt 2011-12-22 20:18:17.000000000 +0000 ++++ gdl-0.9.2/CMakeLists.txt 2011-12-24 06:12:08.000000000 +0000 +@@ -412,17 +420,17 @@ + find_package(Libproj4 QUIET) + if(LIBPROJ4_FOUND) + set(CMAKE_REQUIRED_LIBRARIES ${LIBPROJ4_LIBRARIES} ${GSL_LIBRARIES} m) +- check_library_exists("${LIBPROJ4_LIBRARIES}" proj_init "" USE_LIBPROJ4_NEW) +- if(USE_LIBPROJ4_NEW) ++ check_library_exists("${LIBPROJ4_LIBRARIES}" proj_init "" USE_LIBPROJ4) ++ if(USE_LIBPROJ4) + set(USE_LIBPROJ4 1) +- else(USE_LIBPROJ4_NEW) +- check_library_exists("${LIBPROJ4_LIBRARIES}" pj_init "" USE_LIBPROJ4) +- if(NOT USE_LIBPROJ4) ++ else(USE_LIBPROJ4) ++ check_library_exists("${LIBPROJ4_LIBRARIES}" pj_init "" USE_LIBPROJ4_NEW) ++ if(NOT USE_LIBPROJ4_NEW) + message(FATAL_ERROR "Libproj4 is required but was not found.\n" + "Use -DLIBPROJ4DIR=DIR to specify the Libproj4 directory tree.\n" + "Use -DLIBPRJ4=OFF to not use it.") +- endif(NOT USE_LIBPROJ4) +- endif(USE_LIBPROJ4_NEW) ++ endif(NOT USE_LIBPROJ4_NEW) ++ endif(USE_LIBPROJ4) + include_directories(${LIBPROJ4_INCLUDE_DIR}) + set(LIBRARIES ${LIBRARIES} ${LIBPROJ4_LIBRARIES}) + set(CMAKE_REQUIRED_LIBRARIES) diff --git a/dev-lang/gdl/files/0.9.2-semaphore.patch b/dev-lang/gdl/files/0.9.2-semaphore.patch new file mode 100644 index 000000000000..f2a28042f8d1 --- /dev/null +++ b/dev-lang/gdl/files/0.9.2-semaphore.patch @@ -0,0 +1,22 @@ +--- gdl-0.9.2/CMakeLists.txt 2011-11-06 22:39:45.000000000 +0000 ++++ gdl-0.9.2/CMakeLists.txt.new 2012-06-21 00:02:42.000000000 +0100 +@@ -217,6 +217,19 @@ + add_definitions(${OpenMP_CXX_FLAGS}) + set(LIBRARIES ${LIBRARIES} ${OpenMP_CXX_FLAGS}) + endif(OPENMP_FOUND) ++else(OPENMP) ++ # we need to define those semaphore posix symbols, do it with threads libs ++ find_package(Threads) ++ if(THREADS_FOUND) ++ set(LIBRARIES ${LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}) ++ else(THREADS_FOUND) ++ check_library_exists(rt sem_unlink "" HAVE_RT) ++ if(HAVE_RT) ++ set(LIBRARIES ${LIBRARIES} rt) ++ else(HAVE_RT) ++ message(FATAL_ERROR "Missing a POSIX semaphore symbols (rt or threads).\n") ++ endif(HAVE_RT) ++ endif(THREADS_FOUND) + endif(OPENMP) + + # GSL MANDATORY diff --git a/dev-lang/gdl/files/0.9.3-plwidth.patch b/dev-lang/gdl/files/0.9.3-plwidth.patch new file mode 100644 index 000000000000..b09e1a88f5d3 --- /dev/null +++ b/dev-lang/gdl/files/0.9.3-plwidth.patch @@ -0,0 +1,158 @@ +diff -up gdl-0.9.3/CMakeLists.txt.plwidth gdl-0.9.3/CMakeLists.txt +--- gdl-0.9.3/CMakeLists.txt.plwidth 2013-08-27 16:55:33.806600443 -0600 ++++ gdl-0.9.3/CMakeLists.txt 2013-08-27 16:55:36.589590528 -0600 +@@ -23,6 +23,7 @@ include(CheckLibraryExists) + include(CheckFunctionExists) + include(CheckSymbolExists) + include(CheckCSourceRuns) ++include(CheckCXXSourceCompiles) + include(FindPkgConfig) + include(FindPackageHandleStandardArgs) + +@@ -302,6 +303,18 @@ if(PLPLOT_FOUND) + message(STATUS "warning, due to old plplot library, [XYZ]TICKFORMAT option for plot axis will not be supported.\n" + "you should upgrade to plplot version > 5.9.6") + endif(HAVE_PLPLOT_SLABELFUNC) ++ set(CMAKE_REQUIRED_INCLUDES "${PLPLOT_INCLUDE_DIR}") ++ set(CMAKE_REQUIRED_LIBRARIES "${PLPLOT_LIBRARIES}") ++ check_cxx_source_compiles(" ++#include <plplot/plstream.h> ++int main(int argc, char **argv) { ++ plstream *p = new plstream(); ++ PLFLT w = 0.5; ++ p->width(w); ++}" HAVE_PLPLOT_WIDTH) ++ if(HAVE_PLPLOT_WIDTH) ++ set(HAVE_PLPLOT_WIDTH 1) ++ endif(HAVE_PLPLOT_WIDTH) + check_library_exists("${PLPLOT_LIBRARIES}" plstrl "" PLPLOT_PRIVATE_NOT_HIDDEN) + if(PLPLOT_PRIVATE_NOT_HIDDEN) + set(PLPLOT_PRIVATE_NOT_HIDDEN 1) +diff -up gdl-0.9.3/config.h.cmake.plwidth gdl-0.9.3/config.h.cmake +--- gdl-0.9.3/config.h.cmake.plwidth 2013-08-27 16:55:33.808600436 -0600 ++++ gdl-0.9.3/config.h.cmake 2013-08-27 16:55:36.589590528 -0600 +@@ -28,6 +28,7 @@ + #cmakedefine HAVE_NEXTTOWARD 1 + #cmakedefine HAVE_OLDPLPLOT 1 + #cmakedefine HAVE_PLPLOT_SLABELFUNC 1 ++#cmakedefine HAVE_PLPLOT_WIDTH 1 + #cmakedefine PLPLOT_PRIVATE_NOT_HIDDEN 1 + #cmakedefine PLPLOT_HAS_LEGEND + #ifndef HAVE_STDINT_H +diff -up gdl-0.9.3/src/plotting_contour.cpp.plwidth gdl-0.9.3/src/plotting_contour.cpp +--- gdl-0.9.3/src/plotting_contour.cpp.plwidth 2013-08-27 16:55:33.883600169 -0600 ++++ gdl-0.9.3/src/plotting_contour.cpp 2013-08-27 16:55:36.590590524 -0600 +@@ -705,7 +705,11 @@ namespace lib + actStream->pat(1,&ori,&spa); + + if (docolors) actStream->Color ( ( *colors )[i%colors->N_Elements ( )], decomposed, (PLINT)colorindex_table_0_color ); ++#if (HAVE_PLPLOT_WIDTH) ++ if (dothick) actStream->width ( static_cast<PLFLT>(( *thick )[i%thick->N_Elements ( )])); ++#else + if (dothick) actStream->wid ( ( *thick )[i%thick->N_Elements ( )]); ++#endif + if (dostyle) gdlLineStyle(actStream, ( *style )[i%style->N_Elements ( )]); + actStream->shade( map, xEl, yEl, isLog?doIt:NULL, xStart, xEnd, yStart, yEnd, + clevel[i], clevel[i+1], +@@ -788,7 +792,11 @@ namespace lib + actStream->stransform(gdl3dTo2dTransformContour, &Data3d); + } + if (docolors) actStream->Color ( ( *colors )[i%colors->N_Elements ( )], decomposed, 2); ++#if (HAVE_PLPLOT_WIDTH) ++ if (dothick) actStream->width ( static_cast<PLFLT>(( *thick )[i%thick->N_Elements ( )])); ++#else + if (dothick) actStream->wid ( ( *thick )[i%thick->N_Elements ( )]); ++#endif + if (dostyle) gdlLineStyle(actStream, ( *style )[i%style->N_Elements ( )]); + if (dolabels) actStream->setcontlabelparam ( LABELOFFSET, (PLFLT) label_size, LABELSPACING, + (PLINT)(*labels)[i%labels->N_Elements()] ); +diff -up gdl-0.9.3/src/plotting.cpp.plwidth gdl-0.9.3/src/plotting.cpp +--- gdl-0.9.3/src/plotting.cpp.plwidth 2013-08-27 16:55:33.886600158 -0600 ++++ gdl-0.9.3/src/plotting.cpp 2013-08-27 16:58:33.707952697 -0600 +@@ -1891,7 +1891,11 @@ namespace lib + DFloatGDL* charthickVect=e->GetKWAs<DFloatGDL>( charthickIx ); + charthick=(*charthickVect)[0]; + } ++#if (HAVE_PLPLOT_WIDTH) ++ a->width(static_cast<PLFLT>(charthick)); ++#else + a->wid(charthick); ++#endif + } + + void gdlSetAxisCharsize(EnvT *e, GDLGStream *a, string axis) +@@ -1919,7 +1923,11 @@ namespace lib + + e->AssureFloatScalarKWIfPresent("THICK", thick); + if ( thick<=0.0 ) thick=1.0; ++#if (HAVE_PLPLOT_WIDTH) ++ a->width(static_cast<PLFLT>(thick)); ++#else + a->wid(static_cast<PLINT>(floor(thick-0.5))); ++#endif + } + + //LINESTYLE +@@ -2932,7 +2940,11 @@ namespace lib + a->smaj((PLFLT)OtherAxisSizeInMm, 1.0); //set base ticks to default 0.02 viewport converted to mm. + a->smin((PLFLT)OtherAxisSizeInMm/2.0,1.0); //idem min (plplt defaults) + //thick for box and ticks. ++#if (HAVE_PLPLOT_WIDTH) ++ a->width(static_cast<PLFLT>(Thick)); ++#else + a->wid(Thick); ++#endif + //ticks or grid eventually with style and length: + if (abs(TickLen)<1e-6) Opt=""; else Opt="st"; //remove ticks if ticklen=0 + if (TickLen<0) {Opt+="i"; TickLen=-TickLen;} +@@ -2977,7 +2989,11 @@ namespace lib + else if (axis=="Y") a->box("", 0.0, 0 , Opt.c_str(), 0.0, 0); + } + //reset charsize & thick ++#if (HAVE_PLPLOT_WIDTH) ++ a->width(1.0); ++#else + a->wid(1); ++#endif + a->sizeChar(1.0); + } + return 0; +@@ -3120,7 +3136,11 @@ namespace lib + a->smaj((PLFLT)OtherAxisSizeInMm, 1.0); //set base ticks to default 0.02 viewport converted to mm. + a->smin((PLFLT)OtherAxisSizeInMm/2.0,1.0); //idem min (plplt defaults) + //thick for box and ticks. ++#if (HAVE_PLPLOT_WIDTH) ++ a->width(static_cast<PLFLT>(Thick)); ++#else + a->wid(Thick); ++#endif + //ticks or grid eventually with style and length: + if (abs(TickLen)<1e-6) Opt=""; else Opt="st"; //remove ticks if ticklen=0 + if (TickLen<0) {Opt+="i"; TickLen=-TickLen;} +@@ -3145,7 +3165,11 @@ namespace lib + else if (axis=="Z") a->box3("","",0,0,"","",0,0, Opt.c_str(), "", TickInterval, Minor); + } + //reset charsize & thick ++#if (HAVE_PLPLOT_WIDTH) ++ a->width(1.0); ++#else + a->wid(1); ++#endif + a->sizeChar(1.0); + } + return 0; +diff -up gdl-0.9.3/src/plotting_xyouts.cpp.plwidth gdl-0.9.3/src/plotting_xyouts.cpp +--- gdl-0.9.3/src/plotting_xyouts.cpp.plwidth 2013-08-27 16:55:33.892600137 -0600 ++++ gdl-0.9.3/src/plotting_xyouts.cpp 2013-08-27 16:55:36.591590521 -0600 +@@ -339,7 +339,11 @@ namespace lib + //plot!
+ if (docharsize) actStream->sizeChar(( *size )[i%size->N_Elements ( )]);
+ if (docolor) actStream->Color ( ( *color )[i%color->N_Elements ( )], decomposed, 2);
++#if (HAVE_PLPLOT_WIDTH)
++ if (docharthick) actStream->width ( static_cast<PLFLT>(( *charthick )[i%charthick->N_Elements ( )]));
++#else
+ if (docharthick) actStream->wid ( ( *charthick )[i%charthick->N_Elements ( )]);
++#endif
+ //orientation word is not orientation page depending on axes increment direction [0..1] vs. [1..0]
+ PLFLT oriD=(( *orientation )[i%orientation->N_Elements ( )]); //ori DEVICE
+ PLFLT oriW=oriD; //ori WORLD
diff --git a/dev-lang/gdl/files/0.9.4-gsl.patch b/dev-lang/gdl/files/0.9.4-gsl.patch new file mode 100644 index 000000000000..3a96a41adcde --- /dev/null +++ b/dev-lang/gdl/files/0.9.4-gsl.patch @@ -0,0 +1,62 @@ +diff -up gdl-0.9.4/src/gsl_matrix.cpp.gsl gdl-0.9.4/src/gsl_matrix.cpp +--- gdl-0.9.4/src/gsl_matrix.cpp.gsl 2013-09-20 10:10:02.000000000 -0600 ++++ gdl-0.9.4/src/gsl_matrix.cpp 2013-10-03 13:50:41.089660703 -0600 +@@ -41,10 +41,11 @@ namespace lib { + const int szdbl=sizeof(DDouble); + const int szflt=sizeof(DFloat); + const int szlng=sizeof(DLong); ++ const int szlng64=sizeof(DLong64); + + void ludc_pro( EnvT* e) + { +- // cout << szdbl << " " <<szflt << " " << szlng << endl; ++ // cout << szdbl << " " <<szflt << " " << szlng << " " szlng64 << endl; + + SizeT nParam=e->NParam(1); + // if( nParam == 0) +@@ -120,9 +121,15 @@ namespace lib { + dimension dim1(&n, (SizeT) 1); + BaseGDL** p1D = &e->GetPar( 1); + GDLDelete((*p1D)); +- *p1D = new DLongGDL(dim1, BaseGDL::NOZERO); +- memcpy(&(*(DLongGDL*) *p1D)[0], p->data, +- p0->Dim(0)*szlng); ++ if (sizeof(size_t) == szlng) { ++ *p1D = new DLongGDL(dim1, BaseGDL::NOZERO); ++ memcpy(&(*(DLongGDL*) *p1D)[0], p->data, ++ p0->Dim(0)*szlng); ++ } else { ++ *p1D = new DLong64GDL(dim1, BaseGDL::NOZERO); ++ memcpy(&(*(DLong64GDL*) *p1D)[0], p->data, ++ p0->Dim(0)*szlng64); ++ } + + // gsl_matrix_free(mat); + // gsl_permutation_free(p); +@@ -189,10 +196,15 @@ namespace lib { + GDLGuard<gsl_matrix> g1(mat,gsl_matrix_free); + memcpy(mat->data, &(*p0D)[0], nEl*szdbl); + +- DLongGDL* p1L =e->GetParAs<DLongGDL>(1); + gsl_permutation *p = gsl_permutation_alloc (nEl1); + GDLGuard<gsl_permutation> g2(p,gsl_permutation_free); +- memcpy(p->data, &(*p1L)[0], nEl1*szlng); ++ if (sizeof(size_t) == szlng) { ++ DLongGDL* p1L =e->GetParAs<DLongGDL>(1); ++ memcpy(p->data, &(*p1L)[0], nEl1*szlng); ++ } else { ++ DLong64GDL* p1L =e->GetParAs<DLong64GDL>(1); ++ memcpy(p->data, &(*p1L)[0], nEl1*szlng64); ++ } + + DDoubleGDL *p2D = e->GetParAs<DDoubleGDL>(2); + gsl_vector *b = gsl_vector_alloc(nEl2); +@@ -222,7 +234,7 @@ namespace lib { + DDoubleGDL* res = new DDoubleGDL( p2->Dim(), BaseGDL::NOZERO); + memcpy(&(*res)[0], x->data, nEl1*szdbl); + +-// gsl_matrix_free(mat); ++// gsl_matrix_free(mat);Parameter + // gsl_vector_free(x); + // gsl_permutation_free(p); + // b ??? diff --git a/dev-lang/gdl/files/0.9.4-plplot.patch b/dev-lang/gdl/files/0.9.4-plplot.patch new file mode 100644 index 000000000000..fac18ec5e699 --- /dev/null +++ b/dev-lang/gdl/files/0.9.4-plplot.patch @@ -0,0 +1,18 @@ + CMakeModules/FindPlplot.cmake | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/CMakeModules/FindPlplot.cmake b/CMakeModules/FindPlplot.cmake +index a503f8c..cdaeb24 100644 +--- a/CMakeModules/FindPlplot.cmake ++++ b/CMakeModules/FindPlplot.cmake +@@ -9,8 +9,8 @@ + # + + +-find_library(PLPLOT_LIBRARY NAMES plplotd) +-find_library(PLPLOTCXX_LIBRARY NAMES plplotcxxd) ++find_library(PLPLOT_LIBRARY NAMES plplotd plplot) ++find_library(PLPLOTCXX_LIBRARY NAMES plplotcxxd plplotcxx) + set(PLPLOT_LIBRARIES ${PLPLOT_LIBRARY} ${PLPLOTCXX_LIBRARY}) + find_path(PLPLOT_INCLUDE_DIR NAMES plplot/plplot.h) + include(FindPackageHandleStandardArgs) diff --git a/dev-lang/gdl/files/0.9.4-python.patch b/dev-lang/gdl/files/0.9.4-python.patch new file mode 100644 index 000000000000..709f8c140cd0 --- /dev/null +++ b/dev-lang/gdl/files/0.9.4-python.patch @@ -0,0 +1,12 @@ +diff -up gdl-0.9.4/src/pythongdl.cpp.python gdl-0.9.4/src/pythongdl.cpp +--- gdl-0.9.4/src/pythongdl.cpp.python 2013-07-26 03:30:32.000000000 -0600 ++++ gdl-0.9.4/src/pythongdl.cpp 2013-09-30 10:24:27.092666180 -0600 +@@ -373,7 +373,7 @@ PyObject *GDLSub( PyObject *self, PyObje + if( libCall) + e = new EnvT( NULL, sub); + else +- e = new EnvUDT( NULL, sub); ++ e = new EnvUDT( NULL, static_cast<DSubUD*>(sub)); + + Guard< EnvBaseT> e_guard( e); + diff --git a/dev-lang/gdl/files/0.9.4-python2.patch b/dev-lang/gdl/files/0.9.4-python2.patch new file mode 100644 index 000000000000..8dc92324a581 --- /dev/null +++ b/dev-lang/gdl/files/0.9.4-python2.patch @@ -0,0 +1,17 @@ + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 1fda8ee..e2170b2 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -615,8 +615,8 @@ if(PYTHON OR PYTHON_MODULE) + else() + set(PythonLibs_FIND_VERSION 2) + endif() +- find_package(PythonLibs) + include(FindPythonInterp) ++ find_package(PythonLibs) + endif() + set(USE_PYTHON ${PYTHONLIBS_FOUND}) + if(PYTHONLIBS_FOUND) diff --git a/dev-lang/gdl/files/0.9.4-reorder.patch b/dev-lang/gdl/files/0.9.4-reorder.patch new file mode 100644 index 000000000000..d871757a29d0 --- /dev/null +++ b/dev-lang/gdl/files/0.9.4-reorder.patch @@ -0,0 +1,380 @@ +diff -up gdl-0.9.4/src/allix.hpp.reorder gdl-0.9.4/src/allix.hpp +--- gdl-0.9.4/src/allix.hpp.reorder 2012-12-11 10:39:35.000000000 -0700 ++++ gdl-0.9.4/src/allix.hpp 2013-10-04 10:59:22.666594845 -0600 +@@ -344,9 +344,9 @@ private: + public: + AllIxAllIndexedT( ArrayIndexVectorT* ixList_, SizeT acRank_, SizeT nIx_, const SizeT* varStride_) + : ixList( ixList_) ++ , varStride( varStride_) + , acRank( acRank_) + , nIx( nIx_) +- , varStride( varStride_) + {} + ~AllIxAllIndexedT() {} + +@@ -384,11 +384,11 @@ private: + public: + AllIxNewMultiT( ArrayIndexVectorT* ixList_, SizeT acRank_, SizeT nIx_, const SizeT* varStride_, SizeT* nIterLimit_, SizeT* stride_) + : ixList( ixList_) +- , acRank( acRank_) +- , nIx( nIx_) + , varStride( varStride_) + , nIterLimit( nIterLimit_) + , stride( stride_) ++ , acRank( acRank_) ++ , nIx( nIx_) + { + add = 0; + assert( varStride[0] == 1); +@@ -440,10 +440,10 @@ private: + public: + AllIxNewMulti2DT( ArrayIndexVectorT* ixList_, SizeT nIx_, const SizeT* varStride_, SizeT* nIterLimit_, SizeT* stride_) + : ixList( ixList_) +- , nIx( nIx_) + , varStride( varStride_) + , nIterLimit( nIterLimit_) + , stride( stride_) ++ , nIx( nIx_) + { + add = 0; + if( !(*ixList)[0]->Indexed()) +@@ -499,11 +499,11 @@ private: + public: + AllIxNewMultiNoneIndexedT( ArrayIndexVectorT* ixList_, SizeT acRank_, SizeT nIx_, const SizeT* varStride_, SizeT* nIterLimit_, SizeT* stride_) + : ixList( ixList_) +- , acRank( acRank_) +- , nIx( nIx_) + , varStride( varStride_) + , nIterLimit( nIterLimit_) + , stride( stride_) ++ , acRank( acRank_) ++ , nIx( nIx_) + { + assert( varStride[0] == 1); + add = 0; +@@ -548,10 +548,10 @@ private: + public: + AllIxNewMultiNoneIndexed2DT( ArrayIndexVectorT* ixList_, SizeT nIx_, const SizeT* varStride_, SizeT* nIterLimit_, SizeT* stride_) + : ixList( ixList_) +- , nIx( nIx_) + , varStride( varStride_) + , nIterLimit( nIterLimit_) + , stride( stride_) ++ , nIx( nIx_) + { + assert( varStride[0] == 1); + ixListStride[0] = (*ixList)[0]->GetStride(); +@@ -593,11 +593,11 @@ public: + AllIxNewMultiOneVariableIndexNoIndexT( RankT gt1Rank, SizeT add_, + ArrayIndexVectorT* ixList_, SizeT acRank_, SizeT nIx_, const SizeT* varStride_, SizeT* nIterLimit_, SizeT* stride_) + : ixList( ixList_) +- , acRank( acRank_) +- , nIx( nIx_) + , varStride( varStride_) + , nIterLimit( nIterLimit_) + , stride( stride_) ++ , acRank( acRank_) ++ , nIx( nIx_) + , add( add_) + , variableIndex( gt1Rank) + { +@@ -642,11 +642,11 @@ public: + SizeT acRank_, SizeT nIx_, const SizeT* varStride_, + SizeT* nIterLimit_, SizeT* stride_) + : ixList( ixList_) +- , acRank( acRank_) +- , nIx( nIx_) + , varStride( varStride_) + , nIterLimit( nIterLimit_) + , stride( stride_) ++ , acRank( acRank_) ++ , nIx( nIx_) + , add( add_) + , variableIndex( gt1Rank) + { +diff -up gdl-0.9.4/src/arrayindex.hpp.reorder gdl-0.9.4/src/arrayindex.hpp +--- gdl-0.9.4/src/arrayindex.hpp.reorder 2013-09-17 10:46:19.000000000 -0600 ++++ gdl-0.9.4/src/arrayindex.hpp 2013-10-04 11:00:58.849879562 -0600 +@@ -303,7 +303,7 @@ private: + RangeT s; + BaseGDL* rawData; // for overloaded object indexing + +- CArrayIndexScalar( const CArrayIndexScalar& c): s( c.s), sInit( c.sInit) ++ CArrayIndexScalar( const CArrayIndexScalar& c): sInit( c.sInit), s( c.s) + { + assert( c.rawData != NULL); + rawData = c.rawData->Dup(); +diff -up gdl-0.9.4/src/arrayindexlistnoassoct.hpp.reorder gdl-0.9.4/src/arrayindexlistnoassoct.hpp +--- gdl-0.9.4/src/arrayindexlistnoassoct.hpp.reorder 2013-07-04 17:24:44.000000000 -0600 ++++ gdl-0.9.4/src/arrayindexlistnoassoct.hpp 2013-10-04 11:24:02.893867004 -0600 +@@ -59,8 +59,8 @@ public: + { nParam = 0;} + + ArrayIndexListOneNoAssocT( const ArrayIndexListOneNoAssocT& cp): +- cleanupIx(), + ArrayIndexListT( cp), ++ cleanupIx(), + ix( cp.ix->Dup()), + allIx( NULL) + { +diff -up gdl-0.9.4/src/arrayindexlistt.hpp.reorder gdl-0.9.4/src/arrayindexlistt.hpp +--- gdl-0.9.4/src/arrayindexlistt.hpp.reorder 2013-09-17 10:46:19.000000000 -0600 ++++ gdl-0.9.4/src/arrayindexlistt.hpp 2013-10-04 11:23:35.607069888 -0600 +@@ -130,8 +130,8 @@ public: + { nParam = 0;} + + ArrayIndexListOneT( const ArrayIndexListOneT& cp): +- cleanupIx(), + ArrayIndexListT( cp), ++ cleanupIx(), + ix( cp.ix->Dup()), + allIx( NULL) + { +diff -up gdl-0.9.4/src/deviceps.hpp.reorder gdl-0.9.4/src/deviceps.hpp +--- gdl-0.9.4/src/deviceps.hpp.reorder 2013-07-03 15:48:06.000000000 -0600 ++++ gdl-0.9.4/src/deviceps.hpp 2013-10-04 13:14:48.283746779 -0600 +@@ -441,9 +441,9 @@ private: + } + + public: +- DevicePS(): Graphics(), fileName( "gdl.ps"), actStream( NULL), color(0), +- decomposed( 0), encapsulated(false), scale(1.), XPageSize(17.78), YPageSize(12.7), +- XOffset(0.0),YOffset(0.0) ++ DevicePS(): Graphics(), fileName( "gdl.ps"), actStream( NULL), ++ XPageSize(17.78), YPageSize(12.7), XOffset(0.0),YOffset(0.0), ++ color(0), decomposed( 0), encapsulated(false), scale(1.) + { + name = "PS"; + +diff -up gdl-0.9.4/src/dnode.cpp.reorder gdl-0.9.4/src/dnode.cpp +--- gdl-0.9.4/src/dnode.cpp.reorder 2012-09-18 08:19:18.000000000 -0600 ++++ gdl-0.9.4/src/dnode.cpp 2013-10-04 12:02:48.601416601 -0600 +@@ -55,9 +55,10 @@ DNode::DNode( const DNode& cp): + // keepRight( false), + CommonAST( cp), //down(), right(), + lineNumber( cp.getLine()), cData(NULL), +- var(cp.var), arrIxList(NULL),arrIxListNoAssoc(NULL), ++ var(cp.var), + libFun( cp.libFun), + libPro( cp.libPro), ++ arrIxList(NULL),arrIxListNoAssoc(NULL), + labelStart( cp.labelStart), labelEnd( cp.labelEnd) + { + if( cp.cData != NULL) cData = cp.cData->Dup(); +diff -up gdl-0.9.4/src/dnode.hpp.reorder gdl-0.9.4/src/dnode.hpp +diff -up gdl-0.9.4/src/dpro.cpp.reorder gdl-0.9.4/src/dpro.cpp +--- gdl-0.9.4/src/dpro.cpp.reorder 2013-09-17 03:03:25.000000000 -0600 ++++ gdl-0.9.4/src/dpro.cpp 2013-10-04 13:05:23.169223727 -0600 +@@ -200,8 +200,8 @@ DSubUD::~DSubUD() + DSubUD::DSubUD(const string& n,const string& o,const string& f) : + DSub(n,o), file(f), + tree( NULL), +- labelList(), + compileOpt(GDLParser::NONE), ++ labelList(), + nForLoops( 0) + { + if( o != "") +diff -up gdl-0.9.4/src/envt.cpp.reorder gdl-0.9.4/src/envt.cpp +--- gdl-0.9.4/src/envt.cpp.reorder 2013-09-25 05:55:21.000000000 -0600 ++++ gdl-0.9.4/src/envt.cpp 2013-10-04 13:08:17.081114086 -0600 +@@ -107,15 +107,15 @@ void EnvUDT::operator delete( void *ptr) + + + EnvBaseT::EnvBaseT( ProgNodeP cN, DSub* pro_): +- env(), + toDestroy(), ++ env(), + pro(pro_), +- extra(NULL), +- newEnv(NULL), + callingNode( cN), + lineNumber( 0), +- obj(false) +- ,ptrToReturnValue(NULL) ++ obj(false), ++ extra(NULL), ++ newEnv(NULL), ++ ptrToReturnValue(NULL) + //, toDestroyInitialIndex( toDestroy.size()) + {} + +diff -up gdl-0.9.4/src/envt.hpp.reorder gdl-0.9.4/src/envt.hpp +--- gdl-0.9.4/src/envt.hpp.reorder 2013-09-26 04:47:48.000000000 -0600 ++++ gdl-0.9.4/src/envt.hpp 2013-10-04 10:55:21.892428311 -0600 +@@ -863,7 +863,7 @@ public: + typedef SizeT size_type; + typedef EnvUDT* pointer_type; + +- EnvStackT(): sz(defaultStackDepth), top(0) ++ EnvStackT(): top(0), sz(defaultStackDepth) + { + envStackFrame = new EnvUDT* [ sz+1]; + envStack = envStackFrame + 1; +diff -up gdl-0.9.4/src/gdlexception.cpp.reorder gdl-0.9.4/src/gdlexception.cpp +--- gdl-0.9.4/src/gdlexception.cpp.reorder 2013-06-23 17:07:32.000000000 -0600 ++++ gdl-0.9.4/src/gdlexception.cpp 2013-10-04 14:00:32.102348401 -0600 +@@ -43,9 +43,9 @@ GDLException::GDLException(DLong eC, con + errorNodeP( NULL), + errorCode(eC), + line( 0), col( 0), prefix( pre), ++ arrayexprIndexeeFailed(false), + ioException( false), +- targetEnv( NULL), +- arrayexprIndexeeFailed(false) ++ targetEnv( NULL) + { + if(decorate && interpreter!=NULL && interpreter->CallStack().size()>0) + { +@@ -97,9 +97,9 @@ GDLException::GDLException(const RefDNod + errorNodeP( NULL), + errorCode(-1), + line( 0), col( 0), prefix( true), ++ arrayexprIndexeeFailed(false), + ioException( false), +- targetEnv( NULL), +- arrayexprIndexeeFailed(false) ++ targetEnv( NULL) + { + if(interpreter!=NULL && interpreter->CallStack().size()>0) + { +@@ -122,9 +122,9 @@ GDLException::GDLException(DLong eC, con + errorNodeP( NULL), + errorCode(eC), + line( 0), col( 0), prefix( true), ++ arrayexprIndexeeFailed(false), + ioException( false), +- targetEnv( NULL), +- arrayexprIndexeeFailed(false) ++ targetEnv( NULL) + { + if(interpreter!=NULL && interpreter->CallStack().size()>0) + { +@@ -148,9 +148,9 @@ GDLException::GDLException(const ProgNod + errorNodeP( eN), + errorCode(-1), + line( 0), col( 0), prefix( true), ++ arrayexprIndexeeFailed(false), + ioException( false), +- targetEnv( NULL), +- arrayexprIndexeeFailed(false) ++ targetEnv( NULL) + { + if( overWriteNode && interpreter!=NULL && interpreter->CallStack().size()>0) + { +@@ -177,9 +177,9 @@ GDLException::GDLException(DLong eC, con + errorNodeP( eN), + errorCode(eC), + line( 0), col( 0), prefix( true), ++ arrayexprIndexeeFailed(false), + ioException( false), +- targetEnv( NULL), +- arrayexprIndexeeFailed(false) ++ targetEnv( NULL) + { + if( overWriteNode && interpreter!=NULL && interpreter->CallStack().size()>0) + { +@@ -207,9 +207,9 @@ GDLException::GDLException(SizeT l, Size + errorNodeP( NULL), + errorCode(-1), + line( l), col( c), prefix( true), ++ arrayexprIndexeeFailed(false), + ioException( false), +- targetEnv( NULL), +- arrayexprIndexeeFailed(false) ++ targetEnv( NULL) + { + if(interpreter!=NULL && interpreter->CallStack().size()>0) + { +@@ -232,8 +232,8 @@ GDLException::GDLException(DLong eC, Siz + errorNodeP( NULL), + errorCode(eC), + line( l), col( c), prefix( true), +- targetEnv( NULL), +- arrayexprIndexeeFailed(false) ++ arrayexprIndexeeFailed(false), ++ targetEnv( NULL) + { + if(interpreter!=NULL && interpreter->CallStack().size()>0) + { +diff -up gdl-0.9.4/src/gdlexception.hpp.reorder gdl-0.9.4/src/gdlexception.hpp +--- gdl-0.9.4/src/gdlexception.hpp.reorder 2013-06-23 17:07:32.000000000 -0600 ++++ gdl-0.9.4/src/gdlexception.hpp 2013-10-04 11:12:58.332125288 -0600 +@@ -66,18 +66,18 @@ public: + errorNodeP( NULL), + errorCode(-1), + line( 0), col( 0), prefix( true), ++ arrayexprIndexeeFailed(false), + ioException( false), +- targetEnv( NULL), +- arrayexprIndexeeFailed(false) ++ targetEnv( NULL) + {} + GDLException( DLong eC): ANTLRException(), + errorNode(static_cast<RefDNode>(antlr::nullAST)), + errorNodeP( NULL), + errorCode(eC), + line( 0), col( 0), prefix( true), ++ arrayexprIndexeeFailed(false), + ioException( false), +- targetEnv( NULL), +- arrayexprIndexeeFailed(false) ++ targetEnv( NULL) + {} + GDLException(const std::string& s, bool pre = true, bool decorate=true); + GDLException(const RefDNode eN, const std::string& s); +diff -up gdl-0.9.4/src/prognode.cpp.reorder gdl-0.9.4/src/prognode.cpp +--- gdl-0.9.4/src/prognode.cpp.reorder 2013-09-27 18:47:49.000000000 -0600 ++++ gdl-0.9.4/src/prognode.cpp 2013-10-04 14:01:11.490342867 -0600 +@@ -54,19 +54,19 @@ return nonCopyNodeLookupArray; + + // tanslation RefDNode -> ProgNode + ProgNode::ProgNode( const RefDNode& refNode): ++ ttype( refNode->getType()), ++ text( refNode->getText()), + keepRight( false), + keepDown( false), + breakTarget( NULL), +- ttype( refNode->getType()), +- text( refNode->getText()), + down( NULL), + right( NULL), +- lineNumber( refNode->getLine()), + cData( refNode->StealCData()), // stealing is crucial here because references might exist ++ var( refNode->var), + // as arrayindices +- libPro( refNode->libPro), + libFun( refNode->libFun), +- var( refNode->var), ++ libPro( refNode->libPro), ++ lineNumber( refNode->getLine()), + arrIxList( refNode->StealArrIxList()), + arrIxListNoAssoc( refNode->StealArrIxNoAssocList()), + // arrIxList( refNode->CloneArrIxList()), +diff -up gdl-0.9.4/src/prognodeexpr.cpp.reorder gdl-0.9.4/src/prognodeexpr.cpp +--- gdl-0.9.4/src/prognodeexpr.cpp.reorder 2013-09-26 05:08:39.000000000 -0600 ++++ gdl-0.9.4/src/prognodeexpr.cpp 2013-10-04 13:20:36.660155916 -0600 +@@ -49,18 +49,18 @@ BinaryExprNC::BinaryExprNC( const RefDNo + } + + ProgNode::ProgNode(): // for NULLProgNode ++ ttype( antlr::Token::NULL_TREE_LOOKAHEAD), ++ text( "NULLProgNode"), + keepRight( false), + keepDown( false), + breakTarget( NULL), +- ttype( antlr::Token::NULL_TREE_LOOKAHEAD), +- text( "NULLProgNode"), + down( NULL), + right( NULL), +- lineNumber( 0), + cData( NULL), +- libPro( NULL), +- libFun( NULL), + var( NULL), ++ libFun( NULL), ++ libPro( NULL), ++ lineNumber( 0), + labelStart( 0), + labelEnd( 0) + {} diff --git a/dev-lang/gdl/files/0.9.5-antlr.patch b/dev-lang/gdl/files/0.9.5-antlr.patch new file mode 100644 index 000000000000..f5b627ab444e --- /dev/null +++ b/dev-lang/gdl/files/0.9.5-antlr.patch @@ -0,0 +1,91 @@ + CMakeLists.txt | 14 +++++++++++--- + CMakeModules/FindANTLR.cmake | 11 +++++++++++ + src/CMakeLists.txt | 18 +++++++++++------- + 3 files changed, 33 insertions(+), 10 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 407e39a..c4b3278 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -111,6 +111,8 @@ set(SZIPDIR "" CACHE PATH "GDL: Specify the SZip directory tree") + + set(GDL_DATA_DIR "/share/gnudatalanguage" CACHE PATH "GDL: data directory relative to CMAKE_INSTALL_PREFIX") + ++set(BUNDLED_ANTLR OFF CACHE BOOL "Use bundled ANTLR grammar ?") ++set(ANTLRDIR "" CACHE PATH "Specify the system ANTLR directory tree") + + # check for 64-bit OS + if(${CMAKE_SIZEOF_VOID_P} EQUAL 8) +@@ -174,9 +176,15 @@ check_library_exists(m nexttoward "" HAVE_NEXTTOWARD) + # mpi + check_include_file(mpi.h HAVE_MPI_H) + +-# SA: whithout it compilation of antlr fails if there's a conflicting +-# version of antlr in system-wide directories +-include_directories(src) ++if(BUNDLED_ANTLR) ++ # SA: whithout it compilation of antlr fails if there's a conflicting ++ # version of antlr in system-wide directories ++ include_directories(src) ++else(BUNDLED_ANTLR) ++ find_package(ANTLR QUIET) ++ set(LIBRARIES ${LIBRARIES} ${ANTLR_LIBRARIES}) ++ include_directories(${ANTLR_INCLUDE_DIR}) ++endif(BUNDLED_ANTLR) + + if(WIN32 AND NOT CYGWIN) + # For Win32 find Pdcureses instead of (N)Curses +diff --git a/CMakeModules/FindANTLR.cmake b/CMakeModules/FindANTLR.cmake +new file mode 100644 +index 0000000..b61cc5b +--- /dev/null ++++ b/CMakeModules/FindANTLR.cmake +@@ -0,0 +1,11 @@ ++ ++ ++find_library(ANTLR_LIBRARIES NAMES antlr) ++find_path(ANTLR_INCLUDE_DIR NAMES antlr/ANTLRUtil.hpp) ++include(FindPackageHandleStandardArgs) ++find_package_handle_standard_args(ANTLR DEFAULT_MSG ANTLR_LIBRARIES ANTLR_INCLUDE_DIR) ++ ++mark_as_advanced( ++ANTLR_LIBRARIES ++ANTLR_INCLUDE_DIR ++) +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 1f7ffec..776a1fd 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -262,9 +262,8 @@ widget.cpp + widget.hpp + ) + +-add_subdirectory(antlr) + +-include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/src/antlr ${CMAKE_BINARY_DIR}) ++include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/src ${CMAKE_BINARY_DIR}) + link_directories(${LINK_DIRECTORIES}) + + if(PYTHON_MODULE) #libgdl +@@ -275,11 +274,16 @@ else(PYTHON_MODULE) #gdl + add_executable(gdl ${SOURCES}) + endif(PYTHON_MODULE) + +-add_dependencies(gdl antlr) # be sure that antlr is built before gdl +-target_link_libraries(gdl antlr) # link antlr against gdl +-if (MINGW) +-target_link_libraries(gdl ws2_32) +-endif (MINGW) ++if(BUNDLED_ANTLR) ++ add_subdirectory(antlr) ++ include_directories(${CMAKE_SOURCE_DIR}/src/antlr) ++ add_dependencies(gdl antlr) # be sure that antlr is built before gdl ++ target_link_libraries(gdl antlr) # link antlr against gdl ++ if (MINGW) ++ target_link_libraries(gdl ws2_32) ++ endif (MINGW) ++endif(BUNDLED_ANTLR) ++ + target_link_libraries(gdl ${LIBRARIES}) + add_definitions(-DHAVE_CONFIG_H) + diff --git a/dev-lang/gdl/files/0.9.5-plplot.patch b/dev-lang/gdl/files/0.9.5-plplot.patch new file mode 100644 index 000000000000..70ad1bd14ca1 --- /dev/null +++ b/dev-lang/gdl/files/0.9.5-plplot.patch @@ -0,0 +1,134 @@ +diff -up gdl-0.9.5/CMakeLists.txt.plplot gdl-0.9.5/CMakeLists.txt +--- gdl-0.9.5/CMakeLists.txt.plplot 2014-10-07 07:21:14.000000000 -0600 ++++ gdl-0.9.5/CMakeLists.txt 2015-04-24 14:29:15.588067694 -0600 +@@ -386,7 +386,7 @@ if(PLPLOT_FOUND) + #}" HAVE_PLPLOT_WIDTH) + + #give it a 2nd try... +- check_library_exists("${PLPLOT_LIBRARIES}" c_plwidth "" HAVE_PLPLOT_WIDTH) ++ check_library_exists("${PLPLOT_LIBRARIES}" c_plwidth "" HAVE_PLPLOT_WIDTH) + if(HAVE_PLPLOT_WIDTH) + set(HAVE_PLPLOT_WIDTH 1) + endif(HAVE_PLPLOT_WIDTH) +@@ -402,6 +402,11 @@ if(PLPLOT_FOUND) + else(PLPLOT_HAS_LEGEND) + message(STATUS "Your plplot lib is too old for some gdl functions, please upgrade.") + endif(PLPLOT_HAS_LEGEND) ++ check_cxx_source_compiles("#include <plplot/plstream.h> ++ main(){PLINT n; PLFLT x,y;plcallback::fill(n,&x,&y);}" PLPLOT_HAS_PLCALLBACK) ++ if(PLPLOT_HAS_PLCALLBACK) ++ set(PLPLOT_HAS_PLCALLBACK 1) ++ endif(PLPLOT_HAS_PLCALLBACK) + endif(PLPLOT_FOUND) + + # GRAPHICSMAGICK is an alternative to the classical ImageMagick Lib. +diff -up gdl-0.9.5/CMakeModules/FindPlplot.cmake.plplot gdl-0.9.5/CMakeModules/FindPlplot.cmake +--- gdl-0.9.5/CMakeModules/FindPlplot.cmake.plplot 2011-08-19 04:18:51.000000000 -0600 ++++ gdl-0.9.5/CMakeModules/FindPlplot.cmake 2015-04-24 13:54:56.915632230 -0600 +@@ -9,8 +9,12 @@ + # + + +-find_library(PLPLOT_LIBRARY NAMES plplotd) +-find_library(PLPLOTCXX_LIBRARY NAMES plplotcxxd) ++find_library(PLPLOT_LIBRARY NAMES plplot) ++find_library(PLPLOTCXX_LIBRARY NAMES plplotcxx) ++if(NOT PLPLOT_LIBRARY) ++ find_library(PLPLOT_LIBRARY NAMES plplotd) ++ find_library(PLPLOTCXX_LIBRARY NAMES plplotcxxd) ++endif(NOT PLPLOT_LIBRARY) + set(PLPLOT_LIBRARIES ${PLPLOT_LIBRARY} ${PLPLOTCXX_LIBRARY}) + find_path(PLPLOT_INCLUDE_DIR NAMES plplot/plplot.h) + include(FindPackageHandleStandardArgs) +diff -up gdl-0.9.5/config.h.cmake.plplot gdl-0.9.5/config.h.cmake +--- gdl-0.9.5/config.h.cmake.plplot 2014-08-30 14:13:43.000000000 -0600 ++++ gdl-0.9.5/config.h.cmake 2015-04-24 13:39:22.259704608 -0600 +@@ -31,6 +31,12 @@ + #cmakedefine HAVE_PLPLOT_WIDTH 1 + #cmakedefine PLPLOT_PRIVATE_NOT_HIDDEN 1 + #cmakedefine PLPLOT_HAS_LEGEND ++#cmakedefine PLPLOT_HAS_PLCALLBACK ++#ifdef PLPLOT_HAS_PLCALLBACK ++#define PLCALLBACK plcallback ++#else ++#define PLCALLBACK plstream ++#endif + #ifndef HAVE_STDINT_H + #cmakedefine HAVE_STDINT_H 1 + #endif +diff -up gdl-0.9.5/src/plotting_contour.cpp.plplot gdl-0.9.5/src/plotting_contour.cpp +--- gdl-0.9.5/src/plotting_contour.cpp.plplot 2014-09-29 11:03:12.000000000 -0600 ++++ gdl-0.9.5/src/plotting_contour.cpp 2015-04-24 13:39:22.267705191 -0600 +@@ -789,8 +789,8 @@ namespace lib + 1, value, + static_cast<PLFLT>(( *thick )[i%thick->N_Elements()]), + 0,0,0,0, +- (plstream::fill), (oneDim), +- (oneDim)?(plstream::tr1):(plstream::tr2), (oneDim)?(void *)&cgrid1:(void *)&cgrid2); ++ (PLCALLBACK::fill), (oneDim), ++ (oneDim)?(PLCALLBACK::tr1):(PLCALLBACK::tr2), (oneDim)?(void *)&cgrid1:(void *)&cgrid2); + } + actStream->psty(0); + // if (docolors) gdlSetGraphicsForegroundColorFromKw( e, actStream ); +@@ -808,8 +808,8 @@ namespace lib + clevel[i], maxmax, + 1,value, + 0,0,0,0,0, +- plstream::fill, (oneDim), //Onedim is accelerator since rectangles are kept rectangles see plplot doc +- (oneDim)?(plstream::tr1):(plstream::tr2), (oneDim)?(void *)&cgrid1:(void *)&cgrid2); ++ PLCALLBACK::fill, (oneDim), //Onedim is accelerator since rectangles are kept rectangles see plplot doc ++ (oneDim)?(PLCALLBACK::tr1):(PLCALLBACK::tr2), (oneDim)?(void *)&cgrid1:(void *)&cgrid2); + } + } else { //every other case of fill + // note that plshades is not protected against 1 level (color formula is +@@ -818,8 +818,8 @@ namespace lib + if (nlevel>2 && !(docolors)) { //acceleration with shades when no c_colors are given. use continuous table1, decomposed or not. + //acceleration is most sensible when a (x,y) transform (rotate, stretch) is in place since plplot does not recompute the map. + actStream->shades( map, xEl, yEl, isLog?doIt:NULL, xStart, xEnd, yStart, yEnd, +- clevel, nlevel, 1, 0, 0, plstream::fill, (oneDim), +- (oneDim)?(plstream::tr1):(plstream::tr2), ++ clevel, nlevel, 1, 0, 0, PLCALLBACK::fill, (oneDim), ++ (oneDim)?(PLCALLBACK::tr1):(PLCALLBACK::tr2), + (oneDim)?(void *)&cgrid1:(void *)&cgrid2); + } + else { //fill with colors defined with c_colors or n<=2 +@@ -832,8 +832,8 @@ namespace lib + clevel[i], maxmax, + 1,value, + 0,0,0,0,0, +- plstream::fill, (oneDim), //Onedim is accelerator since rectangles are kept rectangles see plplot doc +- (oneDim)?(plstream::tr1):(plstream::tr2), (oneDim)?(void *)&cgrid1:(void *)&cgrid2); ++ PLCALLBACK::fill, (oneDim), //Onedim is accelerator since rectangles are kept rectangles see plplot doc ++ (oneDim)?(PLCALLBACK::tr1):(PLCALLBACK::tr2), (oneDim)?(void *)&cgrid1:(void *)&cgrid2); + } else + printf(" Problem, sorry! plplot doesn't like to FILL with a single level!"); + } +@@ -854,7 +854,7 @@ namespace lib + if (doT3d) { //no label in T3D , bug in plplot... + actStream->setcontlabelparam ( LABELOFFSET, (PLFLT) label_size, LABELSPACING, 0 ); + actStream->cont ( map, xEl, yEl, 1, xEl, 1, yEl, &( clevel[i] ), 1, +- (oneDim)?(plstream::tr1):(plstream::tr2), (oneDim)?(void *)&cgrid1:(void *)&cgrid2); ++ (oneDim)?(PLCALLBACK::tr1):(PLCALLBACK::tr2), (oneDim)?(void *)&cgrid1:(void *)&cgrid2); + } else { + if (dolabels && i<labels->N_Elements()) + { +@@ -862,16 +862,16 @@ namespace lib + //else (lables thicker than contours) impossible with plplot... + actStream->setcontlabelparam ( LABELOFFSET, (PLFLT) label_size, LABELSPACING, 0 ); + actStream->cont ( map, xEl, yEl, 1, xEl, 1, yEl, &( clevel[i] ), 1, +- (oneDim)?(plstream::tr1):(plstream::tr2), (oneDim)?(void *)&cgrid1:(void *)&cgrid2); //thick contours, no label ++ (oneDim)?(PLCALLBACK::tr1):(PLCALLBACK::tr2), (oneDim)?(void *)&cgrid1:(void *)&cgrid2); //thick contours, no label + actStream->Thick(label_thick); + } + actStream->setcontlabelparam ( LABELOFFSET, (PLFLT) label_size, LABELSPACING*sqrt(label_size),(PLINT)(*labels)[i] ); + actStream->cont ( map, xEl, yEl, 1, xEl, 1, yEl, &( clevel[i] ), 1, +- (oneDim)?(plstream::tr1):(plstream::tr2), (oneDim)?(void *)&cgrid1:(void *)&cgrid2); ++ (oneDim)?(PLCALLBACK::tr1):(PLCALLBACK::tr2), (oneDim)?(void *)&cgrid1:(void *)&cgrid2); + if (!dothick) gdlSetPenThickness(e, actStream); + } else { + actStream->cont ( map, xEl, yEl, 1, xEl, 1, yEl, &( clevel[i] ), 1, +- (oneDim)?(plstream::tr1):(plstream::tr2), (oneDim)?(void *)&cgrid1:(void *)&cgrid2); ++ (oneDim)?(PLCALLBACK::tr1):(PLCALLBACK::tr2), (oneDim)?(void *)&cgrid1:(void *)&cgrid2); + } + } + } diff --git a/dev-lang/gdl/files/0.9.5-png.patch b/dev-lang/gdl/files/0.9.5-png.patch new file mode 100644 index 000000000000..1140fcc9ac75 --- /dev/null +++ b/dev-lang/gdl/files/0.9.5-png.patch @@ -0,0 +1,15 @@ + CMakeLists.txt | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 407e39a..f24a087 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -270,7 +270,6 @@ if(PNGLIB) + set(USE_PNGLIB ${PNG_FOUND}) + if(PNG_FOUND) + set(LIBRARIES ${LIBRARIES} ${PNG_LIBRARIES}) +- set(LINK_DIRECTORIES ${LINK_DIRECTORIES} ${PNG_LIBRARY_DIRS}) + include_directories(${PNG_INCLUDE_DIRS}) + else(PNG_FOUND) + message(FATAL_ERROR "libpng is required but was not found.\n" diff --git a/dev-lang/gdl/files/0.9.5-proj4.patch b/dev-lang/gdl/files/0.9.5-proj4.patch new file mode 100644 index 000000000000..4b2ebcca0a02 --- /dev/null +++ b/dev-lang/gdl/files/0.9.5-proj4.patch @@ -0,0 +1,41 @@ + CMakeLists.txt | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c4b3278..f9ed49d 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -637,17 +637,17 @@ if(LIBPROJ4) + if(LIBPROJ4_FOUND) + set(CMAKE_REQUIRED_LIBRARIES ${LIBPROJ4_LIBRARIES} ${GSL_LIBRARIES} m) + +- check_library_exists("${LIBPROJ4_LIBRARIES}" pj_init "" USE_LIBPROJ4_NEW) +- if(USE_LIBPROJ4_NEW) ++ check_library_exists("${LIBPROJ4_LIBRARIES}" pj_init "" USE_LIBPROJ4) ++ if(USE_LIBPROJ4) + # check_library_exists("${LIBPROJ4_LIBRARIES}" proj_init "" USE_LIBPROJ4) + # if(USE_LIBPROJ4) + + # define USE_LIB_PROJ4 in any case + set(USE_LIBPROJ4 1) + +- else(USE_LIBPROJ4_NEW) +- check_library_exists("${LIBPROJ4_LIBRARIES}" proj_init "" USE_LIBPROJ4) +- if(NOT USE_LIBPROJ4) ++ else(USE_LIBPROJ4) ++ check_library_exists("${LIBPROJ4_LIBRARIES}" proj_init "" USE_LIBPROJ4_NEW) ++ if(NOT USE_LIBPROJ4_NEW) + # else(USE_LIBPROJ4) + # check_library_exists("${LIBPROJ4_LIBRARIES}" pj_init "" USE_LIBPROJ4_NEW) + # if(NOT USE_LIBPROJ4_NEW) +@@ -656,8 +656,8 @@ if(LIBPROJ4) + "Use -DLIBPROJ4DIR=DIR to specify the Libproj4 directory tree.\n" + "Use -DLIBPRJ4=OFF to not use it.") + +- endif(NOT USE_LIBPROJ4) +- endif(USE_LIBPROJ4_NEW) ++ endif(NOT USE_LIBPROJ4_NEW) ++ endif(USE_LIBPROJ4) + # endif(NOT USE_LIBPROJ4_NEW) + # endif(USE_LIBPROJ4) + diff --git a/dev-lang/gdl/gdl-0.9.4.ebuild b/dev-lang/gdl/gdl-0.9.4.ebuild new file mode 100644 index 000000000000..05382dcb70e6 --- /dev/null +++ b/dev-lang/gdl/gdl-0.9.4.ebuild @@ -0,0 +1,161 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +WX_GTK_VER="2.8" +PYTHON_COMPAT=( python2_7 ) + +inherit cmake-utils eutils python-r1 wxwidgets toolchain-funcs virtualx + +DESCRIPTION="GNU Data Language" +HOMEPAGE="http://gnudatalanguage.sourceforge.net/" +SRC_URI="mirror://sourceforge/gnudatalanguage/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" +IUSE="+eigen fftw grib gshhs hdf hdf5 imagemagick netcdf openmp + proj postscript python static-libs udunits wxwidgets" + +RDEPEND=" + sci-libs/gsl:0= + sci-libs/plplot:0=[-dynamic] + sys-libs/ncurses:5= + sys-libs/readline:0= + sys-libs/zlib:0= + x11-libs/libX11:0= + fftw? ( sci-libs/fftw:3.0= ) + grib? ( sci-libs/grib_api:0= ) + gshhs? ( sci-geosciences/gshhs-data sci-geosciences/gshhs:0= ) + hdf? ( sci-libs/hdf:0= ) + hdf5? ( sci-libs/hdf5:0= ) + imagemagick? ( + || ( + media-gfx/graphicsmagick[cxx] + media-gfx/imagemagick[cxx] + ) + ) + netcdf? ( sci-libs/netcdf ) + proj? ( sci-libs/proj ) + postscript? ( dev-libs/pslib ) + python? ( + ${PYTHON_DEPS} + dev-python/numpy[${PYTHON_USEDEP}] + ) + udunits? ( sci-libs/udunits ) + wxwidgets? ( x11-libs/wxGTK:2.8[X,-odbc] )" + +DEPEND="${RDEPEND} + >=dev-java/antlr-2.7.7-r5:0[cxx,java,script] + virtual/pkgconfig + eigen? ( dev-cpp/eigen:3 )" + +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +PATCHES=( + "${FILESDIR}"/0.9.2-antlr.patch + "${FILESDIR}"/0.9.2-include.patch + "${FILESDIR}"/0.9.2-proj4.patch + "${FILESDIR}"/0.9.2-semaphore.patch + "${FILESDIR}"/0.9.3-plwidth.patch + "${FILESDIR}"/0.9.4-gsl.patch + "${FILESDIR}"/0.9.4-python.patch + "${FILESDIR}"/0.9.4-reorder.patch + "${FILESDIR}"/0.9.4-plplot.patch + "${FILESDIR}"/0.9.4-python2.patch +) + +pkg_setup() { + use openmp && [[ $(tc-getCXX)$ == *g++* ]] && ! tc-has-openmp && \ + die "You have openmp enabled but your current g++ does not support it" +} + +src_prepare() { + cmake-utils_src_prepare + + use hdf5 && has_version sci-libs/hdf5[mpi] && export CXX=mpicxx + + # make sure antlr includes are from system and rebuild the sources with it + # https://sourceforge.net/tracker/?func=detail&atid=618685&aid=3465878&group_id=97659 + rm -r src/antlr || die + einfo "Regenerating grammar" + pushd src > /dev/null + local i + for i in *.g; do antlr ${i} || die ; done + popd > /dev/null + + # gentoo: use proj instead of libproj4 (libproj4 last update: 2004) + sed -i \ + -e 's:proj4:proj:' \ + -e 's:lib_proj\.h:proj_api\.h:g' \ + CMakeModules/FindLibproj4.cmake src/math_utl.hpp || die + + # gentoo: avoid install files in datadir directory + sed -i \ + -e '/AUTHORS/d' \ + CMakeLists.txt || die +} + +src_configure() { + # MPI is still very buggy + # x11=off does not compile + local mycmakeargs=( + -DMPICH=OFF + -DBUNDLED_ANTLR=OFF + -DX11=ON + $(cmake-utils_use fftw) + $(cmake-utils_use eigen EIGEN3) + $(cmake-utils_use grib) + $(cmake-utils_use gshhs) + $(cmake-utils_use hdf) + $(cmake-utils_use hdf5) + $(cmake-utils_use netcdf) + $(cmake-utils_use openmp) + $(cmake-utils_use proj LIBPROJ4) + $(cmake-utils_use postscript PSLIB) + $(cmake-utils_use udunits) + $(cmake-utils_use wxwidgets) + ) + if use imagemagick; then + if has_version media-gfx/graphicsmagick[cxx]; then + mycmakeargs+=( -DGRAPHICSMAGICK=ON -DMAGICK=OFF ) + else + mycmakeargs+=( -DGRAPHICSMAGICK=OFF -DMAGICK=ON ) + fi + else + mycmakeargs+=( -DGRAPHICSMAGICK=OFF -DMAGICK=OFF ) + fi + configuration() { + mycmakeargs+=( $@ ) + cmake-utils_src_configure + } + configuration -DPYTHON_MODULE=OFF -DPYTHON=OFF + use python && python_foreach_impl configuration -DPYTHON_MODULE=ON -DPYTHON=ON +} + +src_compile() { + cmake-utils_src_compile + use python && python_foreach_impl cmake-utils_src_make +} + +src_test() { + # there is check target instead of the ctest to define some LDPATH + Xemake -C "${BUILD_DIR}" check +} + +src_install() { + cmake-utils_src_install + if use python; then + installation() { + mv src/libgdl.so GDL.so || die + python_domodule GDL.so + } + python_foreach_impl run_in_build_dir installation + dodoc PYTHON.txt + fi + + echo "GDL_PATH=\"+${EROOT%/}/usr/share/gnudatalanguage\"" > 50gdl + doenvd 50gdl +} diff --git a/dev-lang/gdl/gdl-0.9.5.ebuild b/dev-lang/gdl/gdl-0.9.5.ebuild new file mode 100644 index 000000000000..1f195bab8ecd --- /dev/null +++ b/dev-lang/gdl/gdl-0.9.5.ebuild @@ -0,0 +1,156 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +WX_GTK_VER="2.8" +PYTHON_COMPAT=( python2_7 ) + +inherit cmake-utils eutils python-r1 wxwidgets toolchain-funcs virtualx + +DESCRIPTION="GNU Data Language" +HOMEPAGE="http://gnudatalanguage.sourceforge.net/" +SRC_URI="mirror://sourceforge/gnudatalanguage/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" +IUSE="+eigen fftw grib gshhs hdf hdf5 imagemagick netcdf openmp + png proj postscript python static-libs udunits wxwidgets" + +RDEPEND=" + sci-libs/gsl:0= + sci-libs/plplot:0=[-dynamic] + sys-libs/ncurses:5= + sys-libs/readline:0= + sys-libs/zlib:0= + x11-libs/libX11:0= + fftw? ( sci-libs/fftw:3.0= ) + grib? ( sci-libs/grib_api:0= ) + gshhs? ( sci-geosciences/gshhs-data sci-geosciences/gshhs:0= ) + hdf? ( sci-libs/hdf:0= ) + hdf5? ( sci-libs/hdf5:0= ) + imagemagick? ( + || ( + media-gfx/graphicsmagick[cxx] + media-gfx/imagemagick[cxx] + ) + ) + netcdf? ( sci-libs/netcdf ) + proj? ( sci-libs/proj ) + postscript? ( dev-libs/pslib ) + python? ( + ${PYTHON_DEPS} + dev-python/numpy[${PYTHON_USEDEP}] + ) + udunits? ( sci-libs/udunits ) + wxwidgets? ( x11-libs/wxGTK:2.8[X,-odbc] )" + +DEPEND="${RDEPEND} + >=dev-java/antlr-2.7.7-r5:0[cxx,java,script] + virtual/pkgconfig + eigen? ( dev-cpp/eigen:3 )" + +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +PATCHES=( + "${FILESDIR}"/0.9.5-antlr.patch + "${FILESDIR}"/0.9.2-include.patch + "${FILESDIR}"/0.9.5-plplot.patch + "${FILESDIR}"/0.9.5-png.patch +) + +pkg_setup() { + use openmp && [[ $(tc-getCXX)$ == *g++* ]] && ! tc-has-openmp && \ + die "You have openmp enabled but your current g++ does not support it" +} + +src_prepare() { + cmake-utils_src_prepare + + use hdf5 && has_version sci-libs/hdf5[mpi] && export CXX=mpicxx + + # make sure antlr includes are from system and rebuild the sources with it + # https://sourceforge.net/tracker/?func=detail&atid=618685&aid=3465878&group_id=97659 + rm -r src/antlr || die + einfo "Regenerating grammar" + pushd src > /dev/null + local i + for i in *.g; do antlr ${i} || die ; done + popd > /dev/null + + # gentoo: use proj instead of libproj4 (libproj4 last update: 2004) + sed -i \ + -e 's:proj4:proj:' \ + -e 's:lib_proj\.h:proj_api\.h:g' \ + CMakeModules/FindLibproj4.cmake src/math_utl.hpp || die + + # gentoo: avoid install files in datadir directory + sed -i \ + -e '/AUTHORS/d' \ + CMakeLists.txt || die +} + +src_configure() { + # MPI is still very buggy + # x11=off does not compile + local mycmakeargs=( + -DMPICH=OFF + -DBUNDLED_ANTLR=OFF + -DX11=ON + $(cmake-utils_use fftw) + $(cmake-utils_use eigen EIGEN3) + $(cmake-utils_use grib) + $(cmake-utils_use gshhs) + $(cmake-utils_use hdf) + $(cmake-utils_use hdf5) + $(cmake-utils_use netcdf) + $(cmake-utils_use openmp) + $(cmake-utils_use png PNGLIB) + $(cmake-utils_use proj LIBPROJ4) + $(cmake-utils_use postscript PSLIB) + $(cmake-utils_use udunits) + $(cmake-utils_use wxwidgets) + ) + if use imagemagick; then + if has_version media-gfx/graphicsmagick[cxx]; then + mycmakeargs+=( -DGRAPHICSMAGICK=ON -DMAGICK=OFF ) + else + mycmakeargs+=( -DGRAPHICSMAGICK=OFF -DMAGICK=ON ) + fi + else + mycmakeargs+=( -DGRAPHICSMAGICK=OFF -DMAGICK=OFF ) + fi + configuration() { + mycmakeargs+=( $@ ) + cmake-utils_src_configure + } + configuration -DPYTHON_MODULE=OFF -DPYTHON=OFF + use python && python_foreach_impl configuration -DPYTHON_MODULE=ON -DPYTHON=ON +} + +src_compile() { + cmake-utils_src_compile + use python && python_foreach_impl cmake-utils_src_make +} + +src_test() { + # there is check target instead of the ctest to define some LDPATH + Xemake -C "${BUILD_DIR}" check +} + +src_install() { + cmake-utils_src_install + if use python; then + installation() { + mv src/libgdl.so GDL.so || die + python_domodule GDL.so + } + python_foreach_impl run_in_build_dir installation + dodoc PYTHON.txt + fi + + echo "GDL_PATH=\"+${EROOT%/}/usr/share/gnudatalanguage\"" > 50gdl + doenvd 50gdl +} diff --git a/dev-lang/gdl/metadata.xml b/dev-lang/gdl/metadata.xml new file mode 100644 index 000000000000..8b80e5e849de --- /dev/null +++ b/dev-lang/gdl/metadata.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <herd>sci</herd> + <longdescription lang="en"> + A free IDL (Interactive Data Language) compatible incremental compiler + (ie. runs IDL programs). IDL is a registered trademark of ITT Visual + Information Solutions. +</longdescription> + <use> + <flag name="eigen">Build matrix manipulation with <pkg>dev-cpp/eigen</pkg></flag> + <flag name="hdf">Add support for the Hierarchical Data Format v.4</flag> + <flag name="gshhs">Add support for projection adn continent maps with <pkg>sci-geosciences/gshhs-data</pkg></flag> + <flag name="grib">Add support for the meteorological GRIB format with <pkg>sci-libs/grib_api</pkg></flag> + <flag name="proj">Add support for <pkg>sci-libs/proj</pkg> (geographic projections)</flag> + <flag name="udunits">Add support for manipulating units of physical quantities</flag> + </use> + <upstream> + <remote-id type="sourceforge">gnudatalanguage</remote-id> + </upstream> +</pkgmetadata> diff --git a/dev-lang/gforth/Manifest b/dev-lang/gforth/Manifest new file mode 100644 index 000000000000..c0c5e507f637 --- /dev/null +++ b/dev-lang/gforth/Manifest @@ -0,0 +1 @@ +DIST gforth-0.7.3.tar.gz 2523433 SHA256 2f62f2233bf022c23d01c920b1556aa13eab168e3236b13352ac5e9f18542bb0 SHA512 f034234acfb0fc727f28b564432219a100b916c6df4b847794a55b2fc3b8ed8714eca6de0df67c7c427b7c2bb4dd00f65cfd34e6eb60181e41ab84fea30304e4 WHIRLPOOL e16e1dfcccc1f02855da9f53407feaeca66fbe64586373aa4e8916c6b9f1dbbd023e4cd7908c8e943d0700c094dbd5e387f6c0b92492bf4e1ecc23692cc63932 diff --git a/dev-lang/gforth/files/0.6.2-c-to-forth-to-c.patch b/dev-lang/gforth/files/0.6.2-c-to-forth-to-c.patch new file mode 100644 index 000000000000..28ab2e5f572f --- /dev/null +++ b/dev-lang/gforth/files/0.6.2-c-to-forth-to-c.patch @@ -0,0 +1,30 @@ +Index: engine/main.c +=================================================================== +RCS file: /usr/local/lib/cvs-repository/src-master/gforth/engine/main.c,v +retrieving revision 1.139 +retrieving revision 1.140 +diff -u -r1.139 -r1.140 +--- engine/main.c.old 2004/01/20 19:07:41 1.139 ++++ engine/main.c 2004/04/10 00:16:55 1.140 +@@ -70,8 +70,21 @@ + + void engine_callback(Xt* fcall, void * alist) + { ++ /* save global valiables */ ++ Cell *rp = RP; ++ Cell *sp = SP; ++ Float *fp = FP; ++ Address lp = LP; ++ + clist = (va_alist)alist; +- engine(fcall, SP, RP, FP, LP); ++ ++ engine(fcall, sp, rp, fp, lp); ++ ++ /* restore global variables */ ++ RP = rp; ++ SP = sp; ++ FP = fp; ++ LP = lp; + } + #endif
\ No newline at end of file diff --git a/dev-lang/gforth/files/0.6.2-ppc-configure-gentoo.patch b/dev-lang/gforth/files/0.6.2-ppc-configure-gentoo.patch new file mode 100644 index 000000000000..30061aa702f7 --- /dev/null +++ b/dev-lang/gforth/files/0.6.2-ppc-configure-gentoo.patch @@ -0,0 +1,13 @@ +diff -ur gforth-0.6.2.orig/configure gforth-0.6.2/configure +--- gforth-0.6.2.orig/configure 2003-08-25 03:03:42.000000000 -0500 ++++ gforth-0.6.2/configure 2006-05-12 15:10:52.000000000 -0500 +@@ -3586,7 +3586,8 @@ + fi + + #long long is broken on (at least) gcc-2.95.* for PPC +- test x$ac_cv_sizeof_long_long = x && ac_cv_sizeof_long_long=0 ++ # XXX this was fixed long ago ++# test x$ac_cv_sizeof_long_long = x && ac_cv_sizeof_long_long=0 + ;; + *) + { echo "$as_me:$LINENO: WARNING: Using a generic machine description" >&5 diff --git a/dev-lang/gforth/files/50gforth-gentoo.el b/dev-lang/gforth/files/50gforth-gentoo.el new file mode 100644 index 000000000000..b2be92698bbb --- /dev/null +++ b/dev-lang/gforth/files/50gforth-gentoo.el @@ -0,0 +1,7 @@ + +;;; gforth site-lisp configuration + +(add-to-list 'load-path "@SITELISP@") + +(autoload 'forth-mode "gforth" "Autoload for `forth-mode'." t) +(autoload 'run-forth "gforth" "Autoload for `run-forth'." t) diff --git a/dev-lang/gforth/files/gforth-0.7.0-make-elc.patch b/dev-lang/gforth/files/gforth-0.7.0-make-elc.patch new file mode 100644 index 000000000000..fa558407c258 --- /dev/null +++ b/dev-lang/gforth/files/gforth-0.7.0-make-elc.patch @@ -0,0 +1,14 @@ +--- gforth-0.7.0-orig/Makefile.in ++++ gforth-0.7.0/Makefile.in +@@ -430,7 +430,10 @@ + + ENGINES_FAST = gforth-fast$(OPT)$(EC)$(EXE) #gforth-native$(OPT)$(EC)$(EXE) + +-GEN = $(ENGINES) $(ENGINES_FAST) gforth.elc ++GEN = $(ENGINES) $(ENGINES_FAST) ++ifneq ($(emacssitelispdir), no) ++GEN += gforth.elc ++endif + + # things that need a working forth system to be generated + FORTH_GEN_ENGINE=engine/prim.i engine/prim_lab.i engine/prim_names.i \ diff --git a/dev-lang/gforth/files/gforth.el-gentoo.patch b/dev-lang/gforth/files/gforth.el-gentoo.patch new file mode 100644 index 000000000000..cc98537e766d --- /dev/null +++ b/dev-lang/gforth/files/gforth.el-gentoo.patch @@ -0,0 +1,37 @@ +--- gforth-0.6.2-orig/gforth.el 2003-08-05 11:12:47.000000000 +0200 ++++ gforth-0.6.2/gforth.el 2008-09-06 08:29:44.000000000 +0200 +@@ -61,9 +61,10 @@ + (progn (string-match "^[0-9]+" emacs-version) + (string-to-int (match-string 0 emacs-version))))) + +-(defun forth-emacs-older (major minor) +- (or (< emacs-major-version major) +- (and (= emacs-major-version major) (< emacs-minor-version minor)))) ++(eval-when-compile ++ (defun forth-emacs-older (major minor) ++ (or (< emacs-major-version major) ++ (and (= emacs-major-version major) (< emacs-minor-version minor))))) + + ;; Code ripped from `subr.el' for compatability with Emacs versions + ;; prior to 20.1 +@@ -79,8 +80,9 @@ + + ;; `no-error' argument of require not supported in Emacs versions + ;; prior to 20.4 :-( +-(defun forth-require (feature) +- (condition-case err (require feature) (error nil))) ++(eval-and-compile ++ (defun forth-require (feature) ++ (condition-case err (require feature) (error nil)))) + + (require 'font-lock) + +@@ -1702,6 +1704,6 @@ + (error "No current process. See variable `forth-process-buffer'")))) + ) ; (memq 'comint features) + +-(provide 'forth-mode) ++(provide 'gforth) + + ;;; gforth.el ends here + diff --git a/dev-lang/gforth/gforth-0.7.3.ebuild b/dev-lang/gforth/gforth-0.7.3.ebuild new file mode 100644 index 000000000000..9b5acae069ed --- /dev/null +++ b/dev-lang/gforth/gforth-0.7.3.ebuild @@ -0,0 +1,60 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit elisp-common eutils + +DESCRIPTION="GNU Forth is a fast and portable implementation of the ANSI Forth language" +HOMEPAGE="http://www.gnu.org/software/gforth" +SRC_URI="mirror://gnu/gforth/${P}.tar.gz" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~x86 ~x86-fbsd ~x86-freebsd ~x86-linux ~ppc-macos ~sparc-solaris" +IUSE="emacs" + +DEPEND="dev-libs/ffcall + emacs? ( virtual/emacs )" +RDEPEND="${DEPEND}" + +SITEFILE="50${PN}-gentoo.el" + +src_prepare() { + epatch "${FILESDIR}/${PN}-0.7.0-make-elc.patch" + epatch_user +} + +src_configure() { + # May want to add a USE flag for --enable-force-cdiv, if necessary + # At this point I do not know when that is appropriate, and I don't + # want to add an ebuild-specific USE flag without understanding. + econf \ + --without-check \ + $(use emacs || echo "--without-lispdir") +} + +src_compile() { + # Parallel make breaks here + emake -j1 || die "emake failed" +} + +src_install() { + emake DESTDIR="${D}" install + + dodoc AUTHORS BUGS ChangeLog NEWS* README* ToDo doc/glossaries.doc doc/*.ps + + if use emacs; then + elisp-install ${PN} gforth.el gforth.elc + elisp-site-file-install "${FILESDIR}/${SITEFILE}" + fi +} + +pkg_postinst() { + use emacs && elisp-site-regen +} + +pkg_postrm() { + use emacs && elisp-site-regen +} diff --git a/dev-lang/gforth/metadata.xml b/dev-lang/gforth/metadata.xml new file mode 100644 index 000000000000..e0c579bfd1d7 --- /dev/null +++ b/dev-lang/gforth/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<herd>proxy-maintainers</herd> + <maintainer> + <email>carsten@strotmann.de</email> + <name>Carsten Strotmann</name> + </maintainer> +</pkgmetadata> diff --git a/dev-lang/ghc/Manifest b/dev-lang/ghc/Manifest new file mode 100644 index 000000000000..7406de315e95 --- /dev/null +++ b/dev-lang/ghc/Manifest @@ -0,0 +1,34 @@ +DIST binary-0.7.5.0.tar.gz 45764 SHA256 4709c5aa7cc99cb4a465a68de1648968208d0c60c368e2fece476d977530ef19 SHA512 232e7c3da1c0055f3e9f211a86e81c76bc44ab1b70cabd23c93634dbaa42eed8bd9314fbedc16b9703d3ca92b0bbf232e6c30bb1384687dad0e6e85c9abb8947 WHIRLPOOL 1d8dcf9d5125ff398375f4024c0e43fa168004811db7824e2739ec5c0451b38dae9ad74f757c7708427deed0044580b182e35d1c7ecffec25f7b10c70bd32075 +DIST ghc-7.10.2-src.tar.bz2 12651156 SHA256 908a01ca86238318f4e880fda400ea399d0a0008d699c912b85d0e0f746e5689 SHA512 e3f99a9e848c12b728212da24bf9029ec8cde88cdfa7eeb4ee2ea223ad8bcaae3e7c27456d09d60a3d21efa8f907ccd2490caf5630ca5fe3ce87f04901275a66 WHIRLPOOL dee757e79de8ac6bcf127212703985282ce96d050be50e78c3f249f13dc0212c9fd96899502748ceb26b9fc3a804379a456e19a9bedfef72f6890992b00492da +DIST ghc-7.4.2-src.tar.bz2 25836446 SHA256 f2ee1289a33cc70539287129841acc7eaf16112bb60c59b5a6ee91887bfd836d SHA512 5a3d06a36702fa7e337b482c9de92ce1f84a68f18d8560bcc11f3617d6d46f93167fee27e786de6483a9ef0eab3b1ac6909a71dd53908d36156df4e465075050 WHIRLPOOL 61865eed2bf92728e7c4c4a0c48be44081bf728cfd824760d643e2fad838d96c19e173052d3aac073e0795b5efa3720ba5ddf13cca1ec7952b7524bbe1f204bc +DIST ghc-7.6.3-src.tar.bz2 110763823 SHA256 bd43823d31f6b5d0b2ca7b74151a8f98336ab0800be85f45bb591c9c26aac998 SHA512 ac86f18b4feeb0bdc9e867261600b210caf62740d73ae657259bbe8149b8c2c4f5a73d09d74d944d4e50f85cc87503485365f0a0ae65befe8d2b6844e5e1253a WHIRLPOOL 0fe1f5f2987699067494559e6a679d28f027eee8fb2a00c683161dbce5443b1faeebfb51572209b75231cee24c7f0c929cabbc82a93f70e16d05e351fdfe2eaf +DIST ghc-7.8.3-src.tar.xz 9160092 SHA256 b0cd96a549ba3b5e512847a4a8cd1a3174e4b2b75dadfc41c568fb812887b958 SHA512 2cc8c2aa6f18ba565c1e2aa637045e246f1214c2a77e95c2a97dfb97203b8983e4ad3cc13178b4b51aff70c58d59a1f68f94cd813d043745cb02411bad04bb00 WHIRLPOOL 3a2e8eea0db7a150e4732efed488a3a5eb56da00a9a90a3379afcb4090323925a2a7485fec6676e784139f112d7c825e8d18a576c34c760af4a7f3adb22c021a +DIST ghc-7.8.4-ia64-CLOSUREs-regenerated.patch.gz 13268 SHA256 3bdff22e654aee6f942d43edf1bf6cf70404c0152c4fcf89276f10d2c4c5b4b9 SHA512 a655713e06324b56f0041edf70837487e296d28e6f3ee35fe116b9938765aaf3469d25e92645e0940655ed3607dff27d3826fe0f995c84e81b51bfc956816e7d WHIRLPOOL d2cb53bdc6debc0278d554168ea3ab22b0fd8314adac81444637278a92d21b766280fedfb4b7d1b4540c7381c7962dec6b13a799ab2fee4d456fe2875d5c6a5b +DIST ghc-7.8.4-src.tar.bz2 10600755 SHA256 59e3bd514a1820cc1c03e1808282205c0b8518369acae12645ceaf839e6f114b SHA512 079a53891d8ebd8d9b88da96170e60981608a619f8282e4b7948f35244e99bd87277649ac7fcebc227a61a4d21960db8d5e5b9e92f2c69c82d8d68d7fd0a41d3 WHIRLPOOL a9be7641adbd237ed6e0f644c312e655e98be9566097aee5e2c0022e8756d5b2236e42dd86d76c638a001b5ca3f67307e89ec0cd003a92cd112a5d6d3e3d8467 +DIST ghc-bin-7.10.2-amd64.tbz2 112028560 SHA256 536297ac402da44ec1aafb1a937960883d12d192db16715ca34ab6469773a4c7 SHA512 207d8032c99d52bf4215ddeea2dbcd5816bb8d4caf2c3c31190e3ca92b49667d98a4f97aaf4cd6b40090f150854d520f75b5420dfe1ade7f036cf35d3dcb5100 WHIRLPOOL 8e43956a61c2c0fead242e3b179cde4918c04f3db7dbb27cc986f00f981261d98028ead82548b87d183d8da928635d5db4aa62ff1161f4077e5370483530a316 +DIST ghc-bin-7.10.2-x86.tbz2 113900477 SHA256 eefb7a3002e3dcdd6d936b2b2826eadf3cd100352babad4c9a355b944064240a SHA512 61dae4b9c80bfef6b1e0550c77b70f25d11f4a9fbe3b57d6c4ad451b4b584884432405d39dc32b9f85f3a5ad9d02657356ae0ebd99518848f3d330314c74b595 WHIRLPOOL da0d7eb62d2ee2aeb80a3f495da2ff123e29151b7517fbcd212f83ab3722638f10019511f4f237e8e001c68dd957ed2817fb0f1a2b42c2710239343f1d801496 +DIST ghc-bin-7.4.2-alpha.tbz2 130483507 SHA256 cd8e72e569574f137bf10fcdb4337bb0dc320deb2a2c4d72529a821735c53ae6 SHA512 6fb99dea706965afa60f4aeb68da3da1c69dda477f5fcfb4e67b73d75b78583193148ce9f623a356679a57f1a740f8010f28a22f08e56ace50f3fcd42142f83f WHIRLPOOL e5ec69ab24dc963ac709f13928c0e35931d5d50ca6b21dfb0aa79f9088c0ce1196b64bb4d9668e35d73dcdf9e2df9c3da59c95eaf3db8b793a6bb65b1f4ba6c0 +DIST ghc-bin-7.4.2-amd64-stable-glibc.tbz2 93139900 SHA256 f06dff00585cc1a8ecc8ac29aeca7fdc601d272eed29d7613f7a2f2924cad585 SHA512 9b725f2613dd9013851a16eaea4000ea424c51cbafa97d3860f120fdb9936247f8c65208775a80a2f49b74946ddda2e843a54dec00b78c521197374aa3dd2d50 WHIRLPOOL 9e2630b1de40a059c324be38a1fe68b16ea484bc7afc2a397ea05192263d1964aed1d29fde543622ceab12ed2df111204576fdc72b7e35b2bbf9c6b9519901d1 +DIST ghc-bin-7.4.2-ia64.tbz2 155787636 SHA256 a1d89221645832cc5d11cde4937cce75d564e6a79eba334b92a4c465eb3f161f SHA512 c7138ed8eaf40ee7e7559b6063096351b64fc35cbd1adb4c734b2f2c6b77fb98368b1296fcb67c1a0b21b0faf053a82f8f98c3656b89c593e677ce78165d0c74 WHIRLPOOL 7ff2db2932a6d56961dcca386c9ec8f8eb1ee12e1b84230fbb089ff137eeb216117eecaa37b33b4c037ebee0063a07cd380077b754e64ef0219759b54a4f7fe2 +DIST ghc-bin-7.4.2-ppc.tbz2 89396808 SHA256 ebf6083a1f3256a978a9408cffa2562e837b641136e5d6ad41a8ab5c2f50e804 SHA512 d7abd4a2612f26b6937dd20c11d2081b2c846178347a8e09f4ef5d8b1ef2ad3eabb9d5429fd0c214f6c5bd53eb194ccf199745904d6b861650c9eef681a48bc1 WHIRLPOOL e2f8a4c8e3209432a744fd8587be39591d7b4fb026dca36755933f49e6f650e1b34e6087d9260aee65206a700f9d70e2fb6cbe42d29645b52f060729845a347e +DIST ghc-bin-7.4.2-ppc64.tbz2 105431655 SHA256 d0aecf47749a9862085aec6403f25197465d99a02a3c721dffd5314bf81d74eb SHA512 f220fb91b1856da37f72166fe050d4908049845eec03626d09c5b6e88701b0002835c3343c3584baf9f9d9efb5c7cbc210eb64c6eb711a58764d0fea92e8ac9f WHIRLPOOL e27022a72c254fd189995fd1b39629d5328927b83237ae4e61e97ab5efb5c451c92fe77f944c724bf9d14130d5a6cd2e0896a7cd6052de1ef7091531aa39fa0f +DIST ghc-bin-7.4.2-sparc.tbz2 121224130 SHA256 e5eaf1f31ddc4790e0226f0075236af340ec9674d98701452d5c51455ca1cb52 SHA512 a3647d82bbb36fe0ca55185ebc9479a264e785eb5a8a33be6c37b8a6cbcf8c55373374801c685eef004de78db5aa1c96760b2bedb2ca0ac9097d39fe286984e9 WHIRLPOOL d2d5f8c5abb001fb5425e68d3d26d941569b832c373e40b5a96aaa11f589db9e2b72eb1cbcf8df7b8d4473e2cc1c61498b284d8b006cc20822c3a203fd0fe2cd +DIST ghc-bin-7.4.2-x86-stable-glibc.tbz2 92394017 SHA256 2c42257a60aec03ae622c1a600cd210a6094f26ac310fbd307006e7f2260e2a4 SHA512 9e8ef72d2aeb5681e6bb71e2eb875587ddd51089cfc3443c33c69f93274a29e5680de4bf4884af05cd84f0e9cea13d66d20f1e89994460137910cbc987b64359 WHIRLPOOL 5722824af91f1191e6a38a8eb4696e765468e3bf54ad411b1d387ae4bcc7cd4cb772bdf2054d7013a3cff41feaaf5607f051b3c0d9f609ca19f1a1f92dd02586 +DIST ghc-bin-7.6.3-amd64.tbz2 94441516 SHA256 3ef747e96a40c9d5021e88b8afee0a97838c27b00619d9187783d95279c31779 SHA512 89f6c693d83d6309a0e44fcc68e30279c858adb0a0ea9317dd168b2e632c22a8507da78ed953523f5d7156db98e06c6df56d6edc19c0c50b3941ea578263dc64 WHIRLPOOL 891dfbfc9d88fa579b6a837651f7cc6d9aecef8b8752ec7bcebbdfef2a6d8929d0edaceff27ec61d6160d36d1b0e8406b7829a04a858ed64210b5c57b9c98940 +DIST ghc-bin-7.6.3-r1-alpha.tbz2 123486983 SHA256 fb6828d9dff7b90563cc7b3277ed38801907930aebd6042a7e5ba61e5f50db73 SHA512 7821bdf7490283dc062be090d224138dd34641e014cc6742edaa51dcc9cb1de9724d575955b596c9273b878dfe79023daf172b132b124f67567132649cf9a30d WHIRLPOOL 4e51a7e7f54fcb4aeb7a4ade4140533413348f9aacf04f683fe7cc5e20843dc6a95bdd6d79a995e5e1085747be9e584df6ada61430662f06eb600abae0c7eabd +DIST ghc-bin-7.6.3-r1-ia64.tbz2 154480728 SHA256 9a176312f796a189c0354deab9a7c446db274f75f40554963c2f86597a5951fb SHA512 2aa945cebcd3d0c26af5ddb53cf2002ec6d263d071173495905dd52898bd2ab6605370b0025554c1f6afbd28e276abc708708e4add9a9b8cb08b4bb39f8f50a1 WHIRLPOOL 6371531141e707618577e924c01102481a12d91e2c85e24694ba64f9b2545869c248999138146f63ca379a4243ccd0dfa322ea01a23d222b9757584787c5a899 +DIST ghc-bin-7.6.3-r1-ppc.tbz2 91800558 SHA256 c9b2262957585c9f02136014aa05423e1b7674c8eb0731a6d991e400e053e33a SHA512 2a101a30a4324780f1a614e044ba614f9094cd57d026c56f2b3ba514ae049c26ce8e4acbc89e93229da451b6fbe05ba0980b500cdd785bb2bce968a60434403a WHIRLPOOL 3a3b7e1eb945be01ab195880c7709514d2d11d25bab12fc15c2257207da48a37e6d6d7699c9ed5c1cc32d01057240a4d795e43cdf9d9d2748a1d94b93fb283ed +DIST ghc-bin-7.6.3-r1-ppc64.tbz2 121213680 SHA256 7d820988a762dc56ec471c9fcb5510f2e0bb47560181aa7dea8a934e73952477 SHA512 17fb269a2eae326db927b8734cd8326061b059ecd50a377c51c37cd657380be1ae61964df299009259de6e4e00aa71a525a9224f8fa607d6cc7994c221848358 WHIRLPOOL 76e9664a535e6be54c5288be683959ab6aadafb04d03c5d2f08f8ee663868b3ed390e2a0c8e6d233a532af694709e03dc0f78d16dfe51b87e201655219da4704 +DIST ghc-bin-7.6.3-r1-sparc.tbz2 121641337 SHA256 0fb31b9584c1c6caafb44a51158bfd3d85c28d2313f8201855f58c019a1692c0 SHA512 d71efc47769efb091f93cb288b54a1fadfd4184053149b1cd7c219a0c9c95ed97c32b101c712e20643fea12546357b70a11f2852bebeac2141e961a3e4bf8764 WHIRLPOOL 37d320e01d8e43ecba6e90f8d0a9c440d30ea31ff79d9094a8205d9ce892570f81b8641080034215fdddf71131de1acc364e2a485383af8346190c36201c1e91 +DIST ghc-bin-7.6.3-x86.tbz2 93718672 SHA256 a55024f66a048437fcd6ef0f33cdb994a43628998a2f0fe4d094cc9ba83d1615 SHA512 624f2a3238dee15853018d45632d1363e42d34099a77e5e9ce5c8da976cb4c33578144f7c39dbf25ee68c17d8d42910db2347186849eeeda6bc20053ce2be990 WHIRLPOOL bc646fc19906b59416358fb7558b6e2c3f7ad069c2fcf443be36b621894cfcecb0844acf5b5f9c383e034dfff3e24d312a7da0d7a629836134ec5dc1ecd6f139 +DIST ghc-bin-7.8.3-amd64.tbz2 100786052 SHA256 af49f547336a4f9f13cd625155d5a6a998e52ae7da8bbbddc856f88b00b6aff4 SHA512 b1826095b67fa2028678057f70909bff4e082b82f3b70f1aedbc91073efad54334fa1864bc8248c9249eec6edab3671dc38ac1650be86f1245e2fecf92528952 WHIRLPOOL 5b44fff77a0d79c6f7c5c8ca792eb6b36987d1de58d5ebc0a9b05da9c19a2c312eca6b9d40e7e63437742b7f9c28c925feb3bea7f9803dda95fac7acaa7a3132 +DIST ghc-bin-7.8.3-x86.tbz2 102583755 SHA256 c67f0d2471e594b4fdfc5b219bb6b61e57e6ba75132aa3f63d171550af8cbe3c SHA512 badabbba2f46b5ab3a2601e53997ce6533162afeec7dc36eeb877a62680a9f599aeb05dd3682f45d3e273d71d28b8bd01eee37dcad3c7354e8f83b7be4e58536 WHIRLPOOL 7b99b6bbeb4ad6d203f270d8446285825ad0857a8ab058d8c126155b49e8819e0efc2f6c42b5ff775dc0ece5488e97fcc7ae2459fe87fdceef43d63a75443430 +DIST ghc-bin-7.8.4-alpha.tbz2 210691009 SHA256 23c9e5ef97b444fa87d3b9509a7b2b7b68c526ca4139739dd60c08fb1279d48a SHA512 f08230de82f0c4112da9d0b48227ca74d5d0b4a84046d746b023557b7aeeb9678f5ac037fe89a863178df4b9036e5c5c63182d14dfbb42c772011de883e3966f WHIRLPOOL d624b4d5eac8aa68f389b81e68d7fa2ea960c9b9c5fabb27ddf4da5140c18fd0ee9080725fb645e2c532bb0a01ade32da2cf6aac08707f9d89a94ea9752b8e72 +DIST ghc-bin-7.8.4-amd64.tbz2 100573133 SHA256 bd9d144c08caa0ff345ada8d7eed7592531b8f8b9ef2f94d0b9a42fd747440aa SHA512 e4416d6dae3c644f74bafb3aecf1a123f985427aba32d0e0c43143a137d64a9220fc5947cd9bde8a3bc44555ae71184fc06a3f7df7976aadd065ad5681b90954 WHIRLPOOL ab0bd6219d68e08cb473cf2f3f15538d65940f28e84f026361032c3a6bc09f7820faf67629e915f27c2afda7de41fa9c6010a1b5cd487df0936d968c7e58a3a4 +DIST ghc-bin-7.8.4-ia64.tbz2 222789275 SHA256 8bbbc11ba64d08bad691593afafc4c6a7cf078b10cf33cb8508bf0a0b3ccf523 SHA512 2d8b89e399cbe9bfeae29cf3ceea736bfaa65ea21483fa2ee95d9814e122fcfbb67ce22ad8175493fab088e9a9d0139610c67e9d5c8b4f797b5e14846df32b6e WHIRLPOOL 181d48bbb53d181c8febf63ddae620bec1a6c212a5b5bf938228689df2ff45ba68d7d4a99ebb1b68aa516d5633be41125321e3f8fdef6e5f0cd1e4a7f9b8774c +DIST ghc-bin-7.8.4-ppc.tbz2 112803496 SHA256 a47e0fb17137878af1e7b5a166046bee20d456d49da6ba8cde990173f4b3be8d SHA512 9581f55a088e53edcc969960e45c9ad7227d71198ce2d241a4a066a138450a879287e55e7d2210e86143670539711387e36c7f60660c4422dc1b4122278fe4a0 WHIRLPOOL 4904414cbfafdb48f0539b071fe80568da74beb174948ee426da5c22acf1d0c35ade89d2e160ddd109d2fbc0a508459a8e249f3b732b88735070b9522b417108 +DIST ghc-bin-7.8.4-ppc64.tbz2 129284515 SHA256 1e8a350af39d1db1e58a74c9bc4a4c57765eceb33e5b32751fb31340b9ff02ff SHA512 53974e15c26cf6b62d8f838607abd209ec57cf0f45fcc48b90ad62736f5e4e7ff263dcd326ae03d8d5557a22eb9730e5eb8ae4eda55e52dd3d973bc73c84935e WHIRLPOOL adaaa92323d319f6576423ac41678f7d263f36e0e30d89fc14ee89104b006772c26d7b408be7f85225d1bddaf5f15ebdcbb7136f5c8bf7bda4bb0938eefbe6c2 +DIST ghc-bin-7.8.4-sparc.tbz2 147340595 SHA256 1cde749ce3c47016c5c7a7179423d0aa2b174ddae4af0392ae3b7f57b098ec0c SHA512 ee5f0b2f1cf2693a0f2be9df71ef61b52bc2327225d40b8be955c1584b9901ffc6aaab63c1e46bf9bb352633b605c98378f8fd3e6cd71aef1c089007e4110217 WHIRLPOOL 27d55a016ffb49852553f920c29929c3bdf383e28b4b806ceb9ffc8b46a59b438801101402e498b069aa6eb56870b70a00ba7b1f4098f3fd8d8ddf1b20caa626 +DIST ghc-bin-7.8.4-x86.tbz2 102312459 SHA256 4c53148836e5a1ba55b8db5bb7c3eb915103e0955fb503b2facdc5a72f12a974 SHA512 cabc5bd6d8760ce4120e7053f6c1dffca7d161ba454b6201087760096c037c932e3ff8c82e53346c8278855bf0cff1c2f5fb8046242ca4d8307355b060a9556e WHIRLPOOL 0171d67dc1b63381a491e1577a783eb0e8f53cb579ba96a9b4fdf6685d494d78eb2be780f77ff33422d3b7c320ed102d9b48f6e954f8fee5532982575001a4a5 +DIST hoopl-3.10.1.0.tar.gz 241582 SHA256 7af615dfd4051670dccf31e5a7e1e71a9ae5f301e6a0668557fd84f61f6bc2d4 SHA512 943fe7034c89f4f914617cf1bccf7f66c3e660328fbbd9ae40f78a3f78a4a5b6fdd86c2afd40c11d4c4c4a34bc8fd47ab7e6227cdf9f3f4887b5cc796720e7aa WHIRLPOOL 3a410081f70c4ebbb563a48d71ec6f1e226a13b965ea12d01ca521b32041308394c7da6d3b3e36e75d1322c188b81fc08f4b2bf6037df5d8ac4998a944326be2 +DIST transformers-0.4.3.0.tar.gz 28632 SHA256 b3d0a797e815ca50d411e20c02f781efe7751308007d880af7f0b5c4365c3a9d SHA512 c3ec0893ebba4fbd6087c3202e919552c4a9bff3350b5c0589e7ebb18751a515d98b8cac15b0a3252906ea72b5a0eb09b7fe88c8da88b09d6ce4fbf0f50b2780 WHIRLPOOL 89591781926b1d025056dedcfc5de61705056c1e3a8eba72f2e89789e78d2ed4d8909f84d6560dfc66bc0b360f98cb3dc3835f3a05c2325f747498373c88aa4b diff --git a/dev-lang/ghc/files/ghc-7.0.4-CHOST-prefix.patch b/dev-lang/ghc/files/ghc-7.0.4-CHOST-prefix.patch new file mode 100644 index 000000000000..682c573c90a6 --- /dev/null +++ b/dev-lang/ghc/files/ghc-7.0.4-CHOST-prefix.patch @@ -0,0 +1,17 @@ +Strip versioning components from *HOST for Darwin and Solaris + +--- aclocal.m4 ++++ aclocal.m4 +@@ -1358,6 +1358,12 @@ + freebsd*) + $2="freebsd" + ;; ++ darwin*) ++ $2="darwin" ++ ;; ++ solaris2.*) ++ $2="solaris2" ++ ;; + *) + echo "Unknown OS $1" + exit 1 diff --git a/dev-lang/ghc/files/ghc-7.0.4-darwin8.patch b/dev-lang/ghc/files/ghc-7.0.4-darwin8.patch new file mode 100644 index 000000000000..bfbee41b4f93 --- /dev/null +++ b/dev-lang/ghc/files/ghc-7.0.4-darwin8.patch @@ -0,0 +1,18 @@ +Workaround headers problem in Darwin 8 as well. + +--- rts/PosixSource.h ++++ rts/PosixSource.h +@@ -11,6 +11,13 @@ + + #include <ghcplatform.h> + ++#if defined(darwin_HOST_OS) ++/* unfortunately the hack below only works for Darwin 9 and ++ * above, so as hack include sys/types early (before setting ++ * _POSIX_C_SOURCE) (this obviously obsoletes the hack below) */ ++#include <sys/types.h> ++#endif ++ + #if defined(freebsd_HOST_OS) + #define _POSIX_C_SOURCE 200112L + #define _XOPEN_SOURCE 600 diff --git a/dev-lang/ghc/files/ghc-7.10.1-T10590-dequeue.patch b/dev-lang/ghc/files/ghc-7.10.1-T10590-dequeue.patch new file mode 100644 index 000000000000..be0f7a05b1e3 --- /dev/null +++ b/dev-lang/ghc/files/ghc-7.10.1-T10590-dequeue.patch @@ -0,0 +1,89 @@ +diff --git a/rts/RaiseAsync.c b/rts/RaiseAsync.c +index 3b206ff..08c031c 100644 +--- a/rts/RaiseAsync.c ++++ b/rts/RaiseAsync.c +@@ -56,7 +56,8 @@ static void throwToSendMsg (Capability *cap USED_IF_THREADS, + + static void + throwToSingleThreaded__ (Capability *cap, StgTSO *tso, StgClosure *exception, +- rtsBool stop_at_atomically, StgUpdateFrame *stop_here) ++ rtsBool stop_at_atomically, StgUpdateFrame *stop_here, ++ rtsBool dequeue) + { + // Thread already dead? + if (tso->what_next == ThreadComplete || tso->what_next == ThreadKilled) { +@@ -64,7 +65,9 @@ throwToSingleThreaded__ (Capability *cap, StgTSO *tso, StgClosure *exception, + } + + // Remove it from any blocking queues +- removeFromQueues(cap,tso); ++ if (dequeue) { ++ removeFromQueues(cap,tso); ++ } + + raiseAsync(cap, tso, exception, stop_at_atomically, stop_here); + } +@@ -72,20 +75,26 @@ throwToSingleThreaded__ (Capability *cap, StgTSO *tso, StgClosure *exception, + void + throwToSingleThreaded (Capability *cap, StgTSO *tso, StgClosure *exception) + { +- throwToSingleThreaded__(cap, tso, exception, rtsFalse, NULL); ++ throwToSingleThreaded__(cap, tso, exception, rtsFalse, NULL, rtsTrue); ++} ++ ++void ++throwToSingleThreadedNoDequeue (Capability *cap, StgTSO *tso, StgClosure *exception) ++{ ++ throwToSingleThreaded__(cap, tso, exception, rtsFalse, NULL, rtsFalse); + } + + void + throwToSingleThreaded_ (Capability *cap, StgTSO *tso, StgClosure *exception, + rtsBool stop_at_atomically) + { +- throwToSingleThreaded__ (cap, tso, exception, stop_at_atomically, NULL); ++ throwToSingleThreaded__ (cap, tso, exception, stop_at_atomically, NULL, rtsTrue); + } + + void // cannot return a different TSO + suspendComputation (Capability *cap, StgTSO *tso, StgUpdateFrame *stop_here) + { +- throwToSingleThreaded__ (cap, tso, NULL, rtsFalse, stop_here); ++ throwToSingleThreaded__ (cap, tso, NULL, rtsFalse, stop_here, rtsTrue); + } + + /* ----------------------------------------------------------------------------- +diff --git a/rts/RaiseAsync.h b/rts/RaiseAsync.h +index 6bfed8d..2e8a7a3 100644 +--- a/rts/RaiseAsync.h ++++ b/rts/RaiseAsync.h +@@ -23,6 +23,10 @@ void throwToSingleThreaded (Capability *cap, + StgTSO *tso, + StgClosure *exception); + ++void throwToSingleThreadedNoDequeue (Capability *cap, ++ StgTSO *tso, ++ StgClosure *exception); ++ + void throwToSingleThreaded_ (Capability *cap, + StgTSO *tso, + StgClosure *exception, +diff --git a/rts/posix/Select.c b/rts/posix/Select.c +index 4b19235..6889499 100644 +--- a/rts/posix/Select.c ++++ b/rts/posix/Select.c +@@ -412,8 +412,12 @@ awaitEvent(rtsBool wait) + IF_DEBUG(scheduler, + debugBelch("Killing blocked thread %lu on bad fd=%i\n", + (unsigned long)tso->id, fd)); +- throwToSingleThreaded(&MainCapability, tso, +- (StgClosure *)blockedOnBadFD_closure); ++ /* ++ * We can't use throwToSingleThreaded() here ++ * as 'RTS_FD_IS_READY' breaks blocked_queue_hd list ++ */ ++ throwToSingleThreadedNoDequeue(&MainCapability, tso, ++ (StgClosure *)blockedOnBadFD_closure); + break; + case RTS_FD_IS_READY: + IF_DEBUG(scheduler, diff --git a/dev-lang/ghc/files/ghc-7.10.1-rc3-ghc-7.10-bootstrap.patch b/dev-lang/ghc/files/ghc-7.10.1-rc3-ghc-7.10-bootstrap.patch new file mode 100644 index 000000000000..60db34b8b362 --- /dev/null +++ b/dev-lang/ghc/files/ghc-7.10.1-rc3-ghc-7.10-bootstrap.patch @@ -0,0 +1,78 @@ +--- ghc-7.10.0.20150316-orig/compiler/utils/Pair.hs 2015-03-10 05:43:13.000000000 +1100 ++++ ghc-7.10.0.20150316/compiler/utils/Pair.hs 2015-03-17 09:50:48.491115080 +1100 +@@ -15,6 +15,8 @@ + import Data.Foldable + import Data.Monoid + import Data.Traversable ++#else ++import Control.Applicative ((<$>)) + #endif + + data Pair a = Pair { pFst :: a, pSnd :: a } +--- ghc-7.10.0.20150316-orig/compiler/types/Coercion.hs 2015-03-10 05:43:13.000000000 +1100 ++++ ghc-7.10.0.20150316/compiler/types/Coercion.hs 2015-03-17 10:11:21.636047380 +1100 +@@ -104,6 +104,8 @@ + #if __GLASGOW_HASKELL__ < 709 + import Control.Applicative hiding ( empty ) + import Data.Traversable (traverse, sequenceA) ++#else ++import Control.Applicative ((<$>)) + #endif + import FastString + import ListSetOps +--- ghc-7.10.0.20150316-orig/compiler/typecheck/TcEvidence.hs 2015-03-14 08:48:57.000000000 +1100 ++++ ghc-7.10.0.20150316/compiler/typecheck/TcEvidence.hs 2015-03-17 10:26:03.251433371 +1100 +@@ -50,6 +50,8 @@ + #if __GLASGOW_HASKELL__ < 709 + import Control.Applicative + import Data.Traversable (traverse, sequenceA) ++#else ++import Control.Applicative ((<$>)) + #endif + import qualified Data.Data as Data + import Outputable +--- ghc-7.10.0.20150316-orig/compiler/hsSyn/HsBinds.hs 2015-03-10 05:43:13.000000000 +1100 ++++ ghc-7.10.0.20150316/compiler/hsSyn/HsBinds.hs 2015-03-17 10:42:21.459519033 +1100 +@@ -47,6 +47,8 @@ + import Data.Traversable ( Traversable(..) ) + import Data.Monoid ( mappend ) + import Control.Applicative hiding (empty) ++#else ++import Control.Applicative ((<$>)) + #endif + + {- +--- ghc-7.10.0.20150316-orig/compiler/parser/RdrHsSyn.hs 2015-03-10 05:43:13.000000000 +1100 ++++ ghc-7.10.0.20150316/compiler/parser/RdrHsSyn.hs 2015-03-17 11:17:48.950929542 +1100 +@@ -91,9 +91,7 @@ + import Util + import ApiAnnotation + +-#if __GLASGOW_HASKELL__ < 709 + import Control.Applicative ((<$>)) +-#endif + import Control.Monad + + import Text.ParserCombinators.ReadP as ReadP +--- ghc-7.10.0.20150316-orig/compiler/typecheck/TcGenDeriv.hs 2015-03-14 08:48:57.000000000 +1100 ++++ ghc-7.10.0.20150316/compiler/typecheck/TcGenDeriv.hs 2015-03-17 11:30:39.106508173 +1100 +@@ -59,6 +59,8 @@ + import Var + #if __GLASGOW_HASKELL__ < 709 + import MonadUtils ++#else ++import Control.Applicative ((<$>)) + #endif + import Outputable + import Lexeme +--- ghc-7.10.0.20150316-orig/compiler/vectorise/Vectorise/Exp.hs 2015-03-10 05:43:13.000000000 +1100 ++++ ghc-7.10.0.20150316/compiler/vectorise/Vectorise/Exp.hs 2015-03-17 11:46:41.829481669 +1100 +@@ -46,6 +46,8 @@ + import Util + #if __GLASGOW_HASKELL__ < 709 + import MonadUtils ++#else ++import Control.Applicative ((<$>)) + #endif + + import Control.Monad diff --git a/dev-lang/ghc/files/ghc-7.2.1-freebsd-CHOST.patch b/dev-lang/ghc/files/ghc-7.2.1-freebsd-CHOST.patch new file mode 100644 index 000000000000..da59cd789f99 --- /dev/null +++ b/dev-lang/ghc/files/ghc-7.2.1-freebsd-CHOST.patch @@ -0,0 +1,13 @@ +diff --git a/aclocal.m4 b/aclocal.m4 +index 11bb003..52df243 100644 +--- a/aclocal.m4 ++++ b/aclocal.m4 +@@ -1545,7 +1545,7 @@ case "$1" in + freebsd|netbsd|openbsd|dragonfly|osf1|osf3|hpux|linuxaout|kfreebsdgnu|freebsd2|solaris2|cygwin32|mingw32|darwin|gnu|nextstep2|nextstep3|sunos4|ultrix|irix|aix|haiku) + $2="$1" + ;; +- freebsd8) # like i686-gentoo-freebsd8 ++ freebsd*) # like i686-gentoo-freebsd8 or i686-gentoo-freebsd8.2 + $2="freebsd" + ;; + darwin*) diff --git a/dev-lang/ghc/files/ghc-7.4-rc2-macos-prefix-respect-gcc.patch b/dev-lang/ghc/files/ghc-7.4-rc2-macos-prefix-respect-gcc.patch new file mode 100644 index 000000000000..770fd650606b --- /dev/null +++ b/dev-lang/ghc/files/ghc-7.4-rc2-macos-prefix-respect-gcc.patch @@ -0,0 +1,23 @@ +diff --git a/aclocal.m4 b/aclocal.m4 +index a377cb9..4f8fd69 100644 +--- a/aclocal.m4 ++++ b/aclocal.m4 +@@ -1950,17 +1950,7 @@ AC_DEFUN([XCODE_VERSION],[ + # -------------------------------- + # Finds where gcc is + AC_DEFUN([FIND_GCC],[ +- if test "$TargetOS_CPP" = "darwin" && +- test "$XCodeVersion1" -eq 4 && +- test "$XCodeVersion2" -lt 2 +- then +- # In Xcode 4.1, 'gcc-4.2' is the gcc legacy backend (rather +- # than the LLVM backend). We prefer the legacy gcc, but in +- # Xcode 4.2 'gcc-4.2' was removed. +- FP_ARG_WITH_PATH_GNU_PROG([CC], [gcc-4.2]) +- else +- FP_ARG_WITH_PATH_GNU_PROG([CC], [gcc]) +- fi ++ FP_ARG_WITH_PATH_GNU_PROG([CC], [gcc]) + export CC + WhatGccIsCalled="$CC" + AC_SUBST(WhatGccIsCalled) diff --git a/dev-lang/ghc/files/ghc-7.4.1-darwin-CHOST.patch b/dev-lang/ghc/files/ghc-7.4.1-darwin-CHOST.patch new file mode 100644 index 000000000000..348158882aaf --- /dev/null +++ b/dev-lang/ghc/files/ghc-7.4.1-darwin-CHOST.patch @@ -0,0 +1,18 @@ +like the other CHOST patches, but this one catches another case where +$host is used (instead of the cannonicalised variables) + +--- aclocal.m4 ++++ aclocal.m4 +@@ -93,10 +93,10 @@ + exeext='.exe' + soext='.dll' + ;; +- i386-apple-darwin|powerpc-apple-darwin) ++ i386-apple-darwin*|powerpc-apple-darwin*) + soext='.dylib' + ;; +- x86_64-apple-darwin) ++ x86_64-apple-darwin*) + soext='.dylib' + ;; + esac diff --git a/dev-lang/ghc/files/ghc-7.4.1-ticket-7339-fix-unaligned-unreg.patch b/dev-lang/ghc/files/ghc-7.4.1-ticket-7339-fix-unaligned-unreg.patch new file mode 100644 index 000000000000..f2f19f1bbab4 --- /dev/null +++ b/dev-lang/ghc/files/ghc-7.4.1-ticket-7339-fix-unaligned-unreg.patch @@ -0,0 +1,28 @@ +From 26f8466507bd9383e0a7d1e62e397eca4a13822a Mon Sep 17 00:00:00 2001 +From: Sergei Trofimovich <slyfox@gentoo.org> +Date: Tue, 13 Nov 2012 01:39:14 +0300 +Subject: [PATCH] Fix unaligned access on alpha and friends (ticket #7339) + +Assume unknown arch (alpha and mips) an alignment sensitive target. +Otherwise on alpha it causes ghc-7.4.1 to generate invalud lexers. + +Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> +--- + compiler/cmm/PprC.hs | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/compiler/cmm/PprC.hs b/compiler/cmm/PprC.hs +index 21826f8..8cdcde6 100644 +--- a/compiler/cmm/PprC.hs ++++ b/compiler/cmm/PprC.hs +@@ -963,6 +963,7 @@ cLoad platform expr rep + | otherwise + = char '*' <> parens (cCast platform (machRepPtrCType rep) expr) + where -- On these platforms, unaligned loads are known to cause problems ++ bewareLoadStoreAlignment ArchUnknown = True -- like alpha or mips + bewareLoadStoreAlignment (ArchARM {}) = True + bewareLoadStoreAlignment _ = False + +-- +1.8.0 + diff --git a/dev-lang/ghc/files/ghc-7.4.2-system-libffi.patch b/dev-lang/ghc/files/ghc-7.4.2-system-libffi.patch new file mode 100644 index 000000000000..73c4aa278dd8 --- /dev/null +++ b/dev-lang/ghc/files/ghc-7.4.2-system-libffi.patch @@ -0,0 +1,119 @@ +Make ghc use the libffi installed on the system instead of the bundled one. + +This patch is based on the one used by Debian and Fedora, but was +augmented by additional lines to identify the libffi include directory +using pkg-config, as libffi on Gentoo installs into a subdirectory of +the system include directory. + +2012-04-24 Martin von Gagern + +References: +https://bugs.gentoo.org/411925 +http://hackage.haskell.org/trac/ghc/ticket/5743 + +Index: ghc-7.4.1/ghc.mk +=================================================================== +--- ghc-7.4.1.orig/ghc.mk ++++ ghc-7.4.1/ghc.mk +@@ -579,7 +579,6 @@ BUILD_DIRS += \ + driver/ghci \ + driver/ghc \ + driver/haddock \ +- libffi \ + includes \ + rts + +Index: ghc-7.4.1/rts/ghc.mk +=================================================================== +--- ghc-7.4.1.orig/rts/ghc.mk ++++ ghc-7.4.1/rts/ghc.mk +@@ -86,8 +86,7 @@ + ALL_RTS_DEF_LIBNAMES = base ghc-prim + ALL_RTS_DEF_LIBS = \ + rts/dist/build/win32/libHSbase.dll.a \ +- rts/dist/build/win32/libHSghc-prim.dll.a \ +- libffi/build/inst/lib/libffi.dll.a ++ rts/dist/build/win32/libHSghc-prim.dll.a + + # -- import libs for the regular Haskell libraries + define make-importlib-def # args $1 = lib name +@@ -172,12 +171,12 @@ + # Making a shared library for the RTS. + ifneq "$$(findstring dyn, $1)" "" + ifeq "$$(HOSTPLATFORM)" "i386-unknown-mingw32" +-$$(rts_$1_LIB) : $$(rts_$1_OBJS) $$(ALL_RTS_DEF_LIBS) rts/libs.depend rts/dist/build/libffi-5.dll ++$$(rts_$1_LIB) : $$(rts_$1_OBJS) $$(ALL_RTS_DEF_LIBS) rts/libs.depend + "$$(RM)" $$(RM_OPTS) $$@ + "$$(rts_dist_HC)" -package-name rts -shared -dynamic -dynload deploy \ + -no-auto-link-packages -Lrts/dist/build -lffi-5 `cat rts/libs.depend` $$(rts_$1_OBJS) $$(ALL_RTS_DEF_LIBS) -o $$@ + else +-$$(rts_$1_LIB) : $$(rts_$1_OBJS) $$(rts_$1_DTRACE_OBJS) rts/libs.depend rts/dist/build/libffi$$(soext) ++$$(rts_$1_LIB) : $$(rts_$1_OBJS) $$(rts_$1_DTRACE_OBJS) rts/libs.depend + "$$(RM)" $$(RM_OPTS) $$@ + "$$(rts_dist_HC)" -package-name rts -shared -dynamic -dynload deploy \ + -no-auto-link-packages -Lrts/dist/build -lffi `cat rts/libs.depend` $$(rts_$1_OBJS) \ +@@ -188,9 +187,9 @@ + endif + endif + else +-$$(rts_$1_LIB) : $$(rts_$1_OBJS) $$(rts_$1_DTRACE_OBJS) $$(rts_ffi_objs_stamp) ++$$(rts_$1_LIB) : $$(rts_$1_OBJS) $$(rts_$1_DTRACE_OBJS) + "$$(RM)" $$(RM_OPTS) $$@ +- echo $$(rts_ffi_objs) $$(rts_$1_OBJS) $$(rts_$1_DTRACE_OBJS) | "$$(XARGS)" $$(XARGS_OPTS) "$$(AR_STAGE1)" \ ++ echo $$(rts_$1_OBJS) $$(rts_$1_DTRACE_OBJS) | "$$(XARGS)" $$(XARGS_OPTS) "$$(AR_STAGE1)" \ + $$(AR_OPTS_STAGE1) $$(EXTRA_AR_ARGS_STAGE1) $$@ + endif + +@@ -403,6 +402,12 @@ + rts/dist/build/sm/Evac_thr_CC_OPTS += -DPARALLEL_GC -Irts/sm + rts/dist/build/sm/Scav_thr_CC_OPTS += -DPARALLEL_GC -Irts/sm + ++# Use system libffi ++libffi_include_flags:=$(shell pkg-config --cflags-only-I libffi) ++rts/Adjustor_CC_OPTS += $(libffi_include_flags) ++rts/Interpreter_CC_OPTS += $(libffi_include_flags) ++rts/sm/Storage_CC_OPTS += $(libffi_include_flags) ++ + #----------------------------------------------------------------------------- + # Add PAPI library if needed + +@@ -504,10 +509,8 @@ + # installing + + INSTALL_LIBS += $(ALL_RTS_LIBS) +-INSTALL_LIBS += $(wildcard rts/dist/build/libffi$(soext)*) +-INSTALL_LIBS += $(wildcard rts/dist/build/libffi-5.dll) + +-install: install_libffi_headers ++install: + + .PHONY: install_libffi_headers + install_libffi_headers : +Index: ghc-7.4.1/rts/package.conf.in +=================================================================== +--- ghc-7.4.1.orig/rts/package.conf.in ++++ ghc-7.4.1/rts/package.conf.in +@@ -24,8 +24,9 @@ + hs-libraries: "HSrts" + + extra-libraries: ++ "ffi" + #ifdef HAVE_LIBM +- "m" /* for ldexp() */ ++ , "m" /* for ldexp() */ + #endif + #ifdef HAVE_LIBRT + , "rt" +Index: ghc-7.4.1/compiler/ghc.mk +=================================================================== +--- ghc-7.4.1.orig/compiler/ghc.mk ++++ ghc-7.4.1/compiler/ghc.mk +@@ -260,6 +260,8 @@ + + compiler_CPP_OPTS += -I$(GHC_INCLUDE_DIR) + compiler_CPP_OPTS += ${GhcCppOpts} ++libffi_include_flags := $(shell pkg-config --cflags-only-I libffi) ++compiler/ghci/LibFFI_HSC2HS_OPTS += $(addprefix --cflag=,$(libffi_include_flags)) + + $(PRIMOPS_TXT) compiler/parser/Parser.y: %: %.pp compiler/stage1/$(PLATFORM_H) + $(CPP) $(RAWCPP_FLAGS) -P $(compiler_CPP_OPTS) -x c $< | grep -v '^#pragma GCC' > $@ diff --git a/dev-lang/ghc/files/ghc-7.5.20120505-system-libffi.patch b/dev-lang/ghc/files/ghc-7.5.20120505-system-libffi.patch new file mode 100644 index 000000000000..f3b0c71c5454 --- /dev/null +++ b/dev-lang/ghc/files/ghc-7.5.20120505-system-libffi.patch @@ -0,0 +1,88 @@ +--- ghc-7.5.20120505-orig/ghc.mk 2012-05-06 03:01:29.000000000 +1000 ++++ ghc-7.5.20120505/ghc.mk 2012-05-06 17:22:01.023416003 +1000 +@@ -584,7 +584,6 @@ + $(MAYBE_GHCI) \ + driver/ghc \ + driver/haddock \ +- libffi \ + includes \ + rts + +--- ghc-7.5.20120505-orig/rts/ghc.mk 2012-05-06 03:01:30.000000000 +1000 ++++ ghc-7.5.20120505/rts/ghc.mk 2012-05-06 17:28:31.925897226 +1000 +@@ -171,12 +171,12 @@ + # Making a shared library for the RTS. + ifneq "$$(findstring dyn, $1)" "" + ifeq "$$(HostOS_CPP)" "mingw32" +-$$(rts_$1_LIB) : $$(rts_$1_OBJS) $$(ALL_RTS_DEF_LIBS) rts/libs.depend rts/dist/build/$$(LIBFFI_DLL) ++$$(rts_$1_LIB) : $$(rts_$1_OBJS) $$(ALL_RTS_DEF_LIBS) rts/libs.depend + "$$(RM)" $$(RM_OPTS) $$@ + "$$(rts_dist_HC)" -package-name rts -shared -dynamic -dynload deploy \ + -no-auto-link-packages -Lrts/dist/build -l$(LIBFFI_WINDOWS_LIB) `cat rts/libs.depend` $$(rts_$1_OBJS) $$(ALL_RTS_DEF_LIBS) -o $$@ + else +-$$(rts_$1_LIB) : $$(rts_$1_OBJS) $$(rts_$1_DTRACE_OBJS) rts/libs.depend rts/dist/build/libffi$$(soext) ++$$(rts_$1_LIB) : $$(rts_$1_OBJS) $$(rts_$1_DTRACE_OBJS) rts/libs.depend + "$$(RM)" $$(RM_OPTS) $$@ + "$$(rts_dist_HC)" -package-name rts -shared -dynamic -dynload deploy \ + -no-auto-link-packages -Lrts/dist/build -lffi `cat rts/libs.depend` $$(rts_$1_OBJS) \ +@@ -187,9 +187,9 @@ + endif + endif + else +-$$(rts_$1_LIB) : $$(rts_$1_OBJS) $$(rts_$1_DTRACE_OBJS) $$(rts_ffi_objs_stamp) ++$$(rts_$1_LIB) : $$(rts_$1_OBJS) $$(rts_$1_DTRACE_OBJS) + "$$(RM)" $$(RM_OPTS) $$@ +- echo $$(rts_ffi_objs) $$(rts_$1_OBJS) $$(rts_$1_DTRACE_OBJS) | "$$(XARGS)" $$(XARGS_OPTS) "$$(AR_STAGE1)" \ ++ echo $$(rts_$1_OBJS) $$(rts_$1_DTRACE_OBJS) | "$$(XARGS)" $$(XARGS_OPTS) "$$(AR_STAGE1)" \ + $$(AR_OPTS_STAGE1) $$(EXTRA_AR_ARGS_STAGE1) $$@ + endif + +@@ -407,6 +407,12 @@ + rts/dist/build/sm/Evac_thr_CC_OPTS += -DPARALLEL_GC -Irts/sm + rts/dist/build/sm/Scav_thr_CC_OPTS += -DPARALLEL_GC -Irts/sm + ++# Use system libffi ++libffi_include_flags:=$(shell pkg-config --cflags-only-I libffi) ++rts/Adjustor_CC_OPTS += $(libffi_include_flags) ++rts/Interpreter_CC_OPTS += $(libffi_include_flags) ++rts/sm/Storage_CC_OPTS += $(libffi_include_flags) ++ + #----------------------------------------------------------------------------- + # Add PAPI library if needed + +@@ -508,10 +514,8 @@ + # installing + + INSTALL_LIBS += $(ALL_RTS_LIBS) +-INSTALL_LIBS += $(wildcard rts/dist/build/libffi$(soext)*) +-INSTALL_LIBS += $(wildcard rts/dist/build/$(LIBFFI_DLL)) + +-install: install_libffi_headers ++install: + + .PHONY: install_libffi_headers + install_libffi_headers : +--- ghc-7.5.20120505-orig/rts/package.conf.in 2012-05-06 03:01:30.000000000 +1000 ++++ ghc-7.5.20120505/rts/package.conf.in 2012-05-06 17:22:01.025416056 +1000 +@@ -24,8 +24,9 @@ + hs-libraries: "HSrts" + + extra-libraries: ++ "ffi" + #ifdef HAVE_LIBM +- "m" /* for ldexp() */ ++ , "m" /* for ldexp() */ + #endif + #ifdef HAVE_LIBRT + , "rt" +--- ghc-7.5.20120505-orig/compiler/ghc.mk 2012-05-06 03:01:29.000000000 +1000 ++++ ghc-7.5.20120505/compiler/ghc.mk 2012-05-06 17:22:01.026416083 +1000 +@@ -260,6 +260,8 @@ + + compiler_CPP_OPTS += $(addprefix -I,$(GHC_INCLUDE_DIRS)) + compiler_CPP_OPTS += ${GhcCppOpts} ++libffi_include_flags := $(shell pkg-config --cflags-only-I libffi) ++compiler/ghci/LibFFI_HSC2HS_OPTS += $(addprefix --cflag=,$(libffi_include_flags)) + + $(PRIMOPS_TXT) compiler/parser/Parser.y: %: %.pp compiler/stage1/$(PLATFORM_H) + $(CPP) $(RAWCPP_FLAGS) -P $(compiler_CPP_OPTS) -x c $< | grep -v '^#pragma GCC' > $@ diff --git a/dev-lang/ghc/files/ghc-7.6.2-integer-simple-div-mod.patch b/dev-lang/ghc/files/ghc-7.6.2-integer-simple-div-mod.patch new file mode 100644 index 000000000000..0dc5391678f2 --- /dev/null +++ b/dev-lang/ghc/files/ghc-7.6.2-integer-simple-div-mod.patch @@ -0,0 +1,57 @@ +commit de13417726b90b0945aaaf0b9cfbaf8ab975d8b5 +Author: Gabor Greif <ggreif@gmail.com> +Date: Tue Jul 24 14:31:36 2012 +0200 + + track integer-gmp and add 'divInteger', 'modInteger' + +diff --git a/libraries/integer-simple/GHC/Integer.hs b/libraries/integer-simple/GHC/Integer.hs +index c9b50a7..4122d38 100644 +--- a/libraries/integer-simple/GHC/Integer.hs ++++ b/libraries/integer-simple/GHC/Integer.hs +@@ -4,7 +4,7 @@ + ----------------------------------------------------------------------------- + -- | + -- Module : GHC.Integer +--- Copyright : (c) Ian Lynagh 2007-2008 ++-- Copyright : (c) Ian Lynagh 2007-2012 + -- License : BSD3 + -- + -- Maintainer : igloo@earth.li +@@ -27,6 +27,7 @@ module GHC.Integer ( + plusInteger, minusInteger, timesInteger, negateInteger, + eqInteger, neqInteger, absInteger, signumInteger, + leInteger, gtInteger, ltInteger, geInteger, compareInteger, ++ divInteger, modInteger, + divModInteger, quotRemInteger, quotInteger, remInteger, + encodeFloatInteger, decodeFloatInteger, floatFromInteger, + encodeDoubleInteger, decodeDoubleInteger, doubleFromInteger, +diff --git a/libraries/integer-simple/GHC/Integer/Type.hs b/libraries/integer-simple/GHC/Integer/Type.hs +index c3d812c..67ed19c 100644 +--- a/libraries/integer-simple/GHC/Integer/Type.hs ++++ b/libraries/integer-simple/GHC/Integer/Type.hs +@@ -7,7 +7,7 @@ + ----------------------------------------------------------------------------- + -- | + -- Module : GHC.Integer.Type +--- Copyright : (c) Ian Lynagh 2007-2008 ++-- Copyright : (c) Ian Lynagh 2007-2012 + -- License : BSD3 + -- + -- Maintainer : igloo@earth.li +@@ -370,6 +370,16 @@ n `divModInteger` d = + then (# q `minusInteger` oneInteger, r `plusInteger` d #) + else (# q, r #) + ++{-# NOINLINE divInteger #-} ++divInteger :: Integer -> Integer -> Integer ++n `divInteger` d = quotient ++ where (# quotient, _ #) = n `divModInteger` d ++ ++{-# NOINLINE modInteger #-} ++modInteger :: Integer -> Integer -> Integer ++n `modInteger` d = modulus ++ where (# _, modulus #) = n `divModInteger` d ++ + {-# NOINLINE quotRemInteger #-} + quotRemInteger :: Integer -> Integer -> (# Integer, Integer #) + Naught `quotRemInteger` (!_) = (# Naught, Naught #) diff --git a/dev-lang/ghc/files/ghc-7.6.3-preserve-inplace-xattr.patch b/dev-lang/ghc/files/ghc-7.6.3-preserve-inplace-xattr.patch new file mode 100644 index 000000000000..08410fa0cd9b --- /dev/null +++ b/dev-lang/ghc/files/ghc-7.6.3-preserve-inplace-xattr.patch @@ -0,0 +1,14 @@ +On hardened 'cp' drops out XT-pax parking. +perfinion suggested using 'install', where portage +might have a chance to save our marking. + +Reported-by: Jay Yang +Gentoo-bug: https://bugs.gentoo.org/518734 +diff --git a/rules/build-prog.mk b/rules/build-prog.mk +index 399369e..2ee9cd5 100644 +--- a/rules/build-prog.mk ++++ b/rules/build-prog.mk +@@ -288,3 +288,3 @@ endif + $$($1_$2_INPLACE) : $1/$2/build/tmp/$$($1_$2_PROG_INPLACE) | $$$$(dir $$$$@)/. +- "$$(CP)" -p $$< $$@ ++ $$(INSTALL) -m 755 $$< $$@ diff --git a/dev-lang/ghc/files/ghc-7.6.3-trac-3333-weak-syms.patch b/dev-lang/ghc/files/ghc-7.6.3-trac-3333-weak-syms.patch new file mode 100644 index 000000000000..c3184a68c1e7 --- /dev/null +++ b/dev-lang/ghc/files/ghc-7.6.3-trac-3333-weak-syms.patch @@ -0,0 +1,387 @@ +The patch set adds support for weak symbols to ghci. + +For gentoo it fixes nonworking ghci / template haskell +for package base. + +Steps to reproduce: + 1. CFLAGS=-Os emerge ghc + 2. ghci -package base + Loading package base ... linking ... ghc: /usr/lib64/ghc-7.6.3/base-4.6.0.1/HSbase-4.6.0.1.o: unknown symbol `stat' + +When built with -O2 weak 'stat' resolved to '__xstat' and we don't see any errors. +But on olwer optimization levels 'stat' remains. + +Patches-by: akio +Gentoo-bug: http://bugs.gentoo.org/452442 +Upstream-bug: http://ghc.haskell.org/trac/ghc/ticket/3333 + +From 500d57d3a18412c78cab5abc4d91f1564edc964d Mon Sep 17 00:00:00 2001 +From: Takano Akio <aljee@hyper.cx> +Date: Sat, 29 Dec 2012 11:47:22 +0900 +Subject: [PATCH 1/3] Linker.c: remove stablehash, which is no longer used + +--- + includes/rts/Linker.h | 3 --- + rts/Linker.c | 31 ++----------------------------- + 2 files changed, 2 insertions(+), 32 deletions(-) + +diff --git a/includes/rts/Linker.h b/includes/rts/Linker.h +index e900e85..d20ebc2 100644 +--- a/includes/rts/Linker.h ++++ b/includes/rts/Linker.h +@@ -23,9 +23,6 @@ typedef char pathchar; + /* initialize the object linker */ + void initLinker( void ); + +-/* insert a stable symbol in the hash table */ +-void insertStableSymbol(pathchar* obj_name, char* key, StgPtr data); +- + /* insert a symbol in the hash table */ + void insertSymbol(pathchar* obj_name, char* key, void* data); + +diff --git a/rts/Linker.c b/rts/Linker.c +index fa1de89..513fe3f 100644 +--- a/rts/Linker.c ++++ b/rts/Linker.c +@@ -30,1 +30,0 @@ +-#include "Stable.h" +@@ -150,9 +149,6 @@ int dynamicByDefault = 0; + /* Hash table mapping symbol names to Symbol */ + static /*Str*/HashTable *symhash; + +-/* Hash table mapping symbol names to StgStablePtr */ +-static /*Str*/HashTable *stablehash; +- + /* List of currently loaded objects */ + ObjectCode *objects = NULL; /* initially empty */ + +@@ -1126,1 +1126,0 @@ typedef struct _RtsSymbolVal { +- SymI_HasProto(insertStableSymbol) \ +@@ -1488,7 +1483,6 @@ initLinker( void ) + #if defined(THREADED_RTS) && (defined(OBJFORMAT_ELF) || defined(OBJFORMAT_MACHO)) + initMutex(&dl_mutex); + #endif +- stablehash = allocStrHashTable(); + symhash = allocStrHashTable(); + + /* populate the symbol table with stuff from the RTS */ +@@ -1817,17 +1811,6 @@ error: + } + + /* ----------------------------------------------------------------------------- +- * insert a stable symbol in the hash table +- */ +- +-void +-insertStableSymbol(pathchar* obj_name, char* key, StgPtr p) +-{ +- ghciInsertStrHashTable(obj_name, stablehash, key, getStablePtr(p)); +-} +- +- +-/* ----------------------------------------------------------------------------- + * insert a symbol in the hash table + */ + void +@@ -4749,8 +4732,6 @@ do_Elf_Rel_relocations ( ObjectCode* oc, char* ehdrC, + #ifdef i386_HOST_ARCH + Elf_Addr value; + #endif +- StgStablePtr stablePtr; +- StgPtr stableVal; + #ifdef arm_HOST_ARCH + int is_target_thm=0, T=0; + #endif +@@ -4773,16 +4754,8 @@ do_Elf_Rel_relocations ( ObjectCode* oc, char* ehdrC, + + } else { + symbol = strtab + sym.st_name; +- stablePtr = (StgStablePtr)lookupHashTable(stablehash, (StgWord)symbol); +- if (NULL == stablePtr) { +- /* No, so look up the name in our global table. */ +- S_tmp = lookupSymbol( symbol ); +- S = (Elf_Addr)S_tmp; +- } else { +- stableVal = deRefStablePtr( stablePtr ); +- S_tmp = stableVal; +- S = (Elf_Addr)S_tmp; +- } ++ S_tmp = lookupSymbol( symbol ); ++ S = (Elf_Addr)S_tmp; + } + if (!S) { + errorBelch("%s: unknown symbol `%s'", oc->fileName, symbol); +-- +1.7.9.5 + +From 2e5e0f7a90dd390adc5ae5fb2a3bc6e879aa42d6 Mon Sep 17 00:00:00 2001 +From: Takano Akio <aljee@hyper.cx> +Date: Sat, 29 Dec 2012 11:59:34 +0900 +Subject: [PATCH 2/3] ghci: add support for ELF weak symbols + +--- + rts/Linker.c | 102 ++++++++++++++++++++++++++++++++++++++++++++-------------- + 1 file changed, 78 insertions(+), 24 deletions(-) + +diff --git a/rts/Linker.c b/rts/Linker.c +index 513fe3f..5105085 100644 +--- a/rts/Linker.c ++++ b/rts/Linker.c +@@ -146,7 +146,13 @@ int dynamicByDefault = 1; + int dynamicByDefault = 0; + #endif + +-/* Hash table mapping symbol names to Symbol */ ++typedef struct _RtsSymbolInfo { ++ void *value; ++ const ObjectCode *owner; ++ HsBool weak; ++} RtsSymbolInfo; ++ ++/* Hash table mapping symbol names to RtsSymbolInfo */ + static /*Str*/HashTable *symhash; + + /* List of currently loaded objects */ +@@ -1415,15 +1421,31 @@ static RtsSymbolVal rtsSyms[] = { + * Insert symbols into hash tables, checking for duplicates. + */ + +-static void ghciInsertStrHashTable ( pathchar* obj_name, +- HashTable *table, +- char* key, +- void *data +- ) ++static void ghciInsertSymbolTable( ++ pathchar* obj_name, ++ HashTable *table, ++ char* key, ++ void *data, ++ HsBool weak, ++ ObjectCode *owner) + { +- if (lookupHashTable(table, (StgWord)key) == NULL) ++ RtsSymbolInfo *pinfo = lookupStrHashTable(table, key); ++ if (!pinfo) /* new entry */ ++ { ++ pinfo = stgMallocBytes(sizeof (*pinfo), "ghciInsertToSymbolTable"); ++ pinfo->value = data; ++ pinfo->owner = owner; ++ pinfo->weak = weak; ++ insertStrHashTable(table, key, pinfo); ++ return; ++ } else if ((!pinfo->weak || pinfo->value) && weak) { ++ return; /* duplicate weak symbol, throw it away */ ++ } else if (pinfo->weak) /* weak symbol is in the table */ + { +- insertStrHashTable(table, (StgWord)key, data); ++ /* override the weak definition with the non-weak one */ ++ pinfo->value = data; ++ pinfo->owner = owner; ++ pinfo->weak = HS_BOOL_FALSE; + return; + } + debugBelch( +@@ -1444,6 +1466,32 @@ static void ghciInsertStrHashTable ( pathchar* obj_name, + ); + stg_exit(1); + } ++ ++static HsBool ghciLookupSymbolTable(HashTable *table, ++ const char *key, void **result) ++{ ++ RtsSymbolInfo *pinfo = lookupStrHashTable(table, key); ++ if (!pinfo) { ++ *result = NULL; ++ return HS_BOOL_FALSE; ++ } ++ if (pinfo->weak) ++ IF_DEBUG(linker, debugBelch("lookup: promoting %s\n", key)); ++ /* Once it's looked up, it can no longer be overridden */ ++ pinfo->weak = HS_BOOL_FALSE; ++ ++ *result = pinfo->value; ++ return HS_BOOL_TRUE; ++} ++ ++static void ghciRemoveSymbolTable(HashTable *table, const char *key, ++ ObjectCode *owner) ++{ ++ RtsSymbolInfo *pinfo = lookupStrHashTable(table, key); ++ if (!pinfo || owner != pinfo->owner) return; ++ removeStrHashTable(table, key, NULL); ++ stgFree(pinfo); ++} + /* ----------------------------------------------------------------------------- + * initialize the object linker + */ +@@ -1487,8 +1535,8 @@ initLinker( void ) + + /* populate the symbol table with stuff from the RTS */ + for (sym = rtsSyms; sym->lbl != NULL; sym++) { +- ghciInsertStrHashTable(WSTR("(GHCi built-in symbols)"), +- symhash, sym->lbl, sym->addr); ++ ghciInsertSymbolTable(WSTR("(GHCi built-in symbols)"), ++ symhash, sym->lbl, sym->addr, HS_BOOL_FALSE, NULL); + IF_DEBUG(linker, debugBelch("initLinker: inserting rts symbol %s, %p\n", sym->lbl, sym->addr)); + } + # if defined(OBJFORMAT_MACHO) && defined(powerpc_HOST_ARCH) +@@ -1816,7 +1864,7 @@ error: + void + insertSymbol(pathchar* obj_name, char* key, void* data) + { +- ghciInsertStrHashTable(obj_name, symhash, key, data); ++ ghciInsertSymbolTable(obj_name, symhash, key, data, HS_BOOL_FALSE, NULL); + } + + /* ----------------------------------------------------------------------------- +@@ -1829,9 +1877,8 @@ lookupSymbol( char *lbl ) + IF_DEBUG(linker, debugBelch("lookupSymbol: looking up %s\n", lbl)); + initLinker() ; + ASSERT(symhash != NULL); +- val = lookupStrHashTable(symhash, lbl); + +- if (val == NULL) { ++ if (!ghciLookupSymbolTable(symhash, lbl, &val)) { + IF_DEBUG(linker, debugBelch("lookupSymbol: symbol not found\n")); + # if defined(OBJFORMAT_ELF) + return internal_dlsym(dl_prog_handle, lbl); +@@ -1903,7 +1950,7 @@ void ghci_enquire ( char* addr ) + if (sym == NULL) continue; + a = NULL; + if (a == NULL) { +- a = lookupStrHashTable(symhash, sym); ++ ghciLookupSymbolTable(symhash, sym, (void **)&a); + } + if (a == NULL) { + // debugBelch("ghci_enquire: can't find %s\n", sym); +@@ -2715,7 +2762,7 @@ unloadObj( pathchar *path ) + int i; + for (i = 0; i < oc->n_symbols; i++) { + if (oc->symbols[i] != NULL) { +- removeStrHashTable(symhash, oc->symbols[i], NULL); ++ ghciRemoveSymbolTable(symhash, oc->symbols[i], oc); + } + } + } +@@ -3802,7 +3849,8 @@ ocGetNames_PEi386 ( ObjectCode* oc ) + ASSERT(i >= 0 && i < oc->n_symbols); + /* cstring_from_COFF_symbol_name always succeeds. */ + oc->symbols[i] = (char*)sname; +- ghciInsertStrHashTable(oc->fileName, symhash, (char*)sname, addr); ++ ghciInsertSymbolTable(oc->fileName, symhash, (char*)sname, addr, ++ HS_BOOL_FALSE, oc); + } else { + # if 0 + debugBelch( +@@ -4595,6 +4643,7 @@ ocGetNames_ELF ( ObjectCode* oc ) + for (j = 0; j < nent; j++) { + + char isLocal = FALSE; /* avoids uninit-var warning */ ++ HsBool isWeak = HS_BOOL_FALSE; + char* ad = NULL; + char* nm = strtab + stab[j].st_name; + int secno = stab[j].st_shndx; +@@ -4615,6 +4664,7 @@ ocGetNames_ELF ( ObjectCode* oc ) + else + if ( ( ELF_ST_BIND(stab[j].st_info)==STB_GLOBAL + || ELF_ST_BIND(stab[j].st_info)==STB_LOCAL ++ || ELF_ST_BIND(stab[j].st_info)==STB_WEAK + ) + /* and not an undefined symbol */ + && stab[j].st_shndx != SHN_UNDEF +@@ -4638,7 +4688,8 @@ ocGetNames_ELF ( ObjectCode* oc ) + ad = ehdrC + shdr[ secno ].sh_offset + stab[j].st_value; + if (ELF_ST_BIND(stab[j].st_info)==STB_LOCAL) { + isLocal = TRUE; +- } else { ++ isWeak = FALSE; ++ } else { /* STB_GLOBAL or STB_WEAK */ + #ifdef ELF_FUNCTION_DESC + /* dlsym() and the initialisation table both give us function + * descriptors, so to be consistent we store function descriptors +@@ -4649,6 +4700,7 @@ ocGetNames_ELF ( ObjectCode* oc ) + IF_DEBUG(linker,debugBelch( "addOTabName(GLOB): %10p %s %s\n", + ad, oc->fileName, nm )); + isLocal = FALSE; ++ isWeak = (ELF_ST_BIND(stab[j].st_info)==STB_WEAK); + } + } + +@@ -4661,7 +4713,7 @@ ocGetNames_ELF ( ObjectCode* oc ) + if (isLocal) { + /* Ignore entirely. */ + } else { +- ghciInsertStrHashTable(oc->fileName, symhash, nm, ad); ++ ghciInsertSymbolTable(oc->fileName, symhash, nm, ad, isWeak, oc); + } + } else { + /* Skip. */ +@@ -6306,11 +6358,13 @@ ocGetNames_MachO(ObjectCode* oc) + else + { + IF_DEBUG(linker, debugBelch("ocGetNames_MachO: inserting %s\n", nm)); +- ghciInsertStrHashTable(oc->fileName, symhash, nm, ++ ghciInsertSymbolTable(oc->fileName, symhash, nm, + image + + sections[nlist[i].n_sect-1].offset + - sections[nlist[i].n_sect-1].addr +- + nlist[i].n_value); ++ + nlist[i].n_value, ++ HS_BOOL_FALSE, ++ oc); + oc->symbols[curSymbol++] = nm; + } + } +@@ -6341,8 +6395,8 @@ ocGetNames_MachO(ObjectCode* oc) + nlist[i].n_value = commonCounter; + + IF_DEBUG(linker, debugBelch("ocGetNames_MachO: inserting common symbol: %s\n", nm)); +- ghciInsertStrHashTable(oc->fileName, symhash, nm, +- (void*)commonCounter); ++ ghciInsertSymbolTable(oc->fileName, symhash, nm, ++ (void*)commonCounter, HS_BOOL_FALSE, oc); + oc->symbols[curSymbol++] = nm; + + commonCounter += sz; +@@ -6466,7 +6520,7 @@ machoInitSymbolsWithoutUnderscore(void) + + #undef SymI_NeedsProto + #define SymI_NeedsProto(x) \ +- ghciInsertStrHashTable("(GHCi built-in symbols)", symhash, #x, *p++); ++ ghciInsertSymbolTable("(GHCi built-in symbols)", symhash, #x, *p++, HS_BOOL_FALSE, NULL); + + RTS_MACHO_NOUNDERLINE_SYMBOLS + +-- +1.7.9.5 + +From 916d7713b34b529ae7ec24eaa836a4eaca7724fc Mon Sep 17 00:00:00 2001 +From: Takano Akio <aljee@hyper.cx> +Date: Sun, 6 Jan 2013 17:51:19 +0900 +Subject: [PATCH 3/3] Linker.c: add dso_handle to the symbol table + +--- + rts/Linker.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/rts/Linker.c b/rts/Linker.c +index 5105085..0b2bf63 100644 +--- a/rts/Linker.c ++++ b/rts/Linker.c +@@ -1542,6 +1542,13 @@ initLinker( void ) + # if defined(OBJFORMAT_MACHO) && defined(powerpc_HOST_ARCH) + machoInitSymbolsWithoutUnderscore(); + # endif ++ /* GCC defines a special symbol __dso_handle which is resolved to NULL if ++ referenced from a statically linked module. We need to mimic this, but ++ we cannot use NULL because we use it to mean nonexistent symbols. So we ++ use an arbitrary (hopefully unique) address here. ++ */ ++ ghciInsertSymbolTable(WSTR("(GHCi special symbols)"), ++ symhash, "__dso_handle", (void *)0x12345687, HS_BOOL_FALSE, NULL); + + # if defined(OBJFORMAT_ELF) || defined(OBJFORMAT_MACHO) + # if defined(RTLD_DEFAULT) +-- +1.7.9.5 + diff --git a/dev-lang/ghc/files/ghc-7.8.1_rc1-libbfd.patch b/dev-lang/ghc/files/ghc-7.8.1_rc1-libbfd.patch new file mode 100644 index 000000000000..d01cb49affbd --- /dev/null +++ b/dev-lang/ghc/files/ghc-7.8.1_rc1-libbfd.patch @@ -0,0 +1,81 @@ +commit bb5953484579968c984d074ca1af5d21e1c9e7a0 +Author: Sergei Trofimovich <slyfox@gentoo.org> +Date: Mon Feb 10 12:45:58 2014 +0300 + + rts: unrust 'libbfd' debug symbols parser + + Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> + +diff --git a/configure.ac b/configure.ac +index e7fbc7f..e47979c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -801,7 +801,8 @@ fi + dnl ** check whether this machine has BFD and libiberty installed (used for debugging) + dnl the order of these tests matters: bfd needs libiberty + AC_CHECK_LIB(iberty, xmalloc) +-AC_CHECK_LIB(bfd, bfd_uncompress_section_contents) ++dnl 'bfd_init' is a rare non-macro in libbfd ++AC_CHECK_LIB(bfd, bfd_init) + + dnl ################################################################ + dnl Check for libraries +diff --git a/rts/Printer.c b/rts/Printer.c +index ca9ca49..ce02b02 100644 +--- a/rts/Printer.c ++++ b/rts/Printer.c +@@ -48,6 +48,9 @@ void printPtr( StgPtr p ) + raw = lookupGHCName(p); + if (raw != NULL) { + printZcoded(raw); ++ /* it can be just a C symbol, like 'stg_returnToStackTop' */ ++ debugBelch("<%s>", raw); ++ debugBelch("[%p]", p); + } else { + debugBelch("%p", p); + } +@@ -794,7 +797,7 @@ static void printZcoded( const char *raw ) + disabling this for now. + */ + #ifdef USING_LIBBFD +- ++#include "../mk/config.h" /* silly BFD's requirement */ + #include <bfd.h> + + /* Fairly ad-hoc piece of code that seems to filter out a lot of +@@ -863,7 +866,10 @@ extern void DEBUG_LoadSymbols( char *name ) + for( i = 0; i != number_of_symbols; ++i ) { + symbol_info info; + bfd_get_symbol_info(abfd,symbol_table[i],&info); +- /*debugBelch("\t%c\t0x%x \t%s\n",info.type,(nat)info.value,info.name); */ ++ if (0) ++ { ++ debugBelch("\t%c\t0x%x \t%s\n",info.type,(nat)info.value,info.name); ++ } + if (isReal(info.type, info.name)) { + num_real_syms += 1; + } +diff --git a/rts/RtsStartup.c b/rts/RtsStartup.c +index aa7306f..5bdef94 100644 +--- a/rts/RtsStartup.c ++++ b/rts/RtsStartup.c +@@ -19,6 +19,7 @@ + #include "RtsFlags.h" + #include "RtsUtils.h" + #include "Prelude.h" ++#include "Printer.h" /* DEBUG_LoadSymbols */ + #include "Schedule.h" /* initScheduler */ + #include "Stats.h" /* initStats */ + #include "STM.h" /* initSTM */ +@@ -162,6 +163,11 @@ hs_init_ghc(int *argc, char **argv[], RtsConfig rts_config) + rts_config.rts_opts_enabled, rts_config.rts_opts, rts_config.rts_hs_main); + } + ++#ifdef DEBUG ++ /* load debugging symbols */ ++ DEBUG_LoadSymbols((*argv)[0]); ++#endif /* DEBUG */ ++ + /* Initialise the stats department, phase 1 */ + initStats1(); + diff --git a/dev-lang/ghc/files/ghc-7.8.2-cgen-constify.patch b/dev-lang/ghc/files/ghc-7.8.2-cgen-constify.patch new file mode 100644 index 000000000000..efdd54fbf3fb --- /dev/null +++ b/dev-lang/ghc/files/ghc-7.8.2-cgen-constify.patch @@ -0,0 +1,34 @@ +commit b0cf3ab7a69b878a4335d21a347b56e4b0ca0b7b +Author: Sergei Trofimovich <slyfox@gentoo.org> +Date: Mon Apr 14 19:06:24 2014 +0300 + + compiler/cmm/PprC.hs: constify local string literals + + Consider one-line module + module B (v) where v = "hello" + in -fvia-C mode it generates code like + static char gibberish_str[] = "hello"; + + It uselessly eats data section (precious resource on ia64!). + The patch switches genrator to emit: + static const char gibberish_str[] = "hello"; + + Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> + +diff --git a/compiler/cmm/PprC.hs b/compiler/cmm/PprC.hs +index 2398981..fdb578d 100644 +--- a/compiler/cmm/PprC.hs ++++ b/compiler/cmm/PprC.hs +@@ -112,6 +112,12 @@ pprTop (CmmProc infos clbl _ graph) = + + -- We only handle (a) arrays of word-sized things and (b) strings. + ++pprTop (CmmData ReadOnlyData (Statics lbl [CmmString str])) = ++ hcat [ ++ pprLocalness lbl, ptext (sLit "const char "), ppr lbl, ++ ptext (sLit "[] = "), pprStringInCStyle str, semi ++ ] ++ + pprTop (CmmData _section (Statics lbl [CmmString str])) = + hcat [ + pprLocalness lbl, ptext (sLit "char "), ppr lbl, diff --git a/dev-lang/ghc/files/ghc-7.8.3-cc-lang.patch b/dev-lang/ghc/files/ghc-7.8.3-cc-lang.patch new file mode 100644 index 000000000000..032dc9a67624 --- /dev/null +++ b/dev-lang/ghc/files/ghc-7.8.3-cc-lang.patch @@ -0,0 +1,129 @@ +commit 4d4d07704ee78221607a18b8118294b0aea1bac4 +Author: Sergei Trofimovich <slyfox@gentoo.org> +Date: Tue Sep 2 00:06:56 2014 +0300 + + systools: fix gcc version detecton on non-english locale + + Summary: + ghc runs 'gcc -v' to check if we run under vanilla gcc + or disaguised clang by checking for string + + "gcc version <something>" + + But this check does not always work as gcc has that string + localized via gettext mechanism: + + (some gcc's locale strings) + be.po-msgstr "версія gcc %s\n" + da.po-msgstr "GCC version %s\n" + de.po-msgstr "gcc-Version %s %s\n" + el.po-msgstr "έκδοση gcc %s\n" + ... + + To ping gcc to English locale we now override environment + variable with 'LANGUAGE=en' value. + + Fixes Issue #8825 + + Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> + + Test Plan: validate + + Reviewers: austin + + Reviewed By: austin + + Subscribers: simonmar, ezyang, carter + + Differential Revision: https://phabricator.haskell.org/D185 + + GHC Trac Issues: #8825 + +diff --git a/compiler/main/SysTools.lhs b/compiler/main/SysTools.lhs +index 72fa19b..67926f5 100644 +--- a/compiler/main/SysTools.lhs ++++ b/compiler/main/SysTools.lhs +@@ -492,6 +492,51 @@ readCreateProcess proc = do + + return (ex, output) + ++readProcessEnvWithExitCode ++ :: String -- ^ program path ++ -> [String] -- ^ program args ++ -> [(String, String)] -- ^ environment to override ++ -> IO (ExitCode, String, String) -- ^ (exit_code, stdout, stderr) ++readProcessEnvWithExitCode prog args env_update = do ++ current_env <- getEnvironment ++ let new_env = env_update ++ [ (k, v) ++ | let overriden_keys = map fst env_update ++ , (k, v) <- current_env ++ , k `notElem` overriden_keys ++ ] ++ p = proc prog args ++ ++ (_stdin, Just stdoh, Just stdeh, pid) <- ++ createProcess p{ std_out = CreatePipe ++ , std_err = CreatePipe ++ , env = Just new_env ++ } ++ ++ outMVar <- newEmptyMVar ++ errMVar <- newEmptyMVar ++ ++ _ <- forkIO $ do ++ stdo <- hGetContents stdoh ++ _ <- evaluate (length stdo) ++ putMVar outMVar stdo ++ ++ _ <- forkIO $ do ++ stde <- hGetContents stdeh ++ _ <- evaluate (length stde) ++ putMVar errMVar stde ++ ++ out <- takeMVar outMVar ++ hClose stdoh ++ err <- takeMVar errMVar ++ hClose stdeh ++ ++ ex <- waitForProcess pid ++ ++ return (ex, out, err) ++ ++-- Don't let gcc localize version info string, #8825 ++en_locale_env :: [(String, String)] ++en_locale_env = [("LANGUAGE", "en")] + + -- If the -B<dir> option is set, add <dir> to PATH. This works around + -- a bug in gcc on Windows Vista where it can't find its auxiliary +@@ -746,8 +791,9 @@ getLinkerInfo' dflags = do + _ -> do + -- In practice, we use the compiler as the linker here. Pass + -- -Wl,--version to get linker version info. +- (exitc, stdo, stde) <- readProcessWithExitCode pgm +- ["-Wl,--version"] "" ++ (exitc, stdo, stde) <- readProcessEnvWithExitCode pgm ++ ["-Wl,--version"] ++ en_locale_env + -- Split the output by lines to make certain kinds + -- of processing easier. In particular, 'clang' and 'gcc' + -- have slightly different outputs for '-Wl,--version', but +@@ -802,7 +848,8 @@ getCompilerInfo' dflags = do + + -- Process the executable call + info <- catchIO (do +- (exitc, stdo, stde) <- readProcessWithExitCode pgm ["-v"] "" ++ (exitc, stdo, stde) <- ++ readProcessEnvWithExitCode pgm ["-v"] en_locale_env + -- Split the output by lines to make certain kinds + -- of processing easier. + parseCompilerInfo (lines stdo) (lines stde) exitc +@@ -952,7 +999,8 @@ readElfSection _dflags section exe = do + prog = "readelf" + args = [Option "-p", Option section, FileOption "" exe] + -- +- r <- readProcessWithExitCode prog (filter notNull (map showOpt args)) "" ++ r <- readProcessEnvWithExitCode prog (filter notNull (map showOpt args)) ++ en_locale_env + case r of + (ExitSuccess, out, _err) -> return (doFilter (lines out)) + _ -> return Nothing diff --git a/dev-lang/ghc/files/ghc-7.8.3-deRefStablePtr.patch b/dev-lang/ghc/files/ghc-7.8.3-deRefStablePtr.patch new file mode 100644 index 000000000000..8deec21edc5c --- /dev/null +++ b/dev-lang/ghc/files/ghc-7.8.3-deRefStablePtr.patch @@ -0,0 +1,38 @@ +commit 104a66a461f4f89b8e5ad9c829923bb7ca8ceddb +Author: Sergei Trofimovich <slyfox@gentoo.org> +Date: Sat Aug 23 13:11:23 2014 +0300 + + rts/Linker.c: declare 'deRefStablePtr' as an exported 'rts' symbol + + $ inplace/bin/ghc-stage2 -fforce-recomp -dcore-lint -dcmm-lint -dno-debug-output -no-user-package-db -rtsopts -optc-fno-builtin -fno-ghci-history \ + testsuite/tests/ffi/should_run/T4038.hs --interactive -v0 -ignore-dot-ghci +RTS -I0.1 -RTS + + *Main> main + <interactive>: /tmp/ghc16668_0/ghc16668_5.o: unknown symbol `deRefStablePtr' + + The reference to 'deRefStablePtr' is generated by 'compiler/deSugar/DsForeign.lhs': + the_cfun + = case maybe_target of + Nothing -> text "(StgClosure*)deRefStablePtr(the_stableptr)" + Just hs_fn -> char '&' <> ppr hs_fn <> text "_closure" + + Patch fixes all broken tests using 'import wrapper': + TEST="ffi013 ffi010 ffi011 ffi005 ffi020 ffi006 ffi019 fed001 T1679 T4038" + + Tests manifested as broken only in DYNAMIC_GHC_PROGRAMS=NO builds, + where GHCi's custom linker is used instead of system's linker. + + Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> + +diff --git a/rts/Linker.c b/rts/Linker.c +index e97580d..b24be58 100644 +--- a/rts/Linker.c ++++ b/rts/Linker.c +@@ -1092,6 +1092,7 @@ typedef struct _RtsSymbolVal { + SymI_HasProto(__word_encodeFloat) \ + SymI_HasProto(stg_atomicallyzh) \ + SymI_HasProto(barf) \ ++ SymI_HasProto(deRefStablePtr) \ + SymI_HasProto(debugBelch) \ + SymI_HasProto(errorBelch) \ + SymI_HasProto(sysErrorBelch) \ diff --git a/dev-lang/ghc/files/ghc-7.8.3-ia64-prim.patch b/dev-lang/ghc/files/ghc-7.8.3-ia64-prim.patch new file mode 100644 index 000000000000..9026ecfdf4b1 --- /dev/null +++ b/dev-lang/ghc/files/ghc-7.8.3-ia64-prim.patch @@ -0,0 +1,69 @@ +commit e2a8801b9779949010f30db6f6ef66f3c3a70776 +Author: Sergei Trofimovich <slyfox@gentoo.org> +Date: Thu Sep 4 17:50:45 2014 +0300 + + pprC: declare extern cmm primitives as functions, not data + + Summary: + The commit fixes incorrect code generation of + integer-gmp package on ia64 due to C prototype mismatch. + Before patch prototype was + StgWord poizh[]; + After patch it became + StgFunPtr poizh(); + + Long story: + + Consider the following simple example: + + {-# LANGUAGE MagicHash, GHCForeignImportPrim, UnliftedFFITypes #-} + module M where + import GHC.Prim -- Int# + foreign import prim "poizh" poi# :: Int# -> Int# + + Before the patch Unregisterised build generated the + following 'poizh' reference: + EI_(poizh); /* StgWord poizh[]; */ + FN_(M_poizh_entry) { + // ... + JMP_((W_)&poizh); + } + + After the patch it looks this way: + EF_(poizh); /* StgFunPtr poizh(); */ + FN_(M_poizh_entry) { + // ... + JMP_((W_)&poizh); + } + + On ia64 it leads to different relocation types being generated: + incorrect one: + addl r14 = @ltoffx(poizh#) + ld8.mov r14 = [r14], poizh# + correct one: + addl r14 = @ltoff(@fptr(poizh#)), gp + ld8 r14 = [r14] + + '@fptr(poizh#)' basically instructs assembler to creates + another obect consisting of real address to 'poizh' instructions + and module address. That '@fptr' object is used as a function "address". + This object is different for every module referencing 'poizh' symbol. + + All indirect function calls expect '@fptr' object. That way + call site can read real destination address and set destination + module address in 'gp' register. + + Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> + +diff --git a/compiler/cmm/CLabel.hs b/compiler/cmm/CLabel.hs +index 02ad026..0f2c0ae 100644 +--- a/compiler/cmm/CLabel.hs ++++ b/compiler/cmm/CLabel.hs +@@ -813,6 +813,7 @@ labelType (CmmLabel _ _ CmmClosure) = GcPtrLabel + labelType (CmmLabel _ _ CmmCode) = CodeLabel + labelType (CmmLabel _ _ CmmInfo) = DataLabel + labelType (CmmLabel _ _ CmmEntry) = CodeLabel ++labelType (CmmLabel _ _ CmmPrimCall) = CodeLabel + labelType (CmmLabel _ _ CmmRetInfo) = DataLabel + labelType (CmmLabel _ _ CmmRet) = CodeLabel + labelType (RtsLabel (RtsSelectorInfoTable _ _)) = DataLabel diff --git a/dev-lang/ghc/files/ghc-7.8.3-linker-warn.patch b/dev-lang/ghc/files/ghc-7.8.3-linker-warn.patch new file mode 100644 index 000000000000..c8570c06940b --- /dev/null +++ b/dev-lang/ghc/files/ghc-7.8.3-linker-warn.patch @@ -0,0 +1,35 @@ +commit 326046739801a380c5457ef4c87bce8fb95497ba +Author: Sergei Trofimovich <slyfox@gentoo.org> +Date: Sun Aug 10 22:12:28 2014 +0300 + + systools info: fix warning about C compiler (message said about linker) + + Summary: Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> + + Test Plan: build-tested + + Reviewers: austin + + Reviewed By: austin + + Subscribers: phaskell, simonmar, relrod, ezyang, carter + + Differential Revision: https://phabricator.haskell.org/D132 + +diff --git a/compiler/main/SysTools.lhs b/compiler/main/SysTools.lhs +index 1c1c52c..72fa19b 100644 +--- a/compiler/main/SysTools.lhs ++++ b/compiler/main/SysTools.lhs +@@ -809,10 +809,10 @@ getCompilerInfo' dflags = do + ) + (\err -> do + debugTraceMsg dflags 2 +- (text "Error (figuring out compiler information):" <+> ++ (text "Error (figuring out C compiler information):" <+> + text (show err)) + errorMsg dflags $ hang (text "Warning:") 9 $ +- text "Couldn't figure out linker information!" $$ ++ text "Couldn't figure out C compiler information!" $$ + text "Make sure you're using GNU gcc, or clang" + return UnknownCC) + return info diff --git a/dev-lang/ghc/files/ghc-7.8.3-pic-asm.patch b/dev-lang/ghc/files/ghc-7.8.3-pic-asm.patch new file mode 100644 index 000000000000..10c41d5b29f6 --- /dev/null +++ b/dev-lang/ghc/files/ghc-7.8.3-pic-asm.patch @@ -0,0 +1,107 @@ +commit a93ab43ab5f40cadbedea2f6342b93c245e91434 +Author: Sergei Trofimovich <slyfox@gentoo.org> +Date: Wed Aug 27 22:19:52 2014 +0300 + + driver: pass '-fPIC' option to assembler as well + + Summary: + Before the patch '-fPIC' was passed only to C compiler, + but not to assembler itself. + + It led to runtime crash in GHC_DYNAMIC_PROGRAMS=YES mode + on sparc32. + + Technical details are in 'Note [-fPIC for assembler]'. + + Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> + + Test Plan: validate on sparc + + Reviewers: simonmar, austin, kgardas + + Reviewed By: austin + + Subscribers: simonmar, ezyang, carter + + Differential Revision: https://phabricator.haskell.org/D177 + +diff --git a/compiler/main/DriverPipeline.hs b/compiler/main/DriverPipeline.hs +index 183f435..5a18e6e 100644 +--- a/compiler/main/DriverPipeline.hs ++++ b/compiler/main/DriverPipeline.hs +@@ -1199,6 +1199,7 @@ runPhase (RealPhase (As with_cpp)) input_fn dflags + + as_prog <- whichAsProg + let cmdline_include_paths = includePaths dflags ++ let pic_c_flags = picCCOpts dflags + + next_phase <- maybeMergeStub + output_fn <- phaseOutputFilename next_phase +@@ -1212,6 +1213,9 @@ runPhase (RealPhase (As with_cpp)) input_fn dflags + = liftIO $ as_prog dflags + ([ SysTools.Option ("-I" ++ p) | p <- cmdline_include_paths ] + ++ -- See Note [-fPIC for assembler] ++ ++ map SysTools.Option pic_c_flags ++ + -- We only support SparcV9 and better because V8 lacks an atomic CAS + -- instruction so we have to make sure that the assembler accepts the + -- instruction set. Note that the user can still override this +@@ -1253,6 +1257,8 @@ runPhase (RealPhase SplitAs) _input_fn dflags + osuf = objectSuf dflags + split_odir = base_o ++ "_" ++ osuf ++ "_split" + ++ let pic_c_flags = picCCOpts dflags ++ + -- this also creates the hierarchy + liftIO $ createDirectoryIfMissing True split_odir + +@@ -1286,6 +1292,9 @@ runPhase (RealPhase SplitAs) _input_fn dflags + then [SysTools.Option "-mcpu=v9"] + else []) ++ + ++ -- See Note [-fPIC for assembler] ++ map SysTools.Option pic_c_flags ++ ++ + [ SysTools.Option "-c" + , SysTools.Option "-o" + , SysTools.FileOption "" (split_obj n) +@@ -2203,3 +2212,38 @@ haveRtsOptsFlags dflags = + isJust (rtsOpts dflags) || case rtsOptsEnabled dflags of + RtsOptsSafeOnly -> False + _ -> True ++ ++-- Note [-fPIC for assembler] ++-- When compiling .c source file GHC's driver pipeline basically ++-- does the following two things: ++-- 1. ${CC} -S 'PIC_CFLAGS' source.c ++-- 2. ${CC} -x assembler -c 'PIC_CFLAGS' source.S ++-- ++-- Why do we need to pass 'PIC_CFLAGS' both to C compiler and assembler? ++-- Because on some architectures (at least sparc32) assembler also choses ++-- relocation type! ++-- Consider the following C module: ++-- ++-- /* pic-sample.c */ ++-- int v; ++-- void set_v (int n) { v = n; } ++-- int get_v (void) { return v; } ++-- ++-- $ gcc -S -fPIC pic-sample.c ++-- $ gcc -c pic-sample.s -o pic-sample.no-pic.o # incorrect binary ++-- $ gcc -c -fPIC pic-sample.s -o pic-sample.pic.o # correct binary ++-- ++-- $ objdump -r -d pic-sample.pic.o > pic-sample.pic.o.od ++-- $ objdump -r -d pic-sample.no-pic.o > pic-sample.no-pic.o.od ++-- $ diff -u pic-sample.pic.o.od pic-sample.no-pic.o.od ++-- ++-- Most of architectures won't show any difference in this test, but on sparc32 ++-- the following assembly snippet: ++-- ++-- sethi %hi(_GLOBAL_OFFSET_TABLE_-8), %l7 ++-- ++-- generates two kinds or relocations, only 'R_SPARC_PC22' is correct: ++-- ++-- 3c: 2f 00 00 00 sethi %hi(0), %l7 ++-- - 3c: R_SPARC_PC22 _GLOBAL_OFFSET_TABLE_-0x8 ++-- + 3c: R_SPARC_HI22 _GLOBAL_OFFSET_TABLE_-0x8 diff --git a/dev-lang/ghc/files/ghc-7.8.3-pic-sparc.patch b/dev-lang/ghc/files/ghc-7.8.3-pic-sparc.patch new file mode 100644 index 000000000000..16a552fdd4be --- /dev/null +++ b/dev-lang/ghc/files/ghc-7.8.3-pic-sparc.patch @@ -0,0 +1,31 @@ +commit 78863edbb0751f5c9694ea10c6132a87cfd0ee10 +Author: Sergei Trofimovich <slyfox@gentoo.org> +Date: Wed Aug 27 22:20:33 2014 +0300 + + Revert "disable shared libs on sparc (linux/solaris) (fixes #8857)" + + This reverts commit 623883f1ed0ee11cc925c4590fb09565403fd231. + + The commit a93ab43ab5f40cadbedea2f6342b93c245e91434 + driver: pass '-fPIC' option to assembler as well + fixes shared libraries on sparc at least on linux. + + Properly fixes Issue #8857 + + Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> + +diff --git a/mk/config.mk.in b/mk/config.mk.in +index c210cd3..392237f 100644 +--- a/mk/config.mk.in ++++ b/mk/config.mk.in +@@ -97,9 +97,7 @@ endif + # Some platforms don't support shared libraries + NoSharedLibsPlatformList = powerpc-unknown-linux \ + x86_64-unknown-mingw32 \ +- i386-unknown-mingw32 \ +- sparc-sun-solaris2 \ +- sparc-unknown-linux ++ i386-unknown-mingw32 + + ifeq "$(SOLARIS_BROKEN_SHLD)" "YES" + NoSharedLibsPlatformList += i386-unknown-solaris2 diff --git a/dev-lang/ghc/files/ghc-7.8.3-ppc32-fPIC.patch b/dev-lang/ghc/files/ghc-7.8.3-ppc32-fPIC.patch new file mode 100644 index 000000000000..434be8b1bdad --- /dev/null +++ b/dev-lang/ghc/files/ghc-7.8.3-ppc32-fPIC.patch @@ -0,0 +1,351 @@ +commit fa31e8f4a0f853848d96549a429083941877bf8d +Author: Sergei Trofimovich <siarheit@google.com> +Date: Sun Dec 14 14:30:12 2014 +0000 + + powerpc: fix and enable shared libraries by default on linux + + Summary: + And fix things all the way down to it. Namely: + - remove 'r30' from free registers, it's an .LCTOC1 register + for gcc. generated .plt stubs expect it to be initialised. + - fix PicBase computation, which originally forgot to use 'tmp' + reg in 'initializePicBase_ppc.fetchPC' + - mark 'ForeighTarget's as implicitly using 'PicBase' register + (see comment for details) + - add 64-bit MO_Sub and test on alloclimit3/4 regtests + - fix dynamic label offsets to match with .LCTOC1 offset + + Signed-off-by: Sergei Trofimovich <siarheit@google.com> + + Test Plan: validate passes equal amount of vanilla/dyn tests + + Reviewers: simonmar, erikd, austin + + Reviewed By: erikd, austin + + Subscribers: carter, thomie + + Differential Revision: https://phabricator.haskell.org/D560 + + GHC Trac Issues: #8024, #9831 + +diff --git a/compiler/cmm/CLabel.hs b/compiler/cmm/CLabel.hs +index 0f2c0ae..37b8ada 100644 +--- a/compiler/cmm/CLabel.hs ++++ b/compiler/cmm/CLabel.hs +@@ -1170,7 +1170,8 @@ pprDynamicLinkerAsmLabel platform dllInfo lbl + else if osElfTarget (platformOS platform) + then if platformArch platform == ArchPPC + then case dllInfo of +- CodeStub -> ppr lbl <> text "@plt" ++ CodeStub -> -- See Note [.LCTOC1 in PPC PIC code] ++ ppr lbl <> text "+32768@plt" + SymbolPtr -> text ".LC_" <> ppr lbl + _ -> panic "pprDynamicLinkerAsmLabel" + else if platformArch platform == ArchX86_64 +diff --git a/compiler/nativeGen/PIC.hs b/compiler/nativeGen/PIC.hs +index 9b5c080..6326a8b 100644 +--- a/compiler/nativeGen/PIC.hs ++++ b/compiler/nativeGen/PIC.hs +@@ -54,7 +54,6 @@ import qualified X86.Instr as X86 + + import Platform + import Instruction +-import Size + import Reg + import NCGMonad + +@@ -468,11 +467,8 @@ pprGotDeclaration dflags ArchX86 OSDarwin + pprGotDeclaration _ _ OSDarwin + = empty + +--- pprGotDeclaration ++-- Emit GOT declaration + -- Output whatever needs to be output once per .s file. +--- The .LCTOC1 label is defined to point 32768 bytes into the table, +--- to make the most of the PPC's 16-bit displacements. +--- Only needed for PIC. + pprGotDeclaration dflags arch os + | osElfTarget os + , arch /= ArchPPC_64 +@@ -482,6 +478,7 @@ pprGotDeclaration dflags arch os + | osElfTarget os + , arch /= ArchPPC_64 + = vcat [ ++ -- See Note [.LCTOC1 in PPC PIC code] + ptext (sLit ".section \".got2\",\"aw\""), + ptext (sLit ".LCTOC1 = .+32768") ] + +@@ -688,12 +685,7 @@ pprImportedSymbol _ _ _ + + + -- Get a pointer to our own fake GOT, which is defined on a per-module basis. +--- This is exactly how GCC does it, and it's quite horrible: +--- We first fetch the address of a local label (mkPicBaseLabel). +--- Then we add a 16-bit offset to that to get the address of a .long that we +--- define in .text space right next to the proc. This .long literal contains +--- the (32-bit) offset from our local label to our global offset table +--- (.LCTOC1 aka gotOffLabel). ++-- This is exactly how GCC does it in linux. + + initializePicBase_ppc + :: Arch -> OS -> Reg +@@ -704,18 +696,9 @@ initializePicBase_ppc ArchPPC os picReg + (CmmProc info lab live (ListGraph blocks) : statics) + | osElfTarget os + = do +- dflags <- getDynFlags +- gotOffLabel <- getNewLabelNat +- tmp <- getNewRegNat $ intSize (wordWidth dflags) + let +- gotOffset = CmmData Text $ Statics gotOffLabel [ +- CmmStaticLit (CmmLabelDiffOff gotLabel +- mkPicBaseLabel +- 0) +- ] +- offsetToOffset +- = PPC.ImmConstantDiff +- (PPC.ImmCLbl gotOffLabel) ++ gotOffset = PPC.ImmConstantDiff ++ (PPC.ImmCLbl gotLabel) + (PPC.ImmCLbl mkPicBaseLabel) + + blocks' = case blocks of +@@ -726,15 +709,23 @@ initializePicBase_ppc ArchPPC os picReg + | bID `mapMember` info = fetchPC b + | otherwise = b + ++ -- GCC does PIC prologs thusly: ++ -- bcl 20,31,.L1 ++ -- .L1: ++ -- mflr 30 ++ -- addis 30,30,.LCTOC1-.L1@ha ++ -- addi 30,30,.LCTOC1-.L1@l ++ -- TODO: below we use it over temporary register, ++ -- it can and should be optimised by picking ++ -- correct PIC reg. + fetchPC (BasicBlock bID insns) = + BasicBlock bID (PPC.FETCHPC picReg +- : PPC.ADDIS tmp picReg (PPC.HI offsetToOffset) +- : PPC.LD PPC.archWordSize tmp +- (PPC.AddrRegImm tmp (PPC.LO offsetToOffset)) +- : PPC.ADD picReg picReg (PPC.RIReg picReg) ++ : PPC.ADDIS picReg picReg (PPC.HA gotOffset) ++ : PPC.ADDI picReg picReg (PPC.LO gotOffset) ++ : PPC.MR PPC.r30 picReg + : insns) + +- return (CmmProc info lab live (ListGraph blocks') : gotOffset : statics) ++ return (CmmProc info lab live (ListGraph blocks') : statics) + + + initializePicBase_ppc ArchPPC OSDarwin picReg +diff --git a/compiler/nativeGen/PPC/CodeGen.hs b/compiler/nativeGen/PPC/CodeGen.hs +index ddf483a..c1c4a74 100644 +--- a/compiler/nativeGen/PPC/CodeGen.hs ++++ b/compiler/nativeGen/PPC/CodeGen.hs +@@ -54,7 +54,7 @@ import Outputable + import Unique + import DynFlags + +-import Control.Monad ( mapAndUnzipM ) ++import Control.Monad ( mapAndUnzipM, when ) + import Data.Bits + import Data.Word + +@@ -355,6 +355,19 @@ iselExpr64 (CmmMachOp (MO_Add _) [e1,e2]) = do + ADDE rhi r1hi r2hi ] + return (ChildCode64 code rlo) + ++iselExpr64 (CmmMachOp (MO_Sub _) [e1,e2]) = do ++ ChildCode64 code1 r1lo <- iselExpr64 e1 ++ ChildCode64 code2 r2lo <- iselExpr64 e2 ++ (rlo,rhi) <- getNewRegPairNat II32 ++ let ++ r1hi = getHiVRegFromLo r1lo ++ r2hi = getHiVRegFromLo r2lo ++ code = code1 `appOL` ++ code2 `appOL` ++ toOL [ SUBFC rlo r2lo r1lo, ++ SUBFE rhi r2hi r1hi ] ++ return (ChildCode64 code rlo) ++ + iselExpr64 (CmmMachOp (MO_UU_Conv W32 W64) [expr]) = do + (expr_reg,expr_code) <- getSomeReg expr + (rlo, rhi) <- getNewRegPairNat II32 +@@ -918,8 +931,12 @@ genCCall' dflags gcp target dest_regs args0 + (toOL []) [] + + (labelOrExpr, reduceToFF32) <- case target of +- ForeignTarget (CmmLit (CmmLabel lbl)) _ -> return (Left lbl, False) +- ForeignTarget expr _ -> return (Right expr, False) ++ ForeignTarget (CmmLit (CmmLabel lbl)) _ -> do ++ uses_pic_base_implicitly ++ return (Left lbl, False) ++ ForeignTarget expr _ -> do ++ uses_pic_base_implicitly ++ return (Right expr, False) + PrimTarget mop -> outOfLineMachOp mop + + let codeBefore = move_sp_down finalStack `appOL` passArgumentsCode +@@ -940,6 +957,13 @@ genCCall' dflags gcp target dest_regs args0 + where + platform = targetPlatform dflags + ++ uses_pic_base_implicitly = do ++ -- See Note [implicit register in PPC PIC code] ++ -- on why we claim to use PIC register here ++ when (gopt Opt_PIC dflags) $ do ++ _ <- getPicBaseNat archWordSize ++ return () ++ + initialStackOffset = case gcp of + GCPDarwin -> 24 + GCPLinux -> 8 +@@ -1431,3 +1455,21 @@ coerceFP2Int _ toRep x = do + -- read low word of value (high word is undefined) + LD II32 dst (spRel dflags 3)] + return (Any (intSize toRep) code') ++ ++-- Note [.LCTOC1 in PPC PIC code] ++-- The .LCTOC1 label is defined to point 32768 bytes into the GOT table ++-- to make the most of the PPC's 16-bit displacements. ++-- As 16-bit signed offset is used (usually via addi/lwz instructions) ++-- first element will have '-32768' offset against .LCTOC1. ++ ++-- Note [implicit register in PPC PIC code] ++-- PPC generates calls by labels in assembly ++-- in form of: ++-- bl puts+32768@plt ++-- in this form it's not seen directly (by GHC NCG) ++-- that r30 (PicBaseReg) is used, ++-- but r30 is a required part of PLT code setup: ++-- puts+32768@plt: ++-- lwz r11,-30484(r30) ; offset in .LCTOC1 ++-- mtctr r11 ++-- bctr +diff --git a/compiler/nativeGen/PPC/Instr.hs b/compiler/nativeGen/PPC/Instr.hs +index f5b9506..b7081f9 100644 +--- a/compiler/nativeGen/PPC/Instr.hs ++++ b/compiler/nativeGen/PPC/Instr.hs +@@ -205,8 +205,11 @@ data Instr + | ADD Reg Reg RI -- dst, src1, src2 + | ADDC Reg Reg Reg -- (carrying) dst, src1, src2 + | ADDE Reg Reg Reg -- (extend) dst, src1, src2 ++ | ADDI Reg Reg Imm -- Add Immediate dst, src1, src2 + | ADDIS Reg Reg Imm -- Add Immediate Shifted dst, src1, src2 + | SUBF Reg Reg Reg -- dst, src1, src2 ; dst = src2 - src1 ++ | SUBFC Reg Reg Reg -- (carrying) dst, src1, src2 ; dst = src2 - src1 ++ | SUBFE Reg Reg Reg -- (extend) dst, src1, src2 ; dst = src2 - src1 + | MULLW Reg Reg RI + | DIVW Reg Reg Reg + | DIVWU Reg Reg Reg +@@ -284,8 +287,11 @@ ppc_regUsageOfInstr platform instr + ADD reg1 reg2 ri -> usage (reg2 : regRI ri, [reg1]) + ADDC reg1 reg2 reg3 -> usage ([reg2,reg3], [reg1]) + ADDE reg1 reg2 reg3 -> usage ([reg2,reg3], [reg1]) ++ ADDI reg1 reg2 _ -> usage ([reg2], [reg1]) + ADDIS reg1 reg2 _ -> usage ([reg2], [reg1]) + SUBF reg1 reg2 reg3 -> usage ([reg2,reg3], [reg1]) ++ SUBFC reg1 reg2 reg3 -> usage ([reg2,reg3], [reg1]) ++ SUBFE reg1 reg2 reg3 -> usage ([reg2,reg3], [reg1]) + MULLW reg1 reg2 ri -> usage (reg2 : regRI ri, [reg1]) + DIVW reg1 reg2 reg3 -> usage ([reg2,reg3], [reg1]) + DIVWU reg1 reg2 reg3 -> usage ([reg2,reg3], [reg1]) +@@ -358,8 +364,11 @@ ppc_patchRegsOfInstr instr env + ADD reg1 reg2 ri -> ADD (env reg1) (env reg2) (fixRI ri) + ADDC reg1 reg2 reg3 -> ADDC (env reg1) (env reg2) (env reg3) + ADDE reg1 reg2 reg3 -> ADDE (env reg1) (env reg2) (env reg3) ++ ADDI reg1 reg2 imm -> ADDI (env reg1) (env reg2) imm + ADDIS reg1 reg2 imm -> ADDIS (env reg1) (env reg2) imm + SUBF reg1 reg2 reg3 -> SUBF (env reg1) (env reg2) (env reg3) ++ SUBFC reg1 reg2 reg3 -> SUBFC (env reg1) (env reg2) (env reg3) ++ SUBFE reg1 reg2 reg3 -> SUBFE (env reg1) (env reg2) (env reg3) + MULLW reg1 reg2 ri -> MULLW (env reg1) (env reg2) (fixRI ri) + DIVW reg1 reg2 reg3 -> DIVW (env reg1) (env reg2) (env reg3) + DIVWU reg1 reg2 reg3 -> DIVWU (env reg1) (env reg2) (env reg3) +diff --git a/compiler/nativeGen/PPC/Ppr.hs b/compiler/nativeGen/PPC/Ppr.hs +index 6851769..f59d51f 100644 +--- a/compiler/nativeGen/PPC/Ppr.hs ++++ b/compiler/nativeGen/PPC/Ppr.hs +@@ -525,6 +525,16 @@ pprInstr (BCTRL _) = hcat [ + ptext (sLit "bctrl") + ] + pprInstr (ADD reg1 reg2 ri) = pprLogic (sLit "add") reg1 reg2 ri ++pprInstr (ADDI reg1 reg2 imm) = hcat [ ++ char '\t', ++ ptext (sLit "addi"), ++ char '\t', ++ pprReg reg1, ++ ptext (sLit ", "), ++ pprReg reg2, ++ ptext (sLit ", "), ++ pprImm imm ++ ] + pprInstr (ADDIS reg1 reg2 imm) = hcat [ + char '\t', + ptext (sLit "addis"), +@@ -539,6 +549,8 @@ pprInstr (ADDIS reg1 reg2 imm) = hcat [ + pprInstr (ADDC reg1 reg2 reg3) = pprLogic (sLit "addc") reg1 reg2 (RIReg reg3) + pprInstr (ADDE reg1 reg2 reg3) = pprLogic (sLit "adde") reg1 reg2 (RIReg reg3) + pprInstr (SUBF reg1 reg2 reg3) = pprLogic (sLit "subf") reg1 reg2 (RIReg reg3) ++pprInstr (SUBFC reg1 reg2 reg3) = pprLogic (sLit "subfc") reg1 reg2 (RIReg reg3) ++pprInstr (SUBFE reg1 reg2 reg3) = pprLogic (sLit "subfe") reg1 reg2 (RIReg reg3) + pprInstr (MULLW reg1 reg2 ri@(RIReg _)) = pprLogic (sLit "mullw") reg1 reg2 ri + pprInstr (MULLW reg1 reg2 ri@(RIImm _)) = pprLogic (sLit "mull") reg1 reg2 ri + pprInstr (DIVW reg1 reg2 reg3) = pprLogic (sLit "divw") reg1 reg2 (RIReg reg3) +diff --git a/compiler/nativeGen/PPC/Regs.hs b/compiler/nativeGen/PPC/Regs.hs +index 0f636bf..69e69c0 100644 +--- a/compiler/nativeGen/PPC/Regs.hs ++++ b/compiler/nativeGen/PPC/Regs.hs +@@ -37,7 +37,8 @@ module PPC.Regs ( + fits16Bits, + makeImmediate, + fReg, +- sp, r3, r4, r27, r28, f1, f20, f21, ++ sp, r3, r4, r27, r28, r30, ++ f1, f20, f21, + + allocatableRegs + +@@ -295,12 +296,13 @@ point registers. + fReg :: Int -> RegNo + fReg x = (32 + x) + +-sp, r3, r4, r27, r28, f1, f20, f21 :: Reg ++sp, r3, r4, r27, r28, r30, f1, f20, f21 :: Reg + sp = regSingle 1 + r3 = regSingle 3 + r4 = regSingle 4 + r27 = regSingle 27 + r28 = regSingle 28 ++r30 = regSingle 30 + f1 = regSingle $ fReg 1 + f20 = regSingle $ fReg 20 + f21 = regSingle $ fReg 21 +diff --git a/includes/CodeGen.Platform.hs b/includes/CodeGen.Platform.hs +index 9916e0e..1d46a01 100644 +--- a/includes/CodeGen.Platform.hs ++++ b/includes/CodeGen.Platform.hs +@@ -881,6 +881,8 @@ freeReg 1 = fastBool False -- The Stack Pointer + # if !MACHREGS_darwin + -- most non-darwin powerpc OSes use r2 as a TOC pointer or something like that + freeReg 2 = fastBool False ++-- at least linux in -fPIC relies on r30 in PLT stubs ++freeReg 30 = fastBool False + # endif + # ifdef REG_Base + freeReg REG_Base = fastBool False +diff --git a/mk/config.mk.in b/mk/config.mk.in +index 0f5820f..8f134bc 100644 +--- a/mk/config.mk.in ++++ b/mk/config.mk.in +@@ -95,7 +95,7 @@ TargetElf = YES + endif + + # Some platforms don't support shared libraries +-NoSharedLibsPlatformList = powerpc-unknown-linux \ ++NoSharedLibsPlatformList = \ + x86_64-unknown-mingw32 \ + i386-unknown-mingw32 + diff --git a/dev-lang/ghc/files/ghc-7.8.3-prim-lm.patch b/dev-lang/ghc/files/ghc-7.8.3-prim-lm.patch new file mode 100644 index 000000000000..3ef2313fcec1 --- /dev/null +++ b/dev-lang/ghc/files/ghc-7.8.3-prim-lm.patch @@ -0,0 +1,12 @@ +Fix underlinking on ghc-prim. +Fixes ghc-stage2 crahs on hardened toolchain. +Reported-by: aranea +diff --git a/libraries/ghc-prim/ghc-prim.cabal b/libraries/ghc-prim/ghc-prim.cabal +index ffb32af..0431380 100644 +--- a/libraries/ghc-prim/ghc-prim.cabal ++++ b/libraries/ghc-prim/ghc-prim.cabal +@@ -68,0 +68,4 @@ Library ++ ++ -- ghc 'sin' (and other) primops generate 'libm' calls, ++ -- but ghc itself does not add '-lm' ++ extra-libraries: m diff --git a/dev-lang/ghc/files/ghc-7.8.3-unreg-lit.patch b/dev-lang/ghc/files/ghc-7.8.3-unreg-lit.patch new file mode 100644 index 000000000000..632696d6fde7 --- /dev/null +++ b/dev-lang/ghc/files/ghc-7.8.3-unreg-lit.patch @@ -0,0 +1,84 @@ +commit a6ea05e21e175407dc9e45f18c56c1d727fd0f26 +Author: Sergei Trofimovich <slyfox@gentoo.org> +Date: Fri Aug 22 23:24:32 2014 +0300 + + UNREG: fix emission of large Integer literals in C codegen + + Summary: + On amd64/UNREG build there is many failing tests trying + to deal with 'Integer' types. + + Looking at 'overflow1' test I've observed invalid C code generated by + GHC. + + Cmm code + CInt a = -1; (a == -1) + yields 'False' with optimisations enabled via the following C code: + StgWord64 a = (StgWord32)0xFFFFffffFFFFffffu; (a == 0xFFFFffffFFFFffffu) + + The patch fixes it by shrinking emitted literals to required sizes: + StgWord64 a = (StgWord32)0xFFFFffffu; (a == 0xFFFFffffu) + + Thanks to Reid Barton for tracking down and fixing the issue. + + Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> + + Test Plan: validate on UNREG build (amd64) + + Reviewers: simonmar, rwbarton, austin + + Subscribers: simonmar, ezyang, carter + + Differential Revision: https://phabricator.haskell.org/D173 + +diff --git a/compiler/cmm/PprC.hs b/compiler/cmm/PprC.hs +index 93a5d06..8605988 100644 +--- a/compiler/cmm/PprC.hs ++++ b/compiler/cmm/PprC.hs +@@ -1221,8 +1221,9 @@ commafy xs = hsep $ punctuate comma xs + pprHexVal :: Integer -> Width -> SDoc + pprHexVal 0 _ = ptext (sLit "0x0") + pprHexVal w rep +- | w < 0 = parens (char '-' <> ptext (sLit "0x") <> go (-w) <> repsuffix rep) +- | otherwise = ptext (sLit "0x") <> go w <> repsuffix rep ++ | w < 0 = parens (char '-' <> ++ ptext (sLit "0x") <> intToDoc (-w) <> repsuffix rep) ++ | otherwise = ptext (sLit "0x") <> intToDoc w <> repsuffix rep + where + -- type suffix for literals: + -- Integer literals are unsigned in Cmm/C. We explicitly cast to +@@ -1237,10 +1238,33 @@ pprHexVal w rep + else panic "pprHexVal: Can't find a 64-bit type" + repsuffix _ = char 'U' + ++ intToDoc :: Integer -> SDoc ++ intToDoc i = go (truncInt i) ++ ++ -- We need to truncate value as Cmm backend does not drop ++ -- redundant bits to ease handling of negative values. ++ -- Thus the following Cmm code on 64-bit arch, like amd64: ++ -- CInt v; ++ -- v = {something}; ++ -- if (v == %lobits32(-1)) { ... ++ -- leads to the following C code: ++ -- StgWord64 v = (StgWord32)({something}); ++ -- if (v == 0xFFFFffffFFFFffffU) { ... ++ -- Such code is incorrect as it promotes both operands to StgWord64 ++ -- and the whole condition is always false. ++ truncInt :: Integer -> Integer ++ truncInt i = ++ case rep of ++ W8 -> i `rem` (2^(8 :: Int)) ++ W16 -> i `rem` (2^(16 :: Int)) ++ W32 -> i `rem` (2^(32 :: Int)) ++ W64 -> i `rem` (2^(64 :: Int)) ++ _ -> panic ("pprHexVal/truncInt: C backend can't encode " ++ ++ show rep ++ " literals") ++ + go 0 = empty + go w' = go q <> dig + where + (q,r) = w' `quotRem` 16 + dig | r < 10 = char (chr (fromInteger r + ord '0')) + | otherwise = char (chr (fromInteger r - 10 + ord 'a')) +- diff --git a/dev-lang/ghc/files/ghc-7.8.4-gold.patch b/dev-lang/ghc/files/ghc-7.8.4-gold.patch new file mode 100644 index 000000000000..a8e9b1e6c857 --- /dev/null +++ b/dev-lang/ghc/files/ghc-7.8.4-gold.patch @@ -0,0 +1,27 @@ +Gentoo-bug: https://bugs.gentoo.org/536426 +Reported-by: Eric Siegel +commit 021b7978d14799bae779907faf7490cfd21b3f46 +Author: Austin Seipp <austin@well-typed.com> +Date: Sun Jul 20 10:13:15 2014 -0500 + + driver: use absolute paths in ld scripts (#7452) + + Patch contributed by slowmo. + + Signed-off-by: Austin Seipp <austin@well-typed.com> + +diff --git a/compiler/main/DriverPipeline.hs b/compiler/main/DriverPipeline.hs +index 11427e2..49126fe 100644 +--- a/compiler/main/DriverPipeline.hs ++++ b/compiler/main/DriverPipeline.hs +@@ -2166,7 +2166,9 @@ joinObjectFiles dflags o_files output_fn = do + if ldIsGnuLd + then do + script <- newTempName dflags "ldscript" +- writeFile script $ "INPUT(" ++ unwords o_files ++ ")" ++ cwd <- getCurrentDirectory ++ let o_files_abs = map (cwd </>) o_files ++ writeFile script $ "INPUT(" ++ unwords o_files_abs ++ ")" + ld_r [SysTools.FileOption "" script] ccInfo + else if sLdSupportsFilelist mySettings + then do diff --git a/dev-lang/ghc/files/ghc-7.8.4-ia64-CLOSUREs.patch b/dev-lang/ghc/files/ghc-7.8.4-ia64-CLOSUREs.patch new file mode 100644 index 000000000000..9d50792bcf45 --- /dev/null +++ b/dev-lang/ghc/files/ghc-7.8.4-ia64-CLOSUREs.patch @@ -0,0 +1,66 @@ +From b677ba51cf8131a6f6ddcdfee8dd2a8c4c2b4ac7 Mon Sep 17 00:00:00 2001 +From: Sergei Trofimovich <siarheit@google.com> +Date: Sat, 17 Jan 2015 14:27:13 +0000 +Subject: [PATCH 1/3] CMM: add a mechanism to import C data labels + +Fixes threaded runtime on ia64. +sm_mutex there was not referenced correctly. + +Signed-off-by: Sergei Trofimovich <siarheit@google.com> +--- + compiler/cmm/CmmParse.y | 4 ++++ + rts/Exception.cmm | 2 +- + rts/PrimOps.cmm | 6 +++--- + 3 files changed, 8 insertions(+), 4 deletions(-) + +diff --git a/compiler/cmm/CmmParse.y.source b/compiler/cmm/CmmParse.y.source +index 6b51e51..fd9489b 100644 +--- a/compiler/cmm/CmmParse.y.source ++++ b/compiler/cmm/CmmParse.y.source +@@ -575,6 +575,10 @@ importName + : NAME + { ($1, mkForeignLabel $1 Nothing ForeignLabelInExternalPackage IsFunction) } + ++ -- as previous 'NAME', but 'IsData' ++ | 'CLOSURE' NAME ++ { ($2, mkForeignLabel $2 Nothing ForeignLabelInExternalPackage IsData) } ++ + -- A label imported with an explicit packageId. + | STRING NAME + { ($2, mkCmmCodeLabel (fsToPackageKey (mkFastString $1)) $2) } +diff --git a/rts/Exception.cmm b/rts/Exception.cmm +index 5007ef3..8d19c14 100644 +--- a/rts/Exception.cmm ++++ b/rts/Exception.cmm +@@ -13,7 +13,7 @@ + #include "Cmm.h" + #include "RaiseAsync.h" + +-import ghczmprim_GHCziTypes_True_closure; ++import CLOSURE ghczmprim_GHCziTypes_True_closure; + + /* ----------------------------------------------------------------------------- + Exception Primitives +diff --git a/rts/PrimOps.cmm b/rts/PrimOps.cmm +index 3e8612c..2e6ca46 100644 +--- a/rts/PrimOps.cmm ++++ b/rts/PrimOps.cmm +@@ -28,12 +28,12 @@ + import pthread_mutex_lock; + import pthread_mutex_unlock; + #endif +-import base_ControlziExceptionziBase_nestedAtomically_closure; ++import CLOSURE base_ControlziExceptionziBase_nestedAtomically_closure; + import EnterCriticalSection; + import LeaveCriticalSection; +-import ghczmprim_GHCziTypes_False_closure; ++import CLOSURE ghczmprim_GHCziTypes_False_closure; + #if defined(USE_MINIINTERPRETER) || !defined(mingw32_HOST_OS) +-import sm_mutex; ++import CLOSURE sm_mutex; + #endif + + /*----------------------------------------------------------------------------- +-- +2.2.1 + diff --git a/dev-lang/ghc/files/ghc-bash-completion b/dev-lang/ghc/files/ghc-bash-completion new file mode 100644 index 000000000000..0ee2149cd81b --- /dev/null +++ b/dev-lang/ghc/files/ghc-bash-completion @@ -0,0 +1,218 @@ +# ghc-pkg command line completion for bash +# +# Copyright 2006-2007 Lennart Kolmodin <kolmodin@dtek.chalmers.se> + +_ghc-pkg-get-ghc-pkg() +{ + echo ghc-pkg +} + +_ghc-pkg-pkg-fields() +{ + # usage: _ghc-pkg-pkg-fields pkg-id + # + # list all fields of the pkg-id + + # same fields for all packages but different in different versions of + # ghc-pkg? this can probably be done better/faster + + if [[ -z "$1" ]]; then + echo "usage: _ghc-pkg-pkg-fields pkg-id" + return 1 + fi + + local fields + + fields="$( $(_ghc-pkg-get-ghc-pkg) describe $1 )" + + #if [[ fields != *"cannot find package"* ]]; then + echo "$fields" | grep ".*:.*" | sed "s/^\(.*\):.*\$/\1/" + #fi +} + +_ghc-pkg-pkg-ids() +{ + # usage: _ghc-pkg-pkg-ids + # + # simply lists all package ids known by ghc-pkg. + $(_ghc-pkg-get-ghc-pkg) list --simple-output +} + +_ghc-pkg-pkgs() +{ + # usage: _ghc-pkg-pkgs [include-pkgs] [include-ids] + # + # with optional parameter include-pkgs it will list all packages known + # to ghc-pkg. + # with optional parameter include-ids it will list all package-ids known + # to ghc-pkg. + local pkgs + local result + pkgs=( $( _ghc-pkg-pkg-ids ) ) + result=( ) + + local withPkgs="no" withIds="no" + while [[ -n "$1" ]]; do + case "$1" in + include-pkgs) + withPkgs="yes" ;; + include-ids) + withIds="yes" ;; + *) + echo "unknown parameter '$1' to _ghc-pkg-pkgs" + return 1 ;; + esac + shift + done + + # user must supply either include-pkgs, include-ids or both + if [[ $withPkgs != "yes" && $withIds != "yes" ]]; then + echo "usage: _ghc-pkg-pkgs [include-pkgs] [include-ids]" + return 1 + fi + + # find all packages if the user requested them + if [[ $withPkgs == "yes" ]]; then + # O(n^2) algorithm to exclude duplicates + for p in ${pkgs[*]}; do + p="${p//-[0-9.]*/}" + for existing in ${result[*]}; do + if [[ "$existing" == "$p" ]]; then + continue 2 + fi + done + result=( "${result[@]}" "${p}" ) + done + fi + + # include all pkg-ids if requested + if [[ $withIds == "yes" ]]; then + result=( "${result[@]}" "${pkgs[@]}" ) + fi + + # we are finished, echo the result + echo "${result[*]}" + + # happy ending + return 0 +} + +_ghc-pkg() +{ + local cur + cur=${COMP_WORDS[COMP_CWORD]} + + COMPREPLY=() + + local actions flags + actions='register update unregister expose hide list latest describe field' + dbflags="--user \ + --global \ + -f --package-conf= \ + --global-conf=" + registerflags="--force \ + -g --auto-ghci-libs \ + -D --define-name=" + listflags="--simple-output" + flags="$dbflags \ + $registerflags \ + $listflags \ + -? --help \ + -V --version" + + # if it's the users first word; complete it and return + if (($COMP_CWORD == 1)); then + COMPREPLY=( $( compgen -W "$actions $flags" -- $cur ) ) + return 0 + fi + + # now we know we have at least one word written + + local action="unknown" \ + prev numwords \ + cword act + prev=${COMP_WORDS[COMP_CWORD-1]} + numwords=${#COMP_WORDS[@]} + + # find the action with O(n*m) algorithm + # where n = ${#COMP_WORDS[*]} + # m = number of actions + for cword in ${COMP_WORDS[*]}; do + for act in $actions; do + if [[ "$cword" == "$act" ]]; then + action=$cword + fi + done + done + + case $action in + register|update) + # we want to complete both flags and paths, how? + # we do it by checking if the user has started to write a flag + # or a path, and then decide what to complete. + # that is, to complete a flag, the user must start to write a '-' + if [[ "$cur" == -* ]]; then + # (we assume) it's the start of a flag + # set COMPREPLY to flags relevant to these actions + COMPREPLY=( $( compgen -W "$dbflags $registerflags" -- $cur ) ) + fi + ;; + unregister|expose|hide|list|describe) + # all these actions can be completed with exactly one argument, + # a pkg-id. + COMPREPLY=( $( compgen -W "$dbflags" -- $cur ) ) + + # add special flags for some actions + if [[ "$action" == "list" ]]; then + COMPREPLY+=( $( compgen -W "$listflags" -- $cur ) ) + fi + + COMPREPLY+=( $( compgen -W "$( _ghc-pkg-pkgs include-ids )" -- $cur ) ) + ;; + latest) + # complete only packages, not package ids + COMPREPLY=( $( compgen -W "$( _ghc-pkg-pkgs include-pkgs )" -- $cur ) ) + ;; + field) + # we should always complete on the flags... + COMPREPLY=( $( compgen -W "$dbflags" -- $cur ) ) + + # then, we should either complete the package name or the field + # lets find out which one + + # find the number of words in COMP_WORDS before COMP_CWORD that + # isn't flags. it should be 2 or 3 for us to complete it, + # exactly 2 if we should complete the package name + # exactly 3 if we should complete the field name + # otherwise, don't do any additional completion except the + # flags + + # count the number of non flags up till the current word + local numnonflags=0 lastword i + for (( i=0 ; $i < $COMP_CWORD ; i++ )); do + if [[ ${COMP_WORDS[$i]} != -* ]]; then + lastword=${COMP_WORDS[$i]} + numnonflags=$(( ++numnonflags )) + fi + done + + case $numnonflags in + 2) + # complete on pkg-ids + COMPREPLY+=( $( compgen -W "$( _ghc-pkg-pkgs include-ids )" -- $cur ) ) ;; + 3) + # complete on fields + COMPREPLY+=( $( compgen -W "$( _ghc-pkg-pkg-fields $lastword )" -- $cur ) ) ;; + esac + ;; + *) + # unknown action, not yet given by the user + # return all possible completions + COMPREPLY=( $( compgen -W "$actions $flags" -- $cur ) ) + ;; + esac +} + +complete -F _ghc-pkg -o default ghc-pkg + +# vim: set ft=sh tw=80 sw=4 et : diff --git a/dev-lang/ghc/files/terminfo-0.3.2.5-tinfo.patch b/dev-lang/ghc/files/terminfo-0.3.2.5-tinfo.patch new file mode 100644 index 000000000000..ca10da2e03ae --- /dev/null +++ b/dev-lang/ghc/files/terminfo-0.3.2.5-tinfo.patch @@ -0,0 +1,25 @@ +http://bugs.gentoo.org/454216 + +Mon Jan 7 16:34:47 FET 2013 Judah Jacobson <judah.jacobson@gmail.com> + * Search for terminfo in libtinfo; fixes GHC #7281. + + Patch from Paul Johnson. +diff -rN -u old-terminfo/configure.ac new-terminfo/configure.ac +--- old-terminfo/configure.ac 2013-02-14 00:16:11.816111434 +0300 ++++ new-terminfo/configure.ac 2013-02-14 00:16:11.819111434 +0300 +@@ -39,10 +39,11 @@ + TERMINFO_INCLUDES="$CursesIncludes term.h" + fi + +-AC_CHECK_LIB(ncursesw, setupterm, HaveLibCurses=YES; LibCurses=ncursesw, +- [AC_CHECK_LIB(ncurses, setupterm, HaveLibCurses=YES; LibCurses=ncurses, +- [AC_CHECK_LIB(curses, setupterm, HaveLibCurses=YES; LibCurses=curses, +- HaveLibCurses=NO; LibCurses=not-installed)])]) ++AC_CHECK_LIB(tinfo, setupterm, HaveLibCurses=YES; LibCurses=tinfo, ++ [AC_CHECK_LIB(ncursesw, setupterm, HaveLibCurses=YES; LibCurses=ncursesw, ++ [AC_CHECK_LIB(ncurses, setupterm, HaveLibCurses=YES; LibCurses=ncurses, ++ [AC_CHECK_LIB(curses, setupterm, HaveLibCurses=YES; LibCurses=curses, ++ HaveLibCurses=NO; LibCurses=not-installed)])])]) + + if test "x$HaveLibCurses" = "xNO" ; then + AC_MSG_FAILURE([curses library not found, so this package cannot be built]) diff --git a/dev-lang/ghc/ghc-7.10.2.ebuild b/dev-lang/ghc/ghc-7.10.2.ebuild new file mode 100644 index 000000000000..9aab30fd6f2d --- /dev/null +++ b/dev-lang/ghc/ghc-7.10.2.ebuild @@ -0,0 +1,643 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +# to make make a crosscompiler use crossdev and symlink ghc tree into +# cross overlay. result would look like 'cross-sparc-unknown-linux-gnu/ghc' +# +# 'CTARGET' definition and 'is_crosscompile' are taken from 'toolchain.eclass' +export CTARGET=${CTARGET:-${CHOST}} +if [[ ${CTARGET} = ${CHOST} ]] ; then + if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then + export CTARGET=${CATEGORY/cr |