[linux-lvm] another nice feature for packagers ...

Gergely Tamas dice at mfa.kfki.hu
Sun Jun 17 13:38:58 UTC 2001


Hi!

First of all, thanks for the ${DESTDIR} definition.

Another nice feature for packagers would be to split the installation of
liblvm.a and liblvm.so parts.

This would be good because liblvm.a's destination should be e.g. /usr/lib
and liblvm.so's destination should be /lib (because of lvm utils).

So I thought about the introduction of a new variable in make.tmpl.in (I
called it ``sharedlibdir''). Its default value is equal to ``libdir''.

So if somebody installs the package with ``make install'' or ``make -e
DESTDIR=... install'' the installation procedure will be the same as the
current. But if the installer (script) defines a sharedlibdir value other
than the default ``make -e sharedlibdir=... DESTDIR=... install'' the
installation of the shared libraries will go into that directory.

Note, that sharedlibdir needs to be specified with the DESTDIR value e.g.
``make -e sharedlibdir=$DESTDIR/$CPID/lib DESTDIR=$DESTDIR/$CPID install''

If you like this feature please include ...

Thanks,
Gergely

ps: I also attached my compile/package script; maybe somebody is
    interested in it...

diff -ur LVM-orig/make.tmpl.in LVM/make.tmpl.in
--- LVM-orig/make.tmpl.in	Fri Jun 15 16:16:02 2001
+++ LVM/make.tmpl.in	Sun Jun 17 12:45:36 2001
@@ -37,6 +37,7 @@
 exec_prefix = @exec_prefix@
 bindir = ${DESTDIR}/@bindir@
 libdir = ${DESTDIR}/@libdir@
+sharedlibdir = ${libdir}
 sbindir = ${DESTDIR}/@sbindir@
 infodir = ${DESTDIR}/@infodir@
 mandir = ${DESTDIR}/@mandir@
diff -ur LVM-orig/tools/lib/Makefile.in LVM/tools/lib/Makefile.in
--- LVM-orig/tools/lib/Makefile.in	Tue Apr 24 16:29:21 2001
+++ LVM/tools/lib/Makefile.in	Sun Jun 17 12:48:41 2001
@@ -44,18 +44,24 @@
 	@echo ""

 install_this:
-	@echo "*** Installing $(ARCHIVE) and $(SO) in ${prefix}/lib ***"
-	@rm -f ${libdir}/${SO} ${libdir}/${SOV} ${libdir}/${SOM} ${libdir}/$(ARCHIVE);
+	@echo "*** Installing $(ARCHIVE) in ${libdir} ***"
+	@rm -f ${libdir}/$(ARCHIVE);
 	@INSTALL@ -d ${libdir}
-	@INSTALL@ -o ${OWNER} -g ${GROUP} $(ARCHIVE) $(SOV) ${libdir}
+	@INSTALL@ -o ${OWNER} -g ${GROUP} $(ARCHIVE) ${libdir}
 	chmod 444 ${libdir}/$(ARCHIVE)
-	chmod 555 ${libdir}/$(SOV)
-	ln -s $(SOV) ${libdir}/${SO}
-	ln -s $(SOV) ${libdir}/${SOM}
+	@echo "*** Installing $(SO) in ${sharedlibdir} ***"
+	@rm -f ${sharedlibdir}/${SO} ${sharedlibdir}/${SOV} ${sharedlibdir}/${SOM};
+	@INSTALL@ -d ${sharedlibdir}
+	@INSTALL@ -o ${OWNER} -g ${GROUP} $(SOV) ${sharedlibdir}
+	chmod 555 ${sharedlibdir}/$(SOV)
+	ln -s $(SOV) ${sharedlibdir}/${SO}
+	ln -s $(SOV) ${sharedlibdir}/${SOM}

 remove_this:
-	@echo "*** Removing $(ARCHIVE) and $(SO) in ${prefix}/lib ***"
-	@rm -f ${libdir}/${SO} ${libdir}/${SOV} ${libdir}/${SOM} ${libdir}/$(ARCHIVE);
+	@echo "*** Removing $(ARCHIVE) in ${libdir} ***"
+	@rm -f ${libdir}/$(ARCHIVE);
+	@echo "*** Removing $(SO) in ${sharedlibdir} ***"
+	@rm -f ${libdir}/${SO} ${libdir}/${SOV} ${libdir}/${SOM};

 $(ALL_SOURCES):	liblvm.h $(OTHER_DEP)

-------------- next part --------------
#!/bin/sh

# == generated by mkskel 0.0.2r19, (c) 2001 by DiCE/PsychoMix ==

DIRNAME="LVM";
PREFIX="/usr";
DESTDIR="/tmp/pkg";
BINTST="tools/vgchange";

AUTORUN=false;

error () { echo $1; exit 1; }

if [ ! -d $DIRNAME ];
then
  gzip -dc lvm-20010616.tar.gz | tar xvf -;
  $AUTORUN || exit;
fi

cd $DIRNAME;

if [ -f ../lvm-20010616.patch.bz2 ] && [ ! -f ../lvm-20010616.patched ];
then
  bzip2 -dc  ../lvm-20010616.patch.bz2 | patch -p1;
  touch ../lvm-20010616.patched;
  $AUTORUN || exit;
fi

if [ ! -f config.cache ] && [ -x ./configure ];
then
  touch config.cache;
  ./configure --prefix=$PREFIX \
              --sbindir=/sbin \
	      --libdir=$PREFIX/lib \
	      --includedir=$PREFIX/include \
	      --mandir=$PREFIX/man \
	      --infodir=$PREFIX/info
  $AUTORUN || exit;
fi

if [ ! -x $BINTST ];
then
  make;
  $AUTORUN || exit;
fi

if [ -f ../$0.temp ];
then
  CPID=`cat ../$0.temp`;
  [ ! -d $DESTDIR/$CPID ] && error "$DESTDIR/$CPID not found.";
else
  CPID=$$;
  if [ ! -d $DESTDIR/$CPID ];
  then
    mkdir -p $DESTDIR/$CPID;
    echo "$CPID" > ../$0.temp
    make -e sharedlibdir=$DESTDIR/$CPID/lib \
            DESTDIR=$DESTDIR/$CPID install 2>&1 | tee ../lvm-20010616.install_log;
    CPWD=`pwd`;
    cd $DESTDIR/$CPID;
    for i in `find . -type f | grep "/man/" | grep -v ".gz" | grep -v ".bz2"`;
    do
      MNAME=`basename $i`;
      echo "$MNAME -> $MNAME.gz";
      gzip $i;
    done
    cd $CPWD;
    $AUTORUN || exit;
  fi
fi

cd ..;

if  [ -d $DESTDIR/$CPID ];
then
  CPWD=`pwd`;
  cd $DESTDIR/$CPID;
  makepkg $CPWD/lvm-20010616.tgz;
  cd ..;
  rm -Rf $CPID;
  cd $CPWD;
fi

rm -f $0.temp lvm-20010616.patched;


More information about the linux-lvm mailing list