public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Pacho Ramos" <pacho@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: net-fs/netatalk/, net-fs/netatalk/files/
Date: Sat,  8 May 2021 09:27:42 +0000 (UTC)	[thread overview]
Message-ID: <1620466056.67168a3294f56a7c95f4e7cfa76f399efe93850e.pacho@gentoo> (raw)

commit:     67168a3294f56a7c95f4e7cfa76f399efe93850e
Author:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Sat May  8 09:27:19 2021 +0000
Commit:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Sat May  8 09:27:36 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=67168a32

net-fs/netatalk: Port to tracker-3

Package-Manager: Portage-3.0.18, Repoman-3.0.3
Signed-off-by: Pacho Ramos <pacho <AT> gentoo.org>

 .../netatalk/files/netatalk-3.1.12-tracker3.patch  | 136 ++++++++++++++++
 net-fs/netatalk/netatalk-3.1.12-r3.ebuild          | 181 +++++++++++++++++++++
 2 files changed, 317 insertions(+)

diff --git a/net-fs/netatalk/files/netatalk-3.1.12-tracker3.patch b/net-fs/netatalk/files/netatalk-3.1.12-tracker3.patch
new file mode 100644
index 00000000000..bb946364f57
--- /dev/null
+++ b/net-fs/netatalk/files/netatalk-3.1.12-tracker3.patch
@@ -0,0 +1,136 @@
+From a7ff155b4a907af0cb979863758137aa5f8dce3f Mon Sep 17 00:00:00 2001
+From: Andrew Bauer <zonexpertconsulting@outlook.com>
+Date: Sat, 13 Mar 2021 13:16:36 -0600
+Subject: [PATCH] add support for tracker3
+
+---
+ etc/afpd/spotlight.c          | 20 ++++++++++++++++++++
+ etc/spotlight/sparql_parser.c |  2 +-
+ etc/spotlight/sparql_parser.y |  2 +-
+ include/atalk/spotlight.h     |  2 ++
+ macros/netatalk.m4            | 10 +++++++++-
+ 5 files changed, 33 insertions(+), 3 deletions(-)
+
+diff --git a/etc/afpd/spotlight.c b/etc/afpd/spotlight.c
+index 9c8b4700..fa8f8083 100644
+--- a/etc/afpd/spotlight.c
++++ b/etc/afpd/spotlight.c
+@@ -581,6 +581,7 @@ static void slq_dump(void)
+  * Tracker async callbacks
+  ************************************************/
+ 
++#ifndef HAVE_TRACKER3
+ static void tracker_con_cb(GObject      *object,
+                            GAsyncResult *res,
+                            gpointer      user_data)
+@@ -600,6 +601,7 @@ static void tracker_con_cb(GObject      *object,
+ 
+     LOG(log_info, logtype_sl, "connected to Tracker");
+ }
++#endif
+ 
+ static void tracker_cursor_cb(GObject      *object,
+                               GAsyncResult *res,
+@@ -1312,6 +1314,9 @@ int spotlight_init(AFPObj *obj)
+     static bool initialized = false;
+     const char *attributes;
+     struct sl_ctx *sl_ctx;
++#ifdef HAVE_TRACKER3
++    GError *error = NULL;
++#endif
+ 
+     if (initialized) {
+         return 0;
+@@ -1342,8 +1347,23 @@ int spotlight_init(AFPObj *obj)
+     setenv("XDG_CACHE_HOME", _PATH_STATEDIR, 0);
+     setenv("TRACKER_USE_LOG_FILES", "1", 0);
+ 
++#ifdef HAVE_TRACKER3
++    sl_ctx->tracker_con = tracker_sparql_connection_bus_new ("org.freedesktop.Tracker3.Miner.Files",
++							     NULL, NULL, &error);
++
++    if (error) {
++        LOG(log_error, logtype_sl, "Could not connect to Tracker: %s",
++            error->message);
++        sl_ctx->tracker_con = NULL;
++        g_error_free(error);
++        return -1;
++    }
++
++    LOG(log_info, logtype_sl, "connected to Tracker3");
++#else
+     tracker_sparql_connection_get_async(sl_ctx->cancellable,
+                                         tracker_con_cb, sl_ctx);
++#endif
+ 
+     initialized = true;
+     return 0;
+diff --git a/etc/spotlight/sparql_parser.c b/etc/spotlight/sparql_parser.c
+index d6f5d3be..88b868ef 100644
+--- a/etc/spotlight/sparql_parser.c
++++ b/etc/spotlight/sparql_parser.c
+@@ -1455,7 +1455,7 @@ yyparse ()
+         result_limit = "";
+     ssp_result = talloc_asprintf(ssp_slq,
+                                  "SELECT ?url WHERE "
+-                                 "{ %s . ?obj nie:url ?url . FILTER(tracker:uri-is-descendant('file://%s/', ?url)) } %s",
++                                 "{ %s . ?obj nie:isStoredAs ?file . ?file nie:url ?url . FILTER(tracker:uri-is-descendant('file://%s/', ?url)) } %s",
+                                  (yyvsp[(1) - (1)].sval), ssp_slq->slq_scope, result_limit);
+     (yyval.sval) = ssp_result;
+ }
+diff --git a/etc/spotlight/sparql_parser.y b/etc/spotlight/sparql_parser.y
+index 9d609976..5201e3d3 100644
+--- a/etc/spotlight/sparql_parser.y
++++ b/etc/spotlight/sparql_parser.y
+@@ -78,7 +78,7 @@ expr                           {
+         result_limit = "";
+     ssp_result = talloc_asprintf(ssp_slq,
+                                  "SELECT ?url WHERE "
+-                                 "{ %s . ?obj nie:url ?url . FILTER(tracker:uri-is-descendant('file://%s/', ?url)) } %s",
++                                 "{ %s . ?obj nie:isStoredAs ?file . ?file nie:url ?url . FILTER(tracker:uri-is-descendant('file://%s/', ?url)) } %s",
+                                  $1, ssp_slq->slq_scope, result_limit);
+     $$ = ssp_result;
+ }
+diff --git a/include/atalk/spotlight.h b/include/atalk/spotlight.h
+index 0e64b860..19d71009 100644
+--- a/include/atalk/spotlight.h
++++ b/include/atalk/spotlight.h
+@@ -29,8 +29,10 @@
+ #ifdef HAVE_TRACKER
+ #include <gio/gio.h>
+ #include <tracker-sparql.h>
++#ifndef HAVE_TRACKER3
+ #include <libtracker-miner/tracker-miner.h>
+ #endif
++#endif
+ 
+ /******************************************************************************
+  * Spotlight RPC and marshalling stuff
+diff --git a/macros/netatalk.m4 b/macros/netatalk.m4
+index 3bd03ccb..33ba5575 100644
+--- a/macros/netatalk.m4
++++ b/macros/netatalk.m4
+@@ -184,14 +184,22 @@ AC_DEFUN([AC_NETATALK_SPOTLIGHT], [
+         AC_DEFINE(HAVE_TRACKER, 1, [Define if Tracker is available])
+         AC_DEFINE_UNQUOTED(TRACKER_PREFIX, ["$ac_cv_tracker_install_prefix"], [Path to Tracker])
+         AC_DEFINE_UNQUOTED([DBUS_DAEMON_PATH], ["$ac_cv_dbus_daemon"], [Path to dbus-daemon])
++
++        ac_cv_tracker_pkg_version_MAJOR=`echo $ac_cv_tracker_pkg_version | cut -d. -f1`
++        if test $ac_cv_tracker_pkg_version_MAJOR -ge 3 ; then
++          AC_DEFINE(HAVE_TRACKER3, 1, [Define if Tracker3 is used])
++        fi
+     fi
+ 
+     dnl Tracker Managing Command
+     if test x"$ac_cv_have_tracker" = x"yes" ; then
+-        AC_CHECK_PROGS(ac_cv_tracker_manage, tracker tracker-control, , ["$ac_cv_tracker_prefix"/bin])
++        AC_CHECK_PROGS(ac_cv_tracker_manage, tracker tracker3 tracker-control, , ["$ac_cv_tracker_prefix"/bin])
+         if test x"$ac_cv_tracker_manage" = x"tracker" ; then
+            TRACKER_MANAGING_COMMAND="tracker daemon"
+            AC_DEFINE(TRACKER_MANAGING_COMMAND, "tracker daemon", [tracker managing command])
++        elif test x"$ac_cv_tracker_manage" = x"tracker3" ; then
++           TRACKER_MANAGING_COMMAND="tracker3 daemon"
++           AC_DEFINE(TRACKER_MANAGING_COMMAND, "tracker3 daemon", [tracker managing command])
+         elif test x"$ac_cv_tracker_manage" = x"tracker-control" ; then
+            TRACKER_MANAGING_COMMAND="tracker-control"
+            AC_DEFINE(TRACKER_MANAGING_COMMAND, "tracker-control", [tracker managing command])

diff --git a/net-fs/netatalk/netatalk-3.1.12-r3.ebuild b/net-fs/netatalk/netatalk-3.1.12-r3.ebuild
new file mode 100644
index 00000000000..181cdc98f60
--- /dev/null
+++ b/net-fs/netatalk/netatalk-3.1.12-r3.ebuild
@@ -0,0 +1,181 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+AUTOTOOLS_AUTORECONF=yes
+
+inherit autotools flag-o-matic multilib pam systemd
+
+DESCRIPTION="Open Source AFP server"
+HOMEPAGE="http://netatalk.sourceforge.net/"
+SRC_URI="mirror://sourceforge/project/${PN}/${PN}/$(ver_cut 1-3)/${P}.tar.bz2"
+
+LICENSE="GPL-2 BSD"
+SLOT="0/18.0"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
+IUSE="acl cracklib dbus debug kerberos ldap pam pgp quota samba +shadow ssl tracker tcpd zeroconf"
+
+CDEPEND="
+	!app-editors/yudit
+	dev-libs/libevent:0=
+	>=dev-libs/libgcrypt-1.2.3:0
+	sys-apps/coreutils
+	>=sys-libs/db-4.2.52:=
+	sys-libs/tdb
+	acl? (
+		sys-apps/attr
+		sys-apps/acl
+	)
+	cracklib? ( sys-libs/cracklib )
+	dbus? ( sys-apps/dbus dev-libs/dbus-glib )
+	kerberos? ( virtual/krb5 )
+	ldap? ( net-nds/openldap )
+	pam? ( sys-libs/pam )
+	ssl? ( dev-libs/openssl:0= )
+	tcpd? ( sys-apps/tcp-wrappers )
+	tracker? ( app-misc/tracker:3= )
+	zeroconf? ( net-dns/avahi[dbus] )
+"
+RDEPEND="${CDEPEND}"
+DEPEND="${CDEPEND}
+	virtual/yacc
+	sys-devel/flex
+"
+
+RESTRICT="test"
+
+REQUIRED_USE="
+	ldap? ( acl )
+	tracker? ( dbus )"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-3.1.7-gentoo.patch
+	"${FILESDIR}"/${PN}-3.1.8-disable-ld-library-path.patch #564350
+	"${FILESDIR}"/${PN}-3.1.12-my_bool.patch #692560
+	"${FILESDIR}"/${PN}-3.1.12-fno-common.patch #706852
+	# https://sourceforge.net/p/netatalk/patches/147/
+	"${FILESDIR}"/${PN}-3.1.12-tracker3.patch
+)
+
+src_prepare() {
+	default
+	append-flags -fno-strict-aliasing
+
+	sed \
+		-e "s:shell_utils::g" \
+		-i contrib/Makefile.am || die
+
+	eautoreconf
+}
+
+src_configure() {
+	local myeconfargs=()
+
+	# Ignore --with-init-style=gentoo, we install the init.d by hand and we avoid having
+	# to sed the Makefiles to not do rc-update.
+	# TODO:
+	# systemd : --with-init-style=systemd
+	myeconfargs+=(
+		$(use_enable debug)
+		$(use_enable debug debugging)
+		$(use_enable pgp pgp-uam)
+		$(use_enable kerberos)
+		$(use_enable kerberos krbV-uam)
+		$(use_enable quota)
+		$(use_enable tcpd tcp-wrappers)
+		$(use_enable zeroconf)
+		$(use_with acl acls)
+		$(use_with cracklib)
+		$(use_with dbus afpstats)
+		$(use_with ldap)
+		$(use_with pam)
+		$(use_with samba smbsharemodes)
+		$(use_with shadow)
+		$(use_with ssl ssl-dir)
+		$(use_with tracker)
+		$(use_with tracker dbus-daemon "${EPREFIX}/usr/bin/dbus-daemon")
+		$(use_with tracker tracker-pkgconfig-version $(ver_cut 1 $(best_version app-misc/tracker | sed 's:app-misc/tracker-::g')).0)
+		--disable-static
+		--enable-overwrite
+		--disable-krb4-uam
+		--disable-afs
+		--with-libevent-header=/usr/include
+		--with-libevent-lib=/usr/$(get_libdir)
+		--with-bdb=/usr
+		--with-uams-path=/usr/$(get_libdir)/${PN}
+		--with-init-style=gentoo-openrc
+		--without-libevent
+		--without-tdb
+		--with-lockfile=/run/lock/${PN}
+	)
+	econf ${myeconfargs[@]}
+}
+
+src_install() {
+	default
+
+	if use zeroconf; then
+		sed -i -e '/avahi-daemon/s:use:need:g' "${ED}"/etc/init.d/${PN} || die
+	else
+		sed -i -e '/avahi-daemon/d' "${ED}"/etc/init.d/${PN} || die
+	fi
+
+	# The pamd file isn't what we need, use pamd_mimic_system
+	rm -rf "${ED}/etc/pam.d" || die
+
+	if use pam; then
+		pamd_mimic_system netatalk auth account password session
+	fi
+
+	sed \
+		-e "s|:SBINDIR:|${EPREFIX}/usr/sbin|g" \
+		-e "s|:PATH_NETATALK_LOCK:|/run/lock/netatalk|g" \
+		distrib/initscripts/service.systemd.tmpl \
+		> "${T}"/service.systemd || die
+	systemd_newunit "${T}"/service.systemd ${PN}.service
+
+	# no static archives
+	find "${ED}" -name '*.la' -delete || die
+}
+
+pkg_postinst() {
+	local fle v
+	for v in ${REPLACING_VERSIONS}; do
+		if [[ $(ver_test ${v} -lt 3) ]]; then
+			for fle in afp_signature.conf afp_voluuid.conf; do
+				if [[ -f "${ROOT}"/etc/netatalk/${fle} ]]; then
+					if [[ ! -f "${ROOT}"/var/lib/netatalk/${fle} ]]; then
+						mv \
+							"${ROOT}"/etc/netatalk/${fle} \
+							"${ROOT}"/var/lib/netatalk/
+					fi
+				fi
+			done
+
+			elog
+			elog "Starting from version 3.0 only uses a single init script again"
+			elog "Please update your runlevels accordingly"
+			elog
+			elog "Dependencies should be resolved automatically depending on settings"
+			elog "but please report issues with this on https://bugs.gentoo.org/ if"
+			elog "you find any."
+			elog
+			elog "Following config files are obsolete now:"
+			elog "afpd.conf, netatalk.conf, AppleVolumes.default and afp_ldap.conf"
+			elog "in favour of"
+			elog "/etc/afp.conf"
+			elog
+			elog "Please convert your existing configs before you restart your daemon"
+			elog
+			elog "The new AppleDouble default backend is appledouble = ea"
+			elog "Existing entries will be updated on access, but can do an offline"
+			elog "conversion with"
+			elog "dbd -ruve /path/to/Volume"
+			elog
+			elog "For general notes on the upgrade, please visit"
+			elog "http://netatalk.sourceforge.net/3.0/htmldocs/upgrade.html"
+			elog
+			break
+		fi
+	done
+}


             reply	other threads:[~2021-05-08  9:27 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-08  9:27 Pacho Ramos [this message]
  -- strict thread matches above, loose matches on Subject: below --
2020-06-11 13:49 [gentoo-commits] repo/gentoo:master commit in: net-fs/netatalk/, net-fs/netatalk/files/ David Seifert
2016-12-05 15:02 Pacho Ramos
2016-05-11 17:53 Mike Frysinger
2015-10-17 18:58 Doug Goldstein

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=1620466056.67168a3294f56a7c95f4e7cfa76f399efe93850e.pacho@gentoo \
    --to=pacho@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