Merge branch 'master' into update-cryptsetup

This commit is contained in:
Dmitriy 2018-08-22 10:32:01 +03:00 committed by GitHub
commit b691bf4629
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
332 changed files with 11347 additions and 17865 deletions

View file

@ -195,9 +195,10 @@ rec {
let self = f self // { let self = f self // {
newScope = scope: newScope (self // scope); newScope = scope: newScope (self // scope);
callPackage = self.newScope {}; callPackage = self.newScope {};
# TODO(@Ericson2314): Haromonize argument order of `g` with everything else
overrideScope = g: overrideScope = g:
makeScope newScope makeScope newScope
(self_: let super = f self_; in super // g super self_); (lib.fixedPoints.extends (lib.flip g) f);
packages = f; packages = f;
}; };
in self; in self;

View file

@ -80,7 +80,7 @@ let
inherit (strings) concatStrings concatMapStrings concatImapStrings inherit (strings) concatStrings concatMapStrings concatImapStrings
intersperse concatStringsSep concatMapStringsSep intersperse concatStringsSep concatMapStringsSep
concatImapStringsSep makeSearchPath makeSearchPathOutput concatImapStringsSep makeSearchPath makeSearchPathOutput
makeLibraryPath makeBinPath makePerlPath optionalString makeLibraryPath makeBinPath makePerlPath makeFullPerlPath optionalString
hasPrefix hasSuffix stringToCharacters stringAsChars escape hasPrefix hasSuffix stringToCharacters stringAsChars escape
escapeShellArg escapeShellArgs replaceChars lowerChars escapeShellArg escapeShellArgs replaceChars lowerChars
upperChars toLower toUpper addContextFrom splitString upperChars toLower toUpper addContextFrom splitString

View file

@ -126,6 +126,15 @@ rec {
*/ */
makePerlPath = makeSearchPathOutput "lib" "lib/perl5/site_perl"; makePerlPath = makeSearchPathOutput "lib" "lib/perl5/site_perl";
/* Construct a perl search path recursively including all dependencies (such as $PERL5LIB)
Example:
pkgs = import <nixpkgs> { }
makeFullPerlPath [ pkgs.perlPackages.CGI ]
=> "/nix/store/fddivfrdc1xql02h9q500fpnqy12c74n-perl-CGI-4.38/lib/perl5/site_perl:/nix/store/8hsvdalmsxqkjg0c5ifigpf31vc4vsy2-perl-HTML-Parser-3.72/lib/perl5/site_perl:/nix/store/zhc7wh0xl8hz3y3f71nhlw1559iyvzld-perl-HTML-Tagset-3.20/lib/perl5/site_perl"
*/
makeFullPerlPath = deps: makePerlPath (lib.misc.closePropagation deps);
/* Depending on the boolean `cond', return either the given string /* Depending on the boolean `cond', return either the given string
or the empty string. Useful to concatenate against a bigger string. or the empty string. Useful to concatenate against a bigger string.

View file

@ -673,6 +673,11 @@
github = "changlinli"; github = "changlinli";
name = "Changlin Li"; name = "Changlin Li";
}; };
CharlesHD = {
email = "charleshdespointes@gmail.com";
github = "CharlesHD";
name = "Charles Huyghues-Despointes";
};
chaoflow = { chaoflow = {
email = "flo@chaoflow.net"; email = "flo@chaoflow.net";
github = "chaoflow"; github = "chaoflow";

View file

@ -326,10 +326,9 @@ Retype new UNIX password: ***
</screen> </screen>
<note> <note>
<para> <para>
To prevent the password prompt, set For unattended installations, it is possible to use
<code><xref linkend="opt-users.mutableUsers"/> = false;</code> in <command>nixos-install --no-root-passwd</command>
<filename>configuration.nix</filename>, which allows unattended in order to disable the password prompt entirely.
installation necessary in automation.
</para> </para>
</note> </note>
</para> </para>

View file

@ -6,16 +6,19 @@
, storePaths , storePaths
, volumeLabel , volumeLabel
, uuid ? "44444444-4444-4444-8888-888888888888" , uuid ? "44444444-4444-4444-8888-888888888888"
, e2fsprogs
, libfaketime
, perl
}: }:
let let
sdClosureInfo = pkgs.closureInfo { rootPaths = storePaths; }; sdClosureInfo = pkgs.buildPackages.closureInfo { rootPaths = storePaths; };
in in
pkgs.stdenv.mkDerivation { pkgs.stdenv.mkDerivation {
name = "ext4-fs.img"; name = "ext4-fs.img";
nativeBuildInputs = with pkgs; [e2fsprogs.bin libfaketime perl]; nativeBuildInputs = [e2fsprogs.bin libfaketime perl];
buildCommand = buildCommand =
'' ''

View file

@ -12,13 +12,12 @@
with lib; with lib;
let let
rootfsImage = import ../../../lib/make-ext4-fs.nix { rootfsImage = pkgs.callPackage ../../../lib/make-ext4-fs.nix ({
inherit pkgs;
inherit (config.sdImage) storePaths; inherit (config.sdImage) storePaths;
volumeLabel = "NIXOS_SD"; volumeLabel = "NIXOS_SD";
} // optionalAttrs (config.sdImage.rootPartitionUUID != null) { } // optionalAttrs (config.sdImage.rootPartitionUUID != null) {
uuid = config.sdImage.rootPartitionUUID; uuid = config.sdImage.rootPartitionUUID;
}; });
in in
{ {
options.sdImage = { options.sdImage = {
@ -94,10 +93,10 @@ in
sdImage.storePaths = [ config.system.build.toplevel ]; sdImage.storePaths = [ config.system.build.toplevel ];
system.build.sdImage = pkgs.stdenv.mkDerivation { system.build.sdImage = pkgs.callPackage ({ stdenv, dosfstools, e2fsprogs, mtools, libfaketime, utillinux }: stdenv.mkDerivation {
name = config.sdImage.imageName; name = config.sdImage.imageName;
buildInputs = with pkgs; [ dosfstools e2fsprogs mtools libfaketime utillinux ]; nativeBuildInputs = [ dosfstools e2fsprogs mtools libfaketime utillinux ];
buildCommand = '' buildCommand = ''
mkdir -p $out/nix-support $out/sd-image mkdir -p $out/nix-support $out/sd-image
@ -138,7 +137,7 @@ in
(cd boot; mcopy -bpsvm -i ../bootpart.img ./* ::) (cd boot; mcopy -bpsvm -i ../bootpart.img ./* ::)
dd conv=notrunc if=bootpart.img of=$img seek=$START count=$SECTORS dd conv=notrunc if=bootpart.img of=$img seek=$START count=$SECTORS
''; '';
}; }) {};
boot.postBootCommands = '' boot.postBootCommands = ''
# On the first boot do some maintenance tasks # On the first boot do some maintenance tasks

View file

@ -28,7 +28,6 @@ with lib;
++ (if pkgs.stdenv.system == "aarch64-linux" ++ (if pkgs.stdenv.system == "aarch64-linux"
then [] then []
else [ pkgs.grub2 pkgs.syslinux ]); else [ pkgs.grub2 pkgs.syslinux ]);
system.boot.loader.kernelFile = pkgs.stdenv.platform.kernelTarget;
fileSystems."/" = fileSystems."/" =
{ fsType = "tmpfs"; { fsType = "tmpfs";
@ -86,7 +85,7 @@ with lib;
system.build.netbootIpxeScript = pkgs.writeTextDir "netboot.ipxe" '' system.build.netbootIpxeScript = pkgs.writeTextDir "netboot.ipxe" ''
#!ipxe #!ipxe
kernel ${pkgs.stdenv.platform.kernelTarget} init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} kernel ${pkgs.stdenv.hostPlatform.platform.kernelTarget} init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams}
initrd initrd initrd initrd
boot boot
''; '';

View file

@ -18,6 +18,16 @@ let
(boolFlag "secure" cfg.secure) (boolFlag "secure" cfg.secure)
(boolFlag "noupnp" cfg.noUPnP) (boolFlag "noupnp" cfg.noUPnP)
]; ];
stopScript = pkgs.writeScript "terraria-stop" ''
#!${pkgs.runtimeShell}
if ! [ -d "/proc/$1" ]; then
exit 0
fi
${getBin pkgs.tmux}/bin/tmux -S /var/lib/terraria/terraria.sock send-keys Enter exit Enter
${getBin pkgs.coreutils}/bin/tail --pid="$1" -f /dev/null
'';
in in
{ {
options = { options = {
@ -124,10 +134,10 @@ in
serviceConfig = { serviceConfig = {
User = "terraria"; User = "terraria";
Type = "oneshot"; Type = "forking";
RemainAfterExit = true; GuessMainPID = true;
ExecStart = "${getBin pkgs.tmux}/bin/tmux -S /var/lib/terraria/terraria.sock new -d ${pkgs.terraria-server}/bin/TerrariaServer ${concatStringsSep " " flags}"; ExecStart = "${getBin pkgs.tmux}/bin/tmux -S /var/lib/terraria/terraria.sock new -d ${pkgs.terraria-server}/bin/TerrariaServer ${concatStringsSep " " flags}";
ExecStop = "${getBin pkgs.tmux}/bin/tmux -S /var/lib/terraria/terraria.sock send-keys Enter \"exit\" Enter"; ExecStop = "${stopScript} $MAINPID";
}; };
postStart = '' postStart = ''

View file

@ -1,121 +1,124 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
# TODO: support non-postgresql
with lib; with lib;
let let
cfg = config.services.redmine; cfg = config.services.redmine;
ruby = pkgs.ruby; bundle = "${pkgs.redmine}/share/redmine/bin/bundle";
databaseYml = '' databaseYml = pkgs.writeText "database.yml" ''
production: production:
adapter: postgresql adapter: ${cfg.database.type}
database: ${cfg.databaseName} database: ${cfg.database.name}
host: ${cfg.databaseHost} host: ${cfg.database.host}
password: ${cfg.databasePassword} port: ${toString cfg.database.port}
username: ${cfg.databaseUsername} username: ${cfg.database.user}
encoding: utf8 password: #dbpass#
''; '';
configurationYml = '' configurationYml = pkgs.writeText "configuration.yml" ''
default: default:
# Absolute path to the directory where attachments are stored. scm_subversion_command: ${pkgs.subversion}/bin/svn
# The default is the 'files' directory in your Redmine instance. scm_mercurial_command: ${pkgs.mercurial}/bin/hg
# Your Redmine instance needs to have write permission on this scm_git_command: ${pkgs.gitAndTools.git}/bin/git
# directory. scm_cvs_command: ${pkgs.cvs}/bin/cvs
# Examples: scm_bazaar_command: ${pkgs.bazaar}/bin/bzr
# attachments_storage_path: /var/redmine/files scm_darcs_command: ${pkgs.darcs}/bin/darcs
# attachments_storage_path: D:/redmine/files
attachments_storage_path: ${cfg.stateDir}/files
# Absolute path to the SCM commands errors (stderr) log file. ${cfg.extraConfig}
# 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"; in
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 = { options = {
services.redmine = { services.redmine = {
enable = mkOption { enable = mkOption {
type = types.bool; type = types.bool;
default = false; default = false;
description = '' description = "Enable the Redmine service.";
Enable the redmine service. };
'';
user = mkOption {
type = types.str;
default = "redmine";
description = "User under which Redmine is ran.";
};
group = mkOption {
type = types.str;
default = "redmine";
description = "Group under which Redmine is ran.";
}; };
stateDir = mkOption { stateDir = mkOption {
type = types.str; type = types.str;
default = "/var/redmine"; default = "/var/lib/redmine";
description = "The state directory, logs and plugins are stored here"; description = "The state directory, logs and plugins are stored here.";
}; };
extraConfig = mkOption { extraConfig = mkOption {
type = types.lines; type = types.lines;
default = ""; default = "";
description = "Extra configuration in configuration.yml"; description = ''
Extra configuration in configuration.yml.
See https://guides.rubyonrails.org/action_mailer_basics.html#action-mailer-configuration
'';
}; };
themes = mkOption { database = {
type = types.attrsOf types.path; type = mkOption {
default = {}; type = types.enum [ "mysql2" "postgresql" ];
description = "Set of themes"; example = "postgresql";
}; default = "mysql2";
description = "Database engine to use.";
};
plugins = mkOption { host = mkOption {
type = types.attrsOf types.path; type = types.str;
default = {}; default = "127.0.0.1";
description = "Set of plugins"; description = "Database host address.";
}; };
#databaseType = mkOption { port = mkOption {
# type = types.str; type = types.int;
# default = "postgresql"; default = 3306;
# description = "Type of database"; description = "Database host port.";
#}; };
databaseHost = mkOption { name = mkOption {
type = types.str; type = types.str;
default = "127.0.0.1"; default = "redmine";
description = "Database hostname"; description = "Database name.";
}; };
databasePassword = mkOption { user = mkOption {
type = types.str; type = types.str;
default = ""; default = "redmine";
description = "Database user password"; description = "Database user.";
}; };
databaseName = mkOption { password = mkOption {
type = types.str; type = types.str;
default = "redmine"; default = "";
description = "Database name"; description = ''
}; The password corresponding to <option>database.user</option>.
Warning: this is stored in cleartext in the Nix store!
Use <option>database.passwordFile</option> instead.
'';
};
databaseUsername = mkOption { passwordFile = mkOption {
type = types.str; type = types.nullOr types.path;
default = "redmine"; default = null;
description = "Database user"; example = "/run/keys/redmine-dbpassword";
description = ''
A file containing the password corresponding to
<option>database.user</option>.
'';
};
}; };
}; };
}; };
@ -123,99 +126,106 @@ in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
assertions = [ assertions = [
{ assertion = cfg.databasePassword != ""; { assertion = cfg.database.passwordFile != null || cfg.database.password != "";
message = "services.redmine.databasePassword must be set"; message = "either services.redmine.database.passwordFile or services.redmine.database.password must be set";
} }
]; ];
users.users = [ environment.systemPackages = [ pkgs.redmine ];
{ name = "redmine";
group = "redmine";
uid = config.ids.uids.redmine;
} ];
users.groups = [
{ name = "redmine";
gid = config.ids.gids.redmine;
} ];
systemd.services.redmine = { systemd.services.redmine = {
after = [ "network.target" "postgresql.service" ]; after = [ "network.target" (if cfg.database.type == "mysql2" then "mysql.service" else "postgresql.service") ];
wantedBy = [ "multi-user.target" ]; 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.HOME = "${pkgs.redmine}/share/redmine";
environment.RAILS_ENV = "production";
environment.RAILS_CACHE = "${cfg.stateDir}/cache";
environment.REDMINE_LANG = "en"; environment.REDMINE_LANG = "en";
environment.GEM_HOME = "${pkgs.redmine}/share/redmine/vendor/bundle/ruby/1.9.1"; environment.SCHEMA = "${cfg.stateDir}/cache/schema.db";
environment.GEM_PATH = "${pkgs.bundler}/${pkgs.bundler.ruby.gemPath}";
path = with pkgs; [ path = with pkgs; [
imagemagickBig imagemagickBig
subversion
mercurial
cvs
config.services.postgresql.package
bazaar bazaar
cvs
darcs
gitAndTools.git gitAndTools.git
# once we build binaries for darc enable it mercurial
#darcs subversion
]; ];
preStart = '' preStart = ''
# TODO: use env vars # start with a fresh config directory every time
for i in plugins public/plugin_assets db files log config cache var/files tmp; do rm -rf ${cfg.stateDir}/config
cp -r ${pkgs.redmine}/share/redmine/config.dist ${cfg.stateDir}/config
# create the basic state directory layout pkgs.redmine expects
mkdir -p /run/redmine
for i in config files log plugins tmp; do
mkdir -p ${cfg.stateDir}/$i mkdir -p ${cfg.stateDir}/$i
ln -fs ${cfg.stateDir}/$i /run/redmine/$i
done done
chown -R redmine:redmine ${cfg.stateDir} # ensure cache directory exists for db:migrate command
chmod -R 755 ${cfg.stateDir} mkdir -p ${cfg.stateDir}/cache
rm -rf ${cfg.stateDir}/public/* # link in the application configuration
cp -R ${pkgs.redmine}/share/redmine/public/* ${cfg.stateDir}/public/ ln -fs ${configurationYml} ${cfg.stateDir}/config/configuration.yml
for theme in ${concatStringsSep " " (mapAttrsToList unpackTheme cfg.themes)}; do
ln -fs $theme/* ${cfg.stateDir}/public/themes/
done
rm -rf ${cfg.stateDir}/plugins/* chmod -R ug+rwX,o-rwx+x ${cfg.stateDir}/
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 # handle database.passwordFile
ln -fs ${pkgs.writeText "configuration.yml" configurationYml} ${cfg.stateDir}/config/configuration.yml DBPASS=$(head -n1 ${cfg.database.passwordFile})
cp -f ${databaseYml} ${cfg.stateDir}/config/database.yml
sed -e "s,#dbpass#,$DBPASS,g" -i ${cfg.stateDir}/config/database.yml
chmod 440 ${cfg.stateDir}/config/database.yml
if [ "${cfg.databaseHost}" = "127.0.0.1" ]; then # generate a secret token if required
if ! test -e "${cfg.stateDir}/db-created"; then if ! test -e "${cfg.stateDir}/config/initializers/secret_token.rb"; then
psql postgres -c "CREATE ROLE redmine WITH LOGIN NOCREATEDB NOCREATEROLE ENCRYPTED PASSWORD '${cfg.databasePassword}'" ${bundle} exec rake generate_secret_token
${config.services.postgresql.package}/bin/createdb --owner redmine redmine || true chmod 440 ${cfg.stateDir}/config/initializers/secret_token.rb
touch "${cfg.stateDir}/db-created"
fi
fi fi
cd ${pkgs.redmine}/share/redmine/ # ensure everything is owned by ${cfg.user}
${ruby}/bin/rake db:migrate chown -R ${cfg.user}:${cfg.group} ${cfg.stateDir}
${ruby}/bin/rake redmine:plugins:migrate
${ruby}/bin/rake redmine:load_default_data ${bundle} exec rake db:migrate
${ruby}/bin/rake generate_secret_token ${bundle} exec rake redmine:load_default_data
''; '';
serviceConfig = { serviceConfig = {
PermissionsStartOnly = true; # preStart must be run as root PermissionsStartOnly = true; # preStart must be run as root
Type = "simple"; Type = "simple";
User = "redmine"; User = cfg.user;
Group = "redmine"; Group = cfg.group;
TimeoutSec = "300"; TimeoutSec = "300";
WorkingDirectory = "${pkgs.redmine}/share/redmine"; WorkingDirectory = "${pkgs.redmine}/share/redmine";
ExecStart="${ruby}/bin/ruby ${pkgs.redmine}/share/redmine/script/rails server webrick -e production -P ${cfg.stateDir}/redmine.pid"; ExecStart="${bundle} exec rails server webrick -e production -P ${cfg.stateDir}/redmine.pid";
}; };
}; };
users.extraUsers = optionalAttrs (cfg.user == "redmine") (singleton
{ name = "redmine";
group = cfg.group;
home = cfg.stateDir;
createHome = true;
uid = config.ids.uids.redmine;
});
users.extraGroups = optionalAttrs (cfg.group == "redmine") (singleton
{ name = "redmine";
gid = config.ids.gids.redmine;
});
warnings = optional (cfg.database.password != "")
''config.services.redmine.database.password will be stored as plaintext
in the Nix store. Use database.passwordFile instead.'';
# Create database passwordFile default when password is configured.
services.redmine.database.passwordFile =
(mkDefault (toString (pkgs.writeTextFile {
name = "redmine-database-password";
text = cfg.database.password;
})));
}; };
} }

View file

@ -161,8 +161,9 @@ in
{ description = "DHCP Client"; { description = "DHCP Client";
wantedBy = [ "multi-user.target" ] ++ optional (!hasDefaultGatewaySet) "network-online.target"; wantedBy = [ "multi-user.target" ] ++ optional (!hasDefaultGatewaySet) "network-online.target";
wants = [ "network.target" ]; wants = [ "network.target" "systemd-udev-settle.service" ];
before = [ "network.target" ]; before = [ "network.target" ];
after = [ "systemd-udev-settle.service" ];
# Stopping dhcpcd during a reconfiguration is undesirable # Stopping dhcpcd during a reconfiguration is undesirable
# because it brings down the network interfaces configured by # because it brings down the network interfaces configured by

View file

@ -146,7 +146,7 @@ in {
}; };
}; };
config = { config = mkIf cfg.enable {
users.extraGroups.cfssl = { users.extraGroups.cfssl = {
gid = config.ids.gids.cfssl; gid = config.ids.gids.cfssl;
}; };
@ -159,7 +159,7 @@ in {
uid = config.ids.uids.cfssl; uid = config.ids.uids.cfssl;
}; };
systemd.services.cfssl = mkIf cfg.enable { systemd.services.cfssl = {
description = "CFSSL CA API server"; description = "CFSSL CA API server";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network.target" ]; after = [ "network.target" ];

View file

@ -46,7 +46,7 @@ let
ln -s ${kernelPath} $out/kernel ln -s ${kernelPath} $out/kernel
ln -s ${config.system.modulesTree} $out/kernel-modules ln -s ${config.system.modulesTree} $out/kernel-modules
${optionalString (pkgs.stdenv.platform.kernelDTB or false) '' ${optionalString (pkgs.stdenv.hostPlatform.platform.kernelDTB or false) ''
ln -s ${config.boot.kernelPackages.kernel}/dtbs $out/dtbs ln -s ${config.boot.kernelPackages.kernel}/dtbs $out/dtbs
''} ''}
@ -74,7 +74,7 @@ let
echo -n "$configurationName" > $out/configuration-name echo -n "$configurationName" > $out/configuration-name
echo -n "systemd ${toString config.systemd.package.interfaceVersion}" > $out/init-interface-version echo -n "systemd ${toString config.systemd.package.interfaceVersion}" > $out/init-interface-version
echo -n "$nixosLabel" > $out/nixos-version echo -n "$nixosLabel" > $out/nixos-version
echo -n "$system" > $out/system echo -n "${pkgs.stdenv.hostPlatform.system}" > $out/system
mkdir $out/fine-tune mkdir $out/fine-tune
childCount=0 childCount=0
@ -175,7 +175,7 @@ in
system.boot.loader.kernelFile = mkOption { system.boot.loader.kernelFile = mkOption {
internal = true; internal = true;
default = pkgs.stdenv.platform.kernelTarget; default = pkgs.stdenv.hostPlatform.platform.kernelTarget;
type = types.str; type = types.str;
description = '' description = ''
Name of the kernel file to be passed to the bootloader. Name of the kernel file to be passed to the bootloader.

View file

@ -13,7 +13,7 @@ let
}; };
# Temporary check, for nixos to cope both with nixpkgs stdenv-updates and trunk # Temporary check, for nixos to cope both with nixpkgs stdenv-updates and trunk
platform = pkgs.stdenv.platform; inherit (pkgs.stdenv.hostPlatform) platform;
in in

View file

@ -15,7 +15,7 @@ let
inherit configTxt; inherit configTxt;
}; };
platform = pkgs.stdenv.platform; inherit (pkgs.stdenv.hostPlatform) platform;
builderUboot = import ./builder_uboot.nix { inherit config; inherit pkgs; inherit configTxt; }; builderUboot = import ./builder_uboot.nix { inherit config; inherit pkgs; inherit configTxt; };

View file

@ -30,10 +30,10 @@ let
(assertValueOneOf "UDPSegmentationOffload" boolValues) (assertValueOneOf "UDPSegmentationOffload" boolValues)
(assertValueOneOf "GenericReceiveOffload" boolValues) (assertValueOneOf "GenericReceiveOffload" boolValues)
(assertValueOneOf "LargeReceiveOffload" boolValues) (assertValueOneOf "LargeReceiveOffload" boolValues)
(range "RxChannels" 1 4294967295) (assertRange "RxChannels" 1 4294967295)
(range "TxChannels" 1 4294967295) (assertRange "TxChannels" 1 4294967295)
(range "OtherChannels" 1 4294967295) (assertRange "OtherChannels" 1 4294967295)
(range "CombinedChannels" 1 4294967295) (assertRange "CombinedChannels" 1 4294967295)
]; ];
checkNetdev = checkUnitConfig "Netdev" [ checkNetdev = checkUnitConfig "Netdev" [

View file

@ -83,7 +83,7 @@ let
in in
tarball // tarball //
{ meta = { { meta = {
description = "NixOS system tarball for ${system} - ${stdenv.platform.name}"; description = "NixOS system tarball for ${system} - ${stdenv.hostPlatform.platform.name}";
maintainers = map (x: lib.maintainers.${x}) maintainers; maintainers = map (x: lib.maintainers.${x}) maintainers;
}; };
inherit config; inherit config;
@ -106,7 +106,7 @@ let
let let
configEvaled = import lib/eval-config.nix config; configEvaled = import lib/eval-config.nix config;
build = configEvaled.config.system.build; build = configEvaled.config.system.build;
kernelTarget = configEvaled.pkgs.stdenv.platform.kernelTarget; kernelTarget = configEvaled.pkgs.stdenv.hostPlatform.platform.kernelTarget;
in in
pkgs.symlinkJoin { pkgs.symlinkJoin {
name = "netboot"; name = "netboot";

View file

@ -2,7 +2,8 @@ import ./make-test.nix ({ pkgs, ... }:
let let
configDir = "/var/lib/foobar"; configDir = "/var/lib/foobar";
apiPassword = "secret"; apiPassword = "some_secret";
mqttPassword = "another_secret";
in { in {
name = "home-assistant"; name = "home-assistant";
@ -33,7 +34,9 @@ in {
}; };
frontend = { }; frontend = { };
http.api_password = apiPassword; http.api_password = apiPassword;
mqtt = { }; # Use hbmqtt as broker mqtt = { # Use hbmqtt as broker
password = mqttPassword;
};
binary_sensor = [ binary_sensor = [
{ {
platform = "mqtt"; platform = "mqtt";
@ -62,7 +65,7 @@ in {
# Toggle a binary sensor using MQTT # Toggle a binary sensor using MQTT
$hass->succeed("curl http://localhost:8123/api/states/binary_sensor.mqtt_binary_sensor -H 'x-ha-access: ${apiPassword}' | grep -qF '\"state\": \"off\"'"); $hass->succeed("curl http://localhost:8123/api/states/binary_sensor.mqtt_binary_sensor -H 'x-ha-access: ${apiPassword}' | grep -qF '\"state\": \"off\"'");
$hass->waitUntilSucceeds("mosquitto_pub -V mqttv311 -t home-assistant/test -u homeassistant -P '${apiPassword}' -m let_there_be_light"); $hass->waitUntilSucceeds("mosquitto_pub -V mqttv311 -t home-assistant/test -u homeassistant -P '${mqttPassword}' -m let_there_be_light");
$hass->succeed("curl http://localhost:8123/api/states/binary_sensor.mqtt_binary_sensor -H 'x-ha-access: ${apiPassword}' | grep -qF '\"state\": \"on\"'"); $hass->succeed("curl http://localhost:8123/api/states/binary_sensor.mqtt_binary_sensor -H 'x-ha-access: ${apiPassword}' | grep -qF '\"state\": \"on\"'");
# Print log to ease debugging # Print log to ease debugging

View file

@ -1,5 +1,6 @@
{ stdenv, fetchurl, alsaLib, bison, flex, libsndfile, which { stdenv, lib, fetchurl, alsaLib, bison, flex, libsndfile, which
, AppKit, Carbon, CoreAudio, CoreMIDI, CoreServices, Kernel , AppKit, Carbon, CoreAudio, CoreMIDI, CoreServices, Kernel
, xcbuild
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -11,31 +12,28 @@ stdenv.mkDerivation rec {
sha256 = "02z7sglax3j09grj5s1skmw8z6wz7b21hjrm95nrrdpwbxabh079"; sha256 = "02z7sglax3j09grj5s1skmw8z6wz7b21hjrm95nrrdpwbxabh079";
}; };
buildInputs = [ bison flex libsndfile which ] nativeBuildInputs = [ flex bison which ];
++ stdenv.lib.optional (!stdenv.isDarwin) alsaLib
++ stdenv.lib.optional stdenv.isDarwin [ AppKit Carbon CoreAudio CoreMIDI CoreServices Kernel ]; buildInputs = [ libsndfile ]
++ lib.optional (!stdenv.isDarwin) alsaLib
++ lib.optional stdenv.isDarwin [ AppKit Carbon CoreAudio CoreMIDI CoreServices Kernel ];
patches = [ ./clang.patch ./darwin-limits.patch ]; patches = [ ./clang.patch ./darwin-limits.patch ];
NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-Wno-missing-sysroot"; NIX_CFLAGS_COMPILE = lib.optional stdenv.isDarwin "-Wno-missing-sysroot";
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-framework MultitouchSupport"; NIX_LDFLAGS = lib.optional stdenv.isDarwin "-framework MultitouchSupport";
postPatch = '' postPatch = ''
substituteInPlace src/makefile --replace "/usr/bin" "$out/bin" substituteInPlace src/makefile --replace "/usr/bin" "$out/bin"
substituteInPlace src/makefile.osx --replace "xcodebuild" "/usr/bin/xcodebuild" substituteInPlace src/makefile.osx \
substituteInPlace src/makefile.osx --replace "weak_framework" "framework" --replace "weak_framework" "framework" \
substituteInPlace src/makefile.osx --replace "MACOSX_DEPLOYMENT_TARGET=10.5" "MACOSX_DEPLOYMENT_TARGET=$MACOSX_DEPLOYMENT_TARGET" --replace "MACOSX_DEPLOYMENT_TARGET=10.5" "MACOSX_DEPLOYMENT_TARGET=$MACOSX_DEPLOYMENT_TARGET"
''; '';
buildPhase = '' makeFlags = [ "-C src" "DESTDIR=$(out)/bin" ];
make -C src ${if stdenv.isDarwin then "osx" else "linux-alsa"} buildFlags = [ (if stdenv.isDarwin then "osx" else "linux-alsa") ];
'';
installPhase = '' meta = with lib; {
install -Dm755 ./src/chuck $out/bin/chuck
'';
meta = with stdenv.lib; {
description = "Programming language for real-time sound synthesis and music creation"; description = "Programming language for real-time sound synthesis and music creation";
homepage = http://chuck.cs.princeton.edu; homepage = http://chuck.cs.princeton.edu;
license = licenses.gpl2; license = licenses.gpl2;

View file

@ -23,7 +23,7 @@
# rt2rtng # rt2rtng
, python2 , python2
# Testing # Testing
, gmock , gtest
# Fixup # Fixup
, wrapGAppsHook , wrapGAppsHook
, makeWrapper , makeWrapper
@ -58,11 +58,10 @@ stdenv.mkDerivation rec {
libxdg_basedir libxdg_basedir
lsb-release lsb-release
wxGTK wxGTK
] ++ stdenv.lib.optional doCheck gmock ] ++ gstInputs
++ gstInputs
++ pythonInputs; ++ pythonInputs;
prePatch = '' postPatch = ''
for x in debian/CMakeLists.txt include/radiotray-ng/common.hpp data/*.desktop; do for x in debian/CMakeLists.txt include/radiotray-ng/common.hpp data/*.desktop; do
substituteInPlace $x --replace /usr $out substituteInPlace $x --replace /usr $out
done done
@ -74,14 +73,16 @@ stdenv.mkDerivation rec {
--replace radiotray-ng-notification radiotray-ng-on --replace radiotray-ng-notification radiotray-ng-on
''; '';
cmakeFlags = stdenv.lib.optional doCheck "-DBUILD_TESTS=ON"; cmakeFlags = [
"-DBUILD_TESTS=${if doCheck then "ON" else "OFF"}"
];
enableParallelBuilding = true; enableParallelBuilding = true;
# XXX: as of 0.2.2, tries to download gmock instead of checking for provided checkInputs = [ gtest ];
doCheck = false;
checkPhase = "ctest"; checkPhase = "ctest";
# doCheck = stdenv.hostPlatform == stdenv.buildPlatform;
doCheck = false; # fails to pick up supplied gtest, tries to download it instead
preFixup = '' preFixup = ''
gappsWrapperArgs+=(--suffix PATH : ${stdenv.lib.makeBinPath [ dbus ]}) gappsWrapperArgs+=(--suffix PATH : ${stdenv.lib.makeBinPath [ dbus ]})

View file

@ -202,6 +202,12 @@ self:
# missing OCaml # missing OCaml
utop = markBroken super.utop; utop = markBroken super.utop;
vdiff-magit =
(super.vdiff-magit.overrideAttrs (attrs: {
nativeBuildInputs =
(attrs.nativeBuildInputs or []) ++ [ external.git ];
}));
# upstream issue: missing file header # upstream issue: missing file header
voca-builder = markBroken super.voca-builder; voca-builder = markBroken super.voca-builder;

View file

@ -194,6 +194,12 @@ self:
# missing OCaml # missing OCaml
utop = markBroken super.utop; utop = markBroken super.utop;
vdiff-magit =
(super.vdiff-magit.overrideAttrs (attrs: {
nativeBuildInputs =
(attrs.nativeBuildInputs or []) ++ [ external.git ];
}));
# upstream issue: missing file header # upstream issue: missing file header
voca-builder = markBroken super.voca-builder; voca-builder = markBroken super.voca-builder;

View file

@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
- Plugin interface - Plugin interface
''; '';
homepage = https://www.geany.org/; homepage = https://www.geany.org/;
license = "GPL"; license = licenses.gpl2;
maintainers = []; maintainers = [];
platforms = platforms.all; platforms = platforms.all;
}; };

View file

@ -1,7 +1,7 @@
{ runCommand, makeWrapper, geany, gnome2 }: { runCommand, makeWrapper, geany, gnome2 }:
let name = builtins.replaceStrings ["geany-"] ["geany-with-vte-"] geany.name; let name = builtins.replaceStrings ["geany-"] ["geany-with-vte-"] geany.name;
in in
runCommand "${name}" { nativeBuildInputs = [ makeWrapper ]; } " runCommand "${name}" { nativeBuildInputs = [ makeWrapper ]; inherit (geany.meta); } "
mkdir -p $out mkdir -p $out
ln -s ${geany}/share $out ln -s ${geany}/share $out
makeWrapper ${geany}/bin/geany $out/bin/geany --prefix LD_LIBRARY_PATH : ${gnome2.vte}/lib makeWrapper ${geany}/bin/geany $out/bin/geany --prefix LD_LIBRARY_PATH : ${gnome2.vte}/lib

View file

@ -9,6 +9,11 @@ stdenv.mkDerivation rec {
sha256 = "0jpkskqs1yjiighab4s91jy0c0qxcscwadfn94xy2mm2bx2qwp4z"; sha256 = "0jpkskqs1yjiighab4s91jy0c0qxcscwadfn94xy2mm2bx2qwp4z";
}; };
preConfigure = ''
CC=${stdenv.cc.targetPrefix}cc
CXX=${stdenv.cc.targetPrefix}c++
'';
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
buildInputs = [ stdenv openexr libpng12 libjpeg ]; buildInputs = [ stdenv openexr libpng12 libjpeg ];

View file

@ -15,8 +15,7 @@ stdenv.mkDerivation rec {
outputs = [ "out" "man" "doc" ]; outputs = [ "out" "man" "doc" ];
nativeBuildInputs = [ makeWrapper xorg.libXt ] nativeBuildInputs = [ makeWrapper xorg.libXt ];
++ optionals doCheck [ perlPackages.TestCommand perlPackages.TestHarness ];
buildInputs = [ xorg.libX11 xorg.libXinerama imlib2 libjpeg libpng curl libexif ]; buildInputs = [ xorg.libX11 xorg.libXinerama imlib2 libjpeg libpng curl libexif ];
@ -36,8 +35,9 @@ stdenv.mkDerivation rec {
install -D -m 644 man/*.1 $out/share/man/man1 install -D -m 644 man/*.1 $out/share/man/man1
''; '';
checkPhase = '' checkInputs = [ perlPackages.TestCommand perlPackages.TestHarness ];
PERL5LIB="${perlPackages.TestCommand}/lib/perl5/site_perl" make test preCheck = ''
export PERL5LIB="${perlPackages.TestCommand}/lib/perl5/site_perl"
''; '';
doCheck = true; doCheck = true;

View file

@ -1,4 +1,4 @@
{ stdenv, cmake, fetchFromBitbucket, pkgconfig, qtbase, qttools, qtmultimedia, zlib, bzip2 }: { stdenv, cmake, fetchFromBitbucket, pkgconfig, qtbase, qttools, qtmultimedia, zlib, bzip2, xxd }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "doomseeker-${version}"; name = "doomseeker-${version}";
@ -15,10 +15,12 @@ stdenv.mkDerivation rec {
buildInputs = [ qtbase qtmultimedia zlib bzip2 ]; buildInputs = [ qtbase qtmultimedia zlib bzip2 ];
nativeBuildInputs = [ cmake qttools pkgconfig ]; nativeBuildInputs = [ cmake qttools pkgconfig xxd ];
enableParallelBuilding = true; enableParallelBuilding = true;
NIX_CFLAGS_COMPILE = stdenv.lib.optional stdenv.cc.isClang "-Wno-error=format-security";
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = http://doomseeker.drdteam.org/; homepage = http://doomseeker.drdteam.org/;
description = "Multiplayer server browser for many Doom source ports"; description = "Multiplayer server browser for many Doom source ports";

View file

@ -0,0 +1,61 @@
{ stdenv, fetchFromGitHub, ncurses, hdate, lua5_2 }:
stdenv.mkDerivation rec {
version = "12010904";
name = "dozenal-${version}";
src = fetchFromGitHub {
owner = "dgoodmaniii";
repo = "dozenal";
rev = "v${version}";
sha256 = "1ic63gpdda762x6ks3al71dwgmsy2isicqyr2935bd245jx8s209";
};
makeFlags = [
# author do not use configure and prefix directly using $prefix
"prefix=$(out)"
# graphical version of dozdc requires xforms, which is not i nixpkgs so I turned it down
"XFORMS_FLAGS=-UXFORMS"
"LUALIB=-llua"
"bindir=$(prefix)/bin/"
];
# some include hardcodes the lua libraries path. This is a patch for that
patches = [ ./lua-header.patch ];
preBuild = "cd dozenal";
buildInputs = [ ncurses hdate lua5_2 ];
# I remove gdozdc, as I didn't figure all it's dependency yet.
postInstall = "rm $out/bin/gdozdc";
meta = {
description = "A complete suite of dozenal (base twelve) programs";
longDescription = ''
Programs
doz --- a converter; converts decimal numbers into dozenal. Accepts
input in standard or exponential notation (i.e., "1492.2" or "1.4922e3").
dec --- a converter; converts dozenal numbers into decimal. Accepts input
in standard or exponential notation (i.e., "X44;4" or "X;444e2").
dozword --- converts a dozenal number (integers only) into words,
according to the Pendlebury system.
dozdc --- a full-featured scientific calculator which works in the
dozenal base. RPN command line.
tgmconv --- a converter for all standard measurements; converts to and
from TGM, Imperial, customary, and SI metric.
dozpret --- a pretty-printer for dozenal numbers; inserts spacing (or
other characters) as desired, and can also transform transdecimal digits
from 'X' to 'E' into any character or sequence of characters desired.
dozdate --- a more-or-less drop-in replacement for GNU and BSD date, it
outputs the date and time in dozenal, as well as containing some TGM
extensions.
dozstring --- a simple byte converter; absorbs a string either from
standard input or a command line argument, leaving it identical but
for the numbers, which it converts into dozenal. Options for padding
and for not converting specific numbers.
doman --- a converter which takes a dozenal integer and
emits its equivalent in a non-place-value system, such as
Roman numerals. Arbitrary ranks and symbols may be used.
Defaults to dozenal Roman numerals.
'';
homepage = https://github.com/dgoodmaniii/dozenal/;
maintainers = with stdenv.lib.maintainers; [ CharlesHD ];
license = stdenv.lib.licenses.gpl3;
};
}

View file

@ -0,0 +1,16 @@
diff -ruN dozenal-12010904/dozenal/dozcal/call_lua.c dozenal-patched/dozenal/dozcal/call_lua.c
--- dozenal-12010904/dozenal/dozcal/call_lua.c 2017-09-04 19:25:01.000000000 +0200
+++ dozenal-patched/dozenal/dozcal/call_lua.c 2018-06-13 10:19:57.821950327 +0200
@@ -38,9 +38,9 @@
#include"utility.h"
#include"conv.h"
#include"proc_date.h"
-#include<lua5.2/lua.h>
-#include<lua5.2/lauxlib.h>
-#include<lua5.2/lualib.h>
+#include<lua.h>
+#include<lauxlib.h>
+#include<lualib.h>
void bail(lua_State *L, int err_code, char *filename);
int file_prefix(char **s, char *t);

View file

@ -0,0 +1,16 @@
{ stdenv, fetchurl }:
stdenv.mkDerivation rec {
version = "1.6.02";
name = "hdate-${version}";
src = fetchurl {
url = "https://sourceforge.net/projects/libhdate/files/libhdate/libhdate-${version}/libhdate-${version}.tar.bz2";
sha256 = "3c930a8deb57c01896dc37f0d7804e5a330ee8e88c4ff610b71f9d2b02c17762";
};
meta = {
description = "Hebrew calendar and solar astronomical times library and utilities";
homepage = https://sourceforge.net/projects/libhdate/;
license = stdenv.lib.licenses.gpl3;
maintainers = with stdenv.lib.maintainers; [ CharlesHD ];
};
}

View file

@ -2,7 +2,7 @@
buildGoPackage rec { buildGoPackage rec {
name = "hugo-${version}"; name = "hugo-${version}";
version = "0.47"; version = "0.47.1";
goPackagePath = "github.com/gohugoio/hugo"; goPackagePath = "github.com/gohugoio/hugo";
@ -10,7 +10,7 @@ buildGoPackage rec {
owner = "gohugoio"; owner = "gohugoio";
repo = "hugo"; repo = "hugo";
rev = "v${version}"; rev = "v${version}";
sha256 = "1h62ix285mx977mgawyanyvsqqic1xx0gmi1r5wn43w9yc29wr0z"; sha256 = "0n27vyg66jfx4lwswsmdlybly8c9gy5rk7yhy7wzs3rwzlqv1jzj";
}; };
goDeps = ./deps.nix; goDeps = ./deps.nix;

View file

@ -104,8 +104,8 @@
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/disintegration/imaging"; url = "https://github.com/disintegration/imaging";
rev = "8021a62ea0dfe0ed2e6107f5ccd37e0d4a92a996"; rev = "0bd5694c78c9c3d9a3cd06a706a8f3c59296a9ac";
sha256 = "1c32sqfz78g9wxvpng8n9r404lf2lgjn9b24mg8y3rxylx29gks7"; sha256 = "1laxccmzi7q51zxn81ringmdwp8iaipivrl375yc3gq56d70sp0r";
}; };
} }
{ {
@ -140,8 +140,8 @@
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/gobuffalo/envy"; url = "https://github.com/gobuffalo/envy";
rev = "2d0f467653f3d961ce9ada4d32a230bdcb3bfe11"; rev = "3c96536452167a705ca5a70b831d3810e1e10452";
sha256 = "0p9raqrsqg2z1hq2kbvbq5qcwqihjqf28xnfh62214p7ak9b9x8n"; sha256 = "0ixqpdmb7kjlarkv0qlbwnbr194sajx9flysnhcldzmciqgk5bqs";
}; };
} }
{ {
@ -347,8 +347,8 @@
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/spf13/cobra"; url = "https://github.com/spf13/cobra";
rev = "7c4570c3ebeb8129a1f7456d0908a8b676b6f9f1"; rev = "ff0d02e8555041edecbd0ce27f32c6ea4b214483";
sha256 = "16amh0prlzqrrbg5j629sg0f688nfzfgn9sair8jyybqampr3wc7"; sha256 = "1ilw6b2nir1bg7hmx8hrn60za37qqm18xvamv90fx5vxq85fsml9";
}; };
} }
{ {
@ -446,8 +446,8 @@
fetch = { fetch = {
type = "git"; type = "git";
url = "https://go.googlesource.com/net"; url = "https://go.googlesource.com/net";
rev = "aaf60122140d3fcf75376d319f0554393160eb50"; rev = "922f4815f713f213882e8ef45e0d315b164d705c";
sha256 = "03i6ij7jcf5mp9dc8ps8b63g1k843z7c823qyzn5a276gpxvxlvv"; sha256 = "1ci1rxk2d6hmfsjjc19n2sxhyn4jqr5ia3ykyah1h08p0pn7k52w";
}; };
} }
{ {
@ -464,8 +464,8 @@
fetch = { fetch = {
type = "git"; type = "git";
url = "https://go.googlesource.com/sys"; url = "https://go.googlesource.com/sys";
rev = "1c9583448a9c3aa0f9a6a5241bf73c0bd8aafded"; rev = "4ea2f632f6e912459fe60b26b1749377f0d889d5";
sha256 = "0g0nc549pmdmvja4mdqh0kgvznnw6wliqmx5wrnj02l3a23vizmi"; sha256 = "16pdi4mmjlcrjdcz7k559jqnsvkhdmff68bbqq7ii1lp8vrpqqmy";
}; };
} }
{ {

View file

@ -7,7 +7,7 @@
with python3Packages; with python3Packages;
buildPythonApplication rec { buildPythonApplication rec {
version = "0.11.2"; version = "0.11.3";
name = "kitty-${version}"; name = "kitty-${version}";
format = "other"; format = "other";
@ -15,7 +15,7 @@ buildPythonApplication rec {
owner = "kovidgoyal"; owner = "kovidgoyal";
repo = "kitty"; repo = "kitty";
rev = "v${version}"; rev = "v${version}";
sha256 = "0vmxgyxrgaqijwd51ldd8pkz7jn9hdcfib1dqr0ai614286v69hw"; sha256 = "1fql8ayxvip8hgq9gy0dhqfvngv13gh5bf71vnc3agd80kzq1n73";
}; };
buildInputs = [ buildInputs = [

View file

@ -81,6 +81,11 @@ stdenv.mkDerivation rec {
cd ../../.. cd ../../..
''; '';
preConfigure = ''
CC=${stdenv.cc.targetPrefix}cc
CXX=${stdenv.cc.targetPrefix}c++
'';
configureFlags = [ configureFlags = [
"--disable-static" "--disable-static"
"--disable-staticbins" "--disable-staticbins"

View file

@ -43,7 +43,7 @@ python3Packages.buildPythonApplication rec {
# give image previews out of the box when building with w3m # give image previews out of the box when building with w3m
substituteInPlace ranger/config/rc.conf \ substituteInPlace ranger/config/rc.conf \
--replace "set preview_images false" "set preview_images true" \ --replace "set preview_images false" "set preview_images true"
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {

View file

@ -1,23 +1,23 @@
{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, dmd, gnome3, dbus { stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, dmd, gnome3, dbus
, gsettings-desktop-schemas, desktop-file-utils, gettext, gtkd , gsettings-desktop-schemas, desktop-file-utils, gettext, gtkd, libsecret
, perlPackages, wrapGAppsHook, xdg_utils }: , perlPackages, wrapGAppsHook, xdg_utils }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "tilix-${version}"; name = "tilix-${version}";
version = "1.8.1"; version = "1.8.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "gnunn1"; owner = "gnunn1";
repo = "tilix"; repo = "tilix";
rev = "${version}"; rev = "${version}";
sha256 = "19dx3hlj40cqwph98pcifkm6axfszfr0v9k6sr3caw4ycml84ci1"; sha256 = "05x2nyyb5w3122j90g0f7lh9jl7xi1nk176sl01vl2ks7zar00dq";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
autoreconfHook dmd desktop-file-utils perlPackages.Po4a pkgconfig xdg_utils autoreconfHook dmd desktop-file-utils perlPackages.Po4a pkgconfig xdg_utils
wrapGAppsHook wrapGAppsHook
]; ];
buildInputs = [ gnome3.dconf gettext gsettings-desktop-schemas gtkd dbus ]; buildInputs = [ gnome3.dconf gettext gsettings-desktop-schemas gtkd dbus libsecret ];
preBuild = '' preBuild = ''
makeFlagsArray=( makeFlagsArray=(
@ -28,6 +28,9 @@ stdenv.mkDerivation rec {
postInstall = with gnome3; '' postInstall = with gnome3; ''
${glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas ${glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas
wrapProgram $out/bin/tilix \
--prefix LD_LIBRARY_PATH ":" "${libsecret}/lib"
''; '';

View file

@ -0,0 +1,38 @@
{ stdenv, fetchFromGitHub
, meson, ninja, pkgconfig
, gnome3, vala, gobjectIntrospection, wrapGAppsHook
, gtk3, granite
, json-glib, glib, glib-networking
}:
let
pname = "tootle";
version = "0.1.5";
in stdenv.mkDerivation rec {
name = "${pname}-${version}";
src = fetchFromGitHub {
owner = "bleakgrey";
repo = pname;
rev = version;
sha256 = "022h1rh1jk3m1f9al0s1rylmnqnkydyc81idfc8jf1g0frnvn5i6";
};
nativeBuildInputs = [ meson ninja pkgconfig vala gobjectIntrospection wrapGAppsHook ];
buildInputs = [
gtk3 granite json-glib glib glib-networking
gnome3.libgee gnome3.libsoup gnome3.gsettings-desktop-schemas
];
postPatch = ''
chmod +x ./meson/post_install.py
patchShebangs ./meson/post_install.py
'';
meta = with stdenv.lib; {
description = "Simple Mastodon client designed for elementary OS";
homepage = https://github.com/bleakgrey/tootle;
license = licenses.gpl3;
maintainers = with maintainers; [ dtzWill ];
};
}

View file

@ -174,6 +174,7 @@ stdenv.mkDerivation {
gappsWrapperArgs+=(--argv0 "$out/bin/.firefox-wrapped") gappsWrapperArgs+=(--argv0 "$out/bin/.firefox-wrapped")
''; '';
passthru.execdir = "/bin";
passthru.ffmpegSupport = true; passthru.ffmpegSupport = true;
passthru.gssSupport = true; passthru.gssSupport = true;
# update with: # update with:

View file

@ -16,7 +16,7 @@
## optional libraries ## optional libraries
, alsaSupport ? true, alsaLib , alsaSupport ? stdenv.isLinux, alsaLib
, pulseaudioSupport ? true, libpulseaudio , pulseaudioSupport ? true, libpulseaudio
, ffmpegSupport ? true, gstreamer, gst-plugins-base , ffmpegSupport ? true, gstreamer, gst-plugins-base
, gtk3Support ? !isTorBrowserLike, gtk2, gtk3, wrapGAppsHook , gtk3Support ? !isTorBrowserLike, gtk2, gtk3, wrapGAppsHook
@ -39,6 +39,10 @@
, safeBrowsingSupport ? false , safeBrowsingSupport ? false
, drmSupport ? false , drmSupport ? false
# macOS dependencies
, xcbuild, CoreMedia, ExceptionHandling, Kerberos, AVFoundation, MediaToolbox
, CoreLocation, Foundation, AddressBook, libobjc, cups, rsync
## other ## other
# As stated by Sylvestre Ledru (@sylvestre) on Nov 22, 2017 at # As stated by Sylvestre Ledru (@sylvestre) on Nov 22, 2017 at
@ -66,7 +70,14 @@ assert stdenv.cc.libc or null != null;
let let
flag = tf: x: [(if tf then "--enable-${x}" else "--disable-${x}")]; flag = tf: x: [(if tf then "--enable-${x}" else "--disable-${x}")];
gcc = if stdenv.cc.isGNU then stdenv.cc.cc else stdenv.cc.cc.gcc;
default-toolkit = if stdenv.isDarwin then "cairo-cocoa"
else "cairo-gtk${if gtk3Support then "3" else "2"}";
execdir = if stdenv.isDarwin
then "/Applications/${browserName}.app/Contents/MacOS"
else "/bin";
browserName = if stdenv.isDarwin then "Firefox" else "firefox";
in in
stdenv.mkDerivation (rec { stdenv.mkDerivation (rec {
@ -90,13 +101,27 @@ stdenv.mkDerivation (rec {
++ lib.optional pulseaudioSupport libpulseaudio # only headers are needed ++ lib.optional pulseaudioSupport libpulseaudio # only headers are needed
++ lib.optionals ffmpegSupport [ gstreamer gst-plugins-base ] ++ lib.optionals ffmpegSupport [ gstreamer gst-plugins-base ]
++ lib.optional gtk3Support gtk3 ++ lib.optional gtk3Support gtk3
++ lib.optional gssSupport kerberos; ++ lib.optional gssSupport kerberos
++ lib.optionals stdenv.isDarwin [ CoreMedia ExceptionHandling Kerberos
AVFoundation MediaToolbox CoreLocation
Foundation libobjc AddressBook cups ];
NIX_CFLAGS_COMPILE = "-I${nspr.dev}/include/nspr -I${nss.dev}/include/nss -I${glib.dev}/include/gio-unix-2.0"; NIX_CFLAGS_COMPILE = [ "-I${nspr.dev}/include/nspr"
"-I${nss.dev}/include/nss"
"-I${glib.dev}/include/gio-unix-2.0" ]
++ lib.optional stdenv.isDarwin [
"-isystem ${llvmPackages.libcxx}/include/c++/v1"
"-DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_10" ];
postPatch = lib.optionalString stdenv.isDarwin ''
substituteInPlace js/src/jsmath.cpp --replace 'defined(HAVE___SINCOS)' 0
'';
nativeBuildInputs = nativeBuildInputs =
[ autoconf213 which gnused pkgconfig perl python2 cargo rustc ] [ autoconf213 which gnused pkgconfig perl python2 cargo rustc ]
++ lib.optional gtk3Support wrapGAppsHook ++ extraNativeBuildInputs; ++ lib.optional gtk3Support wrapGAppsHook
++ lib.optionals stdenv.isDarwin [ xcbuild rsync ]
++ extraNativeBuildInputs;
preConfigure = '' preConfigure = ''
# remove distributed configuration files # remove distributed configuration files
@ -110,11 +135,23 @@ stdenv.mkDerivation (rec {
'' else '' '' else ''
make -f client.mk configure-files make -f client.mk configure-files
configureScript="$(realpath ./configure)" configureScript="$(realpath ./configure)"
'') + '' '') + lib.optionalString (!isTorBrowserLike && lib.versionAtLeast version "53") ''
cxxLib=$( echo -n ${gcc}/include/c++/* ) export MOZCONFIG=$(pwd)/mozconfig
archLib=$cxxLib/$( ${gcc}/bin/gcc -dumpmachine )
test -f layout/style/ServoBindings.toml && sed -i -e '/"-DRUST_BINDGEN"/ a , "-cxx-isystem", "'$cxxLib'", "-isystem", "'$archLib'"' layout/style/ServoBindings.toml # Set C flags for Rust's bindgen program. Unlike ordinary C
# compilation, bindgen does not invoke $CC directly. Instead it
# uses LLVM's libclang. To make sure all necessary flags are
# included we need to look in a few places.
# TODO: generalize this process for other use-cases.
BINDGEN_CFLAGS="$(< ${stdenv.cc}/nix-support/libc-cflags) \
$(< ${stdenv.cc}/nix-support/cc-cflags) \
${stdenv.cc.default_cxx_stdlib_compile} \
${lib.optionalString stdenv.cc.isClang "-idirafter ${stdenv.cc.cc}/lib/clang/${lib.getVersion stdenv.cc.cc}/include"} \
${lib.optionalString stdenv.cc.isGNU "-isystem ${stdenv.cc.cc}/include/c++/${lib.getVersion stdenv.cc.cc} -isystem ${stdenv.cc.cc}/include/c++/${lib.getVersion stdenv.cc.cc}/$(cc -dumpmachine)"} \
$NIX_CFLAGS_COMPILE"
echo "ac_add_options BINDGEN_CFLAGS='$BINDGEN_CFLAGS'" >> $MOZCONFIG
'' + lib.optionalString googleAPISupport '' '' + lib.optionalString googleAPISupport ''
# Google API key used by Chromium and Firefox. # Google API key used by Chromium and Firefox.
# Note: These are for NixOS/nixpkgs use ONLY. For your own distribution, # Note: These are for NixOS/nixpkgs use ONLY. For your own distribution,
@ -146,8 +183,9 @@ stdenv.mkDerivation (rec {
"--enable-jemalloc" "--enable-jemalloc"
"--disable-maintenance-service" "--disable-maintenance-service"
"--disable-gconf" "--disable-gconf"
"--enable-default-toolkit=cairo-gtk${if gtk3Support then "3" else "2"}" "--enable-default-toolkit=${default-toolkit}"
] ]
++ lib.optional stdenv.isDarwin "--disable-xcode-checks"
++ lib.optional (lib.versionOlder version "61") "--enable-system-hunspell" ++ lib.optional (lib.versionOlder version "61") "--enable-system-hunspell"
++ lib.optionals (lib.versionAtLeast version "56" && !stdenv.hostPlatform.isi686) [ ++ lib.optionals (lib.versionAtLeast version "56" && !stdenv.hostPlatform.isi686) [
# on i686-linux: --with-libclang-path is not available in this configuration # on i686-linux: --with-libclang-path is not available in this configuration
@ -223,7 +261,12 @@ stdenv.mkDerivation (rec {
paxmark m dist/bin/xpcshell paxmark m dist/bin/xpcshell
''; '';
postInstall = '' installPhase = if stdenv.isDarwin then ''
mkdir -p $out/Applications
cp -LR dist/Firefox.app $out/Applications
'' else null;
postInstall = lib.optionalString stdenv.isLinux ''
# For grsecurity kernels # For grsecurity kernels
paxmark m $out/lib/firefox*/{firefox,firefox-bin,plugin-container} paxmark m $out/lib/firefox*/{firefox,firefox-bin,plugin-container}
@ -234,7 +277,7 @@ stdenv.mkDerivation (rec {
gappsWrapperArgs+=(--argv0 "$out/bin/.firefox-wrapped") gappsWrapperArgs+=(--argv0 "$out/bin/.firefox-wrapped")
''; '';
postFixup = '' postFixup = lib.optionalString stdenv.isLinux ''
# Fix notifications. LibXUL uses dlopen for this, unfortunately; see #18712. # Fix notifications. LibXUL uses dlopen for this, unfortunately; see #18712.
patchelf --set-rpath "${lib.getLib libnotify patchelf --set-rpath "${lib.getLib libnotify
}/lib:$(patchelf --print-rpath "$out"/lib/firefox*/libxul.so)" \ }/lib:$(patchelf --print-rpath "$out"/lib/firefox*/libxul.so)" \
@ -244,11 +287,10 @@ stdenv.mkDerivation (rec {
doInstallCheck = true; doInstallCheck = true;
installCheckPhase = '' installCheckPhase = ''
# Some basic testing # Some basic testing
"$out/bin/firefox" --version "$out${execdir}/${browserName}" --version
''; '';
passthru = { passthru = {
browserName = "firefox";
inherit version updateScript; inherit version updateScript;
isFirefox3Like = true; isFirefox3Like = true;
inherit isTorBrowserLike; inherit isTorBrowserLike;
@ -256,6 +298,8 @@ stdenv.mkDerivation (rec {
inherit nspr; inherit nspr;
inherit ffmpegSupport; inherit ffmpegSupport;
inherit gssSupport; inherit gssSupport;
inherit execdir;
inherit browserName;
} // lib.optionalAttrs gtk3Support { inherit gtk3; }; } // lib.optionalAttrs gtk3Support { inherit gtk3; };
} // overrides) } // overrides)

View file

@ -36,7 +36,7 @@ rec {
description = "A web browser built from Firefox source tree"; description = "A web browser built from Firefox source tree";
homepage = http://www.mozilla.com/en-US/firefox/; homepage = http://www.mozilla.com/en-US/firefox/;
maintainers = with lib.maintainers; [ eelco ]; maintainers = with lib.maintainers; [ eelco ];
platforms = lib.platforms.linux; platforms = lib.platforms.unix;
license = lib.licenses.mpl20; license = lib.licenses.mpl20;
}; };
updateScript = callPackage ./update.nix { updateScript = callPackage ./update.nix {

View file

@ -101,24 +101,28 @@ let
]; ];
}; };
buildInputs = [makeWrapper] nativeBuildInputs = [ makeWrapper lndir ];
++ lib.optional (browser ? gtk3) browser.gtk3; buildInputs = lib.optional (browser ? gtk3) browser.gtk3;
buildCommand = '' buildCommand = lib.optionalString stdenv.isDarwin ''
if [ ! -x "${browser}/bin/${browserName}" ] mkdir -p $out/Applications
cp -R --no-preserve=mode,ownership ${browser}/Applications/${browserName}.app $out/Applications
rm -f $out${browser.execdir or "/bin"}/${browserName}
'' + ''
if [ ! -x "${browser}${browser.execdir or "/bin"}/${browserName}" ]
then then
echo "cannot find executable file \`${browser}/bin/${browserName}'" echo "cannot find executable file \`${browser}${browser.execdir or "/bin"}/${browserName}'"
exit 1 exit 1
fi fi
makeWrapper "$(readlink -v --canonicalize-existing "${browser}/bin/${browserName}")" \ makeWrapper "$(readlink -v --canonicalize-existing "${browser}${browser.execdir or "/bin"}/${browserName}")" \
"$out/bin/${browserName}${nameSuffix}" \ "$out${browser.execdir or "/bin"}/${browserName}${nameSuffix}" \
--suffix-each MOZ_PLUGIN_PATH ':' "$plugins" \ --suffix-each MOZ_PLUGIN_PATH ':' "$plugins" \
--suffix LD_LIBRARY_PATH ':' "$libs" \ --suffix LD_LIBRARY_PATH ':' "$libs" \
--suffix-each GTK_PATH ':' "$gtk_modules" \ --suffix-each GTK_PATH ':' "$gtk_modules" \
--suffix-each LD_PRELOAD ':' "$(cat $(filterExisting $(addSuffix /extra-ld-preload $plugins)))" \ --suffix-each LD_PRELOAD ':' "$(cat $(filterExisting $(addSuffix /extra-ld-preload $plugins)))" \
--prefix-contents PATH ':' "$(filterExisting $(addSuffix /extra-bin-path $plugins))" \ --prefix-contents PATH ':' "$(filterExisting $(addSuffix /extra-bin-path $plugins))" \
--suffix PATH ':' "$out/bin" \ --suffix PATH ':' "$out${browser.execdir or "/bin"}" \
--set MOZ_APP_LAUNCHER "${browserName}${nameSuffix}" \ --set MOZ_APP_LAUNCHER "${browserName}${nameSuffix}" \
--set MOZ_SYSTEM_DIR "$out/lib/mozilla" \ --set MOZ_SYSTEM_DIR "$out/lib/mozilla" \
${lib.optionalString (browser ? gtk3) ${lib.optionalString (browser ? gtk3)
@ -144,7 +148,7 @@ let
mkdir -p $out/lib/mozilla mkdir -p $out/lib/mozilla
for ext in ${toString nativeMessagingHosts}; do for ext in ${toString nativeMessagingHosts}; do
${lndir}/bin/lndir -silent $ext/lib/mozilla $out/lib/mozilla lndir -silent $ext/lib/mozilla $out/lib/mozilla
done done
# For manpages, in case the program supplies them # For manpages, in case the program supplies them

View file

@ -337,6 +337,7 @@ stdenv.mkDerivation rec {
$out/bin/tor-browser -version >/dev/null $out/bin/tor-browser -version >/dev/null
''; '';
passthru.execdir = "/bin";
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "An unofficial version of the tor browser bundle, built from source"; description = "An unofficial version of the tor browser bundle, built from source";
homepage = https://torproject.org/; homepage = https://torproject.org/;

View file

@ -11,8 +11,8 @@ stdenv.mkDerivation rec {
owner = "flok99"; owner = "flok99";
}; };
buildInputs = [ libmrss ] buildInputs = [ libmrss ];
++ stdenv.lib.optional doCheck cppcheck; checkInputs = [ cppcheck ];
postPatch = '' postPatch = ''
substituteInPlace Makefile --replace -liconv_hook "" substituteInPlace Makefile --replace -liconv_hook ""

View file

@ -22,15 +22,16 @@ stdenv.mkDerivation rec {
]; ];
nativeBuildInputs = [ nativeBuildInputs = [
check cmake pkgconfig cmake pkgconfig
]; ];
cmakeFlags = [ cmakeFlags = [
"-DENABLE_AUTOUPDATE=OFF" "-DENABLE_AUTOUPDATE=OFF"
] ++ lib.optional (doCheck) "-DENABLE_TESTS=ON"; "-DENABLE_TESTS=${if doCheck then "ON" else "OFF"}"
];
doCheck = stdenv.isLinux;
doCheck = stdenv.hostPlatform == stdenv.buildPlatform;
checkInputs = [ check ];
checkPhase = '' checkPhase = ''
runHook preCheck runHook preCheck
ctest -VV ctest -VV

View file

@ -1,22 +1,44 @@
{ stdenv, fetchFromGitHub, cmake, pkgconfig, gnome3, gmime3, webkitgtk24x-gtk3 { stdenv, fetchFromGitHub, cmake, pkgconfig, gnome3, gmime3, webkitgtk
, libsass, notmuch, boost, wrapGAppsHook, glib-networking }: , libsass, notmuch, boost, wrapGAppsHook, glib-networking, protobuf, vim_configurable
, makeWrapper, python3, python3Packages
, vim ? vim_configurable.override {
features = "normal";
gui = "auto";
}
}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "astroid-${version}"; name = "astroid-${version}";
version = "0.11.1"; version = "0.13";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "astroidmail"; owner = "astroidmail";
repo = "astroid"; repo = "astroid";
rev = "v${version}"; rev = "v${version}";
sha256 = "1z48rvlzwi7bq7j55rnb0gg1a4k486yj910z2cxz1p46lxk332j1"; sha256 = "105x5g44hng3fi03h67j3an53088148jbq8726nmcp0zs0cy9gac";
}; };
nativeBuildInputs = [ cmake pkgconfig wrapGAppsHook ]; nativeBuildInputs = [ cmake pkgconfig wrapGAppsHook ];
buildInputs = [ gnome3.gtkmm gmime3 webkitgtk24x-gtk3 libsass gnome3.libpeas buildInputs = [ gnome3.gtkmm gmime3 webkitgtk libsass gnome3.libpeas
notmuch boost gnome3.gsettings-desktop-schemas python3 python3Packages.pygobject3
glib-networking ]; notmuch boost gnome3.gsettings-desktop-schemas gnome3.defaultIconTheme
glib-networking protobuf ] ++ (if vim == null then [] else [ vim ]);
patches = [
# TODO: remove when https://github.com/astroidmail/astroid/pull/531
# is released
./run_tests.diff
];
postPatch = ''
sed -i "s~gvim ~${vim}/bin/vim -g ~g" src/config.cc
sed -i "s~ -geom 10x10~~g" src/config.cc
'';
postInstall = ''
wrapProgram "$out/bin/astroid" --set CHARSET=en_us.UTF-8
'';
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = https://astroidmail.github.io/; homepage = https://astroidmail.github.io/;

View file

@ -0,0 +1,10 @@
diff --git a/tests/run_test.sh b/tests/run_test.sh
index f2ea7d7..927c61d 100755
--- a/tests/run_test.sh
+++ b/tests/run_test.sh
@@ -1,4 +1,4 @@
-#! /bin/bash
+#! /usr/bin/env bash
#
# Set up environment and run test specified on command line

View file

@ -5,14 +5,14 @@
with stdenv.lib; with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "6.2.3"; version = "6.2.4";
name = "seafile-client-${version}"; name = "seafile-client-${version}";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "haiwen"; owner = "haiwen";
repo = "seafile-client"; repo = "seafile-client";
rev = "v${version}"; rev = "v${version}";
sha256 = "1wdpz7vxhn9mcc7kxhrz9c5dwd492akirz351wfi4xxy5np6p6kp"; sha256 = "0z5li1d7ipsm1mp0lk6mls220v4vlmsqm8ym8kxlkinqbmkky0hz";
}; };
nativeBuildInputs = [ pkgconfig cmake makeWrapper ]; nativeBuildInputs = [ pkgconfig cmake makeWrapper ];

View file

@ -1,19 +0,0 @@
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -19,6 +19,7 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
+cmake_minimum_required(VERSION 3.7)
project(Wireshark C CXX)
# Updated by make-version.pl
@@ -40,7 +41,7 @@
# Needed for GREATER_EQUAL operator
cmake_minimum_required(VERSION 3.7)
else()
- cmake_minimum_required(VERSION 2.8.8)
+ cmake_minimum_required(VERSION 3.7)
endif()
# Needs to be set after cmake_minimum_required or cmake_policy(VERSION)

View file

@ -49,8 +49,11 @@ in stdenv.mkDerivation {
name = "fix-timeout.patch"; name = "fix-timeout.patch";
url = "https://code.wireshark.org/review/gitweb?p=wireshark.git;a=commitdiff_plain;h=8b5b843fcbc3e03e0fc45f3caf8cf5fc477e8613;hp=94af9724d140fd132896b650d10c4d060788e4f0"; url = "https://code.wireshark.org/review/gitweb?p=wireshark.git;a=commitdiff_plain;h=8b5b843fcbc3e03e0fc45f3caf8cf5fc477e8613;hp=94af9724d140fd132896b650d10c4d060788e4f0";
sha256 = "1g2dm7lwsnanwp68b9xr9swspx7hfj4v3z44sz3yrfmynygk8zlv"; sha256 = "1g2dm7lwsnanwp68b9xr9swspx7hfj4v3z44sz3yrfmynygk8zlv";
}) });
++ stdenv.lib.optional stdenv.isDarwin ./cmake.patch;
postPatch = ''
sed -i -e '1i cmake_policy(SET CMP0025 NEW)' CMakeLists.txt
'';
preBuild = '' preBuild = ''
export LD_LIBRARY_PATH="$PWD/run" export LD_LIBRARY_PATH="$PWD/run"

View file

@ -2,14 +2,14 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "bowtie2"; pname = "bowtie2";
version = "2.3.4.1"; version = "2.3.4.2";
name = "${pname}-${version}"; name = "${pname}-${version}";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "BenLangmead"; owner = "BenLangmead";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "07cvcy6483araayj41arjzpxjmf4fmn4iqyl6gp6zmrbzw72wwzj"; sha256 = "1gsfaf7rjg4nwhs7vc1vf63xd5r5v1yq58w7x3barycplzbvixzz";
}; };
buildInputs = [ zlib tbb ]; buildInputs = [ zlib tbb ];
@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
homepage = http://bowtie-bio.sf.net/bowtie2; homepage = http://bowtie-bio.sf.net/bowtie2;
maintainers = with maintainers; [ rybern ]; maintainers = with maintainers; [ rybern ];
platforms = platforms.all; platforms = platforms.all;
broken = stdenv.isAarch64;
}; };
} }

View file

@ -0,0 +1,83 @@
{ stdenv, fetchurl, makeDesktopItem, patchelf
, libXrender, libXrandr, libXcursor, libX11, libXext, libXi, libxcb
, cups , libGL, glib, nss, nspr, expat, alsaLib
, qtbase, qtdeclarative, qtsvg, qtlocation, qtwebchannel, qtwebengine
}:
let
libPath = stdenv.lib.makeLibraryPath
[ libXrender libXrandr libXcursor libX11 libXext libXi libxcb
libGL glib nss nspr expat alsaLib
qtbase qtdeclarative qtsvg qtlocation qtwebchannel qtwebengine
];
in
stdenv.mkDerivation rec {
name = "eagle-${version}";
version = "9.1.2";
src = fetchurl {
url = "https://eagle-updates.circuits.io/downloads/${builtins.replaceStrings ["."] ["_"] version}/Autodesk_EAGLE_${version}_English_Linux_64bit.tar.gz";
sha256 = "0y7ahl9z5a7l9cjk8hzmyv6ga8chlry5rr8v116q5mnsgs4i11an";
};
desktopItem = makeDesktopItem {
name = "eagle";
exec = "eagle";
icon = "eagle";
comment = "Schematic capture and PCB layout";
desktopName = "Eagle";
genericName = "Schematic editor";
categories = "Application;Development;";
};
buildInputs =
[ libXrender libXrandr libXcursor libX11 libXext libXi libxcb
libGL glib nss nspr expat alsaLib
qtbase qtdeclarative qtsvg qtlocation qtwebchannel qtwebengine
];
doConfigure = false;
doBuild = false;
installPhase = ''
# Extract eagle tarball
mkdir "$out"
tar -xzf "$src" -C "$out"
# Install manpage
mkdir -p "$out"/share/man/man1
ln -s "$out"/eagle-${version}/doc/eagle.1 "$out"/share/man/man1/eagle.1
patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${libPath}:$out/eagle-${version}/lib:${stdenv.cc.cc.lib}/lib" \
"$out"/eagle-${version}/eagle
mkdir -p "$out"/bin
ln -s "$out"/eagle-${version}/eagle "$out"/bin/eagle
# Remove bundled libraries that are available in nixpkgs
# TODO: There still may be unused bundled libraries
rm "$out"/eagle-${version}/lib/libQt5*.so.5
rm "$out"/eagle-${version}/lib/{libxcb-*.so.*,libX*.so.*,libxshmfence.so.1}
rm "$out"/eagle-${version}/lib/{libEGL.so.1,libglapi.so.0,libgbm.so.1}
# No longer needed (we don't use the bundled Qt libraries)
rm -r "$out"/eagle-${version}/libexec
rm -r "$out"/eagle-${version}/plugins
# Make desktop item
mkdir -p "$out"/share/applications
cp "$desktopItem"/share/applications/* "$out"/share/applications/
mkdir -p "$out"/share/icons
ln -s "$out/eagle-${version}/bin/eagle-logo.png" "$out"/share/icons/eagle.png
'';
meta = with stdenv.lib; {
description = "Schematic editor and PCB layout tool from Autodesk (formerly CadSoft)";
homepage = https://www.autodesk.com/products/eagle/overview;
license = licenses.unfree;
platforms = [ "x86_64-linux" ];
maintainers = [ maintainers.rittelle ];
};
}

View file

@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
# Build LD_PRELOAD library that redirects license file access to the home # Build LD_PRELOAD library that redirects license file access to the home
# directory of the user # directory of the user
mkdir -p "$out"/lib mkdir -p "$out"/lib
gcc -shared -fPIC -DEAGLE_PATH=\"$out/eagle-${version}\" ${./eagle_fixer.c} -o "$out"/lib/eagle_fixer.so -ldl gcc -shared -fPIC -DEAGLE_PATH=\"$out/eagle-${version}\" ${./eagle7_fixer.c} -o "$out"/lib/eagle_fixer.so -ldl
# Make wrapper script # Make wrapper script
dynlinker="$(cat $NIX_CC/nix-support/dynamic-linker)" dynlinker="$(cat $NIX_CC/nix-support/dynamic-linker)"

View file

@ -12,6 +12,9 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
configurePhase = '' configurePhase = ''
CC=${stdenv.cc.targetPrefix}cc
CXX=${stdenv.cc.targetPrefix}c++
# Set up picosat, so we can build 'aigbmc' # Set up picosat, so we can build 'aigbmc'
mkdir ../picosat mkdir ../picosat
ln -s ${picosat}/include/picosat/picosat.h ../picosat/picosat.h ln -s ${picosat}/include/picosat/picosat.h ../picosat/picosat.h

View file

@ -15,6 +15,11 @@ stdenv.mkDerivation rec {
# --disable-static actually enables static linking here... # --disable-static actually enables static linking here...
dontDisableStatic = true; dontDisableStatic = true;
preConfigure = ''
CC=${stdenv.cc.targetPrefix}gcc
CXX=${stdenv.cc.targetPrefix}g++
'';
makeFlags = [ "LEX=${flex}/bin/flex" ]; makeFlags = [ "LEX=${flex}/bin/flex" ];
preInstall = '' preInstall = ''

View file

@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
description = "GiNaC is Not a CAS"; description = "GiNaC is Not a CAS";
homepage = http://www.ginac.de/; homepage = http://www.ginac.de/;
maintainers = with maintainers; [ lovek323 ]; maintainers = with maintainers; [ lovek323 ];
license = licenses.gpl2;
platforms = platforms.all; platforms = platforms.all;
}; };
} }

View file

@ -26,5 +26,6 @@ stdenv.mkDerivation {
meta = { meta = {
homepage = http://www.lama.univ-savoie.fr/~raffalli/glsurf; homepage = http://www.lama.univ-savoie.fr/~raffalli/glsurf;
description = "A program to draw implicit surfaces and curves"; description = "A program to draw implicit surfaces and curves";
license = stdenv.lib.licenses.lgpl21;
}; };
} }

View file

@ -21,10 +21,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ tcl ]; nativeBuildInputs = [ tcl ];
doCheck = stdenv.hostPlatform == stdenv.buildPlatform; doCheck = stdenv.hostPlatform == stdenv.buildPlatform;
preCheck = ''
checkTarget = "test";
preCheck = stdenv.lib.optional doCheck ''
export TCLLIBPATH="${tcllib}/lib/tcllib${tcllib.version}" export TCLLIBPATH="${tcllib}/lib/tcllib${tcllib.version}"
''; '';
configureFlags = stdenv.lib.optional withJson "--json"; configureFlags = stdenv.lib.optional withJson "--json";

View file

@ -12,11 +12,11 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gitkraken-${version}"; name = "gitkraken-${version}";
version = "4.0.1"; version = "4.0.2";
src = fetchurl { src = fetchurl {
url = "https://release.gitkraken.com/linux/v${version}.deb"; url = "https://release.gitkraken.com/linux/v${version}.deb";
sha256 = "0y4r5d21mxwnwla9ggy9c4pm3zbz67yi9z06znkdz9x2chv1ci3n"; sha256 = "0dnckd75fcgc9wa4ivbnw2djmk4phzzr891snhxpsvb1dhlc7rgx";
}; };
libPath = makeLibraryPath [ libPath = makeLibraryPath [

View file

@ -104,4 +104,10 @@ stdenv.mkDerivation rec {
inherit rubyEnv; inherit rubyEnv;
ruby = rubyEnv.wrappedRuby; ruby = rubyEnv.wrappedRuby;
}; };
meta = with stdenv.lib; {
description = "Web-based Git-repository manager";
homepage = https://gitlab.com;
license = licenses.mit;
};
} }

View file

@ -10,6 +10,10 @@ stdenv.mkDerivation rec {
sha256 = "15i9bs2i25l7ibv530ghy8280kklcgm5kr6j86s7iwcqqckd0czp"; sha256 = "15i9bs2i25l7ibv530ghy8280kklcgm5kr6j86s7iwcqqckd0czp";
}; };
postPatch = ''
patchShebangs .
'';
buildInputs = [ perl ]; buildInputs = [ perl ];
makeFlags = "PREFIX=$(out)"; makeFlags = "PREFIX=$(out)";

View file

@ -1,100 +0,0 @@
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

@ -1,72 +0,0 @@
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

@ -1,11 +0,0 @@
--- 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,120 @@
source 'https://rubygems.org'
if Gem::Version.new(Bundler::VERSION) < Gem::Version.new('1.5.0')
abort "Redmine requires Bundler 1.5.0 or higher (you're using #{Bundler::VERSION}).\nPlease update with 'gem update bundler'."
end
gem "rails", "4.2.8"
gem "addressable", "2.4.0" if RUBY_VERSION < "2.0"
if RUBY_VERSION < "2.1"
gem "public_suffix", (RUBY_VERSION < "2.0" ? "~> 1.4" : "~> 2.0.5")
end
gem "jquery-rails", "~> 3.1.4"
gem "coderay", "~> 1.1.1"
gem "request_store", "1.0.5"
gem "mime-types", (RUBY_VERSION >= "2.0" ? "~> 3.0" : "~> 2.99")
gem "protected_attributes"
gem "actionpack-xml_parser"
gem "roadie-rails", "~> 1.1.1"
gem "roadie", "~> 3.2.1"
gem "mimemagic"
gem "mail", "~> 2.6.4"
gem "nokogiri", (RUBY_VERSION >= "2.1" ? "~> 1.8.1" : "~> 1.6.8")
gem "i18n", "~> 0.7.0"
gem "ffi", "1.9.14", :platforms => :mingw if RUBY_VERSION < "2.0"
# Request at least rails-html-sanitizer 1.0.3 because of security advisories
gem "rails-html-sanitizer", ">= 1.0.3"
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :x64_mingw, :mswin]
gem "rbpdf", "~> 1.19.3"
# Optional gem for LDAP authentication
group :ldap do
gem "net-ldap", "~> 0.12.0"
end
# Optional gem for OpenID authentication
group :openid do
gem "ruby-openid", "~> 2.3.0", :require => "openid"
gem "rack-openid"
end
platforms :mri, :mingw, :x64_mingw do
# Optional gem for exporting the gantt to a PNG file, not supported with jruby
group :rmagick do
gem "rmagick", ">= 2.14.0"
end
# Optional Markdown support, not for JRuby
group :markdown do
gem "redcarpet", "~> 3.4.0"
end
end
# Include database gems for the adapters found in the database
# configuration file
require 'erb'
require 'yaml'
# NixOS - manually added to ensure mysql and postgres will always be include
gem "mysql2", "~> 0.4.6", :platforms => [:mri, :mingw, :x64_mingw]
gem "pg", "~> 0.18.1", :platforms => [:mri, :mingw, :x64_mingw]
database_file = File.join(File.dirname(__FILE__), "config/database.yml")
if File.exist?(database_file)
database_config = YAML::load(ERB.new(IO.read(database_file)).result)
adapters = database_config.values.map {|c| c['adapter']}.compact.uniq
if adapters.any?
adapters.each do |adapter|
case adapter
when 'mysql2'
gem "mysql2", "~> 0.4.6", :platforms => [:mri, :mingw, :x64_mingw]
when /postgresql/
gem "pg", "~> 0.18.1", :platforms => [:mri, :mingw, :x64_mingw]
when /sqlite3/
gem "sqlite3", (RUBY_VERSION < "2.0" && RUBY_PLATFORM =~ /mingw/ ? "1.3.12" : "~>1.3.12"),
:platforms => [:mri, :mingw, :x64_mingw]
when /sqlserver/
gem "tiny_tds", (RUBY_VERSION >= "2.0" ? "~> 1.0.5" : "~> 0.7.0"), :platforms => [:mri, :mingw, :x64_mingw]
gem "activerecord-sqlserver-adapter", :platforms => [:mri, :mingw, :x64_mingw]
else
warn("Unknown database adapter `#{adapter}` found in config/database.yml, use Gemfile.local to load your own database gems")
end
end
else
warn("No adapter found in config/database.yml, please configure it first")
end
else
warn("Please configure your config/database.yml first")
end
# NixOS - manually removed because I couldn't figure out how to get "bundle exec rails server webrick -e production" to ignore these groups
#group :development do
# gem "rdoc", "~> 4.3"
# gem "yard"
#end
#group :test do
# gem "minitest"
# gem "rails-dom-testing"
# gem "mocha"
# gem "simplecov", "~> 0.9.1", :require => false
# # TODO: remove this after upgrading to Rails 5
# gem "test_after_commit", "~> 0.4.2"
# # For running UI tests
# gem "capybara"
# gem "selenium-webdriver", "~> 2.53.4"
#end
local_gemfile = File.join(File.dirname(__FILE__), "Gemfile.local")
if File.exists?(local_gemfile)
eval_gemfile local_gemfile
end
# Load plugins' Gemfiles
Dir.glob File.expand_path("../plugins/*/{Gemfile,PluginGemfile}", __FILE__) do |file|
eval_gemfile file
end

View file

@ -1,152 +1,162 @@
GEM GEM
remote: https://rubygems.org/ remote: https://rubygems.org/
specs: specs:
actionmailer (3.2.19) actionmailer (4.2.8)
actionpack (= 3.2.19) actionpack (= 4.2.8)
mail (~> 2.5.4) actionview (= 4.2.8)
actionpack (3.2.19) activejob (= 4.2.8)
activemodel (= 3.2.19) mail (~> 2.5, >= 2.5.4)
activesupport (= 3.2.19) rails-dom-testing (~> 1.0, >= 1.0.5)
builder (~> 3.0.0) actionpack (4.2.8)
actionview (= 4.2.8)
activesupport (= 4.2.8)
rack (~> 1.6)
rack-test (~> 0.6.2)
rails-dom-testing (~> 1.0, >= 1.0.5)
rails-html-sanitizer (~> 1.0, >= 1.0.2)
actionpack-xml_parser (1.0.2)
actionpack (>= 4.0.0, < 5)
actionview (4.2.8)
activesupport (= 4.2.8)
builder (~> 3.1)
erubis (~> 2.7.0) erubis (~> 2.7.0)
journey (~> 1.0.4) rails-dom-testing (~> 1.0, >= 1.0.5)
rack (~> 1.4.5) rails-html-sanitizer (~> 1.0, >= 1.0.3)
rack-cache (~> 1.2) activejob (4.2.8)
rack-test (~> 0.6.1) activesupport (= 4.2.8)
sprockets (~> 2.2.1) globalid (>= 0.3.0)
activemodel (3.2.19) activemodel (4.2.8)
activesupport (= 3.2.19) activesupport (= 4.2.8)
builder (~> 3.0.0) builder (~> 3.1)
activerecord (3.2.19) activerecord (4.2.8)
activemodel (= 3.2.19) activemodel (= 4.2.8)
activesupport (= 3.2.19) activesupport (= 4.2.8)
arel (~> 3.0.2) arel (~> 6.0)
tzinfo (~> 0.3.29) activesupport (4.2.8)
activeresource (3.2.19) i18n (~> 0.7)
activemodel (= 3.2.19) minitest (~> 5.1)
activesupport (= 3.2.19) thread_safe (~> 0.3, >= 0.3.4)
activesupport (3.2.19) tzinfo (~> 1.1)
i18n (~> 0.6, >= 0.6.4) addressable (2.5.2)
multi_json (~> 1.0) public_suffix (>= 2.0.2, < 4.0)
arel (3.0.3) arel (6.0.4)
awesome_nested_set (2.1.6) builder (3.2.3)
activerecord (>= 3.0.0) coderay (1.1.2)
builder (3.0.0) concurrent-ruby (1.0.5)
capybara (2.1.0) crass (1.0.4)
mime-types (>= 1.16) css_parser (1.6.0)
nokogiri (>= 1.3.3) addressable
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) erubis (2.7.0)
fastercsv (1.5.5) globalid (0.4.1)
ffi (1.9.5) activesupport (>= 4.2.0)
hike (1.2.3) htmlentities (4.3.4)
i18n (0.6.11) i18n (0.7.0)
journey (1.0.4) jquery-rails (3.1.5)
jquery-rails (2.0.3) railties (>= 3.0, < 5.0)
railties (>= 3.1.0, < 5.0) thor (>= 0.14, < 2.0)
thor (~> 0.14) loofah (2.2.2)
json (1.8.3) crass (~> 1.0.2)
mail (2.5.4) nokogiri (>= 1.5.9)
mime-types (~> 1.16) mail (2.6.6)
treetop (~> 1.4.8) mime-types (>= 1.16, < 4)
metaclass (0.0.4) mime-types (3.2.2)
mime-types (1.25.1) mime-types-data (~> 3.2015)
mini_portile (0.6.0) mime-types-data (3.2018.0812)
mocha (1.0.0) mimemagic (0.3.2)
metaclass (~> 0.0.1) mini_portile2 (2.3.0)
multi_json (1.10.1) minitest (5.11.3)
net-ldap (0.3.1) mysql2 (0.4.10)
nokogiri (1.6.3.1) net-ldap (0.12.1)
mini_portile (= 0.6.0) nokogiri (1.8.4)
pg (0.17.1) mini_portile2 (~> 2.3.0)
polyglot (0.3.5) pg (0.18.4)
rack (1.4.5) protected_attributes (1.1.4)
rack-cache (1.2) activemodel (>= 4.0.1, < 5.0)
rack (>= 0.4) public_suffix (3.0.3)
rack (1.6.10)
rack-openid (1.4.2) rack-openid (1.4.2)
rack (>= 1.1.0) rack (>= 1.1.0)
ruby-openid (>= 2.1.8) ruby-openid (>= 2.1.8)
rack-ssl (1.3.4) rack-test (0.6.3)
rack
rack-test (0.6.2)
rack (>= 1.0) rack (>= 1.0)
rails (3.2.19) rails (4.2.8)
actionmailer (= 3.2.19) actionmailer (= 4.2.8)
actionpack (= 3.2.19) actionpack (= 4.2.8)
activerecord (= 3.2.19) actionview (= 4.2.8)
activeresource (= 3.2.19) activejob (= 4.2.8)
activesupport (= 3.2.19) activemodel (= 4.2.8)
bundler (~> 1.0) activerecord (= 4.2.8)
railties (= 3.2.19) activesupport (= 4.2.8)
railties (3.2.19) bundler (>= 1.3.0, < 2.0)
actionpack (= 3.2.19) railties (= 4.2.8)
activesupport (= 3.2.19) sprockets-rails
rack-ssl (~> 1.3.2) rails-deprecated_sanitizer (1.0.3)
activesupport (>= 4.2.0.alpha)
rails-dom-testing (1.0.9)
activesupport (>= 4.2.0, < 5.0)
nokogiri (~> 1.6)
rails-deprecated_sanitizer (>= 1.0.1)
rails-html-sanitizer (1.0.4)
loofah (~> 2.2, >= 2.2.2)
railties (4.2.8)
actionpack (= 4.2.8)
activesupport (= 4.2.8)
rake (>= 0.8.7) rake (>= 0.8.7)
rdoc (~> 3.4) thor (>= 0.18.1, < 2.0)
thor (>= 0.14.6, < 2.0) rake (12.3.1)
rake (10.1.1) rbpdf (1.19.5)
rdoc (3.12.2) htmlentities
json (~> 1.4) rbpdf-font (~> 1.19.0)
redcarpet (2.3.0) rbpdf-font (1.19.1)
rmagick (2.13.3) redcarpet (3.4.0)
request_store (1.0.5)
rmagick (2.16.0)
roadie (3.2.2)
css_parser (~> 1.4)
nokogiri (~> 1.5)
roadie-rails (1.1.1)
railties (>= 3.0, < 5.1)
roadie (~> 3.1)
ruby-openid (2.3.0) ruby-openid (2.3.0)
rubyzip (1.1.6) sprockets (3.7.2)
selenium-webdriver (2.43.0) concurrent-ruby (~> 1.0)
childprocess (~> 0.5) rack (> 1, < 3)
multi_json (~> 1.0) sprockets-rails (3.2.1)
rubyzip (~> 1.0) actionpack (>= 4.0)
websocket (~> 1.0) activesupport (>= 4.0)
shoulda (3.3.2) sprockets (>= 3.0.0)
shoulda-context (~> 1.0.1) thor (0.20.0)
shoulda-matchers (~> 1.4.1) thread_safe (0.3.6)
shoulda-context (1.0.2) tzinfo (1.2.5)
shoulda-matchers (1.4.1) thread_safe (~> 0.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 PLATFORMS
ruby ruby
DEPENDENCIES DEPENDENCIES
activerecord-jdbc-adapter (~> 1.3.2) actionpack-xml_parser
activerecord-jdbcpostgresql-adapter coderay (~> 1.1.1)
awesome_nested_set (= 2.1.6) i18n (~> 0.7.0)
builder (= 3.0.0) jquery-rails (~> 3.1.4)
capybara (~> 2.1.0) mail (~> 2.6.4)
coderay (~> 1.1.0) mime-types (~> 3.0)
fastercsv (~> 1.5.0) mimemagic
jquery-rails (~> 2.0.2) mysql2 (~> 0.4.6)
mime-types net-ldap (~> 0.12.0)
mocha (~> 1.0.0) nokogiri (~> 1.8.1)
net-ldap (~> 0.3.1) pg (~> 0.18.1)
pg (>= 0.11.0) protected_attributes
rack-openid rack-openid
rails (= 3.2.19) rails (= 4.2.8)
rake (~> 10.1.1) rails-html-sanitizer (>= 1.0.3)
rdoc (>= 2.4.2) rbpdf (~> 1.19.3)
redcarpet (~> 2.3.0) redcarpet (~> 3.4.0)
rmagick (>= 2.0.0) request_store (= 1.0.5)
rmagick (>= 2.14.0)
roadie (~> 3.2.1)
roadie-rails (~> 1.1.1)
ruby-openid (~> 2.3.0) ruby-openid (~> 2.3.0)
selenium-webdriver tzinfo-data
shoulda (~> 3.3.2)
yard BUNDLED WITH
1.16.1

View file

@ -1,332 +0,0 @@
[
{
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 = "1nsby6ry8l9xg3yw4adlhk2pnc7i0h0rznvcss4vk3v74qg0k8lc";
url = "http://rubygems.org/downloads/json-1.8.3.gem";
version = "1.8.3";
}
{
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

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

View file

@ -1,47 +0,0 @@
{ 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";
};
nativeBuildInputs = [ pkgconfig ];
buildInputs = [
ruby bundler libiconv libxslt libxml2
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.out} \
--with-xml2-dir=${libxml2.out} \
--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

@ -1,74 +1,42 @@
{ stdenv, fetchurl, ruby, bundler, libiconv, libxslt, libxml2, pkgconfig, libffi, imagemagickBig, postgresql }: { stdenv, fetchurl, bundlerEnv, ruby }:
let let
gemspec = map (gem: fetchurl { url=gem.url; sha256=gem.hash; }) (import ./Gemfile.nix); version = "3.4.6";
in stdenv.mkDerivation rec { rubyEnv = bundlerEnv {
version = "2.5.2"; name = "redmine-env-${version}";
name = "redmine-${version}";
src = fetchurl { inherit ruby;
url = "https://www.redmine.org/releases/${name}.tar.gz"; gemdir = ./.;
sha256 = "0x0zwxyj4dwbk7l64s3lgny10mjf0ba8jwrbafsm4d72sncmacv0";
}; };
in
stdenv.mkDerivation rec {
name = "redmine-${version}";
hardeningDisable = [ "format" ]; src = fetchurl {
url = "https://www.redmine.org/releases/${name}.tar.gz";
sha256 = "15akq6pn42w7cf7dg45xmvw06fixck1qznp7s8ix7nyxlmcyvcg3";
};
# taken from redmine (2.5.1-2~bpo70+3) in debian wheezy-backports buildInputs = [ rubyEnv rubyEnv.wrappedRuby rubyEnv.bundler ];
# 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 = '' buildPhase = ''
substituteInPlace lib/redmine/plugin.rb --replace "File.join(Rails.root, 'plugins')" "ENV['RAILS_PLUGINS']" mv config config.dist
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 = [ installPhase = ''
ruby bundler libiconv mkdir -p $out/share
libxslt libxml2 pkgconfig libffi cp -r . $out/share/redmine
imagemagickBig postgresql
];
installPhase = '' for i in config files log plugins tmp; do
mkdir -p $out/share/redmine/ rm -rf $out/share/redmine/$i
cp -R . $out/share/redmine/ ln -fs /run/redmine/$i $out/share/redmine/
cd $out/share/redmine done
ln -s ${./Gemfile.lock} Gemfile.lock '';
export HOME=$(pwd)
cat > config/database.yml <<EOF meta = with stdenv.lib; {
production: homepage = http://www.redmine.org/;
adapter: postgresql platforms = platforms.linux;
EOF maintainers = [ maintainers.garbas ];
license = licenses.gpl2;
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.dev}" --with-xml2-dir="${libxml2.dev}"
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;
# Marked as broken due to needing an update for security issues.
# See: https://github.com/NixOS/nixpkgs/issues/18856
broken = true;
};
}

View file

@ -0,0 +1,472 @@
{
actionmailer = {
dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0pr3cmr0bpgg5d0f6wy1z6r45n14r9yin8jnr4hi3ssf402xpc0q";
type = "gem";
};
version = "4.2.8";
};
actionpack = {
dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "09fbazl0ja80na2wadfp3fzmdmdy1lsb4wd2yg7anbj0zk0ap7a9";
type = "gem";
};
version = "4.2.8";
};
actionpack-xml_parser = {
dependencies = ["actionpack"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "17am4nd7x6g8x7f8i35rzzv2qrxlkc230rbgzg98af0yf50j8gka";
type = "gem";
};
version = "1.0.2";
};
actionview = {
dependencies = ["activesupport" "builder" "erubis" "rails-dom-testing" "rails-html-sanitizer"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1mg4a8143q2wjhjq4mngl69jkv249z5jvg0jkdribdv4zkg586rp";
type = "gem";
};
version = "4.2.8";
};
activejob = {
dependencies = ["activesupport" "globalid"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0kazbpfgzz6cdmwjnlb9m671ps4qgggwv2hy8y9xi4h96djyyfqz";
type = "gem";
};
version = "4.2.8";
};
activemodel = {
dependencies = ["activesupport" "builder"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "11vhh7zmp92880s5sx8r32v2p0b7xg039mfr92pjynpkz4q901ld";
type = "gem";
};
version = "4.2.8";
};
activerecord = {
dependencies = ["activemodel" "activesupport" "arel"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1kk4dhn8jfhqfsf1dmb3a183gix6k46xr6cjkxj0rp51w2za1ns0";
type = "gem";
};
version = "4.2.8";
};
activesupport = {
dependencies = ["i18n" "minitest" "thread_safe" "tzinfo"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0wibdzd2f5l5rlsw1a1y3j3fhw2imrrbkxggdraa6q9qbdnc66hi";
type = "gem";
};
version = "4.2.8";
};
addressable = {
dependencies = ["public_suffix"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0viqszpkggqi8hq87pqp0xykhvz60g99nwmkwsb0v45kc2liwxvk";
type = "gem";
};
version = "2.5.2";
};
arel = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0nfcrdiys6q6ylxiblky9jyssrw2xj96fmxmal7f4f0jj3417vj4";
type = "gem";
};
version = "6.0.4";
};
builder = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0qibi5s67lpdv1wgcj66wcymcr04q6j4mzws6a479n0mlrmh5wr1";
type = "gem";
};
version = "3.2.3";
};
coderay = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y";
type = "gem";
};
version = "1.1.2";
};
concurrent-ruby = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "183lszf5gx84kcpb779v6a2y0mx9sssy8dgppng1z9a505nj1qcf";
type = "gem";
};
version = "1.0.5";
};
crass = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0bpxzy6gjw9ggjynlxschbfsgmx8lv3zw1azkjvnb8b9i895dqfi";
type = "gem";
};
version = "1.0.4";
};
css_parser = {
dependencies = ["addressable"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0gwvf8mc8gnz4aizfijplv3594998h2j44ydakpzsdmkivs07v61";
type = "gem";
};
version = "1.6.0";
};
erubis = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1fj827xqjs91yqsydf0zmfyw9p4l2jz5yikg3mppz6d7fi8kyrb3";
type = "gem";
};
version = "2.7.0";
};
globalid = {
dependencies = ["activesupport"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "02smrgdi11kziqi9zhnsy9i6yr2fnxrqlv3lllsvdjki3cd4is38";
type = "gem";
};
version = "0.4.1";
};
htmlentities = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj";
type = "gem";
};
version = "4.3.4";
};
i18n = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1i5z1ykl8zhszsxcs8mzl8d0dxgs3ylz8qlzrw74jb0gplkx6758";
type = "gem";
};
version = "0.7.0";
};
jquery-rails = {
dependencies = ["railties" "thor"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1lk7xqmms45czylxs22kv5khlbm7a0yqcchqijxb9m10zsqc6lp5";
type = "gem";
};
version = "3.1.5";
};
loofah = {
dependencies = ["crass" "nokogiri"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0yjs6wbcj3n06d3xjqpy3qbpx0bfa12h3x2rbpc2k33ldjlkx6zy";
type = "gem";
};
version = "2.2.2";
};
mail = {
dependencies = ["mime-types"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0d7lhj2dw52ycls6xigkfz6zvfhc6qggply9iycjmcyj9760yvz9";
type = "gem";
};
version = "2.6.6";
};
mime-types = {
dependencies = ["mime-types-data"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0fjxy1jm52ixpnv3vg9ld9pr9f35gy0jp66i1njhqjvmnvq0iwwk";
type = "gem";
};
version = "3.2.2";
};
mime-types-data = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "07wvp0aw2gjm4njibb70as6rh5hi1zzri5vky1q6jx95h8l56idc";
type = "gem";
};
version = "3.2018.0812";
};
mimemagic = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "00ibc1mhvdfyfyl103xwb45621nwyqxf124cni5hyfhag0fn1c3q";
type = "gem";
};
version = "0.3.2";
};
mini_portile2 = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "13d32jjadpjj6d2wdhkfpsmy68zjx90p49bgf8f7nkpz86r1fr11";
type = "gem";
};
version = "2.3.0";
};
minitest = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq";
type = "gem";
};
version = "5.11.3";
};
mysql2 = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0qjd97w6a0w9aldsrhb2y6jrc4wnnlbj5j8kcl7pp7vviwa0r5iq";
type = "gem";
};
version = "0.4.10";
};
net-ldap = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0z1j0zklbbx3vi91zcd2v0fnkfgkvq3plisa6hxaid8sqndyak46";
type = "gem";
};
version = "0.12.1";
};
nokogiri = {
dependencies = ["mini_portile2"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1h9nml9h3m0mpvmh8jfnqvblnz5n5y3mmhgfc38avfmfzdrq9bgc";
type = "gem";
};
version = "1.8.4";
};
pg = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "07dv4ma9xd75xpsnnwwg1yrpwpji7ydy0q1d9dl0yfqbzpidrw32";
type = "gem";
};
version = "0.18.4";
};
protected_attributes = {
dependencies = ["activemodel"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "18lvrvmcwjvjr2mrn20vaf68a0q6mg4cy9f0m1i7x83p0ljhhyar";
type = "gem";
};
version = "1.1.4";
};
public_suffix = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "08q64b5br692dd3v0a9wq9q5dvycc6kmiqmjbdxkxbfizggsvx6l";
type = "gem";
};
version = "3.0.3";
};
rack = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0in0amn0kwvzmi8h5zg6ijrx5wpsf8h96zrfmnk1kwh2ql4sxs2q";
type = "gem";
};
version = "1.6.10";
};
rack-openid = {
dependencies = ["rack" "ruby-openid"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0sg85yn981j3a0iri3ch4znzdwscvz29l7vrk3dafqw4fdg31llc";
type = "gem";
};
version = "1.4.2";
};
rack-test = {
dependencies = ["rack"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0h6x5jq24makgv2fq5qqgjlrk74dxfy62jif9blk43llw8ib2q7z";
type = "gem";
};
version = "0.6.3";
};
rails = {
dependencies = ["actionmailer" "actionpack" "actionview" "activejob" "activemodel" "activerecord" "activesupport" "railties" "sprockets-rails"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0dpbf3ybzbhqqkwg5vi60121860cr8fybvchrxk5wy3f2jcj0mch";
type = "gem";
};
version = "4.2.8";
};
rails-deprecated_sanitizer = {
dependencies = ["activesupport"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0qxymchzdxww8bjsxj05kbf86hsmrjx40r41ksj0xsixr2gmhbbj";
type = "gem";
};
version = "1.0.3";
};
rails-dom-testing = {
dependencies = ["activesupport" "nokogiri" "rails-deprecated_sanitizer"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0wssfqpn00byhvp2372p99mphkcj8qx6pf6646avwr9ifvq0q1x6";
type = "gem";
};
version = "1.0.9";
};
rails-html-sanitizer = {
dependencies = ["loofah"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1gv7vr5d9g2xmgpjfq4nxsqr70r9pr042r9ycqqnfvw5cz9c7jwr";
type = "gem";
};
version = "1.0.4";
};
railties = {
dependencies = ["actionpack" "activesupport" "rake" "thor"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0bavl4hj7bnl3ryqi9rvykm410kflplgingkcxasfv1gdilddh4g";
type = "gem";
};
version = "4.2.8";
};
rake = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1idi53jay34ba9j68c3mfr9wwkg3cd9qh0fn9cg42hv72c6q8dyg";
type = "gem";
};
version = "12.3.1";
};
rbpdf = {
dependencies = ["htmlentities" "rbpdf-font"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "021fda3gcz9pyydxnn40vs1nrkycwslb9ip4q0yg3hlip41k1b49";
type = "gem";
};
version = "1.19.5";
};
rbpdf-font = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0pxlr0l4vf785qpy55m439dyii63a26l0sd0yyhbwwcy9zm9hd1v";
type = "gem";
};
version = "1.19.1";
};
redcarpet = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0h9qz2hik4s9knpmbwrzb3jcp3vc5vygp9ya8lcpl7f1l9khmcd7";
type = "gem";
};
version = "3.4.0";
};
request_store = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1ky19wb6mpq6dxb81a0h4hnzx7a4ka99n9ay2syi68djbr4bkbbh";
type = "gem";
};
version = "1.0.5";
};
rmagick = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0m9x15cdlkcb9826s3s2jd97hxf50hln22p94x8hcccxi1lwklq6";
type = "gem";
};
version = "2.16.0";
};
roadie = {
dependencies = ["css_parser" "nokogiri"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0frp5yb07ib9y1k43shd4xjkb9a6wavhqq892l8yi9y73qi2cqbc";
type = "gem";
};
version = "3.2.2";
};
roadie-rails = {
dependencies = ["railties" "roadie"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1hxgl5marq2hi6lcc73f7g6afd7dz4w893rrgrbh7m3k8zrwjyk1";
type = "gem";
};
version = "1.1.1";
};
ruby-openid = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0yzaf2c1i88757554wk38rxqmj0xzgmwk2zx7gi98w2zx42d17pn";
type = "gem";
};
version = "2.3.0";
};
sprockets = {
dependencies = ["concurrent-ruby" "rack"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "182jw5a0fbqah5w9jancvfmjbk88h8bxdbwnl4d3q809rpxdg8ay";
type = "gem";
};
version = "3.7.2";
};
sprockets-rails = {
dependencies = ["actionpack" "activesupport" "sprockets"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0ab42pm8p5zxpv3sfraq45b9lj39cz9mrpdirm30vywzrwwkm5p1";
type = "gem";
};
version = "3.2.1";
};
thor = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0nmqpyj642sk4g16nkbq6pj856adpv91lp4krwhqkh2iw63aszdl";
type = "gem";
};
version = "0.20.0";
};
thread_safe = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
type = "gem";
};
version = "0.3.6";
};
tzinfo = {
dependencies = ["thread_safe"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z";
type = "gem";
};
version = "1.2.5";
};
}

View file

@ -1,56 +0,0 @@
#!/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

@ -7,11 +7,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "smartgithg-${version}"; name = "smartgithg-${version}";
version = "17_1_4"; version = "18_1_4";
src = fetchurl { src = fetchurl {
url = "https://www.syntevo.com/downloads/smartgit/smartgit-linux-${version}.tar.gz"; url = "https://www.syntevo.com/downloads/smartgit/smartgit-linux-${version}.tar.gz";
sha256 = "1x8s1mdxg7m3fy3izgnb1smrn4ng3q31x0sqnjlchkb5vx7gp5rh"; sha256 = "18gyfcs5g7xq8fqnn1zjzx350jaynrniain0giay8sxych12p4cm";
}; };
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];
@ -37,6 +37,8 @@ stdenv.mkDerivation rec {
mkdir -pv ${pkg_path} mkdir -pv ${pkg_path}
# unpacking should have produced a dir named 'smartgit' # unpacking should have produced a dir named 'smartgit'
cp -a smartgit/* ${pkg_path} cp -a smartgit/* ${pkg_path}
# prevent using packaged jre
rm -r ${pkg_path}/jre
mkdir -pv ${bin_path} mkdir -pv ${bin_path}
jre=${jre.home} jre=${jre.home}
makeWrapper ${pkg_path}/bin/smartgit.sh ${bin_path}/smartgit \ makeWrapper ${pkg_path}/bin/smartgit.sh ${bin_path}/smartgit \
@ -45,6 +47,7 @@ stdenv.mkDerivation rec {
--prefix JRE_HOME : ${jre} \ --prefix JRE_HOME : ${jre} \
--prefix JAVA_HOME : ${jre} \ --prefix JAVA_HOME : ${jre} \
--prefix SMARTGITHG_JAVA_HOME : ${jre} --prefix SMARTGITHG_JAVA_HOME : ${jre}
sed -i '/ --login/d' ${pkg_path}/bin/smartgit.sh
patchShebangs $out patchShebangs $out
cp ${bin_path}/smartgit ${bin_path}/smartgithg cp ${bin_path}/smartgit ${bin_path}/smartgithg

View file

@ -91,6 +91,7 @@ let
enableParallelBuilding = true; enableParallelBuilding = true;
checkInputs = [ python ];
doCheck = false; # fails 10 out of ~2300 tests doCheck = false; # fails 10 out of ~2300 tests
meta = with stdenv.lib; { meta = with stdenv.lib; {

View file

@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
homepage = https://containerd.tools/; homepage = https://containerd.tools/;
description = "A daemon to control runC"; description = "A daemon to control runC";
license = licenses.asl20; license = licenses.asl20;
maintainers = with maintainers; [ offline ]; maintainers = with maintainers; [ offline vdemeester ];
platforms = platforms.linux; platforms = platforms.linux;
}; };
} }

View file

@ -41,6 +41,11 @@ stdenv.mkDerivation rec {
sed -i 's,/sbin/shutdown,shutdown,' lib/system/systemLinux.c sed -i 's,/sbin/shutdown,shutdown,' lib/system/systemLinux.c
''; '';
preConfigure = ''
CC=${stdenv.cc.targetPrefix}cc
CXX=${stdenv.cc.targetPrefix}c++
'';
configureFlags = [ "--without-kernel-modules" "--without-xmlsecurity" ] configureFlags = [ "--without-kernel-modules" "--without-xmlsecurity" ]
++ lib.optional (!withX) "--without-x"; ++ lib.optional (!withX) "--without-x";

View file

@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
homepage = https://runc.io/; homepage = https://runc.io/;
description = "A CLI tool for spawning and running containers according to the OCI specification"; description = "A CLI tool for spawning and running containers according to the OCI specification";
license = licenses.asl20; license = licenses.asl20;
maintainers = with maintainers; [ offline ]; maintainers = with maintainers; [ offline vdemeester ];
platforms = platforms.linux; platforms = platforms.linux;
}; };
} }

View file

@ -47,7 +47,7 @@ in with self; stdenv.mkDerivation rec {
--prefix PATH : "${stdenv.lib.makeBinPath [ dmenu-velox st-velox ]}" --prefix PATH : "${stdenv.lib.makeBinPath [ dmenu-velox st-velox ]}"
''; '';
enableParallelBuilding = true; enableParallelBuilding = false; # https://hydra.nixos.org/build/79799608
meta = { meta = {
description = "velox window manager"; description = "velox window manager";

View file

@ -59,11 +59,11 @@ for cmd in \
ar as ld nm objcopy objdump readelf ranlib strip strings size windres ar as ld nm objcopy objdump readelf ranlib strip strings size windres
do do
if if
PATH=$_PATH type -p "@targetPrefix@${cmd}" > /dev/null cmd_path=$(PATH=$_PATH command -v "@targetPrefix@${cmd}")
then then
upper_case="$(echo "$cmd" | tr "[:lower:]" "[:upper:]")" upper_case="$(echo "$cmd" | tr "[:lower:]" "[:upper:]")"
export "${role_pre}${upper_case}=@targetPrefix@${cmd}"; export "${role_pre}${upper_case}=${cmd_path}";
export "${upper_case}${role_post}=@targetPrefix@${cmd}"; export "${upper_case}${role_post}=${cmd_path}";
fi fi
done done
@ -72,5 +72,5 @@ done
export NIX_HARDENING_ENABLE export NIX_HARDENING_ENABLE
# No local scope in sourced file # No local scope in sourced file
unset -v role_pre role_post cmd upper_case unset -v role_pre role_post cmd cmd_path upper_case
set +u set +u

View file

@ -109,10 +109,10 @@ fi
export NIX_${role_pre}CC=@out@ export NIX_${role_pre}CC=@out@
export ${role_pre}CC=@named_cc@ export ${role_pre}CC=@out@/bin/@named_cc@
export ${role_pre}CXX=@named_cxx@ export ${role_pre}CXX=@out@/bin/@named_cxx@
export CC${role_post}=@named_cc@ export CC${role_post}=@out@/bin/@named_cc@
export CXX${role_post}=@named_cxx@ export CXX${role_post}=@out@/bin/@named_cxx@
# If unset, assume the default hardening flags. # If unset, assume the default hardening flags.
: ${NIX_HARDENING_ENABLE="fortify stackprotector pic strictoverflow format relro bindnow"} : ${NIX_HARDENING_ENABLE="fortify stackprotector pic strictoverflow format relro bindnow"}

View file

@ -4,7 +4,7 @@
# often change with updating of git or cgit. # often change with updating of git or cgit.
# stripLen acts as the -p parameter when applying a patch. # stripLen acts as the -p parameter when applying a patch.
{ lib, fetchurl, patchutils }: { lib, fetchurl, buildPackages }:
{ stripLen ? 0, extraPrefix ? null, excludes ? [], includes ? [], revert ? false, ... }@args: { stripLen ? 0, extraPrefix ? null, excludes ? [], includes ? [], revert ? false, ... }@args:
fetchurl ({ fetchurl ({
@ -14,10 +14,10 @@ fetchurl ({
echo "error: Fetched patch file '$out' is empty!" 1>&2 echo "error: Fetched patch file '$out' is empty!" 1>&2
exit 1 exit 1
fi fi
"${patchutils}/bin/lsdiff" "$out" \ "${buildPackages.patchutils}/bin/lsdiff" "$out" \
| sort -u | sed -e 's/[*?]/\\&/g' \ | sort -u | sed -e 's/[*?]/\\&/g' \
| xargs -I{} \ | xargs -I{} \
"${patchutils}/bin/filterdiff" \ "${buildPackages.patchutils}/bin/filterdiff" \
--include={} \ --include={} \
--strip=${toString stripLen} \ --strip=${toString stripLen} \
${lib.optionalString (extraPrefix != null) '' ${lib.optionalString (extraPrefix != null) ''
@ -32,7 +32,7 @@ fetchurl ({
cat "$out" 1>&2 cat "$out" 1>&2
exit 1 exit 1
fi fi
${patchutils}/bin/filterdiff \ ${buildPackages.patchutils}/bin/filterdiff \
-p1 \ -p1 \
${builtins.toString (builtins.map (x: "-x ${lib.escapeShellArg x}") excludes)} \ ${builtins.toString (builtins.map (x: "-x ${lib.escapeShellArg x}") excludes)} \
${builtins.toString (builtins.map (x: "-i ${lib.escapeShellArg x}") includes)} \ ${builtins.toString (builtins.map (x: "-i ${lib.escapeShellArg x}") includes)} \
@ -46,7 +46,7 @@ fetchurl ({
exit 1 exit 1
fi fi
'' + lib.optionalString revert '' '' + lib.optionalString revert ''
${patchutils}/bin/interdiff "$out" /dev/null > "$tmpfile" ${buildPackages.patchutils}/bin/interdiff "$out" /dev/null > "$tmpfile"
mv "$tmpfile" "$out" mv "$tmpfile" "$out"
'' + (args.postFetch or ""); '' + (args.postFetch or "");
meta.broken = excludes != [] && includes != []; meta.broken = excludes != [] && includes != [];

View file

@ -27,11 +27,11 @@ stdenv.mkDerivation (
postPhases = "finalPhase"; postPhases = "finalPhase";
} }
// args // // args //
{ {
name = name + (if src ? version then "-" + src.version else ""); name = name + (if src ? version then "-" + src.version else "");
postHook = '' postHook = ''
mkdir -p $out/nix-support mkdir -p $out/nix-support
echo "$system" > $out/nix-support/system echo "$system" > $out/nix-support/system
@ -43,7 +43,7 @@ stdenv.mkDerivation (
if test -e $origSrc/nix-support/hydra-release-name; then if test -e $origSrc/nix-support/hydra-release-name; then
releaseName=$(cat $origSrc/nix-support/hydra-release-name) releaseName=$(cat $origSrc/nix-support/hydra-release-name)
fi fi
installFlagsArray=(DESTDIR=$TMPDIR/inst) installFlagsArray=(DESTDIR=$TMPDIR/inst)
# Prefix hackery because of a bug in stdenv (it tries to `mkdir # Prefix hackery because of a bug in stdenv (it tries to `mkdir
@ -62,18 +62,18 @@ stdenv.mkDerivation (
tar cvfj $out/tarballs/''${releaseName:-binary-dist}.tar.bz2 -C $TMPDIR/inst . tar cvfj $out/tarballs/''${releaseName:-binary-dist}.tar.bz2 -C $TMPDIR/inst .
''; '';
finalPhase = finalPhase =
'' ''
for i in $out/tarballs/*; do for i in $out/tarballs/*; do
echo "file binary-dist $i" >> $out/nix-support/hydra-build-products echo "file binary-dist $i" >> $out/nix-support/hydra-build-products
done done
# Propagate the release name of the source tarball. This is # Propagate the release name of the source tarball. This is
# to get nice package names in channels. # to get nice package names in channels.
test -n "$releaseName" && (echo "$releaseName" >> $out/nix-support/hydra-release-name) test -n "$releaseName" && (echo "$releaseName" >> $out/nix-support/hydra-release-name)
''; '';
meta = (if args ? meta then args.meta else {}) // { meta = (if args ? meta then args.meta else {}) // {
description = "Build of a generic binary distribution"; description = "Build of a generic binary distribution";

View file

@ -1,6 +1,6 @@
{ pkgs { pkgs
, kernel ? pkgs.linux , kernel ? pkgs.linux
, img ? pkgs.stdenv.platform.kernelTarget , img ? pkgs.stdenv.hostPlatform.platform.kernelTarget
, storeDir ? builtins.storeDir , storeDir ? builtins.storeDir
, rootModules ? , rootModules ?
[ "virtio_pci" "virtio_mmio" "virtio_blk" "virtio_balloon" "virtio_rng" "ext4" "unix" "9p" "9pnet_virtio" "crc32c_generic" ] [ "virtio_pci" "virtio_mmio" "virtio_blk" "virtio_balloon" "virtio_rng" "ext4" "unix" "9p" "9pnet_virtio" "crc32c_generic" ]

View file

@ -1,18 +1,18 @@
{ stdenv, fetchzip }: { stdenv, fetchzip }:
let let
version = "1.14.3"; version = "2.0.0";
in fetchzip rec { in fetchzip rec {
name = "iosevka-bin-${version}"; name = "iosevka-bin-${version}";
url = "https://github.com/be5invis/Iosevka/releases/download/v${version}/iosevka-pack-${version}.zip"; url = "https://github.com/be5invis/Iosevka/releases/download/v${version}/ttc-iosevka-${version}.zip";
postFetch = '' postFetch = ''
mkdir -p $out/share/fonts mkdir -p $out/share/fonts
unzip -j $downloadedFile \*.ttc -d $out/share/fonts/iosevka unzip -j $downloadedFile \*.ttc -d $out/share/fonts/iosevka
''; '';
sha256 = "0qc5i6ijr25d2jwi5r4bcvbaw74y1p05a5fvlwss3l9rhmmxsfpl"; sha256 = "17ldxs8rn4y5mzpc6h5rms4khk9fp4d1ixz5bh0pglh1kdansz45";
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = https://be5invis.github.io/Iosevka/; homepage = https://be5invis.github.io/Iosevka/;

View file

@ -1,7 +1,7 @@
{ stdenv, fetchFromGitHub, gtk3, numix-icon-theme }: { stdenv, fetchFromGitHub, gtk3, numix-icon-theme }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "18-02-16"; version = "18.08.17";
package-name = "numix-icon-theme-circle"; package-name = "numix-icon-theme-circle";
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
owner = "numixproject"; owner = "numixproject";
repo = package-name; repo = package-name;
rev = version; rev = version;
sha256 = "0q08q1czsk6h0dxqscbgryr12xaakp4zbch37z0jxpwh087gnq4f"; sha256 = "1nxgm5vf2rzbg8qh48iy0vdj12ffahlp9qhj8h0k1li03s3nf15h";
}; };
nativeBuildInputs = [ gtk3 numix-icon-theme ]; nativeBuildInputs = [ gtk3 numix-icon-theme ];
@ -31,7 +31,8 @@ stdenv.mkDerivation rec {
description = "Numix icon theme (circle version)"; description = "Numix icon theme (circle version)";
homepage = https://numixproject.org; homepage = https://numixproject.org;
license = licenses.gpl3; license = licenses.gpl3;
platforms = platforms.all; # darwin cannot deal with file names differing only in case
platforms = platforms.linux;
maintainers = with maintainers; [ jgeerds ]; maintainers = with maintainers; [ jgeerds ];
}; };
} }

View file

@ -3,13 +3,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "${package-name}-${version}"; name = "${package-name}-${version}";
package-name = "numix-icon-theme-square"; package-name = "numix-icon-theme-square";
version = "18-02-16"; version = "18.08.17";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "numixproject"; owner = "numixproject";
repo = package-name; repo = package-name;
rev = version; rev = version;
sha256 = "1gjwc0s6a7q1jby5bcwxkcmbs470m81y8s0clsm0qhcmcn1c36xj"; sha256 = "0pn5m73zd240bk2kilcgv57xn7grhbcj5ay4w1jzzn1f4ifaa0w8";
}; };
nativeBuildInputs = [ gtk3 numix-icon-theme ]; nativeBuildInputs = [ gtk3 numix-icon-theme ];
@ -29,7 +29,8 @@ stdenv.mkDerivation rec {
description = "Numix icon theme (square version)"; description = "Numix icon theme (square version)";
homepage = https://numixproject.org; homepage = https://numixproject.org;
license = licenses.gpl3; license = licenses.gpl3;
platforms = platforms.linux; # Maybe other non-darwin Unix # darwin cannot deal with file names differing only in case
platforms = platforms.linux;
maintainers = with maintainers; [ romildo ]; maintainers = with maintainers; [ romildo ];
}; };
} }

View file

@ -3,13 +3,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "${pname}-${version}"; name = "${pname}-${version}";
pname = "numix-icon-theme"; pname = "numix-icon-theme";
version = "17-12-25"; version = "18.07.17";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "numixproject"; owner = "numixproject";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "0q3hpq2jc9iwnzzqpb12g1qzjsw4ckhdqkfqf6nirl87r5drkv6j"; sha256 = "0clh55kmhc52d33dfm2c6h3lg6ddfh8a088ir9lv1camn9kj55bd";
}; };
nativeBuildInputs = [ gtk3 hicolor-icon-theme ]; nativeBuildInputs = [ gtk3 hicolor-icon-theme ];
@ -29,7 +29,8 @@ stdenv.mkDerivation rec {
description = "Numix icon theme"; description = "Numix icon theme";
homepage = https://numixproject.org; homepage = https://numixproject.org;
license = licenses.gpl3; license = licenses.gpl3;
platforms = platforms.all; # darwin cannot deal with file names differing only in case
platforms = platforms.linux;
maintainers = with maintainers; [ romildo jgeerds ]; maintainers = with maintainers; [ romildo jgeerds ];
}; };
} }

View file

@ -1,6 +1,7 @@
{ stdenv, fetchurl, pkgconfig, intltool, gnupg, p11-kit, glib { stdenv, fetchurl, pkgconfig, intltool, gnupg, p11-kit, glib
, libgcrypt, libtasn1, dbus-glib, gtk, pango, gdk_pixbuf, atk , libgcrypt, libtasn1, dbus-glib, gtk, pango, gdk_pixbuf, atk
, gobjectIntrospection, makeWrapper, libxslt, vala, gnome3 }: , gobjectIntrospection, makeWrapper, libxslt, vala, gnome3
, python2 }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gcr-${version}"; name = "gcr-${version}";
@ -15,6 +16,10 @@ stdenv.mkDerivation rec {
updateScript = gnome3.updateScript { packageName = "gcr"; attrPath = "gnome3.gcr"; }; updateScript = gnome3.updateScript { packageName = "gcr"; attrPath = "gnome3.gcr"; };
}; };
postPatch = ''
patchShebangs .
'';
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
nativeBuildInputs = [ pkgconfig intltool gobjectIntrospection libxslt makeWrapper vala ]; nativeBuildInputs = [ pkgconfig intltool gobjectIntrospection libxslt makeWrapper vala ];
@ -27,7 +32,8 @@ stdenv.mkDerivation rec {
propagatedBuildInputs = [ glib gtk p11-kit ]; propagatedBuildInputs = [ glib gtk p11-kit ];
#doCheck = true; checkInputs = [ python2 ];
doCheck = false; # fails 21 out of 603 tests, needs dbus daemon
#enableParallelBuilding = true; issues on hydra #enableParallelBuilding = true; issues on hydra

View file

@ -22,14 +22,11 @@ stdenv.mkDerivation rec {
pango gcr gdk_pixbuf atk p11-kit pango gcr gdk_pixbuf atk p11-kit
]; ];
# In 3.20.1, tests do not support Python 3
checkInputs = [ dbus python2 ];
propagatedBuildInputs = [ glib libtasn1 libxslt ]; propagatedBuildInputs = [ glib libtasn1 libxslt ];
nativeBuildInputs = [ nativeBuildInputs = [
pkgconfig intltool docbook_xsl docbook_xml_dtd_42 wrapGAppsHook pkgconfig intltool docbook_xsl docbook_xml_dtd_42 wrapGAppsHook
] ++ stdenv.lib.optionals doCheck checkInputs; ];
configureFlags = [ configureFlags = [
"--with-pkcs11-config=$$out/etc/pkcs11/" # installation directories "--with-pkcs11-config=$$out/etc/pkcs11/" # installation directories
@ -41,6 +38,9 @@ stdenv.mkDerivation rec {
''; '';
doCheck = true; doCheck = true;
# In 3.20.1, tests do not support Python 3
checkInputs = [ dbus python2 ];
checkPhase = '' checkPhase = ''
export HOME=$(mktemp -d) export HOME=$(mktemp -d)
dbus-run-session \ dbus-run-session \

View file

@ -61,7 +61,8 @@ stdenv.mkDerivation rec {
** **
** Ideally in the future this would be less of a hack and could be ** Ideally in the future this would be less of a hack and could be
** done by Chez itself. Alternatively, there could just be a big ** done by Chez itself. Alternatively, there could just be a big
** case statement matching to the different stdenv.platform values... ** case statement matching to the different stdenv.hostPlatform.platform
** values...
*/ */
postInstall = '' postInstall = ''
m="$(ls ./work/boot)" m="$(ls ./work/boot)"

View file

@ -10,10 +10,10 @@ stdenv.mkDerivation rec {
buildFlags = "build"; buildFlags = "build";
enableParallelBuilding = true; enableParallelBuilding = true;
nativeBuildInputs = stdenv.lib.optional doCheck python;
doCheck = true; doCheck = true;
checkPhase = "python ./runCmdStanTests.py src/test/interface"; # see #5368 checkInputs = [ python ];
checkPhase = "python ./runCmdStanTests.py src/test/interface"; # see #5368
installPhase = '' installPhase = ''
mkdir -p $out/opt $out/bin mkdir -p $out/opt $out/bin

View file

@ -102,15 +102,16 @@ stdenv.mkDerivation rec {
done done
# GHC is a bit confused on its cross terminology, as these would normally be # GHC is a bit confused on its cross terminology, as these would normally be
# the *host* tools. # the *host* tools.
export CC="${targetCC}/bin/${targetCC.targetPrefix}cc" export CC="$CC_FOR_TARGET"
export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx" export CXX="$CXX_FOR_TARGET"
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld" # Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as" export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${stdenv.lib.optionalString targetPlatform.isAarch32 ".gold"}"
export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar" export AS="$AS_FOR_TARGET"
export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm" export AR="$AR_FOR_TARGET"
export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib" export NM="$NM_FOR_TARGET"
export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf" export RANLIB="$RANLIB_FOR_TARGET"
export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip" export READELF="$READELF_FOR_TARGET"
export STRIP="$STRIP_FOR_TARGET"
echo -n "${buildMK}" > mk/build.mk echo -n "${buildMK}" > mk/build.mk
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure

View file

@ -134,16 +134,16 @@ stdenv.mkDerivation rec {
done done
# GHC is a bit confused on its cross terminology, as these would normally be # GHC is a bit confused on its cross terminology, as these would normally be
# the *host* tools. # the *host* tools.
export CC="${targetCC}/bin/${targetCC.targetPrefix}cc" export CC="$CC_FOR_TARGET"
export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx" export CXX="$CXX_FOR_TARGET"
# Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177 # Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${stdenv.lib.optionalString targetPlatform.isAarch32 ".gold"}" export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${stdenv.lib.optionalString targetPlatform.isAarch32 ".gold"}"
export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as" export AS="$AS_FOR_TARGET"
export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar" export AR="$AR_FOR_TARGET"
export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm" export NM="$NM_FOR_TARGET"
export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib" export RANLIB="$RANLIB_FOR_TARGET"
export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf" export READELF="$READELF_FOR_TARGET"
export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip" export STRIP="$STRIP_FOR_TARGET"
echo -n "${buildMK}" > mk/build.mk echo -n "${buildMK}" > mk/build.mk
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure

View file

@ -99,8 +99,9 @@ stdenv.mkDerivation (rec {
extraPrefix = "utils/hsc2hs/"; extraPrefix = "utils/hsc2hs/";
stripLen = 1; stripLen = 1;
})] ++ stdenv.lib.optional deterministicProfiling })] ++ stdenv.lib.optional deterministicProfiling
(fetchpatch { (fetchpatch rec {
url = "https://phabricator-files.haskell.org/file/data/yd2fclrwulila2quki5q/PHID-FILE-lr2j63hkglwauprxycrt/D4388.diff"; url = "http://tarballs.nixos.org/sha256/${sha256}";
name = "D4388.diff";
sha256 = "0w6sdcvnqjlnlzpvnzw20b80v150ijjyjvs9548ildc1928j0w7s"; sha256 = "0w6sdcvnqjlnlzpvnzw20b80v150ijjyjvs9548ildc1928j0w7s";
}) })
++ stdenv.lib.optional stdenv.isDarwin ./backport-dylib-command-size-limit.patch; ++ stdenv.lib.optional stdenv.isDarwin ./backport-dylib-command-size-limit.patch;
@ -114,16 +115,16 @@ stdenv.mkDerivation (rec {
done done
# GHC is a bit confused on its cross terminology, as these would normally be # GHC is a bit confused on its cross terminology, as these would normally be
# the *host* tools. # the *host* tools.
export CC="${targetCC}/bin/${targetCC.targetPrefix}cc" export CC="$CC_FOR_TARGET"
export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx" export CXX="$CXX_FOR_TARGET"
# Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177 # Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${stdenv.lib.optionalString targetPlatform.isAarch32 ".gold"}" export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${stdenv.lib.optionalString targetPlatform.isAarch32 ".gold"}"
export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as" export AS="$AS_FOR_TARGET"
export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar" export AR="$AR_FOR_TARGET"
export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm" export NM="$NM_FOR_TARGET"
export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib" export RANLIB="$RANLIB_FOR_TARGET"
export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf" export READELF="$READELF_FOR_TARGET"
export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip" export STRIP="$STRIP_FOR_TARGET"
echo -n "${buildMK}" > mk/build.mk echo -n "${buildMK}" > mk/build.mk
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure

View file

@ -98,16 +98,16 @@ stdenv.mkDerivation (rec {
done done
# GHC is a bit confused on its cross terminology, as these would normally be # GHC is a bit confused on its cross terminology, as these would normally be
# the *host* tools. # the *host* tools.
export CC="${targetCC}/bin/${targetCC.targetPrefix}cc" export CC="$CC_FOR_TARGET"
export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx" export CXX="$CXX_FOR_TARGET"
# Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177 # Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${stdenv.lib.optionalString targetPlatform.isAarch32 ".gold"}" export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${stdenv.lib.optionalString targetPlatform.isAarch32 ".gold"}"
export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as" export AS="$AS_FOR_TARGET"
export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar" export AR="$AR_FOR_TARGET"
export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm" export NM="$NM_FOR_TARGET"
export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib" export RANLIB="$RANLIB_FOR_TARGET"
export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf" export READELF="$READELF_FOR_TARGET"
export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip" export STRIP="$STRIP_FOR_TARGET"
echo -n "${buildMK}" > mk/build.mk echo -n "${buildMK}" > mk/build.mk
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure

View file

@ -100,16 +100,16 @@ stdenv.mkDerivation rec {
done done
# GHC is a bit confused on its cross terminology, as these would normally be # GHC is a bit confused on its cross terminology, as these would normally be
# the *host* tools. # the *host* tools.
export CC="${targetCC}/bin/${targetCC.targetPrefix}cc" export CC="$CC_FOR_TARGET"
export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx" export CXX="$CXX_FOR_TARGET"
# Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177 # Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${stdenv.lib.optionalString targetPlatform.isAarch32 ".gold"}" export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${stdenv.lib.optionalString targetPlatform.isAarch32 ".gold"}"
export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as" export AS="$AS_FOR_TARGET"
export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar" export AR="$AR_FOR_TARGET"
export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm" export NM="$NM_FOR_TARGET"
export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib" export RANLIB="$RANLIB_FOR_TARGET"
export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf" export READELF="$READELF_FOR_TARGET"
export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip" export STRIP="$STRIP_FOR_TARGET"
echo -n "${buildMK}" > mk/build.mk echo -n "${buildMK}" > mk/build.mk
echo ${version} >VERSION echo ${version} >VERSION

View file

@ -28,6 +28,8 @@ stdenv.mkDerivation rec {
fi fi
''; '';
doCheck = false; # fails 3 out of 3 tests (ctest)
meta = with stdenv.lib; { meta = with stdenv.lib; {
inherit (src.meta) homepage; inherit (src.meta) homepage;
description = "Khronos reference front-end for GLSL and ESSL"; description = "Khronos reference front-end for GLSL and ESSL";

View file

@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
*.so) install -vD "$i" "$out/libexec/$pname/$(basename "$i")";; *.so) install -vD "$i" "$out/libexec/$pname/$(basename "$i")";;
*) target="$out/bin/$(basename "$i")" *) target="$out/bin/$(basename "$i")"
install -vD "$i" "$target" install -vD "$i" "$target"
sed -i -e 's|^$JAVA_HOME/bin/java|''${JAVA:-$JAVA_HOME/bin/java}|' "$target"
wrapProgram "$target" \ wrapProgram "$target" \
--set JAVA_HOME "$JAVA_HOME" \ --set JAVA_HOME "$JAVA_HOME" \
--prefix CLASSPATH : "$out/share/$pname/api_export_files" --prefix CLASSPATH : "$out/share/$pname/api_export_files"
@ -55,7 +56,9 @@ stdenv.mkDerivation rec {
First, compile your '.java' (NixOS-specific: you should not need to set the class path -- if you need, it's a bug): First, compile your '.java' (NixOS-specific: you should not need to set the class path -- if you need, it's a bug):
javacardc -source 1.5 -target 1.5 [MyJavaFile].java javacardc -source 1.5 -target 1.5 [MyJavaFile].java
Then, convert the '.class' file into a '.cap': Then, test with 'jcwde' (NixOS-specific: you can change the java version used to run jcwde with eg. JAVA=jdb):
CLASSPATH=. jcwde [MyJcwdeConfig].app & sleep 1 && apdutool [MyApdus].apdu
Finally, convert the '.class' file into a '.cap':
converter -applet [AppletAID] [MyApplet] [myPackage] [PackageAID] [Version] converter -applet [AppletAID] [MyApplet] [myPackage] [PackageAID] [Version]
For more details, please refer to the documentation by Oracle For more details, please refer to the documentation by Oracle
''; '';

View file

@ -106,6 +106,12 @@ let
# https://github.com/JetBrains/jdk8u/commit/eaa5e0711a43d64874111254d74893fa299d5716 # https://github.com/JetBrains/jdk8u/commit/eaa5e0711a43d64874111254d74893fa299d5716
+ stdenv.lib.optionalString stdenv.cc.isGNU '' + stdenv.lib.optionalString stdenv.cc.isGNU ''
NIX_CFLAGS_COMPILE+=" -fno-lifetime-dse -fno-delete-null-pointer-checks -std=gnu++98 -Wno-error" NIX_CFLAGS_COMPILE+=" -fno-lifetime-dse -fno-delete-null-pointer-checks -std=gnu++98 -Wno-error"
''
# The configure script was confused by our passing these with full paths,
# so we explicitly override them to short variants.
+ ''
CC=${stdenv.cc.targetPrefix}cc
CXX=${stdenv.cc.targetPrefix}c++
''; '';
configureFlags = [ configureFlags = [

View file

@ -1,12 +1,12 @@
{ stdenv, fetchurl, makeWrapper, jre }: { stdenv, fetchurl, makeWrapper, jre }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "0.8.0-RC1"; version = "0.9.0-RC1";
name = "dotty-bare-${version}"; name = "dotty-bare-${version}";
src = fetchurl { src = fetchurl {
url = "https://github.com/lampepfl/dotty/releases/download/${version}/dotty-${version}.tar.gz"; url = "https://github.com/lampepfl/dotty/releases/download/${version}/dotty-${version}.tar.gz";
sha256 = "e5b7a9bb6f1007146a440ddfff871cc312075e5d69b9ab7e279ad7c3514f7065"; sha256 = "1c24692081231415cb560ff1288ede3f0d28c8b994ce8ca7c7b06edf7978bfb8";
}; };
propagatedBuildInputs = [ jre ] ; propagatedBuildInputs = [ jre ] ;

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