01:49 | vagrantc has joined IRC (vagrantc!~vagrant@2600:3c01:e000:21:21:21:0:100e) | |
02:24 | jgee has left IRC (jgee!~jgee@186.80.49.20, Read error: Connection reset by peer) | |
02:25 | jgee has joined IRC (jgee!~jgee@186.80.49.20) | |
04:30 | vagrantc has left IRC (vagrantc!~vagrant@2600:3c01:e000:21:21:21:0:100e, Quit: leaving) | |
06:02 | Vercas4 has joined IRC (Vercas4!~Vercas@gateway/tor-sasl/vercas) | |
06:02 | Vercas has left IRC (Vercas!~Vercas@gateway/tor-sasl/vercas, Quit: Ping timeout (120 seconds)) | |
06:02 | Vercas4 is now known as Vercas | |
06:33 | Vercas has left IRC (Vercas!~Vercas@gateway/tor-sasl/vercas, Remote host closed the connection) | |
06:33 | Vercas has joined IRC (Vercas!~Vercas@gateway/tor-sasl/vercas) | |
06:52 | ricotz has joined IRC (ricotz!~ricotz@ubuntu/member/ricotz) | |
08:09 | jgee has left IRC (jgee!~jgee@186.80.49.20, *.net *.split) | |
08:09 | quinox has left IRC (quinox!~quinox@ghost.qtea.nl, *.net *.split) | |
08:09 | Vercas has left IRC (Vercas!~Vercas@gateway/tor-sasl/vercas, *.net *.split) | |
08:09 | book`_ has left IRC (book`_!~book`@static.38.6.217.95.clients.your-server.de, *.net *.split) | |
08:09 | alkisg has left IRC (alkisg!~alkisg@2001:470:69fc:105::2d3, *.net *.split) | |
08:09 | PatrikArlos[m] has left IRC (PatrikArlos[m]!~parlosmat@2001:470:69fc:105::1:613e, *.net *.split) | |
08:09 | MUHWALT has left IRC (MUHWALT!~ubox@user/muhwalt, *.net *.split) | |
08:09 | lucascastro has left IRC (lucascastro!~lucascast@192-140-51-251.static.oncabo.net.br, *.net *.split) | |
08:09 | lucascastro[m] has left IRC (lucascastro[m]!~lucascast@2001:470:69fc:105::1:59f2, *.net *.split) | |
08:09 | highvoltage has left IRC (highvoltage!~highvolta@shell.jonathancarter.org, *.net *.split) | |
08:09 | spectra has left IRC (spectra!~spectra@63.142.251.150, *.net *.split) | |
08:09 | sfxworks[m] has left IRC (sfxworks[m]!~sfxworksm@2001:470:69fc:105::e5d4, *.net *.split) | |
08:09 | sunweaver has left IRC (sunweaver!~sunweaver@fylgja.das-netzwerkteam.de, *.net *.split) | |
08:21 | Vercas has joined IRC (Vercas!~Vercas@gateway/tor-sasl/vercas) | |
08:21 | jgee has joined IRC (jgee!~jgee@186.80.49.20) | |
08:21 | lucascastro[m] has joined IRC (lucascastro[m]!~lucascast@2001:470:69fc:105::1:59f2) | |
08:21 | lucascastro has joined IRC (lucascastro!~lucascast@192-140-51-251.static.oncabo.net.br) | |
08:21 | sfxworks[m] has joined IRC (sfxworks[m]!~sfxworksm@2001:470:69fc:105::e5d4) | |
08:21 | alkisg has joined IRC (alkisg!~alkisg@2001:470:69fc:105::2d3) | |
08:21 | PatrikArlos[m] has joined IRC (PatrikArlos[m]!~parlosmat@2001:470:69fc:105::1:613e) | |
08:21 | book`_ has joined IRC (book`_!~book`@static.38.6.217.95.clients.your-server.de) | |
08:21 | MUHWALT has joined IRC (MUHWALT!~ubox@user/muhwalt) | |
08:21 | highvoltage has joined IRC (highvoltage!~highvolta@shell.jonathancarter.org) | |
08:21 | spectra has joined IRC (spectra!~spectra@63.142.251.150) | |
08:21 | sunweaver has joined IRC (sunweaver!~sunweaver@fylgja.das-netzwerkteam.de) | |
08:21 | quinox has joined IRC (quinox!~quinox@ghost.qtea.nl) | |
10:18 | alkisg_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:29 | alkisg_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:59 | lucascastro has left IRC (lucascastro!~lucascast@192-140-51-251.static.oncabo.net.br, Remote host closed the connection) | |
18:00 | lucascastro has joined IRC (lucascastro!~lucascast@192-140-51-251.static.oncabo.net.br) | |
18:06 | vagrantc has joined IRC (vagrantc!~vagrant@2600:3c01:e000:21:21:21:0:100e) | |
22:10 | ricotz has left IRC (ricotz!~ricotz@ubuntu/member/ricotz, Quit: Leaving) | |