2019-12-09 03:52:41 +01:00
|
|
|
# This file controls the import of external dependencies (i.e.
|
|
|
|
# third-party code) into my package tree.
|
|
|
|
#
|
|
|
|
# This includes *all packages needed from nixpkgs*.
|
2020-02-21 13:47:29 +01:00
|
|
|
{ ... }:
|
2019-12-09 03:52:41 +01:00
|
|
|
|
|
|
|
let
|
2020-11-21 18:22:54 +01:00
|
|
|
# Tracking nixos-unstable as of 2020-11-21.
|
|
|
|
nixpkgsCommit = "a322b32e9d74fb476944ff6cfb55833dc69cfaaa";
|
2020-01-01 16:49:53 +01:00
|
|
|
nixpkgsSrc = fetchTarball {
|
2020-11-21 18:22:54 +01:00
|
|
|
url = "https://github.com/NixOS/nixpkgs/archive/${nixpkgsCommit}.tar.gz";
|
|
|
|
sha256 = "1r0mkiqxija75spnyksmh8x5j4smnrxv5f7768s81gsl570kls0l";
|
2019-12-09 03:52:41 +01:00
|
|
|
};
|
2020-01-01 16:49:53 +01:00
|
|
|
nixpkgs = import nixpkgsSrc {
|
2019-12-09 03:52:41 +01:00
|
|
|
config.allowUnfree = true;
|
|
|
|
config.allowBroken = true;
|
2020-06-19 02:53:09 +02:00
|
|
|
|
|
|
|
# Lutris depends on p7zip, which is considered insecure.
|
|
|
|
config.permittedInsecurePackages = [
|
|
|
|
"p7zip-16.02"
|
|
|
|
];
|
2019-12-09 03:52:41 +01:00
|
|
|
};
|
|
|
|
|
2020-11-21 19:20:35 +01:00
|
|
|
# Tracking nixos-20.09 as of 2020-11-21.
|
|
|
|
stableCommit = "58f9c4c7d3a42c912362ca68577162e38ea8edfb";
|
2020-05-22 19:55:15 +02:00
|
|
|
stableNixpkgsSrc = fetchTarball {
|
2020-11-21 19:20:35 +01:00
|
|
|
url = "https://github.com/NixOS/nixpkgs/archive/${stableCommit}.tar.gz";
|
|
|
|
sha256 = "1517dy07jf4zhzknqbgm617lgjxsn7a6k1vgq61c67f6h55qs5ij";
|
2020-05-22 19:55:15 +02:00
|
|
|
};
|
|
|
|
stableNixpkgs = import stableNixpkgsSrc {};
|
|
|
|
|
2019-12-09 03:52:41 +01:00
|
|
|
exposed = {
|
2020-06-07 15:56:56 +02:00
|
|
|
# Inherit the packages from nixos-unstable that should be available inside
|
2019-12-09 03:52:41 +01:00
|
|
|
# of the repo. They become available under `pkgs.third_party.<name>`
|
|
|
|
inherit (nixpkgs)
|
2020-01-01 16:54:07 +01:00
|
|
|
age
|
2020-01-12 02:20:45 +01:00
|
|
|
autoconf
|
2020-05-31 22:58:17 +02:00
|
|
|
autoreconfHook
|
2020-07-07 00:12:13 +02:00
|
|
|
avrdude
|
2020-07-17 01:26:48 +02:00
|
|
|
avrlibc
|
2019-12-09 04:19:03 +01:00
|
|
|
bashInteractive
|
2019-12-21 05:55:10 +01:00
|
|
|
bat
|
feat(gerrit): Create Gerrit derivation.
This uses the actual Bazel build, using a variety of tricks and hacks to
make it actually work.
Bazel really wants to download linux binaries from the internet and run
them. In lieu of trying to fix the build system to not do this, we
instead put bazel inside an FHS environment, which allows the binaries
to find their dependencies.
We also have to patch a few things:
* We use build --nobuild instead of fetch, so we only fetch the
dependencies we actually need for the build and not, say, Windows
binaries.
* We don't remove rules_cc, because we need it as an external
dependency, not bundled.
* We do some manual fixes on the cache before packing, because we need
to remove some in-tree sources (so they don't cause the hash to break,
since the hashes differ each time they're generated), and also remove
some extraneous files.
* We explicitly turn off the repository and disk caches, because the
.bazelrc at the root of the Gerrit tree turns them on, with paths
pointing into the user's home directory.
* detzip is used instead of the zip binary for packing bower_components
into an archive. detzip doesn't create entries for directories, and
also doesn't store most metadata (timestamps, etc.), and uses store
(i.e. uncompressed) compression only. It also sorts the file tree
before writing them into the file.
Change-Id: I572c43f7175067ecb1b85cdf40dda13a52de1439
Reviewed-on: https://cl.tvl.fyi/c/depot/+/252
Reviewed-by: tazjin <mail@tazj.in>
2020-06-14 13:23:47 +02:00
|
|
|
buildBazelPackage
|
|
|
|
buildFHSUserEnv
|
2020-02-10 23:15:44 +01:00
|
|
|
buildGoModule
|
2020-02-26 15:21:35 +01:00
|
|
|
buildGoPackage
|
2020-05-31 22:58:17 +02:00
|
|
|
buildPackages
|
2020-06-27 18:14:58 +02:00
|
|
|
buildkite-agent
|
2020-08-04 02:20:30 +02:00
|
|
|
busybox
|
2020-01-12 03:48:40 +01:00
|
|
|
bzip2
|
2020-02-26 15:21:35 +01:00
|
|
|
c-ares
|
2019-12-09 04:19:03 +01:00
|
|
|
cacert
|
|
|
|
cachix
|
2020-04-21 04:38:30 +02:00
|
|
|
cairo
|
2019-12-09 03:52:41 +01:00
|
|
|
cargo
|
2019-12-18 17:22:56 +01:00
|
|
|
cgit
|
2020-05-19 21:47:23 +02:00
|
|
|
clang-tools
|
2020-05-22 19:29:47 +02:00
|
|
|
clang_10
|
2020-02-26 15:21:35 +01:00
|
|
|
cmake
|
2019-12-09 04:19:03 +01:00
|
|
|
coreutils
|
2020-04-04 03:26:55 +02:00
|
|
|
cudatoolkit
|
2019-12-09 03:52:41 +01:00
|
|
|
darwin
|
2020-07-07 00:12:13 +02:00
|
|
|
dfu-programmer
|
|
|
|
dfu-util
|
|
|
|
diffutils
|
2020-07-26 21:31:16 +02:00
|
|
|
docker-compose
|
2020-08-14 22:48:38 +02:00
|
|
|
dockerTools
|
|
|
|
emacs26
|
|
|
|
emacs26-nox
|
|
|
|
emacsPackages
|
|
|
|
emacsPackagesGen
|
2020-06-27 06:11:47 +02:00
|
|
|
execline
|
2020-07-19 18:46:42 +02:00
|
|
|
fd
|
2019-12-09 03:52:41 +01:00
|
|
|
fetchFromGitHub
|
feat(gerrit): Create Gerrit derivation.
This uses the actual Bazel build, using a variety of tricks and hacks to
make it actually work.
Bazel really wants to download linux binaries from the internet and run
them. In lieu of trying to fix the build system to not do this, we
instead put bazel inside an FHS environment, which allows the binaries
to find their dependencies.
We also have to patch a few things:
* We use build --nobuild instead of fetch, so we only fetch the
dependencies we actually need for the build and not, say, Windows
binaries.
* We don't remove rules_cc, because we need it as an external
dependency, not bundled.
* We do some manual fixes on the cache before packing, because we need
to remove some in-tree sources (so they don't cause the hash to break,
since the hashes differ each time they're generated), and also remove
some extraneous files.
* We explicitly turn off the repository and disk caches, because the
.bazelrc at the root of the Gerrit tree turns them on, with paths
pointing into the user's home directory.
* detzip is used instead of the zip binary for packing bower_components
into an archive. detzip doesn't create entries for directories, and
also doesn't store most metadata (timestamps, etc.), and uses store
(i.e. uncompressed) compression only. It also sorts the file tree
before writing them into the file.
Change-Id: I572c43f7175067ecb1b85cdf40dda13a52de1439
Reviewed-on: https://cl.tvl.fyi/c/depot/+/252
Reviewed-by: tazjin <mail@tazj.in>
2020-06-14 13:23:47 +02:00
|
|
|
fetchgit
|
2019-12-16 04:14:21 +01:00
|
|
|
fetchurl
|
2020-02-17 01:51:13 +01:00
|
|
|
fetchzip
|
2019-12-21 02:07:29 +01:00
|
|
|
fira
|
|
|
|
fira-code
|
|
|
|
fira-mono
|
2020-07-15 15:54:18 +02:00
|
|
|
flamegraph
|
2020-04-21 04:38:30 +02:00
|
|
|
fontconfig
|
|
|
|
freetype
|
2019-12-23 13:26:30 +01:00
|
|
|
gettext
|
2019-12-16 04:14:21 +01:00
|
|
|
glibc
|
2020-05-31 22:58:17 +02:00
|
|
|
gmock
|
2019-12-09 04:19:03 +01:00
|
|
|
gnutar
|
2019-12-09 03:52:41 +01:00
|
|
|
google-cloud-sdk
|
2020-04-21 04:38:30 +02:00
|
|
|
graphviz
|
2019-12-09 04:19:03 +01:00
|
|
|
gzip
|
2019-12-09 03:52:41 +01:00
|
|
|
haskell
|
2019-12-09 04:19:03 +01:00
|
|
|
iana-etc
|
2020-01-05 18:09:21 +01:00
|
|
|
imagemagickBig
|
2020-06-14 23:43:38 +02:00
|
|
|
installShellFiles
|
feat(gerrit): Create Gerrit derivation.
This uses the actual Bazel build, using a variety of tricks and hacks to
make it actually work.
Bazel really wants to download linux binaries from the internet and run
them. In lieu of trying to fix the build system to not do this, we
instead put bazel inside an FHS environment, which allows the binaries
to find their dependencies.
We also have to patch a few things:
* We use build --nobuild instead of fetch, so we only fetch the
dependencies we actually need for the build and not, say, Windows
binaries.
* We don't remove rules_cc, because we need it as an external
dependency, not bundled.
* We do some manual fixes on the cache before packing, because we need
to remove some in-tree sources (so they don't cause the hash to break,
since the hashes differ each time they're generated), and also remove
some extraneous files.
* We explicitly turn off the repository and disk caches, because the
.bazelrc at the root of the Gerrit tree turns them on, with paths
pointing into the user's home directory.
* detzip is used instead of the zip binary for packing bower_components
into an archive. detzip doesn't create entries for directories, and
also doesn't store most metadata (timestamps, etc.), and uses store
(i.e. uncompressed) compression only. It also sorts the file tree
before writing them into the file.
Change-Id: I572c43f7175067ecb1b85cdf40dda13a52de1439
Reviewed-on: https://cl.tvl.fyi/c/depot/+/252
Reviewed-by: tazjin <mail@tazj.in>
2020-06-14 13:23:47 +02:00
|
|
|
jdk
|
2020-07-05 21:08:36 +02:00
|
|
|
jdk11
|
2020-11-27 18:39:35 +01:00
|
|
|
jdk11_headless
|
2020-04-21 04:38:30 +02:00
|
|
|
jetbrains-mono
|
2019-12-09 03:52:41 +01:00
|
|
|
jq
|
2019-12-09 05:27:40 +01:00
|
|
|
kontemplate
|
2019-12-09 03:52:41 +01:00
|
|
|
lib
|
2020-01-22 02:27:21 +01:00
|
|
|
libredirect
|
2020-07-15 15:54:18 +02:00
|
|
|
linuxPackages
|
2020-01-12 03:48:40 +01:00
|
|
|
luajit
|
2020-06-19 02:53:09 +02:00
|
|
|
lutris
|
2019-12-21 02:07:29 +01:00
|
|
|
makeFontsConf
|
2019-12-09 04:36:50 +01:00
|
|
|
makeWrapper
|
2019-12-09 04:19:03 +01:00
|
|
|
mdbook
|
2020-05-17 03:49:13 +02:00
|
|
|
meson
|
2019-12-20 22:17:51 +01:00
|
|
|
mime-types
|
2020-06-21 22:41:46 +02:00
|
|
|
mkShell
|
2019-12-18 20:08:10 +01:00
|
|
|
moreutils
|
|
|
|
nano
|
2019-12-20 16:48:22 +01:00
|
|
|
nginx
|
2020-05-17 03:49:13 +02:00
|
|
|
ninja
|
2019-12-20 21:03:36 +01:00
|
|
|
nix
|
2019-12-09 04:19:03 +01:00
|
|
|
openssh
|
2019-12-09 04:36:50 +01:00
|
|
|
openssl
|
2020-02-26 15:21:35 +01:00
|
|
|
overrideCC
|
2020-02-08 14:32:15 +01:00
|
|
|
pandoc
|
2019-12-20 23:19:52 +01:00
|
|
|
parallel
|
2019-12-20 21:03:36 +01:00
|
|
|
pkgconfig
|
2020-07-07 00:12:13 +02:00
|
|
|
pkgsCross
|
2020-06-15 22:03:40 +02:00
|
|
|
postgresql
|
2020-03-01 02:06:00 +01:00
|
|
|
pounce
|
2020-06-25 05:01:00 +02:00
|
|
|
pulseaudio
|
2020-04-25 18:57:33 +02:00
|
|
|
python3
|
2019-12-23 12:20:31 +01:00
|
|
|
python3Packages
|
2019-12-09 03:52:41 +01:00
|
|
|
remarshal
|
2019-12-14 18:47:54 +01:00
|
|
|
rink
|
2019-12-13 13:11:50 +01:00
|
|
|
ripgrep
|
2019-12-09 03:52:41 +01:00
|
|
|
rsync
|
|
|
|
runCommand
|
2020-06-27 05:34:23 +02:00
|
|
|
runCommandLocal
|
2020-08-14 22:48:38 +02:00
|
|
|
runCommandNoCC
|
2019-12-09 04:19:03 +01:00
|
|
|
rustPlatform
|
2019-12-09 03:52:41 +01:00
|
|
|
rustc
|
2020-06-28 02:30:08 +02:00
|
|
|
s6-portable-utils
|
2019-12-09 04:36:50 +01:00
|
|
|
sbcl
|
2020-08-17 03:03:32 +02:00
|
|
|
shellcheck
|
2020-04-20 00:21:51 +02:00
|
|
|
sqlite
|
2020-07-05 21:08:36 +02:00
|
|
|
stdenvNoCC
|
2019-12-14 18:40:21 +01:00
|
|
|
stern
|
2019-12-09 03:52:41 +01:00
|
|
|
symlinkJoin
|
2019-12-20 21:03:36 +01:00
|
|
|
systemd
|
2019-12-19 15:48:22 +01:00
|
|
|
tdlib
|
2020-07-07 00:12:13 +02:00
|
|
|
teensy-loader-cli
|
2019-12-09 04:19:03 +01:00
|
|
|
terraform_0_12
|
2019-12-21 02:07:29 +01:00
|
|
|
texlive
|
2019-12-18 17:22:56 +01:00
|
|
|
thttpd
|
2019-12-09 03:52:41 +01:00
|
|
|
tree
|
2020-08-03 04:13:06 +02:00
|
|
|
unzip
|
2020-06-07 15:56:56 +02:00
|
|
|
which
|
2019-12-21 03:59:12 +01:00
|
|
|
writeShellScript
|
2019-12-09 03:52:41 +01:00
|
|
|
writeShellScriptBin
|
2019-12-09 04:00:56 +01:00
|
|
|
writeText
|
2020-05-26 00:36:20 +02:00
|
|
|
xorg
|
2020-01-12 03:48:40 +01:00
|
|
|
xz
|
2019-12-16 04:14:21 +01:00
|
|
|
zlib
|
|
|
|
zstd;
|
2020-05-17 17:27:36 +02:00
|
|
|
|
2020-11-21 18:22:54 +01:00
|
|
|
# Inherit packages from the stable channel for things that are
|
|
|
|
# broken on unstable
|
|
|
|
inherit (stableNixpkgs)
|
|
|
|
awscli # TODO(grfn): Move back to unstable once it is fixed
|
|
|
|
;
|
|
|
|
|
2020-05-17 17:27:36 +02:00
|
|
|
# Required by //third_party/nix
|
|
|
|
inherit (nixpkgs)
|
|
|
|
aws-sdk-cpp
|
|
|
|
bison
|
|
|
|
boehmgc
|
|
|
|
boost # urgh
|
|
|
|
brotli
|
2020-05-17 22:25:50 +02:00
|
|
|
busybox-sandbox-shell
|
2020-05-17 17:27:36 +02:00
|
|
|
curl
|
|
|
|
docbook5
|
|
|
|
docbook_xsl_ns
|
|
|
|
editline
|
|
|
|
flex
|
|
|
|
libseccomp
|
|
|
|
libsodium
|
|
|
|
libxml2
|
|
|
|
libxslt
|
|
|
|
mercurial
|
|
|
|
perl
|
|
|
|
perlPackages
|
2020-07-09 00:02:50 +02:00
|
|
|
quassel
|
2020-05-17 17:27:36 +02:00
|
|
|
utillinuxMinimal;
|
2020-06-29 03:27:02 +02:00
|
|
|
|
|
|
|
haskellPackages = (nixpkgs.haskellPackages.override {
|
|
|
|
overrides = (import ./haskell_overlay { pkgs = nixpkgs; });
|
|
|
|
});
|
2020-07-05 21:08:36 +02:00
|
|
|
|
|
|
|
gradle_6 = (nixpkgs.gradleGen.override {
|
|
|
|
java = nixpkgs.jdk11;
|
|
|
|
jdk = nixpkgs.jdk11;
|
|
|
|
}).gradleGen rec {
|
|
|
|
name = "gradle-6.5.1";
|
|
|
|
nativeVersion = "0.22-milestone-3";
|
|
|
|
|
|
|
|
src = builtins.fetchurl {
|
|
|
|
url = "https://services.gradle.org/distributions/${name}-bin.zip";
|
|
|
|
sha256 = "0jmmipjh4fbsn92zpifa5cqg5ws2a4ha0s4jzqhrg4zs542x79sh";
|
|
|
|
};
|
|
|
|
};
|
2019-12-09 03:52:41 +01:00
|
|
|
};
|
|
|
|
|
2020-05-31 22:58:17 +02:00
|
|
|
in exposed.lib.fix(self: exposed // {
|
|
|
|
callPackage = nixpkgs.lib.callPackageWith self;
|
2019-12-27 18:12:32 +01:00
|
|
|
|
2019-12-09 03:52:41 +01:00
|
|
|
# Provide the source code of nixpkgs, but do not provide an imported
|
|
|
|
# version of it.
|
2020-05-26 12:52:30 +02:00
|
|
|
inherit nixpkgsCommit nixpkgsSrc stableNixpkgsSrc;
|
2019-12-27 18:12:32 +01:00
|
|
|
|
|
|
|
# Packages to be overridden
|
|
|
|
originals = {
|
2020-07-17 01:26:48 +02:00
|
|
|
inherit (nixpkgs) gtest openldap go grpc notmuch rr;
|
2020-05-26 02:49:01 +02:00
|
|
|
inherit (stableNixpkgs) git;
|
2020-04-04 03:26:55 +02:00
|
|
|
ffmpeg = nixpkgs.ffmpeg-full;
|
2019-12-27 18:12:32 +01:00
|
|
|
};
|
2020-01-04 16:08:49 +01:00
|
|
|
|
2020-05-22 23:57:46 +02:00
|
|
|
# Use LLVM 10
|
|
|
|
llvmPackages = nixpkgs.llvmPackages_10;
|
2020-05-31 22:58:17 +02:00
|
|
|
clangStdenv = nixpkgs.llvmPackages_10.stdenv;
|
|
|
|
stdenv = nixpkgs.llvmPackages_10.stdenv;
|
2020-05-22 23:57:46 +02:00
|
|
|
|
2020-08-17 11:58:57 +02:00
|
|
|
# Provide Emacs 27
|
|
|
|
#
|
|
|
|
# The assert exists because the name of the attribute is unversioned
|
|
|
|
# (which is different from previous versions).
|
|
|
|
emacs27 = assert ((exposed.lib.versions.major nixpkgs.emacs.version) == "27");
|
2020-08-18 23:53:05 +02:00
|
|
|
nixpkgs.emacs.overrideAttrs(old: {
|
|
|
|
configureFlags = old.configureFlags ++ [ "--with-cairo" ];
|
|
|
|
});
|
|
|
|
|
2020-08-17 11:58:57 +02:00
|
|
|
emacs27-nox = assert ((exposed.lib.versions.major nixpkgs.emacs.version) == "27");
|
|
|
|
nixpkgs.emacs-nox;
|
|
|
|
|
2020-06-16 23:03:02 +02:00
|
|
|
# The Go authors have released a version of Go (in alpha) that has a
|
|
|
|
# type system. This makes it available, specifically for use with
|
|
|
|
# //nix/buildTypedGo.
|
2020-06-18 01:54:12 +02:00
|
|
|
go = nixpkgs.go.overrideAttrs(old: {
|
2020-06-16 23:03:02 +02:00
|
|
|
version = "dev-go2go";
|
|
|
|
doCheck = false;
|
|
|
|
patches = []; # they all don't apply and are mostly about Darwin crap
|
|
|
|
|
|
|
|
src = nixpkgs.fetchgit {
|
|
|
|
url = "https://go.googlesource.com/go";
|
|
|
|
# You might think these hashes are trivial to update. It's just
|
|
|
|
# a branch in a git repository, right?
|
|
|
|
#
|
|
|
|
# Well, think again. Somehow I managed to get no fewer than 3
|
|
|
|
# (!) different commit hashes for the same branch by cloning
|
|
|
|
# this repository thrice. Only the third one (which you, the
|
|
|
|
# reader, can find below for your reading pleasure) actually
|
|
|
|
# gave me `go tool go2go`.
|
|
|
|
rev = "ad307489d41133f32c779cfa1b0db4a852ace047";
|
|
|
|
leaveDotGit = true;
|
2020-06-18 02:27:32 +02:00
|
|
|
sha256 = "1nxmqdlyfx7w3g5vhjfq24yrc9hwpsa2mjv58xrmhh8vvy50ziqq";
|
2020-06-16 23:03:02 +02:00
|
|
|
|
|
|
|
postFetch = ''
|
|
|
|
cd $out
|
2020-06-18 02:27:32 +02:00
|
|
|
${nixpkgs.git}/bin/git log -n 1 "--format=format:devel +%H %cd" HEAD > VERSION
|
2020-06-16 23:03:02 +02:00
|
|
|
rm -rf .git
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
});
|
|
|
|
|
2020-01-04 16:08:49 +01:00
|
|
|
# Make NixOS available
|
2020-06-07 20:28:59 +02:00
|
|
|
nixos = import "${nixpkgsSrc}/nixos";
|
2020-05-31 22:58:17 +02:00
|
|
|
})
|