Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package apache2-mod_maxminddb for openSUSE:Factory checked in at 2025-07-06 17:06:27 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/apache2-mod_maxminddb (Old) and /work/SRC/openSUSE:Factory/.apache2-mod_maxminddb.new.1903 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "apache2-mod_maxminddb" Sun Jul 6 17:06:27 2025 rev:6 rq:1290143 version:1.3.0 Changes: -------- --- /work/SRC/openSUSE:Factory/apache2-mod_maxminddb/apache2-mod_maxminddb.changes 2024-02-22 20:59:54.678224251 +0100 +++ /work/SRC/openSUSE:Factory/.apache2-mod_maxminddb.new.1903/apache2-mod_maxminddb.changes 2025-07-06 17:09:15.786315158 +0200 @@ -1,0 +2,7 @@ +Wed Jul 2 15:59:14 UTC 2025 - Torsten Gruner <simmpho...@opensuse.org> + +- update to 1.3.0 + * Portability fixes + * Documentation improvements + +------------------------------------------------------------------- Old: ---- mod_maxminddb-1.2.0.tar.gz New: ---- mod_maxminddb-1.3.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ apache2-mod_maxminddb.spec ++++++ --- /var/tmp/diff_new_pack.D8DrY0/_old 2025-07-06 17:09:16.514345283 +0200 +++ /var/tmp/diff_new_pack.D8DrY0/_new 2025-07-06 17:09:16.514345283 +0200 @@ -18,7 +18,7 @@ %define modname mod_maxminddb Name: apache2-mod_maxminddb -Version: 1.2.0 +Version: 1.3.0 Release: 0 Summary: MaxMind DB Apache Module License: Apache-2.0 ++++++ mod_maxminddb-1.2.0.tar.gz -> mod_maxminddb-1.3.0.tar.gz ++++++ ++++ 6467 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/mod_maxminddb-1.2.0/Changes.md new/mod_maxminddb-1.3.0/Changes.md --- old/mod_maxminddb-1.2.0/Changes.md 2020-02-03 23:15:23.000000000 +0100 +++ new/mod_maxminddb-1.3.0/Changes.md 2025-05-02 23:22:31.000000000 +0200 @@ -1,3 +1,8 @@ +## 1.3.0 - 2025-05-02 + +* Portability fixes +* Documentation improvements + ## 1.2.0 - 2020-02-03 * Fix a bug where uninitialized memory could be accessed when looking up diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/mod_maxminddb-1.2.0/README.md new/mod_maxminddb-1.3.0/README.md --- old/mod_maxminddb-1.2.0/README.md 2020-02-03 23:04:14.000000000 +0100 +++ new/mod_maxminddb-1.3.0/README.md 2025-05-02 23:22:31.000000000 +0200 @@ -54,10 +54,18 @@ ./configure --with-apxs=/foo/bar/apxs +## Loading the Module ## + +After installing the module, Apache has to load it. Note the installation +does this automatically, so you should not need to do anything. If you're +unsure if the module is loaded, ensure there's a `LoadModule` line +somewhere in your config, such as `LoadModule maxminddb_module +/path/to/mod_maxminddb.so`. + ## Usage ## To use this module, you must first download or create a MaxMind DB file. We -provide [free GeoLite2 databases](https://dev.maxmind.com/geoip/geoip2/geolite2) +provide [free GeoLite2 databases](https://dev.maxmind.com/geoip/geolite2-free-geolocation-data?lang=en) as well as [commercial GeoIP2 databases](https://www.maxmind.com/en/geoip2-databases). After installing this module and obtaining a database, you must now set up the @@ -119,6 +127,8 @@ MaxMindDBEnv COUNTRY_CODE COUNTRY_DB/country/iso_code MaxMindDBEnv REGION_CODE CITY_DB/subdivisions/0/iso_code +Keep in mind that the configured environment variable(s) will only be exported if the data lookup succeeds. + ### `MaxMindDBNetworkEnv` ### This directive assigns the network associated with the IP address to an @@ -228,15 +238,38 @@ This example shows how to block users based on their country: MaxMindDBEnable On - MaxMindDBFile DB /usr/local/share/GeoIP/GeoLite2-Country.mmdb - MaxMindDBEnv MM_COUNTRY_CODE DB/country/iso_code + MaxMindDBFile COUNTRY_DB /usr/local/share/GeoIP/GeoLite2-Country.mmdb + MaxMindDBEnv MM_COUNTRY_CODE COUNTRY_DB/country/iso_code + + <Directory /your/directory> + SetEnvIf MM_COUNTRY_CODE ^(RU|DE|FR) BlockCountry + <RequireAll> + Require env MM_COUNTRY_CODE + Require not env BlockCountry + </RequireAll> + </Directory> + +Note that the "Require" directive must be applied within a `<Directory>`, +`<Location>` or `<Files>` container. + +### Allowing by Country ### + +This example shows how to allow users based on their country: + + MaxMindDBEnable On + MaxMindDBFile COUNTRY_DB /usr/local/share/GeoIP/GeoLite2-Country.mmdb + MaxMindDBEnv MM_COUNTRY_CODE COUNTRY_DB/country/iso_code - SetEnvIf MM_COUNTRY_CODE ^(RU|DE|FR) BlockCountry - Deny from env=BlockCountry + <Directory /your/directory> + SetEnvIf MM_COUNTRY_CODE ^(CA|FR) AllowCountry + <RequireAll> + Require env MM_COUNTRY_CODE + Require env AllowCountry + </RequireAll> + </Directory> -Note that at least the "Deny" or "Allow" directive (or "Require" directive in -Apache 2.4 and above) must be applied within a `<Directory>`, `<Location>` or -`<Files>` container. +Note that the "Require" directive must be applied within a `<Directory>`, +`<Location>` or `<Files>` container. ## Data Output Format ## @@ -250,7 +283,7 @@ null bytes and may end up truncated when stored in an environment variable. If you really need to access this data, we recommend using [one of our programming language -APIs](https://dev.maxmind.com/geoip/geoip2/downloadable/#MaxMind_APIs) instead. +APIs](https://dev.maxmind.com/geoip/geolocate-an-ip/databases?lang=en) instead. ## Support ## @@ -267,6 +300,6 @@ ## Copyright and License ## -This software is Copyright (c) 2013-2020 by MaxMind, Inc. +This software is Copyright (c) 2013-2025 by MaxMind, Inc. This is free software, licensed under the Apache License, Version 2.0. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/mod_maxminddb-1.2.0/compile new/mod_maxminddb-1.3.0/compile --- old/mod_maxminddb-1.2.0/compile 2020-02-03 23:15:33.000000000 +0100 +++ new/mod_maxminddb-1.3.0/compile 2025-05-02 23:24:23.000000000 +0200 @@ -1,9 +1,9 @@ #! /bin/sh # Wrapper for compilers which do not understand '-c -o'. -scriptversion=2012-10-14.11; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2021 Free Software Foundation, Inc. # Written by Tom Tromey <tro...@cygnus.com>. # # This program is free software; you can redistribute it and/or modify @@ -17,7 +17,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. +# along with this program. If not, see <https://www.gnu.org/licenses/>. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -53,7 +53,7 @@ MINGW*) file_conv=mingw ;; - CYGWIN*) + CYGWIN* | MSYS*) file_conv=cygwin ;; *) @@ -67,7 +67,7 @@ mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; - cygwin/*) + cygwin/* | msys/*) file=`cygpath -m "$file" || echo "$file"` ;; wine/*) @@ -255,7 +255,8 @@ echo "compile $scriptversion" exit $? ;; - cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ + icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac @@ -339,9 +340,9 @@ # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/mod_maxminddb-1.2.0/configure.ac new/mod_maxminddb-1.3.0/configure.ac --- old/mod_maxminddb-1.2.0/configure.ac 2020-02-03 23:15:31.000000000 +0100 +++ new/mod_maxminddb-1.3.0/configure.ac 2025-05-02 23:24:22.000000000 +0200 @@ -1,10 +1,9 @@ -AC_INIT([mod_maxminddb], [1.2.0], [supp...@maxmind.com]) -AC_ARG_WITH(apxs, AC_HELP_STRING([--with-apxs=NAME], - [name of your apxs executable [[apxs]]]), +AC_INIT([mod_maxminddb],[1.3.0],[supp...@maxmind.com]) +AC_ARG_WITH(apxs, AS_HELP_STRING([--with-apxs=NAME],[name of your apxs executable [[apxs]]]), [APXS="$with_apxs"]) AC_CONFIG_AUX_DIR([.]) AM_INIT_AUTOMAKE -AC_PROG_CC_C99 +AC_PROG_CC # Copied from http://stackoverflow.com/a/10682813/9832 and tweaked for C (as # opposed to C++) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/mod_maxminddb-1.2.0/missing new/mod_maxminddb-1.3.0/missing --- old/mod_maxminddb-1.2.0/missing 2020-02-03 23:15:33.000000000 +0100 +++ new/mod_maxminddb-1.3.0/missing 2025-05-02 23:24:23.000000000 +0200 @@ -1,9 +1,9 @@ #! /bin/sh # Common wrapper for a few potentially missing GNU programs. -scriptversion=2013-10-28.13; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2021 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard <pin...@iro.umontreal.ca>, 1996. # This program is free software; you can redistribute it and/or modify @@ -17,7 +17,7 @@ # GNU General Public License for more details. # You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. +# along with this program. If not, see <https://www.gnu.org/licenses/>. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -101,9 +101,9 @@ exit $st fi -perl_URL=http://www.perl.org/ -flex_URL=http://flex.sourceforge.net/ -gnu_software_URL=http://www.gnu.org/software +perl_URL=https://www.perl.org/ +flex_URL=https://github.com/westes/flex +gnu_software_URL=https://www.gnu.org/software program_details () { @@ -207,9 +207,9 @@ exit $st # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/mod_maxminddb-1.2.0/src/mod_maxminddb.c new/mod_maxminddb-1.3.0/src/mod_maxminddb.c --- old/mod_maxminddb-1.2.0/src/mod_maxminddb.c 2020-02-03 23:04:14.000000000 +0100 +++ new/mod_maxminddb-1.3.0/src/mod_maxminddb.c 2025-05-02 23:22:31.000000000 +0200 @@ -3,7 +3,7 @@ * This module populates environment variable from a MaxMind DB database * using the requestor's IP address. * - * Copyright 2013-2020, MaxMind Inc. + * Copyright 2013-2025, MaxMind Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,15 +22,22 @@ #include <ap_config.h> #include <apr_hash.h> #include <apr_strings.h> +#if APR_HAVE_ARPA_INET_H #include <arpa/inet.h> +#endif #include <httpd.h> -// Must come after httpd.h. + // Must come after httpd.h. #include <http_config.h> #include <http_log.h> #include <http_protocol.h> #include <inttypes.h> #include <maxminddb.h> +#if APR_HAVE_SYS_SOCKET_H #include <sys/socket.h> +#endif +#if APR_HAVE_WINSOCK2_H +#include <winsock2.h> +#endif #include <sys/types.h> #ifdef APLOG_USE_MODULE @@ -74,7 +81,7 @@ static void *create_config(apr_pool_t *pool); static apr_status_t cleanup_database(void *mmdb); static char *from_uint128(apr_pool_t *pool, const MMDB_entry_data_s *result); -static char *get_client_ip(request_rec *r); +static char const *get_client_ip(request_rec *r); static void maxminddb_register_hooks(apr_pool_t *UNUSED(p)); static void *merge_config(apr_pool_t *pool, void *parent, void *child); void *merge_lookups(apr_pool_t *pool, @@ -303,6 +310,8 @@ return APR_SUCCESS; } +#define MAX_PATH_SEGMENTS 80 + static const char *set_maxminddb_env(cmd_parms *cmd, void *dir_config, const char *env, @@ -311,8 +320,7 @@ INFO(cmd->server, "set_maxminddb_env (server) %s %s", env, path); - const int max_path_segments = 80; - char *path_segments[max_path_segments + 1]; + char *path_segments[MAX_PATH_SEGMENTS + 1]; char *tokenized_path = apr_pstrdup(cmd->pool, path); int i; @@ -321,7 +329,7 @@ const char *database_name = token = apr_strtok(tokenized_path, "/", &strtok_last); - for (i = 0; i < max_path_segments && token; i++) { + for (i = 0; i < MAX_PATH_SEGMENTS && token; i++) { token = apr_strtok(NULL, "/", &strtok_last); path_segments[i] = token; } @@ -331,7 +339,7 @@ return NULL; } char **new_path_segments = (char **)apr_pmemdup( - cmd->pool, path_segments, (1 + i) * sizeof(char *)); + cmd->pool, path_segments, (size_t)(1 + i) * sizeof(char *)); apr_hash_t *lookups_for_db = apr_hash_get(conf->lookups, database_name, APR_HASH_KEY_STRING); if (NULL == lookups_for_db) { @@ -383,7 +391,7 @@ if (!conf || conf->enabled != 1) { return DECLINED; } - char *ip_address = get_client_ip(r); + char const *const ip_address = get_client_ip(r); INFO(r->server, "maxminddb_header_parser %s", ip_address); if (NULL == ip_address) { return DECLINED; @@ -404,10 +412,10 @@ return OK; } -static char *get_client_ip(request_rec *r) { +static char const *get_client_ip(request_rec *r) { const char *addr = apr_table_get(r->subprocess_env, "MMDB_ADDR"); if (addr) { - return (char *)addr; + return addr; } #if AP_SERVER_MAJORVERSION_NUMBER == 2 && AP_SERVER_MINORVERSION_NUMBER == 4 return r->useragent_ip; @@ -437,7 +445,7 @@ int const gai_status = getaddrinfo(ip_address, NULL, &hints, &addresses); if (gai_status != 0) { ERROR(r->server, - "Error resolving IP address: %s", + "Error resolving IP address '%s': %s", ip_address, gai_strerror(gai_status)); return; } @@ -605,13 +613,13 @@ if (address->ai_family == AF_INET && mmdb->metadata.ip_version == 6) { // The prefix length given the IPv4 address. If there is no IPv4 // subtree, we use a prefix length of 0. - prefix = prefix >= 96 ? prefix - 96 : 0; + prefix = (uint16_t)(prefix >= 96 ? prefix - 96 : 0); } if (address->ai_family == AF_INET) { struct sockaddr_in const *const sin = (struct sockaddr_in *)address->ai_addr; - uint8_t const *const ip = (uint8_t *)&sin->sin_addr.s_addr; + uint8_t const *const ip = (uint8_t const *)&sin->sin_addr.s_addr; uint8_t network_ip[4] = {0}; @@ -646,7 +654,7 @@ uint8_t b = ip[i]; if (prefix2 < 8) { int const shift_n = 8 - prefix2; - b = 0xff & (b >> shift_n) << shift_n; + b = (uint8_t)(0xff & (b >> shift_n) << shift_n); } network_ip[i] = b; prefix2 -= 8; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/mod_maxminddb-1.2.0/t/SMOKE new/mod_maxminddb-1.3.0/t/SMOKE --- old/mod_maxminddb-1.2.0/t/SMOKE 2020-01-23 18:09:00.000000000 +0100 +++ new/mod_maxminddb-1.3.0/t/SMOKE 1970-01-01 01:00:00.000000000 +0100 @@ -1,22 +0,0 @@ -#!/home/greg/.plenv/versions/5.28.2/bin/perl5.28.2 -# WARNING: this file is generated, do not edit -# generated on Thu Jan 23 09:09:00 2020 -# 01: /home/greg/.plenv/versions/5.28.2/lib/perl5/site_perl/5.28.2/x86_64-linux/Apache/TestConfig.pm:1003 -# 02: /home/greg/.plenv/versions/5.28.2/lib/perl5/site_perl/5.28.2/x86_64-linux/Apache/TestConfig.pm:1095 -# 03: /home/greg/.plenv/versions/5.28.2/lib/perl5/site_perl/5.28.2/x86_64-linux/Apache/TestSmoke.pm:775 -# 04: /home/greg/.plenv/versions/5.28.2/lib/perl5/site_perl/5.28.2/x86_64-linux/Apache/TestMM.pm:143 -# 05: Makefile.PL:17 - -BEGIN { eval { require blib && blib->import; } } - -use strict; -use warnings FATAL => 'all'; - -use lib qw( - /home/greg/MaxMind/mod_maxminddb/t/lib - /home/greg/MaxMind/mod_maxminddb -); - - -use Apache::TestSmoke; -Apache::TestSmoke->new(@ARGV)->run; \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/mod_maxminddb-1.2.0/t/conf/extra.conf.in new/mod_maxminddb-1.3.0/t/conf/extra.conf.in --- old/mod_maxminddb-1.2.0/t/conf/extra.conf.in 2020-02-03 23:04:14.000000000 +0100 +++ new/mod_maxminddb-1.3.0/t/conf/extra.conf.in 2025-05-02 23:22:18.000000000 +0200 @@ -1,5 +1,3 @@ -LoadModule mpm_worker_module /usr/lib/apache2/modules/mod_mpm_worker.so - LoadModule alias_module /usr/lib/apache2/modules/mod_alias.so LoadModule authn_core_module /usr/lib/apache2/modules/mod_authn_core.so LoadModule authz_core_module /usr/lib/apache2/modules/mod_authz_core.so diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/mod_maxminddb-1.2.0/t/setup/apache2.conf new/mod_maxminddb-1.3.0/t/setup/apache2.conf --- old/mod_maxminddb-1.2.0/t/setup/apache2.conf 2019-02-08 21:32:55.000000000 +0100 +++ new/mod_maxminddb-1.3.0/t/setup/apache2.conf 2025-05-02 23:22:18.000000000 +0200 @@ -1,4 +1,4 @@ -ServerRoot /home/travis/build/maxmind/mod_maxminddb/t +ServerRoot /home/runner/work/mod_maxminddb/mod_maxminddb/t ServerName localhost LoadModule mpm_worker_module /usr/lib/apache2/modules/mod_mpm_worker.so