-
Notifications
You must be signed in to change notification settings - Fork 164
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bootstrapping fails on OpenMPTCProuter v0.59 (a build of OpenWRT) #130
Comments
I don't have an OpenMPTCProuter or OpenWrt environment to test with,
(Now, I'm also not sure if it's best to just handle OpenWrt and You may also find the BusyBox sed implementation is inadequate (though, Dave |
There are other busybox-based distros besides OpenWRT, e.g. Alpine
Linux, so grep'ing /etc/os-release for OpenWRT seems overly specific.
I'm not immediately sure of the most portable way to check whether
something is a symlink and what it points to, but I would expect that on
any busybox-based system,
ls -l $( which awk )
will show something like
/usr/bin/awk -> /bin/busybox
That feels like a more general way to check for the busybox awk
implementation.
|
@dhgutteridge commented 2 days ago:
True:
Can you be more specific, please? I tried looking into
... but I don't understand a thing yet. :)
The BusyBox version seems to be a mix of features of
Thanks, but before that I would like to understand the picking algorithm. Especially:
BTW, Tried going with
... but that left me overwhelmed with the output (which increased from 79k to 30M in size). Any ideas on how to proceed with finding the root causes? |
Sorry, I think we're coming with different ideas of what was intended. My assumption was your primary interest was bootstrapping and using pkgsrc ASAP. It's probable you will encounter further issues as you go, so it could turn into a more protracted process to walk through every question that arises. The simple answer without getting into a lot of details is that "stuff will break" if bootstrapping goes awry. You may find make components behave inconsistently, as you see here (${AWK} evaluating to nothing, or to an unexpected default). This is code written by different people at different times. Yes, some of this could be handled better; I'm not arguing otherwise. If you'd like to have a detailed technical review, that's a perfectly fine thing to request, but it's not something I can prioritize, I'm afraid. |
@dhgutteridge, thanks for making things clear!
I thought about progressing ASAP at first. But the delay in responses made me to consider doing an RCA. Which I think is still a good thing to do in most cases.
Fair enough. I am willing to do the research myself, but I need some (at least initial) guidance. It's hard to notice the moment where bootstrapping starts missing something and diverges from the plan. I'll file a new issue to walk through that in parallel. Or maybe discussing it online like on IRC would be better? I already started a talk on that with @jperkin. Now back to testing your fix. |
I tried to take the hint from @jwbowen into account: --- a/bootstrap/bootstrap
+++ b/bootstrap/bootstrap
@@ -748,6 +748,9 @@ Linux)
elif grep -sq '^CHROMEOS_RELEASE_NAME' /etc/lsb-release; then
need_awk=yes
need_sed=yes
+ # Busybox distros have some things broken.
+ elif command -v awk | xargs ls -l | grep -sq busybox; then
+ need_awk=yes
fi
machine_arch=`uname -m`
# Override machine_arch where required. ... and the error changed:
Now it misses Is having a |
Now after defining
|
You haven't shared a complete log, so it's hard to know what's going on in entirety (e.g., with the other two packages that already built). This implies the individual packages have different expectations, but I haven't walked through them. |
This is a different issue entirely, and one I'm pretty sure isn't specific to your platform/setup. I think it could be reproducible elsewhere. I will look into that aspect. |
This could also relate to #124. |
Was the solution in #124 any help to you? I wasn't able to reproduce this. I thought a relatively recent change might have created a condition where this could occur (on NetBSD), but it seems not. I'm familiar with situations where this pattern can occur, but I doubt they are relevant to you. (E.g., if someone confuses overriding WRKDIR when they really want WRKOBJDIR, they would get this circular dependency.) |
IIRC it helped. I wanted to file a related bug about pkgsrc not indicating that Is that (detection) doable – what do you think, David? PS. Where did you try reproducing it BTW? |
Detection is certainly possible. I'm not sure that's the best solution, would need understand it better. Evidently some Linux distros don't include hostname by default. Hard to support N number of Linux distros, each with their own ideas of things. (Doesn't scale well with the small number of pkgsrc developers.) "uname -n" would perhaps be a better choice (i.e. patch the problem software instead of introducing another dependency), but there may be conflicting historical reasons why that wasn't done. In general, IMO it's not realistic to expect pkgsrc to just work out of the box on any Linux distro without installing certain things in the base system (as opposed to requiring them to build during a bootstrap). Some of this is documented in README.Linux.
NetBSD 9.3_STABLE, which isn't a true "bootstrap" at all (under typical usage), but will pull in that dependency chain when someone starts from scratch. Thought I'd encountered a cyclical problem there back in February, but couldn't reproduce it now. |
0.2.6 * Make list tightness match the reference implementation closer (#150, Michael Howell). This solves the problem where blank lines in the middle of a list are attributed to the list itself instead of the item, making its parent list become spuriously loose. * Fix bug with entities inside link destinations (#149). The bug affects cases like this: [link](\!); the backslash escape was being ignored here. * Commonmark.Entity: export pEntity [API change]. 0.2.5.1 * Replace source with search in list of block tags. This is a spec 0.31 change that was forgotten in the last release. 0.2.5 * Fix HTML comment parser to conform to 0.31.2 spec. * Update spec.txt tests to commonmark-spec 0.31.2. * Match HTML declaration blocks with lowercase letters (Michael Howell). * Specifically track the position where enders end (Michael Howell). 0.2.4.1 * Commonmark.Html: Add aria-hidden, d, and viewBox to allowed attributes list. * Correctly merge list blanks with non-list blanks (#133, Michael Howell). * Do not look for backslashed hard breaks in link titles (#130, Michael Howell). * Work around ghc bug with -K RTS options, to set the stack space properly for tests (#129). See https://gitlab.haskell.org/ghc/ghc/-/issues/10445. * Revert block state completely if lazy line (#126). This fixes an issue with lazily-wrapped footnotes. * Avoid adding trailing newline to list block if it's already there (Michael Howell). This fixes tight/loose classification in a few cases. * Fix incorrectly parsing links with nested [] (Michael Howell).
# ragg 1.3.2 * Fix a bug in how groups are defined and recalled # ragg 1.3.1 * Make sure the linejoin/linemitre setting is honored when drawing rectangles (#162) * Fix a bug with resetting clipping during group and pattern rendering * Fix scaling of raster glyphs in drawGlyph # ragg 1.3.0 * Added supported for new graphics enigine features: Groups, paths, luminance masks, and glyphs * Add a switch (defaults to on) to snapping rectangles to the pixel grid when they are only drawn with fill (no stroke) * Fixed a bug causing repeated warnings when using a font at 0 size (#130) * Silence a bug in clang-ASAN that incorrectly reported sanitiser issues
1.8.2 (2024-09-24) What's Changed * Drop commented-out line by @olleolleolle in #108 * Add Ruby 3.1 & 3.2 to CI matrix by @tricknotes in #109 * Fix/redos by @ooooooo-q in #114 * Raise HTTPStatus::BadRequest for requests with invalid/duplicate content-length headers by @jeremyevans in #120 * Bump actions/checkout from 3 to 4 by @dependabot in #121 * Improve CI by @hsbt in #123 * Fix WEBrick::TestFileHandler#test_short_filename test not working on mswin by @KJTsanaktsidis in #128 * Fix bug chunk extension detection by @jeremyevans in #125 * Fix CI. by @ioquatix in #131 * Merge multiple cookie headers, preserving semantic correctness. by @ioquatix in #130 * Test on macos-latest by @byroot in #132 * Require CRLF line endings in request line and headers by @jeremyevans in #138 * Prefer squigly heredocs. by @ioquatix in #143 * Only strip space and horizontal tab in headers by @jeremyevans in #141 * Treat missing CRLF separator after headers as an EOFError by @jeremyevans in #142 * Return 400 response for chunked requests with unexpected data after chunk by @jeremyevans in #136 * Fix reference to URI::REGEXP::PATTERN::HOST by @casperisfine in #144 * Prevent request smuggling by @jeremyevans in #146 New Contributors * @tricknotes made their first contribution in #109 * @ooooooo-q made their first contribution in #114 * @KJTsanaktsidis made their first contribution in #128 * @byroot made their first contribution in #132 * @casperisfine made their first contribution in #144
To run the bootstrap I needed to fake
groups
andwhoami
executables. The related (sub-) issue: #137Then it failed due to missing
nawk
:The OS:
The text was updated successfully, but these errors were encountered: