Commit Graph

633 Commits

Author SHA1 Message Date
Jason Rhinelander 4a4f16e5c8
Remove dead code: netns, shell hooks
These haven't been activated in a long time and aren't worth
resuscitating.
2022-06-21 18:56:25 -03:00
Jason Rhinelander 523a8a74ca
Clean up system-or-submodule handling
Fixes a bug on older cmake linking against oxenmq (older cmake hates the
direct oxenmq::oxenmq -> PkgConfig::OXENMQ alias), and also makes it
easier to handle things like nlohmann::json (which we can use from the
system *or* submodule).

Borrowed from oxen-ss/oxen-core.
2022-05-31 19:51:29 -03:00
Jeff 2576b87c5d
version bump to 0.9.9 2022-05-30 17:08:41 -03:00
Jeff 1dfc2e883b
bump verions of all deps
bump submodules

Fix dynamic version generation

   - GIT_FOUND OR Git_FOUND wasn't available because we hadn't done a
     find_package(Git) yet.
   - required version variables weren't being passed through to the cmake
     script
2022-05-30 17:08:08 -03:00
Jeff f05c2ebc71
macro removals
clean up version cmake stuff

clean up generated cpp version stuff

make all the windows rc stuff get generated by cmake

bump release motto message

properly inject release motto into version
2022-05-30 09:06:48 -04:00
Jeff 9556741f6a
split up link order for oxenmq and oxenc
* lokinet uberlib needs oxenc and oxenmq
* lokinet-util only needs oxenc

fixes #1911
2022-05-10 10:34:19 -04:00
Jason Rhinelander c2f8a618e0
Update to oxenc 1.0.2 2022-04-28 14:23:52 -03:00
Jeff 56492c88ac dry cross compile 2022-03-16 14:21:40 -04:00
Jeff 6629e8c881 cmake workarround for quark in older cmake where pkg config produces non existing targets 2022-02-28 10:46:41 -05:00
Jason Rhinelander d02558350a
Crank oxen-mq to (1.2.)11; switch to oxen-encoding
- Update oxen-mq submodule to latest stable
- Add oxen-encoding submodule
- Convert all oxenmq encoding usage to oxenc
- Modernize cmake handling of oxenmq/oxenc
2022-02-17 16:30:17 -04:00
Jeff Becker 8153edbf43 dont enable apple languages when not building daemon 2022-01-31 10:53:48 -05:00
Jeff Becker f38bf2770d move WITH_BOOTSTRAP option to root project CMakeLists.txt 2022-01-31 10:53:48 -05:00
Jeff Becker 9d069983b4 add WITH_BOOTSTRAP option for toggling building lokinet-bootstrap 2022-01-31 10:53:48 -05:00
Jeff Becker 5b8ebb269c changes for liblokinet-ffi
* cmake option BUILD_DAEMON for toggling building of daemon directory
* when WITH_BOOTSTRAP is OFF dont build curl or cpr
2022-01-31 10:53:48 -05:00
Jeff 7e92f36b6a disable tests by default
make ci enable tests explicitly
2022-01-25 13:15:37 -05:00
Jason Rhinelander d24f89192d Bump version 2021-11-16 19:50:52 -04:00
Jeff Becker 1a360c1a36
version bump to 0.9.7 2021-10-19 15:17:42 -04:00
Jason Rhinelander 488ed47cda Remove duplicate handling of jemalloc
We were linking/loading it in different ways, one with cmake option
`USE_JELLOC` and the other, older version `WITH_JEMALLOC`.  This removes
the latter (which was default OFF) and keeps the former (which was added
and has been default ON since 0.9.4 or so).

Also removes the `ifdef`ed JEMALLOC code in lokinet.cpp because we don't
need it; just linking to jemalloc is enough to get the malloc/free
replacements.
2021-09-13 13:26:12 -03:00
Jason Rhinelander 0f8297a186 Bump dev branch version 2021-09-03 23:04:14 -03:00
Jason Rhinelander 2b8ef416c3 Remove old mac installer packaging 2021-09-02 19:13:51 -03:00
Jason Rhinelander 92c7fb9872 LOKINET_VERSION -> built in lokinet_VERSION 2021-09-02 19:11:41 -03:00
Jason Rhinelander 8aef5d742d Re-enable LTO; target macos 10.12+ 2021-09-02 19:07:40 -03:00
Jeff Becker 1315dabcb9
disable language ASM, yolo 2021-09-02 14:17:11 -04:00
jeff 7db2459469
macos sort of works now 2021-09-02 14:17:09 -04:00
Jason Rhinelander faf8a699a6
Set version into Info.plist, don't manually configure
cmake already treats the info plist as a file to be configured (not
merely copied) so we don't need to configure_file ourselves to a temp
file.
2021-09-02 14:17:08 -04:00
jeff 5edd045c9b
add swift version bullshit file and additional bullshittery 2021-09-02 14:17:08 -04:00
jeff 0708a0d897
initial network extension code for macos
probably does not work
2021-09-02 14:17:08 -04:00
Jason Rhinelander ed456b0c7e Fix typo in libuv error message 2021-07-05 10:41:09 -03:00
Jeff Becker 114c7bab62
bump up the jam, bump it up, while your feet are jumping. 2021-07-05 09:13:05 -04:00
Jason Rhinelander 4f71276928 Link to jemalloc for better memory usage 2021-06-29 16:15:54 -03:00
Jeff Becker 1c457e2858
bump version to 0.9.4 2021-06-21 15:16:28 -04:00
Jeff Becker 5c6b0f7178
dont build shared libs when we are building static deps 2021-06-19 07:54:44 -04:00
Jeff Becker 138abaf356
version bump 2021-06-09 20:51:17 -04:00
Jeff Becker cbb78b5280
bump version 2021-05-17 13:00:34 -04:00
Jeff 5fb457e18a
update release motto 2021-05-14 15:15:00 -04:00
Jeff Becker 52b9dbd793
version bump for 0.9.1 2021-05-12 11:32:54 -04:00
Thomas Winget 277794950c
Lokinet version bump to 0.9.0 2021-04-21 19:21:25 -04:00
Jeff Becker 545021aa3d
temp commit 2021-04-19 07:02:46 -04:00
Jeff Becker e4841917ba
redo cmake parts
* add liblokinet.so target
* make every library we build except liblokinet.so static
* wire up parts of liblokinet
2021-04-19 06:52:24 -04:00
Jeff Becker 0c37cc7f60
lokinet-bootstrap native binary 2021-04-15 13:39:45 -04:00
Jeff Becker 9e05e245e0
rebrand and bump version 2021-04-14 12:55:52 -04:00
Jeff Becker 084e0aa023
bump version for 0.8.4 2021-03-09 07:51:37 -05:00
Jason Rhinelander 5b555ee5aa Replace libuv with uvw & related refactoring
- removes all the llarp_ev_* functions, replacing with methods/classes/functions in the llarp
  namespace.
- banish ev/ev.h to the void
- Passes various things by const lvalue ref, especially shared_ptr's that don't need to be copied
  (to avoid an atomic refcount increment/decrement).
- Add a llarp::UDPHandle abstract class for UDP handling
- Removes the UDP tick handler; code that needs tick can just do a separate handler on the event
  loop outside the UDP socket.
- Adds an "OwnedBuffer" which owns its own memory but is implicitly convertible to a llarp_buffer_t.
  This is mostly needed to take over ownership of buffers from uvw without copying them as,
  currently, uvw does its own allocation (pending some open upstream issues/PRs).
- Logic:
  - add `make_caller`/`call_forever`/`call_every` utility functions to abstract Call wrapping and
    dependent timed tasks.
  - Add inLogicThread() so that code can tell its inside the logic thread (typically for
    debugging assertions).
  - get rid of janky integer returns and dealing with cancellations on call_later: the other methods
    added here and the event loop code remove the need for them.
- Event loop:
  - redo everything with uvw instead of libuv
  - rename EventLoopWakeup::Wakeup to EventLoopWakeup::Trigger to better reflect what it does.
  - add EventLoopRepeater for repeated events, and replace the code that reschedules itself every
    time it is called with a repeater.
  - Split up `EventLoop::run()` into a non-virtual base method and abstract `run_loop()` methods;
    the base method does a couple extra setup/teardown things that don't need to be in the derived class.
  - udp_listen is replaced with ev->udp(...) which returns a new UDPHandle object rather that
    needing gross C-style-but-not-actually-C-compatible structs.
  - Remove unused register_poll_fd_(un)readable
  - Use shared_ptr for EventLoopWakeup rather than returning a raw pointer; uvw lets us not have to
    worry about having the event loop class maintain ownership of it.
  - Add factory EventLoop::create() function to create a default (uvw-based) event loop (previously
    this was one of the llarp_ev_blahblah unnamespaced functions).
  - ev_libuv: this is mostly rewritten; all of the glue code/structs, in particular, are gone as
    they are no longer needed with uvw.
- DNS:
  - Rename DnsHandler to DnsInterceptor to better describe what it does (this is the code that
    intercepts all DNS to the tun IP range for Android).
- endpoint:
  - remove unused "isolated network" code
  - remove distinct (but actually always the same) variables for router/endpoint logic objects
- llarp_buffer_t
  - make constructors type-safe against being called with points to non-size-1 values
- tun packet reading:
  - read all available packets off the device/file descriptor; previously we were reading one packet
    at a time then returning to the event loop to poll again.
  - ReadNextPacket() now returns a 0-size packet if the read would block (so that we can implement
    the previous point).
  - ReadNextPacket() now throws on I/O error
- Miscellaneous code cleanups/simplifications
2021-03-04 16:51:18 -04:00
Jason Rhinelander 8aa1b702cd Disallow evil compilation
-fpermissive allows nasty things that are (apparently) needed on
Windows, so only enable it there.

vla are evil, so don't just warn but error on it.

remove duplicate -Wno-unknown-pragmas
2021-03-04 16:51:18 -04:00
Jason Rhinelander 00df8b85da Bump required oxenmq version
Current lokinet dev relies on something from oxenmq dev branch which is
in the not-yet-released next version; without this lokinet tries using
the system 1.2.3 install, which then fails the build.
2021-03-04 16:51:18 -04:00
Jason Rhinelander e3aff6c36c Add more junk & clangd symlinks to .gitignore
Ignore any root directory starting with build so that you can have many
build directories (build, build2, build-win32, ...) that get ignored.

Add .cache which clangd creates

Ignore compile_commands.json (and generate it by default) which helps
clangd, but needs to be symlinked to a compile_commands.json in a build
dir so isn't suitable for inclusion in the repo.
2021-03-04 16:51:18 -04:00
Jeff Becker 60bfdacc23
get rid of the rest of gtest/gmock 2021-03-04 15:41:53 -05:00
Jeff Becker 979a652446
loki-mq -> oxen-mq 2021-03-01 07:57:57 -05:00
Jeff Becker df4ea34a56
nodedb refactor
* bump zmq static dep
* lokimq -> oxenmq
* llarp_nodedb -> llarp::NodeDB
* remove all crufty api parts of NodeDB
* make NodeDB rc selection api not suck
* make path builder api not suck
* propagate all above changes so that unit tests work and it all compiles
2021-02-02 09:35:40 -05:00
Jason Rhinelander ab4013f00d Downgrade required libuv version to 1.18
(1.18 is the version found in bionic).
2021-01-25 12:52:48 -04:00