diff options
Diffstat (limited to 'pkgs/by-name/li')
41 files changed, 609 insertions, 72 deletions
diff --git a/pkgs/by-name/li/lib60870/package.nix b/pkgs/by-name/li/lib60870/package.nix index f5c744e71098b..9d8e959b99137 100644 --- a/pkgs/by-name/li/lib60870/package.nix +++ b/pkgs/by-name/li/lib60870/package.nix @@ -17,12 +17,12 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-9o+gWQbpCJb+UZzPNmzGqpWD0QbGjg41is/f1POUEQs="; }; + sourceRoot = "${finalAttrs.src.name}/lib60870-C"; + separateDebugInfo = true; nativeBuildInputs = [ cmake ]; - preConfigure = "cd lib60870-C"; - passthru.updateScript = gitUpdater { rev-prefix = "v"; }; meta = with lib; { @@ -30,6 +30,6 @@ stdenv.mkDerivation (finalAttrs: { homepage = "https://libiec61850.com/"; license = licenses.gpl3Only; maintainers = with maintainers; [ stv0g ]; - platforms = platforms.linux; + platforms = platforms.unix; }; }) diff --git a/pkgs/by-name/li/libation/package.nix b/pkgs/by-name/li/libation/package.nix index 692de5d3d909a..4ee6e09f33bdc 100644 --- a/pkgs/by-name/li/libation/package.nix +++ b/pkgs/by-name/li/libation/package.nix @@ -88,7 +88,7 @@ buildDotnetModule rec { meta = { changelog = "https://github.com/rmcrackan/Libation/releases/tag/${src.rev}"; - description = "An Audible audiobook manager"; + description = "Audible audiobook manager"; homepage = "https://github.com/rmcrackan/Libation"; license = lib.licenses.gpl3Only; mainProgram = "libation"; diff --git a/pkgs/by-name/li/libburn/package.nix b/pkgs/by-name/li/libburn/package.nix index 701a511dc9076..7085551c72388 100644 --- a/pkgs/by-name/li/libburn/package.nix +++ b/pkgs/by-name/li/libburn/package.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation (finalAttrs: { meta = { homepage = "https://dev.lovelyhq.com/libburnia/web/wiki"; - description = "A library by which preformatted data get onto optical media: CD, DVD, BD (Blu-Ray)"; + description = "Library by which preformatted data get onto optical media: CD, DVD, BD (Blu-Ray)"; changelog = "https://dev.lovelyhq.com/libburnia/libburn/src/tag/${finalAttrs.src.rev}/ChangeLog"; license = lib.licenses.gpl2Plus; maintainers = with lib.maintainers; [ abbradar AndersonTorres ]; diff --git a/pkgs/by-name/li/libcamera/package.nix b/pkgs/by-name/li/libcamera/package.nix index 8bf654f209037..c122f840df32e 100644 --- a/pkgs/by-name/li/libcamera/package.nix +++ b/pkgs/by-name/li/libcamera/package.nix @@ -9,7 +9,6 @@ , libdrm , libevent , libyaml -, lttng-ust , gst_all_1 , gtest , graphviz @@ -17,6 +16,8 @@ , python3 , python3Packages , systemd # for libudev +, withTracing ? lib.meta.availableOn stdenv.hostPlatform lttng-ust +, lttng-ust # withTracing , withQcam ? false , qt5 # withQcam , libtiff # withQcam @@ -67,14 +68,12 @@ stdenv.mkDerivation rec { # hotplugging systemd - # lttng tracing - lttng-ust - # yamlparser libyaml gtest - ] ++ lib.optionals withQcam [ libtiff qt5.qtbase qt5.qttools ]; + ] ++ lib.optionals withTracing [ lttng-ust ] + ++ lib.optionals withQcam [ libtiff qt5.qtbase qt5.qttools ]; nativeBuildInputs = [ meson @@ -92,7 +91,8 @@ stdenv.mkDerivation rec { mesonFlags = [ "-Dv4l2=true" - "-Dqcam=${if withQcam then "enabled" else "disabled"}" + (lib.mesonEnable "tracing" withTracing) + (lib.mesonEnable "qcam" withQcam) "-Dlc-compliance=disabled" # tries unconditionally to download gtest when enabled # Avoid blanket -Werror to evade build failures on less # tested compilers. @@ -110,7 +110,7 @@ stdenv.mkDerivation rec { FONTCONFIG_FILE = makeFontsConf { fontDirectories = [ ]; }; meta = with lib; { - description = "An open source camera stack and framework for Linux, Android, and ChromeOS"; + description = "Open source camera stack and framework for Linux, Android, and ChromeOS"; homepage = "https://libcamera.org"; license = licenses.lgpl2Plus; maintainers = with maintainers; [ citadelcore ]; diff --git a/pkgs/by-name/li/libcpuid/package.nix b/pkgs/by-name/li/libcpuid/package.nix index 6cbc2c689cab8..8378a804fdcf0 100644 --- a/pkgs/by-name/li/libcpuid/package.nix +++ b/pkgs/by-name/li/libcpuid/package.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { meta = with lib; { homepage = "https://libcpuid.sourceforge.net/"; - description = "A small C library for x86 CPU detection and feature extraction"; + description = "Small C library for x86 CPU detection and feature extraction"; mainProgram = "cpuid_tool"; changelog = "https://raw.githubusercontent.com/anrieff/libcpuid/master/ChangeLog"; license = licenses.bsd2; diff --git a/pkgs/by-name/li/libedit/package.nix b/pkgs/by-name/li/libedit/package.nix index aeb79811d6e78..eb228ae3217bd 100644 --- a/pkgs/by-name/li/libedit/package.nix +++ b/pkgs/by-name/li/libedit/package.nix @@ -42,7 +42,7 @@ stdenv.mkDerivation (finalAttrs: { meta = { homepage = "http://www.thrysoee.dk/editline/"; - description = "A port of the NetBSD Editline library (libedit)"; + description = "Port of the NetBSD Editline library (libedit)"; longDescription = '' This is an autotool- and libtoolized port of the NetBSD Editline library (libedit). This Berkeley-style licensed command line editor library diff --git a/pkgs/by-name/li/libeduvpn-common/package.nix b/pkgs/by-name/li/libeduvpn-common/package.nix index cafe417348cb3..a0b559fa31e7a 100644 --- a/pkgs/by-name/li/libeduvpn-common/package.nix +++ b/pkgs/by-name/li/libeduvpn-common/package.nix @@ -5,11 +5,11 @@ buildGoModule rec { pname = "libeduvpn-common"; - version = "1.2.1"; + version = "2.0.1"; src = fetchurl { url = "https://github.com/eduvpn/eduvpn-common/releases/download/${version}/eduvpn-common-${version}.tar.xz"; - hash = "sha256-MCMbOVDx9nQwTLH8EjCFD2T6mFwwFX8Jvae8PIrstvU="; + hash = "sha256-hTF9CSqU9c0+TOK+/oRGjY1fBCKpisiiTJnWZqcdvjA="; }; vendorHash = null; diff --git a/pkgs/by-name/li/libepubgen/package.nix b/pkgs/by-name/li/libepubgen/package.nix index 906642f140293..ec0901ec43855 100644 --- a/pkgs/by-name/li/libepubgen/package.nix +++ b/pkgs/by-name/li/libepubgen/package.nix @@ -32,7 +32,7 @@ stdenv.mkDerivation rec { ]; meta = with lib; { - description = "An EPUB generator for librevenge"; + description = "EPUB generator for librevenge"; homepage = "https://sourceforge.net/projects/libepubgen/"; license = licenses.mpl20; maintainers = [ ]; diff --git a/pkgs/by-name/li/libetonyek/package.nix b/pkgs/by-name/li/libetonyek/package.nix index 4d0811ace7ba7..8ff8349b9d400 100644 --- a/pkgs/by-name/li/libetonyek/package.nix +++ b/pkgs/by-name/li/libetonyek/package.nix @@ -44,7 +44,7 @@ stdenv.mkDerivation rec { configureFlags = ["--with-mdds=2.1"]; meta = with lib; { - description = "A library and a set of tools for reading and converting Apple iWork documents (Keynote, Pages and Numbers)."; + description = "Library and a set of tools for reading and converting Apple iWork documents (Keynote, Pages and Numbers)"; homepage = "https://github.com/LibreOffice/libetonyek"; changelog = "https://github.com/LibreOffice/libetonyek/blob/${src.rev}/NEWS"; license = licenses.mpl20; diff --git a/pkgs/by-name/li/libfmvoice/package.nix b/pkgs/by-name/li/libfmvoice/package.nix index 294b9c34c6b42..cccc2f512e547 100644 --- a/pkgs/by-name/li/libfmvoice/package.nix +++ b/pkgs/by-name/li/libfmvoice/package.nix @@ -7,13 +7,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "libfmvoice"; - version = "0-unstable-2024-05-30"; + version = "0-unstable-2024-06-06"; src = fetchFromGitHub { owner = "vampirefrog"; repo = "libfmvoice"; - rev = "0e58cfb323dc6461c705a5fadac4362a17fbec4e"; - hash = "sha256-HyGB180roo28vJ+11/ocoKu1kHpn6GxtEg9NluQsECg="; + rev = "cd89a6a386b3b17c74b1caca11e297b2748cf90d"; + hash = "sha256-yak+pKxkrKOX/qgtwpldjd85deE/JB040bVjDD1mo7A="; }; strictDeps = true; diff --git a/pkgs/by-name/li/libgff/package.nix b/pkgs/by-name/li/libgff/package.nix index fe3473f2e4df8..fc81cd0927776 100644 --- a/pkgs/by-name/li/libgff/package.nix +++ b/pkgs/by-name/li/libgff/package.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ cmake ]; meta = { - description = "A lightweight GTF/GFF parsers exposing a C++ interface"; + description = "Lightweight GTF/GFF parsers exposing a C++ interface"; homepage = "https://github.com/COMBINE-lab/libgff"; downloadPage = "https://github.com/COMBINE-lab/libgff/releases"; changelog = "https://github.com/COMBINE-lab/libgff/releases/tag/" + diff --git a/pkgs/by-name/li/libiconv-darwin/0001-Support-static-module-loading.patch b/pkgs/by-name/li/libiconv-darwin/0001-Support-static-module-loading.patch new file mode 100644 index 0000000000000..691b483b27efe --- /dev/null +++ b/pkgs/by-name/li/libiconv-darwin/0001-Support-static-module-loading.patch @@ -0,0 +1,72 @@ +From a3e945c630180e9aa182603207238302e58fe8fe Mon Sep 17 00:00:00 2001 +From: Randy Eckenrode <randy@largeandhighquality.com> +Date: Sat, 25 May 2024 19:03:58 -0400 +Subject: [PATCH 1/2] Support static module loading + +--- + citrus/citrus_module.c | 21 ++++++++++++++++++--- + 1 file changed, 18 insertions(+), 3 deletions(-) + +diff --git a/citrus/citrus_module.c b/citrus/citrus_module.c +index 5103d30..c22c9da 100644 +--- a/citrus/citrus_module.c ++++ b/citrus/citrus_module.c +@@ -324,22 +324,36 @@ out: + return (path[0] ? path : NULL); + } + ++#if defined(ENABLE_STATIC) ++#include "static-modules.h" ++#endif ++ + void * + _citrus_find_getops(_citrus_module_t handle, const char *modname, + const char *ifname) + { + char name[PATH_MAX]; + void *p; +- ++#if defined(ENABLE_STATIC) ++ const struct getops_pair* res = lookup_getops(modname, strlen(modname)); ++ p = res ? res->opsfn : NULL; ++#else + snprintf(name, sizeof(name), "_citrus_%s_%s_getops", + modname, ifname); + p = dlsym((void *)handle, name); ++#endif + return (p); + } + + int + _citrus_load_module(_citrus_module_t *rhandle, const char *encname) + { ++#if defined(ENABLE_STATIC) ++ if (is_known_encoding(encname, strnlen(encname, MAX_WORD_LENGTH)) > MAX_HASH_VALUE) { ++ return (EINVAL); ++ } ++ *rhandle = (_citrus_module_t)encodings; ++#else + const char *p; + char path[PATH_MAX]; + void *handle; +@@ -368,14 +382,15 @@ _citrus_load_module(_citrus_module_t *rhandle, const char *encname) + } + + *rhandle = (_citrus_module_t)handle; +- ++#endif + return (0); + } + + void + _citrus_unload_module(_citrus_module_t handle) + { +- ++#if !defined(ENABLE_STATIC) + if (handle) + dlclose((void *)handle); ++#endif + } +-- +2.44.1 + diff --git a/pkgs/by-name/li/libiconv-darwin/0002-Fix-ISO-2022-out-of-bounds-write-with-encoded-charac.patch b/pkgs/by-name/li/libiconv-darwin/0002-Fix-ISO-2022-out-of-bounds-write-with-encoded-charac.patch new file mode 100644 index 0000000000000..e6bce71abd938 --- /dev/null +++ b/pkgs/by-name/li/libiconv-darwin/0002-Fix-ISO-2022-out-of-bounds-write-with-encoded-charac.patch @@ -0,0 +1,43 @@ +From 6a2c81d23558d19a68d5494f8f8618bd55c89405 Mon Sep 17 00:00:00 2001 +From: Randy Eckenrode <randy@largeandhighquality.com> +Date: Mon, 27 May 2024 13:43:43 -0400 +Subject: [PATCH 2/2] Fix ISO-2022 out-of-bounds write with encoded characters + +--- + libiconv_modules/ISO2022/citrus_iso2022.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/libiconv_modules/ISO2022/citrus_iso2022.c b/libiconv_modules/ISO2022/citrus_iso2022.c +index 46da1d6..c2eeaa8 100644 +--- a/libiconv_modules/ISO2022/citrus_iso2022.c ++++ b/libiconv_modules/ISO2022/citrus_iso2022.c +@@ -1031,7 +1031,7 @@ _ISO2022_sputwchar(_ISO2022EncodingInfo * __restrict ei, wchar_t wc, + { + _ISO2022Charset cs; + char *p; +- char tmp[MB_LEN_MAX]; ++ char tmp[MB_LEN_MAX + 4]; + size_t len; + int bit8, i = 0, target; + unsigned char mask; +@@ -1196,7 +1196,7 @@ _citrus_ISO2022_put_state_reset(_ISO2022EncodingInfo * __restrict ei, + size_t * __restrict nresult) + { + char *result; +- char buf[MB_LEN_MAX]; ++ char buf[MB_LEN_MAX + 4]; + size_t len; + int ret; + +@@ -1225,7 +1225,7 @@ _citrus_ISO2022_wcrtomb_priv(_ISO2022EncodingInfo * __restrict ei, + _ISO2022State * __restrict psenc, size_t * __restrict nresult) + { + char *result; +- char buf[MB_LEN_MAX]; ++ char buf[MB_LEN_MAX + 4]; + size_t len; + int ret; + +-- +2.44.1 + diff --git a/pkgs/by-name/li/libiconv-darwin/meson.build b/pkgs/by-name/li/libiconv-darwin/meson.build index 99adeb7fe0849..9473cb8911423 100644 --- a/pkgs/by-name/li/libiconv-darwin/meson.build +++ b/pkgs/by-name/li/libiconv-darwin/meson.build @@ -19,6 +19,19 @@ i18nmoduledir = prefix_libdir / 'i18n' esdbdir = prefix_datadir / 'i18n/esdb' csmapperdir = prefix_datadir / 'i18n/csmapper' +is_static = get_option('default_library') == 'static' +static_suffix = is_static ? '_static' : '' + +# Generators +if is_static + gperf_bin = find_program('gperf', required : true) + gperf = generator( + gperf_bin, + arguments : ['@INPUT@', '--output-file=@OUTPUT@'], + output : '@BASENAME@.h' + ) +endif + # Libraries libcharset = library( @@ -37,15 +50,16 @@ install_headers( ) libiconv = library( - 'iconv', + 'iconv' + static_suffix, build_rpath : fs.parent(libcharset.full_path()), c_args : [ f'-D_PATH_I18NMODULE="@i18nmoduledir@"', f'-D_PATH_ESDB="@esdbdir@"', - f'-D_PATH_CSMAPPER="@csmapperdir@"' + f'-D_PATH_CSMAPPER="@csmapperdir@"', + is_static ? '-DENABLE_STATIC=1' : [ ] ], darwin_versions : '7', - install : true, + install : not is_static, include_directories : ['citrus', 'libcharset'], link_args : ['-Wl,-reexport_library', fs.name(libcharset.full_path())], link_depends : [libcharset], @@ -84,6 +98,7 @@ libiconv = library( 'citrus/iconvctl.c', 'citrus/iconvlist.c', 'citrus/iconv.c', + is_static ? gperf.process('static-modules.gperf') : [ ] ], soversion : '2' ) @@ -99,19 +114,6 @@ install_man( ) -# Binaries -executable( - 'iconv', - install : true, - include_directories : ['citrus', 'libcharset'], - link_with : [libiconv], - sources : [ - 'iconv/iconv.c' - ] -) -install_man('iconv/iconv.1') - - # Data ## csmapper csmapper_modules = [ @@ -216,6 +218,7 @@ libiconv_modules = [ 'mapper_zone' ] +modules = [ ] foreach module : libiconv_modules module_source = module.to_lower() module_path = 'libiconv_modules' / module @@ -230,14 +233,19 @@ foreach module : libiconv_modules # See: https://github.com/apple-oss-distributions/libiconv/blob/81be60a93521c931a01aab9c747dd2b078bc0679/libiconv.xcodeproj/project.pbxproj#L2549-L2556 # See also: https://cgit.freebsd.org/src/tree/lib/libiconv_modules/mapper_parallel/Makefile?id=9241ebc796c11cf133c550f188f324bd2c12d89a if module == 'mapper_parallel' + # Skip including mapper_parallel since it’s the same as mapper_serial, which would result in duplicate symbols. + if is_static + continue + endif + module_source = 'mapper_serial' module_path = 'libiconv_modules/mapper_serial' endif - library( + modules += library( module, darwin_versions : '1', - install : true, + install : not is_static, install_dir : i18nmoduledir, include_directories : [module_path, 'citrus', 'libcharset'] + extra_headers, link_with : [libiconv], @@ -249,6 +257,38 @@ foreach module : libiconv_modules endforeach +# Bundle the modules into libiconv.a +if is_static + objects = [libiconv.extract_all_objects(recursive : true)] + foreach module : modules + objects += module.extract_all_objects(recursive : true) + endforeach + + libiconv = static_library( + 'iconv', + install : true, + objects : objects + ) +endif + + +# Binaries +executable( + 'iconv', + install : true, + include_directories : ['citrus', 'libcharset'], + link_with : [ + libiconv, + # Darwin’s system `iconv` relies on the reexported symbols from libiconv + is_static ? libcharset : [ ] + ], + sources : [ + 'iconv/iconv.c' + ] +) +install_man('iconv/iconv.1') + + # Tests if get_option('tests') == true ## Only required for running the tests @@ -259,7 +299,11 @@ if get_option('tests') == true suite, dependencies : [atf], include_directories : ['citrus', 'libcharset'], - link_with : [libiconv], + link_with : [ + libiconv, + # Make sure the libcharset reexport is working by relying on libiconv to provide its symbols. + is_static ? libcharset : [ ] + ], sources : [test_src] ) diff --git a/pkgs/by-name/li/libiconv-darwin/nixpkgs_test.c b/pkgs/by-name/li/libiconv-darwin/nixpkgs_test.c index 40400ef832832..90981c5820f35 100644 --- a/pkgs/by-name/li/libiconv-darwin/nixpkgs_test.c +++ b/pkgs/by-name/li/libiconv-darwin/nixpkgs_test.c @@ -73,10 +73,44 @@ ATF_TC_BODY(test_cp932_cp932, tc) ATF_CHECK_STREQ(expected, output); } +ATF_TC(test_iso2022_crash); +ATF_TC_HEAD(test_iso2022_crash, tc) +{ + atf_tc_set_md_var(tc, "descr", "regression test for converting to ISO-2022 with escape sequences"); +} +ATF_TC_BODY(test_iso2022_crash, tc) +{ + char expected[] = ""; + size_t expected_length = sizeof(expected) - 1; + + char input[] = "\x41\x41\x41\x41\x41\xe5\x8a\x84"; + size_t input_length = sizeof(input) - 1; + + size_t output_available = sizeof(expected) - 1 ; + char output[sizeof(expected)] = { 0 }; + + iconv_t cd = iconv_open("ISO-2022-CN-EXT", "UTF-8"); + ATF_REQUIRE((size_t)cd != -1); + + char* input_buf = input; + char* output_buf = output; + + size_t res = iconv(cd, &input_buf, &input_length, &output_buf, &output_available); + iconv_close(cd); + + ATF_CHECK(res == -1); + + size_t output_length = sizeof(output) - output_available - 1; + + ATF_CHECK_INTEQ(expected_length, output_length); + ATF_CHECK_STREQ(expected, output); +} + ATF_TP_ADD_TCS(tp) { ATF_TP_ADD_TC(tp, test_cp932_eucjp); ATF_TP_ADD_TC(tp, test_cp932_cp932); + ATF_TP_ADD_TC(tp, test_iso2022_crash); return atf_no_error(); } diff --git a/pkgs/by-name/li/libiconv-darwin/package.nix b/pkgs/by-name/li/libiconv-darwin/package.nix index 0cb34224a6c78..5792568852ff6 100644 --- a/pkgs/by-name/li/libiconv-darwin/package.nix +++ b/pkgs/by-name/li/libiconv-darwin/package.nix @@ -3,6 +3,7 @@ stdenv, fetchFromGitHub, atf, + gperf, libiconvReal, meson, ninja, @@ -10,6 +11,9 @@ gitUpdater, }: +let + inherit (stdenv) hostPlatform; +in stdenv.mkDerivation (finalAttrs: { pname = "libiconv"; version = "99"; @@ -19,6 +23,9 @@ stdenv.mkDerivation (finalAttrs: { "dev" ]; + # Propagate `out` only when there are dylibs to link (i.e., don’t propagate when doing a static build). + propagatedBuildOutputs = lib.optionalString (!hostPlatform.isStatic) "out"; + src = fetchFromGitHub { owner = "apple-oss-distributions"; repo = "libiconv"; @@ -26,7 +33,13 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-TGt6rsU52ztfW2rCqwnhMAExLbexI/59IoDOGY+XGu0="; }; - inherit (libiconvReal) setupHooks; + setupHooks = + libiconvReal.setupHooks + ++ lib.optionals hostPlatform.isStatic [ ./static-setup-hook.sh ]; + + patches = lib.optionals hostPlatform.isStatic [ ./0001-Support-static-module-loading.patch ] ++ [ + ./0002-Fix-ISO-2022-out-of-bounds-write-with-encoded-charac.patch + ]; postPatch = '' @@ -41,30 +54,42 @@ stdenv.mkDerivation (finalAttrs: { header cp ${./nixpkgs_test.c} tests/libiconv/nixpkgs_test.c + '' + + lib.optionalString hostPlatform.isStatic '' + cp ${./static-modules.gperf} static-modules.gperf ''; strictDeps = true; - nativeBuildInputs = [ - meson - ninja - ]; + nativeBuildInputs = + [ + meson + ninja + ] + # Dynamic builds use `dlopen` to load modules, but static builds have to link them all. + # `gperf` is used to generate a lookup table from module to ops functions. + ++ lib.optionals hostPlatform.isStatic [ gperf ]; mesonBuildType = "release"; mesonFlags = [ (lib.mesonBool "tests" finalAttrs.doInstallCheck) ]; - postInstall = lib.optionalString stdenv.isDarwin '' - ${stdenv.cc.targetPrefix}install_name_tool "$out/lib/libiconv.2.dylib" \ - -change '@rpath/libcharset.1.dylib' "$out/lib/libcharset.1.dylib" - ''; + postInstall = + lib.optionalString (stdenv.isDarwin && !hostPlatform.isStatic) '' + ${stdenv.cc.targetPrefix}install_name_tool "$out/lib/libiconv.2.dylib" \ + -change '@rpath/libcharset.1.dylib' "$out/lib/libcharset.1.dylib" + '' + # Move the static library to the `dev` output + + lib.optionalString hostPlatform.isStatic '' + moveToOutput lib "$dev" + ''; # Tests have to be run in `installCheckPhase` because libiconv expects to `dlopen` # modules from `$out/lib/i18n`. nativeInstallCheckInputs = [ pkg-config ]; installCheckInputs = [ atf ]; - doInstallCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform; + doInstallCheck = stdenv.buildPlatform.canExecute hostPlatform; # Can’t use `mesonCheckPhase` because it runs the wrong hooks for `installCheckPhase`. installCheckPhase = '' @@ -78,7 +103,7 @@ stdenv.mkDerivation (finalAttrs: { __structuredAttrs = true; meta = { - description = "An iconv(3) implementation"; + description = "Iconv(3) implementation"; homepage = "https://opensource.apple.com/releases/"; license = with lib.licenses; diff --git a/pkgs/by-name/li/libiconv-darwin/static-modules.gperf b/pkgs/by-name/li/libiconv-darwin/static-modules.gperf new file mode 100644 index 0000000000000..be916fb257ec2 --- /dev/null +++ b/pkgs/by-name/li/libiconv-darwin/static-modules.gperf @@ -0,0 +1,73 @@ +%language=ANSI-C +%compare-strncmp +%pic +%readonly-tables +%{ +#include "citrus_namespace.h" +#include "citrus_types.h" +#include "citrus_module.h" +#include "citrus_hash.h" + +#include "citrus_iconv.h" +#include "citrus_mapper.h" +#include "citrus_stdenc.h" + +extern _CITRUS_STDENC_GETOPS_FUNC(BIG5); +extern _CITRUS_STDENC_GETOPS_FUNC(DECHanyu); +extern _CITRUS_STDENC_GETOPS_FUNC(DECKanji); +extern _CITRUS_STDENC_GETOPS_FUNC(EUC); +extern _CITRUS_STDENC_GETOPS_FUNC(EUCTW); +extern _CITRUS_STDENC_GETOPS_FUNC(GBK2K); +extern _CITRUS_STDENC_GETOPS_FUNC(HZ); +extern _CITRUS_STDENC_GETOPS_FUNC(ISO2022); +extern _CITRUS_STDENC_GETOPS_FUNC(JOHAB); +extern _CITRUS_STDENC_GETOPS_FUNC(MSKanji); +extern _CITRUS_STDENC_GETOPS_FUNC(UES); +extern _CITRUS_STDENC_GETOPS_FUNC(UTF1632); +extern _CITRUS_STDENC_GETOPS_FUNC(UTF7); +extern _CITRUS_STDENC_GETOPS_FUNC(UTF8); +extern _CITRUS_STDENC_GETOPS_FUNC(UTF8MAC); +extern _CITRUS_STDENC_GETOPS_FUNC(VIQR); +extern _CITRUS_STDENC_GETOPS_FUNC(ZW); + +extern _CITRUS_ICONV_GETOPS_FUNC(iconv_none); +extern _CITRUS_ICONV_GETOPS_FUNC(iconv_std); + +extern _CITRUS_MAPPER_GETOPS_FUNC(mapper_646); +extern _CITRUS_MAPPER_GETOPS_FUNC(mapper_none); +extern _CITRUS_MAPPER_GETOPS_FUNC(mapper_parallel); +extern _CITRUS_MAPPER_GETOPS_FUNC(mapper_serial); +extern _CITRUS_MAPPER_GETOPS_FUNC(mapper_std); +extern _CITRUS_MAPPER_GETOPS_FUNC(mapper_zone); +%} +%define lookup-function-name lookup_getops +%define hash-function-name is_known_encoding +%define string-pool-name encodings +%struct-type +struct getops_pair { int name; void* opsfn; }; +%% +BIG5, _citrus_BIG5_stdenc_getops +DECHanyu, _citrus_DECHanyu_stdenc_getops +DECKanji, _citrus_DECKanji_stdenc_getops +EUC, _citrus_EUC_stdenc_getops +EUCTW, _citrus_EUCTW_stdenc_getops +GBK2K, _citrus_GBK2K_stdenc_getops +HZ, _citrus_HZ_stdenc_getops +ISO2022, _citrus_ISO2022_stdenc_getops +JOHAB, _citrus_JOHAB_stdenc_getops +MSKanji, _citrus_MSKanji_stdenc_getops +UES, _citrus_UES_stdenc_getops +UTF1632, _citrus_UTF1632_stdenc_getops +UTF7, _citrus_UTF7_stdenc_getops +UTF8, _citrus_UTF8_stdenc_getops +UTF8MAC, _citrus_UTF8MAC_stdenc_getops +VIQR, _citrus_VIQR_stdenc_getops +ZW, _citrus_ZW_stdenc_getops +iconv_none, _citrus_iconv_none_iconv_getops +iconv_std, _citrus_iconv_std_iconv_getops +mapper_646, _citrus_mapper_646_mapper_getops +mapper_none, _citrus_mapper_none_mapper_getops +mapper_serial, _citrus_mapper_serial_mapper_getops +mapper_parallel, _citrus_mapper_parallel_mapper_getops +mapper_std, _citrus_mapper_std_mapper_getops +mapper_zone, _citrus_mapper_zone_mapper_getops diff --git a/pkgs/by-name/li/libiconv-darwin/static-setup-hook.sh b/pkgs/by-name/li/libiconv-darwin/static-setup-hook.sh new file mode 100644 index 0000000000000..2ad108b82f1d2 --- /dev/null +++ b/pkgs/by-name/li/libiconv-darwin/static-setup-hook.sh @@ -0,0 +1,5 @@ +# Darwin’s dynamic libiconv reexports libcharset, so reproduce that in static builds. +if [ -z "${dontAddExtraLibs-}" ]; then + getHostRole + export NIX_LDFLAGS${role_post}+=" -lcharset" +fi diff --git a/pkgs/by-name/li/libideviceactivation/package.nix b/pkgs/by-name/li/libideviceactivation/package.nix index 74ee9ddc2cc9c..dffe780d28a87 100644 --- a/pkgs/by-name/li/libideviceactivation/package.nix +++ b/pkgs/by-name/li/libideviceactivation/package.nix @@ -42,7 +42,7 @@ stdenv.mkDerivation (finalAttrs: { installFlags = [ "PREFIX=$(out)" ]; meta = { - description = "A library to manage the activation process of Apple iOS devices."; + description = "Library to manage the activation process of Apple iOS devices"; homepage = "https://libimobiledevice.org"; license = with lib.licenses; [ lgpl21 diff --git a/pkgs/by-name/li/libiec61850/package.nix b/pkgs/by-name/li/libiec61850/package.nix index c5e85c462bb39..ccbf571bba292 100644 --- a/pkgs/by-name/li/libiec61850/package.nix +++ b/pkgs/by-name/li/libiec61850/package.nix @@ -28,6 +28,6 @@ stdenv.mkDerivation (finalAttrs: { homepage = "https://libiec61850.com/"; license = licenses.gpl3Only; maintainers = with maintainers; [ stv0g ]; - platforms = platforms.linux; + platforms = platforms.unix; }; }) diff --git a/pkgs/by-name/li/libisofs/package.nix b/pkgs/by-name/li/libisofs/package.nix index d49279dc1f1be..ac9c606b55523 100644 --- a/pkgs/by-name/li/libisofs/package.nix +++ b/pkgs/by-name/li/libisofs/package.nix @@ -39,7 +39,7 @@ stdenv.mkDerivation (finalAttrs: { meta = { homepage = "https://dev.lovelyhq.com/libburnia/web/wiki"; - description = "A library to create an ISO-9660 filesystem with extensions like RockRidge or Joliet"; + description = "Library to create an ISO-9660 filesystem with extensions like RockRidge or Joliet"; changelog = "https://dev.lovelyhq.com/libburnia/libisofs/src/tag/${finalAttrs.src.rev}/ChangeLog"; license = lib.licenses.gpl2Plus; maintainers = with lib.maintainers; [ abbradar AndersonTorres ]; diff --git a/pkgs/by-name/li/libixion/package.nix b/pkgs/by-name/li/libixion/package.nix index f47cf289b0c02..c501442ff8be2 100644 --- a/pkgs/by-name/li/libixion/package.nix +++ b/pkgs/by-name/li/libixion/package.nix @@ -31,7 +31,7 @@ stdenv.mkDerivation rec { ]; meta = with lib; { - description = "A general purpose formula parser, interpreter, formula cell dependency tracker and spreadsheet document model backend all in one package."; + description = "General purpose formula parser, interpreter, formula cell dependency tracker and spreadsheet document model backend all in one package"; homepage = "https://gitlab.com/ixion/ixion"; changelog = "https://gitlab.com/ixion/ixion/-/blob/${src.rev}/CHANGELOG"; license = licenses.mpl20; diff --git a/pkgs/by-name/li/liblapin/package.nix b/pkgs/by-name/li/liblapin/package.nix index 97bcb1d1e181b..f736bb2d42687 100644 --- a/pkgs/by-name/li/liblapin/package.nix +++ b/pkgs/by-name/li/liblapin/package.nix @@ -9,7 +9,7 @@ }: stdenv.mkDerivation { - name = "liblapin"; + pname = "liblapin"; version = "0-unstable-2024-05-20"; src = fetchFromGitHub { diff --git a/pkgs/by-name/li/libmamba/package.nix b/pkgs/by-name/li/libmamba/package.nix index af87959a2e5f8..8db98ea2b664a 100644 --- a/pkgs/by-name/li/libmamba/package.nix +++ b/pkgs/by-name/li/libmamba/package.nix @@ -51,7 +51,7 @@ stdenv.mkDerivation rec { ]; meta = { - description = "The library for the fast Cross-Platform Package Manager"; + description = "Library for the fast Cross-Platform Package Manager"; homepage = "https://github.com/mamba-org/mamba"; license = lib.licenses.bsd3; platforms = lib.platforms.all; diff --git a/pkgs/by-name/li/libmpd/package.nix b/pkgs/by-name/li/libmpd/package.nix new file mode 100644 index 0000000000000..bf2e6c70d2ad8 --- /dev/null +++ b/pkgs/by-name/li/libmpd/package.nix @@ -0,0 +1,47 @@ +{ lib +, stdenv +, fetchurl +, pkg-config +, doxygen +, glib +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "libmpd"; + version = "11.8.17"; + outputs = [ + "out" + "dev" + "devdoc" + ]; + + src = fetchurl { + url = "https://www.musicpd.org/download/libmpd/${finalAttrs.version}/libmpd-${finalAttrs.version}.tar.gz"; + hash = "sha256-/iAyaw0QZB9xxGc/rmN7+SIqluFxL3HxcPyi/DS/eoM="; + }; + + nativeBuildInputs = [ + pkg-config + doxygen + ]; + buildInputs = [ + glib + ]; + + postInstall = '' + make doc + mkdir -p $devdoc/share/devhelp/libmpd + cp -r doc/html $devdoc/share/devhelp/libmpd/doxygen + ''; + + meta = with lib; { + description = "Higher level access to MPD functions"; + homepage = "https://www.musicpd.org/download/libmpd/"; + changelog = "https://www.musicpd.org/download/libmpd/${finalAttrs.version}/README"; + license = licenses.gpl2Only; + maintainers = with maintainers; [ doronbehar ]; + platforms = platforms.all; + # Getting DARWIN_NULL related errors + broken = stdenv.isDarwin; + }; +}) diff --git a/pkgs/by-name/li/libopus/package.nix b/pkgs/by-name/li/libopus/package.nix new file mode 100644 index 0000000000000..cdf00a244ba4b --- /dev/null +++ b/pkgs/by-name/li/libopus/package.nix @@ -0,0 +1,83 @@ +{ + lib, + stdenv, + fetchurl, + gitUpdater, + meson, + python3, + ninja, + fixedPoint ? false, + withCustomModes ? true, + withIntrinsics ? stdenv.hostPlatform.isAarch || stdenv.hostPlatform.isx86, + withAsm ? false, + + # tests + ffmpeg-headless, + testers, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "libopus"; + version = "1.5.2"; + + src = fetchurl { + url = "https://downloads.xiph.org/releases/opus/opus-${finalAttrs.version}.tar.gz"; + hash = "sha256-ZcHS94ufL7IAgsOMvkfJUa1YOTRYduRpQWEu6H+afOE="; + }; + + patches = [ + # Some tests time out easily on slower machines + ./test-timeout.patch + ]; + + postPatch = '' + patchShebangs meson/ + ''; + + outputs = [ + "out" + "dev" + ]; + + nativeBuildInputs = [ + meson + python3 + ninja + ]; + + mesonFlags = [ + (lib.mesonBool "fixed-point" fixedPoint) + (lib.mesonBool "custom-modes" withCustomModes) + (lib.mesonEnable "intrinsics" withIntrinsics) + (lib.mesonEnable "rtcd" (withIntrinsics || withAsm)) + (lib.mesonEnable "asm" withAsm) + (lib.mesonEnable "docs" false) + ]; + + doCheck = !stdenv.isi686 && !stdenv.isAarch32; # test_unit_LPC_inv_pred_gain fails + + passthru = { + updateScript = gitUpdater { + url = "https://gitlab.xiph.org/xiph/opus.git"; + rev-prefix = "v"; + }; + + tests = { + inherit ffmpeg-headless; + + pkg-config = testers.hasPkgConfigModules { + package = finalAttrs.finalPackage; + moduleNames = [ "opus" ]; + }; + }; + }; + + meta = { + description = "Open, royalty-free, highly versatile audio codec"; + homepage = "https://opus-codec.org/"; + changelog = "https://gitlab.xiph.org/xiph/opus/-/releases/v${finalAttrs.version}"; + license = lib.licenses.bsd3; + platforms = lib.platforms.all; + maintainers = with lib.maintainers; [ getchoo jopejoe1 ]; + }; +}) diff --git a/pkgs/by-name/li/libopus/test-timeout.patch b/pkgs/by-name/li/libopus/test-timeout.patch new file mode 100644 index 0000000000000..76025e648d8f5 --- /dev/null +++ b/pkgs/by-name/li/libopus/test-timeout.patch @@ -0,0 +1,9 @@ +--- a/tests/meson.build ++++ b/tests/meson.build +@@ -1,6 +1,5 @@ + # Tests that link to libopus + opus_tests = [ +- ['test_opus_api'], + ['test_opus_decode', [], 120], + ['test_opus_encode', 'opus_encode_regressions.c', 240], + ['test_opus_extensions', [], 120], diff --git a/pkgs/by-name/li/librum/package.nix b/pkgs/by-name/li/librum/package.nix index 928bc7e0439c0..33972b85dc05e 100644 --- a/pkgs/by-name/li/librum/package.nix +++ b/pkgs/by-name/li/librum/package.nix @@ -47,7 +47,7 @@ stdenv.mkDerivation rec { ]; meta = with lib; { - description = "An application designed to make reading enjoyable and straightforward"; + description = "Application designed to make reading enjoyable and straightforward"; longDescription = '' Librum is an application designed to make reading enjoyable and straightforward for everyone. It's not just an e-book diff --git a/pkgs/by-name/li/libscfg/package.nix b/pkgs/by-name/li/libscfg/package.nix index d0c7426080f68..f9eb2a5b804b0 100644 --- a/pkgs/by-name/li/libscfg/package.nix +++ b/pkgs/by-name/li/libscfg/package.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { meta = with lib; { homepage = "https://sr.ht/~emersion/libscfg"; - description = "A simple configuration file format"; + description = "Simple configuration file format"; license = licenses.mit; maintainers = with maintainers; [ michaeladler ]; platforms = platforms.linux; diff --git a/pkgs/by-name/li/libsignal-ffi/package.nix b/pkgs/by-name/li/libsignal-ffi/package.nix index 06afbfc804080..d2c8f1f3df806 100644 --- a/pkgs/by-name/li/libsignal-ffi/package.nix +++ b/pkgs/by-name/li/libsignal-ffi/package.nix @@ -38,7 +38,7 @@ rustPlatform.buildRustPackage rec { cargoBuildFlags = [ "-p" "libsignal-ffi" ]; meta = with lib; { - description = "A C ABI library which exposes Signal protocol logic"; + description = "C ABI library which exposes Signal protocol logic"; homepage = "https://github.com/signalapp/libsignal"; license = licenses.agpl3Plus; maintainers = with maintainers; [ niklaskorz ]; diff --git a/pkgs/by-name/li/libstrophe/package.nix b/pkgs/by-name/li/libstrophe/package.nix index f66c15edfd21b..d8ae379859cc2 100644 --- a/pkgs/by-name/li/libstrophe/package.nix +++ b/pkgs/by-name/li/libstrophe/package.nix @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { doCheck = true; meta = with lib; { - description = "A simple, lightweight C library for writing XMPP clients"; + description = "Simple, lightweight C library for writing XMPP clients"; longDescription = '' libstrophe is a lightweight XMPP client library written in C. It has minimal dependencies and is configurable for various environments. It diff --git a/pkgs/by-name/li/libstudxml/package.nix b/pkgs/by-name/li/libstudxml/package.nix new file mode 100644 index 0000000000000..ceaf052eee70a --- /dev/null +++ b/pkgs/by-name/li/libstudxml/package.nix @@ -0,0 +1,38 @@ +{ + lib, + stdenv, + fetchgit, + build2, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "libstudxml"; + version = "1.1.0-b.10+2"; + + src = fetchgit { + url = "https://git.codesynthesis.com/libstudxml/libstudxml.git"; + rev = "v${finalAttrs.version}"; + hash = "sha256-OsjMhQ3u/wLhOay7qg9sQMEhnAOdrO30dsKQ8aDWUOo="; + }; + + outputs = [ + "out" + "dev" + "doc" + ]; + + nativeBuildInputs = [ build2 ]; + + # lib files are not marked as executable by default + postInstall = '' + chmod +x "$out"/lib/* + ''; + + meta = { + description = "A streaming XML pull parser and streaming XML serializer implementation for modern, standard C++"; + homepage = "https://www.codesynthesis.com/projects/libstudxml/"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ tomasajt ]; + platforms = lib.platforms.all; + }; +}) diff --git a/pkgs/by-name/li/libui-ng/package.nix b/pkgs/by-name/li/libui-ng/package.nix index 51f73ecb69562..8799750b94236 100644 --- a/pkgs/by-name/li/libui-ng/package.nix +++ b/pkgs/by-name/li/libui-ng/package.nix @@ -52,7 +52,7 @@ stdenv.mkDerivation rec { }; meta = with lib; { - description = "A portable GUI library for C"; + description = "Portable GUI library for C"; homepage = "https://github.com/libui-ng/libui-ng"; license = licenses.mit; maintainers = with maintainers; [ ]; diff --git a/pkgs/by-name/li/libvibrant/package.nix b/pkgs/by-name/li/libvibrant/package.nix index f9802bddafa8e..905ad34d29ea3 100644 --- a/pkgs/by-name/li/libvibrant/package.nix +++ b/pkgs/by-name/li/libvibrant/package.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake makeWrapper ]; meta = with lib; { - description = "A simple library to adjust color saturation of X11 outputs"; + description = "Simple library to adjust color saturation of X11 outputs"; homepage = "https://github.com/libvibrant/libvibrant"; license = licenses.mit; platforms = platforms.linux; diff --git a/pkgs/by-name/li/licensure/package.nix b/pkgs/by-name/li/licensure/package.nix index f7c54ca83ed0c..19e580df3d5bb 100644 --- a/pkgs/by-name/li/licensure/package.nix +++ b/pkgs/by-name/li/licensure/package.nix @@ -28,7 +28,7 @@ rustPlatform.buildRustPackage rec { ]; meta = with lib; { - description = "A FOSS License management tool for your projects"; + description = "FOSS License management tool for your projects"; homepage = "https://github.com/chasinglogic/licensure"; license = licenses.gpl3Plus; mainProgram = "licensure"; diff --git a/pkgs/by-name/li/lilipod/package.nix b/pkgs/by-name/li/lilipod/package.nix index b5d6f56768a2b..0185a25c8a489 100644 --- a/pkgs/by-name/li/lilipod/package.nix +++ b/pkgs/by-name/li/lilipod/package.nix @@ -52,7 +52,7 @@ buildGoModule rec { ''; meta = { - description = "A very simple (as in few features) container and image manager"; + description = "Very simple (as in few features) container and image manager"; longDescription = '' Lilipod is a very simple container manager with minimal features to: diff --git a/pkgs/by-name/li/lint-staged/package.nix b/pkgs/by-name/li/lint-staged/package.nix index 82a8de430623d..0fa6179dca687 100644 --- a/pkgs/by-name/li/lint-staged/package.nix +++ b/pkgs/by-name/li/lint-staged/package.nix @@ -2,16 +2,16 @@ buildNpmPackage rec { pname = "lint-staged"; - version = "15.2.5"; + version = "15.2.6"; src = fetchFromGitHub { owner = "okonet"; repo = "lint-staged"; rev = "v${version}"; - hash = "sha256-Mr8Gtm5kXv+ZcLAMCe8JadJwlTRjD29xojN6Tyzdfb8="; + hash = "sha256-Jn6KGfgL4Si48hdg4glACe6AO5QzPgnasYhHMivzMGk="; }; - npmDepsHash = "sha256-BAVxloOuHodxPLoN5iMQcL04rdmkIEL6UYPnp2HbTe0="; + npmDepsHash = "sha256-6BKx06h+laYSMNm36R992oXYwCDS90F+nh21MnHA998="; dontNpmBuild = true; diff --git a/pkgs/by-name/li/linux-scripts/package.nix b/pkgs/by-name/li/linux-scripts/package.nix new file mode 100644 index 0000000000000..f317538be7e70 --- /dev/null +++ b/pkgs/by-name/li/linux-scripts/package.nix @@ -0,0 +1,64 @@ +{ lib +, linuxHeaders # Linux source tree +, makeWrapper +, stdenvNoCC + +, binutils +, coreutils +, gnugrep + + # decompressors for possible kernel image formats +, bzip2 +, gzip +, lz4 +, lzop +, xz +, zstd +}: + +let + commonDeps = [ + binutils + coreutils + gnugrep + gzip + xz + bzip2 + lzop + lz4 + zstd + ]; + + toWrapScriptLines = scriptName: '' + install -Dm 0755 scripts/${scriptName} $out/bin/${scriptName} + wrapProgram $out/bin/${scriptName} --prefix PATH : ${lib.makeBinPath commonDeps} + ''; +in +stdenvNoCC.mkDerivation +{ + inherit (linuxHeaders) version; + pname = "linux-scripts"; + + # These scripts will rarely change and are usually not bound to a specific + # version of Linux. So it is okay to just use whatever Linux version comes + # from `linuxHeaders. + src = linuxHeaders.src; + + nativeBuildInputs = [ makeWrapper ]; + + dontConfigure = true; + dontBuild = true; + + installPhase = '' + ${toWrapScriptLines "extract-ikconfig"} + ${toWrapScriptLines "extract-vmlinux"} + ''; + + meta = with lib; { + description = "Standalone scripts from <linux>/scripts"; + homepage = "https://www.kernel.org/"; + license = licenses.gpl2Only; + maintainers = [ maintainers.phip1611 ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/by-name/li/listmonk/package.nix b/pkgs/by-name/li/listmonk/package.nix index 0a111224161ee..800540a25ea55 100644 --- a/pkgs/by-name/li/listmonk/package.nix +++ b/pkgs/by-name/li/listmonk/package.nix @@ -47,7 +47,7 @@ buildGoModule rec { }; meta = with lib; { - description = "High performance, self-hosted, newsletter and mailing list manager with a modern dashboard."; + description = "High performance, self-hosted, newsletter and mailing list manager with a modern dashboard"; mainProgram = "listmonk"; homepage = "https://github.com/knadh/listmonk"; changelog = "https://github.com/knadh/listmonk/releases/tag/v${version}"; diff --git a/pkgs/by-name/li/littlefs-fuse/package.nix b/pkgs/by-name/li/littlefs-fuse/package.nix index 81300a8a82246..c026a8b7ce071 100644 --- a/pkgs/by-name/li/littlefs-fuse/package.nix +++ b/pkgs/by-name/li/littlefs-fuse/package.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { runHook postInstall ''; meta = src.meta // { - description = "A FUSE wrapper that puts the littlefs in user-space"; + description = "FUSE wrapper that puts the littlefs in user-space"; license = lib.licenses.bsd3; maintainers = with lib.maintainers; [ ehmry ]; mainProgram = "littlefs-fuse"; diff --git a/pkgs/by-name/li/livi/package.nix b/pkgs/by-name/li/livi/package.nix index b36f08497a619..d39007f9efe99 100644 --- a/pkgs/by-name/li/livi/package.nix +++ b/pkgs/by-name/li/livi/package.nix @@ -46,7 +46,7 @@ stdenv.mkDerivation rec { meta = with lib; { homepage = "https://gitlab.gnome.org/guidog/livi"; - description = "A small video player targeting mobile devices (also named μPlayer)"; + description = "Small video player targeting mobile devices (also named μPlayer)"; license = licenses.gpl3Plus; platforms = platforms.linux; mainProgram = "livi"; |