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