This commit is contained in:
commit
d1864ad648
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
9520
aaa_base.changes
Normal file
9520
aaa_base.changes
Normal file
File diff suppressed because it is too large
Load Diff
363
aaa_base.post
Normal file
363
aaa_base.post
Normal file
@ -0,0 +1,363 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
#
|
||||
# post.sh - to be done after extraction
|
||||
#
|
||||
# Copyright (c) 2003 SuSE Linux AG Nuernberg, Germany.
|
||||
#
|
||||
#
|
||||
# Run this script in C-Locale, or some tools will fail.
|
||||
export LC_ALL=C
|
||||
#
|
||||
# to make shure, var/lib/YaST/bin/bootsetup runs fine, delete
|
||||
# usr/lib/YaST/.configured2
|
||||
test -e usr/lib/YaST/.configured2 && rm -f usr/lib/YaST/.configured2
|
||||
#
|
||||
# there are some installation with an etc/psdevtab, which is only readable
|
||||
# for root - this slows ps for any other user. starting ps as root, creates
|
||||
# it, when it doesn't exist (readable). So simply delete it.
|
||||
#
|
||||
test -e etc/psdevtab && rm -f etc/psdevtab
|
||||
#
|
||||
# if the old inittab contains "/sbin/init.d", move it away
|
||||
# and use inittab.rpmnew. RPM will overwrite old rpmnew files, so this
|
||||
# should really the new one.
|
||||
#
|
||||
test -f etc/inittab.rpmnew && grep sbin.init.d etc/inittab >/dev/null 2>&1 && {
|
||||
mv -f etc/inittab etc/inittab.sbin.init.d
|
||||
mv -f etc/inittab.rpmnew etc/inittab
|
||||
}
|
||||
#
|
||||
# if the old nsswitch.conf contains dns6, replace it with dns
|
||||
#
|
||||
test -f etc/nsswitch.conf.rpmnew && grep dns6 etc/nsswitch.conf >/dev/null 2>&1 && {
|
||||
cp etc/nsswitch.conf etc/nsswitch.conf.aaa_base
|
||||
sed "s|dns6|dns|g" < etc/nsswitch.conf.aaa_base > etc/nsswitch.conf
|
||||
}
|
||||
#
|
||||
# the following rc.config-variables changed their names during the releases,
|
||||
# so we have to change them here ...
|
||||
# FONT to CONSOLE_FONT
|
||||
# TRANSLATION to CONSOLE_UNICODEMAP
|
||||
# GMT to HWCLOCK
|
||||
# replace CREATE_RESOLVCONF by comment
|
||||
# comment out NAMESERVER
|
||||
# comment out SEARCHLIST
|
||||
# comment out LANGUAGE
|
||||
# delete umask line
|
||||
#
|
||||
if test -s etc/rc.config ; then
|
||||
sed -e"s/^FONT=/CONSOLE_FONT=/" \
|
||||
-e"s/^TRANSLATION=/CONSOLE_UNICODEMAP=/" \
|
||||
-e"s/^GMT=/HWCLOCK=/" \
|
||||
-e"s/^CREATE_RESOLVCONF=.*/# Update: SuSEconfig will no longer touch resolv.conf/" \
|
||||
-e"s/^NAMESERVER=\(.*\)/# NAMESERVER=\1/" \
|
||||
-e"s/^SEARCHLIST=\(.*\)/# SEARCHLIST=\1/" \
|
||||
-e"s/^umask .*//" \
|
||||
-e"s/^test \$rc_done=/test \"\$rc_done\"=/" \
|
||||
-e"s/^LANGUAGE=/# LANGUAGE=/" etc/rc.config \
|
||||
> etc/rc.config.t && mv etc/rc.config.t etc/rc.config
|
||||
rm -f etc/rc.config.t
|
||||
fi
|
||||
# GMT might already be in sysconfig/clock
|
||||
%{rename_sysconfig_variable -f etc/sysconfig/clock GMT HWCLOCK}
|
||||
# XXX uncommented temporary
|
||||
if [ -e etc/aaa_base_debug -a ! -e etc/rc.config ]; then
|
||||
cat << EOF > etc/rc.config
|
||||
#
|
||||
# /etc/rc.config
|
||||
#
|
||||
# Copyright (c) 1996-2002 SuSE Linux AG Nuernberg, Germany.
|
||||
# All rights reserved.
|
||||
#
|
||||
# Author: Werner Fink <werner@suse.de>, 1996
|
||||
# Burchard Steinbild, 1996
|
||||
#
|
||||
# The configuration databases for shell scripts in /etc/init.d,
|
||||
# /sbin/SuSEconfig and /etc/cron.daily/suse.de-* can now be found
|
||||
# in the /etc/sysconfig directory. This file should not be used any
|
||||
# longer and will disappear in one of the next releases.
|
||||
#
|
||||
# Please edit the files in the /etc/sysconfig directory and execute
|
||||
# /sbin/SuSEconfig to configure everything.
|
||||
#
|
||||
|
||||
EOF
|
||||
chmod 644 etc/rc.config
|
||||
fi
|
||||
|
||||
#
|
||||
# Initialize runlevel links
|
||||
#
|
||||
%{fillup_and_insserv -py boot.proc boot.localfs boot.swap boot.clock boot.ldconfig boot.ipconfig boot.klog boot.localnet halt random reboot single nfs}
|
||||
%{fillup_and_insserv -psy boot.crypto START_CRYPTO_FILESYSTEMS}
|
||||
%{insserv_force_if_yast etc/init.d/boot.loadmodules etc/init.d/boot.cleanup etc/init.d/boot.rootfsck}
|
||||
## powerfail probably needs empty header ...
|
||||
|
||||
# add Kill-links in boot.d if needed:
|
||||
for i in proc localfs swap clock ldconfig ipconfig klog localnet crypto loadmodules sched ; do
|
||||
if [ -f /etc/init.d/boot.d/S??boot.$i -a ! -f /etc/init.d/boot.d/K??boot.$i ] ; then
|
||||
%{insserv_force_if_yast boot.$i}
|
||||
fi
|
||||
done
|
||||
|
||||
#
|
||||
# remove old stuff from rc.config
|
||||
if [ -x bin/fillup -a -f etc/rc.config ] ; then
|
||||
bin/fillup -q -t -r -i -d "=" etc/rc.config var/adm/fillup-templates/removed_variables.aaa_base /dev/null
|
||||
test -s etc/rc.config.new && mv etc/rc.config.new etc/rc.config
|
||||
fi
|
||||
%{remove_and_set -n security CONSOLE_SHUTDOWN}
|
||||
%{remove_and_set -n suseconfig CHECK_INITTAB}
|
||||
%{remove_and_set -n suseconfig HALT_SOUND}
|
||||
|
||||
if ! [ -d etc/sysconfig ] ; then
|
||||
mkdir -p etc/sysconfig
|
||||
fi
|
||||
# language was called lang before
|
||||
if [ ! -f etc/sysconfig/language -a -f etc/rc.config.d/lang.rc.config ] ; then
|
||||
mv etc/rc.config.d/lang.rc.config etc/sysconfig/language
|
||||
fi
|
||||
for i in language backup boot kernel \
|
||||
suseconfig clock proxy windowmanager sysctl mail \
|
||||
cron news shutdown sw_management ; do
|
||||
%{fillup_only -n $i}
|
||||
done
|
||||
# migrate HALT_SOUND value if set before
|
||||
if [ -n "$HALT_SOUND" -a "$HALT_SOUND" != "no" ] ; then
|
||||
sed -e "s|^HALT_SOUND=.*|HALT_SOUND=\"$HALT_SOUND\"|" \
|
||||
etc/sysconfig/shutdown > etc/sysconfig/shutdown.new \
|
||||
&& mv etc/sysconfig/shutdown.new etc/sysconfig/shutdown
|
||||
fi
|
||||
# fix sysconfig backup dir
|
||||
if grep -q RCCONFIG_BACKUP_DIR../var/adm/backup/rpmdb etc/sysconfig/backup; then
|
||||
sed -e "s|^RCCONFIG_BACKUP_DIR=.*|RCCONFIG_BACKUP_DIR=\"/var/adm/backup/sysconfig\"|" \
|
||||
etc/sysconfig/backup > etc/sysconfig/backup.new \
|
||||
&& mv etc/sysconfig/backup.new etc/sysconfig/backup
|
||||
mkdir -p /var/adm/backup/sysconfig
|
||||
mv /var/adm/backup/rpmdb/sysconfig[-_]* /var/adm/backup/sysconfig 2>/dev/null
|
||||
fi
|
||||
|
||||
|
||||
# clear old install settings of MODULES_LOADED_ON_BOOT
|
||||
eval `grep "^MODULES_LOADED_ON_BOOT" etc/sysconfig/kernel`
|
||||
MLOB_NEW=""
|
||||
for i in $MODULES_LOADED_ON_BOOT ; do
|
||||
case $i in
|
||||
capability|raw1394|video1394) continue ;;
|
||||
esac
|
||||
MLOB_NEW="$MLOB_NEW${MLOB_NEW:+ }$i"
|
||||
done
|
||||
if test "$MODULES_LOADED_ON_BOOT" != "$MLOB_NEW" ; then
|
||||
sed -e "s|^MODULES_LOADED_ON_BOOT=.*|MODULES_LOADED_ON_BOOT=\"$MLOB_NEW\"|" \
|
||||
etc/sysconfig/kernel > etc/sysconfig/kernel.new \
|
||||
&& mv etc/sysconfig/kernel.new etc/sysconfig/kernel
|
||||
rm -f etc/sysconfig/kernel.new
|
||||
fi
|
||||
#
|
||||
# Backup gshadow file and remove it (merge passwords into
|
||||
# /etc/group before).
|
||||
#
|
||||
if [ -f /etc/gshadow -a -x /usr/sbin/grpunconv ]; then
|
||||
cp -p /etc/gshadow /etc/gshadow-`date "+%Y%m%d"`
|
||||
chmod 600 /etc/gshadow-`date "+%Y%m%d"`
|
||||
/usr/sbin/grpunconv
|
||||
fi
|
||||
|
||||
#
|
||||
# handle password files
|
||||
#
|
||||
for i in passwd group shadow ; do
|
||||
test -e var/adm/fillup-templates/$i.aaa_base || continue
|
||||
echo -n "Updating etc/$i..."
|
||||
if test -f etc/$i ; then
|
||||
cp etc/$i etc/$i.tmp
|
||||
rm -f etc/$i.add
|
||||
sort -k 1,1 -t: -u etc/$i var/adm/fillup-templates/$i.aaa_base \
|
||||
| sort -k 1,1 -t: etc/$i - | uniq -u > etc/$i.add
|
||||
cat etc/$i.add >> etc/$i
|
||||
rm -f etc/$i.add
|
||||
if cmp -s etc/$i etc/$i.tmp ; then
|
||||
echo "unchanged"
|
||||
else
|
||||
echo "modified"
|
||||
fi
|
||||
rm -f etc/$i.tmp
|
||||
# If we have a NIS system, we have to make sure, that "^+" is at the end
|
||||
grep -v "^+" etc/$i > etc/$i.tmp || :
|
||||
grep "^+" etc/$i >> etc/$i.tmp || :
|
||||
test -s etc/$i.tmp && cat etc/$i.tmp > etc/$i
|
||||
rm -f etc/$i.tmp
|
||||
else
|
||||
cat var/adm/fillup-templates/$i.aaa_base > etc/$i
|
||||
echo "new"
|
||||
fi
|
||||
done
|
||||
# check/fix owner and permission of shadow files
|
||||
for i in etc/shadow ; do
|
||||
chmod 640 $i
|
||||
chgrp shadow $i
|
||||
done
|
||||
#
|
||||
# make sure that nobody and nogroup are set to 65534 (we had -2 in former times)
|
||||
#
|
||||
for i in etc/passwd etc/group ; do
|
||||
sed -e"s/:-2:/:65534:/g" -e"s/:-2:/:65534:/g" < $i > $i.t
|
||||
test -s $i.t && {
|
||||
cat $i.t > $i
|
||||
}
|
||||
rm -f $i.t
|
||||
chmod 644 $i
|
||||
done
|
||||
#
|
||||
# Change primary group of nobody to nobody
|
||||
#
|
||||
if [ -x /usr/sbin/usermod ]; then
|
||||
/usr/sbin/usermod -g nobody nobody 2> /dev/null ||:
|
||||
fi
|
||||
|
||||
#
|
||||
# create mtab if it does not exist
|
||||
#
|
||||
touch etc/mtab
|
||||
#
|
||||
# make sure that several log files exist
|
||||
#
|
||||
if test ! -d var/log ; then
|
||||
mkdir -p var/log
|
||||
fi
|
||||
touch var/log/faillog
|
||||
chmod 600 var/log/faillog
|
||||
touch root/.bash_history
|
||||
chmod 600 root/.bash_history
|
||||
chown root:root var/log/faillog
|
||||
touch var/log/lastlog
|
||||
chmod 644 var/log/lastlog
|
||||
chown root:tty var/log/lastlog
|
||||
touch var/log/wtmp
|
||||
chmod 664 var/log/wtmp
|
||||
chown root:tty var/log/wtmp
|
||||
if test -e usr/sbin/usrdel.local -a ! -e usr/sbin/userdel.local ; then
|
||||
cp usr/sbin/usrdel.local usr/sbin/userdel.local
|
||||
fi
|
||||
if test ! -e usr/sbin/userdel.local ; then
|
||||
mkdir -p usr/sbin
|
||||
cat << EOT > usr/sbin/userdel.local
|
||||
#!/bin/bash
|
||||
#
|
||||
# Here you can add your own stuff, that should be done for every user who
|
||||
# will be deleted.
|
||||
#
|
||||
# When you delete a user with YaST, this script will be called
|
||||
# with the login name as parameter. The rest of data can be taken
|
||||
# from /etc/passwd.
|
||||
#
|
||||
EOT
|
||||
chmod 744 usr/sbin/userdel.local
|
||||
fi
|
||||
|
||||
##
|
||||
## generate permissions.local
|
||||
##
|
||||
for suffix in rpmorig rpmsave ; do
|
||||
if test -e etc/permissions.local.$suffix -a ! -e etc/permissions.local ; then
|
||||
mv etc/permissions.local.$suffix etc/permissions.local
|
||||
fi
|
||||
done
|
||||
if test ! -e etc/permissions.local ; then
|
||||
cat << EOT > etc/permissions.local
|
||||
#
|
||||
# /etc/permissions.local
|
||||
#
|
||||
# Description: Roman Drahtmueller <draht@suse.de>, 2001
|
||||
#
|
||||
# This file is used by SuSEconfig and chkstat to check or set the modes
|
||||
# and ownerships of files and directories in the installation.
|
||||
#
|
||||
# In particular, this file will not be touched during an upgrade of the
|
||||
# SuSE Linux installation. It is designed to be a placeholder for local
|
||||
# additions by the administrator of the system to reflect filemodes
|
||||
# of locally installed packages (usually under /opt/local or /usr/local).
|
||||
#
|
||||
# Format:
|
||||
# <file> <owner>.<group> <permission>
|
||||
#
|
||||
# Please see the file /etc/permissions for general usage hints of the
|
||||
# /etc/permissions* files.
|
||||
# Keep in mind that this file (/etc/permissions.local) is being used by
|
||||
# default by SuSEconfig, the shell script that is used by yast and yast2
|
||||
# after package installation and configuration changes to make the changes
|
||||
# effective for the respective packages (eg generating the "real"
|
||||
# configuration files).
|
||||
# Always check if there are no conflicts between your \"local\" changes here
|
||||
# and the settings in the other permissions files by calling
|
||||
# \"SuSEconfig\" as root!
|
||||
# Please remember that logfiles might be modified by the logfile
|
||||
# rotation facilities (e.g. logrotate) so local settings might
|
||||
# be overridden.
|
||||
#
|
||||
# example:
|
||||
#/usr/local/bin/mtr root.root 4755
|
||||
EOT
|
||||
chmod 644 etc/permissions.local
|
||||
fi
|
||||
#
|
||||
# Now do the ugly part. Delete mess from former times...
|
||||
#
|
||||
if test -L usr/i486-linux-libc6/lib/libqimgio.so ; then
|
||||
rm -f usr/i486-linux-libc6/lib/libqimgio.so
|
||||
fi
|
||||
### import suse package build key to gpg keyring
|
||||
if test -f root/.gnupg/pubring.gpg ; then
|
||||
if test -x usr/bin/gpg -a -f usr/lib/libgdbm.so.2 ; then
|
||||
chroot . usr/bin/gpg --export --armor --no-default-keyring \
|
||||
--keyring root/.gnupg/suse_build_key build@suse.de \
|
||||
| chroot . usr/bin/gpg --import || true
|
||||
if ! chroot . usr/bin/gpg --list-keys build@suse.de >/dev/null 2>&1 ; then
|
||||
echo "gpg import for build@suse.de failed, please import manually" >&2
|
||||
fi
|
||||
fi
|
||||
else
|
||||
cp root/.gnupg/suse_build_key root/.gnupg/pubring.gpg
|
||||
fi
|
||||
chmod 600 root/.gnupg/suse_build_key root/.gnupg/pubring.gpg
|
||||
|
||||
# change all /media mounts (subfs) to noauto
|
||||
if test -f /etc/fstab ; then
|
||||
rm -f /etc/fstab.$$
|
||||
sed -e '/^[[:space:]]*#/{p;d}' -e '/[[:space:]]subfs.*noauto/{p;d}' -e '/\/media.*fs=\(cdfss\|floppyfss\)/s/\([[:space:]]subfs[[:space:]][[:space:]]*\)/\1noauto,/' < /etc/fstab > /etc/fstab.$$
|
||||
cmp -s /etc/fstab /etc/fstab.$$ || {
|
||||
mv /etc/fstab.$$ /etc/fstab
|
||||
chmod 644 /etc/fstab
|
||||
}
|
||||
rm -f /etc/fstab.$$
|
||||
fi
|
||||
|
||||
# IA64 Altix update hook
|
||||
if test -d /proc/sgi_sn ; then
|
||||
if grep -q "console=ttyS0" /etc/elilo.conf ; then
|
||||
echo "replacing ttyS0 by ttySG0 in elilo.conf, inittab and securetty files"
|
||||
#
|
||||
rm -f /etc/elilo.conf.tmp
|
||||
sed -e "s/console=ttyS0/console=ttySG0/g" /etc/elilo.conf > /etc/elilo.conf.tmp
|
||||
cat /etc/elilo.conf.tmp > /etc/elilo.conf
|
||||
rm -f /etc/elilo.conf.tmp
|
||||
#
|
||||
rm -f /etc/inittab.tmp
|
||||
sed -e "s/getty\(.*\)ttyS0/getty\1ttySG0/g" /etc/inittab > /etc/inittab.tmp
|
||||
cat /etc/inittab.tmp > /etc/inittab
|
||||
rm -f /etc/inittab.tmp
|
||||
#
|
||||
rm -f /etc/securetty.tmp
|
||||
sed -e "s/ttyS0/ttySG0/g" /etc/securetty > /etc/securetty.tmp
|
||||
cat /etc/securetty.tmp > /etc/securetty
|
||||
rm -f /etc/securetty.tmp
|
||||
#
|
||||
if grep -q /boot/efi /proc/mounts ; then
|
||||
echo "calling elilo to update"
|
||||
/sbin/elilo || true
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
exit 0
|
260
aaa_base.pre
Normal file
260
aaa_base.pre
Normal file
@ -0,0 +1,260 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Run this script in C-Locale, or some tools will fail.
|
||||
export LC_ALL=C
|
||||
# /boot should be the first directory. This increases the probability, that
|
||||
# lilo stuff lies before 1024 cyl.
|
||||
mkdir -p boot
|
||||
#
|
||||
# make sure, tmp directories do exist
|
||||
#
|
||||
for i in tmp var/tmp ; do
|
||||
test -d $i || {
|
||||
if test -L $i ; then
|
||||
echo "Error! $i is a dangling symlink."
|
||||
echo
|
||||
ls -l $i
|
||||
echo
|
||||
echo "To avoid big problems this link has to be deleted and a directory"
|
||||
echo "will be created. Remember to fix it after installation."
|
||||
echo
|
||||
rm -f $i
|
||||
elif test -f $i ; then
|
||||
echo "$i is a file. This makes no sense. Moving it to $i.save."
|
||||
mv -v $i $i.save
|
||||
fi
|
||||
mkdir -p $i
|
||||
}
|
||||
done
|
||||
#
|
||||
# now create a var/adm/fillup-templates/passwd.aaa_base.
|
||||
# If etc/passwd does not exist, copy
|
||||
# var/adm/fillup-templates/passwd.aaa_base to etc/passwd.
|
||||
# deleted db2 groups and users were uids 46,47,48 and gids 46,47,48
|
||||
#
|
||||
mkdir -p etc
|
||||
touch etc/mtab
|
||||
mkdir -p var/adm/fillup-templates
|
||||
echo "root:x:0:0:root:/root:/bin/bash
|
||||
bin:x:1:1:bin:/bin:/bin/bash
|
||||
daemon:x:2:2:Daemon:/sbin:/bin/bash
|
||||
lp:x:4:7:Printing daemon:/var/spool/lpd:/bin/bash
|
||||
mail:x:8:12:Mailer daemon:/var/spool/clientmqueue:/bin/false
|
||||
news:x:9:13:News system:/etc/news:/bin/bash
|
||||
uucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bash
|
||||
games:x:12:100:Games account:/var/games:/bin/bash
|
||||
man:x:13:62:Manual pages viewer:/var/cache/man:/bin/bash
|
||||
wwwrun:x:30:8:WWW daemon apache:/var/lib/wwwrun:/bin/false
|
||||
ftp:x:40:49:FTP account:/srv/ftp:/bin/bash
|
||||
nobody:x:65534:65533:nobody:/var/lib/nobody:/bin/bash" \
|
||||
> var/adm/fillup-templates/passwd.aaa_base
|
||||
|
||||
echo "root:x:0:
|
||||
bin:x:1:daemon
|
||||
daemon:x:2:
|
||||
sys:x:3:
|
||||
tty:x:5:
|
||||
disk:x:6:
|
||||
lp:x:7:
|
||||
www:x:8:
|
||||
kmem:x:9:
|
||||
wheel:x:10:
|
||||
mail:x:12:
|
||||
news:x:13:
|
||||
uucp:x:14:
|
||||
shadow:x:15:
|
||||
dialout:x:16:
|
||||
audio:x:17:
|
||||
floppy:x:19:
|
||||
cdrom:x:20:
|
||||
console:x:21:
|
||||
utmp:x:22:
|
||||
public:x:32:
|
||||
video:x:33:
|
||||
games:x:40:
|
||||
xok:x:41:
|
||||
trusted:x:42:
|
||||
modem:x:43:
|
||||
ftp:x:49:
|
||||
man:x:62:
|
||||
users:x:100:
|
||||
nobody:x:65533:
|
||||
nogroup:x:65534:nobody" > var/adm/fillup-templates/group.aaa_base
|
||||
|
||||
rm -f var/adm/fillup-templates/shadow.aaa_base
|
||||
while read LINE ; do
|
||||
case $LINE in
|
||||
root*)
|
||||
echo "root::$(($(date '+%s')/86400))::::::" \
|
||||
>> var/adm/fillup-templates/shadow.aaa_base
|
||||
;;
|
||||
*)
|
||||
echo "${LINE%%%%:*}:*:$(($(date '+%s')/86400))::::::" \
|
||||
>> var/adm/fillup-templates/shadow.aaa_base
|
||||
;;
|
||||
esac
|
||||
done < var/adm/fillup-templates/passwd.aaa_base
|
||||
|
||||
# etc/passwd update
|
||||
if test -e etc/passwd ; then
|
||||
sed "
|
||||
# re-do these users on update, their home-dir was changed
|
||||
/^news:\|^uucp:\|^man:\|^ftp:.*:.usr.local.ftp:/d
|
||||
|
||||
# change group of wwwrun: nogroup -> www
|
||||
s|^wwwrun:x:30:65534:|wwwrun:x:30:8:|
|
||||
|
||||
# change login shell of wwwrun
|
||||
s|^\(wwwrun:x:30:8:.*:\)/bin/bash|\1/bin/false|
|
||||
" < etc/passwd > etc/passwd.t
|
||||
cat etc/passwd.t > etc/passwd
|
||||
rm -f etc/passwd.t
|
||||
fi
|
||||
if test -e etc/shadow ; then
|
||||
# nobody had sp_lstchg set to 0 in 8.0 and older
|
||||
sed "/^nobody:[^:]*:0:/d" < etc/shadow > etc/shadow.t
|
||||
cat etc/shadow.t > etc/shadow
|
||||
rm -f etc/shadow.t
|
||||
fi
|
||||
|
||||
# Rename game -> games, wwwadmin -> www
|
||||
for i in etc/group ; do
|
||||
if test -e $i ; then
|
||||
sed -e "s|^game:|games:|" -e "s|^wwwadmin:|www:|" $i > $i.t
|
||||
cat $i.t > $i
|
||||
rm -f $i.t
|
||||
fi
|
||||
done
|
||||
|
||||
for file in passwd group ; do
|
||||
if test -f etc/$file ; then
|
||||
# like fillup, but : is the only separator
|
||||
rm -f etc/$file.add
|
||||
sort -k 1,1 -t: -u etc/$file var/adm/fillup-templates/$file.aaa_base \
|
||||
| sort -k 1,1 -t: etc/$file - | uniq -u > etc/$file.add
|
||||
cat etc/$file.add >> etc/$file
|
||||
rm -f etc/$file.add
|
||||
# fix permissions if this script is called with strange umask
|
||||
chmod 644 etc/$file
|
||||
else
|
||||
cat var/adm/fillup-templates/$file.aaa_base > etc/$file
|
||||
fi
|
||||
done
|
||||
|
||||
if test -d sbin/init.d -a ! -L sbin/init.d ; then
|
||||
if test -L etc/init.d ; then
|
||||
rm -f etc/init.d
|
||||
fi
|
||||
fi
|
||||
#
|
||||
# we have several local files, that changed over the time. Check the
|
||||
# existing one, if they contain real data. If not, delete them.
|
||||
#
|
||||
for LOCALFILE in root/bin/cron.daily.local \
|
||||
etc/init.d/boot.local \
|
||||
etc/init.d/halt.local \
|
||||
etc/permissions.local.rpmsave \
|
||||
etc/permissions.local.rpmorig \
|
||||
etc/permissions.local \
|
||||
sbin/init.d/boot.local \
|
||||
sbin/init.d/halt.local \
|
||||
usr/sbin/usradd.local \
|
||||
usr/sbin/usrdel.local \
|
||||
usr/sbin/userdel.local ; do
|
||||
test -f $LOCALFILE || continue
|
||||
LOCALFILE_CONTAINS_DATA=false
|
||||
while read LINE ; do
|
||||
case "$LINE" in
|
||||
"#"*)
|
||||
;;
|
||||
"echo "*">"*)
|
||||
LOCALFILE_CONTAINS_DATA=true
|
||||
;;
|
||||
"echo "*)
|
||||
;;
|
||||
". /etc/rc.config")
|
||||
;;
|
||||
"exit "*)
|
||||
;;
|
||||
"")
|
||||
;;
|
||||
*)
|
||||
LOCALFILE_CONTAINS_DATA=true
|
||||
;;
|
||||
esac
|
||||
done < $LOCALFILE
|
||||
test "$LOCALFILE_CONTAINS_DATA" = false && rm -f $LOCALFILE
|
||||
done
|
||||
mkdir -p etc/init.d
|
||||
echo "#! /bin/sh
|
||||
#
|
||||
# Copyright (c) 2002 SuSE Linux AG Nuernberg, Germany. All rights reserved.
|
||||
#
|
||||
# Author: Werner Fink <werner@suse.de>, 1996
|
||||
# Burchard Steinbild, 1996
|
||||
#
|
||||
# /etc/init.d/boot.local
|
||||
#
|
||||
# script with local commands to be executed from init on system startup
|
||||
#
|
||||
# Here you should add things, that should happen directly after booting
|
||||
# before we're going to the first run level.
|
||||
#
|
||||
" > etc/init.d/boot.local.new
|
||||
if [ ! -e etc/init.d/boot.local ] ; then
|
||||
if [ -e sbin/init.d/boot.local ] ; then
|
||||
mv sbin/init.d/boot.local etc/init.d/boot.local
|
||||
fi
|
||||
fi
|
||||
test -e etc/init.d/boot.local || mv etc/init.d/boot.local.new etc/init.d/boot.local
|
||||
rm -f etc/init.d/boot.local.new
|
||||
chmod 744 etc/init.d/boot.local
|
||||
echo "#! /bin/sh
|
||||
#
|
||||
# Copyright (c) 2002 SuSE Linux AG Nuernberg, Germany. All rights reserved.
|
||||
#
|
||||
# Author: Werner Fink <werner@suse.de>, 1998
|
||||
# Burchard Steinbild, 1998
|
||||
#
|
||||
# /etc/init.d/halt.local
|
||||
#
|
||||
# script with local commands to be executed from init on system shutdown
|
||||
#
|
||||
# Here you should add things, that should happen directly before shuting
|
||||
# down.
|
||||
#
|
||||
" > etc/init.d/halt.local.new
|
||||
if [ ! -e etc/init.d/halt.local ] ; then
|
||||
if [ -e sbin/init.d/halt.local ] ; then
|
||||
mv sbin/init.d/halt.local etc/init.d/halt.local
|
||||
fi
|
||||
fi
|
||||
test -e etc/init.d/halt.local || mv etc/init.d/halt.local.new etc/init.d/halt.local
|
||||
rm -f etc/init.d/halt.local.new
|
||||
chmod 744 etc/init.d/halt.local
|
||||
mkdir -p etc
|
||||
for LINK in usr/X11R6/lib/X11 var/X11R6/lib/fonts usr/lib/mgetty+sendfax \
|
||||
usr/man/cat? usr/X11R6/man/cat? usr/openwin/man/cat? usr/lib/news ; do
|
||||
if test -L $LINK ; then
|
||||
echo "Found forbidden/oldish Link: $LINK ...deleting"
|
||||
rm -f $LINK
|
||||
fi
|
||||
done
|
||||
for DIR in etc/rc.d usr/X11 ; do
|
||||
if test -d $DIR -a ! -L $DIR ; then
|
||||
echo -n "Found oldish directory /$DIR. "
|
||||
if test -d $DIR.old ; then
|
||||
echo /$DIR.old already exist. Can not move /$DIR to it.
|
||||
else
|
||||
echo Moving it to /$DIR.old
|
||||
mv $DIR $DIR.old
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
# Backup YP_DOMAINNAME, before we remove it
|
||||
if test ! -f etc/defaultdomain -a -f /etc/rc.config ; then
|
||||
eval `grep ^YP_DOMAINNAME etc/rc.config 2>/dev/null`
|
||||
echo -n $YP_DOMAINNAME > etc/defaultdomain
|
||||
chmod 644 etc/defaultdomain
|
||||
fi
|
4803
aaa_base.spec
Normal file
4803
aaa_base.spec
Normal file
File diff suppressed because it is too large
Load Diff
41
aaa_base.specialfilelist
Normal file
41
aaa_base.specialfilelist
Normal file
@ -0,0 +1,41 @@
|
||||
%config(noreplace) /root/.exrc
|
||||
%config(noreplace) /etc/DIR_COLORS
|
||||
%config(noreplace) /etc/host.conf
|
||||
%config(noreplace) /etc/inittab
|
||||
%config /root/bin/cron.daily
|
||||
%config /root/bin/cron.daily.local
|
||||
%config /etc/csh.cshrc
|
||||
%config /etc/csh.login
|
||||
%config /etc/inputrc
|
||||
%config /etc/insserv.conf
|
||||
%config /etc/mailcap
|
||||
%config /etc/mime.types
|
||||
%config /etc/permissions
|
||||
%config /etc/permissions.easy
|
||||
%config /etc/permissions.local
|
||||
%config /etc/permissions.paranoid
|
||||
%config /etc/permissions.secure
|
||||
%config /etc/profile
|
||||
%config /etc/rc.status
|
||||
%config /etc/runlevel.fallback
|
||||
%config /etc/shells
|
||||
%config /etc/ttytype
|
||||
%config /etc/zshrc
|
||||
%config /etc/init.d/boot
|
||||
%config /etc/init.d/boot.setup
|
||||
%config /etc/init.d/dummy
|
||||
%config /etc/init.d/halt
|
||||
%config /etc/init.d/network
|
||||
%config /etc/init.d/nfs
|
||||
%config /etc/init.d/powerfail
|
||||
%config /etc/init.d/random
|
||||
%config /etc/init.d/route
|
||||
%config /etc/init.d/routed
|
||||
%config /etc/init.d/serial
|
||||
%config /etc/init.d/single
|
||||
%config /sbin/quick_halt
|
||||
%ghost /var/adm/fillup-templates/passwd.aaa_base
|
||||
%ghost /var/adm/fillup-templates/group.aaa_base
|
||||
%ghost /var/adm/fillup-templates/gshadow.aaa_base
|
||||
%ghost /var/adm/fillup-templates/shadow.aaa_base
|
||||
%ghost %attr(0644,root,tty) %verify(not md5 size mtime) /var/log/lastlog
|
3
aaa_base.tar.bz2
Normal file
3
aaa_base.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:59a4855d9d51d09488b5443b1a50463bb21b039c53e49b1e4692e7c7423fb440
|
||||
size 77852
|
3
arch_special.tar.bz2
Normal file
3
arch_special.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:8cdf32bd66e9bfacd5b5bf6a022bfef997532450493d04089e6e3051f72ed444
|
||||
size 1388
|
156
get_kernel_version.c
Normal file
156
get_kernel_version.c
Normal file
@ -0,0 +1,156 @@
|
||||
/* Copyright (C) 2000-2002 SuSE Linux AG, Nuremberg.
|
||||
|
||||
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, or (at your option)
|
||||
any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software Foundation,
|
||||
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
int
|
||||
main (int argc, char *argv[])
|
||||
{
|
||||
FILE *fp;
|
||||
#define MAX_VERSION_LENGTH 80
|
||||
char buffer[4096 + MAX_VERSION_LENGTH]; /* buffer + sizeof ("Linux version .....") */
|
||||
char command[512] = "";
|
||||
int found = 0;
|
||||
|
||||
if (argc != 2)
|
||||
{
|
||||
char msg[] = "usage: get_kernel_version <kernel_image>\n";
|
||||
write (2, msg, sizeof (msg));
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* check if file exist and is compressed */
|
||||
{
|
||||
unsigned char buf [2];
|
||||
int fd = open (argv[1], O_RDONLY);
|
||||
if (fd == -1)
|
||||
{
|
||||
fprintf (stderr, "Cannot open kernel image \"%s\"\n", argv[1]);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (read (fd, buf, 2) != 2)
|
||||
{
|
||||
fprintf (stderr, "Short read\n");
|
||||
close (fd);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (buf [0] == 037 && (buf [1] == 0213 || buf [1] == 0236))
|
||||
{
|
||||
snprintf (command, sizeof (command), "/bin/gzip -dc %s 2>/dev/null", argv[1]);
|
||||
fp = popen (command, "r");
|
||||
if (fp == NULL)
|
||||
{
|
||||
fprintf (stderr, "%s: faild\n", command);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
fp = fopen (argv[1],"r");
|
||||
}
|
||||
close (fd);
|
||||
}
|
||||
|
||||
memset (buffer, 0, sizeof (buffer));
|
||||
|
||||
|
||||
while (!found)
|
||||
{
|
||||
ssize_t in;
|
||||
int i;
|
||||
|
||||
in = fread (&buffer[MAX_VERSION_LENGTH],
|
||||
1, sizeof (buffer) - MAX_VERSION_LENGTH, fp);
|
||||
|
||||
if (in <= 0)
|
||||
break;
|
||||
for (i = 0; i < in; i++)
|
||||
if (buffer[i] == 'L' && buffer[i+1] == 'i' &&
|
||||
buffer[i+2] == 'n' && buffer[i+3] == 'u' &&
|
||||
buffer[i+4] == 'x' && buffer[i+5] == ' ' &&
|
||||
buffer[i+6] == 'v' && buffer[i+7] == 'e' &&
|
||||
buffer[i+8] == 'r' && buffer[i+9] == 's' &&
|
||||
buffer[i+10] == 'i' && buffer[i+11] == 'o' &&
|
||||
buffer[i+12] == 'n' && buffer[i+13] == ' ')
|
||||
{
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
if (found)
|
||||
{
|
||||
int j;
|
||||
for (j = i+14; buffer[j] != ' '; j++);
|
||||
buffer[j] = '\0';
|
||||
printf ("%s\n", &buffer[i+14]);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (in < (sizeof (buffer) - MAX_VERSION_LENGTH))
|
||||
break;
|
||||
memcpy (&buffer[0], &buffer[sizeof (buffer) - MAX_VERSION_LENGTH],
|
||||
MAX_VERSION_LENGTH);
|
||||
memset (&buffer[MAX_VERSION_LENGTH], 0,
|
||||
sizeof (buffer) - MAX_VERSION_LENGTH);
|
||||
}
|
||||
}
|
||||
|
||||
if(!found) {
|
||||
/* ia32 kernel */
|
||||
if(
|
||||
!fseek(fp, 0x202, SEEK_SET) &&
|
||||
fread(buffer, 1, 4, fp) == 4 &&
|
||||
buffer[0] == 0x48 && buffer[1] == 0x64 &&
|
||||
buffer[2] == 0x72 && buffer[3] == 0x53 &&
|
||||
!fseek(fp, 0x20e, SEEK_SET) &&
|
||||
fread(buffer, 1, 2, fp) == 2
|
||||
) {
|
||||
unsigned ofs = 0x200 + ((unsigned char *) buffer)[0] + (((unsigned char *) buffer)[1] << 8);
|
||||
|
||||
if(
|
||||
!fseek(fp, ofs, SEEK_SET) &&
|
||||
fread(buffer, 1, MAX_VERSION_LENGTH, fp) == MAX_VERSION_LENGTH
|
||||
) {
|
||||
char *s = buffer;
|
||||
|
||||
for(s[MAX_VERSION_LENGTH] = 0; *s; s++) if(*s == ' ') { *s = 0; break; }
|
||||
if(*buffer) {
|
||||
found = 1;
|
||||
printf("%s\n", buffer);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (command[0] != '\0')
|
||||
pclose (fp);
|
||||
else
|
||||
fclose (fp);
|
||||
|
||||
if (found)
|
||||
return 0;
|
||||
else
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
1
get_version_number.sh
Normal file
1
get_version_number.sh
Normal file
@ -0,0 +1 @@
|
||||
echo ${BUILD_DISTRIBUTION_VERSION%-*}
|
3
sysconfig_parts.tar.bz2
Normal file
3
sysconfig_parts.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9d73eb20f0b00a541453e1a4979b33d1278e34dfe98863afd71ae6b1e9f44752
|
||||
size 8083
|
Loading…
Reference in New Issue
Block a user