本文档收集了 GNU 软件包的状态报告。
这是对历史上的 GNU 公报(https://gnu.ac.cn/bulletins)中 GNU 状态报告的复兴。目标是从尽可能多的软件包中,不时地提供 GNU 范围的新闻和信息。
https://gnu.ac.cn/manual 列出了所有 GNU 软件包,并提供了在线手册和主页的链接。所有 GNU 软件包都可以在网上通过 <https://gnu.ac.cn/software/
pkgname> 访问,如这里的标题所示。本报告仅包括数百个 GNU 软件包中的一部分;我们希望在未来的版本中能够有更多的软件包被包含进来。
另请参阅 http://planet.gnu.org,它汇总了 Savannah (http://savannah.gnu.org) 上发布的各个 GNU 新闻项目。
另请参阅 [email protected] 邮件列表,其中发布了新的 GNU 版本的公告。订阅或查看存档请访问 http://lists.gnu.org/mailman/listinfo/info-gnu。
本报告的目的是比其他报告更高级别和更通用一些,尽管不可避免地存在一些重叠。
欢迎对本文档提出问题、意见和建议;请发送电子邮件至 [email protected]。具体软件包的问题当然应通过其常用渠道解决。
来自 Nick Clifton:GNU 二进制实用程序项目(它的朋友称为 binutils
)正在继续积极开发。刚刚发布了 2.21 版本,其中包含许多错误修复和一些新功能
==
id 来导入和导出进行了扩展。这允许在 PE 镜像中写入导入/导出表名称的别名。objcopy
程序现在支持 --interleave-width 选项,以允许使用 --interleave 选项将输入中的一系列字节复制到输出中。.section
指令标志中的扩展语法,该语法允许指定节的对齐方式。MEMORY
区域。同时,仍在继续在 ld
上进行工作,以添加对插件和压缩调试节的支持。gold
正在改进,很快将能够替代 ld
来链接 Linux 内核等重要项目。
预计 binutils 的下一个版本将在 2011 年年中发布。
来自 Jim Meyering 和 Pádraig Brady:我们刚刚发布了 coreutils-8.9,它修复了许多相对重要的错误(http://savannah.gnu.org/forum/forum.php?forum_id=6662 适用于 8.8,http://savannah.gnu.org/forum/forum.php?forum_id=6679 适用于 8.9)。大多数错误都在 sort 中,是通过在 coreutils-8.6 中添加的并行化支持引入的。
唯一重要的非错误修复更改是向 split 添加了一组有用的功能,使您可以将输入拆分为 n 个大致相等的部分,可以选择是否在行边界上拆分,并且在遵守行边界时,可以选择是否以循环方式分发行。有关详细信息和示例,请通过 ‘info split’ 查看手册,或在线访问 https://gnu.ac.cn/software/coreutils/manual/html_node/split-invocation.html。
在 coreutils 上最困难的工作之一是了解要拒绝什么,并为贡献者提供适当的理由。下面的贡献都是最近提交的,尽管想法很好,但由于邮件列表中详述的各种原因,它们没有被包括在内。
test -ed
touch -R
`find . -exec touch -am {} +`
更通用。df autoscale
df -h
被认为足够好。df/ls --blocksize={decimal,binary}
sha1sum --raw | base64.
`openssl dgst -sha1 -binary $file | openssl enc -base64`
被认为足够可用。 --examples
在即将到来的方面,我们应该很快恢复将 FIEMAP(高效稀疏复制)代码放入主开发分支的工作 http://git.savannah.gnu.org/cgit/coreutils.git/log/?h=fiemap-copy。
来自 Stuart Rubin:Electric VLSI 设计系统是用于集成电路设计的完整 CAD 软件包。它允许您绘制原理图、绘制 IC 布局,甚至使用文本硬件描述语言。它有许多分析和综合工具,并且可以与更多工具进行接口。
Electric 自 12 年前以来一直是自由软件基金会的自由软件,并且仍在继续开发和分发。目前,Electric 开发团队受雇于 Oracle,他们刚刚发布了 9.00 版本。
来自 Steve White:在 GNU FreeFont 20100919 版本中,添加了多种语言脚本
此外,僧伽罗语被 Yannis Haralambous 的 TeX 字体 sinh
中的版本取代。
扩展了几个符号范围,并纠正了一些字形。
对字体表进行了一些技术改进,其中一些应该可以改善显示效果。
有关更多信息,请参见 https://savannah.gnu.org/forum/forum.php?forum_id=6518。
来自 Arnold Robbins:Gawk 最近取得了很大进展。一个主要的新版本正在开发中,应该在几个月内准备就绪。新内容包括
BEGINFILE
和 ENDFILE
模式FPAT
变量来自 Gerald Pfeifer:在过去的几个月里,我们已经看到了几个 GCC (GNU Compiler Collection) 的发布版本,首先是 10 月份的 GCC 4.4.5,然后是 12 月份的 GCC 4.5.2,并且我们正在全力以赴地改进 4.6 系列的第一个版本 (http://gcc.gnu.org/gcc-4.6/changes.html)。
GCC 4.6 将为后端的 Xilinx MicroBlaze 软核处理器带来支持,以及为 Go 语言提供新的前端(和运行时库),外加许多新的 Objective-C 特性,例如声明和合成属性、点语法、快速枚举、可选的协议方法、方法/协议/类属性、类扩展和一个新的 GNU Objective-C 运行时 API。
GCC 4.6 还增加了一个新的优化级别 -Ofast
,它相当于 -O3
,但包含一些可能会影响标准兼容性,但可以带来更好优化代码的选项。我们在 GCC 4.5 中引入的链接时优化 (LTO) 得到了改进、稳定,并且降低了资源消耗,这使得 GCC 能够使用 LTO 构建自身或 Mozilla Firefox。作为用户,您可以通过 -flto=N 控制要执行的编译次数。内联启发式算法和过程间优化也得到了大量的调整。
回到前端,Ada 的堆栈检查已得到加强,现在可以检测到几个平台上的所有溢出;已添加了对即将到来的 C1X 标准的实验性支持、新的函数属性 leaf
和 callee_pop_aggregate
,以及一个新的警告 -Wdouble-promote
。对即将到来的 C++0x 标准的支持得到了大量的关注和改进,并且可以更精细地调整 C++ 代码生成(参见新的选项 -fstrict-enums
和 -fnothrow-opt
)。
在支持新的 libquadmath 库的系统上,GNU Fortran 现在还支持四精度、kind=16
浮点数据类型 (REAL(16)
, COMPLEX(16)
)。 -fwhole-file
命令行选项现在默认启用,这改进了代码生成和诊断,并且 Fortran 2003 和 Fortran 2008 的支持都得到了相当多的增强。
在平台增强方面,-march=core2
(和 -mtune=core2
)为 Intel Core 2 提供支持,-march=corei7
为 Intel i3/i5/i7 提供支持,而 -march=btver1
为您提供对 AMD Bobcat (family 14) 的支持。Darwin、FreeBSD、MinGW 和 Cygwin 现在都支持 32 位 x86 目标上的 __float128
。MIPS 现在支持龙芯 3A 处理器,而 s390x 则完全支持 zEnterprise z196 处理器,并提供了一些新的指令功能。
就操作系统而言,GCC 为构建 Android 平台的本机库和应用程序提供了一种便捷的方式,并且在 Windows 上添加了 #pragma push_macro
& #pragma pop_macro
、十进制浮点等功能。
如果您在测试即将发布的版本或任何其他版本时发现任何问题,请使用我们更新的 Bugzilla:http://gcc.gnu.org/bugzilla。
来自 David Sugar:GNUCOMM 是 GNU 电话系统的总称。它包括几个软件包:Bayonne、Sipwitch 以及支持库 ccAudio、ccRTP、ccScript 和 CommonCPP。
ZRTP 通信协议正在作为一种免费(在自由的意义上)的手段传播,以使用 GNU GPL 许可的软件进行私密通信。我们即将发布适用于 Android 的 ZRTP (libcppzrtp
已经可以在 Android NDK 上构建),以及基于 Android 的 CSipSimple 构建的完整 Android 客户端。
当然,我们将继续保持与新兴的 IETF ZRTP 草案标准的完全兼容性和互操作性,并且随着适用于 Android 的 ZRTP 的推出,我们将覆盖更多的用户。此前,我们看到了 GNU ZRTP4J,它被用于 SIP Communicator(一个适用于 GNU/Linux、OS/X、Windows 和其他平台的跨平台 Java 客户端),以及 Twinkle(一个 QT ZRTP 代理),因此适用于 Android 的 ZRTP 将进一步扩展其覆盖范围。
在 GNU uCommon 中,也更加强调应用程序开发中的安全通信和加密实践,使用今年早些时候引入的新安全库。它还可以作为 GNUTLS 或 OpenSSL 的通用包装器(前者具有配置首选项)。这仍在发展中。它符合我们在开发安全通信和默认情况下通过使其更容易实现来促进应用程序开发中的隐私的整体努力,这是 GNU 电话的总体目标。
来自 Jason Self:我正在努力使用 C 和 SQLite 重写 GNUtrition,而不是依赖于外部 SQL 服务器,一个现代化的 UI 和一些额外的功能。我计划在三月份的 LibrePlanet 上推出新版本。
食物数据库正在升级。当前版本的 GNUtrition 使用了一个非常旧的版本(来自 1999 年),因此现在是时候升级了。这意味着更多关于更多食物的信息——大约 2,000 种新的食物项目。
来自 Jim Meyering:Grep 在 2010 年发布了几个维护版本。自上次发布以来,有一些小的错误修复,并且至少有一个待处理的、未修复的错误,当执行不区分大小写的搜索时,该错误会在包含土耳其大写字母 I
的行上找到匹配项。一旦修复了该错误,我希望进行另一次发布。
来自 Simon Josefsson:GSASL 是 GNU 简单身份验证和安全层库。在 2010 年 12 月,发布了一个新的稳定版本 (1.6.0),其中包括对两个最新的 SASL 机制的支持:SCRAM 和 GS2。这些是新一代 SASL 机制,旨在(随着时间的推移)取代较旧的 CRAM-MD5、DIGEST-MD5 和 GSS-API 机制。
下一个稳定分支的开发系列已经开始,计划包括改进对非 Kerberos 机制的 GS2 支持、对 IETF 中讨论的两种 SAML 机制的支持等。现在是加入邮件列表并为项目做出贡献的好时机!
来自 Spencer Buckner:GSEGrafix 是一个 GNOME 应用程序,它使用抗锯齿的 GNOME 画布来创建科学和工程绘图。该程序用 C 语言编写,读取 ASCII 参数文件和数据文件。参数文件包含用于指定绘图参数(例如数据文件名、数据文件格式、绘图类型、绘图样式、轴类型、轴标签等)的关键字和相应的参数。包括 11 个示例绘图、用于创建数据文件的 Octave 代码或 C 代码的相应示例以及相应的参数文件。该程序可以从终端窗口或图形用户界面运行。
当前版本是 gsegrafix-1.0.5
。 版本 1.0.5 添加了示例 1 和 7 的数据文件,以便熟悉该程序。在相应的示例描述中提供了指向每个文件的链接。该程序包含一个 HTML 帮助文件,并且在此版本中添加了一个 XML 帮助文件。
版本 1.0.6 正在开发中,其中包括两个额外的关键字:background_color
和 background_image
。 前者允许将绘图窗口的背景颜色指定为白色(默认)或黑色。 如果选择黑色,则绘图框、刻度线、轴标签、标题和文本为白色。 关键字 background_image 允许在绘图框中显示背景图像(例如地图)。 可以通过指定以下参数值之一来以四种不同的方式缩放图像:center
、fill
、scale
或 zoom
。
来自 Brian Gough:GNU 科学库是用 C 语言编写的数值库。它提供了大量的数学例程,例如随机数生成器、特殊函数、傅里叶变换和最小二乘拟合。总共有 1000 多个例程,并附带了广泛的测试套件。
该项目的作用是为众所周知的专有数值库提供替代方案,这些库通过阻止共享科学软件来阻碍科学合作。
该项目已经稳定发布了 10 年,并且在此期间保持了 API 的稳定性。正在进行的修复错误的工作仍在继续,特别是改进特殊函数的稳定性,并且今年早些时候发布了 1.14 维护版本。
目前,该项目没有足够的贡献者来处理主要的开发工作,并且仅限于错误修复。需要对数值方法有很好的了解才能从事该项目——任何有兴趣提供帮助的人都应该联系 [email protected] 以获取更多信息。
来自 Brian Gough:GNU 源代码发布集合 (GSRC) 是一个用于 GNU 软件包的构建系统。其目标是使在现有发行版的本地目录中从源代码轻松安装最新的 GNU 版本。
GSRC 通过自动下载和构建软件包及其依赖项来简化此过程。您只需要一个 ./configure && make
即可获得所有内容,就像往常一样。
对于熟悉 BSD 系统的人来说,这类似于 BSD Ports。 GSRC 使用 GAR,这是一个由 Nick Moffit 使用 GNU Make 编写的构建系统,以及 Adam Sampson 的 GARstow。 GSRC 也类似于用于 GNOME 的 GARNOME 系统。
目前 GSRC 中有 136 个 GNU 软件包可以成功构建和安装,包括 GCC、Guile、GnuPG、Emacs、coreutils、GnuTLS 和许多其他软件包。软件包每周更新几次,因为会发布新的版本。
整个集合也会在 GCC 编译场上定期构建,并在 http://planet.gnu.org 上发布每周报告,其中包含所有 GNU 软件包的当前构建状态。
该项目的目标是支持其余的 GNU 软件包——特别是那些具有复杂依赖项的软件包,例如 Gnash 和 GnuCash,并且还提供最新的 alpha 版本(这已经为一些项目完成了)。欢迎熟悉这些软件包的人提供更多帮助。
来自 Ludovic Courtès:GNU Guile 是 Scheme 编程语言的实现,可以嵌入到应用程序中以允许用户扩展它们。可扩展性使用户能够通过使开始进行更改变得更加容易来利用软件自由。正如 Emacs Lisp 允许在 Emacs 环境中编写意想不到的应用程序一样,Guile 应该对其他 GNU 应用程序执行相同的操作。它应该将 Emacs 的特性传播到 GNU 的其余部分。
Guile 在过去几年中经历了重大变化,导致了 15 个预发布版本——标记为 1.9.x。这将导致 2.0 稳定系列的发布,计划于 2011 年第一季度发布。1.8 稳定系列于 2006 年发布。它提供了许多改进,例如对精确有理数、多线程和更好的 C 编程接口的支持。
Guile 2.0 是 Guile 历史上的一次重大突破。首先,它基于编译器和虚拟机,并配备了强大的读取-求值-打印循环 (REPL) 和调试器。编译器将 Scheme 代码编译为字节码,并应用了众所周知的优化。因此,使用 Guile 2.0 运行 Scheme 代码的速度明显加快。编译可以透明地进行:当在缓存中找不到模块的编译形式时,它会在运行前自动编译。
此外,Guile 2.0 具有丰富而令人兴奋的新功能。原生支持卫生宏,并与模块系统良好集成——它们是使 Scheme 本身可扩展的原因。它支持 Unicode,以及 Scheme 编程语言的最新修订版 R6RS 的大部分内容。
提供了一个动态外部函数接口 (FFI),允许完全用 Scheme 编写与 C 库的绑定。2.0 版的新功能还包括对可组合延续(又名“提示”)的支持,这是一种新颖的控制流机制。新的模块包括用于 HTTP 和 URI 的 Web 工具、XML/SXML、模式匹配、LALR 解析、纯函数式哈希列表和代码覆盖率,仅举几例。
虽然 Guile 2.0 仍然主要是 Scheme 的实现,但它的编译器带有 ECMAScript 的前端——为寻求扩展其应用程序的用户提供了更多选择。Emacs Lisp 前端也可用。这是 Guile 和 Emacs 统一工作的成果,它们是 GNU 可扩展性的旗舰。
2011 年有望成为 Guile 又一个激动人心的一年。我们相信 Guile 2.0 是一个强大的工具,可以进一步推动可扩展性并增强软件自由!
来自 Karl Berry:GNU Hello 仍然是一个完整的示例包,旨在展示 GNU 包的一些最佳实践。例如,它使用 Automake 进行配置,Gettext 进行国际化,Help2man 以避免维护单独的 man 页面,以及 Gnulib 来共享通用源代码。
有关其他编程语言的示例,请参阅 Gettext。Automake 手册还包含一些从头开始的示例。
来自 Olaf Buddenhagen、Arne Babenhauserheide、Thomas Schwinge:是的,这很正确:这个项目仍然活跃!
根据我们的使命宣言,目标是创建一个适用于 GNU 操作系统的通用内核,该内核适合日常使用,并尽可能地让用户和程序控制他们的计算环境。它具有独特的多服务器微内核架构——将先进的操作系统研究带入主流。更具体地说,它是在 GNU Mach 微内核上运行的用户空间服务器进程的集合。
Hurd 尚未完全实现日常可用性的目标,但它正在不断改进——2010 年也不例外。让我们来看看全年的进展。
Jérémie Koenig 将现代 Debian 安装程序移植到 Debian GNU/Hurd。使用新安装程序的安装映像正在取代之前的 CD 映像,后者使用的是基于旧 Debian 启动软盘(并在 Linux 内核下运行)的安装程序——Philip Charles 已经独自维护这些映像近十年了!新的安装程序映像可从 http://people.debian.org/~sthibault/hurd-i386/installer/cdimage/ 获取。
Emilio Pozuelo Monfort 正在调查一些软件包的广泛测试套件暴露的特定兼容性问题。Emilio 的分析揭示了 Hurd 代码中的一些编程错误,并修复了其中的几个。由于这些错误通常也会影响其他程序,因此这提高了整体的稳定性和兼容性。
过去由外部贡献者创建的一些其他转换器(gopherfs、netio、tarfs)已由 Manuel Menal 修复并打包到 Debian 中。因此,Hurd 可扩展架构的一些成果现在更容易访问,这些更新的转换器可以作为其他开发人员实现自己想法的示例。
这是对去年发生的事情的一个非常简短的摘要。您可以在 https://gnu.ac.cn/software/hurd/news.html 上阅读我们的常规“Hurd 月报”,或者通过订阅我们的 RSS 提要:https://gnu.ac.cn/software/hurd/index.rss。
如果您有兴趣,例如,在多服务器微内核操作系统上进行大学项目,或者您有兴趣为 Hurd 的开发做出贡献,请参阅 https://gnu.ac.cn/software/hurd/contributing.html。或者,只需通过 [email protected] 或 freenode 上的 #hurd
IRC 频道与我们联系。
来自 Karl Berry:我们希望在经过几年的开发后,在 2011 年发布下一个 Texinfo 主要版本。感谢我的同事 Patrice Dumas,Makeinfo 程序已经用 Perl 完全重写,同时保留了基本完全的兼容性。新程序基于 texi2html,并尽可能地与之兼容。它将为 HTML 自定义、Unicode、其他后端等提供更好的支持。如果您现在想尝试它,它在开发源代码中。
texinfo.tex 作为一个可分离的文件,一直在不断地更新。当前版本可从 http://ftpmirror.gnu.org/texinfo/texinfo.tex(以及 Gnulib)获取,我们鼓励您在发布版本时始终获取当前版本。
来自 Arun Persaud:XBoard 是一个图形用户界面,用于以所有主要形式(以及许多其他形式)进行国际象棋。在过去一年中,XBoard 的开发经历了三个新版本,修复了许多错误并包含了许多新功能,另一个主要版本即将发布。我们现在支持更多种国际象棋变体(象棋、将棋、Makruk,以及对疯狂屋、虫屋等变体的更好支持)。此外,计算机国际象棋的支持也得到了改进。
目前正在努力将 XBoard 及其所谓的“Winboard”配套代码合并回一个代码库,并使其适应使用 GTK 作为 GUI 前端。如果您对此感兴趣并愿意提供帮助,请随时通过 [email protected] 与我们联系。我们总是需要更多的帮助!您当然也可以联系我们讨论其他问题/想法。