2025-06-19

tcl.mqttc v0.18

tcl.mqttc 

GCC15 C 編譯器如果沒有使用 -std 選項指定,編譯時使用的標準為 C23,bool 在 C23 成為關鍵字,所以自定義 bool 的做法在 GCC15 會編譯失敗。目前上遊還沒有確定解法,我只是選一個比較簡單的改法先讓程式能夠編譯成功,然後再看上遊會怎麼修改再進行修正。

#if defined __STDC__ && defined __STDC_VERSION__ && __STDC_VERSION__ <= 201710L
 typedef unsigned int bool;
#endif

也就是使用 __STDC_VERSION__ 進行判斷。

2025-06-18

tablelist 7.6

tablelist 釋出了 v7.6, Scrollutil 則釋出了 v2.6 版,這二個套件都是可以同一個作者,可以在作者的網站下載。另外,tablelist 和 Scrollutil 也是 Tklib 的套件,所以也可以下載最新的 Tklib source code 取得這二個套件。

2025-02-04

Valkey database

在更新 thiredis 之後,需要測試 thiredis 的關係,所以需要一個 Redis 協定相容的資料庫,openSUSE 目前採用的是 Valkey,所以筆記一下他的安裝部份。


Valkey is an open-source in-memory storage, used as a distributed, in-memory key–value database, cache and message broker, with optional durability.

在 openSUSE 安裝的指令:

sudo zypper in valkey

而下面是 README.SUSE 的簡要內容。需要使用 root 的權限進行設定。

  1. cp -a /etc/valkey/default.conf.example /etc/valkey/instancename.conf

    使用 -a 是因為要保留檔案的 permissions 設定,如果沒有使用,也可以使用下列的指令設定:
    chown root:valkey /etc/valkey/sentinel-instancename.conf
    chmod u=rw,g=rw,o= /etc/valkey/sentinel-instancename.conf

  2. change at least pidfile, logfile and dir setting

    pidfile /run/valkey/instancename.pid
    logfile /var/log/valkey/instancename.log
    dir /var/lib/valkey/instancename/

  3. create the database dir:
    install -d -o valkey -g valkey -m 0750 /var/lib/valkey/instancename/

  4. systemctl start valkey@instancename
  5. systemctl enable valkey@instancename
    (optional: 設定開機會啟動 valkey)

  6. To stop/restart all instances at the same time use:
    systemctl restart valkey.target
    systemctl stop valkey.target

如果要查看目前的狀態,使用:

sudo systemctl status valkey@instancename

相關連結