Merge remote-tracking branch 'official/master' into multiple-outputs

Conflicts:
	pkgs/development/libraries/cairo/default.nix
	pkgs/development/libraries/freetype/default.nix
	pkgs/development/libraries/glib/default.nix
	pkgs/development/libraries/libpng/default.nix
	pkgs/development/libraries/pango/default.nix
	pkgs/tools/typesetting/tex/texlive/default.nix
	pkgs/top-level/all-packages.nix
This commit is contained in:
Mathijs Kwik 2013-09-11 10:51:46 +02:00
commit 1a55c4b89f
567 changed files with 12427 additions and 3449 deletions

View file

@ -44,6 +44,7 @@ my $info = XMLin($xml, KeyAttr => { 'item' => '+attrPath', 'meta' => 'name' }, F
print "=== Package meta information ===\n\n";
my $nrBadNames = 0;
my $nrMissingMaintainers = 0;
my $nrMissingPlatforms = 0;
my $nrMissingDescriptions = 0;
my $nrBadDescriptions = 0;
my $nrMissingLicenses = 0;
@ -77,6 +78,12 @@ foreach my $attr (sort keys %{$info->{item}}) {
$nrMissingMaintainers++;
}
# Check the platforms.
if (!defined $pkg->{meta}->{platforms}) {
print "$attr: Lacks a platform\n";
$nrMissingPlatforms++;
}
# Package names should not be capitalised.
if ($pkgName =~ /^[A-Z]/) {
print "$attr: package name $pkgName should not be capitalised\n";
@ -159,6 +166,7 @@ print "=== Bottom line ===\n";
print "Number of packages: ", scalar(keys %{$info->{item}}), "\n";
print "Number of bad names: $nrBadNames\n";
print "Number of missing maintainers: $nrMissingMaintainers\n";
print "Number of missing platforms: $nrMissingPlatforms\n";
print "Number of missing licenses: $nrMissingLicenses\n";
print "Number of missing descriptions: $nrMissingDescriptions\n";
print "Number of bad descriptions: $nrBadDescriptions\n";

View file

@ -1,24 +1,24 @@
{ stdenv, fetchurl, lib, qtscriptgenerator, perl, gettext, curl
, libxml2, mysql, taglib, taglib_extras, loudmouth , kdelibs
, qca2, libmtp, liblastfm, libgpod, pkgconfig, automoc4, phonon
, strigi, soprano, qjson, ffmpeg, libofa }:
, strigi, soprano, qjson, ffmpeg, libofa, nepomuk_core ? null }:
stdenv.mkDerivation rec {
name = "${pname}-${version}";
pname = "amarok";
version = "2.7.1";
version = "2.8.0";
src = fetchurl {
url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.bz2";
sha256 = "12dvqnx6jniykbi6sz94xxlnxzafjsaxlf0mppk9w5wn61jwc3cy";
sha256 = "1ilf9wdp3wna5pmvxill8x08rb9gw86qkc2zwm3xk9hpy8l9pf7l";
};
QT_PLUGIN_PATH="${qtscriptgenerator}/lib/qt4/plugins";
patches = ./find-mysql.patch;
buildInputs = [ qtscriptgenerator stdenv.gcc.libc gettext curl
libxml2 mysql taglib taglib_extras loudmouth kdelibs automoc4 phonon strigi
soprano qca2 libmtp liblastfm libgpod pkgconfig qjson ffmpeg libofa ];
soprano qca2 libmtp liblastfm libgpod pkgconfig qjson ffmpeg libofa nepomuk_core ];
cmakeFlags = "-DKDE4_BUILD_TESTS=OFF";

View file

@ -1,46 +0,0 @@
commit 9979970f05f25329100168d85a5c4cdc8c084b7a
Author: Yury G. Kudryashov <urkud.urkud@gmail.com>
Date: Thu Aug 30 12:32:53 2012 +0400
FindMySQLAmarok.cmake: use PATH_SUFFIXES
diff --git a/cmake/modules/FindMySQLAmarok.cmake b/cmake/modules/FindMySQLAmarok.cmake
index 910b434..4c8b8e8 100644
--- a/cmake/modules/FindMySQLAmarok.cmake
+++ b/cmake/modules/FindMySQLAmarok.cmake
@@ -13,18 +13,17 @@
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
if(NOT WIN32)
- find_program(MYSQLCONFIG_EXECUTABLE NAMES mysql_config mysql_config5 PATHS ${BIN_INSTALL_DIR} ~/usr/bin /usr/local/bin)
+ find_program(MYSQLCONFIG_EXECUTABLE NAMES mysql_config mysql_config5 HINTS ${BIN_INSTALL_DIR})
endif(NOT WIN32)
find_path(MYSQL_INCLUDE_DIR mysql.h
- /opt/local/include/mysql5/mysql
+ PATHS
+ /opt/local/include
/opt/mysql/mysql/include
- /opt/mysqle/include/mysql
- /opt/ports/include/mysql5/mysql
- /usr/include/mysql
- /usr/local/include/mysql
- /usr/mysql/include/mysql
- ~/usr/include/mysql
+ /opt/mysqle/include
+ /opt/ports/include
+ /usr/mysql/include
+ PATH_SUFFIXES mysql mysql5/mysql
)
if(MYSQLCONFIG_EXECUTABLE)
@@ -40,8 +39,7 @@ if(MYSQLCONFIG_EXECUTABLE)
find_library(MYSQLD_PIC_SEPARATE
mysqld_pic
- PATHS
- /usr/lib/mysql
+ PATH_SUFFIXES mysql
)
if(MYSQLD_PIC_SEPARATE)

View file

@ -1,4 +1,4 @@
{stdenv, fetchurl, id3lib, groff}:
{stdenv, fetchurl, id3lib, groff, zlib}:
stdenv.mkDerivation rec {
name = "id3v2-0.1.11";
@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
patches = [ ./id3v2-0.1.11-track-bad-free.patch ];
nativeBuildInputs = [ groff ];
buildInputs = [ id3lib ];
buildInputs = [ id3lib zlib ];
configurePhase = ''
export makeFlags=PREFIX=$out

View file

@ -2,9 +2,9 @@
, pkgconfig, gtk, libXft, dbus, libpng, libjpeg, libungif
, libtiff, librsvg, texinfo, gconf, libxml2, imagemagick, gnutls
, alsaLib
, withX ? true
}:
assert (gtk != null) -> (pkgconfig != null);
assert (libXft != null) -> libpng != null; # probably a bug
assert stdenv.isDarwin -> libXaw != null; # fails to link otherwise
@ -19,17 +19,18 @@ stdenv.mkDerivation rec {
};
buildInputs =
[ ncurses x11 texinfo libXaw Xaw3d libXpm libpng libjpeg libungif
libtiff librsvg libXft gconf libxml2 imagemagick gnutls alsaLib
]
++ stdenv.lib.optionals (gtk != null) [ gtk pkgconfig ]
++ stdenv.lib.optional stdenv.isLinux dbus;
[ ncurses gconf libxml2 gnutls alsaLib pkgconfig texinfo ]
++ stdenv.lib.optional stdenv.isLinux dbus
++ stdenv.lib.optionals withX [
x11 libXaw Xaw3d libXpm libpng libjpeg libungif
libtiff librsvg libXft imagemagick gtk
];
configureFlags =
(if gtk != null then
(if withX then
[ "--with-x-toolkit=gtk" "--with-xft"]
else
[ "--with-x-toolkit=no" ])
[ "--with-x=no --with-xpm=no --with-jpeg=no --with-png=no --with-gif=no --with-tiff=no" ])
# On NixOS, help Emacs find `crt*.o'.
++ stdenv.lib.optional (stdenv ? glibc)
[ "--with-crt-dir=${stdenv.glibc}/lib" ];
@ -69,7 +70,7 @@ EOF
homepage = "http://www.gnu.org/software/emacs/";
license = "GPLv3+";
maintainers = with maintainers; [ chaoflow lovek323 simons ];
maintainers = with maintainers; [ chaoflow lovek323 simons the-kenny ];
platforms = platforms.all;
};
}

View file

@ -5,19 +5,19 @@ in
assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux";
stdenv.mkDerivation rec {
name = "sublimetext-2.0.1";
name = "sublimetext-2.0.2";
src =
if stdenv.system == "i686-linux" then
fetchurl {
name = "sublimetext-2.0.1.tar.bz2";
url = http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.1.tar.bz2;
sha256 = "1x6vmlfn5mdbf23nyfr7dhhi6y60lnpcmqj59svl3bzvayijsxaf";
name = "sublimetext-2.0.2.tar.bz2";
url = http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2.tar.bz2;
sha256 = "026g5mppk28lzzzn9ibykcqkrd5msfmg0sc0z8w8jd7v3h28wcq7";
}
else
fetchurl {
name = "sublimetext-2.0.1.tar.bz2";
url = http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.1%20x64.tar.bz2;
sha256 = "0174dnp9zika5as25mcls5y0qzhh8mnc5ajxsxz7qjrk4lrzk3c5";
name = "sublimetext-2.0.2.tar.bz2";
url = http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2%20x64.tar.bz2;
sha256 = "115b71nbv9mv8cz6bkjwpbdf2ywnjc1zy2d3080f6ck4sqqfvfh1";
};
buildCommand = ''
tar xvf ${src}

View file

@ -0,0 +1,21 @@
{ stdenv, fetchurl, pkgconfig, ncurses, readline }:
let version = "0.6.0pre2"; in
stdenv.mkDerivation rec {
name = "abook-${version}";
src = fetchurl {
url = "http://abook.sourceforge.net/devel/${name}.tar.gz";
sha256 = "59d444504109dd96816e003b3023175981ae179af479349c34fa70bc12f6d385";
};
buildInputs = [ pkgconfig ncurses readline ];
meta = {
homepage = "http://abook.sourceforge.net/";
description = "Abook is a text-based addressbook program designed to use with mutt mail client.";
license = "GPLv2";
maintainers = [ stdenv.lib.maintainers.edwtjo ];
platforms = with stdenv.lib.platforms; linux;
};
}

View file

@ -4,24 +4,31 @@
}:
stdenv.mkDerivation rec {
name = "calibre-0.9.11";
# 0.9.12+ versions won't build due to missing qt4 private headers: https://bugs.launchpad.net/calibre/+bug/1094719
name = "calibre-1.2.0";
src = fetchurl {
url = "mirror://sourceforge/calibre/${name}.tar.xz";
sha256 = "0jjs2cx222pbv4nrivlxag5fxa0v9m63x7arcll6xi173zdn4gg8";
sha256 = "0h6afn57pw3rb03ffbnss774gdx7ldirr43hbhzsc2k2h7lxnzyj";
};
inherit python;
nativeBuildInputs = [ makeWrapper pkgconfig ];
patchPhase = ''
tar xf ${qt48.src}
qtdir=$(realpath $(ls | grep qt | grep 4.8 | grep src))
sed -i setup/build_environment.py \
-e "s|^qt_private_inc = .*|qt_private_inc = ['$qtdir/include/%s'%(m) for m in ('QtGui', 'QtCore')]|"
'';
buildInputs =
[ python pyqt4 sip popplerQt4 libpng imagemagick libjpeg
fontconfig podofo qt48 pil chmlib icu
fontconfig podofo qt48 pil chmlib icu sqlite libusb1 libmtp
pythonPackages.mechanize pythonPackages.lxml pythonPackages.dateutil
pythonPackages.cssutils pythonPackages.beautifulsoup pythonPackages.pillow
pythonPackages.sqlite3 pythonPackages.netifaces sqlite libusb1 libmtp
pythonPackages.sqlite3 pythonPackages.netifaces pythonPackages.apsw
pythonPackages.cssselect
];
installPhase = ''

View file

@ -1,11 +1,11 @@
{ stdenv, fetchurl, pkgconfig, zlib, freetype, libjpeg, jbig2dec, openjpeg
, libX11, libXext }:
stdenv.mkDerivation rec {
name = "mupdf-1.1";
name = "mupdf-1.3";
src = fetchurl {
url = "http://mupdf.com/download/archive/${name}-source.tar.gz";
sha256 = "e54666bbe1d9f0a5464349bfbeffcf676c4a0fcad3efb89eba1f20d4ac991f34";
sha256 = "0y247nka5gkr1ajn47jrlp5rcnf6h4ff7dfsprma3h4wxqdv7a5b";
};
buildInputs = [ pkgconfig zlib freetype libjpeg jbig2dec openjpeg libX11 libXext ];
@ -15,6 +15,19 @@ stdenv.mkDerivation rec {
export NIX_CFLAGS_COMPILE=" $NIX_CFLAGS_COMPILE -I$(echo ${openjpeg}/include/openjpeg-*) "
'';
postInstall = ''
mkdir -p $out/share/applications
cat > $out/share/applications/mupdf.desktop <<EOF
[Desktop Entry]
Type=Application
Version=1.0
Name=mupdf
Comment=PDF viewer
Exec=$out/bin/mupdf-x11
Terminal=false
EOF
'';
meta = {
homepage = http://mupdf.com/;
description = "Lightweight PDF viewer and toolkit written in portable C";

View file

@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
'';
homepage = "https://github.com/samr7/vanitygen";
license = "AGPLv3";
platforms = stdenv.lib.platforms.all;
};
}

View file

@ -14,9 +14,9 @@ let
else if stdenv.system == "i686-linux" then "ld-linux.so.2"
else throw "Bittorrent Sync for: ${stdenv.system} not supported!";
version = "1.1.42";
sha256 = if stdenv.system == "x86_64-linux" then "07gcjzhhr8simkjjxhyzkvh3748ll81d742fz7j31nwdi34my8ri"
else if stdenv.system == "i686-linux" then "0awf5bfhb4dp4aydzrgdp3wqv1mz6ys1z45i0r1hbqszvf44xj7c"
version = "1.1.70";
sha256 = if stdenv.system == "x86_64-linux" then "1hnyncq5439fxn1q8dkzcg2alxjkanr4q4pgqqf3nngz4cdar5vi"
else if stdenv.system == "i686-linux" then "1ijdmzl8bnb4k99vrjn5gd31hy64p9wiyxw5wc5gbpgap191h5i5"
else throw "Bittorrent Sync for: ${stdenv.system} not supported!";
in stdenv.mkDerivation {

View file

@ -88,11 +88,9 @@ let
libExecPath = "$out/libexec/${packageName}";
# user namespace sandbox patch
userns_patch = if versionOlder sourceInfo.version "29.0.0.0"
then ./sandbox_userns.patch
else if versionOlder sourceInfo.version "30.0.0.0"
then ./sandbox_userns_29.patch
else ./sandbox_userns_30.patch;
userns_patch = if versionOlder sourceInfo.version "30.0.0.0"
then ./sandbox_userns_29.patch
else ./sandbox_userns_30.patch;
in stdenv.mkDerivation rec {
name = "${packageName}-${version}";
@ -134,9 +132,11 @@ in stdenv.mkDerivation rec {
sed -i -e 's|/usr/bin/gcc|gcc|' third_party/WebKit/Source/core/core.gypi
'' + optionalString useOpenSSL ''
cat $opensslPatches | patch -p1 -d third_party/openssl/openssl
'' + optionalString (versionOlder sourceInfo.version "29.0.0.0") ''
sed -i -e '/struct SECItemArray/,/^};/d' \
net/third_party/nss/ssl/bodge/secitem_array.c
'' + optionalString (!versionOlder sourceInfo.version "30.0.0.0") ''
sed -i -e '/base::FilePath exe_dir/,/^ *} *$/c \
sandbox_binary = \
base::FilePath("'"${libExecPath}/${packageName}_sandbox"'");
' content/browser/browser_main_loop.cc
'';
gypFlags = mkGypFlags (gypFlagsUseSystemLibs // {

View file

@ -1,292 +0,0 @@
From a242351d8a32ea33e6337b928969cc9f715e314e Mon Sep 17 00:00:00 2001
From: aszlig <aszlig@redmoonstudios.org>
Date: Thu, 16 May 2013 14:17:56 +0200
Subject: [PATCH] zygote: Add support for user namespaces on Linux.
The implementation is done by patching the Zygote host to execute the sandbox
binary with CLONE_NEWUSER and setting the uid and gid mapping so that the child
process is using uid 0 and gid 0 which map to the current user of the parent.
Afterwards, the sandbox will continue as if it was called as a setuid binary.
In addition, this adds new_user_namespace as an option in process_util in order
to set the UID and GID mapping correctly. The reason for this is that just
passing CLONE_NEWUSER to clone_flags doesn't help in LaunchProcess(), because
without setting the mappings exec*() will clear the process's capability sets.
If the kernel doesn't support unprivileged user namespaces and the sandbox
binary doesn't have the setuid flag, the Zygote main process will run without a
sandbox. This is to mimic the behaviour if no SUID sandbox binary path is set.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
---
base/process_util.h | 4 ++
base/process_util_posix.cc | 71 +++++++++++++++++++++-
.../browser/zygote_host/zygote_host_impl_linux.cc | 28 +++++++--
content/zygote/zygote_main_linux.cc | 7 +++
sandbox/linux/suid/client/setuid_sandbox_client.cc | 8 +++
sandbox/linux/suid/client/setuid_sandbox_client.h | 4 ++
sandbox/linux/suid/common/sandbox.h | 1 +
7 files changed, 117 insertions(+), 6 deletions(-)
diff --git a/base/process_util.h b/base/process_util.h
index 6efc70c..0f0c74c 100644
--- a/base/process_util.h
+++ b/base/process_util.h
@@ -261,3 +261,4 @@ struct LaunchOptions {
+ , new_user_namespace(false)
#endif // OS_LINUX
#if defined(OS_CHROMEOS)
, ctrl_terminal_fd(-1)
@@ -332,6 +333,9 @@ struct LaunchOptions {
#if defined(OS_LINUX)
// If non-zero, start the process using clone(), using flags as provided.
int clone_flags;
+
+ // If true, start the process in a new user namespace.
+ bool new_user_namespace;
#endif // defined(OS_LINUX)
#if defined(OS_CHROMEOS)
diff --git a/base/process_util_posix.cc b/base/process_util_posix.cc
index 6f15130..cea07f0 100644
--- a/base/process_util_posix.cc
+++ b/base/process_util_posix.cc
@@ -34,6 +34,13 @@
#include "base/threading/platform_thread.h"
#include "base/threading/thread_restrictions.h"
+#if defined(OS_LINUX)
+#include <sched.h>
+#if !defined(CLONE_NEWUSER)
+#define CLONE_NEWUSER 0x10000000
+#endif
+#endif
+
#if defined(OS_CHROMEOS)
#include <sys/ioctl.h>
#endif
@@ -621,8 +628,19 @@ bool LaunchProcess(const std::vector<std::string>& argv,
pid_t pid;
#if defined(OS_LINUX)
- if (options.clone_flags) {
- pid = syscall(__NR_clone, options.clone_flags, 0, 0, 0);
+ int map_pipe_fd[2];
+ int flags = options.clone_flags;
+
+ if (options.new_user_namespace) {
+ flags |= CLONE_NEWUSER;
+ if (pipe(map_pipe_fd) < 0) {
+ DPLOG(ERROR) << "user namespace pipe";
+ return false;
+ }
+ }
+
+ if (options.clone_flags || options.new_user_namespace) {
+ pid = syscall(__NR_clone, flags, 0, 0, 0);
} else
#endif
{
@@ -635,6 +653,21 @@ bool LaunchProcess(const std::vector<std::string>& argv,
} else if (pid == 0) {
// Child process
+#if defined(OS_LINUX)
+ if (options.new_user_namespace) {
+ // Close the write end of the pipe so we get an EOF when the parent closes
+ // the FD. This is to avoid race conditions when the UID/GID mappings are
+ // written _after_ execvp().
+ close(map_pipe_fd[1]);
+
+ char dummy;
+ if (HANDLE_EINTR(read(map_pipe_fd[0], &dummy, 1)) != 0) {
+ RAW_LOG(ERROR, "Unexpected input in uid/gid mapping pipe.");
+ _exit(127);
+ }
+ }
+#endif
+
// DANGER: fork() rule: in the child, if you don't end up doing exec*(),
// you call _exit() instead of exit(). This is because _exit() does not
// call any previously-registered (in the parent) exit handlers, which
@@ -749,6 +782,40 @@ bool LaunchProcess(const std::vector<std::string>& argv,
_exit(127);
} else {
// Parent process
+#if defined(OS_LINUX)
+ if (options.new_user_namespace) {
+ // We need to write UID/GID mapping here to map the current user outside
+ // the namespace to the root user inside the namespace in order to
+ // correctly "fool" the child process.
+ char buf[256];
+ int map_fd, map_len;
+
+ snprintf(buf, sizeof(buf), "/proc/%d/uid_map", pid);
+ map_fd = open(buf, O_RDWR);
+ DPCHECK(map_fd >= 0);
+ snprintf(buf, sizeof(buf), "0 %d 1", geteuid());
+ map_len = strlen(buf);
+ if (write(map_fd, buf, map_len) != map_len) {
+ RAW_LOG(WARNING, "Can't write to uid_map.");
+ }
+ close(map_fd);
+
+ snprintf(buf, sizeof(buf), "/proc/%d/gid_map", pid);
+ map_fd = open(buf, O_RDWR);
+ DPCHECK(map_fd >= 0);
+ snprintf(buf, sizeof(buf), "0 %d 1", getegid());
+ map_len = strlen(buf);
+ if (write(map_fd, buf, map_len) != map_len) {
+ RAW_LOG(WARNING, "Can't write to gid_map.");
+ }
+ close(map_fd);
+
+ // Close the pipe on the parent, so the child can continue doing the
+ // execvp() call.
+ close(map_pipe_fd[1]);
+ }
+#endif
+
if (options.wait) {
// While this isn't strictly disk IO, waiting for another process to
// finish is the sort of thing ThreadRestrictions is trying to prevent.
diff --git a/content/browser/zygote_host/zygote_host_impl_linux.cc b/content/browser/zygote_host/zygote_host_impl_linux.cc
index ba7884f8..2a674a0 100644
--- a/content/browser/zygote_host/zygote_host_impl_linux.cc
+++ b/content/browser/zygote_host/zygote_host_impl_linux.cc
@@ -117,6 +117,9 @@ void ZygoteHostImpl::Init(const std::string& sandbox_cmd) {
sandbox_binary_ = sandbox_cmd.c_str();
+ bool userns_sandbox = false;
+ const std::vector<std::string> cmd_line_unwrapped(cmd_line.argv());
+
if (!sandbox_cmd.empty()) {
struct stat st;
if (stat(sandbox_binary_.c_str(), &st) != 0) {
@@ -124,16 +127,21 @@ void ZygoteHostImpl::Init(const std::string& sandbox_cmd) {
<< sandbox_binary_ << " Aborting now.";
}
- if (access(sandbox_binary_.c_str(), X_OK) == 0 &&
- (st.st_uid == 0) &&
- (st.st_mode & S_ISUID) &&
- (st.st_mode & S_IXOTH)) {
+ if (access(sandbox_binary_.c_str(), X_OK) == 0) {
using_suid_sandbox_ = true;
+
cmd_line.PrependWrapper(sandbox_binary_);
scoped_ptr<sandbox::SetuidSandboxClient>
sandbox_client(sandbox::SetuidSandboxClient::Create());
sandbox_client->SetupLaunchEnvironment();
+
+ if (!((st.st_uid == 0) &&
+ (st.st_mode & S_ISUID) &&
+ (st.st_mode & S_IXOTH))) {
+ userns_sandbox = true;
+ sandbox_client->SetNoSuid();
+ }
} else {
LOG(FATAL) << "The SUID sandbox helper binary was found, but is not "
"configured correctly. Rather than run without sandboxing "
@@ -161,7 +169,19 @@ void ZygoteHostImpl::Init(const std::string& sandbox_cmd) {
base::ProcessHandle process = -1;
base::LaunchOptions options;
options.fds_to_remap = &fds_to_map;
+ if (userns_sandbox)
+ options.new_user_namespace = true;
base::LaunchProcess(cmd_line.argv(), options, &process);
+
+ if (process == -1 && userns_sandbox) {
+ LOG(ERROR) << "User namespace sandbox failed to start, running without "
+ << "sandbox! You need at least kernel 3.8.0 with CONFIG_USER_NS "
+ << "enabled in order to use the sandbox without setuid bit.";
+ using_suid_sandbox_ = false;
+ options.new_user_namespace = false;
+ base::LaunchProcess(cmd_line_unwrapped, options, &process);
+ }
+
CHECK(process != -1) << "Failed to launch zygote process";
if (using_suid_sandbox_) {
diff --git a/content/zygote/zygote_main_linux.cc b/content/zygote/zygote_main_linux.cc
index ca75518..d906411 100644
--- a/content/zygote/zygote_main_linux.cc
+++ b/content/zygote/zygote_main_linux.cc
@@ -402,6 +402,13 @@ static bool EnterSandbox(sandbox::SetuidSandboxClient* setuid_sandbox,
*has_started_new_init = true;
}
+ // Don't set non-dumpable, as it causes trouble when the host tries to find
+ // the zygote process (XXX: Not quite sure why this happens with user
+ // namespaces). Fortunately, we also have the seccomp filter sandbox which
+ // should disallow the use of ptrace.
+ if (setuid_sandbox->IsNoSuid())
+ return true;
+
#if !defined(OS_OPENBSD)
// Previously, we required that the binary be non-readable. This causes the
// kernel to mark the process as non-dumpable at startup. The thinking was
diff --git a/sandbox/linux/suid/client/setuid_sandbox_client.cc b/sandbox/linux/suid/client/setuid_sandbox_client.cc
index 7a174ef..633401e 100644
--- a/sandbox/linux/suid/client/setuid_sandbox_client.cc
+++ b/sandbox/linux/suid/client/setuid_sandbox_client.cc
@@ -166,6 +166,10 @@ bool SetuidSandboxClient::IsInNewNETNamespace() const {
return env_->HasVar(kSandboxNETNSEnvironmentVarName);
}
+bool SetuidSandboxClient::IsNoSuid() const {
+ return env_->HasVar(kSandboxNoSuidVarName);
+}
+
bool SetuidSandboxClient::IsSandboxed() const {
return sandboxed_;
}
@@ -175,5 +179,9 @@ void SetuidSandboxClient::SetupLaunchEnvironment() {
SetSandboxAPIEnvironmentVariable(env_);
}
+void SetuidSandboxClient::SetNoSuid() {
+ env_->SetVar(kSandboxNoSuidVarName, "1");
+}
+
} // namespace sandbox
diff --git a/sandbox/linux/suid/client/setuid_sandbox_client.h b/sandbox/linux/suid/client/setuid_sandbox_client.h
index a9f6536..2e8113a 100644
--- a/sandbox/linux/suid/client/setuid_sandbox_client.h
+++ b/sandbox/linux/suid/client/setuid_sandbox_client.h
@@ -39,6 +39,8 @@ class SetuidSandboxClient {
bool IsInNewPIDNamespace() const;
// Did the setuid helper create a new network namespace ?
bool IsInNewNETNamespace() const;
+ // Is sandboxed without SUID binary ?
+ bool IsNoSuid() const;
// Are we done and fully sandboxed ?
bool IsSandboxed() const;
@@ -46,6 +48,8 @@ class SetuidSandboxClient {
// helper.
void SetupLaunchEnvironment();
+ void SetNoSuid();
+
private:
// Holds the environment. Will never be NULL.
base::Environment* env_;
diff --git a/sandbox/linux/suid/common/sandbox.h b/sandbox/linux/suid/common/sandbox.h
index aad4ff8..bd710d5 100644
--- a/sandbox/linux/suid/common/sandbox.h
+++ b/sandbox/linux/suid/common/sandbox.h
@@ -18,6 +18,7 @@ static const char kAdjustLowMemMarginSwitch[] = "--adjust-low-mem";
static const char kSandboxDescriptorEnvironmentVarName[] = "SBX_D";
static const char kSandboxHelperPidEnvironmentVarName[] = "SBX_HELPER_PID";
+static const char kSandboxNoSuidVarName[] = "SBX_NO_SUID";
static const long kSUIDSandboxApiNumber = 1;
static const char kSandboxEnvironmentApiRequest[] = "SBX_CHROME_API_RQ";
--
1.8.2.1

View file

@ -1,4 +1,4 @@
commit b9a1fa30eb3296b169f51ffa8ee05513c5c1dbae
commit 41510de6ae32e6161073992bd1243f7f33148a06
Author: aszlig <aszlig@redmoonstudios.org>
Date: Thu May 16 14:17:56 2013 +0200
@ -43,10 +43,10 @@ index 45b1053..ce71418 100644
#if defined(OS_CHROMEOS)
diff --git a/base/process/launch_posix.cc b/base/process/launch_posix.cc
index 336633c..4b50a5d 100644
index 52e149c..312f835 100644
--- a/base/process/launch_posix.cc
+++ b/base/process/launch_posix.cc
@@ -36,6 +36,13 @@
@@ -37,6 +37,13 @@
#include "base/threading/platform_thread.h"
#include "base/threading/thread_restrictions.h"
@ -60,12 +60,11 @@ index 336633c..4b50a5d 100644
#if defined(OS_CHROMEOS)
#include <sys/ioctl.h>
#endif
@@ -395,8 +402,19 @@ bool LaunchProcess(const std::vector<std::string>& argv,
@@ -416,13 +423,23 @@ bool LaunchProcess(const std::vector<std::string>& argv,
pid_t pid;
#if defined(OS_LINUX)
- if (options.clone_flags) {
- pid = syscall(__NR_clone, options.clone_flags, 0, 0, 0);
+ int map_pipe_fd[2];
+ int flags = options.clone_flags;
+
@ -78,11 +77,18 @@ index 336633c..4b50a5d 100644
+ }
+
+ if (options.clone_flags || options.new_user_namespace) {
// Signal handling in this function assumes the creation of a new
// process, so we check that a thread is not being created by mistake
// and that signal handling follows the process-creation rules.
- RAW_CHECK(
- !(options.clone_flags & (CLONE_SIGHAND | CLONE_THREAD | CLONE_VM)));
- pid = syscall(__NR_clone, options.clone_flags, 0, 0, 0);
+ RAW_CHECK(!(flags & (CLONE_SIGHAND | CLONE_THREAD | CLONE_VM)));
+ pid = syscall(__NR_clone, flags, 0, 0, 0);
} else
#endif
{
@@ -409,6 +427,21 @@ bool LaunchProcess(const std::vector<std::string>& argv,
@@ -440,6 +457,21 @@ bool LaunchProcess(const std::vector<std::string>& argv,
} else if (pid == 0) {
// Child process
@ -104,7 +110,7 @@ index 336633c..4b50a5d 100644
// DANGER: fork() rule: in the child, if you don't end up doing exec*(),
// you call _exit() instead of exit(). This is because _exit() does not
// call any previously-registered (in the parent) exit handlers, which
@@ -523,6 +556,40 @@ bool LaunchProcess(const std::vector<std::string>& argv,
@@ -555,6 +587,40 @@ bool LaunchProcess(const std::vector<std::string>& argv,
_exit(127);
} else {
// Parent process
@ -209,10 +215,10 @@ index bb84e62..bce0d18 100644
if (using_suid_sandbox_) {
diff --git a/content/zygote/zygote_main_linux.cc b/content/zygote/zygote_main_linux.cc
index dcea4c0..c06b4ae 100644
index 1f0e9f5..ade5aab 100644
--- a/content/zygote/zygote_main_linux.cc
+++ b/content/zygote/zygote_main_linux.cc
@@ -398,6 +398,13 @@ static bool EnterSandbox(sandbox::SetuidSandboxClient* setuid_sandbox,
@@ -420,6 +420,13 @@ static bool EnterSandbox(sandbox::SetuidSandboxClient* setuid_sandbox,
*has_started_new_init = true;
}

View file

@ -1,18 +1,18 @@
# This file is autogenerated from update.sh in the same directory.
{
dev = {
version = "30.0.1588.0";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-30.0.1588.0.tar.xz";
sha256 = "1jwc2pkd75gax8vj8wzahhpzl6ilgrlj3bcbah975yy67m7c8p13";
version = "31.0.1612.0";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-31.0.1612.0.tar.xz";
sha256 = "19h6i8jdnpzbvyq8pk9jq89lghnydpij9yj8xfs7qdgqgyxxcl5w";
};
beta = {
version = "29.0.1547.49";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-29.0.1547.49.tar.xz";
sha256 = "03r64rydi2kbxgi2dcpslmpb716ppadqy1jzrbw39icz5xpgmg3k";
version = "30.0.1599.22";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-30.0.1599.22.tar.xz";
sha256 = "0955q7fz6nfr7nbxa8hp9q7mgljlan42rjg8ql5x2vn6c80sjji8";
};
stable = {
version = "28.0.1500.95";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-28.0.1500.95.tar.xz";
sha256 = "0d6pj57nyx7wfgxws98f6ly749flcyv7zg5sc3w16ggdxf5qhf1w";
version = "29.0.1547.65";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-29.0.1547.65.tar.xz";
sha256 = "0vmb5dsh61jyr68838pnczlc2mhvvil4hjkrmwklzlfz30c8s2w6";
};
}

View file

@ -19,9 +19,9 @@ assert useSystemCairo -> cairo != null;
let optional = stdenv.lib.optional;
in rec {
firefoxVersion = "23.0";
firefoxVersion = "23.0.1";
xulVersion = "23.0"; # this attribute is used by other packages
xulVersion = "23.0.1"; # this attribute is used by other packages
src = fetchurl {
@ -31,7 +31,7 @@ in rec {
# Fall back to this url for versions not available at releases.mozilla.org.
"ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2"
];
sha1 = "31936d2ddb727640c96a3ae697bf145c42a2a20e";
sha1 = "66361fcvyl9liyh41gvgysiim90wsywk";
};
commonConfigureFlags =

View file

@ -22,7 +22,7 @@ stdenv.mkDerivation {
sha1 = "4bcbb33f0b3ea050e805723680b5669d80438812";
};
enableParallelBuilding = true;
#enableParallelBuilding = true;
buildInputs =
[ pkgconfig perl python zip unzip bzip2 gtk dbus_glib alsaLib libIDL nspr

View file

@ -22,6 +22,6 @@ stdenv.mkDerivation rec {
description = "A GTK-based news feed agregator";
homepage = http://lzone.de/liferea/;
maintainers = [ stdenv.lib.maintainers.vcunat ];
platforms = stdenv.lib.platforms.all;
platforms = stdenv.lib.platforms.linux;
};
}

View file

@ -1,19 +1,22 @@
{stdenv, fetchurl, libpcap, ncurses, expat, pcre}:
{ stdenv, fetchurl, pkgconfig, libpcap, ncurses, expat, pcre, libnl }:
stdenv.mkDerivation {
name = "kismet-2011-03-r2";
stdenv.mkDerivation rec {
name = "kismet-${version}";
version = "2013-03-R1b";
src = fetchurl {
url = http://www.kismetwireless.net/code/kismet-2011-03-R2.tar.gz;
sha256 = "0r1admlaiq7k0v13d9ci9i9mf5m25i1r5r18bkawsla9fbxrk83i";
url = "http://www.kismetwireless.net/code/${name}.tar.xz";
sha256 = "0b3wabdkh0p3msphihm4kz5yw02p27ska5lfippfcyn6z1z4svb3";
};
buildInputs = [libpcap ncurses expat pcre];
postConfigure =
"sed -e 's@-o \$(INSTUSR)@@' \\
-e 's@-g \$(INSTGRP)@@' \\
-e 's@-g \$(MANGRP)@@' \\
-i Makefile";
buildInputs = [ pkgconfig libpcap ncurses expat pcre libnl ];
postConfigure = ''
sed -e 's/-o $(INSTUSR)//' \
-e 's/-g $(INSTGRP)//' \
-e 's/-g $(MANGRP)//' \
-e 's/-g $(SUIDGROUP)//' \
-i Makefile
'';
meta = {
description = "Wireless network sniffer";

View file

@ -1,24 +1,33 @@
{ stdenv, fetchurl, cmake, kdelibs, attica, perl, zlib, libpng, boost, mesa
, kdepimlibs, createresources ? null, eigen, qca2, exiv2, soprano, marble, lcms2
, fontconfig, freetype, sqlite, icu, libwpd, libwpg, pkgconfig, popplerQt4
, libkdcraw, libxslt, fftw, glew, gsl, shared_desktop_ontologies, okular }:
, libkdcraw, libxslt, fftw, glew, gsl, shared_desktop_ontologies, okular
, libvisio, kactivities, mysql, postgresql, freetds, xbase, openexr, ilmbase
}:
stdenv.mkDerivation rec {
name = "calligra-2.5.5";
name = "calligra-2.7.2";
src = fetchurl {
url = "mirror://kde/stable/${name}/${name}.tar.bz2";
sha256 = "0h9idadrcyjvd0mkwri4lg310mzpna6s0pvc7b7r3267wzjbn9kw";
url = "mirror://kde/stable/${name}/${name}.tar.xz";
sha256 = "1awnvv62fp5bjhi6fys37s6lpzxaig4v15m1zjlgxq82ig61w6sq";
};
nativeBuildInputs = [ cmake perl pkgconfig ];
patches = [ ./fix-kde4.10-build.patch ];
# patches = [ ./fix-kde4.10-build.patch ];
# TODO: package Vc, libWPS, OCIO, OpenShiva, QtShiva, Spnav, m2mml
# TODO: not found popplerQt4
buildInputs = [ kdelibs attica zlib libpng boost mesa kdepimlibs
createresources eigen qca2 exiv2 soprano marble lcms2 fontconfig freetype
sqlite icu libwpd libwpg popplerQt4 libkdcraw libxslt fftw glew gsl
shared_desktop_ontologies okular ];
shared_desktop_ontologies okular
libvisio kactivities mysql postgresql freetds xbase openexr
];
NIX_CFLAGS_COMPILE = "-I${ilmbase}/include/OpenEXR";
meta = {
description = "A Qt/KDE office suite, formely known as koffice";

View file

@ -1,25 +1,30 @@
{ stdenv, fetchgit, cmake, boost, gmp, mpfr, libedit, python, texinfo }:
let
rev = "26d7197";
rev = "0ec4291";
in
stdenv.mkDerivation {
name = "ledger3-2013.06.${rev}";
name = "ledger3-2013.08.${rev}";
src = fetchgit {
url = "https://github.com/ledger/ledger.git";
inherit rev;
sha256 = "02nf4kdrd61q9rf5rrarwmx47y2ya5qix7n82cj9qi9p4v3k3m2g";
sha256 = "1y4rcbx8y2fxkdc7i06n1i5jf3cq05bvzpb8498mis2gwfmkw470";
};
buildInputs = [ cmake boost gmp mpfr libedit python texinfo ];
# Unit tests fail in the current git snapshot. Try enabling them again
# when updating this package!
doCheck = false;
# Tests on Darwin are failing
doCheck = !stdenv.isDarwin;
enableParallelBuilding = true;
# Skip byte-compiling of emacs-lisp files because this is currently
# broken in ledger...
postInstall = ''
mkdir -p $out/share/emacs/site-lisp/
cp -v $src/lisp/*.el $out/share/emacs/site-lisp/
'';
meta = {
homepage = "http://ledger-cli.org/";
description = "A double-entry accounting system with a command-line reporting interface";
@ -33,6 +38,6 @@ stdenv.mkDerivation {
'';
platforms = stdenv.lib.platforms.all;
maintainers = [ stdenv.lib.maintainers.simons ];
maintainers = with stdenv.lib.maintainers; [ simons the-kenny ];
};
}

View file

@ -1,4 +1,10 @@
{ stdenv, fetchurl, pam, python, tcsh, libxslt, perl, ArchiveZip
# when updating version, wait for the build to fail
# run make without sourcing the environment and let libreoffice
# download all extra files
# then list extra files separated by newline and pipe them to
# generate-libreoffice-srcs.sh and copy output to libreoffice-srcs.nix
{ stdenv, fetchurl, pam, python3, tcsh, libxslt, perl, ArchiveZip
, CompressZlib, zlib, libjpeg, expat, pkgconfigUpstream, freetype, libwpd
, libxml2, db4, sablotron, curl, libXaw, fontconfig, libsndfile, neon
, bison, flex, zip, unzip, gtk, libmspack, getopt, file, cairo, which
@ -6,54 +12,117 @@
, libXinerama, openssl, gperf, cppunit, GConf, ORBit2, poppler
, librsvg, gnome_vfs, gstreamer, gst_plugins_base, mesa
, autoconf, automake, openldap, bash, hunspell, librdf_redland, nss, nspr
, libwpg, dbus_glib, qt4, kde4, clucene_core, libcdr, lcms, vigra
, libiodbc, mdds, saneBackends, mythes, libexttextcat, libvisio
, fontsConf
, langs ? [ "en-US" "en-GB" "ca" "ru" "eo" "fr" "nl" "de" ]
, libwpg, dbus_glib, glibc, qt4, kde4, clucene_core, libcdr, lcms, vigra
, unixODBC, mdds, saneBackends, mythes, libexttextcat, libvisio
, fontsConf, pkgconfig, libzip, bluez5, libtool, maven
, langs ? [ "ALL" ]
}:
let
langsSpaces = stdenv.lib.concatStringsSep " " langs;
major = "3";
minor = "6";
patch = "6";
major = "4";
minor = "0";
patch = "5";
tweak = "2";
subdir = "${major}.${minor}.${patch}";
version = "${subdir}${if tweak == "" then "" else "."}${tweak}";
# configure phase dependency
liborcus = stdenv.mkDerivation rec {
version = "0.3.0";
name = "liborcus-${version}";
src = fetchurl {
url = "http://dev-www.libreoffice.org/src/8755aac23317494a9028569374dc87b2-liborcus_0.3.0.tar.bz2";
sha256 = "0xrw13s390mcpm50apclydl38sw2sdq27csrr1k0d39jna2990ih";
};
configureFlags = "--disable-werror";
buildInputs = [ zlib boost mdds pkgconfig libixion libzip ];
};
# configure phase dependency
liblangtag = stdenv.mkDerivation rec {
version = "0.4.0";
name = "liblangtag-${version}";
src = fetchurl {
url = "http://dev-www.libreoffice.org/src/54e578c91b1b68e69c72be22adcb2195-${name}.tar.bz2";
sha256 = "1bjb0fxjmvzxlhr5by9wgisf6w5yvy6wgfzfkjyw6igk39fivdyb";
};
buildInputs = [ libtool pkgconfig libxml2 ];
};
# doesn't work with srcs versioning
libmspub = stdenv.mkDerivation rec {
version = "0.0.6";
name = "libmspub-${version}";
src = fetchurl {
url = "http://dev-www.libreoffice.org/src/${name}.tar.gz";
sha256 = "1zdcvnm0dpac5yqdv34hq9j38cnhyqzyjgb19iyp54ajnwfjhmcq";
};
configureFlags = "--disable-werror";
buildInputs = [ zlib libwpd libwpg pkgconfig boost icu ];
};
# doesn't exist in srcs
libixion = stdenv.mkDerivation rec {
version = "0.5.0";
name = "libixion-${version}";
src = fetchurl {
url = "http://kohei.us/files/ixion/src/${name}.tar.bz2";
sha256 = "010k33bfkckx28r4rdk5mkd0mmayy5ng9ja0j0zg0z237gcfgrzb";
};
configureFlags = "--with-boost=${boost}";
buildInputs = [ boost mdds pkgconfig ];
};
fetchThirdParty = {name, md5}: fetchurl {
inherit name md5;
url = "http://dev-www.libreoffice.org/src/${md5}-${name}";
};
fetchSrc = {name, sha256}: fetchurl {
url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${name}-${version}.tar.xz";
inherit sha256;
};
srcs = {
third_party = [ (fetchurl rec {
url = "http://dev-www.libreoffice.org/extern/${md5}-${name}";
md5 = "185d60944ea767075d27247c3162b3bc";
name = "unowinreg.dll";
}) ] ++ (map fetchThirdParty (import ./libreoffice-srcs.nix));
translations = fetchSrc {
name = "translations";
sha256 = "1n3yk2077adyxrhs0jpkbm8dg3lxpn3sy63f0dl87ifv7ha1rfpn";
sha256 = "0x96wlwr5m7w4k3ygydzak3ycq35hjq60vfi6nfxczlr8pfjyjxv";
};
# TODO: dictionaries
help = fetchSrc {
name = "help";
sha256 = "12rb5mw6sbi41w1zaxrj4qffiis9qcx8ibp5cpmwsz07nsdv5sxk";
sha256 = "0nab5jcgrrgn0v1yrm18nl9avp4vifbas48l1absz3jmzf9wka7b";
};
core = fetchSrc {
name = "core";
sha256 = "0xw36sa73cgk3k3fv1spv5pavm95bc02lszn8415ay36lcc098pn";
};
};
in
stdenv.mkDerivation rec {
name = "libreoffice-${version}";
src = srcs.core;
src = fetchurl {
url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
sha256 = "195g1iab7j2x7sl326xbq7vya412ns57xrwpv9hqdrb7iiz2n8la";
};
# Openoffice will open libcups dynamically, so we link it directly
# to make its dlopen work.
@ -69,31 +138,35 @@ stdenv.mkDerivation rec {
'' + (stdenv.lib.concatMapStrings (f: "ln -sv ${f} $sourceRoot/src/${f.outputHash}-${f.name}\n") srcs.third_party)
+ ''
ln -sv ${srcs.help} $sourceRoot/src/${srcs.help.name}
tar xf $sourceRoot/src/${srcs.help.name} -C $sourceRoot/../
ln -sv ${srcs.translations} $sourceRoot/src/${srcs.translations.name}
tar xf $sourceRoot/src/${srcs.translations.name} -C $sourceRoot/../
'';
patchPhase = ''
find . -type f -print0 | xargs -0 sed -i \
-e 's,! */bin/bash,!${bash}/bin/bash,' -e 's,\(!\|SHELL=\) */usr/bin/env bash,\1${bash}/bin/bash,' \
-e 's,! */usr/bin/perl,!${perl}/bin/perl,' -e 's,! */usr/bin/env perl,!${perl}/bin/perl,' \
-e 's,! */usr/bin/python,!${python}/bin/python,' -e 's,! */usr/bin/env python,!${python}/bin/python,'
sed -i 's,ANT_OPTS+="\(.*\)",ANT_OPTS+=\1,' apache-commons/java/*/makefile.mk
-e 's,! */usr/bin/python,!${python3}/bin/${python3.executable},' -e 's,! */usr/bin/env python,!${python3}/bin/${python3.executable},'
#sed -i 's,ANT_OPTS+="\(.*\)",ANT_OPTS+=\1,' apache-commons/java/*/makefile.mk
'';
QT4DIR = qt4;
KDE4DIR = kde4.kdelibs;
# I set --with-num-cpus=$NIX_BUILD_CORES, as it's the equivalent of
# enableParallelBuilding=true in this build system.
preConfigure = ''
# Needed to find genccode
PATH=$PATH:${icu}/sbin
configureFlagsArray=("--with-lang=${langsSpaces}" "--with-num-cpus=$NIX_BUILD_CORES")
configureFlagsArray=(
"--with-parallelism=$NIX_BUILD_CORES"
);
'';
makeFlags = "SHELL=${bash}/bin/bash";
enableParallelBuilding = true;
buildPhase = ''
# This is required as some cppunittests require fontconfig configured
export FONTCONFIG_FILE=${fontsConf}
@ -111,14 +184,22 @@ stdenv.mkDerivation rec {
# It installs only things to $out/lib/libreoffice
postInstall = ''
mkdir -p $out/bin
mkdir -p $out/bin $out/share
for a in sbase scalc sdraw smath swriter spadmin simpress soffice; do
ln -s $out/lib/libreoffice/program/$a $out/bin/$a
done
ln -s $out/bin/soffice $out/bin/libreoffice
ln -s $out/lib/libreoffice/share/xdg $out/share/applications
for f in $out/share/applications/*.desktop; do
substituteInPlace "$f" --replace "Exec=libreoffice4.0" "$out/bin/soffice"
substituteInPlace "$f" --replace "Exec=libreoffice" "$out/bin/soffice"
done
'';
configureFlags = [
#"--enable-verbose"
"--with-lang=${langsSpaces}"
"--with-vender=NixOS"
# Without these, configure does not finish
"--without-junit"
@ -130,16 +211,16 @@ stdenv.mkDerivation rec {
"--disable-odk"
"--with-system-cairo"
"--with-system-libs"
"--with-system-headers"
"--with-system-openssl"
"--with-system-openldap"
"--with-boost-libdir=${boost}/lib"
"--with-system-db"
"--with-openldap" "--enable-ldap"
"--without-system-libwps"
"--without-system-libwps" # TODO
"--without-doxygen"
# I imagine this helps. Copied from go-oo.
"--disable-epm"
"--disable-mathmldtd"
"--disable-mozilla"
"--disable-kde"
"--disable-postgresql-sdbc"
"--with-package-format=native"
@ -155,28 +236,33 @@ stdenv.mkDerivation rec {
"--without-system-altlinuxhyph"
"--without-system-lpsolve"
"--without-system-graphite"
"--without-system-mozilla-headers"
"--without-system-npapi-headers"
"--without-system-libcmis"
"--with-java-target-version=1.6" # The default 1.7 not supported
"--without-system-mozilla"
];
checkPhase = ''
make unitcheck
make slowcheck
'';
buildInputs =
[ ant ArchiveZip autoconf automake bison boost cairo clucene_core
CompressZlib cppunit cups curl db4 dbus_glib expat file flex fontconfig
freetype GConf getopt gnome_vfs gperf gst_plugins_base gstreamer gtk
hunspell icu jdk kde4.kdelibs lcms libcdr libexttextcat libiodbc libjpeg
hunspell icu jdk kde4.kdelibs lcms libcdr libexttextcat unixODBC libjpeg
libmspack librdf_redland librsvg libsndfile libvisio libwpd libwpg libX11
libXaw libXext libXi libXinerama libxml2 libxslt libXtst mdds mesa mythes
neon nspr nss openldap openssl ORBit2 pam perl pkgconfigUpstream poppler
python sablotron saneBackends tcsh unzip vigra which zip zlib
python3 sablotron saneBackends tcsh unzip vigra which zip zlib
mdds bluez5 glibc libmspub libixion liborcus liblangtag
];
meta = {
description = "Libre-office, variant of openoffice.org";
meta = with stdenv.lib; {
description = "LibreOffice is a comprehensive, professional-quality productivity suite, a variant of openoffice.org";
homepage = http://libreoffice.org/;
license = "LGPL";
maintainers = [ stdenv.lib.maintainers.viric ];
platforms = stdenv.lib.platforms.linux;
license = licenses.lgpl3;
maintainers = [ maintainers.viric ];
platforms = platforms.linux;
};
}

View file

@ -1,4 +1,4 @@
#!/var/run/current-system/bin/bash
#!/run/current-system/sw/bin/bash
# Take the list of files from the main package, ooo.lst.in

View file

@ -1,374 +1,114 @@
[
{
name = "hyphen-2.8.3.tar.gz";
md5 = "86261f06c097d3e425a2f6d0b0635380";
name = "glibc-2.1.3-stub.tar.gz";
md5 = "4a660ce8466c9df01f19036435425c3a";
}
{
name = "openssl-0.9.8v.tar.gz";
md5 = "51a40a81b3b7abe8a5c33670bd3da0ce";
}
{
name = "pixman-0.24.4.tar.bz2";
md5 = "c63f411b3ad147db2bcce1bf262a0e02";
}
{
name = "README_apache-commons.txt";
md5 = "0b49ede71c21c0599b0cc19b353a6cb3";
}
{
name = "libexttextcat-3.3.1.tar.bz2";
md5 = "6097739c841f671cb21332b9cc593ae7";
}
{
name = "hsqldb_1_8_0.zip";
md5 = "17410483b5b5f267aa18b7e00b65e6e0";
}
{
name = "Adobe-Core35_AFMs-314.tar.gz";
md5 = "1756c4fa6c616ae15973c104cd8cb256";
}
{
name = "STLport-4.5.tar.gz";
md5 = "18f577b374d60b3c760a3a3350407632";
}
{
name = "xmlsec1-1.2.14.tar.gz";
md5 = "1f24ab1d39f4a51faf22244c94a6203f";
}
{
name = "LICENSE_source-9.0.0.7-bj.html";
md5 = "24be19595acad0a2cae931af77a0148a";
}
{
name = "lp_solve_5.5.tar.gz";
md5 = "26b3e95ddf3d9c077c480ea45874b3b8";
}
{
name = "raptor-1.4.18.tar.gz";
md5 = "284e768eeda0e2898b0d5bf7e26a016e";
}
{
name = "jakarta-tomcat-5.0.30-src.tar.gz";
md5 = "2a177023f9ea8ec8bd00837605c5df1b";
}
{
name = "commons-lang-2.3-src.tar.gz";
md5 = "2ae988b339daec234019a7066f96733e";
}
{
name = "commons-httpclient-3.1-src.tar.gz";
md5 = "2c9b0f83ed5890af02c0df1c1776f39b";
}
{
name = "liberation-fonts-ttf-1.07.1.tar.gz";
md5 = "0be45d54cc5e1c2e3102e32b8c190346";
}
{
name = "liberation-fonts-ttf-2.00.0.tar.gz";
md5 = "cfbf1ac6f61bf6cf45342a0cc9381be5";
}
{
name = "swingExSrc.zip";
md5 = "35c94d2df8893241173de1d16b6034c0";
}
{
name = "gentiumbasic-fonts-1.10.zip";
md5 = "35efabc239af896dfb79be7ebdd6e6b9";
}
{
name = "sacjava-1.3.zip";
md5 = "39bb3fcea1514f1369fcfc87542390fd";
}
{
name = "epm-3.7.tar.gz";
md5 = "3ade8cfe7e59ca8e65052644fed9fca4";
name = "ucpp-1.3.2.tar.gz";
md5 = "0168229624cfac409e766913506961a8";
}
{
name = "commons-logging-1.1.1-src.tar.gz";
md5 = "3c219630e4302863a9a83d0efde889db";
}
{
name = "README_source-9.0.0.7-bj.txt";
md5 = "48470d662650c3c074e1c3fabbc67bbd";
name = "liblayout-0.2.10.zip";
md5 = "db60e4fde8dd6d6807523deb71ee34dc";
}
{
name = "clucene-core-2.3.3.4.tar.gz";
md5 = "48d647fbd8ef8889e5a7f422c1bfda94";
}
{
name = "glibc-2.1.3-stub.tar.gz";
md5 = "4a660ce8466c9df01f19036435425c3a";
}
{
name = "cairo-1.10.2.tar.gz";
md5 = "f101a9e88b783337b20b2e26dfd26d5f";
}
{
name = "xpdf-3.02.tar.gz";
md5 = "599dc4cc65a07ee868cf92a667a913d2";
}
{
name = "libxml2-2.7.6.tar.gz";
md5 = "7740a8ec23878a2f50120e1faa2730f2";
}
{
name = "STLport-4.5-0119.tar.gz";
md5 = "7376930b0d3f3d77a685d94c4a3acda8";
name = "hsqldb_1_8_0.zip";
md5 = "17410483b5b5f267aa18b7e00b65e6e0";
}
{
name = "rhino1_5R5.zip";
md5 = "798b2ffdc8bcfe7bca2cf92b62caf685";
}
{
name = "curl-7.19.7.tar.gz";
md5 = "ecb2e37e45c9933e2a963cabe03670ab";
}
{
name = "stax-api-1.0-2-sources.jar";
md5 = "8294d6c42e3553229af9934c5c0ed997";
}
{
name = "cppunit-1.12.1.tar.gz";
md5 = "bd30e9cf5523cdfc019b94f5e1d7fd19";
}
{
name = "seamonkey-1.1.14.source.tar.gz";
md5 = "a169ab152209200a7bad29a275cb0333";
}
{
name = "LICENSE_stax-api-1.0-2-sources.html";
md5 = "a4d9b30810a434a3ed39fc0003bbd637";
}
{
name = "xsltml_2.1.2.zip";
md5 = "a7983f859eafb2677d7ff386a023bc40";
}
{
name = "source-9.0.0.7-bj.zip";
md5 = "ada24d37d8d638b3d8a9985e80bc2978";
}
{
name = "commons-codec-1.3-src.tar.gz";
md5 = "af3c3acf618de6108d65fcdc92b492e1";
}
{
name = "LICENSE_Python-2.6.1";
md5 = "bc702168a2af16869201dbe91e46ae48";
}
{
name = "STLport-4.0.tar.gz";
md5 = "c441926f3a552ed3e5b274b62e86af16";
}
{
name = "redland-1.0.8.tar.gz";
md5 = "ca66e26082cab8bb817185a116db809b";
}
{
name = "core.zip";
md5 = "d4c4d91ab3a8e52a2e69d48d34ef4df4";
}
{
name = "db-4.7.25.NC-custom.tar.gz";
md5 = "d70951c80dabecc2892c919ff5d07172";
}
{
name = "README_db-4.7.25.NC-custom.txt";
md5 = "e0707ff896045731ff99e99799606441";
}
{
name = "Python-2.6.1.tar.bz2";
md5 = "e81c2f0953aa60f8062c05a4673f2be0";
}
{
name = "libxslt-1.1.26.tar.gz";
md5 = "e61d0364a30146aaa3001296f853b2b9";
}
{
name = "bsh-2.0b1-src.tar.gz";
md5 = "ea570af93c284aa9e5621cd563f54f4d";
}
{
name = "vigra1.4.0.tar.gz";
md5 = "ea91f2fb4212a21d708aced277e6e85a";
}
{
name = "expat-2.1.0.tar.gz";
md5 = "dd7dab7a5fea97d2a6a43f511449b7cd";
}
{
name = "README_stax-api-1.0-2-sources.txt";
md5 = "fb7ba5c2182be4e73748859967455455";
}
{
name = "rasqal-0.9.16.tar.gz";
md5 = "fca8706f2c4619e2fa3f8f42f8fc1e9d";
}
{
name = "dejavu-fonts-ttf-2.33.zip";
md5 = "f872f4ac066433d8ff92f5e316b36ff9";
}
{
name = "mysql-connector-c++-1.1.0.tar.gz";
md5 = "0981bda6548a8c8233ffce2b6e4b2a23";
}
{
name = "postgresql-9.1.1.tar.bz2";
md5 = "061a9f17323117c9358ed60f33ecff78";
}
{
name = "mythes-1.2.2.tar.gz";
md5 = "e1e255dc43dbcbb34cb19e8a0eba90ae";
}
{
name = "libformula-1.1.7.zip";
md5 = "3404ab6b1792ae5f16bbd603bd1e1d03";
}
{
name = "libfonts-1.1.6.zip";
md5 = "3bdf40c0d199af31923e900d082ca2dd";
name = "xmlsec1-1.2.14.tar.gz";
md5 = "1f24ab1d39f4a51faf22244c94a6203f";
}
{
name = "librepository-1.1.6.zip";
md5 = "8ce2fcd72becf06c41f7201d15373ed9";
}
{
name = "libbase-1.1.6.zip";
md5 = "eeb2c7ddf0d302fba4bfc6e97eac9624";
}
{
name = "lp_solve_5.5.tar.gz";
md5 = "26b3e95ddf3d9c077c480ea45874b3b8";
}
{
name = "libloader-1.1.6.zip";
md5 = "97b2d4dba862397f446b217e2b623e71";
}
{
name = "libxml-1.1.7.zip";
md5 = "ace6ab49184e329db254e454a010f56d";
name = "graphite2-1.2.0.tgz";
md5 = "f5ef3f7f10fa8c3542c6a085a233080b";
}
{
name = "flute-1.1.6.zip";
md5 = "d8bd5eed178db6e2b18eeed243f85aa8";
name = "jakarta-tomcat-5.0.30-src.tar.gz";
md5 = "2a177023f9ea8ec8bd00837605c5df1b";
}
{
name = "liblayout-0.2.10.zip";
md5 = "db60e4fde8dd6d6807523deb71ee34dc";
}
{
name = "libbase-1.1.6.zip";
md5 = "eeb2c7ddf0d302fba4bfc6e97eac9624";
name = "hyphen-2.8.4.tar.gz";
md5 = "a2f6010987e1c601274ab5d63b72c944";
}
{
name = "libserializer-1.1.6.zip";
md5 = "f94d9870737518e3b597f9265f4e9803";
}
{
name = "commons-lang-2.3-src.tar.gz";
md5 = "2ae988b339daec234019a7066f96733e";
}
{
name = "libxml-1.1.7.zip";
md5 = "ace6ab49184e329db254e454a010f56d";
}
{
name = "commons-httpclient-3.1-src.tar.gz";
md5 = "2c9b0f83ed5890af02c0df1c1776f39b";
}
{
name = "commons-codec-1.3-src.tar.gz";
md5 = "af3c3acf618de6108d65fcdc92b492e1";
}
{
name = "libformula-1.1.7.zip";
md5 = "3404ab6b1792ae5f16bbd603bd1e1d03";
}
{
name = "libcmis-0.3.0.tar.gz";
md5 = "b2371dc7cf4811c9d32146eec913d296";
}
{
name = "swingExSrc.zip";
md5 = "35c94d2df8893241173de1d16b6034c0";
}
{
name = "flow-engine-0.9.4.zip";
md5 = "ba2930200c9f019c2d93a8c88c651a0f";
}
{
name = "neon-0.29.5.tar.gz";
md5 = "ff369e69ef0f0143beb5626164e87ae2";
}
{
name = "gettext-0.18.1.1.tar.gz";
md5 = "3dd55b952826d2b32f51308f2f91aa89";
}
{
name = "glib-2.28.1.tar.gz";
md5 = "9f6e85e1e38490c3956f4415bcd33e6e";
}
{
name = "gdk-pixbuf-2.23.0.tar.gz";
md5 = "a7d6c5f2fe2d481149ed3ba807b5c043";
}
{
name = "libgsf-1.14.19.tar.gz";
md5 = "3a84ac2da37cae5bf7ce616228c6fbde";
}
{
name = "pango-1.28.3.tar.gz";
md5 = "22ad1c8d3fda7e73b0798035f3dd96bc";
}
{
name = "libcroco-0.6.2.tar.gz";
md5 = "0611e099e807210cf738dcb41425d104";
}
{
name = "librsvg-2.32.1.tar.gz";
md5 = "d7a242ca43e33e1b63d3073f9d46a6a8";
}
{
name = "libpng-1.5.10.tar.gz";
md5 = "9e5d864bce8f06751bbd99962ecf4aad";
}
{
name = "jpeg-8c.tar.gz";
md5 = "a2c10c04f396a9ce72894beb18b4e1f9";
}
{
name = "zlib-1.2.7.tar.bz2";
md5 = "2ab442d169156f34c379c968f3f482dd";
}
{
name = "icu4c-49_1_1-src.tgz";
md5 = "7c53f83e0327343f4060c0eb83842daf";
}
{
name = "ConvertTextToNumber-1.3.2.oxt";
md5 = "451ccf439a36a568653b024534669971";
}
{
name = "JLanguageTool-1.7.0.tar.bz2";
md5 = "b63e6340a02ff1cacfeadb2c42286161";
}
{
name = "ixion-0.2.0.tar.gz";
md5 = "0f63ee487fda8f21fafa767b3c447ac9";
}
{
name = "nss-3.13.5-with-nspr-4.9.1.tar.gz";
md5 = "a0a861f539f0e7a91d05e6b9457e4db1";
}
{
name = "libwpg-0.2.1.tar.bz2";
md5 = "9d283e02441d8cebdcd1e5d9df227d67";
}
{
name = "libwpd-0.9.4.tar.bz2";
md5 = "c01351d7db2b205de755d58769288224";
name = "sacjava-1.3.zip";
md5 = "39bb3fcea1514f1369fcfc87542390fd";
}
{
name = "libwps-0.2.7.tar.bz2";
md5 = "d197bd6211669a2fa4ca648faf04bcb1";
}
{
name = "mdds_0.6.1.tar.bz2";
md5 = "9f9e15966b5624834157fe3d748312bc";
name = "libfonts-1.1.6.zip";
md5 = "3bdf40c0d199af31923e900d082ca2dd";
}
{
name = "boost_1_44_0.tar.bz2";
md5 = "f02578f5218f217a9f20e9c30e119c6a";
}
{
name = "hunspell-1.3.2.tar.gz";
md5 = "3121aaf3e13e5d88dfff13fb4a5f1ab8";
}
{
name = "graphite2-1.0.3.tgz";
md5 = "3bf481ca95109b14435125c0dd1f2217";
}
{
name = "libvisio-0.0.19.tar.bz2";
md5 = "94e7f271e38c976462558b4278590178";
}
{
name = "LinLibertineG-20120116.zip";
md5 = "e7a384790b13c29113e22e596ade9687";
}
{
name = "libcmis-0.2.3.tar.gz";
md5 = "0d2dcdfbf28d6208751b33057f5361f0";
}
{
name = "libcdr-0.0.9.tar.bz2";
md5 = "3c0037fb07dea2f0bbae8386fa7c6a9a";
}
{
name = "lcms2-2.3.tar.gz";
md5 = "327348d67c979c88c2dec59a23a17d85";
name = "flute-1.1.6.zip";
md5 = "d8bd5eed178db6e2b18eeed243f85aa8";
}
]

View file

@ -13,15 +13,15 @@ in
stdenv.mkDerivation rec {
name = "eagle-${version}";
version = "6.4.0";
version = "6.5.0";
src = fetchurl {
url = "ftp://ftp.cadsoft.de/eagle/program/6.4/eagle-lin-${version}.run";
sha256 = "0jb44dsq4cl9rx5nam6rxsw9fsmm6fsksv9s544p2zrwnad2x2i8";
url = "ftp://ftp.cadsoft.de/eagle/program/6.5/eagle-lin-${version}.run";
sha256 = "17plwx2p8q2ylk0nzj5crfbdm7jc35pw7v3j8f4j81yl37l7bj22";
};
desktopItem = makeDesktopItem {
name = "Eagle";
name = "eagle";
exec = "eagle";
icon = "eagle";
comment = "Schematic capture and PCB layout";

View file

@ -55,5 +55,6 @@ stdenv.mkDerivation {
homepage = "http://coq.inria.fr";
license = "LGPL";
maintainers = [ stdenv.lib.maintainers.roconnor ];
platforms = stdenv.lib.platforms.linux;
};
}

View file

@ -1,24 +1,25 @@
{ stdenv, fetchurl, cln, pkgconfig, readline }:
{ stdenv, fetchurl, cln, pkgconfig, readline, gmp }:
stdenv.mkDerivation rec {
name = "ginac-1.6.2";
src = fetchurl {
url = "${meta.homepage}/${name}.tar.bz2";
url = "${meta.homepage}/${name}.tar.bz2";
sha256 = "1pivcqqaf142l6vrj2azq6dxrcyzhag4za2dwicb4gsb09ax4d0g";
};
propagatedBuildInputs = [ cln ];
buildInputs = [ readline ];
buildInputs = [ readline ] ++ stdenv.lib.optional stdenv.isDarwin gmp;
nativeBuildInputs = [ pkgconfig ];
configureFlags = "--disable-rpath";
meta = {
meta = with stdenv.lib; {
description = "GiNaC is Not a CAS";
homepage = http://www.ginac.de/;
platforms = stdenv.lib.platforms.all;
maintainers = [ stdenv.lib.maintainers.urkud ];
homepage = http://www.ginac.de/;
maintainers = with maintainers; [ lovek323 urkud ];
platforms = platforms.all;
};
}

View file

@ -2,7 +2,7 @@
let
name = "maxima";
version = "5.29.1";
version = "5.30.0";
searchPath =
stdenv.lib.makeSearchPath "bin"
@ -13,7 +13,7 @@ stdenv.mkDerivation {
src = fetchurl {
url = "mirror://sourceforge/${name}/${name}-${version}.tar.gz";
sha256 = "1p94l28adcn0826nah460r9pz71h7wd5klsg885sl2gzds75bn74";
sha256 = "1mhx7g0kzpiagg97s2zhaplsq1li9ya2764mhwl7jgfw2vp3jlm0";
};
buildInputs = [sbcl texinfo perl makeWrapper];
@ -21,7 +21,7 @@ stdenv.mkDerivation {
postInstall = ''
# Make sure that maxima can find its runtime dependencies.
for prog in "$out/bin/"*; do
wrapProgram "$prog" --prefix PATH ":" "${searchPath}"
wrapProgram "$prog" --prefix PATH ":" "$out/bin:${searchPath}"
done
# Move emacs modules and documentation into the right place.
mkdir -p $out/share/emacs $out/share/doc

View file

@ -71,7 +71,7 @@ rec {
hub = import ./hub {
inherit (rubyLibs) rake;
inherit stdenv fetchgit groff makeWrapper;
inherit stdenv fetchurl groff makeWrapper;
};
gitFastExport = import ./fast-export {

View file

@ -14,8 +14,8 @@
cabal.mkDerivation (self: {
pname = "git-annex";
version = "4.20130815";
sha256 = "0c4fvqmnvyrncmiz0dxwax2rnb4yrqw1y54q2zkqiifzrihcyi71";
version = "4.20130827";
sha256 = "07kfp0d2wg3p8s0v2100r4giw5ay1il5j15lrah43fk2rrszgm5z";
isLibrary = false;
isExecutable = true;
buildDepends = [

View file

@ -1,13 +1,12 @@
{ stdenv, fetchgit, groff, rake, makeWrapper }:
{ stdenv, fetchurl, groff, rake, makeWrapper }:
stdenv.mkDerivation rec {
name = "hub-${version}";
version = "1.10.3";
version = "1.10.6";
src = fetchgit {
url = "git://github.com/defunkt/hub.git";
rev = "refs/tags/v${version}";
sha256 = "0j0krmf0sf09hhw3nsn0w1y97d67762g4qrc8080bwcx38lbyvbg";
src = fetchurl {
url = "https://github.com/github/hub/archive/v${version}.tar.gz";
sha256 = "0vfl1iq1927in81vd7zvp7yqqzay7pciyj87s83qfxrqyjpxn609";
};
buildInputs = [ rake makeWrapper ];

View file

@ -24,9 +24,10 @@ stdenv.mkDerivation {
wrapProgram $out/bin/meld --prefix PYTHONPATH : $PYTHONPATH:${pygtk}/lib/${python.libPrefix}/site-packages/gtk-2.0
'';
meta = {
meta = with stdenv.lib; {
description = "Visual diff and merge tool";
homepage = http://meld.sourceforge.net;
license = "GPLv2+";
platforms = platforms.linux;
};
}

View file

@ -4,11 +4,11 @@
stdenv.mkDerivation rec {
name = "i3-${version}";
version = "4.5.1";
version = "4.6";
src = fetchurl {
url = "http://i3wm.org/downloads/${name}.tar.bz2";
sha256 = "bae55f1c7c4a21d71aae182e4fab6038ba65ba4be5d1ceff9e269f4f74b823f2";
sha256 = "1qand44hjqz84f2xzd0mmyk9vpsm7iwz6446s4ivdj6f86213lpm";
};
buildInputs = [ which pkgconfig libxcb xcbutilkeysyms xcbutil xcbutilwm
@ -20,12 +20,21 @@ stdenv.mkDerivation rec {
configurePhase = "makeFlags=PREFIX=$out";
meta = {
description = "i3 is a tiling window manager";
homepage = "http://i3wm.org";
maintainers = [ stdenv.lib.maintainers.garbas ];
license = stdenv.lib.licenses.bsd3;
platforms = stdenv.lib.platforms.all;
meta = with stdenv.lib; {
description = "A tiling window manager";
homepage = "http://i3wm.org";
maintainers = with maintainers; [ garbas modulistic ];
license = licenses.bsd3;
platforms = platforms.all;
longDescription = ''
A tiling window manager primarily targeted at advanced users and
developers. Based on a tree as data structure, supports tiling,
stacking, and tabbing layouts, handled dynamically, as well as
floating windows. Configured via plain text file. Multi-monitor.
UTF-8 clean.
'';
};
}

View file

@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "xmonad-extras";
version = "0.11";
sha256 = "09r64z09mfdz86k7v5c6zds9ng0fjcp44kd8f5qg1sz40yblrny5";
version = "0.12";
sha256 = "1gyj9j6x21rvs6kg6g74wr0jdd36c5ml63a670456fhjr96s8y0g";
buildDepends = [
hint libmpd mtl network parsec random regexPosix split X11 xmonad
xmonadContrib

View file

@ -19,7 +19,8 @@ stdenv.mkDerivation {
];
nativeBuildInputs = [ pkgconfig intltool which ];
configureFlags = "--disable-scrollkeeper";
configureFlags = [ "--disable-scrollkeeper" "--disable-introspection"/*not useful AFAIK*/ ];
NIX_CFLAGS_COMPILE="-I${GConf}/include/gconf/2";
}

View file

@ -0,0 +1,50 @@
From a9d6a34708f846952f423d078397352858f7b1a4 Mon Sep 17 00:00:00 2001
From: Christian Persch <chpe@gnome.org>
Date: Sat, 12 May 2012 18:48:05 +0200
Subject: [PATCH] keymap: Treat ALT as META
https://bugzilla.gnome.org/show_bug.cgi?id=663779
---
src/vte.c | 23 ++++++++++++++---------
1 files changed, 14 insertions(+), 9 deletions(-)
diff --git a/src/vte.c b/src/vte.c
index dd27e9a..0657921 100644
--- a/src/vte.c
+++ b/src/vte.c
@@ -5170,19 +5170,24 @@ static void
vte_terminal_read_modifiers (VteTerminal *terminal,
GdkEvent *event)
{
+ GdkKeymap *keymap;
GdkModifierType modifiers;
/* Read the modifiers. */
- if (gdk_event_get_state((GdkEvent*)event, &modifiers)) {
- GdkKeymap *keymap;
-#if GTK_CHECK_VERSION (2, 90, 8)
- keymap = gdk_keymap_get_for_display(gdk_window_get_display(((GdkEventAny*)event)->window));
-#else
- keymap = gdk_keymap_get_for_display(gdk_drawable_get_display(((GdkEventAny*)event)->window));
+ if (!gdk_event_get_state((GdkEvent*)event, &modifiers))
+ return;
+
+ keymap = gdk_keymap_get_for_display(gdk_window_get_display(((GdkEventAny*)event)->window));
+
+ gdk_keymap_add_virtual_modifiers (keymap, &modifiers);
+
+#if 1
+ /* HACK! Treat ALT as META; see bug #663779. */
+ if (modifiers & GDK_MOD1_MASK)
+ modifiers |= VTE_META_MASK;
#endif
- gdk_keymap_add_virtual_modifiers (keymap, &modifiers);
- terminal->pvt->modifiers = modifiers;
- }
+
+ terminal->pvt->modifiers = modifiers;
}
/* Read and handle a keypress event. */
--
1.7.5.1.217.g4e3aa.dirty

View file

@ -2,16 +2,18 @@
, pythonSupport ? false, python, pygtk}:
stdenv.mkDerivation rec {
name = "vte-0.28.0";
name = "vte-0.28.2";
src = fetchurl {
url = "mirror://gnome/sources/vte/0.28/${name}.tar.bz2";
sha256 = "0blmblvjr35xajr0a07zcd58lk6x2hzympx17biw2mcym9kcarql";
sha256 = "00zrip28issgmz2cqk5k824cbqpbixi5x7k88zxksdqpnq1f414d";
};
patches = [ ./alt.patch ];
buildInputs = [ intltool pkgconfig glib gtk ncurses ] ++
stdenv.lib.optionals pythonSupport [python pygtk];
configureFlags = ''
${if pythonSupport then "--enable-python" else "--disable-python"}
'';

View file

@ -3,13 +3,13 @@
stdenv.mkDerivation rec {
versionMajor = "2.8";
versionMinor = "0";
versionMinor = "1";
moduleName = "at-spi2-atk";
name = "${moduleName}-${versionMajor}.${versionMinor}";
src = fetchurl {
url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
sha256 = "085sqww174vl3i9ccb477v706rkjs2d107rl96ma1kbl2jyar226";
sha256 = "01pxfnksixrjj27ivllpla54r6nkwsjj34acb0phmp76zna9nrgb";
};
buildInputs = [ python pkgconfig popt atk libX11 libICE xlibs.libXtst libXi

View file

@ -3,7 +3,8 @@
rec {
inherit (pkgs) fetchurl_gnome glib gtk3 atk pango;
gtk = gtk3;
orbit = pkgs.gnome2.ORBit2;
inherit (pkgs.gnome2) gnome_common ORBit2;
orbit = ORBit2;
inherit (lib) lowPrio hiPrio appendToName makeOverridable;
@ -11,7 +12,7 @@ rec {
#### Core (http://ftp.acc.umu.se/pub/GNOME/core/)
at_spi2_atk = lib.lowPrio (callPackage ./core/at-spi2-atk { });
at_spi2_atk = callPackage ./core/at-spi2-atk { };
at_spi2_core = callPackage ./core/at-spi2-core { };

View file

@ -1,5 +1,5 @@
{ stdenv, fetchurl, pkgconfig, python, libxml2Python, libxslt, which, libX11, gnome3
, intltool, gnome_doc_utils}:
, intltool, gnome_doc_utils }:
stdenv.mkDerivation rec {
@ -7,6 +7,8 @@ stdenv.mkDerivation rec {
minorVersion = "3";
name = "gnome-desktop-${majorVersion}.${minorVersion}";
enableParallelBuilding = true;
src = fetchurl {
url = "mirror://gnome/sources/gnome-desktop/${majorVersion}/${name}.tar.xz";
sha256 = "1nrqcp1p5cxhfjjy5hjpvkqmzsgl2353a08fg0b11c932v95bsba";

View file

@ -19,7 +19,8 @@ rec {
# Default meta attribute
defMeta = {
homepage = http://www.kde.org;
inherit (qt4.meta) platforms maintainers;
platforms = stdenv.lib.platforms.linux;
inherit (qt4.meta) maintainers;
};
# KDE package built from the whole tarball

View file

@ -23,7 +23,8 @@ let
meta = {
description = "KDE translation for ${lang}";
license = "GPL";
inherit (kdelibs.meta) maintainers platforms homepage;
platforms = stdenv.lib.platforms.linux;
inherit (kdelibs.meta) maintainers homepage;
};
};

View file

@ -0,0 +1,11 @@
{ kde, kdelibs, kactivities, qjson, pyqt4, sip, python, pykde4 }:
kde {
buildInputs = [ kdelibs kactivities qjson pyqt4 sip python pykde4];
meta = {
description = "Kate, the KDE Advanced Text Editor, as well as KWrite";
license = "GPLv2";
};
}

View file

@ -0,0 +1,11 @@
{ kde, kdelibs, kde_baseapps }:
kde {
buildInputs = [ kdelibs kde_baseapps ];
meta = {
description = "Konsole, the KDE terminal emulator";
license = "GPLv2";
};
}

View file

@ -0,0 +1,42 @@
{ callPackage, callPackageOrig, stdenv, qt48, release ? "4.11.0" }:
let
# Need callPackageOrig to avoid infinite cycle
kde = callPackageOrig ./kde-package {
inherit release ignoreList extraSubpkgs callPackage;
};
# The list of igored individual modules
ignoreList = {
# Doesn't work yet
kdeutils = [ "ksecrets" ];
# kdeadmin/strigi-analyzer has no real code
kdeadmin = [ "strigi-analyzer" ];
# Most of kdebindings do not compile due to a bug in the buildsystem
kdebindings = [ "kimono" "korundum" "kross-interpreters" "perlkde" "qyoto" ];
};
# Extra subpackages in the manifest format
extraSubpkgs = {};
in
kde.modules // kde.individual //
{
inherit (kde) manifest modules individual splittedModuleList;
akonadi = callPackage ./support/akonadi { };
qt4 = qt48;
kdebase_workspace = kde.modules.kde_workspace;
inherit release;
full = stdenv.lib.attrValues kde.modules;
l10n = callPackage ./l10n {
inherit release;
inherit (kde.manifest) stable;
};
}

View file

@ -0,0 +1,17 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3d3e247..f78db67 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,5 +1,10 @@
-find_package(KDE4 REQUIRED)
-include(KDE4Defaults)
+project(kde-wallpapers NONE)
+if( WALLPAPER_INSTALL_DIR )
+ message(STATUS "Installing wallpapers to user-supplied directory ${WALLPAPER_INSTALL_DIR}")
+else()
+ find_package(KDE4 REQUIRED)
+ include(KDE4Defaults)
+endif()
install(DIRECTORY Air DESTINATION ${WALLPAPER_INSTALL_DIR} PATTERN .svn EXCLUDE)

View file

@ -0,0 +1,12 @@
diff -ru -x '*~' kdelibs-4.6.90-orig/kdecore/auth/ConfigureChecks.cmake kdelibs-4.6.90/kdecore/auth/ConfigureChecks.cmake
--- kdelibs-4.6.90-orig/kdecore/auth/ConfigureChecks.cmake 2011-05-20 22:24:54.000000000 +0200
+++ kdelibs-4.6.90/kdecore/auth/ConfigureChecks.cmake 2011-07-12 14:03:00.000000000 +0200
@@ -139,7 +139,7 @@
${CMAKE_INSTALL_PREFIX} _KDE4_AUTH_POLICY_FILES_INSTALL_DIR
${POLKITQT-1_POLICY_FILES_INSTALL_DIR})
- set(KDE4_AUTH_POLICY_FILES_INSTALL_DIR ${_KDE4_AUTH_POLICY_FILES_INSTALL_DIR} CACHE STRING
+ set(KDE4_AUTH_POLICY_FILES_INSTALL_DIR "\${CMAKE_INSTALL_PREFIX}/share/polkit-1/actions" CACHE STRING
"Where policy files generated by KAuth will be installed" FORCE)
elseif(KDE4_AUTH_BACKEND_NAME STREQUAL "FAKE")
set (KAUTH_COMPILING_FAKE_BACKEND TRUE)

View file

@ -0,0 +1,9 @@
{ kde, kdelibs, nepomuk_core }:
kde {
propagatedBuildInputs = [ kdelibs nepomuk_core ];
meta = {
description = "KDE activities library and daemon";
};
}

View file

@ -0,0 +1,14 @@
{ kde, kdelibs }:
kde {
outputHashAlgo = "sha256";
outputHashMode = "recursive";
outputHash = "0mrd3w7rhsj0v92c8rh9zjxyifq7wyvwszksf2gyn53dzd06blk8";
buildInputs = [ kdelibs ];
meta = {
description = "KDE Base artwork";
license = "GPL";
};
}

View file

@ -0,0 +1,11 @@
{ kde, kdelibs, htmlTidy, kactivities
, nepomuk_core, nepomuk_widgets, libXt }:
kde {
buildInputs = [ kdelibs nepomuk_core nepomuk_widgets htmlTidy kactivities libXt ];
meta = {
description = "Base KDE applications, including the Dolphin file manager and Konqueror web browser";
license = "GPLv2";
};
}

View file

@ -0,0 +1,444 @@
{stable=true;
hashes=builtins.listToAttrs[
{name="amor";value="0xz73rnznng6nd8ax2s8yh5wmvlwlhy7qm2y0m15fxw8x9dyym2s";}
{name="analitza";value="1pvi6nsdh64pjmrq0xm6vjl2rdpllm8vizf5pxm64m3s225x11r8";}
{name="ark";value="152cilip6g0jvqvczv29kdnlghyra0qs9166g4py82w94f96h4a0";}
{name="audiocd-kio";value="1xly06zy2m7xg8b675y2l3xj2mixy739f65b6mciyz0240qlian5";}
{name="blinken";value="0kyrblhn4b46fcf2rkidkkvpvnirz1z866yp7mi3m9dnl9iqzk32";}
{name="bomber";value="1s9wkdz7mgmsr438ikjxc3qj810aw39kblwc2a0v21skhv9glx40";}
{name="bovo";value="1p4v5nvx6nfprpv5wm9ab25d0wklx0znf6257ssy97p9knj7lzf4";}
{name="cantor";value="00j2fwl2y93k3mwqmnl9ndcqdfmxl2r5nff920sjmylhplsrvzri";}
{name="cervisia";value="1gg53a5lcp2mlii285ys6d570wzjx7v5h3g0r1l3h146ipnddkpm";}
{name="dolphin-plugins";value="1cj0vajrpmi1imz3gg6has8bqm2hj2px0k2fda35lc0wb2h6vwip";}
{name="dragon";value="1gclq1v9a84aq9jbakc0fs0c4y7ykzf05vl0gkpjkijnnb5sr028";}
{name="ffmpegthumbs";value="04zarg373420mzdc4psziw173flpv1jc80xavq5qff4j8njjynw4";}
{name="filelight";value="1q7lsiq2xxvfs30i0l0ywvpzch0kd8blbg10r56p15wyyjc84h1d";}
{name="granatier";value="14zlk4y30kgbx69hb516dcva78xqk7yhi90f7yg327r5a72njwvv";}
{name="gwenview";value="0686bybi10vyz6yb2h5zi906d295rcd7wlgh87zjiw0p2rz5qd6b";}
{name="jovie";value="02b2jl3ip7y0sd4xscw8qmkmm646ksmlm0c3xwwcijwvdj1h3xsw";}
{name="juk";value="1wm0ngpsc62766l127nk38cg5vdhlqsh3gsl7alk2rcrgfainkhh";}
{name="kaccessible";value="0mixfx8f8097p2y7zqacawb64r8jzj6iqrkhh7xp9ldwrrnf8jr0";}
{name="kactivities";value="0s5l0h2axq43ip8a4wn9lqb7i6hvxzzpscr1wv9qm02g98h1kzc5";}
{name="kajongg";value="0g7cx3qjrhga37wp9wypwwhzsk4q4fy63qqbpzh7znc4kfiw3j56";}
{name="kalgebra";value="01vgg54sr7g3h7lk9cd3m739y317x680brnp858chqvi7jq9nw5i";}
{name="kalzium";value="1zbrq2jm7j9sjzxfl93kambv1n665ah57ljr16r5dqk0x3xchirn";}
{name="kamera";value="1bhmxij7fnzc26hv4fbglqm3fhi5jdd8bqxnyx91sjja34wr55l4";}
{name="kanagram";value="1hdv0ydklz8y8wh49drpmgc9hqkwp59zvwn39h67fsiig44k6jag";}
{name="kapman";value="024q8w4x1hy518qcl76nxgr6q8h3blkw9qfg9z6d899qa6zb6ihq";}
{name="kapptemplate";value="09xgy5wrqhxlgvk6yhdfvickqx4v4rqd0s9zda7mlj13yfphbq8k";}
{name="kate";value="1r8i3hiqfxs2idjkszkzzn5lpkpm5bzjprs9dv33gzfnnq7w6q54";}
{name="katomic";value="0g197ynk6pzwxhr3yw20jw16qd9664j35vsr7511jxyydadbnrx6";}
{name="kblackbox";value="1pv9f3vh7l25xlvxpvznjiw3va2ljcz2znc1qxy6ib907qfgnryv";}
{name="kblocks";value="0rahh2hra6k0f0z9sh906avznv6x451da6w62bn561hl1fsd3qmy";}
{name="kbounce";value="1h25lyga30fxrhrlagw51la3vl38h5qil6zrwr5j3n8agard6nxf";}
{name="kbreakout";value="09mq49ia5synl9k166k2zw7n4awv2jkv0c0cckfc1byfvyfp6hnq";}
{name="kbruch";value="1fmc1mi94c8dz20qlj8gva64qk8kwdy22frlx8mv049lpaslhnh9";}
{name="kcachegrind";value="0iqa5vd03b3ysms692yqk4wy0igmrzjg1jfyw5sapdch1fv4v5bq";}
{name="kcalc";value="0yy41pjy0ai47yl2q8ii74b1qqcrg79xan8m1pxlx1pn0pdqib5h";}
{name="kcharselect";value="0sbz5c3jkmh6vpb2zh1jmy1l5f37nwxvhn3a1gbzv20wf2a3mh4x";}
{name="kcolorchooser";value="11kjklvvxfg2drwc0gh3z14gh94d6yimswh4g0nrpb7ppny8h0hh";}
{name="kcron";value="0ydm9b9x38j4n2v6j144v1jkh91nblbfln0yyfshiig44lxfcg4y";}
{name="kdeartwork";value="17s40canzk0z6v4hr683l1xzmpld53lma6m2z7kb537ms4sjrim9";}
{name="kde-baseapps";value="06mavmk0v54lwma083w7wyr2374vdwblcbisqb6kr4fsqdng67yk";}
{name="kde-base-artwork";value="020j4hi6qmwkjipgf9840m1828bjlcy9vg3nmhrjxvj6wxbaijib";}
{name="kde-dev-scripts";value="1hscdf1qdg8kc8x2hp0mibp0k3lq255h8a1kj03b8bk0agrzycjr";}
{name="kde-dev-utils";value="05nlisn69r6p58340gaaa8ma1ndpafv69yrynln4nzsw5va6awiv";}
{name="kdegraphics-mobipocket";value="1f1x07yy0awz7bas0c189xqn1zrv4sz9fb2vlix1g9qbz4j7440v";}
{name="kdegraphics-strigi-analyzer";value="0sq5lmnlgz52znz5jlsd2dixfmiqb6cmwrf6x9pw1px5i76gc63m";}
{name="kdegraphics-thumbnailers";value="09bmhxxr53p4szqln8s5pz4yfacyn8drq4p7ffsmp7crhjfjxad3";}
{name="kdelibs";value="0q7gzfzkdy8vi56v7xkq79ib3d3x22mi9prc5lkqzq3w9f08xnim";}
{name="kdenetwork-filesharing";value="11sc6jxnjl3i5wncc6jpif9d8c6dha3r96qjm5l2afg3g945kjq0";}
{name="kdenetwork-strigi-analyzers";value="125vk7y2yjni5bwgld47fg9ms0fksd2mwgpzlmbalcz5a05pwxqr";}
{name="kdepim";value="017005mndsg69pfvwn24mdbw0cjny7i3hhvc9102hwv7vn3b38c9";}
{name="kdepimlibs";value="0q5g626n6117ri11inyr29lnzirpm8ls68h72m8gy7jbbhpsy2h9";}
{name="kdepim-runtime";value="17yjsyyn7hp24r1nx4aggcfjkpw8nyb7lzpp21nf61fb26gdk0m9";}
{name="kdeplasma-addons";value="174770q0jgx7h61z48322aqvzprnfyfb1yipv2v725r79wpl8knc";}
{name="kde-runtime";value="0yafj2mxqp26zsg3kh1s0vw77wx0l9468jh1g0wkl1hbwxjlszp7";}
{name="kdesdk-kioslaves";value="00prg3pblgil86way9air9sl01gfrag8ika96nv8i5qhv0fs5x3n";}
{name="kdesdk-strigi-analyzers";value="08rpclbv0csrciqh688akfzh36wy2nc60gsbqfrwrmz82cn0rgyp";}
{name="kdesdk-thumbnailers";value="1zx6g94vixk7id1zb7a4f6x4ymkfm4n6g6j2akklzwnba1nqadjx";}
{name="kde-wallpapers";value="0km2zpgy4qpqlvnbnbfnklal900idf85xls9h3dn57qckrvscs7n";}
{name="kdewebdev";value="1pzph18gw47gy7yfmzcmz7hx35wgsdgc7z7h50p15irrfqd9vxvz";}
{name="kde-workspace";value="0wdnnwvzd8djysims0sflban0vvf4rjl5xy9cfxl5c61kgf31zvy";}
{name="kdf";value="0znmsv5cpxciqx1pksicpchfqk25damz4zrhsh8fl1y41wr5i0g7";}
{name="kdiamond";value="13pz413fvwz74jhvyfvn3l18p5asin2l8r39mqvrp5izz876lrxs";}
{name="kdnssd";value="1my59awfn0h67aza1wym7cdlbffm22hf1dma80k4kqwrcws433q7";}
{name="kfloppy";value="0aglds7n33pk19qmq26xdr2bmfn3hv80zd479a3czlh0yn0wl0lb";}
{name="kfourinline";value="0mbggqssizcsrddi2nb93hwyf9wa6lnqmyswia5bp6803diw0iyr";}
{name="kgamma";value="0fwgk3jq5x5fp36jp1yvid69pzqdaac7p8xyd7qwa0m2zz2mbddy";}
{name="kgeography";value="0hya5wqigyahl24cmm1ssi5xc6pv8d6hvrd5z4s185pd5i2syfyf";}
{name="kget";value="0pnnfizq6xmv3bmpdvqf12pnr1rlbzpdn05c71cl0200frd0samd";}
{name="kgoldrunner";value="1s2847rhl1r35a3sjh10yadg7qjs4qycv2j2yc4k6yvh226wixzn";}
{name="kgpg";value="1hsa5z4igqn5fd9rnjmm80k6mylf3zyg6ss0m66j96f1r1hc7y9g";}
{name="khangman";value="0myjlfm1bws6g8a6r27n4cfdiz6vsii7wk03dhc25a63mbw30lq2";}
{name="kig";value="1w0i2q6vvy310ffsc87dahbxx2pv0alsv36wcz5j41a0c0q1lnnq";}
{name="kigo";value="026dwwakci2xsxzr05k9wdfn8k22sd0f2qd2hjpjf3nd3306q2m7";}
{name="killbots";value="1acn16i1k9il6qflw5kbmwgrdhgf59ziqv0dsdj541wp06v9syzf";}
{name="kimono";value="0vws62kw7n6xy4sgyn2w1a1ysfb7g3l730rfvcgdcch1v5k5w6sx";}
{name="kiriki";value="0jz9rsmvyb3yqnxpb0fr8nxqcbb55ah4gg75mphxvagfak6180x8";}
{name="kiten";value="1vvpd63783lzwb1ixchxzcnv4dwhdfdqvgf6ambxiabdhwzzhrfp";}
{name="kjumpingcube";value="0czsirg9r8kngy8y21ds491mdqcysn7c5yravrbvv399j71fgcl7";}
{name="klettres";value="0b7zd1f9a3b2d3r4wx03b3gclbnxyxl8sdq4mkrmvxlbv6is4w41";}
{name="klickety";value="00yzd79lm7rlfc96cg0asvj3zy1bwb4d0qx2sarf0ny1sbs05d52";}
{name="klines";value="1qvjhb88vzymy8c75azhchqxp21iwvbhxiq0mzzb4wg513qz9b1w";}
{name="kmag";value="0p7k9w93zyl6ffjwydjfm9pps4irrgdcjf9ksbzm5r41ayj1x3nh";}
{name="kmahjongg";value="0wz4lvy4gzix5c5viwcfxqvv43n65151wfz9jay09227f5qfqz1w";}
{name="kmines";value="0gsyhmzcj3579bscdlzyp3y1lsxgk7fz6s8gzs36pb1d7cll30i1";}
{name="kmix";value="1h5z508yy0y39p5dhmz4lvq2fsl1y9hiqgm0m3xk6js1ysz5cp0w";}
{name="kmousetool";value="1p57b4s87hw5rhj3d1m9qaw8r0wx4x7brc9ksizxyjfm90q8hj00";}
{name="kmouth";value="1bmmv8w6w9z9dnmm8bwai8wvj1cz3nbibd9qilv0wzy8f9x8z2n2";}
{name="kmplot";value="037n51fvpj8r4fz98f1f1jm9pzmlpbcn428cq8kn2p6ahy9g0zhn";}
{name="knavalbattle";value="1i128qa95zi0fz6bkkkc0qic630c4n6r24bnc73wp38kkklj1mfm";}
{name="knetwalk";value="1yfflp2yndjv0fawahiqq33x9ivv0r5dxivhy38p1xx3bw7aa3qg";}
{name="kolf";value="0cfi9mfj1ng7p6vqckjpx4hvzs4cqkiy0wk0c32gyzm3w76ggdsk";}
{name="kollision";value="17hzzp4pwl46skf7n2aapxc1wbihxvb8p6z5ch7315d967fbw1iy";}
{name="kolourpaint";value="1mvqicbjmbyx7wmw8l8gsfci2x0mg7c7csfbib09p6l5ypr0w5an";}
{name="kompare";value="1s5yb2jk6dgsaciwklil43vc3zpr70sarakray0jz22w8sbp00l4";}
{name="konquest";value="0v9icbn3pam8w6akz8sk4qpmq8447l9d692877yz9a0wbd4kc3yk";}
{name="konsole";value="07pikjzjn824xvjjszvczwwg2alj8qqr7ajy0c7wa9w711hqj654";}
{name="kopete";value="114g0pl67vdacxfcnpnhzmy9aarmjm1j6iy6jxc1v3ahrmv7iy1q";}
{name="korundum";value="07s4y585a2x6wg9m8hfwhxixbp03aa8z4f7cyk7i7fgvhy32s4wh";}
{name="kpat";value="1dqbhn3lypjfnhn4i6212g3spdihp0j12vgkxwf0pii79dwk1lih";}
{name="kppp";value="1qk2hvpi72w10gyipw3dcsmkqlg5shvr943rxhkjpx7vp327gcii";}
{name="krdc";value="0ikb0bmcq8zpmhr2jbyg40ihjzvi1zfkhcf6y76yjsifzx5nkxaj";}
{name="kremotecontrol";value="03mwsl79ljd6zni1ijxbrhl4pm7l52dxdjr5456avx6pbp7rq8j7";}
{name="kreversi";value="0r66kj0lanj54ajk1fdn6kijsq412gknva3i29wsvy0hlg18lwgf";}
{name="krfb";value="096a61zv76nyqkh9cdzjbgy62g3vi9a7xiwkx0mw63jpfag5sqws";}
{name="kross-interpreters";value="0x12cl1hnj9rfasivs3j1m15lr5pmh65bm2dghcypzffs1h4m17h";}
{name="kruler";value="0cv3qrs20qckx3d4y0a5ciy6n3hnlxhi20ln9m6szk5nrqwwf8hv";}
{name="ksaneplugin";value="02kdbnalq6jfkvcj0dmiyp6hijm8jjl1wl4fxd0kky0wdpj25mqw";}
{name="kscd";value="1dmmjzphxy00yynvmb238s60c0xjb9arcyjnynm1pyz8gwbjv370";}
{name="kshisen";value="1rildx85ajl14j7qhkwfv3ddyai2m3d2mf6d4i6hd4f6hi01y6lc";}
{name="ksirk";value="1rzihjagj78lxyprhzrixk129wgn6v9zacbh5ash6mfgmvpp28fq";}
{name="ksnakeduel";value="0fi32y79gjnajswwb5ldkyk0aap1cbdb7i6wdaskpwjh7m9xgbqj";}
{name="ksnapshot";value="162rbwlg16b0lq436rsmdaljrp4na0c7hsviw8mv989ylm7k78g5";}
{name="kspaceduel";value="1k228vhlv1fglp4572w7li3dvz1inn9x08rqfm167qisz7lz9gk0";}
{name="ksquares";value="0i0gw2dq657p3nnlp7billnwlz0jynb01bd3alis9b0y7fzr8141";}
{name="kstars";value="1hlv4x43asrz0kha7sypw073zpnb0z1mmwxqsjm7rdb3fzr664ca";}
{name="ksudoku";value="1ym6q32jlh55q4af622mq2x4q7ir61h54y03i1cwwl0n536jarw3";}
{name="ksystemlog";value="1lipz5ijw90zifvcj8j5cbm5myn3j31v0faik352dy552zbc69ld";}
{name="kteatime";value="0nkfshr4gh71yvb4fn3zv99mj8ywq98fmzl41pc8g7zb78c56min";}
{name="ktimer";value="0bfyhxcnz4cll3al5sqjiilhhy0wckvnsxl1j9v9cl6fj0yclccx";}
{name="ktouch";value="0j2qxh2r1pasa86zakil9hbw0vb39qgwcmkjkds4mgd1rdx3z063";}
{name="ktuberling";value="0imb0djrsi3b8aasyycalv7b6r42879053h9r89bq0vr7frshza5";}
{name="kturtle";value="04739cjbc8hnhjmccamiim3nhm09jpd5398ckwbqa7z1jrnrfglx";}
{name="ktux";value="1dkcca00s2cxr9kimqm8vlar0d47184ba0miihipgi7p752sik5a";}
{name="kubrick";value="1f1sfr1w66b3i4pi7b8y3wbks5l2dxij4azx8dzracanfraymhs6";}
{name="kuser";value="1r1ysz52w7v8nhl4qj9b4aybb7q45qav9yyzdqxjlz3ixvvvyndy";}
{name="kwallet";value="0a5009qx820nfbdhcmwvzbda3bvdmjzbi9i5d05rkcbmxz7l3i7v";}
{name="kwordquiz";value="11rhwmzn93gilwlgjmh64pbmmkxf4nxjn3sg8plxnvfnjl27dlwr";}
{name="libkcddb";value="0jkblif31r3raykhl69c9mjircsdwrbmzdjks7ngwacyfng2ys7l";}
{name="libkcompactdisc";value="1c6g1q543siyk8m81bvxca4qv6pnfjxcmv5mgpnqsv5lbi0k0dil";}
{name="libkdcraw";value="1bi0ayf6sg93hx30k5yvblv3jfs8ba6sva7fig1xwag2a1dmpbms";}
{name="libkdeedu";value="080mmb6spbr9gyz16n92jai8hv13kxjqgnid8qmgzvrkl9dr5zpi";}
{name="libkdegames";value="07324rsyqszsjgpybpr7kpvfpkmg61c4yaaajfr0sbj5a0flypn9";}
{name="libkexiv2";value="0rpqj634vxffz1498m2vbjhndc3xha06b4w79wv9qlqgcsaglr9c";}
{name="libkipi";value="0har58a6ir3cywsl289avblpqlc67ghv6bhli79nhplblycaf56k";}
{name="libkmahjongg";value="1xz4x96l0cim2mcjk9ndikzb0p53i6nximmiwji5ysk9k9ijz8l2";}
{name="libksane";value="1wydrqjfczb6c37vpzzavqk4n4fxlg7xfxm3qmg90973z9mhndql";}
{name="lokalize";value="0ikcq18jsnk9iqf1636c1llbs43dcbv6pnanydsd8m7pp2x8wd77";}
{name="lskat";value="0ld93jvy7w6zy3jifwhb2cvm4qrylknbkgknhxcycq7vxxi1nd1r";}
{name="marble";value="0l32r5hbqzyvx85xzvphkyv8fz0ar9l6yyql01y54p9q7g2i0wvy";}
{name="mplayerthumbs";value="022n2mi1mkc6isc06b1w7q10k4qxgmvjdg9inysqnyw25zgzqbk0";}
{name="nepomuk-core";value="1a08gv05lql1jkkng655k8n4y9bxivaq3j6i9np901calr6q7vq6";}
{name="nepomuk-widgets";value="12pfyi4y64p0xs62ax18mbkwf9gd4gn0zsih338ryf2zdpw806c9";}
{name="okteta";value="0pg9i7ywcp377brrprl93ayxjjizdmyzgw6fx3zmry7amf45dw1z";}
{name="okular";value="1kgkvzfwcqc9v18qgm9vm36v9svasdwyqgbn70nxmwr7rmkvzpsy";}
{name="oxygen-icons";value="1m0mha40zg03jy2nvw1cnsi9li8kb84hq3mdr2839jd0qwf06rcs";}
{name="pairs";value="0scqagvvp0aaa5gknl5rlfv49r289mgrf5ll0sqbb7w2ga1z71kf";}
{name="palapeli";value="1qw6cn7qa5p918x5hhl45c17firyrj3llghd808k9jn0azffkn2k";}
{name="parley";value="191ql9jc7pib36ndrn3dyz7h0zqa1a5z06vcppcy56adw395khga";}
{name="perlkde";value="0x9pf8hjlnii6kh6jrli8p1glqmnly8ck5f0a9jllx5ylc2v7xgy";}
{name="perlqt";value="01wwnpkr0rafmp4lqggpnnzan4abgcbdkf49dzvzf202ksyc7i4s";}
{name="picmi";value="1x0gx8spda3m4d8gp3dw4wrjq9plya17x945dd3xww5jb537k9jg";}
{name="poxml";value="1icgyilfyv3kfgqnx81c0xfdjklx8rr8xhllqlgh5gpr109ib0v3";}
{name="print-manager";value="1bxkf7lfg2bvqy655zd22p1zsj68zyw95kl1xgk2fsbv4p4d4s46";}
{name="pykde4";value="0x2zx012n3ng7cnbwv6mjjy7d5cpxj0xicnnp5xpd7cqmi2v4k8x";}
{name="qtruby";value="0vbhfynyc0bffr76iz2jfxn15l1nv95g8y7lr9iy32ha84bmc5g3";}
{name="qyoto";value="0r8q9hwinac1bk0mvym60s9fwx7ahdsc80mk2a7i9bns5fpd30x8";}
{name="rocs";value="16kk54yqpx94cvhkmxvclzkz5w3lfrvcy3mvhyqb0czsknv7hmgm";}
{name="smokegen";value="0v1adb6qfmdpvw4yimq8dlxw8zsdbjdw0viwvlxbmvaf4an5kd3y";}
{name="smokekde";value="00rw321lcm0by0p8ij60kylg56nrpi0y3j0xj2ss10k9cr13cgwd";}
{name="smokeqt";value="116avrlmy7k3ihc176rjl81jlzcp9jlpym1j2cziyxpzygki77ip";}
{name="step";value="16vzcw16hqifhmscvhdrww0ykcim8bw271xbqb2g75rf2dcl1zvf";}
{name="superkaramba";value="1fx5qwmd6md2x8zxn8xqnildrcxpwlrxbqmi2ia4qm7ivngpdsy4";}
{name="svgpart";value="0az94772zvzsikm3imdaq7a22c1gfpn0yv2alc5nk85sa7yl3jzc";}
{name="sweeper";value="18nwfrjpdczrmm5ckr64vgznz0nfj53lbwafwyzabp1d2wbvp1r8";}
{name="umbrello";value="09pg5xng1mgfvna5kdl4wbfc38b4wrswfl48kdmskjk640p854z7";}
];
modules=[
{
module="kdemultimedia";
split=true;
pkgs=[
{ name="audiocd-kio"; sane="audiocd_kio"; }
{ name="dragon"; }
{ name="ffmpegthumbs"; }
{ name="juk"; }
{ name="kmix"; }
{ name="kscd"; }
{ name="libkcddb"; }
{ name="libkcompactdisc"; }
{ name="mplayerthumbs"; }
];
}
{
module="kdegraphics";
split=true;
pkgs=[
{ name="gwenview"; }
{ name="kamera"; }
{ name="kcolorchooser"; }
{ name="kdegraphics-mobipocket"; sane="kdegraphics_mobipocket"; }
{ name="kdegraphics-strigi-analyzer"; sane="kdegraphics_strigi_analyzer"; }
{ name="kdegraphics-thumbnailers"; sane="kdegraphics_thumbnailers"; }
{ name="kgamma"; }
{ name="kolourpaint"; }
{ name="kruler"; }
{ name="ksaneplugin"; }
{ name="ksnapshot"; }
{ name="libkdcraw"; }
{ name="libkexiv2"; }
{ name="libkipi"; }
{ name="libksane"; }
{ name="okular"; }
{ name="svgpart"; }
];
}
{
module="kdelibs";
split=true;
pkgs=[
{ name="kdelibs"; }
{ name="nepomuk-core"; sane="nepomuk_core"; }
{ name="nepomuk-widgets"; sane="nepomuk_widgets"; }
];
}
{
module="kdenetwork";
split=true;
pkgs=[
{ name="kdenetwork-filesharing"; sane="kdenetwork_filesharing"; }
{ name="kdenetwork-strigi-analyzers"; sane="kdenetwork_strigi_analyzers"; }
{ name="kdnssd"; }
{ name="kget"; }
{ name="kopete"; }
{ name="kppp"; }
{ name="krdc"; }
{ name="krfb"; }
];
}
{
module="kdeutils";
split=true;
pkgs=[
{ name="ark"; }
{ name="filelight"; }
{ name="kcalc"; }
{ name="kcharselect"; }
{ name="kdf"; }
{ name="kfloppy"; }
{ name="kgpg"; }
{ name="kremotecontrol"; }
{ name="ktimer"; }
{ name="kwallet"; }
{ name="print-manager"; sane="print_manager"; }
{ name="superkaramba"; }
{ name="sweeper"; }
];
}
{
module="applications";
split=true;
pkgs=[
{ name="kate"; }
{ name="konsole"; }
];
}
{
module="kdetoys";
split=true;
pkgs=[
{ name="amor"; }
{ name="kteatime"; }
{ name="ktux"; }
];
}
{
module="kdesdk";
split=true;
pkgs=[
{ name="cervisia"; }
{ name="dolphin-plugins"; sane="dolphin_plugins"; }
{ name="kapptemplate"; }
{ name="kcachegrind"; }
{ name="kde-dev-scripts"; sane="kde_dev_scripts"; }
{ name="kde-dev-utils"; sane="kde_dev_utils"; }
{ name="kdesdk-kioslaves"; sane="kdesdk_kioslaves"; }
{ name="kdesdk-strigi-analyzers"; sane="kdesdk_strigi_analyzers"; }
{ name="kdesdk-thumbnailers"; sane="kdesdk_thumbnailers"; }
{ name="kompare"; }
{ name="lokalize"; }
{ name="okteta"; }
{ name="poxml"; }
{ name="umbrello"; }
];
}
{
module="kdegames";
split=true;
pkgs=[
{ name="bomber"; }
{ name="bovo"; }
{ name="granatier"; }
{ name="kajongg"; }
{ name="kapman"; }
{ name="katomic"; }
{ name="kblackbox"; }
{ name="kblocks"; }
{ name="kbounce"; }
{ name="kbreakout"; }
{ name="kdiamond"; }
{ name="kfourinline"; }
{ name="kgoldrunner"; }
{ name="kigo"; }
{ name="killbots"; }
{ name="kiriki"; }
{ name="kjumpingcube"; }
{ name="klickety"; }
{ name="klines"; }
{ name="kmahjongg"; }
{ name="kmines"; }
{ name="knavalbattle"; }
{ name="knetwalk"; }
{ name="kolf"; }
{ name="kollision"; }
{ name="konquest"; }
{ name="kpat"; }
{ name="kreversi"; }
{ name="kshisen"; }
{ name="ksirk"; }
{ name="ksnakeduel"; }
{ name="kspaceduel"; }
{ name="ksquares"; }
{ name="ksudoku"; }
{ name="ktuberling"; }
{ name="kubrick"; }
{ name="libkdegames"; }
{ name="libkmahjongg"; }
{ name="lskat"; }
{ name="palapeli"; }
{ name="picmi"; }
];
}
{
module="kdeedu";
split=true;
pkgs=[
{ name="analitza"; }
{ name="blinken"; }
{ name="cantor"; }
{ name="kalgebra"; }
{ name="kalzium"; }
{ name="kanagram"; }
{ name="kbruch"; }
{ name="kgeography"; }
{ name="khangman"; }
{ name="kig"; }
{ name="kiten"; }
{ name="klettres"; }
{ name="kmplot"; }
{ name="kstars"; }
{ name="ktouch"; }
{ name="kturtle"; }
{ name="kwordquiz"; }
{ name="libkdeedu"; }
{ name="marble"; }
{ name="pairs"; }
{ name="parley"; }
{ name="rocs"; }
{ name="step"; }
];
}
{
module="kdeadmin";
split=true;
pkgs=[
{ name="kcron"; }
{ name="ksystemlog"; }
{ name="kuser"; }
];
}
{
module="kdebindings";
split=true;
pkgs=[
{ name="kimono"; }
{ name="korundum"; }
{ name="kross-interpreters"; sane="kross_interpreters"; }
{ name="perlkde"; }
{ name="perlqt"; }
{ name="pykde4"; }
{ name="qtruby"; }
{ name="qyoto"; }
{ name="smokegen"; }
{ name="smokekde"; }
{ name="smokeqt"; }
];
}
{
module="kdeaccessibility";
split=true;
pkgs=[
{ name="jovie"; }
{ name="kaccessible"; }
{ name="kmag"; }
{ name="kmousetool"; }
{ name="kmouth"; }
];
}
{
module="kde-baseapps";
sane="kde_baseapps"; split=true;
pkgs=[
{ name="kde-baseapps"; sane="kde_baseapps"; }
];
}
{ module="kactivities"; split=false;}
{ module="kdeartwork"; split=false;
pkgs=[
{ name="ColorSchemes"; }
{ name="IconThemes"; }
{ name="emoticons"; }
{ name="kscreensaver"; }
{ name="kwin-styles"; sane="kwin_styles";}
{ name="sounds"; }
{ name="styles"; }
{ name="wallpapers"; }
{ name="HighResolutionWallpapers"; }
{ name="WeatherWallpapers"; }
{ name="desktopthemes"; }
];
}
{ module="kde-base-artwork"; sane="kde_base_artwork"; split=false;}
{ module="kdelibs"; split=false;}
{ module="kdepim"; split=false;}
{ module="kdepimlibs"; split=false;}
{ module="kdepim-runtime"; sane="kdepim_runtime"; split=false;}
{ module="kdeplasma-addons"; sane="kdeplasma_addons"; split=false;}
{ module="kde-runtime"; sane="kde_runtime"; split=false;}
{ module="kde-wallpapers"; sane="kde_wallpapers"; split=false;}
{ module="kdewebdev"; split=false;
pkgs=[
{ name="klinkstatus"; }
{ name="kfilereplace"; }
{ name="kimagemapeditor"; }
{ name="kommander"; }
];
}
{ module="kde-workspace"; sane="kde_workspace"; split=false;}
{ module="oxygen-icons"; sane="oxygen_icons"; split=false;}
];
}

View file

@ -0,0 +1,128 @@
{ callPackage, runCommand, stdenv, fetchurl, qt4, cmake, automoc4
, release, ignoreList, extraSubpkgs
}:
let
inherit (stdenv.lib) filter fold;
inherit (builtins) getAttr hasAttr remoteAttrs listToAttrs tail head;
in
rec {
manifest = import (./. + "/${release}.nix");
# src attribute for $name tarball
kdesrc = name: fetchurl {
url = "mirror://kde/" + (if manifest.stable then "" else "un")
+ "stable/${release}/src/${name}-${release}.tar.xz";
sha256 = getAttr name manifest.hashes;
};
# Default meta attribute
defMeta = {
homepage = http://www.kde.org;
platforms = stdenv.lib.platforms.linux;
inherit (qt4.meta) maintainers;
};
# KDE package built from the whole tarball
# This function is used both for monolithic modules and modules which are
# released as individual tarballs
kdeMonoPkg = name: let n_ = name; in a@{meta, name ? n_, ...}:
stdenv.mkDerivation ({
name = "${name}-${release}";
src = kdesrc name;
meta = defMeta // meta;
enableParallelBuilding = true;
} // (removeAttrs a [ "meta" "name" ]));
# kdeMonoPkg wrapper for modules splitted upstream compatible with combinePkgs
# API.
kdeSplittedPkg = module: {name, sane ? name}: kdeMonoPkg name;
# Build subdirectory ${subdir} of tarball ${module}-${release}.tar.xz
kdeSubdirPkg = module:
{name, subdir ? name, sane ? name}:
let name_ = name; in
a@{cmakeFlags ? [], name ? name_, meta ? {}, ...}:
stdenv.mkDerivation ({
name = "${name}-${release}";
src = kdesrc module;
cmakeFlags =
[ "-DDISABLE_ALL_OPTIONAL_SUBDIRECTORIES=TRUE"
"-DBUILD_doc=TRUE"
"-DBUILD_${subdir}=TRUE"
] ++ cmakeFlags;
meta = defMeta // meta;
enableParallelBuilding = module.enableParallelBuilding or true;
} // (removeAttrs a [ "meta" "name" "cmakeFlags" ]));
# A KDE monolithic module
kdeMonoModule = name: path: callPackage path { kde = kdeMonoPkg name; };
# Combine packages in one module.
# Arguments:
# * pkgFun --- a function of the following signature:
# module: manifest_attrs: manual_attrs: derivation;
# * module --- name of the module
# * pkgs --- list of packages in manifest format
combinePkgs = pkgFun: module: pkgs:
let
f = p@{name, ...}:
callPackage (./.. + "/${module}/${name}.nix") { kde = pkgFun module p; };
list = map f pkgs;
attrs = listToAttrs (map
({name, sane ? name, ...}@p: { name = sane; value = f p; })
pkgs);
in
runCommand "${module}-${release}"
({passthru = attrs // {
propagatedUserEnvPackages = list;
projects = attrs;
};})
''
mkdir -pv $out/nix-support
echo "${toString list}" | tee $out/nix-support/propagated-user-env-packages
'';
# Given manifest module data, return the module
kdeModule = { module, sane ? module, split, pkgs ? [] }:
let
pkgs_ = filterPkgs module pkgs;
in
# Module is splitted by upstream
if split then combinePkgs kdeSplittedPkg module pkgs_
# Monolithic module
else if pkgs == [] then kdeMonoModule module (./.. + "/${module}.nix")
# Module is splitted by us
else combinePkgs kdeSubdirPkg module pkgs_;
# The same, as nameValuePair with sane name
kdeModuleNV = a@{ module, sane ? module, ... }:
{ name = sane; value = kdeModule a; };
filterPkgs = module: (p:
removeNames (stdenv.lib.attrByPath [module] [] ignoreList) p
++ (stdenv.lib.attrByPath [module] [] extraSubpkgs));
# Remove attrsets with x.name in subst. Optimized for empty subst.
removeNames = subst: big:
fold (s: out: filter (x: x.name != s) out) big subst;
modules = listToAttrs (map kdeModuleNV manifest.modules);
splittedModuleList =
let
splitted = filter (a: a ? pkgs) manifest.modules;
names = map ({module, sane ? module, ...}: sane) splitted;
in
map (m: m.projects) (stdenv.lib.attrVals names modules);
individual =
stdenv.lib.zipAttrsWith
(
name: list:
if tail list == []
then head list
else abort "Multiple modules define ${name}"
)
splittedModuleList;
}

View file

@ -0,0 +1,146 @@
#! /bin/sh
# Usage: download kde release to $dir, then run
# $0 $dir
dir="$1"
# Detect release number & whether it is a stable release
if [[ ! -d "${dir}" ]]; then
echo "${dir} is not a directory (or doesn't exist)!" >&2
exit 1
fi
release=$(ls "${dir}"/kdelibs-*.tar.xz | \
sed -e 's/.*kdelibs-//' -e 's/\.tar\.xz//')
if [[ ${release##*.} -gt 50 ]]; then
stable="false"
else
stable="true"
fi
echo "Detected release ${release}" >&2
declare -A hash
declare -A modules
declare -a packages
declare -a top_level
# xsltproc output declares -A module
if [[ ! -f kde_projects.xml ]]; then
curl -O -J http://projects.kde.org/kde_projects.xml
fi
eval `xsltproc kde-submodules.xslt kde_projects.xml`
module[kde-baseapps]=kde-baseapps
unset module[kactivities]
print_sane() {
echo "Called print_sane $1" >&2
sane="${1//[^a-z0-9_]/_}"
if [[ "$sane" != "$1" ]]; then
echo "Sane version is $sane" >&2
echo -n "sane=\"$sane\";"
fi
}
for i in `cd "${dir}"; ls *-${release}.tar.xz`; do
package=${i%-${release}.tar.xz}
packages+=( "$package" )
echo -n "${package}.. " >&2
hash[$package]=$(nix-hash --type sha256 --flat --base32 "${dir}/${i}")
echo -n ${hash[$package]} >&2
if [ -n "${module[$package]}" ]; then
m="${module[$package]}"
echo " (${m})" >&2
modules[$m]=1
else
top_level+=( "$package" )
echo " (top-level)" >&2
fi
#nix-store --add-fixed sha256 "${dir}/${i}" >&2
done
print_pkg_hash() {
echo " {name=\"${1}\";value=\"${hash[$1]}\";}"
}
print_hashes(){
echo "hashes=builtins.listToAttrs["
for p in "${packages[@]}"; do print_pkg_hash "$p"; done
echo "];"
}
print_split_module(){
echo -n "$1:" >&2
echo -e "{\n module=\"$1\";"
print_sane "$1"
echo " split=true;"
echo " pkgs=["
for p in "${packages[@]}"; do
if [[ "${module[$p]}" == "$1" ]]; then
echo -n " { name=\"$p\"; "
print_sane "$p"
echo " }"
echo -n " $p" >&2
fi
done
echo " ];"
echo "}"
echo >&2
}
print_mono_module(){
echo -en "{ module=\"$1\"; "
print_sane "$1"
echo -n "$1 ... " >&2
echo -n " split=false;"
cml="$1-$release/CMakeLists.txt"
tar -xf "${dir}/$1-${release}.tar.xz" "$cml"
if grep '^[^#]*add_subdirectory' $cml >/dev/null; then
if grep '^[^#]*add_subdirectory' $cml | grep -v macro_optional_add_subdirectory >/dev/null; then
echo " is monolithic (has unconditionally added subdirs)" >&2
else
subdirs=( `grep '^[^#]*add_subdirectory' $cml |
sed -e 's/[^#]*add_subdirectory *( *\(.*\) *)/\1/' |
grep -v '\(doc\|cmake\)'` )
echo " seems splittable, subdirs: ${subdirs[*]}" >&2
echo -e "\n pkgs=["
for s in "${subdirs[@]}"; do
echo -en " {"
echo -n " name=\"${s//\//-}\"; "
print_sane "$s"
if [[ $s != "${s//\//-}" ]]; then
echo -n "subdir=\"$s\"; "
fi
echo "}"
done
echo -e " ];\n"
fi
else
echo " is monolithic (has no subdirs)" >&2
fi
rm $cml
rmdir $1-$release
echo "}"
}
print_modules(){
echo "modules=["
echo "Printing modules splitted by upstream" >&2
for m in "${!modules[@]}"; do print_split_module "$m"; done
echo >&2
echo "Printing modules not splitted by upstream (${top_level[*]})" >&2
for m in "${top_level[@]}"; do print_mono_module "$m"; done
echo "];"
}
echo "Writing ${release}.nix" >&2
exec > "${release}.nix"
echo "{stable=${stable};"
print_hashes
print_modules
echo "}"

View file

@ -0,0 +1,23 @@
{ kde, kdelibs, bzip2, libssh, exiv2, attica, qca2
, libcanberra, virtuoso, samba, libjpeg, ntrack, pkgconfig, xz, pulseaudio
, networkmanager, kactivities, kdepimlibs, openexr, ilmbase
}:
kde {
buildInputs = [
kdelibs attica xz bzip2 libssh libjpeg exiv2 ntrack
qca2 samba libcanberra pulseaudio
networkmanager kactivities kdepimlibs openexr
#todo: add openslp
];
nativeBuildInputs = [ pkgconfig ];
NIX_CFLAGS_COMPILE = "-I${ilmbase}/include/OpenEXR";
passthru.propagatedUserEnvPackages = [ virtuoso ];
meta = {
license = "LGPL";
};
}

View file

@ -0,0 +1,17 @@
{ kde, cmake }:
kde {
nativeBuildInputs = [ cmake ];
patches = [ ./files/kde-wallpapers-buildsystem.patch ];
cmakeFlags = "-DWALLPAPER_INSTALL_DIR=share/wallpapers";
outputHashAlgo = "sha256";
outputHashMode = "recursive";
outputHash = "07jwbxp4gdxkvxdasbzbv00l3kqrjph4d8dlbyxgryf12waykcmm";
meta = {
description = "Wallpapers for KDE";
};
}

View file

@ -0,0 +1,39 @@
{ kde, kdelibs, qimageblitz, libdbusmenu_qt, xorg, lm_sensors
, pciutils, libraw1394, libusb1, python, libqalculate, akonadi
, xkeyboard_config, kdepimlibs, pam, boost, gpsd, prison
, libjpeg, pkgconfig, kactivities, qjson, udev
}:
kde {
#todo: wayland, consolekit, xmms, opengles, libusb isn't found
buildInputs =
[ kdelibs qimageblitz libdbusmenu_qt xorg.libxcb xorg.xcbutilimage libjpeg
xorg.xcbutilrenderutil xorg.xcbutilkeysyms xorg.libpthreadstubs xorg.libXdmcp
xorg.libxkbfile xorg.libXcomposite xorg.libXtst
xorg.libXdamage
python boost qjson lm_sensors gpsd libraw1394 pciutils udev
akonadi pam libusb1 libqalculate kdepimlibs prison
kactivities
];
nativeBuildInputs = [ pkgconfig ];
preConfigure =
''
# Fix incorrect path to kde4-config.
substituteInPlace startkde.cmake --replace '$bindir/kde4-config' ${kdelibs}/bin/kde4-config
# Fix the path to the keyboard configuration files.
substituteInPlace kcontrol/keyboard/xkb_rules.cpp \
--replace /usr/share/X11 ${xkeyboard_config}/etc/X11
'';
enableParallelBuilding = false; # frequent problems on Hydra
meta = {
description = "KDE workspace components such as Plasma, Kwin and System Settings";
license = "GPLv2";
};
}

View file

@ -0,0 +1,9 @@
{ kde, kdelibs, speechd }:
kde {
buildInputs = [ kdelibs speechd ];
meta = {
description = "Text-to-speech synthesis daemon";
};
}

View file

@ -0,0 +1,9 @@
{ kde, kdelibs, speechd }:
kde {
buildInputs = [ kdelibs speechd ];
meta = {
description = "Bridge that provides accessibility services to applications";
};
}

View file

@ -0,0 +1,10 @@
{ kde, kdelibs }:
kde {
#todo: package qaccessibilityclient
buildInputs = [ kdelibs ];
meta = {
description = "Screen magnifier for KDE";
};
}

View file

@ -0,0 +1,9 @@
{ kde, kdelibs, libXtst, libXt }:
kde {
buildInputs = [ kdelibs libXtst libXt ];
meta = {
description = "A program that clicks the mouse for you";
};
}

View file

@ -0,0 +1,9 @@
{ kde, kdelibs }:
kde {
buildInputs = [ kdelibs ];
meta = {
description = "A type-and-say front end for speech synthesizers";
};
}

View file

@ -0,0 +1,9 @@
{ kde, kdelibs }:
kde {
buildInputs = [ kdelibs ];
meta = {
description = "Configure and schedule tasks";
};
}

View file

@ -0,0 +1,9 @@
{ kde, kdelibs }:
kde {
buildInputs = [ kdelibs ];
meta = {
description = "System log viewer tool";
};
}

View file

@ -0,0 +1,9 @@
{ kde, kdelibs, kdepimlibs }:
kde {
buildInputs = [ kdelibs kdepimlibs ];
meta = {
description = "User management tool";
};
}

View file

@ -0,0 +1,11 @@
{ kde, kdelibs }:
kde {
name = "kde-color-schemes";
buildInputs = [ kdelibs ];
meta = {
description = "Additional KDE color schemes";
};
}

View file

@ -0,0 +1,73 @@
#Macro to find xscreensaver directory
# Copyright (c) 2006, Laurent Montel, <montel@kde.org>
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
if (NOT XSCREENSAVER_FOUND)
FIND_PATH(XSCREENSAVER_DIR deco
HINTS
${KDE4_INCLUDE_DIR}
PATHS
/usr
/usr/local
/opt/local
/usr/X11R6
/opt/kde
/opt/kde3
/usr/kde
/usr/local/kde
/usr/local/xscreensaver
/usr/openwin/lib/xscreensaver
/etc
PATH_SUFFIXES
lib${LIB_SUFFIX}/xscreensaver
lib${LIB_SUFFIX}/misc/xscreensaver
lib/xscreensaver
lib64/xscreensaver
lib/misc/xscreensaver
libexec/xscreensaver
bin/xscreensaver-hacks
hacks)
message(STATUS "XSCREENSAVER_DIR <${XSCREENSAVER_DIR}>")
FIND_PATH(XSCREENSAVER_CONFIG_DIR deco.xml
PATHS
${KDE4_INCLUDE_DIR}
/usr/
/usr/local/
/opt/local/
/usr/X11R6/
/opt/kde/
/opt/kde3/
/usr/kde/
/usr/local/kde/
/usr/openwin/lib/xscreensaver/
/etc/
PATH_SUFFIXES xscreensaver xscreensaver/config share/xscreensaver/config
)
MESSAGE(STATUS "XSCREENSAVER_CONFIG_DIR :<${XSCREENSAVER_CONFIG_DIR}>")
endif(NOT XSCREENSAVER_FOUND)
#MESSAGE(STATUS "XSCREENSAVER_CONFIG_DIR :<${XSCREENSAVER_CONFIG_DIR}>")
#MESSAGE(STATUS "XSCREENSAVER_DIR :<${XSCREENSAVER_DIR}>")
# Need to fix hack
if(XSCREENSAVER_DIR AND XSCREENSAVER_CONFIG_DIR)
set(XSCREENSAVER_FOUND TRUE)
endif(XSCREENSAVER_DIR AND XSCREENSAVER_CONFIG_DIR)
if (XSCREENSAVER_FOUND)
if (NOT Xscreensaver_FIND_QUIETLY)
message(STATUS "Found XSCREENSAVER_CONFIG_DIR <${XSCREENSAVER_CONFIG_DIR}>")
endif (NOT Xscreensaver_FIND_QUIETLY)
else (XSCREENSAVER_FOUND)
if (Xscreensaver_FIND_REQUIRED)
message(FATAL_ERROR "XScreenSaver not found")
endif (Xscreensaver_FIND_REQUIRED)
endif (XSCREENSAVER_FOUND)
MARK_AS_ADVANCED(XSCREENSAVER_DIR XSCREENSAVER_CONFIG_DIR)

View file

@ -0,0 +1,11 @@
{ kde, kdelibs }:
kde rec {
name = "kde-wallpapers-high-resolution";
buildInputs = [ kdelibs ];
meta = {
description = "KDE wallpapers in high resolution";
};
}

View file

@ -0,0 +1,13 @@
{ kde, kdelibs }:
kde {
name = "kdeartwork-icon-themes";
# Sources contain primary and kdeclassic as well but they're not installed
buildInputs = [ kdelibs ];
meta = {
description = "KDE nuvola and mono icon themes";
};
}

View file

@ -0,0 +1,11 @@
{ kde, kdelibs }:
kde rec {
name = "kde-weather-wallpapers";
buildInputs = [ kdelibs ];
meta = {
description = "Additional KDE wallpapers (weather)";
};
}

View file

@ -0,0 +1,11 @@
{ kde, kdelibs }:
kde {
name = "kde-desktop-themes";
buildInputs = [ kdelibs ];
meta = {
description = "Additional KDE desktop themes";
};
}

View file

@ -0,0 +1,11 @@
{ kde, kdelibs }:
kde {
name = "kde-emotion-icons";
buildInputs = [ kdelibs ];
meta = {
description = "Additional KDE emotion icons (smiles)";
};
}

View file

@ -0,0 +1,15 @@
{ kde, kdelibs, xscreensaver, kde_workspace, eigen, libkexiv2, libXt, pkgconfig }:
kde {
buildInputs = [ kdelibs xscreensaver kde_workspace eigen libkexiv2 libXt ];
nativeBuildInputs = [ pkgconfig ];
prePatch = "cp -v ${./FindXscreensaver.cmake} cmake/modules/FindXscreensaver.cmake";
cmakeFlags = [ "-DBUILD_asciiquarium:BOOL=ON" ];
meta = {
description = "KDE screensavers";
};
}

View file

@ -0,0 +1,9 @@
{ kde, kdelibs, kde_workspace }:
kde {
buildInputs = [ kdelibs kde_workspace ];
meta = {
description = "Styles for KWin";
};
}

View file

@ -0,0 +1,11 @@
{ kde, kdelibs }:
kde rec {
name = "kde-sounds";
buildInputs = [ kdelibs ];
meta = {
description = "New login/logout sounds";
};
}

View file

@ -0,0 +1,11 @@
{ kde, kdelibs }:
kde rec {
name = "kde-style-phase";
buildInputs = [ kdelibs ];
meta = {
description = "Phase, a widget style for KDE";
};
}

View file

@ -0,0 +1,11 @@
{ kde, kdelibs }:
kde rec {
name = "kdeartwork-wallpapers";
buildInputs = [ kdelibs ];
meta = {
description = "Additional KDE wallpapers";
};
}

View file

@ -0,0 +1,14 @@
{ kde, cmake, smokeqt, perl }:
kde {
# TODO: qscintilla2, qwt5
buildInputs = [ smokeqt perl ];
nativeBuildInputs = [ cmake ];
meta = {
description = "Perl bindings for Qt library";
};
}

View file

@ -0,0 +1,32 @@
{ kde, kdelibs, python, sip, pyqt4, kdepimlibs, shared_desktop_ontologies,
polkit_qt_1, boost, lndir, pkgconfig }:
let pydir = "lib/python${python.majorVersion}"; in
kde {
# todo: polkit isn't found by the build system
buildInputs = [
python kdepimlibs shared_desktop_ontologies
boost polkit_qt_1
];
nativeBuildInputs = [ pkgconfig ];
propagatedBuildInputs = [ pyqt4 sip ];
preConfigure =
''
# Symlink PyQt into PyKDE. This is necessary because PyQt looks
# in its PyQt4/uic/widget-plugins directory for plugins, and KDE
# needs to install a plugin.
mkdir -pv $out/${pydir}
${lndir}/bin/lndir ${pyqt4}/${pydir} $out/${pydir}
cmakeFlagsArray=( "-DSIP_DEFAULT_SIP_DIR=$prefix/share/sip" )
'';
meta = {
description = "Python bindings for KDE";
};
}

View file

@ -0,0 +1,15 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 33078b4..30aec0e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -31,8 +31,8 @@ if (NOT COMPILE_RUBY)
return()
endif (NOT COMPILE_RUBY)
-SET(CUSTOM_RUBY_SITE_ARCH_DIR ${RUBY_SITEARCH_DIR} CACHE DIR "custom installation directory for ruby binary extension" )
-SET(CUSTOM_RUBY_SITE_LIB_DIR ${RUBY_SITELIB_DIR} CACHE DIR "custom installation directory for ruby extension" )
+string(REPLACE "${RUBY_ROOT_DIR}" "${CMAKE_INSTALL_PREFIX}" CUSTOM_RUBY_SITE_ARCH_DIR ${RUBY_SITEARCH_DIR})
+string(REPLACE "${RUBY_ROOT_DIR}" "${CMAKE_INSTALL_PREFIX}" CUSTOM_RUBY_SITE_LIB_DIR ${RUBY_SITELIB_DIR})
# compute an overall version number which can be compared at once
MATH(EXPR RUBY_VERSION_NUMBER "${RUBY_VERSION_MAJOR}*10000 + ${RUBY_VERSION_MINOR}*100 + ${RUBY_VERSION_PATCH}")

View file

@ -0,0 +1,20 @@
{ kde, cmake, smokeqt, ruby }:
kde {
# TODO: scintilla2, qwt5
buildInputs = [ smokeqt ruby ];
nativeBuildInputs = [ cmake ];
# The patch is not ready for upstream submmission.
# I should add an option() instead.
patches = [ ./qtruby-install-prefix.patch ];
cmakeFlags="-DRUBY_ROOT_DIR=${ruby}";
meta = {
description = "Ruby bindings for Qt library";
};
}

View file

@ -0,0 +1,13 @@
--- smokegen-4.10.5.orig/CMakeLists.txt 2013-06-28 17:14:50.000000000 +0000
+++ smokegen-4.10.5/CMakeLists.txt 2013-07-31 19:15:17.000000000 +0000
@@ -36,6 +36,10 @@
set (CMAKE_SKIP_BUILD_RPATH FALSE)
set (CMAKE_SKIP_RPATH FALSE)
+# add the automatically determined parts of the RPATH
+# which point to directories outside the build tree to the install RPATH
+SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
+
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/config.h.in config.h @ONLY )
add_executable(smokegen ${generator_SRC})

View file

@ -0,0 +1,13 @@
diff -urN smokegen-4.10.5.orig/cmake/SmokeConfig.cmake.in smokegen-4.10.5/cmake/SmokeConfig.cmake.in
--- smokegen-4.10.5.orig/cmake/SmokeConfig.cmake.in 2013-06-28 17:14:50.000000000 +0000
+++ smokegen-4.10.5/cmake/SmokeConfig.cmake.in 2013-07-30 21:26:33.000000000 +0000
@@ -80,8 +80,7 @@
set(SMOKE_API_BIN "@SMOKE_API_BIN@")
find_library(SMOKE_BASE_LIBRARY smokebase
- PATHS "@SMOKE_LIBRARY_PREFIX@"
- NO_DEFAULT_PATH)
+ PATHS "@SMOKE_LIBRARY_PREFIX@")
if (NOT SMOKE_BASE_LIBRARY)
if (Smoke_FIND_REQUIRED)

View file

@ -0,0 +1,13 @@
{ kde, qt4, cmake }:
kde {
buildInputs = [ qt4 ];
nativeBuildInputs = [ cmake ];
patches = [ ./smokegen-nix.patch ./smokegen-CMakeLists.txt-nix.patch ];
meta = {
description = "C++ parser used to generate language bindings for Qt/KDE";
license = "GPLv2";
};
}

View file

@ -0,0 +1,19 @@
{ kde, cmake, smokeqt, kdelibs, akonadi, kdepimlibs, okular
, shared_desktop_ontologies, attica, pkgconfig }:
kde {
# TODO: attica, akonadi and kdepimlibs are disabled due to smokegen crash
# okular is disabled because the code generated is broken
buildInputs = [
smokeqt kdelibs shared_desktop_ontologies
];
nativeBuildInputs = [ cmake pkgconfig ];
LD_LIBRARY_PATH = "${smokeqt}/lib/";
meta = {
description = "SMOKE bindings for kdelibs";
};
}

View file

@ -0,0 +1,15 @@
{ kde, qt4, cmake, phonon, qimageblitz, smokegen }:
kde {
# TODO: Qwt5, QScintilla2
propagatedBuildInputs = [ qt4 phonon qimageblitz ];
nativeBuildInputs = [ cmake ];
propagatedNativeBuildInputs = [ smokegen ];
meta = {
description = "C++ parser used to generate language bindings for Qt/KDE";
license = "GPLv2";
};
}

View file

@ -0,0 +1,8 @@
{ kde, kdelibs, readline }:
kde {
buildInputs = [ kdelibs readline ];
meta = {
description = "Library part of KAlgebra";
};
}

View file

@ -0,0 +1,8 @@
{ kde, kdelibs }:
kde {
buildInputs = [ kdelibs ];
meta = {
description = "Memory Enhancement Game";
};
}

View file

@ -0,0 +1,13 @@
{ kde, kdelibs, libspectre, analitza, R, pkgconfig, libqalculate }:
kde {
# TODO: R is not found
buildInputs = [ kdelibs libspectre analitza R libqalculate];
nativeBuildInputs = [ pkgconfig ];
meta = {
description = "KDE Frontend to Mathematical Software";
};
}

View file

@ -0,0 +1,8 @@
{ kde, kdelibs, libkdeedu, analitza }:
kde {
buildInputs = [ kdelibs libkdeedu analitza ];
meta = {
description = "2D and 3D Graph Calculator";
};
}

View file

@ -0,0 +1,13 @@
{ kde, kdelibs, facile, ocaml, eigen, openbabel, avogadro, pkgconfig }:
kde {
# TODO: chemical mime data
buildInputs = [ kdelibs facile ocaml eigen openbabel avogadro ];
nativeBuildInputs = [ pkgconfig ];
meta = {
description = "Periodic Table of Elements";
};
}

View file

@ -0,0 +1,8 @@
{ kde, kdelibs, libkdeedu }:
kde {
buildInputs = [ kdelibs libkdeedu ];
meta = {
description = "Letter Order Game";
};
}

View file

@ -0,0 +1,8 @@
{ kde, kdelibs }:
kde {
buildInputs = [ kdelibs ];
meta = {
description = "Practice Fractions";
};
}

View file

@ -0,0 +1,8 @@
{ kde, kdelibs }:
kde {
buildInputs = [ kdelibs ];
meta = {
description = "Geography Trainer";
};
}

View file

@ -0,0 +1,8 @@
{ kde, kdelibs, libkdeedu }:
kde {
buildInputs = [ kdelibs libkdeedu ];
meta = {
description = "KDE hangman game";
};
}

View file

@ -0,0 +1,12 @@
{ kde, kdelibs, boost, python}:
kde {
buildInputs = [ kdelibs boost python ];
cmakeFlags = ''
-DBOOST_PYTHON_INCLUDES:PATH=${boost}/include;${python}/include/${python.libPrefix}
-DBOOST_PYTHON_LIBS=boost_python;${python.libPrefix} -DKIG_ENABLE_PYTHON_SCRIPTING=1
'';
meta = {
description = "KDE Interactive Geometry";
};
}

View file

@ -0,0 +1,9 @@
{ kde, kdelibs }:
kde {
buildInputs = [ kdelibs ];
meta = {
description = "Japanese Reference/Study Tool";
};
}

View file

@ -0,0 +1,9 @@
{ kde, kdelibs }:
kde {
buildInputs = [ kdelibs ];
meta = {
description = "A KDE alphabet tutorial";
};
}

View file

@ -0,0 +1,12 @@
{ kde, kdelibs }:
kde {
buildInputs = [ kdelibs ];
meta = {
description = "A KDE mathematical function plotter";
kde = {
name = "kmplot";
};
};
}

View file

@ -0,0 +1,14 @@
{ kde, kdelibs, eigen, xplanet, indilib, pkgconfig }:
kde {
# TODO: wcslib
buildInputs = [ kdelibs eigen xplanet indilib ];
nativeBuildInputs = [ pkgconfig ];
meta = {
description = "A KDE graphical desktop planetarium";
};
}

View file

@ -0,0 +1,9 @@
{ kde, kdelibs, libxkbfile }:
kde {
buildInputs = [ kdelibs libxkbfile ];
meta = {
description = "Touch Typing Tutor";
};
}

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