You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
213 lines
5.6 KiB
213 lines
5.6 KiB
# Copyright 1999-2021 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=6
|
|
|
|
inherit autotools flag-o-matic toolchain-funcs
|
|
|
|
DEB_P="${PN}_${PV}"
|
|
DEB_PR=3.1
|
|
|
|
DESCRIPTION="Satellite tracking and orbital prediction"
|
|
HOMEPAGE="https://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}
|
|
virtual/pkgconfig
|
|
"
|
|
|
|
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() {
|
|
append-cflags -fcommon
|
|
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."
|
|
}
|