#!/bin/bash source ../functions/main echo "Creating /etc/fstab" cat > ${LFS}/etc/fstab << "EOF" # Device Mount point FS-type Options Dump Fsck-order # ---------------------------------------------------------------------------- EOF if [ -n "${BOOT_PARTITION}" ]; then install -v -m755 -d ${LFS}/mnt/boot echo "${BOOT_PARTITION} /mnt/boot auto ${PARTITION_MOUNT_OPTS} 0 0" >> ${LFS}/etc/fstab fi if [ -n "${SWAP_PARTITION}" ]; then echo "${SWAP_PARTITION} none swap sw 0 0" >> ${LFS}/etc/fstab fi echo "${LFS_PARTITION} / auto ${PARTITION_MOUNT_OPTS} 0 0" >> ${LFS}/etc/fstab cat >> ${LFS}/etc/fstab << "EOF" proc /proc proc defaults 0 0 sysfs /sys sysfs defaults 0 0 tmpfs /run tmpfs defaults,noatime 0 0 tmpfs /tmp tmpfs defaults,,noatime,mode=1777,size=_TMP_PARTITION_SIZE_ 0 0 devpts /dev/pts devpts gid=4,mode=620 0 0 shm /dev/shm tmpfs defaults 0 0 /dev/dvd /media/dvd auto noauto,ro,users EOF sed -i -e "s!_TMP_PARTITION_SIZE_!${TMP_PARTITION_SIZE}!g" ${LFS}/etc/fstab echo "Creating basic /etc/profile and /etc/profile.d" install -v -m755 -d ${LFS}/etc/profile.d cat > ${LFS}/etc/profile << "EOF" #!/bin/bash # /etc/profile # System-wide environment and startup programs. # Functions and aliases go in /etc/bashrc. # This is the first file read by bash during the logon process. PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin:/tools/bin:/tools/sbin USER=`id -un` LOGNAME=$USER MAIL="/var/mail/$USER" # Don't put duplicate lines in the history. HISTCONTROL=ignoredups:ignorespace HISTFILESIZE=2000 HISTSIZE=1000 HOSTNAME=`hostname` EDITOR=_DEFAULT_EDITOR_ CFLAGS="_DEFAULT_CFLAGS_" CXXFLAGS=${CFLAGS} # Set default permissions when creating new files. if [ `id -gn` = `id -un` -a `id -u` -gt 14 ]; then # Normal user umask 002 else # Root umask 022 fi if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then export INPUTRC=/etc/inputrc fi # This disables generation of 'core' files when an application exit abnormally ulimit -c 0 MANPATH=/usr/share/man:/usr/local/share/man LANG="en_US.utf8" # The sort order of ls output is affected by the locale and # can be overridden by the LC_COLLATE environment variable. # For example, if LC_COLLATE equals C, dot files appear first, # followed by names beginning with upper-case letters, then # followed by names beginning with lower-case letters. But if # LC_COLLATE equals en_US.ISO8859-1, then leading dots as well # as case are ignored in determining the sort order. LC_COLLATE=C # If this is not set, some characters (quotes) are not displayed correctly: LC_CTYPE=C export PATH MANPATH LANG LC_COLLATE LC_CTYPE PS1 PS2 USER LOGNAME MAIL HISTFILESIZE HISTSIZE HOSTNAME EDITOR CFLAGS CXXFLAGS for script in /etc/profile.d/*.sh ; do if [ -r ${script} ]; then . ${script} fi done EOF sed -i -e "s!_DEFAULT_EDITOR_!${DEFAULT_EDITOR}!g" ${LFS}/etc/profile sed -i -e "s!_DEFAULT_CFLAGS_!-pipe -O2 ${MARCH_FLAGS}!g" ${LFS}/etc/profile echo "Creating /etc/bashrc" cat > ${LFS}/etc/bashrc << "EOF" #!/bin/bash # /etc/bashrc # System wide functions and aliases # Environment stuff goes in /etc/profile alias rm='rm -i' alias mv='mv -i' alias cp='cp -i' alias df='df -h' alias du='du -h -s' # --show-control-chars is for seeing international characters in filenames alias ls='ls -h --color=auto --show-control-chars --time-style=long-iso' eval $(dircolors --sh /etc/DIR_COLORS) alias grep='grep --color=auto' alias fgrep='fgrep --color=auto' alias egrep='egrep --color=auto' alias less='less -RFX' # Pour que la touche BACKSPACE fonctionne correctement lorsque Bash nous # demande une confirmation (quand on veut effacer un fichier par exemple). if tty --quiet ; then stty erase '^H' fi # For some unknown reason bash refuses to inherit PS1 in some circumstances # that I can't figure out. Putting PS1 here ensures that it gets loaded every # time. # \h = Display hostname # \s = Display shell name (bash) # \v = Display shell version # \w = Display complete path # \W = Dispaly only current directory # \$ = Display '#' #PS1="\h(\W)\$" if [ "$TERM" = "linux" ]; then #we're on the system console or maybe telnetting in export PS1="\u(\W)\$" elif [ -n "${SSH_CONNECTION}" ]; then export PS1="\[\e]2;[\u] \w\a\e[33;1m\]ssh \H >\[\e[0m\] " else #we're not on the console, assume an xterm export PS1="\[\e]2;[\u] \w\a\e[32;1m\]>\[\e[0m\] " fi EOF install -v -m644 ${SCRDIR}/misc/DIR_COLORS ${LFS}/etc install -v -m644 ${SCRDIR}/misc/inputrc ${LFS}/etc cat >> ${LFS}/etc/modules << "EOF" # /etc/modules: kernel modules to load at boot time. # # This file contains the names of kernel modules that should be loaded # at boot time, one per line. Lines beginning with "#" are ignored. EOF echo "Creating /etc/skel and it's files" cat > ${LFS}/etc/skel/.bash_logout << "EOF" # ~/.bash_logout clear EOF cat > ${LFS}/etc/skel/.bash_profile << "EOF" # ~/.bash_profile # User specific environment and startup programs # This file is the second read by bash during the logon process. # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi BASH_ENV=$HOME/.bashrc export BASH_ENV unset USERNAME EOF cat > ${LFS}/etc/skel/.bashrc << "EOF" # ~/.bashrc # User bashrc # This file is executed each time an xterm window # is started. # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi # Source user aliases if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi EOF cat > ${LFS}/etc/skel/.bash_aliases << "EOF" # ~/.bash_aliases # User specific aliases alias hy='history' # GIT aliases alias gra='git rebase --abort' alias grc='git rebase --continue' alias gri='git rebase -i' alias gca='git commit --amend' alias vdc='vd --cached' alias gitk='gitk --all' EOF # Copy skeleton files to root user directory cp ${LFS}/etc/skel/.bash* ${LFS}/root echo "Creating /etc/shells" cat > ${LFS}/etc/shells << "EOF" /bin/sh /bin/bash EOF chmod 644 ${LFS}/etc/shells # This file contains a list of users (1 per line) who are allowed to shutdown # the computer. This doesn't mean that these users can invoke the shutdown # (or reboot or halt) command(s). Instead, it means that an authorized user # can shut down the computer by pressing ctrl+alt+del. echo "Creating /etc/shutdown.allow" echo "${REGUSER}" > ${LFS}/etc/shutdown.allow # Hostname echo "${MACHINE_NAME}" > ${LFS}/etc/hostname chmod 644 ${LFS}/etc/hostname echo "127.0.0.1 localhost ${MACHINE_NAME}" > ${LFS}/etc/hosts chmod 644 ${LFS}/etc/hosts exit $?