FreeBSD 上的 UPnP 設定

辦公室裡面的 NAT Server 是一台 ,用 ipnat 包這塊,不過一直沒有設定 UPnP,昨天想到的時候想起 應該有寫過 UPnP 的文章,可是卻找不到...

結果找了其他軟體發現 也很簡單,在 裡也已經存在了,於是就裝起來測試,發現沒什麼問題... (賀)

基本上只要啟動 PF,設定好 minipnpd.conf 後,在 /etc/pf.conf 加上:

rdr-anchor "miniupnpd"
anchor "miniupnpd"

這樣就可以了。

將 ZFS 的 Snapshots 丟到 Amazon S3

自己寫了一篇文章,教你把 ZFS Snapshots 丟到 上備份:Storage Utilities in Practice: ZFS Snapshot to Amazon S3

我本來期待是介紹 ,結果發現只是很簡單的備份丟檔案而已,那不如用十年前就有的 dump 指令備份 :p (在時間準確的情況下可以做 ,然後一樣丟上 )

ffmpeg (全包在一起)

前幾天發現 3gp 已經被包成 shared library,叫做 ,而且 也已經靠這個 library 處理 3gp 了,不用像以前那樣自己去抓 zip 下來解開搞老半天。

不過因為我對 裡的 已經絕望了 (結構太亂改不動),所以我乾脆自己弄個 ports 出來包,四個檔案 (Makefiledistinfopkg-descrpkg-plist) 我就直接丟到 wiki 上了:

這一包裡面儘量把能包的都包進來了,除了 rmvb 以外,要轉檔應該沒什麼問題,有興趣的人可以自己整合回自己的 ports 架構裡。

MySQL 在 NetBSD 上的效率說明

MySQL 在 NetBSD 上的效率 這篇提到的效率差別已經確認是 7-CURRENT 的 malloc() debugging code 所造成,拿掉以後就接近了:Re: Thread benchmarks - FreeBSD corrections

這兩張圖分別是 / 的 SCHED_4BSD 與 SCHED_ULE/SCHED_MSVR 效率差異:

MySQL 在 NetBSD 上的效率

參考:Thread benchmarks,因為 被廣泛應用,所以大家都拿他當作 Thread/Lock/... 的實際效率測試指標。

這個測試結果顯示 輸了一屁股,一定會讓 src committer (大光頭與 Jeffrey Roberson?) 測試 在 AMD64 上跑 的效率,這陣子應該可以在 的 mailing list 上看到相關的討論...

BSD license 的 C Compiler

上看到 貼了這個 link:BSD Licensed PCC Compiler Imported 的人把 () 放到 CVS repository 了。

決定要走向 後,就可以預測到下面這幾件事情一定會有一件發生:

  • 4.2.1 (以 發佈的最後一個版本) 發展的 C Compiler,維持
  • 重寫,或是改寫一個 C Compiler,以比 更自由的 license 釋出。

前者在 決定轉為 的時候就有人說要做,但是一直沒看到進一步的消息。後者則是 ( maintainer) 決定拿 改,結果 把這份 code 塞進 的 CVS repository 裡。

看 CVS log 的檔案列表似乎支援不少平台,但據說目前 只能夠在 i386 平台上跑,而且還有 bug。不過當有人先做了第一步,造成新聞後 (這是重點),接下來的事情就好辦很多了...

另外幾個有趣的事情拿來對照 的動作還蠻有趣的: 大魔頭 對於 Linux community 處理 GPLv2/BSD license 雙重授權時的砲轟,以及 預定在 9/18 釋出 4.2.2 的計畫。

OpenLDAP 2.3 在 FreeBSD 上的架設

紀錄一下 上的安裝及設定流程。

先透過 安裝

# cd /usr/ports/net/openldap23-server
# make clean install clean

裝完後設定 /usr/local/etc/openldap/slapd.conf,主要要改的幾個部份是:

  • 開頭的 include 部份:預設只有 /usr/local/etc/openldap/schema/core.schema,如果需要其他的 objectClass 則需要把 cosine.schemainetorgperson.schema 也寫進去。
  • 下方的 suffixrootdn,以及 rootpw。其中 rootpw 可以用 slappasswd 產生密碼。

改完後要設定開機時跑起 slapd,這個部份要在 /etc/rc.conf 裡新增:

slapd_enable="YES"

接下來用 /usr/local/etc/rc.d/slapd startslapd 跑起來。用 ps -U ldap 應該可以看到 slapd process 在跑:

25290 ?? Is 0:00.04 /usr/local/libexec/slapd -u ldap -g ldap

以上就是 server 的架設。

接下來講 client 的部份。先是修改 /usr/local/etc/openldap/ldap.conf

BASE dc=example,dc=org
URI ldap://ldap.example.org/

找文件的時候會發現大家都是建議用 domain name 當作 BASE,但其實並沒有強迫要用 domain name,只是 domain name 剛好是全世界獨一無二的 (這是粗略的說法),所以用 domain name 是慣例,以後接手的人也會比較容易上手。

將 server 跑起來,並且將 client 改完後,直接打 ldapsearch 應該就會看到沒有任何結果 (最後一行應該是 #numEntries: 0),這代表 server 應該沒什麼問題,接下來就是亂塞一些資料進去,這部份網路上大多數的文件都有提到 ldapaddldapdeleteldapmodify 的用法以及 ldif 的寫法,這些不太會因為在 上就有不同的格式,可以看其他提到 2.3 的網頁。

lighttpd 1.4.18 安全性更新

官方網站上釋出 ,屬於安全性更新,依照列出來的修正部份,看起來是這條:

  • fixed FastCGI header overrun in mod_fastcgi (reported by mattias@secweb.se)

詳細的說明在 這裡有提到。

上使用 的使用者只要先把 ports tree 更新,看一下 /usr/ports/www/lighttpd 下的 Makefile 更新成 1.4.18 了沒,如果還沒的話,將 distfiles 砍掉,並把 Makefile 裡的 1.4.17 改成 1.4.18 後手動更新:

# make fetch
# make makesum
# make deinstall
# make clean install clean

然後將 重跑就可以了:

# /usr/local/etc/rc.d/lighttpd restart