This bumps the 6.1.x branch to the official 6.1.8 release. Also fixes a
minor bug in the new CMake build (an invalid parameter passed to CMake)
Signed-off-by: Austin Seipp <aseipp@pobox.com>
81d4e65891 automatically bumped
linux_testing to 5.2.0-rc1, but the 5.2 merge window included a new
feature adding compressed headers for compiled kernels into
/proc/kheaders.tar.xz
See https://github.com/torvalds/linux/commit/43d8ce9d65a54846d378545770991e65838981e0
This feature requires 'cpio' to now be included in nativeBuildInputs
since it's used to construct that archive.
This wasn't caught by Hydra since we turn off build of linuxPackages,
but ideally we should at least build the kernel in the future
(linux_testing itself.)
Signed-off-by: Austin Seipp <aseipp@pobox.com>
Notably, this includes non-x86 platform support, eventfd registration
for completion events, "drained" events that must have all outstanding
prior events/further events drained (e.g. for fsync), and linked CQEs
that can express completion ordering dependencies.
Most of these require 5.2-rc1, and linked CQEs require custom patches
from Jens' linux-block tree (that didn't hit the 5.2 merge window,
apparently.)
Signed-off-by: Austin Seipp <aseipp@pobox.com>
This was a testing oversight that came from #61009 -- I forgot to test
the new traceFormat option with older server versions while I was
working on FDB 6.1.
Since trace_format is only available in 6.1+, emitting it
unconditionally caused older versions of the database fail to start,
reporting an error. We simply gate it behind a version check instead,
and assert the format is always XML on older versions. This avoids the
case where the user has an old version, changes traceFormat willingly,
and then is confused by why it didn't work.
As reported by @TimothyKlim in the comments on commit
c55b9236f0. See
https://github.com/NixOS/nixpkgs/commit/c55b9236f0f208a8689e400ddbea52858c923372#r33566132
Signed-off-by: Austin Seipp <aseipp@pobox.com>
This adds a new build of FoundationDB 6.1, using the new, much improved
with CMake build system with fewer patches and rough edges.
Signed-off-by: Austin Seipp <aseipp@pobox.com>
FoundationDB is currently in the process of migrating to CMake, and it
will eventually be the only build system. In preparation for this, split
off the current (somewhat nasty) builder into its own file, and allow
default.nix to be more declarative -- containing only the main supported
versions.
Similarly, a cmake.nix file will be added later.
There is no functional change here (NFC), only an organizational change
(file moves, no hash changes).
Signed-off-by: Austin Seipp <aseipp@pobox.com>
This package has a spurious test failure on PyPy3, which was reported
upstream a while ago:
https://github.com/testing-cabal/funcsigs/issues/10
This is fixed thanks to the included patch, which was authored and is
also used by the Gentoo Python team.
With this, packages like 'pytest' and 'click' now work under PyPy3.
Signed-off-by: Austin Seipp <aseipp@pobox.com>
Souper is a very experimental package that's only useful for for
compiler hackers or people who are doing PhDs. The support/cost ratio of
keeping such a package probably isn't very good.
More importantly, this puts us one step closer to deleting
llvmPackages_4, as this is one of the only two remaining packages using
it. Deleting these older LLVM packages would be far more useful than the
value Souper currently provides.
Current versions of Souper support more recent LLVM versions anyway, so
this expression could be resurrected. But it might be better to place it
in the Nix User Archive (NUR), perhaps.
Signed-off-by: Austin Seipp <aseipp@pobox.com>
Requires a minor tweak to the deadlock detector patch (the file was
renamed in the upstream repo).
bcc now also wants a copy of libbpf, which it doesn't have in the source
release tarball. Clone a copy from GiHub that's synchronized with the
release, and put it in place.
Tested on Linux 5.1 (with bpftrace as well).
Signed-off-by: Austin Seipp <aseipp@pobox.com>
Newer versions of perf in Linux 5.1+ support disassembling and
annotating eBPF programs inside the kernel. In order to do this, it uses
libbfd's support for bpf disassembly. There are two parts: libopcodes
and libbfd.
The 'perf' build system seems to expect libopcodes/libbfd to go "hand in
hand" -- always together, if one or the other is installed. If the build
system detects libbfd is available, then an import of <dis-asm.h> is
performed, but this fails since it wasn't in the buildInput. Fixing this
should be an easy, backwards-compatible change.
Fixes#60891, allowing linuxPackages_testing.perf to build again
(currently kernel version 5.1.0-rc7).
Signed-off-by: Austin Seipp <aseipp@pobox.com>
Update bpftrace to the latest pre-release, with a real version number.
The most notable change now is that bpftrace can use a stable version of
the 'bcc' toolchain in order to build, meaning no more hacks are needed
to clone the source code and fix up the build system, etc. This
simplifies things greatly and removes the old bcc-source patch.
Similarly, we can remove our custom gtests patch (which disabled the
build) by just passing -DBUILD_TESTING=FALSE when running cmake. This
was also added upstream recently.
However, something does still need to be fixed, at a cost: bpftrace
requires the kernel -dev package because it wants both objects and
include directories (some files are only shipped in one or the other).
Therefore, we remove the dependency on linuxHeaders and instead use
kernel.dev as the sole input to the build.
This is both a positive and a negative: the positive is that tools work
without annoying fatal errors, and that the bpf toolchain is
synchronized to the linuxPackages.kernel derivation it was built
against. The downside is that the .dev expression is much heavier as a
dependency, so bpftrace is now closer to 700mb in closure size. (This
especially hurts across kernel upgrades requiring a whole new rebuild,
especially if you have existing nixos generations that won't GC, etc.)
We probably want to slim this down substantially in the future (and
there may be a few ways to do that), but as this will probably also
touch bcc, and as a first cut of the pre-releases, this is probably fine
while we work out other kinks.
Signed-off-by: Austin Seipp <aseipp@pobox.com>
I accidentally got the number of commits wrong in the previous
prerelease version string. This is now fixed.
Generally, this would result in functions like builtins.compareVersions
to give incorrect results, so 'nix-env -u' doesn't work. But I'm
justifying it here, because: most people use it as a library, so the
hash change is all that matters. Plus, I only authored this a week or
so ago in upstream, so this change is fast enough that I think people
will be fine with it and can work around, especially since it's
unreleased in any stable channel.
This also bumps the library to the newest version, which contains some
bugfixes, and now installs the manpages into the $man output for us.
Signed-off-by: Austin Seipp <aseipp@pobox.com>
This reverts commit 1c84236afb.
See the explanation in 564653f91d. The
lack of CAML_LD_LIBRARY_PATH causes regressions in dependent downstream
packages that try to use dllzarith.so directly.
The new HEaP analytic placer for NextPNR uses Eigen for underlying
placement algorithms. Enabling -DUSE_OPENMP passes -fopenmp onto the
compiler, which Eigen picks up automatically with no extra work.
This should result in placer speedups for large designs, e.g. on ECP5
85k chips.
Signed-off-by: Austin Seipp <aseipp@pobox.com>
The version number was actually a single day off -- but otherwise the
commit hash, etc didn't change. arachne-pnr development is effectively
halted, but this is a nice touchup anyway.
Signed-off-by: Austin Seipp <aseipp@pobox.com>
Intel is finally shipping real persistent memory, now that Optane DCPMMs
are available with Cascade Lake processors. Therefore, programmers need
a persistent memory programming API!
In particular, pmdk is needed for QEMU features relating to persistent
memory: by enabling pmdk as a dependency of QEMU, you can proxy NVDIMMs
from the host system to virtual machines with the exact same consistency
guarantees. (In the normal case, these host NVDIMMs can be used as a
backend device for DAX-enabled filesystems, and the persistent memory
given to the virtual machine can be represeted as objects in the
filesystem, allowing granular distribution of non-volatile memory to
clients.)
Signed-off-by: Austin Seipp <aseipp@pobox.com>
- The previous build of Cryptol was broken on GHC 8.6.x, which is now the
new default. That's been fixed with a few upstream patches that will come
up whenever the next release happens.
- There was also a build failure on base-compat, fixed by jailbreaking.
- The previous setup had all-packages.nix creating a new derivation
solely for the purpose of wrapping the Z3 binary. This has been removed:
the wrapper is still added but during the Haskell build itself, so that
all Haskell dependent packages can use the cryptol interpreters too.
- In its place, we use justStaticExecutables, so people using nix-env
and Cryptol users who *don't* need haskell dependencies can get much
smaller closures. Obviously this still implies a second build, but
this build is much more useful than one that merely adds a shell
script to a package that's relatively expensive to compile...
Signed-off-by: Austin Seipp <aseipp@pobox.com>
Souffle has seen some significant upgrades in the past few years and now
has trimmed and replaced several of its more expensive dependencies,
such as boost, openjdk, etc.
Signed-off-by: Austin Seipp <aseipp@pobox.com>
ttyd hasn't seen a release in a while, but has a few useful bugfixes and
features (such as IPv6) that are good to have. It also seems to fix a
few crashes I encountered (likely due to newer openssl/libwebsockets).
So in an untraditional fashion, we'll adopt this with a _pre tag to
ensure it gets bumped correctly later on.
Signed-off-by: Austin Seipp <aseipp@pobox.com>
bcf54ce5bb introduced a treewide change to
use ${stdenv.shell} where-ever possible. However, this broke a script
used by dockerTools, store-path-to-layer.sh, as it did not preserve the
+x mode bit. This meant the file got put into the store as mode 0444,
resulting in a build-time error later on that looked like:
xargs: /nix/store/jixivxhh3c8sncp9xlkc4ls3y5f2mmxh-store-path-to-layer.sh: Permission denied
However, in a twist of fate, bcf54ce5bb
not only introduced this regression but, in this particular instance,
didn't even fix the original bug: the store-path-to-layer.sh script
*still* uses /bin/sh as its shebang line, rather than an absolute path
to stdenv. (Fixing this can be done in a separate commit.)
Signed-off-by: Austin Seipp <aseipp@pobox.com>
SAPIC is bundled with Tamarin and doesn't have separate releases
anymore; add an appropriate 'throw' clause to the alias so people know
where to find it.
Signed-off-by: Austin Seipp <aseipp@pobox.com>
With this, we can drop the old 1.4.0 patches for 8.4 support, since
those are now upstream.
Furthermore, SAPIC Is now bundled inside Tamarin, so we can drop the
external dependency. (This includes a patch that compiles SAPIC to
native code, much like the original, to reduce closure size.)
Signed-off-by: Austin Seipp <aseipp@pobox.com>
This is a backwards compatible change; it mostly puts all the extensions
for postgresql in a common directory to keep them isolated.
It also moves a few things that /were not/ extensions out into other parts of
the filesystem namespace; namely the postgresql_jdbc and psqlodbc libraries
were moved under development/java-modules and development/libraries,
respectively. Because these libraries use the libpq postgresql client drivers,
they're less sensitive to underlying version changes anyway (since the protocol
is relatively stable).
No attributes were renamed or harmed in the creation of this patch.
Signed-off-by: Austin Seipp <aseipp@pobox.com>
This has two main advantages:
- By setting hasSharedObjects = true, buildOcaml will automatically
include a setup-hook.sh that sets CAML_LD_LIBRARY_PATH in dependent
expressions. This is needed to pick up dllzarith.so properly which is
shipped as part of the library.
- We can kill the ugly assert in the expression and instead change it
to use minimumSupportedOcamlVersion.
(Note: this was reverted in b44d5136e8, but the change is
exactly equivalent -- I wasn't sure what impact zarith might actually
have without checking OfBorg, which I wanted to do first.)
Signed-off-by: Austin Seipp <aseipp@pobox.com>
This has two main advantages:
- By setting hasSharedObjects = true, buildOcaml will automatically
include a setup-hook.sh that sets CAML_LD_LIBRARY_PATH in dependent
expressions. This is needed to pick up dllzarith.so properly which is
shipped as party of the library.
- We can kill the ugly assert in the expression and instead change it
to use minimumSupportedOcamlVersion.
Signed-off-by: Austin Seipp <aseipp@pobox.com>
This fixes a bizarre regression in the NextPNR GUI that causes the
background of the OpenGL floorplanning window to become 'transparent' on
certain platforms, greatly limiting its utility. However, QT 5.11 seems
to work just fine here.
Signed-off-by: Austin Seipp <aseipp@pobox.com>
- Require Coq 8.6.1+
- Split substituteInPlace call into patchPhase
- Constrain platforms correctly to x86_64 Linux/Darwin, which was all
it supported anyway (there was no way to properly configure i686 builds,
nor cross builds. In the future there might be)
- Minor stylistic cleanups
- Add new 'man' and 'doc' outputs (the previous attempt to move the
build artifact outputs into $lib no longer worked correctly and they
were installed into 'out' instead, this fixes it completely).
- Clean up weird binary artifacts left in $out (that were already
in $lib)
- Wrap ccomp to undefine _FORTIFY_SOURCE; otherwise it causes
annoying warnings on every invocation
Signed-off-by: Austin Seipp <aseipp@pobox.com>
This is to help QT find all the necessary plugin libraries at startup
time, otherwise it freaks out when run out of 'nix-env' environment or
run directly, e.g. `./result/bin/nextpnr-ice40 --gui`. The reason for
this is that none of the traditional paths it looks for are available.
The workarounds for this are to otherwise:
- Install e.g. into environment.systemPackages (presumably it will
then pick up QT libraries in /run/current-system/sw/lib/qt-*)
- Install 'qtbase' into your user environment (qt will also try to
load dependent libraries out of ~/.nix-profile/lib/qt-*)
However, this QT_PLUGIN_PATH wrapping hack is used elsewhere in the
tree, presumably to mitigate these (poor) workarounds, especially for
non-NixOS users. There seems to be no downside to this.
With this, I have been able to run NextPNR's GUI on an Ubuntu 16.04
system using the 'nixGL' hack by simply running the resulting binary
from anywhere (though there seems to be some glitching artifacts in the
floorplan UI, I suspect this is due to a buggy OpenGL stack rather than
any direct problem with NextPNR or the QT libraries themselves).
This does not mark the GUI build as non-broken yet, though. That will
happen in the future after a bit more testing and splitting nextpnr into
separate minimal/GUI attributes.
Signed-off-by: Austin Seipp <aseipp@pobox.com>