summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog3
-rw-r--r--lib/dpkg/dpkg.h1
-rw-r--r--man/dpkg.14
-rw-r--r--src/Makefile.am1
-rw-r--r--src/help.c1
5 files changed, 10 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
index 4e2231657..06757d768 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -34,6 +34,9 @@ dpkg (1.15.6.2) UNRELEASED; urgency=low
* dpkg now exports DPKG_MAINTSCRIPT_NAME to maintainer scripts with the
type of maintainer script currently running (preinst, postinst, prerm,
postrm). Closes: #546577
+ * dpkg now exports DPKG_LIBDIR to maintainer scripts pointing to the
+ private directory containing internal programs like the upcoming
+ maintscript-helper.
[ Colin Watson ]
* Modern tar files typically use NormalFile1 rather than NormalFile0 for
diff --git a/lib/dpkg/dpkg.h b/lib/dpkg/dpkg.h
index d730923be..0c6eaa652 100644
--- a/lib/dpkg/dpkg.h
+++ b/lib/dpkg/dpkg.h
@@ -81,6 +81,7 @@ DPKG_BEGIN_DECLS
#define MAINTSCRIPTPKGENVVAR "DPKG_MAINTSCRIPT_PACKAGE"
#define MAINTSCRIPTARCHENVVAR "DPKG_MAINTSCRIPT_ARCH"
#define MAINTSCRIPTNAMEENVVAR "DPKG_MAINTSCRIPT_NAME"
+#define MAINTSCRIPTLIBDIRENVVAR "DPKG_LIBDIR"
#define MAINTSCRIPTDPKGENVVAR "DPKG_RUNNING_VERSION"
#define SHELLENV "SHELL"
diff --git a/man/dpkg.1 b/man/dpkg.1
index 1073be6e5..cbac66296 100644
--- a/man/dpkg.1
+++ b/man/dpkg.1
@@ -644,6 +644,10 @@ examine the situation. Contains the path to the new conffile.
Defined by \fBdpkg\fP on the maintainer script environment to the
version of the currently running \fBdpkg\fP instance.
.TP
+.B DPKG_LIBDIR
+Defined by \fBdpkg\fP on the maintainer script environment to the
+private library directory of the currently running \fBdpkg\fP instance.
+.TP
.B DPKG_MAINTSCRIPT_PACKAGE
Defined by \fBdpkg\fP on the maintainer script environment to the
package name being handled.
diff --git a/src/Makefile.am b/src/Makefile.am
index b3f2fe582..ddde846bb 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -6,6 +6,7 @@ pkgconfdir = $(sysconfdir)/@PACKAGE@
AM_CPPFLAGS = \
-DLOCALEDIR=\"$(localedir)\" \
-DADMINDIR=\"$(admindir)\" \
+ -DPKGLIBDIR=\"$(pkglibdir)\" \
-idirafter $(top_srcdir)/lib/compat \
-I$(top_builddir) \
-I$(top_srcdir)/lib
diff --git a/src/help.c b/src/help.c
index fb5ec9309..59bed9a8a 100644
--- a/src/help.c
+++ b/src/help.c
@@ -261,6 +261,7 @@ do_script(struct pkginfo *pkg, struct pkginfoperfile *pif,
if (setenv(MAINTSCRIPTPKGENVVAR, pkg->name, 1) ||
setenv(MAINTSCRIPTARCHENVVAR, pif->architecture, 1) ||
setenv(MAINTSCRIPTNAMEENVVAR, cmd->argv[0], 1) ||
+ setenv(MAINTSCRIPTLIBDIRENVVAR, PKGLIBDIR, 1) ||
setenv(MAINTSCRIPTDPKGENVVAR, PACKAGE_VERSION, 1))
ohshite(_("unable to setenv for maintainer script"));