summaryrefslogtreecommitdiffstats
path: root/contrib/openpam/mkpkgng.in
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/openpam/mkpkgng.in')
-rw-r--r--contrib/openpam/mkpkgng.in166
1 files changed, 166 insertions, 0 deletions
diff --git a/contrib/openpam/mkpkgng.in b/contrib/openpam/mkpkgng.in
new file mode 100644
index 0000000..31efc84
--- /dev/null
+++ b/contrib/openpam/mkpkgng.in
@@ -0,0 +1,166 @@
+#!/bin/sh
+#-
+# Copyright (c) 2013 Dag-Erling Smørgrav
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. The name of the author may not be used to endorse or promote
+# products derived from this software without specific prior written
+# permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+#
+# $Id: mkpkgng.in 740 2013-09-07 13:03:20Z des $
+#
+
+# Print an informational message
+info() {
+ echo "mkpkgng: $@"
+}
+
+# Print an error message and exit
+error() {
+ echo "mkpkgng: $@" 1>&2
+ exit 1
+}
+
+# Ask a yes / no question
+yesno() {
+ while :; do
+ echo -n "mkpkgng: $@ (yes/no) "
+ read answer
+ case $answer in
+ [Yy]|[Yy][Ee][Ss])
+ return 0
+ ;;
+ [Nn]|[Nn][Oo])
+ return 1
+ ;;
+ esac
+ done
+}
+
+#
+# Locate source and build directory
+#
+srcdir="@abs_top_srcdir@"
+[ -f "$srcdir/include/security/openpam.h" ] || \
+ error "Unable to locate source directory."
+builddir="@abs_top_builddir@"
+cd "$srcdir"
+
+#
+# Determine pkgng version and ABI
+#
+pkgver=$(pkg -vv | awk '$1 == "Version:" { print $2 }')
+[ -n "$pkgver" ] || error "Unable to determine pkgng version."
+pkgabi=$(pkg -vv | awk '$1 == "ABI:" { print $2 }')
+[ -n "$pkgabi" ] || error "Unable to determine package ABI."
+
+#
+# Determine package name and version
+#
+package="@PACKAGE@"
+version="@PACKAGE_VERSION@"
+if ! expr "$version" : "[0-9]{1,}$" >/dev/null ; then
+ svnversion="$(svnversion 2>&1)"
+ svnversion=$(expr "$svnversion" : '\([0-9][0-9]*\)[A-Z]\{0,1\}$')
+ if [ -n "$svnversion" ] ; then
+ version="$version-r${svnversion}"
+ fi
+fi
+
+#
+# Locate GNU make
+#
+if which gmake >/dev/null ; then
+ make=gmake
+else
+ make=make
+fi
+make="$make --no-print-directory --quiet V=0"
+
+#
+# Create temporary directory
+#
+info "Creating the temporary directory."
+tmproot=$(mktemp -d "${TMPDIR:-/tmp}/$package-$version.XXXXXX")
+[ -n "$tmproot" -a -d "$tmproot" ] || \
+ error "Unable to create the temporary directory."
+trap "exit 1" INT
+trap "info Deleting the temporary directory. ; rm -rf '$tmproot'" EXIT
+set -e
+
+#
+# Install into tmproot
+#
+info "Installing into the temporary directory."
+$make install DESTDIR="$tmproot"
+
+#
+# Generate stub manifest
+#
+info "Generating the stub manifest."
+manifest="$tmproot/+MANIFEST"
+cat >"$manifest" <<EOF
+name: $package
+version: $version
+origin: local/$package
+comment: BSD-licensed PAM implementation
+arch: $pkgabi
+www: @PACKAGE_URL@
+maintainer: @PACKAGE_BUGREPORT@
+prefix: @prefix@
+desc:
+ OpenPAM is an open source PAM library that focuses on simplicity,
+ correctness, and cleanliness.
+
+ OpenPAM aims to gather the best features of Solaris PAM, XSSO and
+ Linux-PAM, plus some innovations of its own. In areas where these
+ implementations disagree, OpenPAM tries to remain compatible with
+ Solaris, at the expense of XSSO conformance and Linux-PAM
+ compatibility.
+categories: local, security
+EOF
+
+#
+# Generate file list
+#
+info "Generating the file list."
+(
+ echo "files:"
+ find -s "$tmproot" -type f | while read file ; do
+ [ "$file" = "$manifest" ] && continue
+ mode=$(stat -f%p "$file" | cut -c 3-)
+ file="${file#$tmproot}"
+ echo " $file: { uname: root, gname: wheel, perm: $mode }"
+ done
+)>>"$manifest"
+
+#
+# Create the package
+#
+info "Creating the package."
+pkg create -r "$tmproot" -m "$tmproot" -o "$builddir"
+
+#
+# Done
+#
+info "Package created for $package-$version."
OpenPOWER on IntegriCloud