Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TigerVNC OpenRC Service Support #1443

Closed
alexcaoys opened this issue Mar 8, 2022 · 5 comments
Closed

TigerVNC OpenRC Service Support #1443

alexcaoys opened this issue Mar 8, 2022 · 5 comments
Labels
notourbug This issue needs to be resolved elsewhere

Comments

@alexcaoys
Copy link

Is your feature request related to a problem? Please describe.
I was using postmarketOS and I'd like to use TigerVNC server on pmOS.
After I install the package from Alpine Linux's repo, I found out that TigerVNC only supports systemd, and the package only gives one systemd service which is not usable on Alpine (pmOS).

Describe the solution you'd like
Hopefully TigerVNC can add OpenRC support (maybe that's a one-file solution?)

Describe alternatives you've considered
I tried to use Gentoo old OpenRC config but that used vncserver which is no longer available.
I tried using vncsession but it always gives me Failure daemonizing Error, maybe that's a problem with this armv7 package or Alpine?
I tried to use this website to simply convert the systemd config, but it gives me the same Failure daemonizing Error.

Additional context
I used TigerVNC on Debian/Ubuntu with all different archs with no problem, but I didn't have spare devices to try it on Alpine with other arch. So I could not really pinpoint the root cause of this Failure daemonizing Error.
But I believe at least OpenRC can be added.

Versions:
pmOS: armv7 edge (image created 2022-03-07)
tigervnc: 1.12.0-r2

@CendioOssman
Copy link
Member

We don't really have any devs on non-systemd systems, so it's currently unlikely we'll have built-in support. But that converter seems to produce something sensible.

There should be some more error logged before "Failure daemonizing" giving a bit more detail. What is the complete output you get?

@alexcaoys
Copy link
Author

alexcaoys commented Mar 10, 2022

There is nothing else before and after,

$ sudo vncsession alex :1
Failure daemonizing

I also tried on a Raspberry Pi with Alpine Linux armhf and a x86_64 device (ie. my laptop) with Alpine Linux x86_64. All of them get the same error.

I have also tried strace with this command:

$ sudo strace -ff vncsession alex :1 &> trace.log

which gives me the following log: trace.log

Hope all these info can suggest a root cause.
Thanks!

@CendioOssman
Copy link
Member

Thanks for the strace. It shows that it get far past the daemonization. I guess we should change that error message...

The trace also shows that it is logging something. Please have a look in your system logs and see what it says. It should hopefully tell us what the problem is.

@alexcaoys
Copy link
Author

After analyzing system logs, there are these lines:

Mar 11 19:14:44 rpizero authpriv.info vncsession[1848]: pam_unix(tigervnc:session): session opened for user alex(uid=1000) by (uid=0)
Mar 11 19:14:44 rpizero auth.crit vncsession[1848]: pam_open_session failed: 28 (Module is unknown)

I found this website suggests something is wrong with /etc/pam.d/tigervnc, so I comment out two lines with selinux:

#%PAM-1.0
# pam_selinux.so close should be the first session rule
# -session   required     pam_selinux.so close  # Comment out
session    required     pam_loginuid.so
# -session   required     pam_selinux.so open  # Comment out
session    required     pam_namespace.so
session    optional     pam_keyinit.so force revoke
session    required     pam_limits.so
-session   optional     pam_systemd.so
session    required     pam_unix.so
-session   optional     pam_reauthorize.so prepare

This time there is no Failure daemonizing error after vncsession alex :1, but nothing happens either.
I checked strace and system log again. I think it's because Alpine doesn't have perl, so sudo apk add perl.

After all these mess, I believe vncsession and even the auto-generated OpenRC config can be started. But there is error in ~/.vnc/rpizero:1.log

Using desktop session i3
xauth:  file /home/alex/.Xauthority does not exist

New 'rpizero:1 (alex)' desktop is rpizero:1

Starting desktop session i3

xinit: unable to run server "/usr/bin/Xvnc": No such file or directory
Use the -- option, or make sure that /usr/bin is in your path and
that "/usr/bin/Xvnc" is a program or a link to the right type of server
for your display.  Possible server names include:

    Xorg        Common X server for most displays
    Xvfb        Virtual frame buffer
    Xfake       kdrive-based virtual frame buffer
    Xnest       X server nested in a window on another X server
    Xephyr      kdrive-based nested X server
    Xvnc        X server accessed over VNC's RFB protocol
    Xdmx        Distributed Multi-head X server

xinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: server error

I think Xvnc (Xtigervnc) is missing in the package from Alpine Linux. Maybe I will reach out to them about this.

In the meantime, should we keep this issue open for OpenRC support or something else we find in this process?

@CendioOssman
Copy link
Member

I'm afraid all of these issues are packaging issues, so not really something we can help out with. You'll indeed need to talk to Alpine Linux and get them to adjust their package for these things.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
notourbug This issue needs to be resolved elsewhere
Projects
None yet
Development

No branches or pull requests

3 participants