#ARM : ARM support
Not that folks can't use GNU/Linux on ARM (obviously, the Raspberry Pi has been a huge success), but there's still a lot more friction to using GNU/Linux on ARM compared to x86. I'm working on that.
If you find this work valuable, please consider sponsoring me.
golang.org/x/net
is a set of supplementary Go networking
libraries. These are used not just by programmers doing advanced
networking things in Go, but are also used internally by the Go
standard library.
https://github.com/golang/net/pull/208
https://go-review.googlesource.com/c/net/+/580855
https://golang.org/cl/580855
The functions html.EscapeString
and html.UnescapeString
were
once the same between "golang.org/x/net/html"
and std "html"
,
but have been slowly drifting apart since 2012. This PR ports
over documentation and performance improvements from std to x/net.
This will provide a consistent base for fixing bugs in
html.UnescapeString
that were found when working on the
documentation parser in gotk4.
The Go programming language.
https://github.com/golang/go/pull/66970
https://go-review.googlesource.com/c/go/+/580896
https://golang.org/cl/580896
The functions html.EscapeString
and html.UnescapeString
were
once the same between "golang.org/x/net/html"
and std "html"
,
but have been slowly drifting apart since 2012. This PR ports
over documentation and performance improvements from x/net to std.
This will provide a consistent base for fixing bugs in
html.UnescapeString
that were found when working on the
documentation parser in gotk4.
The mkinitcpio
tool generates init-ramdisk images to boot
GNU/Linux systems.
This PR adds tests for the earlier ARM zImage work. This was split off into a separate PR from the main ARM zImage PR because the maintainers had concerns about merging binary test files (very understandable, especially given the recent XZ issue!), but didn't want to hold up the main work.
gotk4 is a project that burries the lede: yes, it is a set of Go
bindings to GTK4. But (IMO) more interestingly,
./gir/cmd/gir-generate
is a tool for generating Go bindings to
GObject Introspection (GI) libraries from the .gir
files
describing the library.
The not-quite-markdown format that .gir
files use for
documentation is under-specified and hard to parse. Right now I'm
focusing on how to properly parse it, so that we can have
top-notch language-specific documentation for GI libraries.
This PR is laying the groundwork for the new parser.
Ruby's standard JSON gem (which comes bundled with the core Ruby distribution!).
ruby-json contains code that is not Free under the FSF's definition, not Open Source under the OSI's definition, and not GPL-compatible. This has coused much consternation among folks who care about any of those 3 things.
This PR replaces that non-Free code with Free code, removing friction for Ruby users on GNU/Linux distros that care about those 3 things.
The mkinitcpio
tool generates init-ramdisk images to boot
GNU/Linux systems.
To do its work, mkinitcpio needs to know the version number of the Linux kernel that it is generating an image for; the normal way that it knows this is to sniff the version number from the kernel file. However, it fails to sniff the version number from ARM zImage kernels, which means that Arch Linux ARM and Parabola for ARM need to resort to hacks to get mkinitcpio to work right.
This PR removes that friction by teaching mkinitcpio to understand ARM zImage files.
Sponsored-by: Umorpha Systems
The file
tool sniffs a file to tell you about the file's
format.
https://mailman.astron.com/pipermail/file/2024-April/001335.html
https://github.com/file/file/commit/cf139abf35d07ebfd0c3edcab2fc400a211c0fbb
This PR improves its ability to detect information about Linux kernel ARM zImage files.
Liberapay is a recurrent donations platform to help fund creators and projects.
When managing your profile, Liberapay nominally supports using
your Libravatar federated avatar as
your profile pic. However, it only loads avatars from the
libravatar.org
instance; not actually supporting federation.
This PR properly implements the Libravatar federation API to load
avatars from any instance.
The file
tool sniffs a file to tell you about the file's
format.
https://mailman.astron.com/pipermail/file/2024-March/001327.html
https://github.com/file/file/commit/3b92878ee277a6b6c0a37429e9edf5e5b55fcdd4
To do this, file
reads a "magic" file that describes the magic
numbers that it might see in a file. This PR fixes a mistake in
the magic(5)
manual for writing such files.
The mkinitcpio
tool generates init-ramdisk images to boot
GNU/Linux systems.
One of the things going on in the secure-boot world is moving toward "Unified Kernel Images" (UKI), which are when the kernel and the init-ramdisk are bundled together into a single file to reduce the risk of a compromised init-ramdisk being able to compromise a secured kernel. This PR reduces friction when using mkinitcpio to generate images directly as UKI without generating a plain init-ramdisk first.
Sponsored-by: Umorpha Systems
EROFS is the Enhanced Read-Only File System, a successor to SquashFS.
https://lists.ozlabs.org/pipermail/linux-erofs/2023-November/009765.html
https://github.com/erofs/erofs-utils/commit/f528b82ffbcb15484a7195c1a1d08ece0ff67350
https://github.com/erofs/erofs-utils/commit/197e3294bcdf93f37d12989cd830a33c055b1a53
https://github.com/erofs/erofs-utils/commit/f97311883337eb7e0ded55e60995e6599eba73e5
This patchset improves the --help
documentation and man-pages of
the EroFS userspace tools, and reduces friction by having
fsck.erofs
accept common command line flags that fsck
implementions for other filesystems take.
Sponsored-by: Umorpha Systems
gotk4 is a project that burries the lede: yes, it is a set of Go
bindings to GTK4. But (IMO) more interestingly,
./gir/cmd/gir-generate
is a tool for generating Go bindings to
GObject Introspection (GI) libraries from the .gir
files
describing the library.
This PR makes it easier to contribute to gotk4 by improving developer documentation and automated checks.
Posted daily on Mastodon with the #DailyStandup tag.
Su | M | Tu | W | Th | F | S | ||
---|---|---|---|---|---|---|---|---|
April 2024 | 28 | 29 | 30 | 1 | ||||
21 | 22 | 23 | 24 | 25 | 26 | 27 | April 2024 | |
14 | 15 | 16 | 17 | 18 | 19 | 20 | ||
7 | 8 | 9 | 10 | 11 | 12 | 13 | ||
March 2024 | 31 | 1 | 2 | 3 | 4 | 5 | 6 | |
24 | 25 | 26 | 27 | 28 | 29 | 30 | March 2024 | |
17 | 18 | 19 | 20 | 21 | 22 | 23 | ||
10 | 11 | 12 | 13 | 14 | 15 | 16 | ||
3 | 4 | 5 | 6 | 7 | 8 | 9 | ||
February 2024 | 25 | 26 | 27 | 28 | 29 | 1 | 2 | |
18 | 19 | 20 | 21 | 22 | 23 | 24 | February 2024 | |
11 | 12 | 13 | 14 | 15 | 16 | 17 | ||
4 | 5 | 6 | 7 | 8 | 9 | 10 | ||
January 2024 | 28 | 29 | 30 | 31 | 1 | 2 | 3 | |
21 | 22 | 23 | 24 | 25 | 26 | 27 | January 2024 | |
14 | 15 | 16 | 17 | 18 | 19 | 20 | ||
7 | 8 | 9 | 10 | 11 | 12 | 13 | ||
December 2023 | 31 | 1 | 2 | 3 | 4 | 5 | 6 | |
24 | 25 | 26 | 27 | 28 | 29 | 30 | December 2023 | |
17 | 18 | 19 | 20 | 21 | 22 | 23 | ||
10 | 11 | 12 | 13 | 14 | 15 | 16 | ||
3 | 4 | 5 | 6 | 7 | 8 | 9 | ||
November 2023 | 26 | 27 | 28 | 29 | 30 | 1 | 2 | |
19 | 20 | 21 | 22 | 23 | 24 | 25 | November 2023 | |
12 | 13 | 14 | 15 | 16 | 17 | 18 | ||
5 | 6 | 7 | 8 | 9 | 10 | 11 | ||
October 2023 | 29 | 30 | 31 | 1 | 2 | 3 | 4 | |
22 | 23 | 24 | 25 | 26 | 27 | 28 | October 2023 | |
15 | 16 | 17 | 18 | 19 | 20 | 21 | ||
8 | 9 | 10 | 11 | 12 | 13 | 14 | ||
1 | 2 | 3 | 4 | 5 | 6 | 7 | ||
September 2023 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | September 2023 |
17 | 18 | 19 | 20 | 21 | 22 | 23 | ||
10 | 11 | 12 | 13 | 14 | 15 | 16 | ||
3 | 4 | 5 | 6 | 7 | 8 | 9 | ||
August 2023 | 27 | 28 | 29 | 30 | 31 | 1 | 2 | |
20 | 21 | 22 | 23 | 24 | 25 | 26 | August 2023 | |
13 | 14 | 15 | 16 | 17 | 18 | 19 | ||
9 | 10 | 11 | 12 |
What I did yesterday:
- Reverse engineered some of the Webflow API so we can get the Umorpha website off of it. I should write up some of that on my blog.
- More GI-DocGen parser fixes.
What I'm doing today:
- Giving up mimicking GI-DocGen emitting lists (<ul> / <ol>) that contain things other than <li>
- Still trying to get this parser over the line.
- Prepping to fly to #LibrePlanet tomorrow night.
What I did yesterday:
- Fixed bugs in my GI-DocGen parser.
- Left the fuzzer running for a few hours to find more bugs.
What I'm doing today:
- Some website-handoff stuff for Umorpha
- Fixing more Gi-DocGen parser bugs.
What I did on Friday and over the weekend:
- Got the Python-Markdown compatible parser for the GI-DocGen thing passing its tests! #gtk
What I'm doing today:
- Fixing a CSS bug on narrow-but-not-too-narrow screens on https://www.lukeshu.com/imworkingon/ and adding last-updated-by info to the page.
- Figuring out how HTML5 deals with \x00 bytes, for the purposes of the GI-DocGen parser.
What I did yesterday:
- Got my GI-DocGen parser to handle implied-end-tag cases, getting it down to just 3 "types" of test failures. #gtk
What I'm doing today:
- I'd really like to say "wrapping up this parser, there are just a few bugs left!" but if the bugs were easy, I'd have already fixed them… so more realistically…
- handling HTML5's "no nested <a> elements" rule
If you'd like to fund this work to improve GI tooling and other GNU/Linux things: https://lukeshu.com/sponsor/
What I did yesterday:
- Dropped testing-compatibility hacks from the GI-DocGen parser that enable the tests to get the exact newlines as the old Python parser; instead the tests now normalize whitespace between block elements. #gtk
- Implemented the HTML5 "block element implies '</p>'" logic in said parser.
What I'm doing today:
- Figuring out how to handle more implied-end-tag cases.
- Figuring out how to handle the "no nested <a> elements" rule.
What I did yesterday:
- Fixed a mistake in https://golang.org/cl/580855 (my backport of improvements from std "html" to "x/net/html")
- Fixed the "≪⃒" and "≫⃒" bug in #golang html.UnescapeString (but I'm holding off on submitting the bugfix CL(s) until the sync CLs land — https://github.com/LukeShu/net/tree/lukeshu/html-unescape if you want to see it)
- Fixed my website on mobile
What I'm doing today:
- Contemplating the horror that is HTML's nesting rules in relation to Python-Markdown (Gi-DocGen #gtk)
I'm seeing the pattern that I work on stuff during the weekend, then run out of steam Monday afternoon, then get jack shit done on Tuesday and actually rest on Tuesday.
Anyway, #DailyStandup
Yesterday:
- Put up https://golang.org/cl/580896 and https://golang.org/cl/580855 to sync code between "x/net/html" and std "html"
- Got the HTML entity escaping rules in the GI-DocGen parser worked out. #gtk
Today:
- prolly not a lot
- Figuring out how to implement HTML5's nesting rules in the GI-DocGen parser
What I did on Friday:
- Got my GI-DocGen parser normalizing inline HTML per the HTML5 rules #gtk
What I did over the weekend:
- Added a viewer for my #DailyStandup mastodon posts to https://www.lukeshu.com/imworkingon/ , with a cool calendar view
- Worked on more bugs in the GI-DocGen parser
- Started on a PR to fix #GoLang html.UnescapeString https://fosstodon.org/@lukeshu/111101456648543279
What I'm doing today:
- Addressing the drift between Go "golang.org/x/net/html" and std "html"
- More GI-DocGen parser bugs
Yesterday:
- I spent the day reworking the GI-DocGen parser's tests, because I realized a lot of the failures I was hitting were quirks in my test suite, not bugs in the code-under-test. #gtk
Today:
- Getting the GI-DocGen parser to properly normalize inline HTML, as is now evident that it has to do based on the new test setup.
Yesterday:
- Add "released" detection to https://www.lukeshu.com/imworkingon/
- But mostly didn't get to work on things yesterday.
- My mkinitcpio ARM zImage PR got merged!
Today:
- A few more incremental improvements to the imworkingon page
- Chugging through fuzzer-found bugs in my GI-DocGen parser
Friday:
- Got the GTK-Doc/GI-DocGen markdown parser updated to use Nix Flakes and rebased up to gotk4 HEAD
- but didn't really get anything else done
Over the weekend:
- I made https://www.lukeshu.com/imworkingon/ to have a cool tracker of what I've been working on (I ack that the page is fairly rough at this point). If you find any of that work valuable, please consider sponsoring me.
Today:
- Responded to more feedback on the mkinitcpio ARM zImage PR
- Honestly, IDK, too many choicies
Yesterday:
- Responded to more feedback on various PRs.
- At #BoulderLUG #Boulder #LUG, listened to a new class from David of the #SoftwareFreedom School
https://sofree.us/
Today:
- Figure out #Nix Flakes enough to rebase the gotk4 markdown parser up to HEAD (since I started my branch, gotk4 has switched from `.nix/default.nix` to Flakes)
- Rather than grinding at fuzzer-found bugs in the gotk4 parser, might get some other (Linux? FUSE? EroFS?) docs improvements fired off?
Yesterday:
- Worked on the gotk4 gi-docgen markdown parser.
Today:
- Responding to more feedback on the mkinitcpio PR
- Responding to feedback on the preliminary gotk4 docs PR.
- Working through more test failures on the gotk4 gi-docgen markdown parser.
Yesterday:
- Responded to some feedback on the mkinitcpio #ARM zImage PR
- Responded to some feedback on the @Liberapay @libravatar PR. It is now merged and deployed! Federated avatars now work on Liberapay! #Federation
- Kept working on gotk4 GTK-Doc/GI-DocGen markdown parsing. #GObject
Today:
- Responding to more feedback on the mkinitcpio PR.
- Still working on the GI-DocGen parser.
Friday:
- who even remembers
Today:
- I spent some time yesterday finally coming back to parsing GTK-Doc/GI-DocGen markup, and I think I'm going to let that be my focus for today.
Yesterday:
- I submitted proper @libravatar federation to @Liberapay https://github.com/flori/json/pull/567
Today:
- Benchmarking the changes I made to the #ruby #json gem to make it #FOSS/GPL-compatible. Preliminary results are that my new #FreeSoftware code is faster than the old proprietary code! https://github.com/flori/json/pull/567#issuecomment-2040513200
Yesterday:
- Pushed out #Parabola libretools v20240403 https://lists.parabola.nu/pipermail/dev/2024-April/008866.html ; support for makepkg v6.1!
- Spent way more time than expected reviewing Bill's contributions to libretools
Today:
- Implementing proper @libravatar federation for @Liberapay https://github.com/liberapay/liberapay.com/pull/2334
- More libretools contribution reviewing
Yesterday:
- Didn't get through any of my stated goals, but
- I did find an issue in #Parabola where some package files that are mentioned on the .db file aren't on the mirrors
Today:
- Actually doing a new #Parabola libretools (see: bug#3622)
- Realistically, I don't think I'm going to be submitting my #Linux kernel config-docs patches today, but that's my "if I'm not making progress on the other thing" task today.
Yesterday:
- Figuring out what I want my ruby-json benchmark strategy to be.
Today:
- My script for generating kernels for the mkinitcpio tests has some trouble with kernels v6.0 and older, so dealing with that (I want to go down to v4.15)
- Continuing with ruby-json benchmarking
What I did yesterday:
- Update my mkinitcpio detect-ARM-zImage-files patch to properly deal with more kernel configurations, adding tests for them
- Submit improvements to file(1) and fixes to the magic(5) man-page
- left a script running overnight testing the mkinitcpio patch against a bunch (thousands) of historical kernels...
What I'm doing today:
- ... still leaving that running
- benchmarking the ruby-json replace-CVTUTF PR
What I did yesterday:
- Working on a system for building firmware images for embedded devices/appliances based on #Parabola (reviving osi-mk from https://git.parabola.nu/~lukeshu/notsystemd-tests.git/)
What I'm doing today:
- Still that
- Deploying a git server for Umorpha
- new #Parabola libretools?
Blockers/concerns:
- I just cant *believe* that hacks I wrote 5 years ago have bit-rotted.
- Parabola's systemd is a version behind
- Parabola's grub is old
What I did yesterday:
- Spent some time rebasing things from testbench mkosi up to current mkosi to submit upstream
- Order another phone as a dev tool for my #SignalApp fork
What I'm doing today:
- Push out a SignalApp build
- First day officially working for Umorpha Systems
- Figuring out a good process for building OS disk images (with mkosi?)
- ... deploying a Gitea server appliance
- new #parabola libretools version?
Concerns/blockers:
- none?
- Because I was wanting to borrow some code from it, I fixed bitrot in https://git.lukeshu.com/2git/cvtutf-make/ which is the scripts that make the https://git.lukeshu.com/2git/cvtutf repo, which is the history of the CVTUTF #Unicode library. #SoftwareArcheology
- The last 3 days have been 100% dedicated to finding Olive who pushed out a window screen Saturday night/Sunday morning. She's back home safe now!!! #cat #CatsOfMastodon #reunited
I don't have an excuse for last week tho.
- Investigated a bug with kmod v31 and #LinuxLibre v6.3.3 not playing nice on #Parabola. No conclusion yet.
- workin on the gidocgen parser
- improving btrfs-rec rebuild-mappings
Yesterday:
- So I think the gi-docgen HTML parser is finally bug-free? Fuzzer hasn't found any issues in a while.
Today:
- I saw that @orsinium published his #golang enum library (https://github.com/orsinium-labs/enum), so I took a peek at it and filed a couple minor PRs :)
- Work on improving the btrfs-rec rebuild-mappings algorithm #btrfs
Yesterday:
- Had a not very productive day working on the gi-docgen parser
Today:
- Having a very productive day working on the gi-docgen parser. I think I have basically all the parts working, and now I just need to tie things together.
Concerns/blockers:
- idk
- Ugg I'm the worst and haven't been posting standups this week
Today:
- Try to get the gi-docgen html block processor working
- Fuss with #SignalApp MMS
Blockers/Concerns:
- ?
Yesterday:
- Slept 'til 3pm
- #fuzzer found an issue with the gi-docgen blockparser (hence the #Unicode toots)
- Read Umorpha's mission+values doc
- put the LED in my lightsaber that I drilled the hole for in May
- SIM for #SignalApp testing came, so used it to play w/ my #Librem5
Today
- Donut's bday! 🐱😍🎂
- fixed the blockparser
- meet w/ Umorpha
- put #OpenWrt on router for mom
- put new HDDs in the #Parabola build server (assuming they arrive)
- so many emails
Concerns
- idk
There is no #DailyStandup there is only sleep.
What I did yesterday:
- Mostly just napped
- My aluminum wire came so I spent some time re-doing the brim of my wizard hat
What I'm doing today:
- Ugg, overnight the fuzzer found another issue in the blockparser. Fixing.
- Rework the first part of the btrfs-rec rebuild-chunks algorithm
Blockers/concerns:
- none?
What I did yesterday:
- I thought I got the gi-docgen blockparser working correctly
What I'm doing today:
- Actually the fuzzer found some issues in the night; fixed them
- Proceeding to work on the inlineparser
Concerns/blockers:
- Low energy today. Tempted to just screw off and play with my new Flipper Zero? Or take a nap?
#DailyStandup Today was weird because sleep.
What I did Sat/Sun:
- Ordered another SIM card to more easily test this #SignalApp MMS issue
- #Parabola build server locked up again, idk why. But: 1. SMART errors; so new drives will be here Thursday 🤞 2. Fixed errors from hackers-update.service and shadow.service
- Worked on the gi-docgen parser
What I did today:
- Worked on the gi-docgen parser. Still fuzzing running, but it's looking like I've finally got the blockparser behaving correctly 🤞
No #dailystandup yesterday because I didn't sleep right and spent the day in a half-asleep haze.
But on Thursday I:
- Dealt with the #Parabola build server overheating
- Presented on Parabola at #Boulder #LUG
- Got a good log trace of the MMS bug in my fork of #SignalApp
- Ordered a Flipper Zero
Today I'm going to:
- Looks like the Parabola build server died because the OOM killer made some bad choices? Looking into that.
- Emails
- Try to wrap up the gi-docgen parser, and PR that into gotk4
What I did yesterday:
- Fight with the Signal build system and Android app signing and dumb user-hostile bullshit
- Read docs on Android telephony
What I'm doing today:
- Work on LUG presentation, give LUG presentation
Blockers/concerns:
- My brain is garbage
What I did yesterday:
- Flew back home from Indianapolis after #GenCon
- Started updating my fork of #SignalApp from v6.26 to v6.27
What I'm doing today:
- Track down a bug with MMS group messages in my fork of #SignalApp
- Sync with Flynn
- Prepare my presentation on #Parabola #GNU/ #LinuxLibre that I'm giving at the Boulder LUG tomorrow.
Blockers/Concerns:
- I hate Gradle so much