2017年11月23日 星期四

Python 套件的安全檢查 safety

使用 Python 來建立專案常常會需要拉一些額外的套件進來使用,然而有時候專案已經穩定不再增加新功能也不再修正錯誤時,就是只放著讓它在那邊自己跑著,只是說這個專案使用到的額外的套件難免會有一些未知的安全問題,這時候該怎麼辦呢?

於是我找到了 https://pypi.python.org/pypi/safety

執行

$ pip install safety
安裝起來,然後再執行
$ safety check
就可以看到結果。

或者是可以直接檢查 requirements.txt 這個檔案。

$ safety check -r requirements.txt
╒══════════════════════════════════════════════════════════════════════════════╕
│                                                                              │
│                               /$$$$$$            /$$                         │
│                              /$$__  $$          | $$                         │
│           /$$$$$$$  /$$$$$$ | $$  \__//$$$$$$  /$$$$$$   /$$   /$$           │
│          /$$_____/ |____  $$| $$$$   /$$__  $$|_  $$_/  | $$  | $$           │
│         |  $$$$$$   /$$$$$$$| $$_/  | $$$$$$$$  | $$    | $$  | $$           │
│          \____  $$ /$$__  $$| $$    | $$_____/  | $$ /$$| $$  | $$           │
│          /$$$$$$$/|  $$$$$$$| $$    |  $$$$$$$  |  $$$$/|  $$$$$$$           │
│         |_______/  \_______/|__/     \_______/   \___/   \____  $$           │
│                                                          /$$  | $$           │
│                                                         |  $$$$$$/           │
│  by pyup.io                                              \______/            │
│                                                                              │
╞══════════════════════════════════════════════════════════════════════════════╡
│ REPORT                                                                       │
│ checked 101 packages, using default DB                                       │
╞════════════════════════════╤═══════════╤══════════════════════════╤══════════╡
│ package                    │ installed │ affected                 │ ID       │
╞════════════════════════════╧═══════════╧══════════════════════════╧══════════╡
│ pillow                     │ 3.2.0     │ <3.3.2                   │ 33138    │
│ pillow                     │ 3.2.0     │ <3.3.2                   │ 33139    │
│ cryptography               │ 1.3.1     │ <1.5.3                   │ 25680    │
│ httplib2                   │ 0.9.2     │ <=0.9.2                  │ 25848    │
│ mistune                    │ 0.7.1     │ <0.7.2                   │ 25890    │
│ rsa                        │ 3.2.3     │ <3.3                     │ 33164    │
│ rsa                        │ 3.2.3     │ <3.4                     │ 26112    │
╘══════════════════════════════════════════════════════════════════════════════╛

看樣子只要將版本更新上去就沒問題了,當然原本專案的某些地方可能會跟著壞掉需要再修正一下。

最後是 https://pyup.io/ 對 GitHub 提供了 CI 的服務,public repo 可以免費使用。

2017年7月10日 星期一

自製 Ubuntu 16.04/16.04.1/16.04.2/16.10/17.04 測試硬體安裝使用的 USB 隨身碟

與「自製 Ubuntu 13.04/12.10/12.04.2 與 Debian 7.0 測試硬體安裝使用的 USB 隨身碟」同樣的步驟只是改用 grub.cfg 這個設定檔。

因為我是放在 8GB 的 USB 隨身碟上面,所以放這幾個 amd64 ISO 檔案就塞滿了。

另外我發現前一篇文章中的 usb-creator-gtk -n -i ubuntu-13.04-desktop-amd64.iso 這個步驟是多餘的,其實使用 grub-install 就夠了,還有這邊的 UEFI 模式不會支援 Secure Boot 因為 GRUB 的安全設定的關係。

2017年6月19日 星期一

拿到了 GNOME foundation membership

最近 GNOME 有推出個 Become a Foundation member 的活動,如果以前對 GNOME 做過不少貢獻就可以去申請成為會員,當然還要經過審核通過,我個人一直都是以開發者路線為主的,所以就是透過程式碼的貢獻拿到這個會員,然後就會得到一個 [at] gnome [dot] org 的 Email address alias,還會有什麼投票的權利,姓名也會出現在 Membership - GNOME 上面,應該還有一些額外的東西,不過我暫時還沒有空全部找出來,就只好先把 Email address alias 設定好,跟 Debian developer 一樣先擺著,現在寄信到 sylee [at] gnome [dot] org 也可以找到我,多了一個身份不曉得以後送 patch 會不會比較方便一些,就醬囉。

手動快速編譯 Ubuntu 16.04 當中 Linux kernel 4.4 裡面的 kernel module

以前寫過一篇「手動快速編譯 Ubuntu 14.04 當中 Linux kernel 裡面的 i915 module」這次是要針對 Ubuntu 16.04 LTS 上面的 Linux kernel 4.4 編譯,步驟都差不多只是有些不一樣的地方。

首先是 Linux kernel git tree 的來源改從 Launchpad 而來,是的! Ubuntu 使用的 Linux kernel 現在也放到 Launchpad 上面了。

$ git clone https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/xenial

然後是編譯的設定檔的位置不一樣了,不過大致上只要找出 config.common.ubuntu config.common.amd64 config.flavour.generic 這三個檔案的位置出來就可以了。

cat ./debian.master/config/config.common.ubuntu ./debian.master/config/amd64/config.common.amd64 ./debian.master/config/amd64/config.flavour.generic > .config

然後這次我的目標是 ubuntu/i915 底下的 kernel module 其它的部份就直接參考前一份文章就可以了。

2017年5月29日 星期一

成為 Debian Developer 之後的例行雜事

首先會收到一封含加密密碼的信件,使用自己的 PGP 解密後,就可以使用登入 https://db.debian.org/(這是第一組密碼),然後就可以修改自己在 https://sso.debian.org/ 上面的密碼(這是第二組密碼),登入 https://sso.debian.org/ 後就可以取得一組通行憑證給 Mozilla Firefox 使用,這個憑證之後可以使用在像是 https://tracker.debian.org/ 或是 https://nm.debian.org/ 上面,由於憑證是儲存在本機的瀏覽器裡面,所以有支援憑證登入的網站就不用再輸入密碼了。

另外就是可以到 https://alioth.debian.org/ 上面輸入自己 <username>@debian.org 的 <username> 然後按下忘記密碼來設定自己的密碼(這是第三組密碼),由於 https://alioth.debian.org/ 並沒有支援原本的 *-guest 帳號轉移,所以只能使用新帳號登入重新加入每一個之前加入過的專案,然後再請管理員將原本的 *-guest 帳號刪除掉,當然如果不在意的話,也可以繼續使用原本的 *-guest 帳號。

如果忘了https://db.debian.org/ 的密碼,可以參考 https://db.debian.org/doc-mail.html 寄信要求重設一組密碼。

echo "Please change my Debian password" | gpg --clearsign | mail chpasswd@db.debian.org

另外就是透過 SSH 登入的公鑰也可以透過寄信來設定。

cat .ssh/id_rsa.pub | gpg --clearsign | mail changes@db.debian.org

設定完 SSH 公鑰後就可以登入像是 people.debian.org 這樣的主機,來放自己的個人網頁 ~/public_html/index.html,例如: https://people.debian.org/~fourdollars/ 這樣。

https://db.debian.org/machines.cgi 上面列了一堆機器,目前還不曉得所有機器的使用方法,只知道要注意 https://www.debian.org/devel/dmup 上面的規範,不可以濫用大家共用的資源。

2017年5月16日 星期二

正式成為 Debian Developer

我的個人資料在 https://nm.debian.org/public/person/fourdollars 可以找到。

雖然說資格在 2017-05-07 就拿到了,可是相關帳號權限今天才開好,而且還有不少要花時間去瞭解設定的東西。Orz

特別感謝 czchen 一直在 TOSSUG 的聚會上 push 我去申請,不然我都是懶懶地慢慢摸。

2017年5月15日 星期一

2017 在 Ubuntu 16.04 上面報稅

沒有最爛只有更爛的報稅系統,Java 連官方都已經不支援使用 Java Applet 建議改用 Java Web Start 了,但是臺灣政府配合的廠商還是在使用過時的技術給 Mac & Linux 系統的報稅者,主管機關也是一直瀆職。

目前 Ubuntu 上的 Firefox 53.0.2 已經不支援 Java Applet 了,所以想要報稅只能安裝舊版本的 Firefox 來避開問題。

首先確認 Firefox 已經都關閉,然後將 ~/.mozilla 換個名稱或是備份起來,以防意外的發生。

$ mv ~/.mozilla ~/.mozilla.bak

接下來要安裝舊版本的 Firefox

$ apt policy firefox
firefox:
  已安裝:53.0.2+build1-0ubuntu0.16.04.2
  候選: 53.0.2+build1-0ubuntu0.16.04.2
  版本列表:
 *** 53.0.2+build1-0ubuntu0.16.04.2 500
        500 http://tw.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages
        500 http://tw.archive.ubuntu.com/ubuntu xenial-security/main amd64 Packages
        100 /var/lib/dpkg/status
     45.0.2+build1-0ubuntu1 500
        500 http://tw.archive.ubuntu.com/ubuntu xenial/main amd64 Packages
$ sudo apt install firefox=45.0.2+build1-0ubuntu1 firefox-locale-zh-hant=45.0.2+build1-0ubuntu1

然後就是依照先前寫過的「在 Ubuntu 16.04 上面使用自然人憑證報稅」來操作,就可以順利報稅了。