FAQ
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

Search Discussions

  • Peter Kjellström at Sep 12, 2011 at 12:20 pm

    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 tmp
    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.

    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: not available
    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.bin
  • John Doe at Sep 13, 2011 at 5:20 am
    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
  • Peter Kjellström at Sep 13, 2011 at 6:53 am

    On Tuesday, September 13, 2011 11:20:57 AM John Doe wrote:
    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.
    It is true that if you're looking only at the security aspect of hadling a
    malicious rpm then it won't buy you that much. It will still however:

    * Keep the rest of the rpms that build-server did safe
    * Delay the effect one step (you can pick up the malicious binary rpm when
    testing, before deploying).

    That said the main reason probably isn't malicious (src)rpms but broken ones.
    A spec file can easily contain bugs that will change/corrupt/break your build
    machine (and still produce a valid binary rpm).

    In the end it's kind of like running your gnome as root. You can do it but
    common sense and the complexity of the system tells you not to.

    /Peter
    -------------- next part --------------
    A non-text attachment was scrubbed...
    Name: not available
    Type: application/pgp-signature
    Size: 198 bytes
    Desc: This is a digitally signed message part.
    Url : http://lists.centos.org/pipermail/centos/attachments/20110913/f23168a7/attachment.bin
  • Vesselin Kolev at Sep 12, 2011 at 12:25 pm
    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
  • Andrew Dorozhkin at Sep 12, 2011 at 12:39 pm

    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.
  • Jon Detert at Sep 12, 2011 at 1:16 pm

    ----- Original Message -----
    From: "Andrew Dorozhkin" <glukensoft at gmail.com>
    To: "CentOS mailing list" <centos at centos.org>
    Sent: Monday, September 12, 2011 11:39:44 AM
    Subject: Re: [CentOS] trouble building an rpm

    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:

    -- snip --
    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
    -- snip --
    %build
    %install
    install -m 0755 -d /etc/yum.repos.d
    install -m 0755 etc/yum.repos.d/CentOS-cr.repo
    -- snip --
    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
    Thanks! That was the problem, and your solution worked.

    Regards,

    Jon

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupcentos @
categoriescentos
postedSep 12, '11 at 12:00p
activeSep 13, '11 at 6:53a
posts7
users5
websitecentos.org
irc#centos

People

Translate

site design / logo © 2022 Grokbase