Print

Print


Ok Andreas, thanks.
So we can commit something general which can help in setting up a  
simple system in a simple way. I realized that this is a problem which  
is worse than I thought. Better late than never, but maybe I should  
have realized this before. At least 4 naive script sets to do the same  
thing seems a bit too much to me just to continue believing that  
everything is fine...

Fabrizio


Il giorno 14-dic-07, alle ore 00:18, Andreas Joachim Peters ha scritto:

> Fabrizio,
> I pass by tomorrow and we can produce what you need in half an hour.  
> You will see, you can live perfectly with the autotools make as it  
> is - we need just one tiny
>
> modification and we can produce two init.d scripts with copy and  
> paste from the CAF or Castor ones.
> We should also fix LD_LIBRARY_PATH in StartXRD etc. for Mac  
> (DY_LD_LIBRARY_PATH) and should cover the library location on 64bit  
> machines (lib64).
>
> Cheers Andreas.
>
> -----Original Message-----
> From: Fabrizio Furano [mailto:[log in to unmask]]
> Sent: Thu 12/13/2007 7:34 PM
> To: Fons Rademakers
> Cc: Derek Feichtinger; [log in to unmask]; Wilko Kroger; [log in to unmask] 
> ; Andreas Joachim Peters
> Subject: Re: Autotools install
>
> Hi Fons,
>
>   I agree with you. I don't want to throw away the autotools build,  
> but I
> don't want to throw away the classic build, since it's the one that  
> up to
> now works without having to mess up too much, and it's more easily  
> adaptable.
>
>   In general, what should be achieved is that after the 'make' the  
> software
> works locally, and a 'make install' installs it system-wide, like in  
> the
> ROOT case btw.
>
>   My point as a developer is that the autotools build fails the  
> validation
> now, so the bridges we should burn are the ones which are built on  
> top of
> the current status of it. Just too obscure and complicated to start  
> even a
> simple system. An indication of this should be that afaik the only  
> customer
> of it is Alice, due to the decision of choosing the placement of the
> various pieces with a very fine granularity, and the classic build  
> cannot
> do that, because it lacks a 'make install', but for the rest is  
> perfect.
>
>   Only doing that IMO we can fix the autotools or classic build  
> without
> making it more complicated, no matter if in Alien or xrdcastor or  
> Proof
> there can be a lot of naive scripts to fix (or purge/simplify)  
> accordingly.
>
>   From my perspective there are not so many things to fix, and an  
> init.d
> startup script to add. My wishlist is as follows:
>
> - right after make:
>    - the libs should be in a unique visible directory lib
>    - the executables should be in a unique visible directory bin
>    - etc, utils and similar should stay where they are now
>   ... otherwise the developers will never consider seriously to  
> adopt it.
>
> - after make install:
>    - a possibly unique init.d script is there
>    - if I start it, both xrootd and cmsd start in a very basic  
> fashion,
> serving data from /tmp and trying to subscribe to a fake manager
>    - the init.d script invokes the classic StartXRD/OLB scripts
>    - the utils package should appear somewhere as it is in the pre- 
> install
> tree, i.e. without spreading its content. A nice place could be in
> ...etc/xrootd/utils
>
>   I'd like to hear the opinion from the guys who are involved,  
> however.
> Again, my point now is that I am puzzled about what should I do to  
> set up a
> cluster. Writing my own (new?) scripts over the current autotools, the
> classic make, or devoting this time to enhance the current make system
> instead of thinking about the Nth workaround?
>
> Fabrizio
>
>
>
>
> Fons Rademakers wrote:
> > THe main problem is that the old system has been kept alive. You  
> need to
> > burn bridges to go forward. In ROOT we use several other OS packages
> > based on autotools (freetype, pcre, libAfterImage). No problems to  
> use
> > the from our build system. It is up to the xrootd developers to  
> validate
> > the new auotools system and throw out the old one. We will be  
> happy to
> > adapt to it.
> >
> > Cheers Fons.
> >
> >
> > Derek Feichtinger wrote:
> >> Ciao, Fabrizio
> >>
> >> On Thursday 13 December 2007, Fabrizio Furano wrote:
> >>> Hi Derek,
> >>>
> >>>   I appreciate your responsiveness, but I don't want to steer into
> >>> philosophical talks. Maybe ZX spectrum was better than C=64, but  
> I don't
> >>> care now.
> >>
> >> Well, I did not want to sound philosophical, but I tried to state  
> the
> >> real advantages and disadvantages as I see them. Xrootd has made an
> >> own standard of its build and deployment structure, and a large  
> number
> >> of users have adapted to this. The autotools build follows a very
> >> widely spread standard in unix software engineering, and this was  
> also
> >> why I was asked to implement it (which caused me and Gerri a lot of
> >> work at that time). I still think that it is worth make a  
> reasonable
> >> effort to try to comply with standards, but naturally in the crazy
> >> fast changing world of software development, reasonable is defined
> >> very differently by the users.
> >>
> >> As I said. I can introduce and adapt the configure easily, if  
> this is
> >> needed and if you can suggest to me exactly what you want. On the
> >> other hand, one could rethink the decision to support autotools.
> >> However, if xrootd gets a wider range of users, as it certainly
> >> deserves, it may be an advantage to keep the autobuild, especially
> >> since the main work has already been done.
> >>
> >> Cheers,
> >> Derek
> >>
> >>
> >>
> >>>   The point is that there are tenths of sites (with many different
> >>> architectures, and not only babarians) using the plain classic  
> build and
> >>> the rpms that Wilko provides.
> >>>   So, from my perspective, I just see that if I try to use the  
> autotools
> >>> build:
> >>>
> >>> - as a developer i don't feel comfortable with it. For instance,  
> I don't
> >>> want to choose if to look at the libraries in a hidden directory  
> or
> >>> being
> >>> forced to install everything in /usr/, or having to look at the
> >>> executables
> >>> in N different places.
> >>> - if I want to setup a cluster, or even a single server, I have no
> >>> clue at
> >>> all about how to start it, since the bundled scripts (used by a  
> lot of
> >>> people) do not work.
> >>> - I don't want to mess up things and write shell scripts on top of
> >>> something just to start my own executables (btw this is what Alien
> >>> seems to
> >>> do, workarounds over workarounds). It should just work out of the
> >>> box, like
> >>> in the classic case.
> >>>
> >>>
> >>>   Given this, which I think is pretty pragmatic, I'd like to be  
> even
> >>> more
> >>> pragmatic. Since this morning I am fighting to install a manager  
> with a
> >>> trivial config file, with no success. This makes me quite upset.  
> I am
> >>> not
> >>> able to deal with my own stuff.
> >>>   I switched back to configure.classic and it works. So, I have no
> >>> idea of
> >>> what's good or bad, but please, if you have a clean list of
> >>> hints/fixes to
> >>> do, my wish is to work together and put the 'alternate' build  
> system
> >>> in a
> >>> state where it is usable and it does not need workarounds.
> >>>   For how it is now, if I have to setup a cluster somewhere, I  
> will
> >>> simply
> >>> ignore it, but that's not what I'd prefer.
> >>>
> >>>   I hope that I don't make you upset with this. Let's make this  
> thing
> >>> work
> >>> together if you want.
> >>>
> >>>
> >>> Fabrizio
> >>>
> >>> Derek Feichtinger wrote:
> >>>> Hi, Fabrizio
> >>>>
> >>>> I'm sorry that you have so much fuzz with this.
> >>>>
> >>>> Some comments follow:
> >>>>> So, if I keep the default prefix /usr/local, I expect to have  
> the
> >>>>> config files in /usr/local/etc, and the libs in /usr/local/ 
> lib, but
> >>>>> what I see now is that "make install" puts that stuff into / 
> usr/local/
> >>>>> etc/xrootd and similar for lib.
> >>>> The choice for $PREFIX/etc/xrootd instead of just $PREFIX/etc  
> was taken
> >>>> because an administrator does not want /etc cluttered with a  
> whole
> >>>> number
> >>>> of files from a single package, so it is nicer to have it in a  
> separate
> >>>> directory named for the service.
> >>>>
> >>>> StartOLB
> >>>> StartOLB.cf.example
> >>>> StartXRD
> >>>> StartXRD.cf.example
> >>>> StopOLB
> >>>> StopXRD
> >>>> XrdOlbMonPerf
> >>>> xrootd.cf.example
> >>>>
> >>>> I can easily build in an option, if this is a problem (hardcoded
> >>>> locations?). But usually, one wants to have typical init  
> scripts which
> >>>> fit into a system's service startup and shutdown structure.
> >>>>
> >>>> For the libraries you looked wrongly, for they are in $PREFIX/lib
> >>>> and not
> >>>> in a separate folder. This would break the standard convention  
> for
> >>>> libraries. But the include files are also segregated into
> >>>> $PREFIX/include/xrootd/ for better structuring.
> >>>>
> >>>>>   This is not compatible with the standard StartXRD scripts,  
> which
> >>>>> everybody use (except Alice afaik). What do you think about  
> this? Are
> >>>>> you aware of any workaround for that?
> >>>> While I was working for ALICE, we always used custom scripts.  
> But since
> >>>> xrootd needs a minimum of switches and mainly relies on the  
> config
> >>>> files,
> >>>> this never seemed a drawback to me. It involved just a few  
> lines of
> >>>> shell
> >>>> code.
> >>>>
> >>>>> Btw in the meantime, I will
> >>>>> install my machines like I always did, i.e. with the plain
> >>>>> configure.classic, but that is not what the Alice guys are  
> used to,
> >>>>> even if it's much simpler by now imho.
> >>>> Well, configure.classic works well and is faster than the  
> autotools
> >>>> build. But autotools is still _the_  standard in the build  
> system and
> >>>> portability world. New systems like cmake are popping up, but  
> these
> >>>> things are really difficult and painful to develop, and they  
> take long
> >>>> until a big community adopts them.
> >>>>
> >>>> Also, if you look at a xrootd Makefile.am and then at the  
> corresponding
> >>>> classic GNUMakefile, the Makefile.am is structured much simpler.
> >>>> It is trivial to build RPMs and other packages from an  
> autotools build,
> >>>> since it correctly observes the DESTDIR setting (packaging  
> directory),
> >>>> and the libraries correctly contain the right -rpath, so that no
> >>>> LD_LIBRARY_PATH needs to be set.
> >>>> Autotools configure is slower, because it makes real  
> compilation tests
> >>>> for the system's features. The generated configure script shows  
> all the
> >>>> standard behavior expected by users and offers a wide range of  
> user
> >>>> options. Also, you can build multiple architectures from the same
> >>>> sources, e.g. by having them on a shared filesystem.
> >>>>
> >>>> Configure.classic is a separate and well working system, but it  
> has
> >>>> completely non-standard behavior and if I want to deploy  
> software in a
> >>>> standard way, I have to do extra work.
> >>>>
> >>>> The technology used by autotools to generate the configure (m4,
> >>>> etc.) is
> >>>> too old and inconvenient, and some things are clearly too  
> complex.
> >>>> However, since so much work has been done before, you usually  
> don't
> >>>> have
> >>>> to deal with these kind of issues, and you more or less just  
> use the
> >>>> ready made macros. Don't forget that a large part of the  
> complexity
> >>>> comes
> >>>> for the innate problems that portability implies - years of  
> operations
> >>>> systems development and complex and subtle differences across  
> their
> >>>> versions.
> >>>>
> >>>> Sorry again for your losing time because of these issues, but  
> it really
> >>>> was hard for me in the last few weeks to pay close attention to
> >>>> this, and
> >>>> keeping a separate build is not always easy.
> >>>>
> >>>> Cheers,
> >>>> Derek
> >>>>
> >>>> On Thursday 13 December 2007, Fabrizio Furano wrote:
> >>>>> Hi Derek,
> >>>>>
> >>>>>   well, I am sorry to bother you so much, but I am not able to  
> get out
> >>>>> from this maze.
> >>>>>
> >>>>>   The problem I find is that when I make install, it puts the  
> things
> >>>>> in a way which looks incompatible with the normal start/stop  
> scripts,
> >>>>> which hence do not work. This may be one reason for the bloody  
> mess of
> >>>>> alternative install/start/stop scripts that I see around.
> >>>>>
> >>>>> So, if I keep the default prefix /usr/local, I expect to have  
> the
> >>>>> config files in /usr/local/etc, and the libs in /usr/local/ 
> lib, but
> >>>>> what I see now is that "make install" puts that stuff into / 
> usr/local/
> >>>>> etc/xrootd and similar for lib.
> >>>>>
> >>>>>   This is not compatible with the standard StartXRD scripts,  
> which
> >>>>> everybody use (except Alice afaik). What do you think about  
> this? Are
> >>>>> you aware of any workaround for that? Btw in the meantime, I  
> will
> >>>>> install my machines like I always did, i.e. with the plain
> >>>>> configure.classic, but that is not what the Alice guys are  
> used to,
> >>>>> even if it's much simpler by now imho.
> >>>>>
> >>>>> Fabrizio Furano
> >>>>> [log in to unmask]
> >>
> >>
> >>
> >
>

Fabrizio Furano
[log in to unmask]