diff options
author | Chris Severance | 2015-09-05 03:33:56 -0400 |
---|---|---|
committer | Chris Severance | 2015-09-05 03:33:56 -0400 |
commit | 6148e7a5062c1ce16651f4a408933a6b427a0163 (patch) | |
tree | 28b3a60a7951232be74e59725d3ea906456a7a84 | |
download | aur-6148e7a5062c1ce16651f4a408933a6b427a0163.tar.gz |
Initial Import
-rw-r--r-- | .SRCINFO | 39 | ||||
-rw-r--r-- | PKGBUILD | 244 | ||||
-rw-r--r-- | wsjt-svn.desktop | 16 | ||||
-rw-r--r-- | wsjt-svn.png | bin | 0 -> 378 bytes |
4 files changed, 299 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..0b56d56f1a65 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,39 @@ +pkgbase = wsjt-svn + pkgdesc = Weak Signal Amateur Hamradio Communication by K1JT + pkgver = 10.0.r5770 + pkgrel = 1 + url = http://physics.princeton.edu/pulsar/K1JT/wsjt.html + arch = i686 + arch = x86_64 + arch = armv5h + arch = armv6h + arch = armv7h + license = GPL + makedepends = subversion + makedepends = gcc-fortran + makedepends = lsb-release + makedepends = python-setuptools + makedepends = asciidoc + depends = python-imaging + depends = tk + depends = libsamplerate + depends = portaudio + depends = fftw + depends = python-pmw + depends = python-pillow + depends = portaudio + depends = python>=3.4.3 + depends = python-numpy>=1.9.2-2 + provides = wsjt=10.0 + conflicts = wsjt + source = WSJT-SVN::svn://svn.code.sf.net/p/wsjt/wsjt/trunk + source = http://iweb.dl.sourceforge.net/project/jtsdk/linux/2.0.0/jtsdk-nix-2.0.14.tar.gz + source = wsjt-svn.png + source = wsjt-svn.desktop + sha256sums = SKIP + sha256sums = bdcefbe6f73a81eb0b77e20cc3b5f36fc44c39ed5c1088dd4ad1c1d2bea0a475 + sha256sums = 20391217d7eb7170c218e5dd04cea744c5f110c03865267c140f2a7c68a0fb3e + sha256sums = 94dc4953cf922cd48799b568b58704b6aca68cd15bd5b4921e9654f62be62a73 + +pkgname = wsjt-svn + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..c8f4ad8778ae --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,244 @@ +# Maintainer: Chris Severance aur.severach aATt spamgourmet dott com +# Contributor: Ross KD5LPB <minorsecond at gmail dot com> + +# If the most current revision cannot be built, +# checkout the most recent version that can. + +_svnrev='' +#_svnrev='#revision=3868' +#_svnrev='#revision=5846' + +# Getting the most recent revision to build was an adventure, and here's the +# map in case you'd like to see how it was done or build an old version. + +# svn log -l 1 +# Python 3.4.3 +# Python 2.7.10 +# 9.1.r2405:r2405 2011-04-20 works +# 9.2.r2459:r2459 2012-05-21 works +# 9.4.r2988:r2988 2013-01-28 works +# 9.4.r2989:r2989 2013-01-28 No rule to make target 'gen24.o', needed by 'WsjtMod/Audio.so' +# (this appears to be too many commits during transitions while files are mismatched) +# 9.5.r3500:r3281 2013-05-17 works +# 9.6.r3634:r3634 2014-01-13 works +# 9.7.r3635:r3635 2014-01-14 No rule to make target 'gendiana.f90', needed by 'WsjtMod/Audio.so' +# 9.7.r3700:r3639 2014-01-15 make: *** No rule to make target 'gendiana.f90', needed by 'WsjtMod/Audio.so' +# 10.0.r3784:r3784 2014-02-20 works +# 10.0.r3785:r3785 2014-02-20 works, now requires pyinstaller +# 10.0.r3800:r3795 2014-02-21 works +# 10.0.r3817:r3817 2014-02-27 works +# 10.0.r3818:r3818 2014-02-28 error invisible to due make -s +# 10.0.r3819:r3818 2014-02-28 last version with pdf files, make: *** No rule to make target 'ftsky.o', needed by 'WsjtMod/Audio.so' + +# Moving past this point you MUST delete the local repo. svn will not sync it properly. + +# 10.0.r3831:r3831 2014-03-04 works, first working version after the big transition at 3819 +# 10.0.r3868:r3866 2014-03-12 works, this is the last revision that builds with Python 2 before the big transition +# 10.0.r3869:r3869 2014-03-14 first version for error: import py2exe; ImportError: No module named py2exe +# 10.0.r3873:r3870 2014-03-14 last version with setup.py; import py2exe; ImportError: No module named py2exe +# 10.0.r3899:r3897 2014-03-19 first version that crashes on something earlier than pyinstaller +# 10.0.r3900:r3900 2014-03-19 first version that crashes on: /bin/sh: f2py3.2: command not found +# 10.0.r3907:r3906 2014-03-24 f2py3.2: command not found, last version with pyinstaller +# 10.0.r3908:r3908 2014-03-24 Transition to Python 3, install target & pyinstaller removed from Makefile, f2py3.2: command not found; Python 3.x with numpy, PIL, Pmw. +# (As of Python 3 the installer has been moved to a separate package: jtsdk) +# 10.0.r4000:r3937 2014-03-27 f2py3.2: command not found; Python 3.x with numpy, PIL, Pmw +# 10.0.r4071:r4068 2014-04-29 p2py3.2 removed from Makefile + +# Revisions 3869-4071 are not tested. +# Revisions 4072-5845 have not been tested but may work with the new jtsdk installer. + +# 10.0.r4072:r4072 2014-04-30 compiles, first version with: Python 3.x, numpy-1.8.1, PIL, Pmw-2.0.0+; python: can't open file '/usr//bin/wsjt.py': [Errno 2] No such file or directory +# 10.0.r5000:r4991 2015-02-27 compiles +# 10.0.r5846:r5770 2015-08-07 works + +set -u + +_pkgname='wsjt' +pkgname="${_pkgname}-svn" +pkgver=10.0.r5770 +pkgrel=1 +pkgdesc='Weak Signal Amateur Hamradio Communication by K1JT' +arch=('i686' 'x86_64' 'armv5h' 'armv6h' 'armv7h') +url='http://physics.princeton.edu/pulsar/K1JT/wsjt.html' +license=('GPL') +# http://physics.princeton.edu/pulsar/k1jt/wsjtx-doc/dev-guide-main.html#_linux_2 +# https://sourceforge.net/projects/jtsdk/files/linux/2.0.0/ +depends=('python-imaging' 'tk' 'libsamplerate' 'portaudio' 'fftw') +makedepends=('subversion' 'gcc-fortran') +if [ ! -z "${_svnrev}" ] && [ "${_svnrev##*=}" -lt 3908 ]; then + if [ "${_svnrev##*=}" -ge 3785 ] && [ "${_svnrev##*=}" -le 3907 ]; then + makedepends+=('pyinstaller') + fi + depends+=('python2' 'python2-numpy') +else + makedepends+=('lsb-release' 'python-setuptools' 'asciidoc') + depends+=('python-pmw' 'python-pillow' 'portaudio') + #if [ ! -z "${_svnrev}" ] && [ "${_svnrev##*=}" -lt 4072 ]; then + # depends+=('python<3.4.3' 'python-numpy'{'>=1.8.0','<1.8.1'}) # This is only a guess. These commits have not been tested. + #else + depends+=('python>=3.4.3' 'python-numpy>=1.9.2-2') # https://bugs.archlinux.org/task/44345 Apparently 1.9.2-1 was build with Python 3.4.2 + #fi +fi +provides=("${_pkgname}=${pkgver%%.r*}") +conflicts=("${_pkgname}") +_srcdir="${pkgname^^}" +_jtsdk='jtsdk-nix-2.0.14' +source=("${_srcdir}::svn://svn.code.sf.net/p/wsjt/wsjt/trunk${_svnrev}" + "http://iweb.dl.sourceforge.net/project/jtsdk/linux/2.0.0/${_jtsdk}.tar.gz" # https://sourceforge.net/p/wsjt/mailman/message/34414230/ + "${pkgname}"{.png,.desktop}) +sha256sums=('SKIP' + 'bdcefbe6f73a81eb0b77e20cc3b5f36fc44c39ed5c1088dd4ad1c1d2bea0a475' + '20391217d7eb7170c218e5dd04cea744c5f110c03865267c140f2a7c68a0fb3e' + '94dc4953cf922cd48799b568b58704b6aca68cd15bd5b4921e9654f62be62a73') + +pkgver() { + set -u + cd "${_srcdir}" + local _vcsver + if :; then + # Use this to label the revision according to the screen and published lists + _vcsver="$(svn info | grep "Last Changed Rev:" |awk '{print $4}')" + else + # Use this to label the revision accord to what _svnrev needs. + _vcsver="$(svnversion)" + _vcsver="${_vcsver//:/.}" # when svn screws up it can return revision nnnn:nnnn + fi + local _srcver="$(sed -ne 's:^Version="\([0-9\.]\+\) r.*$:\1:p' 'wsjt.py')" + printf '%s.r%s' "${_srcver}" "${_vcsver//[[:alpha:]]}" + set +u +} + +prepare() { + set -u + cd "${_srcdir}" + #unset CFLAGS + if [ ! -z "${_svnrev}" ] && [ "${_svnrev##*=}" -lt 3908 ]; then +# This patch gets f2py2e from python2-numpy + install -Dm644 <(cat << EOF +from numpy.f2py import f2py2e +f2py2e.main() +EOF + ) 'f2py.py' + # Set the build environment to python2 + # Make problems can sometimes be fixed by replacing g95 with gfortran + #F2PY='/usr/bin/python2 f2py.py' LDFLAGS='' ./configure --prefix='/usr' --enable-g95 + F2PY='/usr/bin/python2 f2py.py' LDFLAGS='' ./configure --prefix='/usr' --enable-gfortran + else + if [ ! -z "${_svnrev}" ] && [ "${_svnrev##*=}" -ge 3900 ] && [ "${_svnrev##*=}" -le 4070 ]; then + if :; then + #sed -i -e 's:f2py3.2:f2py:g' 'Makefile.in' # Python 3 + sed -i -e 's:Audio.cpython-32mu.so:Audio.cpython-34m.so:g' 'Makefile.in' # Python 3.2.x -> 3.4.x + else + sed -i -e 's:f2py3.2:f2py2:g' 'Makefile.in' # Python 2 + sed -i -e 's:Audio.cpython-32mu.so:Audio.so:g' 'Makefile.in' # Python 3.2.x -> 2.7.x + fi + elif [ ! -z "${_svnrev}" ] && [ "${_svnrev##*=}" -le 4072 ]; then + # This is not expected to build + #LDFLAGS='' ./configure --prefix='/usr' --enable-g95 + LDFLAGS='' ./configure --prefix='/usr' --enable-gfortran + else + cd "${srcdir}/${_jtsdk}" + sed -i -e '# No colors' \ + -e 's:^\(C_[A-Z]\{1,2\}\)=.*$:\1="":g' \ + -e "# It's rude to clear screens" \ + -e 's,^\(\s*\)\(clear\)$,\1: #\2,g' \ + 'autogen.sh' + ./autogen.sh --with-f2py3='/usr/bin/f2py' + cd 'src' + # Fix this install script to be package compatible + sed -i -e '# Set the folders' \ + -e 's:^\(HOMEDIR\)=.*$'":\1=${srcdir}:g" \ + -e 's:^\(SRCD\)=.*$:\1="$HOMEDIR/'"${_srcdir}"'":g' \ + -e 's:^\(APP_SRC\)=.*$:'"\1='${srcdir}/${_srcdir}':g" \ + -e '# No colors' \ + -e 's:^\(C_[A-Z]\{1,2\}\)=.*$:\1="":g' \ + -e "# Fix the lib folders to native. If we were to enable multilib we wouldn't do it that way." \ + -e 's:\(--with-portaudio-lib-dir=/usr/lib/\).*-linux-gnu:\1:g' \ + -e "# Disable SVN retrieval that we've done already" \ + -e 's:^check_svn$:#&:g' \ + -e "# Separate into parts, and it's rude to clear screens" \ + -e 's:^clear$:_fn_configure() {:g' \ + -e '# Then make' \ + -e 's:^echo -e ${C_Y}'"'"'COMPILE and INSTALL.*$:}\n_fn_make() {\ncd "$APP_SRC":g' \ + -e '# Then install' \ + -e 's:^mkdir -p "\$INSTALLD":}\n_fn_install() {\ncd "$APP_SRC"\n&:g' \ + -e '# Disable the rest' \ + -e 's:^chown -R "\$USER":}\n_fn_junk() {\n&:g' \ + 'jtsdk-wsjt' + echo '}; _fn_$1' >> 'jtsdk-wsjt' + chmod 755 'jtsdk-wsjt' + mkdir -p "${srcdir}/"{tmp,logs} + LDFLAGS='' './jtsdk-wsjt' configure + fi + fi + + set +u +} + +build() { + set -u + cd "${_srcdir}" + unset LDFLAGS + unset CFLAGS + if [ ! -z "${_svnrev}" ] && [ "${_svnrev##*=}" -lt 3908 ]; then + set +u; msg2 'Building threaded make'; set -u + make -s -j "$(nproc)" + else + if ! :; then + # Their make isn't threaded. I suppose we could sed that in place though. + "${srcdir}/${_jtsdk}/src/jtsdk-wsjt" make + else + set +u; msg2 'Building threaded make'; set -u + make -s -j "$(nproc)" 'libjt.a' # The big part can be a threaded make + set +u; msg2 'Building non threaded make'; set -u + make -s all + fi + fi + set +u +} + +package() { + set -u + cd "${_srcdir}" + rm -rf 'build/' + if [ ! -z "${_svnrev}" ] && [ "${_svnrev##*=}" -lt 3908 ]; then + python2 'setup.py' install --root="${pkgdir}" + make PYTHON='true' PREFIX="${pkgdir}/usr" install # Makefile doesn't allow for --root + sed -i -e 's:python:python2:g' "${pkgdir}/usr/bin/wsjt" + if [ "${_svnrev##*=}" -le 3819 ]; then + install -Dpm0644 *.pdf -t "${pkgdir}/usr/share/wsjt/" + fi + cp -pra 'RxWav/Samples'/*.[Ww][Aa][Vv] "${pkgdir}/usr/share/wsjt/" # between 3831 and 3868 these changed from .WAV -> .wav + install -Dpm0644 *.TXT -t "${pkgdir}/usr/share/wsjt/" + else + INSTALLD="${pkgdir}/usr/share/${_pkgname}" "${srcdir}/${_jtsdk}/src/jtsdk-wsjt" install + chmod 644 "${pkgdir}/usr/share/${_pkgname}/"{wsjtrc,kvasd.dat} + # Why are we leaving Windows DLL files in? + rm -f "${pkgdir}/usr/share/${_pkgname}/WsjtMod"/*.dll + # If we don't compile the specjt screen doesn't come up until root runs once to generate the pyc + python3 -m compileall "${pkgdir}/usr/share/${_pkgname}/" + # Make a package compatible launcher + install -Dm755 <(cat << EOF +#!/usr/bin/bash +set -u +mkdir -p ~/.${_pkgname}/RxWav/Samples +cd /usr/share/${_pkgname}/RxWav/Samples +for _sample in *.[Ww][Aa][Vv]; do + if [ ! -f ~/".wsjt/RxWav/Samples/\${_sample}" ]; then + ln -s "/usr/share/${_pkgname}/RxWav/Samples/\${_sample}" ~/".wsjt/RxWav/Samples/\${_sample}" + fi +done +cd ~/.${_pkgname} +python3 /usr/share/wsjt/wsjt.py +EOF + ) "${pkgdir}/usr/bin/wsjt" + fi + + # Install a menu item with icon. In XFCE this shows as Other and launches a console window. + # Placement in the start menu could be better + install -Dpm644 "${srcdir}/${pkgname}.png" -t "${pkgdir}/usr/share/pixmaps/" + # Set Terminal=false to supress the terminal screen. + install -Dpm644 "${srcdir}/${pkgname}.desktop" -t "${pkgdir}/usr/share/applications/" + set +u +} +set +u diff --git a/wsjt-svn.desktop b/wsjt-svn.desktop new file mode 100644 index 000000000000..ddd9e40cc987 --- /dev/null +++ b/wsjt-svn.desktop @@ -0,0 +1,16 @@ +[Desktop Entry] +Name=WSJT +Name[en_US]=WSJT +Comment=Weak Signal Communication by K1JT +Comment[en_US]=Weak Signal Communication by K1JT +Encoding=UTF-8 +Exec=wsjt +Icon=wsjt-svn.png +MimeType=text +StartupNotify=true +Terminal=true +TerminalOptions= +Type=Application +Categories=Application;HamRadio +X-DCOP-ServiceType=none +X-KDE-SubstituteUID=false diff --git a/wsjt-svn.png b/wsjt-svn.png Binary files differnew file mode 100644 index 000000000000..77b5a7d451b0 --- /dev/null +++ b/wsjt-svn.png |