Package init

This commit is contained in:
overweight 2019-09-30 10:31:32 -04:00
commit f1266da45d
7 changed files with 378 additions and 0 deletions

18
apr-1.2.2-libdir.patch Normal file
View 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}"

View File

@ -0,0 +1,11 @@
--- apr-1.2.2/test/testlock.c.locktimeout
+++ apr-1.2.2/test/testlock.c
@@ -295,7 +295,7 @@
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);

56
apr-1.2.7-pkgconf.patch Normal file
View 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@"

171
apr-1.6.3-r1834495.patch Normal file
View File

@ -0,0 +1,171 @@
# ./pullrev.sh 1834495
http://svn.apache.org/viewvc?view=revision&revision=1834495
--- apr-1.6.3/buildconf
+++ apr-1.6.3/buildconf
@@ -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
--- apr-1.6.3/build/gen-build.py
+++ apr-1.6.3/build/gen-build.py
@@ -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
--- apr-1.6.3/build/buildcheck.sh
+++ apr-1.6.3/build/buildcheck.sh
@@ -4,7 +4,7 @@
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"
@@ -11,7 +11,7 @@
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

BIN
apr-1.6.5.tar.bz2 Normal file

Binary file not shown.

22
apr-wrapper.h Normal file
View 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

100
apr.spec Normal file
View File

@ -0,0 +1,100 @@
%define aprver 1
Name: apr
Version: 1.6.5
Release: 2
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/apr/%{name}-%{version}.tar.bz2
Source1: apr-wrapper.h
#Patch0:
# *build/buildcheck.sh, buildconf: Detect and run under Python 3 or 2,and respect $PYTHON.
# *build/gen-build.py: Fix various Python 3 compatibility issues.
# http://svn.apache.org/viewvc?view=revision&revision=1834495
Patch0: apr-1.6.3-r1834495.patch
Patch1: apr-1.2.2-locktimeout.patch
Patch2: apr-1.2.2-libdir.patch
Patch3: apr-1.2.7-pkgconf.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: apr = %{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
%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
* Sat Sep 28 2019 openEuler Buildteam <buildteam@openeuler.org> - 1.6.5-2
- Package rebuild.
* Wed Sep 4 2019 openEuler Buildteam <buildteam@openeuler.org> - 1.6.5-1
- Package init.