i'm a newbie at building rpms. I made a few rpms years ago, but can't now make one on Centos 5. In /usr/local/rpmbuild, there are 5 subdirs: BUILD RPMS SOURCES SPECS SRPMS tmp When I type: rpmbuild -ba /usr/local/rpmbuild/SPECS/centos-release-cr-ihc.spec I get 'file not found' errors, for paths in /usr/local/rpmbuild/tmp: error: File not found: /usr/local/rpmbuild/tmp/centos-release-cr-ihc-buildroot/etc/yum.repos.d error: File not found: /usr/local/rpmbuild/tmp/centos-release-cr-ihc-buildroot/etc/yum.repos.d/CentOS-cr.repo RPM build errors: File not found: /usr/local/rpmbuild/tmp/centos-release-cr-ihc-buildroot/etc/yum.repos.d File not found: /usr/local/rpmbuild/tmp/centos-release-cr-ihc-buildroot/etc/yum.repos.d/CentOS-cr.repo All i did was to: 1) put a tarball in SOURCES, 2) put a spec file in SPECS, 3) rpmbuild -ba my spec file Did I miss a step? If not, here's the contents of my tarball and spec file: The tarball in SOURCES is named: centos-release-cr-ihc-1.tar.gz the contents of which are: drwxr-xr-x root/root 0 2011-09-09 15:40:01 centos-release-cr-ihc-1/ drwxr-xr-x root/root 0 2011-09-09 15:39:57 centos-release-cr-ihc-1/etc/ drwxr-xr-x root/root 0 2011-09-09 15:40:39 centos-release-cr-ihc-1/etc/yum.repos.d/ -rw-r--r-- root/root 523 2011-09-09 15:35:59 centos-release-cr-ihc-1/etc/yum.repos.d/CentOS-cr.repo my spec file is /usr/local/rpmbuild/SPECS/centos-release-cr-ihc.spec the contents of which are: Summary: Package to set up IHC use of the centos-cr repository Name: centos-release-cr-ihc Version: 1 Release: 1 Source0: centos-release-cr-ihc-1.tar.gz License: GPL Group: IHC-config BuildArch: noarch BuildRoot: %{_tmppath}/%{name}-buildroot %description Package to set up IHC use of the centos-cr repository %prep %setup -q %build %install install -m 0755 -d /etc/yum.repos.d install -m 0755 etc/yum.repos.d/CentOS-cr.repo /etc/yum.repos.d/CentOS-cr.repo %clean rm -rf $RPM_BUILD_ROOT %post echo " " echo "Yay IHC IS Team!" %files %dir /etc/yum.repos.d /etc/yum.repos.d/CentOS-cr.repo Thanks, Jon
On Monday, September 12, 2011 06:00:32 PM Jon Detert wrote:> i'm a newbie at building rpms. I made a few rpms years ago, but can't now > make one on Centos 5. > > In /usr/local/rpmbuild, there are 5 subdirs: BUILD RPMS SOURCES SPECS > SRPMS tmpIt's not a good idea to build rpms as root (unless in a throw-away vm). Build as user or even better using mock. That said, many a broken rpmbuild can be blamed on missing the redhat-rpm-config package (containing lots of rpm macros). If that's not the case I'd try rebuilding a known good src.rpm with "rpmbuild --rebuild foo.src.rpm" to validate your setup. /Peter> When I type: rpmbuild -ba > /usr/local/rpmbuild/SPECS/centos-release-cr-ihc.spec > > I get 'file not found' errors, for paths in /usr/local/rpmbuild/tmp: > error: File not found: > /usr/local/rpmbuild/tmp/centos-release-cr-ihc-buildroot/etc/yum.repos.d > error: File not found: > /usr/local/rpmbuild/tmp/centos-release-cr-ihc-buildroot/etc/yum.repos.d/Ce > ntOS-cr.repo RPM build errors: > File not found: > /usr/local/rpmbuild/tmp/centos-release-cr-ihc-buildroot/etc/yum.repos.d > File not found: > /usr/local/rpmbuild/tmp/centos-release-cr-ihc-buildroot/etc/yum.repos.d/Ce > ntOS-cr.repo > > All i did was to: > 1) put a tarball in SOURCES, > 2) put a spec file in SPECS, > 3) rpmbuild -ba my spec file > > Did I miss a step? If not, here's the contents of my tarball and spec > file: > > The tarball in SOURCES is named: centos-release-cr-ihc-1.tar.gz > the contents of which are: > drwxr-xr-x root/root 0 2011-09-09 15:40:01 centos-release-cr-ihc-1/ > drwxr-xr-x root/root 0 2011-09-09 15:39:57 > centos-release-cr-ihc-1/etc/ drwxr-xr-x root/root 0 2011-09-09 > 15:40:39 centos-release-cr-ihc-1/etc/yum.repos.d/ -rw-r--r-- root/root > 523 2011-09-09 15:35:59 > centos-release-cr-ihc-1/etc/yum.repos.d/CentOS-cr.repo > > my spec file is /usr/local/rpmbuild/SPECS/centos-release-cr-ihc.spec > the contents of which are: > Summary: Package to set up IHC use of the centos-cr repository > Name: centos-release-cr-ihc > Version: 1 > Release: 1 > Source0: centos-release-cr-ihc-1.tar.gz > License: GPL > Group: IHC-config > BuildArch: noarch > BuildRoot: %{_tmppath}/%{name}-buildroot > %description > Package to set up IHC use of the centos-cr repository > %prep > %setup -q > %build > %install > install -m 0755 -d /etc/yum.repos.d > install -m 0755 etc/yum.repos.d/CentOS-cr.repo > /etc/yum.repos.d/CentOS-cr.repo %clean > rm -rf $RPM_BUILD_ROOT > %post > echo " " > echo "Yay IHC IS Team!" > %files > %dir /etc/yum.repos.d > /etc/yum.repos.d/CentOS-cr.repo > > Thanks, > > Jon-------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.centos.org/pipermail/centos/attachments/20110912/d2f91bd4/attachment.sig>
Dear Jon, Install the package rpmdevtools from EPEL repository and setup Your own build tree in $HOME of some non-root user. Please, avoid any builds as root and don't build package as Your current (desktop) non-root user. It's good idea to create user for the packages building. Then setup the build tree in his $HOME directory (execute rpmdev-setuptree). I wish You success! Yours Vesselin On 09/12/2011 07:00 PM, Jon Detert wrote:> i'm a newbie at building rpms. I made a few rpms years ago, but can't now make one on Centos 5. > > In /usr/local/rpmbuild, there are 5 subdirs: BUILD RPMS SOURCES SPECS SRPMS tmp > > When I type: rpmbuild -ba /usr/local/rpmbuild/SPECS/centos-release-cr-ihc.spec > > I get 'file not found' errors, for paths in /usr/local/rpmbuild/tmp: > error: File not found: /usr/local/rpmbuild/tmp/centos-release-cr-ihc-buildroot/etc/yum.repos.d > error: File not found: /usr/local/rpmbuild/tmp/centos-release-cr-ihc-buildroot/etc/yum.repos.d/CentOS-cr.repo > RPM build errors: > File not found: /usr/local/rpmbuild/tmp/centos-release-cr-ihc-buildroot/etc/yum.repos.d > File not found: /usr/local/rpmbuild/tmp/centos-release-cr-ihc-buildroot/etc/yum.repos.d/CentOS-cr.repo > > All i did was to: > 1) put a tarball in SOURCES, > 2) put a spec file in SPECS, > 3) rpmbuild -ba my spec file > > Did I miss a step? If not, here's the contents of my tarball and spec file: > > The tarball in SOURCES is named: centos-release-cr-ihc-1.tar.gz > the contents of which are: > drwxr-xr-x root/root 0 2011-09-09 15:40:01 centos-release-cr-ihc-1/ > drwxr-xr-x root/root 0 2011-09-09 15:39:57 centos-release-cr-ihc-1/etc/ > drwxr-xr-x root/root 0 2011-09-09 15:40:39 centos-release-cr-ihc-1/etc/yum.repos.d/ > -rw-r--r-- root/root 523 2011-09-09 15:35:59 centos-release-cr-ihc-1/etc/yum.repos.d/CentOS-cr.repo > > my spec file is /usr/local/rpmbuild/SPECS/centos-release-cr-ihc.spec > the contents of which are: > Summary: Package to set up IHC use of the centos-cr repository > Name: centos-release-cr-ihc > Version: 1 > Release: 1 > Source0: centos-release-cr-ihc-1.tar.gz > License: GPL > Group: IHC-config > BuildArch: noarch > BuildRoot: %{_tmppath}/%{name}-buildroot > %description > Package to set up IHC use of the centos-cr repository > %prep > %setup -q > %build > %install > install -m 0755 -d /etc/yum.repos.d > install -m 0755 etc/yum.repos.d/CentOS-cr.repo /etc/yum.repos.d/CentOS-cr.repo > %clean > rm -rf $RPM_BUILD_ROOT > %post > echo " " > echo "Yay IHC IS Team!" > %files > %dir /etc/yum.repos.d > /etc/yum.repos.d/CentOS-cr.repo > > Thanks, > > Jon > _______________________________________________ > CentOS mailing list > CentOS at centos.org > http://lists.centos.org/mailman/listinfo/centos
12.09.2011 20:00, Jon Detert wrote:> i'm a newbie at building rpms. I made a few rpms years ago, but can't now make one on Centos 5. > > In /usr/local/rpmbuild, there are 5 subdirs: BUILD RPMS SOURCES SPECS SRPMS tmp > > When I type: rpmbuild -ba /usr/local/rpmbuild/SPECS/centos-release-cr-ihc.spec > > I get 'file not found' errors, for paths in /usr/local/rpmbuild/tmp: > error: File not found: /usr/local/rpmbuild/tmp/centos-release-cr-ihc-buildroot/etc/yum.repos.d > error: File not found: /usr/local/rpmbuild/tmp/centos-release-cr-ihc-buildroot/etc/yum.repos.d/CentOS-cr.repo > RPM build errors: > File not found: /usr/local/rpmbuild/tmp/centos-release-cr-ihc-buildroot/etc/yum.repos.d > File not found: /usr/local/rpmbuild/tmp/centos-release-cr-ihc-buildroot/etc/yum.repos.d/CentOS-cr.repo > > All i did was to: > 1) put a tarball in SOURCES, > 2) put a spec file in SPECS, > 3) rpmbuild -ba my spec file > > Did I miss a step? If not, here's the contents of my tarball and spec file: > > The tarball in SOURCES is named: centos-release-cr-ihc-1.tar.gz > the contents of which are: > drwxr-xr-x root/root 0 2011-09-09 15:40:01 centos-release-cr-ihc-1/ > drwxr-xr-x root/root 0 2011-09-09 15:39:57 centos-release-cr-ihc-1/etc/ > drwxr-xr-x root/root 0 2011-09-09 15:40:39 centos-release-cr-ihc-1/etc/yum.repos.d/ > -rw-r--r-- root/root 523 2011-09-09 15:35:59 centos-release-cr-ihc-1/etc/yum.repos.d/CentOS-cr.repo > > my spec file is /usr/local/rpmbuild/SPECS/centos-release-cr-ihc.spec > the contents of which are: > Summary: Package to set up IHC use of the centos-cr repository > Name: centos-release-cr-ihc > Version: 1 > Release: 1 > Source0: centos-release-cr-ihc-1.tar.gz > License: GPL > Group: IHC-config > BuildArch: noarch > BuildRoot: %{_tmppath}/%{name}-buildroot > %description > Package to set up IHC use of the centos-cr repository > %prep > %setup -q > %build > %install > install -m 0755 -d /etc/yum.repos.d > install -m 0755 etc/yum.repos.d/CentOS-cr.repo /etc/yum.repos.d/CentOS-cr.repo > %clean > rm -rf $RPM_BUILD_ROOT > %post > echo " " > echo "Yay IHC IS Team!" > %files > %dir /etc/yum.repos.d > /etc/yum.repos.d/CentOS-cr.repo >Directory /etc/yum.repos.d and file /etc/yum.repos.d/CentOS-cr.repo need to be installed into $RPM_BUILD_ROOT and not into actual / during the %install phase. Try something like this: %install install -m 0755 -d $RPM_BUILD_ROOT/etc/yum.repos.d install -m 0755 etc/yum.repos.d/CentOS-cr.repo $RPM_BUILD_ROOT/etc/yum.repos.d and consider working under your home directory. Hope this would help.
From: Peter Kjellstr?m <cap at nsc.liu.se>> It's not a good idea to build rpms as root (unless in a throw-away vm). > Build as user or even better using mock.Am I missing something or building an rpm as a non-root user for security reason won't do much when, in the end, the rpm will be installed as root...? Apart from protecting the rpm building host. JD