Commit Graph

455 Commits

Author SHA1 Message Date
majestrate
cd858a00ea
Merge pull request #2027 from jagerman/clang-format-14
Bump clang-format to 14
2022-10-21 12:57:12 -04:00
majestrate
37ddecbd20
Merge pull request #2024 from jagerman/dep-updates
Dep updates
2022-10-21 12:56:31 -04:00
Jason Rhinelander
d011f8fb4a
Bump clang-format to 14 2022-10-20 19:53:52 -03:00
Jason Rhinelander
f01b075d3e
Rename darwin -> macos in uploaded build file 2022-10-20 13:43:00 -03:00
Jason Rhinelander
f2454285fe
Set _WIN32_WINNT in static deps
Set -D_WIN32_WINNT for static deps; unbound, in particular, needs this
as the latest version appears to rely on something only provided in
non-ancient windows to build properly.

This required moving _winver into the toolchain file so that it is
available earlier in cmake code (StaticBuild is included long before
win32.cmake), but also this seems a more appropriate place for it.
2022-10-20 13:38:36 -03:00
Jason Rhinelander
0e09539b61 CI fixes
- cd .. after the build, before running extra_cmds, because the scripts
  we invoke expect to be in the root, not in the build dir (and it's
  dirtier for the build function to not undo the `cd build` that it
  runs).
- fix unclosed parenthesis in mac static lib checker
2022-10-20 12:46:36 -03:00
Jason Rhinelander
25d73d627a
Remake non-mac icon; regenerate during build for windows
The non-mac icon was an old version with white foreground and a
completely transparent background, but this looks bad (or invisible)
depending on where you view it.  This updates it based on the macos
icon, but with a round white circle background instead of the macos
"squircle" background.

This also replaces the .ico file for the installer with one that we
build during the win32 build rather than a pregenerated one.

Bumps the gui as well to a version with the new icons in place.
2022-10-06 21:32:58 -03:00
Jason Rhinelander
82e2e6fb10
bake in bootstrap fallbacks at build time
also change the defailt/fallback bootstrap file for testnet to be a list
of RCs (albeit of size 1) rather than just an RC dict.
2022-10-06 13:59:49 -03:00
Jason Rhinelander
307ae40e00
Apple: fix build failure when file already exists
The tools to create a dmg on Apple are flakey, of course, and fail in
cryptic ways if the file already exists, so purge it in the
contrib/mac.sh script.
2022-10-06 11:56:07 -03:00
Jason Rhinelander
fc07b8a10e
Merge pull request #2005 from jagerman/profiling-bencode-refactor
file slurp/dump and profiling refactor
2022-10-06 11:55:19 -03:00
Jason Rhinelander
006394315d
Add local mirror to most jobs; build script cleanups 2022-10-05 19:29:47 -03:00
Jason Rhinelander
ca26b20b2f
Scale down the inner part of the logo a bit 2022-10-04 20:51:29 -03:00
Jason Rhinelander
6b352c7fd8
Rewrite and tweak the macos icon
The old one was way too big on mac relative to other icons.  This scales
the background down, while keeping the black logo parts the same, and
changes the rounding of the corners to match native macos apps.

This also rewrites it from scratch to use a useful coordinate system
which allows drawing all the fundamentals in much more useful units.
2022-10-04 13:57:59 -03:00
Jason Rhinelander
2709ec1930
Android build fixes for openssl 3.0.5
- ANDROID_NDK_ROOT must be set in env
- cmake should be setting `-DANDROID_API=23`
- specify the correct android API via a define when building openssl; it
  has to be in CPPFLAGS (not CFLAGS) because otherwise openssl's
  configure script doesn't notice and overrides our define with the
  latest API version.
- openssl configure puts $(ANDROID_NDK_ROOT) in the makefile, so we have
  to be sure that we put it in the environment for the build command,
  too.
2022-09-19 20:26:41 -03:00
Jason Rhinelander
616f559761
macos CI fixes
- Split up mac.sh into a configure + build scripts (like Windows).
- Don't attempt to build the 'package' target in CI: apparently you have
  to have a logged in user at the GUI in order to build a .dmg because
  being obtuse is the Apple way.
- Upload the raw Lokinet unsigned app in a .tar.xz, rather than dmg,
  because of the above.
- make mac.sh respect JOBS (pun not intended (but still good))
2022-09-19 20:26:41 -03:00
Jason Rhinelander
93c01623b0
Format fixes & fix warning in format script
- Don't escape '#' in the greps in format.sh: they warn about a spurious
  `\` in the latest grep.
- reformat
2022-09-19 20:26:40 -03:00
Jeff Becker
4490fdcf46
fix up CI
add jason's suggested changes for artifact upload

use lokinet-ci-nodejs-lts as base image so we can build the installer

update ci pipeline for windows to have building gui toggle-able

by default we will build the gui from this repo, but this allows it to
easily run using a custom gui asset if needed
2022-09-08 14:25:01 -04:00
Jason Rhinelander
49b97f47cc
Make windows-configure.sh runnable without root/build
For when you want to set up a windows build dir, without doing the build
yet.
2022-09-08 14:25:00 -04:00
Jeff Becker
a02679b87a
revise ./contrib/format.sh 2022-09-08 14:25:00 -04:00
Jeff Becker
7f27760c97
disable lokinet-bootstrap on windows builds 2022-09-08 14:25:00 -04:00
Jeff
871c3e3281
changeset for windows port
* wintun vpn platform for windows
* bundle config snippets into nsis installer for exit node, keyfile persisting, reduced hops mode.
* use wintun for vpn platform
* isolate all windows platform specific code into their own compilation units and libraries
* split up internal libraries into more specific components
* rename liblokinet.a target to liblokinet-amalgum.a to elimiate ambiguity with liblokinet.so
* DNS platform for win32
* rename llarp/ev/ev_libuv.{c,h}pp to llarp/ev/libuv.{c,h}pp as the old name was idiotic
* split up net platform into win32 and posix specific compilation units
* rename lokinet_init.c to easter_eggs.cpp as that is what they are for and it does not need to be a c compilation target
* add cmake option STRIP_SYMBOLS for seperating out debug symbols for windows builds
* intercept dns traffic on all interfaces on windows using windivert and feed it into lokinet
2022-09-08 14:24:59 -04:00
majestrate
a8c0f76e1c
Merge pull request #1971 from majestrate/docs-and-such-2022-08-06
more docs
2022-09-03 08:03:28 -04:00
Jason Rhinelander
955cecb21d Drone macos fixes
- fix lib check script to look at the network extension
- amend the list of intented linked libs
- upload the dmg
2022-08-30 16:20:28 -03:00
Jason Rhinelander
dccc86ea62 Apple icon bullshit
Apple introduced a bug in macOS 11 that they can't be arsed to fix which
breaks PNG loading into icns files by dropping the blue channel of the
last pixel, leaving a streak of yellow pixels at the bottom of the
image.

This hacks around it by setting a fully transparent, non-white (actually
yellow) pixel in the bottom-right corner of the images.

This is such inexcusable trash.
2022-08-30 15:46:13 -03:00
Jason Rhinelander
500530a336 dmg: version, and set icon
- Add the version number into the .dmg filename
- Set the lokinet icon on the .dmg.  This is done via a swift program
  because all the Apple CLI tools to do this are deprecated.
2022-08-30 14:00:58 -03:00
Jason Rhinelander
039d1429f5 Build an installer dmg 2022-08-29 12:53:08 -03:00
Jason Rhinelander
182f1dccb9 Fix mac.sh defaults to make a signed, notarized build 2022-08-26 16:05:46 -03:00
Jason Rhinelander
8b157c304e Remove obsolete mac packaging cruft 2022-08-26 16:05:46 -03:00
Jeff
badf72838e
move all code directory readmes into docs/project-structure.md 2022-08-21 12:18:09 -04:00
Jason Rhinelander
ab16d428cb Don't use sign target for contrib/mac.sh 2022-08-12 21:18:46 -03:00
Jason Rhinelander
2b7b1fcc79 Working signed macOS GUI build 2022-08-12 21:13:39 -03:00
Jason Rhinelander
8c2f4175d6 contrib/windows.sh: do a release build by default 2022-08-12 21:13:39 -03:00
Jason Rhinelander
7b2b114240 Remove disabled submodule check
It's easy enough to add -DSUBMODULE_CHECK=OFF yourself if you really
won't want it, and much more useful to have it enabled as a default.
2022-08-12 21:13:39 -03:00
Jason Rhinelander
c504c030cf Update mingw zmq patch
The one we were applying for closesocket breaks on some versions.
2022-08-12 21:13:38 -03:00
jeff
b8896740de build gui and assemble app bundles into one singular app bundle 2022-08-12 21:13:38 -03:00
Jason Rhinelander
5530ec3057 Handle Apple's trash servers when polling for notarization
Apple's servers have a gateway timeout a small but noticeable percentage
of the time, which was breaking the script.  Detect such Apple flakiness
and keep trying.
2022-08-12 21:13:38 -03:00
Jason Rhinelander
09372994bb macOS system extension support
Adds support for building Lokinet as a system extension, and fixes
various problems in the macos implementation found during development of
the system extension support.
2022-08-12 21:13:38 -03:00
Jason Rhinelander
93421c6eaf Change permissions for system extension 2022-08-12 20:23:00 -03:00
majestrate
db961ac728
Merge pull request #1943 from majestrate/keygen-script-2022-06-26
simple keygen script
2022-07-26 12:07:06 -04:00
Jeff
23fd46c0db
add directory specific readmes 2022-07-26 09:26:28 -04:00
Jeff
b819ed21d2
clean up build helper scripts:
* cleanup of android build shims
* cleanup of windows build shims
2022-07-20 13:36:04 -04:00
Jeff
8cde7c7e7a
fix win32 and android builds 2022-07-19 11:31:14 -04:00
Jeff
a3725284e4
simple keygen script 2022-06-26 10:02:59 -04:00
Jeff
73a49f5473
do not build liblokinet in windows, exe gets too big 2022-05-30 17:08:08 -03:00
majestrate
608dced827
typofix 2022-05-24 12:56:55 -04:00
majestrate
f16c2ecd43
use oxenc submodule in android 2022-05-24 12:56:37 -04:00
Jeff
7396eb7f3b
bump oxenc submodule and force oxenc submodule on win32 2022-05-18 17:40:55 -04:00
majestrate
65ef0e4bfb
Merge pull request #1849 from majestrate/dry-cross-2022-02-02
dry cross compile
2022-03-30 16:48:00 -04:00
majestrate
1fc901330c
Merge pull request #1851 from majestrate/ci-docs-generation-2022-02-04
ci docs generation
2022-03-30 16:45:53 -04:00
Jeff
7251944adc redo contrib/cross.sh to take cmake arguments 2022-03-16 14:21:40 -04:00