You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by David James <st...@gmail.com> on 2004/09/18 21:30:12 UTC

[PATCH] Don't reinstall include files if identical files are already installed

* build/generator/gen_make.py
 (gen_make.Generator.write): Don't reinstall include files if
identical files are already installed. I implemented this by making
the installed include files dependencies of install-include.

Re: [PATCH] Don't reinstall include files if identical files are already installed

Posted by David James <st...@gmail.com>.
> Also, your implementation would fail to install the headers in
> situations where it really should.  If I built and installed svn-1.0.7
> today, and then went and grabbed 1.1.0-rc3 and built and installed it, I
> would fail to install the header files with your implementation, because
> the mod times from today's install of 1.0.7 would be newer than the mod
> times of the headers from the 1.1.0-rc3 tarball.
This is a serious problem. Thanks for pointing it out! Until I've
figured a way to solve this problem, I'm withdrawing this patch.

I'll also need to rework my cross-library dependency patch to avoid
this issue. I'll repost it soon.

Cheers,

David

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: [PATCH] Don't reinstall include files if identical files are already installed

Posted by David James <st...@gmail.com>.
> However, it should _not_ under any circumstance depend on the targets it
> wants to install _to_.
> i.e.
> "install-bin" should not depend on /usr/bin/svn
> instead, install* should be "PHONY" targets.
Absolutely right, and Greg explained why.

If I rewrite this patch to use phony targets, this patch could be
useful. Greg Hudson explained why (in a response to my cross-library
dependency patch):
> I'm actually interested in the methodology of your first patch, which
> split up the install rules into one rule for each file.  Obviously we
> can't use the timestamps of what's in the installed area, but having a
> separate install rule for each library would mean that (a) we could get
> rid of the five separate library types in favor of a single "lib" type,
> and (b) we could stop relying on "make" evaluating dependencies in
> order, so that our Makefile would have a hope of operating in parallel
> mode.  (Not that one would ever really want to use "make -j install",
> but it's still more elegant not to rely on dependency order.)

Cheers,

David

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: [PATCH] Don't reinstall include files if identical files are already installed

Posted by Sven Mueller <sm...@leogic.com>.
Greg Hudson [u] wrote on 19/09/2004 00:31:

> On Sat, 2004-09-18 at 17:30, David James wrote:
> 
>>* build/generator/gen_make.py
>> (gen_make.Generator.write): Don't reinstall include files if
>>identical files are already installed.
> 
> 
> I checked a few random library packages (openssl, libpng) and they
> install their header files unconditionally.  automake-generated
> Makefiles also install their header files unconditionally.  I don't
> think it's really incumbent upon us to only install header files if
> they've changed, and we shouldn't complicate our build system in order
> to do so.
> 
> Also, your implementation would fail to install the headers in
> situations where it really should.  If I built and installed svn-1.0.7
> today, and then went and grabbed 1.1.0-rc3 and built and installed it, I
> would fail to install the header files with your implementation, because
> the mod times from today's install of 1.0.7 would be newer than the mod
> times of the headers from the 1.1.0-rc3 tarball.

Right.
Install-Targets should always depend on the _sources_ (not in the 
meaning of source codes, but source of a copy) it wants to install.
i.e.
"install-bin" should depend on "bin"
However, it should _not_ under any circumstance depend on the targets it 
wants to install _to_.
i.e.
"install-bin" should not depend on /usr/bin/svn
instead, install* should be "PHONY" targets.

regards,
sven

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: [PATCH] Don't reinstall include files if identical files are already installed

Posted by Greg Hudson <gh...@MIT.EDU>.
On Sat, 2004-09-18 at 17:30, David James wrote:
> * build/generator/gen_make.py
>  (gen_make.Generator.write): Don't reinstall include files if
> identical files are already installed.

I checked a few random library packages (openssl, libpng) and they
install their header files unconditionally.  automake-generated
Makefiles also install their header files unconditionally.  I don't
think it's really incumbent upon us to only install header files if
they've changed, and we shouldn't complicate our build system in order
to do so.

Also, your implementation would fail to install the headers in
situations where it really should.  If I built and installed svn-1.0.7
today, and then went and grabbed 1.1.0-rc3 and built and installed it, I
would fail to install the header files with your implementation, because
the mod times from today's install of 1.0.7 would be newer than the mod
times of the headers from the 1.1.0-rc3 tarball.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org