You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

453 lines
18 KiB

  1. -*- org -*-
  2. #+TITLE: Guix NEWS – history of user-visible changes
  3. #+STARTUP: content hidestars
  4. Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
  5. Copying and distribution of this file, with or without modification,
  6. are permitted in any medium without royalty provided the copyright
  7. notice and this notice are preserved.
  8. Please send Guix bug reports to bug-guix@gnu.org.
  9. * Changes in 0.5 (since 0.4)
  10. ** Package management
  11. *** GNU package descriptions synchronized with the ‘gnumaint’ repository
  12. In addition to synopses, descriptions of GNU packages are now kept in sync
  13. with the ‘gnumaint’ repository, which is the canonical place for GNU package
  14. meta-data.
  15. ** Programming interfaces
  16. *** Patches are now listed as part of ‘origin’
  17. The ‘origin’ form supports two new fields: ‘patches’ (list of patches), and
  18. ‘snippet’ (code snippet to modify the source.) These are applied when running
  19. ‘guix build --source’. See “Defining Packages” in the manual.
  20. *** New (guix monads) monadic interface to operate on the store
  21. See “The Store Monad” in the manual. The (gnu system …) modules have been
  22. rewritten to use this monadic interface.
  23. *** New (guix profiles) module
  24. It provides an API for dealing with profiles, as with the ‘guix package’
  25. command.
  26. *** New (gnu system) module
  27. This module provides a generic way to describe the system’s configuration,
  28. and to instantiate it, regardless of the final medium (QEMU image, etc.)
  29. See “System Configuration” in the manual.
  30. This is work in progress. Send feedback to guix-devel@gnu.org!
  31. *** ‘build-expression->derivation’ uses more parameters
  32. Some positional parameters have been changed to keyword parameters.
  33. See “Derivations” in the manual.
  34. ** GNU distribution
  35. *** New port to the Loongson MIPS64 processors, n32 ABI (‘mips64el-linux’)
  36. Bootstrap binaries have been built for that architecture, and several
  37. Loongson-specific patches not yet available upstream have been applied to core
  38. packages. See “GNU Distribution” and “Porting” in the manual.
  39. Pre-built binaries are not yet available via hydra.gnu.org, so Guix will
  40. build from source on this platform.
  41. *** 110 new packages
  42. acct, alive, alsa-utils, apl, at-spi2-atk, at-spi2-core, atkmm, autogen,
  43. automoc4, brasero, bridge-utils, cairomm, catkin, complexity, evince, ffmpeg,
  44. fftw, ftgl, gcc-objc, gcc-objc++, gccgo, gcl, gfortran, glibmm, glpk,
  45. gnome-icon-theme, gnu-pw-mgr, gp2c, gpgme, gsettings-desktop-schemas, gtkmm,
  46. gtksourceview, guile-ssh, guile-wm, gvpe, hicolor-icon-theme, httpd, icecat,
  47. icon-naming-utils, json-c, lapack, libcanberra, libcap, libgnome-keyring,
  48. libmikmod, libnl, libnotify, libsamplerate, libsigc++, libsndfile, libssh,
  49. libtheora, libxkbcommon, mercurial, mtools, netcat, pangomm, parallel,
  50. pavucontrol, pciutils, pem, perl-encode-locale, perl-file-list,
  51. perl-file-listing, perl-html-parser, perl-html-tagset, perl-http-cookies,
  52. perl-http-daemon, perl-http-date, perl-http-message, perl-http-negotiate,
  53. perl-io-html, perl-libwww, perl-libxml, perl-lwp-mediatypes, perl-net-http,
  54. perl-uri, perl-www-robotrules, perl-xml-dom, perl-xml-regexp, perl-xml-simple,
  55. phonon, powertop, pulseaudio, python2-dogtail, python2-empy, qemu-headless,
  56. qt, qt, raptor2, scons, sdl, sdl-gfx, sdl-image, sdl-mixer, sdl-net, sdl-ttf,
  57. sdl2, serveez, shared-mime-info, sharutils, skribilo, slim, soprano, swig,
  58. xcb-util, xcb-util-image, xcb-util-keysyms, xcb-util-renderutil, xcb-util-wm
  59. *** 47 package updates
  60. atk 2.10.0, bison 3.0.2, cmake 2.8.12, dmd 0.1, freeipmi 1.3.3, gcc 4.8.2,
  61. gcc 4.8.2, gcc-cross-mips64el-linux-gnuabi64 4.8.2, gcc-stripped-tarball 4.8.2,
  62. gdb 7.6.2, gettext 0.18.3.1, glib 2.38.0, global 6.2.9, gmp 5.1.3,
  63. gnupg 2.0.22, gobject-introspection 1.38.0, grep 2.15, gsl 1.16,
  64. gtk+ 2.24.21, gtk+ 3.10.1, guile 2.0.9, guile 2.0.9, guile-xcb 1.2,
  65. harfbuzz 0.9.22, hello 2.9, iproute2 3.12.0, libdrm 2.4.46,
  66. libextractor 1.2, libjpeg 9, libmicrohttpd 0.9.32, lightning 2.0.2,
  67. linux-libre 3.12, lzip 1.15, make 4.0, mit-krb5 1.11.3, pari-gp 2.5.5,
  68. pixman 0.32.4, python 3.3.2, qemu 1.6.1,
  69. qemu-with-multiple-smb-shares 1.6.1, rcs 5.9.2, recutils 1.6, rsync 3.1.0,
  70. tar 1.27.1, texinfo 5.2, units 2.02, xorriso 1.3.2
  71. *** Packages are now built with GCC 4.8.2 by default (was 4.7.3)
  72. ** Native language support
  73. *** New ‘sr’ (Serbian) translation
  74. *** New ‘vi’ (Vietnamese) translation
  75. *** Updated ‘pt_BR’ (Brazilian Portuguese) translation
  76. ** Bugs fixed
  77. *** ‘guix pull’ compiles Guix deterministically and correctly
  78. Previously, the build environment was not cleared in between ‘compile-file’
  79. calls, leading to build errors due to Guile bug http://bugs.gnu.org/15602 .
  80. *** ‘guix package’ allows removal of a specific package output
  81. (http://bugs.gnu.org/15756)
  82. *** ‘guix-daemon’ always sets umask to 022
  83. (http://lists.gnu.org/archive/html/bug-guix/2013-07/msg00033.html)
  84. *** Files referenced by environment variables are protected from GC
  85. *** Yet unbuilt packages get correctly installed (http://bugs.gnu.org/15283)
  86. *** ‘bootstrap-graph.{png,eps,pdf}’ built in srcdir (http://bugs.gnu.org/15640)
  87. * Changes in 0.4 (since 0.3)
  88. ** Package management
  89. *** New ‘--list-generations’ and ‘--delete-generations’ options
  90. The ‘guix package’ command has these two new options, which make it easier to
  91. deal with a profile’s generation. See “Invoking guix package” in the manual.
  92. *** New ‘guix-register’ program
  93. This program allows the meta-data of a new store to be initialized, by
  94. copying info from an existing store. It is mostly an internal tool.
  95. ** Programming interfaces
  96. *** New API to bootstrap Autotools-based packages
  97. The (guix build-system gnu) has a new ‘dist-package’ procedure that takes a
  98. package object and source directory, and returns a new package object that
  99. runs ‘./bootstrap && make dist’ or anything similar.
  100. *** ‘derivation’ and related procedures have a #:references-graphs parameter
  101. This parameter instructs the build daemon to populate the derivation’s build
  102. tree with files containing the list of references of the given store files.
  103. This is useful to write code that copies a packages and all its dependencies
  104. to another storage device, such as a QEMU disk image.
  105. *** Extended API to build a GNU system virtual machine image
  106. The (gnu system vm) module has been augmented in many ways: the ‘qemu-image’
  107. procedure can now populate and initialize the image’s store; the new
  108. ‘system-qemu-image’ procedure returns a QEMU image that runs dmd as its init
  109. system, has ‘login’ running on several consoles, has a set of installed
  110. packages, and where Guix can be used.
  111. New (gnu system …) modules have been added to handle the configuration of the
  112. various parts of a GNU/Linux system. For instance, (gnu system dmd) provides
  113. support for instantiating dmd services; (gnu system linux) helps with Linux
  114. PAM configuration; and so on.
  115. *** <derivation> objects supersede .drv file names in the API
  116. ‘derivation’ and similar procedures no longer return two values (a
  117. <derivation> and a .drv file name); they now return a single value, which is
  118. a <derivation> object. The <derivation> object embeds the corresponding .drv
  119. file name. See “Derivations” in the manual for details.
  120. ** GNU distribution
  121. *** 60 new packages
  122. apr, apr-util, cdparanoia, dbus-glib, dfc, dmd, dvdisaster, exiv2, fetchmail,
  123. freefont-ttf, freeglut, geeqie, git, gkrellm, glu, gnome-doc-utils,
  124. gst-plugins-base, gstreamer, guile-cairo, guile-lib, guile-xcb, guix, htop,
  125. itstool, lame, libextractor, libmicrohttpd, lightning, lzip, mingetty, mutt,
  126. net-base, net-tools, ocrad, pspp, python-babel, python-dateutil, python-pytz,
  127. python-setuptools, python-simplejson, python-wrapper, python2-babel,
  128. python2-dateutil, python2-mechanize, python2-pyicu, python2-pysqlite,
  129. python2-pytz, python2-setuptools, python2-simplejson, qemu-system-initrd,
  130. qemu-with-multiple-smb-shares, ripperx, shadow, ttf-bitstream-vera, units,
  131. valgrind, xmlto, xnee, yasm
  132. *** 27 package updates
  133. bigloo 4.0b, cairo 1.12.16, ddrescue 1.17, fontconfig 2.10.93, fplll 4.0.4,
  134. gcc 4.7.3, gcc 4.7.3, glibc 2.18, glibc 2.18, glibc-stripped-tarball 2.18,
  135. gnupg 2.0.21, gnutls 3.2.4, guile 2.0.9, guile 2.0.9, harfbuzz 0.9.21,
  136. imagemagick 6.8.6-9, libdrm 2.4.46, libgcrypt 1.5.3, libjpeg 9, libksba 1.3.0,
  137. linux-libre 3.11, m4 1.4.17, mpfrcx 0.4.2, pari-gp 2.5.4, python 2.7.5, python
  138. 3.3.2, texlive 2013
  139. *** Fontconfig font search path made more convenient
  140. Fontconfig, the library used by many graphical applications, such as those
  141. based on GTK+, now knows where to find the default set of fonts. Additional
  142. fonts installed in the user profile are automatically picked up.
  143. *** More GUI applications
  144. The ‘emacs’ and ‘racket’ packages are now linked against GTK+. New GTK+
  145. applications have been added (see above.)
  146. *** Packaging guidelines
  147. The documentation of packaging guidelines has been augmented. See the manual
  148. under “GNU Distribution”.
  149. *** Support for Python 3 along with Python 2
  150. Python 3 has been added to the distribution, and Python packages that support
  151. it are now built for both Python 2 and Python 3. See the “Python Modules”
  152. section of the manual for details.
  153. ** Internationalization
  154. Updated translations: eo.
  155. ** Bugs fixed
  156. *** Workarounds for Guile 2.0.5 now work on Debian derivatives
  157. *** The dependency graph image has correct size in PDF output
  158. *** 'ldd' now works correctly on x86_64
  159. *** Xorg server test suite no longer fails (http://bugs.gnu.org/15392)
  160. *** module-init-tools now builds (http://bugs.gnu.org/15182, http://bugs.gnu.org/15187)
  161. *** Hop 2.4 builds with newer Bigloo (http://bugs.gnu.org/15194)
  162. * Changes in 0.3 (since 0.2)
  163. ** Package management
  164. *** Cross-compilation support
  165. Guix can now cross-build packages. On the command-line, this is achieved with
  166. the new ‘--target’ command-line option of ‘guix build’. At the Scheme level,
  167. the guts of this is the ‘package-cross-derivation’ procedure. Core packages
  168. of the distribution can already be cross-compiled. See the manual for
  169. details.
  170. *** New ‘--max-silent-time’ option for “guix build” and “guix package”
  171. See the manual for details.
  172. *** New ‘--fallback’ option for “guix build” and “guix package”
  173. This option instructs to fall back to local builds when the substituter fails
  174. to download a substitute.
  175. *** New ‘--requisites’ option for “guix gc”
  176. See the manual for details.
  177. *** New ‘--key-download’ option for “guix refresh”
  178. See the manual for details.
  179. ** Programming interfaces
  180. *** New ‘package-cross-derivation’ procedure in (guix derivations)
  181. See the manual for details.
  182. *** New ‘%current-target-system’ SRFI-39 parameter
  183. This parameter is like ‘%current-system’, but for cross-compilation. It
  184. allows code in package definitions (such as in the ‘arguments’ field) to know
  185. whether it is being cross-compiled, and what the target system is.
  186. *** New (guix hash) module; new ‘open-sha256-port’ and ‘sha256-port’ procedures
  187. This improves performance of SHA256 computations.
  188. ** GNU distribution
  189. *** 33 new packages
  190. alsa-lib, babel, cairo, cvs, gcal, gcc-cross-mips64el-linux-gnuabi64, gd,
  191. gdk-pixbuf, graphviz, grue-hunter, gtk+, gts, harfbuzz, imagemagick, iproute2,
  192. iptables, libspectre, mpg321, noweb, pango, plotutils, privoxy, pytz, racket,
  193. rubber, rush, strace, tk, torsocks, unrtf, vc-dwim, wordnet, xlockmore
  194. *** 25 package updates
  195. automake 1.14, ed 1.9, freeipmi 1.2.8, gawk 4.1.0, gcc 4.8.1, gettext 0.18.3,
  196. glib 2.37.1, gmp 5.1.2, gnutls 3.2.1, gzip 1.6, help2man 1.43.3, libapr 1.4.8,
  197. libaprutil 1.5.2, libassuan 2.1.1, libffi 3.0.13, libgc 7.2d, libgpg-error
  198. 1.12, libidn 1.28, libpng 1.5.17, lout 3.40, lsh 2.1, nettle 2.7.1, qemu
  199. 1.5.1, tzdata 2013d, xorriso 1.3.0
  200. *** Binary packages now available for i686-linux
  201. The build farm at http://hydra.gnu.org now provides 32-bit GNU/Linux binaries
  202. (i686-linux), in addition to the x86_64-linux binaries. Both can be
  203. transparently used as substitutes for local builds on these platforms.
  204. *** Debug info packages
  205. Some packages now have a “debug” output containing debugging information. The
  206. “debug” output can be used by GDB, and can be installed separately from the
  207. other outputs of the package. See “Installing Debugging Files” in the manual.
  208. *** Bootstrap binaries can be cross-compiled
  209. The distribution can now be ported to new architectures (currently
  210. GNU/Linux-only) by cross-compiling the “bootstrap binaries”. See “Porting”
  211. in the manual.
  212. *** Bootstrapping documented
  213. See “Bootstrapping” in the manual, for information on how the GNU
  214. distribution builds “from scratch”.
  215. ** Internationalization
  216. New translations: eo, pt_BR.
  217. ** Bugs fixed
  218. *** “guix --help” now works when using Guile 2.0.5
  219. *** Binary substituter multi-threading and pipe issues fixed
  220. These could lead to random substituter crashes while substituting a binary.
  221. See commits 0332386 and 101d9f3 for details.
  222. *** Binary substituter gracefully handles lack of network connectivity
  223. *** Daemon properly handles rebuilds of multiple-output derivations
  224. Previously it would fail when rebuilding a multiple-output derivation when
  225. some (but not all) of its outputs were already present. See
  226. http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00038.html and
  227. https://github.com/NixOS/nix/issues/122 .
  228. *** ‘guix package -i foo:out’ no longer removes other outputs of ‘foo’
  229. Previously only the ‘out’ output of package ‘foo’ would be kept in the
  230. profile.
  231. *** Replacement (srfi srfi-37) provided if the user’s one is broken
  232. When the user’s (srfi srfi-37) is affected by http://bugs.gnu.org/13176 (Guile
  233. < 2.0.9), a replacement with the bug fix is provided. This bug would affect
  234. command-line argument processing in some cases.
  235. * Changes in 0.2 (since 0.1)
  236. ** Package management
  237. *** Guix commands are now sub-commands of the “guix” program
  238. Instead of typing “guix-package”, one now has to type “guix package”, and so
  239. on. This has allowed us to homogenize the user interface and initial program
  240. setup, and to allow commands to be upgradable through “guix pull”.
  241. *** New “guix package --upgrade” option
  242. As the name implies, this option atomically upgrades all the packages
  243. installed in a profile or the set of packages matching a given regexp.
  244. See “Invoking guix package” in the manual.
  245. *** New “guix package --search” option
  246. Performs a full text search in package synopses and descriptions, and returns
  247. the matching packages in recutils format. See “Invoking guix package” in the
  248. manual, for details.
  249. *** New “guix pull” command
  250. The command pulls the latest version of Guix–both the package management
  251. modules and the distribution. See the manual for details.
  252. *** New binary substituter
  253. The “substituter” mechanism allows pre-built binaries to be transparently
  254. downloaded instead of performing a build locally. Currently binaries are
  255. available for x86_64 Linux-based GNU systems from http://hydra.gnu.org. The
  256. distribution is continuously built and binaries are made available from there.
  257. See http://hydra.gnu.org/jobset/gnu/master under “Job status” for the list of
  258. available binary packages.
  259. *** New “guix refresh” command
  260. The command is used by Guix maintainers. It automatically updates the
  261. distribution to the latest upstream releases of GNU software.
  262. *** New “guix hash” command
  263. Convenience command to compute the hash of a file. See the manual for
  264. details.
  265. *** Nix daemon code updated
  266. The daemon code from Nix, used by the ‘guix-daemon’ command, has been updated
  267. to current Nix ‘master’.
  268. ** Programming interfaces
  269. *** (guix download) now supports HTTPS, using GnuTLS
  270. It allows package source tarballs to be retrieved over HTTPS.
  271. *** New ‘native-search-path’ and ‘search-path’ package fields
  272. Packages can define in their ‘native-search-path’ field environment variables
  273. that define search paths and need to be set for proper functioning of the
  274. package. For instance, GCC has ‘CPATH’ and ‘LIBRARY_PATH’ in its
  275. ‘native-search-path’, Perl has ‘PERL5LIB’, Python has ‘PYTHONPATH’, etc.
  276. These environment variables are automatically set when building a package that
  277. uses one of these.
  278. *** Package inputs can be a function of the target system type
  279. The ‘inputs’ field of a package can now be conditional on the value of
  280. (%current-system). This is useful for packages that take system-dependent
  281. tarballs as inputs, such as GNU/MIT Scheme.
  282. *** New build systems
  283. The ‘perl-build-system’, ‘python-build-system’, and ‘cmake-build-system’ have
  284. been added. They implement the standard build systems for Perl, Python, and
  285. CMake packages.
  286. *** Tools to build Linux initrds, QEMU images, and more
  287. The (gnu packages linux-initrd) module provides a procedure to build a Linux
  288. initrd (“initial RAM disk”). The initrd embeds Guile, which is used to
  289. evaluate the given expression. The example below returns an initrd that
  290. mounts the /proc file system and starts a REPL:
  291. (expression->initrd
  292. '(begin
  293. (mkdir "/proc")
  294. (mount "none" "/proc" "proc")
  295. ((@ (system repl repl) start-repl))))
  296. More examples in the linux-initrd.scm file.
  297. Experimental interfaces to produce and use QEMU images are provided by the
  298. (gnu system vm) module. For instance, the
  299. ‘expression->derivation-in-linux-vm’ evaluates the given Scheme expression in
  300. a QEMU virtual machine running the Linux kernel and Guile.
  301. ** GNU distribution
  302. Many updates and additions have been made to the distribution. Here are the
  303. highlights.
  304. *** Major updates
  305. GCC 4.7.3 (the default) and GCC 4.8.0, Binutils 2.23.2, Guile 2.0.9,
  306. Coreutils 8.20, GDB 7.6, Texinfo 5.1.
  307. *** Noteworthy new packages
  308. TeXLive, Xorg, GNU GRUB, GNU Parted, QEMU and QEMU-KVM, Avahi, Bigloo,
  309. CHICKEN, Scheme48, Hugs, Python, Lua, Samba.