Commit graph

16 commits

Author SHA1 Message Date
sterni
02566cdcfb feat(nix/buildLisp): add ecl
Adds ECL as a second supported implementation, specifically a statically
linked ECL. This is interesting because we can create statically linked
binaries, but has a few drawbacks which doesn't make it generally
useful:

* Loading things is very slow: The statically linked ECL only has byte
  compilation available, so when we do load things or use the REPL it is
  significantly worse than with e. g. SBCL.

* We can't load shared objects via the FFI since ECL's dffi is not
  available when linked statically. This means that as it stands, we
  can't build a statically linked //web/panettone for example.

Since ECL is quite slow anyways, I think these drawbacks are worth it
since the biggest reason for using ECL would be to get a statically
linked binary. If we change our minds, it shouldn't be too hard to
provide ecl-static and ecl-dynamic as separate implementations.

ECL is LGPL and some libraries it uses as part of its runtime are as
well. I've outlined in the ecl-static overlay why this should be of no
concern in the context of depot even though we are statically linking.

Currently everything is building except projects that are using cffi to
load shared libaries which have gotten an appropriate
`badImplementations` entry. To get the rest building the following
changes were made:

* Anywhere a dependency on UIOP is expressed as `bundled "uiop"` we now
  use `bundled "asdf"` for all implementations except SBCL. From my
  testing, SBCL seems to be the only implementation to support using
  `(require 'uiop)` to only load the UIOP package. Where both a
  dependency on ASDF and UIOP exists, we just delete the UIOP one.
  `(require 'asdf)` always causes UIOP to be available.

* Where appropriate only conditionally compile SBCL-specific code and
  if any build the corresponding files for ECL.

* //lisp/klatre: Use the standard condition parse-error for all
  implementations except SBCL in try-parse-integer.

* //3p/lisp/ironclad: disable SBCL assembly optimization hack for all
  other platforms as it may interfere with compilation.

* //3p/lisp/trivial-mimes: prevent call to asdf function by substituting
  it out of the source since it always errors out in ECL and we hardcode
  the correct path elsewhere anyways.

As it stands ECL still suffers from a very weird problem which happens
when compiling postmodern and moptilities:
https://gitlab.com/embeddable-common-lisp/ecl/-/issues/651

Change-Id: I0285924f92ac154126b4c42145073c3fb33702ed
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3297
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: eta <tvl@eta.st>
2021-08-24 22:00:15 +00:00
sterni
1b731abe55 chore(3p): Bump NixOS channels to 2021-08-24
Change-Id: I727660fda72e4274304d56d2d4bd35c3164ae73c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3402
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: grfn <grfn@gws.fyi>
2021-08-24 19:23:59 +00:00
sterni
559ee9467b chore(3p): bump NixOS channels to 2020-08-18
Wanted to port my emacs config to depot, but missing a dependency from
the channel. Adjustments:

* Downgrade grfn's Kernel to 5.10: The ck1 patch is not yet available
  for 5.13 unfortunately and the 5.12 set has been removed upstream.

Change-Id: Ifaf315427bda2af590549ca0abec02a79f19a3ec
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3375
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: grfn <grfn@gws.fyi>
2021-08-24 12:13:06 +00:00
sterni
cd39bebbda chore(3p): bump NixOS channels to 2021-08-16
Change-Id: I29936f5fb66387be5897339a7c9a26a9de9b8582
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3366
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-08-16 13:43:50 +00:00
Vincent Ambo
fc94800227 feat(3p/nixpkgs): Expose nixpkgs commit hashes
This makes it possible to use the hashes in things that should, for
example, be keyed on the nixpkgs version (such as cache-folders for
Nixery).

Change-Id: I500d13a4d96b0c28fcf6ca383d2a86515565da36
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3341
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-08-12 13:45:36 +00:00
sterni
24e43032bb chore(3p): bump NixOS channels to 2021-08-11
This channel version contains a couple of ECL fixes which I'm after.

Change-Id: Id9f5dba2da99cfbd673417b72a55c56f9a55d875
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3299
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-08-11 09:08:22 +00:00
Vincent Ambo
e7de89e06a chore(3p/nixpkgs): Bump nixpkgs channels to 2021-08-04
I used //tools/depot-nixpkgs-update for this - thanks again, sterni!

Included fixes:

* temporary workaround for building notmuch python package, fixed in
  upstream already (but channel hasn't advanced there)
* Disable fprintd in grfn.system.yeren, as the fprintd-tod package
  currently has a version mismatch in nixpkgs

Co-authored-by: Griffin Smith <grfn@gws.fyi>
Change-Id: If6d71b08ace9db57daadfe3b69b9cd4aec6a5a4e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3274
Reviewed-by: grfn <grfn@gws.fyi>
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2021-08-08 01:28:36 +00:00
sterni
6b88df04c1 chore(3p/nixpkgs): update channels to 2021-07-25
* 3p/buzz: bump to latest master (1.6.0)

* 3p/emacs/explain-pause-mode: adjust to package-build update
  MELPA's package build now cares about git revisions, but calling VC
  commands in a nix build is usually a bad idea. Thus upstream nixpkgs
  passes `$commit` to the `buildPhase` and otherwise fails with an
  error message that doesn't really point to the issue. Upstream change:
  9140d4b06f

* 3p/overlays/emacs: udpate to 2021-07-25 to support the package-build
  update. Without this emacsPackages.xelb (for tazjin's exwm) would fail.

Change-Id: I7cd782fe7d66ed4ea78c529b79fe761d921f46a8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3253
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: grfn <grfn@gws.fyi>
2021-07-28 12:10:59 +00:00
sterni
02aaed54f6 chore(3p): bump unstable channel to 2021-07-03
Didn't bother to update the stable channel as it is unused currently.

Changes required:

* tazjin/frog, grfn/modules/obs:
  Remove obs-v4l2sink as it has been integrated into upstream OBS and
  the package removed from nixpkgs subsequently (at least according to
  the `builtins.throw`-message).

Change-Id: I4335ed060eef2c4ff8ac55a68d894bcc3d8ef4a3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3243
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Reviewed-by: tazjin <mail@tazj.in>
2021-07-16 13:57:04 +00:00
Vincent Ambo
1a4465d7d3 chore(3p/nixpkgs): Bump unstable channel to 2021-06-14
Included fixes:

* 3p/apereo-cas: Don't use stdenv.lib
* grfn/system: Bump Linux to 5.12 (5.11 is gone)

Change-Id: Ie32d476e659ba482418d4035333c2797a7dbd106
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3211
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-14 21:47:57 +00:00
Vincent Ambo
b4ae6893e4 chore(3p/nixpkgs): Bump channels to 2021-06-05
Includes the following depot changes & fixes:

* stable moves to NixOS 21.05
* stable isn't used anymore (but we'll keep the mechanism)
* haskell overlay's `random` override is removed (YAY!)
* grfn/iso: Switch to regular kernel rather than
  latest kernel, as latest kernel is currently marked as broken due to zfs
* grfn/home: Use julia_16-bin temporarily
  julia 1.5 (current julia-stable, source built release in nixpkgs)
  doesn't pass its own test suite. Julia 1.6 doesn't have a source built
  package in nixpkgs yet, so julia_16-bin appears to be the only working
  julia derivation currently.
* tazjin/tverskoy: Use zfs unstable, as stable zfs doesn't work with the
  latest kernel

Co-Authored-By: Griffin Smith <grfn@gws.fyi>
Co-Authored-By: sterni <sternenseemann@systemli.org>
Change-Id: I6f2e3d9f75077e4755de6bde9104d44b584cbe4c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3174
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: grfn <grfn@gws.fyi>
2021-06-05 16:54:18 +00:00
Vincent Ambo
65be8f20e0 chore(nixpkgs): Bump channels to 2021-05-25
* users/grfn/system/home/yeren: remove obsolete awscli2 overrides

* ops: make new isSystemUser || isNormalUser assertion happy

* users/grfn/system/system/mugwump: make buildkite agents system users

* users/tazjin/nixos/camden: set isSystemUser = true for git

* users/tazjin/emacs: Remove missing & broken packages

* third_party/openldap: remove, as the argon2 module is now enabled upstream

* third_party/gerrit_plugins: Pinned new unstable hashes

* third_party/nix, third_party/grpc: Disabled CI as these are broken

* third_party/overlays/emacs: Bumped version to stay in sync with channel

* third_party/buzz: Update LIBCLANG_PATH to reference libclang.lib,
  since libclang's default output no longer contains libclang.so

* users/grfn/system/home: Install julia-stable instead of julia (which
  aliases to julia-lts), as the latter depends on an insecure version of
  libgit

Change-Id: Iff33b0ecb0ef07a82d1de35e23c40d2f4bf0f8ed
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3001
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: grfn <grfn@gws.fyi>
2021-05-25 17:09:28 +00:00
Vincent Ambo
cf5b88173b feat(3p/overlays): Add bleeding-edge Emacs overlay
This adds adisbladis' Emacs overlay, which makes bleeding-edge
functionality such as native compilation of Elisp available.

Change-Id: I29861cb4da37bf8bf7fdb6fba5f2525c7a024356
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3002
Reviewed-by: adisbladis <adisbladis@gmail.com>
Tested-by: BuildkiteCI
2021-04-13 20:26:02 +00:00
Vincent Ambo
7deabb8c8d chore(3p): Bump channels to 2021-04-09
Fixes included:

* exposed gtest in the package set, required for protobuf
* pinned SBCL to version 2.0.8: The channel moved it to >2.1, and a
  bunch of warnings seemed to be killing our builds - we should
  investigate this later.
* removed kernel patches from //users/tazjin/frog: this machine is
  currently out of service anyways, not worth fixing while it's offline
* removed steam & lutris from frog (they're currently broken)
* removed Haskell overrides for hedgehog-classes & hgeometry-combinatorial
* use gRPC sources from upstream and inject Abseil via Nix instead
* fix for renamed grpc import in //third_party/nix
* use libfprint-tod from upstream nixpkgs in glittershark/yeren and
  delete glittershark/pkgs/fprintd entirely, since all of the patches used
  there are available and working from upstream now (and stopped working
  here after the bump)

Change-Id: Ia90e6f774f7b88bc9e60d28351b900ca43ee2695
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2901
Reviewed-by: glittershark <grfn@gws.fyi>
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: lukegb <lukegb@tvl.fyi>
Tested-by: BuildkiteCI
2021-04-11 22:13:32 +00:00
Vincent Ambo
6c4ece917d feat(3p/nixpkgs): Plumb through externalArgs.nixpkgsBisectPath
This lets the import of the depot root accept an additional argument
called `externalArgs`, which can be used to pass additional arguments
into a depot package set.

This is used in //third_party/nixpkgs for replacing the source of the
nixos-unstable channel with a path. With this we can bisect the
nixpkgs used in third_party easily.

Change-Id: I4f65eb3d6b521ed9f437649b7b068f1e6ab8210f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2925
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-04-11 11:08:49 +00:00
Vincent Ambo
473604f567 refactor: Move nixpkgs attribute to third_party.nixpkgs
Please read b/108 to make sense of this.

This gets rid of the explicit list of exposed packages from nixpkgs,
and instead makes the entire package set available at
`third_party.nixpkgs`.

To accommodate this, a LOT of things have to be very slightly shuffled
around. Some of this was done in already submitted CLs, but this
change is unfortunately still quite noisy.

Pay extra attention to:

* overlay-like functionality that was partially moved to actual
  overlays (partially as in, the minimum required to get a green
  build)

* modified uses of the package set path, esp. in NixOS systems

Special notes:

* xanthous has been disabled in CI because of issues with the Haskell
  overlay
* //third_party/nix has been disabled because of other unclear
  dependency issues

Both of these will be tackled in a followup CL.

Change-Id: I2f9c60a4d275fdb5209264be0addfd7e06c53118
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2910
Reviewed-by: glittershark <grfn@gws.fyi>
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2021-04-10 21:18:55 +00:00