public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: sci-geosciences/gpsd/
Date: Sun,  2 Jun 2024 00:52:02 +0000 (UTC)	[thread overview]
Message-ID: <1717289255.a0cad067d3e13f52f9ca54c37910d3fe2a0455ba.sam@gentoo> (raw)

commit:     a0cad067d3e13f52f9ca54c37910d3fe2a0455ba
Author:     Kyle Elbert <kcelbert <AT> gmail <DOT> com>
AuthorDate: Fri May 31 12:15:32 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Jun  2 00:47:35 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a0cad067

sci-geosciences/gpsd: 3.25-r1: many cleanups, python 3.12 bump

Switched to PEP517 Build
Python 3.12 bump
Made sockets mandatory
Corrected License
Added missing BDEPEND DISTUTILS_DEPS
Added missing PYTHON_USEDEP for pyserial
Ensured python scripts were correctly wrapped

Closes: https://bugs.gentoo.org/900891
Closes: https://bugs.gentoo.org/910024
Closes: https://bugs.gentoo.org/912732
Closes: https://bugs.gentoo.org/929766
Closes: https://bugs.gentoo.org/923315
Signed-off-by: Kyle Elbert <kcelbert <AT> gmail.com>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 sci-geosciences/gpsd/gpsd-3.25-r1.ebuild | 240 +++++++++++++++++++++++++++++++
 1 file changed, 240 insertions(+)

diff --git a/sci-geosciences/gpsd/gpsd-3.25-r1.ebuild b/sci-geosciences/gpsd/gpsd-3.25-r1.ebuild
new file mode 100644
index 000000000000..bbc8c829c5bd
--- /dev/null
+++ b/sci-geosciences/gpsd/gpsd-3.25-r1.ebuild
@@ -0,0 +1,240 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_OPTIONAL=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..12} )
+SCONS_MIN_VERSION="2.3.0"
+
+inherit distutils-r1 scons-utils systemd toolchain-funcs udev
+
+if [[ ${PV} == 9999 ]] ; then
+	EGIT_REPO_URI="https://gitlab.com/gpsd/gpsd.git"
+	inherit git-r3
+else
+	SRC_URI="mirror://nongnu/${PN}/${P}.tar.xz"
+	KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+fi
+
+DESCRIPTION="GPS daemon and library for USB/serial GPS devices and GPS/mapping clients"
+HOMEPAGE="https://gpsd.gitlab.io/gpsd/"
+
+LICENSE="BSD-2"
+SLOT="0/30"
+
+GPSD_PROTOCOLS=(
+	aivdm ashtech earthmate evermore fury fv18 garmin garmintxt geostar
+	gpsclock greis isync itrax navcom nmea2000 oceanserver oncore
+	rtcm104v2 rtcm104v3 sirf skytraq superstar2 tnt tripmate tsip ublox
+)
+IUSE_GPSD_PROTOCOLS=${GPSD_PROTOCOLS[@]/#/+gpsd_protocols_}
+IUSE="${IUSE_GPSD_PROTOCOLS} bluetooth +cxx dbus debug ipv6 latency-timing ncurses ntp +python qt5 selinux +shm static systemd test udev usb X"
+REQUIRED_USE="
+	X? ( python )
+	gpsd_protocols_nmea2000? ( gpsd_protocols_aivdm )
+	gpsd_protocols_isync? ( gpsd_protocols_ublox )
+	gpsd_protocols_ublox? ( python )
+	gpsd_protocols_greis? ( python )
+	python? ( ${PYTHON_REQUIRED_USE} )
+	qt5? ( cxx )
+"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	acct-user/gpsd
+	acct-group/dialout
+	>=net-misc/pps-tools-0.0.20120407
+	bluetooth? ( net-wireless/bluez:= )
+	dbus? (
+		sys-apps/dbus
+		dev-libs/dbus-glib
+	)
+	ncurses? ( sys-libs/ncurses:= )
+	ntp? ( || (
+		net-misc/ntp
+		net-misc/ntpsec
+		net-misc/chrony
+	) )
+	qt5? (
+		dev-qt/qtcore:5
+		dev-qt/qtnetwork:5
+	)
+	python? ( ${PYTHON_DEPS} )
+	gpsd_protocols_ublox? ( dev-python/pyserial[${PYTHON_USEDEP}] )
+	gpsd_protocols_greis? ( dev-python/pyserial[${PYTHON_USEDEP}] )
+	usb? ( virtual/libusb:1 )
+	X? ( dev-python/pygobject:3[cairo,${PYTHON_USEDEP}] )"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig
+	$(python_gen_any_dep 'dev-build/scons[${PYTHON_USEDEP}]')
+	python? ( ${DISTUTILS_DEPS} )
+	test? ( app-alternatives/bc )"
+RDEPEND+=" selinux? ( sec-policy/selinux-gpsd )"
+
+# asciidoctor package is for man page generation
+if [[ ${PV} == *9999* ]] ; then
+	BDEPEND+=" dev-ruby/asciidoctor"
+fi
+
+python_check_deps() {
+	python_has_version -b "dev-build/scons[${PYTHON_USEDEP}]" || return 1
+}
+
+src_prepare() {
+	# Make sure our list matches the source.
+	local src_protocols=$(echo $(
+		sed -n '/# GPS protocols/,/# Time service/{s:#.*::;s:[(",]::g;p}' \
+		 "${S}"/SConscript | awk '{print $1}' | LC_ALL=C sort
+	) )
+
+	if [[ ${src_protocols} != ${GPSD_PROTOCOLS[*]} ]] ; then
+		eerror "Detected protocols: ${src_protocols}"
+		eerror "Ebuild protocols:   ${GPSD_PROTOCOLS[*]}"
+		die "please sync ebuild & source"
+	fi
+
+	# bug #807661
+	sed -i -e 's:$SRCDIR/gpsd.hotplug:$SRCDIR/../gpsd.hotplug:' SConscript || die
+
+	default
+
+	use python && distutils-r1_src_prepare
+}
+
+python_prepare_all() {
+	python_setup
+
+	# bug #796476
+	python_export_utf8_locale
+
+	# Extract python info out of SConscript so we can use saner distribute
+	pyarray() { sed -n "/^ *$1 *= *\\[/,/\\]/p" SConscript ; }
+	local pyprogs=$(pyarray python_progs)
+	local pybins=$("${PYTHON}" -c "${pyprogs}; \
+		print(list(set(python_progs) - {'xgps', 'xgpsspeed', 'ubxtool', 'zerk'}))" || die "Unable to list pybins")
+	# Handle conditional tools manually. #666734
+	use X && pybins+="+ ['xgps', 'xgpsspeed']"
+	use gpsd_protocols_ublox && pybins+="+ ['ubxtool']"
+	use gpsd_protocols_greis && pybins+="+ ['zerk']"
+	local pysrcs=$(pyarray packet_ffi_extension)
+	local packet=$("${PYTHON}" -c "${pysrcs}; print(packet_ffi_extension)" || die "Unable to extract packet types")
+
+	pyvar() { sed -n "/^ *$1 *=/s:.*= *::p" SConscript ; }
+	pyvar2() { sed -n "/^ *$1 *=/s:.*= *::p" SConstruct ; }
+
+	# Post 3.19 the clienthelpers were merged into gps.packet
+
+	# TODO: Fix hardcoding https://gpsd.io/ for now for @URL@
+	sed \
+		-e "s|@VERSION@|$(pyvar2 gpsd_version | sed -e 's:\"::g')|" \
+		-e "s|@URL@|https://gpsd.io/|" \
+		-e "s|@DEVMAIL@|$(pyvar devmail)|" \
+		-e "s|@SCRIPTS@|${pybins}|" \
+		-e "s|@DOWNLOAD@|$(pyvar download)|" \
+		-e "s|@IRCCHAN@|$(pyvar ircchan)|" \
+		-e "s|@ISSUES@|$(pyvar bugtracker)|" \
+		-e "s|@MAILMAN@|$(pyvar mailman)|" \
+		-e "s|@PROJECTPAGE@|$(pyvar projectpage)|" \
+		-e "s|@SUPPORT@|https://gpsd.io/SUPPORT.html|" \
+		-e "s|@WEBSITE@|https://gpsd.io/|" \
+		"${S}"/packaging/gpsd-setup.py.in > setup.py || die
+	distutils-r1_python_prepare_all
+}
+
+src_configure() {
+	scons_opts=(
+		prefix="${EPREFIX}/usr"
+		libdir="\$prefix/$(get_libdir)"
+		udevdir="$(get_udevdir)"
+		rundir="/run"
+		chrpath=False
+		gpsd_user=gpsd
+		gpsd_group=dialout
+		nostrip=True
+		systemd=$(usex systemd)
+		unitdir="$(systemd_get_systemunitdir)"
+		shared=$(usex !static True False)
+		bluez=$(usex bluetooth)
+		libgpsmm=$(usex cxx)
+		clientdebug=$(usex debug)
+		dbus_export=$(usex dbus)
+		ipv6=$(usex ipv6)
+		timing=$(usex latency-timing)
+		ncurses=$(usex ncurses)
+		ntpshm=$(usex ntp)
+		pps=$(usex ntp)
+		python=$(usex python)
+		# force a predictable python libdir because lib vs. lib64 usage differs
+		# from 3.5 to 3.6+
+		$(usex python python_libdir="${EPREFIX}"/python-discard "")
+		qt=$(usex qt5)
+		shm_export=$(usex shm)
+		socket_export=True # Required, see bug #900891
+		usb=$(usex usb)
+	)
+
+	if [[ ${PV} != *9999* ]] ; then
+		scons_opts+=( manbuild=False )
+	fi
+
+	use X && scons_opts+=( xgps=1 xgpsspeed=1 )
+	use qt5 && scons_opts+=( qt_versioned=5 )
+
+	# enable specified protocols
+	local protocol
+	for protocol in ${GPSD_PROTOCOLS[@]} ; do
+		scons_opts+=( ${protocol}=$(usex gpsd_protocols_${protocol}) )
+	done
+
+	# bug #809260
+	python_setup
+}
+
+src_compile() {
+	export CHRPATH=
+	tc-export CC CXX PKG_CONFIG
+	export SHLINKFLAGS=${LDFLAGS} LINKFLAGS=${LDFLAGS}
+	escons "${scons_opts[@]}"
+
+	pushd "${P}" || die
+	ln -sf ../setup.py . || die
+	use python && distutils-r1_src_compile
+	popd || die
+}
+
+src_test() {
+	escons "${scons_opts[@]}" check
+}
+
+python_test() {
+	# Silence QA check which gets confused by layout(?). We do run the tests.
+	:;
+}
+
+python_install(){
+	mkdir -p "${T}/scripts" || die
+	grep -Rl "${D}/usr/bin" -e "/usr/bin/env python" | xargs mv -t "${T}/scripts"
+	python_doscript "${T}"/scripts/*
+	distutils-r1_python_install
+}
+
+src_install() {
+	DESTDIR="${D}" escons install "${scons_opts[@]}" $(usev udev udev-install)
+
+	newconfd "${FILESDIR}"/gpsd.conf-2 gpsd
+	newinitd "${FILESDIR}"/gpsd.init-2 gpsd
+
+	# Cleanup bad alt copy due to Scons
+	rm -rf "${D}"/python-discard/gps*
+	find "${D}"/python-discard/ -type d -delete
+	# Install correct multi-python copy
+	pushd "${P}" || die
+	use python && distutils-r1_src_install
+	popd || die
+}
+
+pkg_postinst() {
+	use udev && udev_reload
+}


             reply	other threads:[~2024-06-02  0:52 UTC|newest]

Thread overview: 119+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-02  0:52 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-09-13 15:26 [gentoo-commits] repo/gentoo:master commit in: sci-geosciences/gpsd/ Andreas Sturmlechner
2025-09-12 15:48 Arthur Zamarin
2025-09-11 18:43 Sam James
2025-08-31 20:07 Andreas Sturmlechner
2025-08-30 20:55 Andreas Sturmlechner
2025-08-30 14:05 Arthur Zamarin
2025-08-30  9:04 Arthur Zamarin
2025-08-30  7:34 Arthur Zamarin
2025-08-29 19:44 Andreas Sturmlechner
2025-05-18 15:20 Sam James
2025-04-26 19:51 Sam James
2025-04-26 19:51 Sam James
2025-01-02 21:02 Andreas Sturmlechner
2025-01-02 20:35 Andreas Sturmlechner
2024-08-12 12:33 Sam James
2024-08-12 12:33 Sam James
2024-07-15  4:35 Sam James
2024-07-15  4:35 Sam James
2024-07-15  4:35 Sam James
2024-06-02  0:52 Sam James
2024-06-02  0:52 Sam James
2024-06-02  0:52 Sam James
2024-06-02  0:52 Sam James
2024-01-08  9:48 Sam James
2023-09-29  7:27 WANG Xuerui
2023-09-29  7:27 WANG Xuerui
2023-06-28  7:19 Sam James
2023-05-01  9:22 Sam James
2023-05-01  5:39 Sam James
2023-04-22  8:47 Arthur Zamarin
2023-04-19 10:16 Arthur Zamarin
2023-04-19  9:49 Sam James
2023-01-15  1:41 Sam James
2022-09-04 18:21 Arthur Zamarin
2022-09-04 18:21 Arthur Zamarin
2022-09-04 17:46 Sam James
2022-09-04 10:51 Agostino Sarubbo
2022-09-04 10:49 Agostino Sarubbo
2022-04-28  2:58 Sam James
2022-04-12 21:04 Sam James
2022-02-11 12:51 Sam James
2021-11-08  3:22 Mike Gilbert
2021-10-30 17:24 Agostino Sarubbo
2021-10-29 18:32 Sam James
2021-10-29 18:32 Sam James
2021-10-29 18:30 Sam James
2021-10-29  8:58 Sam James
2021-10-29  2:24 Sam James
2021-10-08  0:55 Sam James
2021-10-04  1:26 Sam James
2021-10-03  0:34 Sam James
2021-10-02 23:54 Sam James
2021-09-25  0:05 Sam James
2021-09-25  0:04 Sam James
2021-09-25  0:04 Sam James
2021-09-11 21:34 Sam James
2021-08-27 20:06 Sam James
2021-08-22  2:50 Sam James
2021-08-18 19:42 Sam James
2021-08-18 19:39 Sam James
2021-08-15 22:04 Sam James
2021-08-11 23:57 Sam James
2021-08-10 23:52 Sam James
2021-08-10 23:52 Sam James
2021-08-10 23:52 Sam James
2021-08-10  0:16 Marek Szuba
2021-08-09 23:53 Sam James
2021-08-09 23:46 Sam James
2021-06-01 12:06 Sam James
2020-10-06 14:23 Sam James
2020-09-25 17:52 Sam James
2020-09-25 17:51 Sam James
2020-09-25 17:51 Sam James
2020-09-25 16:01 Sam James
2020-09-25 16:00 Sam James
2020-09-24 19:53 Aaron Bauman
2020-09-10 15:31 Marek Szuba
2020-07-29  1:07 Rick Farina
2020-07-28 18:12 Rick Farina
2020-07-28 18:12 Rick Farina
2020-07-28 18:12 Rick Farina
2020-07-28 18:12 Rick Farina
2020-07-28 18:12 Rick Farina
2020-07-28 18:12 Rick Farina
2020-05-12  6:22 Matthias Maier
2020-05-07 15:17 Michał Górny
2019-11-29  8:17 Michał Górny
2019-10-04 19:23 Robin H. Johnson
2019-10-04 18:59 Robin H. Johnson
2019-10-04 18:59 Robin H. Johnson
2019-09-12  3:57 Mike Frysinger
2019-01-19 19:14 Robin H. Johnson
2018-10-04  7:28 Andreas Sturmlechner
2018-10-04  6:26 Sergei Trofimovich
2018-09-30 23:10 Robin H. Johnson
2018-09-04 20:49 Andreas Sturmlechner
2018-04-15 17:19 Mikle Kolyada
2018-01-29  1:06 Thomas Deutschmann
2018-01-12 15:55 Andreas Sturmlechner
2018-01-12 15:55 Andreas Sturmlechner
2017-12-28 21:20 Andreas Sturmlechner
2017-12-28 21:20 Andreas Sturmlechner
2017-12-28 15:35 Andreas Sturmlechner
2017-12-21 18:23 Andreas Sturmlechner
2017-12-16 10:31 Tobias Klausmann
2017-12-08 20:39 Thomas Deutschmann
2017-09-24 15:10 Thomas Deutschmann
2017-08-20 16:59 Thomas Deutschmann
2017-07-15 15:17 Tobias Klausmann
2017-03-01  7:55 Michael Weber
2017-02-10 12:29 Michael Weber
2017-01-15 11:20 Pacho Ramos
2016-12-20 15:34 Tobias Klausmann
2016-03-27 12:02 Sam Jorna
2016-03-18 15:46 Sam Jorna
2016-02-29 14:48 Amy Winston
2016-02-29 14:48 Amy Winston
2016-02-29 14:36 Amy Winston

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1717289255.a0cad067d3e13f52f9ca54c37910d3fe2a0455ba.sam@gentoo \
    --to=sam@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox