Opened 10 years ago

Closed 10 years ago

#1348 closed defect (fixed)

tilemill: failure to install on ubu 14.04 from ppa due to missing init.d script

Reported by: hamish Owned by: live-demo@…
Priority: critical Milestone: OSGeoLive8.5
Component: OSGeoLive Keywords: tilemill
Cc: springmeyer, live-demo@…

Description

Hi,

installing tilemill from the developmentseed ppa fails on 14.04 with:

invoke-rc.d: unknown initscript, /etc/init.d/tilemill not found.
dpkg: error processing package tilemill (--configure):
 subprocess installed post-installation script returned error exit status 100

outside of a chroot it works fine.

note we were having similar trouble with libpam-systemd recently and in that case had to hack the .postinst script by hand not to exit with an error. launchpad bug exists for that, root cause still unknown.

disabling the tilemill installer until this is fixed since is makes all apt-get installs that follow exit with an error code.

thanks, Hamish

Change History (14)

comment:1 by darkblueb, 10 years ago

bump

a small search shows this post: https://github.com/mapnik/mapnik/wiki/UbuntuInstallation

for context, boost on Live8 appears to be at v54

/usr/lib/i386-linux-gnu/libboost_filesystem.so.1.54.0
/usr/lib/i386-linux-gnu/libboost_program_options.so.1.54.0
/usr/lib/i386-linux-gnu/libboost_python-py27.so.1.54.0
/usr/lib/i386-linux-gnu/libboost_python-py33.so.1.54.0
/usr/lib/i386-linux-gnu/libboost_python-py34.so.1.54.0
/usr/lib/i386-linux-gnu/libboost_regex.so.1.54.0
/usr/lib/i386-linux-gnu/libboost_system.so.1.54.0
/usr/lib/i386-linux-gnu/libboost_thread.so.1.54.0

comment:2 by kalxas, 10 years ago

Priority: normalmajor

comment:3 by kalxas, 10 years ago

Still not working in 14.04.1 builds

comment:4 by hamish, 10 years ago

Cc: springmeyer added

here is the problematic section of the /var/lib/dpkg/info/tilemill.postinst script:

...
# Automatically added by dh_installinit
if [ -x "/etc/init.d/tilemill" ] || [ -e "/etc/init/tilemill.conf" ]; then
        if [ ! -e "/etc/init/tilemill.conf" ]; then
                update-rc.d tilemill defaults >/dev/null
        fi
        invoke-rc.d tilemill start || exit $?
fi
# End automatically added section
# Automatically added by dh_installinit
update-rc.d -f tilemill remove >/dev/null || exit $?
# End automatically added section

changing the exit $? to exit 0 will allow it to get past, probably we have to try to install it, let it break, patch the above file, then try again with 'apt-get -f install'. I'm not sure why/if it needs to actually run it at install time, and what doesn't get done if it doesn't happen.

note classic /etc/init.d/tilemill does not exist, but /etc/init/tilemill.conf does.

maybe if we just do service tilemill start && service tilemill stop at the end of the install script it will pick up whatever the code snippet above is trying to do?

Hamish

comment:5 by springmeyer, 10 years ago

TileMill has two modes: 1) being run headless using upstart (service tilemill start), and 2) the more normal/common way which is to simply start the application via the Ubuntu launcher like other apps. So this postinstall is completely unneeded. Also I don't understand quite what you pasted - it does not look like the actual postinstall from TileMill: https://github.com/mapbox/tilemill/blob/master/platforms/ubuntu/debian/tilemill.postinst

comment:7 by wildintellect, 10 years ago

Hmm, springmeyer is correct that is not in tilemill.postint We are using the ppa:developmentseed/mapbox https://launchpad.net/~developmentseed/+archive/ubuntu/mapbox/+sourcepub/4151898/+listing-archive-extra

And looking in https://launchpad.net/~developmentseed/+archive/ubuntu/mapbox/+files/tilemill_0.10.2%7Etrusty3.tar.gz Has nothing concerning init.d

comment:8 by hamish, 10 years ago

ok, so AFAIK we don't need to worry about headless server use for the Live disc, we're mostly concerned with the interactive GUI.

The snippet I posted above is just the end of the /var/lib/dpkg/info/tilemill.postinst script file, as the comment says "Automatically added by dh_installinit", so not expected to be in the upstream copy, but present in the final installed version of the file.

I'll try for the install-in-chroot, let it break, do the edit with sed to make the error non-fatal, then try for an apt-get self-repair and see if that gets past the trouble spot. Done in r11819, we'll wait for the next nightly build to see how things went.

So this is most probably very similar ubu 14.04 chroot vs. init script trouble we saw with libpam-serviced and whoopsie in trac #1334. (see live disc's setup.sh for the work-around)

regards, Hamish

comment:9 by hamish, 10 years ago

installed ok in nightly iso build r11826. ugly hack needed to do that, but the crisis is over.

I didn't test it much, just opened the app.

Hamish

comment:10 by hamish, 10 years ago

ps- we could save some much needed space on the disc if the tilemill package depended on libwebkitgtk-3.0.0 instead of libwebkitgtk-1.0.0. (updated API)

Hamish

comment:11 by kalxas, 10 years ago

Milestone: OSGeoLive8.0OSGeoLive8.5
Priority: majornormal

Confirmed patched in build [11868]. Leaving this open for the 8.5 development.

comment:12 by kalxas, 10 years ago

Priority: normalcritical

comment:13 by kalxas, 10 years ago

Cc: live-demo@… added

comment:14 by kalxas, 10 years ago

Resolution: fixed
Status: newclosed

I have created a new deb package in our ppa, disabling the tilemill headless server mode. The problem is now solved and confirmed in nightly build [12089]

@Hamish, the package failed to compile with libwebkitgtk-3.0.0, just a shot in the dark :) The hack is also removed in [12086]

Note: See TracTickets for help on using tickets.