6be94cf3f403c7d8bd70237f99cc76b30aa3da63
[people/pmueller/ipfire-2.x.git] / lfs / configroot
1 ###############################################################################
2 # This file is part of the IPCop Firewall.                                    #
3 #                                                                             #
4 # IPCop is free software; you can redistribute it and/or modify               #
5 # it under the terms of the GNU General Public License as published by        #
6 # the Free Software Foundation; either version 2 of the License, or           #
7 # (at your option) any later version.                                         #
8 #                                                                             #
9 # IPCop is distributed in the hope that it will be useful,                    #
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of              #
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
12 # GNU General Public License for more details.                                #
13 #                                                                             #
14 # You should have received a copy of the GNU General Public License           #
15 # along with IPCop; if not, write to the Free Software                        #
16 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA    #
17 #                                                                             #
18 # Makefiles are based on LFSMake, which is                                    #
19 # Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com>                        #
20 #                                                                             #
21 ###############################################################################
22
23 ###############################################################################
24 # Definitions
25 ###############################################################################
26
27 include Config
28
29 VER        = ipfire
30
31 THISAPP    = configroot
32 DIR_APP    = $(DIR_SRC)/$(THISAPP)
33 TARGET     = $(DIR_INFO)/$(THISAPP)
34
35 ###############################################################################
36 # Top-level Rules
37 ###############################################################################
38
39 install : $(TARGET)
40
41 check :
42
43 download :
44
45 md5 :
46
47 ###############################################################################
48 # Installation Details
49 ###############################################################################
50
51 $(TARGET) :
52         @$(PREBUILD)
53
54         # Create all directories
55         for i in addon-lang alcatelusb auth backup ca certs cnx_pci connscheduler crls ddns dhcp dhcpc dmzholes \
56             eagle-usb eciadsl ethernet extrahd/bin isdn key langs logging main mbmon menu.d modem net-traffic nfs optionsfw outgoing/bin patches pakfire portfw \
57             ppp private proxy/advanced qos/bin red remote snort time updatexlrator/bin updatexlrator/autocheck urlfilter/autoupdate urlfilter/bin upnp vpn \
58             wakeonlan wireless xtaccess ; do \
59                 mkdir -p $(CONFIG_ROOT)/$$i; \
60         done
61
62         # Touch empty files
63         for i in auth/users backup/include.user backup/exclude.user \
64             certs/index.txt ddns/config ddns/noipsettings ddns/settings ddns/ipcache dhcp/settings \
65             dhcp/fixleases dhcp/advoptions dmzholes/config ethernet/aliases ethernet/settings \
66             extrahd/scan extrahd/devices extrahd/partitions extrahd/settings \
67             isdn/settings main/hosts main/settings optionsfw/settings outgoing/settings outgoing/rules pakfire/settings \
68             portfw/config ppp/settings-1 ppp/settings-2 ppp/settings-3 ppp/settings-4 \
69             ppp/settings-5 ppp/settings proxy/settings proxy/advanced/settings remote/settings qos/settings qos/classes qos/subclasses qos/level7config qos/portconfig \
70             qos/tosconfig snort/settings upnp/settings vpn/config vpn/settings vpn/ipsec.conf \
71             vpn/ipsec.secrets vpn/caconfig wakeonlan/clients.conf wireless/config wireless/settings; do \
72                 touch $(CONFIG_ROOT)/$$i; \
73         done
74
75         # Copy initial configfiles
76         cp $(DIR_SRC)/config/cfgroot/header.pl                  $(CONFIG_ROOT)/
77         cp $(DIR_SRC)/config/cfgroot/general-functions.pl       $(CONFIG_ROOT)/
78         cp $(DIR_SRC)/config/cfgroot/lang.pl                    $(CONFIG_ROOT)/
79         cp $(DIR_SRC)/config/cfgroot/countries.pl                       $(CONFIG_ROOT)/
80         cp $(DIR_SRC)/config/cfgroot/advoptions-list            $(CONFIG_ROOT)/dhcp/advoptions-list
81         cp $(DIR_SRC)/config/cfgroot/backup-exclude             $(CONFIG_ROOT)/backup/exclude.system
82         cp $(DIR_SRC)/config/cfgroot/backup-include             $(CONFIG_ROOT)/backup/include.system
83         cp $(DIR_SRC)/config/cfgroot/backup-exclude.hardware    $(CONFIG_ROOT)/backup/exclude.hardware
84         cp $(DIR_SRC)/config/cfgroot/connscheduler-lib.pl       $(CONFIG_ROOT)/connscheduler/lib.pl
85         cp $(DIR_SRC)/config/cfgroot/connscheduler.conf         $(CONFIG_ROOT)/connscheduler
86         cp $(DIR_SRC)/config/extrahd/*                          $(CONFIG_ROOT)/extrahd/bin/
87         cp $(DIR_SRC)/config/cfgroot/mbmon-settings             $(CONFIG_ROOT)/mbmon/settings
88         cp $(DIR_SRC)/config/menu/*                                     $(CONFIG_ROOT)/menu.d/
89         cp $(DIR_SRC)/config/cfgroot/modem-defaults             $(CONFIG_ROOT)/modem/defaults
90         cp $(DIR_SRC)/config/cfgroot/modem-settings             $(CONFIG_ROOT)/modem/settings
91         cp $(DIR_SRC)/config/cfgroot/net-traffic-lib.pl         $(CONFIG_ROOT)/net-traffic/net-traffic-lib.pl
92         cp $(DIR_SRC)/config/cfgroot/nfs-server                 $(CONFIG_ROOT)/nfs/nfs-server
93         cp $(DIR_SRC)/config/cfgroot/p2protocols                        $(CONFIG_ROOT)/outgoing/p2protocols
94         cp $(DIR_SRC)/config/outgoingfw/outgoingfw.pl           $(CONFIG_ROOT)/outgoing/bin/
95         cp $(DIR_SRC)/config/cfgroot/proxy-acl                  $(CONFIG_ROOT)/proxy/acl-1.4
96         cp $(DIR_SRC)/config/qos/*                                      $(CONFIG_ROOT)/qos/bin/
97         cp $(DIR_SRC)/config/cfgroot/ssh-settings                       $(CONFIG_ROOT)/remote/settings
98         cp $(DIR_SRC)/config/cfgroot/xtaccess-config            $(CONFIG_ROOT)/xtaccess/config
99         cp $(DIR_SRC)/config/cfgroot/time-settings              $(CONFIG_ROOT)/time/settings
100         cp $(DIR_SRC)/config/cfgroot/logging-settings           $(CONFIG_ROOT)/logging/settings
101         cp $(DIR_SRC)/config/cfgroot/useragents                 $(CONFIG_ROOT)/proxy/advanced
102         cp $(DIR_SRC)/langs/list                                        $(CONFIG_ROOT)/langs/
103
104         # Oneliner configfiles
105         echo  "ENABLED=off"             > $(CONFIG_ROOT)/vpn/settings
106         echo  "VPN_DELAYED_START=0"     >>$(CONFIG_ROOT)/vpn/settings
107         echo  "01"                      > $(CONFIG_ROOT)/certs/serial
108         echo  "nameserver    1.2.3.4"   > $(CONFIG_ROOT)/ppp/fake-resolv.conf
109         echo  "DISABLEPING=NO"          > $(CONFIG_ROOT)/optionsfw/settings
110
111         # Modify variables in header.pl
112         sed -i -e "s+CONFIG_ROOT+$(CONFIG_ROOT)+g" \
113             -e "s+VERSION+$(VERSION)+g" \
114             $(CONFIG_ROOT)/header.pl
115
116         # Modify variables in general-functions.pl
117         sed -i -e "s+CONFIG_ROOT+$(CONFIG_ROOT)+g" \
118             -e "s+VERSION+$(VERSION)+g" \
119             $(CONFIG_ROOT)/general-functions.pl
120
121         # Modify CONFIG_ROOT in lang.pl
122         sed -i -e "s+CONFIG_ROOT+$(CONFIG_ROOT)+g" \
123             $(CONFIG_ROOT)/lang.pl
124
125         # Language files
126         cp $(DIR_SRC)/langs/de/cgi-bin/de.pl $(CONFIG_ROOT)/langs/
127         cp $(DIR_SRC)/langs/en/cgi-bin/en.pl $(CONFIG_ROOT)/langs/
128
129         # Configroot permissions
130         chown -R nobody:nobody $(CONFIG_ROOT)
131         chown      root:root   $(CONFIG_ROOT)
132         for i in backup/ header.pl general-functions.pl lang.pl addon-lang/ langs/ red/ ; do \
133             chown -R root:root $(CONFIG_ROOT)/$$i; \
134         done
135         chown root:nobody $(CONFIG_ROOT)/dhcpc
136
137         @$(POSTBUILD)