aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-07-20librc, openrc-pam: instantiate user.<username> service automaticallyAnna (navi) Figueiredo Gomes
it's created in /run/openrc/dynamic and linked to the service in /etc at login. Signed-off-by: Anna (navi) Figueiredo Gomes <navi@vlhl.dev>
2024-07-20librc/librc-depend.c: small refactorAnna (navi) Figueiredo Gomes
some changes for code redability, and fixing leaking the whole internals of the deptree at the end of rc_deptree_update. Signed-off-by: Anna (navi) Figueiredo Gomes <navi@vlhl.dev>
2024-07-20openrc-run: allow multiplexed symlinks to live outside init.dAnna (navi) Figueiredo Gomes
use the realpath of the target to locate which sysconf dir it's in, using it as a base to load the config file. the service path is then normalized from the symlink without dereferencing it. Signed-off-by: Anna (navi) Figueiredo Gomes <navi@vlhl.dev>
2024-07-20openrc-pam: auto-launch user services via pamAnna (navi) Figueiredo Gomes
Signed-off-by: Anna (navi) Figueiredo Gomes <navi@vlhl.dev>
2024-07-19openrc-user: init script for usersAnna (navi) Figueiredo Gomes
adds a new multiplexed script for starting user sessions. it also sets up XDG_RUNTIME_DIR. Signed-off-by: Anna (navi) Figueiredo Gomes <navi@vlhl.dev>
2024-07-19openrc: dynamic paths for user servicesAnna (navi) Figueiredo Gomes
add two api functions, `rc_service_dir` and `rc_sysconf_dir`, both are generate paths (and sub-paths) for resources, and meant to replace the hardcoded variables like `RC_SVCDIR`. those functions differ by dynamically switching between the system path, or the user path, set in their home folder or runtime directory. this lays out the intial support for user services. Signed-off-by: Anna (navi) Figueiredo Gomes <navi@vlhl.dev>
2024-06-28remove the openrc-service-script bash completionWilliam Hubbs
Bash completion has two official completion directories: - completionsdir, a lazy loading mechanism - compatdir, an eager loading mechanism Modern style is to use lazy loading if possible. It is modern technology, speeds up your shell by deferring loads, and is generally recommended for applications to prefer by default. It requires you name your completion script using the same name as the command to complete. Every distro prefers you do this, but only because bash-completion itself does. The openrc-service-script completion doesn't provide a completion for a command called openrc-service-script. It cannot use the lazy loading mechanism and emits a warning in Gentoo's policy lints as a result. Installing to the completionsdir is therefore a useless no-op. Better to install nothing. The compatdir is the correct location for completions that cannot be lazy loaded and must be loaded at shell startup in order to correctly register themselves for a globbed list of commands that can only be ascertained dynamically at shell startup. The alternative is to have every command that can be globbed install a symlink to openrc-service-script, and install openrc-service-script to a third location.
2024-06-25Fix install location of openrc-service-script bash completionWilliam Hubbs
X-Gentoo-Bug-URL: https://bugs.gentoo.org/925409
2024-06-03librc: avoid using fixed-size buffers for pathsMike Gilbert
Use heap allocations instead. This avoids warnings: ``` ../src/librc/librc.c: In function ‘rc_service_mark’: ../src/librc/librc.c:817:58: warning: ‘/’ directive output may be truncated writing 1 byte into a region of size between 0 and 4095 [-Wformat-truncation=] 817 | snprintf(was, sizeof(was), "%s/%s/%s", | ^ ../src/librc/librc.c:817:25: note: ‘snprintf’ output 3 or more bytes (assuming 4098) into a destination of size 4096 817 | snprintf(was, sizeof(was), "%s/%s/%s", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 818 | file, dir->value, base); | ~~~~~~~~~~~~~~~~~~~~~~~ ../src/librc/librc.c:822:58: warning: ‘snprintf’ output may be truncated before the last format character [-Wformat-truncation=] 822 | snprintf(was, sizeof(was), "%s/%s", file, dir->value); | ^ ../src/librc/librc.c:822:25: note: ‘snprintf’ output 2 or more bytes (assuming 4097) into a destination of size 4096 822 | snprintf(was, sizeof(was), "%s/%s", file, dir->value); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ```
2024-04-05Add xterm-kitty to color capable term listJohn Einar Reitan
2024-04-01clarify news update about split-usr optionWilliam Hubbs
2024-04-01version 0.54William Hubbs
2024-04-01update newsWilliam Hubbs
2024-03-31Touch up docs/commentsOskari Pirhonen
Remove the mention of linking with libtermcap from einfo(3), and fix some comments in libeinfo.c to more accurately reflect the new situation.
2024-03-31Trivial curses/termcap removalOskari Pirhonen
Remove the curses code and make the HAVE_TERMCAP-gated "fallbacks" always present. This makes an ANSI terminal required for colors. X-Gentoo-Bug: https://bugs.gentoo.org/904277 Closes: https://github.com/OpenRC/openrc/issues/619
2024-03-31ci: update FreeBSD releases we test againstWilliam Hubbs
2024-03-25meson: drop broken split-usr handlingSam James
Two issues here: * The 'split-usr' meson option wasn't doing anything, it tried to check if /bin was a symlink, but nothing acted on this information. * The actual rootprefix default was decided based on whether /bin was a symlink which is flaky if e.g. building on a merged-usr system for use on a non-merged-usr system. People can set -Drootprefix=/usr if they wish. There's no real advantage to installing to /usr over / as the compat. symlinks are really here to stay. If someone really does care about this, they can bring it back and do it properly, but it doesn't seem worth it to me at all. Bug: https://bugs.gentoo.org/927776 Fixes: cc0037e9caaee05af0fdedafc5798c2a7aa9bdb8 Fixes: f2362cc277023550b2482215b4a1cd7142639427 Fixes: #696
2024-01-12version 0.53William Hubbs
2024-01-12update newsWilliam Hubbs
2024-01-12enable confd cgroups mount optionsForza-tng
This fixes #684.
2024-01-09sh/rc-cgroup.sh: add openrc. prefix the cgroupv2 pathNatanael Copa
Some services, like docker, creates and manages /sys/fs/cgroup/<service> themselves. Avoid conflict with the openrc created cgroup path by adding a `openrc.` prefix. Fixes: https://github.com/OpenRC/openrc/issues/680
2023-12-16supervise-daemon-guide.md: adjust markdown formatting. No logic/text changes ↵Alexey Vazhnov
were made.
2023-12-04change info words "remove" to "delete" in delete sub-commandZhao Yongming
This close #664
2023-12-04update start-stop-daemon manual to include --quietZhao Yongming
2023-11-16update newsWilliam Hubbs
2023-11-15remove warning for runscript deprecationWilliam Hubbs
2023-11-15drop the deprecated "rc" binaryWilliam Hubbs
This binary is a copy of the openrc binary. Referring to it as rc was deprecated in 2016, so we should be able to drop it at this point.
2023-11-14Skip already processed files in rc_service_daemon_setAlexander Maltsev
Fixes the problem described in https://bugs.gentoo.org/916947 - start-stop-daemon hangs in infinite loop when stopping some daemons on linux 6.6+ It appears linux 6.6 reworked tmpfs, and since then it triggers this problem in openrc: when iterating over files via readdir, running rename on a file could result in reading the same file again with next readdir call. The Open Group manual for readdir explicitly states "If a file is removed from or added to the directory after the most recent call to opendir() or rewinddir(), whether a subsequent call to readdir() returns an entry for that file is unspecified.". Linux man page don't seem to mention that, but don't seem to say anything to contradict that either. So I presume we can't rely on some specific behaviour here. Bug: https://bugs.gentoo.org/916947
2023-11-14init.d/cgroups.in: fix inconsistency between mount_cgroups and mount_cgroupsSam James
965de92b37cbe8d8670f6cc956e1d10677551e19 changed the default cgroup mode which exposes an issue in init.d/cgroups.in. While mount_cgroups defaults to 'unified' if rc_cgroup_mode is unset, cgroup2_controllers has no default and therefore has a mismatch with the logic in mount_cgroups. The two should be consistent so the flow makes sense, as mount_cgroups expects a certain path to be taken in cgroup2_controllers. Make cgroup2_controllers default to 'unified' if rc_cgroup_mode is unset, just like mount_cgroups. Bug: https://bugs.gentoo.org/916964 Thanks-to: acab@digitalfuture.it
2023-11-14drop the deprecated runscript binaryWilliam Hubbs
2023-11-02sh/supervise-daemon.sh: Proper casing for --no-new-privsHaelwenn (lanodan) Monnier
2023-10-10version 0.51William Hubbs
2023-10-10update newsWilliam Hubbs
2023-10-10change default RC_CGROUP_MODE to unifiedWilliam Hubbs
This improves resource management by assigning services to individual cgroups. X-Gentoo-Bug: https://bugs.gentoo.org/914972
2023-10-10Force symlinking of openrc-init to initAdam Duskett
When building on embedded SDKs such as Buildroot or Yocto, if OpenRC has a previous installation, the package will fail the installation step as the openrc-init is already a symlink to "${DESTDIR}/${sbindir}"/init. Force symlinking to prevent errors when reinstalling the package.
2023-10-03Relocate pipes.c and pipes.h file to shared directory.Lexxy Fox
With the addition of logger process redirect in supervise-daemon, pipes.c and pipes.h are now included in both s-s-d and supervise-daemon. Thus it makes sense to move the source files to the src/shared dir.
2023-10-03supervise-daemon: implement output_logger and error_logger.Lexxy Fox
Allows redirecting process stdin and stdout to another process, just like is already possible with start-stop-daemon. Also added --stdout-logger and --stderr-logger to the man page.
2023-09-19version 0.50William Hubbs
2023-09-19update newsWilliam Hubbs
2023-09-12misc: add syscall fallback for close_range for musl libcNatanael Copa
Add fallback for the close_range syscall wrapper. This is needed for musl libc, which currently does not have a close_range wrapper. Also set errno on errors.
2023-09-12start-stop-daemon: set fds to CLOEXEC instead of closingNatanael Copa
Set file descriptors to CLOEXEC instead of closing them before exec, similar to what we do in supervise-daemon. Use the share cloexec_fds_from() helper for this. closefrom() is no longer used so remove the test.
2023-09-12misc: add cloexec_fds_from() helper functionNatanael Copa
Move logic to set file descriptors to a cloexec_fds_from() function in misc.c so it can be shared by both supervisor-daemon and start-stop-daemon, and hide the details behind.
2023-09-12supervise-daemon: rename HAVE_CLOSE_RANGE_EXEC to HAVE_CLOSE_RANGENatanael Copa
Use HAVE_CLOSE_RANGE to tell if system provides a close_range(2) wrapper, which better explains the purpose. Add a compat inline which returns -1 if close_range is unavailable.
2023-09-01remove /lib/rc/tmp creation from meson scriptTimothy Kenno Handojo
It is apparently for a piece of code that no longer exist. There don't seem to be any part of the code referring to this directory (anymore, if there was).
2023-08-31version 0.49William Hubbs
2023-08-31update newsWilliam Hubbs
2023-08-29Don't re-define strlcpy/strlcat with >=glibc-2.38Sam James
`>=glibc-2.38` implements strlcpy, strlcat, etc so check for those functions with Meson and don't provide conflicting prototypes. Technically, it doesn't need _GNU_SOURCE, but it's easier because it's not clear right now what glibc wants to guard it with. Note that these are in POSIX next anyway. Fixes: https://github.com/OpenRC/openrc/issues/643 Signed-off-by: Sam James <sam@gentoo.org>
2023-07-26rc: fix automatic restart with runlevel-specific conf.d filesSven Wegener
Commit fc4f15d6cd8e7884f7094e5d3749b01f2d5a448f broke the automatic restart of services having runlevel-specific conf.d files. The double dirname() was not a mistake, but the way of getting from the service script in init.d to the upper directory containing the conf.d directory. dirname() modifies the argument in-place, so the second call operated on a modified value. To make it more obvious what is going on, have the second call operate on the returned value from the first call. Fixes: fc4f15d ("openrc: fix double-assignment to dir") Signed-off-by: Sven Wegener <sven.wegener@stealer.net>
2023-07-26bash-completion/rc-service: don't set or unset extglobJernej Jakob
It breaks bash-completion. It's not necessary to set extglob as patterns in '[[' after '==' are always matched as if extglob were set. Closes: #636 Signed-off-by: Jernej Jakob <jernej.jakob@gmail.com>
2023-07-05version 0.48William Hubbs