[EMAIL PROTECTED] wrote:

> > It's that way now, but I've just a few things to tidy up.  The last
> > file I used this on was SING, and it worked well.  I'm putting
> > documentation into the Makefile, and more.  Once I get this fixed up,
> > I'll start cleaning the CDROM out, throwing out precompiled source in
> > favor of the source files and a LRP diff.
> 
> Would you mind sharing before you go into production?

Of course.  I've now compiled one for SING-1.1, and it seems to be
quite complete - whether it is robust or not I'll leave to you :-)

To make this work, either create a directory (just to see it) or
download SING-current.tar.gz (and unpack it) - then change to the
appropriate directory and do:

patch -p1 < ../SING-1.1-lrp.diff

Then, to compile SING, (assuming an appropriate environment... but the
compilation doesn't depend on glibc 2.0.7, just everyone else's LRP
:-) try this:

cd SING-1.1
./configure --prefix=/
make
# here is the LRP part
cd lrp
make

This should create sing.lrp in the lrp/ directory.  Documentation is
in the Makefile mostly.
diff -uNr SING-1.1/lrp/Makefile SING-1.1-lrp/lrp/Makefile
--- SING-1.1/lrp/Makefile       Wed Dec 31 18:00:00 1969
+++ SING-1.1-lrp/lrp/Makefile   Tue May  8 12:16:22 2001
@@ -0,0 +1,115 @@
+#----------------------------------------
+#  PACKAGE SPECIFICS
+#----------------------------------------
+# Modify the following for the package being created.
+
+# Package name
+PKG = sing
+
+# Source filename and destination directory pairs
+PAIRS = ../sing usr/bin
+
+# Version numbers of this binary and package
+VERSION = 1.1
+RELEASE = 3
+
+# Man page source
+MANPAGE = ../sing.8
+
+# Source tar file dependencies
+# ...these are *NOT* resolved, but must be redone
+# one level up
+DEPS = ../sing.8 ../sing
+
+# Binaries to strip
+STRIP = usr/bin/sing
+
+# Source help file name (overrides man page)
+# ...create in this directory if desired
+# HELPFILE = $(PKG).help
+
+# Source configuration file name
+# ...create in this directory if desired
+# CONFFILE = $(PKG).conf
+
+# These are the destination help and conf files;
+# if these files will not exist comment the line out
+HELPF = $(BASE)/$(LRPKG)/$(PKG).help
+# CONFF = $(BASE)/$(LRPKG)/$(PKG).conf
+
+#----------------------------------------
+#  GENERAL
+#----------------------------------------
+
+BASE = pkg
+DIRS = bin sbin usr etc lib
+LRPKG = var/lib/lrpkg
+DOCS = usr/share/doc
+PKGDOCS = $(BASE)/$(DOCS)/$(PKG)-$(VERSION)
+LISTF = $(BASE)/$(LRPKG)/$(PKG).list
+VRSNF = $(BASE)/$(LRPKG)/$(PKG).version
+PKGFILES = $(LISTF) $(HELPF) $(CONFF) $(VRSNF)
+
+all: $(PKG).lrp
+
+# pkg.conf: contains a list of configuration files with
+#           optional description (separated by tab)
+
+$(CONFF):
+       [ -d $(BASE)/$(LRPKG) ] || mkdir -p $(BASE)/$(LRPKG)
+       if [ -n "$(CONFFILE)" -a -f "$(CONFFILE)" ] ; then \
+               cp -a $(CONFFILE) $(CONFF) ; \
+       fi
+
+# pkg.list: contains a list of ambiguous filenames and
+#           paths - files to be included in the package
+
+$(LISTF):
+       chmod 755 ./list2
+       [ -d $(BASE)/$(LRPKG) ] || mkdir -p $(BASE)/$(LRPKG)
+       ./list2 $(PKG) $(PAIRS)
+
+# pkg.version: contains the version of this package
+
+$(VRSNF):
+       [ -d $(BASE)/$(LRPKG) ] || mkdir -p $(BASE)/$(LRPKG)
+       echo $(VERSION)-$(RELEASE) > $(VRSNF)
+
+#              mkdir -p $(PKGDOCS) ; \
+#              echo "$(DOCS)/$(PKG)-*" >> $(LRPKG)/$(PKG).list ; \
+#              nroff -man $(MANPAGE) > $(DOCS)/`basename $(MANPAGE)` ; \
+
+# pkg.help: a help file for the package
+
+$(HELPF):
+       [ -d $(BASE)/$(LRPKG) ] || mkdir -p $(BASE)/$(LRPKG)
+       if [ -n "$(HELPFILE)" -a -f "$(HELPFILE)" ] ; then \
+               cp -a $(HELPFILE) $(HELPF) ; \
+       else \
+               if [ -n "$(MANPAGE)" ] ; then \
+                       nroff -man $(MANPAGE) > $(HELPF) ; \
+               fi ; \
+       fi
+
+# create the actual package here
+
+$(PKG).lrp: $(PKGFILES) $(DEPS)
+       chmod 755 ./cp2 ./mklrp
+       env BASE=$(BASE) ./cp2 $(PAIRS)
+       cd $(BASE) ; strip $(STRIP)
+       env BASE=$(BASE) ./mklrp $(PKG)
+       echo ; tar tzvf $@
+
+# cleanup:
+#
+#     clean - general cleanup
+#  spotless - clean out ALL nondistributed stuff
+# distclean - another (more common) name for spotless
+
+clean: distclean
+
+spotless: distclean
+
+distclean:
+       rm -rf *.lrp $(BASE)
+
diff -uNr SING-1.1/lrp/cp2 SING-1.1-lrp/lrp/cp2
--- SING-1.1/lrp/cp2    Wed Dec 31 18:00:00 1969
+++ SING-1.1-lrp/lrp/cp2        Tue May  8 12:07:22 2001
@@ -0,0 +1,13 @@
+#!/bin/ksh
+
+BASE=${BASE:-pkg}
+
+while [ $# -gt 0 ]; do
+    DESTDIR=$BASE/$2
+    SRCFILE=$1
+
+    [ ! -d $DESTDIR ] && mkdir -p $DESTDIR
+    cp -a $SRCFILE $DESTDIR
+    shift 2
+done
+
diff -uNr SING-1.1/lrp/list2 SING-1.1-lrp/lrp/list2
--- SING-1.1/lrp/list2  Wed Dec 31 18:00:00 1969
+++ SING-1.1-lrp/lrp/list2      Tue May  8 12:07:22 2001
@@ -0,0 +1,20 @@
+#!/bin/ksh
+
+PKG=$1 ; shift
+BASE=${BASE:-pkg}
+LRPKG=var/lib/lrpkg
+LIST=$BASE/$LRPKG/$PKG.list
+
+mkdir -p $BASE/$LRPKG
+echo > $LIST
+
+while [ $# -gt 0 ]; do
+    DIR=$2
+    FILE=$(basename $1)
+
+    echo $DIR/$FILE >> $LIST
+    shift 2
+done
+
+echo "var/lib/lrpkg/${PKG}.*" >> $LIST
+
diff -uNr SING-1.1/lrp/mklrp SING-1.1-lrp/lrp/mklrp
--- SING-1.1/lrp/mklrp  Wed Dec 31 18:00:00 1969
+++ SING-1.1-lrp/lrp/mklrp      Tue May  8 12:07:22 2001
@@ -0,0 +1,10 @@
+#!/bin/ksh
+
+PKG=$1
+BASE=${BASE:-pkg}
+HOME=$(pwd)
+PKGLIST=var/lib/lrpkg/$PKG.list
+
+cd $BASE
+tar cvf - $(cat $PKGLIST) | gzip -9 -c - > $HOME/$PKG.lrp
+

Reply via email to