-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
OpenBSD support #649
Comments
Would you be willing to turn this into a pull request? @rsmmr and I were just talking this morning about whether OpenBSD works or not, and then this comes out of the blue. CAF is a git submodule, so you'll need to create a pull request over there too (https://github.com/actor-framework/actor-framework/). |
I just created pull request #653 (comparing the master and 3.0 branches) but GitHub seems to have picked up more commits than I wanted. |
After looking at the actor framework, I can't see what branches to compare to commit my pull request. However, I did create pull request #949 (https://github.com/actor-framework/actor-framework/pull/949) which includes my patch set. |
The problem with your PR is that you requested a merge from Did you fork a copy of the main repo and make the changes on a branch in that fork? If so, you need to make sure that the PR goes from that fork's branch to the main repo. It looks like the same issue with your PR on the CAF side too. |
I closed the Zeek PR, please create a fork/branch and request merging into the If the aim is to get the changes into Zeek 3.0.1, that's a bit lengthier process. First, we need to review the changes. Once they're approved, they get merged into |
How would I go about forking a copy of both repositories? Would I do it from within the GitHub interface? |
Ah hah! That definitely explains it. From the main page for the Zeek repo, press the Fork button at the top right. If you get a popup to select your account, select and then github should start forking it to http://github.com/douglas-carmichael/zeek. Once that's done, clone the repo and do the work on that clone. Once you've pushed your change to your fork, you can open a pull request from your fork into the main zeek repo. We've been talking about writing a blog post recently about how to contribute external changes to zeek, especially for people new to git and github. I guess this shows it'd be a good thing get done soon. 😃 |
Thanks! I'll be eagerly awaiting said guide. |
I just committed two "proper" PRs from my cloned repositories (#656 on the zeek side and #950 on the CAF side.) Here's the URL to the CAF PR: actor-framework/actor-framework#950. |
Thanks, those look much better. Like @jsiwek mentioned CAF is an external project with their own release cycle. We'll have to wait for @Neverlord to cut a new release including it before it gets into a Zeek release. |
I see no blockers for backporting (cherry-picking, really) this patch for a new |
The Zeek-side of OpenBSD support are these patches now in I'll leave this issue open to remind about needing CAF updates to fully fix the OpenBSD build: Zeek |
I was finally able to get zeek from git master to configure properly by putting CAF in /usr/local, but even without --with-caf it still refuses to build because the in-built CAF doesn't support OpenBSD: [ 7%] Building CXX object libcaf_core/CMakeFiles/libcaf_core_shared.dir/sec_strings.cpp.o error Platform and/or compiler not supported^ |
@douglas-carmichael the embedded CAF that Zeek uses hasn't been updated yet and we usually don't do that until there's a tagged release, so please manually install CAF and/or use |
I used --with-caf and still had that issue despite CAF being installed in /usr/local. |
After I manually installed CAF from the [ 98%] Linking CXX executable zeek |
OpenBSD shared library names are like "libfoo.so.major.minor" and binpac was previously letting the post-release number into the name like "libbinpac.so.0.54-7", which isn't compatible with that scheme. Related to zeek/zeek#649
@douglas-carmichael thanks, a couple things going on:
|
What specific CAF fixes need to be made? |
To fix diff --git a/libcaf_core/CMakeLists.txt b/libcaf_core/CMakeLists.txt
index b051c857..ff2abe35 100644
--- a/libcaf_core/CMakeLists.txt
+++ b/libcaf_core/CMakeLists.txt
@@ -178,7 +178,7 @@ if (NOT CAF_BUILD_STATIC_ONLY)
set_target_properties(libcaf_core_shared
PROPERTIES
SOVERSION ${CAF_VERSION}
- VERSION ${CAF_VERSION}
+ VERSION ${CAF_VERSION_MAJOR}.${CAF_VERSION_MINOR}
OUTPUT_NAME caf_core
)
install(TARGETS libcaf_core_shared
diff --git a/libcaf_io/CMakeLists.txt b/libcaf_io/CMakeLists.txt
index f82ccc4e..9e787e6d 100644
--- a/libcaf_io/CMakeLists.txt
+++ b/libcaf_io/CMakeLists.txt
@@ -64,7 +64,7 @@ if (NOT CAF_BUILD_STATIC_ONLY)
set_target_properties(libcaf_io_shared
PROPERTIES
SOVERSION ${CAF_VERSION}
- VERSION ${CAF_VERSION}
+ VERSION ${CAF_VERSION_MAJOR}.${CAF_VERSION_MINOR}
OUTPUT_NAME caf_io)
install(TARGETS libcaf_io_shared
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
diff --git a/libcaf_opencl/CMakeLists.txt b/libcaf_opencl/CMakeLists.txt
index 33033bf6..f7c0ef60 100644
--- a/libcaf_opencl/CMakeLists.txt
+++ b/libcaf_opencl/CMakeLists.txt
@@ -28,7 +28,7 @@ if(NOT CAF_BUILD_STATIC_ONLY)
set_target_properties(libcaf_opencl_shared
PROPERTIES
SOVERSION "${CAF_VERSION}"
- VERSION "${CAF_VERSION}"
+ VERSION "${CAF_VERSION_MAJOR}.${CAF_VERSION_MINOR}"
OUTPUT_NAME caf_opencl)
install(TARGETS libcaf_opencl_shared LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif()
diff --git a/libcaf_openssl/CMakeLists.txt b/libcaf_openssl/CMakeLists.txt
index a0b3a3be..07640cea 100644
--- a/libcaf_openssl/CMakeLists.txt
+++ b/libcaf_openssl/CMakeLists.txt
@@ -32,7 +32,7 @@ if (NOT CAF_BUILD_STATIC_ONLY)
set_target_properties(libcaf_openssl_shared
PROPERTIES
SOVERSION ${CAF_VERSION}
- VERSION ${CAF_VERSION}
+ VERSION ${CAF_VERSION_MAJOR}.${CAF_VERSION_MINOR}
OUTPUT_NAME caf_openssl)
if (CYGWIN)
install(TARGETS libcaf_openssl_shared RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) |
I finally got zeek to compile, but got an error starting zeekctl: dc-zeek# zeekctl Welcome to ZeekControl 2.0.0-18 Type "help" for help. Also, when I used "deploy" zeek complained about not finding eth0 in stderr.log: fatal error: problem with interface eth0 (pcap_error: BIOCSETIF failed: Device not configured (pcap_activate)) Perhaps a check for a BSD platform and prompting the user for what interface to use? |
I cannot speak to the inet_ntop error - perhaps @jsiwek has an idea. As for the eth0 error - zeekctl requires the user to edit the configuration files to specify the listen device - this is true for all operating systems. The default configuration file specifies eth0 - which may or may not be the correct choice on some linux systems. We currently don't provide any utilities to automatically edit these configuration files - that is up to the user. |
The undefined symbol messages for inet_ntop/inet_pton should be addressed by #679 (also mention a few other caveats of general OpenBSD support status there). |
CAF
I've backported the OpenBSD fixes to the 0.16 series. You can find that version in the branch If this is working for you then I'll tag |
|
@jsiwek Thank you for the quick feedback! As promised, CAF 0.16.5 is live, as well as CAF 0.17.3. |
Zeek's |
I was able to patch Zeek 3.0.0 to compile on OpenBSD 6.6 with the attached patches.
zeek-3.0.0-openbsd-Source.cc.patch.txt
The text was updated successfully, but these errors were encountered: