mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-06-06 05:13:37 +00:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
129a56627f |
@@ -1 +0,0 @@
|
||||
import ./pkgs/top-level/all-packages.nix
|
||||
12
doc/Makefile
12
doc/Makefile
@@ -1,6 +1,3 @@
|
||||
# You may need to override this.
|
||||
docbookxsl = $(HOME)/.nix-profile/xml/xsl/docbook
|
||||
|
||||
XMLLINT = xmllint --catalogs
|
||||
XSLTPROC = xsltproc --catalogs \
|
||||
--param section.autolabel 1 \
|
||||
@@ -16,7 +13,7 @@ NEWS_OPTS = \
|
||||
--stringparam section.autolabel.max.depth 0 \
|
||||
--stringparam header.rule 0
|
||||
|
||||
all: NEWS.html NEWS.txt manual.html
|
||||
all: NEWS.html NEWS.txt
|
||||
|
||||
NEWS.html: release-notes.xml
|
||||
$(XSLTPROC) --nonet --xinclude --output $@ $(NEWS_OPTS) \
|
||||
@@ -28,10 +25,3 @@ NEWS.txt: release-notes.xml
|
||||
$(docbookxsl)/html/docbook.xsl -
|
||||
LANG=en_US w3m -dump $@.tmp.html > $@
|
||||
rm $@.tmp.html
|
||||
|
||||
manual.html: *.xml
|
||||
$(XSLTPROC) --nonet --xinclude --output manual.html \
|
||||
$(docbookxsl)/html/docbook.xsl manual.xml
|
||||
|
||||
manual.pdf: *.xml
|
||||
dblatex manual.xml
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
<chapter xmlns="http://docbook.org/ns/docbook"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xml:id="chap-introduction">
|
||||
|
||||
<title>Introduction</title>
|
||||
|
||||
<para>This manual tells you how to write packages for the Nix Packages
|
||||
collection (Nixpkgs). Thus it’s for packagers and developers who want
|
||||
to add packages to Nixpkgs. End users are kindly referred to the
|
||||
<link xlink:href="http://nixos.org/releases/nix/unstable/manual/">Nix
|
||||
manual</link>.</para>
|
||||
|
||||
<para>This manual does not describe the syntax and semantics of the
|
||||
Nix expression language, which are given in the Nix manual in the
|
||||
<link
|
||||
xlink:href="http://nixos.org/releases/nix/unstable/manual/#chap-writing-nix-expressions">chapter
|
||||
on writing Nix expressions</link>. It only describes the facilities
|
||||
provided by Nixpkgs to make writing packages easier, such as the
|
||||
standard build environment (<literal>stdenv</literal>).</para>
|
||||
|
||||
</chapter>
|
||||
@@ -1,185 +0,0 @@
|
||||
<chapter xmlns="http://docbook.org/ns/docbook"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xml:id="chap-meta">
|
||||
|
||||
<title>Support for specific programming languages</title>
|
||||
|
||||
<para>The <link linkend="chap-stdenv">standard build
|
||||
environment</link> makes it easy to build typical Autotools-based
|
||||
packages with very little code. Any other kind of package can be
|
||||
accomodated by overriding the appropriate phases of
|
||||
<literal>stdenv</literal>. However, there are specialised functions
|
||||
in Nixpkgs to easily build packages for other programming languages,
|
||||
such as Perl or Haskell. These are described in this chapter.</para>
|
||||
|
||||
|
||||
<section><title>Perl</title>
|
||||
|
||||
<para>Nixpkgs provides a function <varname>buildPerlPackage</varname>,
|
||||
a generic package builder function for any Perl package that has a
|
||||
standard <varname>Makefile.PL</varname>. It’s implemented in <link
|
||||
xlink:href="https://svn.nixos.org/repos/nix/nixpkgs/trunk/pkgs/development/perl-modules/generic"><filename>pkgs/development/perl-modules/generic</filename></link>.</para>
|
||||
|
||||
<para>Perl packages from CPAN are defined in <link
|
||||
xlink:href="https://svn.nixos.org/repos/nix/nixpkgs/trunk/pkgs/top-level/perl-packages.nix"><filename>pkgs/perl-packages.nix</filename></link>,
|
||||
rather than <filename>pkgs/all-packages.nix</filename>. Most Perl
|
||||
packages are so straight-forward to build that they are defined here
|
||||
directly, rather than having a separate function for each package
|
||||
called from <filename>perl-packages.nix</filename>. However, more
|
||||
complicated packages should be put in a separate file, typically in
|
||||
<filename>pkgs/development/perl-modules</filename>. Here is an
|
||||
example of the former:
|
||||
|
||||
<programlisting>
|
||||
ClassC3 = buildPerlPackage rec {
|
||||
name = "Class-C3-0.21";
|
||||
src = fetchurl {
|
||||
url = "mirror://cpan/authors/id/F/FL/FLORA/${name}.tar.gz";
|
||||
sha256 = "1bl8z095y4js66pwxnm7s853pi9czala4sqc743fdlnk27kq94gz";
|
||||
};
|
||||
};
|
||||
</programlisting>
|
||||
|
||||
Note the use of <literal>mirror://cpan/</literal>, and the
|
||||
<literal>${name}</literal> in the URL definition to ensure that the
|
||||
name attribute is consistent with the source that we’re actually
|
||||
downloading. Perl packages are made available in
|
||||
<filename>all-packages.nix</filename> through the variable
|
||||
<varname>perlPackages</varname>. For instance, if you have a package
|
||||
that needs <varname>ClassC3</varname>, you would typically write
|
||||
|
||||
<programlisting>
|
||||
foo = import ../path/to/foo.nix {
|
||||
inherit stdenv fetchurl ...;
|
||||
inherit (perlPackages) ClassC3;
|
||||
};
|
||||
</programlisting>
|
||||
|
||||
in <filename>all-packages.nix</filename>. You can test building a
|
||||
Perl package as follows:
|
||||
|
||||
<screen>
|
||||
$ nix-build -A perlPackages.ClassC3
|
||||
</screen>
|
||||
|
||||
<varname>buildPerlPackage</varname> adds <literal>perl-</literal> to
|
||||
the start of the name attribute, so the package above is actually
|
||||
called <literal>perl-Class-C3-0.21</literal>. So to install it, you
|
||||
can say:
|
||||
|
||||
<screen>
|
||||
$ nix-env -i perl-Class-C3
|
||||
</screen>
|
||||
|
||||
(Of course you can also install using the attribute name:
|
||||
<literal>nix-env -i -A perlPackages.ClassC3</literal>.)</para>
|
||||
|
||||
<para>So what does <varname>buildPerlPackage</varname> do? It does
|
||||
the following:
|
||||
|
||||
<orderedlist>
|
||||
|
||||
<listitem><para>In the configure phase, it calls <literal>perl
|
||||
Makefile.PL</literal> to generate a Makefile. You can set the
|
||||
variable <varname>makeMakerFlags</varname> to pass flags to
|
||||
<filename>Makefile.PL</filename></para></listitem>
|
||||
|
||||
<listitem><para>It adds the contents of the <envar>PERL5LIB</envar>
|
||||
environment variable to <literal>#! .../bin/perl</literal> line of
|
||||
Perl scripts as <literal>-I<replaceable>dir</replaceable></literal>
|
||||
flags. This ensures that a script can find its
|
||||
dependencies.</para></listitem>
|
||||
|
||||
<listitem><para>In the fixup phase, it writes the propagated build
|
||||
inputs (<varname>propagatedBuildInputs</varname>) to the file
|
||||
<filename>$out/nix-support/propagated-user-env-packages</filename>.
|
||||
<command>nix-env</command> recursively installs all packages listed
|
||||
in this file when you install a package that has it. This ensures
|
||||
that a Perl package can find its dependencies.</para></listitem>
|
||||
|
||||
</orderedlist>
|
||||
|
||||
</para>
|
||||
|
||||
<para><varname>buildPerlPackage</varname> is built on top of
|
||||
<varname>stdenv</varname>, so everything can be customised in the
|
||||
usual way. For instance, the <literal>BerkeleyDB</literal> module has
|
||||
a <varname>preConfigure</varname> hook to generate a configuration
|
||||
file used by <filename>Makefile.PL</filename>:
|
||||
|
||||
<programlisting>
|
||||
{buildPerlPackage, fetchurl, db4}:
|
||||
|
||||
buildPerlPackage rec {
|
||||
name = "BerkeleyDB-0.36";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://cpan/authors/id/P/PM/PMQS/${name}.tar.gz";
|
||||
sha256 = "07xf50riarb60l1h6m2dqmql8q5dij619712fsgw7ach04d8g3z1";
|
||||
};
|
||||
|
||||
preConfigure = ''
|
||||
echo "LIB = ${db4}/lib" > config.in
|
||||
echo "INCLUDE = ${db4}/include" >> config.in
|
||||
'';
|
||||
}
|
||||
</programlisting>
|
||||
|
||||
</para>
|
||||
|
||||
<para>Dependencies on other Perl packages can be specified in the
|
||||
<varname>buildInputs</varname> and
|
||||
<varname>propagatedBuildInputs</varname> attributes. If something is
|
||||
exclusively a build-time dependency, use
|
||||
<varname>buildInputs</varname>; if it’s (also) a runtime dependency,
|
||||
use <varname>propagatedBuildInputs</varname>. For instance, this
|
||||
builds a Perl module that has runtime dependencies on a bunch of other
|
||||
modules:
|
||||
|
||||
<programlisting>
|
||||
ClassC3Componentised = buildPerlPackage rec {
|
||||
name = "Class-C3-Componentised-1.0004";
|
||||
src = fetchurl {
|
||||
url = "mirror://cpan/authors/id/A/AS/ASH/${name}.tar.gz";
|
||||
sha256 = "0xql73jkcdbq4q9m0b0rnca6nrlvf5hyzy8is0crdk65bynvs8q1";
|
||||
};
|
||||
propagatedBuildInputs = [
|
||||
ClassC3 ClassInspector TestException MROCompat
|
||||
];
|
||||
};
|
||||
</programlisting>
|
||||
|
||||
</para>
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
<section><title>Python</title>
|
||||
|
||||
<para>TODO</para>
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
<section><title>Haskell</title>
|
||||
|
||||
<para>TODO</para>
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
<section><title>Java</title>
|
||||
|
||||
<para>TODO; Java support needs lots of improvement</para>
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
<section><title>TeX / LaTeX</title>
|
||||
|
||||
<para>* Special support for building TeX documents</para>
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
</chapter>
|
||||
@@ -1,39 +0,0 @@
|
||||
<book xmlns="http://docbook.org/ns/docbook"
|
||||
xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||
|
||||
<info>
|
||||
|
||||
<title>Nixpkgs Manual</title>
|
||||
|
||||
<subtitle>Draft (Version <xi:include href="../VERSION"
|
||||
parse="text" />)</subtitle>
|
||||
|
||||
<author>
|
||||
<personname>
|
||||
<firstname>Eelco</firstname>
|
||||
<surname>Dolstra</surname>
|
||||
</personname>
|
||||
<affiliation>
|
||||
<orgname>Delft University of Technology</orgname>
|
||||
<orgdiv>Department of Software Technology</orgdiv>
|
||||
</affiliation>
|
||||
</author>
|
||||
|
||||
<copyright>
|
||||
<year>2008</year>
|
||||
<holder>Eelco Dolstra</holder>
|
||||
</copyright>
|
||||
|
||||
<date>June 2008</date>
|
||||
|
||||
</info>
|
||||
|
||||
<xi:include href="introduction.xml" />
|
||||
<xi:include href="quick-start.xml" />
|
||||
<xi:include href="stdenv.xml" />
|
||||
<xi:include href="meta.xml" />
|
||||
<xi:include href="language-support.xml" />
|
||||
<xi:include href="package-notes.xml" />
|
||||
|
||||
|
||||
</book>
|
||||
208
doc/meta.xml
208
doc/meta.xml
@@ -1,208 +0,0 @@
|
||||
<chapter xmlns="http://docbook.org/ns/docbook"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xml:id="chap-meta">
|
||||
|
||||
<title>Meta-attributes</title>
|
||||
|
||||
<para>Nix packages can declare <emphasis>meta-attributes</emphasis>
|
||||
that contain information about a package such as a description, its
|
||||
homepage, its license, and so on. For instance, the GNU Hello package
|
||||
has a <varname>meta</varname> declaration like this:
|
||||
|
||||
<programlisting>
|
||||
meta = {
|
||||
description = "A program that produces a familiar, friendly greeting";
|
||||
longDescription = ''
|
||||
GNU Hello is a program that prints "Hello, world!" when you run it.
|
||||
It is fully customizable.
|
||||
'';
|
||||
homepage = http://www.gnu.org/software/hello/manual/;
|
||||
license = "GPLv3+";
|
||||
};
|
||||
</programlisting>
|
||||
|
||||
</para>
|
||||
|
||||
<para>Meta-attributes are not passed to the builder of the package.
|
||||
Thus, a change to a meta-attribute doesn’t trigger a recompilation of
|
||||
the package. The value of a meta-attribute must a string.</para>
|
||||
|
||||
<para>The meta-attributes of a package can be queried from the
|
||||
command-line using <command>nix-env</command>:
|
||||
|
||||
<screen>
|
||||
$ nix-env -qa hello --meta --xml
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<items>
|
||||
<item attrPath="hello" name="hello-2.3" system="i686-linux">
|
||||
<meta name="description" value="A program that produces a familiar, friendly greeting" />
|
||||
<meta name="homepage" value="http://www.gnu.org/software/hello/manual/" />
|
||||
<meta name="license" value="GPLv3+" />
|
||||
<meta name="longDescription" value="GNU Hello is a program that prints &quot;Hello, world!&quot; when you run it.&#xA;It is fully customizable.&#xA;" />
|
||||
</item>
|
||||
</items>
|
||||
</screen>
|
||||
|
||||
<command>nix-env</command> knows about the
|
||||
<varname>description</varname> field specifically:
|
||||
|
||||
<screen>
|
||||
$ nix-env -qa hello --description
|
||||
hello-2.3 A program that produces a familiar, friendly greeting
|
||||
</screen>
|
||||
|
||||
</para>
|
||||
|
||||
|
||||
<section><title>Standard meta-attributes</title>
|
||||
|
||||
<para>The following meta-attributes have a standard
|
||||
interpretation:</para>
|
||||
|
||||
<variablelist>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>description</varname></term>
|
||||
<listitem><para>A short (one-line) description of the package.
|
||||
This is shown by <command>nix-env -q --description</command> and
|
||||
also on the Nixpkgs release pages.</para>
|
||||
|
||||
<para>Don’t include a period at the end. Don’t include newline
|
||||
characters. Capitalise the first character. For brevity, don’t
|
||||
repeat the name of package — just describe what it does.</para>
|
||||
|
||||
<para>Wrong: <literal>"libpng is a library that allows you to decode PNG images."</literal></para>
|
||||
|
||||
<para>Right: <literal>"A library for decoding PNG images"</literal></para>
|
||||
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>longDescription</varname></term>
|
||||
<listitem><para>An arbitrarily long description of the
|
||||
package.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>homepage</varname></term>
|
||||
<listitem><para>The package’s homepage. Example:
|
||||
<literal>http://www.gnu.org/software/hello/manual/</literal></para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>license</varname></term>
|
||||
<listitem><para>The license for the package. See below for the
|
||||
allowed values.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>priority</varname></term>
|
||||
<listitem><para>The <emphasis>priority</emphasis> of the package,
|
||||
used by <command>nix-env</command> to resolve file name conflicts
|
||||
between packages. See the Nix manual page for
|
||||
<command>nix-env</command> for details. Example:
|
||||
<literal>"10"</literal> (a low-priority
|
||||
package).</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
<section><title>Licenses</title>
|
||||
|
||||
<note><para>This is just a first attempt at standardising the license
|
||||
attribute.</para></note>
|
||||
|
||||
<para>The <varname>meta.license</varname> attribute must be one of the
|
||||
following:
|
||||
|
||||
<variablelist>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>GPL</varname></term>
|
||||
<listitem><para>GNU General Public License; version not
|
||||
specified.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>GPLv2</varname></term>
|
||||
<listitem><para>GNU General Public License, version
|
||||
2.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>GPLv2+</varname></term>
|
||||
<listitem><para>GNU General Public License, version
|
||||
2 or higher.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>GPLv3</varname></term>
|
||||
<listitem><para>GNU General Public License, version
|
||||
3.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>GPLv3+</varname></term>
|
||||
<listitem><para>GNU General Public License, version
|
||||
3 or higher.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>free</varname></term>
|
||||
<listitem><para>Catch-all for free software licenses not listed
|
||||
above.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>free-copyleft</varname></term>
|
||||
<listitem><para>Catch-all for free, copyleft software licenses not
|
||||
listed above.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>unfree-redistributable</varname></term>
|
||||
<listitem><para>Unfree package that can be redistributed in binary
|
||||
form. That is, it’s legal to redistribute the
|
||||
<emphasis>output</emphasis> of the derivation. This means that
|
||||
the package can be included in the Nixpkgs
|
||||
channel.</para>
|
||||
|
||||
<para>Sometimes proprietary software can only be redistributed
|
||||
unmodified. Make sure the builder doesn’t actually modify the
|
||||
original binaries; otherwise we’re breaking the license. For
|
||||
instance, the NVIDIA X11 drivers can be redistributed unmodified,
|
||||
but our builder applies <command>patchelf</command> to make them
|
||||
work. Thus, its license is <varname>unfree</varname> and it
|
||||
cannot be included in the Nixpkgs channel.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>unfree</varname></term>
|
||||
<listitem><para>Unfree package that cannot be redistributed. You
|
||||
can build it yourself, but you cannot redistribute the output of
|
||||
the derivation. Thus it cannot be included in the Nixpkgs
|
||||
channel.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>unfree-redistributable-firmware</varname></term>
|
||||
<listitem><para>This package supplies unfree, redistributable
|
||||
firmware. This is a separate value from
|
||||
<varname>unfree-redistributable</varname> because not everybody
|
||||
cares whether firmware is free.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</para>
|
||||
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
</chapter>
|
||||
158
doc/outline.txt
158
doc/outline.txt
@@ -1,158 +0,0 @@
|
||||
- The standard environment
|
||||
|
||||
(Some of this can be moved from the Nix manual)
|
||||
|
||||
- Special attributes
|
||||
|
||||
- Generic builder
|
||||
|
||||
- Helper functions
|
||||
|
||||
- GCC / ld wrapper (+ env vars)
|
||||
|
||||
- Phases (+ how to add phases) and hooks
|
||||
|
||||
- Override functions for stdenv
|
||||
|
||||
- Overriding GCC
|
||||
|
||||
- Overriding the setup script
|
||||
|
||||
- Predefined override functions in all-packages.nix: static binary
|
||||
stdenv, dietlibc stdenv
|
||||
|
||||
- Stdenv bootstrap; how to update the Linux bootstrap binaries
|
||||
|
||||
- Specific platform notes (Linux, Native, Cygwin, Mingw)
|
||||
|
||||
|
||||
- Support for specific languages
|
||||
|
||||
- Perl
|
||||
|
||||
- Generic Perl builder
|
||||
|
||||
- Python
|
||||
|
||||
- Wrapper generation
|
||||
|
||||
- Haskell
|
||||
|
||||
- TODO
|
||||
|
||||
- Java
|
||||
|
||||
- TODO; Java needs lots of improvement
|
||||
|
||||
- TeX/LaTeX
|
||||
|
||||
- Special support for building TeX documents
|
||||
|
||||
|
||||
- Special kinds of applications
|
||||
|
||||
- OpenGL apps
|
||||
|
||||
- Binary-only apps
|
||||
|
||||
- Linux kernel modules
|
||||
|
||||
- Mozilla plugins/extensions
|
||||
|
||||
- X apps
|
||||
|
||||
- KDE apps
|
||||
|
||||
- GConf-based apps
|
||||
|
||||
- Programs that need wrappers
|
||||
|
||||
- makeWrapper etc.
|
||||
|
||||
- Initial ramdisks
|
||||
|
||||
|
||||
- Library functions
|
||||
|
||||
- i.e. in lib/default.nix
|
||||
|
||||
|
||||
- Specific package notes
|
||||
|
||||
- Linux kernel; how to update; feature tests
|
||||
|
||||
- X.org; how to update
|
||||
|
||||
- Gnome; how to update
|
||||
|
||||
- GCC?
|
||||
|
||||
- GHC?
|
||||
|
||||
- ...
|
||||
|
||||
|
||||
- Meta attributes
|
||||
|
||||
- License attr; possible values
|
||||
|
||||
|
||||
- Virtual machine support (for the build farm)
|
||||
|
||||
- vmtools
|
||||
|
||||
- KVM notes
|
||||
|
||||
- Performing a build in a VM
|
||||
|
||||
- In the host FS
|
||||
|
||||
- In a disk image
|
||||
|
||||
- RPM builds
|
||||
|
||||
- RPM image creation
|
||||
|
||||
- Deb builds
|
||||
|
||||
- Deb image creation
|
||||
|
||||
- Debugging VM builds
|
||||
|
||||
|
||||
- Guidelines for Nixpkgs contributions
|
||||
|
||||
- File naming conventions
|
||||
|
||||
- Versioning of packages
|
||||
|
||||
- Tree organisation
|
||||
|
||||
- Variable naming
|
||||
|
||||
- Layout / indentations style
|
||||
|
||||
- Output FS hierarchy (e.g. $out/share/man instead of $out/man)
|
||||
|
||||
|
||||
- Misc
|
||||
|
||||
- Building outside of the Nixpkgs tree
|
||||
|
||||
- Config options
|
||||
|
||||
- Downloading stuff
|
||||
|
||||
- fetchurl
|
||||
|
||||
- mirror:// scheme
|
||||
|
||||
- fetchsvn
|
||||
|
||||
- fetchcvs
|
||||
|
||||
- fetchdarcs
|
||||
|
||||
|
||||
- Appendix: Nixpkgs config options
|
||||
|
||||
@@ -1,239 +0,0 @@
|
||||
<chapter xmlns="http://docbook.org/ns/docbook"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xml:id="chap-introduction">
|
||||
|
||||
<title>Package Notes</title>
|
||||
|
||||
<para>This chapter contains information about how to use and maintain
|
||||
the Nix expressions for a number of specific packages, such as the
|
||||
Linux kernel or X.org.</para>
|
||||
|
||||
|
||||
<!--============================================================-->
|
||||
|
||||
<section>
|
||||
|
||||
<title>Linux kernel</title>
|
||||
|
||||
<para>The Nix expressions to build the Linux kernel are in <link
|
||||
xlink:href="https://svn.nixos.org/repos/nix/nixpkgs/trunk/pkgs/os-specific/linux/kernel"><filename>pkgs/os-specific/linux/kernel</filename></link>.</para>
|
||||
|
||||
<para>The function that builds the kernel has an argument
|
||||
<varname>kernelPatches</varname> which should be a list of
|
||||
<literal>{name, patch, extraConfig}</literal> attribute sets, where
|
||||
<varname>name</varname> is the name of the patch (which is included in
|
||||
the kernel’s <varname>meta.description</varname> attribute),
|
||||
<varname>patch</varname> is the patch itself (possibly compressed),
|
||||
and <varname>extraConfig</varname> (optional) is a string specifying
|
||||
extra options to be concatenated to the kernel configuration file
|
||||
(<filename>.config</filename>).</para>
|
||||
|
||||
<para>The kernel derivation exports an attribute
|
||||
<varname>features</varname> specifying whether optional functionality
|
||||
is or isn’t enabled. This is used in NixOS to implement
|
||||
kernel-specific behaviour. For instance, if the kernel has the
|
||||
<varname>iwlwifi</varname> feature (i.e. has built-in support for
|
||||
Intel wireless chipsets), then NixOS doesn’t have to build the
|
||||
external <varname>iwlwifi</varname> package:
|
||||
|
||||
<programlisting>
|
||||
modulesTree = [kernel]
|
||||
++ pkgs.lib.optional (!kernel.features ? iwlwifi) kernelPackages.iwlwifi
|
||||
++ ...;
|
||||
</programlisting>
|
||||
|
||||
</para>
|
||||
|
||||
<para>How to add a new (major) version of the Linux kernel to Nixpkgs:
|
||||
|
||||
<orderedlist>
|
||||
|
||||
<listitem>
|
||||
<para>Copy (<command>svn cp</command>) the old Nix expression
|
||||
(e.g. <filename>linux-2.6.21.nix</filename>) to the new one
|
||||
(e.g. <filename>linux-2.6.22.nix</filename>) and update it.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Add the new kernel to <filename>all-packages.nix</filename>
|
||||
(e.g., create an attribute
|
||||
<varname>kernel_2_6_22</varname>).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Now we’re going to update the kernel configuration. First
|
||||
unpack the kernel. Then for each supported platform
|
||||
(<literal>i686</literal>, <literal>x86_64</literal>,
|
||||
<literal>uml</literal>) do the following:
|
||||
|
||||
<orderedlist>
|
||||
|
||||
<listitem>
|
||||
<para>Make an <command>svn copy</command> from the old
|
||||
config (e.g. <filename>config-2.6.21-i686-smp</filename>) to
|
||||
the new one
|
||||
(e.g. <filename>config-2.6.22-i686-smp</filename>).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Copy the config file for this platform
|
||||
(e.g. <filename>config-2.6.22-i686-smp</filename>) to
|
||||
<filename>.config</filename> in the kernel source tree.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Run <literal>make oldconfig
|
||||
ARCH=<replaceable>{i386,x86_64,um}</replaceable></literal>
|
||||
and answer all questions. (For the uml configuration, also
|
||||
add <literal>SHELL=bash</literal>.) Make sure to keep the
|
||||
configuration consistent between platforms (i.e. don’t
|
||||
enable some feature on <literal>i686</literal> and disable
|
||||
it on <literal>x86_64</literal>).
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>If needed you can also run <literal>make
|
||||
menuconfig</literal>:
|
||||
|
||||
<screen>
|
||||
$ nix-env -i ncurses
|
||||
$ export NIX_CFLAGS_LINK=-lncurses
|
||||
$ make menuconfig ARCH=<replaceable>arch</replaceable></screen>
|
||||
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Make sure that
|
||||
<literal>CONFIG_FB_TILEBLITTING</literal> is <emphasis>not
|
||||
set</emphasis> (otherwise <command>fbsplash</command> won't
|
||||
work). This option has a tendency to be enabled as a
|
||||
side-effect of other options. If it is, investigate why
|
||||
(there's probably another option that forces it to be on)
|
||||
and fix it.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Copy <filename>.config</filename> over the new config
|
||||
file (e.g. <filename>config-2.6.22-i686-smp</filename>).</para>
|
||||
</listitem>
|
||||
|
||||
</orderedlist>
|
||||
|
||||
</para>
|
||||
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Test building the kernel: <literal>nix-build -A
|
||||
kernel_2_6_22</literal>. If it compiles, ship it! For extra
|
||||
credit, try booting NixOS with it.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>It may be that the new kernel requires updating the external
|
||||
kernel modules and kernel-dependent packages listed in the
|
||||
<varname>kernelPackagesFor</varname> function in
|
||||
<filename>all-packages.nix</filename> (such as the NVIDIA drivers,
|
||||
AUFS, splashutils, etc.). If the updated packages aren’t
|
||||
backwards compatible with older kernels, you need to keep the
|
||||
older versions and use some conditionals. For example, new
|
||||
kernels require splashutils 1.5 while old kernel require 1.3, so
|
||||
<varname>kernelPackagesFor</varname> says:
|
||||
|
||||
<programlisting>
|
||||
splashutils =
|
||||
if kernel.features ? fbSplash then splashutils_13 else
|
||||
if kernel.features ? fbConDecor then splashutils_15 else
|
||||
null;
|
||||
|
||||
splashutils_13 = ...;
|
||||
splashutils_15 = ...;</programlisting>
|
||||
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
</orderedlist>
|
||||
|
||||
</para>
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
<!--============================================================-->
|
||||
|
||||
<section>
|
||||
|
||||
<title>X.org</title>
|
||||
|
||||
<para>The Nix expressions for the X.org packages reside in
|
||||
<filename>pkgs/servers/x11/xorg/default.nix</filename>. This file is
|
||||
automatically generated from lists of tarballs in an X.org
|
||||
release. As such it should not be modified directly; rather, you
|
||||
should modify the lists or the generator script.</para>
|
||||
|
||||
<para>The generator is invoked as follows:
|
||||
|
||||
<screen>
|
||||
$ cd pkgs/servers/x11/xorg
|
||||
$ cat tarballs-7.4.list extra.list old.list \
|
||||
| perl ./generate-expr-from-tarballs.pl
|
||||
</screen>
|
||||
|
||||
For each of the tarballs in the <filename>.list</filename> files, the
|
||||
script downloads it, unpacks it, and searches its
|
||||
<filename>configure.ac</filename> and <filename>*.pc.in</filename>
|
||||
files for dependencies. This information is used to generate
|
||||
<filename>default.nix</filename>. The generator caches downloaded
|
||||
tarballs between runs. Pay close attention to the <literal>NOT FOUND:
|
||||
<replaceable>name</replaceable></literal> messages at the end of the
|
||||
run, since they may indicate missing dependencies. (Some might be
|
||||
optional dependencies, however.)</para>
|
||||
|
||||
<para>A file like <filename>tarballs-7.4.list</filename> contains all
|
||||
tarballs in a X.org release. It can be generated like this:
|
||||
|
||||
<screen>
|
||||
$ export i="mirror://xorg/X11R7.4/src/everything/"
|
||||
$ cat $(PRINT_PATH=1 nix-prefetch-url $i | tail -n 1) \
|
||||
| perl -e 'while (<>) { if (/(href|HREF)="([^"]*.bz2)"/) { print "$ENV{'i'}$2\n"; }; }' \
|
||||
| sort > tarballs-7.4.list
|
||||
</screen>
|
||||
|
||||
<filename>extra.list</filename> contains libraries that aren’t part of
|
||||
X.org proper, but are closely related to it, such as
|
||||
<literal>libxcb</literal>. <filename>old.list</filename> contains
|
||||
some packages that were removed from X.org, but are still needed by
|
||||
some people or by other packages (such as
|
||||
<varname>imake</varname>).</para>
|
||||
|
||||
<para>If the expression for a package requires derivation attributes
|
||||
that the generator cannot figure out automatically (say,
|
||||
<varname>patches</varname> or a <varname>postInstall</varname> hook),
|
||||
you should modify the generator script
|
||||
(<varname>generate-expr-from-tarballs.pl</varname>).</para>
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
<!--============================================================-->
|
||||
|
||||
<section>
|
||||
<title>Gnome</title>
|
||||
<para>* Expression is auto-generated</para>
|
||||
<para>* How to update</para>
|
||||
</section>
|
||||
|
||||
|
||||
<!--============================================================-->
|
||||
|
||||
<section>
|
||||
<title>GCC</title>
|
||||
<para>…</para>
|
||||
</section>
|
||||
|
||||
|
||||
</chapter>
|
||||
@@ -1,240 +0,0 @@
|
||||
<chapter xmlns="http://docbook.org/ns/docbook"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xml:id="chap-overvie">
|
||||
|
||||
<title>Quick Start to Adding a Package</title>
|
||||
|
||||
<para>To add a package to Nixpkgs:
|
||||
|
||||
<orderedlist>
|
||||
|
||||
<listitem>
|
||||
<para>Checkout the Nixpkgs source tree:
|
||||
|
||||
<screen>
|
||||
$ svn checkout https://svn.nixos.org/repos/nix/nixpkgs/trunk nixpkgs
|
||||
$ cd nixpkgs</screen>
|
||||
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Find a good place in the Nixpkgs tree to add the Nix
|
||||
expression for your package. For instance, a library package
|
||||
typically goes into
|
||||
<filename>pkgs/development/libraries/<replaceable>pkgname</replaceable></filename>,
|
||||
while a web browser goes into
|
||||
<filename>pkgs/applications/networking/browsers/<replaceable>pkgname</replaceable></filename>.
|
||||
See Section XXX for some hints on the tree organisation. Create a
|
||||
directory for your package, e.g.
|
||||
|
||||
<screen>
|
||||
$ svn mkdir pkgs/development/libraries/libfoo</screen>
|
||||
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>In the package directory, create a Nix expression — a piece
|
||||
of code that describes how to build the package. In this case, it
|
||||
should be a <emphasis>function</emphasis> that is called with the
|
||||
package dependencies as arguments, and returns a build of the
|
||||
package in the Nix store. The expression should usually be called
|
||||
<filename>default.nix</filename>.
|
||||
|
||||
<screen>
|
||||
$ emacs pkgs/development/libraries/libfoo/default.nix
|
||||
$ svn add pkgs/development/libraries/libfoo/default.nix</screen>
|
||||
|
||||
</para>
|
||||
|
||||
<para>You can have a look at the existing Nix expressions under
|
||||
<filename>pkgs/</filename> to see how it’s done. Here are some
|
||||
good ones:
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
<listitem>
|
||||
<para>GNU cpio: <link
|
||||
xlink:href="https://svn.nixos.org/repos/nix/nixpkgs/trunk/pkgs/tools/archivers/cpio/default.nix"><filename>pkgs/tools/archivers/cpio/default.nix</filename></link>.
|
||||
The simplest possible package. The generic builder in
|
||||
<varname>stdenv</varname> does everything for you. It has
|
||||
no dependencies beyond <varname>stdenv</varname>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>GNU Hello: <link
|
||||
xlink:href="https://svn.nixos.org/repos/nix/nixpkgs/trunk/pkgs/applications/misc/hello/ex-2/default.nix"><filename>pkgs/applications/misc/hello/ex-2/default.nix</filename></link>.
|
||||
Also trivial, but it specifies some <varname>meta</varname>
|
||||
attributes which is good practice.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>GNU Multiple Precision arithmetic library (GMP): <link
|
||||
xlink:href="https://svn.nixos.org/repos/nix/nixpkgs/trunk/pkgs/development/libraries/gmp/default.nix"><filename>pkgs/development/libraries/gmp/default.nix</filename></link>.
|
||||
Also done by the generic builder, but has a dependency on
|
||||
<varname>m4</varname>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Pan, a GTK-based newsreader: <link
|
||||
xlink:href="https://svn.nixos.org/repos/nix/nixpkgs/trunk/pkgs/applications/networking/newsreaders/pan/default.nix"><filename>pkgs/applications/networking/newsreaders/pan/default.nix</filename></link>.
|
||||
Has an optional dependency on <varname>gtkspell</varname>,
|
||||
which is only built if <varname>spellCheck</varname> is
|
||||
<literal>true</literal>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Apache HTTPD: <link
|
||||
xlink:href="https://svn.nixos.org/repos/nix/nixpkgs/trunk/pkgs/servers/http/apache-httpd/default.nix"><filename>pkgs/servers/http/apache-httpd/default.nix</filename></link>.
|
||||
A bunch of optional features, variable substitutions in the
|
||||
configure flags, a post-install hook, and miscellaneous
|
||||
hackery.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>BitTorrent (wxPython-based): <link
|
||||
xlink:href="https://svn.nixos.org/repos/nix/nixpkgs/trunk/pkgs/tools/networking/p2p/bittorrent/default.nix"><filename>pkgs/tools/networking/p2p/bittorrent/default.nix</filename></link>.
|
||||
Uses an external <link
|
||||
xlink:href="https://svn.nixos.org/repos/nix/nixpkgs/trunk/pkgs/tools/networking/p2p/bittorrent/builder.sh">build
|
||||
script</link>, which can be useful if you have lots of code
|
||||
that you don’t want cluttering up the Nix expression. But
|
||||
external builders are mostly obsolete.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Firefox: <link
|
||||
xlink:href="https://svn.nixos.org/repos/nix/nixpkgs/trunk/pkgs/applications/networking/browsers/firefox-3/default.nix"><filename>pkgs/applications/networking/browsers/firefox-3/default.nix</filename></link>.
|
||||
Lots of dependencies.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>JDiskReport, a Java utility: <link
|
||||
xlink:href="https://svn.nixos.org/repos/nix/nixpkgs/trunk/pkgs/tools/misc/jdiskreport/default.nix"><filename>pkgs/tools/misc/jdiskreport/default.nix</filename></link>
|
||||
(and the <link
|
||||
xlink:href="https://svn.nixos.org/repos/nix/nixpkgs/trunk/pkgs/tools/misc/jdiskreport/builder.sh">builder</link>).
|
||||
Nixpkgs doesn’t have a decent <varname>stdenv</varname> for
|
||||
Java yet so this is pretty ad-hoc.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>XML::Simple, a Perl module: <link
|
||||
xlink:href="https://svn.nixos.org/repos/nix/nixpkgs/trunk/pkgs/top-level/all-packages.nix"><filename>pkgs/top-level/all-packages.nix</filename></link>
|
||||
(search for the <varname>perlXMLSimple</varname>
|
||||
attribute). Most Perl modules are so simple to build that
|
||||
they are defined directly in
|
||||
<filename>all-packages.nix</filename>, no need to make a
|
||||
separate file for them.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Adobe Reader: <link
|
||||
xlink:href="https://svn.nixos.org/repos/nix/nixpkgs/trunk/pkgs/applications/misc/acrobat-reader/default.nix"><filename>pkgs/applications/misc/acrobat-reader/default.nix</filename></link>.
|
||||
Shows how binary-only packages can be supported. In
|
||||
particular the <link
|
||||
xlink:href="https://svn.nixos.org/repos/nix/nixpkgs/trunk/pkgs/applications/misc/acrobat-reader/builder.sh">builder</link>
|
||||
uses <command>patchelf</command> to set the RUNPATH and ELF
|
||||
interpreter of the executables so that the right libraries
|
||||
are found at runtime.</para>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
</para>
|
||||
|
||||
<para>Some notes:
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
<listitem>
|
||||
<para>All <varname>meta</varname> attributes are optional,
|
||||
but it’s still a good idea to provide at least the
|
||||
<varname>description</varname> and
|
||||
<varname>homepage</varname>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>You can use <command>nix-prefetch-url</command>
|
||||
<replaceable>url</replaceable> to get the SHA-256 hash of
|
||||
source distributions.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>A list of schemes for <literal>mirror://</literal>
|
||||
URLs can be found in <link
|
||||
xlink:href="https://svn.nixos.org/repos/nix/nixpkgs/trunk/pkgs/build-support/fetchurl/mirrors.nix"><filename>pkgs/build-support/fetchurl/mirrors.nix</filename></link>.</para>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
</para>
|
||||
|
||||
<para>The exact syntax and semantics of the Nix expression
|
||||
language, including the built-in function, are described in the
|
||||
Nix manual in the <link
|
||||
xlink:href="http://nixos.org/releases/nix/unstable/manual/#chap-writing-nix-expressions">chapter
|
||||
on writing Nix expressions</link>.</para>
|
||||
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Add a call to the function defined in the previous step to
|
||||
<link
|
||||
xlink:href="https://svn.nixos.org/repos/nix/nixpkgs/trunk/pkgs/top-level/all-packages.nix"><filename>pkgs/top-level/all-packages.nix</filename></link>
|
||||
with some descriptive name for the variable,
|
||||
e.g. <varname>libfoo</varname>.
|
||||
|
||||
<screen>
|
||||
$ emacs pkgs/top-level/all-packages.nix</screen>
|
||||
|
||||
</para>
|
||||
|
||||
<para>The attributes in that file are sorted by category (like
|
||||
“Development / Libraries”) that more-or-less correspond to the
|
||||
directory structure of Nixpkgs, and then by attribute name.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Test whether the package builds:
|
||||
|
||||
<screen>
|
||||
$ nix-build -A libfoo</screen>
|
||||
|
||||
where <varname>libfoo</varname> should be the variable name
|
||||
defined in the previous step. You may want to add the flag
|
||||
<option>-K</option> to keep the temporary build directory in case
|
||||
something fails. If the build succeeds, a symlink
|
||||
<filename>./result</filename> to the package in the Nix store is
|
||||
created.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>If you want to install the package into your profile
|
||||
(optional), do
|
||||
|
||||
<screen>
|
||||
$ nix-env -f . -iA libfoo</screen>
|
||||
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Optionally commit the new package (<command>svn
|
||||
ci</command>) or send a patch to
|
||||
<literal>nix-dev@cs.uu.nl</literal>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>If you want the TU Delft build farm to build binaries of the
|
||||
package and make them available in the <link
|
||||
xlink:href="http://nixos.org/releases/nixpkgs/channels/nixpkgs-unstable/"><literal>nixpkgs</literal>
|
||||
channel</link>, add it to <link
|
||||
xlink:href="https://svn.nixos.org/repos/nix/nixpkgs/trunk/pkgs/top-level/build-for-release.nix"><filename>pkgs/top-level/build-for-release.nix</filename></link>.</para>
|
||||
</listitem>
|
||||
|
||||
</orderedlist>
|
||||
|
||||
</para>
|
||||
|
||||
</chapter>
|
||||
@@ -5,299 +5,10 @@
|
||||
<title>Nixpkgs Release Notes</title>
|
||||
|
||||
|
||||
<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>
|
||||
|
||||
<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:
|
||||
|
||||
<programlisting>
|
||||
source $stdenv/setup
|
||||
|
||||
postInstall=postInstall
|
||||
postInstall() {
|
||||
ln -sf gzip $out/bin/gunzip
|
||||
ln -sf gzip $out/bin/zcat
|
||||
}
|
||||
|
||||
genericBuild</programlisting>
|
||||
|
||||
(the <literal>gzip</literal> builder), you can just add this
|
||||
attribute to the derivation:
|
||||
|
||||
<programlisting>
|
||||
postInstall = "ln -sf gzip $out/bin/gunzip; ln -sf gzip $out/bin/zcat";</programlisting>
|
||||
|
||||
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,
|
||||
|
||||
<programlisting>
|
||||
configureFlags="CFLAGS=-O0"</programlisting>
|
||||
|
||||
but not
|
||||
|
||||
<programlisting>
|
||||
configureFlags="CFLAGS=-O0 -g"</programlisting>
|
||||
|
||||
since the <literal>-g</literal> would be interpreted as a separate
|
||||
argument to <command>configure</command>. Now you can say
|
||||
|
||||
<programlisting>
|
||||
configureFlagsArray=("CFLAGS=-O0 -g")</programlisting>
|
||||
|
||||
or similarly
|
||||
|
||||
<programlisting>
|
||||
configureFlagsArray=("CFLAGS=-O0 -g" "LDFLAGS=-L/foo -L/bar")</programlisting>
|
||||
|
||||
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.,
|
||||
|
||||
<programlisting>
|
||||
configureFlagsArray = ["CFLAGS=-O0 -g"];</programlisting>
|
||||
|
||||
since it would just be flattened to a since string. However, you
|
||||
<emphasis>can</emphasis> use the inline hooks described above:
|
||||
|
||||
<programlisting>
|
||||
preConfigure = "configureFlagsArray=(\"CFLAGS=-O0 -g\")";</programlisting>
|
||||
|
||||
</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
|
||||
|
||||
<programlisting>
|
||||
fetchurl {
|
||||
url = http://releases.mozilla.org/<replaceable>...</replaceable>/firefox-2.0.0.6-source.tar.bz2;
|
||||
sha1 = "eb72f55e4a8bf08e8c6ef227c0ade3d068ba1082";
|
||||
}</programlisting>
|
||||
|
||||
<function>fetchurl</function> will first try to download this file
|
||||
from <link
|
||||
xlink:href="http://nixos.org/tarballs/sha1/eb72f55e4a8bf08e8c6ef227c0ade3d068ba1082"/>.
|
||||
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
|
||||
xlink:href="http://nixos.org/tarballs"/>), but more can be
|
||||
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:
|
||||
<programlisting>
|
||||
fetchurl {
|
||||
url = mirror://gnu/gcc/gcc-4.2.0/gcc-core-4.2.0.tar.bz2;
|
||||
sha256 = "0ykhzxhr8857dr97z0j9wyybfz1kjr71xk457cfapfw5fjas4ny1";
|
||||
}</programlisting>
|
||||
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.
|
||||
<programlisting>
|
||||
export NIX_MIRRORS_sourceforge=http://osdn.dl.sourceforge.net/sourceforge/</programlisting>
|
||||
</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>
|
||||
|
||||
</para>
|
||||
|
||||
<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
|
||||
xlink:href='http://nix.cs.uu.nl/dist/nix/nix-0.10/'>Nix
|
||||
0.10</link> or higher.</para></note>
|
||||
|
||||
<para>This release has the following improvements:</para>
|
||||
@@ -503,7 +214,7 @@ some of the more notable changes:</para>
|
||||
<itemizedlist>
|
||||
|
||||
<listitem><para>Distribution files have been moved to <link
|
||||
xlink:href="http://nixos.org/" />.</para></listitem>
|
||||
xlink:href="http://nix.cs.uu.nl/" />.</para></listitem>
|
||||
|
||||
<listitem><para>The C library on Linux, Glibc, has been updated to
|
||||
version 2.3.6.</para></listitem>
|
||||
|
||||
1183
doc/stdenv.xml
1183
doc/stdenv.xml
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,3 @@
|
||||
*** All these bugs should be moved to JIRA (if they still exist) ***
|
||||
|
||||
|
||||
* If NIX_DEBUG is turned on (set to "1"), autoconf configure scripts
|
||||
may fail to find the correct preprocessor:
|
||||
|
||||
@@ -37,6 +34,22 @@ include/X11/IntrinsicP.h:202:25: X11/ObjectP.h: No such file or directory
|
||||
(moved to include/X11; should edit include/Makefile.am)
|
||||
|
||||
|
||||
* `ld' on Mac OS X barfs if the timestamp on static libraries has
|
||||
changed (which happens if they are installed through a substitute).
|
||||
|
||||
Typical error:
|
||||
|
||||
/usr/bin/ld: table of contents for archive: libATerm.a is out of
|
||||
date; rerun ranlib(1) (can't load from it)
|
||||
|
||||
Solution: patch ld.
|
||||
|
||||
Non-solution: extend NAR file format to include timestamps. We
|
||||
don't want that because they introduce a source of non-determinism.
|
||||
To catch problems like this one determistically, we should change
|
||||
the timestamp on store objects to 0.
|
||||
|
||||
|
||||
* In gtksourceview-sharp: does the prefix patch cause problems (e.g.,
|
||||
makefile.am says "mimeinfodir should be the same as the gnome
|
||||
prefix")?
|
||||
|
||||
@@ -1,101 +0,0 @@
|
||||
Some conventions:
|
||||
|
||||
* Directories / file names: lowercase, and use dashes between words,
|
||||
no camel case. I.e., all-packages.nix, not all allPackages.nix or
|
||||
AllPackages.nix.
|
||||
|
||||
* Don't use TABs. Everybody has different TAB settings so it's asking
|
||||
for trouble.
|
||||
|
||||
* Use 2 spaces of indentation per indentation level in Nix
|
||||
expressions, 4 spaces in shell scripts. (Maybe 2 is too low, but
|
||||
for consistency's sake it should be the same. Certainly indentation
|
||||
should be consistent within a single file.)
|
||||
|
||||
* Use lowerCamelCase for variable names, not UpperCamelCase.
|
||||
|
||||
* Function calls with attribute set arguments are written as
|
||||
|
||||
foo {
|
||||
arg = ...;
|
||||
}
|
||||
|
||||
not
|
||||
|
||||
foo
|
||||
{
|
||||
arg = ...;
|
||||
}
|
||||
|
||||
Also fine is
|
||||
|
||||
foo { arg = ...; }
|
||||
|
||||
if it's a short call.
|
||||
|
||||
* In attribute sets or lists that span multiple lines, the attribute
|
||||
names or list elements should be aligned:
|
||||
|
||||
# A long list.
|
||||
list = [
|
||||
elem1
|
||||
elem2
|
||||
elem3
|
||||
];
|
||||
|
||||
# A long attribute set.
|
||||
attrs = {
|
||||
attr1 = short_expr;
|
||||
attr2 =
|
||||
if true then big_expr else big_expr;
|
||||
};
|
||||
|
||||
* Short lists or attribute sets can be written on one line:
|
||||
|
||||
# A short list.
|
||||
list = [ elem1 elem2 elem3 ];
|
||||
|
||||
# A short set.
|
||||
attrs = { x = 1280; y = 1024; };
|
||||
|
||||
* Breaking in the middle of a function argument can give hard-to-read
|
||||
code, like
|
||||
|
||||
someFunction { x = 1280;
|
||||
y = 1024; } otherArg
|
||||
yetAnotherArg
|
||||
|
||||
(especially if the argument is very large, spanning multiple lines).
|
||||
|
||||
Better:
|
||||
|
||||
someFunction
|
||||
{ x = 1280; y = 1024; }
|
||||
otherArg
|
||||
yetAnotherArg
|
||||
|
||||
or
|
||||
|
||||
let res = { x = 1280; y = 1024; };
|
||||
in someFunction res otherArg yetAnotherArg
|
||||
|
||||
* The bodies of functions, asserts, and withs are not indented, so
|
||||
|
||||
assert system == "i686-linux";
|
||||
stdenv.mkDerivation { ...
|
||||
|
||||
not
|
||||
|
||||
assert system == "i686-linux";
|
||||
stdenv.mkDerivation { ...
|
||||
|
||||
* Function formal arguments are written as:
|
||||
|
||||
{arg1, arg2, arg3}:
|
||||
|
||||
but if they don't fit on one line they're written as:
|
||||
|
||||
{ arg1, arg2, arg3
|
||||
, arg4, ...
|
||||
, argN
|
||||
}:
|
||||
@@ -2,6 +2,8 @@
|
||||
directories for libraries (like setup.sh does now). [do we want
|
||||
this?]
|
||||
|
||||
* In setup.sh: add configureFlagsArray or something
|
||||
|
||||
* Inform freedesktop people that Xaw requires Xpm.
|
||||
|
||||
* After building gcc, filter out references to /tmp/nix... in
|
||||
@@ -10,3 +12,5 @@
|
||||
* Add gettext to glib propagatedBuildInputs? Glib's `gi18n.h' doesn't
|
||||
seem to like Glibc `libintl.h'; needs the gettext one instead.
|
||||
[Move from libbonoboui]
|
||||
|
||||
* Fix the bzip2 build generically.
|
||||
@@ -1,74 +1,37 @@
|
||||
#! /bin/sh -e
|
||||
|
||||
distDir=/data/webserver/dist/tarballs
|
||||
|
||||
find "$1" -name "*.nix" | while read fn; do
|
||||
find . -name "*.nix" | while read fn; do
|
||||
|
||||
grep -E '^ *url = ' "$fn" | while read line; do
|
||||
|
||||
if url=$(echo "$line" | sed 's^url = \(.*\);^\1^'); then
|
||||
if oldURL=$(echo "$line" | sed 's^url = \(.*\);^\1^'); then
|
||||
|
||||
if ! echo "$url" | grep -q -E "www.cs.uu.nl|nixos.org|.stratego-language.org|java.sun.com|ut2004|linuxq3a|RealPlayer|Adbe|belastingdienst|microsoft|armijn/.nix|sun.com|archive.eclipse.org"; then
|
||||
base="$(basename "$url")"
|
||||
newPath="$distDir/$base"
|
||||
if ! echo "$oldURL" | grep -q -E "www.cs.uu.nl|nix.cs.uu.nl|.stratego-language.org|java.sun.com|ut2004|linuxq3a|RealPlayer|Adbe|belastingdienst|microsoft|armijn/.nix|sun.com|archive.eclipse.org"; then
|
||||
base=$(basename $oldURL)
|
||||
newURL="http://nix.cs.uu.nl/dist/tarballs/$base"
|
||||
newPath="/data/webserver/dist/tarballs/$base"
|
||||
echo "$fn: $oldURL -> $newURL"
|
||||
|
||||
isSafe=1
|
||||
|
||||
if test -e "$newPath"; then
|
||||
|
||||
#echo "$fn: checking hash of existing $newPath"
|
||||
hash=$(fgrep -A 1 "$url" "$fn" | grep md5 | sed 's^.*md5 = \"\(.*\)\";.*^\1^')
|
||||
hashType=md5
|
||||
if test -z "$hash"; then
|
||||
hash=$(fgrep -A 1 "$url" "$fn" | grep sha256 | sed 's^.*sha256 = \"\(.*\)\";.*^\1^')
|
||||
hashType="sha256 --base32"
|
||||
if test -n "$hash"; then
|
||||
if test "${#hash}" = 64; then
|
||||
hash=$(nix-hash --to-base32 --type sha256 $hash)
|
||||
fi
|
||||
else
|
||||
hash=$(fgrep -A 1 "$url" "$fn" | grep sha1 | sed 's^.*sha1 = \"\(.*\)\";.*^\1^')
|
||||
hashType="sha1"
|
||||
if test -z "$hash"; then
|
||||
echo "WARNING: $fn: cannot figure out the hash for $url"
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
hash=$(fgrep -A 1 "$oldURL" "$fn" | grep md5 | sed 's^.*md5 = \"\(.*\)\";.*^\1^')
|
||||
echo "HASH = $hash"
|
||||
if ! test "$(nix-hash --type md5 --flat "$newPath")" = "$hash"; then
|
||||
echo "WARNING: $newPath exists and differs!"
|
||||
isSafe=
|
||||
fi
|
||||
#echo "HASH = $hash"
|
||||
if ! test "$(nix-hash --type $hashType --flat "$newPath")" = "$hash"; then
|
||||
echo "WARNING: $fn: $newPath exists and differs, hash should be $hash!"
|
||||
continue
|
||||
fi
|
||||
|
||||
else
|
||||
|
||||
if echo $url | grep -q 'mirror://'; then
|
||||
#echo "$fn: skipping mirrored $url"
|
||||
continue
|
||||
fi
|
||||
|
||||
echo "$fn: $url -> $newPath"
|
||||
|
||||
if test -n "$doCopy"; then
|
||||
if ! curl --disable-epsv --fail --location --max-redirs 20 --remote-time \
|
||||
"$url" --output "$newPath".tmp; then
|
||||
continue
|
||||
fi
|
||||
mv -f "$newPath".tmp "$newPath"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
if test -n "$doCopy" -a -e "$newPath"; then
|
||||
if test -n "$doMove" -a -n "$isSafe"; then
|
||||
|
||||
md5=$(nix-hash --flat --type md5 "$newPath")
|
||||
ln -sfn "../$base" $distDir/md5/$md5
|
||||
if ! test -e "$newPath"; then
|
||||
curl --disable-epsv --fail --location --max-redirs 20 "$oldURL" > "$newPath".tmp
|
||||
mv -f "$newPath".tmp "$newPath"
|
||||
fi
|
||||
|
||||
sha1=$(nix-hash --flat --type sha1 "$newPath")
|
||||
ln -sfn "../$base" $distDir/sha1/$sha1
|
||||
|
||||
sha256=$(nix-hash --flat --type sha256 "$newPath")
|
||||
ln -sfn "../$base" $distDir/sha256/$sha256
|
||||
ln -sfn "../$base" $distDir/sha256/$(nix-hash --type sha256 --to-base32 "$sha256")
|
||||
sed "s^$oldURL^$newURL^" < "$fn" > "$fn".tmp
|
||||
mv -f "$fn".tmp "$fn"
|
||||
|
||||
fi
|
||||
|
||||
@@ -78,6 +41,4 @@ find "$1" -name "*.nix" | while read fn; do
|
||||
|
||||
done
|
||||
|
||||
done
|
||||
|
||||
echo DONE
|
||||
done
|
||||
@@ -61,7 +61,7 @@ rules
|
||||
<map({x', x'', x''', xs', starts, starts': \[x | xs] -> [x''' | xs']
|
||||
where
|
||||
<remove-section-start> x => (x', starts);
|
||||
<map(regularise-empty-lines); if !starts; debug; sortable-section; debug then qsort(compare-attrs) else id end> [x' | xs] => [x'' | xs'];
|
||||
<map(regularise-empty-lines); qsort(compare-attrs)> [x' | xs] => [x'' | xs'];
|
||||
<[] <+ \x -> ["\n\n\n" | x]\ > starts => starts';
|
||||
<prepend-layout> (starts', x'') => x'''
|
||||
\ })> groups => attrs';
|
||||
@@ -79,12 +79,9 @@ strategies
|
||||
<implode-string; is-substring(!"###")> cs;
|
||||
!x
|
||||
|
||||
rules
|
||||
|
||||
|
||||
sortable-section = ?[s]; !s; explode-string; not(fetch({x: ?x; !(x, 97); geq}))
|
||||
|
||||
|
||||
rules
|
||||
|
||||
remove-section-start:
|
||||
(appl(prod([cf(layout())], cf(opt(layout())), no-attrs()), cs), attr) ->
|
||||
((appl(prod([cf(layout())], cf(opt(layout())), no-attrs()), cs'), attr), starts)
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
stdenv.mkDerivation {
|
||||
name = "GStreamer-0.10.10";
|
||||
src = fetchurl {
|
||||
url = http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-0.10.10.tar.bz2;
|
||||
md5 = "6875bf0bd3cf38b9ae1362b9e644e6fc";
|
||||
url = http://nix.cs.uu.nl/dist/tarballs/gstreamer-0.10.10.tar.bz2;
|
||||
md5 = "6875bf0bd3cf38b9ae1362b9e644e6fc" ;
|
||||
};
|
||||
|
||||
buildInputs = [perl bison flex glib pkgconfig libxml2];
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
Choose the right CDROM reader syntax for `cd-paranoia'.
|
||||
|
||||
--- abcde-2.3.99.6/abcde 2006-08-05 21:14:00.000000000 +0200
|
||||
+++ abcde-2.3.99.6/abcde 2008-10-29 22:55:38.000000000 +0100
|
||||
@@ -3184,7 +3184,10 @@ if [ -n "$DISCID" ] || [ "$CDROMREADERSY
|
||||
if [ "$CDROMREADERSYNTAX" = "" ]; then
|
||||
for DEFAULT_CDROMREADER in $DEFAULT_CDROMREADERS; do
|
||||
if new_checkexec $DEFAULT_CDROMREADER; then
|
||||
- CDROMREADERSYNTAX=$DEFAULT_CDROMREADER
|
||||
+ case "$DEFAULT_CDROMREADER" in
|
||||
+ cd-paranoia) CDROMREADERSYNTAX=cdparanoia;;
|
||||
+ *) CDROMREADERSYNTAX=$DEFAULT_CDROMREADER;;
|
||||
+ esac
|
||||
break
|
||||
fi
|
||||
done
|
||||
@@ -1,61 +0,0 @@
|
||||
{ stdenv, fetchurl, libcdio, cddiscid, wget, bash, vorbisTools
|
||||
, makeWrapper }:
|
||||
|
||||
let version = "2.3.99.6";
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "abcde-${version}";
|
||||
src = fetchurl {
|
||||
url = "mirror://debian/pool/main/a/abcde/abcde_${version}.orig.tar.gz";
|
||||
sha256 = "1wl4ygj1cf1d6g05gwwygsd5g83l039fzi011r30ma5lnm763lyb";
|
||||
};
|
||||
|
||||
# FIXME: This package does not support MP3 encoding (only Ogg),
|
||||
# nor `distmp3', `eject', etc.
|
||||
|
||||
patches = [ ./install.patch ./which.patch ./cd-paranoia.patch ];
|
||||
|
||||
configurePhase = ''
|
||||
sed -i "s|^[[:blank:]]*prefix *=.*$|prefix = $out|g ;
|
||||
s|^[[:blank:]]*etcdir *=.*$|etcdir = $out/etc|g ;
|
||||
s|^[[:blank:]]*INSTALL *=.*$|INSTALL = install -c|g" \
|
||||
"Makefile";
|
||||
|
||||
# We use `cd-paranoia' from GNU libcdio, which contains a hyphen
|
||||
# in its name, unlike Xiph's cdparanoia.
|
||||
sed -i "s|^[[:blank:]]*CDPARANOIA=.*$|CDPARANOIA=cd-paranoia|g ;
|
||||
s|^[[:blank:]]*DEFAULT_CDROMREADERS=.*$|DEFAULT_CDROMREADERS=\"cd-paranoia cdda2wav\"|g" \
|
||||
"abcde"
|
||||
|
||||
substituteInPlace "abcde" \
|
||||
--replace "/etc/abcde.conf" "$out/etc/abcde.conf"
|
||||
'';
|
||||
|
||||
buildInputs = [ makeWrapper ];
|
||||
|
||||
postInstall = ''
|
||||
substituteInPlace "$out/bin/cddb-tool" \
|
||||
--replace '#!/bin/sh' '#!${bash}/bin/sh'
|
||||
substituteInPlace "$out/bin/abcde" \
|
||||
--replace '#!/bin/bash' '#!${bash}/bin/bash'
|
||||
|
||||
wrapProgram "$out/bin/abcde" --prefix PATH ":" \
|
||||
"$out/bin:${libcdio}/bin:${cddiscid}/bin:${wget}/bin:${vorbisTools}/bin"
|
||||
|
||||
wrapProgram "$out/bin/cddb-tool" --prefix PATH ":" \
|
||||
"${wget}/bin"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = http://www.hispalinux.es/~data/abcde.php;
|
||||
licence = "GPLv2+";
|
||||
description = "A Better CD Encoder (ABCDE)";
|
||||
|
||||
longDescription = ''
|
||||
abcde is a front-end command-line utility (actually, a shell
|
||||
script) that grabs tracks off a CD, encodes them to
|
||||
Ogg/Vorbis, MP3, FLAC, Ogg/Speex and/or MPP/MP+ (Musepack)
|
||||
format, and tags them, all in one go.
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
--- abcde-2.3.3/Makefile~ 2005-08-26 00:43:27.000000000 +0200
|
||||
+++ abcde-2.3.3/Makefile 2008-05-26 22:20:17.000000000 +0200
|
||||
@@ -14,13 +14,13 @@ clean:
|
||||
|
||||
install:
|
||||
$(INSTALL) -d -m 755 $(bindir)
|
||||
- $(INSTALL) -m 755 -o 0 abcde $(bindir)
|
||||
- $(INSTALL) -m 755 -o 0 cddb-tool $(bindir)
|
||||
+ $(INSTALL) -m 755 abcde $(bindir)
|
||||
+ $(INSTALL) -m 755 cddb-tool $(bindir)
|
||||
$(INSTALL) -d -m 755 $(mandir)
|
||||
- $(INSTALL) -m 644 -o 0 abcde.1 $(mandir)
|
||||
- $(INSTALL) -m 644 -o 0 cddb-tool.1 $(mandir)
|
||||
+ $(INSTALL) -m 644 abcde.1 $(mandir)
|
||||
+ $(INSTALL) -m 644 cddb-tool.1 $(mandir)
|
||||
$(INSTALL) -d -m 755 $(etcdir)
|
||||
- $(INSTALL) -m 644 -o 0 abcde.conf $(etcdir)
|
||||
+ $(INSTALL) -m 644 abcde.conf $(etcdir)
|
||||
|
||||
tarball:
|
||||
@cd .. && tar czvf abcde_$(VERSION).orig.tar.gz \
|
||||
@@ -1,16 +0,0 @@
|
||||
Add an alias for `which'.
|
||||
|
||||
--- abcde-2.3.99.6/abcde 2006-08-05 21:14:00.000000000 +0200
|
||||
+++ abcde-2.3.99.6/abcde 2008-10-29 22:49:16.000000000 +0100
|
||||
@@ -15,6 +15,11 @@
|
||||
|
||||
VERSION='2.3.99-$Revision: 222M $'
|
||||
|
||||
+which ()
|
||||
+{
|
||||
+ type -P $1
|
||||
+}
|
||||
+
|
||||
usage ()
|
||||
{
|
||||
echo "This is abcde v$VERSION."
|
||||
@@ -1,32 +0,0 @@
|
||||
{ stdenv, fetchurl, pkgconfig, glib, gtk, libmowgli
|
||||
, libglade, libmcs, gettext, xlibs, dbus_glib
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "audacious-1.5.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = http://distfiles.atheme.org/audacious-1.5.1.tbz2;
|
||||
sha256 = "1s32pdgx85qkrq15wwmvdw7wbcbxcf3nrhqxi6y72aijqm6fjwnz";
|
||||
};
|
||||
|
||||
buildInputs = [pkgconfig libglade libmcs gettext dbus_glib];
|
||||
|
||||
propagatedBuildInputs = [glib gtk libmowgli libmcs];
|
||||
|
||||
NIX_LDFLAGS = "-rpath ${xlibs.libX11}/lib";
|
||||
|
||||
# Otherwise we barf with "libgcc_s.so.1 must be installed for
|
||||
# pthread_cancel to work" on exit, as it tries to find libgcc_s
|
||||
# dynamically.
|
||||
dontPatchELF = true;
|
||||
|
||||
preBuild = ''
|
||||
ensureDir $out/lib
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Audacious, a media player forked from the Beep Media Player, which was itself an XMMS fork";
|
||||
homepage = http://audacious-media-player.org/;
|
||||
};
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
{ stdenv, fetchurl, pkgconfig, audacious, dbus_glib, gettext
|
||||
, libmad, xlibs, alsaLib, taglib, libmpcdec, libogg, libvorbis
|
||||
, libcdio, libcddb
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "audacious-plugins-1.5.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = http://distfiles.atheme.org/audacious-plugins-1.5.1.tbz2;
|
||||
sha256 = "1ki5bd50g4vi4d0qzxynyrgaq2n4cwhbsxln9rwk8ppphvk9pawc";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
pkgconfig audacious dbus_glib gettext libmad
|
||||
xlibs.libXcomposite alsaLib taglib libmpcdec
|
||||
libogg libvorbis libcdio libcddb
|
||||
];
|
||||
|
||||
preBuild = ''
|
||||
makeFlagsArray=(pluginlibdir=$out/lib/audacious)
|
||||
'';
|
||||
|
||||
NIX_LDFLAGS = "-L${audacious}/lib/audacious"; # needed because we override pluginlibdir
|
||||
|
||||
# `--enable-amidiplug' is to prevent configure from looking in /proc/asound.
|
||||
configureFlags = "--enable-amidiplug";
|
||||
|
||||
meta = {
|
||||
description = "Plugins for the Audacious media player";
|
||||
homepage = http://audacious-media-player.org/;
|
||||
};
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
{ stdenv, fetchurl, wxGTK, pkgconfig, gettext, gtk, glib, zlib }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "audacity-1.3.7";
|
||||
|
||||
NIX_CFLAGS_COMPILE = "-fPIC -lgtk-x11-2.0 -lglib-2.0 -lgobject-2.0 -lz";
|
||||
|
||||
src = fetchurl {
|
||||
url = mirror://sourceforge/audacity/audacity-fullsrc-1.3.7.tar.bz2;
|
||||
sha256 = "1kashc6cc6d5g6i59nqcrl795x1jqdh0lpg3msa1wckfj3hpljmy";
|
||||
};
|
||||
buildInputs = [ wxGTK pkgconfig gettext gtk glib zlib ];
|
||||
|
||||
meta = {
|
||||
description = "Sound editor with graphical UI";
|
||||
homepage = http://audacity.sourceforge.net;
|
||||
license = "GPLv2+";
|
||||
};
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
{stdenv, fetchurl, gettext, ncurses
|
||||
, gtkGUI ? false
|
||||
, pkgconfig ? null
|
||||
, gtk ? null}:
|
||||
|
||||
assert gtkGUI -> pkgconfig != null && gtk != null;
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "aumix-2.8";
|
||||
src = fetchurl {
|
||||
url = http://www.jpj.net/~trevor/aumix/aumix-2.8.tar.bz2;
|
||||
sha256 = "636eef7f400c2f3df489c0d2fa21507e88692113561e75a40a26c52bc422d7fc";
|
||||
};
|
||||
|
||||
buildInputs = [ gettext ncurses ]
|
||||
++ (if gtkGUI then [pkgconfig gtk] else []);
|
||||
|
||||
meta = {
|
||||
longDescription = ''
|
||||
Aumix adjusts an audio mixer from X, the console, a terminal,
|
||||
the command line or a script.
|
||||
'';
|
||||
homepage = http://www.jpj.net/~trevor/aumix.html;
|
||||
license = "GPL";
|
||||
};
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
args: with args;
|
||||
args.stdenv.mkDerivation {
|
||||
name = "beast-0.7.1";
|
||||
|
||||
src = args.fetchurl {
|
||||
url = ftp://beast.gtk.org/pub/beast/v0.7/beast-0.7.1.tar.bz2;
|
||||
sha256 = "0jyl1i1918rsn4296w07fsf6wx3clvad522m3bzgf8ms7gxivg5l";
|
||||
};
|
||||
|
||||
buildInputs =[zlib guile libart_lgpl pkgconfig intltool gtk glib
|
||||
libogg libvorbis libgnomecanvas gettext
|
||||
];
|
||||
|
||||
inherit bash perl;
|
||||
|
||||
patchPhase = ''
|
||||
unset patchPhase; patchPhase
|
||||
sed 's=-DG_DISABLE_DEPRECATED==g' -i `find -type f` # the patches didn't remove all occurences
|
||||
sed 's=/bin/bash=/$bash/bin/bash=g' -i `find -type f`
|
||||
sed 's=/usr/bin/perl=/$perl/bin/bash=g' -i `find -type f`
|
||||
'';
|
||||
|
||||
patches = [
|
||||
(fetchurl {
|
||||
url = mirror://gentoo/distfiles/beast-0.7.1-guile-1.8.diff.bz2;
|
||||
sha256 = "dc5194deff4b0a0eec368a69090db682d0c3113044ce2c2ed017ddfec9d3814e";
|
||||
})
|
||||
./patch.patch # patches taken from gentoo
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "BEAST - the Bedevilled Sound Engine";
|
||||
homepage = http://beast.gtk.org;
|
||||
license = ["GPL-2" "LGPL-2.1"];
|
||||
};
|
||||
}
|
||||
@@ -1,187 +0,0 @@
|
||||
Index: beast-0.7.1/shell/Makefile.in
|
||||
===================================================================
|
||||
--- beast-0.7.1.orig/shell/Makefile.in
|
||||
+++ beast-0.7.1/shell/Makefile.in
|
||||
@@ -859,10 +859,7 @@ check-before: check-installation
|
||||
check-installation:
|
||||
@for p in $(bin_PROGRAMS) ; do \
|
||||
pp="$(DESTDIR)$(bindir)/$$p" ; \
|
||||
- echo "TEST: test -x \"$$pp\"" ; \
|
||||
- test -x "$$pp" || \
|
||||
- { echo "Failed to verify installation of executable: $$pp"; \
|
||||
- exit 1 ; } \
|
||||
+ echo "TEST: test -x \"$$pp\" Test disabled" ; \
|
||||
done
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
Index: beast-0.7.1/shell/Makefile.am
|
||||
===================================================================
|
||||
--- beast-0.7.1.orig/shell/Makefile.am
|
||||
+++ beast-0.7.1/shell/Makefile.am
|
||||
@@ -859,10 +859,7 @@ check-before: check-installation
|
||||
check-installation:
|
||||
@for p in $(bin_PROGRAMS) ; do \
|
||||
pp="$(DESTDIR)$(bindir)/$$p" ; \
|
||||
- echo "TEST: test -x \"$$pp\"" ; \
|
||||
- test -x "$$pp" || \
|
||||
- { echo "Failed to verify installation of executable: $$pp"; \
|
||||
- exit 1 ; } \
|
||||
+ echo "TEST: test -x \"$$pp\" Test disabled" ; \
|
||||
done
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
Index: beast-0.7.1/birnet/birnettests.h
|
||||
===================================================================
|
||||
--- beast-0.7.1.orig/birnet/birnettests.h
|
||||
+++ beast-0.7.1/birnet/birnettests.h
|
||||
@@ -27,6 +27,7 @@
|
||||
|
||||
#include <glib.h>
|
||||
#include <string.h>
|
||||
+#include <signal.h>
|
||||
|
||||
BIRNET_EXTERN_C_BEGIN();
|
||||
|
||||
Index: beast-0.7.1/tools/bseloopfuncs.c
|
||||
===================================================================
|
||||
--- beast-0.7.1.orig/tools/bseloopfuncs.c
|
||||
+++ beast-0.7.1/tools/bseloopfuncs.c
|
||||
@@ -21,6 +21,7 @@
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <math.h>
|
||||
+#include <signal.h>
|
||||
|
||||
typedef struct {
|
||||
gdouble score;
|
||||
--- beast-0.7.1.orig/bse/Makefile.am 2008-06-01 13:12:28.116708321 +0200
|
||||
+++ beast-0.7.1/bse/Makefile.am 2008-06-01 13:12:40.000000000 +0200
|
||||
@@ -10,7 +10,7 @@
|
||||
# need -I$(top_builddir) for <sfi/sficonfig.h>
|
||||
# need -I$(srcdir) for "bseserver.h" in .genprc.c
|
||||
# need -I. (builddir) for "bsecore.genidl.hh" in bsecore.cc
|
||||
-INCLUDES += -I$(top_srcdir) -I$(top_builddir) -I$(srcdir) -I. $(BSE_CFLAGS) -DG_DISABLE_DEPRECATED -DG_DISABLE_CONST_RETURNS
|
||||
+INCLUDES += -I$(top_srcdir) -I$(top_builddir) -I$(srcdir) -I. $(BSE_CFLAGS) -DG_DISABLE_CONST_RETURNS
|
||||
DEFS += $(strip \
|
||||
$(patsubst %, -DG_LOG_DOMAIN=\"BSE\" -DBSE_COMPILATION, \
|
||||
$(filter $(<F), $(bse_sources) $(bse_sources))) \
|
||||
--- beast-0.7.1.orig/bse/zintern/Makefile.am 2008-06-01 13:14:25.880028999 +0200
|
||||
+++ beast-0.7.1/bse/zintern/Makefile.am 2008-06-01 13:14:38.000000000 +0200
|
||||
@@ -4,7 +4,7 @@
|
||||
## GNU Lesser General Public License version 2 or any later version.
|
||||
include $(top_srcdir)/Makefile.decl
|
||||
|
||||
-INCLUDES += -I$(top_srcdir) -I$(top_builddir) $(BSE_CFLAGS) -DG_DISABLE_DEPRECATED -DG_DISABLE_CONST_RETURNS
|
||||
+INCLUDES += -I$(top_srcdir) -I$(top_builddir) $(BSE_CFLAGS) -DG_DISABLE_CONST_RETURNS
|
||||
|
||||
ZFILE_DEFS = $(strip \
|
||||
wave-mono $(srcdir)/wave-mono.bse \
|
||||
--- a/configure.in 2008-06-01 15:19:46.000000000 +0200
|
||||
+++ b/configure.in 2008-06-01 15:27:45.000000000 +0200
|
||||
@@ -159,39 +159,33 @@
|
||||
dnl # Define package requirements.
|
||||
dnl #
|
||||
dnl ## include acintltool.m4 to provide IT_PROG_INTLTOOL
|
||||
-builtin(include, acintltool.m4)dnl
|
||||
-AC_DEFUN([AC_I18N_REQUIREMENTS],
|
||||
-[
|
||||
- ALL_LINGUAS=`cat "$srcdir/po/LINGUAS" | grep -v '^#' | xargs echo -n `
|
||||
- AC_SUBST(ALL_LINGUAS)
|
||||
- AC_SUBST([CONFIG_STATUS_DEPENDENCIES], ['$(top_srcdir)/po/LINGUAS'])
|
||||
-
|
||||
- dnl # versioned BEAST gettext domain (po/)
|
||||
- BST_GETTEXT_DOMAIN=beast-v$BIN_VERSION # version without -rcZ
|
||||
- AC_SUBST(BST_GETTEXT_DOMAIN)
|
||||
- AC_DEFINE_UNQUOTED(BST_GETTEXT_DOMAIN, "$BST_GETTEXT_DOMAIN", [Versioned BEAST gettext domain])
|
||||
- GETTEXT_PACKAGE=$BST_GETTEXT_DOMAIN
|
||||
- AC_SUBST(GETTEXT_PACKAGE)
|
||||
-
|
||||
- dnl # locale directory for all domains
|
||||
- dnl # (AM_GLIB_DEFINE_LOCALEDIR() could do this if it would do AC_SUBST())
|
||||
- saved_prefix="$prefix"
|
||||
- saved_exec_prefix="$exec_prefix"
|
||||
- test "x$prefix" = xNONE && prefix=$ac_default_prefix
|
||||
- test "x$exec_prefix" = xNONE && exec_prefix=$prefix
|
||||
- if test "x$CATOBJEXT" = "x.mo" ; then
|
||||
- beastlocaledir=`eval echo "${libdir}/locale"`
|
||||
- else
|
||||
- beastlocaledir=`eval echo "${datadir}/locale"`
|
||||
- fi
|
||||
- exec_prefix="$saved_exec_prefix"
|
||||
- prefix="$saved_prefix"
|
||||
- AC_SUBST(beastlocaledir)
|
||||
-
|
||||
- dnl # do gettext checks and prepare for intltool
|
||||
- AM_GLIB_GNU_GETTEXT
|
||||
- IT_PROG_INTLTOOL
|
||||
-])
|
||||
+IT_PROG_INTLTOOL([0.35.0])
|
||||
+
|
||||
+dnl # versioned BEAST gettext domain (po/)
|
||||
+BST_GETTEXT_DOMAIN=beast-v$BIN_VERSION # version without -rcZ
|
||||
+AC_SUBST(BST_GETTEXT_DOMAIN)
|
||||
+AC_DEFINE_UNQUOTED(BST_GETTEXT_DOMAIN, "$BST_GETTEXT_DOMAIN", [Versioned BEAST gettext domain])
|
||||
+GETTEXT_PACKAGE=$BST_GETTEXT_DOMAIN
|
||||
+AC_SUBST(GETTEXT_PACKAGE)
|
||||
+
|
||||
+dnl # locale directory for all domains
|
||||
+dnl # (AM_GLIB_DEFINE_LOCALEDIR() could do this if it would do AC_SUBST())
|
||||
+saved_prefix="$prefix"
|
||||
+saved_exec_prefix="$exec_prefix"
|
||||
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
|
||||
+test "x$exec_prefix" = xNONE && exec_prefix=$prefix
|
||||
+if test "x$CATOBJEXT" = "x.mo" ; then
|
||||
+ beastlocaledir=`eval echo "${libdir}/locale"`
|
||||
+else
|
||||
+ beastlocaledir=`eval echo "${datadir}/locale"`
|
||||
+fi
|
||||
+exec_prefix="$saved_exec_prefix"
|
||||
+prefix="$saved_prefix"
|
||||
+AC_SUBST(beastlocaledir)
|
||||
+
|
||||
+dnl # do gettext checks and prepare for intltool
|
||||
+AM_GLIB_GNU_GETTEXT
|
||||
+
|
||||
AC_DEFUN([AC_SFI_REQUIREMENTS],
|
||||
[
|
||||
dnl # check for GLib libs, libbirnet already provides gthread-2.0 and glib-2.0
|
||||
@@ -570,7 +564,6 @@
|
||||
AC_BIRNET_REQUIREMENTS
|
||||
|
||||
# Check requirement sets
|
||||
-AC_I18N_REQUIREMENTS
|
||||
AC_SFI_REQUIREMENTS
|
||||
AC_BSE_REQUIREMENTS
|
||||
AC_BSESCM_REQUIREMENTS
|
||||
--- a/po/POTFILES.in 2008-06-22 15:12:10.000000000 +0200
|
||||
+++ b/po/POTFILES.in 2008-06-22 15:13:28.000000000 +0200
|
||||
@@ -131,3 +131,29 @@
|
||||
plugins/davxtalstrings.c
|
||||
plugins/freeverb/bsefreeverb.c
|
||||
tools/bsewavetool.cc
|
||||
+
|
||||
+beast-gtk/bstgentypes.c
|
||||
+birnet/birnetcpu.cc
|
||||
+birnet/birnetutils.hh
|
||||
+bse/bsebus.genprc.c
|
||||
+bse/bsebusmodule.genidl.hh
|
||||
+bse/bsecontainer.genprc.c
|
||||
+bse/bsecore.genidl.hh
|
||||
+bse/bseieee754.h
|
||||
+bse/bseladspamodule.c
|
||||
+bse/bseparasite.genprc.c
|
||||
+bse/bsesong.genprc.c
|
||||
+bse/bsesource.genprc.c
|
||||
+bse/bsetrack.genprc.c
|
||||
+plugins/artscompressor.genidl.hh
|
||||
+plugins/bseamplifier.genidl.hh
|
||||
+plugins/bsebalance.genidl.hh
|
||||
+plugins/bsecontribsampleandhold.genidl.hh
|
||||
+plugins/bsenoise.genidl.hh
|
||||
+plugins/bsequantizer.genidl.hh
|
||||
+plugins/bsesummation.genidl.hh
|
||||
+plugins/davbassfilter.genidl.hh
|
||||
+plugins/davchorus.genidl.hh
|
||||
+plugins/standardguspatchenvelope.genidl.hh
|
||||
+plugins/standardsaturator.genidl.hh
|
||||
+tests/latency/bselatencytest.genidl.hh
|
||||
@@ -1,11 +1,11 @@
|
||||
{stdenv, fetchurl, pkgconfig, bmp, libmpcdec, taglib}:
|
||||
{stdenv, fetchurl, pkgconfig, bmp, glib, gtk, libmpcdec, taglib}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "bmp-plugin-musepack-1.2";
|
||||
builder = ./builder.sh;
|
||||
src = fetchurl {
|
||||
url = http://files2.musepack.net/linux/plugins/bmp-musepack-1.2.tar.bz2;
|
||||
url = http://nix.cs.uu.nl/dist/tarballs/bmp-musepack-1.2.tar.bz2;
|
||||
md5 = "5fe0c9d341ca37d05c780a478f829a5f";
|
||||
};
|
||||
buildInputs = [pkgconfig bmp libmpcdec taglib];
|
||||
buildInputs = [pkgconfig bmp glib gtk libmpcdec taglib];
|
||||
}
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
source $stdenv/setup
|
||||
|
||||
buildFlags="-f Makefile.bmp"
|
||||
|
||||
installPhase=installPhase
|
||||
installPhase() {
|
||||
ensureDir "$out/lib/bmp/Input"
|
||||
cp libwma.so "$out/lib/bmp/Input"
|
||||
}
|
||||
|
||||
genericBuild
|
||||
@@ -1,11 +0,0 @@
|
||||
{stdenv, fetchurl, pkgconfig, bmp}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "bmp-plugin-wma-1.0.5";
|
||||
builder = ./builder.sh;
|
||||
src = fetchurl {
|
||||
url = http://mcmcc.bat.ru/xmms-wma/xmms-wma-1.0.5.tar.bz2;
|
||||
md5 = "5d62a0f969617aeb40096362c7a8a506";
|
||||
};
|
||||
buildInputs = [pkgconfig bmp];
|
||||
}
|
||||
@@ -5,17 +5,16 @@
|
||||
stdenv.mkDerivation {
|
||||
name = "bmp-0.9.7.1";
|
||||
src = fetchurl {
|
||||
url = mirror://sourceforge/beepmp/bmp-0.9.7.1.tar.gz;
|
||||
url = http://nix.cs.uu.nl/dist/tarballs/bmp-0.9.7.1.tar.gz;
|
||||
md5 = "c25d5a8d49cc5851d13d525a20023c4c";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
pkgconfig alsaLib esound libogg libvorbis id3lib libglade
|
||||
pkgconfig alsaLib esound libogg libvorbis id3lib
|
||||
glib gtk libglade
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Beep Media Player, an XMMS fork";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [glib gtk];
|
||||
}
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
{ fetchurl, stdenv }:
|
||||
|
||||
let version = "0.9";
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "cd-discid-${version}";
|
||||
src = fetchurl {
|
||||
url = "mirror://debian/pool/main/c/cd-discid/cd-discid_${version}.orig.tar.gz";
|
||||
sha256 = "1fx2ky1pb07l1r0bldpw16wdsfzw7a0093ib9v66kmilwy2sq5s9";
|
||||
};
|
||||
|
||||
patches = [ ./install.patch ];
|
||||
|
||||
configurePhase = ''
|
||||
sed -i "s|^[[:blank:]]*prefix *=.*$|prefix = $out|g ;
|
||||
s|^[[:blank:]]*INSTALL *=.*$|INSTALL = install -c|g" \
|
||||
"Makefile";
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = http://lly.org/~rcw/cd-discid/;
|
||||
licence = "GPLv2+";
|
||||
description = "cd-discid, a command-line utility to retrieve a disc's CDDB ID";
|
||||
|
||||
longDescription = ''
|
||||
cd-discid is a backend utility to get CDDB discid information
|
||||
from a CD-ROM disc. It was originally designed for cdgrab (now
|
||||
abcde), but can be used for any purpose requiring CDDB data.
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
--- cd-discid-0.9/Makefile 2003-01-05 21:18:07.000000000 +0100
|
||||
+++ cd-discid-0.9/Makefile 2008-05-26 22:14:56.000000000 +0200
|
||||
@@ -32,9 +32,9 @@ clean:
|
||||
|
||||
install: cd-discid
|
||||
$(INSTALL) -d -m 755 $(bindir)
|
||||
- $(INSTALL) -s -m 755 -o 0 cd-discid $(bindir)
|
||||
+ $(INSTALL) -s -m 755 cd-discid $(bindir)
|
||||
$(INSTALL) -d -m 755 $(mandir)
|
||||
- $(INSTALL) -m 644 -o 0 cd-discid.1 $(mandir)
|
||||
+ $(INSTALL) -m 644 cd-discid.1 $(mandir)
|
||||
|
||||
tarball:
|
||||
@cd .. && tar czvf cd-discid_$(VERSION).orig.tar.gz \
|
||||
@@ -3,13 +3,9 @@
|
||||
stdenv.mkDerivation {
|
||||
name = "cdparanoia-III-alpha9.8";
|
||||
src = fetchurl {
|
||||
url = http://downloads.xiph.org/releases/cdparanoia/cdparanoia-III-alpha9.8.src.tgz;
|
||||
md5 = "7218e778b5970a86c958e597f952f193";
|
||||
url = http://nix.cs.uu.nl/dist/tarballs/cdparanoia-III-alpha9.8.src.tgz;
|
||||
md5 = "7218e778b5970a86c958e597f952f193" ;
|
||||
};
|
||||
|
||||
patches = [./fix.patch];
|
||||
|
||||
meta = {
|
||||
homepage = http://xiph.org/paranoia;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,16 +1,11 @@
|
||||
{stdenv, fetchurl, libogg}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "flac-1.2.1";
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "flac-1.1.2";
|
||||
src = fetchurl {
|
||||
url = mirror://sourceforge/flac/flac-1.2.1.tar.gz;
|
||||
sha256 = "1pry5lgzfg57pga1zbazzdd55fkgk3v5qy4axvrbny5lrr5s8dcn";
|
||||
url = http://nix.cs.uu.nl/dist/tarballs/flac-1.1.2.tar.gz;
|
||||
md5 = "2bfc127cdda02834d0491ab531a20960" ;
|
||||
};
|
||||
|
||||
buildInputs = [libogg];
|
||||
|
||||
meta = {
|
||||
homepage = http://flac.sourceforge.net;
|
||||
};
|
||||
buildInputs = [libogg] ;
|
||||
}
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
{ stdenv, fetchurl, pkgconfig, libgpod, gtk, glib, gettext, perl, perlXMLParser, libglade, flex, libid3tag }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "gtkpod-0.99.14";
|
||||
|
||||
src = fetchurl {
|
||||
url = mirror://sourceforge/gtkpod/gtkpod-0.99.14.tar.gz;
|
||||
sha256 = "0ggcfyhcdlf3br88csdki215k4clxixa192afz6f16k7h8s2iqbk";
|
||||
};
|
||||
buildInputs = [ pkgconfig libgpod gettext perl perlXMLParser gtk libglade flex libid3tag];
|
||||
|
||||
meta = {
|
||||
description = "GTK Manager for an Apple ipod";
|
||||
homepage = http://gtkpod.sourceforge.net;
|
||||
license = "GPLv2+";
|
||||
};
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
args: with args;
|
||||
let localDefs = builderDefs.passthru.function {
|
||||
src =
|
||||
fetchurl {
|
||||
url = http://plugin.org.uk/releases/0.4.15/swh-plugins-0.4.15.tar.gz;
|
||||
sha256 = "0h462s4mmqg4iw7zdsihnrmz2vjg0fd49qxw2a284bnryjjfhpnh";
|
||||
};
|
||||
buildInputs = [fftw ladspaH pkgconfig];
|
||||
configureFlags = [];
|
||||
};
|
||||
in with localDefs;
|
||||
let
|
||||
postInstall = FullDepEntry ("
|
||||
ensureDir \$out/share/ladspa/
|
||||
ln -s \$out/lib/ladspa \$out/share/ladspa/lib
|
||||
") [minInit defEnsureDir];
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "swh-plugins-0.4.15";
|
||||
builder = writeScript "swh-plugins-0.4.15-builder"
|
||||
(textClosure localDefs [doConfigure doMakeInstall
|
||||
postInstall doForceShare]);
|
||||
meta = {
|
||||
description = "LADSPA format audio plugins";
|
||||
inherit src;
|
||||
};
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
args: with args;
|
||||
let
|
||||
src =
|
||||
fetchurl {
|
||||
url = http://www.ladspa.org/ladspa_sdk/ladspa.h.txt;
|
||||
sha256 = "1b908csn85ng9sz5s5d1mqk711cmawain2z8px2ajngihdrynb67";
|
||||
};
|
||||
in
|
||||
let localDefs = builderDefs.passthru.function {
|
||||
buildInputs = [];
|
||||
inherit src;
|
||||
};
|
||||
in with localDefs;
|
||||
let
|
||||
copyFile = FullDepEntry ("
|
||||
ensureDir \$out/include
|
||||
cp ${src} \$out/include/ladspa.h
|
||||
") [minInit defEnsureDir];
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "ladspa.h";
|
||||
builder = writeScript "ladspa.h-builder"
|
||||
(textClosure localDefs [copyFile]);
|
||||
meta = {
|
||||
description = "LADSPA format audio plugins";
|
||||
inherit src;
|
||||
};
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
{stdenv, fetchurl}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "lame-3.97";
|
||||
name = "lame-3.96.1";
|
||||
src = fetchurl {
|
||||
url = mirror://sourceforge/lame/lame-3.97.tar.gz ;
|
||||
sha256 = "05xy9lv6m9s013lzlvhxwvr1586c239xaiiwka52k18hs6k388qa";
|
||||
url = http://nix.cs.uu.nl/dist/tarballs/lame-3.96.1.tar.gz;
|
||||
md5 = "e1206c46a5e276feca11a7149e2fc6ac" ;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
{stdenv, fetchurl, libao, libmad, libid3tag, zlib}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "mpg321-0.2.10";
|
||||
src = fetchurl {
|
||||
url = mirror://sourceforge/mpg321/mpg321-0.2.10.tar.gz;
|
||||
sha256 = "db0c299592b8f1f704f41bd3fc3a2bf138658108588d51af61638c551af1b0d4";
|
||||
};
|
||||
|
||||
buildInputs = [libao libid3tag libmad zlib];
|
||||
|
||||
meta = {
|
||||
description = "Command-line MP3 player.";
|
||||
homepage = http://mpg321.sourceforge.net/;
|
||||
license = "GPLv2";
|
||||
};
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
args:
|
||||
args.stdenv.mkDerivation {
|
||||
|
||||
# some dependencies such as killall have to be installed additionally
|
||||
|
||||
name = "qjackctl-0.3.3";
|
||||
|
||||
src = args.fetchurl {
|
||||
url = http://downloads.sourceforge.net/qjackctl/qjackctl-0.3.3.tar.gz;
|
||||
sha256 = "1z9v208fs79ka6ni3p5v5xb0k5y1wqqm2a9cf903387b9p3fhpxj";
|
||||
};
|
||||
|
||||
buildInputs =(with args; [qt4 alsaLib jackaudio]);
|
||||
|
||||
meta = {
|
||||
description = "qt jackd control gui tool";
|
||||
homepage = http://qjackctl.sourceforge.net/;
|
||||
license = "GPL";
|
||||
};
|
||||
}
|
||||
@@ -1,60 +0,0 @@
|
||||
args :
|
||||
let
|
||||
lib = args.lib;
|
||||
fetchurl = args.fetchurl;
|
||||
FullDepEntry = args.FullDepEntry;
|
||||
|
||||
version = lib.getAttr ["version"] "9.4" args;
|
||||
buildInputs = with args; [gtk glib pkgconfig
|
||||
libXpm gmp gettext libX11 fftw]
|
||||
++ (lib.optional (args ? ruby) args.ruby)
|
||||
++ (lib.optional (args ? mesa) args.mesa)
|
||||
++ (lib.optional (args ? guile) args.guile)
|
||||
++ (lib.optional (args ? libtool) args.libtool)
|
||||
++ (lib.optional (args ? sndlib) args.sndlib)
|
||||
++ (lib.optional (args ? alsaLib) args.alsaLib)
|
||||
++ (lib.optional (args ? jackaudio) args.jackaudio)
|
||||
;
|
||||
configureFlags = ["--with-gtk" "--with-xpm"]
|
||||
++ (lib.optional (args ? ruby) "--with-ruby" )
|
||||
++ (lib.optional (args ? mesa) "--with-gl" )
|
||||
++ (lib.optional (args ? guile) "--with-guile")
|
||||
++ (lib.optional (args ? sndlib) "--with-midi" )
|
||||
++ (lib.optional (args ? alsaLib) "--with-alsa")
|
||||
++ (lib.optional (args ? jackaudio) "--with-jack" )
|
||||
++ [ "--with-fftw" "--htmldir=$out/share/snd/html" "--with-doc-dir=$out/share/snd/html" ]
|
||||
;
|
||||
in
|
||||
rec {
|
||||
src = fetchurl {
|
||||
url = "http://downloads.sourceforge.net/snd/snd-${version}.tar.gz";
|
||||
sha256 = "0zqgfnkvkqxby1k74mwba1r4pb520glcsz5jjmpzm9m41nqnghmm";
|
||||
};
|
||||
|
||||
inherit buildInputs;
|
||||
configureFlags = [];
|
||||
|
||||
/* doConfigure should be specified separately */
|
||||
phaseNames = ["doConfigure" "preBuild" "makeDocsWork"
|
||||
"doMakeInstall" "doForceShare"];
|
||||
|
||||
makeDocsWork = FullDepEntry ''
|
||||
# hackish way to make html docs work
|
||||
h="$out/share/snd/html"; ensureDir "$h"; cp *.html "$h"
|
||||
patch -p1 < ${./doc.patch}
|
||||
sed "s@HTML-DIR@$h@" -i index.scm snd-help.c
|
||||
'' ["defEnsureDir"];
|
||||
|
||||
preBuild = FullDepEntry (''
|
||||
cp config.log /tmp/snd-config.log
|
||||
export NIX_LDFLAGS="$NIX_LDFLAGS -L${args.libX11}/lib -lX11"
|
||||
|
||||
'') ["minInit" "doUnpack" "makeDocsWork"];
|
||||
|
||||
name = "Snd-" + version;
|
||||
meta = {
|
||||
description = "Snd sound editor.";
|
||||
homepage = http://ccrma.stanford.edu/software/snd;
|
||||
inherit src;
|
||||
};
|
||||
}
|
||||
@@ -1,62 +0,0 @@
|
||||
diff --git a/index.scm b/index.scm
|
||||
index 2148a58..713939c 100644
|
||||
--- a/index.scm
|
||||
+++ b/index.scm
|
||||
@@ -18,24 +18,7 @@ and if one is found, and the Snd documentation can be found, calls (html-program
|
||||
(lambda (n)
|
||||
;; look for doc on current dir, then html dir, then global dir
|
||||
;; snd.html is what we'll search for
|
||||
- (let ((dir (if (file-exists? "snd.html")
|
||||
- (getcwd)
|
||||
- (if (and (string? (html-dir))
|
||||
- (file-exists? (string-append (html-dir) "/snd.html")))
|
||||
- (html-dir)
|
||||
- (if (file-exists? "/usr/share/doc/snd-9/snd.html")
|
||||
- "/usr/share/doc/snd-9"
|
||||
- (if (file-exists? "/usr/local/share/doc/snd-9/snd.html")
|
||||
- "/usr/local/share/doc/snd-9"
|
||||
- (if (file-exists? "/usr/doc/snd-9/snd.html")
|
||||
- "/usr/doc/snd-9"
|
||||
- (if (file-exists? "/usr/share/doc/snd-8/snd.html")
|
||||
- "/usr/share/doc/snd-8"
|
||||
- (if (file-exists? "/usr/local/share/doc/snd-8/snd.html")
|
||||
- "/usr/local/share/doc/snd-8"
|
||||
- (if (file-exists? "/usr/doc/snd-8/snd.html")
|
||||
- "/usr/doc/snd-8"
|
||||
- #f))))))))))
|
||||
+ (let (dir "HTML-DIR")
|
||||
(if dir
|
||||
(if (or (string=? (html-program) "netscape")
|
||||
(string=? (html-program) "mozilla")
|
||||
diff --git a/snd-help.c b/snd-help.c
|
||||
index a6557e0..a40a02e 100644
|
||||
--- a/snd-help.c
|
||||
+++ b/snd-help.c
|
||||
@@ -3554,26 +3554,7 @@ static char *doc_files[DOC_DIRECTORIES] = {
|
||||
|
||||
static char *html_directory(void)
|
||||
{
|
||||
- int i;
|
||||
- if (mus_file_probe("snd.html"))
|
||||
- return(mus_getcwd());
|
||||
- if (html_dir(ss))
|
||||
- {
|
||||
- bool happy;
|
||||
- char *hd = NULL;
|
||||
- hd = (char *)CALLOC(snd_strlen(html_dir(ss)) + 16, sizeof(char));
|
||||
- sprintf(hd, html_dir(ss), "/snd.html");
|
||||
- happy = mus_file_probe(hd);
|
||||
- FREE(hd);
|
||||
- if (happy) return(copy_string(html_dir(ss)));
|
||||
- }
|
||||
-#ifdef MUS_DEFAULT_DOC_DIR
|
||||
- if (mus_file_probe(MUS_DEFAULT_DOC_DIR "/snd.html"))
|
||||
- return(copy_string(MUS_DEFAULT_DOC_DIR "/snd.html"));
|
||||
-#endif
|
||||
- for (i = 0; i < DOC_DIRECTORIES; i++)
|
||||
- if (mus_file_probe(doc_files[i])) return(copy_string(doc_directories[i]));
|
||||
- return(NULL);
|
||||
+ return (copy_string ("HTML-DIR"));
|
||||
}
|
||||
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
{stdenv, fetchurl, libogg, libvorbis, libao, pkgconfig, curl, glibc
|
||||
, speex, flac}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "vorbis-tools-1.1.1";
|
||||
src = fetchurl {
|
||||
url = http://downloads.xiph.org/releases/vorbis/vorbis-tools-1.1.1.tar.gz;
|
||||
sha256 = "617b4aa69e600c215b34fa3fd5764bc1d9d205d9d7d9fe7812bde7ec956fcaad";
|
||||
};
|
||||
|
||||
# FIXME: Vorbis-tools expects `libOggFLAC', but this library was
|
||||
# merged with `libFLAC' as of FLAC 1.1.3.
|
||||
buildInputs = [ libogg libvorbis libao pkgconfig curl speex glibc flac ];
|
||||
|
||||
patches = [ ./ogg123-curlopt-mute.patch ];
|
||||
|
||||
meta = {
|
||||
longDescription = ''
|
||||
A set of command-line tools to manipulate Ogg Vorbis audio
|
||||
files, notably the `ogg123' player and the `oggenc' encoder.
|
||||
'';
|
||||
homepage = http://xiph.org/vorbis/;
|
||||
license = "GPLv2";
|
||||
};
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
--- vorbis-tools-1.1.1/ogg123/http_transport.c 2005-06-13 15:11:44.000000000 +0200
|
||||
+++ vorbis-tools-1.1.1/ogg123/http_transport.c 2008-02-12 18:38:41.000000000 +0100
|
||||
@@ -116,7 +116,9 @@ void set_curl_opts (http_private_t *priv
|
||||
if (inputOpts.ProxyTunnel)
|
||||
curl_easy_setopt (handle, CURLOPT_HTTPPROXYTUNNEL, inputOpts.ProxyTunnel);
|
||||
*/
|
||||
+#ifdef CURLOPT_MUTE
|
||||
curl_easy_setopt(handle, CURLOPT_MUTE, 1);
|
||||
+#endif
|
||||
curl_easy_setopt(handle, CURLOPT_ERRORBUFFER, private->error);
|
||||
curl_easy_setopt(handle, CURLOPT_PROGRESSFUNCTION, progress_callback);
|
||||
curl_easy_setopt(handle, CURLOPT_PROGRESSDATA, private);
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
stdenv.mkDerivation {
|
||||
name = "xmms-1.2.10";
|
||||
src = fetchurl {
|
||||
url = http://nixos.org/tarballs/xmms-1.2.10.tar.bz2;
|
||||
url = http://nix.cs.uu.nl/dist/tarballs/xmms-1.2.10.tar.bz2;
|
||||
md5 = "03a85cfc5e1877a2e1f7be4fa1d3f63c";
|
||||
};
|
||||
|
||||
@@ -14,6 +14,5 @@ stdenv.mkDerivation {
|
||||
|
||||
meta = {
|
||||
description = "A music player very similar to Winamp";
|
||||
homepage = http://www.xmms.org;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
{stdenv, fetchurl, x11, libjpeg, libpng, libXmu, freetype, pam}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "slim-1.3.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download.berlios.de/slim/${name}.tar.gz";
|
||||
sha256 = "0xqgzvg6h1bd29140mcgg9r16vcmskz7zmym7i7jlz7x9c1a9mxc";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Allow the paths of the configuration file and theme directory to
|
||||
# be set at runtime.
|
||||
./runtime-paths.patch
|
||||
|
||||
# Fix a bug in slim's PAM support: the "resp" argument to the
|
||||
# conversation function is a pointer to a pointer to an array of
|
||||
# pam_response structures, not a pointer to an array of pointers to
|
||||
# pam_response structures. Of course C can't tell the difference...
|
||||
./pam.patch
|
||||
];
|
||||
|
||||
buildInputs = [x11 libjpeg libpng libXmu freetype pam];
|
||||
|
||||
NIX_CFLAGS_COMPILE = "-I${freetype}/include/freetype2";
|
||||
|
||||
preBuild = ''
|
||||
substituteInPlace Makefile --replace /usr /no-such-path
|
||||
makeFlagsArray=(CC=gcc CXX=g++ PREFIX=$out MANDIR=$out/share/man CFGDIR=$out/etc USE_PAM=1)
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = http://slim.berlios.de;
|
||||
};
|
||||
}
|
||||
@@ -1,89 +0,0 @@
|
||||
diff -rc slim-1.3.1-orig/app.cpp slim-1.3.1/app.cpp
|
||||
*** slim-1.3.1-orig/app.cpp 2008-09-26 02:54:15.000000000 +0200
|
||||
--- slim-1.3.1/app.cpp 2009-02-17 19:50:06.000000000 +0100
|
||||
***************
|
||||
*** 41,48 ****
|
||||
Panel* panel = *static_cast<Panel**>(appdata_ptr);
|
||||
int result = PAM_SUCCESS;
|
||||
for (int i=0; i<num_msg; i++){
|
||||
! resp[i]->resp=0;
|
||||
! resp[i]->resp_retcode=0;
|
||||
switch(msg[i]->msg_style){
|
||||
case PAM_PROMPT_ECHO_ON:
|
||||
// We assume PAM is asking for the username
|
||||
--- 41,48 ----
|
||||
Panel* panel = *static_cast<Panel**>(appdata_ptr);
|
||||
int result = PAM_SUCCESS;
|
||||
for (int i=0; i<num_msg; i++){
|
||||
! (*resp)[i].resp=0;
|
||||
! (*resp)[i].resp_retcode=0;
|
||||
switch(msg[i]->msg_style){
|
||||
case PAM_PROMPT_ECHO_ON:
|
||||
// We assume PAM is asking for the username
|
||||
***************
|
||||
*** 51,63 ****
|
||||
case Panel::Suspend:
|
||||
case Panel::Halt:
|
||||
case Panel::Reboot:
|
||||
! resp[i]->resp=strdup("root");
|
||||
break;
|
||||
|
||||
case Panel::Console:
|
||||
case Panel::Exit:
|
||||
case Panel::Login:
|
||||
! resp[i]->resp=strdup(panel->GetName().c_str());
|
||||
break;
|
||||
}
|
||||
break;
|
||||
--- 51,63 ----
|
||||
case Panel::Suspend:
|
||||
case Panel::Halt:
|
||||
case Panel::Reboot:
|
||||
! (*resp)[i].resp=strdup("root");
|
||||
break;
|
||||
|
||||
case Panel::Console:
|
||||
case Panel::Exit:
|
||||
case Panel::Login:
|
||||
! (*resp)[i].resp=strdup(panel->GetName().c_str());
|
||||
break;
|
||||
}
|
||||
break;
|
||||
***************
|
||||
*** 73,79 ****
|
||||
|
||||
default:
|
||||
panel->EventHandler(Panel::Get_Passwd);
|
||||
! resp[i]->resp=strdup(panel->GetPasswd().c_str());
|
||||
break;
|
||||
}
|
||||
break;
|
||||
--- 73,79 ----
|
||||
|
||||
default:
|
||||
panel->EventHandler(Panel::Get_Passwd);
|
||||
! (*resp)[i].resp=strdup(panel->GetPasswd().c_str());
|
||||
break;
|
||||
}
|
||||
break;
|
||||
***************
|
||||
*** 89,97 ****
|
||||
}
|
||||
if (result!=PAM_SUCCESS){
|
||||
for (int i=0; i<num_msg; i++){
|
||||
! if (resp[i]->resp==0) continue;
|
||||
! free(resp[i]->resp);
|
||||
! resp[i]->resp=0;
|
||||
};
|
||||
free(*resp);
|
||||
*resp=0;
|
||||
--- 89,97 ----
|
||||
}
|
||||
if (result!=PAM_SUCCESS){
|
||||
for (int i=0; i<num_msg; i++){
|
||||
! if ((*resp)[i].resp==0) continue;
|
||||
! free((*resp)[i].resp);
|
||||
! (*resp)[i].resp=0;
|
||||
};
|
||||
free(*resp);
|
||||
*resp=0;
|
||||
@@ -1,41 +0,0 @@
|
||||
diff -rc slim-1.2.6-orig/app.cpp slim-1.2.6/app.cpp
|
||||
*** slim-1.2.6-orig/app.cpp Fri Sep 15 23:00:37 2006
|
||||
--- slim-1.2.6/app.cpp Sun Feb 25 17:30:50 2007
|
||||
***************
|
||||
*** 113,119 ****
|
||||
|
||||
// Read configuration and theme
|
||||
cfg = new Cfg;
|
||||
! cfg->readConf(CFGFILE);
|
||||
string themebase = "";
|
||||
string themefile = "";
|
||||
string themedir = "";
|
||||
--- 113,121 ----
|
||||
|
||||
// Read configuration and theme
|
||||
cfg = new Cfg;
|
||||
! char *cfgfile = getenv("SLIM_CFGFILE");
|
||||
! if (!cfgfile) cfgfile = CFGFILE;
|
||||
! cfg->readConf(cfgfile);
|
||||
string themebase = "";
|
||||
string themefile = "";
|
||||
string themedir = "";
|
||||
***************
|
||||
*** 121,127 ****
|
||||
if (testing) {
|
||||
themeName = testtheme;
|
||||
} else {
|
||||
! themebase = string(THEMESDIR) + "/";
|
||||
themeName = cfg->getOption("current_theme");
|
||||
string::size_type pos;
|
||||
if ((pos = themeName.find(",")) != string::npos) {
|
||||
--- 123,131 ----
|
||||
if (testing) {
|
||||
themeName = testtheme;
|
||||
} else {
|
||||
! char *themesdir = getenv("SLIM_THEMESDIR");
|
||||
! if (!themesdir) themesdir = THEMESDIR;
|
||||
! themebase = string(themesdir) + "/";
|
||||
themeName = cfg->getOption("current_theme");
|
||||
string::size_type pos;
|
||||
if ((pos = themeName.find(",")) != string::npos) {
|
||||
@@ -1,17 +0,0 @@
|
||||
args : with args;
|
||||
stdenv.mkDerivation {
|
||||
name = "bvi-1.3.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = http://prdownloads.sourceforge.net/bvi/bvi-1.3.2.src.tar.gz;
|
||||
sha256 = "110wxqnyianqamxq4y53drqqxb9vp4k2fcvic45qggvlqkqhlfgz";
|
||||
};
|
||||
|
||||
buildInputs = [ncurses];
|
||||
|
||||
meta = {
|
||||
description = "hex editor with vim style keybindings";
|
||||
homepage = http://bvi.sourceforge.net/download.html;
|
||||
license = "GPL2";
|
||||
};
|
||||
}
|
||||
@@ -1,96 +0,0 @@
|
||||
args: with args; let
|
||||
|
||||
# hint: eclipse -data <dir to save global eclipse settings>
|
||||
|
||||
eclipsePlugin = name : src : stdenv.mkDerivation {
|
||||
inherit src;
|
||||
name = "${name}-eclipse-plugin";
|
||||
phases = "unpackPhase";
|
||||
buildInputs = [ args.unzip ];
|
||||
unpackPhase = ''
|
||||
mkdir tmp; cd tmp
|
||||
unpackFile "$src"
|
||||
[ -d ./eclipse ] || { # if plugin doesn't contain the eclipse directory itself create it (eg viPlugin)
|
||||
mkdir "$TMP/eclipse"
|
||||
mv * "$TMP/eclipse"
|
||||
cd "$TMP"
|
||||
}
|
||||
ensureDir $out;
|
||||
mv eclipse "$out"
|
||||
'';
|
||||
};
|
||||
|
||||
eclipseEnv = {name, eclipse, links}: runCommand name { inherit links eclipse; } ''
|
||||
ensureDir $out/eclipse/links;
|
||||
cp -r "$eclipse/bin" "$out/bin"
|
||||
for f in $eclipse/eclipse/*; do
|
||||
# using ln eclipse doesn't take the correct link folder :-( (TODO)
|
||||
# ln -s "$f" "$out/eclipse/$(basename "$f")"
|
||||
cp -r "$f" "$out/eclipse/$(basename "$f")"
|
||||
done
|
||||
# create links
|
||||
for link in $links; do
|
||||
echo "path=$link" >> "$out/eclipse/links/$(basename "$link").link"
|
||||
done
|
||||
'';
|
||||
|
||||
# mmh, this derivation is superfluous. We could also create them directly
|
||||
# instead of symlinking them into the final env build by buildEnv
|
||||
linkFile = deriv : writeTextFile {
|
||||
name = "${deriv.name}-eclipse-feature-link";
|
||||
destination = "/eclipse/links/${deriv.name}.link";
|
||||
};
|
||||
|
||||
attr = rec {
|
||||
eclipse = import ( ../eclipse-new + "/${version}/eclipse.nix") args; # without any additional plugins, why can't I use ./ instead of ../eclipse-new ?
|
||||
|
||||
plugins = rec {
|
||||
|
||||
viPlugin = { # see its license!
|
||||
plugin = eclipsePlugin "viPlugin_1.15.6" (fetchurl {
|
||||
url = http://www.satokar.com/viplugin/files/viPlugin_1.15.6.zip;
|
||||
sha256 = "0p53q45a754j143pnnp51rjwj7lzawcxfy9xzpjasdic4a2l0f96";
|
||||
# license = "Other/Proprietary License with Free Trial";
|
||||
});
|
||||
};
|
||||
|
||||
# PHP developement
|
||||
emfSdoXsdSDK232 = {
|
||||
plugin = eclipsePlugin "emf-sdo-xsd-SDK-2.3.2" (fetchurl {
|
||||
url = http://eclipsemirror.yoxos.com/eclipse.org/modeling/emf/emf/downloads/drops/2.3.2/R200802051830/emf-sdo-xsd-SDK-2.3.2.zip;
|
||||
sha256 = "1k20fn47x1giwhc80rzkqaw3mn0p3861sjp7aw39842lv2hjwn1c";
|
||||
});
|
||||
};
|
||||
gefSDK332 = {
|
||||
plugin = eclipsePlugin "GEF-SDK-3.3.2" (fetchurl {
|
||||
url = http://ftp-stud.fht-esslingen.de/pub/Mirrors/eclipse/tools/gef/downloads/drops/3.3.2/R200802211602/GEF-SDK-3.3.2.zip;
|
||||
sha256 = "1pk5qlwk0iyvs85s966y96ks8vq1g81fivvbf4lh43155rg0z037";
|
||||
});
|
||||
};
|
||||
wtpSdkR202X = {
|
||||
plugin = eclipsePlugin "wtp-sdk-R-2.0.2-20080223205547" (fetchurl {
|
||||
url = http://ftp.wh2.tu-dresden.de/pub/mirrors/eclipse/webtools/downloads/drops/R2.0/R-2.0.2-20080223205547/wtp-sdk-R-2.0.2-20080223205547.zip;
|
||||
sha256 = "0hmmmqzcd67jir2gmjd0xri5w2434xb2dk21hpgcv2qp0h9hhx0f";
|
||||
});
|
||||
};
|
||||
pdt = {
|
||||
deps = [ wtpSdkR202X gefSDK332 emfSdoXsdSDK232 ];
|
||||
plugin = eclipsePlugin "pdt-runtime-1.0.3" (fetchurl {
|
||||
url = http://sunsite.informatik.rwth-aachen.de:3080/eclipse/tools/pdt/downloads/drops/1.0.3/R200806030000/pdt-runtime-1.0.3.zip;
|
||||
sha256 = "0wd2vc9bqrk5mqj5al2ichm8lxlf7gwifsb9lzv1d896j04ilm96";
|
||||
});
|
||||
};
|
||||
};
|
||||
};
|
||||
pluginToList = a : [ a.plugin ] ++ lib.optionals (a ? deps ) (lib.concatMap pluginToList a.deps);
|
||||
in
|
||||
eclipseEnv {
|
||||
name = "eclipse-${version}-with-plugins";
|
||||
inherit (attr) eclipse;
|
||||
links =
|
||||
# example custom config: eclipse = { plugins = {eclipse, version, plugins } : let p = plugins; in [p.pdt]; };
|
||||
let userChosenPlugins = (getConfig [ "eclipse" "plugins" ] ( {eclipse, version, plugins} : [] ))
|
||||
{ inherit (attr) eclipse plugins; inherit version; };
|
||||
in # concatenate plugins and plugin dependencies
|
||||
(lib.uniqList { inputList = lib.concatMap pluginToList userChosenPlugins; });
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
--- a/build.xml 2008-03-02 14:34:05.000000000 +0100
|
||||
+++ b/build.xml 2008-03-02 14:34:57.000000000 +0100
|
||||
@@ -291,19 +291,6 @@
|
||||
</condition>
|
||||
<property name="bootclasspath" refid="default.bootclasspath" />
|
||||
|
||||
- <!--set the compiler and compiler arguments-->
|
||||
- <!--the default compiler is set to the one used by eclipse rel. eng. -->
|
||||
- <condition property="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter">
|
||||
- <available file="${basedir}/ecj.jar" />
|
||||
- </condition>
|
||||
- <fail message="The Eclipse compiler (ecj.jar) cannot be found.">
|
||||
- <condition>
|
||||
- <not>
|
||||
- <equals arg1="${build.compiler}" arg2="org.eclipse.jdt.core.JDTCompilerAdapter" />
|
||||
- </not>
|
||||
- </condition>
|
||||
- </fail>
|
||||
-
|
||||
<property name="compilerArg" value="-enableJavadoc -encoding ISO-8859-1" />
|
||||
<property name="javacSource" value="1.6" />
|
||||
<property name="javacTarget" value="1.6" />
|
||||
@@ -1,53 +0,0 @@
|
||||
# Note, if you want to install plugins using the update manager you should
|
||||
# copy the store path to a local directory and chown -R $USER yourcopy
|
||||
# Then start your local copy
|
||||
|
||||
args: with args;
|
||||
let arch = if stdenv.system == "x86_64-linux" then "x86_64"
|
||||
else if stdenv.system == "i686-linux" then "x86"
|
||||
else throw "not supported system";
|
||||
in
|
||||
args.stdenv.mkDerivation rec {
|
||||
name = "eclipse-classic-3.3.1.1";
|
||||
|
||||
unpackPhase = "unzip \$src; set -x ";
|
||||
buildInputs = [ unzip jdk gtk glib libXtst ant makeWrapper];
|
||||
|
||||
|
||||
patches=./build-with-jdk-compiler.patch;
|
||||
|
||||
buildPhase = "./build -os linux -ws gtk -arch ${arch}";
|
||||
|
||||
libraries = [gtk glib libXtst];
|
||||
|
||||
installPhase = "
|
||||
t=\$out/share/${name}
|
||||
ensureDir \$t \$out/bin
|
||||
cd result
|
||||
tar xfz linux-gtk-*.tar.gz
|
||||
mv eclipse \$out
|
||||
"
|
||||
#copied from other eclipse expressions
|
||||
+" rpath=
|
||||
for i in \$libraries; do
|
||||
rpath=\$rpath\${rpath:+:}\$i/lib
|
||||
done
|
||||
find \$out \\( -type f -a -perm +0100 \\) \\
|
||||
-print \\
|
||||
-exec patchelf --interpreter \"$(cat \$NIX_GCC/nix-support/dynamic-linker)\" \\
|
||||
--set-rpath \"\$rpath\" {} \\;
|
||||
|
||||
# Make a wrapper script so that the proper JDK is found.
|
||||
makeWrapper \$out/eclipse/eclipse \$out/bin/eclipse \\
|
||||
--prefix PATH \":\" \"\$jdk/bin\" \\
|
||||
--prefix LD_LIBRARY_PATH \":\" \"\$rpath\"
|
||||
sed -e 's=exec.*=exec \$(dirname $0)/../eclipse/eclipse $@=' -i \$out/bin/eclipse
|
||||
";
|
||||
# using dirname so that eclipse still runs after copying the whole store
|
||||
# directory somewhere else (so that you can use the update manager
|
||||
|
||||
src = args.fetchurl {
|
||||
url = http://mawercer.de/~nix/iyyx4hs1mgh1b1wa78j07pgq9k882m2k-eclipse-sourceBuild-srcIncluded-3.3.1.1.zip;
|
||||
sha256 = "0n56i7ml816f839704qlkgs5ahl0iqgwc80kjq7n7g5rl9a4vhp4";
|
||||
};
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
--- a/build.xml 2008-03-02 14:34:05.000000000 +0100
|
||||
+++ b/build.xml 2008-03-02 14:34:57.000000000 +0100
|
||||
@@ -291,19 +291,6 @@
|
||||
</condition>
|
||||
<property name="bootclasspath" refid="default.bootclasspath" />
|
||||
|
||||
- <!--set the compiler and compiler arguments-->
|
||||
- <!--the default compiler is set to the one used by eclipse rel. eng. -->
|
||||
- <condition property="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter">
|
||||
- <available file="${basedir}/ecj.jar" />
|
||||
- </condition>
|
||||
- <fail message="The Eclipse compiler (ecj.jar) cannot be found.">
|
||||
- <condition>
|
||||
- <not>
|
||||
- <equals arg1="${build.compiler}" arg2="org.eclipse.jdt.core.JDTCompilerAdapter" />
|
||||
- </not>
|
||||
- </condition>
|
||||
- </fail>
|
||||
-
|
||||
<property name="compilerArg" value="-enableJavadoc -encoding ISO-8859-1" />
|
||||
<property name="javacSource" value="1.6" />
|
||||
<property name="javacTarget" value="1.6" />
|
||||
@@ -1,30 +1,36 @@
|
||||
source $stdenv/setup
|
||||
source $makeWrapper
|
||||
|
||||
unpackFile $src
|
||||
ensureDir $out
|
||||
mv eclipse $out/
|
||||
|
||||
# Unpack the jars that contain .so files.
|
||||
#echo "unpacking some jars..."
|
||||
#for i in $(find $out -name "*.linux*.jar"); do
|
||||
# echo $i
|
||||
# cd $(dirname $i) && $jdk/bin/jar -x < $i
|
||||
# rm $i
|
||||
#done
|
||||
|
||||
# Set the dynamic linker and RPATH.
|
||||
rpath=
|
||||
for i in $libraries; do
|
||||
rpath=$rpath${rpath:+:}$i/lib
|
||||
done
|
||||
glibc=$(cat $NIX_GCC/nix-support/orig-glibc)
|
||||
find $out \( -type f -a -perm +0100 \) \
|
||||
-print \
|
||||
-exec patchelf --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
|
||||
-exec patchelf --interpreter $glibc/lib/ld-linux.so.* \
|
||||
--set-rpath "$rpath" {} \;
|
||||
#find $out \( -type f -a -name "*.so*" \) \
|
||||
# -print \
|
||||
# -exec patchelf --set-rpath "$rpath" {} \;
|
||||
|
||||
# Make a wrapper script so that the proper JDK is found.
|
||||
# don't use makeWrapper in order to change the last line.
|
||||
|
||||
ensureDir $out/bin
|
||||
cat >> $out/bin/eclipse << EOF
|
||||
#! /bin/sh -e
|
||||
export PATH=${jdk}/bin\${PATH:+:}\$PATH
|
||||
export LD_LIBRARY_PATH=$rpath\${LD_LIBRARY_PATH:+:}\$LD_LIBRARY_PATH
|
||||
exec \$(dirname $0)/../eclipse/eclipse $@
|
||||
EOF
|
||||
chmod +x $out/bin/eclipse
|
||||
makeWrapper $out/eclipse/eclipse $out/bin/eclipse \
|
||||
--prefix PATH ":" "$jdk/bin" \
|
||||
--prefix LD_LIBRARY_PATH ":" "$rpath"
|
||||
|
||||
ensureDir plugin-working-dir
|
||||
workingdir="$(pwd)/plugin-working-dir"
|
||||
|
||||
@@ -1,33 +1 @@
|
||||
# recommended installation:
|
||||
# nix-build -A eclipsesdk
|
||||
# then cp -r $store-path ~/my-eclipse; chmod -R 777 ~/my-eclipse # ugh! I'm to lazy to assign permissions properly
|
||||
# maybe also using a wrapper such as this (lower values should suffice for most needs)
|
||||
# eclipseWrapper () {
|
||||
# "$@" -vmargs -Xms2048m -Xmx2048m -XX:MaxPermSize=2048m
|
||||
# }
|
||||
#
|
||||
# Why use a local copy? This way it's easier to use the update manager to get plugins :-)
|
||||
|
||||
|
||||
{fetchurl, stdenv, jdk, gtk, glib, libXtst, plugins ? []}:
|
||||
|
||||
let {
|
||||
body =
|
||||
stdenv.mkDerivation {
|
||||
name = "eclipse-sdk-3.5M6";
|
||||
builder = ./builder.sh;
|
||||
src = bindist;
|
||||
buildInputs = [];
|
||||
inherit jdk plugins;
|
||||
libraries = [gtk glib libXtst];
|
||||
};
|
||||
|
||||
bindist =
|
||||
if (stdenv.system == "x86_64-linux") then fetchurl {
|
||||
url = ftp://sunsite.informatik.rwth-aachen.de/pub/mirror/eclipse/S-3.5M6-200903130100/eclipse-SDK-3.5M6-linux-gtk-x86_64.tar.gz;
|
||||
sha256 = "10p4idp5rcdf7xqwfk3kvmjxhi8x1v835m0y4pn9q4nhfb5643pi";
|
||||
} else fetchurl {
|
||||
url = ftp://mirror.micromata.de/eclipse/eclipse/downloads/drops/S-3.5M6-200903130100/eclipse-SDK-3.5M6-linux-gtk.tar.gz;
|
||||
sha256 = "1z8j26b632ydhqrmwgbcqgiq7f1a542jam06z2h62mcbqazrcyah";
|
||||
};
|
||||
}
|
||||
import ./eclipse-sdk-3.1.2.nix
|
||||
@@ -12,7 +12,7 @@ let {
|
||||
|
||||
bindist =
|
||||
fetchurl {
|
||||
url = http://sunsite.informatik.rwth-aachen.de/eclipse/downloads/drops/R-3.1-200506271435/eclipse-SDK-3.1-linux-gtk.tar.gz;
|
||||
url = http://nix.cs.uu.nl/dist/tarballs/eclipse-SDK-3.1-linux-gtk.tar.gz;
|
||||
md5 = "0441c11cc5af1e84ed3be322929899e8";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{stdenv, fetchurl}:
|
||||
|
||||
fetchurl {
|
||||
url = http://www.ii.uib.no/~karltk/spoofax/plugins/org.spoofax.editor_0.3.0.jar;
|
||||
url = http://nix.cs.uu.nl/dist/tarballs/org.spoofax.editor_0.3.0.jar;
|
||||
md5 = "ff66d229c774f840ec8285f64c0f95bc";
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{stdenv, fetchurl}:
|
||||
|
||||
fetchurl {
|
||||
url = http://nixos.org/tarballs/org.spoofax.editor_0.3.10.jar;
|
||||
url = http://nix.cs.uu.nl/dist/tarballs/org.spoofax.editor_0.3.10.jar;
|
||||
md5 = "ff77853e750e19a9b8d380c17ea27f3d";
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{stdenv, fetchurl}:
|
||||
|
||||
fetchurl {
|
||||
url = http://www.ii.uib.no/~karltk/spoofax/plugins/org.spoofax.editor_0.3.11.jar;
|
||||
url = http://nix.cs.uu.nl/dist/tarballs/org.spoofax.editor_0.3.11.jar;
|
||||
md5 = "c36941afcb0e538e16fafd594eae128e";
|
||||
}
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
{ fetchurl, stdenv }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "ed-1.2";
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/ed/${name}.tar.gz";
|
||||
sha256 = "1jhw050fzaffjf5qdj1ccn7alngam7yhd5zpzyxvrjphwmkd46kx";
|
||||
};
|
||||
|
||||
doCheck = true;
|
||||
|
||||
meta = {
|
||||
description = "GNU ed, an implementation of the standard Unix editor";
|
||||
|
||||
longDescription = ''
|
||||
GNU ed is a line-oriented text editor. It is used to create,
|
||||
display, modify and otherwise manipulate text files, both
|
||||
interactively and via shell scripts. A restricted version of ed,
|
||||
red, can only edit files in the current directory and cannot
|
||||
execute shell commands. Ed is the "standard" text editor in the
|
||||
sense that it is the original editor for Unix, and thus widely
|
||||
available. For most purposes, however, it is superseded by
|
||||
full-screen editors such as GNU Emacs or GNU Moe.
|
||||
'';
|
||||
|
||||
license = "GPLv3+";
|
||||
|
||||
homepage = http://www.gnu.org/software/ed/;
|
||||
};
|
||||
}
|
||||
@@ -1,40 +0,0 @@
|
||||
{ fetchurl, stdenv, ncurses }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "elvis-2.2_0";
|
||||
|
||||
src = fetchurl {
|
||||
url = ftp://ftp.cs.pdx.edu/pub/elvis/elvis-2.2_0.tar.gz;
|
||||
sha256 = "182fj9qzyq6cjq1r849gpam6nq9smwv9f9xwaq84961p56r6d14s";
|
||||
};
|
||||
|
||||
buildInputs = [ ncurses ];
|
||||
|
||||
patchPhase = ''
|
||||
sed -i s/-lcurses/-lncurses/ configure
|
||||
'';
|
||||
|
||||
preConfigure = ''
|
||||
ensureDir $out/share/man/man1
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
ensureDir $out/bin $out/share/elvis $out/share/elvis/doc
|
||||
cp elvis ref elvtags elvfmt $out/bin
|
||||
cp -R data/* $out/share/elvis
|
||||
cp doc/* $out/share/elvis/doc
|
||||
|
||||
ensureDir $out/share/man/man1
|
||||
for a in doc/*.man; do
|
||||
cp $a $out/share/man/man1/`basename $a .man`.1
|
||||
done
|
||||
'';
|
||||
|
||||
configureFlags = "--ioctl=termios";
|
||||
|
||||
meta = {
|
||||
homepage = http://elvis.vi-editor.org/;
|
||||
description = "A vi clone for Unix and other operating systems";
|
||||
license = "free";
|
||||
};
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
source $stdenv/setup
|
||||
|
||||
myglibc=`cat ${NIX_GCC}/nix-support/orig-libc`
|
||||
myglibc=`cat ${NIX_GCC}/nix-support/orig-glibc`
|
||||
echo "glibc: $myglibc"
|
||||
|
||||
postConfigure() {
|
||||
34
pkgs/applications/editors/emacs-22-aa/default.nix
Normal file
34
pkgs/applications/editors/emacs-22-aa/default.nix
Normal file
@@ -0,0 +1,34 @@
|
||||
{ xawSupport ? true
|
||||
, xpmSupport ? true
|
||||
, xaw3dSupport ? false
|
||||
, gtkGUI ? false
|
||||
, xftSupport ? false
|
||||
, stdenv, fetchurl, x11, libXaw ? null, libXpm ? null, Xaw3d ? null
|
||||
, pkgconfig ? null, gtk ? null, libXft ? null, libpng ? null
|
||||
}:
|
||||
|
||||
assert xawSupport -> libXaw != null;
|
||||
assert xpmSupport -> libXpm != null;
|
||||
assert xaw3dSupport -> Xaw3d != null;
|
||||
assert gtkGUI -> pkgconfig != null && gtk != null;
|
||||
assert xftSupport -> libXft != null && libpng != null; # libpng = probably a bug
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "emacs-22.0.50-pre-xft";
|
||||
builder = ./builder.sh;
|
||||
src = fetchurl {
|
||||
url = http://nix.cs.uu.nl/dist/tarballs/emacs-22.0.50-pre-xft.tar.bz2;
|
||||
md5 = "4f96ada6f18513aeb70adc27b7ac862f";
|
||||
};
|
||||
patches = [./crt.patch];
|
||||
buildInputs = [
|
||||
x11
|
||||
(if xawSupport then libXaw else null)
|
||||
(if xpmSupport then libXpm else null)
|
||||
(if xaw3dSupport then Xaw3d else null)
|
||||
]
|
||||
++ (if gtkGUI then [pkgconfig gtk] else [])
|
||||
++ (if xftSupport then [libXft libpng] else []);
|
||||
configureFlags =
|
||||
if gtkGUI then ["--with-x-toolkit=gtk" "--with-xft"] else [];
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
name = "cua-mode-2.10";
|
||||
builder = ./builder.sh;
|
||||
src = fetchurl {
|
||||
url = http://nixos.org/tarballs/cua-mode-2.10.el;
|
||||
url = http://nix.cs.uu.nl/dist/tarballs/cua-mode-2.10.el;
|
||||
md5 = "5bf5e43f5f38c8383868c7c6c5baca09";
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
source $stdenv/setup
|
||||
|
||||
mkdir -p $out/emacs/site-lisp
|
||||
tar zxvf $src
|
||||
cp haskell-mode*/*.el $out/emacs/site-lisp
|
||||
cp haskell-mode*/*.hs $out/emacs/site-lisp
|
||||
@@ -0,0 +1,8 @@
|
||||
{stdenv, fetchurl}: stdenv.mkDerivation {
|
||||
name = "haskell-mode-1.45";
|
||||
builder = ./builder.sh;
|
||||
src = fetchurl {
|
||||
url = http://nix.cs.uu.nl/dist/tarballs/haskell-mode-1.45.tar.gz;
|
||||
md5 = "c609998580cdb9ca8888c7d47d22ca3b";
|
||||
};
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
name = "nxml-mode-20041004";
|
||||
builder = ./builder.sh;
|
||||
src = fetchurl {
|
||||
url = http://nixos.org/tarballs/nxml-mode-20041004.tar.gz;
|
||||
url = http://nix.cs.uu.nl/dist/tarballs/nxml-mode-20041004.tar.gz;
|
||||
md5 = "ac137024cf337d6f11d8ab278d39b4db";
|
||||
};
|
||||
}
|
||||
@@ -1,28 +1,13 @@
|
||||
source $stdenv/setup
|
||||
|
||||
preConfigure=preConfigure
|
||||
preConfigure() {
|
||||
libc=$(cat ${NIX_GCC}/nix-support/orig-libc)
|
||||
echo "libc: $libc"
|
||||
myglibc=`cat ${NIX_GCC}/nix-support/orig-glibc`
|
||||
echo "glibc: $myglibc"
|
||||
|
||||
case "${system}" in
|
||||
x86_64-*) glibclibdir=lib64 ;;
|
||||
*) glibclibdir=lib ;;
|
||||
esac
|
||||
|
||||
for i in src/s/*.h src/m/*.h; do
|
||||
substituteInPlace $i \
|
||||
--replace /usr/${glibclibdir}/crt1.o $libc/${glibclibdir}/crt1.o \
|
||||
--replace /usr/${glibclibdir}/crti.o $libc/${glibclibdir}/crti.o \
|
||||
--replace /usr/${glibclibdir}/crtn.o $libc/${glibclibdir}/crtn.o \
|
||||
--replace /usr/lib/crt1.o $libc/${glibclibdir}/crt1.o \
|
||||
--replace /usr/lib/crti.o $libc/${glibclibdir}/crti.o \
|
||||
--replace /usr/lib/crtn.o $libc/${glibclibdir}/crtn.o
|
||||
done
|
||||
|
||||
for i in Makefile.in ./src/Makefile.in ./lib-src/Makefile.in ./leim/Makefile.in; do
|
||||
substituteInPlace $i --replace /bin/pwd pwd
|
||||
done
|
||||
postConfigure() {
|
||||
cp $myglibc/lib/crt1.o src
|
||||
cp $myglibc/lib/crti.o src
|
||||
cp $myglibc/lib/crtn.o src
|
||||
}
|
||||
postConfigure=postConfigure
|
||||
|
||||
genericBuild
|
||||
|
||||
41
pkgs/applications/editors/emacs-22/crt.patch
Normal file
41
pkgs/applications/editors/emacs-22/crt.patch
Normal file
@@ -0,0 +1,41 @@
|
||||
Only in emacs-21.3: configure.in~
|
||||
Only in emacs-21.3: patchfile
|
||||
Only in emacs-21.3/src: Makefile.in~
|
||||
diff -rc emacs-orig/src/s/gnu-linux.h emacs-21.3/src/s/gnu-linux.h
|
||||
*** emacs-orig/src/s/gnu-linux.h 2001-09-28 17:50:04.000000000 +0200
|
||||
--- emacs-21.3/src/s/gnu-linux.h 2004-10-06 13:13:19.000000000 +0200
|
||||
***************
|
||||
*** 173,179 ****
|
||||
/* GNU/Linux usually has crt0.o in a non-standard place */
|
||||
#define START_FILES pre-crt0.o /usr/lib/crt0.o
|
||||
#else
|
||||
! #define START_FILES pre-crt0.o /usr/lib/crt1.o /usr/lib/crti.o
|
||||
#endif
|
||||
|
||||
#ifdef __ELF__
|
||||
--- 173,179 ----
|
||||
/* GNU/Linux usually has crt0.o in a non-standard place */
|
||||
#define START_FILES pre-crt0.o /usr/lib/crt0.o
|
||||
#else
|
||||
! #define START_FILES pre-crt0.o crt1.o crti.o
|
||||
#endif
|
||||
|
||||
#ifdef __ELF__
|
||||
***************
|
||||
*** 225,231 ****
|
||||
#else
|
||||
#undef LIB_GCC
|
||||
#define LIB_GCC
|
||||
! #define LIB_STANDARD -lgcc -lc -lgcc /usr/lib/crtn.o
|
||||
#endif
|
||||
|
||||
/* Don't use -g in test compiles in configure.
|
||||
--- 225,231 ----
|
||||
#else
|
||||
#undef LIB_GCC
|
||||
#define LIB_GCC
|
||||
! #define LIB_STANDARD -lgcc -lc -lgcc crtn.o
|
||||
#endif
|
||||
|
||||
/* Don't use -g in test compiles in configure.
|
||||
Only in emacs-21.3/src/s: gnu-linux.h~
|
||||
@@ -4,7 +4,6 @@
|
||||
, gtkGUI ? false
|
||||
, stdenv, fetchurl, x11, libXaw ? null, libXpm ? null, Xaw3d ? null
|
||||
, pkgconfig ? null, gtk ? null
|
||||
, ncurses
|
||||
}:
|
||||
|
||||
assert xawSupport && !xaw3dSupport -> libXaw != null;
|
||||
@@ -12,35 +11,19 @@ assert xawSupport && xaw3dSupport -> Xaw3d != null;
|
||||
assert xpmSupport -> libXpm != null;
|
||||
assert gtkGUI -> pkgconfig != null && gtk != null;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "emacs-22.3";
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "emacs-22.0.50-pre20051207";
|
||||
builder = ./builder.sh;
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/emacs/${name}.tar.gz";
|
||||
sha256 = "05hd89bchcpwzcx5la0alcp0wb7xywvnf98dxrshrqlfvccvgnbv";
|
||||
url = http://nix.cs.uu.nl/dist/tarballs/emacs-22.0.50-pre20051207.tar.bz2;
|
||||
md5 = "011d40367015691e4319ddc65b4e7843";
|
||||
};
|
||||
|
||||
buildInputs = [ncurses x11]
|
||||
++ stdenv.lib.optional xawSupport (if xaw3dSupport then Xaw3d else libXaw)
|
||||
++ stdenv.lib.optional xpmSupport libXpm
|
||||
++ stdenv.lib.optionals gtkGUI [pkgconfig gtk];
|
||||
|
||||
patches = [./crt.patch];
|
||||
buildInputs = [
|
||||
x11
|
||||
(if xawSupport then if xaw3dSupport then Xaw3d else libXaw else null)
|
||||
(if xpmSupport then libXpm else null)
|
||||
] ++ (if gtkGUI then [pkgconfig gtk] else []);
|
||||
configureFlags =
|
||||
stdenv.lib.optional gtkGUI "--with-x-toolkit=gtk";
|
||||
|
||||
meta = {
|
||||
description = "GNU Emacs, *the* text editor";
|
||||
|
||||
longDescription = ''
|
||||
GNU Emacs is an extensible, customizable text editor—and more.
|
||||
At its core is an interpreter for Emacs Lisp, a dialect of the
|
||||
Lisp programming language with extensions to support text
|
||||
editing.
|
||||
'';
|
||||
|
||||
homepage = http://www.gnu.org/software/emacs/;
|
||||
license = "GPLv3+";
|
||||
};
|
||||
if gtkGUI then ["--with-x-toolkit=gtk"] else [];
|
||||
}
|
||||
|
||||
4
pkgs/applications/editors/emacs-22/modes/cua/builder.sh
Normal file
4
pkgs/applications/editors/emacs-22/modes/cua/builder.sh
Normal file
@@ -0,0 +1,4 @@
|
||||
source $stdenv/setup
|
||||
|
||||
mkdir -p $out/emacs/site-lisp
|
||||
cp $src $out/emacs/site-lisp/cua.el
|
||||
8
pkgs/applications/editors/emacs-22/modes/cua/default.nix
Normal file
8
pkgs/applications/editors/emacs-22/modes/cua/default.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
{stdenv, fetchurl}: stdenv.mkDerivation {
|
||||
name = "cua-mode-2.10";
|
||||
builder = ./builder.sh;
|
||||
src = fetchurl {
|
||||
url = http://nix.cs.uu.nl/dist/tarballs/cua-mode-2.10.el;
|
||||
md5 = "5bf5e43f5f38c8383868c7c6c5baca09";
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
source $stdenv/setup
|
||||
|
||||
mkdir -p $out/emacs/site-lisp
|
||||
tar zxvf $src
|
||||
cp haskell-mode*/*.el $out/emacs/site-lisp
|
||||
cp haskell-mode*/*.hs $out/emacs/site-lisp
|
||||
@@ -0,0 +1,8 @@
|
||||
{stdenv, fetchurl}: stdenv.mkDerivation {
|
||||
name = "haskell-mode-1.45";
|
||||
builder = ./builder.sh;
|
||||
src = fetchurl {
|
||||
url = http://nix.cs.uu.nl/dist/tarballs/haskell-mode-1.45.tar.gz;
|
||||
md5 = "c609998580cdb9ca8888c7d47d22ca3b";
|
||||
};
|
||||
}
|
||||
7
pkgs/applications/editors/emacs-22/modes/nxml/builder.sh
Normal file
7
pkgs/applications/editors/emacs-22/modes/nxml/builder.sh
Normal file
@@ -0,0 +1,7 @@
|
||||
source $stdenv/setup
|
||||
|
||||
mkdir -p $out/emacs/site-lisp
|
||||
cd $out/emacs/site-lisp
|
||||
tar xvfz $src
|
||||
mv nxml-mode-*/* .
|
||||
rmdir nxml-mode-*
|
||||
@@ -0,0 +1,8 @@
|
||||
{stdenv, fetchurl}: stdenv.mkDerivation {
|
||||
name = "nxml-mode-20041004";
|
||||
builder = ./builder.sh;
|
||||
src = fetchurl {
|
||||
url = http://nix.cs.uu.nl/dist/tarballs/nxml-mode-20041004.tar.gz;
|
||||
md5 = "ac137024cf337d6f11d8ab278d39b4db";
|
||||
};
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
source "$stdenv/setup" || exit 1
|
||||
|
||||
unpackPhase && \
|
||||
cd bbdb-*.* && patchPhase && \
|
||||
./configure --prefix="$out" \
|
||||
--with-package-dir="$out/share/emacs/site-lisp" && \
|
||||
make && make install-pkg && \
|
||||
mkdir -p "$out/info" && \
|
||||
make -C texinfo install-pkg && \
|
||||
mv "$out/share/emacs/site-lisp/lisp/bbdb/"* \
|
||||
"$out/share/emacs/site-lisp" && \
|
||||
rm -rf "$out/share/emacs/site-lisp/lisp"
|
||||
@@ -1,21 +0,0 @@
|
||||
{stdenv, fetchurl, emacs, texinfo, ctags}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "bbdb-2.35";
|
||||
|
||||
src = fetchurl {
|
||||
url = http://bbdb.sourceforge.net/bbdb-2.35.tar.gz;
|
||||
sha256 = "3fb1316e2ed74d47ca61187fada550e58797467bd9e8ad67343ed16da769f916";
|
||||
};
|
||||
|
||||
patches = [ ./install-infodir.patch ];
|
||||
|
||||
buildInputs = [emacs texinfo ctags];
|
||||
builder = ./builder.sh;
|
||||
|
||||
meta = {
|
||||
description = "The Insidious Big Brother Database (BBDB), a contact management utility for Emacs";
|
||||
homepage = http://bbdb.sourceforge.net/;
|
||||
license = "GPL";
|
||||
};
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
--- bbdb-2.35/texinfo/Makefile.in 2001-11-20 09:00:12.000000000 +0100
|
||||
+++ bbdb-2.35/texinfo/Makefile.in 2008-02-20 12:07:36.000000000 +0100
|
||||
@@ -27,22 +27,22 @@ all: info bbdb.dvi
|
||||
install-pkg: uninstall-pkg info
|
||||
@if test "x$(SYMLINKS)" = "xno" ; then \
|
||||
for i in `ls bbdb.info* ` ; do \
|
||||
- $(INSTALL_DATA) $$i $(PACKAGEDIR)/info/ ; \
|
||||
+ $(INSTALL_DATA) $$i $(infodir)/ ; \
|
||||
done ; \
|
||||
else \
|
||||
if test "x$(LINKPATH)" = "x" ; then \
|
||||
for i in `ls bbdb.info* ` ; do \
|
||||
- $(LN_S) `pwd`/$$i $(PACKAGEDIR)/info/$$i ; \
|
||||
+ $(LN_S) `pwd`/$$i $(infodir)/$$i ; \
|
||||
done ; \
|
||||
else \
|
||||
for i in `ls bbdb.info* ` ; do \
|
||||
- $(LN_S) $(LINKPATH)/texinfo/$$i $(PACKAGEDIR)/info/$$i ; \
|
||||
+ $(LN_S) $(LINKPATH)/texinfo/$$i $(infodir)/$$i ; \
|
||||
done ; \
|
||||
fi ; \
|
||||
fi
|
||||
|
||||
uninstall-pkg:
|
||||
- -$(RM) $(PACKAGEDIR)/info/bbdb.info*
|
||||
+ -$(RM) $(infodir)/bbdb.info*
|
||||
|
||||
info: bbdb.info
|
||||
@@ -1,48 +0,0 @@
|
||||
{ fetchurl, stdenv, emacs }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "cedet-1.0pre6";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/cedet/${name}.tar.gz";
|
||||
sha256 = "0pvd54rjlba12cxgqibm8v4i8x43r5c239z891lgcbafjvkzpdxb";
|
||||
};
|
||||
|
||||
buildInputs = [ emacs ];
|
||||
|
||||
doCheck = true;
|
||||
checkPhase = "make utest";
|
||||
|
||||
installPhase = ''
|
||||
ensureDir "$out/share/emacs/site-lisp"
|
||||
cp -v */*.el */*/*.el */*.elc */*/*.elc "$out/share/emacs/site-lisp"
|
||||
chmod a-x "$out/share/emacs/site-lisp/"*
|
||||
|
||||
ensureDir "$out/share/info"
|
||||
cp -v */*.info* */*/*.info* "$out/share/info"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "CEDET, a Collection of Emacs Development Environment Tools";
|
||||
|
||||
longDescription = ''
|
||||
CEDET is a collection of tools written with the end goal of
|
||||
creating an advanced development environment in Emacs.
|
||||
|
||||
Emacs already is a great environment for writing software, but
|
||||
there are additional areas that need improvement. Many new
|
||||
ideas for integrated environments have been developed in newer
|
||||
products, such as JBuilder, Eclipse, or KDevelop. CEDET is a
|
||||
project which brings together several different tools needed to
|
||||
implement advanced features.
|
||||
|
||||
CEDET includes EIEIO (Enhanced Implementation of Emacs
|
||||
Interpreted Objects), Semantic, SRecode, Speedbar, EDE (Emacs
|
||||
Development Environment), and COGRE (COnnected GRaph Editor).
|
||||
'';
|
||||
|
||||
license = "GPLv2+";
|
||||
|
||||
homepage = http://cedet.sourceforge.net/;
|
||||
};
|
||||
}
|
||||
@@ -1,40 +0,0 @@
|
||||
{ fetchurl, stdenv, emacs }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "eieio-0.17";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/cedet/${name}.tar.gz";
|
||||
sha256 = "0n31z9d47ar10g9xrnzz3nl4pmixw1nkk0kpxaillls7xvjd1zy2";
|
||||
};
|
||||
|
||||
buildInputs = [ emacs ];
|
||||
|
||||
doCheck = false;
|
||||
checkPhase = "make test";
|
||||
|
||||
installPhase = ''
|
||||
ensureDir "$out/share/emacs/site-lisp"
|
||||
cp -v *.el *.elc "$out/share/emacs/site-lisp"
|
||||
chmod a-x "$out/share/emacs/site-lisp/"*
|
||||
|
||||
ensureDir "$out/share/info"
|
||||
cp -v *.info* "$out/share/info"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "EIEIO: Enhanced Implementation of Emacs Interpreted Objects";
|
||||
|
||||
longDescription = ''
|
||||
This package is now part of CEDET, please upgrade.
|
||||
|
||||
EIEIO is a package which implements a CLOS subset for Emacs. It
|
||||
includes examples which can draw simple tree graphs, and bar
|
||||
charts.
|
||||
'';
|
||||
|
||||
license = "GPLv2+";
|
||||
|
||||
homepage = http://cedet.sourceforge.net/;
|
||||
};
|
||||
}
|
||||
@@ -1,62 +0,0 @@
|
||||
{ stdenv, fetchurl, emacs, texinfo
|
||||
, mpg321, vorbisTools, taglib, alsaUtils }:
|
||||
|
||||
# XXX: EMMS also supports Xine, MPlayer, Jack, etc.
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "emms-3.0";
|
||||
|
||||
src = fetchurl {
|
||||
# These guys don't use ftp.gnu.org...
|
||||
url = "http://www.gnu.org/software/emms/download/${name}.tar.gz";
|
||||
sha256 = "151mfx97x15lfpd1qc2sqbvhwhvg46axgh15qyqmdy42vh906xav";
|
||||
};
|
||||
|
||||
buildInputs = [ emacs texinfo ];
|
||||
|
||||
configurePhase = ''
|
||||
sed -i "Makefile" -e "s|PREFIX *=.*\$|PREFIX = $out|g ;
|
||||
s|/usr/sbin/install-info|install-info|g ;
|
||||
s|/usr/include/taglib|${taglib}/include/taglib|g ;
|
||||
s|/usr/lib|${taglib}/lib|g ;
|
||||
s|^all:\(.*\)\$|all:\1 emms-print-metadata|g"
|
||||
ensureDir "$out/share/man/man1"
|
||||
|
||||
sed -i "emms-player-mpg321-remote.el" \
|
||||
-e 's|emms-player-mpg321-remote-command[[:blank:]]\+"mpg321"|emms-player-mpg321-remote-command "${mpg321}/bin/mpg321"|g'
|
||||
sed -i "emms-player-simple.el" \
|
||||
-e 's|"ogg123"|"${vorbisTools}/bin/ogg123"|g'
|
||||
sed -i "emms-info-ogginfo.el" \
|
||||
-e 's|emms-info-ogginfo-program-name[[:blank:]]\+"ogginfo"|emms-info-ogginfo-program-name "${vorbisTools}/bin/ogginfo"|g'
|
||||
sed -i "emms-info-libtag.el" \
|
||||
-e "s|\"emms-print-metadata\"|\"$out/bin/emms-print-metadata\"|g"
|
||||
sed -i "emms-volume-amixer.el" \
|
||||
-e 's|"amixer"|"${alsaUtils}/bin/amixer"|g'
|
||||
|
||||
# Use the libtag info back-end for MP3s since we're building it.
|
||||
sed -i "emms-setup.el" \
|
||||
-e 's|emms-info-mp3info|emms-info-libtag|g'
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
ensureDir "$out/bin" && cp emms-print-metadata "$out/bin"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "GNU EMMS, The Emacs Multimedia System";
|
||||
|
||||
longDescription = ''
|
||||
EMMS is the Emacs Multimedia System. It tries to be a clean and
|
||||
small application to play multimedia files from Emacs using
|
||||
external players. Many of it's ideas are derived from
|
||||
MpthreePlayer, but it tries to be more general and cleaner.
|
||||
|
||||
The fact that EMMS is based on external players makes it
|
||||
powerful, because it supports all formats that those players
|
||||
support, with no effort from your side.
|
||||
'';
|
||||
|
||||
homepage = http://www.gnu.org/software/emms/;
|
||||
license = "GPLv3+";
|
||||
};
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
{stdenv, fetchurl, emacs}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "haskell-mode-2.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.iro.umontreal.ca/~monnier/elisp/${name}.tar.gz";
|
||||
sha256 = "1s2dd0clwm0qaq7z43vxx437l48c88yrd3z1a6qhbq8aak9y8jc5";
|
||||
};
|
||||
|
||||
buildInputs = [emacs];
|
||||
|
||||
installPhase = ''
|
||||
ensureDir "$out/share/emacs/site-lisp"
|
||||
cp *.el *.elc *.hs "$out/share/emacs/site-lisp/"
|
||||
'';
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{stdenv, fetchurl, emacs}:
|
||||
|
||||
stdenv.mkDerivation
|
||||
{
|
||||
name = "maude-mode-0.1";
|
||||
src = fetchurl
|
||||
{
|
||||
url = "mirror://sourceforge/maude-mode/maude-mode.tar.gz";
|
||||
sha256 = "12555j01mar48da2jy3ay93xfn7ybl23bpvhp0srzg8858gisx5g";
|
||||
};
|
||||
buildInputs = [emacs];
|
||||
configureFlags = "--with-lispdir=$$out/share/emacs/site-lisp";
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
source "$stdenv/setup" || exit 1
|
||||
|
||||
emacsDir="$out/share/emacs/site-lisp"
|
||||
|
||||
ensureDir "$emacsDir" && \
|
||||
cp "$src" "$emacsDir/quack.el" && \
|
||||
emacs --batch -f batch-byte-compile "$emacsDir/quack.el"
|
||||
@@ -1,21 +0,0 @@
|
||||
{ fetchurl, stdenv, emacs }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "quack-0.30";
|
||||
|
||||
src = fetchurl {
|
||||
# XXX: Upstream URL is not versioned, which might eventually break this.
|
||||
url = "http://www.neilvandyke.org/quack/quack.el";
|
||||
sha256 = "1xmpbdb064s3l3cv4agf03ir1g7xfzyvlqayr3yy5f8z3i6pf7mi";
|
||||
};
|
||||
|
||||
buildInputs = [ emacs ];
|
||||
|
||||
builder = ./builder.sh;
|
||||
|
||||
meta = {
|
||||
description = "Enhanced Emacs support for editing and running Scheme code";
|
||||
homepage = http://www.neilvandyke.org/quack/;
|
||||
license = "GPLv2+";
|
||||
};
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
{ fetchurl, stdenv, texinfo, emacs, bbdb }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
# Note: Remember is part of GNU Emacs 23.
|
||||
name = "remember-2.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download.gna.org/remember-el/${name}.tar.gz";
|
||||
sha256 = "04bp071xjbb6mbspjpwcza0krgx2827v6rfxbsdcpn0qcjgad9wm";
|
||||
};
|
||||
|
||||
# FIXME: It also has a (soft) dependency on Planner and Bibl-mode.
|
||||
buildInputs = [ emacs bbdb texinfo ];
|
||||
|
||||
patchPhase = ''
|
||||
sed -i "Makefile.defs" \
|
||||
-e"s|^ *PREFIX *=.*$|PREFIX = $out|g ;
|
||||
s|^ *ELISPDIR *=.*$|ELISPDIR = $out/share/emacs/site-lisp|g ;
|
||||
s|^ *EMACS *=.*$|EMACS = emacs -L \"${bbdb}/share/emacs/site-lisp\"|g"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Remember, an Emacs mode for quickly remembering data";
|
||||
|
||||
longDescription = ''
|
||||
Remember is an Emacs mode for quickly remembering data. It uses
|
||||
whatever back-end is appropriate to record and correlate the
|
||||
data, but its main intention is to allow you to express as
|
||||
little structure as possible up front.
|
||||
|
||||
When you enter data, either by typing it into a buffer, or using
|
||||
the contents of the selected region, Remember will store that
|
||||
data -- unindexed, uninterpreted -- in a data pool. It will
|
||||
also try to remember as much context information as possible
|
||||
(any text properties that were set, where you copied it from,
|
||||
when, how, etc). Later, you can walk through your accumulated
|
||||
set of data (both organized, and unorganized) and easily begin
|
||||
moving things around, and making annotations that will express
|
||||
the full meaning of that data, as far as you know it.
|
||||
'';
|
||||
|
||||
homepage = http://gna.org/projects/remember-el/;
|
||||
license = "GPLv2+";
|
||||
};
|
||||
}
|
||||
@@ -1,52 +0,0 @@
|
||||
{ fetchurl, stdenv, emacs, eieio }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "semantic-1.4.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/cedet/${name}.tar.gz";
|
||||
sha256 = "0j50dqdy5bl35vqfbgxp93grs11llg9i4398044br73lvvif9n5f";
|
||||
};
|
||||
|
||||
buildInputs = [ emacs eieio ];
|
||||
|
||||
doCheck = true;
|
||||
checkPhase = "make Tests";
|
||||
|
||||
preConfigure = ''
|
||||
sed -i "Makefile" -es'|^LOADPATH[[:blank:]]*=.*$|LOADPATH = ${eieio}/share/emacs/site-lisp|g'
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
ensureDir "$out/share/emacs/site-lisp"
|
||||
cp -v *.el *.elc "$out/share/emacs/site-lisp"
|
||||
chmod a-x "$out/share/emacs/site-lisp/"*
|
||||
|
||||
ensureDir "$out/share/info"
|
||||
cp -v *.info* "$out/share/info"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Semantic, infrastructure for parser based text analysis in Emacs";
|
||||
|
||||
longDescription = ''
|
||||
This package is now part of CEDET, please upgrade.
|
||||
|
||||
Semantic is an infrastructure for parser based text analysis in
|
||||
Emacs. It is a lexer, parser-generator, and parser. It is
|
||||
written in Emacs Lisp and is customized to the way Emacs thinks
|
||||
about language files, and is optimized to use Emacs' parsing
|
||||
capabilities.
|
||||
|
||||
Semantic's goal is to provide an intermediate API for authors of
|
||||
language agnostic tools who want to deal with languages in a
|
||||
generic way. It also provides a simple way for Mode Authors who
|
||||
are experts in their language, to provide a parser for those
|
||||
tool authors, without knowing anything about those tools.
|
||||
'';
|
||||
|
||||
license = "GPLv2+";
|
||||
|
||||
homepage = http://cedet.sourceforge.net/;
|
||||
};
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
source $stdenv/setup
|
||||
|
||||
preConfigure=preConfigure
|
||||
preConfigure() {
|
||||
libc=$(cat ${NIX_GCC}/nix-support/orig-libc)
|
||||
echo "libc: $libc"
|
||||
|
||||
for i in src/s/*.h src/m/*.h; do
|
||||
substituteInPlace $i \
|
||||
--replace /usr/lib/crt1.o $libc/lib/crt1.o \
|
||||
--replace /usr/lib/crti.o $libc/lib/crti.o \
|
||||
--replace /usr/lib/crtn.o $libc/lib/crtn.o
|
||||
done
|
||||
|
||||
for i in Makefile.in ./src/Makefile.in ./lib-src/Makefile.in ./leim/Makefile.in; do
|
||||
substituteInPlace $i --replace /bin/pwd pwd
|
||||
done
|
||||
}
|
||||
|
||||
preBuild="make bootstrap"
|
||||
|
||||
genericBuild
|
||||
@@ -1,56 +0,0 @@
|
||||
{ xawSupport ? true
|
||||
, xpmSupport ? true
|
||||
, dbusSupport ? true
|
||||
, xaw3dSupport ? false
|
||||
, gtkGUI ? false
|
||||
, xftSupport ? false
|
||||
, stdenv, fetchcvs, ncurses, x11, libXaw ? null, libXpm ? null, Xaw3d ? null
|
||||
, pkgconfig ? null, gtk ? null, libXft ? null, dbus ? null
|
||||
, libpng, libjpeg, libungif, libtiff, texinfo
|
||||
, autoconf, automake
|
||||
}:
|
||||
|
||||
assert xawSupport -> libXaw != null;
|
||||
assert xpmSupport -> libXpm != null;
|
||||
assert dbusSupport -> dbus != null;
|
||||
assert xaw3dSupport -> Xaw3d != null;
|
||||
assert gtkGUI -> pkgconfig != null && gtk != null;
|
||||
assert xftSupport -> libXft != null && libpng != null; # libpng = probably a bug
|
||||
|
||||
let date = "2009-02-16"; in
|
||||
stdenv.mkDerivation {
|
||||
name = "emacs-snapshot-23-${date}";
|
||||
|
||||
builder = ./builder.sh;
|
||||
|
||||
src = fetchcvs {
|
||||
inherit date;
|
||||
cvsRoot = ":pserver:anonymous@cvs.savannah.gnu.org:/sources/emacs";
|
||||
module = "emacs";
|
||||
sha256 = "6ec63da94a199c5f95bf4a9aa578cf14b3d85800fd37b3562d9a446b144b0d47";
|
||||
};
|
||||
|
||||
preConfigure = "autoreconf -vfi";
|
||||
|
||||
buildInputs = [
|
||||
autoconf automake
|
||||
ncurses x11 texinfo
|
||||
(if xawSupport then libXaw else null)
|
||||
(if xpmSupport then libXpm else null)
|
||||
(if dbusSupport then dbus else null)
|
||||
(if xaw3dSupport then Xaw3d else null)
|
||||
libpng libjpeg libungif libtiff # maybe not strictly required?
|
||||
]
|
||||
++ (if gtkGUI then [pkgconfig gtk] else [])
|
||||
++ (if xftSupport then [libXft] else []);
|
||||
|
||||
configureFlags = "
|
||||
${if gtkGUI then "--with-x-toolkit=gtk --enable-font-backend --with-xft" else ""}
|
||||
";
|
||||
|
||||
meta = {
|
||||
description = "GNU Emacs with Unicode, GTK and Xft support (23.x alpha)";
|
||||
homepage = http://www.emacswiki.org/cgi-bin/wiki/XftGnuEmacs;
|
||||
license = "GPLv3+";
|
||||
};
|
||||
}
|
||||
13
pkgs/applications/editors/emacs/builder.sh
Normal file
13
pkgs/applications/editors/emacs/builder.sh
Normal file
@@ -0,0 +1,13 @@
|
||||
source $stdenv/setup
|
||||
|
||||
myglibc=`cat ${NIX_GCC}/nix-support/orig-glibc`
|
||||
echo "glibc: $myglibc"
|
||||
|
||||
postConfigure() {
|
||||
cp $myglibc/lib/crt1.o src
|
||||
cp $myglibc/lib/crti.o src
|
||||
cp $myglibc/lib/crtn.o src
|
||||
}
|
||||
postConfigure=postConfigure
|
||||
|
||||
genericBuild
|
||||
41
pkgs/applications/editors/emacs/crt.patch
Normal file
41
pkgs/applications/editors/emacs/crt.patch
Normal file
@@ -0,0 +1,41 @@
|
||||
Only in emacs-21.3: configure.in~
|
||||
Only in emacs-21.3: patchfile
|
||||
Only in emacs-21.3/src: Makefile.in~
|
||||
diff -rc emacs-orig/src/s/gnu-linux.h emacs-21.3/src/s/gnu-linux.h
|
||||
*** emacs-orig/src/s/gnu-linux.h 2001-09-28 17:50:04.000000000 +0200
|
||||
--- emacs-21.3/src/s/gnu-linux.h 2004-10-06 13:13:19.000000000 +0200
|
||||
***************
|
||||
*** 173,179 ****
|
||||
/* GNU/Linux usually has crt0.o in a non-standard place */
|
||||
#define START_FILES pre-crt0.o /usr/lib/crt0.o
|
||||
#else
|
||||
! #define START_FILES pre-crt0.o /usr/lib/crt1.o /usr/lib/crti.o
|
||||
#endif
|
||||
|
||||
#ifdef __ELF__
|
||||
--- 173,179 ----
|
||||
/* GNU/Linux usually has crt0.o in a non-standard place */
|
||||
#define START_FILES pre-crt0.o /usr/lib/crt0.o
|
||||
#else
|
||||
! #define START_FILES pre-crt0.o crt1.o crti.o
|
||||
#endif
|
||||
|
||||
#ifdef __ELF__
|
||||
***************
|
||||
*** 225,231 ****
|
||||
#else
|
||||
#undef LIB_GCC
|
||||
#define LIB_GCC
|
||||
! #define LIB_STANDARD -lgcc -lc -lgcc /usr/lib/crtn.o
|
||||
#endif
|
||||
|
||||
/* Don't use -g in test compiles in configure.
|
||||
--- 225,231 ----
|
||||
#else
|
||||
#undef LIB_GCC
|
||||
#define LIB_GCC
|
||||
! #define LIB_STANDARD -lgcc -lc -lgcc crtn.o
|
||||
#endif
|
||||
|
||||
/* Don't use -g in test compiles in configure.
|
||||
Only in emacs-21.3/src/s: gnu-linux.h~
|
||||
@@ -1,7 +1,7 @@
|
||||
{ xawSupport ? true
|
||||
, xpmSupport ? true
|
||||
, xaw3dSupport ? false
|
||||
, stdenv, fetchurl, ncurses, x11, libXaw ? null, libXpm ? null, Xaw3d ? null
|
||||
, stdenv, fetchurl, x11, libXaw ? null, libXpm ? null, Xaw3d ? null
|
||||
}:
|
||||
|
||||
assert xawSupport && !xaw3dSupport -> libXaw != null;
|
||||
@@ -12,12 +12,12 @@ stdenv.mkDerivation {
|
||||
name = "emacs-21.4a";
|
||||
builder = ./builder.sh;
|
||||
src = fetchurl {
|
||||
url = http://nixos.org/tarballs/emacs-21.4a.tar.gz;
|
||||
url = http://nix.cs.uu.nl/dist/tarballs/emacs-21.4a.tar.gz;
|
||||
md5 = "8f9d97cbd126121bd5d97e5e31168a87";
|
||||
};
|
||||
patches = [./crt.patch];
|
||||
buildInputs = [
|
||||
ncurses x11
|
||||
x11
|
||||
(if xawSupport then if xaw3dSupport then Xaw3d else libXaw else null)
|
||||
(if xpmSupport then libXpm else null)
|
||||
];
|
||||
4
pkgs/applications/editors/emacs/modes/cua/builder.sh
Normal file
4
pkgs/applications/editors/emacs/modes/cua/builder.sh
Normal file
@@ -0,0 +1,4 @@
|
||||
source $stdenv/setup
|
||||
|
||||
mkdir -p $out/emacs/site-lisp
|
||||
cp $src $out/emacs/site-lisp/cua.el
|
||||
8
pkgs/applications/editors/emacs/modes/cua/default.nix
Normal file
8
pkgs/applications/editors/emacs/modes/cua/default.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
{stdenv, fetchurl}: stdenv.mkDerivation {
|
||||
name = "cua-mode-2.10";
|
||||
builder = ./builder.sh;
|
||||
src = fetchurl {
|
||||
url = http://nix.cs.uu.nl/dist/tarballs/cua-mode-2.10.el;
|
||||
md5 = "5bf5e43f5f38c8383868c7c6c5baca09";
|
||||
};
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user