-
Notifications
You must be signed in to change notification settings - Fork 3
/
bedrock.conf
291 lines (253 loc) · 11.9 KB
/
bedrock.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
[locale]
timezone = Europe/Kyiv
localegen = en_US.UTF-8 UTF-8
LANG = en_US.UTF-8
[init]
timeout = 0
default = void:/sbin/init
paths = /sbin/init, /sbin/fallback-init, /sbin/myinit, /sbin/ninit, /sbin/openrc-init, /sbin/runit-init, /sbin/simpleinit, /sbin/upstart, /lib/sysvinit/init, /lib/systemd/systemd, /usr/lib/systemd/systemd, /sbin/dinit
modules = usbhid, hid, hid_generic
[global]
share = /boot, /dev, /home, /lib/modules, /media, /mnt, /proc, /root, /run, /sys, /tmp
bind = /bedrock, /bedrock/cross, /bedrock/run, /bedrock/strata/bedrock
etc = adjtime, crypttab, default/grub, fstab, group, group+, group-, group.OLD, group.org, gshadow, gshadow+, gshadow-, gshadow.OLD, gshadow.org, hostname, hosts, login.defs, machine-id, modprobe.d/blacklist.conf, passwd, passwd+, passwd-, passwd.OLD, passwd.org, rc.local, resolv.conf, resolvconf/run, shadow, shadow+, shadow-, shadow.OLD, shadow.org, sudoers, security/limits.conf, sysctl.conf
[symlinks]
#
# Enforce various symlinks are in place at local paths. This is applied at
# stratum enable/repair time.
#
# Keys are local paths, values are symlink contents.
#
# The symlink contents must be absolute paths.
#
#
# Some package managers attempt to update this. They become upset if it is
# created between an unlink() and symlink(), making it unsuitable for
# [etc-symlinks] below.
#
# Different distros use slightly different values here that are all effectively
# the same. Rather than attempt to fight distros in this regard, Bedrock has
# hard-coded internal support for multiple valid values here and may not
# respect changes to this field.
/etc/mtab = /proc/self/mounts
#
# Some distros may expect a file at one path while others expect it at another.
# Standardize the location of global files.
#
/var/lib/dbus/machine-id = /etc/machine-id
/var/run = /run
#
# Various programs need to be configured to properly interact with Bedrock
# subsystems. Point them to Bedrock configuration.
#
/etc/systemd/system/bedrock-fix-mounts.service = /bedrock/share/systemd/bedrock-fix-mounts.service
/etc/systemd/system/bedrock-stop-fuse-filesystems.service = /bedrock/share/systemd/bedrock-stop-fuse-filesystems.service
/etc/systemd/system/multi-user.target.wants/bedrock-fix-mounts.service = /bedrock/share/systemd/bedrock-fix-mounts.service
/etc/systemd/system/multi-user.target.wants/bedrock-stop-fuse-filesystems.service = /bedrock/share/systemd/bedrock-stop-fuse-filesystems.service
/etc/systemd/system/bedrock-fix-resolv.service = /bedrock/share/systemd/bedrock-fix-resolv.service
/etc/systemd/system/network-online.target.wants/bedrock-fix-resolv.service = /bedrock/share/systemd/bedrock-fix-resolv.service
/etc/X11/xorg.conf.d/99-bedrock-fonts.conf = /bedrock/run/xorg-fonts
/etc/fonts/conf.d/99-bedrock-fonts.conf = /bedrock/share/fonts/fontconf.conf
/etc/X11/Xsession.d/99bedrock_env = /bedrock/run/profile
/etc/X11/xinit/xinitrc.d/99bedrock_env = /bedrock/run/profile
/etc/bash_completion.d/brl = /bedrock/share/bash/completion/brl
/etc/bash_completion.d/strat = /bedrock/share/bash/completion/strat
/etc/fish/conf.d/99bedrock.fish = /bedrock/run/fprofile
/etc/fish/completions/brl.fish = /bedrock/share/fish/completion/brl.fish
/etc/fish/completions/strat.fish = /bedrock/share/fish/completion/strat.fish
/etc/resolvconf/update.d/00bedrock = /bedrock/share/resolvconf/00bedrock
#
# In general, system software such as Bedrock should not manipulate /usr/local.
# Bedrock should favor configuring /etc files instead.
#
# However, dbus's dbus-daemon-launch-helper seems to ignore /etc/dbus-1/
# configuration extending the search path. See
# https://bugs.freedesktop.org/show_bug.cgi?id=92458 for a discussion on the
# matter. For example:
#
# > Note that d-d-l-h only reads .service files from standard hard-coded paths,
# > not from any additional paths that you might have configured
#
# Since /usr/local/share/dbus is included in the hard-coded paths, is not used
# by most package managers, and is rarely used by end-users, it's the cleanest
# option available to teach dbus about /bedrock/cross.
#
/usr/local/share/dbus-1/system-services = /bedrock/cross/dbus-system
/usr/local/share/dbus-1/services = /bedrock/cross/dbus-session
#
# Some distros use a swap file and include reference to it in their fstab.
# This must be global so that it is valid when using an init from another
# stratum. However, it is not clear if it would work well with any of the
# established techniques in [global]. Instead, symlink it into a known global
# directory.
#
[etc-symlinks]
#
# Dynamically enforce various symlinks are in place at local paths. Any change
# away from specified configuration is immediately undone.
#
# Keys are local paths relative to /etc, values are symlink contents.
#
# The symlink contents must be absolute paths.
#
#
# Some init systems attempt to change these values at boot time, just after
# being enabled. Thus, symlinks-general will not suffice.
#
localtime = /bedrock/run/localtime
environment = /bedrock/run/environment
[etc-inject]
#
# Not all programs can be adequately/reliably configured by creating new,
# cleanly isolated configuration files. Instead, a configuration file must be
# extended to include desired configuration without clobbering its stratum
# local configuration. Typically these configuration files are in /etc.
#
# Bedrock ensures that, should certain files exist in /etc, they will include
# content specified at another file path. If the desired content is not found
# in the file it is automatically appended to the end.
#
# The keys are file paths relative to /etc, and the values are paths to files
# whose content must be included if the key's file exists in /etc.
#
# If you alter either the key/values in this section, or the actual content of
# the values, run `brl apply` to apply the change. Do this before rebooting
# to ensure any old content is removed.
#
sudoers = /bedrock/share/sudo/include-bedrock
profile = /bedrock/share/shells/include-bedrock
#
# etc-inject only injects existing files and does create make files in order to
# avoid creating a file a package manager does not expect. Different distro
# zsh packages provide different files, requiring multiple zsh file injections.
#
zprofile = /bedrock/share/zsh/include-bedrock
zshenv = /bedrock/share/zsh/include-bedrock
zsh/zprofile = /bedrock/share/zsh/include-bedrock
zsh/zshenv = /bedrock/share/zsh/include-bedrock
[env-vars]
#
# Many programs search environment variables consisting of a (usually colon
# separated) list of directories. We can use these to teach these programs
# about cross-stratum content.
#
# These variables are typically searched in listed order. To manage this
# order, the configuration below is broken up into three sections for each
# variable:
#
# - PREFIX:<envvar> entries. Bedrock ensures these are at the front of the
# environment variable. These are used to ensure a given resource is provided
# by a specific stratum. For example, this ensures `reboot` is provided by the
# init stratum.
#
# - INFIX:<envvar> entries. These are used to ensure a given entry comes from
# the local stratum. For example, some software may request to be launched by
# sh via `#!/usr/bin/env sh` but utilize bash-isms which are valid on some
# distros which symlink `sh` to `bash`, but not others which don't. Such
# software must use the local stratum's `sh` to ensure the `bash` shell they
# expect is utilized.
#
# - SUFFIX:<envvar> entries. Bedrock ensures these are at the end of the
# environment variable. Given the PREFIX:<envvar> (specific stratum) and
# INFIX:<envvar> (local stratum) do not contain the item, it likely does not
# matter which stratum provides it, and so this contains resources from any
# strata which provide the resource.
#
PREFIX:PATH = /bedrock/cross/pin/bin:/bedrock/bin
INFIX:PATH = /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/usr/local/games:/usr/games
SUFFIX:PATH = /bedrock/cross/bin
PREFIX:MANPATH = /bedrock/cross/pin/man:/bedrock/share/man
INFIX:MANPATH = /usr/local/share/man:/usr/share/man:/bedrock/cross/man
SUFFIX:MANPATH = /bedrock/cross/man
PREFIX:INFOPATH = /bedrock/cross/pin/info:/bedrock/share/info
INFIX:INFOPATH = /usr/local/share/info:/usr/share/info
SUFFIX:INFOPATH = /bedrock/cross/info
PREFIX:XDG_DATA_DIRS = /bedrock/cross/pin
INFIX:XDG_DATA_DIRS = /usr/local/share:/usr/share
SUFFIX:XDG_DATA_DIRS = /bedrock/cross
PREFIX:TERMINFO_DIRS = /bedrock/cross/pin/terminfo
INFIX:TERMINFO_DIRS = /usr/local/share/terminfo:/usr/share/terminfo
SUFFIX:TERMINFO_DIRS = /bedrock/cross/terminfo
PREFIX:fpath = /bedrock/share/zsh/completion
SUFFIX:fpath = /bedrock/cross/zsh-completion
[restriction]
restrict = apt-key, cave, debuild, dpkg-buildpackage, firecfg, firejail, firetools, gdb, git, kiss, makepkg, pkgmk, prt-get, rpmbuild, cmake
[cross]
priority = void, arch
[cross-pass]
man = $MANPATH
info = $INFOPATH
icons = $XDG_DATA_DIRS/icons
pixmaps = $XDG_DATA_DIRS/pixmaps
themes = $XDG_DATA_DIRS/themes
backgrounds = $XDG_DATA_DIRS/backgrounds
zoneinfo = /usr/share/zoneinfo
terminfo = $TERMINFO_DIRS
src = /usr/local/src, /usr/src
bash-completion = /usr/share/bash-completion
zsh-completion = $fpath
firmware = /lib/firmware/updates/UTS_RELEASE, /lib/firmware/updates, /lib/firmware/UTS_RELEASE, /lib/firmware
[cross-bin]
bin = $PATH
#
# These programs are strongly related to the init system. If the stratum
# providing init provides these commands, that version should take priority.
# Typical Bedrock systems have /bedrock/pin/bin/ at the front of the $PATH.
#
pin/bin/systemctl = init:$PATH/systemctl
pin/bin/rc-service = init:$PATH/rc-service
pin/bin/rc-status = init:$PATH/rc-status
pin/bin/rc-update = init:$PATH/rc-update
pin/bin/rc-udevadm = init:$PATH/rc-udevadm
pin/bin/sv = init:$PATH/sv
pin/bin/poweroff = init:$PATH/poweroff
pin/bin/reboot = init:$PATH/reboot
pin/bin/shutdown = init:$PATH/shutdown
pin/bin/halt = init:$PATH/halt
pin/bin/cmake = init:$PATH/cmake
pin/bin/dkms = init:$PATH/dkms
pin/bin/service = init:$PATH/service
pin/bin/dinitctl = init:$PATH/dinitctl
# [restriction]/restrict items are only restricted if run through strat or
# cross. List any such items here to ensure they are run through cross to be
# restricted.
#
# If a local instance is available, that is preferred over crossing strata
# boundaries, just in case there is some dependency on its specific quirks.
# Ensure all items here use the local alias. If the item is not available
# locally, the call will fall through to un-pinned `bin` above.
pin/bin/apt-key = local:$PATH/apt-key
pin/bin/debuild = local:$PATH/debuild
pin/bin/dpkg-buildpackage = local:$PATH/dpkg-buildpackage
pin/bin/gdb = local:$PATH/gdb
pin/bin/git = local:$PATH/git
pin/bin/kiss = local:$PATH/kiss
pin/bin/makepkg = local:$PATH/makepkg
pin/bin/pkgmk = local:$PATH/pkgmk
pin/bin/prt-get = local:$PATH/prt-get
pin/bin/rpmbuild = local:$PATH/rpmbuild
[cross-ini]
applications = $XDG_DATA_DIRS/applications
thumbnailers = $XDG_DATA_DIRS/thumbnailers
xsessions = init:$XDG_DATA_DIRS/xsessions, $XDG_DATA_DIRS/xsessions
wayland-sessions = init:$XDG_DATA_DIRS/wayland-sessions, $XDG_DATA_DIRS/wayland-sessions
dbus-system = /usr/share/dbus-1/system-services
dbus-session = /usr/share/dbus-1/services
[cross-font]
fonts = /usr/share/fonts
[pmm]
user-interface = xbps
priority = void:, arch:yay
ignore-non-system-package-managers = false
unprivileged-user = $SUDO_USER
warn-about-skipping-package-managers = true
cache-package-manager-list = true
cache-package-database = true
[brl-fetch-mirrors]
mirror-prefix = https://ftp.fau.de
alpine = http://uk.alpinelinux.org/alpine/
[brl-update]
mirrors = https://raw.githubusercontent.com/bedrocklinux/bedrocklinux-userland/0.7/releases, https://raw.githubusercontent.com/bedrocklinux/bedrocklinux-userland/0.7beta/releases
[miscellaneous]
cache-life = 30
color = true