sci-mathematics/snns: bump EAPI, make patches eapply, expand string length for filenames
authorIan Stakenvicius <axs@gentoo.org>
Thu, 14 Dec 2017 16:47:38 +0000 (11:47 -0500)
committerIan Stakenvicius <axs@gentoo.org>
Thu, 14 Dec 2017 16:56:02 +0000 (11:56 -0500)
Some strings that hold filenames or file paths were limited to 50 chars, which for
my personal use is way too short; expanded these to 256 chars.

Also bumped EAPI and fixed patche headers so that they eapply cleanly via 'patch -p1'

Package-Manager: Portage-2.3.13, Repoman-2.3.3

sci-mathematics/snns/files/4.2-ldflags.patch
sci-mathematics/snns/files/4.3-bison-version.patch
sci-mathematics/snns/files/4.3-expand-path-strings.patch [new file with mode: 0644]
sci-mathematics/snns/snns-4.3-r3.ebuild [new file with mode: 0644]

index 752380d1d8f03c36d8f5706c188dd932e8693308..9ff4769731d128fcc2b0300cc4ef0779d33b1da1 100644 (file)
@@ -2,8 +2,8 @@ Respect LDFLAGS
 
 https://bugs.gentoo.org/show_bug.cgi?id=332475
 
---- tools/sources/Makefile
-+++ tools/sources/Makefile
+--- a/tools/sources/Makefile
++++ b/tools/sources/Makefile
 @@ -147,19 +147,19 @@
  # Linking of single stand alone programs
  
@@ -29,8 +29,8 @@ https://bugs.gentoo.org/show_bug.cgi?id=332475
  
  
  # Make sure that kernel libs are available and up to date
---- xgui/sources/Makefile
-+++ xgui/sources/Makefile
+--- a/xgui/sources/Makefile
++++ b/xgui/sources/Makefile
 @@ -202,7 +202,7 @@
  # Linking of xgui
  
index 73da70187254d5f92c28e435af196f7f6d9045a7..ceb4b1e43c00bd7cb29b16ec34036e10dd84ec3c 100644 (file)
@@ -1,5 +1,5 @@
---- configure.old      2015-04-08 16:27:05.000000000 -0400
-+++ configure  2015-04-08 16:26:41.000000000 -0400
+--- a/configure        2015-04-08 16:27:05.000000000 -0400
++++ b/configure        2015-04-08 16:26:41.000000000 -0400
 @@ -5071,7 +5071,7 @@
  else
      { echo "$as_me:$LINENO: checking for version of bison" >&5
diff --git a/sci-mathematics/snns/files/4.3-expand-path-strings.patch b/sci-mathematics/snns/files/4.3-expand-path-strings.patch
new file mode 100644 (file)
index 0000000..e62a3cf
--- /dev/null
@@ -0,0 +1,33 @@
+--- a/tools/sources/convert2snns.c     2008-04-21 03:56:07.000000000 -0400
++++ b/tools/sources/convert2snns.c     2017-12-14 11:13:12.056308969 -0500
+@@ -54,8 +54,8 @@
+ /* Init functionname */
+ #define KOHONEN_INIT_FUNC_NAME      "Kohonen_Weights_v3.2"
+ 
+-char   *control_file,pattern_file[80],weight_file[80],
+-       string[80],name[50];
++char   *control_file,pattern_file[256],weight_file[256],
++       string[256],name[256];
+ int    no_of_exemplars,X,Y,
+        ret, i, j, unit_no,
+        IUnits, OUnits, HUnits;
+--- a/tools/sources/snns2c.c   2017-12-14 11:05:48.372487874 -0500
++++ b/tools/sources/snns2c.c   2017-12-14 11:11:08.484915822 -0500
+@@ -1622,7 +1622,7 @@
+   FILE   *fOutFile, *fHeaderFile;
+   pList  OutList, FunctionList;
+   time_t   timer;
+-  char   HeaderFile[50];
++  char   HeaderFile[256];
+ 
+   /* calculate time for the date in the header of the output file */
+   time(&timer);
+@@ -1824,7 +1824,7 @@
+   FILE   *fOutFile, *fHeaderFile;
+   pList  OutList, FunctionList;
+   time_t timer;
+-  char   HeaderFile[50];
++  char   HeaderFile[256];
+ 
+   /* calculate time for the date in the header of the output file */
+   time(&timer);
diff --git a/sci-mathematics/snns/snns-4.3-r3.ebuild b/sci-mathematics/snns/snns-4.3-r3.ebuild
new file mode 100644 (file)
index 0000000..416fa94
--- /dev/null
@@ -0,0 +1,124 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_OPTIONAL=1
+inherit distutils-r1
+
+MY_P="SNNSv${PV}"
+DESCRIPTION="Stuttgart Neural Network Simulator"
+HOMEPAGE="https://sourceforge.net/projects/snns/"
+SRC_URI="http://www.ra.cs.uni-tuebingen.de/downloads/SNNS/${MY_P}.tar.gz
+       doc? ( http://www.ra.cs.uni-tuebingen.de/downloads/SNNS/SNNSv4.2.Manual.pdf )"
+
+LICENSE="LGPL-2.1"
+KEYWORDS="~amd64 ~ppc ~x86"
+SLOT="0"
+IUSE="X doc python"
+
+RDEPEND="X? (
+               x11-libs/libX11
+               x11-libs/libXaw3d
+               x11-libs/libXt
+       )
+       python? ( ${PYTHON_DEPS} )"
+DEPEND="${RDEPEND}
+       X? ( x11-proto/xproto )
+       >=sys-devel/bison-1.2.2"
+
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+S="${WORKDIR}/${MY_P}"
+
+src_prepare() {
+       eapply "${FILESDIR}"/4.3-unstrip.patch
+       eapply "${FILESDIR}"/4.3-bison-version.patch
+       eapply "${FILESDIR}"/4.2-ldflags.patch
+       eapply "${FILESDIR}"/4.3-snns-netperf.patch # bug 248322
+       eapply "${FILESDIR}"/4.3-expand-path-strings.patch
+
+       # change all references of Xaw to Xaw3d
+       cd "${S}"/xgui/sources
+       for file in *.c; do
+               sed -e "s:X11/Xaw/:X11/Xaw3d/:g" -i "${file}"
+       done
+
+       # clean up the dirty dist sources and remove files that apparently
+       # are not removed by any clean rules
+       emake clean
+       rm -Rf "${S}"/{tools,xgui}/bin \
+               "${S}"/{Makefile.def,config.h} \
+               "${S}"/configuration/config.{guess,log}
+
+       eapply_user
+
+       if use python; then
+               pushd "${S}"/python > /dev/null || die
+               distutils-r1_src_prepare
+               popd > /dev/null || die
+       fi
+}
+
+src_configure() {
+       econf --enable-global \
+               $(use_with X x)
+
+       if use python; then
+               pushd python > /dev/null || die
+               distutils-r1_src_configure
+               popd > /dev/null || die
+       fi
+}
+
+src_compile() {
+       local compileopts=( compile-kernel compile-tools )
+       use X && compileopts+=( compile-xgui )
+
+       # parallel make sometimes fails (phosphan)
+       # so emake each phase separately (axs)
+       for tgt in "${compileopts[@]}"; do
+               emake ${tgt}
+       done
+
+       if use python; then
+               pushd python > /dev/null || die
+               distutils-r1_src_compile
+               popd > /dev/null || die
+       fi
+}
+
+src_install() {
+       pushd "${S}"/tools/sources > /dev/null || die
+       emake TOOLSBINDIR="${ED}"usr/bin install
+       popd > /dev/null || die
+
+       if use X; then
+               newbin xgui/sources/xgui snns
+
+               echo XGUILOADPATH=/usr/share/doc/${PF} > "${T}"/99snns
+               doenvd "${T}"/99snns
+
+               docompress -x /usr/share/doc/${PF}/{default.cfg,help.hdoc}
+               insinto /usr/share/doc/${PF}
+               doins default.cfg help.hdoc
+       fi
+
+       if use python; then
+               pushd python > /dev/null || die
+               distutils-r1_src_install
+               insinto /usr/share/doc/${PF}/python-examples
+               doins examples/*
+               newdoc README README.python
+               popd > /dev/null || die
+       fi
+
+       if use doc; then
+               insinto /usr/share/doc/${PF}
+               doins "${DISTDIR}"/${MY_P}.Manual.pdf
+       fi
+
+       insinto /usr/share/doc/${PF}/examples
+       doins examples/*
+       doman man/man*/*
+}