openSUSE:Evergreen
是什么
Everygreen 是个社区主导的对已失去维护期限的 openSUSE 仍然提供维护服务的项目。
最后一个支持的版本是 openSUSE 13.1 .
由于这是一个新鲜的尝试,所以并没有详细计划应支持哪些版本。项目希望提供尽可能多的支持。支持期间也是如此。
支持的版本
曾被支持过的版本可以在以下列表找到。
Distribution | Status | Support start | Support end | Maintainer | notes |
---|---|---|---|---|---|
openSUSE 11.1 | 不活跃 | wrosenauer 讨论 - 贡献 | 维护已经彻底停止。 | ||
openSUSE 11.2 | 不活跃 | May 12th 2011 | November 30th 2013 | lijews 讨论 - 贡献 | 维护已经彻底停止。 |
openSUSE 11.4 | 不活跃 | November 5th 2012 | July 2015 | wrosenauer 讨论 - 贡献 lijews 讨论 - 贡献 | 维护已经彻底停止。 |
openSUSE 13.1 | 不活跃 | January 2016 | November 2016 | wrosenauer 讨论 - 贡献 | 维护已经彻底停止。 |
如何使用
- 通过 YaST 或 zypper,添加供应源 http://download.opensuse.org/evergreen/11.1/ ,然后接受新的 Key。您应该将优先级设为 20 以对上原始的更新供应源。
sudo zypper ar --refresh -r http://download.opensuse.org/evergreen/11.1/openSUSE:Evergreen:11.1.repo
- 创建文件 /etc/zypp/vendors.d/evergreen,填以以下内容:
[main] vendors = openSUSE Evergreen,suse,opensuse
您可以以命令行方式达成以上目的。复制以下代码并执行:
cat > /tmp/tmp.evergreen << EOF [main] vendors = openSUSE Evergreen,suse,opensuse EOF sudo mkdir /etc/zypp/vendors.d sudo cp /tmp/tmp.evergreen /etc/zypp/vendors.d/evergreen
- 然后,您可以使用命令 sudo zypper up 来获取更新。
很不幸的是 YaST 的在线更新模块无法使用,由于我们目前还没有办法提供所需的补丁。
- 补充上述的更新供应源的有 ftp5.gwdg.de 上的 distribution 供应源:
ftp://ftp5.gwdg.de/pub/opensuse/discontinued/distribution/11.1/repo/oss/ ftp://ftp5.gwdg.de/pub/opensuse/discontinued/distribution/11.1/repo/non-oss/ ftp://ftp5.gwdg.de/pub/opensuse/discontinued/source/distribution/11.1/repo/oss/ ftp://ftp5.gwdg.de/pub/opensuse/discontinued/update/11.1/
- 11.1 的 Full Packman 供应源于 2011 年二月也已存档于 GWDG:
ftp://ftp5.gwdg.de/pub/opensuse/discontinued/distribution/packman-11.1
- 幸而 Packman 团队还提供着 Evergreen 11.1 的 Essentials 供应源,例如:
http://packman.mirrors.skynet.be/pub/packman/suse/Evergreen_11.1/
- 可以通过以下命令添加到 zypp 中:
zypper ar URL PRETTYNAME
- 移除 download.opensuse.org 的旧的 distribution 供应源:
zypper rr NAME
- 您也可以通过 YaST 控制您所订阅的供应源。
供应源持续打包而且处于标准位置。以上的存档的 Packman 供应源只为非 Essentials 供应源里的软件包所需要。
联系
通常是通过 evergreen 邮件列表进行联系。
项目的带头开发者,也是 11.1 版本的责任人,是 Wolfgang Rosenauer。
Stefan Lijewski 是 11.2 版本的带头人。
团队成员有:
更新策略
更新策略尚未就绪,不过通常是与官方的 openSUSE 维护策略对齐的。
包装信息
- 如果您想更新一个软件包,osc 将会是您的最好的朋友。以下是步骤:
osc bco openSUSE:Evergreen:11.1:Test PACKAGE_TO_BE_UPDATED
- 更新源码包以显示必要的安全性补丁
- 软件包的发布标签应该遵循一定的格式:$MAJOR.<RELEASE$MINOR>。$MAJOR 指主要版本号,一般应保持不变,$MINOR 次版本号,通常应在原来之上加上 1。若软件包的版本较高,发布标签里 $MAJOR 应为 0 而 $MINOR 应为 1。
例如,当您 branch 的是基础版本时,若当前的是 5.<RELEASE2>,则您应发布为 5.<RELEASE3>;若您是全版本更新,则应为 0.<RELEASE1>。
- 更新变更文件,从您的目录复制变更清单:
osc vc PACKAGE_NAME.changes
- 本地编译软件包:
osc build --clean --no-verify PACKAGE_NAME.spec
- 添加删除本地文件:
osc ar
- 将您的变更提交到 Build Service:
osc ci
- 确认软件包是在 OBS 编译的,而且位于软件包目录 osc submitpac 之内。这里是 openSUSE:Evergreen:11.1:Test:
osc submitpac
内核打包流程
截止目前,Evergreen 11.1 使用的 SLE11-SP1 的内核,而 Evergreen 11.2 的维护者也在评估相同的做法。
我的做法是在我的主项目下创建一个子项目,命名为 Evergreen-11.1,然后做一份 SLE11-SP1 的内核源码包的备份。
我是使用 WEBUI 创建子项目的。
要编译 SLE11-SP1 的内核,您需要新版本的 kbuild,Everygreen 自带的通常都太旧。我从 openSUSE:11.3:Update:Test 移植了一个过来,作为我的编译器。这些也是使用 WEBUI 来做的。
然后,从命令行开始:
login=JohnDoe osc copypac Kernel:SLE11-SP1 kernel-source home:$login:Evergreen-11.1 for p in kernel-{default,desktop,pae,xen,vanilla,syms}; do osc linkpac -C copy home:$login:Evergreen-11.1 kernel-source home:$login:Evergreen-11.1 $p done
要记住不要改变上面的软件包的名字。虽然 osc copypac 可以在当您想同步 SLE11-SP1 内核之时随时运行,不过流程只需执行一次便可得到链接。
而且,上面的默认的自动重编译会消耗 OBS 许多资源。建议您在做一个完全的自动编译之前先通过 WEBUI 关掉编译。
一旦您在正确的目录里有了内核源码包,您就可以复制一份到本地了:
osc co home:$login:Evergreen-11.1 kernel-source cd home:$login:Evergreen-11.1/kernel-source
现在您可以做一个本地的特别内核编译测试,例如:
osc build --clean --no-verify kernel-desktop.spec
注意,在内核源码项目中会有一些 specfile。其在 OBS 里的执行像是受到其所在的项目名字的限制。所以不要在上流改变软件包的名字是很重要的。
编译内核需要一段时间,所以请不要着急。
SLE11-SP1 OBS 上的内核通常都要比正式发布的 SLE11-SP1 的内核新。最新的补丁无法得到 Novell 团队的全面的质量检测。
补丁通过 resolve.conf 文件控制,所以在编译内核之时可以通过修改该文件以控制应用哪些补丁。
更新状态
一份包括修复或改进的软件包的当前更新状态概览列于 Evergreen 11.1 和 Evergreen 11.2 之上。