* Sync with the trunk.

svn path=/nixpkgs/branches/stdenv-updates/; revision=14557
This commit is contained in:
Eelco Dolstra 2009-03-16 12:45:27 +00:00
commit 3593b97d63
339 changed files with 4943 additions and 2370 deletions

View file

@ -64,10 +64,18 @@ interpretation:</para>
<varlistentry>
<term><varname>description</varname></term>
<listitem><para>A short (one-line) description of the package.
Dont include a period at the end. This is shown by
<command>nix-env -q --description</command> and also on the
Nixpkgs release pages. Example: <literal>"A program that produces
a familiar, friendly greeting"</literal></para></listitem>
This is shown by <command>nix-env -q --description</command> and
also on the Nixpkgs release pages.</para>
<para>Dont include a period at the end. Dont include newline
characters. Capitalise the first character. For brevity, dont
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>

View file

@ -23,6 +23,9 @@ stdenv.mkDerivation {
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/;

View file

@ -16,8 +16,10 @@ stdenv.mkDerivation {
++ (if gtkGUI then [pkgconfig gtk] else []);
meta = {
description = ''Aumix adjusts an audio mixer from X, the console,
a terminal, the command line or a script.'';
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";
};

View file

@ -21,9 +21,7 @@ stdenv.mkDerivation {
(textClosure localDefs [doConfigure doMakeInstall
postInstall doForceShare]);
meta = {
description = "
LADSPA format audio plugins.
";
description = "LADSPA format audio plugins";
inherit src;
};
}

View file

@ -22,9 +22,7 @@ stdenv.mkDerivation {
builder = writeScript "ladspa.h-builder"
(textClosure localDefs [copyFile]);
meta = {
description = "
LADSPA format audio plugins.
";
description = "LADSPA format audio plugins";
inherit src;
};
}

View file

@ -15,9 +15,10 @@ stdenv.mkDerivation {
patches = [ ./ogg123-curlopt-mute.patch ];
meta = {
description = ''A set of command-line tools to manipulate Ogg Vorbis
audio files, notably the `ogg123' player and the
`oggenc' encoder.'';
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";
};

View file

@ -1,25 +1,33 @@
{stdenv, fetchurl, x11, libjpeg, libpng, libXmu, freetype, pam}:
stdenv.mkDerivation {
name = "slim-1.2.6";
stdenv.mkDerivation rec {
name = "slim-1.3.1";
src = fetchurl {
url = http://download.berlios.de/slim/slim-1.2.6.tar.gz;
sha256 = "0plcmm955rnv67sx67ka6dccanr4rfzwzvsj6lnr8kqdip4522jg";
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
# PAM support from
# http://developer.berlios.de/patch/?func=detailpatch&patch_id=1979&group_id=2663
# 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 = "
preBuild = ''
substituteInPlace Makefile --replace /usr /no-such-path
makeFlagsArray=(CC=gcc CXX=g++ PREFIX=$out MANDIR=$out/share/man CFGDIR=$out/etc)
";
makeFlagsArray=(CC=gcc CXX=g++ PREFIX=$out MANDIR=$out/share/man CFGDIR=$out/etc USE_PAM=1)
'';
meta = {
homepage = http://slim.berlios.de;

View file

@ -1,369 +1,89 @@
diff -rc slim-1.2.6-orig/app.cpp slim-1.2.6/app.cpp
*** slim-1.2.6-orig/app.cpp 2006-09-15 23:00:37.000000000 +0200
--- slim-1.2.6/app.cpp 2007-06-05 12:45:58.000000000 +0200
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
***************
*** 25,30 ****
--- 25,68 ----
#include "app.h"
#include "numlock.h"
+ #ifdef USE_PAM
+ #include <security/pam_appl.h>
+ #include <security/pam_misc.h>
+ #include <string>
+
+ pam_handle_t* pamh;
+ char const* PAM_service = "slim"; // <----- Change this, if the patch gets accepted upstream
+ string password;
+
+ int conv(int num_msg, const struct pam_message **msg,
+ struct pam_response **resp, void *appdata_ptr){
+ *resp = (struct pam_response *) calloc(num_msg, sizeof(struct pam_response));
+ for (int i=0; i<num_msg; i++){
+ resp[i]->resp_retcode=0;
+ switch(msg[i]->msg_style){
+ case PAM_PROMPT_ECHO_ON:
+ // We assume PAM is asking for the username
+ // As we should have given that already, this should never happen
+ cerr << APPNAME << ": PAM send an unexpected PAM_PROMPT_ECHO_ON" << endl;
+ cerr << APPNAME << ": " << msg[i]->msg << endl;
+ break;
+
+ case PAM_PROMPT_ECHO_OFF:
+ // We assume PAM is asking for the password
+ resp[i]->resp=x_strdup(password.c_str());
+ break;
+
+ case PAM_ERROR_MSG:
+ case PAM_TEXT_INFO:
+ // We simply right these to the log
+ // TODO: Maybe we should simply ignore them
+ cerr << APPNAME << ": " << msg[i]->msg << endl;
+ break;
+ }
+ }
+ return PAM_SUCCESS;
+ }
+ #endif
extern App* LoginApp;
*** 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
***************
*** 133,138 ****
--- 171,209 ----
}
*** 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 ****
}
+ #ifdef USE_PAM
+ int last_result;
+ struct pam_conv pam_conversation = {
+ conv,
+ NULL
+ };
+
+ // Start the PAM session
+ if ((last_result=pam_start(PAM_service, NULL, &pam_conversation, &pamh))!=PAM_SUCCESS){
+ cerr << APPNAME << ": " << pam_strerror(pamh, last_result) << endl;
+ exit(ERR_EXIT);
+ }
+
+ // Setup some PAM items
+ if ((last_result=pam_set_item(pamh, PAM_TTY, DisplayName))!=PAM_SUCCESS){
+ cerr << APPNAME << ": " << pam_strerror(pamh, last_result) << endl;
+ pam_end(pamh, last_result);
+ exit(ERR_EXIT);
+ }
+ char* pam_ruser = "root\0"; // <---- We already checked for this in the constructor
+ if ((last_result=pam_set_item(pamh, PAM_RUSER, pam_ruser))!=PAM_SUCCESS){
+ cerr << APPNAME << ": " << pam_strerror(pamh, last_result) << endl;
+ pam_end(pamh, last_result);
+ exit(ERR_EXIT);
+ }
+ char* pam_rhost = "localhost\0"; // <---- This might not entirely correct
+ if ((last_result=pam_set_item(pamh, PAM_RHOST, pam_rhost))!=PAM_SUCCESS){
+ cerr << APPNAME << ": " << pam_strerror(pamh, last_result) << endl;
+ pam_end(pamh, last_result);
+ exit(ERR_EXIT);
+ }
+ #endif
+
bool loaded = false;
while (!loaded) {
themedir = themebase + themeName;
***************
*** 313,318 ****
--- 384,421 ----
struct passwd *pw;
pid_t pid;
+ #ifdef USE_PAM
+ int last_result;
+ switch ((last_result=pam_setcred(pamh, PAM_ESTABLISH_CRED | PAM_SILENT))){
+ case PAM_SUCCESS:
+ // Credentials was established successfully
+ break;
+
+ case PAM_CRED_ERR:
+ case PAM_CRED_EXPIRED:
+ case PAM_CRED_UNAVAIL:
+ case PAM_USER_UNKNOWN:
+ // Credentials couldn't be established
+ cerr << APPNAME << ": " << pam_strerror(pamh, last_result) << endl;
+ return;
+
+ case PAM_BUF_ERR:
+ case PAM_SYSTEM_ERR:
+ default:
+ // System error -> bail out!
+ last_result=pam_setcred(pamh, PAM_DELETE_CRED);
+ pam_end(pamh, last_result);
+ exit(ERR_EXIT);
+ }
+
+ if ((last_result=pam_open_session(pamh, PAM_SILENT))!=PAM_SUCCESS){
+ cerr << APPNAME << ": " << pam_strerror(pamh, last_result) << endl;
+ pam_setcred(pamh, PAM_DELETE_CRED);
+ // TODO: Do we need more serious actions?
+ return;
+ }
+ #endif
+
pw = LoginPanel->GetInput()->GetPasswdStruct();
if(pw == 0)
return;
***************
*** 320,325 ****
--- 423,433 ----
// Create new process
pid = fork();
if(pid == 0) {
+ #ifdef USE_PAM
+ // Close the child's copy of the PAM-handle
+ pam_end(pamh, PAM_SUCCESS | PAM_DATA_SILENT);
+ #endif
+
// Login process starts here
SwitchUser Su(pw, cfg, DisplayName);
string session = LoginPanel->getSession();
***************
*** 355,361 ****
}
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 ----
}
! // Close all clients
KillAllClients(False);
KillAllClients(True);
--- 463,477 ----
}
}
! #ifdef USE_PAM
! if ((last_result=pam_close_session(pamh, PAM_SILENT))!=PAM_SUCCESS){
! cerr << APPNAME << ": " << pam_strerror(pamh, last_result) << endl;
! last_result=pam_setcred(pamh, PAM_DELETE_CRED);
! // TODO: Do we need more serious actions?
! }
! #endif
!
! // Close all clients
KillAllClients(False);
KillAllClients(True);
***************
*** 382,387 ****
--- 498,510 ----
// Stop alarm clock
alarm(0);
+ #ifdef USE_PAM
+ int last_result;
+ if ((last_result=pam_end(pamh, PAM_SUCCESS))!=PAM_SUCCESS){
+ cerr << APPNAME << ": " << pam_strerror(pamh, last_result) << endl;
+ }
+ #endif
+
// Write message
LoginPanel->Message((char*)cfg->getOption("reboot_msg").c_str());
sleep(3);
***************
*** 398,403 ****
--- 521,533 ----
// Stop alarm clock
alarm(0);
+ #ifdef USE_PAM
+ int last_result;
+ if ((last_result=pam_end(pamh, PAM_SUCCESS))!=PAM_SUCCESS){
+ cerr << APPNAME << ": " << pam_strerror(pamh, last_result) << endl;
+ }
+ #endif
+
// Write message
LoginPanel->Message((char*)cfg->getOption("shutdown_msg").c_str());
sleep(3);
***************
*** 433,438 ****
--- 563,575 ----
void App::Exit() {
+ #ifdef USE_PAM
+ int last_result;
+ if ((last_result=pam_end(pamh, PAM_SUCCESS))!=PAM_SUCCESS){
+ cerr << APPNAME << ": " << pam_strerror(pamh, last_result) << endl;
+ }
+ #endif
+
if (testing) {
char* testmsg = "This is a test message :-)";
LoginPanel->Message(testmsg);
***************
*** 453,458 ****
--- 590,602 ----
}
void App::RestartServer() {
+ #ifdef USE_PAM
+ int last_result;
+ if ((last_result=pam_end(pamh, PAM_SUCCESS))!=PAM_SUCCESS){
+ cerr << APPNAME << ": " << pam_strerror(pamh, last_result) << endl;
+ }
+ #endif
+
StopServer();
RemoveLock();
Run();
Only in slim-1.2.6/: app.cpp~
diff -rc slim-1.2.6-orig/input.cpp slim-1.2.6/input.cpp
*** slim-1.2.6-orig/input.cpp 2006-09-15 23:00:37.000000000 +0200
--- slim-1.2.6/input.cpp 2007-06-05 12:45:58.000000000 +0200
***************
*** 12,17 ****
--- 12,25 ----
#include "input.h"
#include <cstdlib>
+ #ifdef USE_PAM
+ #include <security/pam_appl.h>
+ #include <string>
+
+ extern pam_handle_t* pamh;
+ extern string password;
+ #endif
+
Input::Input(Cfg* c) {
NameBuffer[0] = '\0';
PasswdBuffer[0] = '\0';
***************
*** 100,106 ****
--- 108,126 ----
struct passwd* Input::GetPasswdStruct() {
+ #ifdef USE_PAM
+ int last_result;
+ char* username=NULL;
+
+ if ((last_result=pam_get_item(pamh, PAM_USER, (const void**)&username))!=PAM_SUCCESS){
+ cerr << APPNAME << ": " << pam_strerror(pamh, last_result) << endl;
+ pam_end(pamh, last_result);
+ exit(ERR_EXIT);
+ }
+ struct passwd* pw = getpwnam(username);
+ #else
struct passwd* pw = getpwnam(NameBuffer);
+ #endif
endpwent();
if (pw->pw_shell[0] == '\0') {
setusershell();
***************
*** 183,188 ****
--- 203,240 ----
}
int Input::Correct() {
+ #ifdef USE_PAM
+ int last_result;
+
+ // Store the password in global variables accessible
+ // by the PAM-conversation function
+ password=PasswdBuffer;
+
+ // Set the username in PAM
+ if ((last_result=pam_set_item(pamh, PAM_USER, NameBuffer))!=PAM_SUCCESS){
+ cerr << APPNAME << ": " << pam_strerror(pamh, last_result) << endl;
+ pam_end(pamh, last_result);
+ exit(ERR_EXIT);
+ }
+
+ // Authenticate the user
+ if ((last_result=pam_authenticate(pamh, PAM_DISALLOW_NULL_AUTHTOK))!=PAM_SUCCESS){
+ cerr << APPNAME << ": " << pam_strerror(pamh, last_result) << endl;
+ if (last_result==PAM_ABORT){
+ pam_end(pamh, last_result);
+ exit(ERR_EXIT);
+ }
+ return 0;
+ }
+
+ // Check the health of the account
+ if ((last_result=pam_acct_mgmt(pamh, PAM_SILENT))!=PAM_SUCCESS){
+ cerr << APPNAME << ": " << pam_strerror(pamh, last_result) << endl;
+ return 0;
+ }
+
+ return 1;
+ #else
char *unencrypted, *encrypted, *correct;
struct passwd *pw;
***************
*** 197,203 ****
if(sp)
correct = sp->sp_pwdp;
else
! #endif
correct = pw->pw_passwd;
if(correct == 0 || correct[0] == '\0')
--- 249,255 ----
if(sp)
correct = sp->sp_pwdp;
else
! #endif /* HAVE_SHADOW */
correct = pw->pw_passwd;
if(correct == 0 || correct[0] == '\0')
***************
*** 207,212 ****
--- 259,265 ----
encrypted = crypt(unencrypted, correct);
memset(unencrypted, 0, strlen (unencrypted));
return (strcmp(encrypted, correct) == 0);
+ #endif /* USE_PAM */
}
diff -rc slim-1.2.6-orig/Makefile slim-1.2.6/Makefile
*** slim-1.2.6-orig/Makefile 2006-09-15 23:00:37.000000000 +0200
--- slim-1.2.6/Makefile 2007-06-05 12:45:58.000000000 +0200
***************
*** 6,13 ****
CXX=/usr/bin/g++
CC=/usr/bin/gcc
CFLAGS=-I. -I/usr/X11R6/include -I/usr/include/freetype2 -I/usr/include/freetype2/config -I/usr/include/libpng12 -I/usr/include
! LDFLAGS=-L/usr/X11R6/lib -lXft -lX11 -lfreetype -lXrender -lfontconfig -lpng12 -lz -lm -lcrypt -lXmu -lpng -ljpeg
! CUSTOM=-DHAVE_SHADOW
PREFIX=/usr
CFGDIR=/etc
MANDIR=/usr/man
--- 6,13 ----
CXX=/usr/bin/g++
CC=/usr/bin/gcc
CFLAGS=-I. -I/usr/X11R6/include -I/usr/include/freetype2 -I/usr/include/freetype2/config -I/usr/include/libpng12 -I/usr/include
! LDFLAGS=-L/usr/X11R6/lib -lXft -lX11 -lfreetype -lXrender -lfontconfig -lpng12 -lz -lm -lcrypt -lXmu -lpng -ljpeg -lpam
! CUSTOM=-DHAVE_SHADOW -DUSE_PAM
PREFIX=/usr
CFGDIR=/etc
MANDIR=/usr/man
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;

View file

@ -14,8 +14,7 @@ stdenv.mkDerivation {
builder = ./builder.sh;
meta = {
description = ''The Insidious Big Brother Database (BBDB), a
contact management utility for Emacs.'';
description = "The Insidious Big Brother Database (BBDB), a contact management utility for Emacs";
homepage = http://bbdb.sourceforge.net/;
license = "GPL";
};

View file

@ -0,0 +1,48 @@
{ 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/;
};
}

View file

@ -26,6 +26,8 @@ stdenv.mkDerivation rec {
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.

View file

@ -14,8 +14,7 @@ stdenv.mkDerivation {
builder = ./builder.sh;
meta = {
description = ''Quack: Enhanced Emacs Support for Editing and
Running Scheme Code'';
description = "Enhanced Emacs support for editing and running Scheme code";
homepage = http://www.neilvandyke.org/quack/;
license = "GPLv2+";
};

View file

@ -30,6 +30,8 @@ stdenv.mkDerivation rec {
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

View file

@ -1,38 +1,43 @@
{ xawSupport ? true
, xpmSupport ? true
, dbusSupport ? true
, xaw3dSupport ? false
, gtkGUI ? false
, xftSupport ? false
, stdenv, fetchurl, ncurses, x11, libXaw ? null, libXpm ? null, Xaw3d ? null
, pkgconfig ? null, gtk ? null, libXft ? null
, 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 = "20080228"; in
let date = "2009-02-16"; in
stdenv.mkDerivation {
name = "emacs-snapshot-23-${date}";
builder = ./builder.sh;
src = fetchurl {
url = "http://ppa.launchpad.net/avassalotti/ubuntu/pool/main/e/emacs-snapshot/emacs-snapshot_${date}.orig.tar.gz";
sha256 = "1cix1qjrynidvdyww3g8fm1wyggc82qjxbfbv3rx630szm1v6bm7";
src = fetchcvs {
inherit date;
cvsRoot = ":pserver:anonymous@cvs.savannah.gnu.org:/sources/emacs";
module = "emacs";
sha256 = "6ec63da94a199c5f95bf4a9aa578cf14b3d85800fd37b3562d9a446b144b0d47";
};
# patches = [
# ./crt.patch
# ];
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?
]
@ -44,7 +49,7 @@ stdenv.mkDerivation {
";
meta = {
description = "Emacs with Unicode, GTK and Xft support (23.x alpha)";
description = "GNU Emacs with Unicode, GTK and Xft support (23.x alpha)";
homepage = http://www.emacswiki.org/cgi-bin/wiki/XftGnuEmacs;
license = "GPLv3+";
};

View file

@ -2,77 +2,79 @@
# but I have gvim with python support now :) - Marc
args: with args;
let inherit (args.composableDerivation) composableDerivation edf; in
composableDerivation {
initial = {
composableDerivation {} {
name = "vim_configurable-7.1";
name = "vim_configurable-7.2";
src = args.fetchurl {
url = ftp://ftp.vim.org/pub/vim/unix/vim-7.2.tar.bz2;
sha256 = "11hxkb6r2550c4n13nwr0d8afvh30qjyr5c2hw16zgay43rb0kci";
};
configureFlags = ["--enable-gui=auto" "--with-features=${args.features}"];
buildInputs = [ncurses pkgconfig]
++ [ gtk libX11 libXext libSM libXpm libXt libXaw libXau libXmu ];
# most interpreters aren't tested yet.. (see python for example how to do it)
flags = {}
// edf { name = "darwin"; } #Disable Darwin (Mac OS X) support.
// edf { name = "xsmp"; } #Disable XSMP session management
// edf { name = "xsmp_interact"; } #Disable XSMP interaction
// edf { name = "mzscheme"; } #Include MzScheme interpreter.
// edf { name = "perl"; feat = "perlinterp"; enable = { buildInputs = [perl]; };} #Include Perl interpreter.
// edf { name = "python"; feat = "pythoninterp"; enable = { buildInputs = [python]; }; } #Include Python interpreter.
// edf { name = "tcl"; enable = { buildInputs = [tcl]; }; } #Include Tcl interpreter.
// edf { name = "ruby"; feat = "rubyinterp"; enable = { buildInputs = [ruby]; };} #Include Ruby interpreter.
// edf { name = "cscope"; } #Include cscope interface.
// edf { name = "workshop"; } #Include Sun Visual Workshop support.
// edf { name = "netbeans"; } #Disable NetBeans integration support.
// edf { name = "sniff"; } #Include Sniff interface.
// edf { name = "multibyte"; } #Include multibyte editing support.
// edf { name = "hangulinput"; } #Include Hangul input support.
# // edf { name = "xim"; enable = { buildInputs = [xim]; }; } #Include XIM input support.
// edf { name = "fontset"; } #Include X fontset output support.
// edf { name = "acl"; } #Don't check for ACL support.
// edf { name = "gpm"; } #Don't use gpm (Linux mouse daemon).
// edf { name = "nls"; } #Don't support NLS (gettext()).
;
cfg = {
pythonSupport = true;
src = args.fetchurl {
url = ftp://ftp.vim.org/pub/vim/unix/vim-7.2.tar.bz2;
sha256 = "11hxkb6r2550c4n13nwr0d8afvh30qjyr5c2hw16zgay43rb0kci";
};
#--enable-gui=OPTS X11 GUI default=auto OPTS=auto/no/gtk/gtk2/gnome/gnome2/motif/athena/neXtaw/photon/carbon
/*
// edf "gtk_check" "gtk_check" { } #If auto-select GUI, check for GTK default=yes
// edf "gtk2_check" "gtk2_check" { } #If GTK GUI, check for GTK+ 2 default=yes
// edf "gnome_check" "gnome_check" { } #If GTK GUI, check for GNOME default=no
// edf "motif_check" "motif_check" { } #If auto-select GUI, check for Motif default=yes
// edf "athena_check" "athena_check" { } #If auto-select GUI, check for Athena default=yes
// edf "nextaw_check" "nextaw_check" { } #If auto-select GUI, check for neXtaw default=yes
// edf "carbon_check" "carbon_check" { } #If auto-select GUI, check for Carbon default=yes
// edf "gtktest" "gtktest" { } #Do not try to compile and run a test GTK program
*/
configureFlags = ["--enable-gui=auto" "--with-features=${args.features}"];
postInstall = "
rpath=`patchelf --print-rpath \$out/bin/vim`;
for i in $\buildInputs; do
echo adding \$i/lib
rpath=\$rpath:\$i/lib
done
echo \$buildInputs
echo \$rpath
patchelf --set-rpath \$rpath \$out/bin/{vim,gvim}
";
dontStrip =1;
buildInputs = [ncurses pkgconfig]
++ [ gtk libX11 libXext libSM libXpm libXt libXaw libXau libXmu ];
meta = {
description = "The most popular clone of the VI editor";
homepage = "www.vim.org";
};
# most interpreters aren't tested yet.. (see python for example how to do it)
flags = {
ftNix = {
patches = [ ./ft-nix-support.patch ];
};
}
// edf { name = "darwin"; } #Disable Darwin (Mac OS X) support.
// edf { name = "xsmp"; } #Disable XSMP session management
// edf { name = "xsmp_interact"; } #Disable XSMP interaction
// edf { name = "mzscheme"; } #Include MzScheme interpreter.
// edf { name = "perl"; feat = "perlinterp"; enable = { buildInputs = [perl]; };} #Include Perl interpreter.
// edf { name = "python"; feat = "pythoninterp"; enable = { buildInputs = [python]; }; } #Include Python interpreter.
// edf { name = "tcl"; enable = { buildInputs = [tcl]; }; } #Include Tcl interpreter.
// edf { name = "ruby"; feat = "rubyinterp"; enable = { buildInputs = [ruby]; };} #Include Ruby interpreter.
// edf { name = "cscope"; } #Include cscope interface.
// edf { name = "workshop"; } #Include Sun Visual Workshop support.
// edf { name = "netbeans"; } #Disable NetBeans integration support.
// edf { name = "sniff"; } #Include Sniff interface.
// edf { name = "multibyte"; } #Include multibyte editing support.
// edf { name = "hangulinput"; } #Include Hangul input support.
# // edf { name = "xim"; enable = { buildInputs = [xim]; }; } #Include XIM input support.
// edf { name = "fontset"; } #Include X fontset output support.
// edf { name = "acl"; } #Don't check for ACL support.
// edf { name = "gpm"; } #Don't use gpm (Linux mouse daemon).
// edf { name = "nls"; } #Don't support NLS (gettext()).
;
cfg = {
pythonSupport = true;
ftNixSupport = true; # add .nix filetype detection and minimal syntax highlighting support
};
#--enable-gui=OPTS X11 GUI default=auto OPTS=auto/no/gtk/gtk2/gnome/gnome2/motif/athena/neXtaw/photon/carbon
/*
// edf "gtk_check" "gtk_check" { } #If auto-select GUI, check for GTK default=yes
// edf "gtk2_check" "gtk2_check" { } #If GTK GUI, check for GTK+ 2 default=yes
// edf "gnome_check" "gnome_check" { } #If GTK GUI, check for GNOME default=no
// edf "motif_check" "motif_check" { } #If auto-select GUI, check for Motif default=yes
// edf "athena_check" "athena_check" { } #If auto-select GUI, check for Athena default=yes
// edf "nextaw_check" "nextaw_check" { } #If auto-select GUI, check for neXtaw default=yes
// edf "carbon_check" "carbon_check" { } #If auto-select GUI, check for Carbon default=yes
// edf "gtktest" "gtktest" { } #Do not try to compile and run a test GTK program
*/
postInstall = "
rpath=`patchelf --print-rpath \$out/bin/vim`;
for i in $\buildInputs; do
echo adding \$i/lib
rpath=\$rpath:\$i/lib
done
echo \$buildInputs
echo \$rpath
patchelf --set-rpath \$rpath \$out/bin/{vim,gvim}
";
dontStrip =1;
meta = {
description = "The most popular clone of the VI editor";
homepage = "www.vim.org";
};
}

View file

@ -0,0 +1,66 @@
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index a8e6261..2b008fc 100644
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -2258,6 +2258,9 @@ au BufNewFile,BufRead *.zsql call s:SQL()
" Z80 assembler asz80
au BufNewFile,BufRead *.z8a setf z8a
+" NIX
+au BufNewFile,BufRead *.nix setf nix
+
augroup END
@@ -2440,3 +2443,5 @@ endfunc
" Restore 'cpoptions'
let &cpo = s:cpo_save
unlet s:cpo_save
+
+
diff --git a/runtime/syntax/nix.vim b/runtime/syntax/nix.vim
new file mode 100644
index 0000000..a2f9918
--- /dev/null
+++ b/runtime/syntax/nix.vim
@@ -0,0 +1,40 @@
+" Vim syntax file
+" Language: nix
+" Maintainer: Marc Weber <marco-oweber@gmx.de>
+" Modify and commit if you feel that way
+" Last Change: 2007 Dec
+"
+" this syntax file can be still be enhanced very much..
+" Don't ask, do it :-)
+
+" Quit when a (custom) syntax file was already loaded
+if exists("b:current_syntax")
+ finish
+endif
+
+syn keyword nixKeyword let throw inherit import true false null with
+syn keyword nixConditional if else then
+syn keyword nixBrace ( ) { } =
+syn keyword nixBuiltin __currentSystem __currentTime __isFunction __getEnv __trace __toPath __pathExists
+ \ __readFile __toXML __toFile __filterSource __attrNames __getAttr __hasAttr __isAttrs __listToAttrs __isList
+ \ __head __tail __add __sub __lessThan __substring __stringLength
+
+syn match nixAttr "\w\+\ze\s*="
+syn match nixFuncArg "\zs\w\+\ze\s*:"
+syn region nixStringParam start=+\${+ end=+}+
+syn region nixMultiLineComment start=+/\*+ skip=+\\"+ end=+\*/+
+syn match nixEndOfLineComment "#.*$"
+syn region nixStringIndented start=+''+ skip=+'''\|''${\|"+ end=+''+ contains=nixStringParam
+syn region nixString start=+"+ skip=+\\"+ end=+"+ contains=nixStringParam
+
+hi def link nixKeyword Keyword
+hi def link nixConditional Conditional
+hi def link nixBrace Special
+hi def link nixString String
+hi def link nixStringIndented String
+hi def link nixBuiltin Special
+hi def link nixStringParam Macro
+hi def link nixMultiLineComment Comment
+hi def link nixEndOfLineComment Comment
+hi def link nixAttr Identifier
+hi def link nixFuncArg Identifier

View file

@ -0,0 +1,43 @@
{ fetchurl, stdenv, ncurses, help2man }:
stdenv.mkDerivation rec {
name = "zile-2.3.4";
src = fetchurl {
url = "mirror://gnu/zile/${name}.tar.gz";
sha256 = "1m20j5plpbx7rbk9rw3jsirip5gja5n8amqvg4mqs3pb28isx1fx";
};
buildInputs = [ ncurses help2man ];
# Tests can't be run because most of them rely on the ability to
# fiddle with the terminal.
doCheck = false;
meta = {
description = "GNU Zile, a lightweight Emacs clone";
longDescription = ''
GNU Zile, which is a lightweight Emacs clone. Zile is short
for Zile Is Lossy Emacs. Zile has been written to be as
similar as possible to Emacs; every Emacs user should feel at
home.
Zile has all of Emacs's basic editing features: it is 8-bit
clean (though it currently lacks Unicode support), and the
number of editing buffers and windows is only limited by
available memory and screen space respectively. Registers,
minibuffer completion and auto fill are available. Function
and variable names are identical with Emacs's (except those
containing the word "emacs", which instead contain the word
"zile"!).
However, all of this is packed into a program which typically
compiles to about 130Kb.
'';
homepage = http://www.gnu.org/software/zile/;
license = "GPLv3+";
};
}

View file

@ -4,11 +4,11 @@
}:
stdenv.mkDerivation {
name = "gimp-2.6.4";
name = "gimp-2.6.5";
src = fetchurl {
url = ftp://ftp.gtk.org/pub/gimp/v2.6/gimp-2.6.4.tar.bz2;
sha256 = "1qlpszdaskh575xjibkxvvqxmgp8j7v1i1z2dnzz6gazni2pmll6";
url = ftp://ftp.gtk.org/pub/gimp/v2.6/gimp-2.6.5.tar.bz2;
sha256 = "08g5rc383ijcdfqr9ybrn6qazxqqfq0pndknsgh25z19bhghh2b2";
};
buildInputs = [

View file

@ -15,9 +15,7 @@ stdenv.mkDerivation rec {
builder = writeScript (name + "-builder")
(textClosure localDefs [doConfigure doMakeInstall doForceShare doPropagate]);
meta = {
description = "
GPL Optical Character Recognition
";
description = "GPL Optical Character Recognition";
inherit src;
};
}

View file

@ -41,8 +41,9 @@ stdenv.mkDerivation rec {
meta = {
license = "GPL";
homepage = http://www.inkscape.org;
description = ''Inkscape is a feature-rich vector graphics editor
that edits files in the W3C SVG (Scalable Vector
Graphics) file format.'';
longDescription = ''
Inkscape is a feature-rich vector graphics editor that edits
files in the W3C SVG (Scalable Vector Graphics) file format.
'';
};
}

View file

@ -29,13 +29,11 @@ let
") [minInit doUnpack];
in
stdenv.mkDerivation rec {
name = "xscreensaver-"+version;
name = "xscreensaver-5.07";
builder = writeScript (name + "-builder")
(textClosure localDefs [preConfigure doConfigure doMakeInstall doForceShare doPropagate]);
meta = {
description = "
The X screensaver daemon. Run xscreensaver-demo to configure.
";
description = "A set of screensavers";
inherit src;
};
}

View file

@ -1,61 +1,58 @@
args: with args;
let inherit (args.composableDerivation) composableDerivation edf; in
composableDerivation {
composableDerivation {} {
initial = {
name = "sox-14.0.0";
name = "sox-14.0.0";
src = args.fetchurl {
url = mirror://sourceforge/sox/sox-14.0.0.tar.gz;
sha256 = "1l7v04nlvb96y0w9crvm6nq8g50yxp3bkv6nb1c205s982inlalc";
};
flags =
# are these options of interest? We'll see
#--disable-fftw disable usage of FFTW
#--enable-debug enable debugging
#--disable-cpu-clip disable tricky cpu specific clipper
edf { name = "alsa"; enable = { buildInputs = [alsaLib]; }; }
// edf { name = "libao"; enable = { buildInputs = [libao]; }; }
// edf { name = "oss"; }
// edf { name = "sun_audio"; };
# These options should be autodetected by the configure script
/*
--without-sndfile Don't try to use libsndfile
--without-ogg Don't try to use Ogg Vorbis
--without-flac Don't try to use FLAC
--without-ffmpeg Don't try to use ffmpeg
--without-mad Don't try to use MAD (MP3 Audio Decoder)
--without-lame Don't try to use LAME (LAME Ain't an MP3 Encoder)
--without-amr-wb Don't try to use amr-wb
--without-amr-nb Don't try to use amr-nb
--without-samplerate Don't try to use libsamplerate (aka Secret Rabbit
Code)
--without-ladspa Don't try to use LADSPA
--with-ladspa-path Default search path for LADSPA plugins
*/
cfg = {
ossSupport = false;
sun_audioSupport = false;
src = args.fetchurl {
url = mirror://sourceforge/sox/sox-14.0.0.tar.gz;
sha256 = "1l7v04nlvb96y0w9crvm6nq8g50yxp3bkv6nb1c205s982inlalc";
};
optionals = [ "libsndfile" "libogg" "flac" "ffmpeg" "libmad" "lame"
/* "amr-wb" "amr-nb" */
"libsamplerate" /* "ladspa" */ ];
flags =
# are these options of interest? We'll see
#--disable-fftw disable usage of FFTW
#--enable-debug enable debugging
#--disable-cpu-clip disable tricky cpu specific clipper
edf { name = "alsa"; enable = { buildInputs = [alsaLib]; }; }
// edf { name = "libao"; enable = { buildInputs = [libao]; }; }
// edf { name = "oss"; }
// edf { name = "sun_audio"; };
# These options should be autodetected by the configure script
/*
--without-sndfile Don't try to use libsndfile
--without-ogg Don't try to use Ogg Vorbis
--without-flac Don't try to use FLAC
--without-ffmpeg Don't try to use ffmpeg
--without-mad Don't try to use MAD (MP3 Audio Decoder)
--without-lame Don't try to use LAME (LAME Ain't an MP3 Encoder)
--without-amr-wb Don't try to use amr-wb
--without-amr-nb Don't try to use amr-nb
--without-samplerate Don't try to use libsamplerate (aka Secret Rabbit
Code)
--without-ladspa Don't try to use LADSPA
--with-ladspa-path Default search path for LADSPA plugins
*/
meta = {
description = "Sample Rate Converter for audio";
homepage = http://www.mega-nerd.com/SRC/index.html;
# you can choose one of the following licenses:
license = [ "GPL"
{ url=http://www.mega-nerd.com/SRC/libsamplerate-cul.pdf;
name="libsamplerate Commercial Use License";
} ];
};
cfg = {
ossSupport = false;
sun_audioSupport = false;
};
optionals = [ "libsndfile" "libogg" "flac" "ffmpeg" "libmad" "lame"
/* "amr-wb" "amr-nb" */
"libsamplerate" /* "ladspa" */ ];
meta = {
description = "Sample Rate Converter for audio";
homepage = http://www.mega-nerd.com/SRC/index.html;
# you can choose one of the following licenses:
license = [ "GPL"
{ url=http://www.mega-nerd.com/SRC/libsamplerate-cul.pdf;
name="libsamplerate Commercial Use License";
} ];
};
}

View file

@ -1,4 +1,5 @@
args: with args;
stdenv.mkDerivation {
name = "djvulibre-3.5.19";
@ -7,15 +8,10 @@ stdenv.mkDerivation {
sha256 = "0y6d9ka42llm7h64fc73s4wqcbxg31kallyfaarhkqsxyiaa3zsp";
};
buildInputs = [qt libX11 libjpeg libtiff libpng ghostscript zlib libungif
x11 mesa];
buildInputs = [qt libX11 libjpeg libtiff libpng ghostscript zlib libungif x11 mesa];
meta = {
description = "
DjVu libre - a library and a viewer for djvu format - compression for
scanned images.
";
description = "A library and viewer for the DJVU file format for scanned images";
homepage = http://djvu.sourceforge.net;
};
}

View file

@ -1,10 +1,10 @@
args: with args;
stdenv.mkDerivation {
name = "dmenu-3.8";
name = "dmenu-3.9";
src = fetchurl {
url = http://code.suckless.org/dl/tools/dmenu-3.8.tar.gz;
sha256 = "6d111a0e4d970df827f6e3c8ff60f5c96fdac4805f8100d508087859dc4f158b";
url = http://code.suckless.org/dl/tools/dmenu-3.9.tar.gz;
sha256 = "2370111e02c6a3863ea04376795fa72f9e41cdd2650b12f90e6a0c7d096e4b22";
};
buildInputs = [ libX11 libXinerama ];
@ -13,7 +13,7 @@ stdenv.mkDerivation {
meta = {
description = "a generic, highly customizable, and efficient menu for the X Window System";
homepage = http://www.suckless.org/programs/dmenu.html;
homepage = http://tools.suckless.org/dmenu;
license = "MIT";
};
}

View file

@ -3,43 +3,41 @@ let edf = composableDerivation.edf;
optionIncLib = name : attr : " -D${name}_INCLUDE_DIR=${__getAttr attr args}/incclude"
+ " -D${name}_LIBRARY=${__getAttr attr args}/lib "; # lib 64?
in
composableDerivation.composableDerivation {
initial = {
composableDerivation.composableDerivation {} {
buildInputs = [ gdal cmake qt flex bison proj geos x11 sqlite gsl];
cfgOption = [
# without this option it can't find sqlite libs yet (missing symbols..) (TODO)
"-DWITH_INTERNAL_SQLITE3=TRUE"
];
buildInputs = [ gdal cmake qt flex bison proj geos x11 sqlite gsl];
cfgOption = [
# without this option it can't find sqlite libs yet (missing symbols..) (TODO)
"-DWITH_INTERNAL_SQLITE3=TRUE"
];
name = "qgis-${version}";
# src = args.fetchsvn { url=https://svn.qgis.org/repos/qgis/trunk/qgis;
# md5="ac0560e0a2d4e6258c8639f1e9b56df3"; rev="7704"; };
src = fetchurl {
url = "http://download.osgeo.org/qgis/src/qgis_${version}.tar.gz";
sha256 = "17vqbld4wr9jyn1s5n0bkpaminsgc2dzcgdfk8ic168xydnwa7b3";
};
meta = {
description = "user friendly Open Source Geographic Information System";
homepage = http://www.qgis.org;
# you can choose one of the following licenses:
license = [ "GPL" ];
};
phases = "unpackPhase buildPhase installPhase";
buildPhase = ''pwd;echo XXXXXXXXX; VERBOSE=1 cmake -DCMAKE_INSTALL_PREFIX=$out ''${cfgOption} ..'';
postUnpack = ''
export CMAKE_SYSTEM_LIBRARY_PATH=
for i in $buildInputs $propagatedBuildInputs; do
CMAKE_SYSTEM_LIBRARY_PATH=$i/lib:$CMAKE_SYSTEM_LIBRARY_PATH
done
'';
#configurePhase="./autogen.sh --prefix=\$out --with-gdal=\$gdal/bin/gdal-config --with-qtdir=\$qt";
# buildPhases="unpackPhase buildPhase";
name = "qgis-${version}";
# src = args.fetchsvn { url=https://svn.qgis.org/repos/qgis/trunk/qgis;
# md5="ac0560e0a2d4e6258c8639f1e9b56df3"; rev="7704"; };
src = fetchurl {
url = "http://download.osgeo.org/qgis/src/qgis_${version}.tar.gz";
sha256 = "17vqbld4wr9jyn1s5n0bkpaminsgc2dzcgdfk8ic168xydnwa7b3";
};
meta = {
description = "user friendly Open Source Geographic Information System";
homepage = http://www.qgis.org;
# you can choose one of the following licenses:
license = [ "GPL" ];
};
phases = "unpackPhase buildPhase installPhase";
buildPhase = ''pwd;echo XXXXXXXXX; VERBOSE=1 cmake -DCMAKE_INSTALL_PREFIX=$out ''${cfgOption} ..'';
postUnpack = ''
export CMAKE_SYSTEM_LIBRARY_PATH=
for i in $buildInputs $propagatedBuildInputs; do
CMAKE_SYSTEM_LIBRARY_PATH=$i/lib:$CMAKE_SYSTEM_LIBRARY_PATH
done
'';
#configurePhase="./autogen.sh --prefix=\$out --with-gdal=\$gdal/bin/gdal-config --with-qtdir=\$qt";
# buildPhases="unpackPhase buildPhase";
}

View file

@ -10,13 +10,15 @@
}:
stdenv.mkDerivation {
name = "firefox-3.0.6";
stdenv.mkDerivation rec {
name = "firefox-${version}";
version = "3.0.7";
src = fetchurl {
# Don't forget to update xulrunner.nix as well!
url = http://releases.mozilla.org/pub/mozilla.org/firefox/releases/3.0.6/source/firefox-3.0.6-source.tar.bz2;
sha1 = "e2845c07b507308664f6f39086a050b2773382fb";
url = "http://releases.mozilla.org/pub/mozilla.org/firefox/releases/${version}/source/firefox-${version}-source.tar.bz2";
sha1 = "03c078d9c2d047d7cdc25f7823c6e647cb8d8f8b";
};
buildInputs = [

View file

@ -11,7 +11,7 @@
let
version = "1.9.0.6"; # this attribute is used by other packages
version = "1.9.0.7"; # this attribute is used by other packages
in
@ -19,8 +19,8 @@ stdenv.mkDerivation {
name = "xulrunner-${version}";
src = fetchurl {
url = http://releases.mozilla.org/pub/mozilla.org/firefox/releases/3.0.6/source/firefox-3.0.6-source.tar.bz2;
sha1 = "e2845c07b507308664f6f39086a050b2773382fb";
url = http://releases.mozilla.org/pub/mozilla.org/firefox/releases/3.0.7/source/firefox-3.0.7-source.tar.bz2;
sha1 = "03c078d9c2d047d7cdc25f7823c6e647cb8d8f8b";
};
buildInputs = [

View file

@ -3,6 +3,16 @@ source $stdenv/setup
dontStrip=1
dontPatchELF=1
unpackPhase() {
tar xvzf $src;
for a in *; do
if [ -d $a ]; then
cd $a
break
fi
done
}
installPhase() {
ensureDir $out/lib/mozilla/plugins
cp -p libflashplayer.so $out/lib/mozilla/plugins

View file

@ -1,15 +1,20 @@
{stdenv, fetchurl, zlib, alsaLib, curl}:
assert stdenv.system == "i686-linux";
stdenv.mkDerivation {
name = "flashplayer-10.0.12.36";
name = if (stdenv.system == "x86_64-linux") then
"flashplayer-10.0.22.87"
else
"flashplayer-10.0.22";
builder = ./builder.sh;
src = fetchurl {
src = if (stdenv.system == "x86_64-linux") then fetchurl {
url = http://download.macromedia.com/pub/labs/flashplayer10/libflashplayer-10.0.22.87.linux-x86_64.so.tar.gz;
sha256 = "eac1d05aa96036819fe8f14f293a2ccc9601e1e32e08ec33e6ed9ed698e76145";
}
else fetchurl {
url = http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player_10_linux.tar.gz;
sha256 = "cd3e8fbb05da4a5303f958cb627bc7f3845dd86576a96ab157effc4f0ae65e5d";
sha256 = "cd29f166c87fecc943e88fe951bb61c56728fab12b4bf343badafa73ea95394e";
};
inherit zlib alsaLib;

View file

@ -1,43 +1,46 @@
{stdenv, fetchurl, pidgin, imagemagick, ghostscript,
pkgconfig, glib, gtk, texLive}:
{ stdenv, fetchurl, pidgin, imagemagick, ghostscript
, pkgconfig, glib, gtk, texLive
}:
stdenv.mkDerivation {
name = "pidgin-latex";
src =
fetchurl {
url = http://tapas.affenbande.org/pidgin-latex/pidgin-latex-0.9.tgz;
sha256 = "1yqd3qgxd3n8hm60qg7yv7j1crr6f3d4yrdpgwdpw2pyf92p8nxp";
};
src = fetchurl {
url = http://tapas.affenbande.org/pidgin-latex/pidgin-latex-0.9.tgz;
sha256 = "1yqd3qgxd3n8hm60qg7yv7j1crr6f3d4yrdpgwdpw2pyf92p8nxp";
};
preBuild = "
sed -e '/^PREFIX/d' -i Makefile ;
sed -e 's@/usr/bin/latex@${texLive}/bin/pdflatex@g' -i pidgin-latex.h
sed -e 's@/usr/bin/convert@${imagemagick}/bin/convert@g' -i pidgin-latex.h
sed -e 's@.*convert_path.*@const gchar *convert = CONVERT_PATH;@'
sed -e 's@.*latex_path.*@const gchar *convert = LATEX_PATH;@'
sed -e 's/%s.dvi/%s.pdf/' -i pidgin-latex.c
sed -e 's/latex_system\(.*\)FALSE/latex_system\1TRUE/' -i pidgin-latex.c
";
preBuild = ''
sed -e '/^PREFIX/d' -i Makefile ;
sed -e 's@/usr/bin/latex@${texLive}/bin/pdflatex@g' -i pidgin-latex.h
sed -e 's@/usr/bin/convert@${imagemagick}/bin/convert@g' -i pidgin-latex.h
sed -e 's@.*convert_path.*@const gchar *convert = CONVERT_PATH;@'
sed -e 's@.*latex_path.*@const gchar *convert = LATEX_PATH;@'
sed -e 's/%s.dvi/%s.pdf/' -i pidgin-latex.c
sed -e 's/latex_system\(.*\)FALSE/latex_system\1TRUE/' -i pidgin-latex.c
'';
makeFlags="PREFIX=\$(out)";
makeFlags = "PREFIX=\$(out)";
preInstall="mkdir -p \${out}/lib/pidgin \${out}/bin";
preInstall = "mkdir -p $out/lib/pidgin $out/bin";
postInstall = "mkdir -p \${out}/share/pidgin-latex;
ln -s \${out}/lib/pidgin/pidgin-latex.so \${out}/share/pidgin-latex/";
postInstall = ''
mkdir -p $out/share/pidgin-latex
ln -s $out/lib/pidgin/pidgin-latex.so $out/share/pidgin-latex/
'';
buildInputs = [pidgin imagemagick ghostscript pkgconfig glib gtk texLive];
meta = {
description = "
Pidgin-LaTeX is a pidgin plugin that cuts everything inside \$\$ .. \$\$
and feeds to LaTeX. A bit of conversion (automated, of course) - and you
see every formula that occurs in conversation in pretty graphical form.
There are some glitches - when a formula fails to compile, you can see
just previous formula..
Enable it for user by linking to ~/.purple/plugins - from
sw/share/pidgin-latex , not from store of course.
";
homepage = http://tapas.affenbande.org/wordpress/?page_id=70;
longDescription = ''
Pidgin-LaTeX is a pidgin plugin that cuts everything inside \$\$
.. \$\$ and feeds to LaTeX. A bit of conversion (automated, of
course) - and you see every formula that occurs in conversation
in pretty graphical form. There are some glitches - when a
formula fails to compile, you can see just previous formula..
Enable it for user by linking to ~/.purple/plugins - from
sw/share/pidgin-latex , not from store of course.
'';
homepage = http://tapas.affenbande.org/wordpress/?page_id=70;
};
}

View file

@ -20,10 +20,10 @@
} :
stdenv.mkDerivation {
name = "pidgin-2.5.4";
name = "pidgin-2.5.5";
src = fetchurl {
url = mirror://sourceforge/pidgin/pidgin-2.5.4.tar.bz2;
sha256 = "0qqvv9x5p2yxmw57sj3hvc10vxpd9mqv61w1pk97qcwbggwvxgn6";
url = mirror://sourceforge/pidgin/pidgin-2.5.5.tar.bz2;
sha256 = "1s13fzxa62mrxah6khsnpywmw1fknghph1krgwfvcs18kjwi6nnb";
};
inherit nss ncurses;

View file

@ -1,12 +1,12 @@
{stdenv, fetchurl, unzip}:
stdenv.mkDerivation {
name = "chatzilla-0.9.83";
name = "chatzilla-0.9.84";
src = fetchurl {
# Obtained from http://chatzilla.rdmsoft.com/xulrunner/.
url = http://chatzilla.rdmsoft.com/xulrunner/download/chatzilla-0.9.83-xr.zip;
sha256 = "0dzk0k9gmzy7sqbiszakd69pjr4h6pfdsb3s6zbx4gc46z4n3shx";
url = http://chatzilla.rdmsoft.com/xulrunner/download/chatzilla-0.9.84-xr.zip;
sha256 = "0v1xakdgjjwwh0azxbh7y9yi99gcn0d37sfxrdzw78lbag3fh0k8";
};
buildInputs = [unzip];

View file

@ -0,0 +1,105 @@
{ stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL
, libjpeg, zlib, cairo, dbus, dbus_glib, bzip2
, freetype, fontconfig, xulrunner
, autoconf , libpng , alsaLib, sqlite, patchelf
, # If you want the resulting program to call itself "Thunderbird"
# instead of "Mail", enable this option. However, those
# binaries may not be distributed without permission from the
# Mozilla Foundation, see
# http://www.mozilla.org/foundation/trademarks/.
enableOfficialBranding ? false
}:
stdenv.mkDerivation {
name = "thunderbird-3.0beta2";
src = fetchurl {
url = "ftp://ftp.mozilla.org/pub/thunderbird/releases/3.0b2/source/thunderbird-3.0b2-source.tar.bz2";
sha256 = "17mlp0x6sf1v9w8vraln7mr566gvk84rxvxiwzhbdj2p0475zjqr";
};
buildInputs = [
pkgconfig gtk perl zip libIDL libjpeg zlib cairo bzip2
python dbus dbus_glib pango freetype fontconfig autoconf
libpng alsaLib sqlite patchelf
];
propagatedBuildInputs = [xulrunner];
preUnpack = "mkdir thunderbird; cd thunderbird;";
setSourceRoot = "export sourceRoot=.;";
preConfigure = ''
for i in $(find . -name configure.in); do echo $i; (cd $(dirname $i); autoconf || true; ); done;
XUL_SDK=$(echo ${xulrunner}/lib/xulrunner-devel-*/)
export NIX_CFLAGS_COMPILE="''${NIX_CFLAGS_COMPILE} -I$XUL_SDK/include";
export NIX_CFLAGS_COMPILE="''${NIX_CFLAGS_COMPILE} -I$(echo ${xulrunner}/include/xulrunner-*/stable)";
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE";
export NIX_LDFLAGS="''${NIX_LDFLAGS} -L$XUL_SDK/lib -L$XUL_SDK/sdk/lib";
export NIX_LDFLAGS="$NIX_LDFLAGS -L${xulrunner}/lib/xulrunner-${xulrunner.version}";
export NIX_LDFLAGS="$NIX_LDFLAGS -lxpcomglue -lxpcomglue_s -lxul -lnss -lmozjs -lsqlite3";
echo NIX_CFLAGS_COMPILE: $NIX_CFLAGS_COMPILE
echo NIX_LDFLAGS: $NIX_LDFLAGS
for i in $(find $(pwd) -wholename '*/public/*.idl' -exec dirname '{}' ';' | sort | uniq); do
export XPIDL_FLAGS="$XPIDL_FLAGS -I$i";
done;
echo $XPIDL_FLAGS
sed -e "s@\$(XPIDL_FLAGS)@\$(XPIDL_FLAGS) $XPIDL_FLAGS@" -i config/rules.mk
'';
postConfigure = ''
(cd mozilla/nsprpub; ./configure --prefix=$out/XUL_SDK; )
'';
preBuild = ''
for i in $(find . -name autoconf.mk); do echo $i; sed -e 's@-Wl,-rpath-link,$(PREFIX)/lib@@' -i $i; done
make -C mozilla/config nsinstall
mkdir -p $out/libexec/mozilla/nsinstall
mv mozilla/config/nsinstall $out/libexec/mozilla/nsinstall/nsinstall
cat > mozilla/config/nsinstall <<EOF
#! /bin/sh
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${sqlite}/lib:${xulrunner}/lib/xulrunner-${xulrunner.version}"
$out/libexec/mozilla/nsinstall/nsinstall "\$@"
EOF
chmod a+x mozilla/config/nsinstall
'';
configureFlags = [
"--enable-application=mail"
"--enable-optimize"
"--disable-debug"
"--with-system-jpeg"
"--with-system-zlib"
"--with-system-bz2"
#"--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support"
"--enable-system-cairo"
#"--enable-system-sqlite" # <-- this seems to be discouraged
"--disable-crashreporter"
"--with-libxul-sdk=${xulrunner}/lib/xulrunner-devel-${xulrunner.version}"
"--enable-extensions=default"
]
++ (if enableOfficialBranding then ["--enable-official-branding"] else []);
postInstall = ''
# Strip some more stuff.
strip -S $out/lib/*/* || true
libDir=$(cd $out/lib && ls -d thunderbird-[0-9]*)
test -n "$libDir"
ln -s ${xulrunner}/lib/xulrunner-${xulrunner.version} $out/lib/$libDir/xulrunner
# Register extensions etc. !!! is this needed anymore?
echo "running thunderbird -register..."
$out/bin/thunderbird -register
''; # */
meta = {
description = "Mozilla Thunderbird, a full-featured email client";
homepage = http://www.mozilla.com/en-US/thunderbird/;
};
passthru = {
inherit gtk;
};
}

View file

@ -23,9 +23,7 @@ stdenv.mkDerivation rec {
(textClosure localDefs
[doScons doForceShare doPropagate]);
meta = {
description = "
Linux DC++ - Direct Connect client
";
description = "Linux DC++ - Direct Connect client";
inherit src;
};
}

View file

@ -1,21 +1,28 @@
{stdenv, fetchurl, cpio}:
# Note: may need the C-libs at ftp://ftp.ncbi.nih.gov/toolbox/ncbi_tools++/2008/Mar_17_2008/NCBI_C_Toolkit/ncbi_c--Mar_17_2008.tar.gz (or split out?)
# The NCBI package only builds on 32bits - on 64bits it breaks because
# of position dependent code. Debian packagers have written replacement
# make files(!). Either we use these, or negotiate a version which can
# be pushed upstream to NCBI.
#
# Another note: you may want the older and deprecated C-libs at ftp://ftp.ncbi.nih.gov/toolbox/ncbi_tools++/2008/Mar_17_2008/NCBI_C_Toolkit/ncbi_c--Mar_17_2008.tar.gz
stdenv.mkDerivation rec {
name = "ncbi_cxx";
ncbi_version = "Mar_17_2008";
name = "ncbi_tools";
ncbi_version="Dec_31_2008";
src = fetchurl {
url = "ftp://ftp.ncbi.nih.gov/toolbox/ncbi_tools++/2008/${ncbi_version}/ncbi_cxx--${ncbi_version}.tar.gz";
sha256 = "0mxbmz6gndallz8l5jdslq6illa3hgf31xi2yb984mqm9in485as";
sha256 = "1b2v0dcdqn3bysgdkj57sxmd6s0hc9wpnxssviz399g6plhxggbr";
};
configureFlags = "--without-debug --with-bin-release --with-dll --without-static";
# PIC flag (position independent code for shared libraries)
NIX_CXXFLAGS_COMPILE = if stdenv.system == "x86_64-linux" then "-fPIC" else "";
buildInputs = [cpio];
meta = {
description = ''NCBI Bioinformatics toolbox (incl. blast)'';
longDescription = ''The NCBI Bioinformatics toolsbox, including command-line utilties, libraries and include files. No X11 support (at this point).'';
description = ''NCBI Bioinformatics toolbox (incl. BLAST)'';
longDescription = ''The NCBI Bioinformatics toolsbox, including command-line utilties, libraries and include files. No X11 support'';
homepage = http://www.ncbi.nlm.nih.gov/IEB/ToolBox/;
license = "GPL";
priority = "5"; # zlib.so gives a conflict with zlib

View file

@ -1,10 +1,11 @@
{stdenv, fetchurl}:
stdenv.mkDerivation {
name = "paml-4.1";
stdenv.mkDerivation rec {
version = "4.2a";
name = "paml-${version}";
src = fetchurl {
url = http://abacus.gene.ucl.ac.uk/software/paml4.1.tar.gz;
sha256 = "1w8ih7h9xfbnmzmbql5l1hjkgzp17wjvxjfgc76zbcsb61b0ls34";
url = "http://abacus.gene.ucl.ac.uk/software/paml${version}.tar.gz";
sha256 = "0yywyrjgxrpavp50n00l01pl90b7pykgb2k53yrlykz9dnf583pb";
};
preBuild = ''

View file

@ -21,8 +21,7 @@ stdenv.mkDerivation rec {
'';
meta = {
description = ''GNU Arch (aka. `tla'), a distributed revision
control system.'';
description = "GNU Arch (aka. `tla'), a distributed revision control system";
homepage = http://www.gnu.org/software/gnu-arch/;
license = "GPL";
};

View file

@ -17,11 +17,12 @@ stdenv.mkDerivation rec {
installPhase = "make install prefix=$out";
meta = {
description = ''CVSps is a program for generating `patchset' information
from a CVS repository. A patchset in this case is
defined as a set of changes made to a collection of
files, and all committed at the same time (using a single
"cvs commit" command).'';
longDescription = ''
CVSps is a program for generating `patchset' information from a
CVS repository. A patchset in this case is defined as a set of
changes made to a collection of files, and all committed at the
same time (using a single "cvs commit" command).
'';
homepage = http://www.cobite.com/cvsps/;
license = "GPLv2";
};

View file

@ -63,6 +63,24 @@ rec {
};
};
tig = stdenv.mkDerivation {
name = "tig-0.14.1";
src = fetchurl {
url = "http://jonas.nitro.dk/tig/releases/tig-0.14.1.tar.gz";
sha256 = "1a8mi1pv36v67n31vs95gcibkifnqq5s1x69lz1cz0218yv9s73r";
};
buildInputs = [ncurses asciidoc xmlto docbook_xsl];
installPhase = ''
make install
make install-doc
'';
meta = {
description = "console git repository browser that additionally can act as a pager for output from various git commands";
homepage = http://jonas.nitro.dk/tig/;
license = "GPLv2";
};
};
hg2git = import ./hg2git {
inherit fetchurl stdenv mercurial coreutils git makeWrapper;
inherit (bleedingEdgeRepos) sourceByName;

View file

@ -10,14 +10,14 @@ assert svnSupport -> (subversion != null && perlLibs != [] && subversion.perlBin
stdenv.mkDerivation rec {
name = "git-1.6.0.4";
name = "git-1.6.1.3";
src = fetchurl {
url = "mirror://kernel/software/scm/git/${name}.tar.bz2";
sha256 = "0q5jnix65zn58dhd9xc3sjpamli0lh1bnsz1b9riwwicgwssrk7q";
sha256 = "aef4814634ac9ce8119fabc4bd1c363bb946f73ed34475a4baaad09a3fb23682";
};
patches = [ ./docbook2texi.patch ];
patches = [ ./docbook2texi.patch ./fill-paragraph.patch ];
buildInputs = [curl openssl zlib expat gettext cpio makeWrapper]
++ # documentation tools

View file

@ -0,0 +1,11 @@
diff --git a/contrib/emacs/git.el b/contrib/emacs/git.el
index 3c37d0d..e314c44 100644
--- a/contrib/emacs/git.el
+++ b/contrib/emacs/git.el
@@ -1331,6 +1331,7 @@ Return the list of files that haven't been handled."
(log-edit-diff-function . git-log-edit-diff)) buffer)
(log-edit 'git-do-commit nil 'git-log-edit-files buffer))
(setq font-lock-keywords (font-lock-compile-keywords git-log-edit-font-lock-keywords))
+ (setq paragraph-separate (concat (regexp-quote git-log-msg-separator) "$\\|Author: \\|Date: \\|Merge: \\|Signed-off-by: \\|\f\\|[ ]*$"))
(setq buffer-file-coding-system coding-system)
(re-search-forward (regexp-quote (concat git-log-msg-separator "\n")) nil t))))

View file

@ -4,8 +4,6 @@
, alsa ? null, libX11, libXv ? null, libtheora ? null, libcaca ? null
, libXinerama ? null, libXrandr ? null, libdvdnav ? null
, cdparanoia ? null, cddaSupport ? true
, extraBuildInputs ? []
, extraConfigureFlags ? ""
}:
assert alsaSupport -> alsa != null;
@ -30,53 +28,42 @@ let
in
stdenv.mkDerivation {
name = "MPlayer-1.0rc2";
name = "MPlayer-1.0rc2-r28450";
src = fetchurl {
url = http://www1.mplayerhq.hu/MPlayer/releases/MPlayer-1.0rc2.tar.bz2;
sha1 = "e9b496f3527c552004ec6d01d6b43f196b43ce2d";
url = mirror://gentoo/distfiles/mplayer-1.0_rc2_p28450.tar.bz2;
sha256 = "0cbils58mq20nablywgjfpfx2pzjgnhin23sb8k1s5h2rxgvi3vf";
};
buildInputs = [
x11 libXv freetype zlib
(if alsaSupport then alsa else null)
(if xvSupport then libXv else null)
(if theoraSupport then libtheora else null)
(if cacaSupport then libcaca else null)
(if xineramaSupport then libXinerama else null)
(if randrSupport then libXrandr else null)
(if dvdnavSupport then libdvdnav else null)
(if cddaSupport then cdparanoia else null)
]
++ extraBuildInputs
;
buildInputs =
[x11 libXv freetype zlib]
++ stdenv.lib.optional alsaSupport alsa
++ stdenv.lib.optional xvSupport libXv
++ stdenv.lib.optional theoraSupport libtheora
++ stdenv.lib.optional cacaSupport libcaca
++ stdenv.lib.optional xineramaSupport libXinerama
++ stdenv.lib.optional randrSupport libXrandr
++ stdenv.lib.optionals dvdnavSupport [libdvdnav libdvdnav.libdvdread]
++ stdenv.lib.optional cddaSupport cdparanoia;
configureFlags = "
configureFlags = ''
${if cacaSupport then "--enable-caca" else "--disable-caca"}
${if dvdnavSupport then "--enable-dvdnav" else ""}
${if dvdnavSupport then "--enable-dvdnav --enable-dvdread --disable-dvdread-internal" else ""}
--win32codecsdir=${win32codecs}
--realcodecsdir=${rp9codecs}
--enable-runtime-cpudetection
--enable-x11 --with-extraincdir=${libX11}/include
--disable-xanim
--disable-ivtv
"
+ extraConfigureFlags
;
'';
NIX_LDFLAGS = "-lX11 -lXext " # !!! hack, necessary to get libX11/Xext in the RPATH
+ (if dvdnavSupport then "-ldvdnav" else "");
NIX_LDFLAGS = "-lX11 -lXext";
# Provide a reasonable standard font. Maybe we should symlink here.
postInstall = "cp ${freefont_ttf}/share/fonts/truetype/FreeSans.ttf $out/share/mplayer/subfont.ttf";
patches = [
# These fix MPlayer's aspect ratio when run in a screen rotated with
# Xrandr.
# See: http://itdp.de/~itdp/html/mplayer-dev-eng/2005-08/msg00427.html
#./mplayer-aspect.patch
#./mplayer-pivot.patch
];
postInstall = ''
ensureDir $out/share/mplayer
cp ${freefont_ttf}/share/fonts/truetype/FreeSans.ttf $out/share/mplayer/subfont.ttf
'';
meta = {
description = "A movie player that supports many video formats";

View file

@ -1,8 +1,16 @@
{stdenv, fetchurl}: stdenv.mkDerivation {
{stdenv, fetchurl}:
stdenv.mkDerivation {
name = "MPlayer-codecs-essential-20071007";
builder = ./builder.sh;
src = fetchurl {
url = http://www2.mplayerhq.hu/MPlayer/releases/codecs/essential-20071007.tar.bz2;
sha256 = "18vls12n12rjw0mzw4pkp9vpcfmd1c21rzha19d7zil4hn7fs2ic";
};
meta = {
license = "unfree";
};
}

View file

@ -5,13 +5,13 @@
, glib, gtk, x11, ming, dejagnu, python
, lib, makeWrapper }:
let version = "0.8.4"; in
let version = "0.8.5"; in
stdenv.mkDerivation rec {
name = "gnash-${version}";
src = fetchurl {
url = "mirror://gnu/gnash/${version}/${name}.tar.bz2";
sha256 = "094jky77ghdisq17z742cwn3g9ckm937p8h5jbji5rrdqbdlpzkg";
sha256 = "1cqhnbp99rb0n4x2bsz8wwh7vvc2kclxc1wmrl5vaapd9qhp5whn";
};
builder = ./builder.sh;

View file

@ -1,31 +1,28 @@
{ xvSupport ? true
, stdenv, fetchurl, perl, x11, libXv, wxGTK
, libdvdread, libdvdnav, libdvdcss
, zlib, mpeg2dec, a52dec, libmad, ffmpeg, alsa
{ stdenv, fetchurl, perl, xlibs, libdvdnav
, zlib, a52dec, libmad, faad2, ffmpeg, alsa
, pkgconfig, dbus, hal, fribidi, qt4, freefont_ttf
}:
assert libdvdread.libdvdcss == libdvdcss;
assert xvSupport -> libXv != null;
stdenv.mkDerivation {
name = "vlc-0.8.6h";
name = "vlc-0.9.8a";
src = fetchurl {
url = http://download.videolan.org/pub/videolan/vlc/0.8.6h/vlc-0.8.6h.tar.bz2;
sha256 = "08bj6ndxj0f7jdsif43535qyavpy13wni93z7c2790i2d748gvah";
url = http://download.videolan.org/pub/videolan/vlc/0.9.8a/vlc-0.9.8a.tar.bz2;
sha256 = "0kw2d7yh8rzb61j1q2cvnjinj1wxc9a7smxl7ckw1vwh6y02jz0r";
};
buildInputs = [
perl x11 wxGTK
zlib mpeg2dec a52dec libmad ffmpeg alsa
libdvdread # <- for "simple" DVD playback
libdvdnav libdvdcss # <- for DVD playback with menus
] ++ stdenv.lib.optional xvSupport libXv;
perl xlibs.xlibs xlibs.libXv zlib a52dec libmad faad2 ffmpeg
alsa libdvdnav libdvdnav.libdvdread pkgconfig dbus hal fribidi qt4
];
# Ensure that libdvdcss will be found without having to set LD_LIBRARY_PATH.
NIX_LDFLAGS = "-ldvdcss";
configureFlags = "--enable-alsa --disable-glx --disable-remoteosd --enable-faad";
configureFlags = "--enable-alsa";
preBuild = ''
substituteInPlace modules/misc/freetype.c --replace \
/usr/share/fonts/truetype/freefont/FreeSerifBold.ttf \
${freefont_ttf}/share/fonts/truetype/FreeSerifBold.ttf
'';
meta = {
description = "Cross-platform media player and streaming server";

View file

@ -0,0 +1,19 @@
{stdenv, fetchsvn, SDL, zlib, which}:
stdenv.mkDerivation {
name = "qemu-svn-6642";
src = fetchsvn {
url = "svn://svn.sv.gnu.org/qemu/trunk";
rev = "6642";
sha256 = "12445ad91feb72eecd1db0d4319a8fa5d7dc971b89228bd0e121b49c5da9705e";
};
patchFlags = "-p2";
buildInputs = [SDL zlib which];
meta = {
description = "QEmu processor emulator";
};
}

View file

@ -41,9 +41,7 @@ rec {
doForceShare postAll]);
inherit propagatedBuildInputs;
meta = {
description = "
Compiz window manager
";
description = "Compiz window manager";
inherit src;
};
}

View file

@ -42,9 +42,7 @@ rec {
doForceShare postAll]);
inherit propagatedBuildInputs;
meta = {
description = "
Compiz window manager
";
description = "Compiz window manager";
inherit src;
};
}

View file

@ -0,0 +1,48 @@
args : with args;
let localDefs = builderDefs.passthru.function {
src = /* put a fetchurl here */
fetchurl {
url = "http://releases.compiz-fusion.org/core/compiz-0.8.0.tar.gz";
sha256 = "0xhyilfz2cfbdwni774b54171addjqw7hda6j6snzxb1igny7iry";
};
buildInputs = [
pkgconfig gtk libwnck GConf libgnome
libgnomeui metacity gnomegtk glib pango libglade libgtkhtml
gtkhtml libgnomecanvas libgnomeprint libgnomeprintui gnomepanel
librsvg fuse gettext intltool
];
propagatedBuildInputs = [
libpng libXcomposite libXfixes libXdamage libXrandr libXinerama
libICE libSM startupnotification mesa GConf perl perlXMLParser libxslt
dbus.libs dbus_glib compositeproto fixesproto damageproto randrproto
xineramaproto renderproto kbproto xextproto libXrender xproto libX11
libxcb
];
configureFlags = ["--enable-gtk" "--enable-fuse"
"--enable-annotate" "--enable-librsvg"] ++
(if args ? extraConfigureFlags then args.extraConfigureFlags else []);
};
in with localDefs;
let
postAll = FullDepEntry ("
for i in $out/bin/*; do
patchelf --set-rpath /var/run/opengl-driver/lib:$(patchelf --print-rpath $i) $i
done
ensureDir \$out/share/compiz-plugins/
ln -sfv \$out/lib/compiz \$out/share/compiz-plugins/
") [minInit doMakeInstall defEnsureDir];
in
stdenv.mkDerivation
rec {
name = "compiz-0.8.0";
builder = writeScript (name + "-builder")
(textClosure localDefs [doPatch doConfigure doMakeInstall doPropagate
doForceShare postAll]);
inherit propagatedBuildInputs;
meta = {
description = "Compiz window manager";
inherit src;
};
}

View file

@ -16,9 +16,7 @@ stdenv.mkDerivation rec {
builder = writeScript (name + "-builder")
(textClosure localDefs [doConfigure doMakeInstall doForceShare doPropagate]);
meta = {
description = "
Just a desktop panel.
";
description = "Just a desktop panel";
inherit src;
};
}

View file

@ -9,14 +9,11 @@ stdenv.mkDerivation {
buildInputs = [libX11 libXext libXinerama libXpm libXft];
postInstall = ''
sed -i -e s/rxvt/xterm/g $out/etc/system.jwmrc
sed -i -e "s/.*Swallow.*\|.*xload.*//" $out/etc/system.jwmrc'';
meta = {
description = "JWM is a window manager for X11 window system. It is written in C and uses only Xlib at a minimum.";
description = "A window manager for X11 that requires only Xlib";
};
}

View file

@ -1,9 +1,9 @@
args: with args; stdenv.mkDerivation {
name = "wmii-20070516";
name = "wmii-20071116";
src = fetchurl {
url = http://www.suckless.org/download/wmii-3.6.tar.gz;
sha256 = "05mj651yv02rvkpqqkgwp8307nrrqpcwfv5k8186kx2yiiw9pws6";
url = http://code.suckless.org/dl/wmii/wmii-3.6.tar.gz;
sha256 = "46f39b788c5ef4695040b36cc7d9c539db0306bafc4d8cefdc5980ed4331b216";
};
buildInputs = [ libX11 libixp xextproto libXt libXext ];

View file

@ -165,3 +165,7 @@ my $manifest = $ENV{"manifest"};
if ($manifest ne "") {
symlink($manifest, "$out/manifest") or die "cannot create manifest";
}
system("eval \"\$postBuild\"") == 0
or die "post-build hook failed";

View file

@ -20,11 +20,13 @@
# symlink (e.g., ["/bin"]). Any file not inside any of the
# directories in the list is not symlinked.
pathsToLink ? ["/"]
, # Shell command to run after building the symlink tree.
postBuild ? ""
}:
stdenv.mkDerivation {
inherit name manifest paths ignoreCollisions pathsToLink;
realBuilder = perl + "/bin/perl";
inherit name manifest paths ignoreCollisions pathsToLink postBuild;
realBuilder = "${perl}/bin/perl";
args = ["-w" ./builder.pl];
}

View file

@ -93,7 +93,6 @@ rec {
# Mirrors of ftp://ftp.kde.org/pub/kde/.
kde = [
http://ftp.scarlet.be/pub/kde/
http://ftp.gwdg.de/pub/x11/kde/
ftp://ftp.heanet.ie/mirrors/ftp.kde.org/
ftp://ftp.kde.org/pub/kde/
@ -101,7 +100,7 @@ rec {
# Gentoo files.
gentoo = [
http://www.ibiblio.org/pub/Linux/distributions/gentoo/
http://ftp.snt.utwente.nl/pub/os/linux/gentoo/
http://distfiles.gentoo.org/
];

View file

@ -66,7 +66,7 @@ makeWrapper() {
fi
done
echo "exec \"$original\" $flagsBefore \"\$@\"" >> $wrapper
echo "exec -a $(basename "$wrapper") \"$original\" $flagsBefore \"\$@\"" >> $wrapper
chmod +x $wrapper
}

View file

@ -1,13 +1,14 @@
# This function compiles a source tarball in a virtual machine image
# that contains a Debian-like (i.e. dpkg-based) OS.
{vmTools, fetchurl}: args: with args;
{ name ? "debian-build"
, diskImage
, src, stdenv, vmTools, checkinstall
, ... } @ args:
vmTools.runInLinuxImage (stdenv.mkDerivation (
{
name = "debian-build";
doCheck = true;
prefix = "/usr";
@ -15,11 +16,11 @@ vmTools.runInLinuxImage (stdenv.mkDerivation (
phases = "installExtraDebsPhase sysInfoPhase unpackPhase patchPhase configurePhase buildPhase checkPhase installPhase distPhase";
}
// args //
// removeAttrs args ["vmTools"] //
{
src = src.path;
name = name + "-" + diskImage.name + (if src ? version then "-" + src.version else "");
# !!! cut&paste from rpm-build.nix
postHook = ''
ensureDir $out/nix-support
@ -50,7 +51,7 @@ vmTools.runInLinuxImage (stdenv.mkDerivation (
installCommand = ''
export LOGNAME=root
${checkinstall}/sbin/checkinstall -y -D make install
ensureDir $out/debs
@ -66,7 +67,7 @@ vmTools.runInLinuxImage (stdenv.mkDerivation (
''; # */
meta = (if args ? meta then args.meta else {}) // {
description = "Build of a Deb package on ${args.diskImage.fullName} (${args.diskImage.name})";
description = "Build of a Deb package on ${diskImage.fullName} (${diskImage.name})";
};
}

View file

@ -17,10 +17,12 @@ rec {
doCoverageAnalysis = true;
} // args);
rpmBuild = args: import ./rpm-build.nix vmTools args;
rpmBuild = args: import ./rpm-build.nix (
{ inherit vmTools;
} // args);
debBuild = args: import ./debian-build.nix {inherit vmTools fetchurl;} (
{ inherit stdenv checkinstall;
debBuild = args: import ./debian-build.nix (
{ inherit stdenv vmTools checkinstall;
} // args);
}

View file

@ -4,6 +4,8 @@
{ officialRelease ? false
, buildInputs ? []
, name ? "source-tarball"
, version ? "0"
, src, stdenv, autoconf, automake, libtool
, ... } @ args:
@ -20,8 +22,6 @@ stdenv.mkDerivation (
# First, attributes that can be overriden by the caller (via args):
{
name = "source-tarball";
# By default, only configure and build a source distribution.
# Some packages can only build a distribution after a general
# `make' (or even `make install').
@ -43,7 +43,7 @@ stdenv.mkDerivation (
# And finally, our own stuff.
{
src = src.path;
name = name + "-" + version + versionSuffix;
buildInputs = buildInputs ++ [autoconf automake libtool];
@ -66,6 +66,7 @@ stdenv.mkDerivation (
# Autoconfiscate the sources.
autoconfPhase = ''
export VERSION=${version}
export VERSION_SUFFIX=${versionSuffix}
eval "$preAutoconf"
@ -96,12 +97,14 @@ stdenv.mkDerivation (
test -n "$releaseName" && (echo "$releaseName" >> $out/nix-support/hydra-release-name)
''; # */
passthru = {inherit src;};
passthru = {
inherit src;
version = version + versionSuffix;
};
meta = (if args ? meta then args.meta else {}) // {
description = "Build of a source distribution from a checkout";
};
}
)

View file

@ -8,13 +8,12 @@
{ doCoverageAnalysis ? false
, lcovFilter ? []
, src, stdenv
, name ? if doCoverageAnalysis then "nix-coverage" else "nix-build"
, ... } @ args:
stdenv.mkDerivation (
{
name = "nix-build";
# Also run a `make check'.
doCheck = true;
@ -24,14 +23,14 @@ stdenv.mkDerivation (
showBuildStats = true;
# Hack - swap checkPhase and installPhase (otherwise Stratego barfs).
phases = "unpackPhase patchPhase configurePhase buildPhase installPhase checkPhase fixupPhase distPhase ${if doCoverageAnalysis then "coverageReportPhase" else ""}";
phases = "unpackPhase patchPhase configurePhase buildPhase installPhase checkPhase fixupPhase distPhase ${if doCoverageAnalysis then "coverageReportPhase" else ""} finalPhase";
}
// args //
{
src = src.path;
name = name + (if src ? version then "-" + src.version else "");
postHook = ''
ensureDir $out/nix-support
echo "$system" > $out/nix-support/system
@ -43,7 +42,7 @@ stdenv.mkDerivation (
# If `src' is the result of a call to `makeSourceTarball', then it
# has a subdirectory containing the actual tarball(s). If there are
# multiple tarballs, just pick the first one.
echo $src
origSrc=$src
if test -d $src/tarballs; then
src=$(ls $src/tarballs/*.tar.bz2 $src/tarballs/*.tar.gz | sort | head -1)
fi
@ -85,6 +84,16 @@ stdenv.mkDerivation (
lcovFilter = ["/nix/store/*"] ++ lcovFilter;
finalPhase =
''
# Propagate the release name of the source tarball. This is
# to get nice package names in channels.
if test -e $origSrc/nix-support/hydra-release-name; then
cp $origSrc/nix-support/hydra-release-name $out/nix-support/hydra-release-name
fi
'';
meta = (if args ? meta then args.meta else {}) // {

View file

@ -1,18 +1,17 @@
# This function builds an RPM from a source tarball that contains a
# RPM spec file (i.e., one that can be built using `rpmbuild -ta').
vmTools: args: with args;
{ name ? "rpm-build"
, diskImage
, src, vmTools
, ... } @ args:
vmTools.buildRPM (
{
name = "rpm-build";
}
// args //
removeAttrs args ["vmTools"] //
{
src = src.path;
name = name + "-" + diskImage.name + (if src ? version then "-" + src.version else "");
preBuild = ''
ensureDir $out/nix-support
@ -34,7 +33,7 @@ vmTools.buildRPM (
''; # */
meta = (if args ? meta then args.meta else {}) // {
description = "Build of an RPM package on ${args.diskImage.fullName} (${args.diskImage.name})";
description = "Build of an RPM package on ${diskImage.fullName} (${diskImage.name})";
};
}

View file

@ -31,6 +31,15 @@ rec {
allowedReferences = []; # prevent accidents like glibc being included in the initrd
};
createDeviceNodes = dev:
''
mknod ${dev}/null c 1 3
mknod ${dev}/zero c 1 5
mknod ${dev}/tty c 5 0
mknod ${dev}/vda b 253 0
'';
stage1Init = writeScript "vm-run-stage1" ''
#! ${klibcShrunk}/bin/sh.shared -e
@ -75,10 +84,7 @@ rec {
done
mount -t tmpfs none /dev
mknod /dev/null c 1 3
mknod /dev/zero c 1 5
mknod /dev/tty c 5 0
mknod /dev/vda b 253 0
${createDeviceNodes "/dev"}
ipconfig 10.0.2.15:::::eth0:none
@ -211,8 +217,8 @@ rec {
createEmptyImage = {size, fullName}: ''
mkdir $out
diskImage=$out/image
qemu-img create -f qcow $diskImage "${toString size}M"
diskImage=$out/disk-image.qcow2
qemu-img create -f qcow2 $diskImage "${toString size}M"
mkdir $out/nix-support
echo "${fullName}" > $out/nix-support/full-name
@ -230,6 +236,7 @@ rec {
touch /mnt/.debug
mkdir /mnt/proc /mnt/dev /mnt/sys /mnt/bin
${createDeviceNodes "/mnt/dev"}
'';
@ -305,10 +312,10 @@ rec {
QEMU_OPTS = "-m ${toString (if attrs ? memSize then attrs.memSize else 256)}";
preVM = ''
diskImage=$(pwd)/image
diskImage=$(pwd)/disk-image.qcow2
origImage=${attrs.diskImage}
if test -d "$origImage"; then origImage="$origImage/image"; fi
qemu-img create -b "$origImage" -f qcow $diskImage
if test -d "$origImage"; then origImage="$origImage/disk-image.qcow2"; fi
qemu-img create -b "$origImage" -f qcow2 $diskImage
echo "$buildCommand" > cmd
@ -332,10 +339,10 @@ rec {
/* Mount `image' as the root FS, but use a temporary copy-on-write
image since we don't want to (and can't) write to `image'. */
preVM = ''
diskImage=$(pwd)/image
diskImage=$(pwd)/disk-image.qcow2
origImage=${attrs.diskImage}
if test -d "$origImage"; then origImage="$origImage/image"; fi
qemu-img create -b "$origImage" -f qcow $diskImage
if test -d "$origImage"; then origImage="$origImage/disk-image.qcow2"; fi
qemu-img create -b "$origImage" -f qcow2 $diskImage
'';
/* Inside the VM, run the stdenv setup script normally, but at the
@ -416,7 +423,7 @@ rec {
fi
diskImage="$1"
if ! test -e "$diskImage"; then
qemu-img create -b ${image}/image -f qcow "$diskImage"
qemu-img create -b ${image}/disk-image.qcow2 -f qcow2 "$diskImage"
fi
export TMPDIR=$(mktemp -d)
export out=/dummy
@ -748,6 +755,28 @@ rec {
archs = ["noarch" "i586"];
} // args);
opensuse110i386 = args: makeImageFromRPMDist ({
name = "opensuse-11.0-i586";
fullName = "openSUSE 11.0 (i586)";
packagesList = fetchurl {
url = mirror://opensuse/distribution/11.0/repo/oss/suse/repodata/primary.xml.gz;
sha256 = "13rv855aj8p3h1zpsji5xa1wpkhgq94gcxzvg05l2b68b15q3mwn";
};
urlPrefix = mirror://opensuse/distribution/11.0/repo/oss/suse/;
archs = ["noarch" "i586"];
} // args);
opensuse110x86_64 = args: makeImageFromRPMDist ({
name = "opensuse-11.0-x86_64";
fullName = "openSUSE 11.0 (x86_64)";
packagesList = fetchurl {
url = mirror://opensuse/distribution/11.0/repo/oss/suse/repodata/primary.xml.gz;
sha256 = "13rv855aj8p3h1zpsji5xa1wpkhgq94gcxzvg05l2b68b15q3mwn";
};
urlPrefix = mirror://opensuse/distribution/11.0/repo/oss/suse/;
archs = ["noarch" "x86_64"];
} // args);
# Interestingly, the SHA-256 hashes provided by Ubuntu in
# http://nl.archive.ubuntu.com/ubuntu/dists/{gutsy,hardy}/Release are
# wrong, but the SHA-1 and MD5 hashes are correct. Intrepid is fine.
@ -797,27 +826,47 @@ rec {
fullName = "Ubuntu 8.10 Intrepid (amd64)";
packagesList = fetchurl {
url = mirror://ubuntu/dists/intrepid/main/binary-amd64/Packages.bz2;
sha1 = "01b2f3842cbdd5834446ddf91691bcf60f59a726dcefa23fb5b93fdc8ea7e27f";
sha256 = "01b2f3842cbdd5834446ddf91691bcf60f59a726dcefa23fb5b93fdc8ea7e27f";
};
urlPrefix = mirror://ubuntu;
} // args);
debian40i386 = args: makeImageFromDebDist ({
name = "debian-4.0r5-etch-i386";
fullName = "Debian 4.0r5 Etch (i386)";
name = "debian-4.0r7-etch-i386";
fullName = "Debian 4.0r7 Etch (i386)";
packagesList = fetchurl {
url = mirror://debian/dists/etch/main/binary-i386/Packages.bz2;
sha256 = "37a5c17fd8d62b1d9a0264a702025a4381c1a8751e2550d101957d8fa724a6f4";
sha256 = "155c1d1b4ce54de6c8134ab0154c2a476ae40cc5899109f3f95fecd5e002c50d";
};
urlPrefix = mirror://debian;
} // args);
debian40x86_64 = args: makeImageFromDebDist ({
name = "debian-4.0r5-etch-amd64";
fullName = "Debian 4.0r5 Etch (amd64)";
name = "debian-4.0r7-etch-amd64";
fullName = "Debian 4.0r7 Etch (amd64)";
packagesList = fetchurl {
url = mirror://debian/dists/etch/main/binary-amd64/Packages.bz2;
sha256 = "244dc892f89f2f73ce8372cdf1f1d450b00c0e95196927ef7f99715f0d119d5b";
sha256 = "3ab73a45781651a78c824b4f281de91b1aa6974d63470f40525933d848183e44";
};
urlPrefix = mirror://debian;
} // args);
debian50i386 = args: makeImageFromDebDist ({
name = "debian-5.0-lenny-i386";
fullName = "Debian 5.0 Lenny (i386)";
packagesList = fetchurl {
url = mirror://debian/dists/lenny/main/binary-i386/Packages.bz2;
sha256 = "afbead64fb4820e50294686cd3ccdff91026b214aabec3f212f9001482001061";
};
urlPrefix = mirror://debian;
} // args);
debian50x86_64 = args: makeImageFromDebDist ({
name = "debian-5.0-lenny-amd64";
fullName = "Debian 5.0 Lenny (amd64)";
packagesList = fetchurl {
url = mirror://debian/dists/lenny/main/binary-amd64/Packages.bz2;
sha256 = "73d74454d687dfbdfef1abbe4bd9c251119f38ab8d371a593aa271bfa227ed2b";
};
urlPrefix = mirror://debian;
} // args);
@ -856,7 +905,6 @@ rec {
"automake"
"bzip2"
"curl"
"devs"
"diffutils"
"findutils"
"gawk"
@ -896,6 +944,11 @@ rec {
"util-linux"
"file"
"dpkg-dev"
# Needed because it provides /etc/login.defs, whose absence causes
# the "passwd" post-installs script to fail.
"login"
# For shutting up some messages during some post-install scripts:
"mktemp"
];
@ -939,7 +992,9 @@ rec {
fedora9x86_64 = diskImageFuns.fedora9x86_64 { packages = commonFedoraPackages; };
fedora10i386 = diskImageFuns.fedora10i386 { packages = commonFedoraPackages; };
fedora10x86_64 = diskImageFuns.fedora10x86_64 { packages = commonFedoraPackages; };
opensuse103i386 = diskImageFuns.opensuse103i386 { packages = commonOpenSUSEPackages; };
opensuse103i386 = diskImageFuns.opensuse103i386 { packages = commonOpenSUSEPackages ++ ["devs"]; };
opensuse110i386 = diskImageFuns.opensuse110i386 { packages = commonOpenSUSEPackages; };
opensuse110x86_64 = diskImageFuns.opensuse110x86_64 { packages = commonOpenSUSEPackages; };
ubuntu710i386 = diskImageFuns.ubuntu710i386 { packages = commonDebianPackages; };
ubuntu804i386 = diskImageFuns.ubuntu804i386 { packages = commonDebianPackages; };
@ -948,6 +1003,8 @@ rec {
ubuntu810x86_64 = diskImageFuns.ubuntu810x86_64 { packages = commonDebianPackages; };
debian40i386 = diskImageFuns.debian40i386 { packages = commonDebianPackages; };
debian40x86_64 = diskImageFuns.debian40x86_64 { packages = commonDebianPackages; };
debian50i386 = diskImageFuns.debian50i386 { packages = commonDebianPackages; };
debian50x86_64 = diskImageFuns.debian50x86_64 { packages = commonDebianPackages; };
};

View file

@ -23,7 +23,7 @@ rec {
buildInDebian = runInLinuxImage (stdenv.mkDerivation {
name = "deb-compile";
src = nixUnstable.src;
src = patchelf.src;
diskImage = diskImages.ubuntu810i386;
memSize = 512;
phases = "sysInfoPhase unpackPhase patchPhase configurePhase buildPhase checkPhase installPhase fixupPhase distPhase";

View file

@ -1,11 +1,11 @@
{stdenv, fetchurl}:
stdenv.mkDerivation rec {
name = "man-pages-3.15";
name = "man-pages-3.18";
src = fetchurl {
url = "mirror://kernel/linux/docs/man-pages/${name}.tar.bz2";
sha256 = "0pr29ziz2d2zl2iii16372x2bqvx1a5g8xbb6wga4nxiz4w6ixhh";
sha256 = "7be08777fae2c873106f6d3ae09678444e635112ad9c52f9e9200439710dd8de";
};
preBuild = "

View file

@ -15,8 +15,7 @@ stdenv.mkDerivation rec {
builder = ./builder.sh;
meta = {
description = ''Revised^${toString revision} Report on the
Algorithmic Language Scheme'';
description = "Revised^${toString revision} Report on the Algorithmic Language Scheme";
longDescription = ''
This package contains the GNU Info version of the

View file

@ -23,9 +23,7 @@ stdenv.mkDerivation rec {
(textClosure localDefs
[doInstall doForceShare doPropagate]);
meta = {
description = "
A Unicode font.
";
description = "A Unicode font";
inherit src;
};
}

View file

@ -21,9 +21,7 @@ stdenv.mkDerivation rec {
(textClosure localDefs
[doInstall doForceShare doPropagate]);
meta = {
description = "
A Unicode font.
";
description = "A Unicode font";
inherit src;
};
}

View file

@ -31,9 +31,7 @@ wrapFonts (stdenv.mkDerivation {
'';
meta = {
description = "
UCS-fonts - Unicode bitmap fonts.
";
description = "Unicode bitmap fonts";
src = [srcA srcB srcC];
};
})

View file

@ -20,9 +20,7 @@ stdenv.mkDerivation rec {
(textClosure localDefs
[doInstall doForceShare doPropagate]);
meta = {
description = "
A (mainly) Chinese Unicode font.
";
description = "A (mainly) Chinese Unicode font";
inherit src;
};
}

View file

@ -1,11 +1,11 @@
{ fetchurl, stdenv }:
stdenv.mkDerivation rec {
name = "poppler-data-0.2.0";
name = "poppler-data-0.2.1";
src = fetchurl {
url = "http://poppler.freedesktop.org/${name}.tar.gz";
sha256 = "0cpa1krpd6xjbn1nv825z5p8v4cfcypdri4bhzvn2dnjy997x9k8";
sha256 = "0q56l5v89pnpkm1kqmwb1sx2zcx89q6bxz2hq2cpkq5f8kgvl3c9";
};
installFlags = "prefix=\${out}";

View file

@ -1,2 +0,0 @@
args:
import ./common.nix "1chz63v9jr009z9jhs07klybmhyf58i8vxipigf5gkdabjiclcyr" args

View file

@ -1,2 +0,0 @@
args:
import ./common.nix "080ny2vy00202hxcm7xm72j1zmyfs15dbsnqipwni6b2dg2am3q3" args

View file

@ -1,16 +0,0 @@
hash: args: with args;
stdenv.mkDerivation rec {
name = "shared-mime-info-" + version;
src = fetchurl {
url = "http://freedesktop.org/~hadess/${name}.tar.bz2";
sha256 = hash;
};
buildInputs = [perl perlXMLParser pkgconfig gettext libxml2 glib];
meta = {
homepage = http://freedesktop.org/wiki/Software/shared-mime-info;
};
}

View file

@ -0,0 +1,17 @@
{stdenv, fetchurl, pkgconfig, gettext, intltool, libxml2, glib}:
stdenv.mkDerivation rec {
name = "shared-mime-info-0.51";
src = fetchurl {
url = "http://freedesktop.org/~hadess/${name}.tar.bz2";
sha256 = "1n7fn3vnqdq5c4xjyflwryxdb75cwsmw39hdpjy90swd841pw90w";
};
buildInputs = [pkgconfig gettext intltool libxml2 glib];
meta = {
description = "A database of common MIME types";
homepage = http://freedesktop.org/wiki/Software/shared-mime-info;
};
}

View file

@ -0,0 +1,55 @@
{ stdenv, fetchurl, pkgconfig, x11, xlibs, zlib, libpng, libjpeg, perl
, qt, kdelibs, openssl, bzip2, fontconfig, pam, hal, dbus, glib
}:
# Note: the glib dependency is needed for nspluginviewer.
let version = "3.5.10"; in
stdenv.mkDerivation {
name = "kdebase-${version}";
src = fetchurl {
url = "mirror://kde/stable/${version}/src/kdebase-${version}.tar.bz2";
sha256 = "0qbbw78b725kf35p5jx11zq0246zm15pyyhmlpkz4cn5527rvakp";
};
buildInputs = [
pkgconfig x11 zlib libpng libjpeg perl qt kdelibs openssl bzip2
fontconfig pam hal dbus glib
xlibs.libXrandr xlibs.libXinerama xlibs.libXau xlibs.libXdmcp
xlibs.libXcursor xlibs.libfontenc xlibs.imake xlibs.bdftopcf
xlibs.libxkbfile xlibs.xf86miscproto xlibs.libXxf86misc
xlibs.scrnsaverproto xlibs.libXScrnSaver
xlibs.libXcomposite xlibs.libXfixes
];
configureFlags = ''
--without-arts
--with-ssl-dir=${openssl}
--with-extra-includes=${libjpeg}/include
'';
# Prevent configure from looking for pkg-config and freetype-config
# in the wrong location (it looks in /usr/bin etc. *before* looking
# in $PATH).
preConfigure = ''
substituteInPlace configure \
--replace /usr/bin /no-such-path \
--replace /usr/local/bin /no-such-path \
--replace /opt/local/bin /no-such-path
'';
# Quick hack to work around a faulty dependency in
# konqueror/keditbookmarks/Makefile.am (${includedir} should be
# ${kdelibs} or so).
preBuild = ''
ensureDir $out/include
ln -s ${kdelibs}/include/kbookmarknotifier.h $out/include/
'';
postInstall = "rm $out/include/kbookmarknotifier.h";
# Work around some inexplicable build failure starting in kdebase 3.5.9.
LDFLAGS = "-L${kdelibs}/lib";
}

View file

@ -0,0 +1,43 @@
{ stdenv, fetchurl, xlibs, zlib, perl, qt, openssl, pcre
, pkgconfig, libjpeg, libpng, libtiff, libxml2, libxslt, libtool, expat
, freetype, bzip2, cups, attr, acl
}:
let version = "3.5.10"; in
stdenv.mkDerivation {
name = "kdelibs-${version}";
src = fetchurl {
url = "mirror://kde/stable/${version}/src/kdelibs-${version}.tar.bz2";
sha256 = "0wjw51r96h6rngbsrzndw890xggzvrakydsbaldlrvbh3jq9qzk1";
};
passthru = {inherit openssl libjpeg qt; inherit (xlibs) libX11;};
buildInputs = [
zlib perl qt openssl pcre pkgconfig libjpeg libpng libtiff libxml2
libxslt expat libtool freetype bzip2 cups
xlibs.libX11 xlibs.libXt xlibs.libXext xlibs.libXrender xlibs.libXft
];
propagatedBuildInputs = [attr acl];
# Prevent configure from looking for pkg-config and freetype-config
# in the wrong location (it looks in /usr/bin etc. *before* looking
# in $PATH).
preConfigure = ''
substituteInPlace configure \
--replace /usr/bin /no-such-path \
--replace /usr/local/bin /no-such-path \
--replace /opt/local/bin /no-such-path
'';
configureFlags = ''
--without-arts
--with-ssl-dir=${openssl}
--with-extra-includes=${libjpeg}/include
--x-includes=${xlibs.libX11}/include
--x-libraries=${xlibs.libX11}/lib
'';
}

Some files were not shown because too many files have changed in this diff Show more