stoffepojken has quit [Quit: ZNC 1.8.2 - https://znc.in]
stoffepojken has joined #crux
ivandi has quit [Quit: WeeChat 4.1.1]
ivandi has joined #crux
zorz has quit [Quit: WeeChat 4.1.1]
zorz has joined #crux
<ukky>
farkuhar: testing your patch. One unrelated bug discovered in rsync port driver (Perl): Parent dir of a collection, i.e. /usr/ports, must exist, otherwise rsync driver fails. Not a typical use scenario, though.
_0bitcount has joined #crux
<ppetrov^>
is there a problem if a port has a dot in its name?
lavaball has quit [Remote host closed the connection]
<ukky>
ppetrov^: we currently have only one port with dot in the name, opt/autoconf-2.13 . IMO, we should not use dots, maybe just have an exception when version is added to port name.
<ppetrov^>
yes, it seemed really "unnatural", so I renamed it
<ppetrov^>
the port in questions installs grub configuration file in /etc/default
<ppetrov^>
thanks ukky
<farkuhar>
ukky: good catch on the bug in the rsync driver. Incidentally, some time ago I rewrote the rsync driver in bash, which might have a lower barrier to entry for anyone who wants to insert tests like [ -d "$(basename $destination)" ].
<ukky>
farkuhar: I use your bash version of rsync driver (instead of Perl), just don't know which version.
<farkuhar>
ukky: to accommodate setups like yours where the sync is done as a non-root user, do you think it makes sense to have a "synccommand" directive in prt-get.conf (analogous to "runscriptcommand")? As in, "synccommand doas -u pkgmk /bin/sh" for your use case, but empty by default for everyone else?
<farkuhar>
ppetrov^: we already allow plus signs in port names (contrib/libsigc++ for example), which would cause problems for regex search if not escaped. Same goes for dots in port names, so if regex search is enabled, there needs to be a string replacement in $name and $version to prevent false matches.
<ukky>
farkuhar: I need to think about it. Maybe this would be enough, but I still prefer to add extra protection in each port driver and refuse an update if running as superuser.
<ukky>
farkuhar: too many warnings about invalid port collection. I will provide a patch, but here is current log, note that I update xorg twice: http://0x0.st/HxYt.txt
<ppetrov^>
thanks, farkuhar. Are there any plans about the special signs and the potential regex problems?
<ppetrov^>
actually, I have 6 ports with dots in the names. Will rename them, just for consistency
<farkuhar>
ukky: I wonder if it's really necessary to try respecting --install-root in a sync operation. If you want to update the ports tree on a mounted filesystem, you can just do a local rsync after downloading the updates to the host filesystem.
<farkuhar>
--install-root is really meant for use during install and update operations. Ports get built on the host filesystem, and then the packages are installed to some mountpoint other than /. Since `ports -u` doesn't make any accommodation for mountpoints other than /, I find it rather ambitious to give `prt-get sync` any such capabilities.
<ukky>
farkuhar: IMO, sysroot is a nice feature to have for debugging any component in port update chain. You can develop or debug 'sysroot/etc/ports/drivers/ftp' driver, for example, without affecting host file system.
<farkuhar>
ukky: if you want to respect --install-root, you somehow have to communicate a new prefix to all your drivers; otherwise they'll try to download on the host filesystem, leading to the "invalid port collection" warnings you saw.
<farkuhar>
another option is to prepend `chroot` to the driver command, but then you'd have to ensure that the target filesystem actually has a copy of the driver (and the syncfile) in the same path.
<farkuhar>
same path relative to the mountpoint, I mean.
<ukky>
farkuhar: for drivers in sysroot environment you just need to update 'destination' (rsync) and 'ROOT_DIR' (httpup) accordingly
<farkuhar>
ppetrov^: regarding plus and dot in port names, the only failure mode I'm aware of is in the prtwash script. I've been testing the fix suggested by GazL, and it looks ready for production.
<ppetrov^>
well, i got it in my head that I should avopid dots, and I am updatinga few ports now
<farkuhar>
ukky: I'm getting a better idea of how your sysroot environment is set up. The drivers and *.{rsync,httpup} files still live on the host filesystem, but they explicitly declare a path on the mounted filesystem as the output directory for the {httpup,rsync} commands.
_0bitcount has quit [Quit: Leaving]
<ukky>
farkuhar: are you suggesting such test setup, or do you think this is how my test environment is actually set up?
<farkuhar>
ukky: I thought that was actually how your environment was set up. But maybe I misinterpreted. Anyway, I think the "invalid port collection" errors stemmed from putting the active repo test inside the wrong scope. Here's the amended version, http://sprunge.us/xw4213
lavaball has joined #crux
<farkuhar>
"damn autocorrect", as remiliascarlet might say. The editor thinks it knows better than you do, and suggests a closing brace too early or too late.
<ukky>
farkuhar: in short, my test environment is different from description above. I can provide the full layout and content of all test files (after all tests are finished).
<farkuhar>
actually it's more the fault of auto-*indentation* than autocorrect as such. Too easy to forget which scope you're in, if you're constantly fighting your editor's smart indentation.
<ukky>
farkuhar: that is why we should use tabs instead of 4 spaces ;)
<ukky>
farkuhar: All collections log http://0x0.st/HxgN.txt , specific collections log http://0x0.st/Hxgq.txt , test env /tmp/0002.test-env.txt ; All drivers are CRUX original port drivers
<ukky>
farkuhar: if I would have voting power, I would approve your 'prt-get sync' PR (though I didn't do any testing for multi-staged collection updates)
zorz has quit [Quit: WeeChat 4.1.1]
ppetrov^ has quit [Quit: Leaving]
<farkuhar>
ukky: you can cast a vote in FS#1111 (the closest related issue), or just write to the crux mailing list.