@INTLTOOL_DESKTOP_RULE@ does not create output directory and fails

Bug #605826 reported by Colin Guthrie
14
This bug affects 3 people
Affects Status Importance Assigned to Milestone
intltool
Triaged
High
Unassigned
systemd (Gentoo Linux)
Unknown
Unknown

Bug Description

It seems that when I try to do an out of tree build, and use the above macro in my Makefile.am, that it does not create the output folder for me and fails with:
 Died at /usr/bin/intltool-merge line 1174.

This can easily be solved by adding in an $(MKDIR_P) $(dir $@) to the rule, but I'm not sure how reliable that will turn out to be.

There is perhaps another way that this could be done too, and you could say that this system just expects it's output folders to exists, in which case this is not a bug but defined behaviour

Revision history for this message
dobey (dobey) wrote :

Can you please link to or attach the Makefile.am in question? The command you're talking about outputs to $builddir, which should be created automatically by autoconf when it generates the Makefile from the Makefile.in, anyway.

Changed in intltool:
importance: Undecided → Low
status: New → Incomplete
Revision history for this message
Claudio Saavedra (csaavedra) wrote :

II can reproduce this with the following Makefile.am (extract) under $(srcdir)/plugins:

AUTOMAKE_OPTIONS = subdir-objects

plugins_PYTHON = \
 pyhello/pyhello.py

%.eog-plugin: %.eog-plugin.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*po) ; $(AM_V_GEN)$(INTLTOOL_MERGE) $(top_srcdir)/po $< $@ -d -u -c $(top_builddir)/po/.intltool-merge-cache

Since pyhello.py doesn't generate any file during build time, no one creates $(builddir)/plugins/pyhello, and intltool-merge dies.

Basically, this happens because of the usage of intltool-merge when Makefile.am is in a parent directory of the location of the desktop file.

Revision history for this message
Colin Guthrie (launchpad-colin) wrote :

Yeah as Claudio wrote that's pretty much the exact scenario that fails.

For reference the Makefile.am I'm using is in PulseAudio: http://git.0pointer.de/?p=pulseaudio.git;a=blob;f=src/Makefile.am;h=46e6577e0742e0b8c31c84ca4c4e4f3b2538d31a;hb=HEAD

The Makefile.am is in src/ and the desktop file itself is in src/daemon/blah.desktop (i.e. exactly what Claudio outlined).

Changed in intltool:
status: Incomplete → Triaged
importance: Low → High
Revision history for this message
Stefan Sauer (ensonic) wrote :

It would be awesome to fix it, as it is not easy to hook elsewhere to ensure the directories exist :/

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.