Bug 1171818 - Cannot satisfy some system apr symlinks
Summary: Cannot satisfy some system apr symlinks
Keywords:
Status: CLOSED EOL
Alias: None
Product: JBoss Web Server 3
Classification: Retired
Component: httpd
Version: 3.0.0
Hardware: Unspecified
OS: Unspecified
unspecified
urgent
Target Milestone: Beta
: 3.0.0
Assignee: Weinan Li
QA Contact: Pavel Slavicek
URL:
Whiteboard:
Depends On: 1172306
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-12-08 16:37 UTC by Michal Haško
Modified: 2020-03-27 18:36 UTC (History)
6 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2020-03-27 18:36:17 UTC
Embargoed:


Attachments (Terms of Use)

Description Michal Haško 2014-12-08 16:37:34 UTC
The following apr links are found not satisfied:
# find jws-3.0/httpd/lib/ -type l -xtype l -printf '%f -> ' -exec readlink '{}' \;
libapr-util-jws3-1.so.0.3.9 -> /usr/lib64/libapr-util-jws3-1.so.0.3.9
libapr-jws3-1.so.0.3.9 -> /usr/lib64/libapr-jws3-1.so.0.3.9
libapr-util-jws3-1.so -> /usr/lib64/libapr-util-jws3-1.so
libapr-util-jws3-1.la -> /usr/lib64/libapr-util-jws3-1.la
libapr-util-jws3-1.so.0 -> /usr/lib64/libapr-util-jws3-1.so.0

However, the latest apr-jws3 and apr-util-jws3 contains files with different versions/names:
# rpm -qa | grep ^apr | grep jws3 | xargs rpm -ql | grep ^/usr/lib64/libapr
/usr/lib64/libapr-jws3-1.so.0
/usr/lib64/libapr-jws3-1.so.0.4.8
/usr/lib64/libapr-jws3-1.la
/usr/lib64/libapr-jws3-1.so
/usr/lib64/libaprutil-jws3-1.so.0
/usr/lib64/libaprutil-jws3-1.so.0.5.2
/usr/lib64/libaprutil-jws3-1.la
/usr/lib64/libaprutil-jws3-1.so


Version-Release number of selected component (if applicable):
jws-httpd-3.0.0-DR0-RHEL*.zip
apr-jws3-1.4.8-6.ep7.el6.x86_64
apr-jws3-debuginfo-1.4.8-6.ep7.el6.x86_64
apr-jws3-devel-1.4.8-6.ep7.el6.x86_64
apr-util-jws3-1.5.2-8.ep7.el6.x86_64
apr-util-jws3-debuginfo-1.5.2-8.ep7.el6.x86_64
apr-util-jws3-devel-1.5.2-8.ep7.el6.x86_64
apr-util-jws3-ldap-1.5.2-8.ep7.el6.x86_64
apr-util-jws3-mysql-1.5.2-8.ep7.el6.x86_64
apr-util-jws3-nss-1.5.2-8.ep7.el6.x86_64
apr-util-jws3-odbc-1.5.2-8.ep7.el6.x86_64
apr-util-jws3-openssl-1.5.2-8.ep7.el6.x86_64
apr-util-jws3-pgsql-1.5.2-8.ep7.el6.x86_64
apr-util-jws3-sqlite-1.5.2-8.ep7.el6.x86_64

Comment 1 Weinan Li 2014-12-10 08:32:11 UTC
[weli@dhcp-66-78-87 jws-compose]$ git diff
diff --git a/jws-compose.spec b/jws-compose.spec
index 778afcc..26d93d0 100644
--- a/jws-compose.spec
+++ b/jws-compose.spec
@@ -61,6 +61,8 @@
 %define mod_bmxVersion 0.9.5
 %define jcdaemonVersion 1.0.15
 %define mod_securityVersion 2.8.0
+%define aprVersion 0.4.8
+%define apr_utilVersion 0.5.2

 Summary:        JWS monolithic zip
 Name:           jws-compose
@@ -299,19 +301,16 @@ popd
 %endif
 #endof appserver

-# apr and aprutil (these will be different in RHEL 5)
-# bz-979943
-ln -s %{_libdir}/lib%{apr}-1.so.0.3.9 httpd/lib/
-
+ln -s %{_libdir}/lib%{apr}-1.so.%{aprVersion} httpd/lib/
 ln -s %{_libdir}/lib%{apr}-1.so.0 httpd/lib/
 ln -s %{_libdir}/lib%{apr}-1.so httpd/lib/
 ln -s %{_libdir}/lib%{apr}-1.la httpd/lib/

-ln -s %{_libdir}/lib%{aprutil}-1.so.0.3.9 httpd/lib/
-
+ln -s %{_libdir}/lib%{aprutil}-1.so.%{apr_utilVersion} httpd/lib/
 ln -s %{_libdir}/lib%{aprutil}-1.so.0 httpd/lib/
 ln -s %{_libdir}/lib%{aprutil}-1.so httpd/lib/
 ln -s %{_libdir}/lib%{aprutil}-1.la httpd/lib/
+
 mkdir httpd/bin
 ln -s %{_bindir}/%{apr}-1-config httpd/bin
 ln -s %{_bindir}/%{apu}-1-config httpd/bin

Comment 2 Michal Haško 2014-12-10 11:11:04 UTC
Thanks Weinan, this change looks good to me.

Comment 3 Michal Haško 2014-12-10 11:30:27 UTC
Weinan, please notice that httpd/lib contains libapr-util* files (notice the dash in file name), but apr-util-jws3 rpm contains libaprutil* (without dash)

Comment 4 Weinan Li 2014-12-11 02:32:42 UTC
(In reply to Michal Haško from comment #3)
> Weinan, please notice that httpd/lib contains libapr-util* files (notice the
> dash in file name), but apr-util-jws3 rpm contains libaprutil* (without dash)

Thanks for notifying this Michal :-) Here is the fix:

[weli@dhcp-66-78-87 jws-compose]$ git diff
diff --git a/jws-compose.spec b/jws-compose.spec
index ad87665..9403a02 100644
--- a/jws-compose.spec
+++ b/jws-compose.spec
@@ -9,10 +9,12 @@

 %if "%{?rhel}" == "6"
 %define aprutil apr-util-jws3
+%define aprutilFilename aprutil-jws3
 %define apr apr-jws3
 %define apu apu-jws3
 %else
 %define aprutil apr-util
+%define aprutilFilename aprutil
 %define apr apr
 %define apu apu
 %endif
@@ -312,10 +314,10 @@ ln -s %{_libdir}/lib%{apr}-1.so.0 httpd/lib/
 ln -s %{_libdir}/lib%{apr}-1.so httpd/lib/
 ln -s %{_libdir}/lib%{apr}-1.la httpd/lib/

-ln -s %{_libdir}/lib%{aprutil}-1.so.%{apr_utilVersion} httpd/lib/
-ln -s %{_libdir}/lib%{aprutil}-1.so.0 httpd/lib/
-ln -s %{_libdir}/lib%{aprutil}-1.so httpd/lib/
-ln -s %{_libdir}/lib%{aprutil}-1.la httpd/lib/
+ln -s %{_libdir}/lib%{aprutilFilename}-1.so.%{apr_utilVersion} httpd/lib/
+ln -s %{_libdir}/lib%{aprutilFilename}-1.so.0 httpd/lib/
+ln -s %{_libdir}/lib%{aprutilFilename}-1.so httpd/lib/
+ln -s %{_libdir}/lib%{aprutilFilename}-1.la httpd/lib/

 mkdir httpd/bin
 ln -s %{_bindir}/%{apr}-1-config httpd/bin

I'll verify it locally.

Comment 5 Weinan Li 2014-12-13 15:54:29 UTC
Patch Part III: For el6 we'll put apr and apr-util directly into lib directory.

diff --git a/jws-compose.spec b/jws-compose.spec
index e0eb852..cc2b560 100644
--- a/jws-compose.spec
+++ b/jws-compose.spec
@@ -103,6 +103,8 @@ BuildRequires: tomcat7-zip >= 0:%{tc7version}
 BuildRequires: mod_jk-ap24 >= 0:%{mod_jkversion}
 BuildRequires: tomcat-native >= 0:%{tcnativeversion}
 BuildRequires: %{httpd}-zip >= 0:%{httpdversion}
+BuildRequires: patchelf >= 0:0.8
+
 %if %with appserver
 BuildRequires: mod_cluster >= 0:%{mod_clusterversion}
 %endif
@@ -134,7 +136,7 @@ BuildRequires: mod_security%{jws3}-src-zip >= 0:%{mod_securityVersion}
 
 BuildRequires: jboss-logging
 #deps from base RHEL
-BuildRequires: %{apr}, %{aprutil}, %{aprutil}-devel
+BuildRequires: %{apr}, %{apr}-devel, %{aprutil}, %{aprutil}-devel
 
 # If we don't build mod_auth_kerb-eap6, the library goes into httpd rather 
 # than httpd24 in the RPMs.
@@ -226,6 +228,8 @@ cp -pr %{_docdir}/%{httpd}-%{httpdversion}/{ABOUT_APACHE,README,CHANGES,LICENSE,
 cp %{SOURCE4} httpd/.postinstall
 sed -i -e 's/${pkgdir}/%{zipname}-%{ews_major}.%{ews_minor}/g' httpd/.postinstall
 
 chmod 755 httpd/.postinstall httpd/sbin/*
 sed -i -e '/# Source ..\/conf\/httpd.conf/,/fi/d' httpd/sbin/apachectl
 sed -i -e 's:my $installbuilddir = $libdir . "/%{httpd}/build";:my $installbuilddir = "$ENV{EWS_HOME}/httpd/lib/build";:' \
@@ -311,19 +315,30 @@ popd
 %endif
 #endof appserver
 
+mkdir httpd/bin
+%if "%{?rhel}" == "6"
+patchelf --set-rpath '$ORIGIN/../lib' httpd/sbin/httpd
+cp %{_libdir}/lib%{apr}-1.so.%{aprVersion} httpd/lib/
+cp %{_libdir}/lib%{apr}-1.so.0 httpd/lib/
+cp %{_libdir}/lib%{apr}-1.so httpd/lib/
+cp %{_libdir}/lib%{apr}-1.la httpd/lib/
+cp %{_libdir}/lib%{aprutilFilename}-1.so.%{apr_utilVersion} httpd/lib/
+cp %{_libdir}/lib%{aprutilFilename}-1.so.0 httpd/lib/
+cp %{_libdir}/lib%{aprutilFilename}-1.so httpd/lib/
+cp %{_libdir}/lib%{aprutilFilename}-1.la httpd/lib/
+cp %{_bindir}/%{apr}-1-config httpd/bin
+cp -s %{_bindir}/%{apu}-1-config httpd/bin
+%else
 ln -s %{_libdir}/lib%{apr}-1.so.%{aprVersion} httpd/lib/
 ln -s %{_libdir}/lib%{apr}-1.so.0 httpd/lib/
 ln -s %{_libdir}/lib%{apr}-1.so httpd/lib/
 ln -s %{_libdir}/lib%{apr}-1.la httpd/lib/
-
 ln -s %{_libdir}/lib%{aprutilFilename}-1.so.%{apr_utilVersion} httpd/lib/
 ln -s %{_libdir}/lib%{aprutilFilename}-1.so.0 httpd/lib/
 ln -s %{_libdir}/lib%{aprutilFilename}-1.so httpd/lib/
 ln -s %{_libdir}/lib%{aprutilFilename}-1.la httpd/lib/
-
-mkdir httpd/bin
 ln -s %{_bindir}/%{apr}-1-config httpd/bin
 ln -s %{_bindir}/%{apu}-1-config httpd/bin
+%endif
 
 %ifnarch ppc64
 #jsvc

Comment 8 Libor Fuka 2015-01-20 14:28:48 UTC
Verified with DR1


Note You need to log in before you can comment on or make changes to this bug.