19 Sep 2026
Planet Debian
Kentaro Hayashi: Building with dh-bazel, buildsystem support for debhelper experiment updates

Introduction
After bazel-bootstrap 7.7.1 was landed into Debian unstable, I'm working on packaging newer Mozc (Most famous Japanese input method editor) with Bazel.
Here is the blog entry initial efforts to build Mozc with Bazel at that time.
Then, I've shared implementing PoC dh-bazel experiment. See why dh-bazel is needed, and prototype about dh-bazel.
As a Bazel beginner, want to know what should pass to Bazel, what should not pass to Bazel.
What is improved in recent dh-bazel?
In the previous versions of dh-bazel, it supports only basic features to build with Bazel as a thin wrapper.
%:
dh $@ --buildsystem=bazel
override_dh_auto_build:
dh_auto_build -- //:hello
Now, with recent changes, it supports the following environment variables to resolve required system libraries in dynamically.
DH_BAZEL_OVERRIDE_MODULE
It search the specified modules from bundled dummy modules in dh-bazel. It accept ',' separated paramesters. (e.g. DH_BAZEL_OVERRIDE_MODULE=zlib,zstd)
dh-bazel bundles abseil-cpp, apple_support, buildozer, lz4, openssl, protobuf, rules_android_ndk, rules_apple, rules_swift, zlib and zstd as dummy modules to linking system libraries.
Now you can use it in debian/rules like this:
#!/usr/bin/make -f
# -*- makefile -*-
#
export DH_BAZEL_OVERRIDE_MODULE=zlib
export DH_VERBOSE=1
%:
dh $@ --buildsystem=bazel --without=single-binary
override_dh_auto_build:
dh_auto_build -- //:hello
It is impossible to cover all of system libraries in Debian, so in that case, please consider to use the following DH_BAZEL_PKGCONF_MODULE.
DH_BAZEL_PKGCONF_MODULE
It search the specified modules with pkgconf. It is useful when there is no bundled modules in dh-bazel if you want. It accept ',' separated paramesters. (e.g. DH_BAZEL_PKGCONF_MODULE=gtk4-x11,gtk4-unix-print).
If DH_BAZEL_PKGCONF_MODULE could not match, then dh-bazel fallback to dig into Build-Depends: field in debian/control. Note that if it is not deterministic (e.g. -dev package provides multiple .pc files) dh-bazel gives up fallback with pkgconf.
Now you can use it in debian/rules like this:
#!/usr/bin/make -f
# -*- makefile -*-
#
export DH_BAZEL_PKGCONF_MODULE=gtk4-x11,gtk4-unix-print
export DH_VERBOSE=1
%:
dh $@ --buildsystem=bazel --without=single-binary
override_dh_auto_build:
dh_auto_build -- //:hello
Conclusion
dh-bazel is still in very early stage prototype, but it resolves some sort of packaging glitches a bit by bit.
I hope that it will help package maintainer using Bazel. (dh-bazel is not uploaded into debian/unstable yet, so stay tuned!)
19 Sep 2026 8:33am GMT
18 Sep 2026
Planet Debian
Paul Tagliamonte: Why Write?

As a graduate of a liberal arts university, I wound up, unsurprisingly, taking a lot of classes in every possible academic discipline. Thinking back to the person that I was going into university, I don't think I would have chosen to take them - after all, my degree was in the sciences; I'd have been stoked to do nothing more than wall-to-wall computer science until I ran out of coursework and filled the rest of my hours with research and independent studies with my professors (which, I guess I did actually do, just not as much as I would have otherwise).
Even this blog's CSS theme (now 18 years old and starting to look it) was something I wrote after receiving and repeatedly re-reading a tattered third-hand copy of "The Laws of Thought" by George Boole. It was gifted to me by a college friend majoring in philosophy while I was crashing at his rental on the beach. He gave it to me because he knew I "liked that shit" and, while it was definitely computer science in nature, I would not have read it otherwise. I have vivid memories of sleeping on his la-z-boy surrounded by towers of books he was working through. He went on to do incredible work, getting his PhD, doing research, brilliant writing - his death in 2023 has robbed humanity of more time with him. "The Laws of Thought" sits behind me in my office, and is one of my most valued possessions.
My friends mean more to me than I could ever express, and I definitely don't show it enough. Each of my classes made me a more thoughtful person. My professors made me a better, more well-rounded person - and a person who attempts to live up to the oft repeated credo of being "men and women for others". I did the best I could, even though I was never a particularly good student. Without liberal arts, I don't think I would, dispositionally, have been capable of pushing myself - to this day - to continue to learn on nights and weekends, for no reason other than wanting to learn. I refuse to stop expanding my perspective, and do my best to approach new problems with as much humility and curiosity as I can muster.
Every few days for the last year or so, I have been thinking back to a reading assignment from my junior year that, at the time, I thought was a borderline throwaway filler assignment for the class. The reading is an essay from 1947 by the french existentialist philosopher and libertarian marxist, Jean-Paul Sartre (as some of the more erudite may have now already worked out given the blog's title), "Why Write?". I re-read it this week. It is not filler. I remember this essay better than some of the classwork I considered more important at the time.
Why Write?
"Why Write?" starts off by describing the ways in which writing - trying to communicate your thoughts, opinions, or feelings to others - is an act of projection. The writer will only ever draw from a place of their "own subjectivity" - writing is taking your person and putting it on display. You're choosing what words to use, how to use them, pulling from knowledge you've accumulated (based on how you've chosen to spend your time). Spending any amount of your finite existence in order to convey a thought is, itself, announcing to the world that you believe it to be a thought worth sharing.
Meanwhile, the act of reading is not simply turning letters into words. Reading is engaging with the work, and understanding the work in a process that looks more like what Sartre terms "re-invention" or "discovery" - "the literary object, though realized through language, is never given in language". It is not enough to read the words in a book end-to-end; you must, as a reader, actively engage with the work to understand what is being communicated by those words. Reading is to take the words on the page, and "exceed" the mere words through what he calls "directed creation". The reader is "re-inventing"/"discovering" the writer's thoughts by following their "landmarks in the void".
And this all makes pretty good sense to me - I know if someone is being sarcastic because I know the writer; I have read their words and have read into their words, allowing myself to be directed by the writer into "discovering" the thought they have left me in their work. I understand that their words are humorous, not irate. Knowing who the author of a work is can completely change the point of a sentence. The fact I'm writing about Sartre at all, or that this very writing has been constrained for presentation in this blog's CSS is only happening because of who I am, what things I've experienced in life, and what has made me, me. Sartre argues that this dyadic coupling between writer and writing means that I, as a writer, can never truly read my own writing. I will never be capable of reading my own work and getting something out of it - the work is already an extension of my own person. I can discover no thought in my own works.
Of course, Sartre, as an existentialist, is honor bound to go one step further here - the reader, by participating in reading a work, is asserting their own freedom. Every time a writer writes "[…] the writer appeals to the reader's freedom to collaborate in the production of [their] work". The creative act may only be complete if both writer and reader have recognized one another and made a choice to do so. No one is compelled to complete the creative act. The things you read matter. Reading something fundamentally alters you as a person - you can not simply un-read a thought. Everything you read changes your universe. I have a hunch Sartre would find things like the (original early 2010s era) "tl;dr" reply to obviously terrible writing absolutely hilarious as a reader's expression of freedom (not to be confused with modern 2020s era usage as shorthand for "summary section"). Using your freedom to choose to complete the writer's creative act (or not) is inherently asserting your humanity.
I'm a bit fuzzy on the specifics of this quote, but I think it was sj who told me at one year's Mystery Hunt that "A puzzle is a contract between puzzle author and puzzle solver, the author promises that the puzzle is solvable if you're clever enough". The puzzle author and puzzle solver are engaging in a collaborative production of the work that is only possible by recognizing one another. Similarly, Sartre - "whatever connections [the reader] may establish among the different parts of the book among the chapters or the words [the reader] has a guarantee, namely, that they have been expressly willed".
Wall Drawing #123
It follows, Sartre argues, that the act of writing, as a means to convey a thought to a reader, may only be completed through the act of reading. Reading can only be done by others; writing, therefore, only exists to be read - it can serve no other purpose. Writing and reading are two halves of the same creative, collaborative act, only satisfied when both writer and reader acknowledge one another. Combined, writing and reading are the act of recognizing one another's humanity, thoughts, experiences, consciousness - the act of co-creation of thought is the critical aspect of writing and reading - reconstructing the author's perspective, thought, intent, point. The co-creation is the point of both reading and writing.
Writing without anyone to read the work leaves the writer's bid for co-creation unsatisfied and humanity unrecognized. No thought has been conveyed to any reader, no one has understood the reason behind the "landmarks in the void" you've carefully placed, leaving you to either "[…] put down [your] pen or despair". Writing is an appeal to the reader's freedom, and the nature of that freedom is the writer can not control it - never being understood is always a possibility any time anyone sets out to write.
Nearly 12 years ago, I attempted to read the text on the git manpage generator for the first time - I remember the exact feeling of my brain going into "git manpage parsing mode" where every word was dragging git plumbing megaliths through the sand from their far-flung homes. I can still feel the surface of my desk as I instinctually started to trace out logical connections between git internals referenced as I read along. It took me a good 20 seconds to realize what I was reading made no sense. This website broke Sartre's writer-reader agreement - I was attempting to read this website, but there was nothing there. You can "mechanically" "read" the git-man-page-generator, but you can never read it - it is not possible to read it. It was funny - unsettling. Each grasp at a real-looking image in front of me misses, my hand coming back empty. I couldn't get enough of it. I must have tried to read a dozen generations in a row. I had never had something quite that broken pass that far into my consciousness before. Although I kept trying, it never did feel quite the same as that first time; I think fundamentally, I couldn't forget that it was random.
While never having anyone read your writing drives them to "put down your pen or despair", Sartre never had to contend with the opposite problem - being asked to read that which was not written. Reading that which was not written does not merely leave someone unrecognized when a reader makes a choice; instead, it is an inherent violation of the contract between reader and writer. Not only is no humanity being recognized through attempting to read words which were not written, but the reader, not the writer, is the one who bears the burden of unexpected apophenia. The reader, while engaging in co-creation, must now contort themselves to uphold their end of the Sartrean agreement, scrutinizing text to ascribe consciousness, thought and intent only to come back up with pareidolia-fueled echos of one's own self and disfigured half-thoughts of others. The reality is, the modern reader must now "mechanically" "read" most written work they come across, scrutinizing text for any signs of thought before truly attempting to read the work. Failing to do this correctly changes our person - each time it happens, a small part of us is irrevocably altered. Choosing to engage in this ballet because you wish to do so is one thing - this is your right and freedom as a reader - but passing words which were not written as your own in an attempt to wrestle a reader's freedom of co-creation from them is another entirely.
If you didn't write it, I don't want to read it (dw;dr). Send me your prompt instead.
18 Sep 2026 5:05pm GMT
Petter Reinholdtsen: Long term storage of Mattermost messages with Noark 5 XML
It is said that those who cannot remember the past are condemned to repeat it, a quote often attributed to the American philosopher George Santayana. And to remember the past, records must be maintained and kept accessible to learn from. With this in mind, it is no wonder that archivists worldwide consider it crucial to ensure the archival records are both complete and accurate, with a constant frustration caused by the knowledge that the archives are neither due to challenges in tracking down and collecting what should be archived.
The last few days, I decided to simplify the collection of Messages from the Mattermost chat service, used by a few of the organisations I am involved in, to try to improve the situation slightly. To achieve this, I had written a dedicated extraction tool. Partly to see how hard it would be, and partly to ensure that if one of the services were shut down or replaced, everything in it would not be lost. Of course it is in the nature of the use of instant messages that most of them are not fit for permanent storage, at least not according to Norwegian law, where there is a threshold "worthy of the archive" (arkivverdig) that should be met, and messages like "should we go to lunch now" are below the bar and should be filtered out. The tool can not help with this filtering, and that will have to be done using other means after collection.
The tools I had my bullshit generator write, under strict supervision and many iterations, will extract every message visible to the user whose credentials are used to log into Mattermost, and write it out in Noark 5 extraction XML format and visualize the result. I created the visualiser mostly to quickly be able to debug the extracted XML, but also to make life easier for anyone interested in testing out the tool set.
The extractor mattermost-noark5extract create a hierarchy with arkiv/arkivdel for the Mattermost server, and then individual mappe for each channel and direct message chat, a registrering for each message thread, dokumentbeskrivelse for every message in the tread, and one or more dokumentobjekt for each message and their attachments/images. So far it is only tested on one Mattermost installation, where around 23,000 messages is extracted in 61 seconds and produce 295M with approximately 600 attachments and around 675,000 lines of XML in arkivstruktur.xml. You pass it the URL of the service, a username and password, a directory path where to store the collection and an optional channel name substring to limit the collection to only a subset of the messages available.
The mattermost-noark5extract-browser viewer can load this collection and visualize it similarly to Mattermost's web interface, with the list of channels and direct messages dialogues on the left, messages chronologically in the centre and a selected thread displayed on the right.
I know Mattermost provide several login options. I've only had the one used on my test server implemented so far, and know the extract tool will have to be extended a bit for it to handle servers using one of these options.
If you would like to examine the new toolkit, mattermost-noark5extract is available from gitlab. I wanted to put it on codeberg, but as the recent rule change forbid code mostly written by a bullshit generator there, it was not really an option. Note that some years ago I wrote a similar tool to extract material from the request tracker system. The source for request-tracker-noark5extract is also available from codeberg. I would love to hear from you if you test the tools.
As usual, if you use Bitcoin and wish to support my activities, please send donations to 15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b.
18 Sep 2026 7:00am GMT