# Noarch subpackages available from Fedora 10, RHEL 6
%global noarch_subpkgs 0%{?fedora} > 9 || 0%{?rhel} > 5
Name: GeoIP
Version: 1.5.0
Release: 13%{?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}
%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 update
Summary: Crontab entry to facilitate automatic updates of databases
Group: Applications/Databases
Requires: crontabs
Requires: %{name} = %{version}-%{release}
%if %{noarch_subpkgs}
BuildArch: noarch
%endif
%description update
Crontab entry to provide weekly updates of the GeoIP free databases.
%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
install -D -m644 %{SOURCE5} geoipupdate.cron
# 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
# fetch database updates weekly
install -D -m755 geoipupdate.cron %{buildroot}%{_sysconfdir}/cron.weekly/geoipupdate
# nix the stuff we don't need like .la files.
rm -f %{buildroot}%{_libdir}/*.la
# fix up the config file to use the free products by default
sed -i \
-e 's/YOUR_LICENSE_KEY_HERE$/000000000000/' \
-e 's/YOUR_USER_ID_HERE$/999999/' \
-e 's/106$/506 533/' \
%{buildroot}%{_sysconfdir}/GeoIP.conf
# 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
%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-*
%config(noreplace) %{_sysconfdir}/GeoIP.conf
%config(noreplace) %{_sysconfdir}/GeoIP.conf.default
%{_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*
# GPLv2+
%{_bindir}/geoipupdate
%{_libdir}/libGeoIPUpdate.so.0
%{_libdir}/libGeoIPUpdate.so.0.*
%{_mandir}/man1/geoipupdate.1*
%files update
%{_sysconfdir}/cron.weekly/geoipupdate
%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
%{_includedir}/GeoIPUpdate.h
%{_libdir}/libGeoIP.so
%{_libdir}/pkgconfig/geoip.pc
# GPLv2+
%{_libdir}/libGeoIPUpdate.so
%changelog
* 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