12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- # Copyright 1999-2012 Gentoo Foundation
- # Distributed under the terms of the GNU General Public License v2
- EAPI=4
- inherit eutils multilib flag-o-matic
- DESCRIPTION="Axiom is a general purpose Computer Algebra system"
- HOMEPAGE="http://axiom.axiom-developer.org/"
- SRC_URI="http://www.axiom-developer.org/axiom-website/downloads/${PN}-may2008-src.tgz"
- LICENSE="BSD-2"
- SLOT="0"
- KEYWORDS="~amd64 ~x86"
- IUSE=""
- # NOTE: Do not strip since this seems to remove some crucial
- # runtime paths as well, thereby, breaking axiom
- RESTRICT="strip"
- DEPEND="virtual/latex-base
- x11-libs/libXaw
- sys-apps/debianutils
- sys-process/procps"
- RDEPEND=""
- S="${WORKDIR}"/${PN}
- pkg_setup() {
- # for 2.6.25 kernels and higher we need to have
- # /proc/sys/kernel/randomize_va_space set to somthing other
- # than 2, otherwise gcl fails to compile (see bug #186926).
- local current_setting=$(/sbin/sysctl kernel.randomize_va_space 2>/dev/null | cut -d' ' -f3)
- if [[ ${current_setting} == 2 ]]; then
- echo
- eerror "Your kernel has brk randomization enabled. This will"
- eerror "cause axiom to fail to compile *and* run (see bug #186926)."
- eerror "You can issue:"
- eerror
- eerror " /sbin/sysctl -w kernel.randomize_va_space=1"
- eerror
- eerror "as root to turn brk randomization off temporarily."
- eerror "However, when not using axiom you may want to turn"
- eerror "brk randomization back on via"
- eerror
- eerror " /sbin/sysctl -w kernel.randomize_va_space=2"
- eerror
- eerror "since it results in a less secure kernel."
- die "Kernel brk randomization detected"
- fi
- }
- src_prepare() {
- cp "${FILESDIR}"/noweb-2.9-insecure-tmp-file.patch.input \
- "${S}"/zips/noweb-2.9-insecure-tmp-file.patch \
- || die "Failed to fix noweb"
- cp "${FILESDIR}"/${PN}-200711-gcl-configure.patch \
- "${S}"/zips/gcl-2.6.7.configure.in.patch \
- || die "Failed to fix gcl-2.6.7 configure"
- epatch "${FILESDIR}"/noweb-2.9-insecure-tmp-file.Makefile.patch
- # lots of strict-aliasing badness
- append-flags -fno-strict-aliasing
- }
- src_compile() {
- # use gcl 2.6.7
- sed -e "s:GCLVERSION=gcl-2.6.8pre$:GCLVERSION=gcl-2.6.7:" \
- -i Makefile.pamphlet Makefile \
- || die "Failed to select proper gcl"
- # fix libXpm.a location
- sed -e "s:X11R6/lib:$(get_libdir):g" -i Makefile.pamphlet \
- || die "Failed to fix libXpm lib paths"
- # Let the fun begin...
- AXIOM="${S}"/mnt/linux emake -j1
- }
- src_install() {
- emake DESTDIR="${D}"/opt/axiom COMMAND="${D}"/opt/axiom/mnt/linux/bin/axiom install
- mv "${D}"/opt/axiom/mnt/linux/* "${D}"/opt/axiom \
- || die "Failed to mv axiom into its final destination path."
- rm -fr "${D}"/opt/axiom/mnt \
- || die "Failed to remove old directory."
- dodir /usr/bin
- dosym /opt/axiom/bin/axiom /usr/bin/axiom
- sed -e "2d;3i AXIOM=/opt/axiom" \
- -i "${D}"/opt/axiom/bin/axiom \
- || die "Failed to patch axiom runscript!"
- dodoc changelog readme faq
- }
|