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