Author: dsahlberg
Date: Thu Jul 3 14:35:58 2025
New Revision: 1926941
URL: http://svn.apache.org/viewvc?rev=1926941&view=rev
Log:
On the PR-8 branch: Catch up with trunk r1926940
Modified:
serf/branches/PR-8/ (props changed)
serf/branches/PR-8/CMakeLists.txt
serf/branches/PR-8/README
serf/branches/PR-8/SConstruct
serf/branches/PR-8/build/FindAPR.cmake
serf/branches/PR-8/build/check.py
serf/branches/PR-8/test/test_all.c
Propchange: serf/branches/PR-8/
------------------------------------------------------------------------------
Merged /serf/trunk:r1926893-1926940
Modified: serf/branches/PR-8/CMakeLists.txt
URL:
http://svn.apache.org/viewvc/serf/branches/PR-8/CMakeLists.txt?rev=1926941&r1=1926940&r2=1926941&view=diff
==============================================================================
--- serf/branches/PR-8/CMakeLists.txt (original)
+++ serf/branches/PR-8/CMakeLists.txt Thu Jul 3 14:35:58 2025
@@ -470,14 +470,20 @@ install(FILES ${HEADERS} DESTINATION "${
# Generate the pkg-config module file.
if(NOT SERF_WINDOWS)
+ set(SERF_PC_FILE "serf-${SERF_MAJOR_VERSION}.pc")
+
# Use a separate variable scope for the substitutions in serf.pc.in.
function(make_pkgconfig)
- set(PREFIX ${CMAKE_INSTALL_PREFIX})
+ # Use a relative prefix to create a relocatable PC file.
+ file(RELATIVE_PATH relfragment "/${SERF_INSTALL_PKGCONFIG}" "/")
+ file(TO_CMAKE_PATH "\${pcfiledir}/${relfragment}" relprefix)
+
+ set(PREFIX ${relprefix})
set(INCLUDE_SUBDIR ${SERF_INCLUDE_SUBDIR})
set(LIBDIR \${prefix}/${SERF_INSTALL_LIBRARIES})
set(VERSION ${SERF_VERSION})
set(MAJOR ${SERF_MAJOR_VERSION})
- set(SERF_INTERFACE_LIBS
+ set(LIBS
${APR_LDFLAGS}
${APR_LIBRARIES}
${APR_EXTRALIBS}
@@ -487,16 +493,13 @@ if(NOT SERF_WINDOWS)
${GSSAPI_LIBRARIES}
${ZLIB_LIBRARIES}
)
- list(REMOVE_DUPLICATES SERF_INTERFACE_LIBS)
- unset(LIBS)
- foreach(DEPLIB ${SERF_INTERFACE_LIBS})
- string(APPEND LIBS " ${DEPLIB}")
- endforeach()
- configure_file("build/serf.pc.in" "serf-${SERF_MAJOR_VERSION}.pc" @ONLY)
+ list(REMOVE_DUPLICATES LIBS)
+ list(JOIN LIBS " " LIBS)
+ configure_file("build/serf.pc.in" "${SERF_PC_FILE}" @ONLY)
endfunction()
make_pkgconfig()
- install(FILES "${CMAKE_CURRENT_BINARY_DIR}/serf-${SERF_MAJOR_VERSION}.pc"
+ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${SERF_PC_FILE}"
DESTINATION "${SERF_INSTALL_PKGCONFIG}")
endif()
Modified: serf/branches/PR-8/README
URL:
http://svn.apache.org/viewvc/serf/branches/PR-8/README?rev=1926941&r1=1926940&r2=1926941&view=diff
==============================================================================
--- serf/branches/PR-8/README (original)
+++ serf/branches/PR-8/README Thu Jul 3 14:35:58 2025
@@ -68,7 +68,7 @@ to apu-1-config in $APU or $APU/bin/apu-
OPENSSL should specify the root of the install (e.g., /opt/local). The
includes will be found $OPENSSL/include/openssl and libraries at $OPENSSL/lib.
-OPENSSL should specify the root of the install. The includes will be found
+ZLIB should specify the root of the install. The includes will be found
$ZLIB/include and libraries at $ZLIB/lib.
The BROTLI and GSSAPI dependencies are optional.
Modified: serf/branches/PR-8/SConstruct
URL:
http://svn.apache.org/viewvc/serf/branches/PR-8/SConstruct?rev=1926941&r1=1926940&r2=1926941&view=diff
==============================================================================
--- serf/branches/PR-8/SConstruct (original)
+++ serf/branches/PR-8/SConstruct Thu Jul 3 14:35:58 2025
@@ -96,6 +96,15 @@ def createPathIsDirCreateWithTarget(targ
return PathVariable.PathAccept(key, val, env)
return my_validator
+def filter_cflags(env, cmd, unique=0):
+ '''Filter all debugging, optimization and warning flags from 'cmd'.'''
+ cmd = re.sub(r'(^|\s)-[gOW]\S*', '', cmd)
+ return env.MergeFlags(cmd, unique)
+
+def unsubstable(string):
+ '''There are things that SCons just shouldn't Subst.'''
+ return string.replace('$', '$$')
+
# default directories
if sys.platform == 'win32':
default_incdir='..'
@@ -538,11 +547,13 @@ else:
### we should use --cc, but that is giving some scons error about an
implicit
### dependency upon gcc. probably ParseConfig doesn't know what to do with
### the apr-1-config output
- env.ParseConfig('$APR --cflags --cppflags --ldflags --includes'
- ' --link-ld --libs', unique=0)
+
+ env.ParseConfig('$APR --cflags --cppflags --includes'
+ ' --ldflags --link-ld --libs',
+ filter_cflags)
if apr_major < 2:
- env.ParseConfig('$APU --ldflags --includes --link-ld --libs',
- unique=0)
+ env.ParseConfig('$APU --includes --ldflags --link-ld --libs',
+ filter_cflags)
### there is probably a better way to run/capture output.
### env.ParseConfig() may be handy for getting this stuff into the build
@@ -667,12 +678,14 @@ for d in env['LIBPATH']:
env.Append(RPATH=[':'+d])
# Set up the construction of serf-*.pc
+pkgprefix = os.path.relpath(env.subst('$PREFIX'),
env.subst('$LIBDIR/pkgconfig'))
+pkglibdir = os.path.relpath(env.subst('$LIBDIR'), env.subst('$PREFIX'))
pkgconfig = env.Textfile('serf-%d.pc' % (MAJOR,),
env.File('build/serf.pc.in'),
SUBST_DICT = {
'@MAJOR@': str(MAJOR),
- '@PREFIX@': re.escape(str(env['PREFIX'])),
- '@LIBDIR@': re.escape(str(env['LIBDIR'])),
+ '@PREFIX@': unsubstable('${pcfiledir}/' +
pkgprefix),
+ '@LIBDIR@': unsubstable('${prefix}/' + pkglibdir),
'@INCLUDE_SUBDIR@': 'serf-%d' % (MAJOR,),
'@VERSION@': '%d.%d.%d' % (MAJOR, MINOR, PATCH),
'@LIBS@': '%s %s %s %s -lz' % (apu_libs, apr_libs,
@@ -741,7 +754,10 @@ test_app = ("%s %s %s %s") % (sys.execut
test_env = {'PATH' : os.environ['PATH'],
'srcdir' : src_dir}
if sys.platform != 'win32':
- test_env['LD_LIBRARY_PATH'] = ':'.join(tenv.get('LIBPATH', []))
+ os_library_path = os.environ.get('LD_LIBRARY_PATH')
+ os_library_path = [os_library_path] if os_library_path else []
+ ld_library_path = [tenv.subst(p) for p in tenv.get('LIBPATH', [])]
+ test_env['LD_LIBRARY_PATH'] = ':'.join(ld_library_path + os_library_path)
env.AlwaysBuild(env.Alias('check', TEST_EXES, test_app, ENV=test_env))
testall_files = [
Modified: serf/branches/PR-8/build/FindAPR.cmake
URL:
http://svn.apache.org/viewvc/serf/branches/PR-8/build/FindAPR.cmake?rev=1926941&r1=1926940&r2=1926941&view=diff
==============================================================================
--- serf/branches/PR-8/build/FindAPR.cmake (original)
+++ serf/branches/PR-8/build/FindAPR.cmake Thu Jul 3 14:35:58 2025
@@ -229,7 +229,7 @@ if(NOT _apru_include_only_utilities)
_apru_config(${APR_CONFIG_EXECUTABLE} ${_varname} "${_regexp}" "${ARGN}")
endmacro(_apr_invoke)
- _apr_invoke(APR_CFLAGS "(^| )-(g|O)[^ ]*" --cppflags --cflags)
+ _apr_invoke(APR_CFLAGS "(^| )-[gOW][^ ]*" --cppflags --cflags)
_apr_invoke(APR_INCLUDES "(^| )-I" --includes)
_apr_invoke(APR_LDFLAGS "" --ldflags)
_apr_invoke(APR_LIBRARIES "" --link-ld)
Modified: serf/branches/PR-8/build/check.py
URL:
http://svn.apache.org/viewvc/serf/branches/PR-8/build/check.py?rev=1926941&r1=1926940&r2=1926941&view=diff
==============================================================================
--- serf/branches/PR-8/build/check.py (original)
+++ serf/branches/PR-8/build/check.py Thu Jul 3 14:35:58 2025
@@ -10,9 +10,9 @@
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
-#
+#
# http://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -60,8 +60,25 @@ if __name__ == '__main__':
sys.exit(1)
print("== Running the unit tests ==")
+
+ fails = 0
+ def print_exception(x):
+ global fails
+ print("ERROR: test(s) failed in '%s', exit code=%d"
+ % (' '.join(x.cmd), x.returncode))
+ fails += 1
+
try:
- subprocess.check_call(TEST_ALL_EXE)
+ suites = subprocess.check_output([TEST_ALL_EXE, '-L']).decode()
+ for suite in suites.splitlines():
+ testcase = (TEST_ALL_EXE, suite.strip())
+ print("==== %s %s" % testcase)
+ try:
+ subprocess.check_call(testcase)
+ except subprocess.CalledProcessError as x:
+ print_exception(x)
except subprocess.CalledProcessError as x:
- print("ERROR: test(s) failed in '%s', exit code=%d" % (x.cmd,
x.returncode))
+ print_exception(x)
+
+ if fails > 0:
sys.exit(1)
Modified: serf/branches/PR-8/test/test_all.c
URL:
http://svn.apache.org/viewvc/serf/branches/PR-8/test/test_all.c?rev=1926941&r1=1926940&r2=1926941&view=diff
==============================================================================
--- serf/branches/PR-8/test/test_all.c (original)
+++ serf/branches/PR-8/test/test_all.c Thu Jul 3 14:35:58 2025
@@ -18,12 +18,12 @@
* ====================================================================
*/
-#include "apr.h"
-#include "apr_pools.h"
+#include <stdlib.h>
+
+#include <apr.h>
#include <apr_signal.h>
#include "test_serf.h"
-#include <stdlib.h>
static const struct testlist {
const char *testname;
@@ -62,19 +62,22 @@ int main(int argc, char *argv[])
if (!strcmp(argv[i], "-v")) {
continue;
}
- if (!strcmp(argv[i], "-l")) {
+ if (!strcmp(argv[i], "-l") || !strcmp(argv[i], "-L")) {
+ const int details = !strcmp(argv[i], "-l");
for (i = 0; tests[i].func != NULL; i++) {
CuSuite *suite;
- int j = 0;
printf("%s\n", tests[i].testname);
- suite = tests[i].func();
+ if (details) {
+ int j;
- for (j = 0; j < suite->count; j++) {
- printf(" %3d - %s\n", j+1, suite->list[j]->name);
- }
+ suite = tests[i].func();
+ for (j = 0; j < suite->count; j++) {
+ printf(" %3d - %s\n", j+1, suite->list[j]->name);
+ }
- printf("\n");
+ printf("\n");
+ }
}
exit(0);
}