[Daniel's week] August 11, 2023
daniel at haxx.se
Fri Aug 11 20:45:18 CEST 2023
## mastering curl
I published my blog post about my coming "Mastering the curl command line" 
presentation to get the word out. I will re-toot it a few more times before
I spend many hours this week on the slides for the presentation and at the
time of writing this report, the slide set sits at about 149 slides. I think
it now covers what I want to include topic wise, but I have more polish left
to do. Go through it several more times and make sure the language is right,
the details I want are present and that the ordering works. Luckily the event
is still a few weeks off. If I do one slide per minute on a average, that
makes it a 2.5 hour run.
I went ahead and ripped out support for gskit from curl . I have mentioned
this plan for over six months and it now finally happened. gskit is a special
TLS backend in curl by the way that for several platforms it is the only TLS
choice available. The main reason we remove it is that it is too poorly
supported and maintained. I am open to bring back support for it at a later
point if we get some commitment and general improvements in the code and its
verification and tests.
This is a step in our work to always be improving and always be raising the
bar for the code and the components we support/recommend. For everyone's'
## man page
When we build curl, we embed a version of the man page so that you can run
'curl --manual' to get it displayed. It makes curl lovely self-contained and
is decent way to ship documentation even for platforms without a man page
Not long ago I realized that at some point in recent times (months? years?)
the "nroff" command changed so that it generated output that include escape
sequences and they were then unintentionally kept and used in the curl
build. We have fixed that now by filtering out those sequences.
This week I had another man page realization: when doing "man curl" in a
normal Linux terminal, man would show the man page fine but for the example
command lines that are provided in numerous places, man would output them with
all the ASCII minuses (dashes?) replaced with the unicode HYPHER (u+2010)
character . This has the effect that people who copy and paste the
examples, which of course the examples are more or less made for, would
generate command lines using weirdo unicode instead of proper ASCII and it
would confuse curl and cause hard-to-understand error messages.
Again I am not at all sure when this unwanted conversion started, maybe it is
recent or maybe it has been this bad for a long time.
Luckily, this too could be fixed fairly easily since the man page is generated
at build time by our own "man page build script" and making it escape all the
ASCII byte codes 45 in the output to prevent them from becoming unicode
hyphens was just another small patch away.
## issue cleanup
I pruned the open issues and pull-requests pretty hard this week and closed
old and stalled ones - as I am a true believer in not keeping old issues
around that nobody is working on and nobody is about to start working on
anytime soon. Most of them were added to the known bugs document . Of
course closing them does not fix them and they *should* still be fixed but now
they are at least not "in the way" when we work on the "living issues".
I merged the pending PRs.
Someone asked and it made me want to convert a punycode version of a host name
into its IDN version, and it felt like something trurl should be able to do -
but it can't . It triggered me to start on a little patch for curl's URL
API to offer this feature .
With a little luck I might get it done before the feature window closes.
## Coming up
- The last week of curl feature window open
 = https://daniel.haxx.se/blog/2023/08/08/mastering-the-curl-command-line/
 = https://github.com/curl/curl/pull/11460
 = https://github.com/curl/curl/issues/11635
 = https://curl.se/docs/knownbugs.html
 = https://github.com/curl/trurl/discussions/228
 = https://github.com/curl/curl/pull/11655
More information about the daniel