Merge remote-tracking branch 'origin/master' into staging

Conflicts:
	pkgs/development/libraries/poppler/default.nix
This commit is contained in:
Eelco Dolstra 2014-10-16 15:16:50 +02:00
commit 09dc132e04
826 changed files with 8930 additions and 7226 deletions

View File

@ -1,3 +1,5 @@
language: python
python: "3.4"
script: ./maintainers/scripts/travis-nox-review-pr.sh
before_install: ./maintainers/scripts/travis-nox-review-pr.sh nix
install: ./maintainers/scripts/travis-nox-review-pr.sh nox
script: ./maintainers/scripts/travis-nox-review-pr.sh build

View File

@ -116,6 +116,13 @@ hello-2.3 A program that produces a familiar, friendly greeting
<listitem><para>Package version.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>branch</varname></term>
<listitem><para>Release branch. Used to specify that a package is not
going to receive updates that are not in this branch; for example, Linux
kernel 3.0 is supposed to be updated to 3.0.X, not 3.1.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>homepage</varname></term>
<listitem><para>The packages homepage. Example:

View File

@ -150,8 +150,8 @@ genericBuild
<listitem><para>GNU <command>tar</command>.</para></listitem>
<listitem><para><command>gzip</command> and
<command>bzip2</command>.</para></listitem>
<listitem><para><command>gzip</command>, <command>bzip2</command>
and <command>xz</command>.</para></listitem>
<listitem><para>GNU Make. It has been patched to provide
<quote>nested</quote> output that can be fed into the
@ -341,9 +341,11 @@ It supports the following files by default:
<term>Tar files</term>
<listitem><para>These can optionally be compressed using
<command>gzip</command> (<filename>.tar.gz</filename>,
<filename>.tgz</filename> or <filename>.tar.Z</filename>) or
<filename>.tgz</filename> or <filename>.tar.Z</filename>),
<command>bzip2</command> (<filename>.tar.bz2</filename> or
<filename>.tbz2</filename>).</para></listitem>
<filename>.tbz2</filename>) or <command>xz</command>
(<filename>.tar.xz</filename> or
<filename>.tar.lzma</filename>).</para></listitem>
</varlistentry>
<varlistentry>
@ -445,9 +447,10 @@ Additional file types can be supported by setting the
<listitem><para>The list of patches. They must be in the format
accepted by the <command>patch</command> command, and may
optionally be compressed using <command>gzip</command>
(<filename>.gz</filename>) or <command>bzip2</command>
(<filename>.bz2</filename>).</para></listitem>
</varlistentry>
(<filename>.gz</filename>), <command>bzip2</command>
(<filename>.bz2</filename>) or <command>xz</command>
(<filename>.xz</filename>).</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>patchFlags</varname></term>

View File

@ -72,6 +72,11 @@ rec {
fullName = "Creative Commons Attribution 3.0";
};
cc-by-sa-30 = spdx {
shortName = "CC-BY-SA-3.0";
fullName = "Creative Commons Attribution Share Alike 3.0";
};
cc-by-40 = spdx {
shortName = "CC-BY-4.0";
fullName = "Creative Commons Attribution 4.0";

View File

@ -18,6 +18,7 @@
antono = "Antono Vasiljev <self@antono.info>";
aristid = "Aristid Breitkreuz <aristidb@gmail.com>";
arobyn = "Alexei Robyn <shados@shados.net>";
asppsa = "Alastair Pharo <asppsa@gmail.com>";
astsmtl = "Alexander Tsamutali <astsmtl@yandex.ru>";
aszlig = "aszlig <aszlig@redmoonstudios.org>";
auntie = "Jonathan Glines <auntieNeo@gmail.com>";
@ -37,7 +38,9 @@
cdepillabout = "Dennis Gosnell <cdep.illabout@gmail.com>";
cfouche = "Chaddaï Fouché <chaddai.fouche@gmail.com>";
chaoflow = "Florian Friesdorf <flo@chaoflow.net>";
christopherpoole = "Christopher Mark Poole <mail@christopherpoole.net>";
coconnor = "Corey O'Connor <coreyoconnor@gmail.com>";
codyopel = "Cody Opel <codyopel@gmail.com>";
copumpkin = "Dan Peebles <pumpkingod@gmail.com>";
coroa = "Jonas Hörsch <jonas@chaoflow.net>";
cstrahan = "Charles Strahan <charles.c.strahan@gmail.com>";
@ -66,6 +69,7 @@
ianwookim = "Ian-Woo Kim <ianwookim@gmail.com>";
iElectric = "Domen Kozar <domen@dev.si>";
iyzsong = "Song Wenwu <iyzsong@gmail.com>";
jagajaga = "Arseniy Seroka <ars.seroka@gmail.com>";
jcumming = "Jack Cummings <jack@mudshark.org>";
jgeerds = "Jascha Geerds <jg@ekby.de>";
joamaki = "Jussi Maki <joamaki@gmail.com>";
@ -73,6 +77,7 @@
jwiegley = "John Wiegley <johnw@newartisans.com>";
kkallio = "Karn Kallio <tierpluspluslists@gmail.com>";
koral = "Koral <koral@mailoo.org>";
kragniz = "Louis Taylor <kragniz@gmail.com>";
ktosiek = "Tomasz Kontusz <tomasz.kontusz@gmail.com>";
lethalman = "Luca Bruno <lucabru@src.gnome.org>";
lhvwb = "Nathaniel Baxter <nathaniel.baxter@gmail.com>";
@ -117,6 +122,7 @@
rycee = "Robert Helgesson <robert@rycee.net>";
sander = "Sander van der Burg <s.vanderburg@tudelft.nl>";
sepi = "Raffael Mancini <raffael@mancini.lu>";
shell = "Shell Turner <cam.turn@gmail.com>";
shlevy = "Shea Levy <shea@shealevy.com>";
simons = "Peter Simons <simons@cryp.to>";
skeidel = "Sven Keidel <svenkeidel@gmail.com>";
@ -138,6 +144,7 @@
viric = "Lluís Batlle i Rossell <viric@viric.name>";
vizanto = "Danny Wilson <danny@prime.vc>";
vlstill = "Vladimír Štill <xstill@fi.muni.cz>";
vozz = "Oliver Hunt <oliver.huntuk@gmail.com>";
winden = "Antonio Vargas Gonzalez <windenntw@gmail.com>";
wizeman = "Ricardo M. Correia <rcorreia@wizy.org>";
wjlroe = "William Roe <willroe@gmail.com>";

View File

@ -1,29 +1,42 @@
#! /usr/bin/env bash
set -e
# Install Nix
bash <(curl https://nixos.org/nix/install)
source $HOME/.nix-profile/etc/profile.d/nix.sh
export NIX_CURL_FLAGS=-sS
# Make sure we can use hydra's binary cache
sudo mkdir /etc/nix
sudo tee /etc/nix/nix.conf <<EOF
if [[ $1 == nix ]]; then
echo "=== Installing Nix..."
# Install Nix
bash <(curl -sS https://nixos.org/nix/install)
source $HOME/.nix-profile/etc/profile.d/nix.sh
# Make sure we can use hydra's binary cache
sudo mkdir /etc/nix
sudo tee /etc/nix/nix.conf <<EOF >/dev/null
binary-caches = http://cache.nixos.org http://hydra.nixos.org
trusted-binary-caches = http://hydra.nixos.org
build-max-jobs = 4
EOF
if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then
echo "Not a pull request, checking evaluation"
nix-build pkgs/top-level/release.nix -A tarball
exit 0
# Verify evaluation
echo "=== Verifying that nixpkgs evaluates..."
nix-env -f. -qa --json >/dev/null
elif [[ $1 == nox ]]; then
echo "=== Installing nox..."
git clone -q https://github.com/madjar/nox
pip --quiet install -e nox
elif [[ $1 == build ]]; then
source $HOME/.nix-profile/etc/profile.d/nix.sh
if [[ $TRAVIS_PULL_REQUEST == false ]]; then
echo "===> Not a pull request, checking evaluation"
nix-build pkgs/top-level/release.nix -A tarball
else
echo "=== Checking PR"
# The current HEAD is the PR merged into origin/master, so we compare
# against origin/master
nox-review wip --against origin/master
fi
else
echo "$0: Unknown option $1" >&2
false
fi
echo "Installing nox"
git clone https://github.com/madjar/nox
pip --quiet install -e nox
echo "Reviewing PR"
# The current HEAD is the PR merged into origin/master, so we compare
# against origin/master
nox-review wip --against origin/master

View File

@ -1,3 +1,6 @@
viric viriketo@gmail.com
Pjotr Prins pjotr.public01@thebird.nl
Pjotr Prins pjotr.public05@thebird.nl
Wouter den Breejen wbreejen
MarcWeber marcweber
Ricardo Correia Ricardo M. Correia

View File

@ -3,7 +3,8 @@
export LANG=C LC_ALL=C LC_COLLATE=C
# Load git log
git_data="$(git log | grep 'Author:' |
raw_git_log="$(git log)"
git_data="$(echo "$raw_git_log" | grep 'Author:' |
sed -e 's/^ *Author://; s/\\//g; s/^ *//; s/ *$//;
s/ @ .*//; s/ *[<]/\t/; s/[>]//')"
@ -13,15 +14,44 @@ maintainers="$(cat "$(dirname "$0")/../../lib/maintainers.nix" |
grep '=' | sed -re 's/\\"/''/g;
s/ *([^ =]*) *= *" *(.*[^ ]) *[<](.*)[>] *".*/\1\t\2\t\3/')"
git_lines="$( ( echo "$git_data";
cat vanity-manual-equalities.txt) | sort |uniq)"
cat "$(dirname "$0")/vanity-manual-equalities.txt") | sort |uniq)"
emails="$(
( echo "$maintainers" | cut -f 3; echo "$git_data" | cut -f 2 ) |
sort | uniq | grep -E ".+@.+[.].+"
)"
fetchGithubName () {
commitid="$(
echo "$raw_git_log" | grep -B3 "Author: .*[<]$1[>]" | head -n 3 |
grep '^commit ' | tail -n 1 | sed -e 's/^commit //'
)"
userid="$(
curl https://github.com/NixOS/nixpkgs/commit/"$commitid" 2>/dev/null |
grep authored -B10 | grep 'href="/' |
sed -re 's@.* href="/@@; s@".*@@' |
grep -v "/commit/"
)";
echo "$userid"
}
[ -n "$NIXPKGS_GITHUB_NAME_CACHE" ] && {
echo "$emails" | while read email; do
line="$(grep "$email " "$NIXPKGS_GITHUB_NAME_CACHE")"
[ -z "$line" ] && {
echo "$email $(fetchGithubName "$email")" >> \
"$NIXPKGS_GITHUB_NAME_CACHE"
}
done
}
# For RDF
normalize_name () {
sed -e 's/ /_/g; s/'\''/*/g; s/"/**/g;'
sed -e 's/%/%25/g; s/ /%20/g; s/'\''/%27/g; s/"/%22/g;'
}
denormalize_name () {
sed -e 's/_/ /g; s/[*][*]/"/g; s/[*]/'\''/g;'
sed -e 's/%20/ /g; s/%27/'\''/g; s/%22/"/g; s/%25/%/g;';
}
n3="$(mktemp --suffix .n3)"
@ -37,6 +67,9 @@ echo "$maintainers" | sed -re 's@(.*)\t(.*)\t(.*)@<my://name/\3> <my://can-be> <
echo "$git_lines" | grep ' ' | cut -f 1 | sed -e 's@.*@<my://name/&> <my://is-name> <my://0>.@'
echo "$git_lines" | grep -v ' ' | cut -f 1 | sed -e 's@.*@<my://name/&> <my://is-name> <my://1>.@'
echo "$maintainers" | cut -f 2 | sed -e 's@.*@<my://name/&> <my://is-name> <my://0>.@'
[ -n "$NIXPKGS_GITHUB_NAME_CACHE" ] && cat "$NIXPKGS_GITHUB_NAME_CACHE" |
grep -v " $" |
sed -re 's@(.*)\t(.*)@<my://name/\1> <my://at-github> <my://github/\2>.@'
) | normalize_name | grep -E '<my://[-a-z]+>' | sort | uniq > "$n3"
# Get transitive closure
@ -51,6 +84,14 @@ name_list="$(
sed -re 's@<my://name/@@g; s@<my://@@g; s@>@@g;' |
sort -k 2,3 -t ' '
)"
github_name_list="$(
"$sparql" --results=TSV --data="$n3" "
select ?x ?y where {
?x (<my://can-be>+ / <my://at-github>) ?y.
}
" | tail -n +2 |
sed -re 's@<my://(name|github)/@@g; s@<my://@@g; s@>@@g;'
)"
# Take first spelling option for every person
name_list_canonical="$(echo "$name_list" | cut -f 1,2 | uniq -f1)"
@ -58,8 +99,24 @@ name_list_canonical="$(echo "$name_list" | cut -f 1,2 | uniq -f1)"
cleaner_script="$(echo "$name_list_canonical" | denormalize_name |
sed -re 's/(.*)\t(.*)/s#^\2$#\1#g/g')"
# Add github usernames
if [ -n "$NIXPKGS_GITHUB_NAME_CACHE" ]; then
github_adder_script="$(echo "$github_name_list" |
grep -E "$(echo "$name_list_canonical" | cut -f 2 |
tr '\n' '|' )" |
sort | uniq |
sed -re 's/(.*)\t(.*)/s| \1$| \1\t\2|g;/' |
denormalize_name
)"
else
github_adder_script=''
fi
echo "$name_list" | denormalize_name
echo
echo "$git_data" | cut -f 1 | sed -re "$cleaner_script" | sort | uniq -c | sort -k1n
echo "$git_data" | cut -f 1 |
sed -re "$cleaner_script" |
sort | uniq -c | sort -k1n | sed -re "$github_adder_script" |
sed -re 's/^ *([0-9]+) /\1\t/'

View File

@ -12,7 +12,7 @@ let
# Forces 32bit pulseaudio and alsaPlugins to be built/supported for apps
# using 32bit alsa on 64bit linux.
enable32BitAlsaPlugins = stdenv.isx86_64 && (pkgs_i686.alsaLib != null);
enable32BitAlsaPlugins = stdenv.isx86_64 && (pkgs_i686.alsaLib != null && pkgs_i686.pulseaudio != null);
ids = config.ids;
@ -126,8 +126,7 @@ in {
(mkIf cfg.enable {
environment.systemPackages = [
cfg.package
(lib.optional enable32BitAlsaPlugins pkgs_i686.pulseaudio)
];
] ++ lib.optionals enable32BitAlsaPlugins [ pkgs_i686.pulseaudio ];
environment.etc = singleton {
target = "asound.conf";

View File

@ -154,6 +154,10 @@
collectd = 144;
consul = 145;
mailpile = 146;
redmine = 147;
seeks = 148;
prosody = 148;
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
@ -275,6 +279,10 @@
riemanndash = 138;
uhub = 142;
mailpile = 146;
redmine = 147;
seeks = 148;
prosody = 148;
# When adding a gid, make sure it doesn't match an existing uid. And don't use gids above 399!

View File

@ -174,6 +174,7 @@
./services/misc/nixos-manual.nix
./services/misc/nix-ssh-serve.nix
./services/misc/phd.nix
./services/misc/redmine.nix
./services/misc/rippled.nix
./services/misc/rogue.nix
./services/misc/siproxd.nix
@ -250,6 +251,7 @@
./services/networking/polipo.nix
./services/networking/prayer.nix
./services/networking/privoxy.nix
./services/networking/prosody.nix
./services/networking/quassel.nix
./services/networking/radicale.nix
./services/networking/radvd.nix
@ -257,6 +259,7 @@
./services/networking/rpcbind.nix
./services/networking/sabnzbd.nix
./services/networking/searx.nix
./services/networking/seeks.nix
./services/networking/spiped.nix
./services/networking/ssh/lshd.nix
./services/networking/ssh/sshd.nix

View File

@ -130,5 +130,6 @@ in zipModules ([]
++ obsolete' [ "boot" "initrd" "luks" "enable" ]
++ obsolete' [ "programs" "bash" "enable" ]
++ obsolete' [ "services" "samba" "defaultShare" ]
++ obsolete' [ "services" "syslog-ng" "serviceName" ]
)

View File

@ -21,6 +21,7 @@ in
config = mkOption {
default = "";
type = types.lines;
description = ''
The contents of the logrotate config file
'';

View File

@ -4,6 +4,9 @@ with lib;
let
cfg = config.services.logstash;
pluginPath = lib.concatStringsSep ":" cfg.plugins;
havePluginPath = lib.length cfg.plugins > 0;
ops = lib.optionalString;
in
@ -20,12 +23,50 @@ in
description = "Enable logstash.";
};
package = mkOption {
type = types.package;
default = pkgs.logstash;
example = literalExample "pkgs.logstash";
description = "Logstash package to use.";
};
plugins = mkOption {
type = types.listOf types.path;
default = [ ];
example = literalExample "[ pkgs.logstash-contrib ]";
description = "The paths to find other logstash plugins in.";
};
watchdogTimeout = mkOption {
type = types.int;
default = 10;
description = "Set watchdog timeout value in seconds.";
};
filterWorkers = mkOption {
type = types.int;
default = 1;
description = "The quantity of filter workers to run.";
};
enableWeb = mkOption {
type = types.bool;
default = false;
description = "Enable the logstash web interface.";
};
address = mkOption {
type = types.str;
default = "0.0.0.0";
description = "Address on which to start webserver.";
};
port = mkOption {
type = types.str;
default = "9292";
description = "Port on which to start webserver.";
};
inputConfig = mkOption {
type = types.lines;
default = ''stdin { type => "example" }'';
@ -79,19 +120,25 @@ in
wantedBy = [ "multi-user.target" ];
environment = { JAVA_HOME = jre; };
serviceConfig = {
ExecStart = "${logstash}/bin/logstash agent -f ${writeText "logstash.conf" ''
input {
${cfg.inputConfig}
}
ExecStart =
"${cfg.package}/bin/logstash agent " +
"-w ${toString cfg.filterWorkers} " +
ops havePluginPath "--pluginpath ${pluginPath} " +
"--watchdog-timeout ${toString cfg.watchdogTimeout} " +
"-f ${writeText "logstash.conf" ''
input {
${cfg.inputConfig}
}
filter {
${cfg.filterConfig}
}
filter {
${cfg.filterConfig}
}
output {
${cfg.outputConfig}
}
''} ${optionalString cfg.enableWeb "-- web"}";
output {
${cfg.outputConfig}
}
''} " +
ops cfg.enableWeb "-- web -a ${cfg.address} -p ${cfg.port}";
};
};
};

View File

@ -7,8 +7,7 @@ let
cfg = config.services.syslog-ng;
syslogngConfig = pkgs.writeText "syslog-ng.conf" ''
@version: 3.5
@include "scl.conf"
${cfg.configHeader}
${cfg.extraConfig}
'';
@ -44,13 +43,13 @@ in {
The package providing syslog-ng binaries.
'';
};
serviceName = mkOption {
type = types.str;
default = "syslog-ng";
listenToJournal = mkOption {
type = types.bool;
default = true;
description = ''
The name of the systemd service that runs syslog-ng. Set this to
<literal>syslog</literal> if you want journald to automatically
forward all logs to syslog-ng.
Whether syslog-ng should listen to the syslog socket used
by journald, and therefore receive all logs that journald
produces.
'';
};
extraModulePaths = mkOption {
@ -72,16 +71,33 @@ in {
Configuration added to the end of <literal>syslog-ng.conf</literal>.
'';
};
configHeader = mkOption {
type = types.lines;
default = ''
@version: 3.5
@include "scl.conf"
'';
description = ''
The very first lines of the configuration file. Should usually contain
the syslog-ng version header.
'';
};
};
};
config = mkIf cfg.enable {
systemd.services."${cfg.serviceName}" = {
wantedBy = [ "multi-user.target" ];
systemd.sockets.syslog = mkIf cfg.listenToJournal {
wantedBy = [ "sockets.target" ];
socketConfig.Service = "syslog-ng.service";
};
systemd.services.syslog-ng = {
description = "syslog-ng daemon";
preStart = "mkdir -p /{var,run}/syslog-ng";
wantedBy = optional (!cfg.listenToJournal) "multi-user.target";
after = [ "multi-user.target" ]; # makes sure hostname etc is set
serviceConfig = {
Type = "notify";
Sockets = "syslog.socket";
Sockets = if cfg.listenToJournal then "syslog.socket" else null;
StandardOutput = "null";
Restart = "on-failure";
ExecStart = "${cfg.package}/sbin/syslog-ng ${concatStringsSep " " syslogngOptions}";

View File

@ -0,0 +1,222 @@
{ config, lib, pkgs, ... }:
# TODO: support non-postgresql
with lib;
let
cfg = config.services.redmine;
ruby = pkgs.ruby;
rubyLibs = pkgs.rubyLibs;
databaseYml = ''
production:
adapter: postgresql
database: ${cfg.databaseName}
host: ${cfg.databaseHost}
password: ${cfg.databasePassword}
username: ${cfg.databaseUsername}
encoding: utf8
'';
configurationYml = ''
default:
# Absolute path to the directory where attachments are stored.
# The default is the 'files' directory in your Redmine instance.
# Your Redmine instance needs to have write permission on this
# directory.
# Examples:
# attachments_storage_path: /var/redmine/files
# attachments_storage_path: D:/redmine/files
attachments_storage_path: ${cfg.stateDir}/files
# Absolute path to the SCM commands errors (stderr) log file.
# The default is to log in the 'log' directory of your Redmine instance.
# Example:
# scm_stderr_log_file: /var/log/redmine_scm_stderr.log
scm_stderr_log_file: ${cfg.stateDir}/redmine_scm_stderr.log
${cfg.extraConfig}
'';
unpackTheme = unpack "theme";
unpackPlugin = unpack "plugin";
unpack = id: (name: source:
pkgs.stdenv.mkDerivation {
name = "redmine-${id}-${name}";
buildInputs = [ pkgs.unzip ];
buildCommand = ''
mkdir -p $out
cd $out
unpackFile ${source}
'';
});
in {
options = {
services.redmine = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
Enable the redmine service.
'';
};
stateDir = mkOption {
type = types.str;
default = "/var/redmine";
description = "The state directory, logs and plugins are stored here";
};
extraConfig = mkOption {
type = types.str;
default = "";
description = "Extra configuration in configuration.yml";
};
themes = mkOption {
type = types.attrsOf types.path;
default = {};
description = "Set of themes";
};
plugins = mkOption {
type = types.attrsOf types.path;
default = {};
description = "Set of plugins";
};
#databaseType = mkOption {
# type = types.str;
# default = "postgresql";
# description = "Type of database";
#};
databaseHost = mkOption {
type = types.str;
default = "127.0.0.1";
description = "Database hostname";
};
databasePassword = mkOption {
type = types.str;
default = "";
description = "Database user password";
};
databaseName = mkOption {
type = types.str;
default = "redmine";
description = "Database name";
};
databaseUsername = mkOption {
type = types.str;
default = "redmine";
description = "Database user";
};
};
};
config = mkIf cfg.enable {
assertions = [
{ assertion = cfg.databasePassword != "";
message = "databasePassword must be set";
}
];
users.extraUsers = [
{ name = "redmine";
group = "redmine";
uid = config.ids.uids.redmine;
} ];
users.extraGroups = [
{ name = "redmine";
gid = config.ids.gids.redmine;
} ];
systemd.services.redmine = {
after = [ "network.target" "postgresql.service" ];
wantedBy = [ "multi-user.target" ];
environment.RAILS_ENV = "production";
environment.RAILS_ETC = "${cfg.stateDir}/config";
environment.RAILS_LOG = "${cfg.stateDir}/log";
environment.RAILS_VAR = "${cfg.stateDir}/var";
environment.RAILS_CACHE = "${cfg.stateDir}/cache";
environment.RAILS_PLUGINS = "${cfg.stateDir}/plugins";
environment.RAILS_PUBLIC = "${cfg.stateDir}/public";
environment.RAILS_TMP = "${cfg.stateDir}/tmp";
environment.SCHEMA = "${cfg.stateDir}/cache/schema.db";
environment.HOME = "${pkgs.redmine}/share/redmine";
environment.REDMINE_LANG = "en";
environment.GEM_HOME = "${pkgs.redmine}/share/redmine/vendor/bundle/ruby/1.9.1";
environment.GEM_PATH = "${rubyLibs.bundler}/lib/ruby/gems/1.9";
path = with pkgs; [
imagemagickBig
subversion
mercurial
cvs
config.services.postgresql.package
bazaar
gitAndTools.git
# once we build binaries for darc enable it
#darcs
];
preStart = ''
# TODO: use env vars
for i in plugins public/plugin_assets db files log config cache var/files tmp; do
mkdir -p ${cfg.stateDir}/$i
done
chown -R redmine:redmine ${cfg.stateDir}
chmod -R 755 ${cfg.stateDir}
rm -rf ${cfg.stateDir}/public/*
cp -R ${pkgs.redmine}/share/redmine/public/* ${cfg.stateDir}/public/
for theme in ${concatStringsSep " " (mapAttrsToList unpackTheme cfg.themes)}; do
ln -fs $theme/* ${cfg.stateDir}/public/themes/
done
rm -rf ${cfg.stateDir}/plugins/*
for plugin in ${concatStringsSep " " (mapAttrsToList unpackPlugin cfg.plugins)}; do
ln -fs $plugin/* ${cfg.stateDir}/plugins/''${plugin##*-redmine-plugin-}
done
ln -fs ${pkgs.writeText "database.yml" databaseYml} ${cfg.stateDir}/config/database.yml
ln -fs ${pkgs.writeText "configuration.yml" configurationYml} ${cfg.stateDir}/config/configuration.yml
if [ "${cfg.databaseHost}" = "127.0.0.1" ]; then
if ! test -e "${cfg.stateDir}/db-created"; then
psql postgres -c "CREATE ROLE redmine WITH LOGIN NOCREATEDB NOCREATEROLE NOCREATEUSER ENCRYPTED PASSWORD '${cfg.databasePassword}'"
${config.services.postgresql.package}/bin/createdb --owner redmine redmine || true
touch "${cfg.stateDir}/db-created"
fi
fi
cd ${pkgs.redmine}/share/redmine/
${ruby}/bin/rake db:migrate
${ruby}/bin/rake redmine:plugins:migrate
${ruby}/bin/rake redmine:load_default_data
${ruby}/bin/rake generate_secret_token
'';
serviceConfig = {
PermissionsStartOnly = true; # preStart must be run as root
Type = "simple";
User = "redmine";
Group = "redmine";
TimeoutSec = "300";
WorkingDirectory = "${pkgs.redmine}/share/redmine";
ExecStart="${ruby}/bin/ruby ${pkgs.redmine}/share/redmine/script/rails server webrick -e production -P ${cfg.stateDir}/redmine.pid";
};
};
};
}

View File

@ -64,6 +64,13 @@ in
Use fixed port for rpc.mountd, usefull if server is behind firewall.
'';
};
lockdPort = mkOption {
default = 0;
description = ''
Fix the lockd port number. This can help setting firewall rules for NFS.
'';
};
};
};
@ -104,6 +111,9 @@ in
# Create a state directory required by NFSv4.
mkdir -p /var/lib/nfs/v4recovery
${pkgs.procps}/sbin/sysctl -w fs.nfs.nlm_tcpport=${builtins.toString cfg.lockdPort}
${pkgs.procps}/sbin/sysctl -w fs.nfs.nlm_udpport=${builtins.toString cfg.lockdPort}
rpc.nfsd \
${if cfg.hostName != null then "-H ${cfg.hostName}" else ""} \
${builtins.toString cfg.nproc}

View File

@ -0,0 +1,280 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.prosody;
sslOpts = { ... }: {
options = {
# TODO: require attribute
key = mkOption {
type = types.str;
description = "Path to the key file";
};
# TODO: require attribute
cert = mkOption {
type = types.str;
description = "Path to the certificate file";
};
};
};
moduleOpts = {
roster = mkOption {
default = true;
description = "Allow users to have a roster";
};
saslauth = mkOption {
default = true;
description = "Authentication for clients and servers. Recommended if you want to log in.";
};
tls = mkOption {
default = true;
description = "Add support for secure TLS on c2s/s2s connections";
};
dialback = mkOption {
default = true;
description = "s2s dialback support";
};
disco = mkOption {
default = true;
description = "Service discovery";
};
legacyauth = mkOption {
default = true;
description = "Legacy authentication. Only used by some old clients and bots";
};
version = mkOption {
default = true;
description = "Replies to server version requests";
};
uptime = mkOption {
default = true;
description = "Report how long server has been running";
};
time = mkOption {
default = true;
description = "Let others know the time here on this server";
};
ping = mkOption {
default = true;
description = "Replies to XMPP pings with pongs";
};
console = mkOption {
default = false;
description = "telnet to port 5582";
};
bosh = mkOption {
default = false;
description = "Enable BOSH clients, aka 'Jabber over HTTP'";
};
httpserver = mkOption {
default = false;
description = "Serve static files from a directory over HTTP";
};
websocket = mkOption {
default = false;
description = "Enable WebSocket support";
};
};
createSSLOptsStr = o:
if o ? key && o ? cert then
''ssl = { key = "${o.key}"; certificate = "${o.cert}"; };''
else "";
vHostOpts = { ... }: {
options = {
# TODO: require attribute
domain = mkOption {
type = types.str;
description = "Domain name";
};
enabled = mkOption {
default = false;
description = "Whether to enable the virtual host";
};
ssl = mkOption {
description = "Paths to SSL files";
default = null;
options = [ sslOpts ];
};
extraConfig = mkOption {
default = '''';
description = "Additional virtual host specific configuration";
};
};
};
in
{
###### interface
options = {
services.prosody = {
enable = mkOption {
default = false;
description = "Whether to enable the prosody server";
};
allowRegistration = mkOption {
default = false;
description = "Allow account creation";
};
modules = moduleOpts;
extraModules = mkOption {
description = "Enable custom modules";
default = [];
};
virtualHosts = mkOption {
description = "Define the virtual hosts";
type = types.loaOf types.optionSet;
example = {
myhost = {
domain = "my-xmpp-example-host.org";
enabled = true;
};
};
default = {
localhost = {
domain = "localhost";
enabled = true;
};
};
options = [ vHostOpts ];
};
ssl = mkOption {
description = "Paths to SSL files";
default = null;
options = [ sslOpts ];
};
admins = mkOption {
description = "List of administrators of the current host";
example = [ "admin1@example.com" "admin2@example.com" ];
default = [];
};
extraConfig = mkOption {
default = '''';
description = "Additional prosody configuration";
};
};
};
###### implementation
config = mkIf cfg.enable {
environment.systemPackages = [ pkgs.prosody ];
environment.etc."prosody/prosody.cfg.lua".text = ''
pidfile = "/var/lib/prosody/prosody.pid"
log = "*syslog"
data_path = "/var/lib/prosody"
allow_registration = ${ if cfg.allowRegistration then "true" else "false" };
${ optionalString cfg.modules.console "console_enabled = true;" }
${ optionalString (cfg.ssl != null) (createSSLOptsStr cfg.ssl) }
admins = { ${lib.concatStringsSep ", " (map (n: "\"${n}\"") cfg.admins) } };
modules_enabled = {
${ lib.concatStringsSep "\n\ \ " (lib.mapAttrsToList
(name: val: optionalString val ''"${name}";'')
cfg.modules) }
${ optionalString cfg.allowRegistration "\"register\"\;" }
${ lib.concatStringsSep "\n" (map (x: "\"${x}\";") cfg.extraModules)}
"posix";
};
${ cfg.extraConfig }
${ lib.concatStringsSep "\n" (lib.mapAttrsToList (n: v: ''
VirtualHost "${v.domain}"
enabled = ${if v.enabled then "true" else "false"};
${ optionalString (v.ssl != null) (createSSLOptsStr v.ssl) }
${ v.extraConfig }
'') cfg.virtualHosts) }
'';
users.extraUsers.prosody = {
uid = config.ids.uids.prosody;
description = "Prosody user";
createHome = true;
group = "prosody";
home = "/var/lib/prosody";
};
users.extraGroups.prosody = {
gid = config.ids.gids.prosody;
};
systemd.services.prosody = {
description = "Prosody XMPP server";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
User = "prosody";
PIDFile = "/var/lib/prosody/prosody.pid";
ExecStart = "${pkgs.prosody}/bin/prosodyctl start";
};
};
};
}

View File

@ -0,0 +1,75 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.seeks;
confDir = cfg.confDir;
seeks = pkgs.seeks.override { seeks_confDir = confDir; };
in
{
###### interface
options = {
services.seeks = {
enable = mkOption {
default = false;
type = types.bool;
description = "
Whether to enable the Seeks server.
";
};
confDir = mkOption {
default = "";
type = types.str;
description = "
The Seeks server configuration. If it is not specified,
a default configuration is used (${seeks}/etc/seeks).
";
};
};
};
###### implementation
config = mkIf config.services.seeks.enable {
users.extraUsers.seeks =
{ uid = config.ids.uids.seeks;
description = "Seeks user";
createHome = true;
home = "/var/lib/seeks";
};
users.extraGroups.seeks =
{ gid = config.ids.gids.seeks;
};
systemd.services.seeks =
{
description = "Seeks server, the p2p search engine.";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
User = "seeks";
ExecStart = "${seeks}/bin/seeks";
};
};
environment.systemPackages = [ seeks ];
};
}

View File

@ -25,6 +25,10 @@ let
sendmailPath = "/var/setuid-wrappers/sendmail";
};
allFiles = map (f: "\"${f}\"") (
[ "${systemCronJobsFile}" ] ++ config.services.cron.cronFiles
);
in
{
@ -71,6 +75,15 @@ in
'';
};
cronFiles = mkOption {
type = types.listOf types.path;
default = [];
description = ''
A list of extra crontab files that will be read and appended to the main
crontab file when the cron service starts.
'';
};
};
};
@ -78,14 +91,7 @@ in
###### implementation
config = mkIf config.services.cron.enable {
environment.etc = singleton
# The system-wide crontab.
{ source = systemCronJobsFile;
target = "crontab";
mode = "0600"; # Cron requires this.
};
config = mkIf (config.services.cron.enable && allFiles != []) {
security.setuidPrograms = [ "crontab" ];
@ -100,6 +106,10 @@ in
preStart =
''
rm -f /etc/crontab
cat ${toString allFiles} > /etc/crontab
chmod 0600 /etc/crontab
mkdir -m 710 -p /var/cron
# By default, allow all users to create a crontab. This

View File

@ -18,6 +18,7 @@ in
./i3.nix
./herbstluftwm.nix
./bspwm.nix
./stumpwm.nix
];
options = {
@ -60,4 +61,4 @@ in
config = {
services.xserver.displayManager.session = cfg.session;
};
}
}

View File

@ -0,0 +1,30 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.xserver.windowManager.stumpwm;
in
{
options = {
services.xserver.windowManager.stumpwm = {
enable = mkOption {
type = types.bool;
default = false;
example = true;
description = "Enable the stumpwm tiling window manager.";
};
};
};
config = mkIf cfg.enable {
services.xserver.windowManager.session = singleton {
name = "stumpwm";
start = "
${pkgs.stumpwm}/bin/stumpwm
";
};
environment.systemPackages = [ pkgs.stumpwm ];
};
}

View File

@ -368,6 +368,14 @@ exec 3>&-
@postMountCommands@
# Emit a udev rule for /dev/root to prevent systemd from complaining.
eval $(udevadm info --export --export-prefix=ROOT_ --device-id-of-file=$targetRoot || true)
if [ "$ROOT_MAJOR" -a "$ROOT_MINOR" -a "$ROOT_MAJOR" != 0 ]; then
mkdir -p /run/udev/rules.d
echo 'ACTION=="add|change", SUBSYSTEM=="block", ENV{MAJOR}=="'$ROOT_MAJOR'", ENV{MINOR}=="'$ROOT_MINOR'", SYMLINK+="root"' > /run/udev/rules.d/61-dev-root-link.rules
fi
# Stop udevd.
udevadm control --exit || true

View File

@ -346,9 +346,6 @@ in
(isYes "BLK_DEV_INITRD")
];
# Prevent systemd from waiting for the /dev/root symlink.
systemd.units."dev-root.device".text = "";
boot.initrd.supportedFilesystems = map (fs: fs.fsType) fileSystems;
};

View File

@ -155,6 +155,7 @@ in
systemd.services."zpool-import" = {
description = "Import zpools";
after = [ "systemd-udev-settle.service" ];
wantedBy = [ "local-fs.target" ];
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;

View File

@ -773,29 +773,28 @@ in
wantedBy = [ "network.target" (subsystemDevice n) ];
bindsTo = deps;
after = deps;
before = [ "${n}-cfg.service" ];
serviceConfig.Type = "oneshot";
serviceConfig.RemainAfterExit = true;
path = [ pkgs.ifenslave pkgs.iproute ];
script = ''
# Remove Dead Interfaces
ip link set "${n}" down >/dev/null 2>&1 || true
ifenslave -d "${n}" >/dev/null 2>&1 || true
ip link del "${n}" >/dev/null 2>&1 || true
ip link add name "${n}" type bond
# !!! There must be a better way to wait for the interface
while [ ! -d /sys/class/net/${n} ]; do sleep 0.1; done;
# Ensure the link is down so that we can set options
ip link set "${n}" down
# Set the miimon and mode options
${optionalString (v.miimon != null)
"echo ${toString v.miimon} > /sys/class/net/${n}/bonding/miimon"}
"echo \"${toString v.miimon}\" >/sys/class/net/${n}/bonding/miimon"}
${optionalString (v.mode != null)
"echo \"${v.mode}\" > /sys/class/net/${n}/bonding/mode"}
"echo \"${v.mode}\" >/sys/class/net/${n}/bonding/mode"}
${optionalString (v.lacp_rate != null)
"echo \"${v.lacp_rate}\" > /sys/class/net/${n}/bonding/lacp_rate"}
"echo \"${v.lacp_rate}\" >/sys/class/net/${n}/bonding/lacp_rate"}
${optionalString (v.xmit_hash_policy != null)
"echo \"${v.xmit_hash_policy}\" > /sys/class/net/${n}/bonding/xmit_hash_policy"}
"echo \"${v.xmit_hash_policy}\" >/sys/class/net/${n}/bonding/xmit_hash_policy"}
# Bring up the bond and enslave the specified interfaces
ip link set "${n}" up
@ -804,8 +803,10 @@ in
'')}
'';
postStop = ''
ip link set "${n}" down >dev/null 2>&1 || true
ifenslave -d "${n}" >/dev/null 2>&1 || true
${flip concatMapStrings v.interfaces (i: ''
ifenslave -d "${n}" "${i}" >/dev/null 2>&1 || true
'')}
ip link set "${n}" down >/dev/null 2>&1 || true
ip link del "${n}" >/dev/null 2>&1 || true
'';
});

View File

@ -70,10 +70,10 @@ in
# Register the paths in the Nix database.
printRegistration=1 perl ${pkgs.pathsFromGraph} /tmp/xchg/closure | \
chroot /mnt ${config.nix.package}/bin/nix-store --load-db
chroot /mnt ${config.nix.package}/bin/nix-store --load-db --option build-users-group ""
# Create the system profile to allow nixos-rebuild to work.
chroot /mnt ${config.nix.package}/bin/nix-env \
chroot /mnt ${config.nix.package}/bin/nix-env --option build-users-group "" \
-p /nix/var/nix/profiles/system --set ${config.system.build.toplevel}
# `nixos-rebuild' requires an /etc/NIXOS.

View File

@ -383,7 +383,7 @@ in
# When building a regular system configuration, override whatever
# video driver the host uses.
services.xserver.videoDrivers = mkVMOverride [ "vesa" ];
services.xserver.videoDrivers = mkVMOverride [ "modesetting" ];
services.xserver.defaultDepth = mkVMOverride 0;
services.xserver.resolutions = mkVMOverride [ { x = 1024; y = 768; } ];
services.xserver.monitorSection =

View File

@ -47,12 +47,10 @@ in rec {
(all nixos.iso_graphical)
(all nixos.ova)
#(all nixos.tests.efi-installer.simple)
#(all nixos.tests.containers)
(all nixos.tests.firefox)
(all nixos.tests.firewall)
(all nixos.tests.gnome3)
#(all nixos.tests.installer.efi)
(all nixos.tests.installer.grub1)
(all nixos.tests.installer.lvm)
(all nixos.tests.installer.separateBoot)

91
nixos/release-small.nix Normal file
View File

@ -0,0 +1,91 @@
# This jobset is used to generate a NixOS channel that contains a
# small subset of Nixpkgs, mostly useful for servers that need fast
# security updates.
{ nixpkgs ? { outPath = ./..; revCount = 56789; shortRev = "gfedcba"; }
, stableBranch ? false
, supportedSystems ? [ "x86_64-linux" ] # no i686-linux
}:
let
nixpkgsSrc = nixpkgs; # urgh
pkgs = import ./.. {};
lib = pkgs.lib;
nixos' = import ./release.nix {
inherit stableBranch supportedSystems;
nixpkgs = nixpkgsSrc;
};
nixpkgs' = builtins.removeAttrs (import ../pkgs/top-level/release.nix {
inherit supportedSystems;
nixpkgs = nixpkgsSrc;
}) [ "unstable" ];
in rec {
nixos = {
inherit (nixos') channel manual iso_minimal dummy;
tests = {
inherit (nixos'.tests)
containers
firewall
ipv6
login
misc
nat
nfs3
openssh
proxy
simple;
installer = {
inherit (nixos'.tests.installer)
grub1
lvm
separateBoot
simple;
};
};
};
nixpkgs = {
inherit (nixpkgs')
apacheHttpd_2_2
apacheHttpd_2_4
cmake
cryptsetup
emacs
gettext
git
imagemagick
linux
mysql51
mysql55
nginx
openssh
php
postgresql92
postgresql93
python
rsyslog
stdenv
subversion
tarball
vim;
};
tested = pkgs.releaseTools.aggregate {
name = "nixos-${nixos.channel.version}";
meta = {
description = "Release-critical builds for the NixOS channel";
maintainers = [ lib.maintainers.eelco ];
};
constituents =
let all = x: map (system: x.${system}) supportedSystems; in
[ nixpkgs.tarball ] ++ lib.collect lib.isDerivation nixos;
};
}

View File

@ -132,6 +132,10 @@ in rec {
manpages = buildFromConfig ({ pkgs, ... }: { }) (config: config.system.build.manual.manpages);
# Build the initial ramdisk so Hydra can keep track of its size over time.
initialRamdisk = buildFromConfig ({ pkgs, ... }: { }) (config: config.system.build.initialRamdisk);
iso_minimal = forAllSystems (system: makeIso {
module = ./modules/installer/cd-dvd/installation-cd-minimal.nix;
type = "minimal";
@ -188,12 +192,15 @@ in rec {
# Ensure that all packages used by the minimal NixOS config end up in the channel.
dummy = forAllSystems (system: pkgs.runCommand "dummy"
{ propagatedBuildInputs = (import lib/eval-config.nix {
{ toplevel = (import lib/eval-config.nix {
inherit system;
modules = lib.singleton ({ config, pkgs, ... }: { });
}).config.environment.systemPackages;
modules = lib.singleton ({ config, pkgs, ... }:
{ fileSystems."/".device = lib.mkDefault "/dev/sda1";
boot.loader.grub.device = lib.mkDefault "/dev/sda";
});
}).config.system.build.toplevel;
}
"mkdir $out; fixupPhase");
"mkdir $out; ln -s $toplevel $out/dummy");
# Provide a tarball that can be unpacked into an SD card, and easily
@ -231,7 +238,6 @@ in rec {
tests.firefox = callTest tests/firefox.nix {};
tests.firewall = callTest tests/firewall.nix {};
tests.gnome3 = callTest tests/gnome3.nix {};
tests.installer.efi = forAllSystems (system: scrubDrv (import tests/installer.nix { inherit system; }).efi.test);
tests.installer.grub1 = forAllSystems (system: scrubDrv (import tests/installer.nix { inherit system; }).grub1.test);
tests.installer.lvm = forAllSystems (system: scrubDrv (import tests/installer.nix { inherit system; }).lvm.test);
tests.installer.rebuildCD = forAllSystems (system: scrubDrv (import tests/installer.nix { inherit system; }).rebuildCD.test);

View File

@ -28,7 +28,7 @@ in
nodes =
{ tracker =
{ config, pkgs, ... }:
{ environment.systemPackages = [ pkgs.transmission ];
{ environment.systemPackages = [ pkgs.transmission pkgs.opentracker ];
# We need Apache on the tracker to serve the torrents.
services.httpd.enable = true;
@ -86,7 +86,7 @@ in
# Start the tracker. !!! use a less crappy tracker
$tracker->waitForUnit("network.target");
$tracker->succeed("bittorrent-tracker --port 6969 --dfile /tmp/dstate >&2 &");
$tracker->succeed("opentracker -p 6969 >&2 &");
$tracker->waitForOpenPort(6969);
# Start the initial seeder.

View File

@ -35,7 +35,7 @@ let
# The configuration to install.
makeConfig = { testChannel, useEFI, grubVersion, grubDevice, grubIdentifier
makeConfig = { testChannel, grubVersion, grubDevice, grubIdentifier
, readOnly ? true, forceGrubReinstallCount ? 0 }:
pkgs.writeText "configuration.nix" ''
{ config, pkgs, modulesPath, ... }:
@ -46,18 +46,13 @@ let
<nixpkgs/nixos/modules/profiles/minimal.nix>
];
${if useEFI then ''
boot.loader.efi.canTouchEfiVariables = true;
boot.loader.gummiboot.enable = true;
'' else ''
boot.loader.grub.version = ${toString grubVersion};
${optionalString (grubVersion == 1) ''
boot.loader.grub.splashImage = null;
''}
boot.loader.grub.device = "${grubDevice}";
boot.loader.grub.extraConfig = "serial; terminal_output.serial";
boot.loader.grub.fsIdentifier = "${grubIdentifier}";
boot.loader.grub.version = ${toString grubVersion};
${optionalString (grubVersion == 1) ''
boot.loader.grub.splashImage = null;
''}
boot.loader.grub.device = "${grubDevice}";
boot.loader.grub.extraConfig = "serial; terminal_output.serial";
boot.loader.grub.fsIdentifier = "${grubIdentifier}";
boot.loader.grub.configurationLimit = 100 + ${toString forceGrubReinstallCount};
@ -100,16 +95,14 @@ let
# disk, and then reboot from the hard disk. It's parameterized with
# a test script fragment `createPartitions', which must create
# partitions and filesystems.
testScriptFun = { createPartitions, testChannel, useEFI, grubVersion, grubDevice, grubIdentifier }:
testScriptFun = { createPartitions, testChannel, grubVersion, grubDevice, grubIdentifier }:
let
# FIXME: OVMF doesn't boot from virtio http://www.mail-archive.com/edk2-devel@lists.sourceforge.net/msg01501.html
iface = if useEFI || grubVersion == 1 then "scsi" else "virtio";
iface = if grubVersion == 1 then "scsi" else "virtio";
qemuFlags =
(if iso.system == "x86_64-linux" then "-m 768 " else "-m 512 ") +
(optionalString (iso.system == "x86_64-linux") "-cpu kvm64 ") +
(optionalString useEFI ''-L ${efiBios} -hda ''${\(Cwd::abs_path('harddisk'))} '');
hdFlags = optionalString (!useEFI)
''hda => "harddisk", hdaInterface => "${iface}", '';
(optionalString (iso.system == "x86_64-linux") "-cpu kvm64 ");
hdFlags =''hda => "harddisk", hdaInterface => "${iface}", '';
in
''
createDisk("harddisk", 4 * 1024);
@ -168,7 +161,7 @@ let
$machine->succeed("cat /mnt/etc/nixos/hardware-configuration.nix >&2");
$machine->copyFileFromHost(
"${ makeConfig { inherit testChannel useEFI grubVersion grubDevice grubIdentifier; } }",
"${ makeConfig { inherit testChannel grubVersion grubDevice grubIdentifier; } }",
"/mnt/etc/nixos/configuration.nix");
# Perform the installation.
@ -189,11 +182,7 @@ let
# Did /boot get mounted?
$machine->waitForUnit("local-fs.target");
${if useEFI then ''
$machine->succeed("test -e /boot/efi");
'' else ''
$machine->succeed("test -e /boot/grub");
''}
$machine->succeed("test -e /boot/grub");
# Did the swap device get activated?
$machine->waitForUnit("swap.target");
@ -206,7 +195,7 @@ let
# We need to a writable nix-store on next boot
$machine->copyFileFromHost(
"${ makeConfig { inherit testChannel useEFI grubVersion grubDevice grubIdentifier; readOnly = false; forceGrubReinstallCount = 1; } }",
"${ makeConfig { inherit testChannel grubVersion grubDevice grubIdentifier; readOnly = false; forceGrubReinstallCount = 1; } }",
"/etc/nixos/configuration.nix");
# Check whether nixos-rebuild works.
@ -223,7 +212,7 @@ let
$machine = createMachine({ ${hdFlags} qemuFlags => "${qemuFlags}" });
$machine->waitForUnit("multi-user.target");
$machine->copyFileFromHost(
"${ makeConfig { inherit testChannel useEFI grubVersion grubDevice grubIdentifier; readOnly = false; forceGrubReinstallCount = 2; } }",
"${ makeConfig { inherit testChannel grubVersion grubDevice grubIdentifier; readOnly = false; forceGrubReinstallCount = 2; } }",
"/etc/nixos/configuration.nix");
$machine->succeed("nixos-rebuild boot >&2");
$machine->shutdown;
@ -237,13 +226,13 @@ let
makeInstallerTest = name:
{ createPartitions, testChannel ? false, useEFI ? false, grubVersion ? 2, grubDevice ? "/dev/vda", grubIdentifier ? "uuid" }:
{ createPartitions, testChannel ? false, grubVersion ? 2, grubDevice ? "/dev/vda", grubIdentifier ? "uuid" }:
makeTest {
inherit iso;
name = "installer-" + name;
nodes = if testChannel then { inherit webserver; } else { };
testScript = testScriptFun {
inherit createPartitions testChannel useEFI grubVersion grubDevice grubIdentifier;
inherit createPartitions testChannel grubVersion grubDevice grubIdentifier;
};
};
@ -369,25 +358,6 @@ in {
grubDevice = "/dev/sda";
};
# Test an EFI install.
efi = makeInstallerTest "efi"
{ createPartitions =
''
$machine->succeed(
"sgdisk -Z /dev/sda",
"sgdisk -n 1:0:+256M -n 2:0:+1024M -N 3 -t 1:ef00 -t 2:8200 -t 3:8300 -c 1:boot -c 2:swap -c 3:root /dev/sda",
"mkfs.vfat -n BOOT /dev/sda1",
"mkswap /dev/sda2 -L swap",
"swapon -L swap",
"mkfs.ext3 -L nixos /dev/sda3",
"mount LABEL=nixos /mnt",
"mkdir /mnt/boot",
"mount LABEL=BOOT /mnt/boot",
);
'';
useEFI = true;
};
# Rebuild the CD configuration with a little modification.
rebuildCD = makeTest
{ inherit iso;

View File

@ -4,11 +4,11 @@
stdenv.mkDerivation rec {
name = "guitarix-${version}";
version = "0.30.0";
version = "0.31.0";
src = fetchurl {
url = "mirror://sourceforge/guitarix/guitarix2-${version}.tar.bz2";
sha256 = "0fbapd1pcixzlqxgzb2s2q1c64g9z9lf4hz3vy73z55cnpk72vdx";
sha256 = "0n3swk4xahspf42qglikfmvcz8my43wmp6sp4ns7h4m8hr9lgfk6";
};
buildInputs = [

View File

@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
description = "An ncurses console audio player designed to be powerful and easy to use";
homepage = http://moc.daper.net/;
license = licenses.gpl2;
maintainers = with maintainers; [ pSub ];
maintainers = with maintainers; [ pSub jagajaga ];
platforms = platforms.linux;
};
}

View File

@ -6,11 +6,11 @@ assert stdenv ? glibc;
stdenv.mkDerivation rec {
name = "yoshimi-${version}";
version = "1.2.3";
version = "1.2.4";
src = fetchurl {
url = "mirror://sourceforge/yoshimi/${name}.tar.bz2";
sha256 = "00bp699k8gnilin2rvgj35334s9jrizp82qwlmzzvvfliwcgqlqw";
sha256 = "0wz2bc0x0h989schwzqjj6sx9hvzxkw4jrkflwhyrzjini1pvkxz";
};
buildInputs = [

View File

@ -17,7 +17,7 @@ let
desktopItem = makeDesktopItem {
name = loName;
exec = loName;
comment = meta.longDescription;
comment = lib.replaceChars ["\n"] [" "] meta.longDescription;
desktopName = product;
genericName = meta.description;
categories = "Application;Development;";
@ -147,54 +147,42 @@ in
android-studio = buildAndroidStudio rec {
name = "android-studio-${version}";
version = "0.8.10";
build = "135.1428667";
version = "0.8.12";
build = "135.1503853";
description = "Android development environment based on IntelliJ IDEA";
license = stdenv.lib.licenses.asl20;
src = fetchurl {
url = "https://dl.google.com/dl/android/studio/ide-zips/${version}" +
"/android-studio-ide-${build}-linux.zip";
sha256 = "5736a92ffda24233026ff45a47f1b4f9567ba40347cfa0c9f351112e729b5401";
sha256 = "225c8b2f90b9159c465eae5797132350660994184a568c631d4383313a510695";
};
};
idea-community = buildIdea rec {
name = "idea-community-${version}";
version = "13.1.4b";
build = "IC-135.1230";
version = "13.1.5";
build = "IC-135.1289";
description = "Integrated Development Environment (IDE) by Jetbrains, community edition";
license = stdenv.lib.licenses.asl20;
src = fetchurl {
url = "http://download-ln.jetbrains.com/idea/ideaIC-${version}.tar.gz";
sha256 = "8b4ee25fd2934e06b87230b50e1474183ed4b331c1626a7fee69b96294d9616d";
sha256 = "e08b9adad0ed9aa62a43f3026a1b499d1663710314d00a3bec2e171a6c375f09";
};
};
idea-ultimate = buildIdea rec {
name = "idea-ultimate-${version}";
version = "13.1.4b";
build = "IU-135.1230";
version = "13.1.5";
build = "IU-135.1289";
description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "http://download-ln.jetbrains.com/idea/ideaIU-${version}.tar.gz";
sha256 = "84660d97c9c3e4e7cfd6c2708f4685dc7322157f1e1c2888feac64df119f0606";
sha256 = "0800b1ffc135f884e46f1004289fb75850148d705afc447d3374cfd281c231a2";
};
};
pycharm-community-313 = buildPycharm rec {
name = "pycharm-community-${version}";
version = "3.1.3";
build = "133.1347";
description = "PyCharm 3.1 Community Edition";
license = stdenv.lib.licenses.asl20;
src = fetchurl {
url = "http://download.jetbrains.com/python/${name}.tar.gz";
sha256 = "f671ee4c99207c179f168b5b98fa23afe90a94c3a3914367b95a46b0c2881b23";
};
};
pycharm-community-341 = buildPycharm rec {
pycharm-community = buildPycharm rec {
name = "pycharm-community-${version}";
version = "3.4.1";
build = "135.1057";
@ -206,19 +194,7 @@ in
};
};
pycharm-professional-313 = buildPycharm rec {
name = "pycharm-professional-${version}";
version = "3.1.3";
build = "133.1347";
description = "PyCharm 3.1 Professional Edition";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "http://download.jetbrains.com/python/${name}.tar.gz";
sha256 = "e0c2db8f18cb825a95de6ddc4b0b9f93c5643bf34cca9f1b3c2fa37fd7c14f11";
};
};
pycharm-professional-341 = buildPycharm rec {
pycharm-professional = buildPycharm rec {
name = "pycharm-professional-${version}";
version = "3.4.1";
build = "135.1057";
@ -230,4 +206,4 @@ in
};
};
}
}

View File

@ -0,0 +1,66 @@
{ stdenv, fetchurl, unzip, cmake, pkgconfig, makeWrapper
, hunspell, minizip, boost, xercesc, qt5
}:
let
version = "0.7.4";
in
stdenv.mkDerivation rec {
name = "sigil-${version}";
src = fetchurl {
url = "https://sigil.googlecode.com/files/Sigil-${version}-Code.zip";
sha256 = "68c7ca15ea8611921af0c435369563f55c6afd2ef1fb0945cf6c4a47429b0fb5";
};
buildInputs = [
unzip cmake pkgconfig
hunspell minizip boost xercesc qt5
];
# XXX: the compiler seems to treat the .h file inappropriately:
#
# COMMAND ${CMAKE_CXX_COMPILER} ${compile_flags} \
# ${CMAKE_CURRENT_SOURCE_DIR}/${header_name}.h \
# -o ${header_name}.h.gch
#
# but using -c or -x c++-header seems to work:
#
# COMMAND ${CMAKE_CXX_COMPILER} ${compile_flags} \
# -c ${CMAKE_CURRENT_SOURCE_DIR}/${header_name}.h \
# -o ${header_name}.h.gch
#
# COMMAND ${CMAKE_CXX_COMPILER} ${compile_flags} \
# -x c++-header ${CMAKE_CURRENT_SOURCE_DIR}/${header_name}.h \
# -o ${header_name}.h.gch
#
# Might be related to:
#
# http://permalink.gmane.org/gmane.comp.gcc.bugs/361195
buildCommand = ''
mkdir -pv $out
mkdir -pv ${name}/src ${name}/build ${name}/run
cd ${name}/src
unzip -n ${src}
sed -i \
-e 's|\(COMMAND\) \([^ ]\+\) \([^ ]\+\) \(.*\)|\1 \2 \3 -c \4|' \
cmake_extras/CustomPCH.cmake
cd ../build
cmake -G "Unix Makefiles" \
-DCMAKE_INSTALL_PREFIX=$out \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_SKIP_BUILD_RPATH=ON \
../src
make
make install
'';
meta = {
description = "Free, open source, multi-platform ebook (ePub) editor";
homepage = https://code.google.com/p/sigil/;
license = stdenv.lib.licenses.gpl3;
inherit version;
};
}

View File

@ -0,0 +1,24 @@
This is free and unencumbered software released into the public domain.
Anyone is free to copy, modify, publish, use, compile, sell, or
distribute this software, either in source code form or as a compiled
binary, for any purpose, commercial or non-commercial, and by any
means.
In jurisdictions that recognize copyright laws, the author or authors
of this software dedicate any and all copyright interest in the
software to the public domain. We make this dedication for the benefit
of the public at large and to the detriment of our heirs and
successors. We intend this dedication to be an overt act of
relinquishment in perpetuity of all present and future rights to this
software under copyright law.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
For more information, please refer to <http://unlicense.org>

View File

@ -0,0 +1,17 @@
name: yi-custom
version: 0.0.0.1
category: Yi
synopsis: Convenience wrapper for nix
description: Convenience wrapper for nix
license: PublicDomain
license-file: LICENSE
author: Mateusz Kowalczyk
maintainer: fuuzetsu@fuuzetsu.co.uk
Cabal-Version: >= 1.10
build-type: Simple
library
hs-source-dirs: .
default-language: Haskell2010
build-depends: base, yi
ghc-options: -threaded

View File

@ -0,0 +1,42 @@
# This is a manually-written expression over an in-tree cabal file.
# It's awkward but this way allows the package user to pass in
# extraPackages without much extra hassle on their end, similarly how
# the XMonad service handles it: the difference is that we don't have
# anything like XMONAD_GHC…
#
# The idea is that the user changes their configs using any libraries
# he likes and then builds it using this expression. Once that's done,
# reload and similar functions should all work as long as the user
# doesn't need new libraries at which point they should add them to
# extraPackages and rebuild from the expression.
{ cabal, yi, extraPackages, makeWrapper }:
cabal.mkDerivation (self: rec {
pname = "yi-custom";
version = "0.0.0.1";
src = ./yi-custom-cabal;
isLibrary = true;
buildDepends = extraPackages ++ [ yi ];
buildTools = [ makeWrapper ];
noHaddock = true;
doCheck = false;
# Allows Yi to find the libraries it needs at runtime. We drop :
# from this GHC_PACKAGE_PATH because we're wrapping over a different
# wrapper that used --prefix: if we didn't, we end up with a
# double-colon, confusing GHC.
postInstall = ''
makeWrapper ${yi}/bin/yi $out/bin/yi --set GHC_PACKAGE_PATH ''${GHC_PACKAGE_PATH%?}
'';
meta = {
homepage = "http://haskell.org/haskellwiki/Yi";
description = "Wrapper over user-specified Haskell libraries for use in Yi config";
license = self.stdenv.lib.licenses.publicDomain;
platforms = self.ghc.meta.platforms;
maintainers = with self.stdenv.lib.maintainers; [ fuuzetsu ];
# The wrapper does not yet work properly if we actually try to use it.
broken = true;
};
})

View File

@ -1,65 +1,43 @@
{ cabal, alex, binary, Cabal, cautiousFile, concreteTyperep
, dataDefault, derive, Diff, dlist, dyre, filepath, fingertree
, glib, gtk, hashable, hint, HUnit, lens, mtl, pango, parsec
, pointedlist, QuickCheck, random, regexBase, regexTdfa, safe
, split, tasty, tastyHunit, tastyQuickcheck, time, transformersBase
, uniplate, unixCompat, unorderedContainers, utf8String, vty
, xdgBasedir
, withPango ? true
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
# User may need extra dependencies for their configuration file so we
# want to specify it here to have them available when wrapping the
# produced binary.
, extraDepends ? [ ]
{ cabal, binary, Cabal, cautiousFile, dataDefault, derive, dlist
, dynamicState, dyre, filepath, glib, gtk, hashable, hint, HUnit
, lens, makeWrapper, mtl, ooPrototypes, pango, parsec, pointedlist
, QuickCheck, random, regexBase, regexTdfa, safe, semigroups, split
, tagged, tasty, tastyHunit, tastyQuickcheck, text, time
, transformersBase, unixCompat, unorderedContainers, utf8String
, vty, wordTrie, xdgBasedir, yiLanguage, yiRope
}:
cabal.mkDerivation (self: {
pname = "yi";
version = "0.8.2";
sha256 = "18rnyswsdzkh0jdcqfg8pr90mpm6xf11siv598svqkxg12d2qql9";
version = "0.10.1";
sha256 = "1vj4ndp43w7xlji4p2px79a8g90p64g54sr3hx4pzimwrlpmifk8";
isLibrary = true;
isExecutable = true;
buildDepends = [
binary Cabal cautiousFile concreteTyperep dataDefault derive Diff
dlist dyre filepath fingertree hashable hint lens mtl
binary Cabal cautiousFile dataDefault derive dlist dynamicState
dyre filepath glib gtk hashable hint lens mtl ooPrototypes pango
parsec pointedlist QuickCheck random regexBase regexTdfa safe
split time transformersBase uniplate unixCompat unorderedContainers
utf8String vty xdgBasedir
] ++ (if withPango then [ pango gtk glib ] else [ ]) ++ extraDepends;
testDepends = [
filepath HUnit QuickCheck tasty tastyHunit tastyQuickcheck
semigroups split tagged text time transformersBase unixCompat
unorderedContainers utf8String vty wordTrie xdgBasedir yiLanguage
yiRope
];
buildTools = [ alex ];
configureFlags = if withPango then "-fpango" else "-f-pango";
doCheck = false;
# https://ghc.haskell.org/trac/ghc/ticket/9170
noHaddock = self.ghc.version == "7.6.3";
# Allows Yi to find the libraries it needs at runtime.
testDepends = [
filepath HUnit lens QuickCheck semigroups tasty tastyHunit
tastyQuickcheck text yiLanguage yiRope
];
buildTools = [ makeWrapper ];
configureFlags = "-fpango -fvty";
noHaddock = self.stdenv.lib.versionOlder self.ghc.version "7.8";
postInstall = ''
mv $out/bin/yi $out/bin/.yi-wrapped
cat - > $out/bin/yi <<EOF
#! ${self.stdenv.shell}
# Trailing : is necessary for it to pick up Prelude &c.
export GHC_PACKAGE_PATH=$(${self.ghc.GHCGetPackages} ${self.ghc.version} \
| sed 's/-package-db\ //g' \
| sed 's/^\ //g' \
| sed 's/\ /:/g')\
:$out/lib/ghc-${self.ghc.version}/package.conf.d/yi-$version.installedconf:
eval exec $out/bin/.yi-wrapped "\$@"
EOF
chmod +x $out/bin/yi
wrapProgram $out/bin/yi --suffix GHC_PACKAGE_PATH : $out/lib/ghc-${self.ghc.version}/package.conf.d/yi-$version.installedconf:$GHC_PACKAGE_PATH
'';
meta = {
homepage = "http://haskell.org/haskellwiki/Yi";
description = "The Haskell-Scriptable Editor";
license = self.stdenv.lib.licenses.gpl2;
platforms = self.ghc.meta.platforms;
hydraPlatforms = self.stdenv.lib.platforms.none;
maintainers = [ self.stdenv.lib.maintainers.fuuzetsu ];
broken = true;
maintainers = with self.stdenv.lib.maintainers; [ fuuzetsu ];
};
})

View File

@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake python ];
enableParallelBuilding = true;
# fatal error: ui_qgsdelimitedtextsourceselectbase.h: No such file or directory
#enableParallelBuilding = true;
# To handle the lack of 'local' RPATH; required, as they call one of
# their built binaries requiring their libs, in the build process.

View File

@ -7,8 +7,8 @@ stdenv.mkDerivation rec {
src = fetchurlGnome {
project = "dia";
major = "0"; minor = "97"; patchlevel = "2"; extension = "xz";
sha256 = "1qgawm7rrf4wd1yc0fp39ywv8gbz4ry1s16k00dzg5w6p67lfqd7";
major = "0"; minor = "97"; patchlevel = "3"; extension = "xz";
sha256 = "0d3x6w0l6fwd0l8xx06y1h56xf8ss31yzia3a6xr9y28xx44x492";
};
correctPersistence = fetchurl {
@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
configureFlags = stdenv.lib.optionalString withGNOME "--enable-gnome";
patches = [ ./glib-top-level-header.patch ];
patches = [ ];
# This file should normally require a gtk-update-icon-cache -q /usr/share/icons/hicolor command
# It have no reasons to exist in a redistribuable package

View File

@ -1,471 +0,0 @@
diff -Naur dia-0.97.2-orig/app/app_procs.c dia-0.97.2/app/app_procs.c
--- dia-0.97.2-orig/app/app_procs.c 2011-03-20 07:18:13.000000000 -0400
+++ dia-0.97.2/app/app_procs.c 2012-07-15 10:49:08.192726306 -0400
@@ -50,7 +50,7 @@
#include <libxml/parser.h>
#include <libxml/xmlerror.h>
-#include <glib/gstdio.h>
+#include <glib.h>
#include "intl.h"
#include "app_procs.h"
diff -Naur dia-0.97.2-orig/app/dia-win-remote.c dia-0.97.2/app/dia-win-remote.c
--- dia-0.97.2-orig/app/dia-win-remote.c 2010-08-03 11:35:35.000000000 -0400
+++ dia-0.97.2/app/dia-win-remote.c 2012-07-15 10:49:08.159726316 -0400
@@ -35,7 +35,7 @@
#include <shellapi.h>
#include <Shlwapi.h>
#include <glib.h>
-#include <glib/gprintf.h>
+#include <glib.h>
/**
* PROTOTYPES:
diff -Naur dia-0.97.2-orig/app/filedlg.c dia-0.97.2/app/filedlg.c
--- dia-0.97.2-orig/app/filedlg.c 2009-11-07 12:13:53.000000000 -0500
+++ dia-0.97.2/app/filedlg.c 2012-07-15 10:49:08.227726294 -0400
@@ -28,7 +28,7 @@
#include <unistd.h>
#endif
#include <stdio.h>
-#include <glib/gstdio.h>
+#include <glib.h>
#undef GTK_DISABLE_DEPRECATED /* gtk_file_chooser_dialog_new_with_backend */
#include <gtk/gtk.h>
diff -Naur dia-0.97.2-orig/app/load_save.c dia-0.97.2/app/load_save.c
--- dia-0.97.2-orig/app/load_save.c 2011-09-25 07:55:11.000000000 -0400
+++ dia-0.97.2/app/load_save.c 2012-07-15 10:49:08.203726303 -0400
@@ -30,7 +30,7 @@
#include <string.h>
#include <glib.h>
-#include <glib/gstdio.h> /* g_access() and friends */
+#include <glib.h> /* g_access() and friends */
#include <errno.h>
#ifndef W_OK
diff -Naur dia-0.97.2-orig/app/sheets_dialog_callbacks.c dia-0.97.2/app/sheets_dialog_callbacks.c
--- dia-0.97.2-orig/app/sheets_dialog_callbacks.c 2009-11-07 12:13:53.000000000 -0500
+++ dia-0.97.2/app/sheets_dialog_callbacks.c 2012-07-15 10:49:08.201726302 -0400
@@ -44,7 +44,7 @@
#endif
#endif
-#include <glib/gstdio.h>
+#include <glib.h>
#include <gmodule.h>
#undef GTK_DISABLE_DEPRECATED /* GtkOptionMenu */
diff -Naur dia-0.97.2-orig/ChangeLog.pre-git dia-0.97.2/ChangeLog.pre-git
--- dia-0.97.2-orig/ChangeLog.pre-git 2009-11-07 09:28:34.000000000 -0500
+++ dia-0.97.2/ChangeLog.pre-git 2012-07-15 10:49:08.384726247 -0400
@@ -4137,7 +4137,7 @@
plug-ins/vdx/vdx-export.c plug-ins/vdx/vdx-import.c
plug-ins/wmf/wmf.cpp plug-ins/wpg/wpg.c
plug-ins/xfig/xfig-export.c plug-ins/xfig/xfig-import.c
- plug-ins/xslt/xslt.c : use <glib/gstdio.h> to match GLib's filename
+ plug-ins/xslt/xslt.c : use <glib.h> to match GLib's filename
encoding to the io functions used, that is: g_open, g_fopen, g_stat,
g_unlink, g_mkdir, g_rename (, g_access, g_lstat, g_remove, g_freopen,
g_chdir, g_rmdir). Also replace gzopen() with gzdopen(g_open(), ...)
@@ -5995,7 +5995,7 @@
Also special case strings starting with \tex - i.e. dont escape them -
to keep the use-case of direct tex input.
- * lib/debug.c : #include <glib/gprintf.h> not just <gprintf.h>
+ * lib/debug.c : #include <glib.h>
2006-01-14 Hans Breuer <hans@breuer.org>
@@ -6207,7 +6207,7 @@
* lib/makefile.msc : build debug.obj
* plug-ins/makefile.msc : building pgf in the right alphabetical order
- * plug-ins/pgf/render_pgf.c : include <glib/gprintf.h>
+ * plug-ins/pgf/render_pgf.c : include <glib.h>
2005-12-08 Lars Clausen <lars@raeder.dk>
diff -Naur dia-0.97.2-orig/lib/debug.c dia-0.97.2/lib/debug.c
--- dia-0.97.2-orig/lib/debug.c 2009-11-07 09:28:34.000000000 -0500
+++ dia-0.97.2/lib/debug.c 2012-07-15 10:49:06.813726730 -0400
@@ -21,7 +21,7 @@
#include <config.h>
#include <stdio.h>
-#include <glib/gprintf.h>
+#include <glib.h>
#include <stdarg.h>
#include "debug.h"
diff -Naur dia-0.97.2-orig/lib/dia_dirs.c dia-0.97.2/lib/dia_dirs.c
--- dia-0.97.2-orig/lib/dia_dirs.c 2009-11-07 12:13:53.000000000 -0500
+++ dia-0.97.2/lib/dia_dirs.c 2012-07-15 10:49:06.740726750 -0400
@@ -30,7 +30,7 @@
#include <sys/stat.h>
#include <sys/types.h>
#endif
-#include <glib/gstdio.h>
+#include <glib.h>
/** Get the name of a subdirectory of our data directory.
* This function does not create the subdirectory, just make the correct name.
diff -Naur dia-0.97.2-orig/lib/dia_xml.c dia-0.97.2/lib/dia_xml.c
--- dia-0.97.2-orig/lib/dia_xml.c 2009-11-07 09:28:34.000000000 -0500
+++ dia-0.97.2/lib/dia_xml.c 2012-07-15 10:49:06.770726743 -0400
@@ -25,7 +25,7 @@
#include <fcntl.h>
#include <glib.h>
-#include <glib/gstdio.h>
+#include <glib.h>
#include <libxml/parser.h>
#include <libxml/parserInternals.h>
diff -Naur dia-0.97.2-orig/objects/custom/shape_typeinfo.c dia-0.97.2/objects/custom/shape_typeinfo.c
--- dia-0.97.2-orig/objects/custom/shape_typeinfo.c 2009-11-07 09:28:34.000000000 -0500
+++ dia-0.97.2/objects/custom/shape_typeinfo.c 2012-07-15 10:49:06.639726783 -0400
@@ -27,8 +27,8 @@
#include "custom_util.h"
#include <string.h>
#include <stdarg.h>
-#include <glib/gstrfuncs.h>
-#include <glib/gstdio.h>
+#include <glib.h>
+#include <glib.h>
#include <libxml/parser.h>
/*
diff -Naur dia-0.97.2-orig/objects/SISSI/sissi.c dia-0.97.2/objects/SISSI/sissi.c
--- dia-0.97.2-orig/objects/SISSI/sissi.c 2009-11-07 09:28:34.000000000 -0500
+++ dia-0.97.2/objects/SISSI/sissi.c 2012-07-15 10:49:06.570726804 -0400
@@ -42,7 +42,7 @@
#include "dia_xml_libxml.h"
#include <string.h>
-#include <glib/gprintf.h>
+#include <glib.h>
#define DEFAULT_WIDTH 1.0
#define DEFAULT_HEIGHT 1.0
diff -Naur dia-0.97.2-orig/objects/standard/image.c dia-0.97.2/objects/standard/image.c
--- dia-0.97.2-orig/objects/standard/image.c 2009-11-07 12:13:53.000000000 -0500
+++ dia-0.97.2/objects/standard/image.c 2012-07-15 10:49:06.683726770 -0400
@@ -25,7 +25,7 @@
#ifdef HAVE_UNIST_H
#include <unistd.h>
#endif
-#include <glib/gstdio.h>
+#include <glib.h>
#include "intl.h"
#include "message.h"
diff -Naur dia-0.97.2-orig/plug-ins/cairo/diacairo.c dia-0.97.2/plug-ins/cairo/diacairo.c
--- dia-0.97.2-orig/plug-ins/cairo/diacairo.c 2009-11-07 12:13:53.000000000 -0500
+++ dia-0.97.2/plug-ins/cairo/diacairo.c 2012-07-15 10:49:06.433726846 -0400
@@ -28,7 +28,7 @@
#include <errno.h>
#define G_LOG_DOMAIN "DiaCairo"
#include <glib.h>
-#include <glib/gstdio.h>
+#include <glib.h>
/*
* To me the following looks rather suspicious. Why do we need to compile
diff -Naur dia-0.97.2-orig/plug-ins/cairo/diacairo-renderer.c dia-0.97.2/plug-ins/cairo/diacairo-renderer.c
--- dia-0.97.2-orig/plug-ins/cairo/diacairo-renderer.c 2011-01-07 06:54:21.000000000 -0500
+++ dia-0.97.2/plug-ins/cairo/diacairo-renderer.c 2012-07-15 10:49:06.435726846 -0400
@@ -28,7 +28,7 @@
#include <errno.h>
#define G_LOG_DOMAIN "DiaCairo"
#include <glib.h>
-#include <glib/gstdio.h>
+#include <glib.h>
#ifdef HAVE_PANGOCAIRO_H
#include <pango/pangocairo.h>
diff -Naur dia-0.97.2-orig/plug-ins/cgm/cgm.c dia-0.97.2/plug-ins/cgm/cgm.c
--- dia-0.97.2-orig/plug-ins/cgm/cgm.c 2009-12-27 11:22:38.000000000 -0500
+++ dia-0.97.2/plug-ins/cgm/cgm.c 2012-07-15 10:49:06.425726846 -0400
@@ -31,7 +31,7 @@
#include <glib.h>
#include <errno.h>
-#include <glib/gstdio.h>
+#include <glib.h>
#include "intl.h"
#include "message.h"
diff -Naur dia-0.97.2-orig/plug-ins/drs/dia-render-script.c dia-0.97.2/plug-ins/drs/dia-render-script.c
--- dia-0.97.2-orig/plug-ins/drs/dia-render-script.c 2009-11-07 12:13:53.000000000 -0500
+++ dia-0.97.2/plug-ins/drs/dia-render-script.c 2012-07-15 10:49:06.427726848 -0400
@@ -54,7 +54,7 @@
#define G_LOG_DOMAIN "DiaRenderScript"
#include <glib.h>
-#include <glib/gstdio.h>
+#include <glib.h>
#include "intl.h"
#include "filter.h"
diff -Naur dia-0.97.2-orig/plug-ins/dxf/dxf-export.c dia-0.97.2/plug-ins/dxf/dxf-export.c
--- dia-0.97.2-orig/plug-ins/dxf/dxf-export.c 2009-11-07 09:28:34.000000000 -0500
+++ dia-0.97.2/plug-ins/dxf/dxf-export.c 2012-07-15 10:49:06.421726850 -0400
@@ -29,7 +29,7 @@
#include <math.h>
#include <glib.h>
#include <errno.h>
-#include <glib/gstdio.h>
+#include <glib.h>
#include "autocad_pal.h"
diff -Naur dia-0.97.2-orig/plug-ins/dxf/dxf-import.c dia-0.97.2/plug-ins/dxf/dxf-import.c
--- dia-0.97.2-orig/plug-ins/dxf/dxf-import.c 2009-11-07 09:28:34.000000000 -0500
+++ dia-0.97.2/plug-ins/dxf/dxf-import.c 2012-07-15 10:49:06.419726851 -0400
@@ -30,7 +30,7 @@
#include <string.h>
#include <math.h>
#include <glib.h>
-#include <glib/gstdio.h>
+#include <glib.h>
#include "intl.h"
#include "message.h"
diff -Naur dia-0.97.2-orig/plug-ins/hpgl/hpgl.c dia-0.97.2/plug-ins/hpgl/hpgl.c
--- dia-0.97.2-orig/plug-ins/hpgl/hpgl.c 2009-11-07 09:28:34.000000000 -0500
+++ dia-0.97.2/plug-ins/hpgl/hpgl.c 2012-07-15 10:49:06.487726830 -0400
@@ -37,7 +37,7 @@
#include <errno.h>
#include <glib.h>
-#include <glib/gstdio.h>
+#include <glib.h>
#include "intl.h"
#include "message.h"
diff -Naur dia-0.97.2-orig/plug-ins/libart/export_png.c dia-0.97.2/plug-ins/libart/export_png.c
--- dia-0.97.2-orig/plug-ins/libart/export_png.c 2011-07-03 06:56:08.000000000 -0400
+++ dia-0.97.2/plug-ins/libart/export_png.c 2012-07-15 10:49:06.415726849 -0400
@@ -29,7 +29,7 @@
#include <errno.h>
#include <stdlib.h>
-#include <glib/gstdio.h>
+#include <glib.h>
#include <gtk/gtk.h>
#include "intl.h"
diff -Naur dia-0.97.2-orig/plug-ins/metapost/render_metapost.c dia-0.97.2/plug-ins/metapost/render_metapost.c
--- dia-0.97.2-orig/plug-ins/metapost/render_metapost.c 2009-11-07 09:28:34.000000000 -0500
+++ dia-0.97.2/plug-ins/metapost/render_metapost.c 2012-07-15 10:49:06.396726857 -0400
@@ -43,7 +43,7 @@
#endif
#include <errno.h>
-#include <glib/gstdio.h>
+#include <glib.h>
#include "intl.h"
#include "render_metapost.h"
diff -Naur dia-0.97.2-orig/plug-ins/pgf/render_pgf.c dia-0.97.2/plug-ins/pgf/render_pgf.c
--- dia-0.97.2-orig/plug-ins/pgf/render_pgf.c 2011-01-07 07:11:34.000000000 -0500
+++ dia-0.97.2/plug-ins/pgf/render_pgf.c 2012-07-15 10:49:06.445726842 -0400
@@ -61,8 +61,8 @@
#endif
#include <errno.h>
-#include <glib/gprintf.h>
-#include <glib/gstdio.h>
+#include <glib.h>
+#include <glib.h>
#include "intl.h"
#include "render_pgf.h"
diff -Naur dia-0.97.2-orig/plug-ins/postscript/paginate_psprint.c dia-0.97.2/plug-ins/postscript/paginate_psprint.c
--- dia-0.97.2-orig/plug-ins/postscript/paginate_psprint.c 2009-11-07 09:28:34.000000000 -0500
+++ dia-0.97.2/plug-ins/postscript/paginate_psprint.c 2012-07-15 10:49:06.451726838 -0400
@@ -31,7 +31,7 @@
#include <errno.h>
#include <sys/stat.h>
-#include <glib/gstdio.h>
+#include <glib.h>
#include "intl.h"
#include "message.h"
diff -Naur dia-0.97.2-orig/plug-ins/postscript/render_eps.c dia-0.97.2/plug-ins/postscript/render_eps.c
--- dia-0.97.2-orig/plug-ins/postscript/render_eps.c 2009-11-07 09:28:34.000000000 -0500
+++ dia-0.97.2/plug-ins/postscript/render_eps.c 2012-07-15 10:49:06.451726838 -0400
@@ -55,7 +55,7 @@
#include <locale.h>
#include <errno.h>
-#include <glib/gstdio.h>
+#include <glib.h>
#include "intl.h"
#include "render_eps.h"
diff -Naur dia-0.97.2-orig/plug-ins/pstricks/render_pstricks.c dia-0.97.2/plug-ins/pstricks/render_pstricks.c
--- dia-0.97.2-orig/plug-ins/pstricks/render_pstricks.c 2011-01-07 07:11:34.000000000 -0500
+++ dia-0.97.2/plug-ins/pstricks/render_pstricks.c 2012-07-15 10:49:06.410726853 -0400
@@ -50,7 +50,7 @@
#endif
#include <errno.h>
-#include <glib/gstdio.h>
+#include <glib.h>
#include "intl.h"
#include "render_pstricks.h"
diff -Naur dia-0.97.2-orig/plug-ins/python/pydia-render.c dia-0.97.2/plug-ins/python/pydia-render.c
--- dia-0.97.2-orig/plug-ins/python/pydia-render.c 2009-11-07 09:28:34.000000000 -0500
+++ dia-0.97.2/plug-ins/python/pydia-render.c 2012-07-15 10:49:06.503726822 -0400
@@ -21,7 +21,7 @@
#include <Python.h>
#include <glib.h>
-#include <glib/gstdio.h>
+#include <glib.h>
#include <locale.h>
diff -Naur dia-0.97.2-orig/plug-ins/shape/shape-export.c dia-0.97.2/plug-ins/shape/shape-export.c
--- dia-0.97.2-orig/plug-ins/shape/shape-export.c 2009-11-08 06:14:56.000000000 -0500
+++ dia-0.97.2/plug-ins/shape/shape-export.c 2012-07-15 10:49:06.489726827 -0400
@@ -40,7 +40,7 @@
#include <unistd.h>
#endif
-#include <glib/gstdio.h>
+#include <glib.h>
/* the dots per centimetre to render this diagram at */
/* this matches the setting `100%' setting in dia. */
diff -Naur dia-0.97.2-orig/plug-ins/svg/render_svg.c dia-0.97.2/plug-ins/svg/render_svg.c
--- dia-0.97.2-orig/plug-ins/svg/render_svg.c 2011-12-17 11:30:38.000000000 -0500
+++ dia-0.97.2/plug-ins/svg/render_svg.c 2012-07-15 10:49:06.392726859 -0400
@@ -30,7 +30,7 @@
#endif
#include <glib.h>
-#include <glib/gstdio.h>
+#include <glib.h>
#include <libxml/entities.h>
#include <libxml/tree.h>
diff -Naur dia-0.97.2-orig/plug-ins/vdx/vdx-export.c dia-0.97.2/plug-ins/vdx/vdx-export.c
--- dia-0.97.2-orig/plug-ins/vdx/vdx-export.c 2009-12-27 11:22:38.000000000 -0500
+++ dia-0.97.2/plug-ins/vdx/vdx-export.c 2012-07-15 10:55:17.066579728 -0400
@@ -32,11 +32,12 @@
#include <string.h>
#include <math.h>
+#include <sys/stat.h>
#include <glib.h>
#include <stdlib.h>
#include <errno.h>
#include <locale.h>
-#include <glib/gstdio.h>
+#include <glib.h>
#include "intl.h"
#include "message.h"
diff -Naur dia-0.97.2-orig/plug-ins/vdx/vdx-import.c dia-0.97.2/plug-ins/vdx/vdx-import.c
--- dia-0.97.2-orig/plug-ins/vdx/vdx-import.c 2009-12-27 11:22:38.000000000 -0500
+++ dia-0.97.2/plug-ins/vdx/vdx-import.c 2012-07-15 10:49:06.466726836 -0400
@@ -28,7 +28,7 @@
#include <string.h>
#include <math.h>
#include <glib.h>
-#include <glib/gstdio.h>
+#include <glib.h>
#include <stdlib.h>
#include <ctype.h>
#include <libxml/tree.h>
diff -Naur dia-0.97.2-orig/plug-ins/wmf/wmf.cpp dia-0.97.2/plug-ins/wmf/wmf.cpp
--- dia-0.97.2-orig/plug-ins/wmf/wmf.cpp 2011-03-13 09:07:48.000000000 -0400
+++ dia-0.97.2/plug-ins/wmf/wmf.cpp 2012-07-15 10:49:06.482726831 -0400
@@ -25,7 +25,7 @@
#include <string.h>
#include <math.h>
#include <glib.h>
-#include <glib/gstdio.h>
+#include <glib.h>
#include "intl.h"
#include "message.h"
diff -Naur dia-0.97.2-orig/plug-ins/wpg/wpg.c dia-0.97.2/plug-ins/wpg/wpg.c
--- dia-0.97.2-orig/plug-ins/wpg/wpg.c 2009-11-07 09:28:34.000000000 -0500
+++ dia-0.97.2/plug-ins/wpg/wpg.c 2012-07-15 10:49:06.406726855 -0400
@@ -40,7 +40,7 @@
#include <errno.h>
#include <glib.h>
-#include <glib/gstdio.h>
+#include <glib.h>
#include "intl.h"
#include "message.h"
diff -Naur dia-0.97.2-orig/plug-ins/xfig/xfig-export.c dia-0.97.2/plug-ins/xfig/xfig-export.c
--- dia-0.97.2-orig/plug-ins/xfig/xfig-export.c 2011-12-17 11:30:38.000000000 -0500
+++ dia-0.97.2/plug-ins/xfig/xfig-export.c 2012-07-15 10:49:06.400726856 -0400
@@ -16,7 +16,7 @@
#include <locale.h>
#include <glib.h>
-#include <glib/gstdio.h>
+#include <glib.h>
#include "intl.h"
#include "message.h"
diff -Naur dia-0.97.2-orig/plug-ins/xfig/xfig-import.c dia-0.97.2/plug-ins/xfig/xfig-import.c
--- dia-0.97.2-orig/plug-ins/xfig/xfig-import.c 2009-11-07 12:13:53.000000000 -0500
+++ dia-0.97.2/plug-ins/xfig/xfig-import.c 2012-07-15 10:49:06.402726853 -0400
@@ -40,7 +40,7 @@
#include <locale.h>
#include <glib.h>
-#include <glib/gstdio.h>
+#include <glib.h>
#include "intl.h"
#include "message.h"
diff -Naur dia-0.97.2-orig/plug-ins/xslt/xslt.c dia-0.97.2/plug-ins/xslt/xslt.c
--- dia-0.97.2-orig/plug-ins/xslt/xslt.c 2009-11-07 12:13:53.000000000 -0500
+++ dia-0.97.2/plug-ins/xslt/xslt.c 2012-07-15 10:49:06.440726844 -0400
@@ -27,7 +27,7 @@
#include <string.h>
#include <errno.h>
-#include <glib/gstdio.h>
+#include <glib.h>
#include "filter.h"
#include "intl.h"
diff -Naur dia-0.97.2-orig/tests/test-boundingbox.c dia-0.97.2/tests/test-boundingbox.c
--- dia-0.97.2-orig/tests/test-boundingbox.c 2009-11-07 09:28:35.000000000 -0500
+++ dia-0.97.2/tests/test-boundingbox.c 2012-07-15 10:49:06.986726677 -0400
@@ -29,7 +29,7 @@
#include <glib-object.h>
#if GLIB_CHECK_VERSION(2,16,0)
-#include <glib/gtestutils.h>
+#include <glib.h>
#endif
#include "dialib.h"
diff -Naur dia-0.97.2-orig/tests/test-objects.c dia-0.97.2/tests/test-objects.c
--- dia-0.97.2-orig/tests/test-objects.c 2009-11-07 09:28:35.000000000 -0500
+++ dia-0.97.2/tests/test-objects.c 2012-07-15 10:49:06.985726677 -0400
@@ -29,7 +29,7 @@
#include <glib-object.h>
#if GLIB_CHECK_VERSION(2,16,0)
-#include <glib/gtestutils.h>
+#include <glib.h>
#endif
#include "object.h"

View File

@ -13,7 +13,7 @@ stdenv.mkDerivation {
src = fetchurl {
url = http://tarballs.nixos.org/f-spot-0.0.10.tar.bz2;
md5 = "19cc6e067ccc261b0502ff6189b79832";
sha256 = "1hgls6hzvxsnk09j9y6hq10qxsc92i864mdg3gk2cimbkbr0mh8b";
};
patches = [./dllmap.patch];

View File

@ -1,11 +1,11 @@
{ fetchurl, stdenv, lzip, texinfo }:
stdenv.mkDerivation rec {
name = "ocrad-0.23";
name = "ocrad-0.24";
src = fetchurl {
url = "mirror://gnu/ocrad/${name}.tar.lz";
sha256 = "0vx0v4sz8ivgcp04zggdq9cv9sb5zxnn7j1nm15cds0zq1wr9g7m";
sha256 = "0hhlx072d00bi9qia0nj5izsq4qkscpfz2mpbyfc72msl3hfvslv";
};
buildInputs = [ lzip texinfo ];

View File

@ -0,0 +1,25 @@
From b901236261dc717dc08ed10f63e2d5cd3f3031f8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bart=C5=82omiej=20Piotrowski?= <b@bpiotrowski.pl>
Date: Tue, 27 May 2014 11:46:06 +0200
Subject: [PATCH] Fix build with giflib >= 5.1.0.
---
image.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/image.c b/image.c
index e62a69f..7eec544 100644
--- a/image.c
+++ b/image.c
@@ -278,7 +278,11 @@ bool img_load_gif(img_t *img, const fileinfo_t *file)
}
} while (rec != TERMINATE_RECORD_TYPE);
+#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 && GIFLIB_MINOR >= 1
+ DGifCloseFile(gif, NULL);
+#else
DGifCloseFile(gif);
+#endif
if (err && !file->loaded)
warn("corrupted gif file: %s", file->name);

View File

@ -1,14 +1,16 @@
{ stdenv, fetchurl, libX11, imlib2, giflib }:
stdenv.mkDerivation {
name = "sxiv-1.1.1";
stdenv.mkDerivation rec {
name = "sxiv-1.2";
src = fetchurl {
url = "https://github.com/muennich/sxiv/archive/v1.1.1.tar.gz";
name = "sxiv-1.1.tar.gz";
sha256 = "07r8125xa8d5q71ql71s4i1dx4swy8hypxh2s5h7z2jnn5y9nmih";
url = "https://github.com/muennich/sxiv/archive/v1.2.tar.gz";
name = "${name}.tar.gz";
sha256 = "1wwcxy2adc67xd8x6c2sayy1cjcwrv2lvv1iwln7y4w992gbcxmc";
};
patches = [ ./146.patch ];
buildInputs = [ libX11 imlib2 giflib ];
prePatch = ''sed -i "s@/usr/local@$out@" Makefile'';

View File

@ -2,12 +2,12 @@
, libjpeg, libtiff, cfitsio, exiv2, lcms, gtkimageview, lensfun }:
stdenv.mkDerivation rec {
name = "ufraw-0.19.2";
name = "ufraw-0.20";
src = fetchurl {
# XXX: These guys appear to mutate uploaded tarballs!
url = "mirror://sourceforge/ufraw/${name}.tar.gz";
sha256 = "1lxba7pb3vcsq94dwapg9bk9mb3ww6r3pvvcyb0ah5gh2sgzxgkk";
sha256 = "1q51p0ynzayxwfpilj0s38aapgkfga00gbl7xi0ndx9q6bvk1kbd";
};
buildInputs =

View File

@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "mirror://sourceforge/cdrtools/${name}.tar.bz2";
md5 = "d44a81460e97ae02931c31188fe8d3fd";
sha256 = "08kc5w4z5k2ka7i05an7gfzzp0fsrc403riav7bw8xws0rsn32vj";
};
patches = [./cdrtools-2.01-install.patch];

View File

@ -1,14 +1,14 @@
{ stdenv, python27Packages, curaengine, makeDesktopItem, fetchurl }:
let
py = python27Packages;
version = "14.07";
version = "14.09";
in
stdenv.mkDerivation rec {
name = "cura-${version}";
src = fetchurl {
url = "https://github.com/daid/Cura/archive/${version}.tar.gz";
sha256 = "1jfgkb2qh1syakcssk66yhnfjm9p9qcx48v34bbza9nryrdlmxdb";
sha256 = "1nr26hfqa6chim5qch92wpk0s28wfvznvcf3kkzgf23hw707f40v";
};
desktopItem = makeDesktopItem {

View File

@ -3,11 +3,11 @@
}:
stdenv.mkDerivation rec {
name = "gphoto2-2.5.3";
name = "gphoto2-2.5.5";
src = fetchurl {
url = "mirror://sourceforge/gphoto/${name}.tar.bz2";
sha256 = "0i6qjyvgn3aaspiblmiwv51mfy92gm73xpbd3z41ki8mw7plg53i";
sha256 = "1d0lvp5gsrss72597wixhgh8prcw4g7izfg3zdzzsswjgnlsxsal";
};
nativeBuildInputs = [ pkgconfig gettext ];

View File

@ -23,7 +23,7 @@ assert mercurialSupport -> (mercurial != null);
let
name = "ikiwiki";
version = "3.20140227";
version = "3.20140916";
lib = stdenv.lib;
in
@ -32,7 +32,7 @@ stdenv.mkDerivation {
src = fetchurl {
url = "http://ftp.de.debian.org/debian/pool/main/i/ikiwiki/${name}_${version}.tar.gz";
sha256 = "1bbpqs4c1la1yqcxcxj3xip3wadjnjq0wawv19j6d6baymm66cr3";
sha256 = "05nws8jkcbhg767wqgn7in1p8zbcx2kdnhxz19fq52ncfzk2ndn0";
};
buildInputs = [ perl TextMarkdown URI HTMLParser HTMLScrubber HTMLTemplate

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "keepass-${version}";
version = "2.27";
version = "2.28";
src = fetchurl {
url = "mirror://sourceforge/keepass/KeePass-${version}.zip";
sha256 = "1qi7pls5xrv7ma53bwka738idvnxk82dvhk06m1snc8c29dws7fa";
sha256 = "0rlll6qriflaibqpw9qqfgqqr7cvhl404c3ph6n2i22j7xn5mizh";
};
sourceRoot = ".";

View File

@ -29,7 +29,7 @@ in stdenv.mkDerivation rec {
"-I${dbus_libs}/lib/dbus-1.0/include" ];
# Fix up python path so the lockfile library is on it.
PYTHONPATH = stdenv.lib.makeSearchPath "lib/${pythonFull.python.libPrefix}/site-packages" [
PYTHONPATH = stdenv.lib.makeSearchPath "lib/${pythonFull.libPrefix}/site-packages" [
pythonPackages.curses pythonPackages.lockfile
];

View File

@ -4,13 +4,13 @@
let
mkSweetHome3D =
{ name, module, version, src, license, description }:
{ name, module, version, src, license, description, icon }:
stdenv.mkDerivation rec {
inherit name version src description;
inherit name version src description icon;
exec = stdenv.lib.toLower module;
sweethome3dItem = makeDesktopItem {
inherit name exec;
inherit name exec icon;
comment = description;
desktopName = name;
genericName = "Computer Aided (Interior) Design";
@ -61,6 +61,10 @@ in rec {
module = module;
tag = "V_" + d2u version;
};
icon = fetchurl {
url = "http://sweethome3d.cvs.sourceforge.net/viewvc/sweethome3d/SweetHome3D/src/com/eteks/sweethome3d/viewcontroller/resources/help/images/sweethome3d.png";
sha256 = "0lnv2sz2d3m8jx25hz92gzardf0iblykhy5q0q2cyb7mw2qb2p92";
};
};
}

View File

@ -1,21 +1,22 @@
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
{ cabal, cairo, dbus, dyre, enclosedExceptions, filepath, gtk
, gtkTraymanager, HStringTemplate, HTTP, mtl, network, parsec, safe
, split, stm, text, time, transformers, utf8String, X11, xdgBasedir
, xmonad, xmonadContrib
, gtkTraymanager, HStringTemplate, HTTP, mtl, network, networkUri
, parsec, safe, split, stm, text, time, transformers, utf8String
, X11, xdgBasedir, xmonad, xmonadContrib
}:
cabal.mkDerivation (self: {
pname = "taffybar";
version = "0.4.1";
sha256 = "0b4x78sq5x1w0xnc5fk4ixpbkl8cwjfyb4fq8vy21shf4n0fri26";
version = "0.4.3";
sha256 = "1h7acdzq3bndy44lyvgnm3gvxpbhzcs0ymvkrhmn3y41bfcwaac2";
isLibrary = true;
isExecutable = true;
buildDepends = [
cairo dbus dyre enclosedExceptions filepath gtk gtkTraymanager
HStringTemplate HTTP mtl network parsec safe split stm text time
transformers utf8String X11 xdgBasedir xmonad xmonadContrib
HStringTemplate HTTP mtl network networkUri parsec safe split stm
text time transformers utf8String X11 xdgBasedir xmonad
xmonadContrib
];
pkgconfigDepends = [ gtk ];
meta = {

View File

@ -1,23 +1,23 @@
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
{ cabal, alsaCore, alsaMixer, dbus, filepath, hinotify, HTTP
, libmpd, libXrandr, mtl, parsec, regexCompat, stm, time
, timezoneOlson, timezoneSeries, utf8String, wirelesstools, X11
, X11Xft
, libmpd, libXpm, libXrandr, mtl, parsec, regexCompat, stm, time
, timezoneOlson, timezoneSeries, transformers, utf8String
, wirelesstools, X11, X11Xft
}:
cabal.mkDerivation (self: {
pname = "xmobar";
version = "0.21";
sha256 = "1h0gsb808zm4j4kmw7fl4339wllc16ldy1ki96l8w3fvj30bcxpm";
version = "0.22.1";
sha256 = "0mnwwcfk0xf4fi3cnw19s6lxcg8sbsdlvg7zwvf5xf0y9q365swz";
isLibrary = false;
isExecutable = true;
buildDepends = [
alsaCore alsaMixer dbus filepath hinotify HTTP libmpd mtl parsec
regexCompat stm time timezoneOlson timezoneSeries utf8String X11
X11Xft
regexCompat stm time timezoneOlson timezoneSeries transformers
utf8String X11 X11Xft
];
extraLibraries = [ libXrandr wirelesstools ];
extraLibraries = [ libXpm libXrandr wirelesstools ];
configureFlags = "-fall_extensions";
meta = {
homepage = "http://xmobar.org";

View File

@ -1,11 +1,11 @@
{ stdenv, fetchurl, xorg, ncurses, freetype, fontconfig, pkgconfig }:
stdenv.mkDerivation rec {
name = "xterm-303";
name = "xterm-312";
src = fetchurl {
url = "ftp://invisible-island.net/xterm/${name}.tgz";
sha256 = "0n7hay16aam9kfn642ri0wj5yzilbjm3l8znxc2p5dx9pn3rkwla";
sha256 = "0vpkhls3i12ly4r68igz91vh6s9179wihjkdy0gvwr752hdqxm7s";
};
buildInputs =

View File

@ -32,11 +32,6 @@ stdenv.mkDerivation {
-e 's|/bin/echo|echo|' \
-e "/python_arch/s/: *'[^']*'/: '""'/" \
build/common.gypi chrome/chrome_tests.gypi
'' + optionalString (versionOlder version "38.0.0.0") ''
sed -i -e '/not RunGN/,+1d' -e '/import.*depot/d' build/gyp_chromium
sed -i -e 's|/usr/bin/gcc|gcc|' \
third_party/WebKit/Source/build/scripts/scripts.gypi \
third_party/WebKit/Source/build/scripts/preprocessor.pm
'' + optionalString useOpenSSL ''
cat $opensslPatches | patch -p1 -d third_party/openssl/openssl
'';

View File

@ -1,21 +1,21 @@
# This file is autogenerated from update.sh in the parent directory.
{
dev = {
version = "39.0.2171.7";
sha256 = "1wxi601zsi10jw7ypa4i0a2g5hd3hqrb5pqkkry1pgbdimw69sb8";
sha256bin32 = "11isyislr5mbbhwk625b347xyyp1x3xgws844sjbbcx83gf0ij7y";
sha256bin64 = "16b0yzlm8j7kx8pc6fhzwiizl7zrzxmfal40q45848715jyln8hf";
version = "40.0.2182.3";
sha256 = "1713y6f2q5qh32wg027nphkv6p6rgq0q1awqcy543ypbk9p1jvbm";
sha256bin32 = "0qf0ccfg77qc17iy5cndkp827s8li3qyxasmgjq224g579wcj0bl";
sha256bin64 = "07f97m548kj7indpzyyvksa4gisndxc1s8qslk43mgsx26kz62rf";
};
beta = {
version = "38.0.2125.101";
sha256 = "12hrl7i0xrjdwz8yaap5jhc6bzn29pk6dcz96743n6j7mcckac6k";
sha256bin32 = "178nffl5pgqajg7vxxisycl79vnyv1iqqz04riywgj88mw7mjwpg";
sha256bin64 = "0akwvnl987w8wli4h4k2x8xnpkzk9n8hn9wbp1lw87ch08sr7zfm";
version = "39.0.2171.19";
sha256 = "19j86hzh552a73mvabzgdiq0s1ypr30b6lkn4kfxc2vhs1ds8nmg";
sha256bin32 = "06imcc3r6g4f7yi8b4mzknqk11khzk44pjrw0qnw40kgjf0kkgd3";
sha256bin64 = "0qd594rbg049g1h4s7lgw9abcccx6wrl3fggkd1z9bl8ihj54j4b";
};
stable = {
version = "37.0.2062.120";
sha256 = "1yvf1hzza5cdsa67dg302ifcwb759r8sf2z21p9q9wyanrc3f1xk";
sha256bin32 = "07zwf5yn3ig8x9ysjdpm7w1fh4rcyxzfsnqvxmabc0bkrv2r1hg7";
sha256bin64 = "02qc5qq5v9k55c5bxmndjh1xl6j1qaxk7k4r8mm0k5nxxyqih1p2";
version = "38.0.2125.101";
sha256 = "12hrl7i0xrjdwz8yaap5jhc6bzn29pk6dcz96743n6j7mcckac6k";
sha256bin32 = "1c35j4wx53njcqbdqznz2m0791bb9lpmhnpkrll36051437f25wl";
sha256bin64 = "1k8hrrxlqc1mv88v2qkyq8188lfaibvqpqg0g8qgj2ha5vsnvwvw";
};
}

View File

@ -15,14 +15,14 @@
assert stdenv.gcc ? libc && stdenv.gcc.libc != null;
let version = "32.0.3"; in
let version = "33.0"; in
stdenv.mkDerivation rec {
name = "firefox-${version}";
src = fetchurl {
url = "http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${version}/source/firefox-${version}.source.tar.bz2";
sha1 = "1f831147365478e353212714038e812ca3e9fe42";
sha1 = "ad10e8fefcd9687d2b67bacafa4ecb5f5ca4af66";
};
buildInputs =
@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
]
++ (if debugBuild then [ "--enable-debug" "--enable-profiling"]
else [ "--disable-debug" "--enable-release"
"--enable-optimize${lib.optionalString (stdenv.system == "i686-linux") "=-O1"}"
"--enable-optimize${lib.optionalString (stdenv.system == "i686-linux") "=-O3"}"
"--enable-strip" ])
++ lib.optional enableOfficialBranding "--enable-official-branding";

View File

@ -4,6 +4,6 @@ stdenv.mkDerivation {
name = "links-1.00pre15";
src = fetchurl {
url = http://artax.karlin.mff.cuni.cz/~mikulas/links/download/links-1.00pre15.tar.gz;
md5 = "f64823b9a1ac2d79df578a991dfae8b8";
sha256 = "0yzgzc6jm9vhv7rgbj5s9zwxn9fnf4nyap9l6dzgpwsn7m18vprv";
};
}

View File

@ -4,11 +4,11 @@
stdenv.mkDerivation rec {
name = "vimb-${version}";
version = "2.7";
version = "2.8";
src = fetchurl {
url = "https://github.com/fanglingsu/vimb/archive/${version}.tar.gz";
sha256 = "05i5p9827rgga4h27qy3qh4ps8aynkcr55j681ddhn16ci3dk8zr";
sha256 = "04ify6gqpkislsppaplvdfgs3fja9gl37j3dywg7bhz1fbkv166k";
};
# Nixos default ca bundle

View File

@ -1,51 +1,43 @@
x@{builderDefsPackage
, guile, pkgconfig, glib, loudmouth, gmp, libidn, readline, libtool
, libunwind, ncurses
, ...}:
builderDefsPackage
(a :
let
helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++
[];
{ stdenv, fetchgit
, guile, pkgconfig, glib, loudmouth, gmp, libidn, readline, libtool
, libunwind, ncurses, curl, jansson, texinfo
, automake, autoconf
}:
buildInputs = map (n: builtins.getAttr n x)
(builtins.attrNames (builtins.removeAttrs x helperArgNames));
sourceInfo = rec {
let
s = rec {
baseName="freetalk";
version="3.2";
version="4.0rc6";
name="${baseName}-${version}";
url="mirror://savannah/${baseName}/${name}.tar.gz";
hash="12dn7yj9k5xsrrjlnma77wzpvsdxjccwla1q0wy3lacl5l2p0jms";
url="https://github.com/GNUFreetalk/freetalk";
rev = "refs/tags/v${version}";
sha256="0sj3bwq9n6ijwv552nmi038sz7wayq8r3zaj6ngn2cnkn2b5nwbz";
};
buildInputs = [
guile pkgconfig glib loudmouth gmp libidn readline libtool
libunwind ncurses curl jansson texinfo
autoconf automake
];
in
rec {
src = a.fetchurl {
url = sourceInfo.url;
sha256 = sourceInfo.hash;
};
inherit (sourceInfo) name version;
stdenv.mkDerivation {
inherit (s) name version;
inherit buildInputs;
src = fetchgit {
inherit (s) url rev sha256;
name = "git-export-${s.name}";
};
patches = [./01_callbacks_const_fix.diff];
preConfigure = ''
patchShebangs .
./autogen.sh
'';
/* doConfigure should be removed if not needed */
phaseNames = ["doPatch" "doConfigure" "doMakeInstall"];
meta = {
description = "Console XMPP client";
maintainers = with a.lib.maintainers;
[
raskin
];
platforms = with a.lib.platforms;
linux;
license = a.lib.licenses.gpl3Plus;
inherit (s) version;
description = "Console XMPP client";
license = stdenv.lib.licenses.gpl3Plus ;
maintainers = [stdenv.lib.maintainers.raskin];
platforms = stdenv.lib.platforms.linux;
downloadPage = "http://www.gnu.org/software/freetalk/";
};
passthru = {
updateInfo = {
downloadPage = "http://www.gnu.org/software/freetalk/";
};
};
}) x
}

View File

@ -22,20 +22,14 @@ with stdenv.lib;
stdenv.mkDerivation rec {
name = "gajim-${version}";
version = "0.15.4";
version = "0.16";
src = fetchurl {
url = "http://www.gajim.org/downloads/0.15/gajim-${version}.tar.gz";
sha256 = "1g4m5j777vqqdwqvr2m6l09ljjx65ilag45d5kfc78z7frm0cz7g";
url = "http://www.gajim.org/downloads/0.16/gajim-${version}.tar.bz2";
sha256 = "14x15jwgl0c6vwj02ccpzmxr3fczp632mnj50cpklbaj4bxqvgbs";
};
patches = [
(fetchurl {
name = "gajim-drill-srv.patch";
url = "https://projects.archlinux.org/svntogit/packages.git/"
+ "plain/trunk/gajim-drill.patch?h=packages/gajim";
sha256 = "1k8zz3ns0l0kriffq41jgkv5ym6jvyd24171l7s98v9d81prdw1w";
})
(fetchurl {
name = "gajim-icon-index.patch";
url = "http://hg.gajim.org/gajim/raw-rev/b9ec78663dfb";
@ -69,6 +63,7 @@ stdenv.mkDerivation rec {
pythonPackages.pygobject pythonPackages.pyGtkGlade
pythonPackages.sqlite3 pythonPackages.pyasn1
pythonPackages.pyxdg
pythonPackages.nbxmpp
pyopenssl pythonDBus
] ++ optionals enableJingle [ farstream gst_plugins_bad libnice ]
++ optional enableE2E pythonPackages.pycrypto
@ -88,5 +83,7 @@ stdenv.mkDerivation rec {
description = "Jabber client written in PyGTK";
license = licenses.gpl3Plus;
maintainers = [ maintainers.raskin maintainers.aszlig ];
downloadPage = "http://gajim.org/downloads.php";
updateWalker = true;
};
}

View File

@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = ftp://iptraf.seul.org/pub/iptraf/iptraf-3.0.1.tar.gz;
md5 = "004c2c005a1b78739e22bc49d33e244d";
sha256 = "12n059j9iihhpf6spmlaspqzxz3wqan6kkpnhmlj08jdijpnk84m";
};
patchPhase = ''

View File

@ -1,11 +1,11 @@
{ stdenv, fetchurl, pkgconfig, ncurses, glib, openssl, perl, libintlOrEmpty }:
stdenv.mkDerivation rec {
name = "irssi-0.8.15";
name = "irssi-0.8.16";
src = fetchurl {
url = "http://irssi.org/files/${name}.tar.bz2";
sha256 = "19m0aah9bhc70dnhh7kpydbsz5n35l0l9knxav1df0sic3xicbf1";
sha256 = "15wzs4h754jzs1l4z7qzsyjllk9wdx3qfb6gymdiykvmlb9gwyiz";
};
buildInputs = [ pkgconfig ncurses glib openssl perl libintlOrEmpty ];

View File

@ -0,0 +1,86 @@
{ fetchurl, stdenv
, curl, dbus, dbus_glib, enchant, gtk, gnutls, gnupg, gpgme, libarchive
, libcanberra, libetpan, libnotify, libsoup, libxml2, networkmanager, openldap
, perl, pkgconfig, poppler, python, webkitgtk2
# Build options
# TODO: A flag to build the manual.
# TODO: Plugins that complain about their missing dependencies, even when
# provided:
# gdata requires libgdata
# geolocation requires libchamplain
# python requires python
, enableLdap ? false
, enableNetworkManager ? false
, enablePgp ? false
, enablePluginArchive ? false
, enablePluginFancy ? false
, enablePluginNotificationDialogs ? true
, enablePluginNotificationSounds ? true
, enablePluginPdf ? false
, enablePluginRavatar ? false
, enablePluginRssyl ? false
, enablePluginSmime ? false
, enablePluginSpamassassin ? false
, enablePluginSpamReport ? false
, enablePluginVcalendar ? false
, enableSpellcheck ? false
}:
with stdenv.lib;
let version = "3.10.1"; in
stdenv.mkDerivation {
name = "claws-mail-${version}";
meta = {
description = "The user-friendly, lightweight, and fast email client";
homepage = http://www.claws-mail.org/;
license = licenses.gpl3;
platforms = platforms.linux;
};
src = fetchurl {
url = "http://downloads.sourceforge.net/project/claws-mail/Claws%20Mail/${version}/claws-mail-${version}.tar.bz2";
sha256 = "634d35dee311a288fb8fcba36d26987afdcd5485730cf67d00554110f414178e";
};
buildInputs =
[ dbus dbus_glib gtk gnutls libetpan perl pkgconfig python ]
++ optional enableSpellcheck enchant
++ optionals (enablePgp || enablePluginSmime) [ gnupg gpgme ]
++ optional enablePluginArchive libarchive
++ optional enablePluginNotificationSounds libcanberra
++ optional enablePluginNotificationDialogs libnotify
++ optional enablePluginFancy libsoup
++ optional
(enablePluginFancy || enablePluginRavatar || enablePluginRssyl
|| enablePluginSpamassassin || enablePluginSpamReport
|| enablePluginVcalendar)
curl
++ optional enablePluginRssyl libxml2
++ optional enableNetworkManager networkmanager
++ optional enableLdap openldap
++ optional enablePluginPdf poppler
++ optional enablePluginFancy webkitgtk2;
configureFlags =
optional (!enableLdap) "--disable-ldap"
++ optional (!enableNetworkManager) "--disable-networkmanager"
++ optionals (!enablePgp) [
"--disable-pgpcore-plugin"
"--disable-pgpinline-plugin"
"--disable-pgpmime-plugin"
]
++ optional (!enablePluginArchive) "--disable-archive-plugin"
++ optional (!enablePluginFancy) "--disable-fancy-plugin"
++ optional (!enablePluginPdf) "--disable-pdf_viewer-plugin"
++ optional (!enablePluginRavatar) "--disable-libravatar-plugin"
++ optional (!enablePluginRssyl) "--disable-rssyl-plugin"
++ optional (!enablePluginSmime) "--disable-smime-plugin"
++ optional (!enablePluginSpamassassin) "--disable-spamassassin-plugin"
++ optional (!enablePluginSpamReport) "--disable-spam_report-plugin"
++ optional (!enablePluginVcalendar) "--disable-vcalendar-plugin"
++ optional (!enableSpellcheck) "--disable-enchant";
}

View File

@ -2,14 +2,14 @@
pythonPackages.buildPythonPackage rec {
name = "mailpile-${version}";
version = "0.4.0";
version = "0.4.1";
src = fetchgit {
url = "git://github.com/pagekite/Mailpile";
rev = "af3e2554dcef892cc44e044ce61e1693f09228c0";
sha256 = "0p8j5w5281rjl0nigsw7glfp7inz13p6iqlr9g3m3vh72i9pvl7h";
rev = "refs/tags/${version}";
sha256 = "0h84cc9kwb0m4admqjkpg4pllxlh095rmzvrql45kz71fpnxs780";
};
patchPhase = ''
substituteInPlace setup.py --replace "data_files.append((dir" "data_files.append(('lib/${pythonPackages.python.libPrefix}/site-packages/' + dir"
'';
@ -31,4 +31,4 @@ pythonPackages.buildPythonPackage rec {
platforms = platforms.linux;
maintainers = [ maintainers.iElectric ];
};
}
}

View File

@ -15,11 +15,11 @@ let
in
stdenv.mkDerivation rec {
name = "mumble-" + version;
version = "1.2.7";
version = "1.2.8";
src = fetchurl {
url = "mirror://sourceforge/mumble/${name}.tar.gz";
sha256 = "0zjqkkdkcvgmqic6np87hj6b6f851lkzyd6y3cqj6zzacjvps31d";
sha256 = "0ng1xd7i0951kqnd9visf84y2dcwia79a1brjwfvr1wnykgw6bsc";
};
patches = optional jackSupport ./mumble-jack-support.patch;

View File

@ -0,0 +1,24 @@
{ stdenv, fetchgit, libowfat, zlib }:
stdenv.mkDerivation {
name = "opentracker";
src = fetchgit {
url = "https://github.com/masroore/opentracker.git";
rev = "9a26b3d203755577879315ecc2b515d0e22793cb";
sha256 = "74a7a6cbe80932fefb1698524809ce89be696f0fe3afd38fcb2b99fa59c9c891";
};
buildInputs = [ libowfat zlib ];
installPhase = ''
mkdir -p $out/bin
cp opentracker $out/bin
'';
meta = with stdenv.lib; {
homepage = https://github.com/masroore/opentracker;
license = "beer-ware";
platforms = platforms.linux;
description = "Bittorrent tracker project aiminf for minimal resource usage and is intended to run at your wlan router";
};
}

View File

@ -1,16 +0,0 @@
{ stdenv, fetchgit, kdepimlibs, funambol, liblikeback }:
stdenv.mkDerivation rec {
name = "akunambol-20110304";
src = fetchgit {
url = git://anongit.kde.org/akunambol.git;
rev = "1d832bbbce84f474e3f1e5d2f9fa8a4079b0c8e5";
sha256 = "1d2x42lbw32qyawri7z0mrbafz36r035w5bxjpq51awyqjwkbb2d";
};
buildInputs = [ kdepimlibs funambol liblikeback ];
KDEDIRS = liblikeback;
patches = [ ./non-latin.diff ];
}

View File

@ -1,17 +0,0 @@
diff --git a/qtgui/standardsourcesettings.cpp b/qtgui/standardsourcesettings.cpp
index a14a737..5d4712e 100644
--- a/qtgui/standardsourcesettings.cpp
+++ b/qtgui/standardsourcesettings.cpp
@@ -83,9 +83,9 @@ void StandardSourceSettings::populateCollections()
foreach( const Collection &collection, colls ) {
if (collection.contentMimeTypes().contains(source->getAkonadiMimeType())) {
i++;
- const char* dn = collection.name().toUtf8();
- LOG.debug("Adding collection id %lld named %s", collection.id(), dn);
- collections->addItem(dn);
+ LOG.debug("Adding collection id %lld named %s", collection.id(),
+ collection.name().toLocal8Bit().data());
+ collections->addItem(collection.name());
idList.append(collection.id());
}
}

View File

@ -0,0 +1,22 @@
{stdenv, fetchurl, qt4, cmake, sqlite}:
stdenv.mkDerivation {
name = "tagainijisho-1.0.2";
src = fetchurl {
url = https://github.com/Gnurou/tagainijisho/releases/download/1.0.2/tagainijisho-1.0.2.tar.gz;
sha256 = "0gvwsphy2a1b2npxkzvaf91rbzb00zhi2anxd5102h6ld5m52jhl";
};
buildInputs = [ qt4 cmake sqlite ];
meta = with stdenv.lib; {
description = "A free, open-source Japanese dictionary and kanji lookup tool";
homepage = http://www.tagaini.net/;
license = with licenses; [
/* program */ gpl3Plus
/* data */ cc-by-sa-30
];
platforms = platforms.unix;
maintainers = with maintainers; [ vbgl ];
};
}

View File

@ -1,6 +1,6 @@
diff -wbBur xplanet-1.3.0/src/libimage/gif.c /home/sergej/tmp/BUILD/staging-i686/sergej/build/xplanet/src/xplanet-1.3.0/src/libimage/gif.c
diff -wbBur xplanet-1.3.0/src/libimage/gif.c xplanet-1.3.0.my/src/libimage/gif.c
--- xplanet-1.3.0/src/libimage/gif.c 2006-03-26 01:50:51.000000000 +0300
+++ /home/sergej/tmp/BUILD/staging-i686/sergej/build/xplanet/src/xplanet-1.3.0/src/libimage/gif.c 2013-07-30 18:21:17.412474692 +0400
+++ xplanet-1.3.0.my/src/libimage/gif.c 2014-05-29 18:59:14.830652716 +0400
@@ -20,7 +20,7 @@
#include <stdio.h>
@ -59,6 +59,15 @@ diff -wbBur xplanet-1.3.0/src/libimage/gif.c /home/sergej/tmp/BUILD/staging-i686
return(0);
}
}
@@ -154,7 +154,7 @@
free(buffer);
- DGifCloseFile(infile);
+ DGifCloseFile(infile, NULL);
return(1);
}
@@ -178,7 +178,7 @@
return(0);
}
@ -119,11 +128,13 @@ diff -wbBur xplanet-1.3.0/src/libimage/gif.c /home/sergej/tmp/BUILD/staging-i686
return(0);
}
ptr += width;
@@ -233,7 +233,7 @@
@@ -232,8 +232,8 @@
EGifSpew(outfile);
if (EGifCloseFile(outfile) == GIF_ERROR)
- if (EGifCloseFile(outfile) == GIF_ERROR)
- PrintGifError();
+ if (EGifCloseFile(outfile, NULL) == GIF_ERROR)
+ printf("%s\n", GifErrorString(GIF_ERROR));
free(buffer);

View File

@ -0,0 +1,30 @@
{ stdenv, fetchurl, qt5, boost }:
stdenv.mkDerivation rec {
version = "0.9.0b";
name = "fritzing";
src = fetchurl {
url = "http://fritzing.org/download/${version}/source-tarball/fritzing-${version}.source.tar_1.bz2";
sha256 = "181qnknq1j5x075icpw2qk0sc4wcj9f2hym533vs936is0wxp2gk";
};
unpackPhase = ''
tar xjf ${src}
'';
buildInputs = [ qt5 boost ];
configurePhase = ''
cd fritzing-${version}.source
qmake PREFIX=$out phoenix.pro
'';
meta = {
description = "An open source prototyping tool for Arduino-based projects";
homepage = http://fritzing.org/;
license = stdenv.lib.licenses.gpl3;
maintainers = [ stdenv.lib.maintainers.robberer ];
};
}

View File

@ -2,8 +2,8 @@
{stdenv, fetchgit, writeText, pkgconfig, ocaml, findlib, camlp5, ncurses, lablgtk ? null}:
let
version = "8.5pre-01feb42";
let
version = "8.5pre-2313bde0";
coq-version = "8.5";
buildIde = lablgtk != null;
ideFlags = if buildIde then "-lablgtkdir ${lablgtk}/lib/ocaml/*/site-lib/lablgtk2 -coqide opt" else "";
@ -17,8 +17,8 @@ stdenv.mkDerivation {
src = fetchgit {
url = git://scm.gforge.inria.fr/coq/coq.git;
rev = "01feb4206d26b41bfaab9bd45a7b2fc4db569baf";
sha256 = "e6d44ebc3019b2650c6e320218b264f5bde68bf6f222b356d41b0a38918e839f";
rev = "2313bde0116a5916912bebbaca77d291f7b2760a";
sha256 = "116b8060a47a7b2d0cac72d86f7e320bec99b6d450614d1e6b92ff919619c509";
};
buildInputs = [ pkgconfig ocaml findlib camlp5 ncurses lablgtk ];

View File

@ -0,0 +1,23 @@
{stdenv, fetchurl, gmp, libantlr3c, boost}:
stdenv.mkDerivation {
name = "cvc4-1.4";
src = fetchurl {
url = http://cvc4.cs.nyu.edu/builds/src/cvc4-1.4.tar.gz;
sha256 = "093h7zgv4z4ad503j30dpn8k2pz9m90pvd7gi5axdmwsxgwlzzkn";
};
buildInputs = [ gmp libantlr3c boost ];
preConfigure = "patchShebangs ./src/";
doChecks = true;
meta = with stdenv.lib; {
description = "An efficient open-source automatic theorem prover for satisfiability modulo theories (SMT) problems";
homepage = http://cvc4.cs.nyu.edu/web/;
license = licenses.bsd3;
platforms = platforms.unix;
maintainers = with maintainers; [ vbgl ];
};
}

View File

@ -2,21 +2,21 @@
stdenv.mkDerivation rec {
name = "why3-${version}";
version = "0.83";
version = "0.85";
src = fetchurl {
url = "https://gforge.inria.fr/frs/download.php/33490/${name}.tar.gz";
sha256 = "1jcs5vj91ppbgh4q4hch89b63wgakjhg35pm3r4jwhp377lnggya";
url = "https://gforge.inria.fr/frs/download.php/34074/why3-0.85.tar.gz";
sha256 = "0sj1pd50lqvnvyss1f8ysgigdi64s91rrpdrmp7crmcy1npa8apf";
};
buildInputs = with ocamlPackages;
[ coq ocaml findlib lablgtk ocamlgraph zarith ];
meta = {
description = "why is a software verification platform";
meta = with stdenv.lib; {
description = "A platform for deductive program verification";
homepage = "http://why3.lri.fr/";
license = stdenv.lib.licenses.lgpl21;
platforms = stdenv.lib.platforms.linux;
maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
license = licenses.lgpl21;
platforms = platforms.unix;
maintainers = with maintainers; [ thoughtpolice vbgl ];
};
}

View File

@ -2,7 +2,7 @@
let
name = "maxima";
version = "5.33.0";
version = "5.34.1";
searchPath =
stdenv.lib.makeSearchPath "bin"
@ -13,7 +13,7 @@ stdenv.mkDerivation {
src = fetchurl {
url = "mirror://sourceforge/${name}/${name}-${version}.tar.gz";
sha256 = "13axm11xw0f3frx5b0qdidi7igkn1524fzz77s9rbpl2yy2nrbz2";
sha256 = "1dw9vfzldpj7lv303xbw0wpyn6ra6i2yzwlrjbcx7j0jm5n43ji0";
};
buildInputs = [sbcl texinfo perl makeWrapper];

View File

@ -23,6 +23,9 @@ cabal.mkDerivation (self: {
mkdir -p $out/etc/bash_completion.d
mv contrib/darcs_completion $out/etc/bash_completion.d/darcs
'';
patchPhase = ''
sed -i -e 's|random.*==.*|random|' darcs.cabal
'';
meta = {
homepage = "http://darcs.net/";
description = "a distributed, interactive, smart revision control system";

View File

@ -48,5 +48,6 @@ cabal.mkDerivation (self: {
license = self.stdenv.lib.licenses.gpl3;
platforms = self.ghc.meta.platforms;
maintainers = with self.stdenv.lib.maintainers; [ simons ];
broken = true;
};
})

View File

@ -2,7 +2,7 @@
, guiSupport ? false, tk ? null, curses }:
let
version = "3.1.1";
version = "3.1.2";
name = "mercurial-${version}";
in
@ -11,7 +11,7 @@ stdenv.mkDerivation {
src = fetchurl {
url = "http://mercurial.selenic.com/release/${name}.tar.gz";
sha256 = "1ncqagvxcqa41ginmf0kpx2z6b2r2zrq7bdkza3nfba682c2is67";
sha256 = "0fldlypjpzn12az2gk4b3am615wih3r6ld69im97iqq76zmmrgjx";
};
inherit python; # pass it so that the same version can be used in hg2git

View File

@ -1,11 +1,11 @@
{ stdenv, fetchurl, ed }:
stdenv.mkDerivation rec {
name = "rcs-5.9.2";
name = "rcs-5.9.3";
src = fetchurl {
url = "mirror://gnu/rcs/${name}.tar.xz";
sha256 = "0wdmmplga9k05d9k7wjqv4zb6xvvzsli8hmn206pvangki1g66k5";
sha256 = "0isvzwfvqkg7zcsznra6wqh650z49ib113n7gp6ncxv5p30x3c38";
};
buildInputs = [ ed ];

View File

@ -0,0 +1,100 @@
Description: FHS through env vars
Forwarded: not-needed
Author: Jérémy Lal <kapouer@melix.org>
Last-Update: 2013-09-28
--- redmine.orig/app/models/attachment.rb
+++ redmine/app/models/attachment.rb
@@ -46,10 +46,10 @@ class Attachment < ActiveRecord::Base
"LEFT JOIN #{Project.table_name} ON #{Document.table_name}.project_id = #{Project.table_name}.id"}
cattr_accessor :storage_path
- @@storage_path = Redmine::Configuration['attachments_storage_path'] || File.join(Rails.root, "files")
+ @@storage_path = Redmine::Configuration['attachments_storage_path'] || ENV['RAILS_VAR'] ? File.join(ENV['RAILS_VAR'], "files") : File.join(Rails.root, "files")
cattr_accessor :thumbnails_storage_path
- @@thumbnails_storage_path = File.join(Rails.root, "tmp", "thumbnails")
+ @@thumbnails_storage_path = ENV['RAILS_TMP'] ? File.join(ENV['RAILS_TMP'], "thumbnails") : File.join(Rails.root, "tmp", "thumbnails")
before_save :files_to_final_location
after_destroy :delete_from_disk
--- redmine.orig/lib/redmine/configuration.rb
+++ redmine/lib/redmine/configuration.rb
@@ -32,7 +32,7 @@ module Redmine
# * <tt>:file</tt>: the configuration file to load (default: config/configuration.yml)
# * <tt>:env</tt>: the environment to load the configuration for (default: Rails.env)
def load(options={})
- filename = options[:file] || File.join(Rails.root, 'config', 'configuration.yml')
+ filename = options[:file] || ENV['RAILS_ETC'] ? File.join(ENV['RAILS_ETC'], 'configuration.yml') : File.join(Rails.root, 'config', 'configuration.yml')
env = options[:env] || Rails.env
@config = @defaults.dup
@@ -103,7 +103,7 @@ module Redmine
end
def load_deprecated_email_configuration(env)
- deprecated_email_conf = File.join(Rails.root, 'config', 'email.yml')
+ deprecated_email_conf = ENV['RAILS_ETC'] ? File.join(ENV['RAILS_ETC'], 'email.yml') : File.join(Rails.root, 'config', 'email.yml')
if File.file?(deprecated_email_conf)
warn "Storing outgoing emails configuration in config/email.yml is deprecated. You should now store it in config/configuration.yml using the email_delivery setting."
@config.merge!({'email_delivery' => load_from_yaml(deprecated_email_conf, env)})
--- redmine.orig/lib/redmine/export/pdf.rb
+++ redmine/lib/redmine/export/pdf.rb
@@ -38,7 +38,7 @@ module Redmine
attr_accessor :footer_date
def initialize(lang, orientation='P')
- @@k_path_cache = Rails.root.join('tmp', 'pdf')
+ @@k_path_cache = ENV['RAILS_TMP'] ? File.join(ENV['RAILS_TMP'], 'pdf') : Rails.root.join('tmp', 'pdf')
FileUtils.mkdir_p @@k_path_cache unless File::exist?(@@k_path_cache)
set_language_if_valid lang
pdf_encoding = l(:general_pdf_encoding).upcase
--- redmine.orig/config/application.rb
+++ redmine/config/application.rb
@@ -52,8 +63,21 @@ module RedmineApp
# Do not include all helpers
config.action_controller.include_all_helpers = false
+ # move tmp directory to RAILS_TMP
+ config.paths['tmp'] = ENV['RAILS_TMP']
+
config.session_store :cookie_store, :key => '_redmine_session'
+ # log path
+ config.paths['log'] = File.join(ENV['RAILS_LOG'], "#{Rails.env}.log") unless !ENV['RAILS_LOG']
+
+ config.paths['public'] = ENV['RAILS_PUBLIC'] unless !ENV['RAILS_PUBLIC']
+
+ config.cache_store = :file_store, File.join(ENV['RAILS_TMP'], "cache")
+
+ # Set Active Record's database.yml path
+ config.paths['config/database'] = File.join(ENV['RAILS_ETC'], 'database.yml') unless !ENV['RAILS_ETC']
+
if File.exists?(File.join(File.dirname(__FILE__), 'additional_environment.rb'))
instance_eval File.read(File.join(File.dirname(__FILE__), 'additional_environment.rb'))
end
--- redmine.orig/lib/plugins/rfpdf/lib/tcpdf.rb
+++ redmine/lib/plugins/rfpdf/lib/tcpdf.rb
@@ -89,10 +89,10 @@ class TCPDF
@@k_small_ratio = 2/3.0
cattr_accessor :k_path_cache
- @@k_path_cache = Rails.root.join('tmp')
+ @@k_path_cache = ENV['RAILS_TMP'] ? ENV['RAILS_TMP'] : Rails.root.join('tmp')
cattr_accessor :k_path_url_cache
- @@k_path_url_cache = Rails.root.join('tmp')
+ @@k_path_url_cache = ENV['RAILS_TMP'] ? ENV['RAILS_TMP'] : Rails.root.join('tmp')
attr_accessor :barcode
--- redmine.orig/lib/redmine/scm/adapters/abstract_adapter.rb
+++ redmine/lib/redmine/scm/adapters/abstract_adapter.rb
@@ -222,7 +222,7 @@ module Redmine
if @stderr_log_file.nil?
writable = false
path = Redmine::Configuration['scm_stderr_log_file'].presence
- path ||= Rails.root.join("log/#{Rails.env}.scm.stderr.log").to_s
+ path ||= ENV['RAILS_LOG'] ? File.join(ENV['RAILS_LOG'], "#{Rails.env}.scm.stderr.log").to_s : Rails.root.join("log/#{Rails.env}.scm.stderr.log").to_s
if File.exists?(path)
if File.file?(path) && File.writable?(path)
writable = true

View File

@ -0,0 +1,72 @@
Description: Externalize session config to yml in /etc
Forwarded: not-needed
Author: Jérémy Lal <kapouer@melix.org>
Last-Update: 2010-01-10
--- redmine.orig/lib/tasks/initializers.rake
+++ redmine/lib/tasks/initializers.rake
@@ -1,11 +1,12 @@
desc 'Generates a secret token for the application.'
+task :generate_secret_token do
-file 'config/initializers/secret_token.rb' do
- path = File.join(Rails.root, 'config', 'initializers', 'secret_token.rb')
- secret = SecureRandom.hex(40)
- File.open(path, 'w') do |f|
- f.write <<"EOF"
-# This file was generated by 'rake generate_secret_token', and should
+filename = ENV['YML_SESSION_FILENAME'] ? ENV['YML_SESSION_FILENAME'] : 'session.yml'
+path = File.join(ENV['RAILS_ETC'] ? ENV['RAILS_ETC'] : File.join(Rails.root, 'config'), filename)
+secret = SecureRandom.hex(40)
+File.open(path, 'w') do |f|
+ f.write <<"EOF"
+# This file was generated by 'rake generate_session_store',
# not be made visible to public.
# If you have a load-balancing Redmine cluster, you will need to use the
# same version of this file on each machine. And be sure to restart your
@@ -15,10 +18,18 @@ file 'config/initializers/secret_token.r
# change this key, all old sessions will become invalid! Make sure the
# secret is at least 30 characters and all random, no regular words or
# you'll be exposed to dictionary attacks.
-RedmineApp::Application.config.secret_token = '#{secret}'
+
+production:
+ key: _redmine_
+ secret: #{secret}
+
+development:
+ key: _redmine_
+ secret: #{secret}
+
+test:
+ key: _redmine_
+ secret: #{secret}
EOF
end
end
-
-desc 'Generates a secret token for the application.'
-task :generate_secret_token => ['config/initializers/secret_token.rb']
--- redmine.orig/config/application.rb
+++ redmine/config/application.rb
@@ -66,7 +66,20 @@ module RedmineApp
# move tmp directory to RAILS_TMP
config.paths['tmp'] = ENV['RAILS_TMP']
- config.session_store :cookie_store, :key => '_redmine_session'
+ # loads cookie based session session and secret keys
+ # this is needed here because initializers are loaded after plugins,
+ # and some plugins initialize ActionController which requires a secret to be set.
+ # crash if file not found
+ relativeUrlRoot = ENV['RAILS_RELATIVE_URL_ROOT']
+ filename = ENV['RAILS_ETC'] ? File.join(ENV['RAILS_ETC'], 'session.yml') : File.join(File.dirname(__FILE__), '..', 'session.yml')
+ if File.exists?(filename)
+ sessionconfig = YAML::load_file(filename)
+ config.session_store :cookie_store, :key => sessionconfig[Rails.env]['key'], :path => (relativeUrlRoot.blank?) ? '/' : relativeUrlRoot
+ config.secret_token = sessionconfig[Rails.env]['secret']
+ else
+ # temporary settings before session.yml is created
+ config.session_store :cookie_store, :key => '_redmine_session', :path => (relativeUrlRoot.blank?) ? '/' : relativeUrlRoot
+ end
# log path
config.paths['log'] = File.join(ENV['RAILS_LOG'], "#{Rails.env}.log") unless !ENV['RAILS_LOG']

View File

@ -0,0 +1,11 @@
--- redmine.orig/lib/redmine/plugin.rb
+++ redmine/lib/redmine/plugin.rb
@@ -47,7 +47,7 @@ module Redmine #:nodoc:
self.directory = File.join(Rails.root, 'plugins')
cattr_accessor :public_directory
- self.public_directory = File.join(Rails.root, 'public', 'plugin_assets')
+ self.public_directory = ENV['RAILS_TMP'] ? File.join(ENV['RAILS_TMP'], 'plugin_assets') : File.join(Rails.root, 'public', 'plugin_assets')
@registered_plugins = {}
class << self

View File

@ -0,0 +1,152 @@
GEM
remote: https://rubygems.org/
specs:
actionmailer (3.2.19)
actionpack (= 3.2.19)
mail (~> 2.5.4)
actionpack (3.2.19)
activemodel (= 3.2.19)
activesupport (= 3.2.19)
builder (~> 3.0.0)
erubis (~> 2.7.0)
journey (~> 1.0.4)
rack (~> 1.4.5)
rack-cache (~> 1.2)
rack-test (~> 0.6.1)
sprockets (~> 2.2.1)
activemodel (3.2.19)
activesupport (= 3.2.19)
builder (~> 3.0.0)
activerecord (3.2.19)
activemodel (= 3.2.19)
activesupport (= 3.2.19)
arel (~> 3.0.2)
tzinfo (~> 0.3.29)
activeresource (3.2.19)
activemodel (= 3.2.19)
activesupport (= 3.2.19)
activesupport (3.2.19)
i18n (~> 0.6, >= 0.6.4)
multi_json (~> 1.0)
arel (3.0.3)
awesome_nested_set (2.1.6)
activerecord (>= 3.0.0)
builder (3.0.0)
capybara (2.1.0)
mime-types (>= 1.16)
nokogiri (>= 1.3.3)
rack (>= 1.0.0)
rack-test (>= 0.5.4)
xpath (~> 2.0)
childprocess (0.5.5)
ffi (~> 1.0, >= 1.0.11)
coderay (1.1.0)
erubis (2.7.0)
fastercsv (1.5.5)
ffi (1.9.5)
hike (1.2.3)
i18n (0.6.11)
journey (1.0.4)
jquery-rails (2.0.3)
railties (>= 3.1.0, < 5.0)
thor (~> 0.14)
json (1.8.1)
mail (2.5.4)
mime-types (~> 1.16)
treetop (~> 1.4.8)
metaclass (0.0.4)
mime-types (1.25.1)
mini_portile (0.6.0)
mocha (1.0.0)
metaclass (~> 0.0.1)
multi_json (1.10.1)
net-ldap (0.3.1)
nokogiri (1.6.3.1)
mini_portile (= 0.6.0)
pg (0.17.1)
polyglot (0.3.5)
rack (1.4.5)
rack-cache (1.2)
rack (>= 0.4)
rack-openid (1.4.2)
rack (>= 1.1.0)
ruby-openid (>= 2.1.8)
rack-ssl (1.3.4)
rack
rack-test (0.6.2)
rack (>= 1.0)
rails (3.2.19)
actionmailer (= 3.2.19)
actionpack (= 3.2.19)
activerecord (= 3.2.19)
activeresource (= 3.2.19)
activesupport (= 3.2.19)
bundler (~> 1.0)
railties (= 3.2.19)
railties (3.2.19)
actionpack (= 3.2.19)
activesupport (= 3.2.19)
rack-ssl (~> 1.3.2)
rake (>= 0.8.7)
rdoc (~> 3.4)
thor (>= 0.14.6, < 2.0)
rake (10.1.1)
rdoc (3.12.2)
json (~> 1.4)
redcarpet (2.3.0)
rmagick (2.13.3)
ruby-openid (2.3.0)
rubyzip (1.1.6)
selenium-webdriver (2.43.0)
childprocess (~> 0.5)
multi_json (~> 1.0)
rubyzip (~> 1.0)
websocket (~> 1.0)
shoulda (3.3.2)
shoulda-context (~> 1.0.1)
shoulda-matchers (~> 1.4.1)
shoulda-context (1.0.2)
shoulda-matchers (1.4.1)
activesupport (>= 3.0.0)
sprockets (2.2.2)
hike (~> 1.2)
multi_json (~> 1.0)
rack (~> 1.0)
tilt (~> 1.1, != 1.3.0)
thor (0.19.1)
tilt (1.4.1)
treetop (1.4.15)
polyglot
polyglot (>= 0.3.1)
tzinfo (0.3.41)
websocket (1.2.1)
xpath (2.0.0)
nokogiri (~> 1.3)
yard (0.8.7.4)
PLATFORMS
ruby
DEPENDENCIES
activerecord-jdbc-adapter (~> 1.3.2)
activerecord-jdbcpostgresql-adapter
awesome_nested_set (= 2.1.6)
builder (= 3.0.0)
capybara (~> 2.1.0)
coderay (~> 1.1.0)
fastercsv (~> 1.5.0)
jquery-rails (~> 2.0.2)
mime-types
mocha (~> 1.0.0)
net-ldap (~> 0.3.1)
pg (>= 0.11.0)
rack-openid
rails (= 3.2.19)
rake (~> 10.1.1)
rdoc (>= 2.4.2)
redcarpet (~> 2.3.0)
rmagick (>= 2.0.0)
ruby-openid (~> 2.3.0)
selenium-webdriver
shoulda (~> 3.3.2)
yard

View File

@ -0,0 +1,332 @@
[
{
name = "actionmailer";
hash = "cd9f0b22f755b0adeae13cf949adaf63fa1c068c72d0a100572c6a11aecd3ba7";
url = "http://rubygems.org/downloads/actionmailer-3.2.19.gem";
version = "3.2.19";
}
{
name = "actionpack";
hash = "c58ca2342aff2062f4f478551ce46d81918ac93200bc62d099764d2cd7499fcd";
url = "http://rubygems.org/downloads/actionpack-3.2.19.gem";
version = "3.2.19";
}
{
name = "activemodel";
hash = "4ea3abf790eca9ee8228e9e2a465350e258294270a639b63f0e1dfad236fe70e";
url = "http://rubygems.org/downloads/activemodel-3.2.19.gem";
version = "3.2.19";
}
{
name = "activerecord";
hash = "052945ad510744aaa3e35a817a6f515a2316e7dd96df6460f75b36067bb60372";
url = "http://rubygems.org/downloads/activerecord-3.2.19.gem";
version = "3.2.19";
}
{
name = "activeresource";
hash = "8617d24537ca937cc67aac46aaa29782510d66136605426d0a23a3585a839daf";
url = "http://rubygems.org/downloads/activeresource-3.2.19.gem";
version = "3.2.19";
}
{
name = "activesupport";
hash = "2c837a59250da14b12a6b0cfb6774f0afae90aa749fd96ad4347344d8417ad3d";
url = "http://rubygems.org/downloads/activesupport-3.2.19.gem";
version = "3.2.19";
}
{
name = "arel";
hash = "c0006e2169deee3b8cc2d258296388822eeb2db59832450b9b7316e1387d0da4";
url = "http://rubygems.org/downloads/arel-3.0.3.gem";
version = "3.0.3";
}
{
name = "awesome_nested_set";
hash = "0dcd801aea5048f5ab907b62b4174b6763b191eaa4e1e11bb83f996f01349af8";
url = "http://rubygems.org/downloads/awesome_nested_set-2.1.6.gem";
version = "2.1.6";
}
{
name = "builder";
hash = "fbd3e15e5de02245f7d649b3415b2c2875cdc9a14dccde89aa30fc14a314618e";
url = "http://rubygems.org/downloads/builder-3.0.0.gem";
version = "3.0.0";
}
{
name = "capybara";
hash = "a9a19f8d6bb2dfcb1f05ea3e1727cb556d1cba0d234d1712b481e8d4f7bbb91e";
url = "http://rubygems.org/downloads/capybara-2.1.0.gem";
version = "2.1.0";
}
{
name = "childprocess";
hash = "9b583295a11932d2eeffa1e8f5b8fb2fb0064a2f0111ad98c3b752b94f80bf33";
url = "http://rubygems.org/downloads/childprocess-0.5.5.gem";
version = "0.5.5";
}
{
name = "coderay";
hash = "5a943c59e36f7ef9dd2677855735656413af02e3f302431e9c548aabe89f3c15";
url = "http://rubygems.org/downloads/coderay-1.1.0.gem";
version = "1.1.0";
}
{
name = "erubis";
hash = "63653f5174a7997f6f1d6f465fbe1494dcc4bdab1fb8e635f6216989fb1148ba";
url = "http://rubygems.org/downloads/erubis-2.7.0.gem";
version = "2.7.0";
}
{
name = "fastercsv";
hash = "d098199e62e4e10eec436a9ea9b8c189dacd5c06f2825f00d1e0f1c29fdbc3b5";
url = "http://rubygems.org/downloads/fastercsv-1.5.5.gem";
version = "1.5.5";
}
{
name = "ffi";
hash = "0d2ef90163eef8545689e8dfc27fb1245a2d82e3500d587de1e38290629e662f";
url = "http://rubygems.org/downloads/ffi-1.9.5.gem";
version = "1.9.5";
}
{
name = "hike";
hash = "154e2f2593845e5bcd8ed2ba3092600c55c6ad8c630722857de3fdaf334ccc44";
url = "http://rubygems.org/downloads/hike-1.2.3.gem";
version = "1.2.3";
}
{
name = "i18n";
hash = "b37dda25b30484f2674a851e24ae098a38564a61c976fa91a34bf8fceaa3923b";
url = "http://rubygems.org/downloads/i18n-0.6.11.gem";
version = "0.6.11";
}
{
name = "journey";
hash = "7454b8612530784000fbb17ea2df749a71b70702a0ac8ebef4a1e7f05aecc10f";
url = "http://rubygems.org/downloads/journey-1.0.4.gem";
version = "1.0.4";
}
{
name = "jquery-rails";
hash = "cc4eab342fb3b1fcbb2fc1c9a61b09ecd86d795b1f74d607994b0bc6fd5ef444";
url = "http://rubygems.org/downloads/jquery-rails-2.0.3.gem";
version = "2.0.3";
}
{
name = "json";
hash = "961bfbbfa9fda1e857e9c791e964e6664e0d43bf687b19669dfbc7cdbc5e0200";
url = "http://rubygems.org/downloads/json-1.8.1.gem";
version = "1.8.1";
}
{
name = "mail";
hash = "446585c38b062121252688dcc9cc70af1f470822e30db021bb97d185969e257c";
url = "http://rubygems.org/downloads/mail-2.5.4.gem";
version = "2.5.4";
}
{
name = "metaclass";
hash = "8569685c902108b1845be4e5794d646f2a8adcb0280d7651b600dab0844fe942";
url = "http://rubygems.org/downloads/metaclass-0.0.4.gem";
version = "0.0.4";
}
{
name = "mime-types";
hash = "88ef3c596481678710ffd4018fa40f1999b02d97babea39682ba7d5badd21f56";
url = "http://rubygems.org/downloads/mime-types-1.25.1.gem";
version = "1.25.1";
}
{
name = "mini_portile";
hash = "762b3e241362de24b2eb2bb1b98638399b931e9e51bece5f8e2df7611eb16c26";
url = "http://rubygems.org/downloads/mini_portile-0.6.0.gem";
version = "0.6.0";
}
{
name = "mocha";
hash = "788fd93c8009a7e0eebd155509953e5987f4681902aad666a294283baa09899a";
url = "http://rubygems.org/downloads/mocha-1.0.0.gem";
version = "1.0.0";
}
{
name = "multi_json";
hash = "2c98979877e87df0b338ebf5c86091b390f53d62c11a8232bd51ca007e0b82d2";
url = "http://rubygems.org/downloads/multi_json-1.10.1.gem";
version = "1.10.1";
}
{
name = "net-ldap";
hash = "953551665fb0d398740a72a26314c6d34bd70fa35419c96dc58351f17d9a5081";
url = "http://rubygems.org/downloads/net-ldap-0.3.1.gem";
version = "0.3.1";
}
{
name = "nokogiri";
hash = "91761a654439406b5bed71adf6092d49829e26332b4c0e7c8a23a2e628442585";
url = "http://rubygems.org/downloads/nokogiri-1.6.3.1.gem";
version = "1.6.3.1";
}
{
name = "pg";
hash = "e7933e8f7f184c28e820ed85ddfb3ad8a13933b2b2ab8656aa8f81cb0aa610a6";
url = "http://rubygems.org/downloads/pg-0.17.1.gem";
version = "0.17.1";
}
{
name = "polyglot";
hash = "59d66ef5e3c166431c39cb8b7c1d02af419051352f27912f6a43981b3def16af";
url = "http://rubygems.org/downloads/polyglot-0.3.5.gem";
version = "0.3.5";
}
{
name = "rack";
hash = "f7bf3faa8e09a2ff26475372de36a724e7470d6bdc33d189a0ec34b49605f308";
url = "http://rubygems.org/downloads/rack-1.4.5.gem";
version = "1.4.5";
}
{
name = "rack-cache";
hash = "02bfed05f8b3266db804f2fa445801636ca2c6d211a3137ec796f88af5756e1c";
url = "http://rubygems.org/downloads/rack-cache-1.2.gem";
version = "1.2";
}
{
name = "rack-openid";
hash = "8cd2305e738463a7da98791f9ac4df4cf3f6ed27908d982350430694ac2fe869";
url = "http://rubygems.org/downloads/rack-openid-1.4.2.gem";
version = "1.4.2";
}
{
name = "rack-ssl";
hash = "d703764fa2a0d44a2163d6add65be89f5dba4477d1959b90d3727682a9c37dcf";
url = "http://rubygems.org/downloads/rack-ssl-1.3.4.gem";
version = "1.3.4";
}
{
name = "rack-test";
hash = "7e920b6aac888e4a3846e5997fb1cbf456bdb5846322b58dc31697a54a38b306";
url = "http://rubygems.org/downloads/rack-test-0.6.2.gem";
version = "0.6.2";
}
{
name = "rails";
hash = "33b64cf78dfcf3206d961ce03e8fe6d260081da696e60da39d0b2a4a160fe22b";
url = "http://rubygems.org/downloads/rails-3.2.19.gem";
version = "3.2.19";
}
{
name = "railties";
hash = "c569009ee5c005190d208ac228087fdc094b10c6f0cf209f1d12c552b447cc10";
url = "http://rubygems.org/downloads/railties-3.2.19.gem";
version = "3.2.19";
}
{
name = "rake";
hash = "85e446590871dd3469c80dfe70a0296c20b76a9006af6b728c1f47d0b460412d";
url = "http://rubygems.org/downloads/rake-10.1.1.gem";
version = "10.1.1";
}
{
name = "rdoc";
hash = "a8e2b78f7e5ec4cc4716cd863975645f2f2377dc6db267a15e427e5fae2633ed";
url = "http://rubygems.org/downloads/rdoc-3.12.2.gem";
version = "3.12.2";
}
{
name = "redcarpet";
hash = "5c9bcc307fba97ff5a25eec74f08365c17e929d2a5c707db32d6fc99ec81f0b9";
url = "http://rubygems.org/downloads/redcarpet-2.3.0.gem";
version = "2.3.0";
}
{
name = "rmagick";
hash = "109f3b8be90afdea9abbdd2a79a955cd808b5cad65d937ed12676da22870d3b4";
url = "http://rubygems.org/downloads/rmagick-2.13.3.gem";
version = "2.13.3";
}
{
name = "ruby-openid";
hash = "f69ed004e95f7094e23bfd8bc9ebfb1dc88a7b46637252ca2907a1189870ea7b";
url = "http://rubygems.org/downloads/ruby-openid-2.3.0.gem";
version = "2.3.0";
}
{
name = "rubyzip";
hash = "a996435ee9698be6a09d3748f4d23ee15aaf45cbfef1749def165af6ea3c0a9e";
url = "http://rubygems.org/downloads/rubyzip-1.1.6.gem";
version = "1.1.6";
}
{
name = "selenium-webdriver";
hash = "09fe4374d1541cb45403ad1238c2d88129f3afb985218635af087a06c99a521a";
url = "http://rubygems.org/downloads/selenium-webdriver-2.43.0.gem";
version = "2.43.0";
}
{
name = "shoulda";
hash = "52e70b71cbfb7c01dace14e268a62d86c21ddd1e5ec0116c8b1e632d8e04e412";
url = "http://rubygems.org/downloads/shoulda-3.3.2.gem";
version = "3.3.2";
}
{
name = "shoulda-context";
hash = "ee5559aa13248c70fdec6868a3c144adf7438c904c59d1a76b04a002e5151de5";
url = "http://rubygems.org/downloads/shoulda-context-1.0.2.gem";
version = "1.0.2";
}
{
name = "shoulda-matchers";
hash = "c35693cbfa84213212dffbc2c87487427ef364927340151329a842f0a06086b9";
url = "http://rubygems.org/downloads/shoulda-matchers-1.4.1.gem";
version = "1.4.1";
}
{
name = "sprockets";
hash = "fae893b7e86e83c1936f6f2a64db3550510f86eabdd5fa9f0f23fb25d7e0cf96";
url = "http://rubygems.org/downloads/sprockets-2.2.2.gem";
version = "2.2.2";
}
{
name = "thor";
hash = "9ff834f031b5550c743bb8a3139317fefdae9cdebd02d60de376658f427fe522";
url = "http://rubygems.org/downloads/thor-0.19.1.gem";
version = "0.19.1";
}
{
name = "tilt";
hash = "39820562c4f5db45fe18de87ccc30a0e77a998bf5334b1d8c10a2f7dbc1f5903";
url = "http://rubygems.org/downloads/tilt-1.4.1.gem";
version = "1.4.1";
}
{
name = "treetop";
hash = "ffa68f201c0f62c26b0a1d13233d73194400596964696843f87ebb5d812f12ff";
url = "http://rubygems.org/downloads/treetop-1.4.15.gem";
version = "1.4.15";
}
{
name = "tzinfo";
hash = "381b22fd1744a35d0a0239f563f505773681e626e6d900063b14cb9b1b68e98c";
url = "http://rubygems.org/downloads/tzinfo-0.3.41.gem";
version = "0.3.41";
}
{
name = "websocket";
hash = "e626c8c3e8593735d900265fb1fc3439fd06b394069860177d8f40733b12ae9e";
url = "http://rubygems.org/downloads/websocket-1.2.1.gem";
version = "1.2.1";
}
{
name = "xpath";
hash = "9ca4a1cc88d9ab16c591468cce7b5d00ee06a8a76b841f8438970c7a44c86c12";
url = "http://rubygems.org/downloads/xpath-2.0.0.gem";
version = "2.0.0";
}
{
name = "yard";
hash = "e65a26f9b9dc6e2aa9b1d1d2e1a45bee3edf540a6a7e6c30fa6aa1df7f7a29b4";
url = "http://rubygems.org/downloads/yard-0.8.7.4.gem";
version = "0.8.7.4";
}
]

View File

@ -0,0 +1,6 @@
to regenerate Gemfile.nix and Gemfile.lock you need to
% nix-build bootstrap.nix
% cp result/Gemfile.nix ./
% cp result/Gemfile.lock ./

View File

@ -0,0 +1,45 @@
{ pkgs ? import <nixpkgs> {}
}:
with pkgs;
let
in stdenv.mkDerivation rec {
version = "2.5.2";
name = "redmine-${version}";
__noChroot = true;
src = fetchurl {
url = "http://www.redmine.org/releases/${name}.tar.gz";
sha256 = "0x0zwxyj4dwbk7l64s3lgny10mjf0ba8jwrbafsm4d72sncmacv0";
};
buildInputs = [
ruby rubyLibs.bundler libiconv libxslt libxml2 pkgconfig
libffi imagemagickBig postgresql which stdenv
];
installPhase = ''
unset http_proxy
unset ftp_proxy
cp -R . $out
cp ${./generate_nix_requirements.rb} $out/generate_nix_requirements.rb
cd $out
cat > config/database.yml <<EOF
production:
adapter: postgresql
EOF
bundle config --local build.nokogiri --use-system-libraries \
--with-iconv-dir=${libiconv} \
--with-xslt-dir=${libxslt} \
--with-xml2-dir=${libxml2} \
--with-pkg-config \
--with-pg-config=${postgresql}/bin/pg_config
bundle install --verbose --without development test rmagick --path /tmp/redmine-${version}
HOME="/tmp/redmine-${version}" ruby generate_nix_requirements.rb
rm -R /tmp/gems
'';
}

View File

@ -0,0 +1,73 @@
{ stdenv, fetchurl, ruby, rubyLibs, libiconv, libxslt, libxml2, pkgconfig, libffi, imagemagickBig, postgresql }:
let
gemspec = map (gem: fetchurl { url=gem.url; sha256=gem.hash; }) (import ./Gemfile.nix);
in stdenv.mkDerivation rec {
version = "2.5.2";
name = "redmine-${version}";
src = fetchurl {
url = "http://www.redmine.org/releases/${name}.tar.gz";
sha256 = "0x0zwxyj4dwbk7l64s3lgny10mjf0ba8jwrbafsm4d72sncmacv0";
};
# taken from redmine (2.5.1-2~bpo70+3) in debian wheezy-backports
# needed to separate run-time and build-time directories
patches = [
./2002_FHS_through_env_vars.patch
./2004_FHS_plugins_assets.patch
./2003_externalize_session_config.patch
];
postPatch = ''
substituteInPlace lib/redmine/plugin.rb --replace "File.join(Rails.root, 'plugins')" "ENV['RAILS_PLUGINS']"
substituteInPlace lib/redmine/plugin.rb --replace "File.join(Rails.root, 'plugins', id.to_s, 'db', 'migrate')" "File.join(ENV['RAILS_PLUGINS'], id.to_s, 'db', 'migrate')"
substituteInPlace config/routes.rb --replace '"plugins/*", Rails.root' 'ENV["RAILS_PLUGINS"] + "/*"'
'';
buildInputs = [
ruby rubyLibs.bundler libiconv libxslt libxml2 pkgconfig libffi
imagemagickBig postgresql
];
installPhase = ''
mkdir -p $out/share/redmine/
cp -R . $out/share/redmine/
cd $out/share/redmine
ln -s ${./Gemfile.lock} Gemfile.lock
export HOME=$(pwd)
cat > config/database.yml <<EOF
production:
adapter: postgresql
EOF
mkdir -p vendor/cache
${stdenv.lib.concatStrings (map (gem: "ln -s ${gem} vendor/cache/${gem.name};") gemspec)}
bundle config build.nokogiri \
--use-system-libraries \
--with-iconv-dir=${libiconv} \
--with-xslt-dir=${libxslt} \
--with-xml2-dir=${libxml2} \
--with-pkg-config \
--with-pg-config=${postgresql}/bin/pg_config
bundle install --verbose --local --deployment
# make sure we always load pg package
echo "gem \"pg\"" >> Gemfile
# make rails server happy
mkdir -p tmp/pids
# cleanup
rm config/database.yml
'';
meta = with stdenv.lib; {
homepage = http://www.redmine.org/;
platforms = platforms.linux;
maintainers = [ maintainers.garbas ];
license = licenses.gpl2;
};
}

View File

@ -0,0 +1,56 @@
#!/usr/bin/env ruby
require 'rubygems'
require 'bundler'
require 'fileutils'
require 'net/http'
require 'net/https'
require 'uri'
TMP_DIR = "/tmp/gems"
FileUtils.rm_rf(TMP_DIR) if File.exists?(TMP_DIR)
FileUtils.mkdir TMP_DIR
GEMSERVER = "http://rubygems.org"
# inspect Gemfile.lock
lockfile = Bundler::LockfileParser.new(Bundler.read_file("Gemfile.lock"))
to_mirror = {}
uri = URI(GEMSERVER)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == 'https'
requirements = {}
lockfile.specs.each do |s|
possible_gem_name = "#{s.name}-#{s.version.to_s}.gem"
Dir.chdir TMP_DIR do
filename = `gem fetch #{s.name} -v #{s.version.to_s}`.split()[1]
hash = `sha256sum #{filename}.gem`
url = "#{GEMSERVER}/downloads/#{filename}.gem"
puts url
requirements[s.name] = { :version => s.version.to_s,
:hash => hash.split().first,
:url => url,}
end
end
filename = 'Gemfile.nix'
File.open(filename, 'w') do |file|
file.puts "["
requirements.each do |name, info|
file.puts "{"
file.puts ['name = ', '"', name, '";'].join('')
file.puts ['hash = ', '"', info[:hash], '";'].join('')
file.puts ['url = ', '"', info[:url], '";'].join('')
file.puts ['version = ', '"', info[:version], '";'].join('')
file.puts "}"
end
file.puts "]"
end

View File

@ -6,11 +6,11 @@
stdenv.mkDerivation rec {
name = "kdenlive-${version}";
version = "0.9.8";
version = "0.9.10";
src = fetchurl {
url = "mirror://kde/stable/kdenlive/${version}/src/${name}.tar.bz2";
sha256 = "17x5srgywcwlbpbs598jwwc62l8313n4dbqx3sdk7p6lyvwk3jln";
sha256 = "0qxpxnfbr8g6xq0h32skgqqi2xylrv2bnmyx5x1cws9y2wwxp3zn";
};
buildInputs = [

View File

@ -3,8 +3,13 @@
, taglib, pysqlite, pycurl, mutagen, pycairo, pythonDBus, pywebkitgtk
, libtorrentRasterbar, glib_networking, gsettings_desktop_schemas
, gst_python, gst_plugins_base, gst_plugins_good, gst_ffmpeg
, enableBonjour ? false, avahi ? null
}:
assert enableBonjour -> avahi != null;
with stdenv.lib;
buildPythonPackage rec {
name = "miro-${version}";
namePrefix = "";
@ -37,6 +42,9 @@ buildPythonPackage rec {
c RESOURCE_ROOT = '"'$out/share/miro/resources/'"'
}' \
plat/resources.py
'' + optionalString enableBonjour ''
sed -i -e 's|ctypes.cdll.LoadLibrary( *|ctypes.CDLL("${avahi}/lib/" +|' \
../lib/libdaap/pybonjour.py
'';
# Disabled for now, because it requires networking and even if we skip those
@ -69,13 +77,13 @@ buildPythonPackage rec {
pygobject pygtk pycurl python.modules.sqlite3 mutagen pycairo pythonDBus
pywebkitgtk libtorrentRasterbar
gst_python gst_plugins_base gst_plugins_good gst_ffmpeg
];
] ++ optional enableBonjour avahi;
meta = {
homepage = "http://www.getmiro.com/";
description = "Video and audio feed aggregator";
license = stdenv.lib.licenses.gpl2Plus;
maintainers = [ stdenv.lib.maintainers.aszlig ];
platforms = stdenv.lib.platforms.linux;
license = licenses.gpl2Plus;
maintainers = [ maintainers.aszlig ];
platforms = platforms.linux;
};
}

View File

@ -0,0 +1,11 @@
--- a/src/basegui.cpp 2014-08-20 01:04:51.000000000 +0100
+++ b/src/basegui.cpp 2014-10-11 10:25:57.561983556 +0100
@@ -5235,7 +5235,7 @@
#ifdef YOUTUBE_SUPPORT
void BaseGui::showTubeBrowser() {
qDebug("BaseGui::showTubeBrowser");
- QString exec = Paths::appPath() + "/smtube";
+ QString exec = "smtube";
qDebug("BaseGui::showTubeBrowser: '%s'", exec.toUtf8().constData());
if (!QProcess::startDetached(exec, QStringList())) {
QMessageBox::warning(this, "SMPlayer",

View File

@ -1,13 +1,15 @@
{ stdenv, fetchurl, qt4 }:
stdenv.mkDerivation rec {
name = "smplayer-14.3.0";
name = "smplayer-14.9.0";
src = fetchurl {
url = "mirror://sourceforge/smplayer/${name}.tar.bz2";
sha256 = "9b8db20043d1528ee5c6054526779e88a172d2c757429bd7095c794d65ecbc18";
sha256 = "04yzgmdj9hm9v7ln49zm2aa1r9mm9q12pym4bvfww7yzsvnx96j2";
};
patches = [ ./basegui.cpp.patch ];
buildInputs = [ qt4 ];
preConfigure = ''

View File

@ -0,0 +1,23 @@
{stdenv, fetchurl, qt4}:
stdenv.mkDerivation {
name = "smtube-14.8.0";
src = fetchurl {
url = mirror://sourceforge/smplayer/smtube-14.8.0.tar.bz2;
sha256 = "0h0kw4dvdj9sbxp0p6bdib9y8i7854f45lsmrdkykzk6rmgrf1cw";
};
buildInputs = [qt4];
preConfigure = ''
makeFlags="PREFIX=$out"
'';
meta = with stdenv.lib; {
description = "Play and download Youtube videos";
homepage = http://smplayer.sourceforge.net/smtube.php;
license = licenses.gpl2Plus;
maintainers = with maintainers; [ vbgl ];
platforms = platforms.linux;
};
}

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