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.
gentoo-overlay/sci-astronomy/predict/predict-2.2.3-r2.ebuild

213 lines
5.6 KiB

# Copyright 1999-2023 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."
}