Blob Blame History Raw
# User management -- https://fedoraproject.org/wiki/PackageUserCreation
%bcond_without      fedora
# Need to register in https://fedoraproject.org/wiki/PackageUserRegistry
%global uid     52
# Do no change username -- hardcoded in dictd.c
%global username    dictd
%global homedir     %{_datadir}/dict/dictd
%global gecos       dictd dictionary server
%define libmaaVersion 1.3.0
Summary:   DICT protocol (RFC 2229) server and command-line client
Name:      dictd
Version:   1.12.0
Release:   5%{?dist}
License:   GPL+ and zlib and MIT
Group:     Applications/Internet
Source0:   http://downloads.sourceforge.net/dict/%{name}-%{version}.tar.gz
Source1:   dictd.service
Source2:   libmaa-%{libmaaVersion}.tar.gz
Patch0:    dictd-1.12.0-unusedvar.patch
URL:       http://www.dict.org/
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires:   flex bison libtool libtool-libs libtool-ltdl-devel byacc
BuildRequires:   libdbi-devel, zlib-devel, gawk
BuildRequires:  fedora-usermgmt-devel
%{?FE_USERADD_REQ}

%description
Command-line client for the DICT protocol.  The Dictionary Server
Protocol (DICT) is a TCP transaction based query/response protocol that
allows a client to access dictionary definitions from a set of natural
language dictionary databases.

%package server
Summary: Server for the Dictionary Server Protocol (DICT)
Group: System Environment/Daemons
#Requires(post):  chkconfig
#Requires(preun): chkconfig
#Requires(postun): initscripts
Requires(post): systemd-units
Requires(preun): systemd-units
Requires(postun): systemd-units
%description server
A server for the DICT protocol. You need to install dictd-usable databases
befor you can use this server. Those can be found p.e. at 
ftp://ftp.dict.org/pub/dict/pre/
More information can be found in the INSTALL file in this package.

%prep
%setup -q
tar xzf %{SOURCE2}
mv libmaa-%{libmaaVersion} libmaa
%patch0 -p1 -b .unusedvar

%build
pushd libmaa
./configure
make
popd

export CFLAGS="$RPM_OPT_FLAGS"
export LDFLAGS='-Llibmaa/.libs' CPPFLAGS='-Ilibmaa'
%configure --enable-dictorg --disable-plugin
make %{?_smp_mflags}

%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig
mkdir -p $RPM_BUILD_ROOT%{_unitdir}
mkdir -p $RPM_BUILD_ROOT%{homedir}
install -m 755 %{SOURCE1} $RPM_BUILD_ROOT/%{_unitdir}/dictd.service
cat <<EOF > $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/dictd
# Secure by default: --listen-to 127.0.0.1
# Remove this option if you want dictd to answer remote clients.
DICTD_FLAGS='--listen-to 127.0.0.1'
EOF
cat <<EOF > $RPM_BUILD_ROOT/%{_sysconfdir}/dictd.conf
global {
    #syslog
    #syslog_facility daemon
}

# Add database definitions here...

# We stop the search here
database_exit

# Add hidden database definitions here...

EOF


%clean
rm -rf $RPM_BUILD_ROOT

%post server
#if [ $1 = 1 ]; then
#   /sbin/chkconfig --add dictd
#fi
if [ $1 -eq 1 ] ; then 
    # Initial installation 
    /bin/systemctl daemon-reload >/dev/null 2>&1 || :
fi


%preun server
#if [ $1 = 0 ]; then
#   # Stop the service (otherwise userdel will fail)
#   /etc/rc.d/init.d/dictd stop &>/dev/null || :
#   /sbin/chkconfig --del dictd
#fi
if [ $1 -eq 0 ] ; then
    # Package removal, not upgrade
    /bin/systemctl --no-reload disable dictd.service > /dev/null 2>&1 || :
    /bin/systemctl stop dictd.service > /dev/null 2>&1 || :
fi


%postun server
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
if [ $1 -ge 1 ] ; then
    #/sbin/service dictd condrestart > /dev/null 2>&1 || :
    # Package upgrade, not uninstall
    /bin/systemctl try-restart dictd.service >/dev/null 2>&1 || :
else
   %__fe_userdel  %username &>/dev/null || :
   %__fe_groupdel %username &>/dev/null || :
fi

%pre
if [ $1 = 1 ]; then
    %__fe_groupadd %uid -r %username &>/dev/null || :
    %__fe_useradd  %uid -r -s /sbin/nologin -d %homedir -M -c '%gecos' -g %username %username &>/dev/null || :
fi

%triggerun -- dictd-server < 1.12.0-3
# Save the current service runlevel info
# User must manually run systemd-sysv-convert --apply httpd
# to migrate them to systemd targets
/usr/bin/systemd-sysv-convert --save dictd >/dev/null 2>&1 ||:

# Run these because the SysV package being removed won't do them
/sbin/chkconfig --del dictd >/dev/null 2>&1 || :
/bin/systemctl try-restart dictd.service >/dev/null 2>&1 || :


%files
%defattr(-,root,root,-)
%doc ANNOUNCE COPYING ChangeLog README doc/rfc2229.txt doc/security.doc
%doc examples/dict1.conf
%{_bindir}/dict
%{_mandir}/man1/dict.1*


%files server
%doc ANNOUNCE COPYING INSTALL ChangeLog README doc/rfc2229.txt doc/security.doc
%doc examples/dictd*
%exclude %{_mandir}/man1/dict.1*
%exclude %{_bindir}/dict
%{_bindir}/*
%{_sbindir}/*
%{_mandir}/man?/*
%{_unitdir}/dictd.service
%{homedir}
%config(noreplace) %{_sysconfdir}/sysconfig/dictd
%config(noreplace) %{_sysconfdir}/dictd.conf

%changelog
* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.12.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild

* Wed Jul 18 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.12.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild

* Tue Feb 14 2012 Jon Ciesla <limburgher@gmail.com> - 1.12.0-3
- Migrate to systemd, BZ 772085.

* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.12.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild

* Mon Jul 04 2011 Karsten Hopp <karsten@redhat.com> 1.12.0-1
- update to version 1.12.0
- split into server and client packages
- add most of Oron Peled's <oron@actcom.co.il> changes from 
  https://bugzilla.redhat.com/attachment.cgi?id=381332
  - The daemon now runs as 'dictd' user. This user is added/remove
    during install/uninstall.
  - Create and own a default configuration file
  - By default listen only on 127.0.0.1 (secure by default)
  - Default directory for dictionaries (datadir) is
    now /usr/share/dict/dictd and not /usr/share
  - Add the examples directory to the documentation

* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.11.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.11.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild

* Tue Feb 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.11.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild

* Wed Jan 28 2009 Karsten Hopp <karsten@redhat.com> 1.11.0-3
- add disttag

* Thu Jan 22 2009 Karsten Hopp <karsten@redhat.com> 1.11.0-2
- add postun script (#225694)
- fix file permissions (defattr)

* Wed Jan 14 2009 Karsten Hopp <karsten@redhat.com> 1.11.0-1
- update

* Wed Jul 16 2008 Tom "spot" Callaway <tcallawa@redhat.com> 1.10.11-3
- fix license tag

* Wed May 07 2008 Karsten Hopp <karsten@redhat.com> 1.10.11-2
- update to 1.10.11

* Tue Apr 01 2008 Karsten Hopp <karsten@redhat.com> 1.10.10-1
- fix typo (#281981)
- update

* Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 1.10.9-2
- Autorebuild for GCC 4.3

* Wed Aug 22 2007 Karsten Hopp <karsten@redhat.com> 1.10.9-1
- new upstream version

* Wed Aug 22 2007 Karsten Hopp <karsten@redhat.com> 1.9.15-11
- update license tag and rebuild

* Mon Aug 13 2007 Karsten Hopp <karsten@redhat.com> 1.9.15-10
- add LSB stuff (#246910)

* Wed Feb 21 2007 Karsten Hopp <karsten@redhat.com> 1.9.15-9
- misc. merge review fixes

* Wed Jul 12 2006 Jesse Keating <jkeating@redhat.com> - 1.9.15-8.1
- rebuild

* Mon May 22 2006 Karsten Hopp <karsten@redhat.de> 1.9.15-8
- buildrequires zlib-devel

* Thu May 18 2006 Karsten Hopp <karsten@redhat.de> 1.9.15-7
- Buildrequires: libdbi-devel

* Mon Feb 20 2006 Karsten Hopp <karsten@redhat.de> 1.9.15-6
- BuildRequires: byacc

* Fri Feb 10 2006 Jesse Keating <jkeating@redhat.com> - 1.9.15-5.2
- bump again for double-long bug on ppc(64)

* Tue Feb 07 2006 Jesse Keating <jkeating@redhat.com> - 1.9.15-5.1
- rebuilt for new gcc4.1 snapshot and glibc changes

* Mon Jan 02 2006 Karsten Hopp <karsten@redhat.de> 1.9.15-5
- add BuildRequires libtool-ltdl-devel (#176505)

* Tue Dec 20 2005 Karsten Hopp <karsten@redhat.de> 1.9.15-4
- consult dict.org if no server is specified on the commandline
  (#176038)

* Mon Dec 12 2005 Karsten Hopp <karsten@redhat.de> 1.9.15-3
- rebuild with gcc-4.1

* Tue Jul 12 2005 Karsten Hopp <karsten@redhat.de> 1.9.15-2
- Buildrequires libtool (ltdl.h)

* Wed Jul 06 2005 Karsten Hopp <karsten@redhat.de> 1.9.15-1
- update to dictd-1.9.15
- drop gcc34 patch

* Mon May 02 2005 Karsten Hopp <karsten@redhat.de> 1.9.7-9
- use _bindir / _sysconfdir macros

* Sat Apr 02 2005 Florian La Roche <laroche@redhat.com>
- /etc/init.d -> /etc/rc.d/init.d


* Thu Mar 10 2005 Bill Nottingham <notting@redhat.com> 1.9.7-7
- prereq chkconfig

* Wed Mar 02 2005 Karsten Hopp <karsten@redhat.de> 1.9.7-6
- build with gcc-4

* Tue Jan 25 2005 Karsten Hopp <karsten@redhat.de> 1.9.7-5 
- don't install config file, leave it to the dictionary packages to
  populate it. (#135920)

* Mon Oct 04 2004 Karsten Hopp <karsten@redhat.de> 1.9.7-4 
- add initscript

* Sat Jun 19 2004 Karsten Hopp <karsten@redhat.de> 1.9.7-3 
- fix build with gcc34

* Tue Jun 15 2004 Elliot Lee <sopwith@redhat.com>
- rebuilt

* Wed Jun 02 2004 Karsten Hopp <karsten@redhat.de> 1.9.7-1 
- update

* Fri Feb 13 2004 Elliot Lee <sopwith@redhat.com>
- rebuilt

* Wed Jun 04 2003 Elliot Lee <sopwith@redhat.com>
- rebuilt

* Wed Jan 22 2003 Tim Powers <timp@redhat.com>
- rebuilt

* Mon Nov 18 2002 Tim Powers <timp@redhat.com>
- build on all arches

* Fri Jun 21 2002 Tim Powers <timp@redhat.com>
- automated rebuild

* Thu May 23 2002 Tim Powers <timp@redhat.com>
- automated rebuild

* Tue Mar 26 2000 Philip Copeland <bryce@redhat.com> 1.5.5-1
- initial rpm version