X-Git-Url: http://git.ipfire.org/?p=people%2Fteissler%2Fipfire-2.x.git;a=blobdiff_plain;f=lfs%2Fstage2;h=3d64f6839970ac82b223f5fbdc34ca16927afe64;hp=178cda57ae791b9d511136baecd5b3cf94bfbb6f;hb=057652c5e548c5e0b0e4e07559c21b7916335af9;hpb=cd1a2927226c734d96478e12bb768256fb64a06a diff --git a/lfs/stage2 b/lfs/stage2 index 178cda57a..3d64f6839 100644 --- a/lfs/stage2 +++ b/lfs/stage2 @@ -1,28 +1,20 @@ ############################################################################### -# This file is part of the IPCop Firewall. # # # -# IPCop is free software; you can redistribute it and/or modify # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# # +# 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 # +# the Free Software Foundation, either version 3 of the License, or # # (at your option) any later version. # # # -# IPCop is distributed in the hope that it will be useful, # +# 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 IPCop; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -# Makefiles are based on LFSMake, which is # -# Copyright (C) 2002 Rod Roard # -# # -# Modifications by: # -# ??-12-2003 Mark Wormgoor < mark@wormgoor.com> # -# - Modified Makefile for IPCop build # -# # -# $Id: stage2,v 1.14.2.5 2006/02/08 23:53:37 gespinasse Exp $ +# along with this program. If not, see . # # # ############################################################################### @@ -32,6 +24,8 @@ include Config +VER = ipfire + THISAPP = stage2 TARGET = $(DIR_INFO)/$(THISAPP) @@ -55,38 +49,48 @@ $(TARGET) : @$(PREBUILD) # Create directories - -mkdir -p /{bin,boot,dev/{pts,shm,net},etc/opt,home,lib,mnt,proc} - -mkdir -p /{root,sbin,tmp,usr/local,var,opt} - -for dirname in /usr /usr/local; do \ - mkdir $$dirname/{bin,etc,include,lib,sbin,share,src}; \ - ln -sf share/{man,doc,info} $$dirname; \ - mkdir $$dirname/share/{dict,doc,info,locale,man}; \ - mkdir $$dirname/share/{nls,misc,terminfo,zoneinfo}; \ - mkdir $$dirname/share/man/man{1,2,3,4,5,6,7,8}; \ - done - -mkdir -p /var/{lock/subsys,log,mail,run,spool} - -mkdir -p /var/{tmp,opt,cache,lib/misc,local,empty} - -mkdir /opt/{bin,doc,include,info} - -mkdir -p /opt/{lib,man/man{1,2,3,4,5,6,7,8}} - - # Permissions - chmod 0750 /root - chmod 1777 /tmp /var/tmp - chmod 0711 /var/empty + -mkdir -pv /{bin,boot,etc/opt,etc/modprobe.d,home,lib,mnt,opt,run} + -mkdir -pv /{media/{floppy,cdrom,usbkey},sbin,srv,var} + -install -dv -m 0750 /root + -install -dv -m 1777 /tmp /var/tmp + -mkdir -pv /usr/{,local/}{bin,include,lib,sbin,src} + -mkdir -pv /usr/{,local/}share/{doc,info,locale,man} + -mkdir -v /usr/{,local/}share/{misc,terminfo,zoneinfo} + -mkdir -pv /usr/{,local/}share/man/man{1..8} + #-for dir in /usr /usr/local; do \ + # ln -sv share/{man,doc,info} $$dir; \ + #done + + # Symlink /var/run -> /run. + ln -svf ../run /var/run # Symlinks # for this reason, stage2 rebuild will broke the iso:perl, grubbatch - -ln -sf /tools/bin/{bash,cat,pwd,stty} /bin - -ln -sf /tools/bin/perl /usr/bin - -ln -sf /tools/lib/libgcc_s.so.1 /usr/lib - -ln -sf bash /bin/sh + -ln -sv /tools/bin/{bash,cat,echo,pwd,stty} /bin + -ln -sv /tools/bin/perl /usr/bin + -ln -sv /tools/lib/libgcc_s.so{,.1} /usr/lib + -ln -sv /tools/lib/libstdc++.so{,.6} /usr/lib + sed 's/tools/usr/' /tools/lib/libstdc++.la > /usr/lib/libstdc++.la + -ln -sv bash /bin/sh # Config files - for i in $(DIR_SRC)/config/etc/*; do \ - [ -f $$i ] && cp $$i /etc; \ + cp -rvf $(DIR_SRC)/config/etc/* /etc; + touch /etc/mtab + echo "$(NAME) v$(VERSION) - $(SLOGAN)" > /etc/issue + echo "===============================" >> /etc/issue + echo "\n running on \s \r \m" >> /etc/issue + + # Bash startup files + install --directory --mode=0755 --owner=root --group=root /etc/profile.d + for i in $(DIR_SRC)/config/profile.d/*; do \ + [ -f $$i ] && cp $$i /etc/profile.d; \ + done + chmod 755 /etc/bashrc + + # Install root's bash files. + for i in $(DIR_SRC)/config/bash/dot_*; do \ + [ -f $$i ] && cp $$i /root/$$(basename $${i/dot_/\.}); \ done - ln -sf /proc/mounts /etc/mtab - echo "$(NAME) v$(VERSION) - $(SLOGAN)" > /etc/issue # Scripts for i in `find $(DIR_SRC)/src/scripts -maxdepth 1 -type f`; do \ @@ -94,12 +98,37 @@ $(TARGET) : chmod 755 /usr/local/bin/`basename $$i`; \ done + # Move script to correct place. + mv -vf /usr/local/bin/ovpn-ccd-convert /usr/sbin/ + # Nobody user -mkdir -p /home/nobody chown -R nobody:nobody /home/nobody - # Patches directory - -mkdir -m 1775 -p /var/patches - chown -R root:nobody /var/patches + # Create /var dirs and files + -mkdir -v /var/{lock,log,mail,spool,empty} + -mkdir -pv /var/{opt,cache,lib/{misc,locate},local} + -mkdir -pv /var/log/{counter,calamaris} + chown nobody.nobody /var/log/calamaris + touch /var/log/{btmp,lastlog,wtmp,net-traffic.log} + chgrp -v utmp /var/log/lastlog + chmod -v 664 /var/log/lastlog + + # Permissions + chmod 0711 /var/empty + + # A small hack to include /root to the iso but not all of it's files. + touch /root/ipfire + + # License agreement + -mkdir -pv /usr/share/doc/licenses/ + cp -vf $(DIR_SRC)/doc/COPYING /usr/share/doc/licenses/GPLv3 + + # System release + echo "$(SYSTEM_RELEASE)" > /etc/system-release + + # Pakfire + -mkdir -pv /opt/pakfire/db/core + echo "$(PAKFIRE_CORE)" > /opt/pakfire/db/core/mine @$(POSTBUILD)