Skip to content

Commit a8521c7

Browse files
committed
imageprofile: invert the conditional_packages logic
1 parent bf40bb1 commit a8521c7

File tree

4 files changed

+106
-75
lines changed

4 files changed

+106
-75
lines changed

group_vars/all/imageprofile.yml

Lines changed: 50 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,19 @@ imagebuilder_filename: "openwrt-imagebuilder-{{ openwrt_version }}-{{ target | r
1212
imagebuilder: "{{ openwrt_mirror }}/{{ openwrt_base }}/targets/{{ target }}/{{ imagebuilder_filename }}"
1313
feed: "src/gz openwrt_falter https://firmware.berlin.freifunk.net/feed/{{ feed_version }}/packages/__INSTR_SET__/falter"
1414

15+
# The packages list is spread over a number of lists for two reasons:
16+
# 1. Individual locations want to override particular packages
17+
# without dealing with the complete packages list.
18+
# 2. We want to omit certain packages based on device properties or config,
19+
# e.g. devices with low ram / low flash, or with or without tunspace uplink.
20+
1521
all__packages__to_merge:
16-
- ethtool
1722
- ip6tables-nft # Its not pulled in by default anymore bc fw4
1823
- iptables-nft
19-
- iperf3
20-
- iwinfo
2124
- ip
2225
- kmod-nft-bridge
2326
- mtr
2427
- nftables
25-
- tcpdump-mini
26-
- vnstat
2728
- -ppp
2829
- -ppp-mod-pppoe
2930

@@ -46,5 +47,47 @@ all_collectd__packages__to_merge:
4647
- collectd-mod-ping
4748
- collectd-mod-uptime
4849

49-
all__disabled_services__to_merge:
50-
- "olsrd6"
50+
multicore__packages__to_merge:
51+
- irqbalance
52+
53+
# Will be removed unless wifi_roaming
54+
dawn__packages__to_merge:
55+
- dawn
56+
- luci-app-dawn
57+
- umdns
58+
59+
# Will be removed unless it's a device with DSA switch driver
60+
dsa__packages__to_merge:
61+
- ip-bridge
62+
63+
zram__packages__to_merge:
64+
- zram-swap
65+
66+
notlow__packages__to_merge:
67+
- ethtool
68+
- iperf3
69+
- iwinfo
70+
- libiwinfo-lua
71+
- collectd-mod-iwinfo
72+
- tcpdump
73+
- vnstat
74+
75+
low__packages__to_merge:
76+
- tcpdump-mini
77+
- -opkg
78+
- -kmod-ipt-core
79+
- -kmod-ipt-offload
80+
- -kmod-nf-ipt
81+
- -kmod-nls-base
82+
- -kmod-phy-ath79-usb
83+
- -kmod-usb-core
84+
- -kmod-usb-ehci
85+
- -kmod-usb-ohci
86+
- -kmod-usb2
87+
88+
qos__packages__to_merge:
89+
- qos-scripts
90+
91+
# This will be overridden unless low_mem
92+
low__disabled_services__to_merge:
93+
- uhttpd

group_vars/role_corerouter/imageprofile.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,18 @@ collectd__packages__to_merge:
2929
bird__packages__to_merge:
3030
- bird2-babelpatch
3131
- bird2c
32+
33+
tunnel__packages__to_merge:
34+
- tunspace
35+
- wireguard-tools
36+
37+
dfs__packages__to_merge:
38+
- airos-dfs-reset
39+
40+
util__packages__to_merge:
41+
- mosh-server
42+
- tmux
43+
44+
# There's no way to install only olsrd without olsrd6
45+
all__disabled_services__to_merge:
46+
- "olsrd6"
Lines changed: 37 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,97 +1,70 @@
11
---
2-
- name: "Add irqbalance if multicore"
2+
3+
- name: "Omit irqbalance unless multicore"
34
set_fact:
4-
packages: "{{ packages + ['irqbalance'] }}"
5+
multicore__packages__to_merge: []
56
when:
6-
- multicore|default(false)|bool
7+
- not (multicore | default(false))
78

8-
- name: "Add airos-dfs-reset if configured"
9+
- name: "Omit airos-dfs-reset unless configured"
910
set_fact:
10-
packages: "{{ packages + ['airos-dfs-reset'] }}"
11+
dfs__packages__to_merge: []
1112
when:
12-
- airos_dfs_reset|default([])|length > 0
13-
- role == 'corerouter'
13+
- not (airos_dfs_reset | default([]) | count > 1)
1414

15-
- name: "Add Dawn + Luci app for corerouters"
15+
- name: "Omit DAWN unless configured"
1616
set_fact:
17-
packages: "{{ packages + [item] }}"
17+
dawn__packages__to_merge: []
1818
when:
19-
- role == 'corerouter' or role == 'ap'
20-
- not (low_mem | default(false))
21-
- not (low_flash | default(false))
22-
- wifi_roaming | default(false)
23-
loop:
24-
- dawn
25-
- luci-app-dawn
26-
- umdns
19+
- not (wifi_roaming | default(false))
2720

28-
- name: "Add tunspace if configured"
21+
- name: "Omit tunspace unless configured"
2922
set_fact:
30-
packages: "{{ packages + ['tunspace', 'wireguard-tools'] }}"
23+
tunnel__packages__to_merge: []
3124
when:
32-
- networks is defined
33-
- networks | selectattr('role', 'defined') | selectattr('role','equalto','tunnel') | count > 0
34-
- role == 'corerouter'
25+
- networks is not defined or networks | selectattr('role','equalto','tunnel') | count == 0
3526

36-
- name: "Add zram-swap on low mem and big flash"
27+
- name: "Omit zram-swap unless low mem and big flash"
3728
set_fact:
38-
packages: "{{ packages + ['zram-swap'] }}"
29+
zram__packages__to_merge: []
3930
when:
40-
- low_mem | default(false)
41-
- not (low_flash | default(false))
31+
# CONFIG_KERNEL_SWAP is disabled on many low_flash devices (citation needed)
32+
- not (low_mem | default(false) and not (low_flash | default(false)))
4233

43-
- name: "Add debugging-packages on core-routers"
34+
- name: "Omit corerouter utilities if low mem or low flash"
4435
set_fact:
45-
packages: "{{ packages + ['mosh-server', 'tmux'] }}"
36+
util__packages__to_merge: []
4637
when:
47-
- role == 'corerouter'
48-
- not (low_mem | default(false))
49-
- not (low_flash | default(false))
38+
- low_mem | default(false) or low_flash | default(false)
5039

51-
- name: "Remove or replace packages on low mem and low flash"
40+
- name: "Omit notlow packages if low mem or low flash"
5241
set_fact:
53-
packages: "{{ packages + [item] }}"
42+
notlow__packages__to_merge: []
5443
when: low_mem | default(false) or low_flash | default(false)
55-
loop:
56-
- -ethtool
57-
- -iperf3
58-
- -iwinfo
59-
- -libiwinfo-lua
60-
- -collectd-mod-iwinfo
61-
- -kmod-ipt-core
62-
- -kmod-ipt-offload
63-
- -kmod-nf-ipt
64-
- -kmod-nls-base
65-
- -kmod-phy-ath79-usb
66-
- -kmod-usb-core
67-
- -kmod-usb-ehci
68-
- -kmod-usb-ohci
69-
- -kmod-usb2
70-
- -opkg
71-
- -tcpdump
72-
- tcpdump-mini
73-
- -vnstat
7444

75-
- name: "Remove Luci on low mem and low flash"
45+
- name: "Omit low packages unless low mem or low flash"
46+
set_fact:
47+
low__packages__to_merge: []
48+
when: not (low_mem | default(false) or low_flash | default(false))
49+
50+
- name: "Omit LuCI if low mem or low flash unless corerouter"
7651
set_fact:
77-
packages: "{{ packages + ['-' + item] }}"
52+
all_luci_base__packages__to_merge: []
7853
when: (low_mem | default(false) or low_flash | default(false)) and role != "corerouter"
79-
loop: "{{ all_luci_base__packages__to_merge }}"
8054

81-
- name: "Disable uhttpd on low mem"
55+
- name: "Skip disabling uhttpd unless low mem"
8256
set_fact:
83-
disabled_services: "{{ disabled_services + ['uhttpd'] }}"
84-
when: low_mem | default(false)
57+
low__disabled_services__to_merge: []
58+
when: not (low_mem | default(false))
8559

86-
- name: "Add ip-bridge if dsa target"
60+
- name: "Omit ip-bridge unless DSA target"
8761
set_fact:
88-
packages: "{{ packages + ['ip-bridge'] }}"
62+
dsa__packages__to_merge: []
8963
when:
90-
- dsa_ports is defined
64+
- not (dsa_ports is defined)
9165

9266
- name: "Add QOS support if configured"
9367
set_fact:
94-
packages: "{{ packages + ['qos-scripts'] }}"
68+
qos__packages__to_merge: []
9569
when:
96-
- networks is defined
97-
- networks | selectattr('ingress', 'defined') | count > 0 or networks | selectattr('egress', 'defined') | count > 0
70+
- networks is not defined or networks | selectattr('ingress', 'defined') | count == 0 or networks | selectattr('egress', 'defined') | count == 0

roles/cfg_openwrt/tasks/main.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
---
2-
- name: Include tasks for merging variables
2+
- name: Include tasks for conditional packages
33
include_tasks:
4-
file: merge_vars.yml
4+
file: conditional_packages.yml
55
apply:
66
tags: always
77
tags: always
88

9-
- name: Include tasks for conditional packages
9+
- name: Include tasks for merging variables
1010
include_tasks:
11-
file: conditional_packages.yml
11+
file: merge_vars.yml
1212
apply:
1313
tags: always
1414
tags: always

0 commit comments

Comments
 (0)