]> git.ipfire.org Git - ipfire-2.x.git/blame - lfs/stage2
Merge branch 'temp-c165-development' into next
[ipfire-2.x.git] / lfs / stage2
CommitLineData
cd1a2927 1###############################################################################
cd1a2927 2# #
70df8302 3# IPFire.org - A linux based firewall #
06fc566a 4# Copyright (C) 2007-2020 IPFire Team <info@ipfire.org> #
70df8302
MT
5# #
6# This program is free software: you can redistribute it and/or modify #
cd1a2927 7# it under the terms of the GNU General Public License as published by #
70df8302 8# the Free Software Foundation, either version 3 of the License, or #
cd1a2927
MT
9# (at your option) any later version. #
10# #
70df8302 11# This program is distributed in the hope that it will be useful, #
cd1a2927
MT
12# but WITHOUT ANY WARRANTY; without even the implied warranty of #
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
14# GNU General Public License for more details. #
15# #
16# You should have received a copy of the GNU General Public License #
70df8302 17# along with this program. If not, see <http://www.gnu.org/licenses/>. #
cd1a2927 18# #
cd1a2927
MT
19###############################################################################
20
21###############################################################################
22# Definitions
23###############################################################################
24
25include Config
26
15679d9f
MT
27VER = ipfire
28
cd1a2927
MT
29THISAPP = stage2
30TARGET = $(DIR_INFO)/$(THISAPP)
31
32###############################################################################
33# Top-level Rules
34###############################################################################
35
36install : $(TARGET)
37
38check :
39
40download :
41
42md5 :
43
44###############################################################################
45# Installation Details
46###############################################################################
47
48$(TARGET) :
49 @$(PREBUILD)
50
51 # Create directories
7e6be0de 52 -mkdir -pv /{bin,boot,etc/opt,etc/modprobe.d,home,lib/firmware/brcm,mnt,opt,run}
59de0b00 53 -mkdir -pv /{media/{floppy,cdrom,usbkey},sbin,srv,var}
9b0ff0a0
MT
54 -install -dv -m 0750 /root
55 -install -dv -m 1777 /tmp /var/tmp
6dc206ab 56 -mkdir -pv /usr/{,local/}{bin,include,lib,sbin,src}
9b0ff0a0 57 -mkdir -pv /usr/{,local/}share/{doc,info,locale,man}
58c74d07 58 -mkdir -v /usr/{,local/}share/{misc,terminfo,xt_geoip,zoneinfo}
9b0ff0a0 59 -mkdir -pv /usr/{,local/}share/man/man{1..8}
90d372c4
MT
60 #-for dir in /usr /usr/local; do \
61 # ln -sv share/{man,doc,info} $$dir; \
62 #done
b8e2d108
AF
63
64 # Symlink /var/run -> /run.
65 ln -svf ../run /var/run
fc155193 66
ec51f20d 67ifeq "$(IS_64BIT)" "1"
fc155193
MT
68 ln -svf lib /lib64
69 ln -svf lib /usr/lib64
70endif
71
2d5494a8
MT
72ifeq "$(BUILD_ARCH)" "riscv64"
73 ln -svf . /lib/lp64d
74 ln -svf . /usr/lib/lp64d
75endif
76
cd1a2927
MT
77 # Symlinks
78 # for this reason, stage2 rebuild will broke the iso:perl, grubbatch
6c4cc7ea
MT
79 -ln -sv $(TOOLS_DIR)/bin/{bash,cat,echo,pwd,stty} /bin
80 -ln -sv $(TOOLS_DIR)/bin/perl /usr/bin
81 -ln -sv $(TOOLS_DIR)/lib/libgcc_s.so{,.1} /usr/lib
82 -ln -sv $(TOOLS_DIR)/lib/libstdc++.so{,.6} /usr/lib
83 sed 's@$(TOOLS_DIR)@/usr@' $(TOOLS_DIR)/lib/libstdc++.la > /usr/lib/libstdc++.la
9b0ff0a0 84 -ln -sv bash /bin/sh
cd1a2927
MT
85
86 # Config files
fb617ff5 87 cp -rvf $(DIR_SRC)/config/etc/* /etc;
7ae1dcb3 88 [ ! -d "$(DIR_SRC)/config/etc-$(BUILD_ARCH)" ] || cp -rvf $(DIR_SRC)/config/etc-$(BUILD_ARCH)/* /etc
7e6be0de 89 cp -rvf $(DIR_SRC)/config/lib/* /lib;
da840da8 90 touch /etc/{fs,m}tab
0b59f25c
MT
91 echo "$(NAME) v$(VERSION) - $(SLOGAN)" > /etc/issue
92 echo "===============================" >> /etc/issue
93 echo "\n running on \s \r \m" >> /etc/issue
5a7f7dd5 94 -cat /etc/motd >> /etc/issue
0b59f25c 95
71e32384
MT
96 # Bash startup files
97 install --directory --mode=0755 --owner=root --group=root /etc/profile.d
98 for i in $(DIR_SRC)/config/profile.d/*; do \
99 [ -f $$i ] && cp $$i /etc/profile.d; \
100 done
05402246 101 chmod 755 /etc/bashrc
b21b0df6
MT
102
103 # Install root's bash files.
104 for i in $(DIR_SRC)/config/bash/dot_*; do \
105 [ -f $$i ] && cp $$i /root/$$(basename $${i/dot_/\.}); \
106 done
cd1a2927
MT
107
108 # Scripts
109 for i in `find $(DIR_SRC)/src/scripts -maxdepth 1 -type f`; do \
110 sed "s+CONFIG_ROOT+$(CONFIG_ROOT)+g" $$i > /usr/local/bin/`basename $$i`; \
111 chmod 755 /usr/local/bin/`basename $$i`; \
112 done
113
07cdb8f6 114 # Move script to correct place.
708f2b73 115 mv -vf /usr/local/bin/openvpn-metrics /usr/sbin/
07cdb8f6 116 mv -vf /usr/local/bin/ovpn-ccd-convert /usr/sbin/
462056ad 117 mv -vf /usr/local/bin/ovpn-collectd-convert /usr/sbin/
4d900227 118 mv -vf /usr/local/bin/captive-cleanup /usr/bin/
462056ad 119
73372ed4
MT
120 # Install firewall scripts.
121 mkdir -pv /usr/lib/firewall
122 install -m 755 $(DIR_SRC)/config/firewall/rules.pl \
123 /usr/lib/firewall/rules.pl
124 install -m 644 $(DIR_SRC)/config/firewall/firewall-lib.pl \
125 /usr/lib/firewall/firewall-lib.pl
6c920b19
MT
126 install -m 755 $(DIR_SRC)/config/firewall/ipsec-policy \
127 /usr/lib/firewall/ipsec-policy
73372ed4 128
cd1a2927
MT
129 # Nobody user
130 -mkdir -p /home/nobody
131 chown -R nobody:nobody /home/nobody
132
9b0ff0a0 133 # Create /var dirs and files
b8e2d108 134 -mkdir -v /var/{lock,log,mail,spool,empty}
e4a5b224 135 -mkdir -pv /var/{opt,cache,lib/misc,local}
069ae085
MT
136 -mkdir -pv /var/log/{counter,calamaris}
137 chown nobody.nobody /var/log/calamaris
5edc06b7 138 touch /var/log/{btmp,lastlog,wtmp}
057aaf42 139 chmod -v 600 /var/log/btmp
b8e2d108
AF
140 chgrp -v utmp /var/log/lastlog
141 chmod -v 664 /var/log/lastlog
b474c1ca 142
90d372c4
MT
143 # Permissions
144 chmod 0711 /var/empty
99f3c72f
MT
145
146 # A small hack to include /root to the iso but not all of it's files.
147 touch /root/ipfire
90d372c4 148
7274a673
JPT
149 # License agreement
150 -mkdir -pv /usr/share/doc/licenses/
151 cp -vf $(DIR_SRC)/doc/COPYING /usr/share/doc/licenses/GPLv3
152
d02853e7
MT
153 # System release
154 echo "$(SYSTEM_RELEASE)" > /etc/system-release
155
20253656
MT
156 # OS release
157 : >/etc/os-release
158 echo "NAME=\"$(NAME)\"" >> /etc/os-release
159 echo "VERSION=\"$(VERSION)\"" >> /etc/os-release
160 echo "ID=$(SNAME)" >> /etc/os-release
161 echo "VERSION_ID=2" >> /etc/os-release
162 echo "PRETTY_NAME=\"$(SYSTEM_RELEASE)\"" >> /etc/os-release
163 echo "ANSI_COLOR=\"0:31\"" >> /etc/os-release
164
065c9931
MT
165 # Pakfire
166 -mkdir -pv /opt/pakfire/db/core
06fc566a 167 echo "$(CORE)" > /opt/pakfire/db/core/mine
065c9931 168
cd1a2927 169 @$(POSTBUILD)