'make dist' fails on clean checkout of inkscape from bzr

Bug #1188627 reported by Ryan Lerch on 2013-06-07
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Alex Valavanis

Bug Description

If you do a clean checkout of inkscape from BZR, then configure the build with "./autogen.sh", then try to build a distrobution tarball with "make dist", it currently fails with the following error message:

make[1]: *** No rule to make target `mkinstalldirs', needed by `distdir'. Stop.

This is due to the BZR tree missing the 'mkinstalldirs' shell script. To work around this issue, you can download a recent tarball from inkscape.org/download, and copy the 'mkinstalldirs' shell script in the tarball to the root directory of your inkscape checkout.

Is there any way that this file can be included in the BZR trunk?

Ryan Lerch (ryanlerch) on 2013-06-07
description: updated
description: updated
description: updated
su_v (suv-lp) on 2013-06-08
tags: added: build
su_v (suv-lp) on 2013-09-04
tags: added: packaging
Alex Valavanis (valavanisalex) wrote :

Is there any good reason why this script should not be included in bzr? I'm working overseas at the moment, but I can add it when I get back... unless there's a reason not to do so!

Alex Valavanis (valavanisalex) wrote :

Actually, I just found this advice [1]. Apparently mkinstalldirs is an autogenerated file and It isn't needed for build systems with Automake >= 1.9. The script itself used to be included in trunk but was removed in r10203 since it is bad practice to track autogenerated files [2].

[1] http://www.gnu.org/savannah-checkouts/gnu/gettext/manual/html_node/mkinstalldirs.html
[2] http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/revision/10203

Changed in inkscape:
status: New → Triaged
importance: Undecided → Medium
Alex Valavanis (valavanisalex) wrote :

As far as I can tell, there is no need to distribute the file provided that automake >= 1.9 is available. Please test the attached patch. I'll apply it in a couple of days if there are no objections.

Changed in inkscape:
status: Triaged → In Progress
assignee: nobody → Alex Valavanis (valavanisalex)
Alex Valavanis (valavanisalex) wrote :

Also, Ryan, it's a good idea to run "make distcheck" rather than "make dist" since it checks that all the necessary files are distributed in the tarball to actually build the package.

Ryan Lerch (ryanlerch) wrote :

Just checked out a fresh version of Inkscape, and applied your patch! And 'make dist' (and make distcheck) both work!


Ryan Lerch (ryanlerch) wrote :

Alex, thanks also for the distcheck tip!

Although i tend to just still do the make dist and push to the fedora buildserver and triage the issues there. Does make distcheck do anything more than compile it all to see if it fails?

Alex Valavanis (valavanisalex) wrote :

I think it does something like the following...

1. make dist (i.e., generate the tarball)
2. extract the distributed package
3. configure and make
4. make check (i.e., run any available automated tests)
5. Install into a temp folder
6. Run a few sanity checks on any binary targets... e.g., it checks that "inkscape --help" and "inkscape --version" etc give sensible replies.
7. Uninstalls from temp folder and checks that no crap is left behind
8. make dist (using the temp package)

I'm sure it has a few other useful tricks up its sleeve too!

Alex Valavanis (valavanisalex) wrote :

Committed in lp:inkscape r12564. I also added some missing libdepixelize to the distribution.

Changed in inkscape:
milestone: none → 0.49
status: In Progress → Fix Committed
Bryce Harrington (bryce) on 2015-02-23
Changed in inkscape:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers