IRC channel logs
2024-04-14.log
back to list of logs
<fossy>Googulator: I'm fairly happy with the openela diff. The changes are not tooo big <fossy>Googulator: also, OpenSSL 3 i have no qualms against in theory, i'll review the PR shortly <fossy>hm, swear i ran into something trying to do OpenSSL 3 earlier, although very high chance that has been resolve acidentially in the meantime <stikonas>this is probably leftover from that weak symbols hack <fossy>stikonas: that looks removable to me, if you could check or chuck it in a PR so it can be tested that would be good <stikonas>yeah, I just kicked off a run, it's happily continuing <fossy>stikonas, Googulator: #454 good to merge? <Googulator>I'm still doing final tests on it; the download-distfiles.sh and generator.py paths are good, still waiting for it to reach the helpers.sh path <fossy>wth, I'm reading that autoconf ML thread, there are some bad takes in there <Googulator>one of the worst is where someone suggested maintainers should just edit config.guess instead of doing autoreconf... <fossy>"GNU/Linux distributions have a long history of buggy backports to the autotools" <fossy>perhaps because autotools has so much black magic <fossy>and is very difficult to patch witout introducing bugs -.- <Googulator>and the fact that they suggested editing config.guess makes me wonder if any official GNU release tarballs have autotools outputs that were hand-edited by the maintainer, maliciously or not <fossy>the answer to that i'd say is probably "yes", certainly for some pregenerated files, if not autotools <stikonas>one good thing out of xz thingy might be some projects moving away from autotools <stikonas>well, but it souldn't happens for GNU projects... <stikonas>which is what we mostly work with in live-bootstrap <fossy>this is legally correct, but completely tone-deaf <stikonas>yeah, strictly speaking you only need to provide source on written request <stikonas>but yes, that reply just sounds a bit obstructionist... <fossy>that "I have chosen to give tarballs to my users" <Googulator>"(or, well, GNU has chosen for me, even before I was present)" <stikonas>well, back then it might have made more sense <Googulator>or, you know, even before Git was invented, and _long before_ any GNU project adopted serious source control <stikonas>but it doesn't mean that all is set in stone <Googulator>tarballs are the only thing you can release if the sole authoritative copy of the upstream source resides in a directory on the maintainer's hard drive (hopefully they have backups at least...) <stikonas>fossy, Googulator: should we also try to fix those non-redistributable files (heirloom-tools) before 1.0? <Googulator>IMO if we can do it with plan9 sources, then yes <fossy>stikonas: hm, probably, did we have an idea for how to fix that? <stikonas>well, we somehow need to get gash to work then... <Googulator>but I wouldn't add more Lisp/Scheme dependency for it <fossy>probably not worth it in that case if we need gash <stikonas>but it's probably not very well documented how to run it (without ./configure and all that generated stuff) <stikonas>well, in fact we only need to rebuild 1 file <stikonas>and then we could use whatever works for flex/bison bootstrap (could even keep heirloom-tools) <Googulator>we would probably need to fork these and port to meslibc <stikonas>byacc -> bash -> musl -> heirloom-tools -> flex -> ... -> bison <stikonas>it does seem buildable by tcc/mes at first glance <stikonas>though one would have to write custom makefile <stikonas>perhaps I'll investigate this at some point later <stikonas>make: *** No rule to make target 'skeleton.c', needed by 'skeleton.o'. <stikonas>but anyway, it would be easier than writing completely from scratch <Googulator>I wonder why we build flex at the point where we do <stikonas>flex needs the "same libc" build of heirloom tools <stikonas>but then we need to do musl -> rebuild heirloom-tools -> flex <Googulator>builds byacc successfully without autotools *on a modern Linux distribution* <stikonas>and this yacc seems to cope well with parser.y from bash <stikonas>issue #456 nicely summarizes all the information that we discussed here <fossy>thanks for the summary Googulator :) <fossy>the path forward seems reasonable to me <stikonas>strange that we didn't consider it before <fossy>(i have never seen it before today) <stikonas>and if this is much better than heirloom yacc, it migth simplify bison's bootstrap <stikonas>and if not, we'll just keep the current path <oriansj>well finding improvements is likely to continue for years (potentially decades); there are a great many enhancements and ordering tweaks possible. <Googulator>I wonder who has the ability to update bootstrappable.org <Googulator>currently trying replacing fgetpos/fsetpos with fseek/ftell using sed <fossy>not sure a simple find/replace will work, but fgetpos/fsetpos should be fairly easily replaceable with fseek/ftell i believe <Googulator>there's only a single use of each, so a simple replacement is enough <Googulator># meslibc has no fgetpos/fsetpos - emulate using fseek/ftell <Googulator>sed -i -e "s/fpos_t/long/" -e "s/fgetpos(f, &save_area.line_fpos) != 0/(save_area.line_fpos = ftell(f)) == -1/" \ <Googulator> -e "s/fsetpos(input_file, &save_area.line_fpos)/fseek(input_file, save_area.line_fpos, SEEK_SET)/" reader.c <Googulator>this time, I'm emulating it by just opening a file in the current directory, so the resulting byacc will be a bit "messy", but it should work <fossy>not immediately sure what's wrong <stikonas>well, byyacc is not immediately helpful in bison bootstrap, it can't build bison parser. It can do flex parsers but we need heirloom-tools for lex files there anyway <stikonas>(possibly we could skip building heirloom yacc...) <oriansj>Googulator: rekado is the one who generally updates the site <oriansj>also adding C functions in libraries should be relatively easy to do; so instead of replacing, improve meslibc just a little. <Googulator>fossy: curl: (22) The requested URL returned error: 502 <Googulator>oriansj: I'd rather not wait for mes 0.27; LB 1.0 has been dragging out for way too long already <Googulator>only options are simple-patch and rolling our own prepatched mes tarball <oriansj>Googulator: we have replace.c which can be used for simple patching <oriansj>and we could definitely do a simple sed in mescc-tools-extra if we need something more advanced. <Googulator>turns out we do already have patch-2.5.9 when we build byacc (though not when we build meslibc) <Googulator>but replace/sed is probably not sufficient for adding entire new functions to meslibc <Googulator>oriansj: looks like we need to start relying on your mirrors of savannah tarballs <stikonas>Googulator: you could just patch meslibc before byacc <stikonas>by then patch and sed are both available <stikonas>and also submit that function to mes as patch <Googulator>oh right, we don't have the package system in place yet at that point <stikonas>so it wouldn't add much time to the build <stikonas>only the build of meslibc with mescc is slow <Googulator>Pushed an updated byacc to the byacc branch; this one actually works when built against meslibc <Googulator>looking promising - bash builds fine and everything up to and including m4, if I remove heirloom and flex-2.5.11 from the manifest, and just install byacc as yacc <Googulator>all that's needed basically is to convert heirloom's build script from kaem to sh <stikonas>Googulator: so you are inserting heirloom tools and flex 2.5.11 just before flex 2.6.4? <stikonas>well, all bison bootstrap steps will be in one place... <stikonas>not sure if you saw my testing earlier, but byacc can't help with bison bootstrap itself <stikonas>I did try to search online, but didn't find any other lex <Googulator>there's reflex by the same author who maintains byacc, but of course it depends on itself :( <stikonas>the main thing was getting rid of non-redistributable binaries <Googulator>& if we're keeping heirloom lex, it's easier to keep it working together with heirloom yacc than trying to get some byacc + heirloom lex hybrid working <stikonas>and building byacc is also easier than getting gash to work <Googulator>heirloom is basically sysv lex/yacc, so I wouldn't expect compatibility with byacc which is BSD yacc <Googulator>not to mention not needlessly increasing our dependency on Lisp-like languages <stikonas>well, guix people would disagree with your but yes, I find it harder to work than e.g. C <Googulator>"Lisp is so easy, Emacs does everything for you"... <Googulator>another side effect of moving heirloom after bash: no more "uninstall: /usr/..." directives in the manifest <Googulator>we can just "uninstall: heirloom-devtools-070527" <stikonas>well, uninstalling is also less important <stikonas>before this I really wanted to rm -rf heifloom as soon as possible due to non-redist <Googulator>or rather parse.c that heirloom lex generates from parse.y <Googulator>parse.c does, but it has no "yy_n" anywhere near it <Googulator>now trying a build where I strip all #line directives from parse.c before building it - hopefully tcc will output something more meaningful then <stikonas>and yacc is from heirloom as we discussed? <stikonas>yeah, those bison files do mess up error reporting a bit <stikonas>Googulator: hmm, given that we build this after musl <stikonas>do we need to adjust some CPPFLAGS in makefile? <stikonas>well, that DVERSION I guess should be CPPFLAG but oh well... <Googulator>tcc invocation in makefile also only references CFLAGS <stikonas>well, doesn't matter, I was too sloppy when I was writing those makefiles <stikonas>rather than making distinction between CFLAGS and CPPFLAGS <stikonas>anyway, that's mostly just the convention <stikonas>anyway, see if you can get a better error message... <stikonas>because I don't see why moving flex after musl would break it <stikonas>well, I guess it is related to 1769 line of parse.y <stikonas>i.e. C file was created by something there <Googulator>but at least parse.c:1083 does indeed reference yy_n