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/*

Reply via email to