File dante.spec of Package dante

#
# spec file for package dante
#
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#



Name:           dante
%define lname	libsocks0
BuildRequires:  pam-devel
BuildRequires:  cyrus-sasl-devel
BuildRequires:  libtool
BuildRequires:  autoconf >= 2.61
%if 0%{?suse_version} == 0 || 0%{?suse_version} >= 1000
BuildRequires:  krb5-devel
%endif
Summary:        A Free Socks v4 and v5 Client Implementation
Version:        1.3.2
Release:        1
License:        BSD-3-Clause
Url:            http://www.inet.no/dante/
# http://www.inet.no/dante/files/dante-%%{version}.tar.gz
Source:         dante-%{version}.tar.gz
Source1:        sockd.init
Source2:        baselibs.conf
Source3:        %name-rpmlintrc
Patch:          dante-1.3.2-64bit_portability.patch
Patch2:         dante-1.3.2-sockd_conf_man_format.patch
Patch3:         dante-1.3.2-socksify_man_format.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
Group:          Productivity/Networking/Security
# SuSE series: sec

%description
Dante is a free implementation of the following proxy protocols: socks
version 4, socks version 5 (rfc1928), and msproxy. It can be used as a
firewall between networks. It is being developed by Inferno Nettverk
A/S, a Norwegian consulting company. Commercial support is available.

%package -n %lname
Summary:        A Free Socks v4 and v5 Client Implementation
Group:          Productivity/Networking/Security

%description -n %lname
Dante is a free implementation of the following proxy protocols: socks
version 4, socks version 5 (rfc1928), and msproxy. It can be used as a
firewall between networks. It is being developed by Inferno Nettverk
A/S, a Norwegian consulting company. Commercial support is available.

This package contains the dynamic libraries required to make existing
applications become socks clients.

%package -n dante-server
Provides:       dantesrv = %{version}
Obsoletes:      dantesrv < %{version}
Summary:        A Free Socks v4/v5 Server Implementation
Group:          Productivity/Networking/Other
Requires:       dante
PreReq:         %insserv_prereq %fillup_prereq

%description -n dante-server
This package contains the socks proxy daemon and its documentation. The
sockd is the server part of the Dante socks proxy package and allows
socks clients to connect through it to the network.

%package -n dante-devel
Provides:       dantedev = %{version}
Obsoletes:      dantedev < %{version}
Summary:        Include Files and Libraries mandatory for Development
Group:          Development/Libraries/C and C++
Requires:       %lname = %version

%description -n dante-devel
This package contains all necessary include files and libraries needed
to develop applications that require these.

%prep
%setup -q
%patch
%patch2
%patch3
%{?suse_update_config:%{suse_update_config -l -f}}

%build
DANTELIBC=`find /%{_lib}/ -maxdepth 1 -iname "libc.so.*"`
echo >> acinclude.m4
autoreconf --force --install --verbose
CFLAGS="${RPM_OPT_FLAGS} -fno-strict-aliasing" \
%configure --disable-static --with-pic --enable-shared --with-libc=$DANTELIBC
make %{?_smp_mflags} V=1

%install
make install DESTDIR=${RPM_BUILD_ROOT}
#set library as executable - prevent ldd from complaining
chmod +x ${RPM_BUILD_ROOT}%{_libdir}/*.so.*.*
install -d 	${RPM_BUILD_ROOT}/etc/init.d \
	   	${RPM_BUILD_ROOT}%{prefix}/bin \
	   	${RPM_BUILD_ROOT}%{prefix}/usr/sbin
install -m 644 example/socks.conf ${RPM_BUILD_ROOT}/etc
install -m 644 example/sockd.conf ${RPM_BUILD_ROOT}/etc
install -m 755 %{S:1}	 	${RPM_BUILD_ROOT}/etc/init.d/sockd
ln -sf          ../../etc/init.d/sockd	${RPM_BUILD_ROOT}/usr/sbin/rcsockd
#
# fix bug #23141
#
mv ${RPM_BUILD_ROOT}/usr/bin/socksify ${RPM_BUILD_ROOT}/usr/bin/socksify.old
#
%ifarch alpha
sed -e 's|libdl.so|/lib/libdl.so.2.1|' < ${RPM_BUILD_ROOT}/usr/bin/socksify.old > ${RPM_BUILD_ROOT}/usr/bin/socksify
%else
sed -e 's|libdl.so|/%{_lib}/libdl.so.2|' < ${RPM_BUILD_ROOT}/usr/bin/socksify.old > ${RPM_BUILD_ROOT}/usr/bin/socksify
%endif
#
rm ${RPM_BUILD_ROOT}/usr/bin/socksify.old
%{__rm} -f %{buildroot}%{_libdir}/*.la

%__rm Makefile* SPECS/Makefile*

%preun -n dante-server
%stop_on_removal

%post -n %lname -p /sbin/ldconfig

%postun -n %lname -p /sbin/ldconfig

%post -n dante-server
%{fillup_and_insserv sockd}

%postun -n dante-server
%{insserv_cleanup}
%restart_on_update

%files
%defattr(-,root,root)
#files beginning with two capital letters are docs: BUGS, README.foo etc.
%doc [A-Z][A-Z]*
%{_libdir}/libdsocks.so
%attr(755,root,root) %{_bindir}/socksify
%doc %{_mandir}/man1/socksify.1.gz
%doc %{_mandir}/man5/socks.conf.5.gz
%config(noreplace) /etc/socks.conf

%files -n %lname
%defattr(-,root,root)
%{_libdir}/libsocks.so.0.1.1
%{_libdir}/libsocks.so.0

%files -n dante-server
%defattr(-,root,root)
#doc [A-Z][A-Z]*
%doc %{_mandir}/man8/sockd.8.gz
%doc %{_mandir}/man5/sockd.conf.5.gz
%attr(755,root,root) %{_sbindir}/sockd
%config(noreplace) /etc/sockd.conf
%attr(755,root,root) /etc/init.d/sockd
/usr/sbin/rcsockd

%files -n dante-devel
%defattr(-,root,root)
#doc [A-Z][A-Z]*
%{_libdir}/libsocks.so
%{_includedir}/*.h

%changelog