diff options
Diffstat (limited to 'pkgs/tools')
-rw-r--r-- | pkgs/tools/backup/bup/default.nix | 4 | ||||
-rw-r--r-- | pkgs/tools/backup/monolith/default.nix | 14 | ||||
-rw-r--r-- | pkgs/tools/graphics/imgurbash2/default.nix | 4 | ||||
-rw-r--r-- | pkgs/tools/misc/jdupes/default.nix | 4 | ||||
-rw-r--r-- | pkgs/tools/misc/osinfo-db-tools/default.nix | 10 | ||||
-rw-r--r-- | pkgs/tools/misc/zoxide/default.nix | 6 | ||||
-rw-r--r-- | pkgs/tools/networking/amass/default.nix | 4 | ||||
-rw-r--r-- | pkgs/tools/networking/ofono/0001-Search-connectors-in-OFONO_PLUGIN_PATH.patch | 2 | ||||
-rw-r--r-- | pkgs/tools/package-management/nix-prefetch-scripts/default.nix | 4 | ||||
-rw-r--r-- | pkgs/tools/security/fprintd/default.nix | 104 | ||||
-rw-r--r-- | pkgs/tools/security/hcxdumptool/default.nix | 4 | ||||
-rw-r--r-- | pkgs/tools/security/tpm2-tools/default.nix | 4 | ||||
-rw-r--r-- | pkgs/tools/security/yara/default.nix | 28 | ||||
-rw-r--r-- | pkgs/tools/system/disk-filltest/default.nix | 38 | ||||
-rw-r--r-- | pkgs/tools/system/stress-ng/default.nix | 4 | ||||
-rw-r--r-- | pkgs/tools/text/mdcat/default.nix | 6 |
16 files changed, 163 insertions, 77 deletions
diff --git a/pkgs/tools/backup/bup/default.nix b/pkgs/tools/backup/bup/default.nix index 182e37283dfd..57ab854a33cb 100644 --- a/pkgs/tools/backup/bup/default.nix +++ b/pkgs/tools/backup/bup/default.nix @@ -5,7 +5,7 @@ assert par2Support -> par2cmdline != null; -let version = "0.30"; in +let version = "0.30.1"; in with stdenv.lib; @@ -17,7 +17,7 @@ stdenv.mkDerivation { repo = "bup"; owner = "bup"; rev = version; - sha256 = "0kzi9mzgmx1kjv3aldawapz7bk73f02bysiwh8rngqnirmm0vxdp"; + sha256 = "0z9rpmmi6mbm48ynd6izr0f8l3cklfyar6gjy0c8z9zal1ac9r55"; }; buildInputs = [ diff --git a/pkgs/tools/backup/monolith/default.nix b/pkgs/tools/backup/monolith/default.nix index f3bcf82e5457..261267b809a1 100644 --- a/pkgs/tools/backup/monolith/default.nix +++ b/pkgs/tools/backup/monolith/default.nix @@ -3,25 +3,27 @@ , fetchFromGitHub , pkg-config , openssl +, Security }: rustPlatform.buildRustPackage rec { pname = "monolith"; - version = "2.2.5"; + version = "2.2.6"; src = fetchFromGitHub { owner = "Y2Z"; repo = pname; rev = "v${version}"; - sha256 = "0w19szxzhwxbgnv4k618p8v29dhbar1fn433bsz1cr1apnrahmkn"; + sha256 = "0ifv1h16xrs40gw5wx7kwj7hirnzpgfrznskz2igsslk7ycjlbr1"; }; - cargoSha256 = "06gc3cpx1m2f6fwrm8brw5nidg1v02q1qwqfxvv3xzmmczbw4345"; + cargoSha256 = "1plx9p265jcc6wg3bhcdk1f77md8ann08kkv3g2706d82kxy2c1i"; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ openssl ]; + nativeBuildInputs = stdenv.lib.optionals stdenv.isLinux [ pkg-config ]; + buildInputs = stdenv.lib.optionals stdenv.isLinux [ openssl ] + ++ stdenv.lib.optionals stdenv.isDarwin [ Security ]; - checkPhase = "cargo test -- --skip tests::cli"; + checkFlagsArray = [ "--skip=tests::cli" ]; meta = with stdenv.lib; { description = "Bundle any web page into a single HTML file"; diff --git a/pkgs/tools/graphics/imgurbash2/default.nix b/pkgs/tools/graphics/imgurbash2/default.nix index 14761e7763ce..ea3b1ed9b02d 100644 --- a/pkgs/tools/graphics/imgurbash2/default.nix +++ b/pkgs/tools/graphics/imgurbash2/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "imgurbash2"; - version = "3.1"; + version = "3.2"; src = fetchFromGitHub { owner = "ram-on"; repo = "imgurbash2"; rev = version; - sha256 = "1hqghlk8c6svfszhmp02bhkc791lqhqffgiypf05giqmr5d8b9a9"; + sha256 = "10zs6p17psl1vq5vpkfkf9nrlmibk6v1ds3yxbf1rip1zaqlwxg6"; }; installPhase = '' diff --git a/pkgs/tools/misc/jdupes/default.nix b/pkgs/tools/misc/jdupes/default.nix index 2898cfb67982..ae0b32d2120d 100644 --- a/pkgs/tools/misc/jdupes/default.nix +++ b/pkgs/tools/misc/jdupes/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "jdupes"; - version = "1.14.0"; + version = "1.15.0"; src = fetchFromGitHub { owner = "jbruchon"; repo = "jdupes"; rev = "v${version}"; - sha256 = "18hn25f7cdz1li0vvx74al7a8z2220xhzjp9j6idhldsmjnscgq8"; + sha256 = "05q2ys7ii6mqiddl9ixzqhbvk4xy5ckh3yfz26vycxiyh9cp7yls"; # Unicode file names lead to different checksums on HFS+ vs. other # filesystems because of unicode normalisation. The testdir # directories have such files and will be removed. diff --git a/pkgs/tools/misc/osinfo-db-tools/default.nix b/pkgs/tools/misc/osinfo-db-tools/default.nix index 3e678b1d378a..a93ec0ab573f 100644 --- a/pkgs/tools/misc/osinfo-db-tools/default.nix +++ b/pkgs/tools/misc/osinfo-db-tools/default.nix @@ -1,17 +1,17 @@ -{ stdenv, fetchurl, pkgconfig, gettext, glib, libxml2, perl +{ stdenv, fetchurl, pkgconfig, meson, ninja, gettext, glib, libxml2, perl, python3 , libxslt, libarchive, bzip2, lzma, json-glib, libsoup }: stdenv.mkDerivation rec { pname = "osinfo-db-tools"; - version = "1.6.0"; + version = "1.7.0"; src = fetchurl { - url = "https://releases.pagure.org/libosinfo/${pname}-${version}.tar.gz"; - sha256 = "0x155d4hqz7mabgqvgydqjm9d8aabc78vr0v0pnsp9vkdlcv3mfh"; + url = "https://releases.pagure.org/libosinfo/${pname}-${version}.tar.xz"; + sha256 = "08x8mrafphyll0d35xdc143rip3ahrz6bmzhc85nwhq7yk2vxpab"; }; - nativeBuildInputs = [ pkgconfig gettext perl ]; + nativeBuildInputs = [ meson ninja pkgconfig gettext perl python3 ]; buildInputs = [ glib json-glib libxml2 libxslt libarchive bzip2 lzma libsoup ]; meta = with stdenv.lib; { diff --git a/pkgs/tools/misc/zoxide/default.nix b/pkgs/tools/misc/zoxide/default.nix index d2abd143ce45..ab8633c49904 100644 --- a/pkgs/tools/misc/zoxide/default.nix +++ b/pkgs/tools/misc/zoxide/default.nix @@ -6,20 +6,20 @@ rustPlatform.buildRustPackage rec { pname = "zoxide"; - version = "0.4.0"; + version = "0.4.1"; src = fetchFromGitHub { owner = "ajeetdsouza"; repo = "zoxide"; rev = "v${version}"; - sha256 = "1qkvmjrkcivfzbm6swl5lgvpqz9av9jxcn9i8ms3wz4vfsibmlxv"; + sha256 = "1zfk9y5f12h2d5zwf2z8c95xwhbhc6ayv971875fbxgz1nd8vqb6"; }; buildInputs = [ fzf ]; - cargoSha256 = "1w921f7b6kzc1mjzff1bcs3mg4cp9h48698w2zlv5jzjs7nwgb8n"; + cargoSha256 = "0z0p3cxxazw19bmk3zw7z2q93p00ywsa2cz1jhy78mn5pq1v95rd"; meta = with lib; { description = "A fast cd command that learns your habits"; diff --git a/pkgs/tools/networking/amass/default.nix b/pkgs/tools/networking/amass/default.nix index 5fe28d6fd90d..ebe67b27e7c7 100644 --- a/pkgs/tools/networking/amass/default.nix +++ b/pkgs/tools/networking/amass/default.nix @@ -5,13 +5,13 @@ buildGoModule rec { pname = "amass"; - version = "3.6.1"; + version = "3.6.2"; src = fetchFromGitHub { owner = "OWASP"; repo = "Amass"; rev = "v${version}"; - sha256 = "0lpnsp4bj87pkfcgwq95v6rd2gas0nk0s57jbby8jvlcacgf5bas"; + sha256 = "1ih681790sp0lqfbsl153dpr5vzxp1jjza28pajrqjzs7zyjmkgs"; }; vendorSha256 = "1f8za3z5pv1pznbd91fk5j4y8qg93qk5zvnchjl7inyirciawdf6"; diff --git a/pkgs/tools/networking/ofono/0001-Search-connectors-in-OFONO_PLUGIN_PATH.patch b/pkgs/tools/networking/ofono/0001-Search-connectors-in-OFONO_PLUGIN_PATH.patch index eb97209a693e..c1174e1093a8 100644 --- a/pkgs/tools/networking/ofono/0001-Search-connectors-in-OFONO_PLUGIN_PATH.patch +++ b/pkgs/tools/networking/ofono/0001-Search-connectors-in-OFONO_PLUGIN_PATH.patch @@ -98,7 +98,7 @@ index 924a45ec..f05055c3 100644 + + plugin_path = g_getenv ("OFONO_PLUGIN_PATH"); + -+ if (!plugin_path) { ++ if (plugin_path) { + gchar **plugin_path_list; + gsize i; + diff --git a/pkgs/tools/package-management/nix-prefetch-scripts/default.nix b/pkgs/tools/package-management/nix-prefetch-scripts/default.nix index 2c5781a95b8c..bab12ca8e8df 100644 --- a/pkgs/tools/package-management/nix-prefetch-scripts/default.nix +++ b/pkgs/tools/package-management/nix-prefetch-scripts/default.nix @@ -1,5 +1,5 @@ { stdenv, makeWrapper, buildEnv, - bazaar, coreutils, cvs, findutils, gawk, git, gnused, mercurial, nix, subversion + breezy, coreutils, cvs, findutils, gawk, git, gnused, mercurial, nix, subversion }: let mkPrefetchScript = tool: src: deps: @@ -26,7 +26,7 @@ let mkPrefetchScript = tool: src: deps: }; }; in rec { - nix-prefetch-bzr = mkPrefetchScript "bzr" ../../../build-support/fetchbzr/nix-prefetch-bzr [ bazaar ]; + nix-prefetch-bzr = mkPrefetchScript "bzr" ../../../build-support/fetchbzr/nix-prefetch-bzr [ breezy ]; nix-prefetch-cvs = mkPrefetchScript "cvs" ../../../build-support/fetchcvs/nix-prefetch-cvs [ cvs ]; nix-prefetch-git = mkPrefetchScript "git" ../../../build-support/fetchgit/nix-prefetch-git [ coreutils findutils gawk git ]; nix-prefetch-hg = mkPrefetchScript "hg" ../../../build-support/fetchhg/nix-prefetch-hg [ mercurial ]; diff --git a/pkgs/tools/security/fprintd/default.nix b/pkgs/tools/security/fprintd/default.nix index b119a6ed29ff..62f5dda17f67 100644 --- a/pkgs/tools/security/fprintd/default.nix +++ b/pkgs/tools/security/fprintd/default.nix @@ -1,42 +1,70 @@ -{ thinkpad ? false -, stdenv -, fetchurl +{ stdenv +, fetchFromGitLab , fetchpatch , pkgconfig -, intltool -, libfprint-thinkpad ? null -, libfprint ? null +, meson +, ninja +, perl +, gettext +, cairo +, gtk-doc +, libxslt +, docbook-xsl-nons +, docbook_xml_dtd_412 , glib +, dbus , dbus-glib , polkit , nss , pam , systemd -, autoreconfHook -, gtk-doc +, libfprint +, python3 }: stdenv.mkDerivation rec { - pname = "fprintd" + stdenv.lib.optionalString thinkpad "-thinkpad"; - version = "0.9.0"; + pname = "fprintd"; + version = "1.90.1"; + outputs = [ "out" "devdoc" ]; - src = fetchurl { - url = "https://gitlab.freedesktop.org/libfprint/fprintd/uploads/9dec4b63d1f00e637070be1477ce63c0/fprintd-${version}.tar.xz"; - sha256 = "182gcnwb6zjwmk0dn562rjmpbk7ac7dhipbfdhfic2sn1jzis49p"; + src = fetchFromGitLab { + domain = "gitlab.freedesktop.org"; + owner = "libfprint"; + repo = pname; + rev = version; + sha256 = "0mbzk263x7f58i9cxhs44mrngs7zw5wkm62j5r6xlcidhmfn03cg"; }; patches = [ + # Fixes issue with ":" when there is multiple paths (might be the case on NixOS) + # https://gitlab.freedesktop.org/libfprint/fprintd/-/merge_requests/50 + (fetchpatch { + url = "https://gitlab.freedesktop.org/libfprint/fprintd/-/commit/d7fec03f24d10f88d34581c72f0eef201f5eafac.patch"; + sha256 = "QNN05WF4YZ0XiTwm5NkfqZDuQpyXlnrh+RJF9SNsCDk="; + }) + + # Fix locating libpam_wrapper for tests + (fetchpatch { + url = "https://gitlab.freedesktop.org/libfprint/fprintd/-/merge_requests/40.patch"; + sha256 = "43uPihK6HhygHw1Qplwci80Wseq/S77VUp+OdEECHmM="; + }) (fetchpatch { - url = "https://gitlab.freedesktop.org/libfprint/fprintd/merge_requests/16.patch"; - sha256 = "1y39zsmxjll9hip8464qwhq5qg06c13pnafyafgxdph75lvhdll7"; + url = "https://gitlab.freedesktop.org/libfprint/fprintd/-/commit/f401f399a85dbeb2de165b9b9162eb552ab6eea7.patch"; + sha256 = "Pga+/QEkln8DOwGZfKM1r2urJX4Y3X0bozWWxKZ5ia0="; }) ]; nativeBuildInputs = [ - intltool pkgconfig - autoreconfHook # Drop with above patch - gtk-doc # Drop with above patch + meson + ninja + perl + gettext + gtk-doc + libxslt + dbus + docbook-xsl-nons + docbook_xml_dtd_412 ]; buildInputs = [ @@ -46,23 +74,43 @@ stdenv.mkDerivation rec { nss pam systemd - ] - ++ stdenv.lib.optional thinkpad libfprint-thinkpad - ++ stdenv.lib.optional (!thinkpad) libfprint - ; + libfprint + ]; + + checkInputs = with python3.pkgs; [ + python-dbusmock + dbus-python + pygobject3 + pycairo + pypamtest + ]; - configureFlags = [ - # is hardcoded to /var/lib/fprint, this is for the StateDirectory install target - "--localstatedir=${placeholder "out"}/var" - "--sysconfdir=${placeholder "out"}/etc" - "--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system" + mesonFlags = [ + "-Dgtk_doc=true" + "-Dpam_modules_dir=${placeholder "out"}/lib/security" + "-Dsysconfdir=${placeholder "out"}/etc" + "-Ddbus_service_dir=${placeholder "out"}/share/dbus-1/system-services" + "-Dsystemd_system_unit_dir=${placeholder "out"}/lib/systemd/system" ]; + PKG_CONFIG_DBUS_1_INTERFACES_DIR = "${placeholder "out"}/share/dbus-1/interfaces"; + PKG_CONFIG_POLKIT_GOBJECT_1_POLICYDIR = "${placeholder "out"}/share/polkit-1/actions"; + PKG_CONFIG_DBUS_1_DATADIR = "${placeholder "out"}/share"; + + # FIXME: Ugly hack for tests to find libpam_wrapper.so + LIBRARY_PATH = stdenv.lib.makeLibraryPath [ python3.pkgs.pypamtest ]; + + doCheck = true; + + postPatch = '' + patchShebangs po/check-translations.sh + ''; + meta = with stdenv.lib; { homepage = "https://fprint.freedesktop.org/"; description = "D-Bus daemon that offers libfprint functionality over the D-Bus interprocess communication bus"; license = licenses.gpl2; platforms = platforms.linux; - maintainers = with maintainers; [ abbradar ]; + maintainers = with maintainers; [ abbradar elyhaka ]; }; } diff --git a/pkgs/tools/security/hcxdumptool/default.nix b/pkgs/tools/security/hcxdumptool/default.nix index 6a2eee471432..c7a5a9985552 100644 --- a/pkgs/tools/security/hcxdumptool/default.nix +++ b/pkgs/tools/security/hcxdumptool/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "hcxdumptool"; - version = "6.0.5"; + version = "6.0.6"; src = fetchFromGitHub { owner = "ZerBea"; repo = "hcxdumptool"; rev = version; - sha256 = "0rh19lblz8wp8q2x123nlwvxq1pjq9zw12w18z83v2l2knjbc524"; + sha256 = "1b4d543y64ib92w9gcmiyjn5hz2vyjqmxk3f3yr1zk04fhw16gmf"; }; buildInputs = [ openssl ]; diff --git a/pkgs/tools/security/tpm2-tools/default.nix b/pkgs/tools/security/tpm2-tools/default.nix index 06826173e340..282b1df299cf 100644 --- a/pkgs/tools/security/tpm2-tools/default.nix +++ b/pkgs/tools/security/tpm2-tools/default.nix @@ -4,11 +4,11 @@ stdenv.mkDerivation rec { pname = "tpm2-tools"; - version = "4.1.1"; + version = "4.1.2"; src = fetchurl { url = "https://github.com/tpm2-software/${pname}/releases/download/${version}/${pname}-${version}.tar.gz"; - sha256 = "1cd74nd57wmms2yrnzs64xki29rf4kx61kd30fyd56wlicyjdfa0"; + sha256 = "0di97zmxdh04m2ibyshcgvillwxx6rnd0543scm7q10y7nv74m0p"; }; nativeBuildInputs = [ pandoc pkgconfig makeWrapper ]; diff --git a/pkgs/tools/security/yara/default.nix b/pkgs/tools/security/yara/default.nix index a470ad11caff..8a1195350234 100644 --- a/pkgs/tools/security/yara/default.nix +++ b/pkgs/tools/security/yara/default.nix @@ -1,30 +1,28 @@ -{ stdenv, fetchFromGitHub, fetchpatch, autoconf, automake, libtool, pcre +{ stdenv +, fetchFromGitHub +, autoreconfHook +, pcre +, pkg-config +, protobufc , withCrypto ? true, openssl , enableMagic ? true, file , enableCuckoo ? true, jansson }: stdenv.mkDerivation rec { - version = "3.11.0"; + version = "4.0.1"; pname = "yara"; src = fetchFromGitHub { owner = "VirusTotal"; repo = "yara"; rev = "v${version}"; - sha256 = "0mx3xm2a70fx8vlynkavq8gfd9w5yjcix5rx85444i2s1h6kcd0j"; + sha256 = "0dy8jf0pdn0wilxy1pj6pqjxg7icxkwax09w54np87gl9p00f5rk"; }; - # See: https://github.com/VirusTotal/yara/issues/1036 - # TODO: This patch should not be necessary in the next release - patches = [ - (fetchpatch { - url = "https://github.com/VirusTotal/yara/commit/04df811fa61fa54390b274bfcf56d7403c184404.patch"; - sha256 = "0hsbc2k7nmk2kskll971draz0an4rmcs5v0iql47mz596vqvkzmb"; - }) - ]; + nativeBuildInputs = [ autoreconfHook pkg-config ]; - buildInputs = [ autoconf automake libtool pcre ] + buildInputs = [ pcre protobufc ] ++ stdenv.lib.optionals withCrypto [ openssl ] ++ stdenv.lib.optionals enableMagic [ file ] ++ stdenv.lib.optionals enableCuckoo [ jansson ] @@ -40,8 +38,8 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "The pattern matching swiss knife for malware researchers"; - homepage = "http://Virustotal.github.io/yara/"; - license = licenses.asl20; - platforms = stdenv.lib.platforms.all; + homepage = "http://Virustotal.github.io/yara/"; + license = licenses.asl20; + platforms = platforms.all; }; } diff --git a/pkgs/tools/system/disk-filltest/default.nix b/pkgs/tools/system/disk-filltest/default.nix new file mode 100644 index 000000000000..074b06aa4e66 --- /dev/null +++ b/pkgs/tools/system/disk-filltest/default.nix @@ -0,0 +1,38 @@ +{ stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "disk-filltest"; + version = "0.8.1"; + + src = fetchFromGitHub { + owner = "bingmann"; + repo = "disk-filltest"; + rev = "v${version}"; + sha256 = "1vcb43hdln7xlklz1n0fsfp5x1j9pn829wbad4b110hrc7nwrnvm"; + }; + + preBuild = '' + substituteInPlace Makefile --replace 'prefix = /usr/local' 'prefix = $(out)' + ''; + + postInstall = '' + install -D -m0644 -t $out/share/doc COPYING README + mkdir -p $out/share/man; mv $out/man1 $out/share/man + ''; + + meta = with stdenv.lib; { + description = "Simple program to detect bad disks by filling them with random data"; + longDescription = '' + disk-filltest is a tool to check storage disks for coming + failures by write files with pseudo-random data to the current + directory until the disk is full, read the files again + and verify the sequence written. It also can measure + read/write speed while filling the disk. + ''; + homepage = "https://panthema.net/2013/disk-filltest"; + license = licenses.gpl3; + maintainers = with maintainers; [ caadar ]; + platforms = platforms.all; + }; + +} diff --git a/pkgs/tools/system/stress-ng/default.nix b/pkgs/tools/system/stress-ng/default.nix index 883305b1d54f..5e50c3c87531 100644 --- a/pkgs/tools/system/stress-ng/default.nix +++ b/pkgs/tools/system/stress-ng/default.nix @@ -4,11 +4,11 @@ stdenv.mkDerivation rec { pname = "stress-ng"; - version = "0.11.08"; + version = "0.11.10"; src = fetchurl { url = "https://kernel.ubuntu.com/~cking/tarballs/${pname}/${pname}-${version}.tar.xz"; - sha256 = "1xy5m5r4icc10h957ank0amnh46v2v47z4n1z43d9s7lmvahw287"; + sha256 = "0x46shnwllv5knpbxj1vj2aqmxgnfhz582crlacwsinc22n1j18i"; }; postPatch = '' diff --git a/pkgs/tools/text/mdcat/default.nix b/pkgs/tools/text/mdcat/default.nix index f6612caa3ad4..38ef6561ac6a 100644 --- a/pkgs/tools/text/mdcat/default.nix +++ b/pkgs/tools/text/mdcat/default.nix @@ -2,19 +2,19 @@ rustPlatform.buildRustPackage rec { pname = "mdcat"; - version = "0.17.0"; + version = "0.17.1"; src = fetchFromGitHub { owner = "lunaryorn"; repo = pname; rev = "mdcat-${version}"; - sha256 = "04kmlsg13mqlcpi5as760ycrqmznaaj7840hzxkri29mj05mgzq0"; + sha256 = "0kkpacb31d0rg4774a63x3njifn3813d8r8vc8skzv4ki7gvhxkr"; }; nativeBuildInputs = [ pkgconfig ]; buildInputs = [ openssl ] ++ stdenv.lib.optional stdenv.isDarwin Security; - cargoSha256 = "1lpivksjiyyg5ap97ccpq30q4n09sf259ds0hj49wihjrgd0h0c7"; + cargoSha256 = "1pljgnckardy3j81im6k5dssz794c7vjx1dfr7950ndhrzwv7p22"; checkInputs = [ ansi2html ]; checkPhase = '' |