Blob Blame History Raw
# Noarch subpackages available from Fedora 10, RHEL 6
%global noarch_subpkgs 0%{?fedora} > 9 || 0%{?rhel} > 5

Name:		GeoIP
Version:	1.5.0
Release:	14%{?dist}
Summary:	Library for country/city/organization to IP address or hostname mapping
Group:		Development/Libraries
License:	LGPLv2+ and GPLv2+ and CC-BY-SA
URL:		http://www.maxmind.com/app/c
Source0:	http://www.maxmind.com/download/geoip/api/c/GeoIP-%{version}.tar.gz
Source1:	LICENSE.txt
Source2:	fetch-geoipdata-city.pl
Source3:	fetch-geoipdata.pl
Source5:	geoipupdate.cron
# Data sources indexed at http://dev.maxmind.com/geoip/legacy/geolite
Source10:	http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
Source11:	http://geolite.maxmind.com/download/geoip/database/GeoIPv6.dat.gz
Source12:	http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
Source13:	http://geolite.maxmind.com/download/geoip/database/GeoLiteCityv6-beta/GeoLiteCityv6.dat.gz
Source14:	http://download.maxmind.com/download/geoip/database/asnum/GeoIPASNum.dat.gz
Source15:	http://download.maxmind.com/download/geoip/database/asnum/GeoIPASNumv6.dat.gz
Patch10:	GeoIP-1.5.0-UTF8.patch
Patch11:	GeoIP-1.5.0-geoipupdate-message.patch

BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(id -nu)
BuildRequires:	zlib-devel
Obsoletes:	geoip < %{version}-%{release}
Provides:	geoip = %{version}-%{release}
Requires:	geoipupdate

%description
GeoIP is a C library that enables the user to find the country that any IP
address or hostname originates from. It uses a file based database that is
accurate as of June 2007 and can optionally be updated on a weekly
basis by installing the GeoIP-update package. This database simply contains IP
blocks as keys, and countries as values. This database should be more complete
and accurate than using reverse DNS lookups.

This package includes GeoLite data created by MaxMind, available from
http://www.maxmind.com/

%package data
Summary:	Static snapshot of GeoIP databases
Group:		Applications/Databases
Requires:	%{name} = %{version}-%{release}
%if %{noarch_subpkgs}
BuildArch:	noarch
%endif

%description data
Snapshot of IPv4 and IPv6 databases for GeoIP. These databases are not
regularly updated, use a cron job from GeoIP-update package to get fresh ones.

This package includes GeoLite data created by MaxMind, available from
http://www.maxmind.com/

%package devel
Summary:	Development headers and libraries for GeoIP
Group:		Development/Libraries
Requires:	%{name} = %{version}-%{release}
Provides:	geoip-devel = %{version}-%{release}
Obsoletes:	geoip-devel < %{version}-%{release}

%description devel
Development headers and static libraries for building GeoIP-based applications.

%prep
%setup -q

# Recode docs as UTF-8
%patch10 -p1
%patch11 -p1

install -D -m644 %{SOURCE1} LICENSE.txt
install -D -m644 %{SOURCE2} fetch-geoipdata-city.pl
install -D -m644 %{SOURCE3} fetch-geoipdata.pl

# Distribute all databases as *-inital.dat files in GeoIP packages.
# User then can download real .dat files without replacing the ones from
# package.
install -p -m 644 %{SOURCE10} data/GeoIP-initial.dat.gz;        gunzip data/GeoIP-initial.dat
install -p -m 644 %{SOURCE11} data/GeoIPv6-initial.dat.gz;      gunzip data/GeoIPv6-initial.dat
# City and ASN databases will be in GeoIP-data subpackage as -initial files
# and linked to non--initial on installation of the subpackage.
install -p -m 644 %{SOURCE12} data/GeoIPCity-initial.dat.gz;    gunzip data/GeoIPCity-initial.dat
install -p -m 644 %{SOURCE13} data/GeoIPCityv6-initial.dat.gz;  gunzip data/GeoIPCityv6-initial.dat
install -p -m 644 %{SOURCE14} data/GeoIPASNum-initial.dat.gz;   gunzip data/GeoIPASNum-initial.dat
install -p -m 644 %{SOURCE15} data/GeoIPASNumv6-initial.dat.gz; gunzip data/GeoIPASNumv6-initial.dat

%build
# Fix timestamp order to avoid trying to re-run autotools and configure,
# thus clobbering our hacked libtool later on
touch aclocal.m4
touch configure
touch config.h.in
touch config.status
find . -name Makefile.in -exec touch {} \;

%configure --disable-static --disable-dependency-tracking

# Kill bogus rpaths
sed -i -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' \
	-e 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool

make %{?_smp_mflags}

%install
rm -rf %{buildroot}
make DESTDIR=%{buildroot} install

# nix the stuff we don't need like .la files.
rm -f %{buildroot}%{_libdir}/*.la

# install downloaded GeoLite databases
for db in \
        GeoIP-initial.dat \
        GeoIPv6-initial.dat \
        GeoIPCity-initial.dat \
        GeoIPCityv6-initial.dat \
        GeoIPASNum-initial.dat \
        GeoIPASNumv6-initial.dat
do
        install -p -m 644 data/$db %{buildroot}%{_datadir}/GeoIP/
done

# create empty files for initial %%ghost databases
touch %{buildroot}%{_datadir}/GeoIP/GeoIP{ASNum,City,Country}{,v6}.dat
chmod 644 %{buildroot}%{_datadir}/GeoIP/GeoIP{ASNum,City,Country}{,v6}.dat

# make the default GeoIP.dat a symlink to our -initial data file.
ln -sf GeoIP-initial.dat %{buildroot}%{_datadir}/GeoIP/GeoIP.dat
ln -sf GeoIPv6-initial.dat %{buildroot}%{_datadir}/GeoIP/GeoIPv6.dat

#links used when invoking geoiplookup -v
ln -sf GeoIPCity-initial.dat %{buildroot}%{_datadir}/GeoIP/GeoIPCity.dat
ln -sf GeoIPCityv6-initial.dat %{buildroot}%{_datadir}/GeoIP/GeoIPCityv6.dat

# Add compat symlinks for GeoIPASNum.dat and GeoLiteASNumv6.dat
# ([upstream] database names used in the old geoip-geolite package)
ln -sf GeoIPASNum.dat %{buildroot}%{_datadir}/GeoIP/GeoIPASNum.dat
ln -sf GeoIPASNumv6.dat %{buildroot}%{_datadir}/GeoIP/GeoIPASNumv6.dat

#Remove files used by geoipupdate - it has its own package
rm %{buildroot}%{_bindir}/geoipupdate
rm %{buildroot}%{_includedir}/GeoIPUpdate.h
rm %{buildroot}%{_libdir}/libGeoIPUpdate.so*
rm %{buildroot}%{_mandir}/man1/geoipupdate.1*
rm %{buildroot}/etc/GeoIP.conf*

%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig

%post data
# Link *-initial.dat files as official GeoIP database files. Make sure not to
# overwrite any user databases!
for db in GeoIPCity.dat GeoIPCityv6.dat GeoIPASNum.dat GeoIPASNumv6.dat ; do
    db_initial=${db%.dat}-initial.dat
    if [ ! -e "/usr/share/GeoIP/$db" ]; then
        ln -s "/usr/share/GeoIP/$db_initial" "/usr/share/GeoIP/$db" &>/dev/null || :
    fi
done

%postun data
if [ "$1" == "0" ]; then
    for db in GeoIPCity.dat GeoIPCityv6.dat GeoIPASNum.dat GeoIPASNumv6.dat ; do
        db_initial=${db%.dat}-initial.dat
        # Remove links to -initial files, ignoring links anywhere else
        if [ -h "/usr/share/GeoIP/$db" -a $(readlink /usr/share/GeoIP/$db) = "/usr/share/GeoIP/$db_initial" ]; then
            rm "/usr/share/GeoIP/$db" &>/dev/null || :
        fi
    done
fi


%files
# LGPLv2+
%doc AUTHORS COPYING ChangeLog README TODO LICENSE* fetch-*
%{_bindir}/geoiplookup
%{_bindir}/geoiplookup6
%dir %{_datadir}/GeoIP/
%{_datadir}/GeoIP/GeoIP-initial.dat
%{_datadir}/GeoIP/GeoIPv6-initial.dat
# The other databases are %%verify(not md5 size mtime) so that they can be updated via the cron scripts
# and rpm will not moan about the files having changed
%verify(not md5 size link mtime) %{_datadir}/GeoIP/GeoIP.dat
%verify(not md5 size link mtime) %{_datadir}/GeoIP/GeoIPv6.dat
%ghost %{_datadir}/GeoIP/GeoIPASNum.dat
%ghost %{_datadir}/GeoIP/GeoIPCity.dat
%ghost %{_datadir}/GeoIP/GeoIPCountry.dat
%ghost %{_datadir}/GeoIP/GeoIPASNumv6.dat
%ghost %{_datadir}/GeoIP/GeoIPCityv6.dat
%ghost %{_datadir}/GeoIP/GeoIPCountryv6.dat
%{_libdir}/libGeoIP.so.1
%{_libdir}/libGeoIP.so.1.*
%{_mandir}/man1/geoiplookup.1*
%{_mandir}/man1/geoiplookup6.1*

%files data
%{_datadir}/GeoIP/GeoIPCity-initial.dat
%{_datadir}/GeoIP/GeoIPCityv6-initial.dat
%{_datadir}/GeoIP/GeoIPASNum-initial.dat
%{_datadir}/GeoIP/GeoIPASNumv6-initial.dat

%files devel
# LGPLv2+
%{_includedir}/GeoIP.h
%{_includedir}/GeoIPCity.h
%{_libdir}/libGeoIP.so
%{_libdir}/pkgconfig/geoip.pc

%changelog
* Mon Feb 18 2019 Michal Ruprich <mruprich@redhat.com> - 1.5.0-14
- Resolves: #1666767 - Remove geoipupdate binary from GeoIP

* Tue Jul 31 2018 Michal Ruprich <mruprich@redhat.com> - 1.5.0-13
- Related: #1409060 -  Missing symlink at the GeoIP-update package

* Tue Jun 19 2018 Michal Ruprich <mruprich@redhat.com> - 1.5.0-12
- Removed clean section
- Resolves: #1589860 - Update GeoIP legacy databases
- Resolves: #1409060 -  Missing symlink at the GeoIP-update package

* Wed Jun 29 2016 Jan Safranek <jsafrane@redhat.com> - 1.5.0-11
- Fixed rpmlint errors

* Wed Jun 29 2016 Jan Safranek <jsafrane@redhat.com> - 1.5.0-10
- Added base IPv6 database to GeoIP package
- Added GeoIP-data subpackage with all other databases (#1201857)

* Fri Jan 24 2014 Daniel Mach <dmach@redhat.com> - 1.5.0-9
- Mass rebuild 2014-01-24

* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 1.5.0-8
- Mass rebuild 2013-12-27

* Wed Nov 13 2013 Jan Safranek <jsafrane@redhat.com> - 1.5.0-7
- Don't download the database in %post (#1029807)
- Don't download GeoLiteASNum as it's no longer provided.

* Mon Jun 10 2013 Paul Howarth <paul@city-fan.org> - 1.5.0-6
- Update sub-package requires main package for geoipupdate script

* Sat Jun  8 2013 Paul Howarth <paul@city-fan.org> - 1.5.0-5
- Make GeoIP.dat -> GeoIP-initial.dat symlink in %%install, not %%post,
  and don't %%ghost it
- Run geoipupdate silently in %%post and cron job
- Create empty database files for %%ghost to work with old rpm versions
- Don't try to use noarch subpackages on old rpm versions
- Update %%description to mention database updates
- Drop outdated README.Fedora

* Sat Jun 08 2013 Philip Prindeville <philipp@fedoraproject.org> - 1.5.0-4
- Revert ability to replace 3rd-party package

* Fri Jun 07 2013 Philip Prindeville <philipp@fedoraproject.org> - 1.5.0-3
- Add attributes for %%ghost files

* Fri Jun 07 2013 Philip Prindeville <philipp@fedoraproject.org> - 1.5.0-2
- Make update subpackage be noarch.

* Fri Jun 07 2013 Philip Prindeville <philipp@fedoraproject.org> - 1.5.0-1
- Version bump to 1.5.0
- Have GeoIP.dat be a symlink to the real data, and install the canned
  GeoIP.dat as GeoIP-initial.dat
- Change config as per Boris' instructions to use 'lite' databases which are
  regularly updated.
- Add pkgconfig (.pc) file into devel subpackage
- Add cron support for refreshing the lite databases and make a separate
  subpackage.

* Sun Mar 24 2013 Paul Howarth <paul@city-fan.org> - 1.4.8-6
- Fix config.guess and config.sub to add aarch64 support (#925403)

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

* Mon Oct 22 2012 Paul Howarth <paul@city-fan.org> - 1.4.8-4
- libGeoIPUpdate and geoipupdate (which is linked against it) are GPL-licensed
  rather than LGPL-licensed (#840896)
- Don't package generic INSTALL file (#661625)
- Kill bogus rpaths on x86_64
- Hardcode library sonames in %%files list to avoid nasty surprises in the
  future
- Drop %%defattr, redundant since rpm 4.4
- Recode docs as UTF-8
- Don't use macros for commands
- Use tabs

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

* Thu Jan 12 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.4.8-2.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild

* Tue Sep 6 2011 Michael Fleming <mfleming+rpm@thatfleminggent.com> - 1.4.8-1.1
- Remove -ipv6 patch
- Bump to 1.4.8 release

* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.4.7-0.2.20090931cvs
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

* Mon Aug 31 2009 Matt Domsch <mdomsch@fedoraproject.org> - 1.4.7.0.1.20090931
- apply CVS HEAD 20090931 which includes IPv6 functions

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

* Sun Mar 08 2009 Michael Fleming <mfleming+rpm@enlartenment.com> - 1.4.6-1
- Add geoiplookup6 man page
- Update to 1.4.6

* Mon Feb 23 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.4.5-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild

* Sat Nov 29 2008 Michael Fleming <mfleming+rpm@enlartenment.com> 1.4.5-2
- Update to 1.4.5
- Fix database URL locations in Perl helper scripts

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

* Mon Jan 28 2008 Michael Fleming <mfleming+rpm@enlartenment.com> 1.4.4-1
- New upstream release.

* Wed Sep 5 2007 Michael Fleming <mfleming+rpm@enlartenment.com> 1.4.3-1
- New upstream release.
- Fix GeoIPCity fetcher script
- Update License tag

* Mon Feb 12 2007 Michael Fleming <mfleming+rpm@enlartenment.com> 1.4.2-1
- New upstream release.

* Mon Jan 8 2007 Michael Fleming <mfleming+rpm@enlartenment.com> 1.4.1-2
- License is actually LGPL now.

* Sun Jan 7 2007 Michael Fleming <mfleming+rpm@enlartenment.com> 1.4.1-1
- New upstream release
- Add fetch-geoipdata* scripts to pull free databases automatically if
  desired (bz #198137)
- README.fedora added to briefly explain above.

* Mon Nov 27 2006 Michael Fleming <mfleming+rpm@enlartenment.com> 1.4.0-4
- Fix %%install scripts to satisfy newer mock builds

* Sun Sep 3 2006 Michael Fleming <mfleming+rpm@enlartenment.com> 1.4.0-3
- Upstream upgrade
- Added LICENSE.txt file to %%doc, covering GeoIP country/city data license
  (bz #198137)

* Mon May 15 2006 Michael Fleming <mfleming+rpm@enlartenment.com> 1.3.17-1
- New upstream release (minor fixes)

* Mon May 1 2006 Michael Fleming <mfleming+rpm@enlartenment.com> 1.3.16-1
- New upstream release 
- Add INSTALL document to package.

* Sat Feb 18 2006 Michael Fleming <mfleming+rpm@enlartenment.com> 1.3.14-3
- Fix Obsoletes/Provides for old "geoip"-convention packages
- Move .so symlinks to -devel where they should be

* Fri Feb 10 2006 Michael Fleming <mfleming+rpm@enlartenment.com> 1.3.14-2
- Remamed to match upstream tarball name
- Removed static libraries
- Added symlinks to packages
- Mark config file noreplace

* Sun Feb 5 2006 Michael Fleming <mfleming+rpm@enlartenment.com> 1.3.14-1
- Initial review package for Extras