Commit Graph

91 Commits

Author SHA1 Message Date
Joe Bryan
e3cd08b96a build: implements static builds in urbit ./configure, prunes deps 2021-08-19 20:32:53 -04:00
Joe Bryan
b993ca2c25 build: force static urcrypt on darwin 2021-08-19 20:32:50 -04:00
Joe Bryan
0b19f51a6b Merge remote-tracking branch 'frodwith/urcrypt' into jb/urcrypt-prep
* frodwith/urcrypt: (75 commits)
  move libaes_siv to deps
  fix typo in urcrypt.h
  libaes_siv now using tip of dfoxfranke master
  check for recovery header presence in configure, put -O3 in flags, move pc to distcleanfiles
  clean generated pkg-config file
  update urbit's configure to use a liburcrypt version
  add a versioning scheme to urcrypt
  remove scrypt from urbit build (in urcrypt now)
  move the rest of the scrypt jets to urcrypt, enable them, and correct the hoon test to match the source rfc.
  scr-pbk->urcrypt
  start scrypt porting
  Squashed 'pkg/urcrypt/scrypt/' content from commit a402f4116
  finish porting secp jets to urcrypt
  pkg-config support for urcrypt, update urbit build
  cosmetic configure things
  require shared ssl when building a shared urcrypt
  remove some old files
  add autogen.sh
  use srcdir in -I to support out of tree builds
  whitespace and symbol cleanup
  ...
2021-08-19 20:03:19 -04:00
Joe Bryan
44c7eedbd2 build: updates libaes_siv, builds from upstream 2021-08-04 23:38:31 -04:00
Brendan Hay
d72db74492
king: ensure lmdb is statically linked on osx
By way of ensuring the lmdb package's cabal extra-libraries field
is ignored and our lmdb overlay is used. Don't ask.
2021-04-27 19:50:16 +02:00
Pax Dickinson
cc3fdf80d5 docker: make reset-urbit-code work properly 2021-04-18 16:00:15 -04:00
Pax Dickinson
a77eeed64a docker: add curl, implement scripts for obtaining +code from loopback 2021-04-18 10:14:39 -04:00
wexpertsystems
2bab57d6b5
Escape the nix quotation properly.
Fixes nix syntax error

Co-authored-by: Edward Amsden <edward@blackriversoft.com>
2021-04-15 17:28:15 -04:00
Pax Dickinson
ef1b438c22 docker: allow setting Ames port via docker run argument 2021-04-15 14:59:52 -04:00
Pax Dickinson
685ef12e8f docker: add exec to final urbit invocation 2021-04-14 15:19:31 -04:00
pilfer-pandex
3ca526bd5b hs: it seems I misread bren, again 2021-03-22 16:35:19 -04:00
pilfer-pandex
a7dbc692e5 hs: dunno, try this 2021-03-22 16:01:14 -04:00
pilfer-pandex
e2b2c29990 Merge branch 'release/next-vere' into pp/lmdb 2021-03-22 15:55:38 -04:00
pilfer-pandex
5bb01e5bae hs: modify hs/default.nix accordingly 2021-03-22 15:55:15 -04:00
Joe Bryan
027c5d4603 build: patch lmdb to use F_FULLFSYNC on darwin 2021-03-15 15:20:57 -07:00
Paul Driver
0d064dfd54 move libaes_siv to deps 2021-03-11 10:55:04 -08:00
Edward Amsden
8d8dc826cb
docker-image: Pass -t flag to vere if not in an interactive container
Vere will not run a ship if STDIN is closed, unless passed the `-t`
flag. Hosted docker containers will not be interactive, but we would
like the docker image to be usable locally and interactively as well.

Thus, we check for STDIN being closed in the shell prior to launching
Vere, and if it is closed, pass the `-t` flag.
2021-01-16 19:44:04 -05:00
Edward Amsden
d3c5aa74c1
build: A 'smart' docker image
This commit adds the `docker-image` attribute to the main Nix
entrypoint, invoking `nix/pkgs/docker-image` which will build
a 'smart' docker image that can load keyfiles or a pier and
boot a ship

It includes a README for the official docker image, suitable
for posting as the README to a Docker Hub or similar docker
image repository.
2021-01-13 07:37:28 -05:00
Joe Bryan
3e4d495500 nix: remove lib/base64 from solid pill staging 2020-12-08 16:22:58 -08:00
Joe Bryan
548440a85d nix: trims trailing whitespace from solid pill builder 2020-11-20 15:23:56 -08:00
Joe Bryan
b1e3b0def2 hoon: moves $xray into userspace 2020-11-20 15:23:56 -08:00
Joe Bryan
aea0f571d7 hoon: moves $plum and +plume to userspace 2020-11-20 15:23:56 -08:00
Brendan Hay
983261a3d8
build: move darwin install_name_tool fixup from vere to king haskell
As well as some variable naming consistency to appease the nixpkgs
gremlins and keep the git history lords on their toes.
2020-11-06 09:47:11 +01:00
Brendan Hay
767a6f85a4 build: remove {sha256,md5} output for push-storage-object effects 2020-11-05 11:39:05 -08:00
Brendan Hay
644acd5002
build: ensure urbit tests are run with the -g argument 2020-11-05 10:25:31 +01:00
Brendan Hay
dd782e062e
vere: ensure debug symbols aren't stripped by default (by nix) 2020-11-05 10:25:30 +01:00
Brendan Hay
8d0a65bb6e
vere: remove dependency on nix-store path for static darwin binary
Poached from @eglaysher's work in #3380.
2020-11-04 20:50:45 +01:00
Brendan Hay
9e1f75da64
build: simplify build tool selection for shell.nix 2020-11-04 15:34:03 +01:00
Brendan Hay
6599a85b99
king: ensure tests are enabled on ci and don't depend on lfs pills 2020-10-29 16:20:41 +01:00
Brendan Hay
fada33dfe6
build: remove checkMaterialization flag 2020-10-28 18:19:53 +01:00
Brendan Hay
689c0eb6a0
build: ensuring release tarball contains singular parent directory
This ensures parity with the current release tarballs.
2020-10-28 11:05:58 +01:00
Brendan Hay
ce3cbf0857
build: rework all nix expressions to support hercules-ci builds
This also removes nixcrpkgs and OSX cross compilation in favour of
compiling on the target. x86_64/musl targets are still supported
on Linux.

All sources are now managed via niv (see nix/sources.json) and Haskell
package sets are provided/organised via IOHK's haskell.nix.

Some effort has been made to expose similar top-level attributes for
development, but in some cases there have been changes. Please see
the comments in the top-level default.nix and ci.nix files for usage.
2020-10-27 13:55:49 +01:00
Paul Driver
7268fdc594 libaes_siv now using tip of dfoxfranke master 2020-10-16 11:33:50 -07:00
Paul Driver
227f27d620 remove scrypt from urbit build (in urcrypt now) 2020-10-10 18:04:26 -07:00
Paul Driver
988d1fe445 pkg-config support for urcrypt, update urbit build 2020-10-09 13:40:31 -07:00
Paul Driver
88c68e9498 more flags fixing, remove some obsolete deps 2020-10-05 08:36:45 -07:00
Paul Driver
8e596ca365 more autoconfiscation 2020-10-03 17:01:56 -07:00
Paul Driver
5fbd0b2a90 mid-autoconfiscation of urcrypt 2020-10-03 15:15:14 -07:00
Paul Driver
7bca3a86cf obliterate ge-additions package, move to urcrypt 2020-10-02 09:08:56 -07:00
Paul Driver
f5449204e1 secp_make->urcrypt 2020-08-29 11:55:58 -07:00
Paul Driver
8d657e12c1 aes-siva-en->urcrypt 2020-08-24 14:38:26 -07:00
Paul Driver
6fdc65dea6 argon2 2020-08-10 15:19:32 -07:00
Paul Driver
cd4b8cb9b0 aes_ecb -> urcrypt 2020-08-05 16:06:04 -07:00
Paul Driver
74d06deb1b one working function in so 2020-07-30 13:07:13 -07:00
botter-nidnul
790e2dd5ec libsigsegv: disable stack vma check on arm
Adds the equivalent arm patches to the i386 patches added in #3054

These result in a dramatic speedup in running  `=a (bex 1.000.000.000)` just as they do on x86_x64

This also sneaks in a hack to `/nix/nixcrpkgs/pkgs/libsigsegv/builder.sh` that allows libsigsegv to configure itself properly when cross compiling release binaries from x86_64 to aarch64.

It won’t trigger for you, since you’re not doing that (yet) but it will make it a little easier for me to maintain my aarch64 static release binaries if that `if [ $host = aarch64-linux-musleabi ]` section is upstreamed.
2020-07-27 23:33:14 -05:00
Paul Driver
b8db4141bc urcrypt pkg with one function, building 2020-07-27 19:19:17 -07:00
Joe Bryan
6fa194d527 Merge branch 'master' into jb/ipc-redux
* master: (147 commits)
  vere: bump version to 0.10.7
  libsigsegv: disable stack vma check
  vere: bump version to 0.10.6
  ci: add travis as trusted user
  jets: use appropriate macro
  noun: add -C to control memo cache size
  jets: restore fond/play/peek hooks
  jam: add commented-out functionality to count size of atom
  jets: cap memo cache and remove peek, play, and fond jets
  noun: add functions to count size of noun
  release: urbit-os-v1.0.23
  interface/config: fix production build
  soto: run +on-load migration once
  publish, links: restore full height
  sh/build-interface: amend for SPA
  interface/CONTRIBUTING: amend for SPA / webpack
  solid: update pill
  hood + apps: fix OTA process for feat/SPA
  hood: add version %6 for %file-server upgrade
  chat: equally size both code + s3 buttons
  ...
2020-06-26 13:33:00 -07:00
Philip Monk
2713083386
libsigsegv: disable stack vma check
This patches libsigsegv to not check the stack vma on Linux, since that
involves reading procfs, and we make very heavy use of sigsegv.  This
eliminates most of urbit's performance discrepancy between Linux and
MacOS.  These are the benchmarks used; note this is a local MBP vs a
cloud Linux server, and the MBP is almost certainly faster hardware.

We take two benchmarks, one of which decrements 10 million times and the
other simply allocates 125MB of memory.  These are the results:

cpu-heavy ==  =/ n 10.000.000 |-(?~(n n $(n (dec n))))
mem-heavy == =a (bex 1.000.000.008)

macos, cpu-heavy: 6 seconds
macos, mem-heavy: 1 second

linux-before, cpu-heavy: 30 seconds
linux-before, mem-heavy: 160 seconds

linux-after, cpu-heavy 9 seconds
linux-after, mem-heavy 1.3 seconds

This represents a 3x speedup for the cpu-heavy operation and a 120x
speedup for the memory-heavy operation.

This check was used to try to distinguish stack overflow from other
forms of segmentation fault.  In the comments in src/handler-unix.c, it
describes three heuristics it uses, depending on what's available from
the OS.  In the linux-i386 case, all three are availble, so we simply
disable the slow one.  This correctly recognizes stack overflow if you
simply alloca(10000000000).
2020-06-26 11:15:01 -07:00
Joe Bryan
dcdd1e4be9 vere: removes now-unused sniproxy dependency 2020-06-23 16:04:40 -07:00
Joe Bryan
8fac63661f vere: removes ncurses dependency 2020-06-11 20:25:46 -07:00