commit:     5fda0962579cd0d6ec0e7ebf22bec1b4685be0bd
Author:     Amy Winston <amynka <AT> gentoo <DOT> org>
AuthorDate: Sun Nov  6 19:08:45 2016 +0000
Commit:     Amy Winston <amynka <AT> gentoo <DOT> org>
CommitDate: Sun Nov  6 19:13:23 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5fda0962

dev-scheme/guile: add unmask patch bug #596864

Package-Manager: portage-2.3.0

 .../guile/files/guile-1.8.8-mkdir-mask.patch       |  35 ++++++
 dev-scheme/guile/guile-1.8.8-r3.ebuild             | 120 +++++++++++++++++++++
 2 files changed, 155 insertions(+)

diff --git a/dev-scheme/guile/files/guile-1.8.8-mkdir-mask.patch 
b/dev-scheme/guile/files/guile-1.8.8-mkdir-mask.patch
new file mode 100644
index 00000000..7d1c703
--- /dev/null
+++ b/dev-scheme/guile/files/guile-1.8.8-mkdir-mask.patch
@@ -0,0 +1,35 @@
+--- a/libguile/filesys.c       2016-11-05 15:03:52.131894648 +0100
++++ b/libguile/filesys.c       2016-11-05 15:07:13.275894481 +0100
+@@ -791,24 +791,18 @@
+ SCM_DEFINE (scm_mkdir, "mkdir", 1, 1, 0,
+             (SCM path, SCM mode),
+           "Create a new directory named by @var{path}.  If @var{mode} is 
omitted\n"
+-          "then the permissions of the directory file are set using the 
current\n"
+-          "umask.  Otherwise they are set to the decimal value specified 
with\n"
+-          "@var{mode}.  The return value is unspecified.")
++          "then the permissions of the directory are set to @code{#o777}\n"
++          "masked with the current umask (@pxref{Processes, @code{umask}}).\n"
++          "Otherwise they are set to the value specified with @var{mode}.\n"
++          "The return value is unspecified.")
+ #define FUNC_NAME s_scm_mkdir
+ {
+   int rv;
+-  mode_t mask;
++  mode_t c_mode;
+ 
+-  if (SCM_UNBNDP (mode))
+-    {
+-      mask = umask (0);
+-      umask (mask);
+-      STRING_SYSCALL (path, c_path, rv = mkdir (c_path, 0777 ^ mask));
+-    }
+-  else
+-    {
+-      STRING_SYSCALL (path, c_path, rv = mkdir (c_path, scm_to_uint (mode)));
+-    }
++  c_mode = SCM_UNBNDP (mode) ? 0777 : scm_to_uint (mode);
++
++  STRING_SYSCALL (path, c_path, rv = mkdir (c_path, c_mode));
+   if (rv != 0)
+     SCM_SYSERROR;
+   return SCM_UNSPECIFIED;

diff --git a/dev-scheme/guile/guile-1.8.8-r3.ebuild 
b/dev-scheme/guile/guile-1.8.8-r3.ebuild
new file mode 100644
index 00000000..5d5a73f
--- /dev/null
+++ b/dev-scheme/guile/guile-1.8.8-r3.ebuild
@@ -0,0 +1,120 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit eutils autotools flag-o-matic elisp-common
+
+DESCRIPTION="Scheme interpreter"
+HOMEPAGE="https://www.gnu.org/software/guile/";
+SRC_URI="mirror://gnu/guile/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 
~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~x86-interix ~amd64-linux 
~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="debug debug-freelist debug-malloc +deprecated discouraged emacs 
networking nls readline +regex +threads"
+
+RESTRICT="!regex? ( test )"
+
+RDEPEND="
+       >=dev-libs/gmp-4.1:0=
+       dev-libs/libltdl:0=
+       sys-devel/gettext
+       sys-libs/ncurses:0=
+       emacs? ( virtual/emacs )
+       readline? ( sys-libs/readline:0= )"
+DEPEND="${RDEPEND}
+       sys-apps/texinfo
+       sys-devel/libtool"
+
+# Guile seems to contain some slotting support, /usr/share/guile/ is slotted,
+# but there are lots of collisions. Most in /usr/share/libguile. Therefore
+# I'm slotting this in the same slot as guile-1.6* for now.
+SLOT="12/8"
+MAJOR="1.8"
+
+src_prepare() {
+       epatch "${FILESDIR}/${P}-fix_guile-config.patch" \
+               "${FILESDIR}/${P}-gcc46.patch" \
+               "${FILESDIR}/${P}-gcc5.patch" \
+               "${FILESDIR}/${P}-makeinfo-5.patch" \
+               "${FILESDIR}/${P}-gtexinfo-5.patch" \
+               "${FILESDIR}/${P}-readline.patch" \
+               "${FILESDIR}/${P}-tinfo.patch" \
+               "${FILESDIR}/${P}-sandbox.patch" \
+               "${FILESDIR}/${P}-mkdir-mask.patch"
+
+       sed \
+               -e "s/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/g" \
+               -e "/AM_PROG_CC_STDC/d" \
+               -i guile-readline/configure.in || die
+
+       epatch_user
+
+       mv "${S}"/configure.{in,ac} || die
+       mv "${S}"/guile-readline/configure.{in,ac} || die
+
+       eautoreconf
+}
+
+src_configure() {
+       # see bug #178499
+       filter-flags -ftree-vectorize
+
+       #will fail for me if posix is disabled or without modules -- hkBst
+       econf \
+               --disable-error-on-warning \
+               --disable-static \
+               --enable-posix \
+               $(use_enable networking) \
+               $(use_enable readline) \
+               $(use_enable regex) \
+               $(use deprecated || use_enable discouraged) \
+               $(use_enable deprecated) \
+               $(use_enable emacs elisp) \
+               $(use_enable nls) \
+               --disable-rpath \
+               $(use_enable debug-freelist) \
+               $(use_enable debug-malloc) \
+               $(use_enable debug guile-debug) \
+               $(use_with threads) \
+               --with-modules \
+               EMACS=no
+}
+
+src_compile()  {
+       emake
+
+       # Above we have disabled the build system's Emacs support;
+       # for USE=emacs we compile (and install) the files manually
+       if use emacs; then
+               cd emacs || die
+               elisp-compile *.el || die
+       fi
+}
+
+src_install() {
+       emake DESTDIR="${D}" install
+
+       dodoc AUTHORS ChangeLog GUILE-VERSION HACKING NEWS README THANKS
+
+       # texmacs needs this, closing bug #23493
+       dodir /etc/env.d
+       echo "GUILE_LOAD_PATH=\"${EPREFIX}/usr/share/guile/${MAJOR}\"" > 
"${ED}"/etc/env.d/50guile || die
+
+       # necessary for registering slib, see bug 206896
+       keepdir /usr/share/guile/site
+
+       if use emacs; then
+               elisp-install ${PN} emacs/*.{el,elc} || die
+               elisp-site-file-install "${FILESDIR}/50${PN}-gentoo.el" || die
+       fi
+}
+
+pkg_postinst() {
+       [ "${EROOT}" == "/" ] && pkg_config
+       use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+       use emacs && elisp-site-regen
+}

Reply via email to