Commit Graph

471 Commits

Author SHA1 Message Date
dr7ana
ac6255c736 Squashed commits for merge errors afer fixing client-refactor:
- Deprecate pathset, smashed into PathBuilder (renamed to PathHandler)
- Re-abstraction of sessions and PathHandlers
  - Renamed PathBuilder -> PathHandler to more accurately reflect purpose
  - {Service,Exit}Handler will remain as PathHandlers, though currently no path-sharing amongst sessions being managed is to be implemented. Handlers will maintain their own paths for both lookups and initiating sessions, while sessions will manage their paths independantly.
  - Session object handling necessitates the differentiation between outbound and inbound sessions. Initiators of sessions are entirely responsible for dictating the chosen path on which the session communicates, and must therefore continually build and manage paths for the negotiated session.
  - Outbound sessions are now {Service,Exit}Sessions
  - Inbound sessions are implemented with InboundSession, which is agnostic to the type of service being operated locally (service vs exit, client vs relay, etc). When the Session initiator signals a switch to a different path, it will be assigned to the InboundSession object by {Service,Exit}Endpoint, which manages local services and exits
2024-02-05 05:19:05 -08:00
dr7ana
61718464ae zero cost exception handling my ass
- rework bootstrap loading to move all logic into BootstrapList object
- ability to parse lists and dicts of bootstraps implemented
- netid parsing refers to the correct fallback
- cross your fingers boys here we go
2024-01-31 07:54:12 -08:00
Jason Rhinelander
f21facfd39 Add format.sh detection of include problems 2024-01-31 07:54:12 -08:00
dr7ana
9acac2c33e CI fixes
- oxen-logging updated to bump fmt version
- version bump oxen-logging to fix fmt version
- version bump oxen-mq to solve uniform distribution error
- misc errors introduced by above version bumps
- clang-format 14 -> 15
2023-08-11 14:01:07 -07:00
Jason Rhinelander
e11f5018c2
Fix negative integer parsing 2023-06-02 00:11:28 -03:00
Jason Rhinelander
a294c81f0d
Python <3.11 compat fix 2023-05-03 21:12:19 -03:00
Jason Rhinelander
e255b87992
Add automatic hex decoding to bencode-dump.py
This allows bencode-dump.py autodetect hex input and decode it on the
fly, which is quite convenient when working with binary-containing
bencoded data strings.
2023-02-28 12:34:17 -04:00
dan
b2e8cde64b working new endpoints
- added hotswap functionality
- map_exit and unmap_exit working
2023-02-01 15:52:37 -08:00
dan
13b01c86a6 Updated RpcServer Initialization and Logic
-- Moved all RPCServer initialization logic to rpcserver constructor
    -- Fixed config logic, fxn binding to rpc address, fxn adding rpc cats
    -- router hive failed CI/CD resulting from outdated reference to rpcBindAddr
    -- ipc socket as default hidden from windows (for now)
refactored config endpoint
    - added rpc call script (contrib/omq-rpc.py)
    - added new fxns to .ini config stuff
    - added delete .ini file functionality to config endpoint
    - added edge case control for config endpoint

add commented out line in clang-form for header reorg later
2023-01-24 06:50:46 -08:00
Jason Rhinelander
3d0fe8ecb7 Rename 'package' target on macos to 'dmg' to avoid cpack conflict
CLI11 uses cpack, which makes us fail to configure on macos because of
the 'package' target.  Renaming it to 'dmg' should avoid the conflict.
2023-01-06 15:07:26 -08:00
Jason Rhinelander
7f3cb0ff38 Make dmg background retina capable
The bg has to get encoded in a multi-format TIFF to make it work.

Also increase the vertical size a bit so that it still looks okay in
case you are a crazy person with a bunch of toolbars and other junk
cluttering up the window.
2022-11-10 20:32:23 -04:00
Jason Rhinelander
135664ccb0 Add mac .dmg background 2022-11-09 20:46:37 -04:00
Jeff Becker
0bb58b4ac0
dont hardcode keyid 2022-11-02 09:32:31 -04:00
Jeff Becker
88b5a84df3
explicitly select signing key used in source tarball signing script 2022-11-02 09:24:31 -04:00
Jason Rhinelander
3bc3ae9d84
patch unbound to fix windows shutdown crash 2022-11-01 11:06:03 -04:00
Jason Rhinelander
c8aa53a456
Use rsvg instead of imagemagick to make windows .ico
imagemagick is messing up the conversion, so just avoid it entirely and
use rsvg-convert directly to do it instead.
2022-10-26 13:24:34 -03:00
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