从 FreeBSD Ports 代码仓库冻结事件谈起:Git 历史重写,以及如何从此类状况中恢复
最近,FreeBSD 的 ports 代码库由于一次技术事故进行了一次历史重写。
共 46 篇文章。
最近,FreeBSD 的 ports 代码库由于一次技术事故进行了一次历史重写。
由于使用的 port 的编译选项与官方的往往不一致(例如我非常讨厌 gnutls、avahi 这两个包,此外有时我希望使用一个和官方不太一样的 OpenLDAP 版本,或者采用不同的编译选项等等),我之前一直是 portmaster(8) 的用户。 portmaster 是Doug Barton 早年用 shell 脚本写的一个 portupgrade(1) 的替代品,和后者相比,它不需要使用数据库,并且充分利用了 shell 的任务管理功能实现了尽可能利用 CPU 的计算能力,我个人也从这个脚本中学到了不少shell 脚本的技巧。
不过,使用 portmaster 需要在每一台机器上都有一份 ports tree,并且由于直接操作的是本地的生产环境,因此对于比较基础的库,如 gettext 之类,或是在升级操作系统时,由于升级时间较久导致出现问题的可能性相对要大一些。另一方面,使用 port 来管理第三方软件意味着需要把联编过程中的所有依赖软件包全都都装到生产环境中,有时这是非常不经济的,例如大部分时候运行环境并不需要完整的跨平台 LLVM,等等,而使用 port 安装的话,每一个系统中都需要整体重新联编一遍。
我之前已经用过很长时间的 poudriere 了。这是一款现代化的联编系统,它充分利用了 FreeBSD 的一系列特性,包括 ZFS 快照/克隆、 tmpfs、jail 等等,支持交叉编译。除此之外它还支持使用 ccache 来减少重复编译,等等。不过,线上的机器出于习惯^H^H懒惰导致的惯性一直还是在沿用之前采用 portmaster 来进行更新。
今天抽时间把邮件系统的软件升级了一下,然后发现无法获得 ClamAV 的源代码:
| |
同一个链接用浏览器是能打开的,一看邮件果然已经有人 开过票 了。最近发现不少网站都出于某种原因对 User-Agent 进行了限制,不过既然这是个用户能自行指定的值,这么限制到底意义何在呢?
WxClassInfo的析构函数(~WxClassInfo)死循环是什么原因?检查发现RTTI的那个链表有个环,但是不太明白这个表(从上下文看是由Register()方法维护的)为什么能出现环?
I have a long history suffering from inputing Chinese in KDE, where scim does not work well, especially when used with Qt applications. Certain applications like KWord will refuse Chinese when using SCIM.
After some search it seems that ‘skim’ which is scim Qt’ifyed version, would support them well. Moreover, this version seems to have better UI than its GTK counterpart. The port (textproc/skim) is now unmaintained, maybe someone will pick it up? I’ll consider picking it up if there is nobody taking care for it.
Today I have ported (a rather hacky patch) Micropolis (a GPL’ed version of SimCity) to FreeBSD.
(20080114) Note: the patch is based on the git version of micropolis-activity, as available from git://dev.laptop.org/projects/micropolis-activity .
Perl 5.10 发布了!我觉得这对于 p5-* 绝对是一个大事件 :P
昨天 房东 说,Py-KQueue 在 Python 2.5.1 上面烂掉了。
今天跑了一下他昨天的两行用例,果然……看代码似乎是因为用了Python 1.5的内存对象API,不知道是谁改的,过分!
今天 Howard Wang 找我抱怨 php5-gd 依赖 xorg 的问题。大概看了一下,很明显这是一个 bug,不过并不是很好修,目前并没有很高效的方式来检测GD在联编过程中是否启用了XPM(默认情况下并不是这样)。