]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blob - config/rootfiles/core/165/update.sh
9598a3a14cc333e5037d21ab71f82ab542e127a1
[people/pmueller/ipfire-2.x.git] / config / rootfiles / core / 165 / update.sh
1 #!/bin/bash
2 ############################################################################
3 # #
4 # This file is part of the IPFire Firewall. #
5 # #
6 # IPFire is free software; you can redistribute it and/or modify #
7 # it under the terms of the GNU General Public License as published by #
8 # the Free Software Foundation; either version 3 of the License, or #
9 # (at your option) any later version. #
10 # #
11 # IPFire is distributed in the hope that it will be useful, #
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 #
17 # along with IPFire; if not, write to the Free Software #
18 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #
19 # #
20 # Copyright (C) 2022 IPFire-Team <info@ipfire.org>. #
21 # #
22 ############################################################################
23 #
24 . /opt/pakfire/lib/functions.sh
25 /usr/local/bin/backupctrl exclude >/dev/null 2>&1
26
27 core=165
28
29 exit_with_error() {
30 # Set last succesfull installed core.
31 echo $(($core-1)) > /opt/pakfire/db/core/mine
32 # force fsck at next boot, this may fix free space on xfs
33 touch /forcefsck
34 # don't start pakfire again at error
35 killall -KILL pak_update
36 /usr/bin/logger -p syslog.emerg -t ipfire \
37 "core-update-${core}: $1"
38 exit $2
39 }
40
41 # Remove old core updates from pakfire cache to save space...
42 for (( i=1; i<=$core; i++ )); do
43 rm -f /var/cache/pakfire/core-upgrade-*-$i.ipfire
44 done
45
46 # Check diskspace on root
47 ROOTSPACE=`df / -Pk | sed "s| * | |g" | cut -d" " -f4 | tail -n 1`
48
49 if [ $ROOTSPACE -lt 100000 ]; then
50 exit_with_error "ERROR cannot update because not enough free space on root." 2
51 exit 2
52 fi
53
54 # Remove files
55 rm -rvf \
56 /lib/xtables/libxt_ACCOUNT.so \
57 /lib/xtables/libxt_CHAOS.so \
58 /lib/xtables/libxt_condition.so \
59 /lib/xtables/libxt_DELUDE.so \
60 /lib/xtables/libxt_dhcpmac.so \
61 /lib/xtables/libxt_DHCPMAC.so \
62 /lib/xtables/libxt_DNETMAP.so \
63 /lib/xtables/libxt_ECHO.so \
64 /lib/xtables/libxt_fuzzy.so \
65 /lib/xtables/libxt_geoip.so \
66 /lib/xtables/libxt_gradm.so \
67 /lib/xtables/libxt_iface.so \
68 /lib/xtables/libxt_IPMARK.so \
69 /lib/xtables/libxt_ipp2p.so \
70 /lib/xtables/libxt_ipv4options.so \
71 /lib/xtables/libxt_length2.so \
72 /lib/xtables/libxt_LOGMARK.so \
73 /lib/xtables/libxt_lscan.so \
74 /lib/xtables/libxt_pknock.so \
75 /lib/xtables/libxt_PROTO.so \
76 /lib/xtables/libxt_psd.so \
77 /lib/xtables/libxt_quota2.so \
78 /lib/xtables/libxt_SYSRQ.so \
79 /lib/xtables/libxt_TARPIT.so \
80 /srv/web/ipfire/cgi-bin/p2p-block.cgi \
81 /usr/bin/2to3-3.8 \
82 /usr/bin/easy_install-3.8 \
83 /usr/bin/idle3.8 \
84 /usr/bin/pip3.8 \
85 /usr/bin/pydoc3.8 \
86 /usr/bin/python3.8 \
87 /usr/bin/python3.8-config \
88 /usr/bin/xt_geoip_query \
89 /usr/lib/libpython3.8.so \
90 /usr/lib/libpython3.8.so.1.0 \
91 /usr/lib/libxt_ACCOUNT_cl.so* \
92 /usr/lib/python3.8/ \
93 /usr/sbin/iptaccount \
94 /usr/sbin/ovpn-collectd-convert \
95 /usr/sbin/pknlusr \
96 /usr/share/xt_geoip/ \
97 /var/ipfire/dhcpc/dhcpcd-hooks/10-mtu \
98 /var/ipfire/firewall/p2protocols
99
100 # Rename squid-accounting add-on to proxy-accounting, if installed
101 # (see: https://lists.ipfire.org/pipermail/development/2022-February/012482.html)
102 if [ -e "/opt/pakfire/db/installed/meta-squid-accounting" ] && [ -e "/opt/pakfire/db/meta/meta-squid-accounting" ]; then
103 mv -v /opt/pakfire/db/installed/meta-squid-accounting /opt/pakfire/db/installed/meta-proxy-accounting
104 mv -v /opt/pakfire/db/meta/meta-squid-accounting /opt/pakfire/db/meta/meta-proxy-accounting
105 mv -v /opt/pakfire/db/rootfiles/squid-accounting /opt/pakfire/db/rootfiles/proxy-accounting
106 fi
107
108 # Stop services
109
110 # Extract files
111 extract_files
112
113 # update linker config
114 ldconfig
115
116 # Update Language cache
117 /usr/local/bin/update-lang-cache
118
119 # Filesytem cleanup
120 /usr/local/bin/filesystem-cleanup
121
122 # Export location DB in new format.
123 /usr/bin/location export \
124 --directory=/var/lib/location/ipset \
125 --family=ipv4 \
126 --format=ipset
127
128 # Start services
129 telinit u
130 /etc/rc.d/init.d/firewall restart
131
132 # Rebuild IPS rules
133 perl -e "require '/var/ipfire/ids-functions.pl'; &IDS::oinkmaster();"
134 /etc/init.d/suricata reload
135
136 # This update needs a reboot...
137 touch /var/run/need_reboot
138
139 # Finish
140 /etc/init.d/fireinfo start
141 sendprofile
142
143 # Update grub config to display new core version
144 if [ -e /boot/grub/grub.cfg ]; then
145 grub-mkconfig -o /boot/grub/grub.cfg
146 fi
147
148 sync
149
150 # Don't report the exitcode last command
151 exit 0