Contributed by rueda on from the It is an xdm dept.
Matthieu Herrb supplied our next g2k16 report:
I arrived in Cambridge on Tuesday afternoon, after a nice 9h train trip from Toulouse through Paris and the tunnel. I started the hackathon by upgrading a number of packages in Xenocara. The most noteworthy being the XCB (X protocol C-language Bindings) suite updated to the most recent 1.12 version.
After a short break Wednesday afternoon spend on a punt on Cambridge's river, I spent most of the remaining time of the hackathon working on a stripped down version of xdm(1), the X display manager. 25 years ago, when X started, workstations were still expansive and the market had a number of so called "mini" computers (small mainframes) with terminal attached to them. Graphical terminals, capable of running the X window system where common. At that time xdm's main role was to manage connections from these remote terminals using the X Display Manager Control Protocol (XDMCP).
Time has passed by and nowadays, xdm(1) is mainly used just to manage the local X server running on laptop or desktop machines. Moreover XDCMP's security is weak (based on DES) and doesn't support IPv6 well. So it's time to retire it. So Xenocara is getting a "new" X Display Manager which will be called "xenodm".
Xenodm is based on xdm source code. I've removed all support for XDMCP and other old cruft like ugly games with signals and setjmp(3)/longjmp(3) to set timeouts on potentially blocking operations. Another goal was to un-tangle the ifdef maze that supported various flavors of authentication methods, to only keep the BSDauth code used in OpenBSD.
During g2k16 the code for xenodm went from 18020 lines (current /usr/xenocara/app/xdm/) to 7659 lines (current xenodm sources, not yet in the xenocara tree). These cleanups have lead to a much more readable code base, allowing to follow the code flow and the needs of the local display manager. They make adding better privilege separation and pledge(2) support for better security possible now.
As soon as I have a bit more time to finish a first really usable version, it will replace xdm (which will be moved to ports) in /usr/xenocara/app/.
Thanks to Gemma, Anil and the OpenBSD foundation for another great hackathon !
Thanks, Matthieu, for the report (and for xenodm!).
(Comments are closed)
By Anonymous Coward (22.214.171.124) on
Looking forward to xenodm.
Thanks for all the great work guys!
By Anonymous Cowboy (126.96.36.199) on
That's an impressive level of productivity, reducing code by 10639 lines: over 57%.
What does modern-day xdm(1) do anyway, other than just display a login screen?
By Anonymous Coward (188.8.131.52) on
> That's an impressive level of productivity, reducing code by 10639 lines: over 57%.
> What does modern-day xdm(1) do anyway, other than just display a login screen?
Epic tyhpoo faille. Meant to say "10361" (still over 57%, and still impressive.)