Browse Source

Clifford Wolf:


			
			
				rocklinux
			
			
		
Clifford Wolf 20 years ago
parent
commit
f2a3f87e18
8 changed files with 212 additions and 75 deletions
  1. +4
    -19
      package/base/cron/00-updates
  2. +44
    -0
      package/base/mine/rocket-rev73.patch
  3. +45
    -0
      package/base/mine/rocket-rev74.patch
  4. +3
    -5
      package/base/postinstall/postinstall.conf
  5. +51
    -43
      package/base/postinstall/postinstall.sh
  6. +50
    -0
      package/base/sysfiles/etc_postinstall_system.sh.txt
  7. +14
    -7
      scripts/Build-Pkg
  8. +1
    -1
      scripts/Build-Target

+ 4
- 19
package/base/cron/00-updates

@ -24,28 +24,13 @@
exec 2>&1
kver=$(uname -r)
echo "Running depmod ($kver) ..."
depmod -a -F /boot/System.map-$kver $kver
echo "Running ldconfig ..."
ldconfig
echo "Running makewhatis ..."
makewhatis
echo "Running updatedb ..."
updatedb --prunepaths='/tmp /var/tmp /root /proc /sys /dev /home /user /mnt'
echo "Recreate info dir ..."
rm -f /usr/share/info/dir
find /usr/share/info /opt/*/info/ -type f 2>/dev/null |
grep -v -E -e "/dir$|-[0-9]+$" |
while read x ; do
{ install-info --info-dir=/usr/share/info $x 2>&1 ; } |
egrep -v 'no info dir entry in|already exists, for file'
done
echo
echo "Running depmod -a ..." `depmod -a 2>&1 | wc -l` "warnings"
echo "Running postinstall -a ..."
postinstall -a
echo

+ 44
- 0
package/base/mine/rocket-rev73.patch

@ -0,0 +1,44 @@
--- ./rocket.sh (revision 72)
+++ ./rocket.sh (revision 73)
@@ -9,6 +9,8 @@
The GEM Pools (install sources) are configured in /etc/rocket.conf
rocket updsrc .............. update local rock source tree
+rocket which <regex> ....... search in the "provides" package information
+
rocket build <pkg> ......... build tar.bz2 and .gem from sources
rocket emerge <pkg> ........ build and install a package
@@ -22,7 +24,9 @@
rocket search <regex> ...... search packge descriptions for this regex
rocket fsearch <regex> ..... search packge file list for this regex
rocket list <regex> ........ list all packages with a name matching the regex
+
rocket info <pkg> .......... print package details
+rocket flist <pkg> ......... print package file list
EOT
exit 1
@@ -67,6 +71,11 @@
./scripts/Cleanup
;;
+ which)
+ cd /usr/src/rock-src || exit 1
+ egrep -l "^\[PROVIDES\].* ($2)($| )" package/*/*/*.cache | cut -f3 -d/
+ ;;
+
build)
shift
"$0" emerge "$@"; rc=$?
@@ -195,6 +204,10 @@
egrep '^\[[LS]\]' /var/adm/rocket/descs/$2 && echo
;;
+ flist)
+ cut -f3- -d' ' /var/adm/rocket/cksums/$2
+ ;;
+
install)
shift
deps=$( echo $( echo "$*" | tr ' ' '\n' |

+ 45
- 0
package/base/mine/rocket-rev74.patch

@ -0,0 +1,45 @@
--- ./rocket.sh (revision 73)
+++ ./rocket.sh (revision 74)
@@ -63,6 +63,15 @@
' < <( curl -s "$1/packages.db" | gunzip; )
}
+call_postinstall() {
+ if [ -n "$( /bin/ls /var/adm/postinstall/ | head -n1 )" ]; then
+ read -p "Do you want to run the postinstall scripts now? [Y/n] " yn
+ if [ "$yn" = "y" -o "$yn" = "Y" -o "$yn" = "" ]; then
+ postinstall
+ fi
+ fi
+}
+
case "$1" in
updsrc)
@@ -92,7 +101,9 @@
cp -r /etc/ROCK-CONFIG/* config/rocket/
./scripts/Config -cfg rocket -oldconfig
fi
- exec -a "$0" ./scripts/Emerge-Pkg -cfg rocket "$@"
+ ./scripts/Emerge-Pkg -cfg rocket "$@"; rc=$?
+ call_postinstall
+ exit $rc
;;
create)
@@ -282,12 +293,15 @@
echo "+ mine -i '$url'"; mine -i "$url"
fi
done
+ call_postinstall
exit 0
;;
remove)
shift
+ echo "+ mine -rs $*"
mine -rs "$@"
+ call_postinstall
;;
index)

+ 3
- 5
package/base/postinstall/postinstall.conf

@ -1,10 +1,8 @@
postinstall_main ()
{
mkdir -p /etc/postinstall
mkdir -p /etc/postinstall/postremove
cp -a $confdir/postinstall /usr/sbin/
chmod +x /usr/sbin/postinstall
cp -a $confdir/postinstall-example.sh /etc/postinstall
mkdir -p $root/etc/postinstall/postremove
cp $confdir/postinstall.sh $root/usr/sbin/postinstall
chmod +x $root/usr/sbin/postinstall
}
mainfunction=postinstall_main

package/base/postinstall/postinstall → package/base/postinstall/postinstall.sh

@ -23,68 +23,76 @@
# --- ROCK-COPYRIGHT-NOTE-END ---
# Helper functions
is_installed ()
is_installed()
{
if [ install_checks_true == 1 ]; then return 0; fi
if [ $install_checks_true == 1 ]; then return 0; fi
[ -e "$1" ];
}
is_removed ()
is_removed()
{
if [ remove_checks_true == 1 ]; then return 0; fi
if [ $remove_checks_true == 1 ]; then return 0; fi
[ ! -e "$1" ];
}
all_installed () {
for N in /var/adm/postinstall/*-install.??????;
do
#echo $N
if [ ! -e "$N" ]; then return 0; fi
grep "$1" "$N" | cut -f2 -d' ' |
while read M; do
if is_installed "/$M"; then echo "/$M"; fi;
done
done | sort -u
all_installed() {
while read dummy M; do
[ -e "/$M" ] && echo "/$M"
done < <( cat /var/adm/postinstall/*-install.?????? 2> /dev/null | grep "$1"; ) | sort -u
}
all_removed () {
for N in /var/adm/postinstall/*-remove.??????;
do
if [ ! -e "$N" ]; then return 0; fi
grep "$1" "$N" | cut -f2 -d' ' |
while read M; do
if is_removed "/$M"; then echo "/$M"; fi;
done
done | sort -u
all_removed() {
while read dummy M; do
[ -e "/$M" ] || echo "/$M"
done < <( cat /var/adm/postinstall/*-remove.?????? 2> /dev/null | grep "$1"; ) | sort -u
}
any_installed () {
if [ install_checks_true == 1 ]; then return 0; fi
# This is a hack. Simply returning 0 if a file is found does not work?!
if [ "`all_installed $1`" != "" ]; then return 0; else return 1; fi
all_touched() {
while read dummy M; do
[ -e "/$M" ] || echo "/$M"
done < <( cat /var/adm/postinstall/*-install.?????? /var/adm/postinstall/*-remove.?????? 2> /dev/null | grep "$1"; ) | sort -u
}
any_removed () {
if [ remove_checks_true == 1 ]; then return 0; fi
# This is a hack. Simply returning 0 if a file is found does not work?!
if [ "`all_installed $1`" != "" ]; then return 0; else return 1; fi
any_installed() {
if [ $install_checks_true == 1 ]; then return 0; fi
cat /var/adm/postinstall/*-install.?????? 2> /dev/null | grep -q "$1"
}
any_removed() {
if [ $remove_checks_true == 1 ]; then return 0; fi
cat /var/adm/postinstall/*-remove.?????? 2> /dev/null | grep -q "$1"
}
any_touched() {
if [ $install_checks_true == 1 ]; then return 0; fi
if [ $remove_checks_true == 1 ]; then return 0; fi
cat /var/adm/postinstall/*-install.?????? /var/adm/postinstall/*-remove.?????? 2> /dev/null | grep -q "$1"
}
install_checks_true=0
remove_checks_true=0
if [ "$1" == "-a" ]; then install_checks_true=1; shift; fi
if [ "$1" == "-r" ]; then remove_checks_true=1; shift; fi
if [ "$1" == "--help" ]; then
echo "Usage: $0 [ -a ] [ -r ] [ --help ]"
echo
echo " -a execute all postinstall actions"
echo " -r execute all postremove actions"
echo " --help show this help text"
echo
exit 0;
fi
while [ "$#" -ge 1 ]; do
case "$1" in
-a)
install_checks_true=1
shift
;;
-r)
remove_checks_true=1
shift
;;
*)
echo
echo "Usage: $0 [ -a ] [ -r ]"
echo
echo " -a execute all postinstall actions"
echo " -r execute all postremove actions"
echo
exit 1
;;
esac
done
# Backup postinstall scripts for postremove operation
all_installed "etc/postinstall/.*\.sh" | while read M;

+ 50
- 0
package/base/sysfiles/etc_postinstall_system.sh.txt

@ -0,0 +1,50 @@
# --- ROCK-COPYRIGHT-NOTE-BEGIN ---
#
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
# Please add additional copyright information _after_ the line containing
# the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by
# the ./scripts/Create-CopyPatch script. Do not edit this copyright text!
#
# ROCK Linux: rock-src/package/base/sysfiles/etc_postinstall_system.sh
# ROCK Linux is Copyright (C) 1998 - 2005 Clifford Wolf
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version. A copy of the GNU General Public
# License can be found at Documentation/COPYING.
#
# Many people helped and are helping developing ROCK Linux. Please
# have a look at http://www.rocklinux.org/ and the Documentation/TEAM
# file for details.
#
# --- ROCK-COPYRIGHT-NOTE-END ---
if any_touched '.*\.so$'; then
echo "dynamic libraries: running 'ldconfig' .."
ldconfig
fi
if any_touched '^(boot|lib/modules)/'; then
for kver in $( ls /boot/System.map-* | cut -f2- -d-; ); do
echo "kernel and modules: running 'depmod -a -F /boot/System.map-$kver $kver' .."
depmod -a -F /boot/System.map-$kver $kver
done
fi
if any_touched '/man/'; then
echo "manual pages: running 'makewhatis' .."
makewhatis
fi
if any_touched '/info/'; then
echo "info pages: recreating info dir .."
rm -f /usr/share/info/dir
find /usr/share/info /opt/*/info/ -type f 2>/dev/null |
grep -v -E -e "/dir$|-[0-9]+$" |
while read x ; do
{ install-info --info-dir=/usr/share/info $x 2>&1 ; } |
egrep -v 'no info dir entry in|already exists, for file'
done
fi

+ 14
- 7
scripts/Build-Pkg

@ -31,6 +31,7 @@ config=default
clear_src=1
norebuild=0
nopostinst=0
update=0
make_tar=''
@ -57,12 +58,12 @@ help_msg() {
spacer=" "
echo
echo "Usage: ./scripts/Build-Pkg" \
"[ -0 | -1 | -2 ... | -8 | -9 ] \\"
echo "$spacer [ -v ] [ -xtrace ] [ -chroot ] \\"
echo "$spacer [ -root { <rootdir> | auto } ] \\"
echo "$spacer [ -cfg <config> ] [ -update ] \\"
echo "$spacer [ -prefix <prefix-dir> ] [ -norebuild ] \\"
echo "$spacer [ -noclearsrc ] [ -pkgdir <pkgdir> ] \\"
"[ -0 | -1 | -2 ... | -8 | -9 ] \\"
echo "$spacer [ -v ] [ -xtrace ] [ -chroot ] \\"
echo "$spacer [ -root { <rootdir> | auto } ] [ -update ] \\"
echo "$spacer [ -cfg <config> ] [ -nopostinst ] \\"
echo "$spacer [ -prefix <prefix-dir> ] [ -norebuild ] \\"
echo "$spacer [ -noclearsrc ] [ -pkgdir <pkgdir> ] \\"
echo "$spacer [ -id <id> ] [ -debug ] pkg-name(s)"
echo
echo " Build a single package. Warning: Re-building a package might overwrite or"
@ -77,8 +78,9 @@ help_msg() {
echo " -chroot create and use a chroot environment"
echo " -root { <rootdir> | auto } the root build directory to use;"
echo " defaults to automatic setting"
echo " -cfg <config> the build configuration to use"
echo " -update backup/restore modified package files"
echo " -cfg <config> the build configuration to use"
echo " -nopostinst do not create postinstall files"
echo " -prefix <prefix-dir> the installation prefix for packages;"
echo " defaults to automatic setting"
echo " -norebuild don't rebuild a previously successfully built package;"
@ -120,6 +122,7 @@ while [ "$1" ] ; do
-pkgdir) options="$options $1 $2" ; pkgdir="$2" ; shift ;;
-noclearsrc) options="$options $1" ; clear_src=0 ;;
-norebuild) options="$options $1" ; norebuild=1 ;;
-nopostinst) options="$options $1" ; nopostinst=1 ;;
-download) options="$options $1" ; download=1 ;;
-*) help_msg ; exit 1 ;;
*) break ;;
@ -1054,6 +1057,10 @@ abort() {
done
} | sort -u > var/adm/flists/$spkg
if [ $stagelevel -ge 2 -a $nopostinst = 0 -a -d /var/adm/postinstall ]; then
cp var/adm/flists/$spkg "$(mktemp var/adm/postinstall/${spkg}-install.XXXXXX)"
fi
echo "<$spkg> Creating package dependencies file ..."
sed "s,^[^ ]*,$spkg:," < $builddir/dependencies.txt > var/adm/dependencies/$spkg

+ 1
- 1
scripts/Build-Target

@ -322,7 +322,7 @@ pkgloop_package() {
cmd_prefix="-prefix $pkg_prefix"
else cmd_prefix="" ; fi
cmd_buildpkg="./scripts/Build-Pkg -$stagelevel -cfg $config"
cmd_buildpkg="./scripts/Build-Pkg -$stagelevel -cfg $config -nopostinst"
cmd_buildpkg="$cmd_buildpkg $cmd_root $cmd_prefix $pkg_basename=$pkg_name"
# Execute action handler

Loading…
Cancel
Save