diff options
Diffstat (limited to 'net-dns')
-rw-r--r-- | net-dns/Manifest.gz | bin | 7712 -> 7717 bytes | |||
-rw-r--r-- | net-dns/https_dns_proxy/Manifest | 2 | ||||
-rw-r--r-- | net-dns/https_dns_proxy/metadata.xml | 5 | ||||
-rw-r--r-- | net-dns/nsd/Manifest | 8 | ||||
-rw-r--r-- | net-dns/nsd/metadata.xml | 1 | ||||
-rw-r--r-- | net-dns/nsd/nsd-4.10.0.ebuild | 161 | ||||
-rw-r--r-- | net-dns/nsd/nsd-4.9.1.ebuild | 10 | ||||
-rw-r--r-- | net-dns/nsd/nsd-9999.ebuild | 40 |
8 files changed, 200 insertions, 27 deletions
diff --git a/net-dns/Manifest.gz b/net-dns/Manifest.gz Binary files differindex fcd9d2fe75f3..9a62afcbd324 100644 --- a/net-dns/Manifest.gz +++ b/net-dns/Manifest.gz diff --git a/net-dns/https_dns_proxy/Manifest b/net-dns/https_dns_proxy/Manifest index 55136a9e86a6..cf67805c2f26 100644 --- a/net-dns/https_dns_proxy/Manifest +++ b/net-dns/https_dns_proxy/Manifest @@ -1,4 +1,4 @@ DIST https_dns_proxy-0_pre20200925.tar.gz 16270 BLAKE2B 2677f63662d030fa1b6955f819eb6cbab6916356aa06ede13c4942824ea5c9c88f93d5c53fe725989ec668b3152c8242755279752abb1ed9941b57b83d137191 SHA512 8d0bc083447eaf5973a3ed3efbd7946c62fcabca7286266d2ac445aa522a11bff41201f54e1acb49483957a7f488578cfbb7053cd0cc83ca42c4146eab4e44ca EBUILD https_dns_proxy-0_pre20200925.ebuild 883 BLAKE2B 4e41bece350bb5a17cc83555eed6f80b2eef1ce76883174d64bddbb1fd71435b37fbfd4a6627e87d78fa7d4233303d02a0e1711ce461b43e22a4d1dcf46b78dd SHA512 8b342caa96a6d95f4189a2bf7deb6898d7909362c13ea8a34aa697e527b71801cf797879eb27121299f8e5af687d35b5da09fe05696b6dfd3f4b8e0f9d21d679 EBUILD https_dns_proxy-9999.ebuild 883 BLAKE2B 4e41bece350bb5a17cc83555eed6f80b2eef1ce76883174d64bddbb1fd71435b37fbfd4a6627e87d78fa7d4233303d02a0e1711ce461b43e22a4d1dcf46b78dd SHA512 8b342caa96a6d95f4189a2bf7deb6898d7909362c13ea8a34aa697e527b71801cf797879eb27121299f8e5af687d35b5da09fe05696b6dfd3f4b8e0f9d21d679 -MISC metadata.xml 342 BLAKE2B 79bf2637fbb923bd5e516e30051a59e0c7f337695cb48162064aecf502ab9ee6f42f54dd522e90580de5c09aba62bd198906f94f8a7662f94693a5f8c36f0c92 SHA512 2e6ad257e9fe0859af7b2b69207232a71429a1e6fab2d6fc3cb83598e274bb158ac09e1a60bcc649578320d3bd4a629e3021edda11c96655671c2f701939a692 +MISC metadata.xml 262 BLAKE2B 71ebb39f0a1826b57e90bd42c7c032e8175511afeacd11ccb73221d13f8abe6b57e447742f273be497b6db685b97e01af75edc2f5c732af8bc95948f03410f9f SHA512 3ec3f15040fd42c4de65883613a990ac4c1a9910b22ba9500ce7189511461677a2e84642e34e24f1870a15a671d0bb33d2d3cee10c37928c80ffa7a0386af788 diff --git a/net-dns/https_dns_proxy/metadata.xml b/net-dns/https_dns_proxy/metadata.xml index bdc075d175ad..707d5c1a05ed 100644 --- a/net-dns/https_dns_proxy/metadata.xml +++ b/net-dns/https_dns_proxy/metadata.xml @@ -1,10 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="person"> - <email>jsmolic@gentoo.org</email> - <name>Jakov Smolić</name> - </maintainer> + <!-- maintainer-needed --> <upstream> <remote-id type="github">aarond10/dns-over-https-proxy</remote-id> </upstream> diff --git a/net-dns/nsd/Manifest b/net-dns/nsd/Manifest index cd8c3370c53a..ec22119ccef7 100644 --- a/net-dns/nsd/Manifest +++ b/net-dns/nsd/Manifest @@ -7,9 +7,11 @@ AUX nsd.initd-r2 1312 BLAKE2B 798c8df841f3bf22edb0891f1e350a8636db94e9049ba202b9 AUX nsd.munin-conf 23 BLAKE2B 0b08804b2218d77ea925d4c9e26e73649b453b923d6d7b1e1df39ceb58b92a44c48cb21583a480e622f72d07650f410f2e0703f1d16af08152aed16982ab8da2 SHA512 c06d0b035387e7be79cfa8fedf8afb3900772146c6d4090ac39ea2ef165772d875b222ef467bd73422078ef57818bcc931ca67fa290bd99a7a9456efa5448853 AUX nsd.service 272 BLAKE2B 66a7d4132246589f71341afd98361f6b02082be3d4e230c86ae690876a797ea0a4580b29892d91feba2785ea933a053f862e0d00f2c8a8c09ab907386c39a03c SHA512 fbca86887bfc36d61af06992cc98b3f3cb33c39274fbdc1e53d489bdcc767993911fab27a20244c3878b36bacbd1644a552364b2f7bf4d48e6eb247d0eecdf0f AUX nsd.tmpfilesd-r1 24 BLAKE2B ae4078bff0e71d9b47d02855f7e7ab2389cc83b40af657221ffec07e52d52c666073d32182dc726dcc3df85a17f7a983a546d6cda98554ebcf7df14a64036eb8 SHA512 bfc1b81f8553f499f8048a26870b0964625cad4c73b84b70afc8c00644b95661e86ad540fd66f88ef072166ff22eef4f18974ba3364d1bd33e1ca7ee348f9188 +DIST nsd-4.10.0.tar.gz 1388963 BLAKE2B 1ae50e2c2756fbbbabe87ecf88e74c2f9e5bf21dfe8f34a279894499ba5434a9249e5424f511ed0b67d21b3b1c98b7a03e38cd20fd6dd0cd2a6ad4b397d352df SHA512 ebf65d9a3d56ba560b587dc3cf91b0b086c9267c67f4c6a6c415cc062a08a9d0deb50cc44189b741d5b7634fe07038f6a234999f5a0ee7df6609fc026127fb09 DIST nsd-4.8.0.tar.gz 1273228 BLAKE2B d1e6a5e8fb158bb32081bc7674d957e3f5a596ed10ee89dd6a5f6af9a79a8c130f2de7070345bee69cb7798e9f373d856a9336a9e9f65f733ff45e15e94833ff SHA512 13c9cffffe6adfcbabf744ee2effebe6ae265d83476345a1edb60dc9c6d7f838a5e239e9b18e667924e5e76b74b2caac63818fcaecf7f0fa651ff21736174a46 DIST nsd-4.9.1.tar.gz 1309953 BLAKE2B 4a43db480be7196c0a177cc6ee2b9cd6eaaaa9af4d0c3dc7b8f07a5b9e24fd4eac816a29f83de870efe012f2f3bbcbb9bdbda903d05bf9d96574bddc97f68547 SHA512 65cd38aa8a41aee57a6950747de448bc4007a2d2c095152f1d22006f85faa7f0732ec4aa0aeae9f46bc69bff17164d8fe384bbc3441d0484364c4af938b511c1 +EBUILD nsd-4.10.0.ebuild 4526 BLAKE2B f935b1b2ad157a2af9ce3a4f3d5560f8a6c6056c7641573f31a38f4f928a0bbc90c628b8253a0c76f485a300e511aae4b58916e74b07102a8821861c504557ea SHA512 78e684b042dcd4816b77fb86a3339e71fbc1ffb3ae32e85f4af2a7ae9ba27d8d87912d1ed2e4524941e7a286db6a1142af08e817191a1908d4e8c648c80559c0 EBUILD nsd-4.8.0-r1.ebuild 3218 BLAKE2B e591458f0b53f6f0e0bbef131414779e2c7c151bd2de1747660b468b88e5882efdc807991809061fbeaf4348d3a23b16abb95616f25564c002de8bbdd97d9861 SHA512 3fd01e8bc80fd69dc42b1046522d3680bf6a1700df1b986a934baebdb018ab30de3b6cebb4e3f073b927182bd5058271a6197895a5bba0e71526b0000910ab4b -EBUILD nsd-4.9.1.ebuild 4138 BLAKE2B bc60dd14f5742d9d17c0c3da540e2a88499276d42ea1a500b71028893d0fa68cda3154dfe00ce9d14893dae40789af645c95a49d765e2284035279680eee2f40 SHA512 812aa2032ef66ed4e0f2ac6c6c35b60bda0e695f612d159eab5c3c4524c8f068cafb1126437441080440f607720d055357c4cc3e17be12695169fa363e7a9f40 -EBUILD nsd-9999.ebuild 4015 BLAKE2B 7b200fc2c78bbde5cac4673c2a44857dea9a514606af78c5c016dd26e3b51efccfc6968ce6564e3ef99505f50b0d3bbc857227775918bb0b27e2b073c136db8f SHA512 a777f279f72307778e7ee6b12a119a5c41f69ccf4e54b90421dcafce50f2e97564cad83d365e56929253d1a9aa16bba7e05149a03d1a5a8ec439c6c04970f3c1 -MISC metadata.xml 1959 BLAKE2B b4f3fab50a0ea94afaddbdb2911d6435be479ad73fff5850faf07dc2aa8ddd355aa9c50aae9c346e01b4e4c6cd2cef0927cc941848355c57cc047d649d3344c9 SHA512 146cba8e6dc3e568c1b34c3c2efcef2eb78faa89db73f105d88b5015aa316ee5f0affcfd1d8aafbdb2e9cb9adb52e299a2ba4808db831f2c910e457d4d291be8 +EBUILD nsd-4.9.1.ebuild 4133 BLAKE2B 53862f88c4eb8c9ee18a61e36cad387e70e71f7a951cf8a1cbadfc134434dcdfe57522a34ea2c48e855243d6905d476d388dba28cf2a7e9ccec4191e6f2f863e SHA512 ab68f0ff5d4c68b050474ccc95e48159dd8979bf3f5ca446d79b183a74f27d2c755deb3015c272a92019ea2aafc6006ca85011263ad27f2487571bc3143a8c55 +EBUILD nsd-9999.ebuild 4526 BLAKE2B f935b1b2ad157a2af9ce3a4f3d5560f8a6c6056c7641573f31a38f4f928a0bbc90c628b8253a0c76f485a300e511aae4b58916e74b07102a8821861c504557ea SHA512 78e684b042dcd4816b77fb86a3339e71fbc1ffb3ae32e85f4af2a7ae9ba27d8d87912d1ed2e4524941e7a286db6a1142af08e817191a1908d4e8c648c80559c0 +MISC metadata.xml 2054 BLAKE2B cb2f3d4a5425521a7780f1fb247a55b2ab718e26d23894474dafbd82ad1bc0acee4e097684cf634d354870c0ac270897c571238ef8cf95b82bcd7dcf4971ca89 SHA512 2425ab4ca52a28afa3311b9dcd722e24ea490e32f859f5ea72f6c50b62b7dc677fd2217837526a05d36e069bd48324f51caa385656ebd58cee4e4d61fa19947a diff --git a/net-dns/nsd/metadata.xml b/net-dns/nsd/metadata.xml index 1afdcd842cc0..0cdd2376e40c 100644 --- a/net-dns/nsd/metadata.xml +++ b/net-dns/nsd/metadata.xml @@ -22,6 +22,7 @@ <flag name="ratelimit">Enables ratelimiting, based on query name, type and source</flag> <flag name="recvmmsg">Enable recvmmsg and sendmmsg compilation, faster but some kernel versions may have implementation problems for IPv6</flag> <flag name="root-server">Configure NSD as a root server (OBSOLETE: removed in >=4.9.x)</flag> + <flag name="simdzone">Leverage SIMD instructions in modern CPUs to improve throughput</flag> <flag name="tfo">Enable TCP Fast Open</flag> <flag name="year2038">Support timestamps after 2038 (glibc only!)</flag> </use> diff --git a/net-dns/nsd/nsd-4.10.0.ebuild b/net-dns/nsd/nsd-4.10.0.ebuild new file mode 100644 index 000000000000..da8e10d8e3ac --- /dev/null +++ b/net-dns/nsd/nsd-4.10.0.ebuild @@ -0,0 +1,161 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +inherit autotools systemd tmpfiles + +DESCRIPTION="An authoritative only, high performance, open source name server" +HOMEPAGE="https://www.nlnetlabs.nl/projects/nsd" + +if [[ ${PV} == *9999 ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/NLnetLabs/nsd.git" +else + # version voodoo needed only for non-release tarballs: 4.0.0_rc1 => 4.0.0rc1 + MY_PV="${PV/_beta/b}" + MY_PV="${MY_PV/_rc/rc}" + MY_P="${PN}-${MY_PV}" + + if [[ ${PV} != *_beta* && ${PV} != *_rc* ]] ; then + SRC_URI="https://www.nlnetlabs.nl/downloads/${PN}/${MY_P}.tar.gz" + S="${WORKDIR}"/${MY_P} + + KEYWORDS="~amd64 ~x86" + fi +fi + +LICENSE="BSD" +SLOT="0" +IUSE="bind8-stats debug +default-znow dnstap +ipv6 +largefile libevent +lto memclean minimal-responses mmap munin +nsec3 packed +pie +radix-tree ratelimit recvmmsg +simdzone ssl systemd +tfo year2038" + +RDEPEND=" + acct-group/nsd + acct-user/nsd + dnstap? ( + dev-libs/fstrm + dev-libs/protobuf-c + ) + libevent? ( dev-libs/libevent ) + munin? ( net-analyzer/munin ) + ssl? ( dev-libs/openssl:0= ) + systemd? ( sys-apps/systemd ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + app-alternatives/lex + app-alternatives/yacc + systemd? ( virtual/pkgconfig ) +" + +PATCHES=( + "${FILESDIR}/${PN}-munin-gentoo-paths.patch" +) + +NSD_CONFD_VER="1" # Cur version of NSD's OpenRC conf.d file. +NSD_INITD_VER="2" # Cur version of NSD's OpenRC init.d script. +NSD_TMPFILESD_VER="1" # Cur version of NSD's tmpfiles.d config. + +NSD_DBDIR="/var/db/nsd" # Default dir for NSD's databases. +NSD_ZNDIR="/var/lib/nsd" # Default dir for NSD's zone files. + +src_prepare() { + default + + # Required to get correct pkg-config macros with USE="systemd". + # See bugs #663618 & #758050. + eautoreconf +} + +src_configure() { + local myconf=( + $(use_enable bind8-stats) + $(use_enable bind8-stats zone-stats) + $(use_enable debug checking) + $(use_enable default-znow relro-now) + $(use_enable dnstap) + $(use_enable ipv6) + $(use_enable largefile) + $(use_enable lto flto) + $(use_enable memclean) + $(use_enable minimal-responses) + $(use_enable mmap) + $(use_enable nsec3) + $(use_enable packed) + $(use_enable pie) + $(use_enable radix-tree) + $(use_enable ratelimit) + $(use_enable recvmmsg) + $(use_enable systemd) + $(use_enable tfo tcp-fastopen) + $(use_with libevent) + $(use_with ssl) + + --with-dbfile="${EPREFIX}${NSD_DBDIR}/nsd.db" + --with-logfile="${EPREFIX}/var/log/nsd.log" + --with-pidfile="${EPREFIX}/run/nsd.pid" + --with-xfrdfile="${EPREFIX}${NSD_DBDIR}/xfrd.state" + --with-xfrdir="${EPREFIX}${NSD_DBDIR}" + --with-zonelistfile="${EPREFIX}${NSD_DBDIR}/zone.list" + --with-zonesdir="${EPREFIX}${NSD_ZNDIR}" + ) + + # NSD 4.10.x introduced a new zone parser, "simdzone", which + # replaces the older parser that used flex & bison: + # https://github.com/NLnetLabs/simdzone + # It leverages SSE4.2 and/or AVX2 instruction sets for faster + # zone parsing on x86_64 architectures. Other CPU archs will + # use a fallback implementation. + if use amd64; then + myconf+=( + $(use_enable simdzone haswell) + $(use_enable simdzone westmere) + ) + fi + + # This configure switch is only available on a glibc-based system. + if use elibc_glibc; then + myconf+=( $(use_enable year2038) ) + fi + + econf "${myconf[@]}" +} + +src_install() { + emake DESTDIR="${D}" install + + dodoc doc/{ChangeLog,CREDITS,NSD-4-features,NSD-FOR-BIND-USERS,README,RELNOTES,REQUIREMENTS} + newinitd "${FILESDIR}/nsd.initd-r${NSD_INITD_VER}" nsd + newconfd "${FILESDIR}/nsd.confd-r${NSD_CONFD_VER}" nsd + newtmpfiles "${FILESDIR}/nsd.tmpfilesd-r${NSD_TMPFILESD_VER}" nsd.conf + + # Install munin plugin and config, if requested. + if use munin ; then + exeinto "/usr/libexec/munin/plugins" + doexe contrib/nsd_munin_ + insinto "/etc/munin/plugin-conf.d" + newins "${FILESDIR}/nsd.munin-conf" nsd_munin + fi + + # Use the upstream-provided systemd service file. + systemd_dounit "contrib/nsd.service" + + # Remove the /run directory that usually resides on tmpfs and is + # being taken care of by the nsd init script anyway (checkpath). + rm -r "${ED}/run" || die "Failed to remove /run" + + keepdir "${NSD_DBDIR}" +} + +pkg_postinst() { + # See eclass/tmpfiles.eclass for info. + tmpfiles_process nsd.conf + + # Database directory + # Writable by nsd:nsd for database updates and zone transfers. + install -d -m 750 -o nsd -g nsd "${EROOT}/${NSD_DBDIR}" + + # Zones directory + # Writable by nsd:nsd for zone file updates (via 'nsd-control write'). + install -d -m 750 -o nsd -g nsd "${EROOT}/${NSD_ZNDIR}" +} diff --git a/net-dns/nsd/nsd-4.9.1.ebuild b/net-dns/nsd/nsd-4.9.1.ebuild index 53cbc4f1d5f1..8c9ca27a596b 100644 --- a/net-dns/nsd/nsd-4.9.1.ebuild +++ b/net-dns/nsd/nsd-4.9.1.ebuild @@ -92,13 +92,13 @@ src_configure() { $(use_with libevent) $(use_with ssl) - --with-dbfile="${EPREFIX}/${NSD_DBDIR}/nsd.db" + --with-dbfile="${EPREFIX}${NSD_DBDIR}/nsd.db" --with-logfile="${EPREFIX}/var/log/nsd.log" --with-pidfile="${EPREFIX}/run/nsd.pid" - --with-xfrdfile="${EPREFIX}/${NSD_DBDIR}/xfrd.state" - --with-xfrdir="${EPREFIX}/${NSD_DBDIR}" - --with-zonelistfile="${EPREFIX}/${NSD_DBDIR}/zone.list" - --with-zonesdir="${EPREFIX}/${NSD_ZNDIR}" + --with-xfrdfile="${EPREFIX}${NSD_DBDIR}/xfrd.state" + --with-xfrdir="${EPREFIX}${NSD_DBDIR}" + --with-zonelistfile="${EPREFIX}${NSD_DBDIR}/zone.list" + --with-zonesdir="${EPREFIX}${NSD_ZNDIR}" ) # This configure switch is only available on a glibc-based system. diff --git a/net-dns/nsd/nsd-9999.ebuild b/net-dns/nsd/nsd-9999.ebuild index 77ea73ae7afc..da8e10d8e3ac 100644 --- a/net-dns/nsd/nsd-9999.ebuild +++ b/net-dns/nsd/nsd-9999.ebuild @@ -27,7 +27,7 @@ fi LICENSE="BSD" SLOT="0" -IUSE="bind8-stats debug +default-znow dnstap +ipv6 +largefile libevent +lto memclean minimal-responses mmap munin +nsec3 packed +pie +radix-tree ratelimit recvmmsg ssl systemd +tfo year2038" +IUSE="bind8-stats debug +default-znow dnstap +ipv6 +largefile libevent +lto memclean minimal-responses mmap munin +nsec3 packed +pie +radix-tree ratelimit recvmmsg +simdzone ssl systemd +tfo year2038" RDEPEND=" acct-group/nsd @@ -49,12 +49,12 @@ BDEPEND=" " PATCHES=( - "${FILESDIR}/${P}-systemd-no-pidfile.patch" "${FILESDIR}/${PN}-munin-gentoo-paths.patch" ) -NSD_INITD_VER="2" # Current version of NSD's OpenRC init.d script. -NSD_TMPFILESD_VER="1" # Current version of NSD's tmpfiles.d config. +NSD_CONFD_VER="1" # Cur version of NSD's OpenRC conf.d file. +NSD_INITD_VER="2" # Cur version of NSD's OpenRC init.d script. +NSD_TMPFILESD_VER="1" # Cur version of NSD's tmpfiles.d config. NSD_DBDIR="/var/db/nsd" # Default dir for NSD's databases. NSD_ZNDIR="/var/lib/nsd" # Default dir for NSD's zone files. @@ -91,15 +91,28 @@ src_configure() { $(use_with libevent) $(use_with ssl) - --with-dbfile="${EPREFIX}/${NSD_DBDIR}/nsd.db" + --with-dbfile="${EPREFIX}${NSD_DBDIR}/nsd.db" --with-logfile="${EPREFIX}/var/log/nsd.log" - --with-pidfile="${EPREFIX}/run/nsd/nsd.pid" - --with-xfrdfile="${EPREFIX}/${NSD_DBDIR}/xfrd.state" - --with-xfrdir="${EPREFIX}/${NSD_DBDIR}" - --with-zonelistfile="${EPREFIX}/${NSD_DBDIR}/zone.list" - --with-zonesdir="${EPREFIX}/${NSD_ZNDIR}" + --with-pidfile="${EPREFIX}/run/nsd.pid" + --with-xfrdfile="${EPREFIX}${NSD_DBDIR}/xfrd.state" + --with-xfrdir="${EPREFIX}${NSD_DBDIR}" + --with-zonelistfile="${EPREFIX}${NSD_DBDIR}/zone.list" + --with-zonesdir="${EPREFIX}${NSD_ZNDIR}" ) + # NSD 4.10.x introduced a new zone parser, "simdzone", which + # replaces the older parser that used flex & bison: + # https://github.com/NLnetLabs/simdzone + # It leverages SSE4.2 and/or AVX2 instruction sets for faster + # zone parsing on x86_64 architectures. Other CPU archs will + # use a fallback implementation. + if use amd64; then + myconf+=( + $(use_enable simdzone haswell) + $(use_enable simdzone westmere) + ) + fi + # This configure switch is only available on a glibc-based system. if use elibc_glibc; then myconf+=( $(use_enable year2038) ) @@ -112,17 +125,16 @@ src_install() { emake DESTDIR="${D}" install dodoc doc/{ChangeLog,CREDITS,NSD-4-features,NSD-FOR-BIND-USERS,README,RELNOTES,REQUIREMENTS} - newinitd "${FILESDIR}/nsd.initd-r${NSD_INITD_VER}" nsd - - newtmpfiles "${FILESDIR}/nsd.tmpfilesd-r1" nsd.conf + newconfd "${FILESDIR}/nsd.confd-r${NSD_CONFD_VER}" nsd + newtmpfiles "${FILESDIR}/nsd.tmpfilesd-r${NSD_TMPFILESD_VER}" nsd.conf # Install munin plugin and config, if requested. if use munin ; then exeinto "/usr/libexec/munin/plugins" doexe contrib/nsd_munin_ insinto "/etc/munin/plugin-conf.d" - newins "${FILESDIR}/nsd.munin-conf nsd_munin" + newins "${FILESDIR}/nsd.munin-conf" nsd_munin fi # Use the upstream-provided systemd service file. |