123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208 |
- # Copyright 1999-2017 Gentoo Foundation
- # Distributed under the terms of the GNU General Public License v2
- EAPI=6
- inherit autotools toolchain-funcs
- DEB_P=${PN}_${PV}
- DEB_PR=3.1
- DESCRIPTION="Satellite tracking and orbital prediction"
- HOMEPAGE="http://www.qsl.net/kd2bd/predict.html"
- 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}.diff.gz"
- LICENSE="GPL-2"
- SLOT="0"
- IUSE="doc gtk nls xforms xplanet"
- KEYWORDS="amd64 ~ppc x86 ~amd64-linux ~x86-linux"
- RDEPEND="sys-libs/ncurses:0=
- gtk? ( x11-libs/gtk+:2 )
- xforms? ( x11-libs/xforms )
- xplanet? ( x11-misc/xplanet[truetype] )"
- DEPEND="${RDEPEND}"
- PATCHES=(
- "${FILESDIR}"/"${P}"-earthtrack.patch
- "${WORKDIR}"/${DEB_P}-${DEB_PR}.diff
- )
- src_prepare() {
- default
- sed -i -e 's:predict\(.*\)/:predict-2.2.3\1/:g' \
- debian/patches/140*.diff || die
- sed -i -e 's:\(a\|b\)/:predict-2.2.3/:g' \
- debian/patches/180*.diff || die
- eapply debian/patches/.
- # fix some further array out of bounds errors
- sed -i -e "s/satname\[ 26/satname\[ 25/g" \
- clients/gsat-1.1.0/src/db.c || die
- sed -i -e "s/satname\[ 26/satname\[ 25/g" \
- clients/gsat-1.1.0/src/comms.c || die
- sed -i -e "s/output\[20\];/output[21];/" \
- utils/moontracker/moontracker.c || die
- # fix underlinking
- sed -i -e '/AC_OUTPUT/i \
- AC_SEARCH_LIBS([cos], [m]) \
- AC_SEARCH_LIBS([dlclose], [dl])' \
- -e 's/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/' \
- -e 's/configure.in/configure.ac/' \
- clients/gsat-1.1.0/configure.in || die
- mv clients/gsat-1.1.0/configure.{in,ac} || die
- sed -i \
- -e 's/gcc/$(CC) $(CFLAGS) $(LDFLAGS)/g' \
- -e 's/-o/-lm -o/g' \
- clients/gsat-1.1.0/plugins/Makefile || die
- # fix the hardcoded /usr/lib
- PRED_DIR=/usr/$(get_libdir)/${PN}
- sed -i -e "s:/usr/lib/${PN}:${EPREFIX}/${PRED_DIR}:g" \
- predict.h vocalizer/vocalizer.c || die
- sed -i -e "s:/usr/lib:${EPREFIX}/usr/$(get_libdir):g" \
- clients/gsat-1.1.0/src/globals.h || die
- if use gtk; then
- cd "${S}"/clients/gsat-* || die
- rm config.sub missing || die
- eautoreconf
- fi
- }
- src_configure() {
- if use gtk; then
- cd "${S}"/clients/gsat-* || die
- econf $(use_enable nls)
- fi
- }
- src_compile() {
- # predict uses a ncurses based configure script
- # this is what it does if it was bash based ;)
- local COMPILER="$(tc-getCC) ${CFLAGS} ${LDFLAGS}"
- einfo "Compiling predict"
- ${COMPILER} predict.c -lm $($(tc-getPKG_CONFIG) --libs ncurses) -lpthread \
- -o predict || die "failed predict"
- einfo "Compiling predict-g1yyh"
- ${COMPILER} predict-g1yyh.c -lm $($(tc-getPKG_CONFIG) --libs ncurses) -lpthread -lmenu \
- -o predict-g1yyh || die "failed predict-g1yyh"
- einfo "Compiling vocalizer"
- ${COMPILER} vocalizer/vocalizer.c \
- -o vocalizer/vocalizer || die "failed vocalizer"
- local c
- for c in fodtrack geosat moontracker; do
- einfo "Compiling ${c}"
- cd "${S}"/utils/${c}* || die
- ${COMPILER} ${c}.c -lm -o ${c} || die "failed ${c}"
- done
- einfo "Compiling kep_reload"
- cd "${S}"/clients/kep_reload
- ${COMPILER} kep_reload.c \
- -o kep_reload || die "failed kep_reload"
- if use xplanet; then
- einfo "Compiling earthtrack"
- cd "${S}"/clients/earthtrack || die
- ${COMPILER} earthtrack.c \
- -lm -o earthtrack || die "failed earthtrack"
- fi
- if use xforms; then
- einfo "Compiling map"
- cd "${S}"/clients/map || die
- ${COMPILER} map.c map_cb.c map_main.c -lforms -lX11 -lm \
- -o map || die "Failed compiling map"
- fi
- if use gtk; then
- einfo "Compiling gsat"
- cd "${S}"/clients/gsat-* || die
- emake
- emake -C plugins
- fi
- }
- src_install() {
- dobin predict predict-g1yyh "${FILESDIR}"/predict-update
- dodoc CHANGES CREDITS HISTORY README NEWS debian/README.Debian
- doman docs/man/predict.1
- newman debian/predict-g1yyh.man predict-g1yyh.1
- insinto ${PRED_DIR}/default
- doins default/predict.*
- use doc && dodoc docs/pdf/predict.pdf
- cd "${S}"/vocalizer || die
- dobin vocalizer
- dosym ../../../bin/vocalizer ${PRED_DIR}/vocalizer/vocalizer
- insinto ${PRED_DIR}/vocalizer
- doins *.wav
- cd "${S}"/clients/kep_reload || die
- dobin kep_reload
- newdoc README README.kep_reload
- doman "${S}"/debian/kep_reload.1
- cd "${S}"/utils/fodtrack-0.1 || die
- insinto /etc
- doins fodtrack.conf
- doman fodtrack.conf.5 fodtrack.8
- dobin fodtrack
- newdoc README README.fodtrack
- cd "${S}"/utils/geosat || die
- dobin geosat
- newdoc README README.geosa
- newman "${S}"/debian/geosat.man geosat.1
- cd "${S}"/utils/moontracker || die
- dobin moontracker
- newdoc README README.moontracker
- doman "${S}"/debian/moontracker.1
- if use xplanet; then
- cd "${S}"/clients/earthtrack || die
- ln -s earthtrack earthtrack2 || die
- dobin earthtrack earthtrack2
- newdoc README README.earthtrack
- doman "${S}"/debian/earthtrack.1
- fi
- if use xforms; then
- cd "${S}"/clients/map || die
- newbin map predict-map
- newdoc CHANGES CHANGES.map
- newdoc README README.map
- doman "${S}"/debian/predict-map.1
- fi
- if use gtk; then
- cd "${S}"/clients/gsat-* || die
- exeinto /usr/$(get_libdir)/gsat/plugins
- doexe plugins/radio_{FT736,FT847,ICR10,print,test} plugins/rotor_{print,pictrack}
- dobin src/gsat
- doman "${S}"/debian/gsat.1
- local i
- for i in AUTHORS ChangeLog NEWS README Plugin_API; do
- newdoc ${i} ${i}.gsat
- done
- fi
- }
- pkg_postinst() {
- einfo "To use the clients the following line will"
- einfo "have to be inserted into /etc/services"
- einfo "predict 1210/udp"
- einfo "The port can be changed to anything"
- einfo "the name predict is what is needed to work"
- einfo "after that is set run 'predict -s'"
- einfo ""
- einfo "To get list of satellites run 'predict-update'"
- einfo "before running predict this script will also update"
- einfo "the list of satellites so they are up to date."
- }
|