summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys-apps/plocate/Manifest1
-rw-r--r--sys-apps/plocate/plocate-1.1.20.ebuild86
2 files changed, 87 insertions, 0 deletions
diff --git a/sys-apps/plocate/Manifest b/sys-apps/plocate/Manifest
index 86ed6f23accf..dc8d59ee29c3 100644
--- a/sys-apps/plocate/Manifest
+++ b/sys-apps/plocate/Manifest
@@ -1 +1,2 @@
DIST plocate-1.1.19.tar.gz 73964 BLAKE2B bf488c124b219822c0b426f57f3389f2611395abb7ddd22c72c51086480af1811ab2ed5f2a96cb6ad7d769be7dd60c3482de46841f2d5be85abdc1a1ce586ee8 SHA512 7bbbe914dbab75adb7f38302b7a06cfbb7c18b0e580892dced89d72dc0076e98a75482833b76200bb68b99a0a6093639967b962d0b69be526360995f7d833fcd
+DIST plocate-1.1.20.tar.gz 74409 BLAKE2B 4ac6edb5b347c03adb23bb1dc7549647829d5620d17994ee1cf66a46b78b20dca546c726e8161b339b65b97cf2983564723ad218f25f4ef57e58fd0cbe9db76a SHA512 511a25f7e1dba3e9ea836dc3b462cf3b1aa3c111819531fad73857bc0fd22fcbc387715a8981ef58be31103b6ac802468eb18b32826dc220a6781ebf83b1c153
diff --git a/sys-apps/plocate/plocate-1.1.20.ebuild b/sys-apps/plocate/plocate-1.1.20.ebuild
new file mode 100644
index 000000000000..cfb1c096e464
--- /dev/null
+++ b/sys-apps/plocate/plocate-1.1.20.ebuild
@@ -0,0 +1,86 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit linux-info meson systemd
+
+DESCRIPTION="Posting locate is a much faster locate"
+HOMEPAGE="https://plocate.sesse.net/"
+SRC_URI="https://plocate.sesse.net/download/${P}.tar.gz"
+
+# GPL-2 for updatedb
+# GPL-2+ for plocate itself
+LICENSE="GPL-2 GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+IUSE="+io-uring"
+
+RDEPEND="
+ acct-group/locate
+ app-arch/zstd:=
+ io-uring? ( sys-libs/liburing:= )
+ !sys-apps/mlocate
+"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.1.15-meson-use-feature-option-for-libiouring.patch
+)
+
+pkg_setup() {
+ if use io-uring && linux_config_exists; then
+ if ! linux_chkconfig_present IO_URING; then
+ ewarn "CONFIG_IO_URING must be enabled for USE=io-uring"
+ fi
+ fi
+}
+
+src_prepare() {
+ # We'll install the manpage ourself to locate.1
+ sed -i "/install_man('plocate.1')/d" meson.build || die
+
+ default
+}
+
+src_configure() {
+ local emesonargs=(
+ -Dlocategroup=locate
+ -Dinstall_systemd=true
+ -Dinstall_cron=false
+ -Dsystemunitdir="$(systemd_get_systemunitdir)"
+ "$(meson_feature io-uring use_libiouring)"
+ )
+ meson_src_configure
+}
+
+src_install() {
+ meson_src_install
+ dodoc README NEWS
+ newman "${S}"/${PN}.1 locate.1
+ dosym plocate /usr/bin/locate
+
+ insinto /etc
+ doins "${FILESDIR}"/updatedb.conf
+ doins "${FILESDIR}"/plocate-cron.conf
+ fperms 0644 /etc/{updatedb,plocate-cron}.conf
+
+ insinto /etc/cron.daily
+ # Ensure that the cron file has the same name as the
+ # systemd-timer, to avoid plocate being run twice daily on systems
+ # with a systemd compatiblity layer. See also bug #780351.
+ newins "${FILESDIR}"/plocate.cron plocate-updatedb
+ fperms 0755 /etc/cron.daily/plocate-updatedb
+
+ systemd_dounit "${BUILD_DIR}"/${PN}-updatedb.service "${S}"/${PN}-updatedb.timer
+}
+
+pkg_postinst() {
+ if [[ -z "${REPLACING_VERSIONS}" ]] ; then
+ elog "The database for the locate command is generated daily by a cron job,"
+ elog "if you install for the first time you can run the updatedb command manually now."
+ elog
+ elog "Note that the ${EROOT}/etc/updatedb.conf file is generic,"
+ elog "please customize it to your system requirements."
+ fi
+}