OpenRC 0.35 is here and now in our gremlins repo. This version has had many major changes to the code such as forced deptree update during sysinit runlevel, Bash and ZSH completions included in upstream, cgroups mount changes, string memory management changes, and changes to openrc-init. The list of changes are much larger and can be seen here: https://github.com/OpenRC/openrc/compare/0.34.11...0.35 (https://github.com/OpenRC/openrc/compare/0.34.11...0.35)
Please be aware that some of the changes are very major and could cause the system to be unbootable. If you don't know how to recover from an unbootable system, do not install 0.35 while it is still in the gremlins repo.
The bash completions are in the package "openrc-bash-completions" and zsh are in "openrc-zsh-completions".
If you guys encounter any problems, errors, or issues, please let us know so that we can look into it.
It didn't work, recovery didn't work either, it didn't make it that far, only tty1 was functional and the only thing it could be done at that point was ctrl-alt-del which enabled openrc to shut down what had been started and rebooted.
I downgraded (chroot) to 0.34-11-3 from cache and it is back up and running again.
Have you modified the agettys in anyway?
Could you give us what is in your config files for your agettys?
Possibly related to your problem:
https://github.com/OpenRC/openrc/issues/212
Could you give us the output of that command as well?
# /etc/init.d/agetty.tty2 --debug start
I have not done any modifications
# /etc/init.d/agetty.tty2 --debug start
* WARNING: agetty.tty2 has already been started
/etc/init.d/agetty
#!/usr/bin/openrc-run
# Copyright (c) 2017 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
description="start agetty on a terminal line"
supervisor=supervise-daemon
port="${RC_SVCNAME#*.}"
term_type="${term_type:-linux}"
command=/sbin/agetty
command_args_foreground="${agetty_options} ${port} ${baud} ${term_type}"
pidfile="/run/${RC_SVCNAME}.pid"
export EINFO_QUIET="${quiet:-yes}"
depend() {
after local
keyword -prefix
}
start_pre() {
if [ -z "$port" ]; then
eerror "${RC_SVCNAME} cannot be started directly. You must create"
eerror "symbolic links to it for the ports you want to start"
eerror "agetty on and add those to the appropriate runlevels."
return 1
fi
}
/etc/init.d/openrc-settingsd
#!/usr/bin/openrc-run
# Copyright 2012 Alexandre Rostovtsev <tetromino@gentoo.org>
# Distributed under the terms of the GNU General Public License v2
description="hostnamed, localed, and timedated D-Bus services for OpenRC"
depend() {
need dbus
}
start() {
[ -n "${NTP_SERVICE}" ] &&
OPENRC_SETTINGSD_OPTS="--ntp-service=${NTP_SERVICE} ${OPENRC_SETTINGSD_OPTS}"
ebegin "Starting openrc-settingsd"
start-stop-daemon --start --quiet --pidfile "/run/openrc-settingsd.pid" \
"/usr/lib/openrc-settingsd" -- ${OPENRC_SETTINGSD_OPTS}
eend $?
}
stop() {
ebegin "Stopping openrc-settingsd"
start-stop-daemon --stop --quiet --pidfile "/run/openrc-settingsd.pid"
eend $?
}
# vim: set ft=gentoo-init-d ts=4 :
Yeap, same error I got when it got stuck on console tty1
/usr/lib/openrc/sh/openrc-run.sh: line 36: /etc/in: No such file or directory
lines 31-40 of /usr/lib/openrc/sh/openrc-run.sh
31 {
32 if [ "$1" = "-e" ]; then
33 shift
34 [ -e "$1" ] || return 1
35 fi
36 if ! . "$1"; then
37 eerror "$RC_SVCNAME: error loading $1"
38 exit 1
39 fi
40 }
You didn't post the conf.d for your agetty files. /etc/conf.d/agetty.ttyX
Have you made any changes in the agetty conf files?
No changes, they all seem identical 198byte files
# make agetty quiet
#quiet="yes"
# Set the baud rate of the terminal line
baud="38400"
# set the terminal type
term_type="linux"
# extra options to pass to agetty for this port
agetty_options=""
ls -al /etc/conf.d
-rw-r--r-- 1 root root 198 Jan 7 22:05 agetty
-rw-r--r-- 1 root root 198 Jan 7 22:05 agetty.tty1
-rw-r--r-- 1 root root 198 Jan 7 22:05 agetty.tty2
-rw-r--r-- 1 root root 198 Jan 7 22:05 agetty.tty3
-rw-r--r-- 1 root root 198 Jan 7 22:05 agetty.tty4
-rw-r--r-- 1 root root 198 Jan 7 22:05 agetty.tty5
-rw-r--r-- 1 root root 198 Jan 7 22:05 agetty.tty6
-rwxr-xr-x 1 root root 340 Feb 21 19:27 alsasound
-rw-r--r-- 1 root root 475 Jan 7 22:05 bootmisc
-rw-r--r-- 1 root root 876 Jan 7 22:05 consolefont
-rw-r--r-- 1 root root 348 Jan 7 22:05 devfs
-rwxr-xr-x 1 root root 15 Feb 16 23:07 device-mapper
-rwxr-xr-x 1 root root 3919 Feb 16 23:05 dmcrypt
-rw-r--r-- 1 root root 117 Jan 7 22:05 dmesg
-rwxr-xr-x 1 root root 286 Nov 9 10:35 dnscrypt-proxy
-rwxr-xr-x 1 root root 218 Feb 16 23:08 elogind
-rw-r--r-- 1 root root 1593 Jan 7 22:05 fsck
-rwxr-xr-x 1 root root 154 Feb 16 23:10 ftpd
-rw-r--r-- 1 root root 59 Jan 7 22:05 hostname
-rw-r--r-- 1 root root 857 Jan 7 22:05 hwclock
-rw-r--r-- 1 root root 911 Jan 7 22:05 keymaps
-rw-r--r-- 1 root root 235 Jan 7 22:05 killprocs
-rw-r--r-- 1 root root 17 Jan 27 05:01 libvirtd
-rw-r--r-- 1 root root 152 Jan 27 05:01 libvirt-guests
-rw-r--r-- 1 root root 389 Jan 7 22:05 localmount
-rwxr-xr-x 1 root root 173 Feb 16 23:14 lvm
-rwxr-xr-x 1 root root 205 Feb 16 23:14 mdadm
-rwxr-xr-x 1 root root 383 Feb 16 23:14 mdraid
-rw-r--r-- 1 root root 1075 Jan 7 22:05 modules
-rw-r--r-- 1 root root 270 Jan 7 22:05 mtab
-rw-r--r-- 1 root root 53377 Nov 29 23:38 net
-rw-r--r-- 1 root root 1600 Jan 7 22:05 netmount
-rw-r--r-- 1 root root 672 Jan 7 22:05 net-online
-rwxr-xr-x 1 root root 230 Feb 21 19:35 NetworkManager
-rwxr-xr-x 1 root root 930 Feb 16 23:15 nfs
-rwxr-xr-x 1 root root 592 Feb 16 23:15 nfsclient
-rwxr-xr-x 1 root root 776 Feb 21 19:36 ntp-client
-rwxr-xr-x 1 root root 192 Feb 21 19:36 ntpd
-rw-r--r-- 1 root root 247 Jul 12 2017 openrc-settingsd
-rwxr-xr-x 1 root root 54 Dec 19 02:02 opentmpfiles-dev
-rwxr-xr-x 1 root root 54 Dec 19 02:02 opentmpfiles-setup
-rwxr-xr-x 1 root root 68 Feb 16 23:17 rpcbind
-rwxr-xr-x 1 root root 149 Feb 21 19:36 sntp
-rwxr-xr-x 1 root root 395 Feb 16 23:16 sshd
-rw-r--r-- 1 root root 490 Jan 7 22:05 swap
-rwxr-xr-x 1 root root 1492 Feb 21 19:38 syslog-ng
-rw-r--r-- 1 root root 279 Jul 18 2017 udev
-rw-r--r-- 1 root root 187 Jul 18 2017 udev-settle
-rw-r--r-- 1 root root 1264 Jul 18 2017 udev-trigger
-rw-r--r-- 1 root root 282 Jan 7 22:05 urandom
-rwxr-xr-x 1 root root 161 Feb 16 23:17 wpa_supplicant
Ok, partial progress.
I noticed that more pkgs came through gremlins, before when I update to 0.35 it was only openrc.
So I tried it on my 2nd artix installation. Again no modifications to openrc/agetty
I updated all pkgs through chroot and rebooted.
/usr/lib/openrc/sh/openrc-run.sh: line 36: /etc/in: No such file or directory
Same 6 errors like above, all line36, but sddm started without loging in. (maybe because I have removed sddm-runscripts) :) ;)
so I don't have to deal with irritating dbus-runit anymore.
It always had to start manually or when the user was logged in from console.
I tried to go to console, all consoles are locked with just a cursor on top, not blinking.
tty1 shows the booting errors, so there is no responsive tty.
But tty7 works fine and this is where I am writing from.
I created a blank file /etc/in
Now the errors became warnings,
"there is nothing for in to start"
This will be a failure in future releases
WARNING: in has already been started
I have found the problem and fixed it in a pull request on the github openrc, once they accept and push the new version this will be fixed.
You do not need a /etc/in folder or file. The problem is that the path is cut off. It should be /etc/init.d/agetty.ttyX
However the problem is that it cut it down to /etc/in because of a bug.
OpenRC 0.35.2 is now in gremlins. Let me know how it works for you.
what exactly is baud?
command_args_foreground="${agetty_options} ${port} ${baud} ${term_type}"
I know I am about 30 years late for this question :)
You done fixded it, as they say in no-queen's land.
No problem here, all ttys are back, /etc/in is trashed.
But if it is as you say, how come some peoples' artix did not encounter the bug and some of us did? What kind of artix are you running? I sure haven't messed with the init or the supervising system, it is as it came. My one installation has not been broken once ever since that July' 2017 Artix 1 installer. I think, apart from the developing team, myself and
@mandog were the first to install it, first in the forum.
I thought out of the error it would be a folder where pointers of thing to start would go. Then the error told me /etc/in is a folder, not a file. So I made a file, blank, then added some stuff, and got a warning.
.... that was fun, it reminded me of running on a motorcycle with no brakes ... heeeeee haaawwww!
You must be so young you'd never seen or heard a phone modem, 2400, 4800, 9600, 19200, 36k baud (blistering 1000b/sec) and we browsed with gopher and then lynx (not links), emailed with emacs. There was no tty2 , all we had was that single tty.
Openrc 0.35 stucked after starting /etc/init.d/local (so no agetty started). No problems in 0.35.2
Glad to see it is working now.
It only effected people that had symlinks in /etc/init.d/*, in your case your aggety.ttyX are symlinks to agetty. It also effected some people's networking. If there was a symlink from /etc/init.d/net.eth0 to /etc/init.d/net.lo, the network would also fail to start. It did not effect me since I don't have a network symlink and my agetty files in /etc/init.d are not symlinks.
I converted my machine before artix even had a name back when me and artoo started the project. However my conversion is more drastic, on this machine I converted arch(systemd with logind and udev) -> arch-openrc(sysvinit with consolekit2 and eudev) -> artix(openrc-init with elogind and eudev). I implemented openrc-init in arch-openrc, but never pushed it to the public, so my laptop is the only machine that is like this and has real agetty.ttyX scripts instead of symlinks. So yeah, my machine still has cruft from arch and arch-openrc.
Which is why you have symlinks in /etc/init.d/agetty.ttyX, that is how it is by default unless changed by the user.
Yes, you guys were the first to come over from Manjaro. My conversion happened before the project actually had a name and before it was public. Before we had a name we called it "Cromnix" temporarily which is the same name as the other distro I started for my university thesis. That is why there was the word Cromnix in various parts of artools, buildbot, and the distro until they got replaced by the name Artix. In general Artix has been very solid for me as well. I use it as my main box.
Sounds like fun, well at least until you get into oncoming traffic. ;)
Thanks for the report, glad things are working again.
Hi
@Chris Cromer , I use the "standard" repos, & your OP has me wondering whether the coming changes will effect the autostart X at login method that I'm using as seen in this post:
https://forum.artixlinux.org/index.php/topic,306.msg2498.html#msg2498
Thanks for your time, & for all of your contributions in making Artix available for us. :)
Most likely it will not be effected. The agetty system was not actually changed at all between 0.34 and 0.35. The bug that was encountered in 0.35 was not related to agetty, it effected all symlinks that are in /etc/init.d. That symlink bug has now been fixed in 0.35.2.
That's good to hear Chris.
Thanks for your reply.
Was that for a Masters Degree or a PhD? I had considered doing that. I chose dinosaurs instead.
After all this time, I thought Cromnix was a separate system of your own using runit. I just recently downloaded the image and discovered it was just an early artix version. It took more than 2hrs to download from slowforge and it was small.
I think it is great that all of you joined forces to create this, as separately none would have had the chance to have created something of this magnitude. For us it is like betting against the odds and keep winning.
Originally we were going to use Cromnix for this project, but we had to scrap that idea since it is not compatible with Arch Linux's repos and packages. Cromnix is built based on LFS(Linux From Scratch) which means packages from Arch didn't work with it. So that is how Artix was born, we needed it to be Arch Linux compatible and to pull packages from upstream Arch.
Cromnix will remain the way it is now, it will not be a fork of Arch Linux, it's design and construction will not be dictated by upstream Arch Linux. The goal of Cromnix is also very different, I want to see it become like debian. Structured, stable, policies, release points, an upstream linux but that does not use systemd, etc. So Cromnix will not be a rolling release like Arch and Artix. However it will take a lot of work, and we really needed something now, that is why we decided to do Artix as a fork of Arch Linux instead of using Cromnix which just isn't ready yet.
previously on tty1 I had the option "-J " to prevent clearing of the openrc boot log
now, tty1 fails to open (on the latest openrc package)
I see the option
#quite = "yes"
am I right in assuming changing this to no and uncommenting will bring back the previous behavior?
No, quiet has nothing to do with clearing the boot log. Quiet makes the display prettier by not showing the agetty text until agetty is started.
-J is the correct way to do it. You have to add -J to /etc/conf.d/agetty.tty1 in the extra options.
is it quite or quiet?
I believe it should be quiet
ok well it's failing for me, anyone else?
corrupted size vs. prev_size
/usr/lib/openrc/sh/supervise-daemon.sh: line 25: 2770 Aborted supervise-daemon agetty.tty2 --start --pidfile /run/agetty.tty2.pid /sbin/agetty -- -J tty2 38400 linux
command with --debug:
https://pastebin.com/nLVAjbU9
Show me your /etc/conf.d/agetty.tty2 and /etc/init.d/agetty.tty2
/etc/conf.d/agetty.tty2
# make agetty quiet
#quiet="yes"
# Set the baud rate of the terminal line
baud="38400"
# set the terminal type
term_type="linux"
# extra options to pass to agetty for this port
agetty_options="-J"
/etc/init.d/agetty.tty2
#!/usr/bin/openrc-run
# Copyright (c) 2017 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
description="start agetty on a terminal line"
supervisor=supervise-daemon
port="${RC_SVCNAME#*.}"
term_type="${term_type:-linux}"
command=/sbin/agetty
command_args_foreground="${agetty_options} ${port} ${baud} ${term_type}"
pidfile="/run/${RC_SVCNAME}.pid"
export EINFO_QUIET="${quiet:-yes}"
depend() {
after local
keyword -prefix
}
start_pre() {
if [ -z "$port" ]; then
eerror "${RC_SVCNAME} cannot be started directly. You must create"
eerror "symbolic links to it for the ports you want to start"
eerror "agetty on and add those to the appropriate runlevels."
return 1
fi
}
And you are using 0.35.2?
Well everything you did is correct. It seems to be a bug in the new OpenRC. I am talking with OpenRC's developers to see about a fix.
If you need to use -J, please go back to openrc 0.34.11 for the time being.
Who is the developers of openrc? I've tried to find them before.
Wikipedia says: Roy Marples.
OpenRC contributors are many: https://github.com/OpenRC/openrc/graphs/contributors.
But you may know all this already. I've never had a problem with OpenRC on "clean" installations yet. I would comment if I ran into one.
I emailed Roy Marples and he was very clear that he departed the project over licensing disagreements and philosophical diffferences.
I contacted hi m when I was trying to write init scrips and I wasn't getting behavior from start and stop programs which conformed to documentation. Among other places, I tried posting here
https://forums.gentoo.org/viewforum-f-1.html
I found a workaround of sorts
[20:36:24] [root /etc] --> cat conf.d/agetty.tty1
# make agetty quiet
#quiet="yes"
# Set the baud rate of the terminal line
baud="38400 -J "
# set the terminal type
term_type="linux"
# extra options to pass to agetty for this port
agetty_options="-J"
it has to use "-J" in both locations above, otherwise it errors out and agetty doesnt launch
This appears to be the official current team developing openrc https://wiki.gentoo.org/wiki/Project:OpenRC
It is interesting though on what basis did the original creator, Roy Maples, departed the project. Wiki mentions that it was 07-10 that he was involved. Gentoo's wiki does not mention any history of the project.
Maples' site doesn't talk much about openrc
https://roy.marples.name/blog/openrc_breaking_your_box__coming_to_a_git_ebuild_near_you
On his "All About Me" page he states, "I'm also a NetBSD (http://wwww.netbsd.org) developer. I used to be a Gentoo (http://www.gentoo.org) developer, but have since retired due to political reasons. Gentoo still uses my software extensively, and OpenRC is their init system."
Not a lot of detail, but, "due to political reasons", says a lot I reckon.
Best regards.
Is it okay to install OpenRC 0.35? Just curious after reading through this thread
Yes it is ok to install it. It is in the stable repos after a week of testing in the gremlins repo.
and the symlink problem is resolved because networking is dependent on the symlinks in my static configuration