<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title>GNUcode.me</title><id>https://gnucode.me/feeds/tags/Status Update.xml</id><subtitle>Tag: Status Update</subtitle><updated>2024-05-01T13:21:27Z</updated><link href="https://gnucode.me/feeds/tags/Status Update.xml" rel="self" /><link href="https://gnucode.me" /><entry><title>Status Update December 2021</title><id>https://gnucode.me/status-update-december-2021.html</id><author><name>Joshua Branson</name><email>jbranso@dismail.de</email></author><updated>2021-12-01T13:55:00Z</updated><link href="https://gnucode.me/status-update-december-2021.html" rel="alternate" /><content type="html">&lt;p&gt;So guess who got a massive cold last month? Yours truly. It was probably some of
the worst symptoms I have experienced in a while. It sucked worse than trying to
'suck a golf ball through a garden hose.' But still there were some
developments.&lt;/p&gt;&lt;p&gt;I am getting closer to offering email services.  Basically, if you like my blog
or some of the videos that I produce, etc. then as a way to support me, you
could get YOURNAMEHERE@gnucode.me as an email address.  I have email support
working, but it is fairly minimal at the moment.  Which is to say you can
connect your favorite email client and send email.   That's fairly simple, but
it works!  And for only $3 per month, you could support me in my endeavor to
help the free software movement.&lt;/p&gt;&lt;p&gt;If you are interested in this, please email me at jbranso@dismail.de.&lt;/p&gt;&lt;p&gt;P.S. How funny is it that this blog is trying to get you to pay me to get an
email account, yet I am having you email a dismail account?&lt;/p&gt;</content></entry><entry><title>Status Update November 2021</title><id>https://gnucode.me/status-update-november-2021.html</id><author><name>Joshua Branson</name><email>jbranso@dismail.de</email></author><updated>2021-12-01T13:55:00Z</updated><link href="https://gnucode.me/status-update-november-2021.html" rel="alternate" /><content type="html">&lt;p&gt;It has been a fun November! You may have noticed that this blog lost the &lt;code&gt;https&lt;/code&gt;
connectivity for a few days! As a reminder, Guix system renews certificates for
domains via&lt;/p&gt;&lt;pre&gt;&lt;code&gt;sudo /var/lib/certbot/renew-certificates&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The above script is called automatically, but I figured that a good start would
be to manually try to run this script and see what happens. So I &lt;code&gt;sshed&lt;/code&gt; into
the server to give it a try. I got this error message:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;Certbot failed to authenticate some domains (authenticator: webroot).
 The Certificate Authority reported these problems:
  Domain: mail.gnucode.me
  Type:   dns
  Detail: DNS problem: NXDOMAIN looking up A for mail.gnucode.me
   - check that a DNS record exists for this domain

  Domain: wireguard.gnucode.me
  Type:   dns
  Detail: DNS problem: NXDOMAIN looking up A for wireguard.gnucode.me
  - check that a DNS record exists for this domain&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;To fix it I just removed the subdomains “mail.gnucode.me”, and
“wireguard.gnucode.me”, from the &lt;a href=&quot;https://notabug.org/jbranso/linode-guix-system-configuration/src/master/linode-locke-lamora-current-config.scm&quot;&gt;config file for this website.&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Then re-running certbot totally worked. While we are talking about certbot. I
am glad that guix has support for it. They use the python acme client, which
certainly works, but I have recently discovered that the OpenBSD folks have made
&lt;a href=&quot;https://man.openbsd.org/acme-client.1&quot;&gt;their own acme client&lt;/a&gt;. It looks like their client might be dependent on their
httpd daemon, which is potentially why Guix System doesn’t use it. Anywho…&lt;/p&gt;&lt;p&gt;In other news, I have still been working on my opensmtpd service using guix
records. I made the decision to tweak the records that I am using for my
opensmtpd service. Before I had set up the configuration to follow nckx’s advice
from &lt;code&gt;#guix&lt;/code&gt; irc channel:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;&amp;quot;...as I think Guix services ought to faithfully wrap the native syntax whenever
possible (implement alternative simple APIs on top of that — fine).&amp;quot;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;To follow this advice, I avoided trying to develop something like this:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;(service email-service-type
   (email-configuration
     (domains (list &amp;quot;gnucode.me&amp;quot; &amp;quot;gnu-hurd.com&amp;quot;))
     (use-letsencrypt #t)))&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Instead I originally tried this type of service configuration, where I had
several lists of records of &lt;code&gt;includes&lt;/code&gt;, &lt;code&gt;tables&lt;/code&gt;, &lt;code&gt;pkis&lt;/code&gt;, etc. Other records
like the filters, which may have &lt;code&gt;tables&lt;/code&gt;, would refer to the &lt;code&gt;table&lt;/code&gt; record via
a string. This could cause issues where the user mispelled the &lt;code&gt;table&lt;/code&gt; name.&lt;/p&gt;&lt;pre&gt;&lt;code&gt;(service opensmtpd-service
  (opensmtpd-configuration
    (includes ...)
    (tables ...)
    (pkis ...)
    (filters ...)
    (listen-on ...)
    (actions ...)
    (matches ...)))&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I also thought of other annoyances. Why would have a list of &lt;code&gt;actions&lt;/code&gt;, and then
have the &lt;code&gt;match&lt;/code&gt; record have a fieldname &lt;code&gt;action&lt;/code&gt; that accepts a string of the
&lt;code&gt;action&lt;/code&gt; name. It would be more robust if instead it accepted an
&lt;code&gt;&amp;lt;opensmtpd-action-configuration&amp;gt;&lt;/code&gt; record. Well when you start to think like
this, the resulting example config may turn into:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;(service opensmtpd-service-type
         (opensmtpd-configuration
          (listen-ons
           (list (opensmtpd-listen-on
                  (interface &amp;quot;eth0&amp;quot;)
                  (filter
                   (opensmtpd-filter-chain-configuration
                    (list
                     (opensmtpd-filter-phase ...)
                     (opensmtpd-filter-phase ...))))
                  (hostnames (opensmtpd-table-configuration
                              (values &amp;quot;gnucode.me&amp;quot; &amp;quot;gnu-hurd.com&amp;quot;)))
                  (ca
                   (opensmtpd-ca-configuration ...))
                  (pkis
                   (list
                    (opensmtpd-pki-configuration ...)
                    (opensmtpd-pki-configuration ...))))))
          (matches
           (list
            (opensmtpd-match
             (options
              (list
               (opensmtpd-match-options-configuration
                (table
                 (opensmtpd-table ...)))
               (opensmtpd-match-options-configuration ...)))
             (action
              (opensmtpd-action
               (opensmtpd-local-delivery-configuration
                (method
                 (opensmtpd-maildir-configuration ...))
                (alias (opensmtpd-table ...))))))))))&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I believe this change will fix various mispelling errors and should make the
service more robust.&lt;/p&gt;&lt;p&gt;Tweaking the datastructure has helped me to find other things that
could be simpler. One example is the &lt;code&gt;&amp;lt;opensmtpd-action&amp;gt;&lt;/code&gt; record. I used to have
the datastructure be the &lt;code&gt;&amp;lt;opensmtpd-action&amp;gt;&lt;/code&gt;, which included a fieldname that
has as its value either a &lt;code&gt;&amp;lt;opensmtpd-local-delivery-configuration&amp;gt;&lt;/code&gt; or a &lt;code&gt;&amp;lt;opensmtpd-relay-configuration&amp;gt;&lt;/code&gt;
like this:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;                              &amp;lt;opensmtpd-action&amp;gt;
                              opensmtpd-action-name
                              opensmtpd-action-method
                                       |
                                      / \
                                     /   \
                                    /     \
                                   /       \
                                  /         \
&amp;lt;opensmtpd-local-delivery-configuration&amp;gt;   &amp;lt;opensmtpd-relay-configuration&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;It is actually simpler to delete the &lt;code&gt;&amp;lt;opensmtpd-action&amp;gt;&lt;/code&gt; record, and replace it with
two records: &lt;code&gt;&amp;lt;opensmtpd-local-delivery-action&amp;gt;&lt;/code&gt; and
&lt;code&gt;&amp;lt;opensmtpd-relay-configuration-action&amp;gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;Of course when you tweak datastructures, then you have to deal with tweaking the
code to work with the new datastructures. That is interesting. Most of the
TODO items I have for this project are in my &lt;a href=&quot;https://notabug.org/jbranso/linode-guix-system-configuration/src/master/opensmtpd.org&quot;&gt;opensmtpd.org&lt;/a&gt; file.&lt;/p&gt;&lt;p&gt;Thanks for reading!&lt;/p&gt;</content></entry></feed>