<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: ZHANG, HENGMING</title>
    <description>The latest articles on DEV Community by ZHANG, HENGMING (@zhanghengming).</description>
    <link>https://dev.to/zhanghengming</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3408794%2F7fca4aee-7c39-4c2a-a966-052dd2a07eec.png</url>
      <title>DEV Community: ZHANG, HENGMING</title>
      <link>https://dev.to/zhanghengming</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zhanghengming"/>
    <language>en</language>
    <item>
      <title>certificate authority ( ca ) config for fedora distro</title>
      <dc:creator>ZHANG, HENGMING</dc:creator>
      <pubDate>Sun, 05 Oct 2025 08:22:10 +0000</pubDate>
      <link>https://dev.to/zhanghengming/certificate-authority-ca-config-for-fedora-distro-37i2</link>
      <guid>https://dev.to/zhanghengming/certificate-authority-ca-config-for-fedora-distro-37i2</guid>
      <description>&lt;p&gt;certificate authority ( ca ) on fedora has managed by ca-bundle.trust.p11-kit in recent distributions , and their update method has changed to let old update methods outdated . therefore , i create this post to record my changes of ca management on feodra . &lt;/p&gt;

&lt;h2&gt;
  
  
  no third parties / companies / govts certificates
&lt;/h2&gt;

&lt;p&gt;i deleted all of those certificated included in the recent mozillia ca bundle , including the nostalgic cnnic certificates etc . only the oss one ( let's encrypt ) remined . this change irrivertiably puts some websites inaccessible ( github , etc . ) while minimal websites are on the table . &lt;/p&gt;

&lt;h2&gt;
  
  
  start configuration
&lt;/h2&gt;

&lt;p&gt;i configured two environments to use the config : &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;application based environments ( those on /etc/pki/ca-trust/source , high priority and /usr/share/pki/ca-trust-source , low priority ) such as curl . &lt;/li&gt;
&lt;li&gt;browser based environments ( firefox , tor browser ) . &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;the above two environments use different ca settings to config and manage certificates ( tls , ssl , java , edk2 , etc . ) . in order to config all envs to use one setting , each environment has to be configured separately . &lt;/p&gt;

&lt;p&gt;when started to config it , i had to be reminded , it was not enough to use the &lt;code&gt;trust&lt;/code&gt; cli to config ( since it was unable to change read - only mozilla ca bundle ) and had to edit the original file while put &lt;code&gt;#&lt;/code&gt; comment before each line . and it was still not done correctly . which was done alright was that i created a &lt;code&gt;.bak&lt;/code&gt; file of the original file and moved the .bak file ( and the original one ) out of the dir above ( the one on /etc/pki/ca-trust/source directory ) , leaving only the commented or deleted lines of file in directory . then i executed &lt;code&gt;sudo update-ca-trust&lt;/code&gt; , and all certs updated just in line . &lt;/p&gt;

&lt;h2&gt;
  
  
  chain of logs
&lt;/h2&gt;

&lt;p&gt;changing of the ca root certs on system config will put other configs collapsed and should be changed inaccordingly . which include : &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;protocols that use ca certs ( xmpp , websockets , etc . ) &lt;/li&gt;
&lt;li&gt;applications that use tls , ssl , java , edk2 configs ( such as fedora mirrors , rpm repos ) . &lt;/li&gt;
&lt;li&gt;anything else . &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  the road to self - managed ca certs
&lt;/h2&gt;

&lt;p&gt;the best choice of internet pki ( public key infrastructure ) is managing certs ( probably including root certs ) by one themselves . to be easily managing and configuring ca in internet trust chains , personal solutions , e . g . openxpki and enterprise solutions ( hyperledger fabric with pkcs # 11 interface ) could be considered . &lt;/p&gt;

</description>
      <category>fedora</category>
      <category>certificate</category>
      <category>authority</category>
      <category>ca</category>
    </item>
    <item>
      <title>On Canary</title>
      <dc:creator>ZHANG, HENGMING</dc:creator>
      <pubDate>Tue, 19 Aug 2025 13:59:17 +0000</pubDate>
      <link>https://dev.to/zhanghengming/on-canary-2o1j</link>
      <guid>https://dev.to/zhanghengming/on-canary-2o1j</guid>
      <description>&lt;h2&gt;
  
  
  Definition
&lt;/h2&gt;

&lt;p&gt;A canary/warrant canary/canary statement is a practice to say that someone or something is safe or unsafe due to legal processes, certain circumstances, etc.&lt;/p&gt;

&lt;h2&gt;
  
  
  How should it be used?
&lt;/h2&gt;

&lt;p&gt;Least people or online service providers offer canaries to confirm the circumstances around them, but most of it are abused due to fashions, internet slangs, etc.&lt;/p&gt;

&lt;p&gt;A canary should include at least:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Confirmations or affirmative statements to the audience.&lt;/li&gt;
&lt;li&gt;Evidences (newest block headers of blockchains, recent news articles, etc.).&lt;/li&gt;
&lt;li&gt;A OpenPGP signature.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A canary should be updated regularly to reflect recent circumstances, such as every 14 days.&lt;/p&gt;

&lt;h2&gt;
  
  
  Methodology
&lt;/h2&gt;

&lt;p&gt;A canary file or text shall be created originally on the providers' websites or spots, hosted by the providers (all underlaying infrastructures shall be made by the providers), as plain text, not encrypted or the signature corrupted.&lt;/p&gt;

&lt;p&gt;There's no third party involved, or shall not, as the canary shall be spoken as an evidence of the author themselves.&lt;/p&gt;

&lt;p&gt;The canary shall be verified or attested true by its content and other searchable evidences. A falsified canary should not exist and shall be avoided.&lt;/p&gt;

</description>
      <category>canary</category>
      <category>statement</category>
      <category>warrant</category>
      <category>practice</category>
    </item>
    <item>
      <title>Resolve E-AC-3(ASTC A/52B) decoder codec issue related to Fedora Linux (Asahi Linux).</title>
      <dc:creator>ZHANG, HENGMING</dc:creator>
      <pubDate>Sun, 03 Aug 2025 03:27:29 +0000</pubDate>
      <link>https://dev.to/zhanghengming/resolve-e-ac-3astc-a52b-decoder-codec-issue-related-to-fedora-linux-asahi-linux-3g3</link>
      <guid>https://dev.to/zhanghengming/resolve-e-ac-3astc-a52b-decoder-codec-issue-related-to-fedora-linux-asahi-linux-3g3</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;When playing a video file containing E-AC-3 (ATSC A/52B) audio codec on Fedora Linux, open with default player (either &lt;strong&gt;GNONE Videos&lt;/strong&gt;&lt;br&gt;
 (aka &lt;strong&gt;Totem&lt;/strong&gt;) or next generation video player &lt;strong&gt;Showtime Player&lt;/strong&gt;) will error as E-AC-3 (ATSC A/52B) audio codec not found, but it's actually installed on the system.&lt;/p&gt;
&lt;h2&gt;
  
  
  Resolution
&lt;/h2&gt;

&lt;p&gt;I referred to the post on the forum:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://discussion.fedoraproject.org/t/e-ac-3-codec-missing/135347/3" rel="noopener noreferrer"&gt;https://discussion.fedoraproject.org/t/e-ac-3-codec-missing/135347/3&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;, and enabled the RPM Fusion repository on the Feodra Linux by the command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;dnf &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-&lt;span class="si"&gt;$(&lt;/span&gt;rpm &lt;span class="nt"&gt;-E&lt;/span&gt; %fedora&lt;span class="si"&gt;)&lt;/span&gt;.noarch.rpm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;, and installed additional &lt;code&gt;gstreamer&lt;/code&gt; library by:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;dnf &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; gstreamer1-plugins-bad-freeworld
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;dnf &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; gstreamer1-plugins-ugly
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;, and also removed ffmpeg-free (in order to install ffmpeg from RPM Fusion) by those commands:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;dnf remove &lt;span class="nt"&gt;-y&lt;/span&gt; ffmpeg-free
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;dnf remove &lt;span class="nt"&gt;-y&lt;/span&gt; libswscale-free
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;dnf remove &lt;span class="nt"&gt;-y&lt;/span&gt; libswresample-free
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;, and install ffmpeg from RPM Fusion repository:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;dnf &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; ffmpeg
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Also, I needed to remove the libavcodec-free library from default fedora and updates repositories to install libavcodec-freeworld from RPM Fusion repository:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;dnf remove &lt;span class="nt"&gt;-y&lt;/span&gt; libavcodec-free
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;, and install libavcodec-freeworld:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;dnf &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; libavcodec-freeworld
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And that's it. Now I can play most videos containing E-AC-3 audio codec without hassle using cross platform video players (not GTK-based) on Fedora Linux.&lt;/p&gt;

</description>
      <category>linux</category>
      <category>asahi</category>
      <category>fedora</category>
      <category>codec</category>
    </item>
  </channel>
</rss>
