On Mon, 2012-03-19 at 15:44 +0100, Alec Leamas wrote: > On 03/19/2012 02:32 PM, Nikos Roussos wrote: > > On Mon, Mar 19, 2012 at 2:09 PM, Alec Leamas <leamas.alec@xxxxxxxxx> > > wrote: > > On 03/19/2012 12:50 PM, Nikos Roussos wrote: > > > Hi, > > > > > > I'm trying to build a package. It's an update on > > > SparkleShare package. I build it locally with mock and > > > everything seems ok. Package is built successfully. But > > > when I try to build it on koji I get an error and build > > > fails on both f16 f17 targets: > > > "The databases in [/usr/share/applications] could not be > > > updated." > > > which I think has something to do with the > > > desktop-file-validate on %install phase > > > > > > See the relevant koji task and build log for more: > > > http://koji.fedoraproject.org/koji/taskinfo?taskID=3908835 > > > > > > Any help appreciated > > > > > > -- > > > Nikos Roussos > > > > > > > > > > > From the log, it looks like it fails in > > 'install-data-hook'. If so, the culprit might be some > > Makefile.am. Have upstream updated a Makefile.am to include > > 'desktop-file-install', failing when not making a "real" > > install int /usr? > > > > If this is right, you should be able to verify that the % > > install hasn't really begun when the error is triggered. If > > unsure, put some simple 'echo' statement in top of %install > > to verify that it hasn't been started. > > > > If this doesn't help, scanning the generated Makefiles for > > 'desktop-file-install' and/or '/usr/share/applications' > > might give a clue > > > > > > Actually there is an: > > > > install-data-hook: > > update-desktop-database $(datadir)/applications > > > > which seems to be the exact point that installation fails > > > > > > > > > You must patch that, it will try to update /usr/share/applications > when building the rpm which of course isn't acceptable. > > For Fedora, you could just remove the target and run automake; > autoconf; ./configure, given that you run update-desktop-database as > part of %install. > > However, this should really be resolved together with upstream. If > they want to keep the functionality, one could possibly: > > - Move it from install-data-hook to a separate target such as > 'install-desktop' and let users run this as part of installation into > system dirs. > - Only run update-desktop-database if $(datadir)/applications is > writeable: > > Personally, I would prefer the first one. To mess > with /usr/share/applications when DESTDIR is set is not really the way > 'make install' is supposed to work. And updating > $(DESTDIR)/$(datadir)/applications just doesn't make sense. > > But I'm just a newbie, maybe someone else has a better piece of advice > here? The usual way to make this selectable is with a parameter for the package's configure script, something like --disable-desktop-update . These days, it seems like very few packages need this any more. I don't know if upstreams have just stopped doing update-desktop-database at install time, or if they mostly somehow dynamically detect whether to do this or not. -- Adam Williamson Fedora QA Community Monkey IRC: adamw | Twitter: AdamW_Fedora | identi.ca: adamwfedora http://www.happyassassin.net -- devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/devel