IRC chat logs for #ltsp on irc.libera.chat (webchat)


Channel log from 10 January 2022   (all times are UTC)

01:49vagrantc has joined IRC (vagrantc!~vagrant@2600:3c01:e000:21:21:21:0:100e)
02:24jgee has left IRC (jgee!~jgee@186.80.49.20, Read error: Connection reset by peer)
02:25jgee has joined IRC (jgee!~jgee@186.80.49.20)
04:30vagrantc has left IRC (vagrantc!~vagrant@2600:3c01:e000:21:21:21:0:100e, Quit: leaving)
06:02Vercas4 has joined IRC (Vercas4!~Vercas@gateway/tor-sasl/vercas)
06:02Vercas has left IRC (Vercas!~Vercas@gateway/tor-sasl/vercas, Quit: Ping timeout (120 seconds))
06:02Vercas4 is now known as Vercas
06:33Vercas has left IRC (Vercas!~Vercas@gateway/tor-sasl/vercas, Remote host closed the connection)
06:33Vercas has joined IRC (Vercas!~Vercas@gateway/tor-sasl/vercas)
06:52ricotz has joined IRC (ricotz!~ricotz@ubuntu/member/ricotz)
08:09jgee has left IRC (jgee!~jgee@186.80.49.20, *.net *.split)
08:09quinox has left IRC (quinox!~quinox@ghost.qtea.nl, *.net *.split)
08:09Vercas has left IRC (Vercas!~Vercas@gateway/tor-sasl/vercas, *.net *.split)
08:09book`_ has left IRC (book`_!~book`@static.38.6.217.95.clients.your-server.de, *.net *.split)
08:09alkisg has left IRC (alkisg!~alkisg@2001:470:69fc:105::2d3, *.net *.split)
08:09PatrikArlos[m] has left IRC (PatrikArlos[m]!~parlosmat@2001:470:69fc:105::1:613e, *.net *.split)
08:09MUHWALT has left IRC (MUHWALT!~ubox@user/muhwalt, *.net *.split)
08:09lucascastro has left IRC (lucascastro!~lucascast@192-140-51-251.static.oncabo.net.br, *.net *.split)
08:09lucascastro[m] has left IRC (lucascastro[m]!~lucascast@2001:470:69fc:105::1:59f2, *.net *.split)
08:09highvoltage has left IRC (highvoltage!~highvolta@shell.jonathancarter.org, *.net *.split)
08:09spectra has left IRC (spectra!~spectra@63.142.251.150, *.net *.split)
08:09sfxworks[m] has left IRC (sfxworks[m]!~sfxworksm@2001:470:69fc:105::e5d4, *.net *.split)
08:09sunweaver has left IRC (sunweaver!~sunweaver@fylgja.das-netzwerkteam.de, *.net *.split)
08:21Vercas has joined IRC (Vercas!~Vercas@gateway/tor-sasl/vercas)
08:21jgee has joined IRC (jgee!~jgee@186.80.49.20)
08:21lucascastro[m] has joined IRC (lucascastro[m]!~lucascast@2001:470:69fc:105::1:59f2)
08:21lucascastro has joined IRC (lucascastro!~lucascast@192-140-51-251.static.oncabo.net.br)
08:21sfxworks[m] has joined IRC (sfxworks[m]!~sfxworksm@2001:470:69fc:105::e5d4)
08:21alkisg has joined IRC (alkisg!~alkisg@2001:470:69fc:105::2d3)
08:21PatrikArlos[m] has joined IRC (PatrikArlos[m]!~parlosmat@2001:470:69fc:105::1:613e)
08:21book`_ has joined IRC (book`_!~book`@static.38.6.217.95.clients.your-server.de)
08:21MUHWALT has joined IRC (MUHWALT!~ubox@user/muhwalt)
08:21highvoltage has joined IRC (highvoltage!~highvolta@shell.jonathancarter.org)
08:21spectra has joined IRC (spectra!~spectra@63.142.251.150)
08:21sunweaver has joined IRC (sunweaver!~sunweaver@fylgja.das-netzwerkteam.de)
08:21quinox has joined IRC (quinox!~quinox@ghost.qtea.nl)
10:18alkisg_web has joined IRC (alkisg_web!~alkisg_we@2a02:587:7502:8700:c24a:ff:fe02:bc1e)
10:39
<alkisg_web>
test
10:40
!last
10:40
<ltspbot>
[10:39:57] <alkisg_web> test
10:43
<sunweaver>
alkisg_web>: good morning
10:43
<alkisg_web>
Hi sunweaver
10:43
<sunweaver>
I have yet another question about LTSP.
10:43
<alkisg_web>
Meh, problems in the irc <=> matrix bridge... sure, shoot
10:43
<sunweaver>
in x2gothinclient-minidesktop we drop a file into /usr/share/ltsp/client/init/
10:44
that package is installed a chroot / LTSP image.
10:44
the file is called 88-x2gothinclient-minidesktop_disable-ltsp-display-manager.sh
10:45
when I launch into the LTSP client, that file is gone.
10:45
I looked into /usr/share/ltsp and found two install_ltsp() functions that seem to be responsible for installing the ltsp.img into the overlayfs of the LTSP client.
10:45
All variants use either rsync --delete or rm && cp.
10:46
didn't you say, it is possible to place files into /usr/share/ltsp/ in the chroot and they will be kept in the bootet client?
10:46
what am I missing?
10:47
(in fact, Wolfgang Schweer implemented this for a debian-edu Thin Client and he never complained about his setup failing.
10:47
However, I am trying to reproduce his setup and fail.
10:48
<alkisg>
^dec8929 (Alkis Georgopoulos 2019-08-18 20:32:13 +0300 60) re chroot "$rootmnt" rsync -a --delete /tmp/ /usr/share/ltsp
10:48
That line has been there since the beginning, so yeah
10:48
When I implemented that I was unsure how to handle the "newer ltsp version ships a renamed script" vs "a vendor wants to keep a script in the chroot"
10:49
<sunweaver>
yeah.
10:49
I would have thought that.
10:49
but how do you inject your overrides?
10:49
<alkisg>
The --delete there was to ensure that future ltsp updates will work; and I postponed the "proper" solution until a vendor started using this feature :D
10:49
<sunweaver>
In my case I want to display display_manager_main() in 55-display-manager.sh
10:49
<alkisg>
I have all my overrides on the server, but having an override in the chroot is certainly a valid use case
10:50
<sunweaver>
hmmm.
10:50
s/display/disable/g
10:50
<alkisg>
If you want to cancel a function, you can do it with this: https://ltsp.org/man/ltsp.conf/#OMIT_IMAGE_EXCLUDES
10:51
Sorry, this one: https://ltsp.org/man/ltsp.conf/#OMIT_FUNCTIONS
10:51
I.e. OMIT_FUNCTIONS=display_manager
10:51
But indeed that's a server-side setting, you still need a way to do from inside the chroot
10:51
<sunweaver>
yeah, but this is in ltsp.conf, right?
10:52
<alkisg>
You can also ship /etc/ltsp/ltsp-applet.conf if it's suitable for you. But you want to do it for everyone that installs this package, right?
10:52
<sunweaver>
POST_INIT_SYSTEMD="cp /usr/share/x2go/<script> /usr/share/ltsp/client/init/88-x2goscript.sh"
10:52
?
10:52
<alkisg>
That's in ltsp.conf too though
10:53
So if you want to do that just to override a function, prefer to use OMIT_FUNCTIONS
10:53
<sunweaver>
alkisg: ideally, x2gothinclient-minidesktop preps the whole LTSP chroot out of the box.
10:53
the same host serves diskless fat clients
10:53
so they would need the display-manager function.
10:54
<alkisg>
You can do test "$IMAGE" = "xxx" && OMIT_FUNCTIONS="display_manager" etc etc
10:54
<sunweaver>
[tc-*]
10:54
<alkisg>
I.e. you can still control that from ltsp.conf
10:54
<sunweaver>
ah...
10:54
<alkisg>
But indeed it packages should be able to drop snippets
10:55
<sunweaver>
alkisg: yeah, indeed.
10:55
maybe merge too paths?
10:55
/usr/share/ltsp/ and /usr/share/ltsp/vendor?
10:55
or some such.
10:56
ah, no
10:56
/usr/share/ltsp/ and /usr/share/ltsp-vendor
10:56
<alkisg>
ltsp names are supposed to be within certain numbers
10:56
So I could delete only the upstream ltsp names
10:56
While vendors use different numbers, like the 8 that you did
10:56
<sunweaver>
yeah, that would be cool.
10:57
which install_ltsp() function do I have to tweak for that?
10:57
<alkisg>
I had very draft notes about that there: https://ltsp.org/advanced/coding/#script-directories
10:57
<sunweaver>
the one in 25-ro-root.sh?
10:57
or in the initrd bottom script?
10:58
<alkisg>
Both should be patched, but since the sync part is becoming more complex, it should be split out into a different function
10:59
<sunweaver>
I'll try the in-place-patching first
11:00
you only want [0-7[0-7] scripts to be copied in, right?
11:01
<alkisg>
No, I want everything to be copied in while deleting all existing 0-7 scripts,
11:01
<sunweaver>
those scripts are executed from withint ltsp.img, right?
11:01
ah.
11:01
so, maybe not rsync --delete anymore.
11:01
<alkisg>
but, since rm + cp wastes RAM, I don't want to just go ahead an rm all of them without checking if they're the same file
11:01
So, I think it's like this:
11:01
find chroot -name 2-7*.sh | while read filename....
11:02
<sunweaver>
find chroot -name 2-7*sh -delete ?
11:02
<alkisg>
if diff filename is different than in the initramfs, delete it,
11:02
then cp -a -u everything, to only send updates
11:02
No, if we delete everything, we waste RAM, when we put it back the RAM won't be freed
11:02
Due to overlayfs
11:03
<sunweaver>
ok
11:03
<alkisg>
How soon do you need that? You could file an issue and I'll have a look soonish
11:03
<sunweaver>
not sure if I have time for the deeper coding, but I'll try the concept now.
11:03
customer dependent, in fact...
11:04
might be end of the week, might be on the next customer site in 1-2 months.
11:04
I'll take a look now.
11:04
<alkisg>
As a quick hack, you could just patch your current ltsp to remove the --delete parameter
11:05
<sunweaver>
yeah, just did that.
11:05
trying a reboot
11:06
that did it.
11:12
<alkisg>
sunweaver: OK please file an issue and I'll have a look later on
11:13
<sunweaver>
will do
11:13
<alkisg>
I may end up just doing a `cp -u`, and MANUALLY delete old names first when something gets renamed (e.g. the 56-mask-services.sh script just got renamed to 56-services.sh)
11:13
Since renames/deletions aren't really frequent after all
11:16
Or better yet, a policy "when deleting/renaming script, keep an empty file at the old place for 10 years, which is the largest maintenance window"
11:16
And the same policy could be an advice to vendor plugins
11:18
<sunweaver>
for rsync, I think rsync --delete --filter "protect <PATTERN>" will do the trick
11:18
does the trick!
11:18
rsync -a --delete --filter "protect */*/88-*" "$src/usr/share/ltsp/" "$dst/usr/share/ltsp"
11:18
you can use --filter multiple times
11:19
and certainly, it needs to be adjusted to what you actually want to filter.
11:19
Is it ok to paste the backlog into the bug report? Will that be enough for you to catch up?
11:20
https://stackoverflow.com/questions/19024532/prevent-rsync-from-deleting-destination-files-that-match-a-given-pattern
11:20
<alkisg>
No need for all the backlog, a single line describing the issue is fine
11:20
<sunweaver>
ok
11:20
<alkisg>
I'll get rid of rsync as it's not available in the initramfs anyway
11:20
I'll switch to plain cp
11:20
<sunweaver>
ok
11:21
<alkisg>
busybox cp -u is good enough if we'll apply that 10 years-of-empty-files logic
11:25
<sunweaver>
https://github.com/ltsp/ltsp/issues/636
11:27
<alkisg>
Great :)
11:27
<sunweaver>
my customer site is also working now until ltsp receives an updated package.
11:29
Thanks for working on this with prio. Much appreciated.
11:29
This will finally complete my mission on chroot customization on chroot base (not on ltsp.conf base)
11:42
<alkisg>
👍
11:55
<sunweaver>
oh, blimey, one more question.
11:55
The [mac:address] client override for DEFAULT_IMAGE... Does it support asterisking or some such?
11:56
or even better would be hostname-pattering...
11:56
[tc32-*] -> DEFAULT_IMAGE=x2g+i386
11:56
[tc-*] -> DEFAULT_IMAGE=x2go+amd64
11:56
or some such...
12:18
<alkisg>
sunweaver: it's a shell case glob
12:18
case "$MAC_ADDRESS" in
12:18
tc32-*) do that
12:18
So yeah, * is supported
12:19
And `one | two` is supported as well
12:29alkisg_web has left IRC (alkisg_web!~alkisg_we@2a02:587:7502:8700:c24a:ff:fe02:bc1e, Quit: Client closed)
14:36
<sunweaver>
alkisg: was afk...
14:36
So, I put this into ltsp.conf?
14:36
case "$MAC_ADDRESS" in test-workstation) DEFAULT_IMAGE=x2go-minidesktop+amd64+bullseye;; tc-*) DEFAULT_IMAGE=x2go-minidesktop+i386+bullseye;;
14:36
esac
14:36
?
14:36
ah, line breaks gone...
14:37
under [server]
15:08
<alkisg>
sunweaver: sorry I gave a generic answer without thinking to much about it. What I said is true in general, bu NOT for DEFAULT_IMAGE, because that one is implemented in ipxe code, which has no "case" command etc
15:09
DEFAULT_IMAGE needs a specific [mac] section or a global [server] section; no wildcards in ipxe. If you need that, you should implement it inside ltsp.ipxe with ipxe code
17:59lucascastro has left IRC (lucascastro!~lucascast@192-140-51-251.static.oncabo.net.br, Remote host closed the connection)
18:00lucascastro has joined IRC (lucascastro!~lucascast@192-140-51-251.static.oncabo.net.br)
18:06vagrantc has joined IRC (vagrantc!~vagrant@2600:3c01:e000:21:21:21:0:100e)
22:10ricotz has left IRC (ricotz!~ricotz@ubuntu/member/ricotz, Quit: Leaving)