2019年9月15日 星期日

今年 LibreOffice Conference 精彩回顧

今年度的 LibreOffice 年度論壇於 9/10~9/13 在西班牙的 Almeria 舉行。以下是我看到/聽到的一些精彩回顧:
  • 在 Community meeting 中提到 LibreOffice 的翻譯平台從 Pootle 轉移到 Weblate,新站台已經上線測試中,6.4 以後的翻譯將會從 Weblate 取用,6.3 以前的則仍在 Pootle 上更新。
  • ODF 1.3 版規格書已經整理完畢即將送 OASIS,一切順利的話將於 2020 年底發布。
  • 議程第一天(9/11)時大會(才)公布,在 AULA 08 (Aulario IV)  教室內的議程,因為教室內的投影設備只限接在教室內的電腦,而教室內的電腦未安裝 LibreOffice,所以要求講者準備 PDF 檔。
    • 但孫老大要講的是簡報技巧,只用 PDF 檔是不夠的。所以我們兩個在第一天議程結束後跑去教室內試電腦,結果發現:
      • 教室內電腦的 Windows 系統連系統設定都鎖起來了,不能安裝軟體也不能設定。
      • 但是可以使用 LibreOffice Portable
      • 然後雖然 Windows 系統鎖了那麼多東西,但 BIOS 沒有鎖,所以用 ezgo 隨身碟可以開進 ezgo 系統內。
  • 9/11 一場(對我們從台灣來的人來說算滿普通的)大雨,造成西班牙東南部嚴重災情(請參考 FB 上的頁面)。我們當時只覺得這雨還好而已,沒想到有六個人死亡(在此致上關懷之意)。
  • 議程第二天一大早,孫老大跟我就跑去把教室內的電腦佈置一下。我用隨身碟安裝了 LibreOffice Portable,確認可以執行後,第一個議程就使用 Portable 版的 Impress 直接進行。然而因為前一天的大雨,第一個議程進行沒多久學校的電力系統就出現跳電的狀況。折騰了一陣子之後,在 AULA 08 的議程直接用筆電進行。


    至於其他間的議程據說都無法進行下去。
  • 接下來第二個議程是孫老大的重頭戲,還好沒有再跳電。孫老大展示了動畫與聚焦技巧,還借用阿拉丁神燈來表達三個對 Impress 改進的期待。
  • 接著轉移陣地到 SALA DE GRADOS ,林冠廷跟王小武(?)兩位年輕人以小武自身賽德克族的經驗,來介紹運用 LibreOffice 保存台灣原民語言與文化的計劃,引起在場聽眾不錯的迴響。來自巴西、法國等地的參與者都表示有興趣,下午冠廷與小武並與來自巴西的 Gustavo 討論相關計劃。
  • 中午之後孫老大、來自中油的文科跟我先蹺課,跑去 Almeria 古堡一遊(因為我只有這天下午有時間出去晃晃...)後來傳來了消息,下午的議程又出現跳電,然後恢復供電以後,因為我的隨身碟還插在電腦上,電腦就直接開進 ezgo 了。在場的人都搞不清楚為何開機會開進中文的系統中 😆😆 
  • 第二天晚上是年會傳統 Hack Night。晚上七點半大家就進入飯店的會議室裡,卻傳出訂的 pizza 要九點才會到(晴天霹靂!)。晚上安排冠廷、小武跟 LibreOffice 資深開發者,也是董事會成員的 Eike Rathke 討論如何為台灣原住民族增加系統在地化資料庫(locale)的問題。台灣團都跟著加入了討論。
  • 第三天早上是認證委員會的 Workshop。第一天晚上我就接到通知。認證委員會的共同主席 Italo 與 Lothar 要邀請孫老大加入認證委員會,問我可不可行。此時不推坑更待何時?我當然一口答應,拍胸脯保證沒問題。孫老大順便露了一手,給在場的社群朋友看他的講義做法,以及我們如何推廣 ODF/LibreOffice。
  • 事後孫老大還特地為了這幾位義大利的朋友補課,因為他們沒能來聽第二天孫老大的議程。
  • 最後的高潮就是宣布明年 10/20 的活動了!明年是 LibreOffice 10 週年,也是自由辦公套裝軟體(i.e., OpenOffice.org)的 20 週年慶。所以會在明年的 7/18~7/19 在伊斯坦堡或安卡拉舉行 Free Suite 20th Anniversity,並宣布明年的年度論壇與 10 週年慶將在德國的紐倫堡舉行。

    嘛,我仍然是第一時間就知道投票結果(知道太多秘密也不好,沒有驚喜感...)

2019年8月8日 星期四

建立 forward-only mail server


動機就不寫了,這裡只寫重點:

https://github.com/huan/docker-simple-mail-forwarder
  • 以 alpine 為基底
  • 在跑 docker run 的時候要指定 SMF_CONFIG 跟 TZ 等環境變數,指定完之後跑起來就可以做 mail forward 了。真的很方便。
    • docker 裡面實際上是跑 postfix,用 virtual user table 做轉寄。
  • 自己跑 smf 的主要原因是我要知道轉寄信件的下落... 之前使用 forwardemail.net 在 DNS 裡直接加 TXT 也是很方便,但是有信寄丟時完全沒有線索可以找。所以 mail log 是修改重點
    • 跑起來的時候可以看到 syslog-ng 的警告:設定檔版本太舊。可見裡面用的是 syslog-ng,目前的版本用的是 3.13 而設定檔裡的 version 是 3.9。實際上並不會造成什麼問題,不過想去掉警告訊息的話,就把 install/syslog-ng.conf 裡的 version 改掉
    • syslog-ng 是把紀錄檔整合起來的工具,研究過幾個網頁後可以看到它的設定概念很簡單。指定來源 source { },過濾條件 filter { },還有目的 destination { }。
    • 因為我的重點在 mail log,所以我把 source 調整成
      source src {
        system();
        internal();
      }

      只收系統跟 syslog-ng 自己的訊息,然後在 filter 區塊指定 mail:
      filter f_mail {
        facility(mail);
      }

      再把它寫到目的檔去
      destination d_mail {
        file("/var/log/postfix-mail.log" persist-name("maillog"));
      }
    • log 當然不會是寫在 docker container 裡面的 /var/log,所以在跑 docker run 時要透過 -v 參數掛載外部的目錄進去。
  • 改好 install/syslog-ng.conf 後,重新 build docker image,用它給的 Dockerfile 即可
    docker build -t smf:0807-1 .
  • 把 SMF_CONFIG 跟 TZ 等環境變數,還有執行 docker 的指令寫在一個 shell script 裡
    # cat smf.env

    #!/bin/bash
    export SMF_CONFIG='franklin@sunjun.com.tw:fweng.ef@gmail.com;service@sunjun.com.tw:fweng.ef@gmail.com;'
    export SMF_CONFIG="$SMF_CONFIG;franklin@sunjun.tw:fweng.ef@gmail.com"
    export SMF_CONFIG="$SMF_CONFIG;service@sunjun.tw:fweng.ef@gmail.com|wally.lian@gmail.com"
    export TZ='Asia/Taipei'

    echo "Running simple mail forward on `date`..." >> /tmp/smf.log

    docker run -t -d --restart=always -e SMF_CONFIG="$SMF_CONFIG" -e TZ="$TZ" -v /var/log/docker:/var/log -p 25:25 smf:0807-1

  • 把每個 mail alias 分行寫是為了方便維護。實際上它是用分號隔開即可。
搞定!

2019年8月2日 星期五

Debian 上 hp-setup 鬼打牆不斷要求安裝 proprietary plugin 的問題



HP 的印表機一直算是對 Linux 相當友善的廠牌,所以我選印表機首選都是 HP。而之前跑用 Kubuntu 為基底的 ezgo 時,安裝 hp 印表機的驅動很簡單,只要安裝 hplip 套件執行 hp-setup 後面就通通搞定了。

不過現在換用 Debian 為基底的 ezgo 時,卻出現兩個問題。第一個是下載 plugin 時,從 pgp.mit.edu 取得驗證公開金鑰時一直失敗,其次就是如下面截圖所示,明明告訴我裝好了,實際上卻仍是紅字告訴我需要安裝 proprietary plugin。





先講第一個問題。現在從 pgp.mit.edu 取得金鑰變得很困難,我還找不出是什麼原因,網路上也很少討論。我透過 kgpg 提供的伺服器,找到了另一個可以順利下載金鑰的伺服器 pool.sks-keyservers.net ,並在 gpg.conf 中把預設伺服器換成了這個。但 hp-setup 仍然是去找 pgp.mit.edu,於是我發現他們把下載金鑰的伺服器寫死在程式裡:

/usr/share/hplip/base/validation.py  line 43:

```
class GPG_Verification(DigiSign_Verification):
    def __init__(self, pgp_site = 'pgp.mit.edu', key = 0x4ABA2F66DBD5A95894910E0673D770CDA59047B9):
```


臉上頓時出現三條線... 把它改掉就可以順利下載金鑰了。


另一個問題則是在這裡找到解答:


https://www.linuxquestions.org/questions/linux-software-2/hplip-keeps-looping-at-plug-in-installation-4175647505/

看來是不同系統函式庫放的位置不同所造成... 依照其建議新增路徑與符號連結後就順利安裝成功了。

2019年7月11日 星期四

Debian Stretch 升級到 Debian Buster


Debian Buster 已發布,這兩天把 PVE 上三台 Debian server 通通升級。

第一台跑的是 Mastodon, prosidy 與 peertube,用的 webserver 是 nginx,資料庫則是 postgresql 與 mariadb。升級過程完全沒有問題,十分順利。

第二台跑的是協會的線上商店,還有一些實驗用網站(含 docker)。這一台升級完重開後,發現線上商店跑不起來。找了一會兒發現問題出在 php7.0 -> php7.3,apache module 中必須手動打開 php7.3 並關閉 php7.0 的模組。弄完後原有的服務就都順利跑起來。

第三台是我的主伺服器,上面跑了不少網站像是個人網站、nextcloud、協會官網等等。這台在升級後,先手動去把 php7.3 的模組打開,卻發現 Drupal 與 nextcloud 都出問題無法啟動。然後挖了錯誤紀錄一會兒之後就發現,連同第二台系統的經驗,php7 在 Debian 的 package naming,php7.0 -> php7.3 並不是「升級」,而是「安裝新套件」,所以一堆 php7.0-* 的外掛,像是 php7.3-gd, php7.3-zip, ... 等在升級過程中並不會自動加裝,必須手動安裝才行。

現在三台伺服器都已經安穩上線運行中。