|
|
|
@ -39,7 +39,7 @@
|
|
|
|
|
|
|
|
|
|
# the package version and release |
|
|
|
|
%define V_openpkg 0.9 |
|
|
|
|
%define R_openpkg 33 |
|
|
|
|
%define R_openpkg 34 |
|
|
|
|
|
|
|
|
|
# the used software versions |
|
|
|
|
%define V_rpm 4.0.2 |
|
|
|
@ -746,9 +746,6 @@ Provides: OpenPKG
|
|
|
|
|
(whoami) 2>/dev/null ||\ |
|
|
|
|
(who am i | cut "-d " -f1) 2>/dev/null ||\ |
|
|
|
|
echo $LOGNAME` |
|
|
|
|
if [ ".$thisuser" = ".root" ]; then |
|
|
|
|
exit 0 |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
# determine runtime details (for both inside and outside RPM!!) |
|
|
|
|
user="$fsusr"; [ ".$fsusr" = . ] && fsusr="%{l_fsusr}" |
|
|
|
@ -765,247 +762,266 @@ Provides: OpenPKG
|
|
|
|
|
# create the hierarchy user/group |
|
|
|
|
exists=`(cat /etc/passwd; ypcat passwd) 2>/dev/null | grep "^$user:"` |
|
|
|
|
if [ ".$exists" = . ]; then |
|
|
|
|
|
|
|
|
|
# seek for a reasonably uid/gid pair |
|
|
|
|
ugid=1000 |
|
|
|
|
ok=0 |
|
|
|
|
while [ ".$ok" = .0 ]; do |
|
|
|
|
u_exists=`(cat /etc/passwd; ypcat passwd) 2>/dev/null | grep "^[^:]*:[^:]*:$ugid:"` |
|
|
|
|
g_exists=`(cat /etc/group; ypcat group) 2>/dev/null | grep "^[^:]*:[^:]*:$ugid:"` |
|
|
|
|
if [ ".$u_exists" = . -a ".$g_exists" = . ]; then |
|
|
|
|
ok=1 |
|
|
|
|
break |
|
|
|
|
fi |
|
|
|
|
ugid=`expr $ugid + 1` |
|
|
|
|
done |
|
|
|
|
if [ ".$thisuser" != ".root" ]; then |
|
|
|
|
echo "openpkg:WARNING: skipping creation of dedicated OpenPKG user/group $ugid" 1>&2 |
|
|
|
|
echo "openpkg:WARNING: (would require root-priviledges)" 1>&2 |
|
|
|
|
else |
|
|
|
|
# seek for a reasonably uid/gid pair |
|
|
|
|
ugid=1000 |
|
|
|
|
ok=0 |
|
|
|
|
while [ ".$ok" = .0 ]; do |
|
|
|
|
u_exists=`(cat /etc/passwd; ypcat passwd) 2>/dev/null | grep "^[^:]*:[^:]*:$ugid:"` |
|
|
|
|
g_exists=`(cat /etc/group; ypcat group) 2>/dev/null | grep "^[^:]*:[^:]*:$ugid:"` |
|
|
|
|
if [ ".$u_exists" = . -a ".$g_exists" = . ]; then |
|
|
|
|
ok=1 |
|
|
|
|
break |
|
|
|
|
fi |
|
|
|
|
ugid=`expr $ugid + 1` |
|
|
|
|
done |
|
|
|
|
|
|
|
|
|
# add entry to passwd database |
|
|
|
|
shell="${prefix}/lib/rpm/bash" |
|
|
|
|
realname="${prefix} OpenPKG" |
|
|
|
|
case "$plid" in |
|
|
|
|
FreeBSD/* | NetBSD/* ) |
|
|
|
|
file=/etc/master.passwd |
|
|
|
|
entry="${user}:*:${ugid}:${ugid}::0:0:${realname}:${prefix}:${shell}" |
|
|
|
|
update="(PATH=\$PATH:/usr/sbin; pwd_mkdb -p /etc/master.passwd)" |
|
|
|
|
;; |
|
|
|
|
Linux/* ) |
|
|
|
|
file=/etc/passwd |
|
|
|
|
entry="${user}:*:${ugid}:${ugid}:${realname}:${prefix}:${shell}" |
|
|
|
|
update="(PATH=\$PATH:/usr/sbin; pwconv)" |
|
|
|
|
;; |
|
|
|
|
SunOS/5.* ) |
|
|
|
|
file=/etc/passwd |
|
|
|
|
entry="${user}:*:${ugid}:${ugid}:${realname}:${prefix}:${shell}" |
|
|
|
|
update="(PATH=\$PATH:/usr/sbin; pwconv)" |
|
|
|
|
;; |
|
|
|
|
OSF1/V5.* ) |
|
|
|
|
file=/etc/passwd |
|
|
|
|
entry="${user}:*:${ugid}:${ugid}:${realname}:${prefix}:${shell}" |
|
|
|
|
update="(PATH=\$PATH:/usr/sbin; mkpasswd /etc/passwd)" |
|
|
|
|
;; |
|
|
|
|
esac |
|
|
|
|
cp $file $file.old |
|
|
|
|
(grep -v '^+:' $file.old; echo $entry; grep '^+:' $file.old) >$file |
|
|
|
|
rm -f $file.old >/dev/null 2>&1 |
|
|
|
|
eval $update |
|
|
|
|
|
|
|
|
|
# add entry to group database |
|
|
|
|
file=/etc/group |
|
|
|
|
entry="${user}:*:${ugid}:${user}" |
|
|
|
|
cp $file $file.old |
|
|
|
|
(grep -v '^+:' $file.old; echo $entry; grep '^+:' $file.old) >$file |
|
|
|
|
rm -f $file.old >/dev/null 2>&1 |
|
|
|
|
# add entry to passwd database |
|
|
|
|
shell="${prefix}/lib/rpm/bash" |
|
|
|
|
realname="${prefix} OpenPKG" |
|
|
|
|
case "$plid" in |
|
|
|
|
FreeBSD/* | NetBSD/* ) |
|
|
|
|
file=/etc/master.passwd |
|
|
|
|
entry="${user}:*:${ugid}:${ugid}::0:0:${realname}:${prefix}:${shell}" |
|
|
|
|
update="(PATH=\$PATH:/usr/sbin; pwd_mkdb -p /etc/master.passwd)" |
|
|
|
|
;; |
|
|
|
|
Linux/* ) |
|
|
|
|
file=/etc/passwd |
|
|
|
|
entry="${user}:*:${ugid}:${ugid}:${realname}:${prefix}:${shell}" |
|
|
|
|
update="(PATH=\$PATH:/usr/sbin; pwconv)" |
|
|
|
|
;; |
|
|
|
|
SunOS/5.* ) |
|
|
|
|
file=/etc/passwd |
|
|
|
|
entry="${user}:*:${ugid}:${ugid}:${realname}:${prefix}:${shell}" |
|
|
|
|
update="(PATH=\$PATH:/usr/sbin; pwconv)" |
|
|
|
|
;; |
|
|
|
|
OSF1/V5.* ) |
|
|
|
|
file=/etc/passwd |
|
|
|
|
entry="${user}:*:${ugid}:${ugid}:${realname}:${prefix}:${shell}" |
|
|
|
|
update="(PATH=\$PATH:/usr/sbin; mkpasswd /etc/passwd)" |
|
|
|
|
;; |
|
|
|
|
esac |
|
|
|
|
cp $file $file.old |
|
|
|
|
(grep -v '^+:' $file.old; echo $entry; grep '^+:' $file.old) >$file |
|
|
|
|
rm -f $file.old >/dev/null 2>&1 |
|
|
|
|
eval $update |
|
|
|
|
|
|
|
|
|
# add entry to group database |
|
|
|
|
file=/etc/group |
|
|
|
|
entry="${user}:*:${ugid}:${user}" |
|
|
|
|
cp $file $file.old |
|
|
|
|
(grep -v '^+:' $file.old; echo $entry; grep '^+:' $file.old) >$file |
|
|
|
|
rm -f $file.old >/dev/null 2>&1 |
|
|
|
|
fi |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
# add entry to /etc/shells |
|
|
|
|
shell="${prefix}/lib/rpm/bash" |
|
|
|
|
exists=`cat /etc/shells 2>/dev/null | grep "^$shell"` |
|
|
|
|
if [ ".$exists" = . ]; then |
|
|
|
|
echo "${shell}" >>/etc/shells |
|
|
|
|
if [ ".$thisuser" != ".root" ]; then |
|
|
|
|
echo "openpkg:WARNING: skipping addition of $shell to /etc/shells" 1>&2 |
|
|
|
|
echo "openpkg:WARNING: (would require root-priviledges)" 1>&2 |
|
|
|
|
else |
|
|
|
|
echo "${shell}" >>/etc/shells |
|
|
|
|
fi |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
# create the startup/shutdown transfer script |
|
|
|
|
case "$plid" in |
|
|
|
|
FreeBSD/* ) |
|
|
|
|
if [ ! -f /etc/rc.d/${name}.sh ]; then |
|
|
|
|
# make sure /etc/rc.d exists |
|
|
|
|
if [ ! -d /etc/rc.d ]; then |
|
|
|
|
mkdir /etc/rc.d |
|
|
|
|
fi |
|
|
|
|
# make sure /etc/rc.d is activated |
|
|
|
|
( . /etc/defaults/rc.conf |
|
|
|
|
. /etc/rc.conf |
|
|
|
|
found=0 |
|
|
|
|
for p in ${local_startup-x}; do |
|
|
|
|
if [ ".$p" = "./etc/rc.d" ]; then |
|
|
|
|
found=1 |
|
|
|
|
break |
|
|
|
|
if [ ".$thisuser" != ".root" ]; then |
|
|
|
|
echo "openpkg:WARNING: skipping creation of system run-command hooks" 1>&2 |
|
|
|
|
echo "openpkg:WARNING: (would require root-priviledges)" 1>&2 |
|
|
|
|
else |
|
|
|
|
case "$plid" in |
|
|
|
|
FreeBSD/* ) |
|
|
|
|
if [ ! -f /etc/rc.d/${name}.sh ]; then |
|
|
|
|
# make sure /etc/rc.d exists |
|
|
|
|
if [ ! -d /etc/rc.d ]; then |
|
|
|
|
mkdir /etc/rc.d |
|
|
|
|
fi |
|
|
|
|
# make sure /etc/rc.d is activated |
|
|
|
|
( . /etc/defaults/rc.conf |
|
|
|
|
. /etc/rc.conf |
|
|
|
|
found=0 |
|
|
|
|
for p in ${local_startup-x}; do |
|
|
|
|
if [ ".$p" = "./etc/rc.d" ]; then |
|
|
|
|
found=1 |
|
|
|
|
break |
|
|
|
|
fi |
|
|
|
|
done |
|
|
|
|
if [ ".$found" = .0 ]; then |
|
|
|
|
cp -p /etc/rc.conf /etc/rc.conf.bak |
|
|
|
|
( |
|
|
|
|
grep -v local_startup /etc/rc.conf.bak |
|
|
|
|
echo "local_startup=\"/etc/rc.d $local_startup\"" |
|
|
|
|
) >/etc/rc.conf |
|
|
|
|
fi |
|
|
|
|
) |
|
|
|
|
# install transfer script |
|
|
|
|
rm -f /etc/rc.d/${name}.sh >/dev/null 2>&1 |
|
|
|
|
( echo "#!/bin/sh" |
|
|
|
|
echo "#" |
|
|
|
|
echo "# ${name}.sh -- startup/shutdown transfer script for ${prefix} OpenPKG hierarchy" |
|
|
|
|
echo "#" |
|
|
|
|
echo "[ ! -f ${prefix}/etc/rc ] && exit 0" |
|
|
|
|
echo "case \$1 in" |
|
|
|
|
echo " start ) exec ${prefix}/etc/rc all start ;;" |
|
|
|
|
echo " stop ) exec ${prefix}/etc/rc all stop ;;" |
|
|
|
|
echo "esac" |
|
|
|
|
) >/etc/rc.d/${name}.sh |
|
|
|
|
chmod 755 /etc/rc.d/${name}.sh |
|
|
|
|
fi |
|
|
|
|
;; |
|
|
|
|
NetBSD/* ) |
|
|
|
|
if [ ! -f /etc/rc.d/${name} ]; then |
|
|
|
|
( echo "#!/bin/sh" |
|
|
|
|
echo "#" |
|
|
|
|
echo "# ${name} -- startup/shutdown transfer script for ${prefix} OpenPKG hierarchy" |
|
|
|
|
echo "#" |
|
|
|
|
echo "# PROVIDE: ${name}" |
|
|
|
|
echo "# REQUIRE: DAEMON LOGIN NETWORK SERVERS" |
|
|
|
|
echo "#" |
|
|
|
|
echo "" |
|
|
|
|
echo "[ ! -f ${prefix}/etc/rc ] && exit 0" |
|
|
|
|
echo "case \$1 in" |
|
|
|
|
echo " start ) exec ${prefix}/etc/rc all start ;;" |
|
|
|
|
echo " stop ) exec ${prefix}/etc/rc all stop ;;" |
|
|
|
|
echo " restart ) exec ${prefix}/etc/rc all stop start ;;" |
|
|
|
|
echo " status ) ;;" |
|
|
|
|
echo "esac" |
|
|
|
|
) >/etc/rc.d/${name} |
|
|
|
|
chmod 755 /etc/rc.d/${name} |
|
|
|
|
fi |
|
|
|
|
;; |
|
|
|
|
Linux/* ) |
|
|
|
|
# sroot: script root directory |
|
|
|
|
# lroot: link root directory |
|
|
|
|
if [ -f /etc/debian_version ]; then |
|
|
|
|
sroot=/etc/init.d |
|
|
|
|
lroot=/etc/rc%d.d |
|
|
|
|
elif [ -f /etc/SuSE-release ]; then |
|
|
|
|
sroot=/sbin/init.d |
|
|
|
|
lroot=/sbin/init.d/rc%d.d |
|
|
|
|
elif [ -f /etc/redhat-release ]; then |
|
|
|
|
sroot=/etc/rc.d/init.d |
|
|
|
|
lroot=/etc/rc.d/rc%d.d |
|
|
|
|
fi |
|
|
|
|
if [ ! -f $sroot/${name} ]; then |
|
|
|
|
# install transfer script |
|
|
|
|
( echo "#!/bin/sh" |
|
|
|
|
echo "#" |
|
|
|
|
echo "# ${name} -- startup/shutdown transfer script for ${prefix} OpenPKG hierarchy" |
|
|
|
|
echo "#" |
|
|
|
|
echo "[ ! -f ${prefix}/etc/rc ] && exit 0" |
|
|
|
|
echo "case \$1 in" |
|
|
|
|
echo " start ) exec ${prefix}/etc/rc all start ;;" |
|
|
|
|
echo " stop ) exec ${prefix}/etc/rc all stop ;;" |
|
|
|
|
echo "esac" |
|
|
|
|
) >$sroot/${name} |
|
|
|
|
chmod 755 $sroot/${name} |
|
|
|
|
# create corresponding symbolic links |
|
|
|
|
for i in 2 3 4 5; do |
|
|
|
|
ln -s $sroot/${name} `echo $lroot | sed -e "s;%d;$i;"`/S99${name} |
|
|
|
|
done |
|
|
|
|
if [ ".$found" = .0 ]; then |
|
|
|
|
cp -p /etc/rc.conf /etc/rc.conf.bak |
|
|
|
|
( |
|
|
|
|
grep -v local_startup /etc/rc.conf.bak |
|
|
|
|
echo "local_startup=\"/etc/rc.d $local_startup\"" |
|
|
|
|
) >/etc/rc.conf |
|
|
|
|
fi |
|
|
|
|
) |
|
|
|
|
# install transfer script |
|
|
|
|
rm -f /etc/rc.d/${name}.sh >/dev/null 2>&1 |
|
|
|
|
( echo "#!/bin/sh" |
|
|
|
|
echo "#" |
|
|
|
|
echo "# ${name}.sh -- startup/shutdown transfer script for ${prefix} OpenPKG hierarchy" |
|
|
|
|
echo "#" |
|
|
|
|
echo "[ ! -f ${prefix}/etc/rc ] && exit 0" |
|
|
|
|
echo "case \$1 in" |
|
|
|
|
echo " start ) exec ${prefix}/etc/rc all start ;;" |
|
|
|
|
echo " stop ) exec ${prefix}/etc/rc all stop ;;" |
|
|
|
|
echo "esac" |
|
|
|
|
) >/etc/rc.d/${name}.sh |
|
|
|
|
chmod 755 /etc/rc.d/${name}.sh |
|
|
|
|
fi |
|
|
|
|
;; |
|
|
|
|
NetBSD/* ) |
|
|
|
|
if [ ! -f /etc/rc.d/${name} ]; then |
|
|
|
|
( echo "#!/bin/sh" |
|
|
|
|
echo "#" |
|
|
|
|
echo "# ${name} -- startup/shutdown transfer script for ${prefix} OpenPKG hierarchy" |
|
|
|
|
echo "#" |
|
|
|
|
echo "# PROVIDE: ${name}" |
|
|
|
|
echo "# REQUIRE: DAEMON LOGIN NETWORK SERVERS" |
|
|
|
|
echo "#" |
|
|
|
|
echo "" |
|
|
|
|
echo "[ ! -f ${prefix}/etc/rc ] && exit 0" |
|
|
|
|
echo "case \$1 in" |
|
|
|
|
echo " start ) exec ${prefix}/etc/rc all start ;;" |
|
|
|
|
echo " stop ) exec ${prefix}/etc/rc all stop ;;" |
|
|
|
|
echo " restart ) exec ${prefix}/etc/rc all stop start ;;" |
|
|
|
|
echo " status ) ;;" |
|
|
|
|
echo "esac" |
|
|
|
|
) >/etc/rc.d/${name} |
|
|
|
|
chmod 755 /etc/rc.d/${name} |
|
|
|
|
fi |
|
|
|
|
;; |
|
|
|
|
Linux/* ) |
|
|
|
|
# sroot: script root directory |
|
|
|
|
# lroot: link root directory |
|
|
|
|
if [ -f /etc/debian_version ]; then |
|
|
|
|
sroot=/etc/init.d |
|
|
|
|
lroot=/etc/rc%d.d |
|
|
|
|
elif [ -f /etc/SuSE-release ]; then |
|
|
|
|
sroot=/sbin/init.d |
|
|
|
|
lroot=/sbin/init.d/rc%d.d |
|
|
|
|
elif [ -f /etc/redhat-release ]; then |
|
|
|
|
sroot=/etc/rc.d/init.d |
|
|
|
|
lroot=/etc/rc.d/rc%d.d |
|
|
|
|
fi |
|
|
|
|
if [ ! -f $sroot/${name} ]; then |
|
|
|
|
# install transfer script |
|
|
|
|
( echo "#!/bin/sh" |
|
|
|
|
echo "#" |
|
|
|
|
echo "# ${name} -- startup/shutdown transfer script for ${prefix} OpenPKG hierarchy" |
|
|
|
|
echo "#" |
|
|
|
|
echo "[ ! -f ${prefix}/etc/rc ] && exit 0" |
|
|
|
|
echo "case \$1 in" |
|
|
|
|
echo " start ) exec ${prefix}/etc/rc all start ;;" |
|
|
|
|
echo " stop ) exec ${prefix}/etc/rc all stop ;;" |
|
|
|
|
echo "esac" |
|
|
|
|
) >$sroot/${name} |
|
|
|
|
chmod 755 $sroot/${name} |
|
|
|
|
# create corresponding symbolic links |
|
|
|
|
for i in 2 3 4 5; do |
|
|
|
|
ln -s $sroot/${name} `echo $lroot | sed -e "s;%d;$i;"`/S99${name} |
|
|
|
|
done |
|
|
|
|
for i in 0 1 6; do |
|
|
|
|
ln -s $sroot/${name} `echo $lroot | sed -e "s;%d;$i;"`/K00${name} |
|
|
|
|
done |
|
|
|
|
fi |
|
|
|
|
;; |
|
|
|
|
SunOS/5.* ) |
|
|
|
|
if [ ! -f /etc/init.d/${name} ]; then |
|
|
|
|
# install transfer script |
|
|
|
|
( echo "#!/bin/sh" |
|
|
|
|
echo "#" |
|
|
|
|
echo "# ${name} -- startup/shutdown transfer script for ${prefix} OpenPKG hierarchy" |
|
|
|
|
echo "#" |
|
|
|
|
echo "[ ! -f ${prefix}/etc/rc ] && exit 0" |
|
|
|
|
echo "case \$1 in" |
|
|
|
|
echo " start ) exec ${prefix}/etc/rc all start ;;" |
|
|
|
|
echo " stop ) exec ${prefix}/etc/rc all stop ;;" |
|
|
|
|
echo "esac" |
|
|
|
|
) >/etc/init.d/${name} |
|
|
|
|
chmod 755 /etc/init.d/${name} |
|
|
|
|
# create corresponding symbolic links |
|
|
|
|
( cd /etc |
|
|
|
|
ln init.d/${name} rc3.d/S99${name} |
|
|
|
|
ln init.d/${name} rc0.d/K00${name} |
|
|
|
|
ln init.d/${name} rc1.d/K00${name} |
|
|
|
|
) |
|
|
|
|
fi |
|
|
|
|
;; |
|
|
|
|
OSF1/V5.* ) |
|
|
|
|
if [ ! -f /sbin/init.d/${name} ]; then |
|
|
|
|
# install transfer script |
|
|
|
|
( echo "#!/bin/sh" |
|
|
|
|
echo "#" |
|
|
|
|
echo "# ${name} -- startup/shutdown transfer script for ${prefix} OpenPKG hierarchy" |
|
|
|
|
echo "#" |
|
|
|
|
echo "[ ! -f ${prefix}/etc/rc ] && exit 0" |
|
|
|
|
echo "case \$1 in" |
|
|
|
|
echo " start ) exec ${prefix}/etc/rc all start ;;" |
|
|
|
|
echo " stop ) exec ${prefix}/etc/rc all stop ;;" |
|
|
|
|
echo "esac" |
|
|
|
|
) >/sbin/init.d/${name} |
|
|
|
|
chmod 755 /sbin/init.d/${name} |
|
|
|
|
# create corresponding symbolic links |
|
|
|
|
( cd /sbin |
|
|
|
|
ln -s ../init.d/${name} rc3.d/S99${name} |
|
|
|
|
ln -s ../init.d/${name} rc0.d/K00${name} |
|
|
|
|
) |
|
|
|
|
fi |
|
|
|
|
;; |
|
|
|
|
esac |
|
|
|
|
for i in 0 1 6; do |
|
|
|
|
ln -s $sroot/${name} `echo $lroot | sed -e "s;%d;$i;"`/K00${name} |
|
|
|
|
done |
|
|
|
|
fi |
|
|
|
|
;; |
|
|
|
|
SunOS/5.* ) |
|
|
|
|
if [ ! -f /etc/init.d/${name} ]; then |
|
|
|
|
# install transfer script |
|
|
|
|
( echo "#!/bin/sh" |
|
|
|
|
echo "#" |
|
|
|
|
echo "# ${name} -- startup/shutdown transfer script for ${prefix} OpenPKG hierarchy" |
|
|
|
|
echo "#" |
|
|
|
|
echo "[ ! -f ${prefix}/etc/rc ] && exit 0" |
|
|
|
|
echo "case \$1 in" |
|
|
|
|
echo " start ) exec ${prefix}/etc/rc all start ;;" |
|
|
|
|
echo " stop ) exec ${prefix}/etc/rc all stop ;;" |
|
|
|
|
echo "esac" |
|
|
|
|
) >/etc/init.d/${name} |
|
|
|
|
chmod 755 /etc/init.d/${name} |
|
|
|
|
# create corresponding symbolic links |
|
|
|
|
( cd /etc |
|
|
|
|
ln init.d/${name} rc3.d/S99${name} |
|
|
|
|
ln init.d/${name} rc0.d/K00${name} |
|
|
|
|
ln init.d/${name} rc1.d/K00${name} |
|
|
|
|
) |
|
|
|
|
fi |
|
|
|
|
;; |
|
|
|
|
OSF1/V5.* ) |
|
|
|
|
if [ ! -f /sbin/init.d/${name} ]; then |
|
|
|
|
# install transfer script |
|
|
|
|
( echo "#!/bin/sh" |
|
|
|
|
echo "#" |
|
|
|
|
echo "# ${name} -- startup/shutdown transfer script for ${prefix} OpenPKG hierarchy" |
|
|
|
|
echo "#" |
|
|
|
|
echo "[ ! -f ${prefix}/etc/rc ] && exit 0" |
|
|
|
|
echo "case \$1 in" |
|
|
|
|
echo " start ) exec ${prefix}/etc/rc all start ;;" |
|
|
|
|
echo " stop ) exec ${prefix}/etc/rc all stop ;;" |
|
|
|
|
echo "esac" |
|
|
|
|
) >/sbin/init.d/${name} |
|
|
|
|
chmod 755 /sbin/init.d/${name} |
|
|
|
|
# create corresponding symbolic links |
|
|
|
|
( cd /sbin |
|
|
|
|
ln -s ../init.d/${name} rc3.d/S99${name} |
|
|
|
|
ln -s ../init.d/${name} rc0.d/K00${name} |
|
|
|
|
) |
|
|
|
|
fi |
|
|
|
|
;; |
|
|
|
|
esac |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
# create the cron transfer entries |
|
|
|
|
case "$plid" in |
|
|
|
|
FreeBSD/* | Linux/* ) |
|
|
|
|
exists=`grep "$prefix/etc/rc" /etc/crontab` |
|
|
|
|
if [ ".$exists" = . ]; then |
|
|
|
|
( echo "# <OpenPKG prefix=$prefix pkg=openpkg>" |
|
|
|
|
echo "# chronological tasks of ${prefix} OpenPKG hierarchy" |
|
|
|
|
echo "0 0 1 * * root [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all monthly" |
|
|
|
|
echo "0 0 * * 0 root [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all weekly" |
|
|
|
|
echo "0 0 * * * root [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all daily" |
|
|
|
|
echo "0 * * * * root [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all hourly" |
|
|
|
|
echo "*/15 * * * * root [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all quarterly" |
|
|
|
|
echo "# </OpenPKG>" |
|
|
|
|
) >>/etc/crontab |
|
|
|
|
fi |
|
|
|
|
;; |
|
|
|
|
SunOS/5.* | OSF1/V5.* | NetBSD/* ) |
|
|
|
|
exists=`crontab -l | grep "$prefix/etc/rc"` |
|
|
|
|
if [ ".$exists" = . ]; then |
|
|
|
|
EDITOR=/tmp/vipw.$$ |
|
|
|
|
VISUAL="$EDITOR" |
|
|
|
|
export EDITOR |
|
|
|
|
export VISUAL |
|
|
|
|
( echo "#!/bin/sh" |
|
|
|
|
echo "( echo \"# <OpenPKG prefix=$prefix pkg=openpkg>\"" |
|
|
|
|
echo " echo \"# chronological tasks of ${prefix} OpenPKG hierarchy\"" |
|
|
|
|
echo " echo \"0 0 1 * * [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all monthly\"" |
|
|
|
|
echo " echo \"0 0 * * 0 [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all weekly\"" |
|
|
|
|
echo " echo \"0 0 * * * [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all daily\"" |
|
|
|
|
echo " echo \"0 * * * * [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all hourly\"" |
|
|
|
|
echo " echo \"0,15,30,45 * * * * [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all quarterly\"" |
|
|
|
|
echo " echo \"# </OpenPKG>\"" |
|
|
|
|
echo ") >>\$1" |
|
|
|
|
) >$EDITOR |
|
|
|
|
chmod a+x $EDITOR |
|
|
|
|
(PATH="$PATH:/usr/bin"; crontab -e) |
|
|
|
|
rm -f $EDITOR |
|
|
|
|
fi |
|
|
|
|
;; |
|
|
|
|
esac |
|
|
|
|
if [ ".$thisuser" != ".root" ]; then |
|
|
|
|
echo "openpkg:WARNING: skipping creation of system cron hooks" 1>&2 |
|
|
|
|
echo "openpkg:WARNING: (would require root-priviledges)" 1>&2 |
|
|
|
|
else |
|
|
|
|
case "$plid" in |
|
|
|
|
FreeBSD/* | Linux/* ) |
|
|
|
|
exists=`grep "$prefix/etc/rc" /etc/crontab` |
|
|
|
|
if [ ".$exists" = . ]; then |
|
|
|
|
( echo "# <OpenPKG prefix=$prefix pkg=openpkg>" |
|
|
|
|
echo "# chronological tasks of ${prefix} OpenPKG hierarchy" |
|
|
|
|
echo "0 0 1 * * root [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all monthly" |
|
|
|
|
echo "0 0 * * 0 root [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all weekly" |
|
|
|
|
echo "0 0 * * * root [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all daily" |
|
|
|
|
echo "0 * * * * root [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all hourly" |
|
|
|
|
echo "*/15 * * * * root [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all quarterly" |
|
|
|
|
echo "# </OpenPKG>" |
|
|
|
|
) >>/etc/crontab |
|
|
|
|
fi |
|
|
|
|
;; |
|
|
|
|
SunOS/5.* | OSF1/V5.* | NetBSD/* ) |
|
|
|
|
exists=`crontab -l | grep "$prefix/etc/rc"` |
|
|
|
|
if [ ".$exists" = . ]; then |
|
|
|
|
EDITOR=/tmp/vipw.$$ |
|
|
|
|
VISUAL="$EDITOR" |
|
|
|
|
export EDITOR |
|
|
|
|
export VISUAL |
|
|
|
|
( echo "#!/bin/sh" |
|
|
|
|
echo "( echo \"# <OpenPKG prefix=$prefix pkg=openpkg>\"" |
|
|
|
|
echo " echo \"# chronological tasks of ${prefix} OpenPKG hierarchy\"" |
|
|
|
|
echo " echo \"0 0 1 * * [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all monthly\"" |
|
|
|
|
echo " echo \"0 0 * * 0 [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all weekly\"" |
|
|
|
|
echo " echo \"0 0 * * * [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all daily\"" |
|
|
|
|
echo " echo \"0 * * * * [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all hourly\"" |
|
|
|
|
echo " echo \"0,15,30,45 * * * * [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all quarterly\"" |
|
|
|
|
echo " echo \"# </OpenPKG>\"" |
|
|
|
|
echo ") >>\$1" |
|
|
|
|
) >$EDITOR |
|
|
|
|
chmod a+x $EDITOR |
|
|
|
|
(PATH="$PATH:/usr/bin"; crontab -e) |
|
|
|
|
rm -f $EDITOR |
|
|
|
|
fi |
|
|
|
|
;; |
|
|
|
|
esac |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
%post |
|
|
|
|
# Finally, rebuild the RPM database with the newly installed RPM |
|
|
|
@ -1062,103 +1078,126 @@ Provides: OpenPKG
|
|
|
|
|
plid="${s}/${r}" |
|
|
|
|
|
|
|
|
|
# remove the hierarchy user/group |
|
|
|
|
case "$plid" in |
|
|
|
|
FreeBSD/* | NetBSD/* ) |
|
|
|
|
cp /etc/master.passwd /etc/master.passwd.bak |
|
|
|
|
grep -v "^${user}:" /etc/master.passwd.bak >/etc/master.passwd |
|
|
|
|
(PATH="$PATH:/usr/sbin"; pwd_mkdb -p /etc/master.passwd) |
|
|
|
|
;; |
|
|
|
|
Linux/* | SunOS/5.* ) |
|
|
|
|
cp /etc/passwd /etc/passwd.bak |
|
|
|
|
grep -v "^${user}:" /etc/passwd.bak >/etc/passwd |
|
|
|
|
(PATH="$PATH:/usr/sbin"; pwconv) |
|
|
|
|
;; |
|
|
|
|
OSF1/V5.* ) |
|
|
|
|
cp /etc/passwd /etc/passwd.bak |
|
|
|
|
grep -v "^${user}:" /etc/passwd.bak >/etc/passwd |
|
|
|
|
(PATH="$PATH:/usr/sbin"; mkpasswd /etc/passwd) |
|
|
|
|
;; |
|
|
|
|
esac |
|
|
|
|
cp /etc/group /etc/group.bak |
|
|
|
|
grep -v "^${user}:" /etc/group.bak >/etc/group |
|
|
|
|
exists=`(cat /etc/passwd; cat /etc/master.passwd; ypcat passwd) 2>/dev/null | grep "^$user:"` |
|
|
|
|
if [ ".$exists" != . ]; then |
|
|
|
|
if [ ".$thisuser" != ".root" ]; then |
|
|
|
|
echo "openpkg:WARNING: skipping deletion of dedicated OpenPKG user/group $ugid" 1>&2 |
|
|
|
|
echo "openpkg:WARNING: (would require root-priviledges)" 1>&2 |
|
|
|
|
else |
|
|
|
|
case "$plid" in |
|
|
|
|
FreeBSD/* | NetBSD/* ) |
|
|
|
|
cp /etc/master.passwd /etc/master.passwd.bak |
|
|
|
|
grep -v "^${user}:" /etc/master.passwd.bak >/etc/master.passwd |
|
|
|
|
(PATH="$PATH:/usr/sbin"; pwd_mkdb -p /etc/master.passwd) |
|
|
|
|
;; |
|
|
|
|
Linux/* | SunOS/5.* ) |
|
|
|
|
cp /etc/passwd /etc/passwd.bak |
|
|
|
|
grep -v "^${user}:" /etc/passwd.bak >/etc/passwd |
|
|
|
|
(PATH="$PATH:/usr/sbin"; pwconv) |
|
|
|
|
;; |
|
|
|
|
OSF1/V5.* ) |
|
|
|
|
cp /etc/passwd /etc/passwd.bak |
|
|
|
|
grep -v "^${user}:" /etc/passwd.bak >/etc/passwd |
|
|
|
|
(PATH="$PATH:/usr/sbin"; mkpasswd /etc/passwd) |
|
|
|
|
;; |
|
|
|
|
esac |
|
|
|
|
cp /etc/group /etc/group.bak |
|
|
|
|
grep -v "^${user}:" /etc/group.bak >/etc/group |
|
|
|
|
fi |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
# remove entry in /etc/shells |
|
|
|
|
shell="${prefix}/lib/rpm/bash" |
|
|
|
|
exists=`cat /etc/shells 2>/dev/null | grep "^$shell"` |
|
|
|
|
if [ ".$exists" = . ]; then |
|
|
|
|
cp /etc/shells /etc/shells.bak |
|
|
|
|
grep -v "^${shell}" /etc/shells.bak >/etc/shells |
|
|
|
|
if [ ".$exists" != . ]; then |
|
|
|
|
if [ ".$thisuser" != ".root" ]; then |
|
|
|
|
echo "openpkg:WARNING: skipping deletion of $shell from /etc/shells" 1>&2 |
|
|
|
|
echo "openpkg:WARNING: (would require root-priviledges)" 1>&2 |
|
|
|
|
else |
|
|
|
|
cp /etc/shells /etc/shells.bak |
|
|
|
|
grep -v "^${shell}" /etc/shells.bak >/etc/shells |
|
|
|
|
fi |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
# remove the startup/shutdown transfer ripts |
|
|
|
|
case "$plid" in |
|
|
|
|
FreeBSD/* ) |
|
|
|
|
rm -f /etc/rc.d/${name}.sh >/dev/null 2>&1 |
|
|
|
|
;; |
|
|
|
|
NetBSD/* ) |
|
|
|
|
rm -f /etc/rc.d/${name} >/dev/null 2>&1 |
|
|
|
|
;; |
|
|
|
|
Linux/* ) |
|
|
|
|
# sroot: script root directory |
|
|
|
|
# lroot: link root directory |
|
|
|
|
if [ -f /etc/debian_version ]; then |
|
|
|
|
sroot=/etc/init.d |
|
|
|
|
lroot=/etc/rc%d.d |
|
|
|
|
elif [ -f /etc/SuSE-release ]; then |
|
|
|
|
sroot=/sbin/init.d |
|
|
|
|
lroot=/sbin/init.d/rc%d.d |
|
|
|
|
elif [ -f /etc/redhat-release ]; then |
|
|
|
|
sroot=/etc/rc.d/init.d |
|
|
|
|
lroot=/etc/rc.d/rc%d.d |
|
|
|
|
fi |
|
|
|
|
rm -f ${sroot}/${name} >/dev/null 2>&1 |
|
|
|
|
for i in 2 3 4 5; do |
|
|
|
|
rm -f `echo $lroot | sed -e "s;%d;$i;"`/S99${name} >/dev/null 2>&1 |
|
|
|
|
done |
|
|
|
|
for i in 0 1 6; do |
|
|
|
|
rm -f `echo $lroot | sed -e "s;%d;$i;"`/K00${name} >/dev/null 2>&1 |
|
|
|
|
done |
|
|
|
|
;; |
|
|
|
|
SunOS/5.* ) |
|
|
|
|
rm -f /etc/init.d/${name} >/dev/null 2>&1 |
|
|
|
|
rm -f /etc/rc3.d/S99${name} >/dev/null 2>&1 |
|
|
|
|
rm -f /etc/rc0.d/K00${name} >/dev/null 2>&1 |
|
|
|
|
rm -f /etc/rc1.d/K00${name} >/dev/null 2>&1 |
|
|
|
|
;; |
|
|
|
|
OSF1/V5.* ) |
|
|
|
|
rm -f /sbin/init.d/${name} >/dev/null 2>&1 |
|
|
|
|
rm -f /sbin/rc3.d/S99${name} >/dev/null 2>&1 |
|
|
|
|
rm -f /sbin/rc0.d/K00${name} >/dev/null 2>&1 |
|
|
|
|
;; |
|
|
|
|
esac |
|
|
|
|
if [ ".$thisuser" != ".root" ]; then |
|
|
|
|
echo "openpkg:WARNING: skipping deletion of system run-command hooks" 1>&2 |
|
|
|
|
echo "openpkg:WARNING: (would require root-priviledges)" 1>&2 |
|
|
|
|
else |
|
|
|
|
case "$plid" in |
|
|
|
|
FreeBSD/* ) |
|
|
|
|
rm -f /etc/rc.d/${name}.sh >/dev/null 2>&1 |
|
|
|
|
;; |
|
|
|
|
NetBSD/* ) |
|
|
|
|
rm -f /etc/rc.d/${name} >/dev/null 2>&1 |
|
|
|
|
;; |
|
|
|
|
Linux/* ) |
|
|
|
|
# sroot: script root directory |
|
|
|
|
# lroot: link root directory |
|
|
|
|
if [ -f /etc/debian_version ]; then |
|
|
|
|
sroot=/etc/init.d |
|
|
|
|
lroot=/etc/rc%d.d |
|
|
|
|
elif [ -f /etc/SuSE-release ]; then |
|
|
|
|
sroot=/sbin/init.d |
|
|
|
|
lroot=/sbin/init.d/rc%d.d |
|
|
|
|
elif [ -f /etc/redhat-release ]; then |
|
|
|
|
sroot=/etc/rc.d/init.d |
|
|
|
|
lroot=/etc/rc.d/rc%d.d |
|
|
|
|
fi |
|
|
|
|
rm -f ${sroot}/${name} >/dev/null 2>&1 |
|
|
|
|
for i in 2 3 4 5; do |
|
|
|
|
rm -f `echo $lroot | sed -e "s;%d;$i;"`/S99${name} >/dev/null 2>&1 |
|
|
|
|
done |
|
|
|
|
for i in 0 1 6; do |
|
|
|
|
rm -f `echo $lroot | sed -e "s;%d;$i;"`/K00${name} >/dev/null 2>&1 |
|
|
|
|
done |
|
|
|
|
;; |
|
|
|
|
SunOS/5.* ) |
|
|
|
|
rm -f /etc/init.d/${name} >/dev/null 2>&1 |
|
|
|
|
rm -f /etc/rc3.d/S99${name} >/dev/null 2>&1 |
|
|
|
|
rm -f /etc/rc0.d/K00${name} >/dev/null 2>&1 |
|
|
|
|
rm -f /etc/rc1.d/K00${name} >/dev/null 2>&1 |
|
|
|
|
;; |
|
|
|
|
OSF1/V5.* ) |
|
|
|
|
rm -f /sbin/init.d/${name} >/dev/null 2>&1 |
|
|
|
|
rm -f /sbin/rc3.d/S99${name} >/dev/null 2>&1 |
|
|
|
|
rm -f /sbin/rc0.d/K00${name} >/dev/null 2>&1 |
|
|
|
|
;; |
|
|
|
|
esac |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
# remove the cron transfer entries |
|
|
|
|
case "$plid" in |
|
|
|
|
FreeBSD/* | Linux/* ) |
|
|
|
|
exists=`grep "<OpenPKG prefix=$prefix pkg=openpkg>" /etc/crontab` |
|
|
|
|
if [ ".$exists" != . ]; then |
|
|
|
|
p=`echo $prefix | sed -e 's;/;\\\\/;g'` |
|
|
|
|
cp /etc/crontab /etc/crontab.bak |
|
|
|
|
cat /etc/crontab.bak |\ |
|
|
|
|
sed -e "/<OpenPKG prefix=$p pkg=openpkg>/,/<\\/OpenPKG>/d" \ |
|
|
|
|
>/etc/crontab |
|
|
|
|
fi |
|
|
|
|
;; |
|
|
|
|
SunOS/5.* | OSF1/V5.* | NetBSD/* ) |
|
|
|
|
EDITOR=/tmp/vipw.$$ |
|
|
|
|
VISUAL="$EDITOR" |
|
|
|
|
export EDITOR |
|
|
|
|
export VISUAL |
|
|
|
|
p=`echo $prefix | sed -e 's;/;\\\\\\\\/;g'` |
|
|
|
|
( echo "cp \$1 \$1.old" |
|
|
|
|
echo "cat \$1.old | sed -e \"/<OpenPKG prefix=$p pkg=openpkg>/,/<\\\\/OpenPKG>/d\" >\$1" |
|
|
|
|
echo "rm -f \$1.old" |
|
|
|
|
) >$EDITOR |
|
|
|
|
chmod a+x $EDITOR |
|
|
|
|
(PATH="$PATH:/usr/bin"; crontab -e) |
|
|
|
|
rm -f $EDITOR |
|
|
|
|
;; |
|
|
|
|
esac |
|
|
|
|
if [ ".$thisuser" != ".root" ]; then |
|
|
|
|
echo "openpkg:WARNING: skipping deletion of system cron hooks" 1>&2 |
|
|
|
|
echo "openpkg:WARNING: (would require root-priviledges)" 1>&2 |
|
|
|
|
else |
|
|
|
|
case "$plid" in |
|
|
|
|
FreeBSD/* | Linux/* ) |
|
|
|
|
exists=`grep "<OpenPKG prefix=$prefix pkg=openpkg>" /etc/crontab` |
|
|
|
|
if [ ".$exists" != . ]; then |
|
|
|
|
p=`echo $prefix | sed -e 's;/;\\\\/;g'` |
|
|
|
|
cp /etc/crontab /etc/crontab.bak |
|
|
|
|
cat /etc/crontab.bak |\ |
|
|
|
|
sed -e "/<OpenPKG prefix=$p pkg=openpkg>/,/<\\/OpenPKG>/d" \ |
|
|
|
|
>/etc/crontab |
|
|
|
|
fi |
|
|
|
|
;; |
|
|
|
|
SunOS/5.* | OSF1/V5.* | NetBSD/* ) |
|
|
|
|
EDITOR=/tmp/vipw.$$ |
|
|
|
|
VISUAL="$EDITOR" |
|
|
|
|
export EDITOR |
|
|
|
|
export VISUAL |
|
|
|
|
p=`echo $prefix | sed -e 's;/;\\\\\\\\/;g'` |
|
|
|
|
( echo "cp \$1 \$1.old" |
|
|
|
|
echo "cat \$1.old | sed -e \"/<OpenPKG prefix=$p pkg=openpkg>/,/<\\\\/OpenPKG>/d\" >\$1" |
|
|
|
|
echo "rm -f \$1.old" |
|
|
|
|
) >$EDITOR |
|
|
|
|
chmod a+x $EDITOR |
|
|
|
|
(PATH="$PATH:/usr/bin"; crontab -e) |
|
|
|
|
rm -f $EDITOR |
|
|
|
|
;; |
|
|
|
|
esac |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
# delayed removal of top-level directory. |
|
|
|
|
( sleep 10 |
|
|
|
|