Home » Posts tagged "linux" (Page 14)

關於 Android 授權 (License) 的爭論:Linus Torvalds 的說法

昨天提到的「header file 與 GPL(v2) 的「衍生作品」...」,Linus Torvalds 也跑出來講話了:「Android: Sued by Microsoft, not by Linux

It seems totally bogus. We've always made it very clear that the kernel system call interfaces do not in any way result in a derived work as per the GPL, and the kernel details are exported through the kernel headers to all the normal glibc interfaces too.

他也不認為 header file (也就是提到的「kernel system call interfaces」) 會造成 GPLv2 內所提到的 derived work。

Ubuntu 上跑 VirtualBox 連接 USB 裝置...

Ubuntu 10.10 系統內的 VirtualBox 是 OSE 版本 (Open Source Edition),先到 VirtualBox 官方網站下載對應的 deb 檔:「Download VirtualBox for Linux Hosts」,像我的電腦是跑 10.10 amd64 版本。

接下來是把系統內的 VirtualBox 移除:

apt-get purge virtualbox

移除完畢以後將剛剛下載的 deb 檔安裝進系統:(後面的檔名自己變更)

dpkg -i virtualbox-4.0_4.0.4-70112~Ubuntu~maverick_amd64.deb

然後把自己加到 vboxusers 這個 group 內 (我是直接改 /etc/group),改完後重新登入,然後:

  • 在 Guest OS 關機狀態下,設定允許讓 Guest OS 使用的 USB 裝置。
  • 將 Guest OS 內的 Windows XP 開機後,安裝 VirtualBox 提供的 Guest Additionals。

接下來就可以用 IE 到網路銀行安裝 ActiveX,然後測試讀卡機是否正常運作...

header file 與 GPL(v2) 的「衍生作品」...

Slashdot 上看到 Richard Stallman 在 2003 年 1 月對於 GPLv2 header file (當時只有 GPLv2,沒有 GPLv3) 對於作品是否有「感染力」的看法:「RMS On Header Files and Derivative Works」,也就是「如果我用了 GPLv2 的 header file,是否我的 code 因此就要使用 GPLv2」的問題。

Richard Stallman 在找了律師談過之後,引用 header file 不足以成為 GPLv2 裡面定義的「衍生作品」(Derivative work):

Our view is that just using structure definitions, typedefs, enumeration constants, macros with simple bodies, etc., is NOT enough to make a derivative work.

這篇剛好回應最近有人質疑 Android 因為使用 GPLv2 header file 而軟體本身使用非 GPLv2 授權的問題:「Android Faces Serious Linux Copyright / Copyleft Issues with GPL」:

Google used Linux headers, but did not release Android under the same GPL2 license, which is the most basic precept of GPL. (Android is released under the Apache Commercial License.)

Ubuntu 10.10 amd64 版

把桌機換成 Ubuntu 10.10 Desktop amd64 版,比以以前有一堆東西要自己設定,裝好到現在還沒遇到問題,本來預期的問題也都隨著時間而解決了:

  • Linux amd64 下 rmvb 的支援,不論是內建的 Totem 還是 smplayer 都沒問題,而且 smplayer 還可以加速播放 (聲音頻率不會跑掉),跟之前在 Windows 下用 KMPlayer 的模式一樣...
  • Linux amd64 下 Flash Player 的支援也已經 okay 了,目前版本也已經是 10.2,該有的都有了...

繼續研究...

在 Debian 上使用 CPAN 時要如何與系統的 lib*-perl 合作...

因為對 FreeBSD 還算熟悉,所以在 FreeBSD 上遇到 Ports 內沒有的 CPAN module,我會做一個新的 port 出來 send-pr,但對於 Debian 的熟悉度沒有 FreeBSD 高,想了老半天想不到什麼好方法,在 #perl.tw 上問了這個問題,不過還是沒有滿意的答案...

然後想到,在 Stack Overflow 上面說不定有人問過,丟一些關鍵字後有兩筆相關討論可以參考:(至少是可行的解法)

有人是建議自己 compile 一個 Perl 出來裝到 /usr/local 下 (於是就可以惡搞到底),有的人則是建議用 dh-make-perl 做 .deb 出來用,但還是會有很多問題...

再想看看好了,真麻煩...

Debian 重開機後維持 iptables 設定值的作法

標題所提到的問題在 lenny 以及更早的版本沒有標準解,一般 Google 到的解法是在 /etc/network/if-up.d/ 裡面放一個 script,當介面起來的時候會跑 iptables-restoreiptables 的規則倒回去,這是「會動」的方法,但我不喜歡這種 hacking...

剛剛找到 iptables-persistent,在 squeeze 以及 sid 都可以裝,雖然沒有文件,但看了一下程式很快就可以理解他的用法。

apt-get install iptables-persistent 安裝完畢之後,理論上就會把 script 裝好,並且把目錄建好,接下來只要跑 iptables-save > /etc/iptables/rules 就可以把目前的 iptables 設定倒進去。

這個方式看起來會是比較好的作法...

AWS EC2 推出 Amazon Linux AMI (Beta)

Amazon Web Services 推出了 Amazon Linux AMI (Beta),讓想要用新版 Linux kernel 的人可以在 EC2 上測試:「Announcing the Amazon Linux AMI」。

包括了 32bits/64bits 以及 S3/EBS boot 的版本 (所以總共四種版本),基本的系統都是 Fedora。其中 EBS 版本可以直接用 t1.micro 跑起來,以目前跑起來的版本 uname -a 可以看到:

Linux domU-12-31-38-02-55-4B 2.6.34.6-54.21.amzn1.i686 #1 SMP Sun Sep 12 06:48:07 UTC 2010 i686 athlon i386 GNU/Linux

依照 kernel.org 的資料可以看到 2.6.34.6 是 2010/8/26 釋出,算是蠻新的版本了...

接下來就是要找方法把 EC2 上 Fedora 系統換成 Debian,這個倒是有不少文件,像是:「Building EC2 Images from Scratch with ec2ubuntu-build-ami」...

Update:依照 Eric Hammond 的說法,不建議使用 ec2ubuntu-build-ami 這個 script 產生 AMI,參考他在 9/18 的回覆。目前建議的方式是「Building EBS Boot and S3 Based AMIs for EC2 with Ubuntu vmbuilder」以及「Building EBS Boot AMIs Using Canonical's Downloadable EC2 Images」這兩篇。

在 Linux 上架設 Screenshot Service (2010 年了?)

在 2008 年的時候 xdite 寫過一篇「在 Linux 上架設 Screenshot Service」,不過現在是 2010 年了,不少當初有問題的地方都已經改善了,現在要架比之前方便不少...

測試的平台同樣是在 Linode (referral code 是 fdbacc96dbddafce9ba444dd678357416d0323d5) 上跑 Debian lenny (也就是 5.0 版),為了避免 Adobe Flash PlayerLinux amd64 上會出問題,我在 Linode 上用 32bits 版。

Linode 把預設的 Debian 裝完後,先把整個系統升級到 Debian squeeze 並且重開,然後先裝「locales」這個套件,再用 dpkg-reconfigure locales 把 en_US.UTF-8 以及你自己會用到的 locale 勾起來。

接著開始裝必要的套件:

  • flashplugin-nonfree
  • iceweasel
  • ttf-arphic-bkai00mp
  • ttf-arphic-bsmi00lp
  • ttf-arphic-gbsn00lp
  • ttf-arphic-gkai00mp
  • ttf-arphic-ukai
  • ttf-arphic-uming
  • ttf-wqy-zenhei
  • xvfb

Iceweasel 其實就是 Firefox,因為商標問題而在 Debian 上有不同的名字。在英文版維基百科的「Mozilla Corporation software rebranded by the Debian project」這篇文章裡把前因後果講得很清楚,這邊就不提了...

除了必要的套件外,接下來裝 TightVNC server,準備透過 VNC 設定 Iceweasel。設完後可以移除掉或是留下來,我自己是留下來 (反正檔案不大),有時候可能要進去 about:config 調整參數...

TightVNC server 用 tightvncserver :0 跑起來,然後遠端連進去把 Iceweasel 跑起來測試看看有沒有問題 (可以透過 PuTTY 的 tunnel 將傳輸過程加密),沒有問題的話就裝「torisugari: Command Line Print」這個套件,裝好後再把 Xvfb 跑起來,用這個指令抓圖:

DISPLAY=:2.0 iceweasel -print http://zh.wikipedia.org/ -printmode png -printfile ~/zh.wikipedia.org.png -printdelay 10

抓出來的 screenshot 就會像這樣:(點這裡看原大小圖片)

Flash 也沒問題:(點這裡看原大小圖片)

比起之前的方法,現在的方案有兩個好處:首先是 plugin 是照正規方法裝進去,而不是直接丟 xpi,可以避免遇到奇怪的靈異現象時懷疑是不是安裝時硬塞造成的。再來是 Iceweasel 會在抓完就 shutdown,所以在網路速度夠快的時候可以提前結束,而網路不夠快時也不用擔心抓到未完成圖...

當然剩下有很多細節要處理啦,不過那是另外一回事了...

Archives