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

AJ Lewis lewis at sistina.com
Mon Jun 18 14:55:33 UTC 2001


On Sun, Jun 17, 2001 at 03:38:58PM +0200, Gergely Tamas wrote:
> First of all, thanks for the ${DESTDIR} definition.

No problem, I'm still trying to decide if we should move ${DESTDIR} into the  
individual 'install' targets or not...   

> 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''.

Hmm...I think it should be the other way around.  We've hacked up the         
install targets so that the default ${sbindir} and ${libdir} are /sbin and    
/lib respectively.  Therefore, we should define a variable called             
${staticlibdir} and have it equal to ${prefix}/lib by default perhaps?        
It makes sense to put liblvm.a into /usr/lib to me; it just the way we're     
doing it that I'm questioning.  I'd like to prevent installation problems     
because the user didn't type 'make -e sharedlibdir=/lib install', which is    
what would happen if we made the default libdir point to /usr/lib.   

Just FYI, the entire build system is going to get an overhaul after the 1.0   
release, so I will definitely be making sure these detail are kept in mind    
for that.

> 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)
> 

> #!/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;


-- 
AJ Lewis
Sistina Software Inc.                  Voice:  612-638-0500
1313 5th St SE, Suite 111              Fax:    612-638-0500
Minneapolis, MN 55414                  E-Mail: lewis at sistina.com
http://www.sistina.com

Current GPG fingerprint = 3B5F 6011 5216 76A5 2F6B  52A0 941E 1261 0029 2648
Get my key at: http://www.sistina.com/~lewis/gpgkey
 (Unfortunately, the PKS-type keyservers do not work with multiple sub-keys)

-----Begin Obligatory Humorous Quote----------------------------------------
Programming graphics in X is like finding sqrt(pi) using Roman numerals.
-----End Obligatory Humorous Quote------------------------------------------
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 232 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/linux-lvm/attachments/20010618/8f05fa3a/attachment.sig>


More information about the linux-lvm mailing list