File apt.spec of Package apt

#
# spec file for package apt (Version 0.5.15lorg3.2)
#
# Copyright (c) 2008 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/
#

# norootforbuild


Name:           apt
BuildRequires:  automake gcc-c++ rpm-devel sgml-skel xmlto
BuildRequires:  cvs gettext-devel
BuildRequires:  libxml2-devel
BuildRequires:  pkgconfig
BuildRequires:  libzio-devel
BuildRequires:  fdupes
Version:        0.5.15lorg3.2
Release:        123
Summary:        A port of Debian's apt tools for RPM based distributions
Group:          System/Packages
License:        GPL v2 or later
Url:            http://apt-rpm.org
Source0:        http://apt-rpm.org/releases/%{name}-%{version}.tar.bz2
Source1:        apt.conf
Source2:        rpmpriorities.in
Source4:        sources.list.in
Source5:        security.list.in
Source6:        basesystem.list.in
Source7:        sources1.list.in
Source8:        basesystem1.list.in
Source12:       apt-wrap.tar.bz2
Source13:       README.lua
Source14:       apt-rpmlintrc
Patch0:         apt-nocow.patch
Patch1:         apt-0.5.15lorg3.x-archremove.patch
Patch2:         usr_lib_scripts.patch
Patch3:         apt-honour_post_conf.patch
Patch4:         apt-minmax_gcc42.patch
Patch5:         apt-missing_includes.patch
Requires:       libapt-pkg-libc6_9-6-2 = %{version}-%{release}
PreReq:         coreutils sed grep diffutils gpg2
Recommends:     cron
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

%description
A port of Debian's apt tools for RPM based distributions.It provides
the apt-get utility that provides a safe and simple way to install and
upgrade packages. APT features complete installation ordering, multiple
source capability and several other unique features.



Authors:
--------
    Panu Matilainen <pmatilai@laiskiainen.org>
    Gustavo Niemeyer <niemeyer@conectiva.com>
    Alfredo K. Kojima <kojima@conectiva.com.br>

%package        devel
License:        GPL v2 or later
Summary:        Development Files and Documentation for APT's libapt-pkg
Group:          Development/Libraries/C and C++
Requires:       %{name} = %{version}-%{release} 
Requires:       rpm-devel popt-devel glibc-devel bzip2 zlib-devel libstdc++-devel
Requires:       libxml2-devel

%description devel
This package contains the header files and static libraries for
developing with APT's manipulation library, modified for RPM.



Authors:
--------
    Gustavo Niemeyer <niemeyer@conectiva.com>
    Alfredo K. Kojima <kojima@conectiva.com.br>

%package     -n libapt-pkg-libc6_9-6-2
License:        GPL v2 or later
Summary:        Libraries for APT for RPM
Group:          System/Libraries
PreReq:         coreutils fillup
Provides:       %name-libs = %version
Obsoletes:      %name-libs < %version

%description -n libapt-pkg-libc6_9-6-2
This package contains libraries needed by apt and some other packages.



Authors:
--------
    Gustavo Niemeyer <niemeyer@conectiva.com>
    Alfredo K. Kojima <kojima@conectiva.com.br>

%package        server
License:        GPL v2 or later
Summary:        Tools to Create an APT Repository
Group:          System/Packages
Requires:       libapt-pkg-libc6_9-6-2 = %{version}-%{release}

%description server
This package provides the tools to create an apt repository, modified
for RPM.



Authors:
--------
    Gustavo Niemeyer <niemeyer@conectiva.com>
    Alfredo K. Kojima <kojima@conectiva.com.br>

%prep
%setup -q -a 12
%patch
%patch1
%patch2 -p1
%patch3
%patch4
%patch5
mv po/it_IT.po po/it.po
sed -e 's/it_IT/it/g' po/LINGUAS >po/LINGUAS.new && mv po/LINGUAS.new po/LINGUAS
# The man 8 apt manual page does not provide any usefull information.
# It says the page is not even started.
rm doc/apt.8

%build
export CXXFLAGS="%{optflags}"
autoreconf -f -i
%configure --enable-docdir=%{_defaultdocdir} --disable-docs
make
# workaround to get the xml manpages processed, until they are
# officially incorperated into apt-rpm
cd doc
for MAN in apt-cache.8.xml apt-cdrom.8.xml apt.conf.5.xml apt-config.8.xml apt-get.8.xml apt_preferences.5.xml sources.list.5.xml vendors.list.5.xml apt.1.xml; do
        xmlto man $MAN
done
cd ..
# Organize the example lua scripts into 1 directory that will be stored
# in %{_docdir}
mkdir -p examples/lua-scripts
cp -R contrib/* examples/lua-scripts
cp %{S:13} examples/lua-scripts
# Remove the lua scripts that are going to be installed, the left overs
# are going to be installed in the doc directory
for DIR in apt-groupinstall apt-wrapper list-extras list-nodeps; do
        rm -rf lua-scripts/$DIR
done

%install
%makeinstall
# The config files and empty dirs
install -d -m 755 %{buildroot}%{_sysconfdir}/apt/{apt.conf.d,sources.list.d}
install -d -m 755 %{buildroot}%{_libdir}/apt/scripts
cp -a %{SOURCE1} %{buildroot}%{_sysconfdir}/apt/apt.conf.d
cp -a %{SOURCE2} %{buildroot}%{_sysconfdir}/apt/rpmpriorities
dist_version=%{suse_version}
if [ $dist_version -lt 1000 ]; then
   suse_version_string="${dist_version:0:1}.${dist_version:1:1}"
elif [ $dist_version -lt 1009 ]; then
   suse_version_string="${dist_version:0:2}.${dist_version:3:1}"
else
   suse_version_string="${dist_version:0:2}.${dist_version:2:1}"
fi
> apt_security.list
if [ $dist_version -lt 1020 ]; then
  sed -e "s|@ftp_dir@|SuSE/${suse_version_string}-%{_arch}|g" %{SOURCE4} > %{buildroot}%{_sysconfdir}/apt/sources.list
  sed -e "s|@ftp_dir@|SuSE/${suse_version_string}-%{_arch}|g" %{SOURCE5} > %{buildroot}%{_sysconfdir}/apt/security.list
  sed -e "s|@ftp_dir@|SuSE/${suse_version_string}-%{_arch}|g" %{SOURCE6} > %{buildroot}%{_sysconfdir}/apt/basesystem.list
  echo "%config(noreplace) %{_sysconfdir}/apt/security.list" > apt_security.list
else
  sed -e "s|@opensuse_version@|${suse_version_string}|g" %{SOURCE7} > %{buildroot}%{_sysconfdir}/apt/sources.list
  sed -e "s|@opensuse_version@|${suse_version_string}|g" %{SOURCE8} > %{buildroot}%{_sysconfdir}/apt/basesystem.list
fi
# Mode 644 seems sufficient for lua scripts
install -m 644 contrib/list-extras/list-extras.lua  %{buildroot}%{_libdir}/apt/scripts
install -m 644 contrib/list-extras/list-extras.conf %{buildroot}%{_sysconfdir}/apt/apt.conf.d
install -m 644 contrib/list-nodeps/list-nodeps.lua  %{buildroot}%{_libdir}/apt/scripts
install -m 644 contrib/list-nodeps/list-nodeps.conf %{buildroot}%{_sysconfdir}/apt/apt.conf.d
install -m 644 my-lua-scripts/*.lua  %{buildroot}%{_libdir}/apt/scripts
install -m 644 my-lua-conf/*.conf %{buildroot}%{_sysconfdir}/apt/apt.conf.d
install -m 755 my-lua-scripts/groupinstall-backend-suse %{buildroot}%{_libdir}/apt/scripts
install -d -m 755 %{buildroot}%{_mandir}/man{1,5,8}
for section in 1 5 8; do
    install -d -m 755 %{buildroot}%{_mandir}/man${section}
    install -m 644 doc/*${section} %{buildroot}%{_mandir}/man${section}
done
install -d -m 755 %{buildroot}%{_sysconfdir}/cron.daily
install -m 755 cmdline/apt %{buildroot}%{_bindir}/
install -m 755 cmdline/apt-upgrade %{buildroot}%{_sysconfdir}/cron.daily/suse-apt-upgrade
install -m 644 -D cmdline/autoupdate %{buildroot}/var/adm/fillup-templates/sysconfig.autoupdate
# cache and state directories
mkdir -p %{buildroot}%{_localstatedir}/cache/apt/archives/partial
mkdir -p %{buildroot}%{_localstatedir}/lib/apt/lists/partial
(cd %{buildroot}%{_datadir}/locale; mv -T de_DE de)
if [ -d %{buildroot}%{_defaultdocdir}/%{name}/lua-scripts ]; then
	mv %{buildroot}%{_defaultdocdir}/%{name}/lua-scripts/* %{buildroot}%{_defaultdocdir}/%{name}/examples/lua-scripts/
	rm -rf %{buildroot}%{_defaultdocdir}/%{name}/lua-scripts
fi
%fdupes -s %{buildroot}
%find_lang %name

%post
if [ -s /etc/apt/apt.conf ]; then
        # /etc/apt/apt.conf.d/apt.conf is delivered with the apt rpm
        # just assume it exists...
        if diff -q /etc/apt/apt.conf /etc/apt/apt.conf.d/apt.conf; then
                # They are the same.  It is save to remove /etc/apt/apt.conf
                rm /etc/apt/apt.conf
                echo "/etc/apt/apt.conf has been moved to /etc/apt/apt.conf.d/apt.conf"
        else
                # They differ
                echo "Note: it is adviced to move the configuration file:"
                echo " /etc/apt/apt.conf to /etc/apt/apt.conf.d/apt.conf"
        fi
fi
FILE=/etc/apt/apt.conf.d/gpg-checker.conf
if [ -s $FILE ]; then
        if grep -q RPM::GPG-Check $FILE; then
                sed s,RPM::GPG-Check,GPG::Check, $FILE > /tmp/gpg-checker.$$
                mv /tmp/gpg-checker.$$ $FILE
        fi
fi

%post -n libapt-pkg-libc6_9-6-2
/sbin/ldconfig
%{fillup_only -n autoupdate }

%postun -n libapt-pkg-libc6_9-6-2 -p /sbin/ldconfig

%clean
[ "%{buildroot}" != "/" ] && [ -d %{buildroot} ] && rm -rf %{buildroot}

%files -f apt_security.list -f %name.lang
%defattr(-, root, root)
%doc AUTHORS* COPYING* TODO doc/examples/ 
%dir %{_sysconfdir}/apt
%config %{_sysconfdir}/apt/rpmpriorities
%config(noreplace) %{_sysconfdir}/apt/apt.conf.d/apt.conf
%config(noreplace) %{_sysconfdir}/apt/apt.conf.d/list-extras.conf
%config(noreplace) %{_sysconfdir}/apt/apt.conf.d/list-nodeps.conf
%config(noreplace) %{_sysconfdir}/apt/apt.conf.d/pkglog.conf
%config(noreplace) %{_sysconfdir}/apt/apt.conf.d/post.conf
%config(noreplace) %{_sysconfdir}/apt/apt.conf.d/gpg-import.conf
%config(noreplace) %{_sysconfdir}/apt/apt.conf.d/gpg-checker.conf
%config(noreplace) %{_sysconfdir}/apt/apt.conf.d/apt-groupinstall.conf
%config(noreplace) %{_sysconfdir}/apt/sources.list
%config(noreplace) %{_sysconfdir}/apt/basesystem.list
# %config(noreplace) %{_sysconfdir}/apt/vendors.list
%dir %{_sysconfdir}/apt/apt.conf.d
%dir %{_sysconfdir}/apt/sources.list.d
%{_bindir}/countpkglist
%{_bindir}/apt*
%{_libdir}/apt
%doc %{_mandir}/man?/*
## %{_datadir}/locale/*/LC_MESSAGES/apt.mo
%{_localstatedir}/cache/apt
%{_localstatedir}/lib/apt
/var/adm/fillup-templates/sysconfig.autoupdate
%{_sysconfdir}/cron.daily/suse-apt-upgrade

%files devel
%defattr(-, root, root)
%{_includedir}/apt-pkg
%{_libdir}/*.a
%{_libdir}/*.so
%{_libdir}/*.la

%files -n libapt-pkg-libc6_9-6-2
%defattr(-, root, root)
%{_libdir}/*.so.*

%files server
%defattr(-, root, root)
%{_bindir}/gen*

%changelog
* Sat Nov 22 2008 coolo@suse.de
- glibc changed version again
* Wed Oct 22 2008 pth@suse.de
- recommend cron
* Fri May 02 2008 aj@suse.de
- Finish last change.
* Tue Apr 29 2008 pth@suse.de
- Name of shared lib package updated because of glibc version change.
* Tue Mar 11 2008 lrupp@suse.de
- added fdupes and gpg2 to Build-/Pre-Requires
- rename apt-libs to libapt-pkg-libc6_7-6-2 to follow the
  shared library naming standard
- move the example scripts to the %%docdir/apt/examples directory
- obsolete the %%run_ldconfig calls
- use %%find_lang and %%fdupes macros
* Tue Nov 06 2007 pth@suse.de
- Add missing prereqs.
- Add a rpmlintrc file.
* Fri Oct 26 2007 pth@suse.de
- Add missing includes.
- Properly reference namespace std in headers.
* Mon Aug 13 2007 pth@suse.de
- Update to 0.5.15lorg3.2, based on the work by Richard Bos.
* Sun Jun 17 2007 ro@suse.de
- fix build (apt-minmax_gcc42.patch)
* Fri Apr 20 2007 meissner@suse.de
- do not use /tmp
* Sat Dec 09 2006 richard@radoeka.nl
- Provide an repomd only sources.list, basesystem.list files for
  openSUSE-10.2 and beyond.
- security.list is no longer dsitributed for openSUSE-10.2 and
  beyond as the security component is no longer available on the server.
- Do not process the rpmpriorities file in the spec file to add the
  suseversion, as that does not make sense.
* Thu Aug 24 2006 pth@suse.de
- Install scripts where apt is searching for them.
* Wed Jul 19 2006 richard@radoeka.nl
- Added apt-0.5.15lorg3.x-archremove.patch
* Mon May 22 2006 aosthof@suse.de
- Fixed duplicate parameter name (#175554)
* Mon Mar 27 2006 pth@suse.de
- Add patch from Panu Matilainen to allow self-referential
  provides entries. (bug #160567)
- Use ftp4.gwdg.de as it's the better mirror.
* Fri Mar 24 2006 bk@suse.de
- fix a typo in a URL in the comments of the default sources.list
* Thu Mar 23 2006 pth@suse.de
- Fix construction of path names for default sources.list
  (bugzilla #160087)
* Tue Mar 21 2006 pth@suse.de
- Make post.lua honour changes to post.conf (bugzilla #159078)
* Wed Jan 25 2006 mls@suse.de
- converted neededforbuild to BuildRequires
* Mon Jan 16 2006 pth@suse.de
- Compile without strict aliasing analysis because of broken
  rpmlib interface (headerGetEntry).
* Fri Sep 09 2005 pth@suse.de
- Add base component to sources.list.
* Wed Sep 07 2005 pth@suse.de
- Generate correct path names. Fixes #115533
* Mon Aug 15 2005 pth@suse.de
- Fix name of the cron script
* Mon Aug 15 2005 pth@suse.de
- Add ppc64 to architecture table
* Fri Aug 12 2005 pth@suse.de
- Fix the building of the man pages
- Fix most compiler warnings
- Fix all warnings that autobuild regards as fatal
- Fix paths forbidden by FHS 2.2
* Sun Aug 07 2005 aj@suse.de
- Initial package, based on the work of Richard Bos <richard@radoeka.nl>
openSUSE Build Service is sponsored by