[Buildroot] [PATCH] Add Netatalk
Maxime Hadjinlian
maxime.hadjinlian at gmail.com
Wed Apr 25 08:24:50 UTC 2012
This patch add the Netatalk package to Buildroot, it also update the Berkeley
DB package as it was required by Netatalk. I did not go extensively through
the configure option but they works for me.
Note : I must add that I had a strange problem while building. I have the
openssl-dev package on my machine (Debian testing) and Buildroot did not
built openssl package, later the build of Netatalk complained about my
/usr/include/openssl/ folder (which is obviously, not correct). After moving
this folder to openssl.old (on my machine not the staging dir), Buildroot
built openssl and Netatalk was happy. I don't know what happened there but,
you are informed.
Also, a big thanks to Maxime Ripad for his help and for introducing me to
buildroot :)
Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian at gmail.com>
---
package/Config.in | 1 +
package/berkeleydb/berkeleydb.mk | 3 +-
package/netatalk/Config.in | 11 +++
package/netatalk/S50netatalk | 152 ++++++++++++++++++++++++++++++++++++++
package/netatalk/netatalk.mk | 33 +++++++++
5 files changed, 198 insertions(+), 2 deletions(-)
create mode 100644 package/netatalk/Config.in
create mode 100755 package/netatalk/S50netatalk
create mode 100644 package/netatalk/netatalk.mk
diff --git a/package/Config.in b/package/Config.in
index 5ae1c81..7c19ed9 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -487,6 +487,7 @@ source "package/netcat/Config.in"
source "package/netkitbase/Config.in"
source "package/netkittelnet/Config.in"
endif
+source "package/netatalk/Config.in"
source "package/netplug/Config.in"
source "package/netsnmp/Config.in"
source "package/netstat-nat/Config.in"
diff --git a/package/berkeleydb/berkeleydb.mk b/package/berkeleydb/berkeleydb.mk
index ed70486..3d57852 100644
--- a/package/berkeleydb/berkeleydb.mk
+++ b/package/berkeleydb/berkeleydb.mk
@@ -3,7 +3,7 @@
# berkeley db
#
#############################################################
-BERKELEYDB_VERSION:=4.4.20
+BERKELEYDB_VERSION:=5.3.15
BERKELEYDB_SITE:=http://download.oracle.com/berkeley-db
BERKELEYDB_SOURCE:=db-$(BERKELEYDB_VERSION).NC.tar.gz
BERKELEYDB_SUBDIR=build_unix
@@ -33,7 +33,6 @@ define BERKELEYDB_CONFIGURE_CMDS
--with-gnu-ld \
--disable-cxx \
--disable-java \
- --disable-rpc \
--disable-tcl \
--disable-compat185 \
$(SHARED_STATIC_LIBS_OPTS) \
diff --git a/package/netatalk/Config.in b/package/netatalk/Config.in
new file mode 100644
index 0000000..5adbce9
--- /dev/null
+++ b/package/netatalk/Config.in
@@ -0,0 +1,11 @@
+config BR2_PACKAGE_NETATALK
+ bool "netatalk"
+ select BR2_PACKAGE_BERKELEYDB
+ select BR2_PACKAGE_OPENSSL
+ select BR2_PACKAGE_LIBGCRYPT
+ select BR2_PACKAGE_LIBGPG_ERROR
+ help
+ Netatalk can be used to turn a *NIX machine into an extremely
+ high-performance and reliable file server for Macintosh computers.
+
+ http://netatalk.sourceforge.net/
diff --git a/package/netatalk/S50netatalk b/package/netatalk/S50netatalk
new file mode 100755
index 0000000..c46f58f
--- /dev/null
+++ b/package/netatalk/S50netatalk
@@ -0,0 +1,152 @@
+#!/bin/sh
+### BEGIN INIT INFO
+# Provides: netatalk
+# Required-Start: $remote_fs $syslog
+# Should-Start: avahi-daemon
+# Required-Stop: $remote_fs $syslog
+# Default-Start: 2 3 4 5
+# Default-Stop: 1
+### END INIT INFO
+#
+# netatalk Netatalk 2.2.2 initscript
+# Author: Thomas Kaiser <Thomas.Kaiser at phg-online.de>
+
+set -e
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DESC="Netatalk"
+NAME=netatalk
+SCRIPTNAME=/etc/init.d/$NAME
+
+# Guard to prevent execution if netatalk was removed.
+test -x /usr/sbin/afpd || exit 0
+
+# Set defaults. Please change these options in /etc/default/netatalk
+ATALK_NAME=`/bin/hostname`
+ATALK_UNIX_CHARSET='LOCALE'
+ATALK_MAC_CHARSET='MAC_ROMAN'
+
+CNID_METAD_RUN=yes
+AFPD_RUN=yes
+AFPD_MAX_CLIENTS=50
+AFPD_UAMLIST="-U uams_dhx2.so,uams_clrtxt.so"
+AFPD_GUEST=nobody
+CNID_CONFIG="-l log_note"
+
+ATALKD_RUN=no
+PAPD_RUN=no
+TIMELORD_RUN=no
+#A2BOOT_RUN=no
+ATALK_ZONE=
+ATALK_BGROUND=no
+
+# old /etc/default/netatalk expected hostname in $HOSTNAME by default
+HOSTNAME=`/bin/hostname`
+
+# Read in netatalk configuration.
+if [ -f /etc/default/netatalk ]; then
+ . /etc/default/netatalk
+fi
+
+# Start Netatalk servers.
+atalk_startup() {
+ if [ x"$ATALKD_RUN" = x"yes" ]; then
+
+ # Try to load the AppleTalk kernel module if it was intended.
+ if grep -q '^appletalk$' /etc/modules; then
+ /sbin/modprobe appletalk || echo "[could not load appletalk module]"
+ fi
+
+ # Start atalkd server.
+ /usr/sbin/atalkd
+
+ # register workstation
+ /usr/bin/nbprgstr -p 4 "$ATALK_NAME:Workstation$ATALK_ZONE"
+ /usr/bin/nbprgstr -p 4 "$ATALK_NAME:netatalk$ATALK_ZONE"
+
+ echo -n " atalkd"
+ fi
+
+ # prepare startup of file services
+ if [ "x$CNID_METAD_RUN" = "xyes" -a -x /usr/sbin/cnid_metad ] ; then
+ echo -n " cnid_metad"
+ /usr/sbin/cnid_metad $CNID_CONFIG
+ fi
+
+ if [ x"$AFPD_RUN" = x"yes" ]; then
+ /usr/sbin/afpd $AFPD_UAMLIST -g $AFPD_GUEST -c $AFPD_MAX_CLIENTS \
+ -n "$ATALK_NAME$ATALK_ZONE"
+ echo -n " afpd"
+ fi
+
+ if [ "x$ATALKD_RUN" = "xyes" ]; then
+ if [ "x$PAPD_RUN" = "xyes" ]; then
+ /usr/sbin/papd
+ echo -n " papd"
+ fi
+
+ if [ x"$TIMELORD_RUN" = x"yes" ]; then
+ /usr/sbin/timelord
+ echo -n " timelord"
+ fi
+ fi
+}
+
+case "$1" in
+ start)
+ if [ "x$ATALK_BGROUND" = "xyes" -a "x$ATALKD_RUN" = "xyes" ]; then
+ echo "Starting Netatalk services in the background."
+ atalk_startup >/dev/null &
+ else
+ echo -n "Starting Netatalk services (this will take a while): "
+ atalk_startup
+ echo "."
+ fi
+ ;;
+
+ stop)
+ echo -n "Stopping Netatalk Daemons:"
+ echo -n " afpd"
+ start-stop-daemon --stop --quiet --oknodo --exec /usr/sbin/afpd
+
+ echo -n " cnid_metad"
+ start-stop-daemon --stop --quiet --oknodo --exec /usr/sbin/cnid_metad
+
+ if test -x /usr/sbin/papd; then
+ echo -n " papd"
+ start-stop-daemon --stop --quiet --oknodo --exec /usr/sbin/papd
+ fi
+
+ if test -x /usr/sbin/timelord; then
+ echo -n " timelord"
+ start-stop-daemon --stop --quiet --oknodo --exec /usr/sbin/timelord
+ fi
+
+ if test -x /usr/sbin/atalkd; then
+ echo -n " atalkd"
+ start-stop-daemon --stop --quiet --oknodo --exec /usr/sbin/atalkd
+ fi
+
+ echo "."
+ ;;
+
+ restart)
+ $0 force-reload
+ ;;
+
+ force-reload)
+ echo -n "Restarting Netatalk Daemons (this will take a while)"
+ $0 stop
+ echo -n "."
+ sleep 2
+ echo -n "."
+ if $0 start; then
+ echo "done."
+ fi
+ ;;
+
+ *)
+ echo "Usage: $0 {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
diff --git a/package/netatalk/netatalk.mk b/package/netatalk/netatalk.mk
new file mode 100644
index 0000000..f370136
--- /dev/null
+++ b/package/netatalk/netatalk.mk
@@ -0,0 +1,33 @@
+#############################################################
+#
+# netatalk
+#
+#############################################################
+NETATALK_VERSION = 2.2.2
+NETATALK_SITE = http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/netatalk/netatalk/$(NETATALK_VERSION)/
+NETATALK_SOURCE = netatalk-$(NETATALK_VERSION).tar.bz2
+NETATALK_CFLAGS += -DNO_DEBUG
+
+NETALATK_DEPENDENCIES = openssl berkeleydb libgcrypt libgpg-error
+NETATALK_CONF_OPT += --sysconfdir=/etc \
+ --with-cnid-cdb-backend \
+ --disable-cups \
+ --with-bdb=${STAGING_DIR}/usr \
+ --disable-cups \
+ --disable-zeroconf \
+ --with-ssl-dir=$(STAGING_DIR)/usr \
+ --with-libgcrypt-dir=$(STAGING_DIR)/usr \
+ --with-shadow \
+ --disable-shell-check \
+ --without-pam \
+ --prefix=$(STAGING_DIR)
+
+define NETATALK_INSTALL_EXTRA_FILES
+ [ -f $(TARGET_DIR)/etc/init.d/S50netatalk ] || \
+ $(INSTALL) -m 0755 -D package/netatalk/S50netatalk \
+ $(TARGET_DIR)/etc/init.d/S50netatalk
+endef
+
+NETATALK_POST_INSTALL_TARGET_HOOKS += NETATALK_INSTALL_EXTRA_FILES
+
+$(eval $(call AUTOTARGETS))
--
1.7.10
More information about the buildroot
mailing list