Package init
This commit is contained in:
parent
8eb86965cd
commit
14b7d9a270
103
Fix-pool-debugging-output-so-that-creation-events-ar.patch
Normal file
103
Fix-pool-debugging-output-so-that-creation-events-ar.patch
Normal file
@ -0,0 +1,103 @@
|
||||
From 6df2b8ec805230db90677b54afe2d122cf0bd8c8 Mon Sep 17 00:00:00 2001
|
||||
From: Rainer Jung <rjung@apache.org>
|
||||
Date: Wed, 17 Jul 2019 11:43:58 +0000
|
||||
Subject: [PATCH 05/10] Fix pool debugging output so that creation events are
|
||||
always emitted before allocation events and subpool destruction events are
|
||||
emitted on pool clear/destroy for proper accounting.
|
||||
|
||||
Backport of r1675967 from trunk resp. r1863202 from 1.7.x.
|
||||
|
||||
|
||||
git-svn-id: https://svn.apache.org/repos/asf/apr/apr/branches/1.6.x@1863211 13f79535-47bb-0310-9956-ffa450edef68
|
||||
---
|
||||
CHANGES | 4 ++++
|
||||
memory/unix/apr_pools.c | 27 +++++++++++++--------------
|
||||
2 files changed, 17 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/memory/unix/apr_pools.c b/memory/unix/apr_pools.c
|
||||
index 17fadb42a..9fdd00129 100644
|
||||
--- a/memory/unix/apr_pools.c
|
||||
+++ b/memory/unix/apr_pools.c
|
||||
@@ -1886,10 +1886,6 @@ APR_DECLARE(void) apr_pool_clear_debug(apr_pool_t *pool,
|
||||
|
||||
apr_pool_check_lifetime(pool);
|
||||
|
||||
-#if (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE)
|
||||
- apr_pool_log_event(pool, "CLEAR", file_line, 1);
|
||||
-#endif /* (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE) */
|
||||
-
|
||||
#if APR_HAS_THREADS
|
||||
if (pool->parent != NULL)
|
||||
mutex = pool->parent->mutex;
|
||||
@@ -1905,6 +1901,10 @@ APR_DECLARE(void) apr_pool_clear_debug(apr_pool_t *pool,
|
||||
|
||||
pool_clear_debug(pool, file_line);
|
||||
|
||||
+#if (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE)
|
||||
+ apr_pool_log_event(pool, "CLEAR", file_line, 1);
|
||||
+#endif /* (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE) */
|
||||
+
|
||||
#if APR_HAS_THREADS
|
||||
/* If we had our own mutex, it will have been destroyed by
|
||||
* the registered cleanups. Recreate the mutex. Unlock
|
||||
@@ -1929,12 +1929,12 @@ static void pool_destroy_debug(apr_pool_t *pool, const char *file_line)
|
||||
{
|
||||
apr_pool_check_lifetime(pool);
|
||||
|
||||
+ pool_clear_debug(pool, file_line);
|
||||
+
|
||||
#if (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE)
|
||||
apr_pool_log_event(pool, "DESTROY", file_line, 1);
|
||||
#endif /* (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE) */
|
||||
|
||||
- pool_clear_debug(pool, file_line);
|
||||
-
|
||||
/* Remove the pool from the parents child list */
|
||||
if (pool->parent) {
|
||||
#if APR_HAS_THREADS
|
||||
@@ -2043,6 +2043,9 @@ APR_DECLARE(apr_status_t) apr_pool_create_ex_debug(apr_pool_t **newpool,
|
||||
pool->owner_proc = (apr_os_proc_t)getnlmhandle();
|
||||
#endif /* defined(NETWARE) */
|
||||
|
||||
+#if (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE)
|
||||
+ apr_pool_log_event(pool, "CREATE", file_line, 1);
|
||||
+#endif /* (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE) */
|
||||
|
||||
if (parent == NULL || parent->allocator != allocator) {
|
||||
#if APR_HAS_THREADS
|
||||
@@ -2072,10 +2075,6 @@ APR_DECLARE(apr_status_t) apr_pool_create_ex_debug(apr_pool_t **newpool,
|
||||
|
||||
*newpool = pool;
|
||||
|
||||
-#if (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE)
|
||||
- apr_pool_log_event(pool, "CREATE", file_line, 1);
|
||||
-#endif /* (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE) */
|
||||
-
|
||||
return APR_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -2129,6 +2128,10 @@ APR_DECLARE(apr_status_t) apr_pool_create_unmanaged_ex_debug(apr_pool_t **newpoo
|
||||
}
|
||||
pool->allocator = pool_allocator;
|
||||
|
||||
+#if (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE)
|
||||
+ apr_pool_log_event(pool, "CREATEU", file_line, 1);
|
||||
+#endif /* (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE) */
|
||||
+
|
||||
if (pool->allocator != allocator) {
|
||||
#if APR_HAS_THREADS
|
||||
apr_status_t rv;
|
||||
@@ -2151,10 +2154,6 @@ APR_DECLARE(apr_status_t) apr_pool_create_unmanaged_ex_debug(apr_pool_t **newpoo
|
||||
|
||||
*newpool = pool;
|
||||
|
||||
-#if (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE)
|
||||
- apr_pool_log_event(pool, "CREATEU", file_line, 1);
|
||||
-#endif /* (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE) */
|
||||
-
|
||||
return APR_SUCCESS;
|
||||
}
|
||||
|
||||
--
|
||||
2.19.1
|
||||
|
||||
170
Merge-r1834494-from-trunk.patch
Normal file
170
Merge-r1834494-from-trunk.patch
Normal file
@ -0,0 +1,170 @@
|
||||
This is an upstream patch from: http://svn.apache.org/viewvc?view=revision&revision=1834495
|
||||
|
||||
--- 1.7.x/buildconf 2018/06/27 11:41:30 1834494
|
||||
+++ 1.7.x/buildconf 2018/06/27 11:49:33 1834495
|
||||
@@ -112,8 +112,10 @@
|
||||
# Remove autoconf 2.5x's cache directory
|
||||
rm -rf autom4te*.cache
|
||||
|
||||
+PYTHON=${PYTHON-`build/PrintPath python3 python2 python`}
|
||||
+
|
||||
echo "buildconf: generating 'make' outputs ..."
|
||||
-build/gen-build.py $verbose make
|
||||
+${PYTHON} build/gen-build.py $verbose make
|
||||
|
||||
# Create RPM Spec file
|
||||
if [ -f `which cut` ]; then
|
||||
--- 1.7.x/build/gen-build.py 2018/06/27 11:41:30 1834494
|
||||
+++ 1.7.x/build/gen-build.py 2018/06/27 11:49:33 1834495
|
||||
@@ -10,7 +10,10 @@
|
||||
|
||||
|
||||
import os
|
||||
-import ConfigParser
|
||||
+try:
|
||||
+ import configparser
|
||||
+except ImportError:
|
||||
+ import ConfigParser as configparser
|
||||
import getopt
|
||||
import string
|
||||
import glob
|
||||
@@ -36,7 +39,7 @@
|
||||
|
||||
|
||||
def main():
|
||||
- parser = ConfigParser.ConfigParser()
|
||||
+ parser = configparser.ConfigParser()
|
||||
parser.read('build.conf')
|
||||
|
||||
if parser.has_option('options', 'dsp'):
|
||||
@@ -62,7 +65,7 @@
|
||||
# write out the platform-independent files
|
||||
files = get_files(parser.get('options', 'paths'))
|
||||
objects, dirs = write_objects(f, legal_deps, h_deps, files)
|
||||
- f.write('\nOBJECTS_all = %s\n\n' % string.join(objects))
|
||||
+ f.write('\nOBJECTS_all = %s\n\n' % " ".join(objects))
|
||||
|
||||
# for each platform and each subdirectory holding platform-specific files,
|
||||
# write out their compilation rules, and an OBJECT_<subdir>_<plat> symbol.
|
||||
@@ -86,11 +89,11 @@
|
||||
inherit_files[-1] = inherit_files[-1][:-2] + '.lo'
|
||||
# replace the \\'s with /'s
|
||||
inherit_line = '/'.join(inherit_files)
|
||||
- if not inherit_parent.has_key(inherit_files[0]):
|
||||
+ if inherit_files[0] not in inherit_parent:
|
||||
inherit_parent[inherit_files[0]] = []
|
||||
inherit_parent[inherit_files[0]].append(inherit_line)
|
||||
|
||||
- for subdir in string.split(parser.get('options', 'platform_dirs')):
|
||||
+ for subdir in parser.get('options', 'platform_dirs').split():
|
||||
path = '%s/%s' % (subdir, platform)
|
||||
if not os.path.exists(path):
|
||||
# this subdir doesn't have a subdir for this platform, so we'll
|
||||
@@ -106,7 +109,7 @@
|
||||
files = get_files(path + '/*.c')
|
||||
objects, _unused = write_objects(f, legal_deps, h_deps, files)
|
||||
|
||||
- if inherit_parent.has_key(subdir):
|
||||
+ if subdir in inherit_parent:
|
||||
objects = objects + inherit_parent[subdir]
|
||||
|
||||
symname = 'OBJECTS_%s_%s' % (subdir, platform)
|
||||
@@ -114,7 +117,7 @@
|
||||
objects.sort()
|
||||
|
||||
# and write the symbol for the whole group
|
||||
- f.write('\n%s = %s\n\n' % (symname, string.join(objects)))
|
||||
+ f.write('\n%s = %s\n\n' % (symname, " ".join(objects)))
|
||||
|
||||
# and include that symbol in the group
|
||||
group.append('$(%s)' % symname)
|
||||
@@ -122,18 +125,18 @@
|
||||
group.sort()
|
||||
|
||||
# write out a symbol which contains the necessary files
|
||||
- f.write('OBJECTS_%s = %s\n\n' % (platform, string.join(group)))
|
||||
+ f.write('OBJECTS_%s = %s\n\n' % (platform, " ".join(group)))
|
||||
|
||||
- f.write('HEADERS = $(top_srcdir)/%s\n\n' % string.join(headers, ' $(top_srcdir)/'))
|
||||
- f.write('SOURCE_DIRS = %s $(EXTRA_SOURCE_DIRS)\n\n' % string.join(dirs.keys()))
|
||||
+ f.write('HEADERS = $(top_srcdir)/%s\n\n' % ' $(top_srcdir)/'.join(headers))
|
||||
+ f.write('SOURCE_DIRS = %s $(EXTRA_SOURCE_DIRS)\n\n' % " ".join(dirs.keys()))
|
||||
|
||||
if parser.has_option('options', 'modules'):
|
||||
modules = parser.get('options', 'modules')
|
||||
|
||||
- for mod in string.split(modules):
|
||||
+ for mod in modules.split():
|
||||
files = get_files(parser.get(mod, 'paths'))
|
||||
objects, _unused = write_objects(f, legal_deps, h_deps, files)
|
||||
- flat_objects = string.join(objects)
|
||||
+ flat_objects = " ".join(objects)
|
||||
f.write('OBJECTS_%s = %s\n' % (mod, flat_objects))
|
||||
|
||||
if parser.has_option(mod, 'target'):
|
||||
@@ -153,9 +156,9 @@
|
||||
d = os.path.dirname(d)
|
||||
|
||||
# Sort so 'foo' is before 'foo/bar'
|
||||
- keys = alldirs.keys()
|
||||
+ keys = list(alldirs.keys())
|
||||
keys.sort()
|
||||
- f.write('BUILD_DIRS = %s\n\n' % string.join(keys))
|
||||
+ f.write('BUILD_DIRS = %s\n\n' % " ".join(keys))
|
||||
|
||||
f.write('.make.dirs: $(srcdir)/build-outputs.mk\n' \
|
||||
'\t@for d in $(BUILD_DIRS); do test -d $$d || mkdir $$d; done\n' \
|
||||
@@ -177,12 +180,12 @@
|
||||
|
||||
# what headers does this file include, along with the implied headers
|
||||
deps = extract_deps(file, legal_deps)
|
||||
- for hdr in deps.keys():
|
||||
+ for hdr in list(deps.keys()):
|
||||
deps.update(h_deps.get(hdr, {}))
|
||||
|
||||
- vals = deps.values()
|
||||
+ vals = list(deps.values())
|
||||
vals.sort()
|
||||
- f.write('%s: %s .make.dirs %s\n' % (obj, file, string.join(vals)))
|
||||
+ f.write('%s: %s .make.dirs %s\n' % (obj, file, " ".join(vals)))
|
||||
|
||||
objects.sort()
|
||||
|
||||
@@ -210,7 +213,7 @@
|
||||
for hdr, deps in header_deps.items():
|
||||
# print hdr, deps
|
||||
start = len(deps)
|
||||
- for dep in deps.keys():
|
||||
+ for dep in list(deps.keys()):
|
||||
deps.update(header_deps.get(dep, {}))
|
||||
if len(deps) != start:
|
||||
altered = 1
|
||||
@@ -220,7 +223,7 @@
|
||||
|
||||
def get_files(patterns):
|
||||
files = [ ]
|
||||
- for pat in string.split(patterns):
|
||||
+ for pat in patterns.split():
|
||||
files.extend(map(clean_path, glob.glob(pat)))
|
||||
files.sort()
|
||||
return files
|
||||
--- 1.7.x/build/buildcheck.sh 2018/06/27 11:41:30 1834494
|
||||
+++ 1.7.x/build/buildcheck.sh 2018/06/27 11:49:33 1834495
|
||||
@@ -4,14 +4,14 @@
|
||||
res=0
|
||||
|
||||
# any python
|
||||
-python=`build/PrintPath python`
|
||||
+python=${PYTHON-`build/PrintPath python3 python2 python`}
|
||||
if test -z "$python"; then
|
||||
echo "buildconf: python not found."
|
||||
echo " You need python installed"
|
||||
echo " to build APR from SVN."
|
||||
res=1
|
||||
else
|
||||
- py_version=`python -c 'import sys; print sys.version' 2>&1|sed 's/ .*//;q'`
|
||||
+ py_version=`$python -c 'import sys; print(sys.version)' 2>&1|sed 's/ .*//;q'`
|
||||
echo "buildconf: python version $py_version (ok)"
|
||||
fi
|
||||
|
||||
|
||||
44
Pool-debugging-fixes.patch
Normal file
44
Pool-debugging-fixes.patch
Normal file
@ -0,0 +1,44 @@
|
||||
From 39611db20eea29a751162c43f0df61b05f48b00f Mon Sep 17 00:00:00 2001
|
||||
From: Rainer Jung <rjung@apache.org>
|
||||
Date: Wed, 17 Jul 2019 11:42:15 +0000
|
||||
Subject: [PATCH 03/10] Pool debugging fixes
|
||||
|
||||
- avoid using a destroyed mutex in apr_pool_clear()
|
||||
- if we create a sub-pool, we don't need to own the pool.
|
||||
|
||||
Backport of r1481186 from trunk resp. r1863200 from 1.7.x.
|
||||
|
||||
|
||||
git-svn-id: https://svn.apache.org/repos/asf/apr/apr/branches/1.6.x@1863209 13f79535-47bb-0310-9956-ffa450edef68
|
||||
---
|
||||
memory/unix/apr_pools.c | 7 ++++++-
|
||||
1 file changed, 6 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/memory/unix/apr_pools.c b/memory/unix/apr_pools.c
|
||||
index 614919ede..cd6b17811 100644
|
||||
--- a/memory/unix/apr_pools.c
|
||||
+++ b/memory/unix/apr_pools.c
|
||||
@@ -1909,6 +1909,11 @@ APR_DECLARE(void) apr_pool_clear_debug(apr_pool_t *pool,
|
||||
* the mutex we obtained above.
|
||||
*/
|
||||
if (mutex != pool->mutex) {
|
||||
+ /*
|
||||
+ * Prevent apr_palloc() in apr_thread_mutex_create() from trying to
|
||||
+ * use the destroyed mutex.
|
||||
+ */
|
||||
+ pool->mutex = NULL;
|
||||
(void)apr_thread_mutex_create(&pool->mutex,
|
||||
APR_THREAD_MUTEX_NESTED, pool);
|
||||
|
||||
@@ -1985,7 +1990,7 @@ APR_DECLARE(apr_status_t) apr_pool_create_ex_debug(apr_pool_t **newpool,
|
||||
parent = global_pool;
|
||||
}
|
||||
else {
|
||||
- apr_pool_check_integrity(parent);
|
||||
+ apr_pool_check_lifetime(parent);
|
||||
|
||||
if (!allocator)
|
||||
allocator = parent->allocator;
|
||||
--
|
||||
2.19.1
|
||||
|
||||
87
Split-apr_pool_check_integrity-into-two-parts.patch
Normal file
87
Split-apr_pool_check_integrity-into-two-parts.patch
Normal file
@ -0,0 +1,87 @@
|
||||
From 68710d39de65fa4f16c890110342a249f60a66fa Mon Sep 17 00:00:00 2001
|
||||
From: Rainer Jung <rjung@apache.org>
|
||||
Date: Wed, 17 Jul 2019 11:41:21 +0000
|
||||
Subject: [PATCH 02/10] Split apr_pool_check_integrity() into two parts
|
||||
|
||||
Run the pool owner check part only after pre-cleanups have been run, in
|
||||
order to give them a chance to kill of any threads that may still be
|
||||
accessing the pool.
|
||||
|
||||
Backport of r1460184 from trunk resp. r1863199 from 1.7.x.
|
||||
|
||||
|
||||
git-svn-id: https://svn.apache.org/repos/asf/apr/apr/branches/1.6.x@1863208 13f79535-47bb-0310-9956-ffa450edef68
|
||||
---
|
||||
memory/unix/apr_pools.c | 20 +++++++++++++++++---
|
||||
1 file changed, 17 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/memory/unix/apr_pools.c b/memory/unix/apr_pools.c
|
||||
index 3361f7a7d..614919ede 100644
|
||||
--- a/memory/unix/apr_pools.c
|
||||
+++ b/memory/unix/apr_pools.c
|
||||
@@ -1594,7 +1594,7 @@ static int apr_pool_is_child_of(apr_pool_t *pool, apr_pool_t *parent)
|
||||
}
|
||||
#endif /* (APR_POOL_DEBUG & APR_POOL_DEBUG_LIFETIME) */
|
||||
|
||||
-static void apr_pool_check_integrity(apr_pool_t *pool)
|
||||
+static void apr_pool_check_lifetime(apr_pool_t *pool)
|
||||
{
|
||||
/* Rule of thumb: use of the global pool is always
|
||||
* ok, since the only user is apr_pools.c. Unless
|
||||
@@ -1618,7 +1618,10 @@ static void apr_pool_check_integrity(apr_pool_t *pool)
|
||||
abort();
|
||||
}
|
||||
#endif /* (APR_POOL_DEBUG & APR_POOL_DEBUG_LIFETIME) */
|
||||
+}
|
||||
|
||||
+static void apr_pool_check_owner(apr_pool_t *pool)
|
||||
+{
|
||||
#if (APR_POOL_DEBUG & APR_POOL_DEBUG_OWNER)
|
||||
#if APR_HAS_THREADS
|
||||
if (!apr_os_thread_equal(pool->owner, apr_os_thread_current())) {
|
||||
@@ -1632,6 +1635,11 @@ static void apr_pool_check_integrity(apr_pool_t *pool)
|
||||
#endif /* (APR_POOL_DEBUG & APR_POOL_DEBUG_OWNER) */
|
||||
}
|
||||
|
||||
+static void apr_pool_check_integrity(apr_pool_t *pool)
|
||||
+{
|
||||
+ apr_pool_check_lifetime(pool);
|
||||
+ apr_pool_check_owner(pool);
|
||||
+}
|
||||
|
||||
/*
|
||||
* Initialization (debug)
|
||||
@@ -1820,6 +1828,12 @@ static void pool_clear_debug(apr_pool_t *pool, const char *file_line)
|
||||
run_cleanups(&pool->pre_cleanups);
|
||||
pool->pre_cleanups = NULL;
|
||||
|
||||
+ /*
|
||||
+ * Now that we have given the pre cleanups the chance to kill of any
|
||||
+ * threads using the pool, the owner must be correct.
|
||||
+ */
|
||||
+ apr_pool_check_owner(pool);
|
||||
+
|
||||
/* Destroy the subpools. The subpools will detach themselves from
|
||||
* this pool thus this loop is safe and easy.
|
||||
*/
|
||||
@@ -1868,7 +1882,7 @@ APR_DECLARE(void) apr_pool_clear_debug(apr_pool_t *pool,
|
||||
apr_thread_mutex_t *mutex = NULL;
|
||||
#endif
|
||||
|
||||
- apr_pool_check_integrity(pool);
|
||||
+ apr_pool_check_lifetime(pool);
|
||||
|
||||
#if (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE)
|
||||
apr_pool_log_event(pool, "CLEAR", file_line, 1);
|
||||
@@ -1906,7 +1920,7 @@ APR_DECLARE(void) apr_pool_clear_debug(apr_pool_t *pool,
|
||||
|
||||
static void pool_destroy_debug(apr_pool_t *pool, const char *file_line)
|
||||
{
|
||||
- apr_pool_check_integrity(pool);
|
||||
+ apr_pool_check_lifetime(pool);
|
||||
|
||||
#if (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE)
|
||||
apr_pool_log_event(pool, "DESTROY", file_line, 1);
|
||||
--
|
||||
2.19.1
|
||||
|
||||
18
apr-1.2.2-libdir.patch
Normal file
18
apr-1.2.2-libdir.patch
Normal file
@ -0,0 +1,18 @@
|
||||
|
||||
- avoid adding %{_libdir} to --link-ld output
|
||||
|
||||
--- apr-1.2.2/apr-config.in.libdir
|
||||
+++ apr-1.2.2/apr-config.in
|
||||
@@ -181,8 +181,10 @@
|
||||
;;
|
||||
--link-ld)
|
||||
if test "$location" = "installed"; then
|
||||
- ### avoid using -L if libdir is a "standard" location like /usr/lib
|
||||
- flags="$flags -L$libdir -l${APR_LIBNAME}"
|
||||
+ if test "$prefix" != "/usr"; then
|
||||
+ flags="$flags -L$libdir"
|
||||
+ fi
|
||||
+ flags="$flags -l${APR_LIBNAME}"
|
||||
else
|
||||
### this surely can't work since the library is in .libs?
|
||||
flags="$flags -L$APR_BUILD_DIR -l${APR_LIBNAME}"
|
||||
56
apr-1.2.7-pkgconf.patch
Normal file
56
apr-1.2.7-pkgconf.patch
Normal file
@ -0,0 +1,56 @@
|
||||
|
||||
This is a fugly hack to make apr-1-config libdir-agnostic, by using
|
||||
pkg-config to determine the libdir setting. pkg-config will
|
||||
magically determine the appropriate libdir setting.
|
||||
|
||||
This allows apr-devel.i386 and apr-devel.x86_64 to be
|
||||
installed in parallel.
|
||||
|
||||
--- apr-1.2.7/Makefile.in.pkgconf
|
||||
+++ apr-1.2.7/Makefile.in
|
||||
@@ -60,7 +60,7 @@
|
||||
|
||||
# Create apr-config script suitable for the install tree
|
||||
apr-config.out: $(APR_CONFIG)
|
||||
- sed 's,^\(location=\).*$$,\1installed,' < $(APR_CONFIG) > $@
|
||||
+ sed 's,^\(location=\).*$$,\1installed,;s,^\(APR_.*_DIR\)=.*,\1="$${libdir}/build",' < $(APR_CONFIG) > $@
|
||||
|
||||
# Create apr_rules.mk suitable for the install tree
|
||||
build/apr_rules.out: build/apr_rules.mk
|
||||
--- apr-1.2.7/apr.pc.in.pkgconf
|
||||
+++ apr-1.2.7/apr.pc.in
|
||||
@@ -3,9 +3,10 @@
|
||||
libdir=@libdir@
|
||||
APR_MAJOR_VERSION=@APR_MAJOR_VERSION@
|
||||
includedir=@includedir@
|
||||
+CPPFLAGS=@EXTRA_CPPFLAGS@
|
||||
|
||||
Name: APR
|
||||
Description: The Apache Portable Runtime library
|
||||
Version: @APR_DOTTED_VERSION@
|
||||
Libs: -L${libdir} -l@APR_LIBNAME@ @EXTRA_LIBS@
|
||||
-Cflags: @EXTRA_CPPFLAGS@ @EXTRA_CFLAGS@ -I${includedir}
|
||||
+Cflags: ${CPPFLAGS} @EXTRA_CFLAGS@ -I${includedir}
|
||||
--- apr-1.2.7/apr-config.in.pkgconf
|
||||
+++ apr-1.2.7/apr-config.in
|
||||
@@ -24,16 +24,17 @@
|
||||
prefix="@prefix@"
|
||||
exec_prefix="@exec_prefix@"
|
||||
bindir="@bindir@"
|
||||
-libdir="@libdir@"
|
||||
datarootdir="@datadir@"
|
||||
datadir="@datadir@"
|
||||
-installbuilddir="@installbuilddir@"
|
||||
includedir="@includedir@"
|
||||
|
||||
+libdir=`pkg-config --variable=libdir apr-@APR_MAJOR_VERSION@`
|
||||
+installbuilddir="${libdir}/apr-@APR_MAJOR_VERSION@/build"
|
||||
+
|
||||
CC="@CC@"
|
||||
CPP="@CPP@"
|
||||
SHELL="@SHELL@"
|
||||
-CPPFLAGS="@EXTRA_CPPFLAGS@"
|
||||
+CPPFLAGS=`pkg-config --variable=CPPFLAGS apr-@APR_MAJOR_VERSION@`
|
||||
CFLAGS="@EXTRA_CFLAGS@"
|
||||
LDFLAGS="@EXTRA_LDFLAGS@"
|
||||
LIBS="@EXTRA_LIBS@"
|
||||
BIN
apr-1.6.5.tar.bz2
Normal file
BIN
apr-1.6.5.tar.bz2
Normal file
Binary file not shown.
22
apr-wrapper.h
Normal file
22
apr-wrapper.h
Normal file
@ -0,0 +1,22 @@
|
||||
/* This file is here to prevent a file conflict on multiarch systems. A
|
||||
* conflict will occur because apr.h has arch-specific definitions.
|
||||
*
|
||||
* DO NOT INCLUDE THE NEW FILE DIRECTLY -- ALWAYS INCLUDE THIS ONE INSTEAD. */
|
||||
|
||||
#if defined(__i386__)
|
||||
#include "apr-i386.h"
|
||||
#elif defined(__ia64__)
|
||||
#include "apr-ia64.h"
|
||||
#elif defined(__powerpc64__)
|
||||
#include "apr-ppc64.h"
|
||||
#elif defined(__powerpc__)
|
||||
#include "apr-ppc.h"
|
||||
#elif defined(__s390x__)
|
||||
#include "apr-s390x.h"
|
||||
#elif defined(__s390__)
|
||||
#include "apr-s390.h"
|
||||
#elif defined(__x86_64__)
|
||||
#include "apr-x86_64.h"
|
||||
#else
|
||||
#error "This apr-devel package does not work your architecture?"
|
||||
#endif
|
||||
113
apr.spec
Normal file
113
apr.spec
Normal file
@ -0,0 +1,113 @@
|
||||
%define aprver 1
|
||||
|
||||
Name: apr
|
||||
Version: 1.6.5
|
||||
Release: 4
|
||||
Summary: Apache Portable Runtime.
|
||||
License: ASL 2.0 and BSD with advertising and ISC and BSD
|
||||
URL: http://apr.apache.org
|
||||
Source0: http://www.apache.org/dist/%{name}/%{name}-%{version}.tar.bz2
|
||||
Source1: apr-wrapper.h
|
||||
|
||||
Patch0: apr-1.2.2-libdir.patch
|
||||
Patch1: apr-1.2.7-pkgconf.patch
|
||||
|
||||
Patch6000: Merge-r1834494-from-trunk.patch
|
||||
Patch6001: test-testlock.c-test_timeoutcond-Increase-fudge-fact.patch
|
||||
Patch6002: Split-apr_pool_check_integrity-into-two-parts.patch
|
||||
Patch6003: Pool-debugging-fixes.patch
|
||||
Patch6004: Fix-pool-debugging-output-so-that-creation-events-ar.patch
|
||||
|
||||
BuildRequires: gcc autoconf libtool libuuid-devel python3 lksctp-tools-devel
|
||||
|
||||
%description
|
||||
The mission of the Apache Portable Runtime (APR) project is to create and maintain software libraries
|
||||
that provide a predictable and consistent interface to underlying platform-specific implementations.
|
||||
The primary goal is to provide an API to which software developers may code and be assured of
|
||||
predictable if not identical behaviour regardless of the platform on which their software is built,
|
||||
relieving them of the need to code special-case conditions to work around or take advantage of
|
||||
platform-specific deficiencies or features.
|
||||
|
||||
%package devel
|
||||
Summary: Apache Portable Runtime development kit.
|
||||
Requires: %{name} = %{version}-%{release} pkgconfig
|
||||
|
||||
%description devel
|
||||
Apache Portable Runtime development kit.
|
||||
|
||||
%package_help
|
||||
|
||||
%prep
|
||||
%autosetup -n %{name}-%{version} -p1
|
||||
|
||||
%build
|
||||
./buildconf
|
||||
export ac_cv_search_shm_open=no
|
||||
%configure \
|
||||
--includedir=%{_includedir}/%{name}-%{aprver} --with-installbuilddir=%{_libdir}/%{name}-%{aprver}/build \
|
||||
--with-devrandom=/dev/urandom
|
||||
make
|
||||
|
||||
%install
|
||||
rm -rf %{buildroot}
|
||||
%make_install
|
||||
install -D -m 0644 build/find_apr.m4 %{buildroot}/%{_datadir}/aclocal/find_apr.m4
|
||||
sed -ri '/^dependency_libs/{s,-l(uuid|crypt) ,,g}' \
|
||||
%{buildroot}%{_libdir}/libapr*.la
|
||||
sed -ri '/^LIBS=/{s,-l(uuid|crypt) ,,g;s/ */ /g}' \
|
||||
%{buildroot}%{_bindir}/%{name}-%{aprver}-config
|
||||
sed -ri '/^Libs/{s,-l(uuid|crypt) ,,g}' \
|
||||
%{buildroot}%{_libdir}/pkgconfig/%{name}-%{aprver}.pc
|
||||
%ifarch %{multilib_arches}
|
||||
install -D -m 0644 %{buildroot}%{_includedir}/%{name}-%{aprver}/apr.h \
|
||||
%{buildroot}%{_includedir}/%{name}-%{aprver}/%{name}-%{_arch}.h
|
||||
install -D -m 0644 %{SOURCE1} %{buildroot}%{_includedir}/%{name}-%{aprver}/apr.h
|
||||
%endif
|
||||
rm -rf %{buildroot}%{_libdir}/apr.exp
|
||||
rm -rf %{buildroot}%{_libdir}/libapr-*.a
|
||||
|
||||
%check
|
||||
make check
|
||||
%ldconfig_scriptlets
|
||||
|
||||
%pre
|
||||
|
||||
%preun
|
||||
|
||||
%post
|
||||
|
||||
%postun
|
||||
|
||||
%files
|
||||
%doc CHANGES NOTICE
|
||||
%license LICENSE
|
||||
%{_libdir}/libapr-%{aprver}.so.*
|
||||
|
||||
%files devel
|
||||
%{_bindir}/%{name}-%{aprver}-config
|
||||
%{_libdir}/libapr-%{aprver}.*a
|
||||
%{_libdir}/libapr-%{aprver}.so
|
||||
%{_libdir}/pkgconfig/*.pc
|
||||
%dir %{_libdir}/%{name}-%{aprver}
|
||||
%dir %{_libdir}/%{name}-%{aprver}/build
|
||||
%{_libdir}/%{name}-%{aprver}/build/*
|
||||
%dir %{_includedir}/%{name}-%{aprver}
|
||||
%{_includedir}/%{name}-%{aprver}/*.h
|
||||
%{_datadir}/aclocal/*.m4
|
||||
|
||||
%files help
|
||||
%doc docs/APRDesign.html docs/canonical_filenames.html
|
||||
%doc docs/incomplete_types docs/non_apr_programs
|
||||
|
||||
%changelog
|
||||
* Tue Dec 17 2019 openEuler Buildteam <buildteam@openeuler.org> - 1.6.5-4
|
||||
- quality enhancement synchronization github patch
|
||||
|
||||
* Tue Oct 22 2019 openEuler Buildteam <buildteam@openeuler.org> - 1.6.5-3
|
||||
- optimize spec file.
|
||||
|
||||
* Sat Sep 28 2019 openEuler Buildteam <buildteam@openeuler.org> - 1.6.5-2
|
||||
- Package rebuild.
|
||||
|
||||
* Wed Sep 04 2019 openEuler Buildteam <buildteam@openeuler.org> - 1.6.5-1
|
||||
- Package init.
|
||||
28
test-testlock.c-test_timeoutcond-Increase-fudge-fact.patch
Normal file
28
test-testlock.c-test_timeoutcond-Increase-fudge-fact.patch
Normal file
@ -0,0 +1,28 @@
|
||||
From d6d48ddd4c3a5ef04749475ed75d26330a3e0dc6 Mon Sep 17 00:00:00 2001
|
||||
From: Joe Orton <jorton@apache.org>
|
||||
Date: Tue, 19 Sep 2017 16:38:40 +0000
|
||||
Subject: [PATCH] * test/testlock.c (test_timeoutcond): Increase fudge factor
|
||||
in checking timeout precision; 100ms failed regularly in Fedora builds,
|
||||
500ms has Never Failed(TM).
|
||||
|
||||
git-svn-id: https://svn.apache.org/repos/asf/apr/apr/trunk@1808910 13f79535-47bb-0310-9956-ffa450edef68
|
||||
---
|
||||
test/testlock.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/test/testlock.c b/test/testlock.c
|
||||
index 40da791b7..cd48768ca 100644
|
||||
--- a/test/testlock.c
|
||||
+++ b/test/testlock.c
|
||||
@@ -334,7 +334,7 @@ static void test_timeoutcond(abts_case *tc, void *data)
|
||||
continue;
|
||||
}
|
||||
ABTS_INT_EQUAL(tc, 1, APR_STATUS_IS_TIMEUP(s));
|
||||
- ABTS_ASSERT(tc, "Timer returned too late", end - begin - timeout < 100000);
|
||||
+ ABTS_ASSERT(tc, "Timer returned too late", end - begin - timeout < 500000);
|
||||
break;
|
||||
}
|
||||
ABTS_ASSERT(tc, "Too many retries", i < MAX_RETRY);
|
||||
--
|
||||
2.19.1
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user