Bug 74951

Summary: HTTPD needs to separate out APR libraries and includes.
Product: [Retired] Red Hat Linux Reporter: david
Component: httpdAssignee: Joe Orton <jorton>
Status: CLOSED RAWHIDE QA Contact: Brian Brock <bbrock>
Severity: medium Docs Contact:
Priority: medium    
Version: 8.0CC: chris.ricker, esm, jeff
Target Milestone: ---Keywords: FutureFeature
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: httpd-2.0.45-1 Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2003-06-19 08:12:43 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description david 2002-10-03 02:21:04 UTC
Description of Problem:
It is difficult (if not impossible????) to compile programs (like subversion
(http://subversion.tigris.org) that require APR and APR-UTIL libraries.  They
really need to be broken out into a separateapr and apr-devel package (maybe
subpackage of httpd).

Version-Release number of selected component (if applicable):
RedHat 8.0  - Apache 2.0.40.

How Reproducible:
Always

Steps to Reproduce:
1. Compile httpd RPMs.
2. 
3. 

Actual Results:
APR and APR-UTIL libraries and includes are included in httpd and httpd-devel.

Expected Results:
apr-config and apu-config and the APR/APR-UTIL includes need to be included in
an apr-devel package and the libraries need to be included in an apr-devel package.

Additional Information:

Download httpd-2.0.42 and apply the following patch:

--- httpd-2.0.40-8/httpd.spec   2002-09-04 15:51:54.000000000 -0500
+++ httpd-2.0.42-0.1/httpd.spec 2002-10-02 20:53:17.000000000 -0500
@@ -4,8 +4,8 @@

 Summary: Apache HTTP Server
 Name: httpd
-Version: 2.0.40
-Release: 8
+Version: 2.0.42
+Release: 0.1
 URL: http://httpd.apache.org/
 Vendor: Red Hat, Inc.
 Source0: http://www.apache.org/dist/httpd/httpd-%{version}.tar.gz
@@ -23,9 +23,9 @@
 # build/scripts patches
 Patch1: httpd-2.0.40-apctl.patch
 Patch2: httpd-2.0.36-apxs.patch
-Patch3: httpd-2.0.36-sslink.patch
+#Patch3: httpd-2.0.36-sslink.patch
 # features/functional changes
-Patch40: httpd-2.0.36-cnfdir.patch
+#Patch40: httpd-2.0.36-cnfdir.patch
 Patch41: httpd-2.0.36-redhat.patch
 Patch42: httpd-2.0.40-xfsz.patch
 Patch43: httpd-2.0.40-pod.patch
@@ -83,13 +83,31 @@
 server via the Secure Sockets Layer (SSL) and Transport Layer
 Security (TLS) protocols.

+%package apr
+Group: Development/Libraries
+Summary: Development libraries for the APR (Apache Runtime) libraries.
+BuildPreReq: libtool, httpd = %{version}
+
+%description apr
+The APR (Apache RunTime) libraries provide a set of platform independent
+libraries that enable APACHE and other packages platform independence.
+
+%package apr-devel
+Group: Development/Libraries
+Summary: Development libraries for the APR (Apache Runtime) libraries.
+BuildPreReq: libtool, httpd = %{version}
+
+%description apr-devel
+The APR (Apache RunTime) libraries provide a set of platform independent
+libraries that enable APACHE and other packages platform independence.
+
 %prep
 %setup -q
 %patch1 -p0 -b .apctl
 %patch2 -p0 -b .apxs
-%patch3 -p0 -b .sslink
+#%patch3 -p0 -b .sslink

-%patch40 -p0 -b .cnfdir
+#%patch40 -p0 -b .cnfdir
 %patch41 -p0 -b .redhat
 %patch42 -p0 -b .xfsz
 %patch43 -p0 -b .pod
@@ -305,8 +323,8 @@
 %{_sbindir}/rotatelogs
 %attr(4510,root,%{suexec_caller}) %{_sbindir}/suexec

-%{_libdir}/libapr.so.*
-%{_libdir}/libaprutil.so.*
+%{_libdir}/libapr-0.so.*
+%{_libdir}/libaprutil-0.so.*

 %dir %{_libdir}/httpd
 %dir %{_libdir}/httpd/modules
@@ -356,8 +374,8 @@

 %files devel
 %defattr(-,root,root)
-%{_libdir}/libapr.so
-%{_libdir}/libaprutil.so
+%{_libdir}/libapr-0.so
+%{_libdir}/libaprutil-0.so
 %{_includedir}/httpd
 %{_sysconfdir}/httpd/build
 %{_sbindir}/apxs
@@ -366,7 +384,23 @@
 %{_libdir}/httpd/build/*.mk
 %{_libdir}/httpd/build/libtool

+%files apr
+%defattr(-,root,root)
+%{_libdir}/libapr-0.so
+%{_libdir}/libaprutil-0.so
+
+%files apr-devel
+%defattr(-,root,root)
+%{_includedir}/httpd/ap*
+%{_bindir}/apr-config
+%{_bindir}/apu-config
+
 %changelog
+* Wed Oct 02 2002 David Summers <david.ar.us> 2.0.42-0.1
+- Updated to 2.0.42.
+- Changed to provide separate apr package so other packages can use APR
+  without needing the httpd package.
+
* Wed Sep  4 2002 Nalin Dahyabhai <nalin> 2.0.40-8
- link httpd with libssl to avoid library loading/unloading weirdness

Comment 1 Ed Marshall 2002-10-18 19:16:25 UTC
This ties in to issue 73428, although this definitely seems like a cleaner
solution (rather than just including apr-config, apu-config, and instdso.sh with
httpd-devel, including them and all the apr/apr-util bits in a separate
package). The question is: should apr and apr-util be broken out into separate
packages, or should the whole thing be kept together? (Are they even useful
separately?)

Comment 2 Joe Orton 2002-11-10 21:40:11 UTC
*** Bug 77584 has been marked as a duplicate of this bug. ***

Comment 3 Joe Orton 2002-11-10 21:41:39 UTC
For the record, I'd like to avoid packaging APR/APR-util separately until they
commit to a stable library interface.

Comment 4 Joe Orton 2003-06-19 08:12:43 UTC
In spite of my previous comment :) Raw Hide now has separate apr and apr-util
packages, and the httpd-2.0.45 package depends on them, as does subversion.