<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openrc.git/src/openrc-run, branch dynamic-deptree</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://git.vlhl.dev/navi/openrc/openrc.git/atom?h=dynamic-deptree</id>
<link rel='self' href='https://git.vlhl.dev/navi/openrc/openrc.git/atom?h=dynamic-deptree'/>
<link rel='alternate' type='text/html' href='https://git.vlhl.dev/navi/openrc/openrc.git/'/>
<updated>2024-07-20T01:15:17+00:00</updated>
<entry>
<title>openrc-run: allow multiplexed symlinks to live outside init.d</title>
<updated>2024-07-20T01:15:17+00:00</updated>
<author>
<name>Anna (navi) Figueiredo Gomes</name>
<email>navi@vlhl.dev</email>
</author>
<published>2024-07-14T15:41:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vlhl.dev/navi/openrc/openrc.git/commit/?id=f03a640f6af7cef470c452970f6031d41a61f227'/>
<id>urn:sha1:f03a640f6af7cef470c452970f6031d41a61f227</id>
<content type='text'>
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 &lt;navi@vlhl.dev&gt;
</content>
</entry>
<entry>
<title>openrc: dynamic paths for user services</title>
<updated>2024-07-19T18:40:28+00:00</updated>
<author>
<name>Anna (navi) Figueiredo Gomes</name>
<email>navi@vlhl.dev</email>
</author>
<published>2024-03-20T22:45:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vlhl.dev/navi/openrc/openrc.git/commit/?id=c34fcd63f05044f9034b26c52f19c91e04668da7'/>
<id>urn:sha1:c34fcd63f05044f9034b26c52f19c91e04668da7</id>
<content type='text'>
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 &lt;navi@vlhl.dev&gt;
</content>
</entry>
<entry>
<title>remove warning for runscript deprecation</title>
<updated>2023-11-15T16:04:46+00:00</updated>
<author>
<name>William Hubbs</name>
<email>w.d.hubbs@gmail.com</email>
</author>
<published>2023-11-15T16:04:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vlhl.dev/navi/openrc/openrc.git/commit/?id=59a175541d3edf0badd04d9e2d23ea84553e210c'/>
<id>urn:sha1:59a175541d3edf0badd04d9e2d23ea84553e210c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>drop the deprecated runscript binary</title>
<updated>2023-11-14T20:19:35+00:00</updated>
<author>
<name>William Hubbs</name>
<email>w.d.hubbs@gmail.com</email>
</author>
<published>2023-11-14T20:19:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vlhl.dev/navi/openrc/openrc.git/commit/?id=88e5d98d051c99cded4c9bdde98505b281bb3e80'/>
<id>urn:sha1:88e5d98d051c99cded4c9bdde98505b281bb3e80</id>
<content type='text'>
</content>
</entry>
<entry>
<title>openrc-run: fix rc_parallel race in svc_exec</title>
<updated>2023-04-25T03:06:53+00:00</updated>
<author>
<name>Dominique Martinet</name>
<email>dominique.martinet@atmark-techno.com</email>
</author>
<published>2023-02-02T04:11:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vlhl.dev/navi/openrc/openrc.git/commit/?id=863e1a5c87056bf5b0c4ce6a02ecb818b0b2ba13'/>
<id>urn:sha1:863e1a5c87056bf5b0c4ce6a02ecb818b0b2ba13</id>
<content type='text'>
svc_exec waits until SIGCHLD comes in to close its input, but in
rc_parallel case the SIGCHLD might be unrelated.

Checking the proper pid is found in signal handler and only signaling
signal_pipe the status code directly avoids this problem.
</content>
</entry>
<entry>
<title>openrc-run: silence lock failures with --no-deps</title>
<updated>2023-04-25T03:06:41+00:00</updated>
<author>
<name>Dominique Martinet</name>
<email>dominique.martinet@atmark-techno.com</email>
</author>
<published>2023-02-02T02:19:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vlhl.dev/navi/openrc/openrc.git/commit/?id=0b9c3c080388476519ac3385c21518cc5a94735a'/>
<id>urn:sha1:0b9c3c080388476519ac3385c21518cc5a94735a</id>
<content type='text'>
work around scary warnings described in previous commit
</content>
</entry>
<entry>
<title>openrc-run: remove kludge in restart --no-deps</title>
<updated>2023-04-25T03:06:41+00:00</updated>
<author>
<name>Dominique Martinet</name>
<email>dominique.martinet@atmark-techno.com</email>
</author>
<published>2023-02-02T01:29:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vlhl.dev/navi/openrc/openrc.git/commit/?id=a3c721b6821f1ecbe7ac567becc13df08b416f36'/>
<id>urn:sha1:a3c721b6821f1ecbe7ac567becc13df08b416f36</id>
<content type='text'>
restarting a service with --no-deps ran into a "hairy workaround", which
had a few problems discussed in [1]:
 - it ignores --dry-run, really restarting the requested service
 - if the service was stopped, the program is started but the service
status stays stopped. This makes long-lived services impossible to
(re)start again (pid already exists and running), and the service also
won't stop on shutdown.

The kludge had a long comment describing the following situation:
 - openvpn needs net and dns
 - net restarts dns
 - dns needs net

If the restart in net handled deps, openrc would deadlock waiting for
net in dns' restart, as net won't be started until that is done.

Restarting with --nodeps works around the deadlock, but can display
errors without the kludge (note that the services did start properly
anyway, the problem is that the default service path tries to lock dns
twice from openvn's dep's start and net's start's restart):
---
alpine:~# rc-service openvn start
openvn                   | * Caching service dependencies ...                                                                                                      [ ok ]
net                      |net starting
net                      |dns                       | * Call to flock failed: Resource temporarily unavailable
net                      |dns                       | * ERROR: dns stopped by something else
net                      |net started
dns                      |dns started
openvn                   |openvn started
alpine:~# rc-status | grep s[1-3]
 net                                                               [  started  ]
 dns                                                               [  started  ]
 openvn                                                            [  started  ]
---

Locking again in restart --nodep can fail in two patterns:
 - openvpn's need dependency start was first, and the restart in net
failed (case above): we can just silence locking failures and exit quietly
with restart --no-deps, which is not worse than trying to restart while
another process hold the lock.
 - the restart in net's start was first, and openvpn's need dependency
start failed: not much can be done here short of adding a new status
that a no-deps restart is in progress as in the comment, but this case
can actually just be solved by adjusting dependencies -- and it actually
has already been fixed: the current openvpn init script in alpine only
'use dns', so it will not try to start it, and that will start just
fine with openvpn -&gt; net -&gt; dns only each starting each other once
sequentially.

Another failure pattern is just starting dns directly: that will start
net, which will try to restart dns while we are starting it.
Silencing messages on restart also solves this.

Link: https://github.com/OpenRC/openrc/issues/224 [1]
</content>
</entry>
<entry>
<title>openrc-run: avoid malloc inside sig-handler</title>
<updated>2023-01-31T03:54:20+00:00</updated>
<author>
<name>NRK</name>
<email>nrk@disroot.org</email>
</author>
<published>2023-01-31T00:24:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vlhl.dev/navi/openrc/openrc.git/commit/?id=5858f980c87ce028612903bee20dde1bfc6e0125'/>
<id>urn:sha1:5858f980c87ce028612903bee20dde1bfc6e0125</id>
<content type='text'>
same rational as 459783bb

Bug: https://github.com/OpenRC/openrc/issues/589
</content>
</entry>
<entry>
<title>openrc-run: missing includes from IWYU</title>
<updated>2023-01-29T17:32:22+00:00</updated>
<author>
<name>Sam James</name>
<email>sam@gentoo.org</email>
</author>
<published>2023-01-29T04:19:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vlhl.dev/navi/openrc/openrc.git/commit/?id=91737be1abe3b82b2dfa6ee44da735dd4686ae80'/>
<id>urn:sha1:91737be1abe3b82b2dfa6ee44da735dd4686ae80</id>
<content type='text'>
</content>
</entry>
<entry>
<title>openrc-run: drop strlen dead store</title>
<updated>2023-01-25T05:08:30+00:00</updated>
<author>
<name>Sam James</name>
<email>sam@gentoo.org</email>
</author>
<published>2023-01-25T04:18:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vlhl.dev/navi/openrc/openrc.git/commit/?id=9f227e8b496f226ced053d6bef81e604d6878091'/>
<id>urn:sha1:9f227e8b496f226ced053d6bef81e604d6878091</id>
<content type='text'>
</content>
</entry>
</feed>
