On Thu, 2009-03-19 at 11:33 -0700, Adam Williamson wrote:
> It was reported on the Mandriva Cooker mailing list:
> 
> http://lists.mandriva.com/cooker/2009-03/msg00930.php
> 
> that synce's hal scripts are being installed to the 'wrong' location.
> 
> Poking about a bit, I see this relevant change in synce-hal:
> 
> http://synce.svn.sourceforge.net/viewvc/synce/trunk/hal/configure.ac.in?r1=3679&r2=3693
> 
> which does a better check of whether the location is valid, but doesn't
> change the default.
> 
> I guess this may be an issue of old HAL vs. new HAL - i.e. libdir/hal is
> right for older versions, libdir/hal/scripts is right for newer ones. It
> seems bad to have a default that will fail on newer distros, though (I
> ran into this same problem on Fedora Rawhide). Perhaps a more
> sophisticated way to set the default is needed?

OK, I've looked into this further. It's nothing like that complicated -
it's just flat out the wrong location.

The offending change in synce-hal is this one:

http://synce.svn.sourceforge.net/viewvc/synce?view=rev&revision=3544

more specifically:

http://synce.svn.sourceforge.net/viewvc/synce/trunk/hal/hal/Makefile.am?r1=3432&r2=3544&pathrev=3544

prior to that, the scripts were installed to libexecdir. Which is I
think a sort of old location, but does work. This change installs them
to libdir/hal instead.

I don't know who decided on that path, but it's just fundamentally
wrong. Up until hal 0.5.7 (February 2006), HAL scripts were intended to
be installed to datadir/hal/scripts (/usr/share/hal/scripts ). From
0.5.8 on, they are intended to be installed to libdir/hal/scripts
(/usr/lib/hal/scripts , or possibly /usr/lib64/hal/scripts ). But no
version of HAL has ever expected or supported them being installed in
libdir/hal .

The relevant bits of code in HAL, FWIW, are hald/hald.c ,
hald/Makefile.am and hald-runner/main.c . hald-runner/main.c around line
254 (depends what version of HAL you have) shows that the valid
locations are just whatever PATH variable hald-runner is called with.
hald/hald.c calls it with a PATH that includes the variables
PACKAGE_LIBEXEC_DIR and PACKAGE_SCRIPT_DIR . hald/Makefile.am defines
these as $(libexecdir) and $(libdir)/hal/scripts , respectively. So
that's why those are the two paths where hal scripts can be placed
(well, there and /usr/bin, which gets pulled in to the PATH somehow, I
didn't bother looking at how).

The point here is that we should simply change the location in
trunk/hal/configure.ac.in from:

hal_addon_dir="`pkg-config --variable=libdir hal`/hal"

to:

hal_addon_dir="`pkg-config --variable=libdir hal`/hal/scripts"

and that should solve the problem. This probably merits a new release,
as I think just about any install of synce-hal 0.13.1 just won't work by
default, because of this.
-- 
Adam Williamson
Fedora QA Community Monkey
IRC: adamw | Fedora Talk: adamwill AT fedoraproject DOT org
http://www.happyassassin.net


------------------------------------------------------------------------------
Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
easily build your RIAs with Flex Builder, the Eclipse(TM)based development
software that enables intelligent coding and step-through debugging.
Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
_______________________________________________
SynCE-Devel mailing list
SynCE-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/synce-devel

Reply via email to