ViitorMake/BaseBuild/Basesys/shadow
kueller f7dce2e084 LIBDIR wird jetzt von SetConfig gesetzt. Diese Funktion wird von genpkg for mk und postmk mit passenden
Argumenten Aufgerufen. Nebenbei wird noch UARCH auf 32 oder 64 gesetzt - jenachdem ob ein 64 Build oder ein 32 
Build stattfindet



git-svn-id: svn://svn.compuextreme.de/Viitor/V962/ViitorMake@4645 504e572c-2e33-0410-9681-be2bf7408885
2009-04-28 13:53:56 +00:00

165 lines
6.5 KiB
Bash

#!/bin/bash
#Framework, welches ein komplettes Linux System aus den Sourcen erstellt
#dieses Framework wird im CVS Repository
#:pserver:cvs.tramp-bbs.de:/opt/cvs zur Verfügung gestellt
#
#Lage dieser Datei im Archiv: $HeadURL$
#
#(c) 2003 Harald Kueller, Germany
#This program is free software; you can redistribute it and/or
#modify ist 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.
#
#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.
#
#Dies ist ein Module zur Verwendung mit genpkg. Die Erzeugung eines
#Viitor Linux Packetes wird über die Funktionen premk, mk und postmk
#gesteuert. premk() dient zur Vorbereitung des Sourcecodes. Hier können
#diverse Änderungen am sourcecode (mit awk/sed usw.) vorgenommen werden
#mk() umfasst die source Konfiguration und das Übersetzten des source
#codes. Auch die Installation muß von mk erledigt werden. Hier gild dass
#die Installation immer nach $TMPROOT erfolgen soll (meisst kann das mit
#"make DESTDIR=$TMPROOT install" angestossen werden). postmk kann
#vor der packeterstellung noch einiges am installationtree ändern. postmk
#läuft nachdem die Packetabhängigkeiten erstellt wurden.
#Das Verhalten von genpkg kann über die Variable MKPKG gesteuert werden.
#Hier müssen FLAGS zur Steuerung gesetzt werden. Folgende Flags werden
#erkannt:
#
# 1 : Package Erzeugung erzwingen. Packet wird, auch wenn es schon
# vorhanden ist, ohne weitere rückfragen neu Erzeugt.
# 2 : Package Installation erzwingen. Installpkg wird mit -f aufgerufen.
# Das bewirkt, das installpkg keine rückfragen bei der installation
# Stellt, und das packet in jedemfall (neu) installiert.
# 4 : Sourcepacket nicht nach MAKEDIR entpacken. Ist dieses Flag gesetzt
# muss sich das Module selber um das Entpacken der sourcedateien kümmern.
# vor allem wichtig bei Packeten, für die es keine source.tgz gibt
# (z.B. aus dem CVS generierte Packete).
# 8 : Erstellung des Packetes aus $TMPROOT wird unterdrückt. Dies ist bei
# manchen Sonderfällen möglich - wenn sich z.B. der Packetnamen nicht
# aus dem Namen des sourcearchives ableiten lässt. Packet sollte in
# so einem Fall in der postmk() Funktion erstellt werden.
# 16 : Packet wird nicht installiert. Bei Packeten wie tar oder bash kann
# die installation mittelst installpkg probleme machen.
# 32 : Dependics File so erzeugen, das die Abhängigkeiten bei der installation
# erfüllt sein müssen. installpkg bricht in so einem fall bei fehlenden
# packeten die installation ab, und gibt nicht "nur" warnmeldungen aus.
# Wichtig bei packeten mit postinstallroutine, die software aus dem
# frisch installierten Packet verwendet (wie z.B. postgresql)
# 64 : sourcetree aufräumen nach packeterstellung unterbinden.
#
#Module zur Erstellung des Packetes: shadow
#Quelle der Source Archive: ftp://ftp.pld.org.pl/software/shadow
#Kurzbeschreibung:
#Tools für das Shadow Password system
#
#Letzte Änderung von: $Author$
#Datum der letzten Änderung: $Date$
#Version der Datei: $Revision$
#
SRCPATH=Base/System
premk() {
touch /usr/bin/passwd /var/run/utmp /var/log/{btmp,lastlog,wtmp}
chmod 644 /var/run/utmp /var/log/{btmp,lastlog,wtmp}
mkdir ../build-shadow
cd ../build-shadow
}
mk32() {
CC="gcc ${BUILDOPTIONS32}" \
CXX="g++ ${BUILDOPTIONS32}" \
../shadow*/configure --prefix=/usr \
--libdir=/lib \
--sysconfdir=/etc \
--enable-shared \
--with-libpam \
--without-audit \
--without-selinux \
--with-libcrack
sed -i 's/groups$(EXEEXT) //' src/Makefile
find man -name Makefile -exec sed -i '/groups.1.xml/d' '{}' \;
find man -name Makefile -exec sed -i 's/groups.1 //' '{}' \;
make -j $NUMCPU
make -j $NUMCPU DESTDIR=$TMPROOT install
if [ ! -d $TMPROOT/lib ]; then
mkdir $TMPROOT/lib
fi
cp lib/.libs/libshadow.a $TMPROOT/lib/
cp libmisc/libmisc.a $TMPROOT/lib/
cd ../shadow*
rm -r ../build-shadow
mkdir ../build-shadow
cd ../build-shadow
}
mk() {
CC="gcc ${BUILDOPTIONS}" \
CC="gcc ${BUILDOPTIONS}" \
../shadow*/configure --host=$TARGET \
--prefix=/usr \
--libdir=/$LIBDIR \
--sysconfdir=/etc \
--enable-shared \
--with-libpam \
--without-audit \
--without-selinux \
--with-libcrack
sed -i 's/groups$(EXEEXT) //' src/Makefile
find man -name Makefile -exec sed -i '/groups.1.xml/d' '{}' \;
find man -name Makefile -exec sed -i 's/groups.1 //' '{}' \;
make -j $NUMCPU
make -j $NUMCPU install
make DESTDIR=$TMPROOT install
if [ ! -d $TMPROOT/$LIBDIR ]; then
mkdir $TMPROOT/$LIBDIR
fi
if [ ! -d $TMPROOT/usr/$LIBDIR ]; then
mkdir $TMPROOT/usr/$LIBDIR
fi
cp lib/.libs/libshadow.a $TMPROOT/usr/$LIBDIR
cp libmisc/libmisc.a $TMPROOT/$LIBDIR
}
postmk() {
mkdir -p $TMPROOT/{etc,bin,var,usr} $TMPROOT/usr/lib $TMPROOT/var/{log,run}
cd ../shadow*
cp etc/{limits,login.access} $TMPROOT/etc
sed -i -e "s%/var/spool/mail%/var/mail%" \
-e "s%#MD5_CRYPT_ENAB.no%MD5_CRYPT_ENAB yes%" $TMPROOT/etc/login.defs
FUNCTIONS="LASTLOG_ENAB MAIL_CHECK_ENAB PORTTIME_CHECKS_ENAB CONSOLE MOTD_FILE
NOLOGINS_FILE PASS_MIN_LEN SU_WHEEL_ONLY MD5_CRYPT_ENAB CONSOLE_GROUPS
ENVIRON_FILE ULIMIT ENV_TZ ENV_HZ ENV_SUPATH ENV_PATH QMAIL_DIR MAIL_DIR
MAIL_FILE CHFN_AUTH FAILLOG_ENAB QUOTAS_ENAB FTMP_FILE OBSCURE_CHECKS_ENAB
CRACKLIB_DICTPATH PASS_CHANGE_TRIES PASS_ALWAYS"
for function in $FUNCTIONS; do
sed -i "s/^$function/# &/" /etc/login.defs
done
touch $TMPROOT/var/run/utmp $TMPROOT/var/log/{btmp,lastlog,wtmp}
mv -v $TMPROOT/usr/bin/passwd $TMPROOT/bin
mv -v $TMPROOT/lib/libshadow.*a $TMPROOT/usr/lib
rm -v /lib/libshadow.so
cd $MAKEDIR/shadow*
ln -svf ../../lib/libshadow.so.0 $TMPROOT/usr/lib/libshadow.so
ln -svf ../../lib/libshadow.so.0 $TMPROOT/lib/libshadow.so
if [ "$MK64BIT" == "true" ]; then
mkdir -p $TMPROOT/usr/lib64
mv -v /lib64/libshadow.*a $TMPROOT/usr/lib64
rm -v $TMPROOT/lib64/libshadow.so
ln -svf ../../lib64/libshadow.so.0 $TMPROOT/usr/lib64/libshadow.so
ln -svf ../../lib64/libshadow.so.0 $TMPROOT/lib64/libshadow.so
fi
rm -r ../build-shadow
rm -r $TMPROOT/etc/pam.d
}