[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Quilt-dev] Bug: Missing files with make install w/o previous make
From: |
Rene Kita |
Subject: |
Re: [Quilt-dev] Bug: Missing files with make install w/o previous make |
Date: |
Wed, 27 Sep 2023 14:40:12 +0200 |
On Wed, Sep 27, 2023 at 11:36:31AM +0200, Jean Delvare wrote:
> On Wed, 27 Sep 2023 07:32:53 +0200, Rene Kita wrote:
> > On Tue, Sep 26, 2023 at 05:58:26PM +0200, Jean Delvare wrote:
> > > On Thu, 2023-08-10 at 16:50 +0200, Rene Kita wrote:
> > > > When working from the git repo and starting clean a `make install'
> > > > errors out because some files where not generated.
> > [...]
> > > > This does not work:
> > > >
> > > > make distclean || :; ./configure --prefix=/tmp/ && make install
> > > >
> > > >
> > > > Errors out with:
> > > >
> > > > /usr/bin/install: cannot stat 'doc/README': No such file or directory
> > > > make: *** [Makefile:318: install-main] Error 1
> > >
> > > I don't consider this to be a bug. You obviously can't install before
> > > building, so calling "make install" before "make" is simply not a good
> > > idea, it can't succeed for any package, not just quilt.
> >
> > This is not my experience. Most packages I install from source just
> > build when calling 'make install'.
>
> This made me curious so I gave it a try. This indeed works for
> i2c-tools for example, but it doesn't work for the kernel:
>
> # make install
> INSTALL /boot
>
> *** Missing file: arch/x86/boot/bzImage
> *** You need to run "make" before "make install".
>
> make[1]: *** [arch/x86/Makefile:292: install] Error 1
> make: *** [Makefile:234: __sub-make] Error 2
>
> But at least there's an explicit error message with instructions.
Yes, the unhandled error made me believe it's an oversight, hence my
email. Now that I know it's by design I'm totally OK with it.
> > > Furthermore, I would argue that "make && make install" in your first
> > > example is a bad idea. You typically need to be root to install a
> > > package, but you don't want to build anything as root, for obvious
> > > security reasons.
> >
> > As I always install into my $HOME, this does not affect me.
>
> OK, your request makes sense then.
>
> > > And this is the reason why we don't want to add
> > > dependencies to the Makefile to let "make install" generate the missing
> > > files, because that would most likely cause these files to be generated
> > > by the wrong user.
> >
> > I see. It's a valid point.
> >
> > > In other words, if it hurts, well, just don't do it.
> >
> > Or patch the Makefile - it's open source for a reason. ;-)
>
> If you have fix which works for your use case, I'll be happy to commit
> it.
I just added 'all' as prerequisite for 'install'. I won't send a patch
for this.
> That being said... I don't really get why you don't just always use
> "make && make install", which is pretty much guaranteed to always work
> for all packages, and has the advantage of preventing a potential
> partial installation in case of a failure in the middle of the build.
Out of habit, because "make install" is shorter and "&&" is awkward to
type - but nothing to worry about.
Thanks for your time and sorry for the noise.
Rene