James Hunt has proposed merging lp:~jamesodhunt/upstart/libupstart into 
lp:upstart.

Requested reviews:
  Upstart Reviewers (upstart-reviewers)

For more details, see:
https://code.launchpad.net/~jamesodhunt/upstart/libupstart/+merge/165587

Provide a versioned libupstart library built from the auto-generated from the 
D-Bus bindings. Runs abi-compliance-checker(1) on each build (if available and 
if --disable-abi-check was not specified at configure time) to ensure the ABI 
for the latest build is compatible with the current version of the library.
-- 
https://code.launchpad.net/~jamesodhunt/upstart/libupstart/+merge/165587
Your team Upstart Reviewers is requested to review the proposed merge of 
lp:~jamesodhunt/upstart/libupstart into lp:upstart.
=== modified file 'ChangeLog'
--- ChangeLog	2013-05-07 08:59:05 +0000
+++ ChangeLog	2013-05-24 12:05:35 +0000
@@ -1,3 +1,21 @@
+2013-05-24  James Hunt  <[email protected]>
+
+	* configure.ac: Add --disable-abi-check option to allow ABI
+	  check to be skipped.
+
+2013-05-23  James Hunt  <[email protected]>
+
+	* lib/Makefile.am:
+	  - Fix library LDFLAGS.
+	  - Added test program.
+	* lib/tests/test_libupstart.c: Basic library test.
+
+2013-05-22  James Hunt  <[email protected]>
+
+	* Added libupstart library, built from auto-generated
+	  D-Bus bindings. To avoid ABI breakage, build calls
+	  abi-compliance-checker(1), if available.
+
 2013-05-07  James Hunt  <[email protected]>
 
 	* util/man/shutdown.8: Specify default action is to bring system

=== modified file 'Makefile.am'
--- Makefile.am	2013-03-04 11:44:49 +0000
+++ Makefile.am	2013-05-24 12:05:35 +0000
@@ -1,6 +1,6 @@
 ## Process this file with automake to produce Makefile.in
 
-SUBDIRS = intl dbus init util extra conf doc contrib po scripts
+SUBDIRS = intl dbus init util extra lib conf doc contrib po scripts
 
 EXTRA_DIST = HACKING
 

=== modified file 'configure.ac'
--- configure.ac	2013-03-22 14:34:15 +0000
+++ configure.ac	2013-05-24 12:05:35 +0000
@@ -31,6 +31,7 @@
 PKG_CHECK_MODULES([NIH_DBUS], [libnih-dbus >= 1.0.0])
 PKG_CHECK_MODULES([DBUS], [dbus-1 >= 1.2.16])
 PKG_CHECK_MODULES([UDEV], [libudev >= 146], [have_udev=yes], [have_udev=no])
+AM_CONDITIONAL([HAVE_UDEV], [test "$have_udev" = yes])
 
 # Reasons for requiring this library version:
 #
@@ -50,7 +51,17 @@
 #
 PKG_CHECK_MODULES([JSON], [json >= 0.10])
 
-AM_CONDITIONAL([HAVE_UDEV], [test "$have_udev" = yes])
+AC_ARG_ENABLE([abi-check],
+	AS_HELP_STRING([--disable-abi-check],
+		[Disable libupstart ABI check performed if abi-compliance-checker available]),
+		[abi_check=no], [abi_check=yes])
+
+if test x$abi_check = xyes; then
+	AC_CHECK_PROGS([ABI_COMPLIANCE_CHECKER],[abi-compliance-checker])
+	AC_SUBST([ABI_COMPLIANCE_CHECKER])
+fi
+
+AM_CONDITIONAL([HAVE_ABI_CHECKER], [test ! -z "$ABI_COMPLIANCE_CHECKER"])
 
 # Checks for header files.
 AC_CHECK_HEADERS([valgrind/valgrind.h, sys/prctl.h])
@@ -101,6 +112,7 @@
 AC_CONFIG_FILES([ Makefile intl/Makefile
 		  dbus/Makefile init/Makefile util/Makefile conf/Makefile
 		  extra/Makefile doc/Makefile contrib/Makefile po/Makefile.in
-		  scripts/Makefile scripts/data/Makefile ])
+		  scripts/Makefile scripts/data/Makefile
+		  lib/Makefile lib/libupstart.pc ])
 AC_CONFIG_HEADERS([config.h])
 AC_OUTPUT

=== added directory 'lib'
=== added file 'lib/Makefile.am'
--- lib/Makefile.am	1970-01-01 00:00:00 +0000
+++ lib/Makefile.am	2013-05-24 12:05:35 +0000
@@ -0,0 +1,159 @@
+## Process this file with automake to produce Makefile.in
+
+VERSION_CURRENT  = 1
+VERSION_REVISION = 0
+VERSION_AGE      = 0
+
+LIBUPSTART_VERSION        = $(VERSION_CURRENT):$(VERSION_REVISION):$(VERSION_AGE)
+LIBUPSTART_VERSION_DOTTED = $(VERSION_CURRENT).$(VERSION_REVISION).$(VERSION_AGE)
+
+AM_CFLAGS = \
+	$(NIH_CFLAGS) \
+	$(NIH_DBUS_CFLAGS) \
+	$(DBUS_CFLAGS)
+
+AM_CPPFLAGS = \
+	-DLOCALEDIR="\"$(localedir)\"" \
+	-DSBINDIR="\"$(sbindir)\"" \
+	-I$(top_builddir) -I$(top_srcdir) -iquote$(builddir) -iquote$(srcdir) \
+	-I$(top_srcdir)/intl
+
+lib_LTLIBRARIES = libupstart.la
+
+# The library is built from the autogenerated code.
+libupstart_la_SOURCES = upstart.h
+nodist_libupstart_la_SOURCES = \
+	$(com_ubuntu_Upstart_OUTPUTS) \
+	$(com_ubuntu_Upstart_Job_OUTPUTS) \
+	$(com_ubuntu_Upstart_Instance_OUTPUTS)
+
+libupstart_la_LIBADD = 
+	$(LTLIBINTL) \
+	$(NIH_LIBS) \
+	$(NIH_DBUS_LIBS) \
+	$(DBUS_LIBS) \
+	-lrt
+
+libupstart_la_LDFLAGS = \
+	-version-info $(LIBUPSTART_VERSION) \
+	-Wl,--version-script=$(srcdir)/libupstart.ver \
+	$(LIBS) $(NIH_LIBS) $(NIH_DBUS_LIBS) $(DBUS_LIBS) -lrt
+
+# latest ABI
+abi_official = $(srcdir)/abi_dumps/libupstart/libupstart_$(LIBUPSTART_VERSION_DOTTED).abi.tar.gz
+
+# disposable ABI descriptor for the currently-built library
+abi_build_XML = libupstart-abi.xml
+
+$(abi_build_XML): $(abi_build_XML).in
+	sed -e 's|[@]abs_builddir[@]|$(abs_builddir)|g' \
+	    -e 's|[@]libupstart_version[@]|$(LIBUPSTART_VERSION_DOTTED)|g' \
+	    $< > $@
+
+pkgconfigdir = $(prefix)/lib/pkgconfig
+pkgconfig_DATA = libupstart.pc
+
+EXTRA_DIST = \
+	libupstart.pc.in \
+	run_abi_checker.sh.in \
+	libupstart.ver \
+	$(abi_official) \
+	$(abi_build_XML).in
+
+run_abi_checker.sh: run_abi_checker.sh.in libupstart.la $(abi_build_XML)
+	sed -e 's|[@]abs_builddir[@]|$(abs_builddir)|g' \
+	    -e 's|[@]abs_srcdir[@]|$(abs_srcdir)|g' \
+	    -e 's|[@]libupstart[@]|$(lib_LTLIBRARIES)|g' \
+	    -e 's|[@]libupstart_version[@]|$(LIBUPSTART_VERSION)|g' \
+	    -e 's|[@]abi_build_XML[@]|$(abi_build_XML)|g' \
+	    -e 's|[@]abi_compliance_checker[@]|$(ABI_COMPLIANCE_CHECKER)|g' \
+	    $< > $@
+	chmod +x $@
+
+TESTS = test_libupstart
+check_PROGRAMS = $(TESTS)
+check_SCRIPTS = run_abi_checker.sh
+
+test_libupstart_SOURCES = tests/test_libupstart.c $(lib_LTLIBRARIES)
+test_libupstart_LDADD = \
+	$(lib_LTLIBRARIES) \
+	$(NIH_LIBS) \
+	$(NIH_DBUS_LIBS) \
+	$(DBUS_LIBS) \
+	-lrt
+
+com_ubuntu_Upstart_OUTPUTS = \
+	com.ubuntu.Upstart.c \
+	com.ubuntu.Upstart.h
+
+com_ubuntu_Upstart_XML = \
+	../dbus/com.ubuntu.Upstart.xml
+
+# XXX: We have to use proxy mode for clients
+# XXX: (meaning we cannot use the library for init itself)
+$(com_ubuntu_Upstart_OUTPUTS): $(com_ubuntu_Upstart_XML)
+	$(AM_V_GEN)$(NIH_DBUS_TOOL) \
+		--package=$(PACKAGE) \
+		--mode=proxy --prefix=upstart \
+		--default-interface=com.ubuntu.Upstart0_6 \
+		--output=$@ $<
+
+com_ubuntu_Upstart_Job_OUTPUTS = \
+	com.ubuntu.Upstart.Job.c \
+	com.ubuntu.Upstart.Job.h
+
+com_ubuntu_Upstart_Job_XML = \
+	../dbus/com.ubuntu.Upstart.Job.xml
+
+$(com_ubuntu_Upstart_Job_OUTPUTS): $(com_ubuntu_Upstart_Job_XML)
+	$(AM_V_GEN)$(NIH_DBUS_TOOL) \
+		--package=$(PACKAGE) \
+		--mode=proxy --prefix=job_class \
+		--default-interface=com.ubuntu.Upstart0_6.Job \
+		--output=$@ $<
+
+com_ubuntu_Upstart_Instance_OUTPUTS = \
+	com.ubuntu.Upstart.Instance.c \
+	com.ubuntu.Upstart.Instance.h
+
+com_ubuntu_Upstart_Instance_XML = \
+	../dbus/com.ubuntu.Upstart.Instance.xml
+
+$(com_ubuntu_Upstart_Instance_OUTPUTS): $(com_ubuntu_Upstart_Instance_XML)
+	$(AM_V_GEN)$(NIH_DBUS_TOOL) \
+		--package=$(PACKAGE) \
+		--mode=proxy --prefix=job \
+		--default-interface=com.ubuntu.Upstart0_6.Instance \
+		--output=$@ $<
+
+# These have to be built sources because we can't compile object files
+# without the header file existing first
+BUILT_SOURCES = \
+	$(com_ubuntu_Upstart_OUTPUTS) \
+	$(com_ubuntu_Upstart_Job_OUTPUTS) \
+	$(com_ubuntu_Upstart_Instance_OUTPUTS)
+
+CLEANFILES = \
+	$(com_ubuntu_Upstart_OUTPUTS) \
+	$(com_ubuntu_Upstart_Job_OUTPUTS) \
+	$(com_ubuntu_Upstart_Instance_OUTPUTS) \
+	$(abi_build_XML) \
+	$(pkgconfig_DATA)
+
+CLEANFILES += $(check_SCRIPTS)
+
+tests: $(check_PROGRAMS)
+
+clean-local:
+	rm -f *.gcno *.gcda
+
+maintainer-clean-local:
+	rm -f *.gcov
+
+# Run ABI compliance checker on every build to ensure the library ABI
+# has not been inadvertently broken due to dbus/*.xml being updated
+# without a version change.
+if HAVE_ABI_CHECKER
+all-local: run_abi_checker.sh
+	$(builddir)/run_abi_checker.sh
+endif

=== added directory 'lib/abi_dumps'
=== added directory 'lib/abi_dumps/libupstart'
=== added file 'lib/abi_dumps/libupstart/libupstart_1.0.0.abi.tar.gz'
Binary files lib/abi_dumps/libupstart/libupstart_1.0.0.abi.tar.gz	1970-01-01 00:00:00 +0000 and lib/abi_dumps/libupstart/libupstart_1.0.0.abi.tar.gz	2013-05-24 12:05:35 +0000 differ
=== added file 'lib/libupstart-abi.xml.in'
--- lib/libupstart-abi.xml.in	1970-01-01 00:00:00 +0000
+++ lib/libupstart-abi.xml.in	2013-05-24 12:05:35 +0000
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ upstart - official libupstart abi-compliance-checker(1) descriptor
+
+ Copyright © 2013 Canonical Ltd.
+ Author: James Hunt <[email protected]>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License version 2, as
+ published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+-->
+
+<descriptor>
+
+<version>
+	@libupstart_version@-build
+</version>
+
+<headers>
+	@abs_builddir@
+</headers>
+
+<libs>
+	@abs_builddir@
+</libs>
+
+<!--
+  Include paths are automatically detected but the tool needs help to
+  find the default include directory.
+-->
+<add_include_paths>
+	/usr/include
+</add_include_paths>
+
+</descriptor>

=== added file 'lib/libupstart.pc.in'
--- lib/libupstart.pc.in	1970-01-01 00:00:00 +0000
+++ lib/libupstart.pc.in	2013-05-24 12:05:35 +0000
@@ -0,0 +1,10 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: libupstart
+Description: Upstart Utility Library
+Version: @VERSION@
+Libs: -L${libdir} -lupstart
+Cflags: -I${includedir}

=== added file 'lib/libupstart.ver'
--- lib/libupstart.ver	1970-01-01 00:00:00 +0000
+++ lib/libupstart.ver	2013-05-24 12:05:35 +0000
@@ -0,0 +1,7 @@
+LIBUPSTART_1.0.0 {
+	global:
+		upstart_*;
+		job_*;
+	local:
+		*;
+};

=== added file 'lib/run_abi_checker.sh.in'
--- lib/run_abi_checker.sh.in	1970-01-01 00:00:00 +0000
+++ lib/run_abi_checker.sh.in	2013-05-24 12:05:35 +0000
@@ -0,0 +1,88 @@
+#!/bin/sh -e
+#---------------------------------------------------------------------
+# Script to run abi-compliance-checker to ensure ABI not broken.
+#---------------------------------------------------------------------
+# Copyright (C) 2013 Canonical Ltd.
+#
+# Author: James Hunt <[email protected]>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, version 3 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+#---------------------------------------------------------------------
+
+die()
+{
+    msg="$*"
+    echo "ERROR: $msg" >&2
+    exit 1
+}
+
+build_dir="@abs_builddir@"
+source_dir="@abs_srcdir@"
+acc="@abi_compliance_checker@"
+acc_descriptor="@abi_build_XML@"
+libupstart_libtool="@libupstart@"
+lib_prefix="${libupstart_libtool%.la}"
+libupstart_lt_version="@libupstart_version@"
+
+# convert libtool(1) version to dotted form
+dotted_version=$(echo "$libupstart_lt_version"|tr ':' '.')
+
+libupstart_path="$build_dir/$libupstart_libtool"
+
+old_abi="$source_dir/abi_dumps/${lib_prefix}/${lib_prefix}_${dotted_version}.abi.tar.gz"
+
+echo "Checking ABI for $lib_prefix"
+echo
+
+for file in "$libupstart_path" "$old_abi"
+do
+    [ -f "$file" ] || die "file $file not found"
+done
+
+# Install the library to a temporary location since we need the
+# full path to the shared library to pass to abi-compliance-checker.
+install_dir=$(mktemp -d --tmpdir="$build_dir")
+[ -z "$install_dir" ] && \
+	die "failed to create temporary install directory"
+
+libtool --mode=install install \
+    "$libupstart_libtool" "$install_dir" >/dev/null 2>&1
+
+abi_dump_dir=$(mktemp -d --tmpdir="$build_dir")
+[ -z "$abi_dump_dir" ] && \
+	die "failed to create temporary dump directory"
+
+abi_dump_path="$abi_dump_dir/${lib_prefix}_${dotted_version}.abi.tar.gz"
+
+installed_so="$install_dir/$(echo "$lib_prefix"|cut -d\. -f1).so"
+
+[ -f "$installed_so" ] || die "cannot find $installed_so"
+
+# generate a descriptor for the newly-built library version
+"$acc" -library "$lib_prefix" -dump "$acc_descriptor" -dump-path "$abi_dump_path"
+
+new_abi="$abi_dump_dir/${lib_prefix}_${dotted_version}.abi.tar.gz"
+[ -f "$new_abi" ] || die "cannot find $new_abi"
+
+# run the ABI checker
+"$acc" -library "$lib_prefix" -old "$old_abi" -new "$new_abi"
+
+# clean up
+libtool --mode=uninstall \
+    rm "$install_dir/$libupstart_libtool" >/dev/null 2>&1
+
+rm -rf "$abi_dump_dir" "$build_dir/logs" "$install_dir"
+
+# HTML report generated by $acc
+rm -rf compat_reports/

=== added directory 'lib/tests'
=== added file 'lib/tests/test_libupstart.c'
--- lib/tests/test_libupstart.c	1970-01-01 00:00:00 +0000
+++ lib/tests/test_libupstart.c	2013-05-24 12:05:35 +0000
@@ -0,0 +1,124 @@
+/* upstart
+ *
+ * test_libupstart.c - test suite for libupstart.
+ *
+ * Copyright © 2013 Canonical Ltd.
+ * Author: James Hunt <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2, as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include <unistd.h>
+#include <fnmatch.h>
+
+#include <nih/test.h>
+#include <nih/main.h>
+#include <nih/string.h>
+#include <nih/logging.h>
+
+#include <nih-dbus/dbus_error.h>
+#include <nih-dbus/dbus_proxy.h>
+#include <nih-dbus/errors.h>
+#include <nih-dbus/dbus_connection.h>
+
+#include "dbus/upstart.h"
+
+#include "upstart.h"
+
+/**
+ * upstart_open:
+ * @parent: parent object for new proxy.
+ *
+ * Opens a connection to the Upstart init daemon and returns a proxy
+ * to the manager object. If @dest_name is not NULL, a connection is
+ * instead opened to the system bus and the proxy linked to the
+ * well-known name given.
+ *
+ * If @parent is not NULL, it should be a pointer to another object
+ * which will be used as a parent for the returned proxy.  When all
+ * parents of the returned proxy are freed, the returned proxy will
+ * also be freed.
+ *
+ * Returns: newly allocated D-Bus proxy or NULL on raised error.
+ **/
+NihDBusProxy *
+upstart_open (const void *parent)
+{
+	DBusError       dbus_error;
+	DBusConnection *connection;
+	NihDBusProxy *  upstart;
+
+	dbus_error_init (&dbus_error);
+
+	connection = dbus_bus_get (DBUS_BUS_SYSTEM, &dbus_error);
+	if (! connection) {
+		nih_dbus_error_raise (dbus_error.name, dbus_error.message);
+		dbus_error_free (&dbus_error);
+		return NULL;
+	}
+
+	dbus_connection_set_exit_on_disconnect (connection, FALSE);
+	dbus_error_free (&dbus_error);
+
+	upstart = nih_dbus_proxy_new (parent, connection,
+				      DBUS_SERVICE_UPSTART,
+				      DBUS_PATH_UPSTART,
+				      NULL, NULL);
+	if (! upstart) {
+		dbus_connection_unref (connection);
+		return NULL;
+	}
+
+	upstart->auto_start = FALSE;
+
+	/* Drop initial reference now the proxy holds one */
+	dbus_connection_unref (connection);
+
+	return upstart;
+}
+
+void
+test_libupstart (void)
+{
+	nih_local NihDBusProxy  *upstart = NULL;
+	nih_local char          *version = NULL;
+	int                      ret;
+
+	TEST_GROUP ("libupstart");
+
+	TEST_FEATURE ("version");
+
+	upstart = upstart_open (NULL);
+	TEST_NE_P (upstart, NULL);
+
+
+	/* Basic test (that does not change the state of the system
+	 * running this test) to see if we can query version of running
+	 * Upstart instance.
+	 */
+	ret = upstart_get_version_sync (NULL, upstart, &version);
+	TEST_EQ (ret, 0);
+
+	nih_message ("Running instance version: '%s'", version);
+	assert0 (fnmatch ("init (upstart*)", version, 0x0));
+}
+
+int
+main (int   argc,
+      char *argv[])
+{
+	test_libupstart ();
+
+	return 0;
+}

=== added file 'lib/upstart.h'
--- lib/upstart.h	1970-01-01 00:00:00 +0000
+++ lib/upstart.h	2013-05-24 12:05:35 +0000
@@ -0,0 +1,33 @@
+/* upstart
+ *
+ * Copyright © 2013 Canonical Ltd.
+ * Author: James Hunt <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2, as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef LIB_UPSTART_H
+#define LIB_UPSTART_H
+
+#include <nih/macros.h>
+
+NIH_BEGIN_EXTERN
+
+#include "com.ubuntu.Upstart.h"
+#include "com.ubuntu.Upstart.Instance.h"
+#include "com.ubuntu.Upstart.Job.h"
+
+NIH_END_EXTERN
+
+#endif /* LIB_UPSTART_H */

=== modified file 'po/upstart.pot'
--- po/upstart.pot	2013-03-22 14:31:59 +0000
+++ po/upstart.pot	2013-05-24 12:05:35 +0000
@@ -6,9 +6,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: upstart 1.8\n"
+"Project-Id-Version: upstart 1.9\n"
 "Report-Msgid-Bugs-To: [email protected]\n"
-"POT-Creation-Date: 2013-03-22 14:18+0000\n"
+"POT-Creation-Date: 2013-05-22 09:53+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <[email protected]>\n"
@@ -117,56 +117,56 @@
 msgid "Restarting"
 msgstr ""
 
-#: init/control.c:1206 init/control.c:1311 init/control.c:1565
+#: init/control.c:1208 init/control.c:1313 init/control.c:1567
 msgid "Not permissible to modify PID 1 job environment"
 msgstr ""
 
-#: init/control.c:1213 init/control.c:1299 init/control.c:1572
+#: init/control.c:1215 init/control.c:1301 init/control.c:1574
 msgid "You do not have permission to modify job environment"
 msgstr ""
 
-#: init/control.c:1220 init/control.c:1318 init/control.c:1408
-#: init/control.c:1504 init/control.c:1579
+#: init/control.c:1222 init/control.c:1320 init/control.c:1410
+#: init/control.c:1506 init/control.c:1581
 msgid "Job may not be empty string"
 msgstr ""
 
-#: init/control.c:1231
+#: init/control.c:1233
 msgid "Ignoring set env request from chroot session"
 msgstr ""
 
-#: init/control.c:1329
+#: init/control.c:1331
 msgid "Ignoring unset env request from chroot session"
 msgstr ""
 
-#: init/control.c:1355 init/control.c:1452
+#: init/control.c:1357 init/control.c:1454
 msgid "No such variable"
 msgstr ""
 
-#: init/control.c:1394 init/control.c:1490
+#: init/control.c:1396 init/control.c:1492
 msgid "You do not have permission to query job environment"
 msgstr ""
 
-#: init/control.c:1419
+#: init/control.c:1421
 msgid "Ignoring get env request from chroot session"
 msgstr ""
 
-#: init/control.c:1590
+#: init/control.c:1592
 msgid "Ignoring reset env request from chroot session"
 msgstr ""
 
-#: init/control.c:1723
+#: init/control.c:1725
 msgid "unable to create session file"
 msgstr ""
 
-#: init/control.c:1730
+#: init/control.c:1732
 msgid "unable to write session file"
 msgstr ""
 
-#: init/control.c:1779
+#: init/control.c:1781
 msgid "You do not have permission to end session"
 msgstr ""
 
-#: init/control.c:1787
+#: init/control.c:1789
 msgid "Ignoring session end request from chroot session"
 msgstr ""
 
@@ -494,139 +494,134 @@
 
 #: init/job_process.c:1155
 #, c-format
-msgid "unable to open pty master: %s"
+msgid "unable to unlockpt: %s"
 msgstr ""
 
 #: init/job_process.c:1160
 #, c-format
-msgid "unable to unlockpt: %s"
+msgid "unable to granpt: %s"
 msgstr ""
 
 #: init/job_process.c:1165
 #, c-format
-msgid "unable to granpt: %s"
+msgid "unable to get ptsname: %s"
 msgstr ""
 
 #: init/job_process.c:1170
 #, c-format
-msgid "unable to get ptsname: %s"
+msgid "unable to open pty slave: %s"
 msgstr ""
 
 #: init/job_process.c:1175
 #, c-format
-msgid "unable to open pty slave: %s"
+msgid "unable to modify signal handler: %s"
 msgstr ""
 
 #: init/job_process.c:1180
 #, c-format
-msgid "unable to modify signal handler: %s"
+msgid "unable to allocate memory: %s"
 msgstr ""
 
 #: init/job_process.c:1185
 #, c-format
-msgid "unable to allocate memory: %s"
-msgstr ""
-
-#: init/job_process.c:1190
-#, c-format
 msgid "unable to initgroups: %s"
 msgstr ""
 
-#: init/job_process.c:1221 init/job_process.c:1354
+#: init/job_process.c:1216 init/job_process.c:1349
 #, c-format
 msgid "Sending %s signal to %s %s process (%d)"
 msgstr ""
 
-#: init/job_process.c:1230 init/job_process.c:1363
+#: init/job_process.c:1225 init/job_process.c:1358
 #, c-format
 msgid "Failed to send %s signal to %s %s process (%d): %s"
 msgstr ""
 
+#: init/job_process.c:1419
+#, c-format
+msgid "%s %s process (%d) terminated with status %d"
+msgstr ""
+
 #: init/job_process.c:1424
 #, c-format
-msgid "%s %s process (%d) terminated with status %d"
-msgstr ""
-
-#: init/job_process.c:1429
-#, c-format
 msgid "%s %s process (%d) exited normally"
 msgstr ""
 
-#: init/job_process.c:1444
+#: init/job_process.c:1439
 #, c-format
 msgid "%s %s process (%d) killed by %s signal"
 msgstr ""
 
-#: init/job_process.c:1448
+#: init/job_process.c:1443
 #, c-format
 msgid "%s %s process (%d) killed by signal %d"
 msgstr ""
 
-#: init/job_process.c:1462
+#: init/job_process.c:1457
 #, c-format
 msgid "%s %s process (%d) stopped by %s signal"
 msgstr ""
 
-#: init/job_process.c:1466
+#: init/job_process.c:1461
 #, c-format
 msgid "%s %s process (%d) stopped by signal %d"
 msgstr ""
 
-#: init/job_process.c:1480
+#: init/job_process.c:1475
 #, c-format
 msgid "%s %s process (%d) continued by %s signal"
 msgstr ""
 
-#: init/job_process.c:1484
+#: init/job_process.c:1479
 #, c-format
 msgid "%s %s process (%d) continued by signal %d"
 msgstr ""
 
-#: init/job_process.c:1619
+#: init/job_process.c:1614
 #, c-format
 msgid "%s respawning too fast, stopped"
 msgstr ""
 
-#: init/job_process.c:1625
+#: init/job_process.c:1620
 #, c-format
 msgid "%s %s process ended, respawning"
 msgstr ""
 
-#: init/job_process.c:1725
+#: init/job_process.c:1720
 msgid "Failed to add log to unflushed queue"
 msgstr ""
 
-#: init/job_process.c:1891
+#: init/job_process.c:1886
 #, c-format
 msgid "Failed to set ptrace options for %s %s process (%d): %s"
 msgstr ""
 
-#: init/job_process.c:1904 init/job_process.c:2099
+#: init/job_process.c:1899 init/job_process.c:2094
 #, c-format
 msgid "Failed to continue traced %s %s process (%d): %s"
 msgstr ""
 
-#: init/job_process.c:1944 init/job_process.c:2035 init/job_process.c:2090
+#: init/job_process.c:1939 init/job_process.c:2030 init/job_process.c:2085
 #, c-format
 msgid "Failed to detach traced %s %s process (%d): %s"
 msgstr ""
 
-#: init/job_process.c:1984
+#: init/job_process.c:1979
 #, c-format
 msgid "Failed to deliver signal to traced %s %s process (%d): %s"
 msgstr ""
 
-#: init/job_process.c:2019
+#: init/job_process.c:2014
 #, c-format
 msgid "Failed to obtain child process id for %s %s process (%d): %s"
 msgstr ""
 
-#: init/job_process.c:2026
+#: init/job_process.c:2021
 #, c-format
 msgid "%s %s process (%d) became new process (%d)"
 msgstr ""
 
-#: init/job_process.c:2085
+#: init/job_process.c:2080
 #, c-format
 msgid "%s %s process (%d) executable changed"
 msgstr ""
@@ -1539,66 +1534,66 @@
 msgid "Save File"
 msgstr ""
 
-#: scripts/upstart-monitor.py:484
+#: scripts/upstart-monitor.py:486
 msgid "Clear events"
 msgstr ""
 
-#: scripts/upstart-monitor.py:486
+#: scripts/upstart-monitor.py:488
 msgid "Save events to default file"
 msgstr ""
 
-#: scripts/upstart-monitor.py:488
+#: scripts/upstart-monitor.py:490
 msgid "Save events to specified file"
 msgstr ""
 
-#: scripts/upstart-monitor.py:490
+#: scripts/upstart-monitor.py:492
 msgid "Exit application"
 msgstr ""
 
-#: scripts/upstart-monitor.py:494
+#: scripts/upstart-monitor.py:496
 msgid "Application details"
 msgstr ""
 
-#: scripts/upstart-monitor.py:499
+#: scripts/upstart-monitor.py:501
 msgid "Copy"
 msgstr ""
 
-#: scripts/upstart-monitor.py:556
+#: scripts/upstart-monitor.py:558
 msgid "Index"
 msgstr ""
 
-#: scripts/upstart-monitor.py:560
+#: scripts/upstart-monitor.py:562
 msgid "Time"
 msgstr ""
 
-#: scripts/upstart-monitor.py:564
+#: scripts/upstart-monitor.py:566
 msgid "Event and environment"
 msgstr ""
 
-#: scripts/upstart-monitor.py:589 scripts/upstart-monitor.py:671
+#: scripts/upstart-monitor.py:591 scripts/upstart-monitor.py:673
 msgid "Connected to"
 msgstr ""
 
-#: scripts/upstart-monitor.py:620
+#: scripts/upstart-monitor.py:622
 msgid "Upstart Event Monitor"
 msgstr ""
 
-#: scripts/upstart-monitor.py:624
+#: scripts/upstart-monitor.py:626
 msgid "run in command-line mode"
 msgstr ""
 
-#: scripts/upstart-monitor.py:627
+#: scripts/upstart-monitor.py:629
 msgid "field separator to use for command-line output"
 msgstr ""
 
-#: scripts/upstart-monitor.py:631
+#: scripts/upstart-monitor.py:633
 msgid "connect to Upstart via specified D-Bus route"
 msgstr ""
 
-#: scripts/upstart-monitor.py:669
+#: scripts/upstart-monitor.py:671
 msgid "console mode"
 msgstr ""
 
-#: scripts/upstart-monitor.py:673
+#: scripts/upstart-monitor.py:675
 msgid "Columns: time, event and environment"
 msgstr ""

-- 
upstart-devel mailing list
[email protected]
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/upstart-devel

Reply via email to