Compiling in from CVS
This discussion is connected to the gimp-user-list.gnome.org mailing list which is provided by the GIMP developers and not related to gimpusers.com.
This is a read-only list on gimpusers.com so this discussion thread is read-only, too.
Compiling in from CVS | Joao S. O. Bueno | 27 Nov 14:34 |
Compiling in from CVS | David Neary | 27 Nov 16:42 |
Compiling in from CVS | Malcolm Tredinnick | 28 Nov 00:27 |
Compiling in from CVS | Sven Neumann | 28 Nov 01:18 |
Compiling in from CVS
Hi there,
I am trying to keep a GIMP HEAD running, but oftenly I find some difficulties in compiling in from CVS and would like some hints on how to keep my local tree, in a way it compiles.
Actually, sometimes I simly give up and make a new checkout from the CVS entirely. I made this a day or two before 1.3.23 came out. When I perform this, I always manage to compile and install cleanly.
But, right now, I want to update it. So, let´s go by steps:
I go
cvs -z3 update
I go
make distclean
Them
./configure
make
Them it fails because some windowmanager.png has its name changed to
windowmanagement.png . I could work around this manually, but them
other failures will come over.
How do I avoid this? I get CVS versions from the past? I post them as
BUGs and wait for the mainteners to fix it up?
Is something beyond make distclean needed?
If the solution is to pull a different version of some files from the CVS, what is the syntax for it.
Thank you for the hints.
I hope that with a good willing answer to this e-mail, I don't have to
perform
rm -Rf gimp/
cvs -z3 checkout gimp
again nevermore.
Compiling in from CVS
Hi Joao,
Joao S. O. Bueno wrote:
But, right now, I want to update it. So, let?s go by steps: I go
cvs -z3 update
You should use cvs up -dP - this will create directories present in the repository, but not locally, and prune (remove) directories which have been emptied via file removals. There are reasonable defaults, and should probably go in your .cvsrc, along with diff -u.
That alone will fix some of your problems.
I go
make distclean
If you really want to clean out everything, then maintainer-clean is perhaps better. After doing this, you will need to re-run autogen.sh. Among other things, this rebuilds Makefile.ins from Makefile.ams, which is probably the point at which the changed filenames are causing a problem for you.
Is something beyond make distclean needed?
Usually, you don't need to make distclean at all.
The following is usually sufficient for me...
The first time:
cvs co -d gimp-1.3 gimp
cd gimp-1.3
./autogen.sh
make -j4
sudo make install
And thereafter:
cd gimp-1.3
cvs up -dP
make -j4
sudo make install
Sometimes, a new Makefile.am is added (recently, for example,
when mitch reorganised script-fu to separate out siod), and this
will not work. You will see an error like
make: no rule to target all
or somesuch in the directory in question. In this case, simply
re-run autogen.sh and all will be well.
When you run autogen.sh, what happens is that the makefiles are created with some special rules which check whether files like Makefile.am or configure.in have changed, and if they have, make will re-run what it needs to to bring these files and their dependencies up to date. This fails when there is a directory with no makefile at all (as is the case when a new directory gets added).
I hope that with a good willing answer to this e-mail, I don't have to perform
rm -Rf gimp/
cvs -z3 checkout gimp
again nevermore.
I hope so too :) The last time I did that is about 6 months ago.
Cheers, Dave.
Compiling in from CVS
On Fri, 2003-11-28 at 02:42, David Neary wrote:
Hi Joao,
Joao S. O. Bueno wrote:
But, right now, I want to update it. So, let?s go by steps: I go
cvs -z3 updateYou should use cvs up -dP - this will create directories present in the repository, but not locally, and prune (remove) directories which have been emptied via file removals. There are reasonable defaults, and should probably go in your .cvsrc, along with diff -u.
That alone will fix some of your problems.
I go
make distcleanIf you really want to clean out everything, then maintainer-clean is perhaps better. After doing this, you will need to re-run autogen.sh. Among other things, this rebuilds Makefile.ins from Makefile.ams, which is probably the point at which the changed filenames are causing a problem for you.
If you are going to run 'make distclean' or 'make maintainer-clean' you should do it *before* the CVS update. Otherwise files in the make processes' run might have been removes, Makefile.am files could have been changed (leading to changed Makefiles) and so the right files will not be cleaned and so on and so on. Your current method arbitrarily changes a bunch of code and then hopes that the old Makefile will still be relevant. Not always a good assumption.
Also, the attached file may prove useful if your tree is a little confused. Run 'python super-clean.py .' inside the gimp directory. It will remove all files that are not known to CVS from your local copy (without running out on the network -- it just looks at the local CVS control files). You can run this, then 'cvs update' to get any new files and be assured that you have a pristine CVS copy.
Malcolm
Compiling in from CVS
Hi,
"Joao S. O. Bueno" writes:
I am trying to keep a GIMP HEAD running, but oftenly I find some difficulties in compiling in from CVS and would like some hints on how to keep my local tree, in a way it compiles.
I assume you are getting GIMP from anoncvs. The cause of almost all problems with GIMP CVS are two things:
- You don't use 'cvs update -Pd'. Dave explained this nicely.
- You are getting inconsistent checkouts from the anoncvs servers. There are two or three different servers that you will get when you ask DNS for anoncvs.gnome.org. Unfortunately these aren't necessarily at the same state. The solution is hardcode one, preferably 130.239.18.151 in your /etc/hosts or use the IP address as CVS server hostname.
Them it fails because some windowmanager.png has its name changed to windowmanagement.png . I could work around this manually, but them other failures will come over.
How do I avoid this? I get CVS versions from the past? I post them as BUGs and wait for the mainteners to fix it up?
What you are describing here is exactly the symptoms of the anoncvs problems.
The GIMP CVS tree almost always compiles. It happens very rarely that someone forgets to change all relevant files or omits to checkin a changed file. This stuff is usually fixed very quickly but it is of course possible that the anoncvs server does it's daily update right when the CVS tree was broken.
Is something beyond make distclean needed?
You should almost never need to make distclean. I haven't done this for a loooong time now.
Sven