#!/bin/sh
-# $Id: make-tar.sh,v 1.4 2010/11/06 18:31:46 tom Exp $
+# $Id: make-tar.sh,v 1.19 2022/02/05 17:57:45 tom Exp $
##############################################################################
-# Copyright (c) 2010 Free Software Foundation, Inc. #
+# Copyright 2019-2021,2022 Thomas E. Dickey #
+# Copyright 2010-2015,2017 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
# copy of this software and associated documentation files (the "Software"), #
# scripts. The reason for doing that is to simplify distributing the test
# programs as a separate package.
+CDPATH=:
+export CDPATH
+
TARGET=`pwd`
-: ${ROOTNAME:=ncurses-test}
-: ${DESTDIR:=$TARGET}
-: ${TMPDIR:=/tmp}
+: "${PKG_NAME:=ncurses-examples}"
+: "${ROOTNAME:=ncurses-test}"
+: "${DESTDIR:=$TARGET}"
+: "${TMPDIR:=/tmp}"
+
+grep_assign() {
+ grep_assign=`grep -E "^$2\>" "$1" | sed -e "s/^$2[ ]*=[ ]*//" -e 's/"//g'`
+ eval "$2"=\""$grep_assign"\"
+}
+
+grep_patchdate() {
+ grep_assign ../dist.mk NCURSES_MAJOR
+ grep_assign ../dist.mk NCURSES_MINOR
+ grep_assign ../dist.mk NCURSES_PATCH
+}
+
+# The rpm spec-file in the ncurses tree is a template. Fill in the version
+# information from dist.mk
+edit_specfile() {
+ sed \
+ -e "s/\\<MAJOR\\>/$NCURSES_MAJOR/g" \
+ -e "s/\\<MINOR\\>/$NCURSES_MINOR/g" \
+ -e "s/\\<YYYYMMDD\\>/$NCURSES_PATCH/g" "$1" >"$1.new"
+ chmod u+w "$1"
+ mv "$1.new" "$1"
+}
+
+make_changelog() {
+ [ -f "$1" ] && chmod u+w "$1"
+ cat >"$1" <<EOF
+`echo $PKG_NAME|tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` ($NCURSES_MAJOR.$NCURSES_MINOR+$NCURSES_PATCH) unstable; urgency=low
+
+ * snapshot of ncurses subpackage for $PKG_NAME.
-# This can be run from either the test subdirectory, or from the top-level
+ -- `head -n 1 "$HOME"/.signature` `date -R`
+EOF
+}
+
+# This can be run from either the subdirectory, or from the top-level
# source directory. We will put the tar file in the original directory.
-test -d ./test && cd ./test
+if [ -d ./test ]
+then
+ cd ./test || exit
+fi
+SOURCE=`cd ..;pwd`
BUILD=$TMPDIR/make-tar$$
-trap "cd /; rm -rf $BUILD; exit 0" 0 1 2 5 15
+trap "cd /; rm -rf $BUILD; exit 0" 1 2 3 15
+trap "cd /; rm -rf $BUILD; exit 0" 0
umask 077
if ! ( mkdir $BUILD )
umask 022
mkdir $BUILD/$ROOTNAME
-cp -p -r * $BUILD/$ROOTNAME/ || exit
+cp -p -r ./* $BUILD/$ROOTNAME/ || exit
# Add the config.* utility scripts from the top-level directory.
for i in . ..
do
- for j in config.guess config.sub install-sh tar-copy.sh
+ for j in COPYING config.guess config.sub install-sh tar-copy.sh
do
- test -f $i/$j && cp -p $i/$j $BUILD/$ROOTNAME/
+ [ -f $i/$j ] && cp -p $i/$j $BUILD/$ROOTNAME/
done
done
-cd $BUILD || exit
+# Make rpm and dpkg scripts for test-builds
+grep_patchdate
+for spec in "$BUILD/$ROOTNAME"/package/*.spec
+do
+ edit_specfile "$spec"
+done
+for spec in "$BUILD/$ROOTNAME"/package/debian*
+do
+ make_changelog "$spec"/changelog
+done
+
+cp -p "$SOURCE/NEWS" "$BUILD/$ROOTNAME"
+
+# cleanup empty directories (an artifact of ncurses source archives)
+
+touch $BUILD/$ROOTNAME/MANIFEST
+( cd $BUILD/$ROOTNAME && find . -type f -print | "$SOURCE/misc/csort" >MANIFEST )
+
+cd $BUILD || exit
+
+# Remove build-artifacts.
+find . -name RCS -exec rm -rf {} \;
+find $BUILD/$ROOTNAME -type d -exec rmdir {} \; 2>/dev/null
+find $BUILD/$ROOTNAME -type d -exec rmdir {} \; 2>/dev/null
+find $BUILD/$ROOTNAME -type d -exec rmdir {} \; 2>/dev/null
# There is no need for this script in the tar file.
rm -f $ROOTNAME/make-tar.sh
# Remove build-artifacts.
-find . -name RCS -exec rm -rf {} \;
find . -name "*.gz" -exec rm -rf {} \;
# Make the files writable...
chmod -R u+w .
-tar cf - $ROOTNAME | gzip >$DESTDIR/$ROOTNAME.tar.gz
-cd $DESTDIR
+tar cf - $ROOTNAME | gzip >"$DESTDIR/$ROOTNAME.tar.gz"
+cd "$DESTDIR" || exit
pwd
ls -l $ROOTNAME.tar.gz
+
+# vi:ts=4 sw=4