It turns out that rpmbuild on SUSE is different from RHEL5. In RHEL5, we are able to specify Buildroot directory to be: target/ambari/rpm/BUILD, but SUSE's rpmbuild has a regression to force the build root directory to:
target/ambari/rpm/BUILDROOT. This regression is documented here: https://bugzilla.novell.com/show_bug.cgi?id=683874 I will add a workaround to specify --buildroot=target/ambari/rpm/BUILD in this jira: https://issues.apache.org/jira/browse/AMBARI-173 Thanks for the report. regards, Eric On Thu, Dec 22, 2011 at 2:37 AM, RohithSharma <[email protected]> wrote: > Hi Eric, > >> Can you find the rpm .spec file in target directory and paste it here? > okay.. I am pasting complete file content here.Please let me know if u get > any hint of what has gone wrong. > > -------------------------------------------------------------- > # Licensed to the Apache Software Foundation (ASF) under one or more > # contributor license agreements. See the NOTICE file distributed with > # this work for additional information regarding copyright ownership. > # The ASF licenses this file to You under the Apache License, Version 2.0 > # (the "License"); you may not use this file except in compliance with > # the License. You may obtain a copy of the License at > # > # http://www.apache.org/licenses/LICENSE-2.0 > # > # Unless required by applicable law or agreed to in writing, software > # distributed under the License is distributed on an "AS IS" BASIS, > # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. > # See the License for the specific language governing permissions and > # limitations under the License. > > # > # RPM Spec file for HBase version 0.1.0 > # > > %define name ambari-agent > %define version 0.1.0 > %define release 1 > > # Installation Locations > %define _final_name ambari-agent-0.1.0 > %define _prefix /usr > %define _bin_dir %{_prefix}/bin > %define _conf_dir /etc/ambari > %define _include_dir %{_prefix}/include > %define _lib_dir %{_prefix}/lib > %define _lib64_dir %{_prefix}/lib64 > %define _libexec_dir %{_prefix}/libexec > %define _log_dir /var/log/ambari > %define _man_dir %{_prefix}/man > %define _pid_dir /var/run/ambari > %define _sbin_dir %{_prefix}/sbin > %define _share_dir %{_prefix}/share/ambari > %define _src_dir %{_prefix}/src > %define _var_dir %{_prefix}/var/lib > > # Build time settings > %define _build_dir > /home/isap/.hudson/jobs/Ambari/workspace/agent/target/rpm/ambari/BUILD > %define debug_package %{nil} > > Summary: Hadoop Management System Agent > License: Apache License, Version 2.0 > URL: http://incubator.apache.org/ambari > Vendor: Apache Software Foundation > Group: Development/Libraries > Name: %{name} > Version: %{version} > Release: %{release} > Source0: %{_final_name}.tar.gz > Prefix: %{_bin_dir} > Prefix: %{_conf_dir} > Prefix: %{_log_dir} > Prefix: %{_pid_dir} > Buildroot: %{_build_dir} > Requires: sh-utils, textutils, /usr/sbin/useradd, /usr/sbin/usermod, > /sbin/chkconfig, /sbin/service, transmission-cli, zkpython, zookeeper-lib, > BitTorrent-bencode, mimerender, simplejson, mimeparse, web.py, > python-setuptools, libevent >= 2.0.10, avahi-tools, python-iniparse, > /sbin/ethtool > AutoReqProv: no > Provides: ambari-agent > > %description > Ambari Agent manage software installation and configuration for Hadoop > software stack. > > %prep > > %setup -D -a 0 -n usr > > %build > if [ -d ${RPM_BUILD_DIR}%{_log_dir} ]; then > rm -rf ${RPM_BUILD_DIR}%{_log_dir} > fi > > if [ -d ${RPM_BUILD_DIR}%{_conf_dir} ]; then > rm -rf ${RPM_BUILD_DIR}%{_conf_dir} > fi > > if [ -d ${RPM_BUILD_DIR}%{_pid_dir} ]; then > rm -rf ${RPM_BUILD_DIR}%{_pid_dir} > fi > > mkdir -p ${RPM_BUILD_DIR}%{_conf_dir} > mkdir -p ${RPM_BUILD_DIR}%{_log_dir} > mkdir -p ${RPM_BUILD_DIR}%{_conf_dir} > mkdir -p ${RPM_BUILD_DIR}/etc/init.d > > cp ${RPM_BUILD_DIR}/../../../../src/packages/rpm/init.d/ambari-agent > ${RPM_BUILD_DIR}/etc/init.d/ambari-agent > chmod 0755 ${RPM_BUILD_DIR}/etc/init.d/ambari-agent > > %preun > rm -rf /etc/default/ambari-agent-env.sh > > %pre > getent group hadoop 2>/dev/null >/dev/null || /usr/sbin/groupadd -g 123 -r > hadoop > /usr/sbin/useradd --comment "Ambari" -u 210 --shell /bin/bash -M -r --groups > hadoop --home /home/ambari ambari 2> /dev/null || : > > %post > mkdir -p ${RPM_INSTALL_PREFIX2} > mkdir -p ${RPM_INSTALL_PREFIX3} > echo "AMBARI_LOG_DIR=${RPM_INSTALL_PREFIX2}" > > /etc/default/ambari-agent-env.sh > echo "AMBARI_PID_DIR=${RPM_INSTALL_PREFIX3}" >> > /etc/default/ambari-agent-env.sh > mkdir -p /home/ambari/var/tmp > mkdir -p /home/ambari/var/cache/downloads > mkdir -p /home/ambari/apps > > %files > %defattr(-,root,root) > %{_prefix} > /etc/init.d/ambari-agent > %config %{_conf_dir} > ---------------------------------------------------------------- > > > > Thanks & Regards > Rohith Sharma K S > > > -----Original Message----- > From: Eric Yang [mailto:[email protected]] > Sent: Thursday, December 22, 2011 1:41 PM > To: [email protected]; [email protected] > Subject: Re: Build Error while running build script > > The script is automatically generated by rpmbuild command. What > should have happen is > > mkdir $RPM_BUILD_ROOT > > then shell script should untar the > ambari-agent-0.1.0.linux-i686.tar.gz because this > tarball contains usr structure. > > However, it looks like the script is missing the untar command because > rpmbuild > python script can not find Source0 tag from rpm spec file. > Can you find the rpm .spec file in target directory and paste it here? > It would give us more data point to find out what went wrong. > > Thanks > > regards, > Eric > > On Wed, Dec 21, 2011 at 10:46 PM, RohithSharma > <[email protected]> wrote: >> Hi Eric, >> >>>Could you check target/ambari-agent-0.1.0/dist and see if there is a >>>tarball? >> >> No Eric, there is no file present under >> agent/target/ambari-agent-0.1.0/dist, but >> we have a tarball ambari-agent-0.1.0.linux-i686.tar.gz in under target >> folder inside agent. >> >> >> I would like to add my suspection here, >> >> we are inside >> "/home/isap/.hudson/jobs/Ambari/workspace/agent/target/rpm/ambari/BUILD" >> which is RPM_BUILD_ROOT. >> then we are deleting and creating $RPM_BUILD_ROOT directory only, not the >> usr directory inside it. >> then we are trying cd usr, >> >> I feel this part of the script is the problem... correct me, if I am wrong >> >> >>>RPM_BUILD_ROOT="/home/isap/.hudson/jobs/Ambari/workspace/agent/target/rpm/ > a >> mbari/BUILD" >>> export RPM_BUILD_ROOT >>> set -x >>> umask 022 >>> cd >> "/home/isap/.hudson/jobs/Ambari/workspace/agent/target/rpm/ambari/BUILD" >>> /bin/rm -rf "$RPM_BUILD_ROOT" >>> /bin/mkdir -p `dirname "$RPM_BUILD_ROOT"` >>> /bin/mkdir "$RPM_BUILD_ROOT" >>> >>> cd 'usr' >> >> >> Thanks & Regards >> >> Rohith Sharma K S >> >> >> -----Original Message----- >> From: Eric Yang [mailto:[email protected]] >> Sent: Thursday, December 22, 2011 11:37 AM >> To: [email protected]; [email protected] >> Subject: Re: Build Error while running build script >> >> I think I have some clue why this is happening. >> We are using python setup tools to generate a tarball which contains >> binaries for the compiled OS. On redhat, it would >> generate a tarball with filename pattern: > ambari-agent-0.1.0-linux-*.tar.gz >> >> It appears that on SUSE, it may not be following the same filename >> pattern. When rpmbuild process tries to expand the >> source tarball, it doesn't exist. Hence the follow up action to "cd usr" >> fails. >> >> Could you check target/ambari-agent-0.1.0/dist and see if there is a >> tarball? It would help us to refine the file name pattern >> to match the source tarball for rpm to repackage. Thanks >> >> regards, >> Eric >> >> On Wed, Dec 21, 2011 at 8:51 PM, RohithSharma <[email protected]> >> wrote: >>> Hi Eric, >>> >>> Thanks for the quick response. >>> >>>>Is Python executable located outside of /usr? >>> No Eric, Python is installed in /usr itself. >>> >>>>The rpm spec file expect the output of artifact to live in a directory >>>>called usr. Python output on suse is generated outside of usr. >>> >>> In my machine, the Python output is generated inside usr (stacktrace >>> attached), but I am not sure why this problem still persists and fails >> with >>> [rpm] RPM build errors: >>> [rpm] + cd usr >>> [rpm] /var/tmp/rpm-tmp.94888: line 26: cd: usr: No such file or >>> directory >>> >>> >>> >> > ____________________________________________________________________________ >>> >>> The snippet from var/tmp/rpm-tmp.94888 script which is failing giving the >>> above error. >>> >>> >> > RPM_BUILD_ROOT="/home/isap/.hudson/jobs/Ambari/workspace/agent/target/rpm/am >>> bari/BUILD" >>> export RPM_BUILD_ROOT >>> set -x >>> umask 022 >>> cd >> "/home/isap/.hudson/jobs/Ambari/workspace/agent/target/rpm/ambari/BUILD" >>> /bin/rm -rf "$RPM_BUILD_ROOT" >>> /bin/mkdir -p `dirname "$RPM_BUILD_ROOT"` >>> /bin/mkdir "$RPM_BUILD_ROOT" >>> >>> cd 'usr' >>> if [ -d ${RPM_BUILD_DIR}/var/log/ambari ]; then >>> rm -rf ${RPM_BUILD_DIR}/var/log/ambari >>> fi >>> >>> >> > ____________________________________________________________________________ >>> >>> >>> Additional trace: >>> >>> [rpm] -rw-r--r-- root/root 10613 2011-12-21 14:23 >>> ./usr/local/lib/python2.6/site-packages/ambari_component/package.py >>> [rpm] -rw-r--r-- root/root 1667 2011-12-21 14:23 >>> ./usr/local/lib/python2.6/site-packages/ambari_component/__init__.pyc >>> [rpm] -rw-r--r-- root/root 1751 2011-12-21 14:23 >>> ./usr/local/lib/python2.6/site-packages/ambari_component/main.py >>> [rpm] drwxr-xr-x root/root 0 2011-12-21 14:23 >> ./usr/local/bin/ >>> >>> [rpm] -rwxr-xr-x root/root 295 2011-12-21 14:23 >>> ./usr/local/bin/ambari-agent >>> [rpm] -rwxr-xr-x root/root 317 2011-12-21 14:23 >>> ./usr/local/bin/ambari-torrent-callback >>> [rpm] ++ /usr/bin/id -u >>> [rpm] + '[' 0 = 0 ']' >>> [rpm] + /bin/chgrp -Rhf root . >>> [rpm] + /bin/chmod -Rf a+rX,u+w,g-w,o-w . >>> [rpm] + exit 0 >>> [rpm] Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.94888 >>> [rpm] + umask 022 >>> [rpm] + cd >>> /home/isap/.hudson/jobs/Ambari/workspace/agent/target/rpm/ambari/BUILD >>> [rpm] + /bin/rm -rf >>> /home/isap/.hudson/jobs/Ambari/workspace/agent/target/rpm/ambari/BUILD >>> [rpm] ++ dirname >>> /home/isap/.hudson/jobs/Ambari/workspace/agent/target/rpm/ambari/BUILD >>> [rpm] + /bin/mkdir -p >>> /home/isap/.hudson/jobs/Ambari/workspace/agent/target/rpm/ambari >>> [rpm] + /bin/mkdir >>> /home/isap/.hudson/jobs/Ambari/workspace/agent/target/rpm/ambari/BUILD >>> [rpm] >>> [rpm] >>> [rpm] RPM build errors: >>> [rpm] + cd usr >>> >> > ____________________________________________________________________________ >>> >>> Thanks & Regards >>> >>> Rohith Sharma K S >>> >>> >>> >>> -----Original Message----- >>> From: Eric Yang [mailto:[email protected]] >>> Sent: Wednesday, December 21, 2011 10:31 PM >>> To: [email protected] >>> Subject: Re: Build Error while running build script >>> >>> Rpm build is design to build on redhat only. Is Python executable > located >>> outside of /usr? The rpm spec file expect the output of artifact to live >> in >>> a directory called usr. Python output on suse is generated outside of >> usr. >>> Hence the build procedure fails. There should be debian and suse package >>> build process in the future, but the project is not there yet. There is >>> also plan to make one artifact for all components. It may be a while >> before >>> Debian and suse are supported. >>> >>> Sent from my iPhone >>> >>> On Dec 21, 2011, at 4:53 AM, RohithSharma <[email protected]> >> wrote: >>> >>>> Hi >>>> >>>> >>>> >>>> Thank you for response..! >>>> >>>> >>>> >>>> I am trying to build on LInux : SuSe-11 SP0 >>>> >>>> >>>> >>>> >>>> >>>> Thanks & Regards >>>> >>>> RohithSharma K S >>>> >>>> >>>> >>>> >>>> >>>> From: Ahmed Fathalla [mailto:[email protected]] >>>> Sent: Wednesday, December 21, 2011 4:30 PM >>>> To: [email protected]; [email protected] >>>> Subject: Re: Build Error while running build script >>>> >>>> >>>> >>>> This happened to me when I tried to build the rpm on Ubuntu, are you >> using >>> a >>>> Debian based system? >>>> >>>> On Wed, Dec 21, 2011 at 12:45 PM, RohithSharma >> <[email protected]> >>>> wrote: >>>> >>>> Hi Everyone, >>>> >>>> >>>> >>>> I am trying to build Ambari from svn following instructions given in >>>> read me, as there is no Ambari distribution available in the Apache. >>>> >>>> >>>> >>>> Following are the steps performed >>>> >>>> >>>> >>>> Installed Python2.6 and its dependencies. >>>> >>>> >>>> >>>> Executed the command "mvn clean package -P rpm -DskipTests -X" in the >>>> Ambari_Home folder. >>>> >>>> >>>> >>>> While RPM task execution , it failed. Appreciate if you can tell me > what >>>> I'm doing wrong >>>> >>>> >>>> >>>> [rpm] -rwxr-xr-x root/root 295 2011-12-21 14:23 >>>> ./usr/local/bin/ambari-agent >>>> [rpm] -rwxr-xr-x root/root 317 2011-12-21 14:23 >>>> ./usr/local/bin/ambari-torrent-callback >>>> [rpm] ++ /usr/bin/id -u >>>> [rpm] + '[' 0 = 0 ']' >>>> [rpm] + /bin/chgrp -Rhf root . >>>> [rpm] + /bin/chmod -Rf a+rX,u+w,g-w,o-w . >>>> [rpm] + exit 0 >>>> [rpm] Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.94888 >>>> [rpm] + umask 022 >>>> [rpm] + cd >>>> /home/isap/.hudson/jobs/Ambari/workspace/agent/target/rpm/ambari/BUILD >>>> [rpm] + /bin/rm -rf >>>> /home/isap/.hudson/jobs/Ambari/workspace/agent/target/rpm/ambari/BUILD >>>> [rpm] ++ dirname >>>> /home/isap/.hudson/jobs/Ambari/workspace/agent/target/rpm/ambari/BUILD >>>> [rpm] + /bin/mkdir -p >>>> /home/isap/.hudson/jobs/Ambari/workspace/agent/target/rpm/ambari >>>> [rpm] + /bin/mkdir >>>> /home/isap/.hudson/jobs/Ambari/workspace/agent/target/rpm/ambari/BUILD >>>> [rpm] >>>> [rpm] >>>> [rpm] RPM build errors: >>>> [rpm] + cd usr >>>> [rpm] /var/tmp/rpm-tmp.94888: line 26: cd: usr: No such file or >>>> directory >>>> [rpm] error: Bad exit status from /var/tmp/rpm-tmp.94888 (%build) >>>> [rpm] Bad exit status from /var/tmp/rpm-tmp.94888 (%build) >>>> [INFO] >>>> ------------------------------------------------------------------------ >>>> [INFO] Reactor Summary: >>>> [INFO] >>>> [INFO] agent ............................................. FAILURE >>> [19.360s] >>>> >>>> [INFO] ambari ............................................ SKIPPED >>>> [INFO] client ............................................ SKIPPED >>>> [INFO] controller ........................................ SKIPPED >>>> [INFO] >>>> ------------------------------------------------------------------------ >>>> [INFO] BUILD FAILURE >>>> [INFO] >>>> ------------------------------------------------------------------------ >>>> [INFO] Total time: 20.854s >>>> [INFO] Finished at: Wed Dec 21 14:23:14 IST 2011 >>>> [INFO] Final Memory: 5M/15M >>>> [INFO] >>>> ------------------------------------------------------------------------ >>>> [ERROR] Failed to execute goal >>>> org.apache.maven.plugins:maven-antrun-plugin:1.6:run (build-rpm) on >>> project >>>> ambari-agent: An Ant BuildException has occured: The following error >>>> occurred while executing this line: >>>> [ERROR] >>>> > /home/isap/.hudson/jobs/Ambari/workspace/agent/src/packages/build.xml:94: >>>> '/usr/bin/rpmbuild' failed with exit code 1 >>>> [ERROR] -> [Help 1] >>>> [ERROR] >>>> [ERROR] To see the full stack trace of the errors, re-run Maven with the >>> -e >>>> switch. >>>> [ERROR] Re-run Maven using the -X switch to enable full debug logging. >>>> [ERROR] >>>> [ERROR] For more information about the errors and possible solutions, >>> please >>>> read the following articles: >>>> [ERROR] [Help 1] >>>> http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> Thanks & Regards >>>> >>>> Rohith Sharma K S >>>> >>>> >>>> >>>> >>>> -- >>>> Ahmed Fathalla >>>> >>> >> >
