localPackages.winjob: try to fix unix socket binding

This commit is contained in:
2024-07-25 18:13:42 +08:00
parent a39966adab
commit 086281c6ad
4 changed files with 21 additions and 20 deletions

View File

@@ -77,12 +77,26 @@
(builtins.attrNames (builtins.readDir ./devices));
in
{
packages =
packages = rec
{
x86_64-linux = rec
{
pkgs = (import inputs.nixpkgs
{ system = "x86_64-linux"; config.allowUnfree = true; overlays = [ inputs.self.overlays.default ]; });
{
system = "x86_64-linux";
config.allowUnfree = true;
overlays = [ inputs.self.overlays.default ];
crossOverlays = [(final: prev:
{
boost = prev.boost.override { zstd = null; };
magic-enum = prev.magic-enum.overrideAttrs (prev: { cmakeFlags = prev.cmakeFlags ++
[ "-DMAGIC_ENUM_OPT_BUILD_EXAMPLES=OFF" "-DMAGIC_ENUM_OPT_BUILD_TESTS=OFF" ]; });
range-v3 = prev.range-v3.overrideAttrs (prev: { cmakeFlags = prev.cmakeFlags ++
[ "-DRANGE_V3_DOCS=OFF" "-DRANGE_V3_TESTS=OFF" "-DRANGE_V3_EXAMPLES=OFF" ]; });
abseil-cpp = prev.abseil-cpp.overrideAttrs (prev: { buildInputs = prev.buildInputs ++
[ final.windows.pthreads ]; });
})];
});
default = inputs.nixpkgs.legacyPackages.x86_64-linux.writeText "systems"
(builtins.concatStringsSep "\n" (builtins.map
(system: builtins.toString inputs.self.outputs.nixosConfigurations.${system}.config.system.build.toplevel)
@@ -108,19 +122,8 @@
);
x86_64-w64-mingw32 = rec
{
pkgs = (import inputs.nixpkgs
{
crossSystem = inputs.nixpkgs.lib.systems.examples.mingwW64 // { isStatic = true; };
system = "x86_64-linux";
config.allowUnfree = true;
overlays = [ inputs.self.overlays.default ];
});
boost = pkgs.boost.override { zstd = null; };
magic-enum = pkgs.magic-enum.overrideAttrs (prev: { cmakeFlags = prev.cmakeFlags ++
[ "-DMAGIC_ENUM_OPT_BUILD_EXAMPLES=OFF" "-DMAGIC_ENUM_OPT_BUILD_TESTS=OFF" ]; });
range-v3 = pkgs.range-v3.overrideAttrs (prev: { cmakeFlags = prev.cmakeFlags ++
[ "-DRANGE_V3_DOCS=OFF" "-DRANGE_V3_TESTS=OFF" "-DRANGE_V3_EXAMPLES=OFF" ]; });
winjob = pkgs.localPackages.winjob.override { inherit boost; };
pkgs = x86_64-linux.pkgs.pkgsCross.mingwW64;
winjob = pkgs.localPackages.winjob;
};
};
nixosConfigurations =

View File

@@ -13,8 +13,6 @@ endif()
set(WINJOB_VERSION "unknown" CACHE STRING "Version of the winjob")
find_package(Boost REQUIRED COMPONENTS headers filesystem)
find_package(protobuf REQUIRED)
find_package(gRPC REQUIRED)
add_executable(winjob src/winjob.cpp src/windows.cpp)
# target_compile_features(winjob PRIVATE cxx_std_26)

View File

@@ -1,11 +1,11 @@
{
stdenv, cmake, pkg-config, version ? null, lib,
boost, grpc
boost
}: stdenv.mkDerivation
{
name = "winjob";
src = ./.;
buildInputs = [ boost grpc ];
buildInputs = [ boost ];
nativeBuildInputs = [ cmake pkg-config ];
cmakeFlags = lib.optionals (version != null) [ "-DWINJOB_VERSION=${version}" ];
}

View File

@@ -5,7 +5,7 @@ int main()
{
boost::asio::io_context io_context;
boost::asio::local::stream_protocol::endpoint ep("winjobd.sock");
boost::asio::local::stream_protocol::acceptor acceptor(io_context, ep);
boost::asio::local::stream_protocol::acceptor acceptor(io_context, ep, false);
std::function<void(const boost::system::error_code&, boost::asio::local::stream_protocol::socket)> func =
[&](const boost::system::error_code& ec, boost::asio::local::stream_protocol::socket socket)
{