diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/libsoup')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/libsoup/3.x.nix | 102 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/libsoup/default.nix | 99 |
2 files changed, 201 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/libsoup/3.x.nix b/nixpkgs/pkgs/development/libraries/libsoup/3.x.nix new file mode 100644 index 000000000000..2b1c6e68795f --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/libsoup/3.x.nix @@ -0,0 +1,102 @@ +{ stdenv +, lib +, fetchurl +, glib +, meson +, ninja +, pkg-config +, gnome +, libsysprof-capture +, sqlite +, glib-networking +, gobject-introspection +, withIntrospection ? stdenv.buildPlatform == stdenv.hostPlatform +, vala +, withVala ? stdenv.buildPlatform == stdenv.hostPlatform +, libpsl +, python3 +, brotli +, libnghttp2 +}: + +stdenv.mkDerivation rec { + pname = "libsoup"; + version = "3.0.7"; + + outputs = [ "out" "dev" ]; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "sha256-69+QzzWZwRrLtoGKnZ4/ydLGjlbrgpuTlilyaD4b98g="; + }; + + nativeBuildInputs = [ + meson + ninja + pkg-config + glib + python3 + ] ++ lib.optionals withIntrospection [ + gobject-introspection + ] ++ lib.optionals withVala [ + vala + ]; + + buildInputs = [ + sqlite + libpsl + glib.out + brotli + libnghttp2 + ] ++ lib.optionals stdenv.isLinux [ + libsysprof-capture + ]; + + propagatedBuildInputs = [ + glib + ]; + + mesonFlags = [ + "-Dtls_check=false" # glib-networking is a runtime dependency, not a compile-time dependency + "-Dgssapi=disabled" + "-Dvapi=${if withVala then "enabled" else "disabled"}" + "-Dintrospection=${if withIntrospection then "enabled" else "disabled"}" + "-Dntlm=disabled" + # Requires wstest from autobahn-testsuite. + "-Dautobahn=disabled" + # Requires quart Python module. + "-Dhttp2_tests=disabled" + # Requires gnutls, not added for closure size. + "-Dpkcs11_tests=disabled" + ] ++ lib.optionals (!stdenv.isLinux) [ + "-Dsysprof=disabled" + ]; + + # TODO: For some reason the pkg-config setup hook does not pick this up. + PKG_CONFIG_PATH = "${libnghttp2.dev}/lib/pkgconfig"; + + # HSTS tests fail. + doCheck = false; + + postPatch = '' + patchShebangs libsoup/ + ''; + + passthru = { + propagatedUserEnvPackages = [ + glib-networking.out + ]; + updateScript = gnome.updateScript { + attrPath = "libsoup_3"; + packageName = pname; + versionPolicy = "odd-unstable"; + }; + }; + + meta = { + description = "HTTP client/server library for GNOME"; + homepage = "https://wiki.gnome.org/Projects/libsoup"; + license = lib.licenses.lgpl2Plus; + inherit (glib.meta) maintainers platforms; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/libsoup/default.nix b/nixpkgs/pkgs/development/libraries/libsoup/default.nix new file mode 100644 index 000000000000..9976f4109f0e --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/libsoup/default.nix @@ -0,0 +1,99 @@ +{ stdenv +, lib +, fetchurl +, glib +, libxml2 +, meson +, ninja +, pkg-config +, gnome +, libsysprof-capture +, gobject-introspection +, vala +, libpsl +, brotli +, gnomeSupport ? true +, sqlite +, glib-networking +}: + +stdenv.mkDerivation rec { + pname = "libsoup"; + version = "2.74.2"; + + outputs = [ "out" "dev" ]; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "sha256-8KQnZW5f4Z4d9xwQfojfobLmc8JcVHt4I7YBi0DQEVk="; + }; + + depsBuildBuild = [ + pkg-config + ]; + + nativeBuildInputs = [ + meson + ninja + pkg-config + glib + gobject-introspection + vala + ]; + + buildInputs = [ + gobject-introspection + sqlite + libpsl + glib.out + brotli + ] ++ lib.optionals stdenv.isLinux [ + libsysprof-capture + ]; + + propagatedBuildInputs = [ + glib + libxml2 + ]; + + mesonFlags = [ + "-Dtls_check=false" # glib-networking is a runtime dependency, not a compile-time dependency + "-Dgssapi=disabled" + "-Dgnome=${lib.boolToString gnomeSupport}" + "-Dntlm=disabled" + ] ++ lib.optionals (!stdenv.isLinux) [ + "-Dsysprof=disabled" + ]; + + NIX_CFLAGS_COMPILE = "-lpthread"; + + doCheck = false; # ERROR:../tests/socket-test.c:37:do_unconnected_socket_test: assertion failed (res == SOUP_STATUS_OK): (2 == 200) + + postPatch = '' + # fixes finding vapigen when cross-compiling + # the commit is in 3.0.6 + # https://gitlab.gnome.org/GNOME/libsoup/-/commit/5280e936d0a76f94dbc5d8489cfbdc0a06343f65 + substituteInPlace meson.build \ + --replace "required: vapi_opt)" "required: vapi_opt, native: false)" + + patchShebangs libsoup/ + ''; + + passthru = { + propagatedUserEnvPackages = [ + glib-networking.out + ]; + updateScript = gnome.updateScript { + packageName = pname; + versionPolicy = "odd-unstable"; + freeze = true; + }; + }; + + meta = { + description = "HTTP client/server library for GNOME"; + homepage = "https://wiki.gnome.org/Projects/libsoup"; + license = lib.licenses.lgpl2Plus; + inherit (glib.meta) maintainers platforms; + }; +} |