Merge pull request #216947 from mkg20001/openwrt

This commit is contained in:
Franz Pletz 2023-02-21 11:43:11 +01:00 committed by GitHub
commit 9ffd1c3e2e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 122 additions and 4 deletions

View file

@ -1,8 +1,8 @@
{ stdenv, lib, fetchgit, cmake, pkg-config, json_c, with_lua ? false, lua5_1 }:
{ stdenv, lib, fetchgit, cmake, pkg-config, json_c, with_lua ? false, lua5_1, with_ustream_ssl ? false, ustream-ssl }:
stdenv.mkDerivation {
pname = "libubox";
version = "unstable-2023-01-03";
version = "unstable-2023-01-03${lib.optionalString with_ustream_ssl "-${ustream-ssl.ssl_implementation.pname}"}";
src = fetchgit {
url = "https://git.openwrt.org/project/libubox.git";
@ -13,7 +13,14 @@ stdenv.mkDerivation {
cmakeFlags = [ "-DBUILD_EXAMPLES=OFF" (if with_lua then "-DLUAPATH=${placeholder "out"}/lib/lua" else "-DBUILD_LUA=OFF") ];
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [ json_c ] ++ lib.optional with_lua lua5_1;
buildInputs = [ json_c ] ++ lib.optional with_lua lua5_1 ++ lib.optional with_ustream_ssl ustream-ssl;
postInstall = lib.optionalString with_ustream_ssl ''
for fin in $(find ${ustream-ssl} -type f); do
fout="''${fin/"${ustream-ssl}"/"''${out}"}"
ln -s "$fin" "$fout"
done
'';
meta = with lib; {
description = "C utility functions for OpenWrt";

View file

@ -0,0 +1,30 @@
{ stdenv, lib, fetchgit, cmake, pkg-config, libubox }:
stdenv.mkDerivation {
pname = "uclient";
version = "unstable-2022-02-24";
src = fetchgit {
url = "https://git.openwrt.org/project/uclient.git";
rev = "644d3c7e13c6a64bf5cb628137ee5bd4dada4b74";
sha256 = "0vy4whs64699whp92d1zl7a8kh16yrfywqq0yp2y809l9z19sw22";
};
nativeBuildInputs = [ cmake pkg-config ];
buidInputs = [ libubox ];
preConfigure = ''
sed -e 's|ubox_include_dir libubox/ustream-ssl.h|ubox_include_dir libubox/ustream-ssl.h HINTS ${libubox}/include|g' \
-e 's|ubox_library NAMES ubox|ubox_library NAMES ubox HINTS ${libubox}/lib|g' \
-i CMakeLists.txt
'';
meta = with lib; {
description = "Tiny OpenWrt fork of libnl";
homepage = "https://git.openwrt.org/?p=project/uclient.git;a=summary";
license = licenses.isc;
maintainers = with maintainers; [ mkg20001 ];
mainProgram = "uclient-fetch";
platforms = platforms.all;
};
}

View file

@ -0,0 +1,37 @@
{ stdenv, lib, fetchgit, cmake, pkg-config, libubox-nossl, ssl_implementation }:
stdenv.mkDerivation {
pname = "ustream-ssl";
version = "unstable-2022-12-08-${ssl_implementation.pname}";
src = fetchgit {
url = "https://git.openwrt.org/project/ustream-ssl.git";
rev = "9217ab46536353c7c792951b57163063f5ec7a3b";
sha256 = "1ldyyb3is213iljyccx98f56rb69rfpgdcb1kjxw9a176hvpipdd";
};
preConfigure = ''
sed -r \
-e "s|ubox_include_dir libubox/ustream.h|ubox_include_dir libubox/ustream.h HINTS ${libubox-nossl}/include|g" \
-e "s|ubox_library NAMES ubox|ubox_library NAMES ubox HINTS ${libubox-nossl}/lib|g" \
-e "s|^ FIND_LIBRARY\((.+)\)| FIND_LIBRARY\(\1 HINTS ${if ssl_implementation ? lib then ssl_implementation.lib else ssl_implementation.out}\)|g" \
-i CMakeLists.txt
'';
cmakeFlags = [ "-D${lib.toUpper ssl_implementation.pname}=ON" ];
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [ ssl_implementation ];
passthru = {
inherit ssl_implementation;
};
meta = with lib; {
description = "ustream SSL wrapper";
homepage = "https://git.openwrt.org/?p=project/ustream-ssl.git;a=summary";
license = licenses.isc;
maintainers = with maintainers; [ fpletz ];
platforms = platforms.all;
};
}

View file

@ -0,0 +1,28 @@
{ stdenv, lib, fetchgit, cmake, pkg-config }:
stdenv.mkDerivation {
pname = "libnl-tiny";
version = "unstable-2022-12-13";
src = fetchgit {
url = "https://git.openwrt.org/project/libnl-tiny.git";
rev = "f5d9b7e4f534a69cbd35c3f150fa6d57b9d631e4";
sha256 = "0c5ycsdas8rr5c33gd0mnmm515dq631fmdjn5mp2j1m0j1bk7hc0";
};
nativeBuildInputs = [ cmake pkg-config ];
preConfigure = ''
sed -e 's|''${prefix}/@CMAKE_INSTALL_LIBDIR@|@CMAKE_INSTALL_FULL_LIBDIR@|g' \
-e 's|''${prefix}/@CMAKE_INSTALL_INCLUDEDIR@|@CMAKE_INSTALL_FULL_INCLUDEDIR@|g' \
-i libnl-tiny.pc.in
'';
meta = with lib; {
description = "Tiny OpenWrt fork of libnl";
homepage = "https://git.openwrt.org/?p=project/libnl-tiny.git;a=summary";
license = licenses.isc;
maintainers = with maintainers; [ mkg20001 ];
platforms = platforms.all;
};
}

View file

@ -19388,6 +19388,14 @@ with pkgs;
uci = callPackage ../development/libraries/uci { };
uclient = callPackage ../development/libraries/uclient { };
ustream-ssl = callPackage ../development/libraries/ustream-ssl { ssl_implementation = openssl; };
ustream-ssl-wolfssl = callPackage ../development/libraries/ustream-ssl { ssl_implementation = wolfssl; };
ustream-ssl-mbedtls = callPackage ../development/libraries/ustream-ssl { ssl_implementation = mbedtls_2; };
uri = callPackage ../development/libraries/uri { stdenv = gcc10StdenvCompat; };
cppcms = callPackage ../development/libraries/cppcms { };
@ -21832,7 +21840,13 @@ with pkgs;
libu2f-server = callPackage ../development/libraries/libu2f-server { };
libubox = callPackage ../development/libraries/libubox { };
libubox-nossl = callPackage ../development/libraries/libubox { };
libubox = callPackage ../development/libraries/libubox { with_ustream_ssl = true; };
libubox-wolfssl = callPackage ../development/libraries/libubox { with_ustream_ssl = true; ustream-ssl = ustream-ssl-wolfssl; };
libubox-mbedtls = callPackage ../development/libraries/libubox { with_ustream_ssl = true; ustream-ssl = ustream-ssl-mbedtls; };
libudev-zero = callPackage ../development/libraries/libudev-zero { };
@ -26011,6 +26025,8 @@ with pkgs;
libnl = callPackage ../os-specific/linux/libnl { };
libnl-tiny = callPackage ../os-specific/linux/libnl-tiny { };
libtraceevent = callPackage ../os-specific/linux/libtraceevent {};
libtracefs = callPackage ../os-specific/linux/libtracefs {};