diff mbox

[ndctl] rpmbuild: ensure the rpmbuild working directories are present

Message ID 20171122220019.16041-1-vishal.l.verma@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Vishal Verma Nov. 22, 2017, 10 p.m. UTC
The rpmbuild and make-git-snapshot assume that the various ~/rpmbuild/*
directories are present. In case they weren't, git-archive would fail
with something like:

  /root/rpmbuild/SOURCES/ndctl-58.2.38.g8ad8f4c.tar.gz: No such file or directory

Add a 'mkdir -p' to make sure these directories are present.

Cc: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>
---
 rpmbuild.sh | 1 +
 1 file changed, 1 insertion(+)

Comments

Dan Williams Nov. 22, 2017, 10:13 p.m. UTC | #1
On Wed, Nov 22, 2017 at 2:00 PM, Vishal Verma <vishal.l.verma@intel.com> wrote:
> The rpmbuild and make-git-snapshot assume that the various ~/rpmbuild/*
> directories are present. In case they weren't, git-archive would fail
> with something like:
>
>   /root/rpmbuild/SOURCES/ndctl-58.2.38.g8ad8f4c.tar.gz: No such file or directory
>
> Add a 'mkdir -p' to make sure these directories are present.
>
> Cc: Dan Williams <dan.j.williams@intel.com>
> Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>
> ---
>  rpmbuild.sh | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/rpmbuild.sh b/rpmbuild.sh
> index 4535b46..1dd1709 100755
> --- a/rpmbuild.sh
> +++ b/rpmbuild.sh
> @@ -1,5 +1,6 @@
>  #!/bin/bash
>  pushd $(dirname $0) >/dev/null
> +mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}

Hmm, I'd rather run rpmdev-setuptree than create this directories
manually, and going further I'd rather just keep the assumption that
rpmdev-setuptree has already been run before this script is run.
Vishal Verma Nov. 22, 2017, 10:15 p.m. UTC | #2
On Wed, 2017-11-22 at 14:13 -0800, Dan Williams wrote:
> On Wed, Nov 22, 2017 at 2:00 PM, Vishal Verma <vishal.l.verma@intel.c
> om> wrote:
> > The rpmbuild and make-git-snapshot assume that the various
> > ~/rpmbuild/*
> > directories are present. In case they weren't, git-archive would
> > fail
> > with something like:
> > 
> >   /root/rpmbuild/SOURCES/ndctl-58.2.38.g8ad8f4c.tar.gz: No such
> > file or directory
> > 
> > Add a 'mkdir -p' to make sure these directories are present.
> > 
> > Cc: Dan Williams <dan.j.williams@intel.com>
> > Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>
> > ---
> >  rpmbuild.sh | 1 +
> >  1 file changed, 1 insertion(+)
> > 
> > diff --git a/rpmbuild.sh b/rpmbuild.sh
> > index 4535b46..1dd1709 100755
> > --- a/rpmbuild.sh
> > +++ b/rpmbuild.sh
> > @@ -1,5 +1,6 @@
> >  #!/bin/bash
> >  pushd $(dirname $0) >/dev/null
> > +mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
> 
> Hmm, I'd rather run rpmdev-setuptree than create this directories
> manually, and going further I'd rather just keep the assumption that
> rpmdev-setuptree has already been run before this script is run.

We could do a test -d ~/rpmbuild/SOURCES or so, and if not found, then
run rpmdev-setuptree?
We know we are about to write to that path, so if it doesn't exist, why
not create it?
Dan Williams Nov. 22, 2017, 11:49 p.m. UTC | #3
On Wed, Nov 22, 2017 at 2:15 PM, Verma, Vishal L
<vishal.l.verma@intel.com> wrote:
>
> On Wed, 2017-11-22 at 14:13 -0800, Dan Williams wrote:
>> On Wed, Nov 22, 2017 at 2:00 PM, Vishal Verma <vishal.l.verma@intel.c
>> om> wrote:
>> > The rpmbuild and make-git-snapshot assume that the various
>> > ~/rpmbuild/*
>> > directories are present. In case they weren't, git-archive would
>> > fail
>> > with something like:
>> >
>> >   /root/rpmbuild/SOURCES/ndctl-58.2.38.g8ad8f4c.tar.gz: No such
>> > file or directory
>> >
>> > Add a 'mkdir -p' to make sure these directories are present.
>> >
>> > Cc: Dan Williams <dan.j.williams@intel.com>
>> > Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>
>> > ---
>> >  rpmbuild.sh | 1 +
>> >  1 file changed, 1 insertion(+)
>> >
>> > diff --git a/rpmbuild.sh b/rpmbuild.sh
>> > index 4535b46..1dd1709 100755
>> > --- a/rpmbuild.sh
>> > +++ b/rpmbuild.sh
>> > @@ -1,5 +1,6 @@
>> >  #!/bin/bash
>> >  pushd $(dirname $0) >/dev/null
>> > +mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
>>
>> Hmm, I'd rather run rpmdev-setuptree than create this directories
>> manually, and going further I'd rather just keep the assumption that
>> rpmdev-setuptree has already been run before this script is run.
>
> We could do a test -d ~/rpmbuild/SOURCES or so, and if not found, then
> run rpmdev-setuptree?
> We know we are about to write to that path, so if it doesn't exist, why
> not create it?

Because we expect to build into an initialized rpmbuild tree, and if
it's not initialized failing seems appropriate. That said, I'm ok with
your "test and call rpmdev-setuptree" proposal.
>
Vishal Verma Nov. 27, 2017, 7:04 p.m. UTC | #4
On Wed, 2017-11-22 at 15:49 -0800, Dan Williams wrote:
> On Wed, Nov 22, 2017 at 2:15 PM, Verma, Vishal L
> <vishal.l.verma@intel.com> wrote:
> > 
> > On Wed, 2017-11-22 at 14:13 -0800, Dan Williams wrote:
> > > On Wed, Nov 22, 2017 at 2:00 PM, Vishal Verma <vishal.l.verma@int
> > > el.c
> > > om> wrote:
> > > > The rpmbuild and make-git-snapshot assume that the various
> > > > ~/rpmbuild/*
> > > > directories are present. In case they weren't, git-archive
> > > > would
> > > > fail
> > > > with something like:
> > > > 
> > > >   /root/rpmbuild/SOURCES/ndctl-58.2.38.g8ad8f4c.tar.gz: No such
> > > > file or directory
> > > > 
> > > > Add a 'mkdir -p' to make sure these directories are present.
> > > > 
> > > > Cc: Dan Williams <dan.j.williams@intel.com>
> > > > Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>
> > > > ---
> > > >  rpmbuild.sh | 1 +
> > > >  1 file changed, 1 insertion(+)
> > > > 
> > > > diff --git a/rpmbuild.sh b/rpmbuild.sh
> > > > index 4535b46..1dd1709 100755
> > > > --- a/rpmbuild.sh
> > > > +++ b/rpmbuild.sh
> > > > @@ -1,5 +1,6 @@
> > > >  #!/bin/bash
> > > >  pushd $(dirname $0) >/dev/null
> > > > +mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
> > > 
> > > Hmm, I'd rather run rpmdev-setuptree than create this directories
> > > manually, and going further I'd rather just keep the assumption
> > > that
> > > rpmdev-setuptree has already been run before this script is run.
> > 
> > We could do a test -d ~/rpmbuild/SOURCES or so, and if not found,
> > then
> > run rpmdev-setuptree?
> > We know we are about to write to that path, so if it doesn't exist,
> > why
> > not create it?
> 
> Because we expect to build into an initialized rpmbuild tree, and if
> it's not initialized failing seems appropriate. That said, I'm ok
> with
> your "test and call rpmdev-setuptree" proposal.
> > 

Actually rpmdev-setuptree will overwrite any rpmmacros file, so maybe
it is best not to call it and risk changing users environments. I'll
send a patch to check for it though, and if not found, print an error
message and exit out.
diff mbox

Patch

diff --git a/rpmbuild.sh b/rpmbuild.sh
index 4535b46..1dd1709 100755
--- a/rpmbuild.sh
+++ b/rpmbuild.sh
@@ -1,5 +1,6 @@ 
 #!/bin/bash
 pushd $(dirname $0) >/dev/null
+mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
 ./make-git-snapshot.sh
 popd > /dev/null
 rpmbuild -ba $(dirname $0)/rhel/ndctl.spec