From: David Levine Date: Sat, 17 Sep 2016 14:06:56 +0000 (-0400) Subject: Replaced cygwin build script with cygport script. X-Git-Url: https://diplodocus.org/git/nmh/commitdiff_plain/4a007bacfa67e69923b15500e2b2c3a6bcde541a?hp=87e2bf17566a5e1b5e1ea9486303509ffd53d397 Replaced cygwin build script with cygport script. --- diff --git a/SPECS/build-nmh-cygwin b/SPECS/build-nmh-cygwin deleted file mode 100755 index b992cf2a..00000000 --- a/SPECS/build-nmh-cygwin +++ /dev/null @@ -1,536 +0,0 @@ -#!/bin/bash -# -# ========================================================================== -# Change from generic-build-script: added this comment block. -# Based on Cygwin generic package build script, customized for nmh. -# -# This script is incompatible with directory names that contain spaces, etc. -# To fix that, a whole bunch of shell variables need to be wrapped with "". -# ========================================================================== -# -# Generic package build script -# -# $Id: generic-build-script,v 1.47 2006/02/01 14:01:14 igor Exp $ -# -# Package maintainers: if the original source is not distributed as a -# (possibly compressed) tarball, set the value of ${src_orig_pkg_name}, -# and redefine the unpack() helper function appropriately. -# Also, if the Makefile rule to run the test suite is not "check", change -# the definition of ${test_rule} below. - -# find out where the build script is located -tdir=`echo "$0" | sed 's%[\\/][^\\/][^\\/]*$%%'` -test "x$tdir" = "x$0" && tdir=. -scriptdir=`cd $tdir; pwd` -# find src directory. -# If scriptdir ends in SPECS, then topdir is $scriptdir/.. -# If scriptdir ends in CYGWIN-PATCHES, then topdir is $scriptdir/../.. -# Otherwise, we assume that topdir = scriptdir -topdir1=`echo ${scriptdir} | sed 's%/SPECS$%%'` -topdir2=`echo ${scriptdir} | sed 's%/CYGWIN-PATCHES$%%'` -if [ "x$topdir1" != "x$scriptdir" ] ; then # SPECS - topdir=`cd ${scriptdir}/..; pwd` -else - if [ "x$topdir2" != "x$scriptdir" ] ; then # CYGWIN-PATCHES - topdir=`cd ${scriptdir}/../..; pwd` - else - topdir=`cd ${scriptdir}; pwd` - fi -fi - -tscriptname=`basename $0 .sh` -export PKG=`echo $tscriptname | sed -e 's/\-[^\-]*\-[^\-]*$//'` -export VER=`echo $tscriptname | sed -e "s/${PKG}\-//" -e 's/\-[^\-]*$//'` -export REL=`echo $tscriptname | sed -e "s/${PKG}\-${VER}\-//"` -# BASEPKG refers to the upstream base package -# SHORTPKG refers to the Cygwin package -# Normally, these are identical, but if the Cygwin package name is different -# from the upstream package name, you will want to redefine BASEPKG. -# Example: For Apache 2, BASEPKG=httpd-2.x.xx but SHORTPKG=apache2-2.x.xx -export BASEPKG=${PKG}-${VER}-${REL} -export SHORTPKG=${PKG}-${VER} -export FULLPKG=${SHORTPKG}-${REL} - -# determine correct decompression option and tarball filename -# Change from generic-build-script: set scr_orig_pkg_name here. -export src_orig_pkg_name=nmh-1.5-2.tar.gz -if [ -e "${src_orig_pkg_name}" ] ; then - # Change from generic-build-script: don't need the following line, use - # opt_decomp of z. - # export opt_decomp=? # Make sure tar punts if unpack() is not redefined - export opt_decomp=z -elif [ -e ${BASEPKG}.tar.bz2 ] ; then - export opt_decomp=j - export src_orig_pkg_name=${BASEPKG}.tar.bz2 -elif [ -e ${BASEPKG}.tar.gz ] ; then - export opt_decomp=z - export src_orig_pkg_name=${BASEPKG}.tar.gz -elif [ -e ${BASEPKG}.tgz ] ; then - export opt_decomp=z - export src_orig_pkg_name=${BASEPKG}.tgz -elif [ -e ${BASEPKG}.tar ] ; then - export opt_decomp= - export src_orig_pkg_name=${BASEPKG}.tar -else - echo "Cannot find PKG:${PKG} VER:${VER} REL:${REL}. Rename $0 to" - echo "something more appropriate, and try again." - exit 1 -fi - -export src_orig_pkg=${topdir}/${src_orig_pkg_name} - -# determine correct names for generated files -export src_pkg_name=${FULLPKG}-src.tar.bz2 -export src_patch_name=${FULLPKG}.patch -export bin_pkg_name=${FULLPKG}.tar.bz2 -export log_pkg_name=${FULLPKG}-BUILDLOGS.tar.bz2 - -export configurelogname=${FULLPKG}-CONFIGURE.LOG -export makelogname=${FULLPKG}-MAKE.LOG -export checklogname=${FULLPKG}-CHECK.LOG -export installlogname=${FULLPKG}-INSTALL.LOG - -export src_pkg=${topdir}/${src_pkg_name} -export src_patch=${topdir}/${src_patch_name} -export bin_pkg=${topdir}/${bin_pkg_name} -export srcdir=${topdir}/${BASEPKG} -export objdir=${srcdir}/.build -export instdir=${srcdir}/.inst -export srcinstdir=${srcdir}/.sinst -export buildlogdir=${srcdir}/.buildlogs -export configurelogfile=${srcinstdir}/${configurelogname} -export makelogfile=${srcinstdir}/${makelogname} -export checklogfile=${srcinstdir}/${checklogname} -export installlogfile=${srcinstdir}/${installlogname} - -prefix=/usr -# Change from generic-build-script: use /etc/nmh instead of /etc. -sysconfdir=/etc/nmh -localstatedir=/var -if [ -z "$MY_CFLAGS" ]; then - MY_CFLAGS="-O2" -fi -if [ -z "$MY_LDFLAGS" ]; then - MY_LDFLAGS= -fi - -# Change from generic-build-script: disabled install_docs because -# nmh's make install takes care of it. Though it installs in -# /usr/share/doc/nmh/ instead of /usr/share/doc/nmh-/, -# that seems to be more common on Cygwin than using the -. -export install_docs= -#export install_docs="`for i in ${install_docs}; do echo $i; done | sort -u`" -export test_rule=check -if [ -z "$SIG" ]; then - export SIG=0 # set to 1 to turn on signing by default -fi -# Sort in POSIX order. -export LC_ALL=C - -# helper functions - -# Provide help. -help() { -cat <...] ... -Options are: - help, --help Print this message - version, --version Print the version message - with_logs, --logs Create logs of remaining steps -Actions are: - prep Unpack and patch into ${srcdir} - mkdirs Make hidden directories needed during build - conf, configure Configure the package (./configure) - reconf Rerun configure - build, make Build the package (make) - check, test Run the testsuite (make ${test_rule}) - clean Remove built files (make clean) - install Install package to staging area (make install) - list List package contents - depend List package dependencies - strip Strip package executables - pkg, package Prepare the binary package ${bin_pkg_name} - mkpatch Prepare the patch file ${src_patch_name} - acceptpatch Copy patch file ${src_patch_name} to ${topdir} - spkg, src-package Prepare the source package ${src_pkg_name} - finish Remove source directory ${srcdir} - checksig Validate GPG signatures (requires gpg) - first Full run for spkg (mkdirs, spkg, finish) - almostall Full run for bin pkg, except for finish - all Full run for bin pkg -EOF -} - -# Provide version of generic-build-script modified to make this script. -version() { - vers=`echo '$Revision: 1.47 $' | sed -e 's/Revision: //' -e 's/ *\\$//g'` - echo "$0 based on generic-build-script $vers" -} - -# Unpacks the original package source archive into ./${BASEPKG}/. -# Change this if the original package was not tarred -# or if it doesn't unpack to a correct directory. -unpack() { - tar xv${opt_decomp}f "$1" -} - -# Make the hidden directories used by this script. -mkdirs() { - (cd ${topdir} && \ - rm -fr ${objdir} ${instdir} ${srcinstdir} && \ - mkdir -p ${objdir} && \ - mkdir -p ${instdir} && \ - mkdir -p ${srcinstdir} ) -} -mkdirs_log() { - (cd ${topdir} && \ - mkdirs "$@" && \ - rm -fr ${buildlogdir} && \ - mkdir -p ${buildlogdir} ) -} - -# Unpack the original tarball, and get everything set up for this script. -prep() { - (cd ${topdir} && \ - unpack ${src_orig_pkg} && \ - cd ${topdir} && \ - if [ -f ${src_patch} ] ; then \ - patch -Z -p0 < ${src_patch} ;\ - fi && \ - mkdirs ) -} -prep_log() { - prep "$@" && \ - mkdirs_log && \ - if [ -f ${topdir}/${log_pkg_name} ] ; then \ - # Change from generic-build-script: do the following in subshell - # so that cd isn't permanent. - (cd ${buildlogdir} && \ - tar xvjf "${topdir}"/${log_pkg_name}) - fi -} - -# Configure the package. -# Change from generic-build-script: added following notes: -# Could add --with-cyrus-sasl if libsasl2 and libsas2-devel -# packages are installed. -# Could add --with-tls if libgnutls26 and gnutls-devel -# packages are installed. -# -conf() { - (cd ${objdir} && \ - CFLAGS="${MY_CFLAGS}" LDFLAGS="${MY_LDFLAGS}" \ - ${srcdir}/configure \ - --srcdir=${srcdir} --prefix="${prefix}" \ - --exec-prefix='${prefix}' --sysconfdir="${sysconfdir}" \ - --libdir='${prefix}/lib' --includedir='${prefix}/include' \ - --mandir='${prefix}/share/man' --infodir='${prefix}/share/info' \ - --libexecdir='${sbindir}' --localstatedir="${localstatedir}" \ - --datadir='${prefix}/share' ) -} -conf_log() { - conf "$@" 2>&1 | tee ${configurelogfile} - return ${PIPESTATUS[0]} -} - -# Rerun configure to pick up changes in the environment. -reconf() { - (cd ${topdir} && \ - rm -fr ${objdir} && \ - mkdir -p ${objdir} && \ - conf ) -} -reconf_log() { - reconf "$@" 2>&1 | tee ${configurelogfile} - return ${PIPESTATUS[0]} -} - -# Run make. -build() { - (cd ${objdir} && \ - make CFLAGS="${MY_CFLAGS}" ) -} -build_log() { - build "$@" 2>&1 | tee ${makelogfile} - return ${PIPESTATUS[0]} -} - -# Run the package testsuite. -check() { - (cd ${objdir} && \ - make -k ${test_rule} ) -} -check_log() { - check "$@" 2>&1 | tee ${checklogfile} - return ${PIPESTATUS[0]} -} - -# Remove files created by configure and make. -clean() { - (cd ${objdir} && \ - make clean ) -} - -# Install the package, with DESTDIR set to '.inst'. -# Change from generic-build-script: added ":;" after "find ... | gzip" -# because it returns non-zero status. -install() { - (cd ${objdir} && \ - rm -fr ${instdir}/* && \ - make install DESTDIR=${instdir} && \ - for f in ${prefix}/share/info/dir ${prefix}/info/dir ; do \ - if [ -f ${instdir}${f} ] ; then \ - rm -f ${instdir}${f} ; \ - fi ;\ - done &&\ - for d in ${prefix}/share/doc/${SHORTPKG} ${prefix}/share/doc/Cygwin ; do \ - if [ ! -d ${instdir}${d} ] ; then \ - mkdir -p ${instdir}${d} ;\ - fi ;\ - done &&\ - if [ -d ${instdir}${prefix}/share/info ] ; then \ - find ${instdir}${prefix}/share/info -name "*.info" | xargs -r gzip -q ; \ - fi && \ - if [ -d ${instdir}${prefix}/share/man ] ; then \ - find ${instdir}${prefix}/share/man -name "*.1" -o -name "*.3" -o \ - -name "*.3x" -o -name "*.3pm" -o -name "*.5" -o -name "*.6" -o \ - -name "*.7" -o -name "*.8" | xargs -r gzip -q ; :; \ - fi && \ - templist="" && \ - for fp in ${install_docs} ; do \ - case "$fp" in \ - */) templist="$templist `find ${srcdir}/$fp -type f`" ;; - *) for f in ${srcdir}/$fp ; do \ - if [ -f $f ] ; then \ - templist="$templist $f"; \ - fi ; \ - done ;; \ - esac ; \ - done && \ - if [ ! "x$templist" = "x" ]; then \ - /usr/bin/install -m 644 $templist \ - ${instdir}${prefix}/share/doc/${SHORTPKG} ; \ - fi && \ - if [ -f ${srcdir}/CYGWIN-PATCHES/${PKG}.README ]; then \ - /usr/bin/install -m 644 ${srcdir}/CYGWIN-PATCHES/${PKG}.README \ - ${instdir}${prefix}/share/doc/Cygwin/${SHORTPKG}.README ; \ - elif [ -f ${srcdir}/CYGWIN-PATCHES/README ] ; then \ - /usr/bin/install -m 644 ${srcdir}/CYGWIN-PATCHES/README \ - ${instdir}${prefix}/share/doc/Cygwin/${SHORTPKG}.README ; \ - fi && \ - if [ -f ${srcdir}/CYGWIN-PATCHES/${PKG}.sh ] ; then \ - if [ ! -d ${instdir}${sysconfdir}/postinstall ]; then \ - mkdir -p ${instdir}${sysconfdir}/postinstall ; \ - fi && \ - /usr/bin/install -m 755 ${srcdir}/CYGWIN-PATCHES/${PKG}.sh \ - ${instdir}${sysconfdir}/postinstall/${PKG}.sh ; \ - elif [ -f ${srcdir}/CYGWIN-PATCHES/postinstall.sh ] ; then \ - if [ ! -d ${instdir}${sysconfdir}/postinstall ]; then \ - mkdir -p ${instdir}${sysconfdir}/postinstall ; \ - fi && \ - /usr/bin/install -m 755 ${srcdir}/CYGWIN-PATCHES/postinstall.sh \ - ${instdir}${sysconfdir}/postinstall/${PKG}.sh ; \ - fi && \ - if [ -f ${srcdir}/CYGWIN-PATCHES/preremove.sh ] ; then \ - if [ ! -d ${instdir}${sysconfdir}/preremove ]; then \ - mkdir -p ${instdir}${sysconfdir}/preremove ; \ - fi && \ - /usr/bin/install -m 755 ${srcdir}/CYGWIN-PATCHES/preremove.sh \ - ${instdir}${sysconfdir}/preremove/${PKG}.sh ; \ - fi && - if [ -f ${srcdir}/CYGWIN-PATCHES/manifest.lst ] ; then - if [ ! -d ${instdir}${sysconfdir}/preremove ]; then - mkdir -p ${instdir}${sysconfdir}/preremove ; - fi && - /usr/bin/install -m 644 ${srcdir}/CYGWIN-PATCHES/manifest.lst \ - ${instdir}${sysconfdir}/preremove/${PKG}-manifest.lst ; - fi ) -} -install_log() { - install "$@" 2>&1 | tee ${installlogfile} - return ${PIPESTATUS[0]} -} - -# Strip all binaries. -strip() { - (cd ${instdir} && \ - find . -name "*.dll" -or -name "*.exe" | xargs -r strip 2>&1 ; \ - true ) -} - -# List all non-hidden files that belong to the package. -list() { - (cd ${instdir} && \ - find . -name "*" ! -type d | sed 's%^\.% %' | sort ; \ - true ) -} - -# List the static .dll dependencies of the package. This does not pick up -# dynamic dependencies (whether or not libtool was used), nor does it pick -# up program dependencies, such as system() depending on /bin/sh. -depend() { - (cd ${instdir} && \ - find ${instdir} -name "*.exe" -o -name "*.dll" | xargs -r cygcheck | \ - sed -ne '/^ [^ ]/ s,\\,/,gp' | sort -bu | \ - xargs -r -n1 cygpath -u | xargs -r cygcheck -f | sed 's%^% %' | sort -u ; \ - true ) -} - -# Build the binary package tarball. -pkg() { - (cd ${instdir} && \ - tar cvjf ${bin_pkg} * ) -} - -# Compare the original tarball against cygwin modifications. -mkpatch() { - (cd ${srcdir} && \ - find . -name "autom4te.cache" | xargs -r rm -rf ; \ - unpack ${src_orig_pkg} && \ - mv ${BASEPKG} ../${BASEPKG}-orig && \ - cd ${topdir} && \ - diff -urN -x '.build' -x '.inst' -x '.sinst' -x '.buildlogs' \ - ${BASEPKG}-orig ${BASEPKG} > \ - ${srcinstdir}/${src_patch_name} ; \ - rm -rf ${BASEPKG}-orig ) -} - -# Note: maintainer-only functionality -acceptpatch() { - cp --backup=numbered ${srcinstdir}/${src_patch_name} ${topdir} -} - -# Build the source tarball. -spkg() { - (mkpatch && \ - if [ "${SIG}" -eq 1 ] ; then \ - name=${srcinstdir}/${src_patch_name} text="PATCH" sigfile ; \ - fi && \ - cp ${src_orig_pkg} ${srcinstdir}/${src_orig_pkg_name} && \ - if [ -e ${src_orig_pkg}.sig ] ; then \ - cp ${src_orig_pkg}.sig ${srcinstdir}/ ; \ - fi && \ - cp $0 ${srcinstdir}/`basename $0` && \ - name=$0 text="SCRIPT" sigfile && \ - if [ "${SIG}" -eq 1 ] ; then \ - cp $0.sig ${srcinstdir}/ ; \ - fi && \ - cd ${srcinstdir} && \ - tar cvjf ${src_pkg} * ) -} -spkg_log() { - spkg "$@" && \ - (cd ${srcinstdir} && \ - if [ -e ${configurelogname} -o -e ${makelogname} -o \ - -e ${checklogname} -o -e ${installlogname} ]; then - tar --ignore-failed-read -cvjf ${log_pkg_name} \ - ${configurelogname} ${makelogname} ${checklogname} ${installlogname} && \ - rm -f \ - ${configurelogname} ${makelogname} ${checklogname} ${installlogname} ; \ - fi && \ - tar uvjf ${src_pkg} * ) -} - -# Clean up everything. -finish() { - rm -rf ${srcdir} -} - -# Generate GPG signatures. -sigfile() { - if [ \( "${SIG}" -eq 1 \) -a \( -e $name \) -a \( \( ! -e $name.sig \) -o \( $name -nt $name.sig \) \) ]; then \ - if [ -x /usr/bin/gpg ]; then \ - echo "$text signature need to be updated"; \ - rm -f $name.sig; \ - /usr/bin/gpg --detach-sign $name; \ - else \ - echo "You need the gnupg package installed in order to make signatures."; \ - fi; \ - fi -} - -# Validate GPG signatures. -checksig() { - if [ -x /usr/bin/gpg ]; then \ - if [ -e ${src_orig_pkg}.sig ]; then \ - echo "ORIGINAL PACKAGE signature follows:"; \ - /usr/bin/gpg --verify ${src_orig_pkg}.sig ${src_orig_pkg}; \ - else \ - echo "ORIGINAL PACKAGE signature missing."; \ - fi; \ - if [ -e $0.sig ]; then \ - echo "SCRIPT signature follows:"; \ - /usr/bin/gpg --verify $0.sig $0; \ - else \ - echo "SCRIPT signature missing."; \ - fi; \ - if [ -e ${src_patch}.sig ]; then \ - echo "PATCH signature follows:"; \ - /usr/bin/gpg --verify ${src_patch}.sig ${src_patch}; \ - else \ - echo "PATCH signature missing."; \ - fi; \ - else - echo "You need the gnupg package installed in order to check signatures." ; \ - fi -} - -f_mkdirs=mkdirs -f_prep=prep -f_conf=conf -f_reconf=conf -f_build=build -f_check=check -f_install=install -f_spkg=spkg - -enablelogging() { - f_mkdirs=mkdirs_log && \ - f_prep=prep_log && \ - f_conf=conf_log && \ - f_reconf=reconf_log && \ - f_build=build_log && \ - f_check=check_log && \ - f_install=install_log && \ - f_spkg=spkg_log -} - -while test -n "$1" ; do - case $1 in - help|--help) help ; STATUS=$? ;; - version|--version) version ; STATUS=$? ;; - with_logs|--logs) enablelogging ; STATUS=$? ;; - prep) $f_prep ; STATUS=$? ;; - mkdirs) $f_mkdirs ; STATUS=$? ;; - conf) $f_conf ; STATUS=$? ;; - configure) $f_conf ; STATUS=$? ;; - reconf) $f_reconf ; STATUS=$? ;; - build) $f_build ; STATUS=$? ;; - make) $f_build ; STATUS=$? ;; - check) $f_check ; STATUS=$? ;; - test) $f_check ; STATUS=$? ;; - clean) $f_clean ; STATUS=$? ;; - install) $f_install ; STATUS=$? ;; - list) list ; STATUS=$? ;; - depend) depend ; STATUS=$? ;; - strip) strip ; STATUS=$? ;; - package) pkg ; STATUS=$? ;; - pkg) pkg ; STATUS=$? ;; - mkpatch) mkpatch ; STATUS=$? ;; - acceptpatch) acceptpatch ; STATUS=$? ;; - src-package) $f_spkg ; STATUS=$? ;; - spkg) $f_spkg ; STATUS=$? ;; - finish) finish ; STATUS=$? ;; - checksig) checksig ; STATUS=$? ;; - first) $f_mkdirs && $f_spkg && finish ; STATUS=$? ;; - almostall) checksig && $f_prep && $f_conf && $f_build && \ - $f_install && strip && pkg && $f_spkg ; STATUS=$? ;; - all) checksig && $f_prep && $f_conf && $f_build && \ - $f_install && strip && pkg && $f_spkg && finish ; \ - STATUS=$? ;; - *) echo "Error: bad arguments" ; exit 1 ;; - esac - ( exit ${STATUS} ) || exit ${STATUS} - shift -done diff --git a/SPECS/nmh.cygport b/SPECS/nmh.cygport new file mode 100644 index 00000000..17de0b95 --- /dev/null +++ b/SPECS/nmh.cygport @@ -0,0 +1,21 @@ +NAME="nmh" +VERSION=1.6 +RELEASE=3 + +CATEGORY="Mail" +SUMMARY="A capable mail handling system with a command line interface" +DESCRIPTION="A capable mail handling system with a command line interface. +Nmh isn't a single comprehensive program. Instead, it consists of +simple, single-purpose programs for sending, receiving, saving, +retrieving, and otherwise manipulating email messages. You can freely +intersperse nmh commands with other shell commands or write custom +scripts which utilize nmh commands. If you want to use nmh as a true +email user agent, you'll want to also install xmh to provide a user +interface for it--nmh only has a command line interface. nmh is +configured to use less and vim by default but options allow use of +more and emacs, respectively." + +HOMEPAGE="http://savannah.nongnu.org/projects/nmh" +SRC_URI="http://download.savannah.nongnu.org/releases/nmh/nmh-${VERSION}.tar.gz" +CYGCONF_ARGS="--sysconfdir=${prefix}/etc/nmh --with-cyrus-sasl --with-tls" +