%define name apt %define version 0.5.15cnc5 %define release 4mdk %define _lib_name %{name}-pkg %define lib_name_orig lib%{_lib_name} %define major 0 %define libname %mklibname %_lib_name %major %define libnamedevel %mklibname %_lib_name %major -d #TODO # check lua support ( switch ) # add something to ease downloading of source Name: %{name} Version: %{version} Release: %{release} Summary: Debian's Advanced Packaging Tool with RPM support Group: System/Configuration/Packaging Url: https://moin.conectiva.com.br/AptRpm License: GPL # downloaded on https://moin.conectiva.com.br/AptRpm?action=AttachFile&do=get&target=%{name}-%{version}.tar.bz2 # use wget -U some_user_agent, it prevent wget downloading # wget -U plop "https://moin.conectiva.com.br/AptRpm?action=AttachFile&do=get&target=%{name}-%{version}.tar.bz2" Source0: https://moin.conectiva.com.br/files/AptRpm/attachments/%{name}-%{version}.tar.bz2 Source1: %{name}-apt.conf.bz2 Source2: %{name}-sources.list.bz2 Source3: %{name}-vendors.list.bz2 Source4: %{name}-rpmpriorities.bz2 Source5: %{name}-mandrake.conf.bz2 # (misc) replace all mentions of Debian and Conectiva with Mandrake Patch2: %{name}-mandrake-everywhere.patch.bz2 # enhance the sorting by taking Obsoletes into account Patch3: %{name}-0.3.19cnc53-stelian-apt-pkg-algorithms-scores.patch.bz2 # mark some mdk package as essential Patch4: %{name}-0.5.4cnc7-rpmpriorities.patch.bz2 # add a configuration option ( APT::Install::Virtual ) Patch6: %{name}-0.5.4cnc9-alt-install_virtual.patch.bz2 #Patch7: %{name}-0.5.4cnc9-alt-install_virtual_version.patch.bz2 # TODO document this patch Patch8: %{name}-0.5.4cnc9-alt-packagemanager-CheckRConflicts.patch.bz2 # alternative scoring method ( PreDepends implies -1 instead of +50 ) Patch9: %{name}-0.5.4cnc9-alt-pkgorderlist_score.patch.bz2 #Patch10: %{name}-0.5.4cnc9-alt-rsync.patch.bz2 # add # to the list of the forbidden char in the name of cdrom Patch11: %{name}-0.5.4cnc9-alt-specialchars.patch.bz2 # add a missing ifdef Patch12: %{name}-0.5.5cnc1-alt-APT_DOMAIN.patch.bz2 # add APT::Ignore-dpkg option, to not take dpkg in account # for score calculation Patch13: %{name}-0.5.5cnc1-alt-debsystem.patch.bz2 # s/de_DE/de/ and /it_IT/it/ in po files Patch14: %{name}-invalid-lc-messages-dir.patch.bz2 # use the moo Patch15: %{name}-moo.patch.bz2 # enforce Epoch promotion Patch16: %{name}.0.5.15cnc4-epoch.patch.bz2 # add WhatProvides command Patch17: %{name}-0.5.15cnc4-whatprovides.patch.bz2 # a quick bugfixe to make build-dep work Patch18: %{name}-build-dep.patch.bz2 # use hdlist ( in gz ) instead of apt index ( in bz2 ) # it replace bz2 compression by gz, # it remove some check in acquire-item.cc # it add default 0: Epoch to all package Patch300: %{name}-0.5.5cnc6-mdk.patch.bz2 Requires: gnupg BuildRequires: autoconf2.5 BuildRequires: automake1.7 BuildRequires: docbook-dtd31-sgml BuildRequires: docbook-utils BuildRequires: gettext-devel BuildRequires: ncurses-devel BuildRequires: readline-devel BuildRequires: rpm-devel >= 4.2 BuildRequires: python-devel BuildRoot: %{_tmppath}/%{name}-%{version}-root Epoch: 1 %description A port of Debian's apt tools for RPM based distributions, or at least for Mandrake. Original RPM port done by and for Connectiva. It provides the apt-get utility that provides a simpler, safer way to install and upgrade packages. APT features complete installation ordering, multiple source capability and several other unique features. Under development, use at your own risk! %package -n %{libname} Summary: Libraries for %{name} Group: System/Libraries Provides: %{lib_name_orig} = %{epoch}:%{version}-%{release} Obsoletes: libapt0.5 Provides: libapt0.5 %description -n %{libname} This package contains APT's libapt-pkg package manipulation library modified for RPM. %package -n %{libnamedevel} Summary: Development files for %{name} Group: Development/C Requires: %{libname} = %{epoch}:%{version}-%{release} Provides: %{lib_name_orig}-devel Obsoletes: libapt0.5-devel Provides: libapt0.5-devel %description -n %{libnamedevel} This package contains the header files and static libraries for developing with APT's libapt-pkg package manipulation library, modified for RPM. %package -n python-%{name} Summary: Python extension for %{name} Group: Development/Python %description -n python-%{name} This package contains a python modules to access to libapt-pkg. With it, you can use the apt configuration file, and access to the database of packages. %prep %setup -q # mdk everywhere patch %patch2 -p1 %patch3 -p1 %patch4 -p1 %patch6 -p1 #%patch7 -p1 %patch8 -p1 %patch9 -p1 #%patch10 -p1 %patch11 -p1 %patch12 -p1 %patch13 -p1 %patch14 -p1 %patch15 -p1 %patch16 -p1 %patch17 -p1 %patch18 -p1 %patch300 -p1 #%patch301 -p1 # allow to bootstrap the Python package perl -pi -e 's#apt-pkg/contrib/#apt-pkg/#' python/apt_wrap.cxx perl -pi -e 's# -I.. # -I../include/ #' python/Makefile perl -pi -e 's# -L../build/bin # -L../build/bin -L../apt-pkg/.libs/ #' python/Makefile bzcat %{SOURCE1} > apt.conf bzcat %{SOURCE2} > sources.list bzcat %{SOURCE3} > vendors.list bzcat %{SOURCE4} > rpmpriorities bzcat %{SOURCE5} > mandrake.conf %build # (misc) doesn't work without this on 24/12/2003, i do not have time to look further cp -f /usr/share/gettext/po/Makefile.in.in po export WANT_AUTOCONF_2_5=1 aclocal-1.7 -I buildlib autoconf-2.5x %configure2_5x --with-hashmap # This next line is necessary because of the invalid-lc-messages-dir patch (cd po; cp -f de_DE.po de.po; cp -f it_IT.po it.po) # Parallel make is taken account in the configure script %make NOISY=1 ( cd python; %make ) %install cat <<EOF >README.Mandrake This version of apt includes various patch to integrate it with Mandrake. It uses the mandrake hdlist, which means you could use any mandrake mirror in sources.list. You cannot use the synthesis form of the hdlist for the moment. It add a option APT::Install::Virtual, to control the installation of pure virtual package. Christiaan Welvaart <cjw@daneel.dyndns.org> contributed with a patch to add showprovides command to apt-cache, a patch for apt-get build-dep and many other fixe. And some others minor patch, please check the spec file on http://cvs.mandrakesoft.com/contrib-SPECS/apt/ It was build without lua scripting support for the moment. Python modules can be found in the python-apt package. EOF rm -rf $RPM_BUILD_ROOT %makeinstall install -d -m 755 $RPM_BUILD_ROOT/var/cache/%{name}/archives/partial install -d -m 755 $RPM_BUILD_ROOT%{_localstatedir}/%{name}/lists/partial install -d -m 755 $RPM_BUILD_ROOT%{_includedir}/apt-pkg mv $RPM_BUILD_ROOT%{_includedir}/*.h $RPM_BUILD_ROOT%{_includedir}/apt-pkg install -d -m 755 $RPM_BUILD_ROOT%{_sysconfdir}/apt install -m 644 apt.conf $RPM_BUILD_ROOT%{_sysconfdir}/apt install -m 644 *.list $RPM_BUILD_ROOT%{_sysconfdir}/apt install -m 644 rpmpriorities $RPM_BUILD_ROOT%{_sysconfdir}/apt install -d -m 755 $RPM_BUILD_ROOT%{_sysconfdir}/apt/apt.conf.d install -m 644 mandrake.conf $RPM_BUILD_ROOT%{_sysconfdir}/apt/apt.conf.d install -d -m 755 $RPM_BUILD_ROOT%{_sysconfdir}/apt/translate.list.d # (misc) remove this once the librpm package is fixed and do not # contain reference to /home, no rpmlint warning. perl -pi -e 's#-L/home/\w+##g' $RPM_BUILD_ROOT/%{_libdir}/*.la %find_lang %{name} %find_lang %{lib_name_orig}-pkg3.3 cat %{lib_name_orig}-pkg3.3.lang >> %{name}.lang rm -f %{lib_name_orig}-pkg3.3.lang # Python install -d -m 755 $RPM_BUILD_ROOT/%{_libdir}/python%pyver/site-packages/ install -m 644 python/_apt.so $RPM_BUILD_ROOT/%{_libdir}/python%pyver/site-packages/ install -m 644 python/apt.py $RPM_BUILD_ROOT/%{_libdir}/python%pyver/site-packages/ %triggerun -- apt < 0.5.4 # Convert options from 0.3.X to 0.5.X CONF=/etc/apt/apt.conf if [ -f $CONF ]; then mv -f $CONF $CONF.rpmold sed -e 's/HoldPkgs/Hold/' \ -e 's/AllowedDupPkgs/Allow-Duplicated/' \ -e 's/IgnorePkgs/Ignore/' \ -e 's/PostInstall/Post-Install/' \ -e 's/.*Methods .*//' \ $CONF.rpmold > $CONF if [ $? -ne 0 ]; then mv -f $CONF.rpmold $CONF echo "warning: couldn't convert old apt options" else echo "warning: original apt.conf saved as apt.conf.rpmold" 2>&1 fi fi %triggerun -- apt > 0.5.4, apt < 0.5.4cnc4-1cl # Fix bug in the trigger of first snapshot versions CONF=/etc/apt/apt.conf if [ -f $CONF ]; then mv $CONF $CONF.rpmtmp.$$ sed -e 's/Holds/Hold/' \ $CONF.rpmtmp.$$ > $CONF if [ $? -ne 0 ]; then mv -f $CONF.rpmtmp.$$ $CONF else rm -f $CONF.rpmtmp.$$ fi fi %post -n %{libname} -p /sbin/ldconfig %postun -n %{libname} -p /sbin/ldconfig %clean rm -rf %{buildroot} %files -f %{name}.lang %defattr(-,root,root) %doc COPYING* TODO doc/*.txt doc/examples AUTHORS* README.Mandrake %dir %{_sysconfdir}/apt %config(noreplace) %{_sysconfdir}/apt/apt.conf %config(noreplace) %{_sysconfdir}/apt/sources.list %config(noreplace) %{_sysconfdir}/apt/vendors.list %config(noreplace) %{_sysconfdir}/apt/rpmpriorities %dir %{_sysconfdir}/apt/apt.conf.d %config(noreplace) %{_sysconfdir}/apt/apt.conf.d/mandrake.conf %dir %{_sysconfdir}/apt/translate.list.d %{_bindir}/* %{_libdir}/%{name} %{_mandir}/man5/* %{_mandir}/man8/* /var/cache/%{name} %{_localstatedir}/%{name} %files -n %{libname} %defattr(-,root,root) %{_libdir}/*.so.* %files -n %{libnamedevel} %defattr(-,root,root) %{_includedir}/apt-pkg %{_libdir}/*.so %{_libdir}/*.a %{_libdir}/*.la %files -n python-%{name} %defattr(-,root,root) %{_libdir}/python%pyver/site-packages/* %changelog * Sun Jan 18 2004 Christiaan Welvaart <cjw@daneel.dyndns.org> 0.5.15cnc5-4mdk - added epoch to versioned requires and provides * Thu Jan 01 2004 Michael Scherer <misc@mandrake.org> 0.5.15cnc5-3mdk - /me sucks, s/echo/cat/ for the README, thanks to pterjan and Mooby * Sat Dec 27 2003 Michael Scherer <misc@mandrake.org> 0.5.15cnc5-2mdk - add python support - add option whatprovides to the man pages * Wed Dec 24 2003 Michael Scherer <misc@mandrake.org> 0.5.15cnc5-1mdk - 0.5.15cnc5 - correct README.Mandrake ( thanks to Luca Olivetti ) - patch17 apt-cache whatprovides, from Christiaan Welvaart <cjw@daneel.dyndns.org> - patch18 apt-build-dep, from Christiaan Welvaart <cjw@daneel.dyndns.org> - rediffed patch300 - correct po Makefile ( quick hack :/ ) * Sun Dec 07 2003 Michael Scherer <misc@mandrake.org> 0.5.15cnc4-2mdk - patch16, fix epoch handling - patch15, nicer cow - add a warning about synthesis in source.list * Fri Dec 05 2003 Michael Scherer <misc@mandrake.org> 0.5.15cnc4-1mdk - 0.5.15cnc4 - Rediff mdk everywhere patch * Wed Nov 26 2003 Michael Scherer <misc@mandrake.org> 0.5.15cnc3-1mdk - 0.5.15cnc3 - added README.Mandrake * Tue Nov 18 2003 Michael Scherer <scherer.michael@free.fr> 0.5.15cnc2-2mdk - correct the changelog, with the help of Olivier Blin - add some comment on the various patch * Mon Nov 17 2003 Michael Scherer <scherer.michael@free.fr> 0.5.15cnc2-1mdk - 0.5.15cnc2 - remove explicit dependency - from Christiaan Welvaart <cjw@daneel.dyndns.org> - apt-rpm 0.5.15cnc1 - removed patch1 - removed changes to ftp method from patch #2 as it was modified upstream - removed patch5 - disabled patch7 - seems to be implemented in upstream sources - fixed patch300 - allow gpg-pubkey to be installed more than once (fixes bug #5613) * Sun Sep 14 2003 Michael Scherer <scherer.michael@free.fr> 0.5.5cnc6-2mdk - reupload it with correct changelog - fix the conf to not display warning for gpg-pubkey - fix the sources list * Sun Sep 14 2003 Michael Scherer <scherer.michael@free.fr> 0.5.5cnc6-1mdk - add epoch to force upgrade - from Christiaan Welvaart <cjw@daneel.dyndns.org> - renamed library packages to apt-pkg - small specfile cleanup thanks to rpmlint - fixed file info string seen when downloading indexes and packages - worked around problem with deps having implicit zero epoch that get compared to packages with explicit higher epoch - update to 0.5.5cnc6 - use regular hdlists instead of pkglists * Wed Jul 23 2003 Lenny Cartier <lenny@mandrakesoft.com> 0.5.5cnc4.1-4mdk - rebuild for new rpm - patch200: fix missing includes * Fri Apr 25 2003 David Walluck <david@anti-microsoft.org> 0.5.5cnc4.1-3mdk - use autoconf >= 2.50 * Sat Apr 12 2003 David Walluck <walluck@linux-mandrake.com> 0.5.5cnc4.1-2mdk - vendors.list should have MandrakeSoft key, not Connectiva * Sat Apr 12 2003 David Walluck <walluck@linux-mandrake.com> 0.5.5cnc4.1-1mdk - 0.5.5cnc4.1 - really use vendors.list (which was accidently a copy of sources.list before) - really add lang files - add AUTHORS* to %%doc - add %%{_localstatedir}/%{name}/lists/prefetch directory - chop %%changelog to Mandrake versions only - add 'rm -rf $RPM_BUILD_ROOT' to %%install (useful with '--short-circuit') - pass '--with-hashmap' to %%configure - add Requires on gnupg, ncurses, and readline - add BuildRequires on docbook-dtd31-sgml so that we can build the manpages - add BuildRequires on gettext-devel, ncurses-devel, and readline-devel - add specialized rpmpriorities as external source - add mandrake.conf (which is now the main config file, not apt.conf); also verify options which are now in mandrake.conf (remove options already present by default) - regenerate vendors.list - regenerate sources.list - regenerate configure script before calling %%configure - apply mdk specific patches - apply various patches from alt, cl, pld * Sun Mar 02 2003 Olivier Thauvin <thauvin@aerov.jussieu.fr> 0.5.5cnc3-1mdk - 0.5.5cnc3 - apt.conf: arch is i586 * Tue Feb 11 2003 Olivier Thauvin <thauvin@aerov.jussieu.fr> 0.5.4cnc9-3mdk - use %%mklibname (thanks rpmlint) * Tue Feb 11 2003 Olivier Thauvin <thauvin@aerov.jussieu.fr> 0.5.4cnc9-2mdk - rebuild * Wed Dec 18 2002 Olivier Thauvin <thauvin@aerov.jussieu.fr> 0.5.4cnc9-1mdk - 0.5.4cnc9 * Fri Nov 15 2002 Olivier Thauvin <thauvin@aerov.jussieu.fr> 0.5.4cnc7-4mdk - libapt does not provdes apt ! * Mon Nov 11 2002 Laurent MONTEL <lmontel@mandrakesoft.com> 0.5.4cnc7-3mdk - Fix apt.conf.bz2 Directory for method was bad : method directory is in /usr/lib/apt/methods * Sun Sep 29 2002 Guillaume Rousse <g.rousse@linux-mandrake.com> 0.5.4cnc7-2mdk - removed manual requires, let spechelper do its job - corrected changelog * Sun Sep 29 2002 Guillaume Rousse <g.rousse@linux-mandrake.com> 0.5.4cnc7-1mdk - bump to 0.5.4cnc7 - merged with connectiva RPM - library policy - bzipped additional sources - spec cleanup * Mon Aug 19 2002 Laurent Culioli <laurent@pschit.net> 0.3.15cnc55-2mdk - Rebuild with gcc3.2 * Tue Jun 25 2002 Kenduest Lee <kenduest@i18n.linux.org.tw> 0.3.15cnc55-1mdk - new version - Geoff - Put back in contrib (there are still people who use it). * Tue Jul 24 2001 Frederic Lepied <flepied@mandrakesoft.com> 0.3.19cnc51-1mdk - new version (not tested) * Wed Jan 17 2001 Frederic Lepied <flepied@mandrakesoft.com> 0.3.19cnc31-1mdk - new version. * Tue Dec 12 2000 Frederic Lepied <flepied@mandrakesoft.com> 0.3.19cnc27-1mdk - first mandrake version.