Commit graph

852 commits

Author SHA1 Message Date
sterni
04f7cc3880 fix(3p): resolve linker issues with clang-compiled C++ packages
The point where this broke is likely when llvmPackages_11.stdenv started
respecting stdenv.hostPlatform.linker and thus using GNU binutils'
ld.bfd for linking. That linker can't deal with clang's C++ ABI.

To fix this we introduce a modified version of llvmPackages_11.stdenv
which uses llvmPackages_11.bintools for linking purposes (I also aim to
upstream this in some form, but am not sure about the details atm, so
we'll just do this in the tvl overlay for now). This is the precondition
for getting our C++ packages in //third_party to work
again. Additionally the following fixes were necessary:

* abseil-cpp needed to be updated (by overriding the version from
  nixpkgs for now, since I can't update the subtree on my own) to
  fulfill grpc's requirements (grpc 1.41.0 needs abseil-cpp LTS
  20210324).

* gtest needs a patch from nixpkgs which fixes the path to its include
  directory for CMake.

* We need to build re2 with clang as well, otherwise linking will fail.

Fixes b/132.

Change-Id: I7b64579fe96451547babe070fd35db398581e49d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3701
Tested-by: BuildkiteCI
Reviewed-by: lukegb <lukegb@tvl.fyi>
Reviewed-by: tazjin <mail@tazj.in>
2021-10-10 10:03:03 +00:00
sterni
c0ccb6625c chore(3p): bump NixOS channels to 2021-10-04
* //third_party/overlays/tvl: sbcl 2.1.8 -> 2.1.9

Change-Id: I6817a641d2926af9cd38e90138840e761e5c1581
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3686
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: grfn <grfn@gws.fyi>
2021-10-05 12:10:18 +00:00
sterni
8f2714d4cc chore(3p): bump NixOS unstable channel to 2021-09-30
depot-nixpkgs-update did not update the unstable channel properly, since
nixos.org still has caching issues: The channel has updated (e. g. the
nixos-unstable branch in nixpkgs), but channels.nixos.org is still
pointing to a stale version. See:

* https://github.com/NixOS/nixpkgs/issues/140026
* https://github.com/NixOS/nixos-org-configurations/issues/169

I've updated the channel manually here, since that version of nixpkgs
has a fix for bqn-mode I'm interested in.

Hopefully this problem is sorted out soon since depot-nixpkgs-update
relies on the HTTP channel “API” to obtain the date of the channel (as
opposed to the date of the commit).

Change-Id: Iae55e4a7f77b479e08dbe9eb82752ecc4f470d81
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3656
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-09-30 16:43:37 +00:00
sterni
82ef52a188 chore(3p): bump NixOS channels to 2021-09-{27,30}
* awscli2 now builds again upstream

Change-Id: Iabffe8251e5839a49f217c7d351c8c712b5ddbb0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3653
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-09-30 12:33:05 +00:00
Vincent Ambo
24fca8c910 feat(3p/overlays): Bump emacs overlay to 2021-09-27
Change-Id: If0e43f62b6f6adec32efddcad9c1a887d3ef5ece
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3646
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-09-27 20:30:52 +00:00
Vincent Ambo
e5c3b9d391 feat(web/cgit): Use new logo in cgit page
Change-Id: I5212b235aa2a72c90e4795dce4c9fccfa00ddec3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3629
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-09-27 15:41:29 +00:00
Vincent Ambo
48d5724dab chore(3p/nixpkgs): Update to 2021-09-24
I tried to remove the awscli2 override, the build no longer fails but
just hangs infinitely on unstable now, so it's staying in for the time
being.

Change-Id: I871b0f5bffe0edf4db815ca4df2c3f142bc9e13d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3630
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-09-24 15:27:52 +00:00
Vincent Ambo
87c141d3d7 chore(3p/nixpkgs): Bump channels to 2021-09-20
Included fixes:

* grfn/mugwump: removed superfluous Buildkite agent user
* tazjin/camden: Disabled bitlbee (user config is broken)
* grfn/home/vim: vimUtils expects a `pname`
* 3p/nixpkgs: Pick awscli2 from stable channel

Change-Id: I64ed726b3350f75c7a8a0e6552bcf1d8d9ba7d46
2021-09-21 14:45:11 +03:00
Vincent Ambo
43b1791ec6 chore(3p/git): Unvendor git and track patches instead
This was vendored a long time ago under the expectation that keeping
it in sync with cgit would be easier this way, but it has proven not
to be a big issue.

On the other hand, a vendored copy of git is an annoying maintenance
burden. It is much easier to rebase the single (dottime) patch that we
have.

This removes the vendored copy of git and instead passes the git
source code to cgit via `pkgs.srcOnly`, which includes the applied
patch so that cgit can continue rendering dottime.

Change-Id: If31f62dea7ce688fd1b9050204e9378019775f2b
2021-09-21 14:29:35 +03:00
Christian Hesse
2d8e7dc9d9 chore(3p/cgit): git: update to v2.32.0
Update to git version v2.32.0, this requires changes for these
upstream commits:

* 47957485b3b731a7860e0554d2bd12c0dce1c75a
  tree.h API: simplify read_tree_recursive() signature

Signed-off-by: Christian Hesse <mail@eworm.de>
Change-Id: I9c37205af2e67d03f9cdd3d39e4fbd611bfa7288
2021-09-21 14:14:08 +03:00
Christian Hesse
b0926aa53d chore(3p/cgit): git: update to v2.31.1
Update to git version v2.31.1, no additional changes required.

Signed-off-by: Christian Hesse <mail@eworm.de>
Change-Id: I3e0312e59b065ec39906d00ffa8e762f82b7305f
2021-09-21 14:14:08 +03:00
Christian Hesse
3d5020a5d8 fix(3p/cgit): md2html: use proper formatting for hr
This addressed a non-existent background image and made the element
invisible. Drop the style and use something sane.

Signed-off-by: Christian Hesse <mail@eworm.de>
Change-Id: I4f94466742008b9cdb231358199074de6e4424ee
2021-09-21 14:14:07 +03:00
Christian Hesse
bf4cfeb477 chore(3p/cgit): git: update to v2.31.0
Update to git version v2.31.0, this requires changes for these
upstream commits:

* 36a317929b8f0c67d77d54235f2d20751c576cbb
  refs: switch peel_ref() to peel_iterated_oid()

Signed-off-by: Christian Hesse <mail@eworm.de>
Change-Id: Idb3abf22eb68ba5219f22075811884bbce786c3b
2021-09-21 14:14:07 +03:00
Christian Hesse
847d037a02 chore(3p/cgit): git: update to v2.30.1
Update to git version v2.30.1, no additional changes required.

Signed-off-by: Christian Hesse <mail@eworm.de>
Change-Id: I9c8a572fcef2dbb3164ecc397dc071240eba8480
2021-09-21 14:14:07 +03:00
Todd Zullinger
35630558ff test(3p/cgit): t0107: support older and/or non-GNU tar
The untar tests for various compression algorithms use shortcut options
from GNU tar to handle decompression.  These options may not be provided
by non-GNU tar nor even by slightly older GNU tar versions which ship on
many systems.

An example of the latter case is the --zstd option.  This was added in
GNU tar-1.32 (2019-02-23)¹.  This version of tar is not provided by
CentOS/RHEL, in particular.  In Debian, --zstd has been backported to
the tar-1.30 release.

Avoid the requirement on any specific implementations or versions of tar
by piping decompressed output to tar.  This is compatible with older GNU
tar releases as well as tar implementations from other vendors.  (It may
also be a slight benefit that this more closely matches what the
snapshot creation code does.)

¹ Technically, the --zstd option was first released in tar-1.31
  (2019-01-02), but this release was very short-lived and is no longer
  listed on the GNU Tar release page.

Signed-off-by: Todd Zullinger <tmz@pobox.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Change-Id: Ib65412cd1d23312ddd4cf840c09efc32512d3122
2021-09-21 14:14:05 +03:00
Jason A. Donenfeld
44996c4461 refactor(3p/cgit): md2html: use sane_lists extension
This allows for cleaner nesting semantics and matches github more
closely.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Change-Id: I93dacc0c276fefb28d67379ef38b8647c584244b
2021-09-21 14:10:17 +03:00
Christian Hesse
86f7901533 chore(3p/cgit): git: update to v2.30.0
Update to git version v2.30.0, this requires changes for these
upstream commits:

* 88894aaeeae92e8cb41143cc2e045f50289dc790
  blame: simplify 'setup_scoreboard' interface

* 1fbfdf556f2abc708183caca53ae4e2881b46ae2
  banned.h: mark non-reentrant gmtime, etc as banned

Signed-off-by: Christian Hesse <mail@eworm.de>
Change-Id: I6076ef250102010b601c92e9ea5bab2061b77006
2021-09-21 14:10:15 +03:00
Christian Hesse
eab788e961 chore(3p/cgit): git: update to v2.29.2
Update to git version v2.29.2.

No changes required.

Signed-off-by: Christian Hesse <mail@eworm.de>
Change-Id: I8a3c12fdaa492ede79a750eea4b78f750dbfa18f
2021-09-21 14:10:13 +03:00
Christian Hesse
67b44822b3 chore(3p/cgit): git: update to v2.29.1
Update to git version v2.29.1. No functional change, but we want latest
and greated version number, no? 😜

Signed-off-by: Christian Hesse <mail@eworm.de>
Change-Id: Ie890ace2e88dca0d7defb1cac5a2723699f794db
2021-09-21 14:10:06 +03:00
Vincent Ambo
766677748d fix(3p/overlays/tvl): Add fix for Steam web view issue
See https://github.com/NixOS/nixpkgs/issues/137279

Change-Id: Id47f87396ad5e46c98080c7910d337d2643bcbd5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3604
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-09-20 19:56:35 +00:00
Adrián Medraño Calvo
c6ad2b638e refactor(3p/exwm): Remove `exwm-input--skip-buffer-list-update'
* exwm-input.el: (exwm-input--on-buffer-list-update): Stop
	checking `exwm-input--skip-buffer-list-update'; it's no longer
	needed now that we keep track of the last selected window and
	buffer.
	(exwm-input--skip-buffer-list-update): Remove variable.

	* exwm-manage.el (exwm-manage--manage-window): Remove binding of
	`exwm-input--skip-buffer-list-update'.

Imported from https://github.com/ch11ng/exwm/pull/737

Change-Id: Iacbdb8b607a82352e5b55509b0aba93f1d87a9f2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3562
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-09-16 11:33:42 +00:00
Qiang Fang
e74f12f85b refactor(3p/exwm): Improve detection of focus changes
* exwm-input.el: (exwm-input--on-buffer-list-update): Keep track
	of last selected window and buffer, update focus only when any
	of those changes.
	(exwm-input--update-focus-defer): Add commentary.
	(exwm-input--update-focus-window-buffer): Add
	variable.

Imported from https://github.com/ch11ng/exwm/pull/737

Copyright-paperwork-exempt: yes
Co-Author: Adrián Medraño Calvo <adrian@medranocalvo.com>
Change-Id: I3e53bcf45f04d0f9a88b757dffefe6de20daadfb
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3561
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-09-16 11:33:42 +00:00
Vincent Ambo
6cfee7ef5a chore(3p/josh): Bump version to latest master
Change-Id: I01b58653a9d0067deb9644ecfa4d4b3bd75185a9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3557
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-09-16 01:19:16 +00:00
Matt Beshara
2be5ed1d4a fix(3p/exwm): Use hash table to cache ‘exwm-workspace--client-p’
Commit imported from https://github.com/ch11ng/exwm/pull/848

Change-Id: I2b5509649b6933b52ed5df7f7fad7f3720f5facd
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3560
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-09-16 01:18:59 +00:00
Vincent Ambo
d0f7c85eb6 chore(3p/overlays): Override EXWM sources with tree from depot
Change-Id: I6047ab634deb2f019bcdc9a76a2194997fc84b29
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3559
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-09-16 01:18:59 +00:00
Vincent Ambo
cefff2ca25 chore(3p/exwm): Subtree EXWM ... again
Upstream EXWM is now sort-of unmaintained[0], but some important PRs
are pending[1] which I would like to absorb here somehow.

[0]: https://github.com/ch11ng/exwm/issues/845
[1]: https://github.com/ch11ng/exwm/pull/848

git-subtree-dir: third_party/exwm
git-subtree-mainline: 7894d7e178
git-subtree-split: 0368127976
Change-Id: I078358c0ea1d2bac99111748ce9c137d2804ac4e
2021-09-15 22:35:39 +03:00
Vincent Ambo
7894d7e178 feat(3p/cgit): Highlight cheddar callout in about views
Change-Id: Ica055ab621608ff78dbbf9ea9a2c9d1cdf2ff21e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3556
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-09-15 13:53:28 +00:00
sterni
7f31562acf feat(3p/lisp/mime4cl): search for first (default) mime text part
Adds a simple generic function find-mime-text-part which returns the
first suitable text/* part in any MIME part it is given.

Has no meaningful alternatives handling at the moment: It will pick the
first text part and doesn't allow specifying a preference.

Change-Id: Id9b113b3ef3ca1a575ce8f3582a4f85e30edfb43
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3379
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-09-12 21:39:49 +00:00
sterni
a63057414d chore(3p): bump NixOS channels to 2021-09-11
* sbcl: 2.1.2 -> 2.1.8

Change-Id: I3556d1f4c41fdaa40017cfe21c389ec121127b0c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3532
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-09-11 16:00:12 +00:00
sterni
c414ae6e31 chore(3p): bump NixOS channels to 2021-09-06
Change-Id: Ib1a638c47d848f501ee90a47885baa6ed1a40807
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3493
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-09-06 12:58:19 +00:00
sterni
56d2b08955 refactor(3p/lisp/closure-html): don't compile in asd file
This seems to be unnecessary: It doesn't muffle any SBCL warnings that
affect a current version and does nothing special otherwise.

Change-Id: I36efde761fc95d9df735f29d2eb369c6b61853c9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3486
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-09-02 15:57:03 +00:00
sterni
761f9ce384 docs(3p/lisp/closure-common): mention need for ASDF, feature macros
Luckily we don't need to deal with this mess since all our
implementations work similarly wrt streams and “wide” characters.

Change-Id: I3ccc606a59c42791f2591d752673c867d848a332
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3485
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-09-02 15:57:03 +00:00
sterni
8f6955176f feat(3p/lisp/mime4cl): build using buildLisp
The following changes are required to make mime4cl build:

* file-position doesn't like to be called with NIL as the position
  argument, so we have to make sure to not do that in
  stream-file-position. My workaround is a bit clunky, but works.

* Tests discover the sample file via relative path resolution. This
  doesn't work when they are imported into the nix store as individual
  files. Instead we make use of the fact that DEFVAR is a no-op if the
  variable is already defined and inject a file via the nix build that
  sets the relevant ones. For the path to sample1.msg, we need to create
  a new variable.

Change-Id: I74eeda7bf2c2a4f64cc2b90e72081513ec3285d5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3270
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-09-01 22:57:17 +00:00
sterni
901364869c chore(3p/lisp): import mime4cl source tarball
Used http://wcp.sdf-eu.org/software/mime4cl-20150207T211851.tbz (sha256
5a914669bba7561efe59a4fd0817204c07ad2add98b03ae206ef185ac04affb3).
Importing seems sensible since there's no upstream repo nor has their
been a release since 2015.

This is just an import commit, so the changes made to make it build are
more discoverable as their own commit.

Change-Id: I2ff28c3c7433abdf7857204bc89eaf9edc0b1cbc
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3378
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-09-01 22:57:17 +00:00
sterni
de0f0164d2 feat(3p/lisp/npg): build using buildLisp
Change-Id: I9f987dc25d77a829cc0716cbe4cb1b91c36de861
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3269
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-09-01 22:57:17 +00:00
sterni
8e45aace13 chore(3p/lisp): import npg source tarball
Used http://wcp.sdf-eu.org/software/npg-20150517T144652.tbz (sha256
42e88f6067128fbdb3a3d578371c9b0ee2a34f1d36daf80be8a520094132d828).
There's no upstream repository nor a release since 2015, so importing
seems to make a lot of sense.

Since we can't subtree making any depot-related changes in a separate CL
-- this is only the source import.

Change-Id: I64c984ca0a84b9e48c6f496577ffccce1d7bdceb
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3377
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-09-01 22:57:17 +00:00
sterni
2e08324484 feat(3p/lisp/sclf): build using buildLisp
Adding the default.nix is quite straightforward, however we have to make
today's SBCL happy: due to package locking it no longer likes sclf using
an sb-impl internal constant for some reason. This is however a good
opportunity to clean up the stat-*-time code: It converted the times in
an implementation specific way even though time.lisp does provide a
generic way to convert between unix and universal time. Note that the
updated ASDF file is untested, but should be a trivial enough change.

Change-Id: If193bf830ac704cc53e0855d8e9fff2b5a5ef291
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3268
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-09-01 22:57:17 +00:00
sterni
a5dbd0f5d9 chore(3p/lisp): import sclf source tarball
Used http://wcp.sdf-eu.org/software/sclf-20150207T213551.tbz (sha256
a231aeecdb9e87c72642292a1e083fffb33e69ec1d34e667326c6c35b8bcc794).
There's no upstream repository nor a release since 2015, so importing
seems to make a lot of sense.

Since we can't subtree making any depot-related changes in a separate CL
to make them more discoverable -- this is only the source import.

Change-Id: Ia51a7f4029dba3abd1eee4eeebcf99aca5c5ba4c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3376
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-09-01 22:57:17 +00:00
sterni
70e5783e22 feat(3p/lisp/closure-html): init at 2017-04-19
This one requires a bit of jumping through hoops. Patching the dtd /
catalog lookup is quite straightforward and similar to cxml, but the
CLOSURE-HTML:*html-dtd* variable gives us a bit of trouble: It is
defined quite late in `html-parser.lisp`, but files that need to be
built first already reference it. SBCL has apparently decided to be
particular about this and emits a `WARNING` (!) condition for this
which is also worthy of `failure-p` of `compile-file` being true,
so that `buildLisp` will abort compilation. We workaround this issue
by injecting an extra source file which `defvar`s the desired symbol.

A similar issue exists with `dump-dtd` which references
`CL-USER:*HTML-DTD*` for some reason. Since this is a helper intended
for development (?) and not exported we just throw it away via a
patch.

Change-Id: Ic0f92815a21f3793925c49a70a72f4a86791efe4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3263
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-09-01 22:57:17 +00:00
sterni
281c09fae7 feat(3p/lisp/closure-common): init at 2018-09-09
Change-Id: Ieec5470fe8fd54851b982c7a380185a3faeaa067
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3258
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-09-01 22:57:17 +00:00
Vincent Ambo
c38873e2e4 fix(3p/overlays): Use notmuch.el from nixpkgs
...  instead of the one from the overlay, which can be out of sync.

This requires the TVL overlay to be applied after the Emacs overlay.

Change-Id: Idac403ea612e334c14b45759dc216699a506678f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3484
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: tazjin <mail@tazj.in>
2021-09-01 12:27:31 +00:00
Vincent Ambo
885b6d9bb8 refactor(3p/notmuch): Simplify setup
The backported fix is no longer required and we can just apply the
patch in the overlay, this makes everything a little easier.

Change-Id: I654a1bb002eef5c578b8e576e133a159bde3f850
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3483
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-09-01 12:27:31 +00:00
Vincent Ambo
0a98d09a93 chore(3p/gerrit): Remove avatar padding patch
In the current config, Gerrit doesn't actually seem to realise that
avatars are not enabled (this changed in 3.4 somehow).

Either way we don't need to maintain this fix since there's an actual
upstream one now: https://gerrit-review.googlesource.com/313982

Change-Id: I7efab7b8fa5e9e38bddae86acd8d8a7852b27bb6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3465
Tested-by: BuildkiteCI
Reviewed-by: lukegb <lukegb@tvl.fyi>
2021-08-31 15:18:01 +00:00
sterni
83c8716afd chore(3p): update NixOS channels to 2021-08-30
This lets us benefit from the recent OpenSSL security-related
update [1]. Since nixos-unstable is still stuck, we temporarily
use nixos-unstable-small as our unstable channel.

Fixes necessary:

* //users/sterni/nix/char:
  Someone has decided to drop writers.writeC upstream [2],
  so we reimplement it ad-hoc using runCommandCC

[1]: https://www.openssl.org/news/secadv/20210824.txt
[2]: 982f46985e

Change-Id: Id84756e2e370296b7a27e1a3f1744f58f8fe3c47
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3463
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-08-30 17:06:40 +00:00
Vincent Ambo
fe225d48a1 feat(3p/gerrit): Upgrade Gerrit and plugins to v3.4.0
Brings us back to a stable version of Gerrit instead of a random
commit. Note that Gerrit 3.4.1 is out, but due to a bug it can not be
built publicly because it accidentally points at a private
submodule (this is being fixed upstream).

Change-Id: I0376c63a649498cef999dfa99bfccba511f2c8da
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3444
Tested-by: BuildkiteCI
Reviewed-by: lukegb <lukegb@tvl.fyi>
2021-08-28 15:32:53 +00:00
Vincent Ambo
a0be4fd902 chore(3p/nixery): Bump to latest version
Change-Id: Idd5b5646cd9c7e6b97c3957f31f7419258e0097c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3411
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-08-25 13:55:02 +00:00
sterni
d7e70b1d72 feat(nix/buildLisp): add ccl
This adds support for Clozure's CL implementation to buildLisp. This is
quite trivial in comparison to ECL since SBCL and CCL have very similar
in how they work (so much so that CCL also suffers from b/136).

Also the similarities in the code actually added here are striking, so
I'll try to make an effort to reduce the code duplication in the
future.

To fix builds with CCL the following changes were made:

* //3p/lisp/nibbles: The double inclusion of the types.lisp file was
  fixed. CCL doesn't like double definitions and refuses to compile
  otherwise.

* //3p/lisp/physical-quantities: Update to a new bug fix release which
  contains a compilation fix for CCL.

* //3p/lisp/routes: apply a patch fixing the build which was previously
  failing due to a double definition.

* //3p/lisp/usocket: only depend on sb-bsd-sockets for SBCL and ECL, the
  latter of which seems to have a SBCL compatible implementation of the
  package.

* Conditionally include a few CCL-specific source files and add
  `badImplementation` entries for the remaining failures which are
  //fun/gemma (to be expected) and //web/panettone which fails with an
  incredibly vague message.

Change-Id: I666efdc39a0f16ee1bb6e23225784c709b04e740
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3350
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-08-24 22:00:15 +00:00
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
Vincent Ambo
708fba53c3 fix(3p/gerrit): Fix hash mismatch in dependency blob
Change-Id: I8c3392e6b524b3868013df91fe5a7d3094ee757c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3409
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2021-08-24 21:58:24 +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