From ce9e162e130d2e5d04eec8273f45481b2903141e Mon Sep 17 00:00:00 2001 From: eabdullin Date: Wed, 13 Jul 2022 11:56:42 +0300 Subject: [PATCH] Initial commit --- .GeoIP.metadata | 7 + SPECS/GeoIP.spec | 486 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 493 insertions(+) create mode 100644 .GeoIP.metadata create mode 100644 SPECS/GeoIP.spec diff --git a/.GeoIP.metadata b/.GeoIP.metadata new file mode 100644 index 0000000..f6cb5ce --- /dev/null +++ b/.GeoIP.metadata @@ -0,0 +1,7 @@ +ac1a6809afbb7624aff2f6e12ceb300b12de1715 SOURCES/GeoIP-1.6.12.tar.gz +4ec0df2fd67f7d17d581ad5c1b96aa87d6c838e8 SOURCES/GeoIPASNum.dat.gz +4085ecf9a64a10214f33a350c2a299b4c292117b SOURCES/GeoIPASNumv6.dat.gz +3b7cc30ddfc2f559c14b798f1d7e52241a7d9cdc SOURCES/GeoIPv6.dat.gz +a15de3d2059fef4b0e77f3a3bb1b95ac6090eba1 SOURCES/GeoLiteCityv6.dat.gz +1342a88b7ec340f7047f34de5ed722ac37c38fe0 SOURCES/GeoIP.dat.gz +bb7eca125c87d4df7d41035d3eaafd8be9da9e18 SOURCES/GeoLiteCity.dat.gz diff --git a/SPECS/GeoIP.spec b/SPECS/GeoIP.spec new file mode 100644 index 0000000..2b9dc34 --- /dev/null +++ b/SPECS/GeoIP.spec @@ -0,0 +1,486 @@ +# Tests require network access so fail in koji; build using --with tests to run them yourself +%bcond_with tests + +Name: GeoIP +Version: 1.6.12 +Release: 7%{?dist} +Summary: Library for country/city/organization to IP address or hostname mapping +License: LGPLv2+ +URL: http://www.maxmind.com/app/c +Source0: https://github.com/maxmind/geoip-api-c/releases/download/v%{version}/GeoIP-%{version}.tar.gz +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 +BuildRequires: coreutils +BuildRequires: gcc +BuildRequires: make +BuildRequires: sed +BuildRequires: zlib-devel +Requires: GeoIP-data + +# For compatibility with original release of GeoIP in old distributions +%if 0%{?fedora} < 22 && 0%{?rhel} < 8 +Requires: geoipupdate +%endif + +# Old name of GeoIP library package +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 file based databases that can optionally be updated on a weekly basis +by installing the geoipupdate-cron (IPv4) and/or geoipupdate-cron6 (IPv6) +packages. + +%package devel +Summary: Development headers and libraries for GeoIP +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. + +%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/ + +%prep +%setup -q +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 +%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 +make DESTDIR=%{buildroot} INSTALL="install -p" 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 + + +%check +# Tests require network access so fail in koji; build using --with tests to run them yourself +%{?with_tests:LD_LIBRARY_PATH=%{buildroot}%{_libdir} make check} + +%ldconfig_scriptlets + +%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 +%if 0%{?_licensedir:1} +%license COPYING +%else +%doc COPYING +%endif +%doc AUTHORS ChangeLog NEWS.md README.md +%{_bindir}/geoiplookup +%{_bindir}/geoiplookup6 +%{_libdir}/libGeoIP.so.1 +%{_libdir}/libGeoIP.so.1.* +%{_mandir}/man1/geoiplookup.1* +%{_mandir}/man1/geoiplookup6.1* +%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 + +%files devel +%{_includedir}/GeoIP.h +%{_includedir}/GeoIPCity.h +%{_libdir}/libGeoIP.so +%{_libdir}/pkgconfig/geoip.pc + +%files data +%{_datadir}/GeoIP/GeoIPCity-initial.dat +%{_datadir}/GeoIP/GeoIPCityv6-initial.dat +%{_datadir}/GeoIP/GeoIPASNum-initial.dat +%{_datadir}/GeoIP/GeoIPASNumv6-initial.dat + +%changelog +* Thu Nov 28 2019 Thomas Andrejak - 1.6.12-7 +- Rebuilt for EPEL8 + +* Wed Jul 24 2019 Fedora Release Engineering - 1.6.12-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Thu Jan 31 2019 Fedora Release Engineering - 1.6.12-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Thu Jul 12 2018 Fedora Release Engineering - 1.6.12-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed Feb 07 2018 Fedora Release Engineering - 1.6.12-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Sat Feb 03 2018 Igor Gnatenko - 1.6.12-2 +- Switch to %%ldconfig_scriptlets + +* Thu Jan 18 2018 Paul Howarth - 1.6.12-1 +- Update to 1.6.12 + - Populate metro and area code when performing lookups in IPv6 City + databases; previously this was only done when using IPv4 City + databases + +* Wed Aug 02 2017 Fedora Release Engineering - 1.6.11-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 1.6.11-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Tue May 16 2017 Paul Howarth - 1.6.11-1 +- Update to 1.6.11 + - Fix use of a NULL pointer when opening a corrupt database with 'GeoIP_open' + (GH#87) +- Drop EL-5 support + - Drop redundant BuildRoot: and Group: tags + - Drop EL5-only dependency on GeoIP-GeoLite-data + - Drop explicit pkgconfig dependency in devel package + - Drop buildroot cleaning in %%install section + - Drop explicit %%clean section + +* Thu Mar 30 2017 Paul Howarth - 1.6.10-1 +- Update to 1.6.10 + - GeoIP_database_info now returns the full version string rather than + incorrectly truncating it (GH#79) + - This API is now distributed with a small test copy of GeoIP.dat rather than + a full copy + - Fix issue where Visual Studio 2015 was optimizing out initialization code + (GH#81) + - Fix test/benchmark on Windows (GH#75) + +* Sun Feb 26 2017 Paul Howarth - 1.6.9-4 +- Fix GeoIP_database_info truncation issue (#1426853, GH#79, GH#80) + +* Fri Feb 10 2017 Fedora Release Engineering - 1.6.9-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Wed Feb 03 2016 Fedora Release Engineering - 1.6.9-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Tue Jan 12 2016 Paul Howarth - 1.6.9-1 +- Update to 1.6.9 + - Allow compilation on older systems by relaxing the autoconf and automake + minimum versions + - Avoid potential problems in multi-threaded environments by consistently + using pread() rather than read() + - Fix various small issues reported by clang's static analyser + - Fix a regression introduced in version 1.6.8, which caused + GeoIP_database_info to erroneously return NULL + +* Sun Nov 1 2015 Paul Howarth - 1.6.7-1 +- Update to 1.6.7 + - Fixed a MSVC parser stack overflow when parsing 'regionName.c' and + 'timeZone.c' (GH#54) + - Updated region codes and timezones + - When using 'GEOIP_MEMORY_CACHE' with an invalid database file, the search + tree traversal could attempt to read memory outside of the memory allocated + for the memory cache, resulting in a segmentation fault; a check was added + to ensure that the traversal code does not try to read beyond the end of + the file, whether in memory, memory mapped, or on disk + - Previously the return values from file reads were ignored; we now check + these values to ensure that there were no errors + +* Thu Jul 30 2015 Paul Howarth - 1.6.6-1 +- Update to 1.6.6 + - Replaced usage of deprecated fileno, read, and lseek on Visual Studio 2005+ + with their ISO C++ conformant replacements (GH#55) + - A warning about using a double as a float was fixed (GH#56) + - Fixed segfault when doing a lookup on an empty database (GH#62) + - Fixed a memcheck error from valgrind in the '_check_mtime' function (GH#60) + - Fixed '_check_mtime' to check the return value of 'gettimeofday' rather + than just assuming it worked + +* Tue Jun 16 2015 Fedora Release Engineering - 1.6.5-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Thu Apr 23 2015 Paul Howarth - 1.6.5-2 +- Work around problems with old GeoIP-data package in CentOS 5 Extras + repo (http://bugs.centos.org/view.php?id=8488) by requiring + GeoIP-GeoLite-data rather than the virtual GeoIP-data for EL-5 builds only + +* Mon Mar 2 2015 Paul Howarth - 1.6.5-1 +- Update to 1.6.5 + - Fixed a segmentation fault in geoiplookup when the utility was passed an + invalid database (#1180874) + - Additional validation was added for the size used in the creation of the + index cache (#832913) + - Changed the code to only look up country codes by using functions that + ensure that we do not try to look past the end of an array (GitHub #53) + +* Fri Feb 20 2015 Paul Howarth - 1.6.4-4 +- Databases now unbundled to the GeoIP-GeoLite-data package +- Drop long-unused perl helper scripts +- Add explicit pkgconfig dependency for EL-5 build +- Drop timestamp hack for configure, no longer needed + +* Tue Feb 10 2015 Paul Howarth - 1.6.4-3 +- Sub-package the data; going forward, this would be better as a separate + package, since it has separate upstream releases than the library + +* Fri Feb 6 2015 Paul Howarth - 1.6.4-2 +- Only require geoipupdate prior to F-22, for back-compatibility +- Use %%license where possible +- GeoIP-devel provides geoip-devel as well as obsoleting it +- Update bundled databases + +* Thu Jan 29 2015 Philip Prindeville - 1.6.4-1 +- Require geoipupdate per Paul + +* Tue Jan 20 2015 Philip Prindeville - 1.6.4-0 +- Version bump to 1.6.4 per bz #1158667 (okay, that bug was for 1.6.3) +- Remove geoipupdate as it will be moving into its own package + +* Fri Aug 15 2014 Fedora Release Engineering - 1.5.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Fri Jun 06 2014 Fedora Release Engineering - 1.5.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Tue Feb 25 2014 Paul Howarth - 1.5.1-4 +- Add %%check, so we can run tests by building using --with tests +- Update databases from upstream + +* Fri Aug 02 2013 Fedora Release Engineering - 1.5.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Tue Jun 18 2013 Paul Howarth - 1.5.1-2 +- Properly provide all of the GeoLite databases and their IPv6 equivalents, as + per the geoip-geolite package that we're obsoleting/providing +- Provide compatibility symlinks for database files that historically had + different names in GeoIP and geoip-geolite +- Don't distribute unbundled LICENSE files, as per packaging guidelines +- Update license tag to reflect distribution of CC-BY-SA database content +- No longer try to update the databases in %%post +- Maintain timestamps where possible +- Set up GeoIP.dat symlink in package and don't touch it again +- Add update6 package to update the IPv6 databases; have to use wget for this + rather than geoipupdate as the databases are still in beta + +* Wed Jun 12 2013 Philip Prindeville - 1.5.1-1 +- Bump to version 1.5.1 +- Fix exit codes for various situations (MaxMind support #129155) +- Use versioned obsoletes/provides for geoip-geolite +- Update UTF8 patch +- Change symlink from GeoIP-initial.dat to GeoLiteCountry.dat if we had a + successful download and now have the latter file. + +* Mon Jun 10 2013 Philip Prindeville - 1.5.0-7 +- Annotate conflict with geoip-geolite package (#968074) + +* Mon Jun 10 2013 Paul Howarth - 1.5.0-6 +- Update sub-package requires main package for geoipupdate script + +* Sat Jun 8 2013 Paul Howarth - 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 - 1.5.0-4 +- Revert ability to replace 3rd-party package + +* Fri Jun 07 2013 Philip Prindeville - 1.5.0-3 +- Add attributes for %%ghost files + +* Fri Jun 07 2013 Philip Prindeville - 1.5.0-2 +- Make update subpackage be noarch. + +* Fri Jun 07 2013 Philip Prindeville - 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 - 1.4.8-6 +- Fix config.guess and config.sub to add aarch64 support (#925403) + +* Wed Feb 13 2013 Fedora Release Engineering - 1.4.8-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Mon Oct 22 2012 Paul Howarth - 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 - 1.4.8-3.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Thu Jan 12 2012 Fedora Release Engineering - 1.4.8-2.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Tue Sep 6 2011 Michael Fleming - 1.4.8-1.1 +- Remove -ipv6 patch +- Bump to 1.4.8 release + +* Wed Feb 09 2011 Fedora Release Engineering - 1.4.7-0.2.20090931cvs +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Mon Aug 31 2009 Matt Domsch - 1.4.7.0.1.20090931 +- apply CVS HEAD 20090931 which includes IPv6 functions + +* Fri Jul 24 2009 Fedora Release Engineering - 1.4.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Sun Mar 08 2009 Michael Fleming - 1.4.6-1 +- Add geoiplookup6 man page +- Update to 1.4.6 + +* Mon Feb 23 2009 Fedora Release Engineering - 1.4.5-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Sat Nov 29 2008 Michael Fleming 1.4.5-2 +- Update to 1.4.5 +- Fix database URL locations in Perl helper scripts + +* Tue Feb 19 2008 Fedora Release Engineering - 1.4.4-2 +- Autorebuild for GCC 4.3 + +* Mon Jan 28 2008 Michael Fleming 1.4.4-1 +- New upstream release. + +* Wed Sep 5 2007 Michael Fleming 1.4.3-1 +- New upstream release. +- Fix GeoIPCity fetcher script +- Update License tag + +* Mon Feb 12 2007 Michael Fleming 1.4.2-1 +- New upstream release. + +* Mon Jan 8 2007 Michael Fleming 1.4.1-2 +- License is actually LGPL now. + +* Sun Jan 7 2007 Michael Fleming 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 1.4.0-4 +- Fix %%install scripts to satisfy newer mock builds + +* Sun Sep 3 2006 Michael Fleming 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 1.3.17-1 +- New upstream release (minor fixes) + +* Mon May 1 2006 Michael Fleming 1.3.16-1 +- New upstream release +- Add INSTALL document to package. + +* Sat Feb 18 2006 Michael Fleming 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 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 1.3.14-1 +- Initial review package for Extras