2006-10-06 17:37:31 +04:00
|
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
|
<article xmlns="http://docbook.org/ns/docbook"
|
|
|
|
|
xmlns:xlink="http://www.w3.org/1999/xlink">
|
2018-05-02 02:54:21 +03:00
|
|
|
|
<title>Nixpkgs Release Notes</title>
|
|
|
|
|
<section>
|
|
|
|
|
<title>Release 0.14 (June 4, 2012)</title>
|
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
In preparation for the switch from Subversion to Git, this release is mainly
|
|
|
|
|
the prevent the Nixpkgs version number from going backwards. (This would
|
|
|
|
|
happen because prerelease version numbers produced for the Git repository
|
|
|
|
|
are lower than those for the Subversion repository.)
|
|
|
|
|
</para>
|
2006-01-30 20:34:34 +03:00
|
|
|
|
|
2018-05-02 02:54:21 +03:00
|
|
|
|
<para>
|
|
|
|
|
Since the last release, there have been thousands of changes and new
|
|
|
|
|
packages by numerous contributors. For details, see the commit logs.
|
|
|
|
|
</para>
|
|
|
|
|
</section>
|
|
|
|
|
<section>
|
|
|
|
|
<title>Release 0.13 (February 5, 2010)</title>
|
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
As always, there are many changes. Some of the most important updates are:
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Glibc 2.9.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
GCC 4.3.3.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Linux 2.6.32.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
X.org 7.5.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
KDE 4.3.4.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
</para>
|
|
|
|
|
</section>
|
|
|
|
|
<section>
|
|
|
|
|
<title>Release 0.12 (April 24, 2009)</title>
|
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
There are way too many additions to Nixpkgs since the last release to list
|
|
|
|
|
here: for example, the number of packages on Linux has increased from 1002
|
|
|
|
|
to 2159. However, some specific improvements are worth listing:
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Nixpkgs now has a manual. In particular, it describes the standard build
|
|
|
|
|
environment in detail.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Major new packages:
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
KDE 4.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
TeXLive.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
VirtualBox.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
… and many others.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Important updates:
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Glibc 2.7.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
GCC 4.2.4.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Linux 2.6.25 — 2.6.28.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Firefox 3.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
X.org 7.3.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Support for building derivations in a virtual machine, including RPM and
|
|
|
|
|
Debian builds in automatically generated VM images. See
|
|
|
|
|
<filename>pkgs/build-support/vm/default.nix</filename> for details.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Improved support for building Haskell packages.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
</para>
|
2006-10-27 13:42:01 +04:00
|
|
|
|
|
2018-05-02 02:54:21 +03:00
|
|
|
|
<para>
|
|
|
|
|
The following people contributed to this release: Andres Löh, Arie
|
|
|
|
|
Middelkoop, Armijn Hemel, Eelco Dolstra, Lluís Batlle, Ludovic Courtès,
|
|
|
|
|
Marc Weber, Mart Kolthof, Martin Bravenboer, Michael Raskin, Nicolas
|
|
|
|
|
Pierron, Peter Simons, Pjotr Prins, Rob Vermaas, Sander van der Burg, Tobias
|
|
|
|
|
Hammerschmidt, Valentin David, Wouter den Breejen and Yury G. Kudryashov. In
|
|
|
|
|
addition, several people contributed patches on the
|
|
|
|
|
<literal>nix-dev</literal> mailing list.
|
|
|
|
|
</para>
|
|
|
|
|
</section>
|
|
|
|
|
<section>
|
|
|
|
|
<title>Release 0.11 (September 11, 2007)</title>
|
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
This release has the following improvements:
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
The standard build environment (<literal>stdenv</literal>) is now pure on
|
|
|
|
|
the <literal>x86_64-linux</literal> and <literal>powerpc-linux</literal>
|
|
|
|
|
platforms, just as on <literal>i686-linux</literal>. (Purity means that
|
|
|
|
|
building and using the standard environment has no dependencies outside
|
|
|
|
|
of the Nix store. For instance, it doesn’t require an external C
|
|
|
|
|
compiler such as <filename>/usr/bin/gcc</filename>.) Also, the statically
|
|
|
|
|
linked binaries used in the bootstrap process are now automatically
|
|
|
|
|
reproducible, making it easy to update the bootstrap tools and to add
|
|
|
|
|
support for other Linux platforms. See
|
|
|
|
|
<filename>pkgs/stdenv/linux/make-bootstrap-tools.nix</filename> for
|
|
|
|
|
details.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Hook variables in the generic builder are now executed using the
|
|
|
|
|
<function>eval</function> shell command. This has a major advantage: you
|
|
|
|
|
can write hooks directly in Nix expressions. For instance, rather than
|
|
|
|
|
writing a builder like this:
|
2006-10-27 13:42:01 +04:00
|
|
|
|
<programlisting>
|
|
|
|
|
source $stdenv/setup
|
|
|
|
|
|
|
|
|
|
postInstall=postInstall
|
|
|
|
|
postInstall() {
|
|
|
|
|
ln -sf gzip $out/bin/gunzip
|
|
|
|
|
ln -sf gzip $out/bin/zcat
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
genericBuild</programlisting>
|
2018-05-02 02:54:21 +03:00
|
|
|
|
(the <literal>gzip</literal> builder), you can just add this attribute to
|
|
|
|
|
the derivation:
|
2006-10-27 13:42:01 +04:00
|
|
|
|
<programlisting>
|
|
|
|
|
postInstall = "ln -sf gzip $out/bin/gunzip; ln -sf gzip $out/bin/zcat";</programlisting>
|
2018-05-02 02:54:21 +03:00
|
|
|
|
and so a separate build script becomes unnecessary. This should allow us
|
|
|
|
|
to get rid of most builders in Nixpkgs.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
It is now possible to have the generic builder pass arguments to
|
|
|
|
|
<command>configure</command> and <command>make</command> that contain
|
|
|
|
|
whitespace. Previously, for example, you could say in a builder,
|
2006-10-27 13:42:01 +04:00
|
|
|
|
<programlisting>
|
|
|
|
|
configureFlags="CFLAGS=-O0"</programlisting>
|
2018-05-02 02:54:21 +03:00
|
|
|
|
but not
|
2006-10-27 13:42:01 +04:00
|
|
|
|
<programlisting>
|
|
|
|
|
configureFlags="CFLAGS=-O0 -g"</programlisting>
|
2018-05-02 02:54:21 +03:00
|
|
|
|
since the <literal>-g</literal> would be interpreted as a separate
|
|
|
|
|
argument to <command>configure</command>. Now you can say
|
2006-10-27 13:42:01 +04:00
|
|
|
|
<programlisting>
|
|
|
|
|
configureFlagsArray=("CFLAGS=-O0 -g")</programlisting>
|
2018-05-02 02:54:21 +03:00
|
|
|
|
or similarly
|
2006-10-27 13:42:01 +04:00
|
|
|
|
<programlisting>
|
|
|
|
|
configureFlagsArray=("CFLAGS=-O0 -g" "LDFLAGS=-L/foo -L/bar")</programlisting>
|
2018-05-02 02:54:21 +03:00
|
|
|
|
which does the right thing. Idem for <literal>makeFlags</literal>,
|
|
|
|
|
<literal>installFlags</literal>, <literal>checkFlags</literal> and
|
|
|
|
|
<literal>distFlags</literal>.
|
|
|
|
|
</para>
|
|
|
|
|
<para>
|
|
|
|
|
Unfortunately you can't pass arrays to Bash through the environment, so
|
|
|
|
|
you can't put the array above in a Nix expression, e.g.,
|
2006-10-27 13:42:01 +04:00
|
|
|
|
<programlisting>
|
|
|
|
|
configureFlagsArray = ["CFLAGS=-O0 -g"];</programlisting>
|
2018-05-02 02:54:21 +03:00
|
|
|
|
since it would just be flattened to a since string. However, you
|
|
|
|
|
<emphasis>can</emphasis> use the inline hooks described above:
|
2006-10-27 13:42:01 +04:00
|
|
|
|
<programlisting>
|
|
|
|
|
preConfigure = "configureFlagsArray=(\"CFLAGS=-O0 -g\")";</programlisting>
|
2018-05-02 02:54:21 +03:00
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
The function <function>fetchurl</function> now has support for two
|
|
|
|
|
different kinds of mirroring of files. First, it has support for
|
|
|
|
|
<emphasis>content-addressable mirrors</emphasis>. For example, given the
|
|
|
|
|
<function>fetchurl</function> call
|
2007-09-12 00:05:54 +04:00
|
|
|
|
<programlisting>
|
|
|
|
|
fetchurl {
|
|
|
|
|
url = http://releases.mozilla.org/<replaceable>...</replaceable>/firefox-2.0.0.6-source.tar.bz2;
|
|
|
|
|
sha1 = "eb72f55e4a8bf08e8c6ef227c0ade3d068ba1082";
|
|
|
|
|
}</programlisting>
|
2018-05-02 02:54:21 +03:00
|
|
|
|
<function>fetchurl</function> will first try to download this file from
|
|
|
|
|
<link
|
2013-06-25 16:05:48 +04:00
|
|
|
|
xlink:href="http://tarballs.nixos.org/sha1/eb72f55e4a8bf08e8c6ef227c0ade3d068ba1082"/>.
|
2018-05-02 02:54:21 +03:00
|
|
|
|
If that file doesn’t exist, it will try the original URL. In general,
|
|
|
|
|
the “content-addressed” location is
|
|
|
|
|
<replaceable>mirror</replaceable><literal>/</literal><replaceable>hash-type</replaceable><literal>/</literal><replaceable>hash</replaceable>.
|
|
|
|
|
There is currently only one content-addressable mirror
|
|
|
|
|
(<link
|
2013-06-25 16:05:48 +04:00
|
|
|
|
xlink:href="http://tarballs.nixos.org"/>), but more can be
|
2018-05-02 02:54:21 +03:00
|
|
|
|
specified in the <varname>hashedMirrors</varname> attribute in
|
|
|
|
|
<filename>pkgs/build-support/fetchurl/mirrors.nix</filename>, or by
|
|
|
|
|
setting the <envar>NIX_HASHED_MIRRORS</envar> environment variable to a
|
|
|
|
|
whitespace-separated list of URLs.
|
|
|
|
|
</para>
|
|
|
|
|
<para>
|
|
|
|
|
Second, <function>fetchurl</function> has support for widely-mirrored
|
|
|
|
|
distribution sites such as SourceForge or the Linux kernel archives.
|
|
|
|
|
Given a URL of the form
|
|
|
|
|
<literal>mirror://<replaceable>site</replaceable>/<replaceable>path</replaceable></literal>,
|
|
|
|
|
it will try to download <replaceable>path</replaceable> from a
|
|
|
|
|
configurable list of mirrors for <replaceable>site</replaceable>. (This
|
|
|
|
|
idea was borrowed from Gentoo Linux.) Example:
|
2007-09-12 00:05:54 +04:00
|
|
|
|
<programlisting>
|
|
|
|
|
fetchurl {
|
|
|
|
|
url = mirror://gnu/gcc/gcc-4.2.0/gcc-core-4.2.0.tar.bz2;
|
|
|
|
|
sha256 = "0ykhzxhr8857dr97z0j9wyybfz1kjr71xk457cfapfw5fjas4ny1";
|
|
|
|
|
}</programlisting>
|
2018-05-02 02:54:21 +03:00
|
|
|
|
Currently <replaceable>site</replaceable> can be
|
|
|
|
|
<literal>sourceforge</literal>, <literal>gnu</literal> and
|
|
|
|
|
<literal>kernel</literal>. The list of mirrors is defined in
|
|
|
|
|
<filename>pkgs/build-support/fetchurl/mirrors.nix</filename>. You can
|
|
|
|
|
override the list of mirrors for a particular site by setting the
|
|
|
|
|
environment variable
|
|
|
|
|
<envar>NIX_MIRRORS_<replaceable>site</replaceable></envar>, e.g.
|
2007-09-12 00:05:54 +04:00
|
|
|
|
<programlisting>
|
|
|
|
|
export NIX_MIRRORS_sourceforge=http://osdn.dl.sourceforge.net/sourceforge/</programlisting>
|
2018-05-02 02:54:21 +03:00
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Important updates:
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Glibc 2.5.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
GCC 4.1.2.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Gnome 2.16.3.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
X11R7.2.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Linux 2.6.21.7 and 2.6.22.6.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Emacs 22.1.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Major new packages:
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
KDE 3.5.6 Base.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Wine 0.9.43.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
OpenOffice 2.2.1.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Many Linux system packages to support NixOS.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
</itemizedlist>
|
2007-09-12 00:05:54 +04:00
|
|
|
|
</para>
|
|
|
|
|
|
2018-05-02 02:54:21 +03:00
|
|
|
|
<para>
|
|
|
|
|
The following people contributed to this release: Andres Löh, Arie
|
|
|
|
|
Middelkoop, Armijn Hemel, Eelco Dolstra, Marc Weber, Mart Kolthof, Martin
|
|
|
|
|
Bravenboer, Michael Raskin, Wouter den Breejen and Yury G. Kudryashov.
|
|
|
|
|
</para>
|
|
|
|
|
</section>
|
|
|
|
|
<section>
|
|
|
|
|
<title>Release 0.10 (October 12, 2006)</title>
|
|
|
|
|
|
|
|
|
|
<note>
|
|
|
|
|
<para>
|
|
|
|
|
This release of Nixpkgs requires
|
|
|
|
|
<link
|
|
|
|
|
xlink:href='http://nixos.org/releases/nix/nix-0.10/'>Nix 0.10</link>
|
|
|
|
|
or higher.
|
|
|
|
|
</para>
|
|
|
|
|
</note>
|
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
This release has the following improvements:
|
|
|
|
|
</para>
|
2006-10-11 18:04:02 +04:00
|
|
|
|
|
2018-05-02 02:54:21 +03:00
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
<filename>pkgs/system/all-packages-generic.nix</filename> is gone, we now
|
|
|
|
|
just have <filename>pkgs/top-level/all-packages.nix</filename> that
|
|
|
|
|
contains all available packages. This should cause much less confusion
|
|
|
|
|
with users. <filename>all-packages.nix</filename> is a function that by
|
|
|
|
|
default returns packages for the current platform, but you can override
|
|
|
|
|
this by specifying a different <varname>system</varname> argument.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Certain packages in Nixpkgs are now user-configurable through a
|
|
|
|
|
configuration file, i.e., without having to edit the Nix expressions in
|
|
|
|
|
Nixpkgs. For instance, the Firefox provided in the Nixpkgs channel is
|
|
|
|
|
built without the RealPlayer plugin (for legal reasons). Previously, you
|
|
|
|
|
could easily enable RealPlayer support by editing the call to the Firefox
|
|
|
|
|
function in <filename>all-packages.nix</filename>, but such changes are
|
|
|
|
|
not respected when Firefox is subsequently updated through the Nixpkgs
|
|
|
|
|
channel.
|
|
|
|
|
</para>
|
|
|
|
|
<para>
|
|
|
|
|
The Nixpkgs configuration file (found in
|
|
|
|
|
<filename>~/.nixpkgs/config.nix</filename> or through the
|
|
|
|
|
<envar>NIXPKGS_CONFIG</envar> environment variable) is an attribute set
|
|
|
|
|
that contains configuration options that
|
|
|
|
|
<filename>all-packages.nix</filename> reads and uses for certain packages.
|
|
|
|
|
For instance, the following configuration file:
|
2006-10-11 18:04:02 +04:00
|
|
|
|
<programlisting>
|
|
|
|
|
{
|
|
|
|
|
firefox = {
|
|
|
|
|
enableRealPlayer = true;
|
|
|
|
|
};
|
|
|
|
|
}</programlisting>
|
2018-05-02 02:54:21 +03:00
|
|
|
|
persistently enables RealPlayer support in the Firefox build.
|
2006-10-11 16:29:35 +04:00
|
|
|
|
</para>
|
2018-05-02 02:54:21 +03:00
|
|
|
|
<para>
|
|
|
|
|
(Actually, <literal>firefox.enableRealPlayer</literal> is the
|
|
|
|
|
<emphasis>only</emphasis> configuration option currently available, but
|
|
|
|
|
more are sure to be added.)
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Support for new platforms:
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
<literal>i686-cygwin</literal>, i.e., Windows (using
|
|
|
|
|
<link xlink:href="http://www.cygwin.com/">Cygwin</link>). The standard
|
|
|
|
|
environment on <literal>i686-cygwin</literal> by default builds
|
|
|
|
|
binaries for the Cygwin environment (i.e., it uses Cygwin tools and
|
|
|
|
|
produces executables that use the Cygwin library). However, there is
|
|
|
|
|
also a standard environment that produces binaries that use
|
|
|
|
|
<link
|
|
|
|
|
xlink:href="http://www.mingw.org/">MinGW</link>. You can
|
|
|
|
|
use it by calling <filename>all-package.nix</filename> with the
|
|
|
|
|
<varname>stdenvType</varname> argument set to
|
|
|
|
|
<literal>"i686-mingw"</literal>.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
<literal>i686-darwin</literal>, i.e., Mac OS X on Intel CPUs.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
<literal>powerpc-linux</literal>.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
<literal>x86_64-linux</literal>, i.e., Linux on 64-bit AMD/Intel CPUs.
|
|
|
|
|
Unlike <literal>i686-linux</literal>, this platform doesn’t have a
|
|
|
|
|
pure <literal>stdenv</literal> yet.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
The default compiler is now GCC 4.1.1.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
X11 updated to X.org’s X11R7.1.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Notable new packages:
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Opera.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Microsoft Visual C++ 2005 Express Edition and the Windows SDK.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
In total there are now around 809 packages in Nixpkgs.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
It is now <emphasis>much</emphasis> easier to override the default C
|
|
|
|
|
compiler and other tools in <literal>stdenv</literal> for specific
|
|
|
|
|
packages. <filename>all-packages.nix</filename> provides two utility
|
|
|
|
|
functions for this purpose: <function>overrideGCC</function> and
|
|
|
|
|
<function>overrideInStdenv</function>. Both take a
|
|
|
|
|
<literal>stdenv</literal> and return an augmented
|
|
|
|
|
<literal>stdenv</literal>; the formed changes the C compiler, and the
|
|
|
|
|
latter adds additional packages to the front of
|
|
|
|
|
<literal>stdenv</literal>’s initial <envar>PATH</envar>, allowing tools
|
|
|
|
|
to be overridden.
|
|
|
|
|
</para>
|
|
|
|
|
<para>
|
|
|
|
|
For instance, the package <varname>strategoxt</varname> doesn’t build
|
|
|
|
|
with the GNU Make in <literal>stdenv</literal> (version 3.81), so we call
|
|
|
|
|
it with an augmented <literal>stdenv</literal> that uses GNU Make 3.80:
|
2006-10-11 16:29:35 +04:00
|
|
|
|
<programlisting>
|
|
|
|
|
strategoxt = (import ../development/compilers/strategoxt) {
|
|
|
|
|
inherit fetchurl pkgconfig sdf aterm;
|
|
|
|
|
stdenv = overrideInStdenv stdenv [gnumake380];
|
2006-10-12 15:22:47 +04:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
gnumake380 = <replaceable>...</replaceable>;</programlisting>
|
2018-05-02 02:54:21 +03:00
|
|
|
|
Likewise, there are many packages that don’t compile with the default
|
|
|
|
|
GCC (4.1.1), but that’s easily fixed:
|
2006-10-11 16:29:35 +04:00
|
|
|
|
<programlisting>
|
|
|
|
|
exult = import ../games/exult {
|
|
|
|
|
inherit fetchurl SDL SDL_mixer zlib libpng unzip;
|
|
|
|
|
stdenv = overrideGCC stdenv gcc34;
|
|
|
|
|
};</programlisting>
|
2018-05-02 02:54:21 +03:00
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
It has also become much easier to experiment with changes to the
|
|
|
|
|
<literal>stdenv</literal> setup script (which notably contains the generic
|
|
|
|
|
builder). Since edits to <filename>pkgs/stdenv/generic/setup.sh</filename>
|
|
|
|
|
trigger a rebuild of <emphasis>everything</emphasis>, this was formerly
|
|
|
|
|
quite painful. But now <literal>stdenv</literal> contains a function to
|
|
|
|
|
“regenerate” <literal>stdenv</literal> with a different setup script,
|
|
|
|
|
allowing the use of a different setup script for specific packages:
|
2006-10-11 18:04:02 +04:00
|
|
|
|
<programlisting>
|
|
|
|
|
pkg = import <replaceable>...</replaceable> {
|
|
|
|
|
stdenv = stdenv.regenerate ./my-setup.sh;
|
|
|
|
|
<replaceable>...</replaceable>
|
|
|
|
|
}</programlisting>
|
2018-05-02 02:54:21 +03:00
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Packages can now have a human-readable <emphasis>description</emphasis>
|
|
|
|
|
field. Package descriptions are shown by <literal>nix-env -qa
|
|
|
|
|
--description</literal>. In addition, they’re shown on the Nixpkgs
|
|
|
|
|
release page. A description can be added to a package as follows:
|
2006-10-12 15:22:47 +04:00
|
|
|
|
<programlisting>
|
|
|
|
|
stdenv.mkDerivation {
|
|
|
|
|
name = "exult-1.2";
|
|
|
|
|
<replaceable>...</replaceable>
|
|
|
|
|
meta = {
|
|
|
|
|
description = "A reimplementation of the Ultima VII game engine";
|
|
|
|
|
};
|
|
|
|
|
}</programlisting>
|
2018-05-02 02:54:21 +03:00
|
|
|
|
The <varname>meta</varname> attribute is not passed to the builder, so
|
|
|
|
|
changes to the description do not trigger a rebuild. Additional
|
|
|
|
|
<varname>meta</varname> attributes may be defined in the future (such as
|
|
|
|
|
the URL of the package’s homepage, the license, etc.).
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
2006-01-30 20:34:34 +03:00
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
2018-05-02 02:54:21 +03:00
|
|
|
|
<para>
|
|
|
|
|
The following people contributed to this release: Andres Löh, Armijn Hemel,
|
|
|
|
|
Christof Douma, Eelco Dolstra, Eelco Visser, Mart Kolthof, Martin
|
|
|
|
|
Bravenboer, Merijn de Jonge, Rob Vermaas and Roy van den Broek.
|
|
|
|
|
</para>
|
|
|
|
|
</section>
|
|
|
|
|
<section>
|
|
|
|
|
<title>Release 0.9 (January 31, 2006)</title>
|
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
There have been zillions of changes since the last release of Nixpkgs. Many
|
|
|
|
|
packages have been added or updated. The following are some of the more
|
|
|
|
|
notable changes:
|
2006-01-30 20:34:34 +03:00
|
|
|
|
</para>
|
|
|
|
|
|
|
|
|
|
<itemizedlist>
|
2018-05-02 02:54:21 +03:00
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Distribution files have been moved to
|
|
|
|
|
<link
|
|
|
|
|
xlink:href="http://nixos.org/" />.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
The C library on Linux, Glibc, has been updated to version 2.3.6.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
The default compiler is now GCC 3.4.5. GCC 4.0.2 is also available.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
The old, unofficial Xlibs has been replaced by the official modularised
|
|
|
|
|
X11 distribution from X.org, i.e., X11R7.0. X11R7.0 consists of 287 (!)
|
|
|
|
|
packages, all of which are in Nixpkgs though not all have been tested. It
|
|
|
|
|
is now possible to build a working X server (previously we only had X
|
|
|
|
|
client libraries). We use a fully Nixified X server on NixOS.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
The Sun JDK 5 has been purified, i.e., it doesn’t require any non-Nix
|
|
|
|
|
components such as <filename>/lib/ld-linux.so.2</filename>. This means
|
|
|
|
|
that Java applications such as Eclipse and Azureus can run on NixOS.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Hardware-accelerated OpenGL support, used by games like Quake 3 (which is
|
|
|
|
|
now built from source).
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Improved support for FreeBSD on x86.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Improved Haskell support; e.g., the GHC build is now pure.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Some support for cross-compilation: cross-compiling builds of GCC and
|
|
|
|
|
Binutils, and cross-compiled builds of the C library uClibc.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Notable new packages:
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
teTeX, including support for building LaTeX documents using Nix (with
|
|
|
|
|
automatic dependency determination).
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Ruby.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
System-level packages to support NixOS, e.g. Grub, GNU
|
|
|
|
|
<literal>parted</literal> and so on.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
<literal>ecj</literal>, the Eclipse Compiler for Java, so we finally
|
|
|
|
|
have a freely distributable compiler that supports Java 5.0.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
<literal>php</literal>.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
The GIMP.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Inkscape.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
GAIM.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
<literal>kdelibs</literal>. This allows us to add KDE-based packages
|
|
|
|
|
(such as <literal>kcachegrind</literal>).
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
2006-01-30 20:34:34 +03:00
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
2018-05-02 02:54:21 +03:00
|
|
|
|
<para>
|
|
|
|
|
The following people contributed to this release: Andres Löh, Armijn Hemel,
|
|
|
|
|
Bogdan Dumitriu, Christof Douma, Eelco Dolstra, Eelco Visser, Mart Kolthof,
|
|
|
|
|
Martin Bravenboer, Rob Vermaas and Roy van den Broek.
|
2006-01-30 20:34:34 +03:00
|
|
|
|
</para>
|
2018-05-02 02:54:21 +03:00
|
|
|
|
</section>
|
|
|
|
|
<section>
|
|
|
|
|
<title>Release 0.8 (April 11, 2005)</title>
|
2006-01-30 20:34:34 +03:00
|
|
|
|
|
2018-05-02 02:54:21 +03:00
|
|
|
|
<para>
|
|
|
|
|
This release is mostly to remain synchronised with the changed hashing
|
|
|
|
|
scheme in Nix 0.8.
|
|
|
|
|
</para>
|
2006-01-30 20:34:34 +03:00
|
|
|
|
|
2018-05-02 02:54:21 +03:00
|
|
|
|
<para>
|
|
|
|
|
Notable updates:
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Adobe Reader 7.0
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Various security updates (zlib 1.2.2, etc.)
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
</para>
|
|
|
|
|
</section>
|
|
|
|
|
<section>
|
|
|
|
|
<title>Release 0.7 (March 14, 2005)</title>
|
2006-01-30 20:34:34 +03:00
|
|
|
|
|
2018-05-02 02:54:21 +03:00
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
The bootstrap process for the standard build environment on Linux
|
|
|
|
|
(stdenv-linux) has been improved. It is no longer dependent in its initial
|
|
|
|
|
bootstrap stages on the system Glibc, GCC, and other tools. Rather,
|
|
|
|
|
Nixpkgs contains a statically linked bash and curl, and uses that to
|
|
|
|
|
download other statically linked tools. These are then used to build a
|
|
|
|
|
Glibc and dynamically linked versions of all other tools.
|
|
|
|
|
</para>
|
|
|
|
|
<para>
|
|
|
|
|
This change also makes the bootstrap process faster. For instance, GCC is
|
|
|
|
|
built only once instead of three times.
|
|
|
|
|
</para>
|
|
|
|
|
<para>
|
|
|
|
|
(Contributed by Armijn Hemel.)
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Tarballs used by Nixpkgs are now obtained from the same server that hosts
|
|
|
|
|
Nixpkgs (<link
|
|
|
|
|
xlink:href="http://catamaran.labs.cs.uu.nl/" />). This
|
|
|
|
|
reduces the risk of packages being unbuildable due to moved or deleted
|
|
|
|
|
files on various servers.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
There now is a generic mechanism for building Perl modules. See the
|
|
|
|
|
various Perl modules defined in pkgs/system/all-packages-generic.nix.
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Notable new packages:
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Qt 3
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
MySQL
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
MythTV
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Mono
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
MonoDevelop (alpha)
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Xine
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Notable updates:
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
GCC 3.4.3
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
Glibc 2.3.4
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
GTK 2.6
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
</section>
|
2006-01-30 20:34:34 +03:00
|
|
|
|
</article>
|