Skip to Content.
Sympa Menu

sm-discuss - Re: [SM-Discuss] Sorcery improvement

sm-discuss AT lists.ibiblio.org

Subject: Public SourceMage Discussion List

List archive

Chronological Thread  
  • From: Geoffrey Derber <Geoffrey.Derber AT Trinity.edu>
  • To: shivaken <shivaken AT jcom.home.ne.jp>
  • Cc: sm-discuss AT lists.ibiblio.org
  • Subject: Re: [SM-Discuss] Sorcery improvement
  • Date: Fri, 27 Jun 2003 23:09:28 -0500

shivaken wrote:
Hi all,

I want to propose to a sorcery improvement.

Now almost spell uses "prepare_install" to clean up obsoleted files.
like..
------------
make
prepare_install
make install
-------------
Because of this, at casting glibc, /etc/ld.so.cashe can be removed.
Then that will cause error.

To avoid this, you have to install newer files first, then remove just only old files. We can find old files with comparing old install log
(/var/log/sorcery/install/$SPELL) with new install log

At that time we have to take care about config files and user data.
For example, mysql spell installs mysql database files. We should not delete them. So sorcery must know unremoval files and directory to clean up safely.
Fortunately, Spell Writer can recognize those unremoval files.

I want sorcery to be implemented that "install 1st, then clean up".

How do you feel?

--- shivaken

I still think the best solution for glibc would be to do what has been suggested long ago, (And I'm sure lunar does it this way, but we never did), which is to copy the files to a temporary directory, prior to removal, then update.

There BUILD file actually contains the following that between their make and make install

================================================================
make &&

# Preserve the old glibc temporarily
case "`arch`" in
"alpha")
LD=/lib/ld-linux.so.2
GLIBC=/lib/libc.so.6.1
DL=/lib/libdl.so.2.1
M=/lib/libm.so.6.1
RT=/lib/librt.so.1
PTHREAD=/lib/libpthread.so.0
NSS=/lib/libnss_files.so.2
UTIL=/lib/libutil.so.1.1
NSL=/lib/libnsl.so.1.1
CRYPT=/lib/libcrypt.so.1.1
;;
ppc)
LD=/lib/ld.so.1
GLIBC=/lib/libc.so.6
DL=/lib/libdl.so.2
M=/lib/libm.so.6
RT=/lib/librt.so.1
PTHREAD=/lib/libpthread.so.0
NSS=/lib/libnss_files.so.2
UTIL=/lib/libutil.so.1
NSL=/lib/libnsl.so.1
CRYPT=/lib/libcrypt.so.1
;;
*)
LD=/lib/ld-linux.so.2
GLIBC=/lib/libc.so.6
DL=/lib/libdl.so.2
M=/lib/libm.so.6
RT=/lib/librt.so.1
PTHREAD=/lib/libpthread.so.0
NSS=/lib/libnss_files.so.2
UTIL=/lib/libutil.so.1
NSL=/lib/libnsl.so.1
CRYPT=/lib/libcrypt.so.1
;;
esac

cp $LD /lib/ld-lunar.so &&
cp $GLIBC /lib/libc-lunar.so &&
cp $DL /lib/libdl-lunar.so &&
cp $M /lib/libm-lunar.so &&
cp $RT /lib/librt-lunar.so &&
cp $PTHREAD /lib/libpthread-lunar.so &&
cp $NSS /lib/libnss_files-lunar.so &&
cp $UTIL /lib/libutil-lunar.so &&
cp $NSL /lib/libnsl-lunar.so &&
cp $CRYPT /lib/libcrypt-lunar.so &&

# Setup links for libraries
sln /lib/ld-lunar.so $LD &&
sln /lib/libc-lunar.so $GLIBC &&
sln /lib/libdl-lunar.so $DL &&
sln /lib/libm-lunar.so $M &&
sln /lib/librt-lunar.so $RT &&
sln /lib/libpthread-lunar.so $PTHREAD &&
sln /lib/libnss_files-lunar.so $NSS &&
sln /lib/libutil-lunar.so $UTIL &&
sln /lib/libnsl-lunar.so $NSL &&
sln /lib/libcrypt-lunar.so $CRYPT &&

# This removes the old glibc
prepare_install &&

# And now we install the new
make install &&






Archive powered by MHonArc 2.6.24.

Top of Page