New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
newnode 2.1.5 (new formula) #162683
base: master
Are you sure you want to change the base?
newnode 2.1.5 (new formula) #162683
Conversation
Thanks for contributing to Homebrew! 🎉 It looks like you're having trouble with a CI failure. See our contribution guide for help. You may be most interested in the section on dealing with CI failures. You can find the CI logs in the Checks tab of your pull request. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This seems to be vendoring a bunch of homebrew formula, which violates: https://docs.brew.sh/Acceptable-Formulae#stuff-that-requires-vendored-versions-of-homebrew-formulae
Entering 'libevent'
Entering 'libsodium'
The codebase of newnode uses internal headers of
Would that be a reasonable compromise to resolve this issue? |
@SMillerDev any update on this? I can try and look into fixing #162684 (though, I can't promise it), and we're very interested in making the project (d2d vpn with dht) accessible for mac users. |
Have they been submitted upstream? Then we can just patch the libevent formula |
The fork of libevent we're using has in part been submitted in a series of pull requests (see https://github.com/libevent/libevent/pulls/ghazel), and they might be resubmitted down the line. But this would take a considerable amount of time. In the meantime, we use features like allow external access to evdns cache, as well as internal headers and ones resulting from compiling libevent (e.g. evconfig.h). @SMillerDev what do you mean by patching libevent formula, and does it allow for this flexibility? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the PR. I have some concerns I need addressed before we attempt to move forward with this.
further inspection of https://github.com/clostra/newnode/blob/master/build.sh and subsequent build tests confirm that wget isnt needed on mac os
instead of assuming that the proxy is already run as a service, run it in a fork and kill at completion
linux builds currently rely on a hard-coded wget binary, which needs to change upstream to non-hardcoded binary
fix brew audit fail due to non-alphabetic ordering of dependencies
most of the dependencies specified so far are actually build-time only, and pkg-config was not specified at all
updated newnode-helper to 2.1.5, with updated dependencies and no dependency on mbedtls
We've released the new version which should be more compatible with homebrew's policy:
Does this provide a way forward with this PR? |
Co-authored-by: Sean Molenaar <SMillerDev@users.noreply.github.com>
@SMillerDev are we any closer to completion? It's been over a month since this PR started, and several key concerns have been addressed. |
Any update on this? What's missing? |
Co-authored-by: Sean Molenaar <SMillerDev@users.noreply.github.com>
Any update on this? @SMillerDev I believe most comments have been addressed. |
Formula/n/newnode.rb
Outdated
begin | ||
Timeout.timeout(5) do | ||
Process.wait(pid) | ||
end | ||
rescue Timeout::Error | ||
Process.kill("KILL", pid) # Forcefully kill if not terminated after timeout | ||
Process.wait(pid) | ||
end |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why would we expect it not to be killed by the kill above?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Removed the second kill
path = (var/"cache/newnode") | ||
path.mkpath | ||
path.chmod 0775 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This means that every install/update will make a new cache. Is that desirable?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can you point us the installation doc reference on this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Doesn't it reuse the old cache?
https://github.com/clostra/newnode/blob/master/client.c#L3590 this is the closest to an installation doc I can find.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, currently it will make a new cache folder as part of the install and overwrite the old one.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe that's even better! :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
And if people are using the tool when running brew upgrade
it'll keep working?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It should, if peers file is invalid it just won't be loaded. There's no parsing, just raw ip addresses. The file is updated when the peer list is updated. if it fails to open file for writing, it will skip saving.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Either way works, saving or not saving. We will handle the update smoothly if that interface ever changes. The code is intentionally simple and shouldn't fail.
Anything else that need be addressed? @SMillerDev |
HOMEBREW_NO_INSTALL_FROM_API=1 brew install --build-from-source <formula>
, where<formula>
is the name of the formula you're submitting?brew test <formula>
, where<formula>
is the name of the formula you're submitting?brew audit --strict <formula>
(after doingHOMEBREW_NO_INSTALL_FROM_API=1 brew install --build-from-source <formula>
)? If this is a new formula, does it passbrew audit --new <formula>
?Newnode is an open-source decentralized Content Distribution Network (https://github.com/clostra/newnode).
This is a rewrite of #153960 with brew services in mind. Tested on intel OSx 14 Sonoma.