[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Building XFree86 3.3.6 in -current

Yes, this has been submitted before, no I've not planned to
incorporate it.

The sources are there for one primary purose.  To build a release.
A secondary purpose can be to let others build a release themselves.
Yet another purpose is for someone to build on a running system
new binaries and have them be installed such as /usr/src's
'make build'.

The current Makefile allows the first two.  If you define DESTDIR to
be /, it allows the third; if you understand that /usr/X11R6 and
/var/X11 get wiped when you use this, you'll not have any surprises.

The default target used in building releases is 'make b-r' .. designed
for someone on a semi-slow link to initiate a build to a remote machine,
and for the build to continue even if the connection is lost.

There is a new X heading to the mirrors, so those of you groaning
at the thought of building x can take a sigh of relief (for i386; other
archs to come; since this new x mainly updates i386 drivers, it was
compiled that first).

Now, if the Makefile were re-worked so that 'make build' is to do
the same thing as '/usr/src' in that it compiles and attempts to
install to /usr/X11R6, please address the following concern I have
with this approach:

	Files in /var/X11/xdm/ are specifically not updated if they
	exist.  Thus we need to remove them by default if we are to
	get a 'real' upgrade during a 'make build'.

Should we then in the 'build' target remove those files by default?
I can see it now, someone looses some artwork due to not knowing
that the files get rm'ed automatically.  Then I can see someone
else who doesn't get the files rm'ed and wonders why they have an
old logo.  I am not sure that the xdm directory is the only one
that gets this treatment (aka don't install during 'make install'
if it already exists.)

It has been noted that 'contrib' is built with the
'make build' .. well, that's what's necessary with release.

I did not forget to set the DESTDIR, that was never the problem,
but there is separate code in the Makefile if anyone does.  That
is not the issue.  I was told specifically if I want to keep my
code, I should commit it.  Thus, what I do to build releases is
entirely in cvs.  I do not like to have to tell people that
in order to make a release they must type:

% ksh
$ export DESTDIR=`pwd`/dest
$ export RELEASEDIR=`pwd`/rel
$ chown root.wheel $DESTDIR
$ chown root.wheel $RELEASEDIR
$ rm -rf $DESTDIR/usr/X11R6 $DESTDIR/var/X11
$ make && make install
$ if [ "`uname -m`" = "hp300" ]; then cp Xhp ${DESTDIR}/usr/X11R6/bin
$ fi
[...] if a few other times, and other stuff omitted
$ cd distrib/sets && ./maketars ${OSrev} && ./checkflist

You can see why I put what is in the Makefile in the Makefile, no?

Now, perhaps there can be a sane solution, since afterall
we're talking about make.

I'll listen to any suggestions and see what I can come up with
myself that will address the situation, but I cannot stress enough
that above all else, the release procedure (currently 'b-r target')
must work.  Espie's patch (I thought he would figure this out)
causes extra work for people with little time to dink around with
extra work.

On Tue, Jan 11, 2000 at 03:01:32PM -0800, Marco S Hyman wrote:
> Joshua Krage writes:
>  > Has anyone else experienced this?  Should I have set DESTDIR prior to
>  > starting the build?  I'm looking for a sanity check here. :)
> I brought this up earlier.  The real problem is that the Makefile
> sets DESTDIR to something that Todd Fries (the person who generates
> releases) likes because he sometimes forgets to set it otherwise.
> If the "release" target was the only thing that used the DESTDIR
> target that might be OK.
> My solution is to apply the following patch to the Makefile.  If I
> make a local release (which I sometimes do) I set RELEASEDIR and
> DESTDIR to what I want them to be, anyway.
> // marc
> Index: Makefile
> ===================================================================
> RCS file: /cvs/X11/Makefile,v
> retrieving revision 1.20
> diff -u -p -r1.20 Makefile
> --- Makefile	1999/10/29 06:08:25	1.20
> +++ Makefile	2000/01/11 23:00:08
> @@ -25,10 +25,6 @@ RM?= /bin/rm
>  MACHINE?=`uname -m`
> -# Some defaults.
> -RELEASEDIR?=`/bin/pwd`/rel
> -DESTDIR?=`/bin/pwd`/dest
> -
>  all:
>  	${RM} -f ${CONFHOSTDEF}

Todd Fries .. todd@openbsd.org