Hello list,
I kinda solved my issue building RPM packages. It appears that the
install stage is removing BUILDROOT content:
[rpm] + rm -rf /tmp/zkpython_build_rpm/BUILD
Since BUILD and BUILDROOT are actually the same folder, anything is
remove before being used.
For what it worth, I've attached diffs I've created to solve this issue.
I've tried to make as little changes as possible regarding original
files. Please, note once more I'm pretty new at building RPM packages.
Kind regards,
Cédric.
On 12/17/2012 10:24 AM, Cédric Lejeune wrote:
Hello list,
I'm currently trying to build zookeeper 3.4.5 on a fresh CentOS 6.3
install (rpm 4.8.0), but it fails with this error:
----%<----%<----%<----%<----%<----%<----%<----%<----%<----%<----%<----%<----
rpm:
[copy] Copying 1 file to /tmp/zkpython_build_rpm/SOURCES
[rpm] Building the RPM based on the zkpython.spec file
[rpm] Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.GV0fVi
[rpm] + umask 022
[rpm] + cd /tmp/zkpython_build_rpm/BUILD
[rpm] + LANG=C
[rpm] + export LANG
[rpm] + unset DISPLAY
[rpm] + tar fxz
/tmp/zkpython_build_rpm/SOURCES/ZooKeeper-0.4.linux-x86_64.tar.gz -C
/tmp/zkpython_build_rpm/BUILD
[rpm] + exit 0
[rpm] Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.ZpyOvn
[rpm] + umask 022
[rpm] + cd /tmp/zkpython_build_rpm/BUILD
[rpm] + LANG=C
[rpm] + export LANG
[rpm] + unset DISPLAY
[rpm] + exit 0
[rpm] Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.Tktc7r
[rpm] + umask 022
[rpm] + cd /tmp/zkpython_build_rpm/BUILD
[rpm] + '[' /tmp/zkpython_build_rpm/BUILD '!=' / ']'
[rpm] + rm -rf /tmp/zkpython_build_rpm/BUILD
[rpm] ++ dirname /tmp/zkpython_build_rpm/BUILD
[rpm] + mkdir -p /tmp/zkpython_build_rpm
[rpm] + mkdir /tmp/zkpython_build_rpm/BUILD
[rpm] + LANG=C
[rpm] + export LANG
[rpm] + unset DISPLAY
[rpm] + /usr/lib/rpm/check-buildroot
[rpm] shell-init: error retrieving current directory: getcwd:
cannot access parent directories: No such file or directory
[rpm] + /usr/lib/rpm/redhat/brp-compress
[rpm] shell-init: error retrieving current directory: getcwd:
cannot access parent directories: No such file or directory
[rpm] chdir: error retrieving current directory: getcwd: cannot
access parent directories: No such file or directory
[rpm] + /usr/lib/rpm/redhat/brp-strip /usr/bin/strip
[rpm] shell-init: error retrieving current directory: getcwd:
cannot access parent directories: No such file or directory
[rpm] + /usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip
[rpm] shell-init: error retrieving current directory: getcwd:
cannot access parent directories: No such file or directory
[rpm] + /usr/lib/rpm/redhat/brp-strip-comment-note /usr/bin/strip
/usr/bin/objdump
[rpm] shell-init: error retrieving current directory: getcwd:
cannot access parent directories: No such file or directory
[rpm] + /usr/lib/rpm/brp-python-bytecompile
[rpm] shell-init: error retrieving current directory: getcwd:
cannot access parent directories: No such file or directory
[rpm] Processing files: zkpython-3.4.5-1.x86_64
[rpm] error: File not found: /tmp/zkpython_build_rpm/BUILD/usr
[rpm] File not found: /tmp/zkpython_build_rpm/BUILD/usr
[rpm]
[rpm]
[rpm] RPM build errors:
BUILD FAILED
/home/rpm/zookeeper-3.4.5/build.xml:955: The following error occurred
while executing this line:
/home/rpm/zookeeper-3.4.5/src/contrib/build.xml:75: The following error
occurred while executing this line:
/home/rpm/zookeeper-3.4.5/src/contrib/zkpython/build.xml:144:
'/usr/bin/rpmbuild' failed with exit code 1
----%<----%<----%<----%<----%<----%<----%<----%<----%<----%<----%<----%<----
It seems that some directory is missing but why...? Since it a fresh
CentOS install, may some packages be missing?
I'm pretty new to packaging and I do not know what info could help so
don't hesitate if you need more details.
I've also tried to build 3.5.0 trunk, but it failed too.
Thank you for your help,
Cédric.
--- ./build.xml.orig 2012-12-19 18:29:24.639583799 +0100
+++ ./build.xml 2012-12-19 12:12:20.225345745 +0100
@@ -993,7 +993,7 @@
</replacetokens>
</filterchain>
</copy>
- <rpm specFile="zookeeper.spec" command="-ba --buildroot=${package.buildroot}/BUILD" topDir="${package.buildroot}" cleanBuildDir="true" failOnError="true"
+ <rpm specFile="zookeeper.spec" command="-ba" topDir="${package.buildroot}" cleanBuildDir="true" failOnError="true"
/>
<copy todir="${build.dir}/" flatten="true">
<fileset dir="${package.buildroot}/RPMS">
--- ./src/contrib/zkpython/src/packages/rpm/spec/zkpython.spec.orig 2012-12-19 18:28:04.284651519 +0100
+++ ./src/contrib/zkpython/src/packages/rpm/spec/zkpython.spec 2012-12-19 12:06:52.131275850 +0100
@@ -68,6 +68,7 @@
#### INSTALL SECTION ####
#########################
%install
+%{__mv} %{_build_dir}/* %{buildroot}
%pre
--- ./src/contrib/zkpython/build.xml.orig 2012-12-19 18:29:10.459198173 +0100
+++ ./src/contrib/zkpython/build.xml 2012-12-19 12:02:32.089142694 +0100
@@ -141,7 +141,7 @@
</filterchain>
</copy>
- <rpm specFile="${name}.spec" command="-ba --buildroot=${package.buildroot}/BUILD" topDir="${package.buildroot}" cleanBuildDir="true" failOnError="true" />
+ <rpm specFile="${name}.spec" command="-ba" topDir="${package.buildroot}" cleanBuildDir="true" failOnError="true" />
<copy todir="${build.dir}/" flatten="true">
<fileset dir="${package.buildroot}/RPMS">
<include name="**/*.rpm" />
--- ./src/packages/rpm/spec/zookeeper.spec.orig 2012-12-19 18:28:23.668638175 +0100
+++ ./src/packages/rpm/spec/zookeeper.spec 2012-12-19 18:36:17.569429697 +0100
@@ -70,7 +70,7 @@
Prefix: %{_log_dir}
Prefix: %{_pid_dir}
Prefix: %{_var_dir}
-Requires: sh-utils, textutils, /usr/sbin/useradd, /usr/sbin/usermod, /sbin/chkconfig, /sbin/service, jdk >= 1.6
+Requires: sh-utils, textutils, /usr/sbin/useradd, /usr/sbin/usermod, /sbin/chkconfig, /sbin/service, java >= 1.6
AutoReqProv: no
Provides: zookeeper
@@ -87,17 +87,14 @@
ZooKeeper C client library for communicating with ZooKeeper Server.
%prep
-%setup -D -b 1 -n %{_final_name}
-%setup -D -a 0 -n %{_final_name}
+%setup -q -D -b 1 -n %{_final_name}
+%setup -q -D -a 0 -n %{_final_name}
%build
mkdir -p ${RPM_BUILD_DIR}%{_prefix}
mkdir -p ${RPM_BUILD_DIR}%{_bin_dir}
mkdir -p ${RPM_BUILD_DIR}%{_include_dir}
mkdir -p ${RPM_BUILD_DIR}%{_lib_dir}
-%ifarch amd64 x86_64
-mkdir -p ${RPM_BUILD_DIR}%{_lib64_dir}
-%endif
mkdir -p ${RPM_BUILD_DIR}%{_libexec_dir}
mkdir -p ${RPM_BUILD_DIR}%{_log_dir}
mkdir -p ${RPM_BUILD_DIR}%{_conf_dir}
@@ -118,14 +115,15 @@
#########################
%install
pushd ${RPM_BUILD_DIR}
-mv ${RPM_BUILD_DIR}/%{_final_name}/bin/* ${RPM_BUILD_DIR}%{_bin_dir}
-mv ${RPM_BUILD_DIR}/%{_final_name}/libexec/* ${RPM_BUILD_DIR}%{_libexec_dir}
-mv ${RPM_BUILD_DIR}/%{_final_name}/share/zookeeper/* ${RPM_BUILD_DIR}%{_share_dir}
-mv ${RPM_BUILD_DIR}/%{_final_name}/conf/* ${RPM_BUILD_DIR}%{_conf_dir}
-mv ${RPM_BUILD_DIR}/%{_final_name}/sbin/* ${RPM_BUILD_DIR}%{_sbin_dir}
-cp -f ${RPM_BUILD_DIR}%{_conf_dir}/zoo_sample.cfg ${RPM_BUILD_DIR}%{_conf_dir}/zoo.cfg
+cp -a ${RPM_BUILD_DIR}/%{_final_name}/bin/*.sh ${RPM_BUILD_DIR}%{_bin_dir}
+cp -a ${RPM_BUILD_DIR}/%{_final_name}/libexec/*.sh ${RPM_BUILD_DIR}%{_libexec_dir}
+cp -a ${RPM_BUILD_DIR}/%{_final_name}/share/zookeeper/* ${RPM_BUILD_DIR}%{_share_dir}
+cp -a ${RPM_BUILD_DIR}/%{_final_name}/conf/* ${RPM_BUILD_DIR}%{_conf_dir}
+cp -a ${RPM_BUILD_DIR}/%{_final_name}/sbin/*.sh ${RPM_BUILD_DIR}%{_sbin_dir}
+rm -r ${RPM_BUILD_DIR}/usr/include
+rm -r ${RPM_BUILD_DIR}/usr/man
+mv etc usr var %{buildroot}
popd ${RPM_BUILD_DIR}
-rm -rf ${RPM_BUILD_DIR}/%{_final_name}
%pre
getent group hadoop 2>/dev/null >/dev/null || /usr/sbin/groupadd -r hadoop
@@ -153,9 +151,16 @@
%defattr(-,root,root)
%attr(0755,root,hadoop) %{_log_dir}
%attr(0775,root,hadoop) %{_pid_dir}
+%attr(0775,root,hadoop) %{_var_dir}
%attr(0775,root,hadoop) /etc/init.d/zookeeper
+%dir %{_conf_dir}/
%config(noreplace) %{_conf_dir}/*
-%{_prefix}
+%{_libexec_dir}/*
+%{_sbin_dir}/*
+%{_share_dir}/*
+%{_log_dir}/
+%{_pid_dir}/
+%{_var_dir}/
%post lib
/sbin/ldconfig
@@ -163,4 +168,4 @@
%files lib
%defattr(-,root,root)
%{_prefix}/lib/*
-%{_prefix}/bin
+%{_prefix}/bin/*