[sisyphus] netatalk+sisyphus

Michael Shigorin =?iso-8859-1?q?mike_=CE=C1_osdn=2Eorg=2Eua?=
Сб Мар 24 23:08:12 MSK 2007


On Fri, Mar 23, 2007 at 07:52:11PM +0300, Sergey Kurakin wrote:
> > > У меня netatalk с этим патчем работает под Сизифом почти
> > > уже два года без нареканий.
> > Сергей, и Вы молчали? :-)
> Ну да. Ведь кроме меня пакет никому не был нужен.

Как видите, это не так. :-)

> Может, с вашей помощью что-нибудь получится.

Пока обломался, причём знал же заранее -- надо ещё инитскрипт
переписать.

> > переберу и закину в incoming, но предлагаю Вам с Владимиром
> > скооперироваться да поддерживать пакет. (майнтейнер -- это не
> > так страшно, если не увлекаться и не хвататься за что попало
> > со всеми вытекающими)
> Да, Михаил, я не раз об этом думал, читая ваши призывы. 
> Отмазки у меня стандартные, мы уже видели их в этом списке: 
> недостаток времени, неуверенность в собственных силах, 
> ответственность за пользователей пакета. Но кажется, на этот 
> раз я что-нибудь попробую...

Мне тоже было страшновато, да и сейчас бывает неудобно.
Помогает понимание того, что если что-то нужно именно мне, то:

- лучше сам и займусь обеспечением;
- лучше хотя бы анонсирую, а лучше обеспечу наличие
  в дистрибутиве:
  - больше шансов, что будет под рукой при надобности;
  - больше шансов, что кому ещё пригодится (глядишь, помогут).

На самом деле будет гораздо лучше, если у нас получится практика
ленивого майнтейнерства, когда человек может спокойно заниматься
своими одним-двумя-пятью пакетами, которые всё равно нужны для
работы или для себя -- чем если даже у нас появится ещё один
Геракл вроде Виталика Липатова, который оптимизирует процессы
и справляется за батальон.

> > Чуть поправил спек (приложен), проверил собираемость и
> > заливаю.
> Спасибо. Спека, правда, не вижу. Но ничего, посмотрю, 
> когда/если пакет доберется до Сизифа.

Это я так приложил... а пакет сегодня не доберётся, инитскрипт
же не прошёл sisyphuc_check (использует "старые" редхатовские
функции вместо "новых" дебианообразных, причём знал-знал да
забыл поправить).

Недопереписанный initscript и немного подпиленный specfile
_прилагаю_ (см. тж. /etc/init.d/template на M24+).  Постараюсь
добить и проверить, но если успеете быстрее -- тоже хорошо.

> > > Патч для сборки с libdb4.4 я сделал в свое время "методом
> > > тыка". Если будет возможность, посмотрите пожалуйста, не
> > > таит ли он в себе какой-нибудь опасности.
> > Боюсь, я ещё менее компетентен -- "работает, и ладно".
> Насколько я понял, в libdb4.4 (или 4.3 -- точно не помню) в 
> методе __db->stat() изменилось количество параметров.

Ну да.

> Появился еще один, для флага. Я интуитивно (то есть наобум ;)
> поставил туда флаг DB_STAT_ALL, который нашел в db.h
> неподалеку. 
> 
> -    ret = db->stat(db, &sp, 0);
> +    ret = db->stat(db, &sp, 0, DB_STAT_ALL);
> 
> Интересно, я угадал?

Это лучше ldv@ спросить.

> Проверьте, пожалуйста, как там обстоят дела с авторизацией. 

Если руки дойдут -- уйма всего откладывалась-откладывалась
по разным сторонним причинам, а тут блокирующие факторы один
за другим пошли решаться.  Соответственно успевай поворачиваться
:-)

Но если вообще поедет -- то дальше сервису светит заталкивание
в openvz, что само по себе бывает отдельным развлечением.
Оно же бродкасты использует небось на IP?

-- 
 ---- WBR, Michael Shigorin <mike на altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/
----------- следующая часть -----------
%define build_static 0

Name: netatalk
Version: 2.0.3
Release: alt2

Summary: AppleTalk networking programs
License: BSD
Group: Networking/Other

Url: http://netatalk.sourceforge.net
Source: %name-%version.tar.bz2
Patch0: %name-%version-db.patch
Packager: Michael Shigorin <mike на altlinux.org>

# Automatically added by buildreq on Fri Mar 23 2007
BuildRequires: libdb4-devel libpam-devel libssl-devel libwrap-devel

%description
This package enables Linux to talk to Macintosh computers via the
AppleTalk networking protocol. It allows Linux to act as a file server
over AppleTalk or IP for Macs.

%package devel
Summary: Headers and shared libraries for AppleTalk development
Group: Development/C
Requires: %name = %version-%release
Requires: libpam-devel libssl-devel libwrap-devel libacl-devel libattr-devel automake-common

%description devel
This package contains the header files and shared libraries for building
AppleTalk networking programs

%if %build_static
%package devel-static
Summary: Static libraries for AppleTalk development
Group: Development/C
Requires: %name-devel = %version-%release

%description devel-static
This package contains static libraries for building
AppleTalk networking programs
%endif

%prep
%setup -n %name-%version
%patch0 -p1

%build
%set_automake_version 1.9
%set_autoconf_version 2.5
%set_libtool_version 1.5
%configure \
	--with-pam=yes \
	--enable-redhat \
	--with-shadow \
	--enable-fhs \
	--with-did=last \
	--enable-acl \
%if %build_static
	--enable-static
%else   
	--disable-static
%endif
%make_build

%install
mkdir -p %buildroot{%_sysconfdir/{netatalk,pam.d},%_initdir,%_libdir/netatalk}
mkdir -p %buildroot{%_man1dir,%_man3dir,%_man4dir,%_man8dir}
%make_install install DESTDIR=%buildroot
rm -f %buildroot%_bindir/acleandir.rc
rm -f %buildroot%_includedir/netatalk/at.h

%post
%post_service atalk

%preun
%preun_service atalk

%files
%doc CONTRIBUTORS COPYRIGHT README TODO VERSION NEWS 
%doc doc/DEVELOPER doc/FAQ doc/README.* doc/Netatalk-Manual.* doc/htmldocs
%dir %_sysconfdir/%name
%dir %_libdir/%name
%_bindir/*
%_sbindir/*
%_mandir/*
%_libdir/%name/*.so
%_libdir/psa
%_libdir/psf
%_libdir/if*
%_libdir/of*
%_libdir/tf*
%_libdir/*.sh
%config %_sysconfdir/%name/*
%config %_initdir/atalk
%config %_sysconfdir/pam.d/netatalk
%dir %_datadir/%name/
%_datadir/%name/*

%files devel
%dir %_includedir/atalk
%dir %_includedir/netatalk
%_libdir/libatalk.*
%_includedir/atalk/*
%_includedir/netatalk/*
%_datadir/aclocal/*

%if %build_static
%files devel-static
#_libdir/%name/*.la
%_libdir/%name/*.a
%endif

%changelog
* Fri Mar 23 2007 Michael Shigorin <mike на altlinux.org> 2.0.3-alt2
- built for ALT Linux Sisyphus; based on spec+patch by Sergey Kurakin
  (in its turn based on ApplianceWare 1.5.x package)
- introduced devel-static subpackage (not built by default)
- added devel subpackages Requires: (based on 1.5.3-alt13)
- minor spec cleanup
- buildreq

* Thu Mar 22 2007 Sergey Kurakin <kurakin на quittance.ru> 2.0.3-alt1.3
- just rebuild
* Sun Apr  2 2006 Sergey Kurakin <kurakin на actdesign.com> 2.0.3-alt1.2
- rebuild
* Mon Jun 13 2005 Sergey Kurakin <kurakin на actdesign.com> 2.0.3-alt1
- new version
* Sat Jun 11 2005 Sergey Kurakin <kurakin на actdesign.com> 2.0.1-alt3
- rebuild
* Sat Feb 26 2005 Sergey Kurakin <kurakin на actdesign.com> 2.0.1-alt2
- rebuild with libdb4.3
* Sun Oct 31 2004 Sergey Kurakin <kurakin на actdesign.com> 2.0.1-alt1
- new version
- added documentation
* Mon Jul 26 2004 Sergey Kurakin <kurakin на actdesign.com> 2.0-beta2
- new version
* Fri Oct 31 2003 Alexander Bokovoy <ab на altlinux.ru> 1.5.3-alt4
- Build for ALT Linux Sisyphus

----------- следующая часть -----------
#!/bin/sh
#
# netatalk     AppleTalk services
# description: This package enables Linux to talk to Macintosh
#              computers via the AppleTalk networking protocol and 
#              provides printer, file sharing, and AppleTalk routing 
#              services.   
#
# AppleTalk services. Make sure not to start atalkd in the background:
# its data structures must have time to stablize before running the
# other processes.
#
# chkconfig: - 91 35
# processname: atalkd
# config: /etc/netatalk/netatalk.conf
# pidfile: /var/run/atalkd.pid

# Do not load RH compatibility interface.
WITHOUT_RC_COMPAT=1

# Source function library.
. /etc/init.d/functions

RETVAL=0

# Source networking configuration.
SourceIfNotEmpty /etc/sysconfig/network

# Check that networking is up.
[ $NETWORKING = "no" ] && exit 0

ATALK_CONF=/etc/netatalk/netatalk.conf
# test for and read in netatalk configuration
[ -f $ATALK_CONF ] || exit 0
. $ATALK_CONF

ATALKD=/usr/sbin/atalkd
AFPD=/usr/sbin/afpd
PAPD=/usr/sbin/papd
NBPREG=/usr/bin/nbprgstr
NBPUNREG=/usr/bin/nbpunrgstr
LOCKFILE=/var/lock/subsys/atalk
# not sure about pidfile
PIDFILE=/var/run/atalkd.pid

[ -x $ATALKD -a -x $AFPD -a -x $PAPD -a -x $NBPREG -a -x $NBPUNREG ] || exit 0

# Quickly probe for appletalk and warn if we can't find it
if [ ! -f /proc/net/appletalk ]; then
	/sbin/modprobe appletalk || echo "[could not load appletalk module]"
fi

start()
{
	# merge atalk_startup() from atalk.init here
	start_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --expect-user root -- atalkd
	RETVAL=$?
	return $RETVAL
}

stop()
{
	stop_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --expect-user root -- atalkd
	RETVAL=$?
	return $RETVAL
}

restart()
{
	stop
	start
}

reload()
{
	msg_reloading atalkd
	stop_daemon --pidfile "$PIDFILE" --expect-user root -HUP -- atalkd
	RETVAL=$?
	return $RETVAL
} 

# See how we were called.
case "$1" in
	start)
		start
		;;
	stop)
		stop
		;;
	reload)
		reload
		;;
	restart)
		restart
		;;
	condstop)
		if [ -e "$LOCKFILE" ]; then
			stop
		fi
		;;
	condrestart)
		if [ -e "$LOCKFILE" ]; then
			restart
		fi
		;;
	condreload)
		if [ -e "$LOCKFILE" ]; then
			reload
		fi
		;;
	status)
		status --pidfile "$PIDFILE" --expect-user root -- atalkd
		RETVAL=$?
		;;
	*)
		msg_usage "${0##*/} {start|stop|reload|restart|condstop|condrestart|condreload|status}"
		RETVAL=1
esac

exit $RETVAL


Подробная информация о списке рассылки Sisyphus