public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: net-nds/389-ds-base/, net-nds/389-ds-base/files/
@ 2016-03-01  4:29 Ian Delaney
  0 siblings, 0 replies; 6+ messages in thread
From: Ian Delaney @ 2016-03-01  4:29 UTC (permalink / raw
  To: gentoo-commits

commit:     c0460891560e8bece9305c0e0596e0dba1974400
Author:     Wes Cilldhaire <wes <AT> sol1 <DOT> com <DOT> au>
AuthorDate: Tue Mar  1 03:08:51 2016 +0000
Commit:     Ian Delaney <idella4 <AT> gentoo <DOT> org>
CommitDate: Tue Mar  1 03:08:51 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c0460891

net-nds/389-ds-base: Remove 1.3.4.7 and superfluous files

1.3.4.7 is vulnerable to CVE-2016-0741 and upstream has advised users
to upgrade to 1.3.4.8

Acked-by wibrown <AT> redhat.com

Package-Manager: portage-2.2.27

 net-nds/389-ds-base/389-ds-base-1.3.4.7-r2.ebuild  | 151 --------
 net-nds/389-ds-base/Manifest                       |   1 -
 .../files/389-ds-base-1.2.11-fix-mozldap.patch     |  28 --
 .../389-ds-base-1.3.4.7-no-instance-script.patch   | 396 ---------------------
 .../389-ds-base-1.3.4.7-shell-corrections.patch    | 242 -------------
 net-nds/389-ds-base/files/389-ds.initd             |  78 ----
 6 files changed, 896 deletions(-)

diff --git a/net-nds/389-ds-base/389-ds-base-1.3.4.7-r2.ebuild b/net-nds/389-ds-base/389-ds-base-1.3.4.7-r2.ebuild
deleted file mode 100644
index 0166bf8..0000000
--- a/net-nds/389-ds-base/389-ds-base-1.3.4.7-r2.ebuild
+++ /dev/null
@@ -1,151 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-
-WANT_AUTOMAKE="1.9"
-MY_P=${P/_alpha/.a}
-MY_P=${MY_P/_rc/.rc}
-
-inherit user eutils multilib flag-o-matic autotools
-
-DESCRIPTION="389 Directory Server (core librares and daemons )"
-HOMEPAGE="http://port389.org/"
-SRC_URI="http://directory.fedoraproject.org/sources/${MY_P}.tar.bz2"
-
-LICENSE="GPL-3"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="autobind auto-dn-suffix debug doc +pam-passthru +dna +ldapi +bitwise +presence kerberos selinux"
-
-COMMON_DEPEND="
-	sys-libs/db:5.3
-	>=dev-libs/cyrus-sasl-2.1.19
-	>=net-analyzer/net-snmp-5.1.2
-	>=dev-libs/icu-3.4:=
-	dev-libs/nss[utils]
-	dev-libs/nspr
-	dev-libs/svrcore
-	dev-libs/openssl:0=
-	dev-libs/libpcre:3
-	>=dev-perl/perl-mozldap-1.5.3
-	dev-perl/NetAddr-IP
-	net-nds/openldap
-	sys-libs/pam
-	sys-libs/zlib
-	kerberos? ( >=app-crypt/mit-krb5-1.7-r100[openldap] )"
-
-DEPEND="${COMMON_DEPEND}
-	virtual/pkgconfig
-	sys-devel/libtool
-	doc? ( app-doc/doxygen )
-	sys-apps/sed"
-RDEPEND="${COMMON_DEPEND}
-	selinux? ( sec-policy/selinux-dirsrv )
-	virtual/perl-Time-Local
-	virtual/perl-MIME-Base64"
-
-S="${WORKDIR}/${MY_P}"
-
-pkg_setup() {
-	enewgroup dirsrv
-	enewuser dirsrv -1 -1 -1 dirsrv
-}
-
-src_prepare() {
-	#0001-Ticket-47840-add-configure-option-to-disable-instanc.patch
-	epatch "${FILESDIR}/${P}-no-instance-script.patch"
-
-	#0001-Ticket-48448-dirsrv-start-stop-fail-in-certain-shell.patch
-	epatch "${FILESDIR}/${P}-shell-corrections.patch"
-
-	# as per 389 documentation, when 64bit, export USE_64
-	use amd64 && export USE_64=1
-
-	# This will be changed in 1.3.5.X
-	sed -i -e 's/nobody/dirsrv/g' configure.ac || die "sed failed on configure.ac"
-	eautoreconf
-
-	append-lfs-flags
-}
-
-src_configure() {
-	local myconf=""
-
-	use auto-dn-suffix && myconf="${myconf} --enable-auto-dn-suffix"
-
-	# for 1.3.5.X, will add --enable-gcc-security
-	econf \
-		$(use_enable debug) \
-		$(use_enable pam-passthru) \
-		$(use_enable ldapi) \
-		$(use_enable autobind) \
-		$(use_enable dna) \
-		$(use_enable bitwise) \
-		$(use_enable presence) \
-		$(use_with kerberos) \
-		$(use_enable debug) \
-		--enable-maintainer-mode \
-		--enable-autobind \
-		--with-fhs \
-		--with-openldap \
-		--with-db-inc=/usr/include/${CHOST}/db5.3/ \
-		--sbindir=/usr/sbin \
-		--bindir=/usr/bin \
-		$myconf
-
-		# This relies on bug https://fedorahosted.org/389/ticket/48447
-		#--without-initddir \
-}
-
-src_compile() {
-	default
-	if use doc; then
-		doxygen slapi.doxy || die "cannot run doxygen"
-	fi
-}
-
-src_install () {
-	emake DESTDIR="${D}" install
-
-	# remove redhat style init script
-	rm -rf "${D}"/etc/rc.d || die
-	# Needs a config option to remove this.
-	rm -rf "${D}"/etc/default || die
-
-	# and install gentoo style init script
-	# Get these merged upstream
-	newinitd "${FILESDIR}"/389-ds.initd-r1 389-ds
-	newinitd "${FILESDIR}"/389-ds-snmp.initd 389-ds-snmp
-
-	# cope with libraries being in /usr/lib/dirsrv
-	dodir /etc/env.d
-	echo "LDPATH=/usr/$(get_libdir)/dirsrv" > "${D}"/etc/env.d/08dirsrv
-
-	if use doc; then
-		cd "${S}" || die
-		docinto html/
-		dodoc -r docs/html/.
-	fi
-}
-
-pkg_postinst() {
-	echo
-	elog "If you are planning to use 389-ds-snmp (ldap-agent),"
-	elog "make sure to properly configure: /etc/dirsrv/config/ldap-agent.conf"
-	elog "adding proper 'server' entries, and adding the lines below to"
-	elog " => /etc/snmp/snmpd.conf"
-	elog
-	elog "master agentx"
-	elog "agentXSocket /var/agentx/master"
-	elog
-	elog "To start 389 Directory Server (LDAP service) at boot:"
-	elog
-	elog "    rc-update add 389-ds default"
-	elog
-	elog "If you are upgrading from previous 1.2.6 release candidates"
-	elog "please see:"
-	elog "http://directory.fedoraproject.org/wiki/Subtree_Rename#warning:_upgrade_from_389_v1.2.6_.28a.3F.2C_rc1_.7E_rc6.29_to_v1.2.6_rc6_or_newer"
-	echo
-}

diff --git a/net-nds/389-ds-base/Manifest b/net-nds/389-ds-base/Manifest
index 1d77e26..4e427cc 100644
--- a/net-nds/389-ds-base/Manifest
+++ b/net-nds/389-ds-base/Manifest
@@ -1,2 +1 @@
-DIST 389-ds-base-1.3.4.7.tar.bz2 3397520 SHA256 08dae55ed0732e8d316bb65910c74ee913fc215c3436299239e362a3670e76e6 SHA512 02159ce8e9d1e5797d6d6952202b430429bf750179279348430333f7a4b557e305a2041a1e4e7ffe652d34825c9678d3fbf8a3eaea401f257bd922034dbce875 WHIRLPOOL 97af90f6b3f01a2a11e236f1141d1851016711f69b618f2e3122715e8575541040aa09c03f66f7a20cca9e2136bb2d3612c8fcec16b616f981dba39c4f449453
 DIST 389-ds-base-1.3.4.8.tar.bz2 3396105 SHA256 a00468afcfa50de375f921a827a04dd53b6a11b632982bb0db98cafca509e701 SHA512 ac85223cb38d4cebb3ff61b23e3c0312b0cd30a0c6bf0d9644842c6ecfbc9379ea4a639c80b3e78a13a67f273342fec78e9ecf4672cc72e289d72d74c2fa0d8f WHIRLPOOL 4c7645be5b70c108ef437aaf6d50293a99fa6a552c859f649904c6974c8830e5bf96286a0f998c5d187c1f66f3e0922bbe1e756889e6b0a33e8d9db56f0aa005

diff --git a/net-nds/389-ds-base/files/389-ds-base-1.2.11-fix-mozldap.patch b/net-nds/389-ds-base/files/389-ds-base-1.2.11-fix-mozldap.patch
deleted file mode 100644
index 7c99085..0000000
--- a/net-nds/389-ds-base/files/389-ds-base-1.2.11-fix-mozldap.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-commit f5bd0ed47523b39aedb6bcc1f9c0754371159a77
-Author: Rich Megginson <rmeggins at redhat.com>
-Date:   Fri Sep 14 09:20:18 2012 -0600
-
-    Ticket #461 - fix build problem with mozldap c sdk
-    
-    https://fedorahosted.org/389/ticket/461
-    Reviewed by: rmeggins
-    Fixed by: cgrzemba
-    Branch: master
-    Fix Description: mozldap does not define LDAP_MOD_OP so define it
-    Platforms tested: RHEL6 x86_64
-    Flag Day: no
-    Doc impact: no
-
-diff --git a/ldap/servers/slapd/pw.c b/ldap/servers/slapd/pw.c
-index bfd48b1..4736e82 100644
---- a/ldap/servers/slapd/pw.c
-+++ b/ldap/servers/slapd/pw.c
-@@ -61,6 +61,9 @@
- #if defined( _WIN32 )
- #undef LDAPDebug
- #endif	/*  _WIN32 */
-+#if defined( USE_MOZLDAP )
-+#define LDAP_MOD_OP (0x0007)
-+#endif /* USE_MOZLDAP */
- 
- #include "slap.h"

diff --git a/net-nds/389-ds-base/files/389-ds-base-1.3.4.7-no-instance-script.patch b/net-nds/389-ds-base/files/389-ds-base-1.3.4.7-no-instance-script.patch
deleted file mode 100644
index 8af7ad2..0000000
--- a/net-nds/389-ds-base/files/389-ds-base-1.3.4.7-no-instance-script.patch
+++ /dev/null
@@ -1,396 +0,0 @@
-From 7b75e7a4c60637a86acf6c757f207550294279ef Mon Sep 17 00:00:00 2001
-From: William Brown <wibrown@redhat.com>
-Date: Wed, 28 Oct 2015 14:25:26 +1000
-Subject: [PATCH] Ticket 47840 - add configure option to disable instance
- specific scripts https://fedorahosted.org/389/ticket/47840
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Bug Description:  Now that ​https://fedorahosted.org/389/ticket/528 is
-fixed, the next step is to allow building the server with the instance specific
-scripts disabled.
-
-Fix Description:  Instead of defining a configure option, we provide a new
-option in setup-ds.pl, slapd.InstScriptsEnabled, which defaults to false. All
-new installs of 389 will NOT install with a inst_dir nor the scripts that are in
-that directory.
-
-Additionally, this change fixes setup-ds.pl to correctly use the sbindir scripts
-to start/stop the server instance during installation.
-
-Finally, we add support for setup-ds.pl so that in --update if the inst_dir
-exists, scripts will be updated, but if it does not exist, no action is taken.
-
-In time, we will alter --update to *remove* the scripts within inst_dir during
-the update (We have no way of knowing if a customer has put custom scripts in
-inst_dir)
-
-Example:
-/opt/dirsrv/sbin/setup-ds.pl slapd.InstScriptsEnabled=false
-
-Author: wibrown
-
-Review by: nhosoi (Thanks!)
----
- ldap/admin/src/scripts/DSCreate.pm.in  | 204 +++++++++++++++++++--------------
- ldap/admin/src/scripts/DSUpdate.pm.in  |  12 +-
- ldap/admin/src/scripts/setup-ds.res.in |   1 +
- 3 files changed, 124 insertions(+), 93 deletions(-)
-
-diff --git a/ldap/admin/src/scripts/DSCreate.pm.in b/ldap/admin/src/scripts/DSCreate.pm.in
-index 3ce5a73..6425be4 100644
---- a/ldap/admin/src/scripts/DSCreate.pm.in
-+++ b/ldap/admin/src/scripts/DSCreate.pm.in
-@@ -130,6 +130,15 @@ sub sanityCheckParams {
-         return @errs;
-     }
- 
-+    # We need to make sure this value is lowercase
-+    $inf->{slapd}->{InstScriptsEnabled} = lc $inf->{slapd}->{InstScriptsEnabled};
-+
-+    if ("true" ne $inf->{slapd}->{InstScriptsEnabled} && "false" ne $inf->{slapd}->{InstScriptsEnabled}) {
-+        debug(1, "InstScriptsEnabled is not a valid boolean");
-+        return ('error_invalid_boolean', $inf->{slapd}->{InstScriptsEnabled});
-+    }
-+
-+
-     return ();
- }
- 
-@@ -204,13 +213,17 @@ sub makeDSDirs {
-     my $mode = getMode($inf, 7);
-     my @errs;
- 
-+    my @dsdirs = qw(config_dir schema_dir log_dir lock_dir run_dir tmp_dir cert_dir db_dir ldif_dir bak_dir);
-+    if ($inf->{slapd}->{InstScriptsEnabled} eq "true") {
-+        @dsdirs = qw(inst_dir config_dir schema_dir log_dir lock_dir run_dir tmp_dir cert_dir db_dir ldif_dir bak_dir);
-+    }
-+
-     # These paths are owned by the SuiteSpotGroup
-     # This allows the admin server to run as a different,
-     # more privileged user than the directory server, but
-     # still allows the admin server to manage directory
-     # server files/dirs without being root
--    for my $kw (qw(inst_dir config_dir schema_dir log_dir lock_dir run_dir tmp_dir
--            cert_dir db_dir ldif_dir bak_dir)) {
-+    for my $kw (@dsdirs) {
-         my $dir = $inf->{slapd}->{$kw};
-         @errs = makePaths($dir, $mode, $inf->{General}->{SuiteSpotUserID},
-                           $inf->{General}->{SuiteSpotGroup});
-@@ -262,56 +275,66 @@ sub createInstanceScripts {
-     my $myperl = "!$perlexec";
-     my $mydevnull = (-f "/dev/null" ? " /dev/null " : " NUL ");
- 
--    # determine initconfig_dir
--    my $initconfig_dir = $inf->{slapd}->{initconfig_dir} || get_initconfigdir($inf->{General}->{prefix});
--
--    my %maptable = (
--        "DS-ROOT" => $inf->{General}->{prefix},
--        "SEP" => "/", # works on all platforms
--        "SERVER-NAME" => $inf->{General}->{FullMachineName},
--        "SERVER-PORT" => $inf->{slapd}->{ServerPort},
--        "PERL-EXEC" => $myperl,
--        "DEV-NULL" => $mydevnull,
--        "ROOT-DN" => $inf->{slapd}->{RootDN},
--        "LDIF-DIR" => $inf->{slapd}->{ldif_dir},
--        "SERV-ID" => $inf->{slapd}->{ServerIdentifier},
--        "BAK-DIR" => $inf->{slapd}->{bak_dir},
--        "SERVER-DIR" => $inf->{General}->{ServerRoot},
--        "CONFIG-DIR" => $inf->{slapd}->{config_dir},
--        "INITCONFIG-DIR" => $initconfig_dir,
--        "INST-DIR" => $inf->{slapd}->{inst_dir},
--        "RUN-DIR" => $inf->{slapd}->{run_dir},
--        "PRODUCT-NAME" => "slapd",
--        "SERVERBIN-DIR" => $inf->{slapd}->{sbindir},
--        "DB-DIR" => $inf->{slapd}->{db_dir}
--    );
--
--    my $dir = "$inf->{General}->{prefix}@taskdir@";
--    for my $file (glob("$dir/template-*")) {
--        my $basename = $file;
--        $basename =~ s/^.*template-//;
--        my $destfile = "$inf->{slapd}->{inst_dir}/$basename";
--
--        next if ($skip and -f $destfile); # in skip mode, skip files that already exist
--
--        if (!open(SRC, "< $file")) {
--            return ("error_opening_scripttmpl", $file, $!);
--        }
--        if (!open(DEST, "> $destfile")) {
--            return ("error_opening_scripttmpl", $destfile, $!);
--        }
--        my $contents; # slurp entire file into memory
--        read SRC, $contents, int(-s $file);
--        close(SRC);
--        while (my ($key, $val) = each %maptable) {
--            $contents =~ s/\{\{$key\}\}/$val/g;
--        }
--        print DEST $contents;
--        close(DEST);
--        my @errs = changeOwnerMode($inf, 5, $destfile);
--        if (@errs) {
--            return @errs;
-+    # If we have InstScriptsEnabled, we likely have setup.inf or the argument.
-+    # However, during an upgrade, we need to know if we should upgrade the template files or not.
-+    # For now, the easiest way is to check to if the directory exists, and if is does, we assume we want to upgrade / create the updated scripts.
-+    if ($inf->{slapd}->{InstScriptsEnabled} eq "true" || -d $inf->{slapd}->{inst_dir} ) {
-+        debug(1, "Creating or updating instance directory scripts\n");
-+        # determine initconfig_dir
-+        my $initconfig_dir = $inf->{slapd}->{initconfig_dir} || get_initconfigdir($inf->{General}->{prefix});
-+
-+        my %maptable = (
-+            "DS-ROOT" => $inf->{General}->{prefix},
-+            "SEP" => "/", # works on all platforms
-+            "SERVER-NAME" => $inf->{General}->{FullMachineName},
-+            "SERVER-PORT" => $inf->{slapd}->{ServerPort},
-+            "PERL-EXEC" => $myperl,
-+            "DEV-NULL" => $mydevnull,
-+            "ROOT-DN" => $inf->{slapd}->{RootDN},
-+            "LDIF-DIR" => $inf->{slapd}->{ldif_dir},
-+            "SERV-ID" => $inf->{slapd}->{ServerIdentifier},
-+            "BAK-DIR" => $inf->{slapd}->{bak_dir},
-+            "SERVER-DIR" => $inf->{General}->{ServerRoot},
-+            "CONFIG-DIR" => $inf->{slapd}->{config_dir},
-+            "INITCONFIG-DIR" => $initconfig_dir,
-+            "INST-DIR" => $inf->{slapd}->{inst_dir},
-+            "RUN-DIR" => $inf->{slapd}->{run_dir},
-+            "PRODUCT-NAME" => "slapd",
-+            "SERVERBIN-DIR" => $inf->{slapd}->{sbindir},
-+            "DB-DIR" => $inf->{slapd}->{db_dir}
-+        );
-+
-+
-+        my $dir = "$inf->{General}->{prefix}@taskdir@";
-+        for my $file (glob("$dir/template-*")) {
-+            my $basename = $file;
-+            $basename =~ s/^.*template-//;
-+            my $destfile = "$inf->{slapd}->{inst_dir}/$basename";
-+            debug(1, "$destfile\n");
-+
-+            next if ($skip and -f $destfile); # in skip mode, skip files that already exist
-+
-+            if (!open(SRC, "< $file")) {
-+                return ("error_opening_scripttmpl", $file, $!);
-+            }
-+            if (!open(DEST, "> $destfile")) {
-+                return ("error_opening_scripttmpl", $destfile, $!);
-+            }
-+            my $contents; # slurp entire file into memory
-+            read SRC, $contents, int(-s $file);
-+            close(SRC);
-+            while (my ($key, $val) = each %maptable) {
-+                $contents =~ s/\{\{$key\}\}/$val/g;
-+            }
-+            print DEST $contents;
-+            close(DEST);
-+            my @errs = changeOwnerMode($inf, 5, $destfile);
-+            if (@errs) {
-+                return @errs;
-+            }
-         }
-+    } else {
-+        debug(1, "No instance directory scripts will be updated or created\n");
-     }
- 
-     return ();
-@@ -639,7 +662,7 @@ sub initDatabase {
-         return ();
-     }
- 
--    my $cmd = "$inf->{slapd}->{inst_dir}/ldif2db -n $inf->{slapd}->{ds_bename} -i \'$ldiffile\'";
-+    my $cmd = "$inf->{slapd}->{sbindir}/ldif2db -Z $inf->{slapd}->{ServerIdentifier} -n $inf->{slapd}->{ds_bename} -i \'$ldiffile\'";
-     $? = 0; # clear error condition
-     my $output = `$cmd 2>&1`;
-     my $result = $?;
-@@ -662,7 +685,7 @@ sub startServer {
-     my @errs;
-     # get error log
-     my $errLog = "$inf->{slapd}->{log_dir}/errors";
--    my $startcmd = "$inf->{slapd}->{inst_dir}/start-slapd";
-+    my $startcmd = "$inf->{slapd}->{sbindir}/start-dirsrv $inf->{slapd}->{ServerIdentifier}";
-     if ("@systemdsystemunitdir@" and (getLogin() eq 'root')) {
-         $startcmd = "/bin/systemctl start @package_name@\@$inf->{slapd}->{ServerIdentifier}.service";
-     }
-@@ -875,6 +898,10 @@ sub setDefaults {
-                                                   "@datadir@",
-                                                   $inf->{General}->{prefix});
- 
-+    if (!defined($inf->{slapd}->{InstScriptsEnabled})) {
-+        $inf->{slapd}->{InstScriptsEnabled} = "false";
-+    }
-+
-     if (!defined($inf->{slapd}->{inst_dir})) {
-         $inf->{slapd}->{inst_dir} = "$inf->{General}->{ServerRoot}/slapd-$servid";
-     }
-@@ -975,9 +1002,12 @@ sub updateSelinuxPolicy {
-             system("restorecon -R $localstatedir/lib/@PACKAGE_NAME@");
-         }
- 
-+        my @inst_dirs = qw(config_dir schema_dir log_dir lock_dir run_dir tmp_dir cert_dir db_dir ldif_dir bak_dir);
-+        if ($inf->{slapd}->{InstScriptsEnabled} eq "true") {
-+            @inst_dirs = qw(inst_dir config_dir schema_dir log_dir lock_dir run_dir tmp_dir cert_dir db_dir ldif_dir bak_dir);
-+        }
-         # run restorecon on all instance directories we created
--        for my $kw (qw(inst_dir config_dir schema_dir log_dir lock_dir run_dir tmp_dir
--                cert_dir db_dir ldif_dir bak_dir)) {
-+        for my $kw (@inst_dirs) {
-             my $dir = $inf->{slapd}->{$kw};
-             system("restorecon -R $dir");
-         }
-@@ -1231,14 +1261,14 @@ sub createDSInstance {
- }
- 
- sub stopServer {
--    my $instancedir = shift;
--    my $prog = $instancedir . "/stop-slapd";
-+    my $instance = shift;
-+    my $prog = "@sbindir@/stop-dirsrv";
-     if (-x $prog) {
-         $? = 0;
-         # run the stop command
--        my $output = `$prog 2>&1`;
-+        my $output = `$prog $instance 2>&1`;
-         my $status = $?;
--        debug(3, "stopping server $instancedir returns status $status: output $output\n");
-+        debug(3, "stopping server $instance returns status $status: output $output\n");
-         if ($status) {
-             debug(1,"Warning: Could not stop directory server: status $status: output $output\n");
-             # if the server is not running, that's ok
-@@ -1254,7 +1284,7 @@ sub stopServer {
-         return;
-     }
- 
--    debug(1, "Successfully stopped server $instancedir\n");
-+    debug(1, "Successfully stopped server $instance\n");
-     return 1;
- }
- 
-@@ -1331,23 +1361,16 @@ sub removeDSInstance {
-     $conn->close();
- 
-     # stop the server
--    my $instdir = "";
--    if ($entry) {
--        foreach my $path ( @{$entry->{"nsslapd-instancedir"}} )
--        {
--            if (!stopServer($path)) {
--                if ($force) {
--                    debug(1, "Warning: Could not stop directory server - Error: $! - forcing continue\n");
--                } elsif ($! == ENOENT) { # stop script not found or server not running
--                    debug(1, "Warning: Could not stop directory server: already removed or not running\n");
--                    push @errs, [ 'error_stopping_server', $path, $! ];
--                } else { # real error
--                    debug(1, "Error: Could not stop directory server - aborting - use -f flag to force removal\n");
--                    push @errs, [ 'error_stopping_server', $path, $! ];
--                    return @errs;
--                }
--            }
--            $instdir = $path;
-+    if (!stopServer($inst)) {
-+        if ($force) {
-+            debug(1, "Warning: Could not stop directory server - Error: $! - forcing continue\n");
-+        } elsif ($! == ENOENT) { # stop script not found or server not running
-+            debug(1, "Warning: Could not stop directory server: already removed or not running\n");
-+            push @errs, [ 'error_stopping_server', $inst, $! ];
-+        } else { # real error
-+            debug(1, "Error: Could not stop directory server - aborting - use -f flag to force removal\n");
-+            push @errs, [ 'error_stopping_server', $inst, $! ];
-+            return @errs;
-         }
-     }
- 
-@@ -1363,18 +1386,25 @@ sub removeDSInstance {
-         push @errs, remove_tree($entry, "nsslapd-errorlog", $instname, 1);
-     }
- 
--    # instance dir
--    if ( -d $instdir && $instdir =~ /$instname/ )
--    {
--        # clean up pid files (if any)
--        remove_pidfile("STARTPIDFILE", $inst, $instdir, $instname, $rundir, $product_name);
--        remove_pidfile("PIDFILE", $inst, $instdir, $instname, $rundir, $product_name);
- 
--        my $rc = rmtree($instdir);
--        if ( 0 == $rc )
-+    # instance dir
-+    my $instdir = "";
-+    if ($entry) {
-+        foreach my $instdir ( @{$entry->{"nsslapd-instancedir"}} )
-         {
--            push @errs, [ 'error_removing_path', $instdir, $! ];
--            debug(1, "Warning: $instdir was not removed.  Error: $!\n");
-+            if ( -d $instdir && $instdir =~ /$instname/ )
-+            {
-+                # clean up pid files (if any)
-+                remove_pidfile("STARTPIDFILE", $inst, $instdir, $instname, $rundir, $product_name);
-+                remove_pidfile("PIDFILE", $inst, $instdir, $instname, $rundir, $product_name);
-+
-+                my $rc = rmtree($instdir);
-+                if ( 0 == $rc )
-+                {
-+                    push @errs, [ 'error_removing_path', $instdir, $! ];
-+                    debug(1, "Warning: $instdir was not removed.  Error: $!\n");
-+                }
-+            }
-         }
-     }
-     # Finally, config dir
-diff --git a/ldap/admin/src/scripts/DSUpdate.pm.in b/ldap/admin/src/scripts/DSUpdate.pm.in
-index be1e67c..e84a9a9 100644
---- a/ldap/admin/src/scripts/DSUpdate.pm.in
-+++ b/ldap/admin/src/scripts/DSUpdate.pm.in
-@@ -226,10 +226,10 @@ sub updateDS {
-     for my $upd (@updates) {
-         my @localerrs;
-         if ($upd->{$PRE_STAGE}) {
--            debug(1, "Running stage $PRE_STAGE update ", $upd->{path}, "\n");
-+            debug(1, "Running updateDS stage $PRE_STAGE update ", $upd->{path}, "\n");
-             @localerrs = &{$upd->{$PRE_STAGE}}($inf, $setup->{configdir});
-         } elsif ($upd->{file}) {
--            debug(1, "Running stage $PRE_STAGE update ", $upd->{path}, "\n");
-+            debug(1, "Running updateDS stage $PRE_STAGE update ", $upd->{path}, "\n");
-             @localerrs = processUpdate($upd, $inf, $setup->{configdir}, $PRE_STAGE);
-         }
-         if (@localerrs) {
-@@ -276,10 +276,10 @@ sub updateDS {
-     for my $upd (@updates) {
-         my @localerrs;
-         if ($upd->{$POST_STAGE}) {
--            debug(1, "Running stage $POST_STAGE update ", $upd->{path}, "\n");
-+            debug(1, "Running updateDS stage $POST_STAGE update ", $upd->{path}, "\n");
-             @localerrs = &{$upd->{$POST_STAGE}}($inf, $setup->{configdir});
-         } elsif ($upd->{file}) {
--            debug(1, "Running stage $POST_STAGE update ", $upd->{path}, "\n");
-+            debug(1, "Running updateDS stage $POST_STAGE update ", $upd->{path}, "\n");
-             @localerrs = processUpdate($upd, $inf, $setup->{configdir}, $POST_STAGE);
-         }
-         if (@localerrs) {
-@@ -385,10 +385,10 @@ sub updateDSInstance {
-         for my $upd (@{$updates}) {
-             my @localerrs;
-             if ($upd->{$stage}) {
--                debug(1, "Running stage $stage update ", $upd->{path}, "\n");
-+                debug(1, "Running updateDSInstance stage $stage update ", $upd->{path}, "\n");
-                 @localerrs = &{$upd->{$stage}}($inf, $inst, $dseldif, $conn);
-             } elsif ($upd->{file}) {
--                debug(1, "Running stage $stage update ", $upd->{path}, "\n");
-+                debug(1, "Running updateDSInstance stage $stage update ", $upd->{path}, "\n");
-                 @localerrs = processUpdate($upd, $inf, $configdir, $stage,
-                                            $inst, $dseldif, $conn);
-             }
-diff --git a/ldap/admin/src/scripts/setup-ds.res.in b/ldap/admin/src/scripts/setup-ds.res.in
-index 7134e25..fa37567 100644
---- a/ldap/admin/src/scripts/setup-ds.res.in
-+++ b/ldap/admin/src/scripts/setup-ds.res.in
-@@ -116,6 +116,7 @@ error_creating_file = Could not create file '%s'.  Error: %s\n
- error_copying_file = Could not copy file '%s' to '%s'.  Error: %s\n
- error_enabling_feature = Could not enable the directory server feature '%s'.  Error: %s\n
- error_importing_ldif = Could not import LDIF file '%s'.  Error: %s.  Output: %s\n
-+error_invalid_boolean = Could not convert value '%s' to boolean. Valid values are true or false.\n
- error_starting_server = Could not start the directory server using command '%s'.  The last line from the error log was '%s'.  Error: %s\n
- error_stopping_server = Could not stop the directory server '%s'.  Error: %s\n
- error_missing_userid = The SuiteSpotUserID is missing.  This must be set to valid user\n
--- 
-2.4.3
-

diff --git a/net-nds/389-ds-base/files/389-ds-base-1.3.4.7-shell-corrections.patch b/net-nds/389-ds-base/files/389-ds-base-1.3.4.7-shell-corrections.patch
deleted file mode 100644
index 0842382..0000000
--- a/net-nds/389-ds-base/files/389-ds-base-1.3.4.7-shell-corrections.patch
+++ /dev/null
@@ -1,242 +0,0 @@
-From 340cdd3c9648c4b35ef95cc0498413b763e71859 Mon Sep 17 00:00:00 2001
-From: William Brown <firstyear@redhat.com>
-Date: Sun, 31 Jan 2016 14:27:13 +1000
-Subject: [PATCH] Ticket 48448 - dirsrv start-stop fail in certain shell
- environments.
-
-Bug Description:  Dirsrv fails to start and stop with certain shell environments
-. This is due to the usage of the pattern
-
-  cd $SERVERBIN_DIR
-  ./ns-slapd ...
-
-Fix Description:  Change all invocations of commands to use explicit paths:
-
-  $SERVERBIN_DIR/ns-slapd
-
-https://fedorahosted.org/389/ticket/48448
-
-Author: wibrown
-
-Review by: ???
----
- ldap/admin/src/scripts/start-dirsrv.in             | 2 +-
- ldap/admin/src/scripts/template-bak2db.in          | 3 +--
- ldap/admin/src/scripts/template-db2bak.in          | 5 ++---
- ldap/admin/src/scripts/template-db2index.in        | 5 ++---
- ldap/admin/src/scripts/template-db2ldif.in         | 3 +--
- ldap/admin/src/scripts/template-dbverify.in        | 5 ++---
- ldap/admin/src/scripts/template-dn2rdn.in          | 5 ++---
- ldap/admin/src/scripts/template-ldif2db.in         | 3 +--
- ldap/admin/src/scripts/template-ldif2ldap.in       | 5 ++---
- ldap/admin/src/scripts/template-monitor.in         | 5 ++---
- ldap/admin/src/scripts/template-restoreconfig.in   | 5 ++---
- ldap/admin/src/scripts/template-saveconfig.in      | 5 ++---
- ldap/admin/src/scripts/template-suffix2instance.in | 5 ++---
- ldap/admin/src/scripts/template-upgradedb.in       | 3 +--
- ldap/admin/src/scripts/template-upgradednformat.in | 5 ++---
- ldap/admin/src/scripts/template-vlvindex.in        | 3 +--
- 16 files changed, 26 insertions(+), 41 deletions(-)
-
-diff --git a/ldap/admin/src/scripts/start-dirsrv.in b/ldap/admin/src/scripts/start-dirsrv.in
-index 458f0e8..513addb 100755
---- a/ldap/admin/src/scripts/start-dirsrv.in
-+++ b/ldap/admin/src/scripts/start-dirsrv.in
-@@ -70,7 +70,7 @@ start_instance() {
-             return 1
-         fi
-     else
--        cd $SERVERBIN_DIR; ./ns-slapd -D $CONFIG_DIR -i $PIDFILE -w $STARTPIDFILE "$@"
-+        $SERVERBIN_DIR/ns-slapd -D $CONFIG_DIR -i $PIDFILE -w $STARTPIDFILE "$@"
-         if [ $? -ne 0 ]; then
-             return 1
-         fi
-diff --git a/ldap/admin/src/scripts/template-bak2db.in b/ldap/admin/src/scripts/template-bak2db.in
-index 1725aba..01a12fa 100755
---- a/ldap/admin/src/scripts/template-bak2db.in
-+++ b/ldap/admin/src/scripts/template-bak2db.in
-@@ -1,5 +1,4 @@
- #!/bin/sh
- 
--cd {{SERVERBIN-DIR}}
--./bak2db "$@" -Z {{SERV-ID}}
-+{{SERVERBIN-DIR}}/bak2db "$@" -Z {{SERV-ID}}
- exit $?
-diff --git a/ldap/admin/src/scripts/template-db2bak.in b/ldap/admin/src/scripts/template-db2bak.in
-index 50fd5ed..70a4a2b 100755
---- a/ldap/admin/src/scripts/template-db2bak.in
-+++ b/ldap/admin/src/scripts/template-db2bak.in
-@@ -1,5 +1,4 @@
- #!/bin/sh
- 
--cd {{SERVERBIN-DIR}}
--./db2bak "$@" -Z {{SERV-ID}}
--exit $?
-\ No newline at end of file
-+{{SERVERBIN-DIR}}/db2bak "$@" -Z {{SERV-ID}}
-+exit $?
-diff --git a/ldap/admin/src/scripts/template-db2index.in b/ldap/admin/src/scripts/template-db2index.in
-index a7a633d..9c7c5ec 100755
---- a/ldap/admin/src/scripts/template-db2index.in
-+++ b/ldap/admin/src/scripts/template-db2index.in
-@@ -1,5 +1,4 @@
- #!/bin/sh
- 
--cd {{SERVERBIN-DIR}}
--./db2index "$@" -Z {{SERV-ID}}
--exit $?
-\ No newline at end of file
-+{{SERVERBIN-DIR}}/db2index "$@" -Z {{SERV-ID}}
-+exit $?
-diff --git a/ldap/admin/src/scripts/template-db2ldif.in b/ldap/admin/src/scripts/template-db2ldif.in
-index b85ffdc..3881911 100755
---- a/ldap/admin/src/scripts/template-db2ldif.in
-+++ b/ldap/admin/src/scripts/template-db2ldif.in
-@@ -1,6 +1,5 @@
- #!/bin/sh
- 
- cwd=`pwd`
--cd {{SERVERBIN-DIR}}
--./db2ldif "$@" -Z {{SERV-ID}} -c $cwd
-+{{SERVERBIN-DIR}}/db2ldif "$@" -Z {{SERV-ID}} -c $cwd
- exit $?
-diff --git a/ldap/admin/src/scripts/template-dbverify.in b/ldap/admin/src/scripts/template-dbverify.in
-index 71e3e4e..abcc58e 100755
---- a/ldap/admin/src/scripts/template-dbverify.in
-+++ b/ldap/admin/src/scripts/template-dbverify.in
-@@ -1,5 +1,4 @@
- #!/bin/sh
- 
--cd {{SERVERBIN-DIR}}
--./dbverify "$@" -Z {{SERV-ID}}
--exit $?
-\ No newline at end of file
-+{{SERVERBIN-DIR}}/dbverify "$@" -Z {{SERV-ID}}
-+exit $?
-diff --git a/ldap/admin/src/scripts/template-dn2rdn.in b/ldap/admin/src/scripts/template-dn2rdn.in
-index b3d8e82..9ecae08 100755
---- a/ldap/admin/src/scripts/template-dn2rdn.in
-+++ b/ldap/admin/src/scripts/template-dn2rdn.in
-@@ -1,5 +1,4 @@
- #!/bin/sh
- 
--cd {{SERVERBIN-DIR}}
--./dn2rdn "$@" -Z {{SERV-ID}}
--exit $?
-\ No newline at end of file
-+{{SERVERBIN-DIR}}/dn2rdn "$@" -Z {{SERV-ID}}
-+exit $?
-diff --git a/ldap/admin/src/scripts/template-ldif2db.in b/ldap/admin/src/scripts/template-ldif2db.in
-index f3fa58e..f38fce3 100755
---- a/ldap/admin/src/scripts/template-ldif2db.in
-+++ b/ldap/admin/src/scripts/template-ldif2db.in
-@@ -1,5 +1,4 @@
- #!/bin/sh
- 
--cd {{SERVERBIN-DIR}}
--./ldif2db "$@" -Z {{SERV-ID}}
-+{{SERVERBIN-DIR}}/ldif2db "$@" -Z {{SERV-ID}}
- exit $?
-diff --git a/ldap/admin/src/scripts/template-ldif2ldap.in b/ldap/admin/src/scripts/template-ldif2ldap.in
-index 806ddcc..c785742 100755
---- a/ldap/admin/src/scripts/template-ldif2ldap.in
-+++ b/ldap/admin/src/scripts/template-ldif2ldap.in
-@@ -1,5 +1,4 @@
- #!/bin/sh
- 
--cd {{SERVERBIN-DIR}}
--./ldif2ldap "$@" -Z {{SERV-ID}}
--exit $?
-\ No newline at end of file
-+{{SERVERBIN-DIR}}/ldif2ldap "$@" -Z {{SERV-ID}}
-+exit $?
-diff --git a/ldap/admin/src/scripts/template-monitor.in b/ldap/admin/src/scripts/template-monitor.in
-index 2f93337..c89bb8a 100755
---- a/ldap/admin/src/scripts/template-monitor.in
-+++ b/ldap/admin/src/scripts/template-monitor.in
-@@ -1,5 +1,4 @@
- #!/bin/sh
- 
--cd {{SERVERBIN-DIR}}
--./monitor "$@" -Z {{SERV-ID}}
--exit $?
-\ No newline at end of file
-+{{SERVERBIN-DIR}}/monitor "$@" -Z {{SERV-ID}}
-+exit $?
-diff --git a/ldap/admin/src/scripts/template-restoreconfig.in b/ldap/admin/src/scripts/template-restoreconfig.in
-index f4b2d06..5109561 100755
---- a/ldap/admin/src/scripts/template-restoreconfig.in
-+++ b/ldap/admin/src/scripts/template-restoreconfig.in
-@@ -1,5 +1,4 @@
- #!/bin/sh
- 
--cd {{SERVERBIN-DIR}}
--./restoreconfig "$@" -Z {{SERV-ID}}
--exit $?
-\ No newline at end of file
-+{{SERVERBIN-DIR}}/restoreconfig "$@" -Z {{SERV-ID}}
-+exit $?
-diff --git a/ldap/admin/src/scripts/template-saveconfig.in b/ldap/admin/src/scripts/template-saveconfig.in
-index c77cce1..7784e83 100755
---- a/ldap/admin/src/scripts/template-saveconfig.in
-+++ b/ldap/admin/src/scripts/template-saveconfig.in
-@@ -1,5 +1,4 @@
- #!/bin/sh
- 
--cd {{SERVERBIN-DIR}}
--./saveconfig "$@" -Z {{SERV-ID}}
--exit $?
-\ No newline at end of file
-+{{SERVERBIN-DIR}}/saveconfig "$@" -Z {{SERV-ID}}
-+exit $?
-diff --git a/ldap/admin/src/scripts/template-suffix2instance.in b/ldap/admin/src/scripts/template-suffix2instance.in
-index 03bcba8..e29408d 100755
---- a/ldap/admin/src/scripts/template-suffix2instance.in
-+++ b/ldap/admin/src/scripts/template-suffix2instance.in
-@@ -1,5 +1,4 @@
- #!/bin/sh
- 
--cd {{SERVERBIN-DIR}}
--./suffix2instance "$@" -Z {{SERV-ID}}
--exit $?
-\ No newline at end of file
-+{{SERVERBIN-DIR}}/suffix2instance "$@" -Z {{SERV-ID}}
-+exit $?
-diff --git a/ldap/admin/src/scripts/template-upgradedb.in b/ldap/admin/src/scripts/template-upgradedb.in
-index ce879bb..ae28ac2 100755
---- a/ldap/admin/src/scripts/template-upgradedb.in
-+++ b/ldap/admin/src/scripts/template-upgradedb.in
-@@ -1,5 +1,4 @@
- #!/bin/sh
- 
--cd {{SERVERBIN-DIR}}
--./upgradedb "$@" -Z {{SERV-ID}}
-+{{SERVERBIN-DIR}}/upgradedb "$@" -Z {{SERV-ID}}
- exit $?
-diff --git a/ldap/admin/src/scripts/template-upgradednformat.in b/ldap/admin/src/scripts/template-upgradednformat.in
-index 5fd8ef9..74c18e8 100755
---- a/ldap/admin/src/scripts/template-upgradednformat.in
-+++ b/ldap/admin/src/scripts/template-upgradednformat.in
-@@ -1,5 +1,4 @@
- #!/bin/sh
- 
--cd {{SERVERBIN-DIR}}
--./upgradednformat "$@" -Z {{SERV-ID}}
--exit $?
-\ No newline at end of file
-+{{SERVERBIN-DIR}}/upgradednformat "$@" -Z {{SERV-ID}}
-+exit $?
-diff --git a/ldap/admin/src/scripts/template-vlvindex.in b/ldap/admin/src/scripts/template-vlvindex.in
-index 0249696..a7ffb40 100755
---- a/ldap/admin/src/scripts/template-vlvindex.in
-+++ b/ldap/admin/src/scripts/template-vlvindex.in
-@@ -1,5 +1,4 @@
- #!/bin/sh
- 
--cd {{SERVERBIN-DIR}}
--./vlvindex "$@" -Z {{SERV-ID}}
-+{{SERVERBIN-DIR}}/vlvindex "$@" -Z {{SERV-ID}}
- exit $?
--- 
-2.5.0
-

diff --git a/net-nds/389-ds-base/files/389-ds.initd b/net-nds/389-ds-base/files/389-ds.initd
deleted file mode 100644
index 5afe506..0000000
--- a/net-nds/389-ds-base/files/389-ds.initd
+++ /dev/null
@@ -1,78 +0,0 @@
-#!/sbin/runscript
-# Copyright 1999-2010 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-DIRSRV_EXEC="/usr/sbin/ns-slapd"
-PID_DIRECTORY="/var/run/dirsrv"
-DIRSRV_CONF_DIR="/etc/dirsrv"
-DS_INSTANCES=${DIRSRV_CONF_DIR}/slapd-*
-F389DS_INSTANCES=""
-
-depend() {
-	need net logger
-	use dns
-	provide dirsvr ldap
-}
-
-checkconfig() {
-	if [ -z "${DS_INSTANCES}" ]; then
-		eerror "389 Directory Server has not been configured."
-		eend 1
-		return 1
-	fi
-}
-
-start() {
-	checkconfig || return 1
-
-	for instance in ${DS_INSTANCES}; do
-		instance=$(basename ${instance})
-		# skip .removed instances, bug #338133
-		if [ "${instance%%.removed}" != "${instance}" ]; then
-			continue
-		fi
-		ebegin "Starting 389 Directory Server: instance ${instance}"
-		start-stop-daemon --start --quiet -m \
-			--pidfile ${PID_DIRECTORY}/${instance}.startpid \
-			--exec ${DIRSRV_EXEC} -- -D ${DIRSRV_CONF_DIR}/${instance} \
-			-i ${PID_DIRECTORY}/${instance}.pid \
-			-w ${PID_DIRECTORY}/${instance}.startpid
-		sts=${?}
-		eend ${sts}
-		if [ "${sts}" != "0" ]; then
-			return 1
-		fi
-	done
-}
-
-
-
-stop() {
-	checkconfig || return 1
-
-	for instance in ${DS_INSTANCES}; do
-		instance=$(basename ${instance})
-		ebegin "Stopping 389 Directory Server: instance ${instance}"
-		start-stop-daemon --stop --quiet \
-			--pidfile ${PID_DIRECTORY}/${instance}.pid \
-			--exec ${DIRSRV_EXEC}
-		eend ${?}
-	done
-}
-
-status() {
-	for instance in ${DS_INSTANCES}; do
-		instance=$(basename ${instance})
-		if [ -e ${PID_DIRECTORY}/${instance}.pid ]; then
-			pid=$(cat ${PID_DIRECTORY}/${instance}.pid)
-			if [ $(echo "$pid" | grep -c $pid) -ge 1 ]; then
-				einfo "389 Directory Server: instance ${instance} (pid $pid) running."
-			else
-				ewarn "389 Directory Server: instance ${instance} (pid $pid) NOT running."
-			fi
-		else
-			eerror "389 Directory Server: instance ${instance} is NOT running."
-		fi
-	done
-}


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-nds/389-ds-base/, net-nds/389-ds-base/files/
@ 2017-01-05 16:35 Göktürk Yüksek
  0 siblings, 0 replies; 6+ messages in thread
From: Göktürk Yüksek @ 2017-01-05 16:35 UTC (permalink / raw
  To: gentoo-commits

commit:     70895bca9568456d93717864a3d8d4003638294c
Author:     Wes Cilldhaire <wes <AT> sol1 <DOT> com <DOT> au>
AuthorDate: Sun Dec 18 07:39:57 2016 +0000
Commit:     Göktürk Yüksek <gokturk <AT> gentoo <DOT> org>
CommitDate: Thu Jan  5 16:32:35 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=70895bca

net-nds/389-ds-base: Revbump to add build patch provided by upstream

Adds AC_PROG_CC_STDC to configure.ac

Acked-by: wibrown <AT> redhat.com

Package-Manager: portage-2.3.2

 ...-base-1.3.5.15.ebuild => 389-ds-base-1.3.5.15-r1.ebuild} |  2 ++
 net-nds/389-ds-base/files/389-ds-base-1.3.5-stdc.patch      | 13 +++++++++++++
 2 files changed, 15 insertions(+)

diff --git a/net-nds/389-ds-base/389-ds-base-1.3.5.15.ebuild b/net-nds/389-ds-base/389-ds-base-1.3.5.15-r1.ebuild
similarity index 98%
rename from net-nds/389-ds-base/389-ds-base-1.3.5.15.ebuild
rename to net-nds/389-ds-base/389-ds-base-1.3.5.15-r1.ebuild
index 374642f..6565701 100644
--- a/net-nds/389-ds-base/389-ds-base-1.3.5.15.ebuild
+++ b/net-nds/389-ds-base/389-ds-base-1.3.5.15-r1.ebuild
@@ -51,6 +51,8 @@ pkg_setup() {
 }
 
 src_prepare() {
+	epatch "${FILESDIR}/389-ds-base-1.3.5-stdc.patch"
+
 	# as per 389 documentation, when 64bit, export USE_64
 	use amd64 && export USE_64=1
 

diff --git a/net-nds/389-ds-base/files/389-ds-base-1.3.5-stdc.patch b/net-nds/389-ds-base/files/389-ds-base-1.3.5-stdc.patch
new file mode 100644
index 00000000..a43048b
--- /dev/null
+++ b/net-nds/389-ds-base/files/389-ds-base-1.3.5-stdc.patch
@@ -0,0 +1,13 @@
+diff --git a/configure.ac b/configure.ac
+index 3e0f8aa..846e3b4 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -29,6 +29,7 @@ AC_PROG_CXX
+ AC_PROG_CC
+ AM_PROG_CC_C_O
+ AM_PROG_AS
++AC_PROG_CC_STDC
+ # disable static libs by default - we only use a couple
+ AC_DISABLE_STATIC
+ AC_PROG_LIBTOOL
+


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-nds/389-ds-base/, net-nds/389-ds-base/files/
@ 2018-02-05 21:50 Patrice Clement
  0 siblings, 0 replies; 6+ messages in thread
From: Patrice Clement @ 2018-02-05 21:50 UTC (permalink / raw
  To: gentoo-commits

commit:     e71df7341cdaa0a4cc2aeff56496ce1724b921d2
Author:     Wes Cilldhaire <wes <AT> sol1 <DOT> com <DOT> au>
AuthorDate: Mon Feb  5 01:07:25 2018 +0000
Commit:     Patrice Clement <monsieurp <AT> gentoo <DOT> org>
CommitDate: Mon Feb  5 21:50:03 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e71df734

net-nds/389-ds-base: patch against CVE-2017-15135 in 1.3.6.8.

* Patch and revbump to 1.3.6.8 to address CVE-2017-15135
* Update copyright line in all versions for 2018

Bug: https://bugs.gentoo.org/645706

Acked-by: wibrown <AT> redhat.com
Package-Manager: Portage-2.3.20, Repoman-2.3.6
Closes: https://github.com/gentoo/gentoo/pull/7078

 net-nds/389-ds-base/389-ds-base-1.3.5.19.ebuild    |   2 +-
 ....3.6.8.ebuild => 389-ds-base-1.3.6.8-r1.ebuild} |   4 +-
 net-nds/389-ds-base/389-ds-base-9999.ebuild        |   2 +-
 ...-base-1.3.6-backport-invalid-password-mig.patch | 376 +++++++++++++++++++++
 4 files changed, 381 insertions(+), 3 deletions(-)

diff --git a/net-nds/389-ds-base/389-ds-base-1.3.5.19.ebuild b/net-nds/389-ds-base/389-ds-base-1.3.5.19.ebuild
index 6fddd0315a5..e36a909ca91 100644
--- a/net-nds/389-ds-base/389-ds-base-1.3.5.19.ebuild
+++ b/net-nds/389-ds-base/389-ds-base-1.3.5.19.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=5

diff --git a/net-nds/389-ds-base/389-ds-base-1.3.6.8.ebuild b/net-nds/389-ds-base/389-ds-base-1.3.6.8-r1.ebuild
similarity index 96%
rename from net-nds/389-ds-base/389-ds-base-1.3.6.8.ebuild
rename to net-nds/389-ds-base/389-ds-base-1.3.6.8-r1.ebuild
index 6fddd0315a5..0232cdec1d4 100644
--- a/net-nds/389-ds-base/389-ds-base-1.3.6.8.ebuild
+++ b/net-nds/389-ds-base/389-ds-base-1.3.6.8-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=5
@@ -53,6 +53,8 @@ src_prepare() {
 	# as per 389 documentation, when 64bit, export USE_64
 	use amd64 && export USE_64=1
 
+	epatch "${FILESDIR}/389-ds-base-1.3.6-backport-invalid-password-mig.patch"
+
 	eautoreconf
 
 	append-lfs-flags

diff --git a/net-nds/389-ds-base/389-ds-base-9999.ebuild b/net-nds/389-ds-base/389-ds-base-9999.ebuild
index 463fd580d5d..046375125af 100644
--- a/net-nds/389-ds-base/389-ds-base-9999.ebuild
+++ b/net-nds/389-ds-base/389-ds-base-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=5

diff --git a/net-nds/389-ds-base/files/389-ds-base-1.3.6-backport-invalid-password-mig.patch b/net-nds/389-ds-base/files/389-ds-base-1.3.6-backport-invalid-password-mig.patch
new file mode 100644
index 00000000000..b4ba70a2fb5
--- /dev/null
+++ b/net-nds/389-ds-base/files/389-ds-base-1.3.6-backport-invalid-password-mig.patch
@@ -0,0 +1,376 @@
+From cefec5714cf0fdec4aa582a5fe020ef80d6024cd Mon Sep 17 00:00:00 2001
+From: William Brown <firstyear@redhat.com>
+Date: Thu, 18 Jan 2018 11:27:58 +1000
+Subject: [PATCH] Ticket bz1525628 1.3.6 backport - invalid password migration
+ causes unauth bind
+
+Bug Description:  Slapi_ct_memcmp expects both inputs to be
+at LEAST size n. If they are not, we only compared UP to n.
+
+Invalid migrations of passwords (IE {CRYPT}XX) would create
+a pw which is just salt and no hash. ct_memcmp would then
+only verify the salt bits and would allow the authentication.
+
+This relies on an administrative mistake both of allowing
+password migration (nsslapd-allow-hashed-passwords) and then
+subsequently migrating an INVALID password to the server.
+
+Fix Description:  slapi_ct_memcmp now access n1, n2 size
+and will FAIL if they are not the same, but will still compare
+n bytes, where n is the "longest" memory, to the first byte
+of the other to prevent length disclosure of the shorter
+value (generally the mis-migrated password)
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1525628
+
+Author: wibrown
+
+Review by: ???
+---
+ .../bz1525628_ct_memcmp_invalid_hash_test.py       | 56 ++++++++++++++++++++
+ ldap/servers/plugins/pwdstorage/clear_pwd.c        |  4 +-
+ ldap/servers/plugins/pwdstorage/crypt_pwd.c        |  4 +-
+ ldap/servers/plugins/pwdstorage/md5_pwd.c          | 36 ++++++-------
+ ldap/servers/plugins/pwdstorage/sha_pwd.c          | 18 +++++--
+ ldap/servers/plugins/pwdstorage/smd5_pwd.c         | 60 +++++++++++-----------
+ ldap/servers/slapd/ch_malloc.c                     | 36 +++++++++++--
+ ldap/servers/slapd/slapi-plugin.h                  |  2 +-
+ 8 files changed, 155 insertions(+), 61 deletions(-)
+ create mode 100644 dirsrvtests/tests/suites/password/bz1525628_ct_memcmp_invalid_hash_test.py
+
+diff --git a/dirsrvtests/tests/suites/password/bz1525628_ct_memcmp_invalid_hash_test.py b/dirsrvtests/tests/suites/password/bz1525628_ct_memcmp_invalid_hash_test.py
+new file mode 100644
+index 0000000..2f38384
+--- /dev/null
++++ b/dirsrvtests/tests/suites/password/bz1525628_ct_memcmp_invalid_hash_test.py
+@@ -0,0 +1,56 @@
++# --- BEGIN COPYRIGHT BLOCK ---
++# Copyright (C) 2018 Red Hat, Inc.
++# All rights reserved.
++#
++# License: GPL (version 3 or any later version).
++# See LICENSE for details.
++# --- END COPYRIGHT BLOCK ---
++#
++
++import ldap
++import pytest
++import logging
++from lib389.topologies import topology_st
++from lib389._constants import PASSWORD, DEFAULT_SUFFIX
++
++from lib389.idm.user import UserAccounts, TEST_USER_PROPERTIES
++
++logging.getLogger(__name__).setLevel(logging.DEBUG)
++log = logging.getLogger(__name__)
++
++def test_invalid_hash_fails(topology_st):
++    """When given a malformed hash from userpassword migration
++    slapi_ct_memcmp would check only to the length of the shorter
++    field. This affects some values where it would ONLY verify
++    the salt is valid, and thus would allow any password to bind.
++
++    :id: 8131c029-7147-47db-8d03-ec5db2a01cfb
++    :setup: Standalone Instance
++    :steps:
++        1. Create a user
++        2. Add an invalid password hash (truncated)
++        3. Attempt to bind
++    :expectedresults:
++        1. User is added
++        2. Invalid pw hash is added
++        3. Bind fails
++    """
++    log.info("Running invalid hash test")
++
++    # Allow setting raw password hashes for migration.
++    topology_st.standalone.config.set('nsslapd-allow-hashed-passwords', 'on')
++
++    users = UserAccounts(topology_st.standalone, DEFAULT_SUFFIX)
++    user = users.create(properties=TEST_USER_PROPERTIES)
++    user.set('userPassword', '{CRYPT}XX')
++
++    # Attempt to bind. This should fail.
++    with pytest.raises(ldap.INVALID_CREDENTIALS):
++        user.bind(PASSWORD)
++    with pytest.raises(ldap.INVALID_CREDENTIALS):
++        user.bind('XX')
++    with pytest.raises(ldap.INVALID_CREDENTIALS):
++        user.bind('{CRYPT}XX')
++
++    log.info("PASSED")
++
+diff --git a/ldap/servers/plugins/pwdstorage/clear_pwd.c b/ldap/servers/plugins/pwdstorage/clear_pwd.c
+index b9b362d..050e60d 100644
+--- a/ldap/servers/plugins/pwdstorage/clear_pwd.c
++++ b/ldap/servers/plugins/pwdstorage/clear_pwd.c
+@@ -39,7 +39,7 @@ clear_pw_cmp( const char *userpwd, const char *dbpwd )
+          * However, even if the first part of userpw matches dbpwd, but len !=, we
+          * have already failed anyawy. This prevents substring matching.
+          */
+-        if (slapi_ct_memcmp(userpwd, dbpwd, len_dbp) != 0) {
++        if (slapi_ct_memcmp(userpwd, dbpwd, len_user, len_dbp) != 0) {
+             result = 1;
+         }
+     } else {
+@@ -51,7 +51,7 @@ clear_pw_cmp( const char *userpwd, const char *dbpwd )
+          * dbpwd to itself. We have already got result == 1 if we are here, so we are
+          * just trying to take up time!
+          */
+-        if (slapi_ct_memcmp(dbpwd, dbpwd, len_dbp)) {
++        if (slapi_ct_memcmp(dbpwd, dbpwd, len_dbp, len_dbp)) {
+             /* Do nothing, we have the if to fix a coverity check. */
+         }
+     }
+diff --git a/ldap/servers/plugins/pwdstorage/crypt_pwd.c b/ldap/servers/plugins/pwdstorage/crypt_pwd.c
+index dfd5af9..5fcff13 100644
+--- a/ldap/servers/plugins/pwdstorage/crypt_pwd.c
++++ b/ldap/servers/plugins/pwdstorage/crypt_pwd.c
+@@ -56,13 +56,13 @@ crypt_close(Slapi_PBlock *pb __attribute__((unused)))
+ int
+ crypt_pw_cmp( const char *userpwd, const char *dbpwd )
+ {
+-    int rc;
++    int32_t rc;
+     char *cp;
+     PR_Lock(cryptlock);
+     /* we use salt (first 2 chars) of encoded password in call to crypt() */
+     cp = crypt( userpwd, dbpwd );
+     if (cp) {
+-       rc= slapi_ct_memcmp( dbpwd, cp, strlen(dbpwd));
++        rc = slapi_ct_memcmp(dbpwd, cp, strlen(dbpwd), strlen(cp));
+     } else {
+        rc = -1;
+     }
+diff --git a/ldap/servers/plugins/pwdstorage/md5_pwd.c b/ldap/servers/plugins/pwdstorage/md5_pwd.c
+index b279946..2e1c472 100644
+--- a/ldap/servers/plugins/pwdstorage/md5_pwd.c
++++ b/ldap/servers/plugins/pwdstorage/md5_pwd.c
+@@ -30,13 +30,13 @@
+ int
+ md5_pw_cmp( const char *userpwd, const char *dbpwd )
+ {
+-   int rc=-1;
+-   char * bver;
+-   PK11Context *ctx=NULL;
+-   unsigned int outLen;
+-   unsigned char hash_out[MD5_HASH_LEN];
+-   unsigned char b2a_out[MD5_HASH_LEN*2]; /* conservative */
+-   SECItem binary_item;
++    int32_t rc = -1;
++    char *bver;
++    PK11Context *ctx = NULL;
++    unsigned int outLen;
++    unsigned char hash_out[MD5_HASH_LEN];
++    unsigned char b2a_out[MD5_HASH_LEN * 2]; /* conservative */
++    SECItem binary_item;
+ 
+    ctx = PK11_CreateDigestContext(SEC_OID_MD5);
+    if (ctx == NULL) {
+@@ -51,17 +51,17 @@ md5_pw_cmp( const char *userpwd, const char *dbpwd )
+    PK11_DigestFinal(ctx, hash_out, &outLen, sizeof hash_out);
+    PK11_DestroyContext(ctx, 1);
+ 
+-   /* convert the binary hash to base64 */
+-   binary_item.data = hash_out;
+-   binary_item.len = outLen;
+-   bver = NSSBase64_EncodeItem(NULL, (char *)b2a_out, sizeof b2a_out, &binary_item);
+-   /* bver points to b2a_out upon success */
+-   if (bver) {
+-	   rc = slapi_ct_memcmp(bver,dbpwd, strlen(dbpwd));
+-   } else {
+-	   slapi_log_err(SLAPI_LOG_PLUGIN, MD5_SUBSYSTEM_NAME,
+-					   "Could not base64 encode hashed value for password compare");
+-   }
++    /* convert the binary hash to base64 */
++    binary_item.data = hash_out;
++    binary_item.len = outLen;
++    bver = NSSBase64_EncodeItem(NULL, (char *)b2a_out, sizeof b2a_out, &binary_item);
++    /* bver points to b2a_out upon success */
++    if (bver) {
++        rc = slapi_ct_memcmp(bver, dbpwd, strlen(dbpwd), strlen(bver));
++    } else {
++        slapi_log_err(SLAPI_LOG_PLUGIN, MD5_SUBSYSTEM_NAME,
++                      "Could not base64 encode hashed value for password compare");
++    }
+ loser:
+    return rc;
+ }
+diff --git a/ldap/servers/plugins/pwdstorage/sha_pwd.c b/ldap/servers/plugins/pwdstorage/sha_pwd.c
+index 5f41c5b..c9db896 100644
+--- a/ldap/servers/plugins/pwdstorage/sha_pwd.c
++++ b/ldap/servers/plugins/pwdstorage/sha_pwd.c
+@@ -49,7 +49,7 @@ sha_pw_cmp (const char *userpwd, const char *dbpwd, unsigned int shaLen )
+     char userhash[MAX_SHA_HASH_SIZE];
+     char quick_dbhash[MAX_SHA_HASH_SIZE + SHA_SALT_LENGTH + 3];
+     char *dbhash = quick_dbhash;
+-    struct berval salt;
++    struct berval salt = {0};
+     PRUint32 hash_len;
+     unsigned int secOID;
+     char *schemeName;
+@@ -120,10 +120,20 @@ sha_pw_cmp (const char *userpwd, const char *dbpwd, unsigned int shaLen )
+     }
+ 
+     /* the proof is in the comparison... */
+-    if ( hash_len >= shaLen ) {
+-        result = slapi_ct_memcmp( userhash, dbhash, shaLen );
++    if (hash_len >= shaLen) {
++        /*
++         * This say "if the hash has a salt IE >, OR if they are equal, check the hash component ONLY.
++         * This is why we repeat shaLen twice, even though it seems odd. If you have a dbhast of ssha
++         * it's len is 28, and the userpw is 20, but 0 - 20 is the sha, and 21-28 is the salt, which
++         * has already been processed into userhash.
++         * The case where dbpwd is truncated is handled above in "invalid base64" arm.
++         */
++        result = slapi_ct_memcmp(userhash, dbhash, shaLen, shaLen);
+     } else {
+-        result = slapi_ct_memcmp( userhash, dbhash + OLD_SALT_LENGTH, hash_len - OLD_SALT_LENGTH );
++        /* This case is for if the salt is at the START, which only applies to DS40B1 case.
++         * May never be a valid check...
++         */
++        result = slapi_ct_memcmp(userhash, dbhash + OLD_SALT_LENGTH, shaLen, hash_len - OLD_SALT_LENGTH);
+     }
+ 
+ loser:
+diff --git a/ldap/servers/plugins/pwdstorage/smd5_pwd.c b/ldap/servers/plugins/pwdstorage/smd5_pwd.c
+index 2e9d195..f6b4bb4 100644
+--- a/ldap/servers/plugins/pwdstorage/smd5_pwd.c
++++ b/ldap/servers/plugins/pwdstorage/smd5_pwd.c
+@@ -52,35 +52,37 @@ smd5_pw_cmp( const char *userpwd, const char *dbpwd )
+    /*
+     * Decode hash stored in database.
+     */
+-   hash_len = pwdstorage_base64_decode_len(dbpwd, 0);
+-   if ( hash_len >= sizeof(quick_dbhash) ) { /* get more space: */
+-      dbhash = (char*) slapi_ch_calloc( hash_len + 1, sizeof(char) );
+-      if ( dbhash == NULL ) goto loser;
+-   } else {
+-      memset( quick_dbhash, 0, sizeof(quick_dbhash) );
+-   }
+-
+-   hashresult = PL_Base64Decode( dbpwd, 0, dbhash );
+-   if (NULL == hashresult) {
+-      slapi_log_err(SLAPI_LOG_PLUGIN, SALTED_MD5_SUBSYSTEM_NAME,
+-            "smd5_pw_cmp: userPassword \"%s\" is the wrong length "
+-            "or is not properly encoded BASE64\n", dbpwd );
+-      goto loser;
+-   }
+-
+-   salt.bv_val = (void*)(dbhash + MD5_LENGTH); /* salt starts after hash value */
+-   salt.bv_len = hash_len - MD5_LENGTH; /* remaining bytes must be salt */
+-
+-   /* create the hash */
+-   memset( userhash, 0, sizeof(userhash) );
+-   PK11_DigestBegin(ctx);
+-   PK11_DigestOp(ctx, (const unsigned char *)userpwd, strlen(userpwd));
+-   PK11_DigestOp(ctx, (unsigned char*)(salt.bv_val), salt.bv_len);
+-   PK11_DigestFinal(ctx, userhash, &outLen, sizeof userhash);
+-   PK11_DestroyContext(ctx, 1);
+-
+-   /* Compare everything up to the salt. */
+-   rc = slapi_ct_memcmp( userhash, dbhash, MD5_LENGTH );
++    hash_len = pwdstorage_base64_decode_len(dbpwd, 0);
++    if (hash_len >= sizeof(quick_dbhash)) { /* get more space: */
++        dbhash = (char *)slapi_ch_calloc(hash_len + 1, sizeof(char));
++        if (dbhash == NULL)
++            goto loser;
++    } else {
++        memset(quick_dbhash, 0, sizeof(quick_dbhash));
++    }
++
++    hashresult = PL_Base64Decode(dbpwd, 0, dbhash);
++    if (NULL == hashresult) {
++        slapi_log_err(SLAPI_LOG_PLUGIN, SALTED_MD5_SUBSYSTEM_NAME,
++                      "smd5_pw_cmp: userPassword \"%s\" is the wrong length "
++                      "or is not properly encoded BASE64\n",
++                      dbpwd);
++        goto loser;
++    }
++
++    salt.bv_val = (void *)(dbhash + MD5_LENGTH); /* salt starts after hash value */
++    salt.bv_len = hash_len - MD5_LENGTH;         /* remaining bytes must be salt */
++
++    /* create the hash */
++    memset(userhash, 0, sizeof(userhash));
++    PK11_DigestBegin(ctx);
++    PK11_DigestOp(ctx, (const unsigned char *)userpwd, strlen(userpwd));
++    PK11_DigestOp(ctx, (unsigned char *)(salt.bv_val), salt.bv_len);
++    PK11_DigestFinal(ctx, userhash, &outLen, sizeof userhash);
++    PK11_DestroyContext(ctx, 1);
++
++    /* Compare everything up to the salt. */
++    rc = slapi_ct_memcmp(userhash, dbhash, MD5_LENGTH, MD5_LENGTH);
+ 
+ loser:
+    if ( dbhash && dbhash != quick_dbhash ) slapi_ch_free_string( (char **)&dbhash );
+diff --git a/ldap/servers/slapd/ch_malloc.c b/ldap/servers/slapd/ch_malloc.c
+index 52ccb64..66cb692 100644
+--- a/ldap/servers/slapd/ch_malloc.c
++++ b/ldap/servers/slapd/ch_malloc.c
+@@ -343,8 +343,8 @@ slapi_ch_smprintf(const char *fmt, ...)
+ 
+ /* Constant time memcmp. Does not shortcircuit on failure! */
+ /* This relies on p1 and p2 both being size at least n! */
+-int
+-slapi_ct_memcmp( const void *p1, const void *p2, size_t n)
++int32_t
++slapi_ct_memcmp(const void *p1, const void *p2, size_t n1, size_t n2)
+ {
+     int result = 0;
+     const unsigned char *_p1 = (const unsigned char *)p1;
+@@ -354,9 +354,35 @@ slapi_ct_memcmp( const void *p1, const void *p2, size_t n)
+         return 2;
+     }
+ 
+-    for (size_t i = 0; i < n; i++) {
+-        if (_p1[i] ^ _p2[i]) {
+-            result = 1;
++    if (n1 == n2) {
++        for (size_t i = 0; i < n1; i++) {
++            if (_p1[i] ^ _p2[i]) {
++                result = 1;
++            }
++        }
++    } else {
++        const unsigned char *_pa;
++        const unsigned char *_pb;
++        size_t nl;
++        if (n2 > n1) {
++            _pa = _p2;
++            _pb = _p2;
++            nl = n2;
++        } else {
++            _pa = _p1;
++            _pb = _p1;
++            nl = n1;
++        }
++        /* We already fail as n1 != n2 */
++        result = 3;
++        for (size_t i = 0; i < nl; i++) {
++            if (_pa[i] ^ _pb[i]) {
++                /*
++                 * If we don't mutate result here, dead code elimination
++                 * we remove for loop.
++                 */
++                result = 4;
++            }
+         }
+     }
+     return result;
+diff --git a/ldap/servers/slapd/slapi-plugin.h b/ldap/servers/slapd/slapi-plugin.h
+index d37bc63..2c5c4ce 100644
+--- a/ldap/servers/slapd/slapi-plugin.h
++++ b/ldap/servers/slapd/slapi-plugin.h
+@@ -5859,7 +5859,7 @@ char * slapi_ch_smprintf(const char *fmt, ...)
+  * \param n length in bytes of the content of p1 AND p2.
+  * \return 0 on match. 1 on non-match. 2 on presence of NULL pointer in p1 or p2.
+  */
+-int slapi_ct_memcmp( const void *p1, const void *p2, size_t n);
++int32_t slapi_ct_memcmp(const void *p1, const void *p2, size_t n1, size_t n2);
+ 
+ /*
+  * syntax plugin routines
+-- 
+1.8.3.1
+


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-nds/389-ds-base/, net-nds/389-ds-base/files/
@ 2020-07-13  4:53 Michał Górny
  0 siblings, 0 replies; 6+ messages in thread
From: Michał Górny @ 2020-07-13  4:53 UTC (permalink / raw
  To: gentoo-commits

commit:     eb6602276b3003bcdafd619a28ac6f163f52fb30
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Jul 13 04:50:40 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Jul 13 04:52:23 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=eb660227

net-nds/389-ds-base: Remove last-rited pkg

Bug: https://bugs.gentoo.org/655176
Bug: https://bugs.gentoo.org/701812
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 net-nds/389-ds-base/389-ds-base-1.3.6.8-r1.ebuild  | 126 -------
 net-nds/389-ds-base/389-ds-base-9999.ebuild        | 133 --------
 net-nds/389-ds-base/Manifest                       |   1 -
 ...-base-1.3.6-backport-invalid-password-mig.patch | 376 ---------------------
 net-nds/389-ds-base/files/389-ds-snmp.initd        |  44 ---
 net-nds/389-ds-base/files/389-ds.initd-r1          |  90 -----
 net-nds/389-ds-base/metadata.xml                   |  23 --
 7 files changed, 793 deletions(-)

diff --git a/net-nds/389-ds-base/389-ds-base-1.3.6.8-r1.ebuild b/net-nds/389-ds-base/389-ds-base-1.3.6.8-r1.ebuild
deleted file mode 100644
index 1d33087c4d2..00000000000
--- a/net-nds/389-ds-base/389-ds-base-1.3.6.8-r1.ebuild
+++ /dev/null
@@ -1,126 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-WANT_AUTOMAKE="1.13"
-
-inherit user eutils multilib flag-o-matic autotools
-
-DESCRIPTION="389 Directory Server (core librares and daemons )"
-HOMEPAGE="http://www.port389.org/"
-SRC_URI="http://www.port389.org/sources/${P}.tar.bz2"
-
-LICENSE="GPL-3+"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="autobind auto-dn-suffix debug doc +pam-passthru +dna +ldapi +bitwise presence kerberos selinux"
-
-# Pinned to db:4.8 as it is the current stable, can change to a later db version < 6 when they stabilize.
-# The --with-db-inc line in econf will need to be updated as well when changing db version.
-COMMON_DEPEND="
-	sys-libs/db:4.8
-	>=dev-libs/cyrus-sasl-2.1.19
-	>=net-analyzer/net-snmp-5.1.2
-	>=dev-libs/icu-3.4:=
-	>=dev-libs/nss-3.22[utils]
-	dev-libs/nspr
-	>=dev-libs/svrcore-4.1.2
-	dev-libs/openssl:0=
-	dev-libs/libpcre:3
-	>=dev-perl/perl-mozldap-1.5.3
-	dev-perl/NetAddr-IP
-	net-nds/openldap
-	sys-libs/pam
-	sys-libs/zlib
-	kerberos? ( >=app-crypt/mit-krb5-1.7-r100[openldap] )"
-
-DEPEND="${COMMON_DEPEND}
-	virtual/pkgconfig
-	doc? ( app-doc/doxygen )"
-
-RDEPEND="${COMMON_DEPEND}
-	selinux? ( sec-policy/selinux-dirsrv )
-	virtual/perl-Time-Local
-	virtual/perl-MIME-Base64"
-
-pkg_setup() {
-	enewgroup dirsrv
-	enewuser dirsrv -1 -1 -1 dirsrv
-}
-
-src_prepare() {
-	# as per 389 documentation, when 64bit, export USE_64
-	use amd64 && export USE_64=1
-
-	epatch "${FILESDIR}/389-ds-base-1.3.6-backport-invalid-password-mig.patch"
-
-	eautoreconf
-
-	append-lfs-flags
-}
-
-src_configure() {
-	econf \
-		$(use_enable debug) \
-		$(use_enable pam-passthru) \
-		$(use_enable ldapi) \
-		$(use_enable autobind) \
-		$(use_enable dna) \
-		$(use_enable bitwise) \
-		$(use_enable presence) \
-		$(use_with kerberos) \
-		$(use_enable auto-dn-suffix) \
-		--with-initddir=no \
-		--enable-maintainer-mode \
-		--with-fhs \
-		--with-openldap \
-		--sbindir=/usr/sbin \
-		--bindir=/usr/bin \
-		--with-db-inc=/usr/include/db4.8
-
-}
-
-src_compile() {
-	default
-	if use doc; then
-		doxygen slapi.doxy || die "cannot run doxygen"
-	fi
-}
-
-src_install() {
-	# -j1 is a temporary workaround for bug #605432
-	emake -j1 DESTDIR="${D}" install
-
-	# Install gentoo style init script
-	# Get these merged upstream
-	newinitd "${FILESDIR}"/389-ds.initd-r1 389-ds
-	newinitd "${FILESDIR}"/389-ds-snmp.initd 389-ds-snmp
-
-	# cope with libraries being in /usr/lib/dirsrv
-	dodir /etc/env.d
-	echo "LDPATH=/usr/$(get_libdir)/dirsrv" > "${D}"/etc/env.d/08dirsrv
-
-	if use doc; then
-		cd "${S}" || die
-		docinto html/
-		dodoc -r docs/html/.
-	fi
-}
-
-pkg_postinst() {
-	echo
-	elog "If you are planning to use 389-ds-snmp (ldap-agent),"
-	elog "make sure to properly configure: /etc/dirsrv/config/ldap-agent.conf"
-	elog "adding proper 'server' entries, and adding the lines below to"
-	elog " => /etc/snmp/snmpd.conf"
-	elog
-	elog "master agentx"
-	elog "agentXSocket /var/agentx/master"
-	elog
-	elog "To start 389 Directory Server (LDAP service) at boot:"
-	elog
-	elog "    rc-update add 389-ds default"
-	elog
-	echo
-}

diff --git a/net-nds/389-ds-base/389-ds-base-9999.ebuild b/net-nds/389-ds-base/389-ds-base-9999.ebuild
deleted file mode 100644
index 6e1b2eec30f..00000000000
--- a/net-nds/389-ds-base/389-ds-base-9999.ebuild
+++ /dev/null
@@ -1,133 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-WANT_AUTOMAKE="1.13"
-
-inherit user eutils multilib flag-o-matic autotools git-r3
-
-DESCRIPTION="389 Directory Server (core librares and daemons )"
-HOMEPAGE="http://www.port389.org/"
-SRC_URI=""
-EGIT_REPO_URI="https://pagure.io/389-ds-base.git"
-
-LICENSE="GPL-3+"
-SLOT="0"
-KEYWORDS=""
-IUSE="autobind auto-dn-suffix debug doc +pam-passthru +dna +ldapi +bitwise kerberos selinux test"
-RESTRICT="!test? ( test )"
-
-# Pinned to db:4.8 as it is the current stable, can change to a later db version < 6 when they stabilize.
-# The --with-db-inc line in econf will need to be updated as well when changing db version.
-COMMON_DEPEND="
-	sys-libs/db:4.8
-	>=dev-libs/cyrus-sasl-2.1.19
-	>=net-analyzer/net-snmp-5.1.2
-	>=dev-libs/icu-3.4:=
-	>=dev-libs/nss-3.22[utils]
-	dev-libs/nspr
-	>=dev-libs/svrcore-4.1.2
-	dev-libs/openssl:0=
-	dev-libs/libpcre:3
-	>=dev-perl/perl-mozldap-1.5.3
-	dev-perl/NetAddr-IP
-	net-nds/openldap
-	sys-libs/pam
-	sys-libs/zlib
-	dev-libs/libevent
-	dev-util/cmocka
-	kerberos? ( >=app-crypt/mit-krb5-1.7-r100[openldap] )"
-
-DEPEND="${COMMON_DEPEND}
-	virtual/pkgconfig
-	doc? ( app-doc/doxygen )"
-
-RDEPEND="${COMMON_DEPEND}
-	selinux? ( sec-policy/selinux-dirsrv )
-	virtual/perl-Time-Local
-	virtual/perl-MIME-Base64"
-
-pkg_setup() {
-	enewgroup dirsrv
-	enewuser dirsrv -1 -1 -1 dirsrv
-}
-
-src_prepare() {
-	# as per 389 documentation, when 64bit, export USE_64
-	use amd64 && export USE_64=1
-
-	eautoreconf
-
-	append-lfs-flags
-}
-
-src_configure() {
-	econf \
-		$(use_enable debug) \
-		$(use_enable pam-passthru) \
-		$(use_enable ldapi) \
-		$(use_enable autobind) \
-		$(use_enable dna) \
-		$(use_enable bitwise) \
-		$(use_with kerberos) \
-		$(use_enable auto-dn-suffix) \
-		$(use_enable test cmocka) \
-		--with-initddir=no \
-		--enable-maintainer-mode \
-		--with-fhs \
-		--with-openldap \
-		--sbindir=/usr/sbin \
-		--bindir=/usr/bin \
-		--with-db-inc=/usr/include/db4.8
-
-}
-
-src_compile() {
-	default
-	if use doc; then
-		doxygen docs/slapi.doxy || die "cannot run doxygen"
-	fi
-}
-
-src_test() {
-	# -j1 is a temporary workaround for bug #605432
-	emake -j1 check
-}
-
-src_install() {
-	# -j1 is a temporary workaround for bug #605432
-	emake -j1 DESTDIR="${D}" install
-
-	# Install gentoo style init script
-	# Get these merged upstream
-	newinitd "${FILESDIR}"/389-ds.initd-r1 389-ds
-	newinitd "${FILESDIR}"/389-ds-snmp.initd 389-ds-snmp
-
-	# cope with libraries being in /usr/lib/dirsrv
-	dodir /etc/env.d
-	echo "LDPATH=/usr/$(get_libdir)/dirsrv" > "${D}"/etc/env.d/08dirsrv
-
-	if use doc; then
-		cd "${S}" || die
-		docinto html/
-		dodoc -r docs/html/.
-	fi
-}
-
-pkg_postinst() {
-	echo
-	elog "If you are planning to use 389-ds-snmp (ldap-agent),"
-	elog "make sure to properly configure: /etc/dirsrv/config/ldap-agent.conf"
-	elog "adding proper 'server' entries, and adding the lines below to"
-	elog " => /etc/snmp/snmpd.conf"
-	elog
-	elog "master agentx"
-	elog "agentXSocket /var/agentx/master"
-	elog
-	elog "To start 389 Directory Server (LDAP service) at boot:"
-	elog
-	elog "    rc-update add 389-ds default"
-	elog
-	echo
-}

diff --git a/net-nds/389-ds-base/Manifest b/net-nds/389-ds-base/Manifest
deleted file mode 100644
index 703806045e2..00000000000
--- a/net-nds/389-ds-base/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST 389-ds-base-1.3.6.8.tar.bz2 3440164 BLAKE2B 20ff28fc1d59452e48ec6684f844dd2dec2f33492aa142c915029dfb6b0535860f4f598872d2de5d33ed8cb9b5a0d3ae47b1666cac54a4b38f0f4f954cdaf85f SHA512 b08a87bffbdf8e4c6bf6b4f87394aa0a12b8b44fcadec2f97c146b3a21ff89f5f547080aacb0ecda9b91aca83f8bf093b64c2569b2d8be84ffe22439be446234

diff --git a/net-nds/389-ds-base/files/389-ds-base-1.3.6-backport-invalid-password-mig.patch b/net-nds/389-ds-base/files/389-ds-base-1.3.6-backport-invalid-password-mig.patch
deleted file mode 100644
index b4ba70a2fb5..00000000000
--- a/net-nds/389-ds-base/files/389-ds-base-1.3.6-backport-invalid-password-mig.patch
+++ /dev/null
@@ -1,376 +0,0 @@
-From cefec5714cf0fdec4aa582a5fe020ef80d6024cd Mon Sep 17 00:00:00 2001
-From: William Brown <firstyear@redhat.com>
-Date: Thu, 18 Jan 2018 11:27:58 +1000
-Subject: [PATCH] Ticket bz1525628 1.3.6 backport - invalid password migration
- causes unauth bind
-
-Bug Description:  Slapi_ct_memcmp expects both inputs to be
-at LEAST size n. If they are not, we only compared UP to n.
-
-Invalid migrations of passwords (IE {CRYPT}XX) would create
-a pw which is just salt and no hash. ct_memcmp would then
-only verify the salt bits and would allow the authentication.
-
-This relies on an administrative mistake both of allowing
-password migration (nsslapd-allow-hashed-passwords) and then
-subsequently migrating an INVALID password to the server.
-
-Fix Description:  slapi_ct_memcmp now access n1, n2 size
-and will FAIL if they are not the same, but will still compare
-n bytes, where n is the "longest" memory, to the first byte
-of the other to prevent length disclosure of the shorter
-value (generally the mis-migrated password)
-
-https://bugzilla.redhat.com/show_bug.cgi?id=1525628
-
-Author: wibrown
-
-Review by: ???
----
- .../bz1525628_ct_memcmp_invalid_hash_test.py       | 56 ++++++++++++++++++++
- ldap/servers/plugins/pwdstorage/clear_pwd.c        |  4 +-
- ldap/servers/plugins/pwdstorage/crypt_pwd.c        |  4 +-
- ldap/servers/plugins/pwdstorage/md5_pwd.c          | 36 ++++++-------
- ldap/servers/plugins/pwdstorage/sha_pwd.c          | 18 +++++--
- ldap/servers/plugins/pwdstorage/smd5_pwd.c         | 60 +++++++++++-----------
- ldap/servers/slapd/ch_malloc.c                     | 36 +++++++++++--
- ldap/servers/slapd/slapi-plugin.h                  |  2 +-
- 8 files changed, 155 insertions(+), 61 deletions(-)
- create mode 100644 dirsrvtests/tests/suites/password/bz1525628_ct_memcmp_invalid_hash_test.py
-
-diff --git a/dirsrvtests/tests/suites/password/bz1525628_ct_memcmp_invalid_hash_test.py b/dirsrvtests/tests/suites/password/bz1525628_ct_memcmp_invalid_hash_test.py
-new file mode 100644
-index 0000000..2f38384
---- /dev/null
-+++ b/dirsrvtests/tests/suites/password/bz1525628_ct_memcmp_invalid_hash_test.py
-@@ -0,0 +1,56 @@
-+# --- BEGIN COPYRIGHT BLOCK ---
-+# Copyright (C) 2018 Red Hat, Inc.
-+# All rights reserved.
-+#
-+# License: GPL (version 3 or any later version).
-+# See LICENSE for details.
-+# --- END COPYRIGHT BLOCK ---
-+#
-+
-+import ldap
-+import pytest
-+import logging
-+from lib389.topologies import topology_st
-+from lib389._constants import PASSWORD, DEFAULT_SUFFIX
-+
-+from lib389.idm.user import UserAccounts, TEST_USER_PROPERTIES
-+
-+logging.getLogger(__name__).setLevel(logging.DEBUG)
-+log = logging.getLogger(__name__)
-+
-+def test_invalid_hash_fails(topology_st):
-+    """When given a malformed hash from userpassword migration
-+    slapi_ct_memcmp would check only to the length of the shorter
-+    field. This affects some values where it would ONLY verify
-+    the salt is valid, and thus would allow any password to bind.
-+
-+    :id: 8131c029-7147-47db-8d03-ec5db2a01cfb
-+    :setup: Standalone Instance
-+    :steps:
-+        1. Create a user
-+        2. Add an invalid password hash (truncated)
-+        3. Attempt to bind
-+    :expectedresults:
-+        1. User is added
-+        2. Invalid pw hash is added
-+        3. Bind fails
-+    """
-+    log.info("Running invalid hash test")
-+
-+    # Allow setting raw password hashes for migration.
-+    topology_st.standalone.config.set('nsslapd-allow-hashed-passwords', 'on')
-+
-+    users = UserAccounts(topology_st.standalone, DEFAULT_SUFFIX)
-+    user = users.create(properties=TEST_USER_PROPERTIES)
-+    user.set('userPassword', '{CRYPT}XX')
-+
-+    # Attempt to bind. This should fail.
-+    with pytest.raises(ldap.INVALID_CREDENTIALS):
-+        user.bind(PASSWORD)
-+    with pytest.raises(ldap.INVALID_CREDENTIALS):
-+        user.bind('XX')
-+    with pytest.raises(ldap.INVALID_CREDENTIALS):
-+        user.bind('{CRYPT}XX')
-+
-+    log.info("PASSED")
-+
-diff --git a/ldap/servers/plugins/pwdstorage/clear_pwd.c b/ldap/servers/plugins/pwdstorage/clear_pwd.c
-index b9b362d..050e60d 100644
---- a/ldap/servers/plugins/pwdstorage/clear_pwd.c
-+++ b/ldap/servers/plugins/pwdstorage/clear_pwd.c
-@@ -39,7 +39,7 @@ clear_pw_cmp( const char *userpwd, const char *dbpwd )
-          * However, even if the first part of userpw matches dbpwd, but len !=, we
-          * have already failed anyawy. This prevents substring matching.
-          */
--        if (slapi_ct_memcmp(userpwd, dbpwd, len_dbp) != 0) {
-+        if (slapi_ct_memcmp(userpwd, dbpwd, len_user, len_dbp) != 0) {
-             result = 1;
-         }
-     } else {
-@@ -51,7 +51,7 @@ clear_pw_cmp( const char *userpwd, const char *dbpwd )
-          * dbpwd to itself. We have already got result == 1 if we are here, so we are
-          * just trying to take up time!
-          */
--        if (slapi_ct_memcmp(dbpwd, dbpwd, len_dbp)) {
-+        if (slapi_ct_memcmp(dbpwd, dbpwd, len_dbp, len_dbp)) {
-             /* Do nothing, we have the if to fix a coverity check. */
-         }
-     }
-diff --git a/ldap/servers/plugins/pwdstorage/crypt_pwd.c b/ldap/servers/plugins/pwdstorage/crypt_pwd.c
-index dfd5af9..5fcff13 100644
---- a/ldap/servers/plugins/pwdstorage/crypt_pwd.c
-+++ b/ldap/servers/plugins/pwdstorage/crypt_pwd.c
-@@ -56,13 +56,13 @@ crypt_close(Slapi_PBlock *pb __attribute__((unused)))
- int
- crypt_pw_cmp( const char *userpwd, const char *dbpwd )
- {
--    int rc;
-+    int32_t rc;
-     char *cp;
-     PR_Lock(cryptlock);
-     /* we use salt (first 2 chars) of encoded password in call to crypt() */
-     cp = crypt( userpwd, dbpwd );
-     if (cp) {
--       rc= slapi_ct_memcmp( dbpwd, cp, strlen(dbpwd));
-+        rc = slapi_ct_memcmp(dbpwd, cp, strlen(dbpwd), strlen(cp));
-     } else {
-        rc = -1;
-     }
-diff --git a/ldap/servers/plugins/pwdstorage/md5_pwd.c b/ldap/servers/plugins/pwdstorage/md5_pwd.c
-index b279946..2e1c472 100644
---- a/ldap/servers/plugins/pwdstorage/md5_pwd.c
-+++ b/ldap/servers/plugins/pwdstorage/md5_pwd.c
-@@ -30,13 +30,13 @@
- int
- md5_pw_cmp( const char *userpwd, const char *dbpwd )
- {
--   int rc=-1;
--   char * bver;
--   PK11Context *ctx=NULL;
--   unsigned int outLen;
--   unsigned char hash_out[MD5_HASH_LEN];
--   unsigned char b2a_out[MD5_HASH_LEN*2]; /* conservative */
--   SECItem binary_item;
-+    int32_t rc = -1;
-+    char *bver;
-+    PK11Context *ctx = NULL;
-+    unsigned int outLen;
-+    unsigned char hash_out[MD5_HASH_LEN];
-+    unsigned char b2a_out[MD5_HASH_LEN * 2]; /* conservative */
-+    SECItem binary_item;
- 
-    ctx = PK11_CreateDigestContext(SEC_OID_MD5);
-    if (ctx == NULL) {
-@@ -51,17 +51,17 @@ md5_pw_cmp( const char *userpwd, const char *dbpwd )
-    PK11_DigestFinal(ctx, hash_out, &outLen, sizeof hash_out);
-    PK11_DestroyContext(ctx, 1);
- 
--   /* convert the binary hash to base64 */
--   binary_item.data = hash_out;
--   binary_item.len = outLen;
--   bver = NSSBase64_EncodeItem(NULL, (char *)b2a_out, sizeof b2a_out, &binary_item);
--   /* bver points to b2a_out upon success */
--   if (bver) {
--	   rc = slapi_ct_memcmp(bver,dbpwd, strlen(dbpwd));
--   } else {
--	   slapi_log_err(SLAPI_LOG_PLUGIN, MD5_SUBSYSTEM_NAME,
--					   "Could not base64 encode hashed value for password compare");
--   }
-+    /* convert the binary hash to base64 */
-+    binary_item.data = hash_out;
-+    binary_item.len = outLen;
-+    bver = NSSBase64_EncodeItem(NULL, (char *)b2a_out, sizeof b2a_out, &binary_item);
-+    /* bver points to b2a_out upon success */
-+    if (bver) {
-+        rc = slapi_ct_memcmp(bver, dbpwd, strlen(dbpwd), strlen(bver));
-+    } else {
-+        slapi_log_err(SLAPI_LOG_PLUGIN, MD5_SUBSYSTEM_NAME,
-+                      "Could not base64 encode hashed value for password compare");
-+    }
- loser:
-    return rc;
- }
-diff --git a/ldap/servers/plugins/pwdstorage/sha_pwd.c b/ldap/servers/plugins/pwdstorage/sha_pwd.c
-index 5f41c5b..c9db896 100644
---- a/ldap/servers/plugins/pwdstorage/sha_pwd.c
-+++ b/ldap/servers/plugins/pwdstorage/sha_pwd.c
-@@ -49,7 +49,7 @@ sha_pw_cmp (const char *userpwd, const char *dbpwd, unsigned int shaLen )
-     char userhash[MAX_SHA_HASH_SIZE];
-     char quick_dbhash[MAX_SHA_HASH_SIZE + SHA_SALT_LENGTH + 3];
-     char *dbhash = quick_dbhash;
--    struct berval salt;
-+    struct berval salt = {0};
-     PRUint32 hash_len;
-     unsigned int secOID;
-     char *schemeName;
-@@ -120,10 +120,20 @@ sha_pw_cmp (const char *userpwd, const char *dbpwd, unsigned int shaLen )
-     }
- 
-     /* the proof is in the comparison... */
--    if ( hash_len >= shaLen ) {
--        result = slapi_ct_memcmp( userhash, dbhash, shaLen );
-+    if (hash_len >= shaLen) {
-+        /*
-+         * This say "if the hash has a salt IE >, OR if they are equal, check the hash component ONLY.
-+         * This is why we repeat shaLen twice, even though it seems odd. If you have a dbhast of ssha
-+         * it's len is 28, and the userpw is 20, but 0 - 20 is the sha, and 21-28 is the salt, which
-+         * has already been processed into userhash.
-+         * The case where dbpwd is truncated is handled above in "invalid base64" arm.
-+         */
-+        result = slapi_ct_memcmp(userhash, dbhash, shaLen, shaLen);
-     } else {
--        result = slapi_ct_memcmp( userhash, dbhash + OLD_SALT_LENGTH, hash_len - OLD_SALT_LENGTH );
-+        /* This case is for if the salt is at the START, which only applies to DS40B1 case.
-+         * May never be a valid check...
-+         */
-+        result = slapi_ct_memcmp(userhash, dbhash + OLD_SALT_LENGTH, shaLen, hash_len - OLD_SALT_LENGTH);
-     }
- 
- loser:
-diff --git a/ldap/servers/plugins/pwdstorage/smd5_pwd.c b/ldap/servers/plugins/pwdstorage/smd5_pwd.c
-index 2e9d195..f6b4bb4 100644
---- a/ldap/servers/plugins/pwdstorage/smd5_pwd.c
-+++ b/ldap/servers/plugins/pwdstorage/smd5_pwd.c
-@@ -52,35 +52,37 @@ smd5_pw_cmp( const char *userpwd, const char *dbpwd )
-    /*
-     * Decode hash stored in database.
-     */
--   hash_len = pwdstorage_base64_decode_len(dbpwd, 0);
--   if ( hash_len >= sizeof(quick_dbhash) ) { /* get more space: */
--      dbhash = (char*) slapi_ch_calloc( hash_len + 1, sizeof(char) );
--      if ( dbhash == NULL ) goto loser;
--   } else {
--      memset( quick_dbhash, 0, sizeof(quick_dbhash) );
--   }
--
--   hashresult = PL_Base64Decode( dbpwd, 0, dbhash );
--   if (NULL == hashresult) {
--      slapi_log_err(SLAPI_LOG_PLUGIN, SALTED_MD5_SUBSYSTEM_NAME,
--            "smd5_pw_cmp: userPassword \"%s\" is the wrong length "
--            "or is not properly encoded BASE64\n", dbpwd );
--      goto loser;
--   }
--
--   salt.bv_val = (void*)(dbhash + MD5_LENGTH); /* salt starts after hash value */
--   salt.bv_len = hash_len - MD5_LENGTH; /* remaining bytes must be salt */
--
--   /* create the hash */
--   memset( userhash, 0, sizeof(userhash) );
--   PK11_DigestBegin(ctx);
--   PK11_DigestOp(ctx, (const unsigned char *)userpwd, strlen(userpwd));
--   PK11_DigestOp(ctx, (unsigned char*)(salt.bv_val), salt.bv_len);
--   PK11_DigestFinal(ctx, userhash, &outLen, sizeof userhash);
--   PK11_DestroyContext(ctx, 1);
--
--   /* Compare everything up to the salt. */
--   rc = slapi_ct_memcmp( userhash, dbhash, MD5_LENGTH );
-+    hash_len = pwdstorage_base64_decode_len(dbpwd, 0);
-+    if (hash_len >= sizeof(quick_dbhash)) { /* get more space: */
-+        dbhash = (char *)slapi_ch_calloc(hash_len + 1, sizeof(char));
-+        if (dbhash == NULL)
-+            goto loser;
-+    } else {
-+        memset(quick_dbhash, 0, sizeof(quick_dbhash));
-+    }
-+
-+    hashresult = PL_Base64Decode(dbpwd, 0, dbhash);
-+    if (NULL == hashresult) {
-+        slapi_log_err(SLAPI_LOG_PLUGIN, SALTED_MD5_SUBSYSTEM_NAME,
-+                      "smd5_pw_cmp: userPassword \"%s\" is the wrong length "
-+                      "or is not properly encoded BASE64\n",
-+                      dbpwd);
-+        goto loser;
-+    }
-+
-+    salt.bv_val = (void *)(dbhash + MD5_LENGTH); /* salt starts after hash value */
-+    salt.bv_len = hash_len - MD5_LENGTH;         /* remaining bytes must be salt */
-+
-+    /* create the hash */
-+    memset(userhash, 0, sizeof(userhash));
-+    PK11_DigestBegin(ctx);
-+    PK11_DigestOp(ctx, (const unsigned char *)userpwd, strlen(userpwd));
-+    PK11_DigestOp(ctx, (unsigned char *)(salt.bv_val), salt.bv_len);
-+    PK11_DigestFinal(ctx, userhash, &outLen, sizeof userhash);
-+    PK11_DestroyContext(ctx, 1);
-+
-+    /* Compare everything up to the salt. */
-+    rc = slapi_ct_memcmp(userhash, dbhash, MD5_LENGTH, MD5_LENGTH);
- 
- loser:
-    if ( dbhash && dbhash != quick_dbhash ) slapi_ch_free_string( (char **)&dbhash );
-diff --git a/ldap/servers/slapd/ch_malloc.c b/ldap/servers/slapd/ch_malloc.c
-index 52ccb64..66cb692 100644
---- a/ldap/servers/slapd/ch_malloc.c
-+++ b/ldap/servers/slapd/ch_malloc.c
-@@ -343,8 +343,8 @@ slapi_ch_smprintf(const char *fmt, ...)
- 
- /* Constant time memcmp. Does not shortcircuit on failure! */
- /* This relies on p1 and p2 both being size at least n! */
--int
--slapi_ct_memcmp( const void *p1, const void *p2, size_t n)
-+int32_t
-+slapi_ct_memcmp(const void *p1, const void *p2, size_t n1, size_t n2)
- {
-     int result = 0;
-     const unsigned char *_p1 = (const unsigned char *)p1;
-@@ -354,9 +354,35 @@ slapi_ct_memcmp( const void *p1, const void *p2, size_t n)
-         return 2;
-     }
- 
--    for (size_t i = 0; i < n; i++) {
--        if (_p1[i] ^ _p2[i]) {
--            result = 1;
-+    if (n1 == n2) {
-+        for (size_t i = 0; i < n1; i++) {
-+            if (_p1[i] ^ _p2[i]) {
-+                result = 1;
-+            }
-+        }
-+    } else {
-+        const unsigned char *_pa;
-+        const unsigned char *_pb;
-+        size_t nl;
-+        if (n2 > n1) {
-+            _pa = _p2;
-+            _pb = _p2;
-+            nl = n2;
-+        } else {
-+            _pa = _p1;
-+            _pb = _p1;
-+            nl = n1;
-+        }
-+        /* We already fail as n1 != n2 */
-+        result = 3;
-+        for (size_t i = 0; i < nl; i++) {
-+            if (_pa[i] ^ _pb[i]) {
-+                /*
-+                 * If we don't mutate result here, dead code elimination
-+                 * we remove for loop.
-+                 */
-+                result = 4;
-+            }
-         }
-     }
-     return result;
-diff --git a/ldap/servers/slapd/slapi-plugin.h b/ldap/servers/slapd/slapi-plugin.h
-index d37bc63..2c5c4ce 100644
---- a/ldap/servers/slapd/slapi-plugin.h
-+++ b/ldap/servers/slapd/slapi-plugin.h
-@@ -5859,7 +5859,7 @@ char * slapi_ch_smprintf(const char *fmt, ...)
-  * \param n length in bytes of the content of p1 AND p2.
-  * \return 0 on match. 1 on non-match. 2 on presence of NULL pointer in p1 or p2.
-  */
--int slapi_ct_memcmp( const void *p1, const void *p2, size_t n);
-+int32_t slapi_ct_memcmp(const void *p1, const void *p2, size_t n1, size_t n2);
- 
- /*
-  * syntax plugin routines
--- 
-1.8.3.1
-

diff --git a/net-nds/389-ds-base/files/389-ds-snmp.initd b/net-nds/389-ds-base/files/389-ds-snmp.initd
deleted file mode 100644
index 94df1580d76..00000000000
--- a/net-nds/389-ds-base/files/389-ds-snmp.initd
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2010 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-PIDFILE="/var/run/ldap-agent.pid"
-CONFIGFILE="/etc/dirsrv/config/ldap-agent.conf"
-
-# instance support in progress
-
-depend() {
-	need net
-	use logger snmpd
-}
-
-start() {
-	ebegin "Starting 389 Directory Server ldap-snmp agent"
-	start-stop-daemon --start --quiet -b \
-		--pidfile ${PIDFILE} --exec /usr/sbin/ldap-agent -- ${CONFIGFILE}
-	eend ${?}
-	if [ "${?}" != "0" ]; then
-		local entries=/etc/dirsrv/slapd-*
-		if [ -n "${entries}" ]; then
-			ewarn "Please make sure that ${CONFIGFILE} contains at least"
-			ewarn "one of the following entries:"
-			for entry in ${entries}; do
-				entry=$(basename ${entry})
-				ewarn "server ${entry}"
-			done
-		fi
-	fi
-}
-
-stop() {
-	ebegin "Stopping 389 Directory Server ldap-snmp agent"
-	start-stop-daemon --stop --quiet --pidfile ${PIDFILE}
-	eend ${?}
-	
-}
-
-restart() {
-	svc_stop
-	sleep 2
-	svc_start
-}

diff --git a/net-nds/389-ds-base/files/389-ds.initd-r1 b/net-nds/389-ds-base/files/389-ds.initd-r1
deleted file mode 100644
index bc9e6e1bb3a..00000000000
--- a/net-nds/389-ds-base/files/389-ds.initd-r1
+++ /dev/null
@@ -1,90 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-DIRSRV_EXEC="/usr/sbin/ns-slapd"
-PID_DIRECTORY="/var/run/dirsrv"
-LOCK_DIRECTORY="/var/lock/dirsrv"
-DIRSRV_CONF_DIR="/etc/dirsrv"
-DS_INSTANCES=${DIRSRV_CONF_DIR}/slapd-*
-F389DS_INSTANCES=""
-
-depend() {
-	need net logger
-	use dns
-	provide dirsvr ldap
-}
-
-checkconfig() {
-	if [ -z "${DS_INSTANCES}" ]; then
-		eerror "389 Directory Server has not been configured."
-		eend 1
-		return 1
-	fi
-}
-
-start() {
-	checkconfig || return 1
-
-	for instance in ${DS_INSTANCES}; do
-		instance=$(basename ${instance})
-		# skip .removed instances, bug #338133
-		if [ "${instance%%.removed}" != "${instance}" ]; then
-			continue
-		fi
-		# Create the required directories in case they got nuked
-		mkdir -p ${PID_DIRECTORY}
-		mkdir -p ${LOCK_DIRECTORY}/${instance}
-		# This will probably break one day, we should be pulling out the suitespotuser from dse.ldif
-		chown dirsrv: ${PID_DIRECTORY}
-		chown dirsrv: ${LOCK_DIRECTORY}/${instance}
-		ebegin "Starting 389 Directory Server: instance ${instance}"
-		start-stop-daemon --start --quiet -m \
-			--pidfile ${PID_DIRECTORY}/${instance}.startpid \
-			--exec ${DIRSRV_EXEC} -- -D ${DIRSRV_CONF_DIR}/${instance} \
-			-i ${PID_DIRECTORY}/${instance}.pid \
-			-w ${PID_DIRECTORY}/${instance}.startpid
-		sts=${?}
-		eend ${sts}
-		if [ "${sts}" != "0" ]; then
-			return 1
-		fi
-	done
-}
-
-
-
-stop() {
-	checkconfig || return 1
-
-	for instance in ${DS_INSTANCES}; do
-		instance=$(basename ${instance})
-		if [ "${instance%%.removed}" != "${instance}" ]; then
-			continue
-		fi
-		ebegin "Stopping 389 Directory Server: instance ${instance}"
-		start-stop-daemon --stop --quiet \
-			--pidfile ${PID_DIRECTORY}/${instance}.pid \
-			--exec ${DIRSRV_EXEC}
-		eend ${?}
-	done
-}
-
-status() {
-	for instance in ${DS_INSTANCES}; do
-		instance=$(basename ${instance})
-		if [ "${instance%%.removed}" != "${instance}" ]; then
-			continue
-		fi
-		if [ -e ${PID_DIRECTORY}/${instance}.pid ]; then
-			pid=$(cat ${PID_DIRECTORY}/${instance}.pid)
-			if [ $(echo "$pid" | grep -c $pid) -ge 1 ]; then
-				einfo "389 Directory Server: instance ${instance} (pid $pid) running."
-			else
-				ewarn "389 Directory Server: instance ${instance} (pid $pid) NOT running."
-			fi
-		else
-			eerror "389 Directory Server: instance ${instance} is NOT running."
-		fi
-	done
-}

diff --git a/net-nds/389-ds-base/metadata.xml b/net-nds/389-ds-base/metadata.xml
deleted file mode 100644
index 55831e027b4..00000000000
--- a/net-nds/389-ds-base/metadata.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
-	<!-- maintainer-needed -->
-	<longdescription>The enterprise-class Open Source LDAP server for Linux
-	</longdescription> 
-<use>
-	<flag name="pam-passthru">Enable pam-passthru plugin - for simple and
-		fast system services used in ldap</flag>
-	<flag name="dna">Enable dna (distributed numeric assignment ) plugin -  to
-		automatically assign unique uid numbers to new user entries as they
-		are created.</flag>
-	<flag name="presence">Enable presence plugin - non-standard syntax
-		validation</flag>
-	<flag name="bitwise">Enable bitwise plugin - supported data in raw/bitwise
-		format</flag>
-	<flag name="autobind">Enable auto bind over unix domain socket (LDAPI)
-		support</flag>
-	<flag name="auto-dn-suffix">Enable auto bind with auto dn suffix over unix
-		domain socket (LDAPI) support</flag>
-	<flag name="ldapi">Enable LDAP over unix domain socket (LDAPI) support</flag>
-</use>
-</pkgmetadata>


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-nds/389-ds-base/, net-nds/389-ds-base/files/
@ 2021-09-24 16:29 Florian Schmaus
  0 siblings, 0 replies; 6+ messages in thread
From: Florian Schmaus @ 2021-09-24 16:29 UTC (permalink / raw
  To: gentoo-commits

commit:     67ab0251459d99b0e383c958c1fbe0ec11980c0a
Author:     Robert Förster <Dessa <AT> gmake <DOT> de>
AuthorDate: Fri Sep 24 15:49:58 2021 +0000
Commit:     Florian Schmaus <flow <AT> gentoo <DOT> org>
CommitDate: Fri Sep 24 16:29:42 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=67ab0251

net-nds/389-ds-base: remove old

Package-Manager: Portage-3.0.23, Repoman-3.0.3
Signed-off-by: Robert Förster <Dessa <AT> gmake.de>
Closes: https://github.com/gentoo/gentoo/pull/22388
Signed-off-by: Florian Schmaus <flow <AT> gentoo.org>

 net-nds/389-ds-base/389-ds-base-1.4.4.16-r1.ebuild | 300 ---------------------
 net-nds/389-ds-base/Manifest                       |   1 -
 .../files/389-ds-base-1.4.4.16-crypt-import.patch  | 118 --------
 3 files changed, 419 deletions(-)

diff --git a/net-nds/389-ds-base/389-ds-base-1.4.4.16-r1.ebuild b/net-nds/389-ds-base/389-ds-base-1.4.4.16-r1.ebuild
deleted file mode 100644
index e3ef7ffdf4b..00000000000
--- a/net-nds/389-ds-base/389-ds-base-1.4.4.16-r1.ebuild
+++ /dev/null
@@ -1,300 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CRATES="
-ahash-0.7.2
-ansi_term-0.11.0
-atty-0.2.14
-autocfg-1.0.1
-base64-0.13.0
-bitflags-1.2.1
-byteorder-1.4.3
-cbindgen-0.9.1
-cc-1.0.67
-cfg-if-1.0.0
-clap-2.33.3
-concread-0.2.9
-crossbeam-0.8.0
-crossbeam-channel-0.5.1
-crossbeam-deque-0.8.0
-crossbeam-epoch-0.9.3
-crossbeam-queue-0.3.1
-crossbeam-utils-0.8.3
-fernet-0.1.4
-foreign-types-0.3.2
-foreign-types-shared-0.1.1
-getrandom-0.2.2
-hermit-abi-0.1.18
-instant-0.1.9
-itoa-0.4.7
-jobserver-0.1.21
-lazy_static-1.4.0
-libc-0.2.93
-lock_api-0.4.3
-log-0.4.14
-memoffset-0.6.3
-once_cell-1.7.2
-openssl-0.10.33
-openssl-sys-0.9.61
-parking_lot-0.11.1
-parking_lot_core-0.8.3
-paste-0.1.18
-paste-impl-0.1.18
-pkg-config-0.3.19
-ppv-lite86-0.2.10
-proc-macro-hack-0.5.19
-proc-macro2-1.0.26
-quote-1.0.9
-rand-0.8.3
-rand_chacha-0.3.0
-rand_core-0.6.2
-rand_hc-0.3.0
-redox_syscall-0.2.6
-remove_dir_all-0.5.3
-ryu-1.0.5
-scopeguard-1.1.0
-serde-1.0.125
-serde_derive-1.0.125
-serde_json-1.0.64
-smallvec-1.6.1
-strsim-0.8.0
-syn-1.0.69
-synstructure-0.12.4
-tempfile-3.2.0
-textwrap-0.11.0
-toml-0.5.8
-unicode-width-0.1.8
-unicode-xid-0.2.1
-uuid-0.8.2
-vcpkg-0.2.11
-vec_map-0.8.2
-version_check-0.9.3
-wasi-0.10.2+wasi-snapshot-preview1
-winapi-0.3.9
-winapi-i686-pc-windows-gnu-0.4.0
-winapi-x86_64-pc-windows-gnu-0.4.0
-zeroize-1.2.0
-zeroize_derive-1.0.1
-"
-
-PYTHON_COMPAT=( python3_{8,9} )
-
-DISTUTILS_SINGLE_IMPL=1
-DISTUTILS_USE_SETUPTOOLS=rdepend
-
-inherit multilib flag-o-matic autotools distutils-r1 systemd tmpfiles db-use cargo
-
-DESCRIPTION="389 Directory Server (core libraries and daemons)"
-HOMEPAGE="https://directory.fedoraproject.org/"
-SRC_URI="https://github.com/389ds/${PN}/archive/refs/tags/${P}.tar.gz
-	$(cargo_crate_uris ${CRATES})"
-LICENSE="GPL-3+ Apache-2.0 BSD MIT MPL-2.0"
-SLOT="$(ver_cut 1-2)/0"
-KEYWORDS="~amd64"
-IUSE_PLUGINS="+accountpolicy +bitwise +dna +pam-passthru"
-IUSE="${IUSE_PLUGINS} +autobind auto-dn-suffix debug doc +ldapi selinux systemd"
-
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-# lib389 tests (which is most of the suite) can't find their own modules.
-RESTRICT="test"
-
-# always list newer first
-# Do not add any AGPL-3 BDB here!
-# See bug 525110, comment 15.
-BERKDB_SLOTS=( 5.3 4.8 )
-
-DEPEND="
-	>=app-crypt/mit-krb5-1.7-r100[openldap]
-	>=dev-libs/cyrus-sasl-2.1.19[kerberos]
-	>=dev-libs/icu-60.2:=
-	dev-libs/nspr
-	>=dev-libs/nss-3.22[utils]
-	dev-libs/libevent:=
-	dev-libs/libpcre:3
-	dev-libs/openssl:0=
-	>=net-analyzer/net-snmp-5.1.2:=
-	net-nds/openldap[sasl]
-	|| (
-		$(for slot in ${BERKDB_SLOTS[@]} ; do printf '%s\n' "sys-libs/db:${slot}" ; done)
-	)
-	sys-libs/cracklib
-	sys-fs/e2fsprogs
-	sys-libs/zlib
-	pam-passthru? ( sys-libs/pam )
-	selinux? (
-		$(python_gen_cond_dep '
-			sys-libs/libselinux[python,${PYTHON_USEDEP}]
-		')
-	)
-	systemd? ( >=sys-apps/systemd-244 )
-	virtual/libcrypt:=
-	"
-
-BDEPEND=">=sys-devel/autoconf-2.69-r5
-	virtual/pkgconfig
-	${PYTHON_DEPS}
-	$(python_gen_cond_dep '
-		dev-python/argparse-manpage[${PYTHON_USEDEP}]
-	')
-	doc? ( app-doc/doxygen )
-	test? ( dev-util/cmocka )
-"
-
-# perl dependencies are for logconv.pl
-RDEPEND="${DEPEND}
-	!dev-libs/svrcore
-	!net-nds/389-ds-base:0
-	acct-user/dirsrv
-	acct-group/dirsrv
-	${PYTHON_DEPS}
-	$(python_gen_cond_dep '
-		dev-python/pyasn1[${PYTHON_USEDEP}]
-		dev-python/pyasn1-modules[${PYTHON_USEDEP}]
-		dev-python/argcomplete[${PYTHON_USEDEP}]
-		dev-python/python-dateutil[${PYTHON_USEDEP}]
-		dev-python/python-ldap[sasl,${PYTHON_USEDEP}]
-		dev-python/distro[${PYTHON_USEDEP}]
-	')
-	virtual/perl-Archive-Tar
-	virtual/perl-DB_File
-	virtual/perl-IO
-	virtual/perl-Getopt-Long
-	virtual/perl-IO-Compress
-	virtual/perl-MIME-Base64
-	virtual/perl-Scalar-List-Utils
-	virtual/perl-Time-Local
-	virtual/logger
-	selinux? ( sec-policy/selinux-dirsrv )
-"
-
-S="${WORKDIR}/${PN}-${P}"
-
-PATCHES=(
-	"${FILESDIR}/${P}-crypt-import.patch"
-	"${FILESDIR}/${PN}-db-gentoo.patch"
-)
-
-distutils_enable_tests pytest
-
-src_prepare() {
-	# this is for upstream GitHub issue 4292
-	if use !systemd; then
-		sed -i \
-			-e 's|WITH_SYSTEMD = 1|WITH_SYSTEMD = 0|' \
-			Makefile.am || die
-	fi
-
-	# GH issue 4092
-	sed -i \
-		-e 's|@localstatedir@/run|/run|' \
-		ldap/admin/src/defaults.inf.in || die
-
-	default
-
-	eautoreconf
-}
-
-src_configure() {
-	local myeconfargs=(
-		$(use_enable accountpolicy acctpolicy)
-		$(use_enable bitwise)
-		$(use_enable dna)
-		$(use_enable pam-passthru)
-		$(use_enable autobind)
-		$(use_enable auto-dn-suffix)
-		$(use_enable debug)
-		$(use_enable ldapi)
-		$(use_with selinux)
-		$(use_with systemd)
-		$(use_with systemd systemdgroupname "dirsrv.target")
-		$(use_with systemd tmpfiles-d "/usr/lib/tmpfiles.d")
-		--with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
-		$(use_with !systemd initddir "/etc/init.d")
-		$(use_enable test cmocka)
-		--enable-rust
-		--enable-rust-offline
-		--with-pythonexec="${PYTHON}"
-		--with-fhs
-		--with-openldap
-		--with-db-inc="$(db_includedir)"
-		--disable-cockpit
-	)
-
-	econf "${myeconfargs[@]}"
-
-	rm "${S}"/.cargo/config || die
-}
-
-src_compile() {
-	export CARGO_HOME="${ECARGO_HOME}"
-
-	default
-
-	if use doc; then
-		doxygen "${S}"/docs/slapi.doxy || die
-	fi
-
-	cd "${S}"/src/lib389 || die
-	distutils-r1_src_compile
-
-	# argparse-manpage dynamic man pages have hardcoded man v1 in header
-	sed -i \
-		"1s/\"1\"/\"8\"/" \
-		"${S}"/src/lib389/man/{openldap_to_ds,ds{conf,ctl,idm,create}}.8 || die
-}
-
-src_test () {
-	emake check
-	cd "${S}"/src/lib389 || die
-	distutils-r1_src_test
-}
-
-src_install() {
-	# -j1 is a temporary workaround for bug #605432
-	emake -j1 DESTDIR="${D}" install
-
-	# Install gentoo style init script
-	# Get these merged upstream
-	newinitd "${FILESDIR}"/389-ds.initd-r1 389-ds
-	newinitd "${FILESDIR}"/389-ds-snmp.initd 389-ds-snmp
-
-	dotmpfiles "${FILESDIR}"/389-ds-base.conf
-
-	# cope with libraries being in /usr/lib/dirsrv
-	dodir /etc/env.d
-	echo "LDPATH=/usr/$(get_libdir)/dirsrv" > "${ED}"/etc/env.d/08dirsrv || die
-
-	if use doc; then
-		cd "${S}" || die
-		docinto html/
-		dodoc -r html/.
-	fi
-
-	cd "${S}"/src/lib389 || die
-	distutils-r1_src_install
-	python_fix_shebang "${ED}"
-
-	find "${ED}" -type f \( -name "*.a" -o -name "*.la" \) -delete || die
-}
-
-pkg_postinst() {
-	tmpfiles_process 389-ds-base.conf
-
-	echo
-	elog "If you are planning to use 389-ds-snmp (ldap-agent),"
-	elog "make sure to properly configure: /etc/dirsrv/config/ldap-agent.conf"
-	elog "adding proper 'server' entries, and adding the lines below to"
-	elog " => /etc/snmp/snmpd.conf"
-	elog
-	elog "master agentx"
-	elog "agentXSocket /var/agentx/master"
-	elog
-	elog "To start 389 Directory Server (LDAP service) at boot:"
-	elog
-	elog "    rc-update add 389-ds default"
-	elog
-	echo
-}

diff --git a/net-nds/389-ds-base/Manifest b/net-nds/389-ds-base/Manifest
index 6a79ee183ac..2074aba01af 100644
--- a/net-nds/389-ds-base/Manifest
+++ b/net-nds/389-ds-base/Manifest
@@ -1,4 +1,3 @@
-DIST 389-ds-base-1.4.4.16.tar.gz 5456272 BLAKE2B bb157de3ebfdf214a56a56cd991255080890b28ca5fbd4ce5437e1ab4ca03181b7c2a58630ee26112771aaf9037cff8102926f48da136d6af43024c70ca1eeb8 SHA512 2c8d446dd26f67345351a6ea5f6095d89ed5eb26df09e09b19d625fb01418c5354b93ac0272e68b2d444a70b63180ce53042e0e43b6ea826948f6c93f4c22fc0
 DIST 389-ds-base-1.4.4.17.tar.gz 5356426 BLAKE2B 4972d7a7a7d12fb13f76db5cb2c8b896d5bb02c9f1e4bfbfae709f5fc01b9f662b5557710ca52d9f0a6ac3dc9e36bfab594e597db90ab146a5a5f252e11b4175 SHA512 83cc20915d59d4a45febad1462103c51108deee271cae7f98ff28e0a939451060edca28046719a417b3d3b956a74687a288880d64a6ab201e682ad577bf70583
 DIST ahash-0.7.2.crate 37192 BLAKE2B a2ea98d408f6ac72b96a7e14b22999d52a6839d724f3e8fc82f67ea985a110d8dc17847087e6aaeca477ef93afadda3488ee77cc5425cab5f77c00cd67ff4463 SHA512 77886a994102c1edf93b133e27658e3c84152c83597191d58c571dc7dfc765d41c2879ea55d64e04e3af804a4f10aeb1c10e33a924fd967b288e6d0b12728b34
 DIST ansi_term-0.11.0.crate 17087 BLAKE2B 9bd35c045a01ce4c6c4a5db1b4f15e9412bb97426eec19d4421dffbec633de8d13452c13c1dc1b30998690b78d7ed38311aca700087f13a81f66bd1d5d7300c4 SHA512 a637466a380748f939b3af090b8c0333f35581925bc03f4dda9b3f95d338836403cf5487ae3af9ff68f8245a837f8ab061aabe57a126a6a2c20f2e972c77d1fa

diff --git a/net-nds/389-ds-base/files/389-ds-base-1.4.4.16-crypt-import.patch b/net-nds/389-ds-base/files/389-ds-base-1.4.4.16-crypt-import.patch
deleted file mode 100644
index cf8c7d9b452..00000000000
--- a/net-nds/389-ds-base/files/389-ds-base-1.4.4.16-crypt-import.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-From c1926dfc6591b55c4d33f9944de4d7ebe077e964 Mon Sep 17 00:00:00 2001
-From: Firstyear <william@blackhats.net.au>
-Date: Fri, 9 Jul 2021 11:53:35 +1000
-Subject: [PATCH] Issue 4817 - BUG - locked crypt accounts on import may allow
- all passwords (#4819)
-
-Bug Description: Due to mishanding of short dbpwd hashes, the
-crypt_r algorithm was misused and was only comparing salts
-in some cases, rather than checking the actual content
-of the password.
-
-Fix Description: Stricter checks on dbpwd lengths to ensure
-that content passed to crypt_r has at least 2 salt bytes and
-1 hash byte, as well as stricter checks on ct_memcmp to ensure
-that compared values are the same length, rather than potentially
-allowing overruns/short comparisons.
-
-fixes: https://github.com/389ds/389-ds-base/issues/4817
-
-Author: William Brown <william@blackhats.net.au>
-
-Review by: @mreynolds389
----
- .../password/pwd_crypt_asterisk_test.py       | 50 +++++++++++++++++++
- ldap/servers/plugins/pwdstorage/crypt_pwd.c   | 20 +++++---
- 2 files changed, 64 insertions(+), 6 deletions(-)
- create mode 100644 dirsrvtests/tests/suites/password/pwd_crypt_asterisk_test.py
-
-diff --git a/dirsrvtests/tests/suites/password/pwd_crypt_asterisk_test.py b/dirsrvtests/tests/suites/password/pwd_crypt_asterisk_test.py
-new file mode 100644
-index 000000000..d76614db1
---- /dev/null
-+++ b/dirsrvtests/tests/suites/password/pwd_crypt_asterisk_test.py
-@@ -0,0 +1,50 @@
-+# --- BEGIN COPYRIGHT BLOCK ---
-+# Copyright (C) 2021 William Brown <william@blackhats.net.au>
-+# All rights reserved.
-+#
-+# License: GPL (version 3 or any later version).
-+# See LICENSE for details.
-+# --- END COPYRIGHT BLOCK ---
-+#
-+import ldap
-+import pytest
-+from lib389.topologies import topology_st
-+from lib389.idm.user import UserAccounts
-+from lib389._constants import (DEFAULT_SUFFIX, PASSWORD)
-+
-+pytestmark = pytest.mark.tier1
-+
-+def test_password_crypt_asterisk_is_rejected(topology_st):
-+    """It was reported that {CRYPT}* was allowing all passwords to be
-+    valid in the bind process. This checks that we should be rejecting
-+    these as they should represent locked accounts. Similar, {CRYPT}!
-+
-+    :id: 0b8f1a6a-f3eb-4443-985e-da14d0939dc3
-+    :setup: Single instance
-+    :steps: 1. Set a password hash in with CRYPT and the content *
-+            2. Test a bind
-+            3. Set a password hash in with CRYPT and the content !
-+            4. Test a bind
-+    :expectedresults:
-+            1. Successfully set the values
-+            2. The bind fails
-+            3. Successfully set the values
-+            4. The bind fails
-+    """
-+    topology_st.standalone.config.set('nsslapd-allow-hashed-passwords', 'on')
-+    topology_st.standalone.config.set('nsslapd-enable-upgrade-hash', 'off')
-+
-+    users = UserAccounts(topology_st.standalone, DEFAULT_SUFFIX)
-+    user = users.create_test_user()
-+
-+    user.set('userPassword', "{CRYPT}*")
-+
-+    # Attempt to bind with incorrect password.
-+    with pytest.raises(ldap.INVALID_CREDENTIALS):
-+        badconn = user.bind('badpassword')
-+
-+    user.set('userPassword', "{CRYPT}!")
-+    # Attempt to bind with incorrect password.
-+    with pytest.raises(ldap.INVALID_CREDENTIALS):
-+        badconn = user.bind('badpassword')
-+
-diff --git a/ldap/servers/plugins/pwdstorage/crypt_pwd.c b/ldap/servers/plugins/pwdstorage/crypt_pwd.c
-index 9031b2199..1b37d41ed 100644
---- a/ldap/servers/plugins/pwdstorage/crypt_pwd.c
-+++ b/ldap/servers/plugins/pwdstorage/crypt_pwd.c
-@@ -48,15 +48,23 @@ static unsigned char itoa64[] = /* 0 ... 63 => ascii - 64 */
- int
- crypt_pw_cmp(const char *userpwd, const char *dbpwd)
- {
--    int rc;
--    char *cp;
-+    int rc = -1;
-+    char *cp = NULL;
-+    size_t dbpwd_len = strlen(dbpwd);
-     struct crypt_data data;
-     data.initialized = 0;
- 
--    /* we use salt (first 2 chars) of encoded password in call to crypt_r() */
--    cp = crypt_r(userpwd, dbpwd, &data);
--    if (cp) {
--        rc = slapi_ct_memcmp(dbpwd, cp, strlen(dbpwd));
-+    /*
-+     * there MUST be at least 2 chars of salt and some pw bytes, else this is INVALID and will
-+     * allow any password to bind as we then only compare SALTS.
-+     */
-+    if (dbpwd_len >= 3) {
-+        /* we use salt (first 2 chars) of encoded password in call to crypt_r() */
-+        cp = crypt_r(userpwd, dbpwd, &data);
-+    }
-+    /* If these are not the same length, we can not proceed safely with memcmp. */
-+    if (cp && dbpwd_len == strlen(cp)) {
-+        rc = slapi_ct_memcmp(dbpwd, cp, dbpwd_len);
-     } else {
-         rc = -1;
-     }


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: net-nds/389-ds-base/, net-nds/389-ds-base/files/
@ 2023-01-30  9:04 Florian Schmaus
  0 siblings, 0 replies; 6+ messages in thread
From: Florian Schmaus @ 2023-01-30  9:04 UTC (permalink / raw
  To: gentoo-commits

commit:     9aad5146f9be8785914d1d71ff359c1cb56e9687
Author:     Florian Schmaus <flow <AT> gentoo <DOT> org>
AuthorDate: Mon Jan 30 08:55:25 2023 +0000
Commit:     Florian Schmaus <flow <AT> gentoo <DOT> org>
CommitDate: Mon Jan 30 09:04:27 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9aad5146

net-nds/389-ds-base: add 2.3.2

Closes: https://bugs.gentoo.org/856556
Signed-off-by: Florian Schmaus <flow <AT> gentoo.org>

 net-nds/389-ds-base/389-ds-base-2.3.2.ebuild | 297 +++++++++++++++++++++++++++
 net-nds/389-ds-base/Manifest                 |  57 +++++
 net-nds/389-ds-base/files/README.gentoo      |  10 +
 3 files changed, 364 insertions(+)

diff --git a/net-nds/389-ds-base/389-ds-base-2.3.2.ebuild b/net-nds/389-ds-base/389-ds-base-2.3.2.ebuild
new file mode 100644
index 000000000000..4080c2e34d42
--- /dev/null
+++ b/net-nds/389-ds-base/389-ds-base-2.3.2.ebuild
@@ -0,0 +1,297 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+	ahash-0.7.6
+	ansi_term-0.12.1
+	atty-0.2.14
+	autocfg-1.1.0
+	base64-0.13.1
+	bitflags-1.3.2
+	byteorder-1.4.3
+	cbindgen-0.9.1
+	cc-1.0.78
+	cfg-if-1.0.0
+	clap-2.34.0
+	concread-0.2.21
+	crossbeam-0.8.2
+	crossbeam-channel-0.5.6
+	crossbeam-deque-0.8.2
+	crossbeam-epoch-0.9.13
+	crossbeam-queue-0.3.8
+	crossbeam-utils-0.8.14
+	fastrand-1.8.0
+	fernet-0.1.4
+	foreign-types-0.3.2
+	foreign-types-shared-0.1.1
+	getrandom-0.2.8
+	hashbrown-0.12.3
+	hermit-abi-0.1.19
+	instant-0.1.12
+	itoa-1.0.5
+	jobserver-0.1.25
+	libc-0.2.139
+	lock_api-0.4.9
+	log-0.4.17
+	lru-0.7.8
+	memoffset-0.7.1
+	once_cell-1.17.0
+	openssl-0.10.45
+	openssl-macros-0.1.0
+	openssl-sys-0.9.80
+	parking_lot-0.11.2
+	parking_lot_core-0.8.6
+	paste-0.1.18
+	paste-impl-0.1.18
+	pin-project-lite-0.2.9
+	pkg-config-0.3.26
+	ppv-lite86-0.2.17
+	proc-macro-hack-0.5.20+deprecated
+	proc-macro2-1.0.50
+	quote-1.0.23
+	rand-0.8.5
+	rand_chacha-0.3.1
+	rand_core-0.6.4
+	redox_syscall-0.2.16
+	remove_dir_all-0.5.3
+	ryu-1.0.12
+	scopeguard-1.1.0
+	serde-1.0.152
+	serde_derive-1.0.152
+	serde_json-1.0.91
+	smallvec-1.10.0
+	strsim-0.8.0
+	syn-1.0.107
+	synstructure-0.12.6
+	tempfile-3.3.0
+	textwrap-0.11.0
+	tokio-1.24.1
+	tokio-macros-1.8.2
+	toml-0.5.10
+	unicode-ident-1.0.6
+	unicode-width-0.1.10
+	unicode-xid-0.2.4
+	uuid-0.8.2
+	vcpkg-0.2.15
+	vec_map-0.8.2
+	version_check-0.9.4
+	wasi-0.11.0+wasi-snapshot-preview1
+	winapi-0.3.9
+	winapi-i686-pc-windows-gnu-0.4.0
+	winapi-x86_64-pc-windows-gnu-0.4.0
+	windows-sys-0.42.0
+	windows_aarch64_gnullvm-0.42.1
+	windows_aarch64_msvc-0.42.1
+	windows_i686_gnu-0.42.1
+	windows_i686_msvc-0.42.1
+	windows_x86_64_gnu-0.42.1
+	windows_x86_64_gnullvm-0.42.1
+	windows_x86_64_msvc-0.42.1
+	zeroize-1.5.7
+	zeroize_derive-1.3.3
+"
+
+PYTHON_COMPAT=( python3_{9..11} )
+
+DISTUTILS_SINGLE_IMPL=1
+DISTUTILS_USE_PEP517=setuptools
+
+inherit autotools cargo distutils-r1 readme.gentoo-r1 systemd tmpfiles
+
+DESCRIPTION="389 Directory Server (core libraries and daemons)"
+HOMEPAGE="https://directory.fedoraproject.org/"
+SRC_URI="
+	https://github.com/389ds/${PN}/archive/refs/tags/${P}.tar.gz
+	$(cargo_crate_uris ${CRATES})
+"
+LICENSE="GPL-3+ Apache-2.0 BSD MIT MPL-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+IUSE_PLUGINS="+accountpolicy +bitwise +dna +pam-passthru"
+IUSE="${IUSE_PLUGINS} +autobind auto-dn-suffix debug doc +ldapi selinux systemd"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+# lib389 tests (which is most of the suite) can't find their own modules.
+RESTRICT="test"
+
+# Do not add any AGPL-3 BDB here!
+# See bug 525110, comment 15.
+
+# dev-libs/libevent: https://github.com/389ds/389-ds-base/pull/5172
+DEPEND="
+	>=app-crypt/mit-krb5-1.7-r100[openldap]
+	dev-db/lmdb:=
+	>=dev-libs/cyrus-sasl-2.1.19:2[kerberos]
+	dev-libs/json-c:=
+	>=dev-libs/icu-60.2:=
+	dev-libs/nspr
+	>=dev-libs/nss-3.22[utils]
+	dev-libs/libevent:=
+	dev-libs/libpcre2:=
+	dev-libs/openssl:0=
+	>=net-analyzer/net-snmp-5.1.2:=
+	net-nds/openldap:=[sasl]
+	sys-libs/cracklib
+	sys-libs/db:5.3
+	sys-libs/zlib
+	sys-fs/e2fsprogs
+	pam-passthru? ( sys-libs/pam )
+	selinux? (
+		$(python_gen_cond_dep '
+			sys-libs/libselinux[python,${PYTHON_USEDEP}]
+		')
+	)
+	systemd? ( >=sys-apps/systemd-244 )
+	virtual/libcrypt:=
+"
+
+BDEPEND=">=sys-devel/autoconf-2.69-r5
+	virtual/pkgconfig
+	${PYTHON_DEPS}
+	$(python_gen_cond_dep '
+		dev-python/argparse-manpage[${PYTHON_USEDEP}]
+	')
+	doc? ( app-doc/doxygen )
+	test? ( dev-util/cmocka )
+"
+
+# perl dependencies are for logconv.pl
+RDEPEND="${DEPEND}
+	!net-nds/389-ds-base:1.4
+	acct-user/dirsrv
+	${PYTHON_DEPS}
+	$(python_gen_cond_dep '
+		dev-python/pyasn1[${PYTHON_USEDEP}]
+		dev-python/pyasn1-modules[${PYTHON_USEDEP}]
+		dev-python/argcomplete[${PYTHON_USEDEP}]
+		dev-python/python-dateutil[${PYTHON_USEDEP}]
+		dev-python/python-ldap[sasl,${PYTHON_USEDEP}]
+		dev-python/distro[${PYTHON_USEDEP}]
+	')
+	virtual/perl-Archive-Tar
+	virtual/perl-DB_File
+	virtual/perl-IO
+	virtual/perl-Getopt-Long
+	virtual/perl-IO-Compress
+	virtual/perl-MIME-Base64
+	virtual/perl-Scalar-List-Utils
+	virtual/perl-Time-Local
+	virtual/logger
+	selinux? ( sec-policy/selinux-dirsrv )
+"
+
+S="${WORKDIR}/${PN}-${P}"
+
+PATCHES=(
+	"${FILESDIR}/${PN}-db-gentoo.patch"
+)
+
+distutils_enable_tests pytest
+
+src_prepare() {
+	# https://github.com/389ds/389-ds-base/issues/4292
+	if use !systemd; then
+		sed -i \
+			-e 's|WITH_SYSTEMD = 1|WITH_SYSTEMD = 0|' \
+			Makefile.am || die
+	fi
+
+	default
+
+	eautoreconf
+}
+
+src_configure() {
+	local myeconfargs=(
+		$(use_enable accountpolicy acctpolicy)
+		$(use_enable bitwise)
+		$(use_enable dna)
+		$(use_enable pam-passthru)
+		$(use_enable autobind)
+		$(use_enable auto-dn-suffix)
+		$(use_enable debug)
+		$(use_enable ldapi)
+		$(use_with selinux)
+		$(use_with systemd)
+		$(use_with systemd systemdgroupname "dirsrv.target")
+		$(use_with systemd tmpfiles-d "/usr/lib/tmpfiles.d")
+		--with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
+		$(use_with !systemd initddir "/etc/init.d")
+		$(use_enable test cmocka)
+		--enable-rust-offline
+		--with-pythonexec="${PYTHON}"
+		--with-fhs
+		--with-openldap
+		--with-db-inc="${EPREFIX}"/usr/include/db5.3
+		--disable-cockpit
+	)
+
+	econf "${myeconfargs[@]}"
+
+	rm .cargo/config || die
+}
+
+src_compile() {
+	export CARGO_HOME="${ECARGO_HOME}"
+
+	default
+
+	if use doc; then
+		doxygen docs/slapi.doxy || die
+	fi
+
+	pushd src/lib389 &>/dev/null || die
+	distutils-r1_src_compile
+	popd &>/dev/null || die
+
+	# argparse-manpage dynamic man pages have hardcoded man v1 in header
+	sed -i \
+		"1s/\"1\"/\"8\"/" \
+		src/lib389/man/{openldap_to_ds,ds{conf,ctl,idm,create}}.8 || die
+}
+
+src_test () {
+	emake check
+	cd src/lib389 || die
+	distutils-r1_src_test
+}
+
+src_install() {
+	# -j1 is a temporary workaround for bug #605432
+	emake -j1 DESTDIR="${D}" install
+
+	# Install gentoo style init script
+	# Get these merged upstream
+	newinitd "${FILESDIR}"/389-ds.initd-r1 389-ds
+	newinitd "${FILESDIR}"/389-ds-snmp.initd 389-ds-snmp
+
+	dotmpfiles "${FILESDIR}"/389-ds-base.conf
+
+	# cope with libraries being in /usr/lib/dirsrv
+	dodir /etc/env.d
+	echo "LDPATH=/usr/$(get_libdir)/dirsrv" > "${ED}"/etc/env.d/08dirsrv || die
+
+	if use doc; then
+		docinto html/
+		dodoc -r html/.
+	fi
+
+	pushd src/lib389 &>/dev/null || die
+	distutils-r1_src_install
+	popd &>/dev/null || die
+
+	python_fix_shebang "${ED}"
+
+	readme.gentoo_create_doc
+
+	find "${ED}" -type f \( -name "*.a" -o -name "*.la" \) -delete || die
+}
+
+pkg_postinst() {
+	tmpfiles_process 389-ds-base.conf
+
+	readme.gentoo_print_elog
+}

diff --git a/net-nds/389-ds-base/Manifest b/net-nds/389-ds-base/Manifest
index 56d42001ddc2..d44bc57a6d7d 100644
--- a/net-nds/389-ds-base/Manifest
+++ b/net-nds/389-ds-base/Manifest
@@ -1,86 +1,126 @@
 DIST 389-ds-base-1.4.4.19.tar.gz 5468293 BLAKE2B 774e3364a0616d501f87d71ab4f750dffdf1404fe4cb0b71f8cf9ad24a6c396010b0fb432b5e5779103302a9f8bfafdf18acc2256c74a6a668247b5381ad67c9 SHA512 0be0bb65b7f623aa891c68d0d1cf92a0098d4c8e85bebc7ebea3f03535f8937d5d954588ce6774a2b7665ad07be4fb94f79cfd7bbbd53c1297c4c53fb8ff2b6b
 DIST 389-ds-base-2.1.0.tar.gz 5624841 BLAKE2B 2d717593f8d6184be9cb863ea9f834a64f13f15d12125ae0d141124564bd5c1793e92f5be56bf40abdec4d3444118012667b3ad31dc204e2ae57f87151b22e1c SHA512 b0ef27c3eed9307175ea25d510b1bf9520ccc59e443358bf60053f831d444945ffae25f1b85f662a0a22b012daca4c0d225ff75c845100a3da9dc9c8bebee60a
+DIST 389-ds-base-2.3.2.tar.gz 5871156 BLAKE2B 8dfd339adfb75d6dd2257a1cf550c9d8a3f1261e0107f48fdaaeb6f0faa2adde1c16db3f39f4b30ffc6282c0dea77b111cd18647ac378ff682b749fdc7c1021f SHA512 9bbbc74a420f1240991adb0fdb3ea386526a6a642cae72a33c75566b08f5191c3581ad63cb245600ad117e95f8f2b373ec457832819c37ebed1b9c1d6ef7581d
 DIST ahash-0.7.6.crate 38030 BLAKE2B aca3661477fcd7822d6d10970151e05c28e1615f8cd7ddaac064b15102027e404b19b0f3f16dd76145048594ea1c22ae27dd08cc05c411efbae9ec7a1ef55ce9 SHA512 61354688b6fb096359faefb6f34be958cd2215d56b88c22c737d24183eaad433f811bc9e64f927e4852c87d2799c22fda82b55cfbef2ed6357ff74f0c4ffec68
 DIST ansi_term-0.11.0.crate 17087 BLAKE2B 9bd35c045a01ce4c6c4a5db1b4f15e9412bb97426eec19d4421dffbec633de8d13452c13c1dc1b30998690b78d7ed38311aca700087f13a81f66bd1d5d7300c4 SHA512 a637466a380748f939b3af090b8c0333f35581925bc03f4dda9b3f95d338836403cf5487ae3af9ff68f8245a837f8ab061aabe57a126a6a2c20f2e972c77d1fa
 DIST ansi_term-0.12.1.crate 24838 BLAKE2B f636772c34e2d68cda7b8d3b2b86abda074585a62bd2654812ce92384244655a9197fa66e6939e19a674c0148ca605313d83de262bb18c2339a8a4eb4438a791 SHA512 b840e28b3e7700689a69a39659b1e066560078dd4a58326b91a028915819e7af883399ee53e920db68fd974c58d35bb1ddf8d427af5937d5f696f57c4376b671
 DIST atty-0.2.14.crate 5470 BLAKE2B 2db856a9e898a430258f059aeaf7c844a153293e8856d90ac81f7d91a888c89198768ad5cb09303c23241fe85c560a55148fa56a303651a82b0edb895616bfab SHA512 d7b6c4b9a0f898d91ddbc41a5ee45bbf45d1d269508c8cc87ee3e3990500e41e0ec387afb1f3bc7db55bedac396dd86c6509f4bf9e5148d809c3802edcc5e1d9
 DIST autocfg-1.0.1.crate 12908 BLAKE2B 40c53cab298e4f26634c3acff3ece6a3371188d91dbf377ed664eabedcde20536edaa93daf406618f37edde019f049a6e7b9a47f627344587dbd126bee2b5e3a SHA512 630b348acb98b012e97804e6325d03c89abc22f2157762c59144c04e6c733daf550bdc7f0fe0b9f3b50e15dae8c1c3c4bdfce3d805b02f0fc987311f5332419b
+DIST autocfg-1.1.0.crate 13272 BLAKE2B 7724055c337d562103f191f4e36cab469e578f0c51cc24d33624dea155d108a07578703766341fd6a4cc1ef52acda406e7dba1650d59115f18261281e5b40203 SHA512 df972c09abbdc0b6cb6bb55b1e29c7fed706ece38a62613d9e275bac46a19574a7f96f0152cccb0239efea04ee90083a146b58b15307696c4c81878cd12de28f
 DIST base64-0.13.0.crate 62070 BLAKE2B b957f65cdb1e28baeca0cefc92fa98be797409b7dabd15e0e88db6cdfb89779b662cba9f2270fbf3b7b66948fdc46c118b8040a78ab72049c48a928fa802bee0 SHA512 991a72999839daa232f508c5b24e7d3225e8a26db8d1d0e747881b115af9e408b92374e163b31e0b0d324c1c2e57e8e38d66861b61eb0a1dba87bb5871940151
+DIST base64-0.13.1.crate 61002 BLAKE2B 3b3a5b26e2ef18e9b4f1ede72b1bd160a1494751878e8441d463f8a514e6cb9ac859231536989e19fb1261fd864617fe31440df1b5855a0ec625521fc6fcef91 SHA512 1eb76aff9a84057f2ccb7082e9c57b015c2d71a28173089b02e7aacd09a7d311bedf0a943529611ada29f8d7b536d7ae4de256d98eee8450003a3a9a652bda4b
 DIST bitflags-1.2.1.crate 16745 BLAKE2B 0fa6d3ce44aad7616d5cd02aad8c1d0b0fed4022650eb43067c4a72e6fc88da05442674fa51826e4858a47c9de233e1ba2229820af094197cd11bb416ceffb2b SHA512 ad89b3798845e23737a620bba581c2ff1ff3e15bac12555c765e201d2c0b90ecea0cdbc5b5b1a3fa9858c385e8e041f8226f5acfae5bbbe9925643fff2bf3f0b
 DIST bitflags-1.3.2.crate 23021 BLAKE2B eb990bb27b2bdeb66fd7212ce582cb36e1c616debbac85df642d0c82b25439e6bf9b1e811fac76b59e58ea3c1bbea6170d03a61e8f9a395e4334a0e2e2987eda SHA512 3c698f757b5cc62f815f9a1cce365c3d2dd88e4db71f331dff8bba86c2865f755b81cb4c9bfc59bd86b7643b0943f9e09a7c4f8ad75eb2ab0e714803d0129f62
 DIST byteorder-1.4.3.crate 22512 BLAKE2B d39c546ba7346df315297fc53da4bfc77ecb1f38567ddb788549ee31cae2719a8bc0b7d1f1705abb3cff033aa57af004987d90748f5a31765273b3223a011c0d SHA512 8c8000eb8ecf40351c9ce36a3a8acd7a02f81786d1b11aab85adfeffa0f2267ed74df29b2ca5d1d38128484d1d3cad2b673aa0d0441dcd0620dfd3934bb888fa
 DIST cbindgen-0.9.1.crate 129676 BLAKE2B 12315522938e941c4a53033f276f6065d6e19ba7cab3ce8aabb17b2ae5fe0c7231e51be33828434d6ca039d79c9414fe8d310a12b07ef1c544ed9b5d8cee74c6 SHA512 0e32563db42363dc82e8aca2f36bdafcdf0ec9156e7238937295c9369d306c2bfa590ea7a9afd61d8b915fc383bb7af8bbb78cde71f6ab30b0c576262c74232b
 DIST cc-1.0.72.crate 57495 BLAKE2B b2057ca53aacafa063a4eaa907bfb65aa32ce01a74a90b9085c8243a87723cee8ce79e4904f9d205f9d451598ee34495f8879d27c189477ca43bd39b88b5ea2e SHA512 e9a5b283b2a1fee1030009068c1f87291ec1dab7584a0892f27cc7e523c8fdfd5d986281d9aec1a00af706af1e61d7e64c245c74be7b39c8c022ae2d4f87de8d
+DIST cc-1.0.78.crate 61375 BLAKE2B fd4765cf5ae0dc7018bc6b56298cd0fa9bf6fe23545e845670d98ce73baee55354e77c6d87cf047f10b074f3d742deca8b5631a250c69b347b4a1fc653965d43 SHA512 b85bec4c75cb1d1e252419052e9dd22b6892e54ea36195ff483a04f785b5b103e82b30b778459fd45324ffeb2463aa4f5696baeff2779c25ffe9f65eb99ae893
 DIST cfg-if-0.1.10.crate 7933 BLAKE2B 063a96ed176f34f788666b40adc483d147fc011dee941ab60569ddd0e57502b5dd06ed71090f4e14ce005d06e240500a286f74652615e9d068fba649610d8cf8 SHA512 9d22616bfb4a75770a828a0a3cddac6787297a5fdc53eb17e25811cc94de717f2de8bd66d53c5d65ba1c83d8892aefee5ae758cf56a1ef0a0c3120f70b244339
 DIST cfg-if-1.0.0.crate 7934 BLAKE2B e99a5589c11d79d77a4537b34ce0a45d37b981c123b79b807cea836c89fc3926d693458893baca2882448d3d44e3f64e06141f6d916b748daa10b8cc1ae16d1b SHA512 0fb16a8882fd30e86b62c5143b1cb18ab564e84e75bd1f28fd12f24ffdc4a42e0d2e012a99abb606c12efe3c11061ff5bf8e24ab053e550ae083f7d90f6576ff
 DIST clap-2.33.3.crate 201925 BLAKE2B bec9c866481c5b3fddeb314f68af9bce38fc421e42816182de3209e8ea3447b72cf033e6251eea27fe974eff8085b7d98cdd2911b5cc0ec6b4bf4c750deb8a25 SHA512 3eb0fd648e2e3f9e5ff69a5e6cf0d867304fe18523accd036f28a86de368e4774088a6936c108ccc045092c539fe7f7494ea96420ebf6b4bec16880cea84bedf
 DIST clap-2.34.0.crate 202210 BLAKE2B f383adf1d757ac4b68995132b33837686ce451f85a02a8d05d2c746da398510d05d46330f3efade063c3952aacb1754cdac73dd0afcae0df5340a89f9353aa1c SHA512 c648a761b9996a7e7464a538bb53621bae22090b846a42c3b729beca3363958ae67e3da9f93f58b10a10e043cadf7ff930388680d168646178c2824177832db8
 DIST concread-0.2.21.crate 854960 BLAKE2B 11b693f52615445afcd789ce228e3c20ede2cc250e2230041324ced7e7f59a8b45c932f85a82d84ff461d02449423c85b7e6134b31110a49890cade330a8f2e9 SHA512 1d09ad7cdb94626b425e7931f3ef30a068804c773edc0af4e9aea4bd47822c5267779b6fce089b1272173f0d82d1067b76def0e2b0e1f43e85bda8f37afa3dd6
 DIST crossbeam-0.8.1.crate 10429 BLAKE2B 4f915d623533a226370eeceefa5c196438b1b332a8b5eb6223853e416385ac4e1a207bf1989646478b219f7a68c8ca0656a808e87db58361f1d77a5554cc2a76 SHA512 564f5623d1a4da7b0253f14946f2e71d14ac9195d80ab3b0ad8e2ba6fc7229745c8c70c2899852d48fc93cef009109d7d7cf2dc9c875273cb8ce9223b92b0beb
+DIST crossbeam-0.8.2.crate 10502 BLAKE2B 487a7a5f197898ebea0fd41a413647db0fc3380790cfdfc6cb7cf3caef48197bb7c2498579ce676d3c5796480a8541ae37ae03f009d768a6157246b1f7d63a33 SHA512 bd2e54372595daeaddcaa26802780959465bd571cac64f23256b7ecc68ff5c0161a36740a51386ee54abe7c509ad1ff870b6f6877a7921f4335661f2c554c3a0
 DIST crossbeam-channel-0.5.2.crate 87842 BLAKE2B 9901a136366ad9afd698c4e385137717964f40c7d035142cb26724e7af45bd6730a0a601320a301a24a7a4f66611a0a650c582fb5a61f6692480bff99ea26492 SHA512 dc8dbfa40a7046ad82da3f33a20b29d216ff98180217489653e53aa46244089d1fd2490051d3f05b00333911e303e9efe76d16d4cbce8257be91f96554fb88d0
+DIST crossbeam-channel-0.5.6.crate 90292 BLAKE2B 7da87ab15c384754d2493dd1a30e83550cd4b2b749b7f0c24de131f054e3a2e521e1bb4ba10094378c8f4c7bdf19218e35b10562c50b4ad1d2871bf6f821e488 SHA512 de6a42ffede95750a13e3b9af6ab26cbc498125860cd8e4d227c7361bd831e558254a48bdef5cf901585a915003071b0efa321f2011f282218c364780f62f44a
 DIST crossbeam-deque-0.8.1.crate 20852 BLAKE2B 0e7a2616b82c5e501c0f74935adfea3ee09db5475408be83db8f1b6faab4cd5509de2e029bdf6df90435e474ef91f3fc8d482ce3a72966b2a3bec5967666bdc4 SHA512 44a4fe1d4ab7457e2b0950be787b76b15e1bb0b1c108d032381ce3fe99bf7bf76f3d1718085660083d813e2639e66fdd3635d9186e85a9eb7267063b117eaca4
+DIST crossbeam-deque-0.8.2.crate 21237 BLAKE2B f00948fe90806fcbf1585c0404250dc84bca2cf27733bf7f2a0aa957e618f916162f41124333329a5b1e84909cbae3d93fb3b4461ab23e9dd97672c7d520d5b7 SHA512 a50a878d843d6eb1b5b92321ce6bfb87a23d3c16e820b1ff55472f0bd3d29b41d09ea95e1b9ccb2790f6687c043dd9ada1cd5124705e24292ccbd8fae1f243b3
+DIST crossbeam-epoch-0.9.13.crate 48313 BLAKE2B 6e548cd39fb400732dc179c5b7185555bdb8a367b5d3a27dcabe9ad36db6e9858604dee210fe487de8f9127fd6d0db1ef1fd04a1cc8cdcf34bedcf980c048555 SHA512 a4578e0e535f301b73f0332778e79b327bafea6afa43284317fccc49b410118360866a2dea8ac22f2977f309d07c663e5d95fbfa852ab795d414c170ee4e06bf
 DIST crossbeam-epoch-0.9.6.crate 46055 BLAKE2B dad8d1181a2b68f6ecf4c620c6222e24850db5f76b99f402f7b79bacaae910effa776c0b72796271b2c9ee8b34f05778998cebf2f25fd88e0bd2f936580dea94 SHA512 5a91cc7ab84b802b9b2d74760b548da9c07e13a1926b9c772c3fb0e8003a27e4d7043c400106175b5009b93aaeaff4ce758a758aa6866d6c60c4c67813481e04
 DIST crossbeam-queue-0.3.3.crate 15198 BLAKE2B e46e2de5792f23e1967c9a1890c79ca11b0debc6dee1d32258e7f5a46f668997a95facd6489a7332fc407957660bd207b662cf0f43849cef6d8ad376c05fadb1 SHA512 85fa59ab199f72f73890a579aa467250f22d694b8194fcd3491975b102a59ef038f02620f3202c13a2588a230541f4a3627cc586dd16b3ffdab62745b3b4fbe1
+DIST crossbeam-queue-0.3.8.crate 16731 BLAKE2B 80a8647bf491adc1a5dc736f662c01e77bcceb4bb2b876eaf684cb2a742a2f46d09e1221f6ca8b19340ddc9ed3a10bf07a08305a5bf069338d00873b1296ad96 SHA512 3c4e855184f8e2656305a59463f0170aab99f9c2df1001f54341b62e05e533864f384477a7a9cbc2b8b1a36bbe4b8076531c11b1492485029ef81ade6e7cbf8b
+DIST crossbeam-utils-0.8.14.crate 42127 BLAKE2B 3e31e6371e46aba6697501a34e1b737680dcb692c0d1ba7cc1ce7025ec70ee69f7595e3abd90fb52c11e42cb43fa5fae6103f97add35cf87b0a68ea83213d0d0 SHA512 fa00a57c41c9daa152f8a6c6f4d3c77986de1aa21585984adf577e244c2f121db014ba2beb92241590e1cf78710e77d9a703ce4a4d44d8854bc3e60690151393
 DIST crossbeam-utils-0.8.6.crate 38841 BLAKE2B 90729cb53f5bdabaea522ac72e06e411a9737398c7970b1805a40bfc3e4d8717eb04c3afac8cf31a1c29c5ef4f137713bfb56320aa5c0e2cdaa6d49e3426b29b SHA512 ee47913da20440fc5b276d68913ab86f12e05d962daa2bfa9c1dc11a0ae775ecd4029584730fa09812d691b64dcb25ec9ad2dab5284fc83962a8e219924119e9
 DIST fastrand-1.7.0.crate 11265 BLAKE2B 318f6c903a0ad0d0eac39638aceb162739868efd61dc0b54f6aac4c96b7b1283c8d463b48b36f9ea1fee640a2081a0eda39238cd53cdcc24efc4d17b4a3a09d4 SHA512 6a1a8cd4f6f9bfff07a4ca18ef84839e4427ca9bf9b6733bb15b1b70cf2439820d6a770ae9f3e5e10166a6144449e37e6f3f6ed9acb761688207fd7c53d2c673
+DIST fastrand-1.8.0.crate 11369 BLAKE2B 93e911ffcec559e30b2fefa44c4d74d1ffa9b8ef1904ace608b8576210bcd41a2b4c7adffc00cd3bb40996110d07316cf8068f4754a879c6cb47e3d41304d406 SHA512 82cbc2b29b97fa3fa2c9372d3e8c390586a7b39f6c7d8c45f9b779bdfdaa2e8a3b44bc7bfcb3367c18120726facc753c9827cf63a8fb4ddc2667509b16333cb1
 DIST fernet-0.1.4.crate 12480 BLAKE2B 45a9c2cae9a8f0a0455cd2cc786542ae22ae1a9f033312cfe29e235f342ca0753d6d090b5951485b09ef8dfa5c667c9b50ad91716dac17ef41d3920d93f1a906 SHA512 6a8efe3465cef6cbc528fab14f86efb12b1b5716d3ae0ab4e9e5532f58d6e177e08317d5f6a91c8ec6c541ff1bef4aaf24dada091e9306841960c193e79efb49
 DIST foreign-types-0.3.2.crate 7504 BLAKE2B 520818b702d990d296ecd31a8646850202509ccfa18edd0e1b260289619a6c351e758f317ec0824bd76eccb209b6f087057c25f1bd01a47897715013dd834867 SHA512 bf27b8243ed482c202d120383374f19ff09422535e24b9c1aebccc66529bf300ca17b8bbc76d67f98ac092e614497afe3add9dc68aa69c93074df05762f91232
 DIST foreign-types-shared-0.1.1.crate 5672 BLAKE2B d2e42e04b6657e7a69fe0bd20c672176629c743e49a55fd007bb30e289710b70045d445ae9cae0eeaa747ee708c90e8abd9b5fc39bad8ec0666befe1b696d4f1 SHA512 bafdb2143e136fb0818e2ffd90b5c862b7181647d6568947d4e4531012bbf7a57b597221ec7056c1b562dfc0c3b5dead26d1a4111ebc15e7863737a873518a4a
 DIST getrandom-0.1.16.crate 25077 BLAKE2B 0cbe96c27e78100c181a064e5fe524efa9a7a267fe60f8336d2ae0125883acd5d575ff17d1d56607255d9b2c30cb9d962026fdea1a5c3c29a5e0760d27c3136a SHA512 c5450c522c07c7a38b326f9a9062bac7d089630219d577ea4b55abad4e0c31d17b7cde385fc43912dfa100b42334e7a52422c55fda8b738caae428c6f9addb53
 DIST getrandom-0.2.4.crate 26800 BLAKE2B 68836e848f1f87f5db77e64314b027bf47517746ddfa7677191ab518c9fb77d9a554cf4d1f9490bce1d8aa22a35c1952b088e200374dfd5c5d84555ed082510f SHA512 a7e63985824dcc8459736e44b1c0c4798a212955c89e5d3a3b852a3f80643d0231c4825f6cd416e87724aab80c19097210b06bccd2006e56115ae94920241716
+DIST getrandom-0.2.8.crate 30553 BLAKE2B 30211bc6a8ceb5ba765cbf068405cfc08842b2521c5850647971f4cb4bc9a5b0a9195ccfbc1461de019eeb7744ee69f934922ff21677259d7b815800516df4dc SHA512 cd7aea29f79a33a0de2a52a0a82f2b57ea8f27908ccfe00a5f42248766df88b225023603ec56d6fc634ef9c1eb67ad0135c90d4c695f6f659db0767e7fda44c5
 DIST hashbrown-0.11.2.crate 85713 BLAKE2B 402f9f1bdcb92631206f9b72923ee35e28db8623e87469c0f1496664bc7185077013ab3c8aea68268241e5b2504f10cddc613a350abd4291050deda6c112e559 SHA512 c21ca68fd49bbb741901f59fed04cc124b8da99e2a4dfc26e2e5e1140637872b344612a01691bd30cc771575c571be15f756c84dde225441699cd2322af2ad6c
+DIST hashbrown-0.12.3.crate 102968 BLAKE2B 492072f27eaec45abd2c5d7405c614c0c6a8221425e901bb6174bfa1688ee524408a618650126d6c683b7285b9bf0a21dcdbff7347e4d8f97bf7111defa1b7e5 SHA512 b3700fcd659a21a6b9b3777c18b37a83bf25542b4e8f2b963779a122f5d22e1742c064cfc03e649583e7dd5c6e90ca8407f8c51a0e8755f6a108682853022f76
 DIST hermit-abi-0.1.17.crate 10065 BLAKE2B 79aeac5f72873a29b53368fb01ed4288224692cc7c55221633775641ade40693bf3fb44db22cbe4422a74d1d6330450110f21b586426b6fb8ef93f116476c644 SHA512 1ed4688f2cc1f1d5ba2f7637e2a9dc230712ce8907e1fa3d95ae374cd4b67a325138a98f2a524cb03f99625775057aa0370f480a73ab20485f0456e2f108baf2
 DIST hermit-abi-0.1.19.crate 9979 BLAKE2B 801e8052b85341cca388ada9db4b06bb1bd7b64474185b2ad06c0256b9e597639bd3dd4ba0053ea010f922e53969a4ab47b90d451fd9b94c8f2324055d151ea1 SHA512 1c877fcd562b15d2de9c151fd6c5f3ea4bf48abcb799e6139a180ffad5d64b632f0000d5707bbd92ff23a0e5f349157b9e0f5be8b50f03680b0fa47315dbb78a
 DIST instant-0.1.12.crate 6128 BLAKE2B 728923f757c1ee4e4a7afb90e460eed81392068961240a538e5c6468e15a0b6491f590fb5f6cc46e6d78901ca232351f65abb9f2f230d8f4983c5e58c4011902 SHA512 fae494c00111c51c840f9dd6a10febe403e27ebb933dd16633a213e9c20f2bc11adeb431c71f8a6713bf88f270a010941e15d83df294e658791934f83a5d2407
 DIST itoa-0.4.7.crate 12099 BLAKE2B 0e4ffbaad504565056f74c3ef560a87eff321a0da6d7a2c8fa35813c207713c22d77080c3b830fefbb21370dd29cfbc6a2807044485b38ac1e0c9c1de3ccebc5 SHA512 c61eb50aa00591af28698b45c528c36bd92088f7cd2f453cf686a1824f4656292638bebc468cf67f903473a5045f22777af623cc0515ef3bf25146b89a7c454f
 DIST itoa-1.0.1.crate 11059 BLAKE2B 5a2e22ab891ec883a90f652c88f924113252765579c03c783e43210fb2604e9e3ccbd4c1571087791be07bb99c4e85c7f85253be831b3ea883bc0ac18a927980 SHA512 8e7bc1e9bf4fc06871b9fe20caad4e0af965477d724f4c8d0e2a3a4d87aedf99f92e4e583a6440ce574d0fb43fc9d6a2e80add52a2f64210c6aa3b402e424295
+DIST itoa-1.0.5.crate 10622 BLAKE2B 0d08db487ee791a252389e40e08e47a649d9eb90faad16bfbdfdfde46366082d2e3561fb8a62da80b122e7771052c50a0483e9618260d094820e20748d99882e SHA512 b90841e3a016a9a68cb090e4bf78959bbadecb3391cba71e0deeb5ac2723379ccd3251ec18a0bd055fba7cb6e71608ab1d7db990ad4d03cf2fd1289bd5834540
 DIST jobserver-0.1.24.crate 21303 BLAKE2B 571e6f18f09d56d8281d2b2d206647666dc6e9ebb0a1fa48f707d3cdf603880b78ac6a2ec2239658a220e70924ed1612dc19ad90fcef883f21972a1df4f67d57 SHA512 0feade0f1f0a458bdbcedafce8fc39f44adeb56772ea94a59f16f038a743f506db1405a7c8deae65a6a5c1695bfb363c19aeea1c82c41c7f4d1101469f32e42e
+DIST jobserver-0.1.25.crate 21888 BLAKE2B 2ecd417446f9eb975119af4ec74c9b3463d061f5348ebca380f0ab9963ccce6dcea8c1671c7701f3f867c7e49d0ec130809a37bff466261a2fc75e80cc01d15c SHA512 0c014e7c72a070e3332463cfa6e9c9095d542a68f8631150bad0efa3706a2d6de0347bf7d1221cc3bc0f3d5f9840fe7188aad949559375403b929d43b4a524b7
 DIST lazy_static-1.4.0.crate 10443 BLAKE2B 25b2e61bbac48f0dcbc79c81d7bf01f2403d8269ecb6be3ea6147bd00f7a588df15a91f44dfc18ada19b21faa71de4637c7d493a8628cbecd0e547d74e616a23 SHA512 e124c0521ec7c950f3c4a066821918da7a9c6e711115d98009ae7c351928fdddead852e7596fea5937a9c30e4e4ce8eee7099b20248b5d6e3b2494b6a6d88cb8
 DIST libc-0.2.113.crate 566175 BLAKE2B 6ed6d35b267ebffd7d6ff5db91309f24a6d12aa8143d309e831b96dfc33dda683405ba64f622f8a12f7be3bf6861b64b3662b9dd1d13aa29a59ca5ee08eebf73 SHA512 9b3740ae39ce8813b2add0f208764a0b91f1132d5ef28579ef26c1817fdf065746ff909eced162d920fd1d91d63d41a9963768e48f4e20dea4ec246bb0240181
+DIST libc-0.2.139.crate 638983 BLAKE2B e92b296cf8c916e10e859722ed75f4790401662ff7aa2fe8ed84ef9b94a00538768be33c272f0881e42da887c8c43e1fd44d061343386216492a76fe5d308598 SHA512 ff5fae517c49c382dee9b1d7479b65b0a818780453e5c00c416847d02f42186e2fcf19a8a8dc5e9cc2611300690c6ad324f9c0f0e8172e913a1b781fb7c0b5b4
 DIST libc-0.2.82.crate 515967 BLAKE2B 60c1ebdf659f1eb37f47a068e778567412bb133526df28fee1d20b3fd58dbe7fee1abbdd21c5445bc1022f2cdc39847244dcb7412114037a0be64f5a2a383978 SHA512 25eaf390acb409d329b9e32008078824eed4ca3a10af851f5097b653793db316419a395910c23dff293dfe2bac051a51871281a6bf2487937121b403286630c1
 DIST lock_api-0.4.5.crate 25199 BLAKE2B c91adefaa0dc3efa786957794b67cf219f5159909179282c13c7e3b68d73a0acebac29438cfcb39b75cbe87bc181e981ab4ff2776134621d8ea92e7a6aaf966a SHA512 d6cd948a4183a73e8b91b9167d551e72dd75820c76123fb0839f8389c7872d2c46dbcf5785d7600ecc4e27f3d214f476585b9c39e85f70500eb8d012e5ff9535
+DIST lock_api-0.4.9.crate 25685 BLAKE2B 8adf5c3cccebdf6aff6ec977f230cd2a208b0b188ef57deacbbc6019431f0ede1a760b2384ba3cb49c96b8a589dc56c0f46a6359b3e62277e7ae1a1c3f586fa3 SHA512 9215381d9bb6b80d217c73a900db43df043b3e939b5bd7a292a02e9ab911cf0eacd8f883d35bdf72b3a0e78df8f1bc3e843ca4c775294c7a7a03091dc1a74990
 DIST log-0.4.13.crate 36015 BLAKE2B e71388a74a491e519a6c4dc048c46d2ec7fc30e68663806084db1bd772b8cbf89f684879114c09865b1ddc37d187499652d1731f62268eb634567d2166147e04 SHA512 22713712656ffdbfee7d2862c208fc7ad1c1c5380601ae9d0cc100fa460902ebd7a90cdf9fb5dccb5dcd17248d5c8ae8b1c53946c1baa8490cc9f06cab3d4a4a
 DIST log-0.4.14.crate 34582 BLAKE2B ddfba35947ae1f5905cd9ecb9eb862a78af6f00ee8b8fe6258b369b140928fe677a02b1b3ca5bdec36ff2b16abd85a9f49688fd5f3d1ba2b2905e7f96b8a84c1 SHA512 796100167663d85a7bc4244cd305e9b3f0a1b1520764b63464698eb136318d0928c40c16f5d19d9f602a5bf769851275bbd48d66b088b0c37be7a6fb62def7cc
+DIST log-0.4.17.crate 38028 BLAKE2B b46be3719fc0a53e50b1f342762e188587e9f1ceb692c72473ce2663edfb8253742d30024e68c1444780ab7fc0e2d5b0601b8ea7228dc3405a9342a57548e605 SHA512 2477d88db42b1d92c30708d88823212e236f613b3465e85eb425f83f8d16fadfaf0352f06c2999a1852102edd2f6ffb10ecb539d8a3b6c48f552a25622ccffa2
 DIST lru-0.7.2.crate 11740 BLAKE2B cbd1668e483431523acebfd5440d9aacbdfd6cdf63bf66083ad7fcfdfba901e604e5ae9e25c4d967e45e24a6e5266355c1f390e5e95aa8d8b1d9cf291bba3fe2 SHA512 b0d873ad0d1173e99f40a95867d5cb924c24cf3a94d221816093767393b2885b4e3f9a1587e2ea44bd8c5263db81af54d8d6dc782f9b890f0e148da38234fe2a
+DIST lru-0.7.8.crate 12623 BLAKE2B d831330a8529a3f4272ffdb5234c9ed7804c11e70a0a94ea592a29c8c2ec39b66d4c5f62d55a0053f6b687c4d3dc4eb31219caa376e5330b4945fcdf7f646fe6 SHA512 75188a6118398870ccb39da113a41e9f791180c22eb3655f3a3dbbad444bc6873406e96f3fead814c154ee97e4a4da14f9848919ec9daeacb7dd2ce808e23ceb
 DIST memoffset-0.6.5.crate 7686 BLAKE2B 9a797388702389076c426052c3d54dc62802d5db8bc5c9c83990429f2ffaec4fab4c7dd3f09cd0704d1ea555e87976563bb43408ba54b5e66ce7e406d4604009 SHA512 11bdd9185b99dfee8e659e051b09ee301c7142a372a8117864745a5085c015436d2efbb1478192886f09cbc562529e209d2e3325d94938a64bc75b1d91d2bf3f
+DIST memoffset-0.7.1.crate 8556 BLAKE2B 1ef270f1c8dba32e66cf47a1835f10c342024762c0e56953f16e82d575250028154054d4c42b1324c60f955a40fad3bbb1c5fced147c11c9a4ad62f6f0e948c3 SHA512 40ca3c4b1fb929bec75bfcde0135037f81a6c5aa80181bc7dd7bbcd9c0946288eea8d23fca95e296567ccb02155ed0f66c7c23644b5cb3e6d3932be9f9742157
+DIST once_cell-1.17.0.crate 32736 BLAKE2B 767fc8f362ce5ed7a9eafceb2f0764a2a1c7f4070e22d1e6e2498b3c841c5f761e77fb66a34b899a75d48f1563f6b9b73b90aa9431055d4e0269c47a1b043c1f SHA512 291d87380c0ea17fb3ffc9fdff8620d2ff55601c06ef65b2f0c54254fecd5b488645c6e94c6026b82071893f4d420491ff712399a782e14efa1e323e5c299c46
 DIST once_cell-1.9.0.crate 30702 BLAKE2B 3d492e64db120d8a23c08490a34d376a006e46b28bb5f0f44c3a955896e6e597c67ced35daeb4ccc7f7748f142d3bf2cb1d81ee61a99dc6526c48730c86a2fdc SHA512 cfdb6aa4bcc0f50d4c37eb69867d2deefa70323a7b607e55180b7d417b7188c4f2889417fd04fc51671c65eac75c7d9e7eda06a87dedb846056def66d14eaa46
 DIST openssl-0.10.38.crate 207436 BLAKE2B e2c999f1f04f7646e765fd0c1b51058136043d84c052812c4fcb0dc3cd3605768a8104d9b3ab9ada3d7d57ac057cc6ee0e7addb6e4f5897cda9236de3402a3ff SHA512 3cdd25b722b036779187a8906c11abefe69ead198204ecb8cd71aab549c910c3992761439336baf82c61dd6eb3258a365fad7eae4e4b7bd1959a979ac6c3faaa
+DIST openssl-0.10.45.crate 234763 BLAKE2B adae6de12bb2f044c091c2899dba4e45d4f329d018b09943aac5e18e5d91d6a7667e47a33ed9e20a0e41554c2a372ab1d5a4a3ab54dec343596850dac505badf SHA512 bf67effbaf5ccf576a062ebf75ca14579db3da5ca456d85b60d47415cdc52fcac0c0309dfa55a909a452cb9cbcec9f132274187596f040339239e1e15f4f98c7
+DIST openssl-macros-0.1.0.crate 5566 BLAKE2B 51116df0f86274435f41b8bfd2b385d5a6464560a05c214445dde5cb414999d200c55e5529fa98e95abfbf26bdfe31c88708ddfa2a81671341792059ea703c07 SHA512 7e37a0c05781da13bbaf4c056c19d032a93820cc324f9f6e5743bfcbfb30e057501af1bc7cbf5f07e3a05191678cd5ae5bc4d6832f02ce75bfb03c027d18abfd
 DIST openssl-sys-0.9.72.crate 56510 BLAKE2B 32a346a5c98fa6de7dda0c592ebbe5144de777ed5fe63b96e5ba1891831c73099e7d01ec2c1a6890150d01a77d909fc18bc961b3fd8ea7c4b85317a79d988e98 SHA512 c1a6a50c4ea30b2bd7da520bc98bbd22a22ebc327d71c12f807f518cdeb10d81117b65df9294ba9391513a60577709723b93e75fc75423e970e9fa552edad32d
+DIST openssl-sys-0.9.80.crate 61687 BLAKE2B afe13340a51b5f7c6242085a0861c02ca20de7ec24e12efadb4eafd55b769f45d0ec4866799bf64bc383e68933277503639f148dc600f8036ecf6c325b745f5d SHA512 e141423f7a7c72d9062616b87163d2e1ded028ec165b3758c52a2e5f8519cd517fb1a89fa0ab3da27e0b47a1f5973772673d8233e98cf4ef79ded56e0363a072
 DIST parking_lot-0.11.2.crate 39869 BLAKE2B 67c555e87b68f5763a7790563fd8d542e126bcb77f91267f3b76c51fd73060a2c32dcb91f9d0db7ea772e555d91576c8d7ff48053a9c35fbd3b749d2459a660c SHA512 526b176363dffa59501c18324bb723a3846ef5b0ff9bf1d890e40ad10e7023284f7c8012eda87520eaa94515ee828d9ef52692a9ed590a55e176383d6d472f9e
 DIST parking_lot_core-0.8.5.crate 32466 BLAKE2B 44d9cb65444ea93fded7e216e3bdbe2256ba1611f5cb6f80d67a01e71d428b81e6c7fc73cb928e2125f34bac0abf4d1da39f622e813dff89b01fed7632308b7e SHA512 c4315df551748d1ae77655e4d9f8c90f911498856e5358009e9e02e410bb8085f006f369188b0753a298371ebd74a5c383d848b65e31b55f3462381308c83a00
+DIST parking_lot_core-0.8.6.crate 32567 BLAKE2B 9943244f813879ab85eae0b9a6bd8f8f0070fe190bc43148a832b217ad546bc97e58707a3987072965a79ae8bc2fa839aebac272f2de00993b8ac1ca0c5fc5ef SHA512 906241f8e2d71784d572fb78978c9550b19af9c4e32fe3b2da751287806d0faeba61f5bd36f7aab026970b2bffaaa1f62ddc10c64dc348eae61bf7b51297ef80
 DIST paste-0.1.18.crate 12259 BLAKE2B ed72b93a27166b0989743c2528d4a41f4b87ffdd0c588557d11a5f37f85d5b8f03ced86150af6209f9fa8d0f6efee705769b26a2f4dc3363f35cc3ac12c0e6ad SHA512 a4d9c75f6f358d6c86eb0a66cdf22eedec180db37358ca2870a992e215d5b389b7991837d8f2769742ac1b093674cb4352ef9d6754a249253472fbcb3a81c001
 DIST paste-impl-0.1.18.crate 9451 BLAKE2B e465c4c7eef44d02eb1b61b5290090513607b452f4adc11487947b7047ddc44905d7a02df827feb2142f0e74583afdd9648c1c66086f10e1bd861b663200bf8c SHA512 c635efee46cb251b76ee9427432f81a0d944cdf1d0a95693d824c6085e7dea7e1e3f48c692ae27946f69e4e78d8080220058acf98e5c8a78482007349f8a7a4b
 DIST pin-project-lite-0.2.8.crate 27847 BLAKE2B a9f192e644ee443904becb1ff5cc2179c7c9a6aba5b64d2e9998f9b4b8f8e95f5d54b46963910756832d0ab1b55bbc66cf85edc94b0d04e9a8b3f4ecd4719602 SHA512 9ecb86d550f4440e19eb16c6a9a418b5c4ad859ed2449b02f77d4b07b1e3e3e6b6b7ffba44a358958679342eb21222992fe6fdfe6d9bcb7a699a3e5816f1bfa8
+DIST pin-project-lite-0.2.9.crate 27713 BLAKE2B d6985b5add432fb6287d1b0c9fb0cc91a195f82c5a748a9ea430e4ba884717ec7b16d730b5ea62de5b2bfead1771da2d115b3776e12e605f70f2538f374a28fa SHA512 cef0b77233adca712db1183f780732ea577cf1b27c2643de221d54c837c75ce749f907e24a967be7474812c7682cba613a3fc5d553a9578a1b80569da0e562e4
 DIST pkg-config-0.3.24.crate 16489 BLAKE2B d0bd099bcc39928b6758c22b14291f2dc4f4452c0837aeed8c3ff6086cdcf29518806e4f3f379804c998d752b717a26d5c0054c071c5f4c224a3e03cc6a3ee51 SHA512 be22c609b3d5a9a38bab1d30792cff397cc908f1c53fb2da68a9a7d1258e53ef64c1c5b26d840b0ed1d35b307c98ffb499c82e5796e88be0a6ecc0c6f3b5dbfb
+DIST pkg-config-0.3.26.crate 18662 BLAKE2B 2ad92dfdc8ac0414b12a61dd30ea4ac5f142bbb55d0555ecfa3a53e750367e1b11766a693ef11f8cbe5a2ddb978327632458b2bcf75be7aa8f973262033349ee SHA512 509c4d1494cccc20de6a62d9d037c63ff77ebee8d907747c57ba0926d177b08fcac0231ccdda14511b453deb0b76ddd10f8fbdf63ff94257d72a12a889546435
 DIST ppv-lite86-0.2.10.crate 20915 BLAKE2B 83a075381c24b2b89f5266929f5672ce051c3781c1a199252738dadbf471618c8b87452ce84e1cd87a9eac11b44107002894f544091210cc7e77bf52c045288e SHA512 c9941052e504b9b310024064026e4b1d540dd877705ef450a833d9ff6dee70ba874cdad68c46381a71d5b54482cd80b3dbb8e0c225758fd339069031a55195f1
 DIST ppv-lite86-0.2.16.crate 22245 BLAKE2B 03cba61af42dc3a78ab8f6b03d833c028b7ed737e101b1952467a1e19706bdce6c758eca4ec7d575b2f61daa47cb25fa1d74039b2adb0dbf949b66b7aff3f10a SHA512 264b916f7d1bb6f1c0c0d3cc45f40b72b638abc7174416b49241c3663fe500409509ef6c8241a24515a21a20288c2ba508035b6b37972e4ae7ad02ad19118b74
+DIST ppv-lite86-0.2.17.crate 22242 BLAKE2B 48c4a31a3b555fa37072c4de083580bb769747c7668748541af472778b5b58c3e7ab2b5e178760f542f973774f09910bdd4058ae5fb9d6b10c103eb76cfd0d3d SHA512 539d916e7e5869d832045c1aa88aec519bd000227f9b01d4dd0bfc9ffb640d5f5eb21b05eba718174773c97192a655ad3cb31b53ceb914dd19179a6699b3583a
 DIST proc-macro-hack-0.5.19.crate 15556 BLAKE2B 98c22fc3e5f5fa8b6f44d15de42b6ffcc82ba3f98a07ffa48bcbc5d3abcfca6af136c5d0d8c7f1ca34261ed8f8c9c17a394231f97a4c342c81aa7f8b9e74b203 SHA512 9e4cbec41056438287f5b23086264c86e2f0cdc193064006556736377b2954229de13a585149b9995002c9aee3334ee2a80ae4afdcc96cabe7ed2bf718476952
+DIST proc-macro-hack-0.5.20+deprecated.crate 15045 BLAKE2B fb7b9fa57ad64f2920e801482bfccc762bb7b2c8c1db7da32f393c7b47414fab37234c8a408a4ca9d7072a541df22b07775fc509f76f352fb6be9fe822f84dfd SHA512 278e786f8e0c93e346de900666b3d55d366324167a2e5e553565870c4444bfe661cf8c151a29cbd3176a4905ec49d69cffb81ae1e4a129f30404f930972c4b43
 DIST proc-macro2-1.0.24.crate 37716 BLAKE2B e2bdbc7cc9ea254529e322f6a2eb44002b4994fc4a00df32012f66740e8e73ae70820dd40b7fcfcf024f3c7784ab9add5cc1db37f4c72d5af5c8f00164ebc145 SHA512 c3d23a5136c55d734084ce1d76d54f237fc1003074af102c2ad96d851ac496ffc7513ddc505a68af4051c9d6de09725a0ecb6e76ebcdd77a1c056f8f9242c9be
 DIST proc-macro2-1.0.36.crate 41411 BLAKE2B d7d99aed41080b65680736d92dd027e21c9e9e0b03601915c000f5dea8f2b2d9126b116af32f2fb04b4fa407775f0131423055d0b62fdbfe87fa4ba7ec098beb SHA512 f31b0f2356af2746321c4f808ac9af87d21a5657c103ed6bc1383855e40caf49246cc8ec1edff58eacf193424abfc2163148b7298e527714e65e602f14b2e50a
+DIST proc-macro2-1.0.50.crate 41667 BLAKE2B 6ee76c87013226881a0cb1221f449b052feaf1b92fa6f7a3aa82420ee1881713b8bb71ac6cebff67fad436f5c05b2a8f601a84ba361bc08a06b0b26aec0e11e7 SHA512 89ddaf9b994026519e5ddd618ffdca1fb39d31904a13229c1496dc862e2a259086ed9554821ff33f73adf6df45f446231217fa7e22922289fe6fbd71e06ddd2b
 DIST quote-1.0.15.crate 27281 BLAKE2B 5612633415d30e26e646a968ab7a64ecdc978b02efdbd40dfecf5afa489c21bbc6a9c93ecce2a2b45519db6be3384bb372cfc9f597846e8399f7c2b57e8b34e1 SHA512 76403bfac4e9a018b29ddf8f911135206d4fdc266db38a95cc92f6159a8b436d39d64c4ae6c3fd16ad83117270ed329b6a151d589cab46c75443c57b533dfaeb
+DIST quote-1.0.23.crate 28058 BLAKE2B 81c483fa26b36b5c4dbe85b386a74f5bfeaa854a99c0d678374507613da916a60e3f5b14d4a4d295e1c9ef0413fa1f16447df8f19a9db8cb0485b7a5c327fdc1 SHA512 3bce6846dda94d285de15771549099e60df39c8395c498b372c90a240f77df31d6d9048127913ec1c7ed8f3a189470ade1db2bede406bb00fa715ea641ec87c2
 DIST quote-1.0.8.crate 24997 BLAKE2B 53f8d9e363e2697b580f4bfa39257a6ea1d1899f6cd73f96233cb476de1aecd0c4bca9a8856d128af81ae0f428be71c19b0d2e4816d856bff20030c4cc9258b5 SHA512 448d06465d93d384bf31b0249fd143a92edc4b9be8bb3a8c1a86366241be6469c3874dac98acb3810d5177b106d7307c7d9e879f91cce2e278a319ef1935577f
 DIST rand-0.7.3.crate 112246 BLAKE2B ecc7c1bd70ac874c03bd8b7faa3016bb2d5ee5c19603280a12a45a81598f706e445971ee081e6ca410ab6f0f5f7a06d9315848cd556a2d8522a82024f6ff91e4 SHA512 f9b68ef9446f1ca2c8092c50990f15c1b4cb5529eeeac4df8d69755e0b7253c663c587775e7cb0a7298c31edb444975dda34926759306541f6d43d0d3cf57b7e
 DIST rand-0.8.4.crate 87406 BLAKE2B c09358416d2425a8243b623346fe71bf6f03fddab1a23fc752f4303ba7c241b3606629e4edf0ea720785bda0bca534acd675c2de079b78eac3df24a1ad6ba654 SHA512 77ae0e988e31e12f7d3f2c40814f930eecbc94c4aced827c337be78eeeabf39fde2dc5c4fda059afdc01285ff4afe30393c32694377de004feff16207606558e
+DIST rand-0.8.5.crate 87113 BLAKE2B 516f26bb2a969d0d79e957818133f35d2c0b4d9f1b401098ea23c5b80d27599e842b9298c0c5e46e2a6cb6953857bf8a9fb71ec9366c5ce6708cf17df14f179c SHA512 8b33a8988906ba5e2057a9a84bdd11f867a5536c22f5056eec59ed4ec4e3a6da2fd773da4c0510d343762e5a4ea0f007db4c4a7cef87a47f90e36c1a84d86fb2
 DIST rand_chacha-0.2.2.crate 13267 BLAKE2B 7908867ceac98243ade22e1b38f1903fe0249324484d91c948a5058a1e099e5213f325c5ba3400898c8319158ed69f4ed064164f235470856a8191bd990d5a10 SHA512 1e2117442e4ffdd834dcbf0ea1829e73202c0ff9041d5969d81a59330242145f2753f2a56de2fdbff65f26cf0d227c7d08b2094ab2f946b764aef88106a6ac84
 DIST rand_chacha-0.3.1.crate 15251 BLAKE2B 645771b2c3e274f085e0837a20306b1d59f6e9032fba8eb38a6d1b30180d15e2f89ffa2a162bf6358da41e030098242d81e71dab4321980d0a4f6ddfc2974ce3 SHA512 8198c580b1b9b0429758ffa49cd8138fa3ce724f0dcf73c767ea7e55611d6a2e4c7cad9950896510def500ce4062b594386c947ac3d89425b4e5c9b04d0b8075
 DIST rand_core-0.5.1.crate 21116 BLAKE2B e74791f941a79971f2741172d489d546373c9abcb0dfbffcb7b97b858ec800b2e0c97df4ac636f3aa1b8dd6c14685edf317336d577f31b5c6cb7d89a157e547a SHA512 4f7500b35e165e6c817fdd67a50745d5497d24e554bb554705097e37258751e8755c4d6b8a69fcb5e1977708ba78620bc35d640e4e018fcd4e88d9dbdbebdcbf
 DIST rand_core-0.6.3.crate 21938 BLAKE2B 7c73e2da6d423c68dbbca31f6528bdb3f42fa39b30d0951ca7058e05ce16ef09ef5e047697b33ec17720314f934512c0907aeb892df93d63abd8b63eda2b50a7 SHA512 0fc31f96ca8ebba8c179367de01458e909265e1d627ec0c5620be7c8e83d2f9570471d6ec2cb2bc4bc531505b02fc31f1165708cc1357906791c87123b06ee87
+DIST rand_core-0.6.4.crate 22666 BLAKE2B 8b6b66d50aade877f2779c006f8038db450f808c66d73d79efa66c4178dc03db06f12201bf0e7930181c4b0f4030c49b20cce6eb7839763cf2217cad9710789a SHA512 36c67eb845aa2ccca49d6d680f28d418229bbc5a050729e487fe6b9f9f384fdd7b8d67fc6508b90b79ffb3c26688e72feceb3ecae57d3d7f59338aeb62296f79
 DIST rand_hc-0.2.0.crate 11670 BLAKE2B 55fd048f2524cecd4f0e17927a81111e3070a8cc6a5b0234a46445400ad5527194edf8c91fb5ad6538f4958d53044ab02424f61a38adb2931e2cb7568c458ee8 SHA512 bca185612bed5cee4da76fb68fe854105da276f5bf2da464e596d586b925df798cc692ed881e276ab77c36b4b0551930966c93656be122ad05899d87853533b0
 DIST rand_hc-0.3.1.crate 11891 BLAKE2B b3aa810638390eea4245ebb711de88ccdc2a64350a5c6e14064fea7685d49746b4b77215dbb8374fa7a6cbc2cfd79fb553513d6e551acf64586d8303f7d4f3a0 SHA512 582bb44b81c27e698eb57c6f06444b8a7c9d3f7ee73f4e14be8004c4bfd3bbfd9795c69f7294b5e87107e86b90fa3e91ad080964474af81c92705d356e43fbb5
 DIST redox_syscall-0.1.57.crate 17087 BLAKE2B 88e3ffcfd752e757f8fadfd4edca367f9185f09e609c329bb36f179183cf103dc182aae701c14afb717d2b4c3d72ba307b49fc671cc97aa7c9d03df1a7a1835f SHA512 c6e187087060084b7173ed0d9d0e982e4259d4f76522112268c02ff20751382e3bc8e119da6153170f5c54bd5b9cb028910f2f85c1c842099205dccd44659184
 DIST redox_syscall-0.2.10.crate 23582 BLAKE2B 7253dd96415e7b70df488c208d86c250c670b1245ac6573a59085faabbde9e33fabfacd233e7d737e365493db14008c180274b41ea0a4af5f6f98eec666a873f SHA512 ef012eb4bffe32119e50ecdbef4cc31f6e84a344e94f026484fe4e2c904f94053a8b6249fb6bd8ada31b3ecfbf0096085283bb68aeb62b1b01b57f35794aee92
+DIST redox_syscall-0.2.16.crate 24012 BLAKE2B 9497a52044458b1435ea16e86ee072e379b6b11ee31602ea72d6b6072a4a99426f409c2e58108a4e9c36dc193fa49c83951e71f4fd4e158eafff18c594dc01ad SHA512 63b5d876baaf99f5cf737679bc6ac7a9e3d8a41aa93f5c59416ce7e3841e2513bff678773553cfe62fb452707f82acc384ea63aec932a31bf94679cd1caddd27
 DIST remove_dir_all-0.5.3.crate 9184 BLAKE2B ab7ef94e0230ddc9b363f038254a180881bbc20eb04a254f97e6f71ed491c99ba1c88f5e85632d450243882a4a0df63f3b8b183bc1fbca9caf30ec23d577b1d7 SHA512 50417d6d8a33912193a1ed37eb72b47431b12ae65d2780cdb7080c3d141e63819da13751c3fb737685cea322f70b36d413389c3dc01aa12b4dce615aefed0e2c
+DIST ryu-1.0.12.crate 47070 BLAKE2B 02b0eec6bf266b7c482aea15ff83de4bf3cd6f607f8cd6f17f1c3ffc60cc64b62b15738907b4069f5816dd81669ed4f5b00c4bbc8705abaebe3a0846f56e8e29 SHA512 070f0b2b52e47cc9a6d8f003439d257c27aec15ffb030a92481ac22d5052436156e25127ea3ea7986cc514d2a7a924f9328710d743c216d7b1379beacae79829
 DIST ryu-1.0.5.crate 49570 BLAKE2B 3bfba4a5f290a429de7ac3b86823b2a973f40eb6f48c15329173d95964d31ada36f2618be4b36774a03f97f2ce61364900c6a3ad5465a294e2df311a1f4104ed SHA512 d1708ffa3112a684edf2956b6730ead040401d38f1457cde074eaaa59c249007dc8b925629e7f6df89f7ea757e9d0826649d685cc8ede0a04d50296048bf476c
 DIST ryu-1.0.9.crate 48391 BLAKE2B d5c1035ffd6340d846009953cb4303fb8c250a3a6ac60b51a2fec77a6cb3648524420064b7380fe31af33c57011f950f6f739a1f0114196675b3b5de4b54efc6 SHA512 4e7c2c7ec73da1ddb32e18d36b8159cb4047b9f4feeb975361e7ba68135e671e11419bb7786df789f5d08e5895231d2c98e36035b515f2c64ac40474d08905cb
 DIST scopeguard-1.1.0.crate 11470 BLAKE2B f774eb90b7d3ffb2efba47518e9d1dead4017ab4b38a4bd74914daa84a5af4bf9eb63da0496e3924499d79cd0439c37447aeda4a21226f95645bddcd6becfabe SHA512 368fa5726df8f42b599993681579a9ffd0196480ee3cd0f9f671e8493f3bedd1e1779bdf2beb329e77e0005fa09b816e3385f309490c0f2781568db275d4d17d
 DIST serde-1.0.119.crate 74321 BLAKE2B 334922cb9b3115a929c7b32ee7ca3356de1f7cadbda224bffb7044db9ec0a6d949c415e10ffc7cdae356da749e779185072e965162ac036987ab997b40cf761f SHA512 7bce4d7c836c3d65f8d63e1200ea28e11f7b43c4c72e3d9576e2493699b2cc1dc88908a1086310a46961f6cf2e1191724f0a6f1fb137030659280dad434a451b
 DIST serde-1.0.135.crate 75790 BLAKE2B ffc2e842f4c0737a1d66ed7b519c9e9abc4fc8fd04875c07874a3fa4dc5bbf94baa6dab7633b82473448aa24b610ca893b52f416461a9947dc9c21efbeee6813 SHA512 b682409b0986eae6e3ea898ad1b917b672ffcb7729d624e592f653888f1f6cfa3de3fd5d3e98a288006b2a84aed902b12b742894412e2e995737fd9f160eb713
+DIST serde-1.0.152.crate 77091 BLAKE2B 89c01ce359042ebe6b1b64ea710580886f965a98e1d6085c58a75269a9b43401e2cace080c4c93ee51982855fb7e2f09fdefe9bd237bbf30c5537f3a4258283b SHA512 b47bd58fdc1a81d96cc0c9d14c8b19153b6689e893851975b1d7c7010c4448750e7fa09056dd4f13ed475a4aea2a3950952ff528832976919a6e78504a37bea7
 DIST serde_derive-1.0.119.crate 50617 BLAKE2B 71520b2b83e55129b901876fcaebb4e7a1717f89d573b9b7780a9a27e3f50915eafa9a0fbd803af31f17ba2de7e7708b8357cc915827217ebb0f227f2632f087 SHA512 6fb88db514c30f4706a1f535fb0997a753601e2f6a4d0c7546b50b9d5febde4b982bab172101973232784cb8a8ba54ecf8584ac0f980f339b6578bfab41001b5
 DIST serde_derive-1.0.135.crate 54774 BLAKE2B 5b21b8da162a0d86cf99aea3952ed6e884e46066ce781c11f1ea54116f046fecaee12bf160e91b0d5f00ae901db0c5ca8ddca7bf2516299090463a93d2b6c560 SHA512 0507cef9242cd48519d97db9c189cfc291cdd8ddaf664badcec32f6cac409335c57e4e8baf6de8f56b5a9a385ca1dde9eb8dfb6837d5270a36775fff30f717ae
+DIST serde_derive-1.0.152.crate 55586 BLAKE2B f133c6cdb87d435ea0c05144e685047fec22b93df7c61df4aa139358c2732326c98d0f62fda629da0f648aaacfc9d6f312813940238f45b359546dd435e7a516 SHA512 2f4dffb5671b4758f0b7dc0939f6b5cfe3b3ba02a53c62c75b5a0ec89d2db26bdd95f3e269d1fd4b07ec921bc0ca5f0741c26fdfcd25bd6532ac698c6c701e91
 DIST serde_json-1.0.61.crate 114887 BLAKE2B a06e2b3572b01b57d39a7df4d4c333408594cfe80b6b6a810f8c36479550f56f085cbd7e693d3c27f307bf0b49eefd34f55bef1872a4a0318797e4b9585cce9e SHA512 ff626602b547fa8e48c37251d2f6c91633fd45b49ed8211e66a3174f52f9aafe8778238466e7deb5d5477ed23eea0091596d78894e0967d6978f6737ae115891
 DIST serde_json-1.0.78.crate 144364 BLAKE2B 840477a9eeedf75834f18435fc8d6d8b8b35cf45842b6f42158afbf2404293a31b80e07802ca3b7215d37335db0d1365709e5b1ec68c55d6a47317e732779e39 SHA512 cbef082fbf633b9eb40056c1d47576d0233087ac08f76fafc2ea3598ad730770365f46bd0afd1bec6e6cb16c7d66feec1b6d8b0f2ee46db69a10e4d5d76dbf01
+DIST serde_json-1.0.91.crate 144654 BLAKE2B 857f25cb43f8153ed4266fdc38b0a426ea04edd9e7954ceeab384729abb51ead1378a819eca6ced5cf20ed0cf237548b4c81ad507e3f4684aeb9bfd7e4958684 SHA512 b0bfa3d64fe9fb0d09ec8dcb6e41eba75ad0f0c4e34e0ffd5e2a3230057d7499a57ffda8c1615bea5195ef398afe414f3b0a143a39865123c1c5f976ea1a0337
+DIST smallvec-1.10.0.crate 31564 BLAKE2B e3e46a0781d3a7892a739b001592d462d0704f010363984c439e3fe4f75aecb9720648aa1e9bcc56bb3be848dd40cee578212439f78f07a807c9441c3c3e0147 SHA512 a09110184582dcc01d7a0d3fa8f74c17bf726935126d3654667b8e9c4bc43ad16ccfd8fa94feae7d9b31913aa7ee030fe5936e4b44a36302b6ce5fe37372a7ae
 DIST smallvec-1.8.0.crate 27992 BLAKE2B d02897eb4d3901805be86cafd5d3dc6768b31c2ee4d0a9d7eb455e2a21be2864ea83589f4ffde102dbbafb66e3c197707af770b5ef184b8e244d992189644b84 SHA512 17687cfa6aaf95a1df063adc3a412a7c41918a0d003eaac90f7d9e859fb8fa1d652eedee17a4cb3aaae9b33a2043f89e796519e3a7a3992b292f04049bf80b0c
 DIST strsim-0.8.0.crate 9309 BLAKE2B 40a8be506c43ee1ffe006ddc7dee98c3d418bdd205d57b78f5d1e4c9312feb57e1eaf952e02d92d4e0932db240c6fba45beb06ea8c4fc6de1cf1faa8b6a3a939 SHA512 1d55a8d946cd55f5f37d06aea536549ded95739fa58c0f2da285a0041154c181f663682bdcac643aa198b3e762d694a04f058db985c62ebe22b5c16327ba6d34
+DIST syn-1.0.107.crate 237539 BLAKE2B 5a65968806c72fedf69638661f827a0426b9e49c2f9a5e5208f986105f8facca2bdf241f92f74bde790e9a0dd68240d4827a345a939c087364360e19a5cbeff3 SHA512 58132adb76643521a6a9cbc0316431318ac25f8517bba3cbb98e7e28ed536f9e24f643e898fa21a2f74cc8c1aeafaecf9b4199b23048c7be8c0bab2fe3aa7623
 DIST syn-1.0.58.crate 229250 BLAKE2B 28df7854962f46339d1f993d2e1dae4c142731c3d7f08d03015ffcbf7eb307c1da9d35eb603d6efe653ff80bb0108bd5faabe1d7c68cec9476eaa0b710a27586 SHA512 b6bd101a455b77c2836384d7346f79b651f41c7685667b64032905cdd4026ee673c24de16a2acb2b8005af743a6d1b40628b30cd09c8454a39cc7d131ce71487
 DIST syn-1.0.86.crate 235126 BLAKE2B 89973130279128cab73443ee36c8e0d7bc83364ef91d0f086a40c136e26e612428b867a54a1da8ee5b1778cedeafc7403180bd84df2c21017ad5bb76bc0c9138 SHA512 1462dc9fbf0a89b023421064908c7e349ede23c986eddcb8d260559b5e1346fe0206c88e5317eea7e8293ea58b94466d486fae3aa57a1dee4220f5431b1fb68a
 DIST synstructure-0.12.6.crate 18429 BLAKE2B 7666cd83f82910e036e5b57600dec9a1c2e559453ccc2f1201e2ee4ba64f2ee62cfc1046ded5cae64dd183967b9d71cbfe4b60a88bcb93706eedd0c4ab69be4f SHA512 6ec5dd7ade904fb6d79c2be595886289846e064b8c4100f780d8adfcbb41e6ca67f4b1d682212f4673c2169f889a042049b31161ec3cebc3f399751124f01f9c
@@ -88,20 +128,37 @@ DIST tempfile-3.1.0.crate 25823 BLAKE2B a34721369923771d5f9a2fc64adaff2bff41da97
 DIST tempfile-3.3.0.crate 27578 BLAKE2B e98c5ed4c59b6ff411e89ad4eb529bbe15264d6744edca8675c89bfb4397fbbb8da60bbc582da24bf9953afd9bb17cdb22654d933468697e9fa9e9903e6a7c77 SHA512 ba6faafb2dd56d694efe424752099a2efb50316afc0a4db9fdb7620ae3f1a31dfbb2a7b41724878cb977fa11f7568a406bd3b6a4f7cfc0b88b86b2cc616b953e
 DIST textwrap-0.11.0.crate 17322 BLAKE2B 257428908342774593bbd3528fcdae710712ff54e8a711393a24356d8ba0e16e466a4b20c05f942c48ca76b3b5b5aaa90ec202f782cad892caa8b71ccf124da6 SHA512 f5c0fe4f28ff1a3a0931e8e235b5157a45f67967985bcc752418c5ec3481fca44a8ae4800088889b37e8cd0533f53d3c456d5ffd19b767b3f83a87b49a2e209a
 DIST tokio-1.15.0.crate 540198 BLAKE2B 1da03444dc29cc899679d06a31f395f433bf07014883814d86f495506eb8f6d66ea52caa52b47e09a65f7f2c8b2be6047eaa51ca9bf555d3cf73aef11c14c656 SHA512 a6c263beb37b22b19b7bff10891a53bbf56a49085eb1d6d12f35f52ac9aa6619d2c9a3f6d3ead2043d116013c0b5dc70164331e931b68bdd5a36273115ae06d3
+DIST tokio-1.24.1.crate 625490 BLAKE2B e83d992e08392136016d832a92a69cef0dcd19e2c66d87a21fb4f49fccd6ac973af70e60dd4487546762f2489bf2e2d3e0a02fee219505c94d0a69c90c0de803 SHA512 6b423a36ab8eb27ad05eb059833da5399c9d3e0a9e90c1d2b8263538764ac839d5fb61b2b515e9ebd1692b7defe84e0321e0b552091e488f1ec5b5e0117787c2
 DIST tokio-macros-1.7.0.crate 9261 BLAKE2B b22228dadc1e4158666a4102d582c2d15668f8451e6c4959640119408d6d712de66813fbb2c26ca692d7f935430b54fc14c276be7e11f869dd70e2115da4be99 SHA512 30c57950d4477a92043683fbc654e8cbc23e87a34276ec11e33ee094ef3cab1bd3e5b2574b3b65030e04ca937f9046d024ec50506ed4eec2ce9ef4d295e7e8cc
+DIST tokio-macros-1.8.2.crate 10071 BLAKE2B c35e8043195b61bdf3e863f2224c41e3fc5ae0b32b02e53c2bebd36ad9f486e573cdd0e15b7a49e640696edc050e0d8dbfb5b33f1d12887a8ce418edb80abc53 SHA512 753888eed2d7a39e616851918b707c7634d30a54d8d276414b17ce310a2a6fa586bdce4f29b4fbc23f175654caeaa4b0589e571e2a346d99e948297a80f24994
+DIST toml-0.5.10.crate 55193 BLAKE2B e718f93b865c4e8d17e625a753776bc62a50f98d6f83e4323268d65547b6bedaa90bdfef8b0ab9ce42df62c5552939ff020402bee9aeeb7d883caf583438995a SHA512 0d438b1752b815445db647d7bceb620ba7e393a29dd5154f4f20e0357e7744c69e72ea3a797f8190bdbb72f413053621de7c8de88d30926a489526de440af2df
 DIST toml-0.5.8.crate 54219 BLAKE2B b4f9f563e5ba4574d4f2dcbe244378a2e1e984bd9fbbbfa5a06bdd5f8b8d677394f0db9cb8696f6936c80a52caa86b1b3ebaf3885c53855af23f03d318785f19 SHA512 26b7901ee4b7cbb4cf8ea57d365a99ed05e0a76e73452e47d4bcb3b4eeb7bbd393c13eea9ea33dc13622942efcda39acdba9425b74b40c920c9f19673a1f2082
+DIST unicode-ident-1.0.6.crate 42158 BLAKE2B 6e4ef61fcac69b4ccbf743a2c2f857a6ea9fcbac9b9890f5b7208cc0732c6892aa5889b3030e87c8c29ce4ce24ddb7adec6bcf47b7aefe9cb5d19f920f12cfbd SHA512 ee1dc78fe535f46bdaf3e19dd8dfc859bf3133d9271026cadf626a07ba586c39caca4e45d905156a6276cf852f9cebef196b2229c3ba4b5e2b26c956fd6cff86
+DIST unicode-width-0.1.10.crate 18968 BLAKE2B 6174e307fd3ee290d0a5d1d31233baaa5315cdb73f19b8580718e9f9eb04cfd3aeaeb474af1e50c4b9fecc6fc777937dedc527c9dc9ed14ccf42af099e591f31 SHA512 9836a8d489d18ea1ecfe1957ed6d5da7dce825e138cd1848aef093fa8d2eb83fcf01eabb1a2446df4f5ede4e67316e9e81b5d58b59d4e8c5d67870e8fa5dca3b
 DIST unicode-width-0.1.8.crate 16732 BLAKE2B 5aa7b87eef1322e4151a3fcf981ade311b8fa030527d7561815950e58d3f15156163dfe34da6a708c37dccc3f7652bf7fc2cd899fe8bb0118b67c4113ff3a2d2 SHA512 0abba6da6981a2451e01d93bbd47652c46eb6fb07cc0214f33259fb29945bfd5ee2b302e883ddca8f68e921635f222701b7310e7da2a5e225f854980d1e474b0
 DIST unicode-width-0.1.9.crate 16745 BLAKE2B 38d4b92e47a284d6881a8073089be59a73d82b91efe5522f55be977f95f479890b6c02cd519544729f1b1e62eb21bcfff8c5f5382917f953603b760e39cf1ea7 SHA512 0f5ec46c57e3b5e50cb8430c89db8d9c129e80ca11a9c398b5312bfe95001e19ca3efbfeb01c3ac09c4ce7e26c6ee1f352f7e114ecef78cefd68c54d2d50f5f4
 DIST unicode-xid-0.2.1.crate 14392 BLAKE2B 7f8f91b9c4df55f2137b754208d4f2997a290acfc9393ee2dcda8195eda25cb342e56ad123f56bb298d93db5248a749c18a982423c9a0e85ce93f7a1eb55d289 SHA512 91e862137e837baea82829431cfed36634fdb05339f00c756eb5a4b429ef0bb871f5133d11adf9a023fa22168c8a0cf194ff3669779f04f219d48fc4fac339d2
 DIST unicode-xid-0.2.2.crate 14955 BLAKE2B 6c6da49ac08dbd8b3248272224d6bff96b9cd1f36029b1937a58a0b929c3a48326053305ed49e73edd70f572f5abbc4817cedc899c69e3457805ad056669f6af SHA512 92ffd0dd34e3ca235ecf110b38c447d3ec1faa23d76c112457f28d432f92fa6b5f428bc5e1bfd278f361f55426dd96e19ecb0d3eff6cf250892f069c52bd89a8
+DIST unicode-xid-0.2.4.crate 15352 BLAKE2B 80c327b39f3b8f2cdb5747cde968cfa1efe7b65b6bee9136adc881fa19f66aa5b1010d9d08de55a61b322d665b5b0cb0395e9ac471f6333c40d8dca5d97e123c SHA512 e67bd1258e1961807d9d5fe583a89ab5b82b2a529ecd32cadfc79aa5331380eb4a2db9fd96b74c8eace47f2f29021587d69bcdbf79f7e2650e92a25f7839d03c
 DIST uuid-0.8.2.crate 37909 BLAKE2B e6ede5f8ae05572d4c55909eb3fe6946de6f10ad9bf71bd357739bc01201bf93f59ccbb3dabcbfd7b3e54b0c98c3b52d21f1bf1877b7283c6df623e9b2b3f33f SHA512 5a1f5ead9a920b9bbc120c02049c24b62ec215765e486d3a15c5015ef49fa506206efb737e6f6555cf6e2eddddfe55f0ca1d7dcfa9aa8bcf3e0ef570a54fa2d8
 DIST vcpkg-0.2.15.crate 228735 BLAKE2B 6b6bacd9a7fa38919241f45a97f58cae957e58d3aac99df208a26aa718e4f1644f4ccefa31b09151e5c1952288e0e5837c363918b98c7f55079a948a952c1c50 SHA512 7322a21e8811b2fe4e79e09dc321458068ecdf1953f05d36233f3278ecc0b1dfc64194db7010dd46fcf692285f42475beb090c6c6cac0c8f9fe0eb5c770e3172
 DIST vec_map-0.8.2.crate 14466 BLAKE2B 8f109fbff19604b82ea2aa61c952e2ce9b5597ccc8e1ef4e847648e2de08dece8c4debe92889edeccb8d393645fd0b62436b49d236ded7ad181c4a51239a9539 SHA512 4f1ef59bc2c437e79f1f84fe021bce5aa8ccd581f500f3d5776913d5f17d45b03ccee64f5bd03d47656318cfc9344a1f4311079d471fa409a8e4e94c143973f9
 DIST version_check-0.9.4.crate 14895 BLAKE2B fa1fa4008af165bfc1fdbe560488afd9d232cfafee94104fbcc4cbc52f234849bff9ddfa88109a1ac682f6d9c1d86b0459893d223f64e65adc08966aaf93dc89 SHA512 b172dc9a3759a4a683ffc39b9a40b03b9974b626a088217de87090466cef695226557c226cf3e469b2b25ee7297b7eb0d7719878cab42457f80146a81943c0c8
 DIST wasi-0.10.2+wasi-snapshot-preview1.crate 27505 BLAKE2B 4eb8644b945633d6e856ad80dd74990be19eb6af99823b147163384f61d471e2d9ec054d78a7064072344be53783e57073e8fffc6d5555c149b4834a9bf31dba SHA512 06977a294d76369a3867c45abdd8a87ea5c84e5a3681075ba0d14af1aee3114ff24495c7e7f7fe1e6e42230e65fba0e062898e69bc89e0209af62c2d14094ec7
+DIST wasi-0.11.0+wasi-snapshot-preview1.crate 28131 BLAKE2B fe501889f25d65e2d032f885cc50c4f8bf7dd70fd5cbc438de349838370d8699e9627b0a4fc76030ea9fe6d508f41d0c9928a875fdbc47e73bfb17241cf7b155 SHA512 043500ab28cd9cb779475255da5d109ebab7fccca72b64873dc28d77bc5a157ba8d96b9e8f05223b5b36c7089bb7b4ba87657fc69bac16b78972f897294a865f
 DIST wasi-0.9.0+wasi-snapshot-preview1.crate 31521 BLAKE2B 716bdd2ec46d0bc9911c5e5e29fc783840559931b2563d8619675fc11da9527ddbe653a0f1ce0b782ee0c5f7a3131aba2b0867d415f003aa9c2389357569e7dc SHA512 dbe641f796ee3a5daafcaafc911ecc6dff170340f477c2df7a61fb4858a85aefc2637c9e61973ecce66a987aa8e08a736273a4aad3ef47eaf61ed4268dbf9c47
 DIST winapi-0.3.9.crate 1200382 BLAKE2B cb5799749ccd935ea2d7068d953cecf19f543d9db7dc16ad4584bb7005373ada34937a3ced7225544d8bc765da599911c7a3190efefb3a25b7c1bb7123b4f673 SHA512 ff8b7b78065f3d8999ec03c725a0460ebc059771bf071c7a3df3f0ecd733edf3b0a2450024d4e24e1aedddaecd9038ce1376c0d8bbf45132068cf45cf4a53a97
 DIST winapi-i686-pc-windows-gnu-0.4.0.crate 2918815 BLAKE2B 4d357e4d30f9552972170d65b9a5358b69c46a3e772fe05efc22f3d4ffc1caeeaad7aacdc7abd503a7ad0545f8bd7d22bf351dcb6df76f812fa4d45c34d65df0 SHA512 a672ccefd0730a8166fef1d4e39f9034d9ae426a3f5e28d1f4169fa5c5790767693f281d890e7804773b34acdb0ae1febac33cde8c50c0044a5a6152c7209ec2
 DIST winapi-x86_64-pc-windows-gnu-0.4.0.crate 2947998 BLAKE2B 2ad1ea8b5fa07d544e910ccba043ae925269b76b26c9da356305b34b86741dd8b9aff0b9ffe3d562db4fcd7d7c46a11ce9e3168b782b1d89ae6881742b7ede82 SHA512 4a654af6a5d649dc87e00497245096b35a2894ae66f155cb62389902c3b93ddcc5cf7d0d8b9dd97b291d2d80bc686af2298e80abef6ac69883f4a54e79712513
+DIST windows-sys-0.42.0.crate 3006791 BLAKE2B 7a0962364ecc416cf0ae7e49cce1298a12d819003e488f6e77aff1a52710f00378638b6a05db5557a031e1b75659587657971ddc63eaab35495133762f99a7b2 SHA512 b07b119688f3e3ad234d36979947f34e8e19988fb62101afbe18ec8afc9c8a4261128939df8bbb849d5c5982422cb4c50dbcba70f2bf401fbb7c605df1b2b354
+DIST windows_aarch64_gnullvm-0.42.1.crate 362795 BLAKE2B 722b45789bcd1d973803b327d44072fbf9c904d448e29ae9e56d2f9d1a3e9b64e06883e4bf5ebf141f1e924235858fd1472e07a744cc5b16a0a3a4fc8ec8f6d4 SHA512 51eb9fa7ea441a9fef590c12576a8bbef74932d40fafde8f9e3a28f2734ce5aee6dd5fa478fb3847443241c8c392bb4abbc6014c71260bf924431779f7184f73
+DIST windows_aarch64_msvc-0.42.1.crate 664655 BLAKE2B f4a060b802016a6d77a8ea6ac44c35dfec384acef9c45f932e2b6aca9d3ac48ae031f99e5b58f270d6020b8796e9dd06f7e8ffa7cc5610ea3f69181c2be7adc8 SHA512 f6412bae4b041201ef94e5a159ce90fd6b09816350204d4f573c1afdfb0a6d62d7887fbc2e416b40ec1d4478db521be492edf4703d87482d6d0006a51b827538
+DIST windows_i686_gnu-0.42.1.crate 733428 BLAKE2B c1ca24973aca06b255d9317735cca7a13f7f69293da52dad41df43a5cdf48aac3d40d8b6765cf564905fb71cb548308d757f01167efe7a61da7bd2e2a7080f0a SHA512 61c3271b07df1d4585c875d27cf1686c8f595dcbb79626e8d15ff47228f7b7a4556d3d994566ccceee0d6795a4c76767f85f4579282fc9eed731e04c7e193a57
+DIST windows_i686_msvc-0.42.1.crate 722583 BLAKE2B e03978daa0ac95d7bd9f594b28360dab647a1fe525f0ae4b44e6842d93c5674d9f202e8bbca99a0d30ecf7d138af0c48eec8e69e08bf285db51e32bcf83a2c54 SHA512 8afa4f92cb7bd96d4fdbefbd8e7bcaa37dee52224d5d8b950c5a537d3bb805bf9781097b8bd44d96e8b62b1290e3a3020557502fa3b357a53df6fea36b318932
+DIST windows_x86_64_gnu-0.42.1.crate 697614 BLAKE2B 3cef0a3da3ce142bbdf932dbb54eb6473070c5722c9ec791dc4077efe2d774d51f8b3d06b3321f8f21cc49764f44d54b3432ee7a0d9376925b422b197f5d557e SHA512 f4c16b587fe407dee1f39df029c52302a0fbd5f519816a8d974fe9c2f928043b14037c701c0f3c9cf2e5c765e82430fd4b71615fe63a66a88159f7b15506f892
+DIST windows_x86_64_gnullvm-0.42.1.crate 362788 BLAKE2B fff81e63b86ad04ce22ad3e05ec4cc02c0b791384c93bafb50832f6db9cb7fd9301ad3845339a08dd8cadac1d59f3e8dc9d5f56d7a987989dbfc16b9131af67b SHA512 8cc988b5995a4726bb7518b7fccff528274ad9b2b0160fe247eb240f9ced10db95afe7bff91bfc5a08ebd8237b6821e4a4abad1ff9da45022f1ce7e7586bcf05
+DIST windows_x86_64_msvc-0.42.1.crate 664606 BLAKE2B 6c460cfa392aad0d11add200d652a42ee1a60052570527c4e85405f765255375729d4e26287f5246dcad65fa89ccadea23c5135171b311e6da5027e33149c547 SHA512 a651b1a34f101125f929c1d1f5e933691c7a5c19d0bb0c501fb6812236d2771805428e3bd5e05be7d72715595f5fc9e7978dd7934e5d92e9b78a41c2ece695b2
 DIST zeroize-1.5.0.crate 17017 BLAKE2B a729d12a0a97e59d80dd024fd351c434829dc2819d9c3179c6d0781d5d80dffac10bf431d6e36ed14444680ef6d3328ab1ea6c4077eb2c31cb6f077d3552ccaf SHA512 6b6d1c5f85111f0f83ee02c633effb0bad87bb8b334d3f4e13d8722cf9c4ff252fc15c73de044c33d11ff62cbf3d2b6d33834cf08830e5b9ce9c8c298442a05c
+DIST zeroize-1.5.7.crate 18861 BLAKE2B 5f203d91aae732b928e2acd02656a486f0f930b8daea96b927552f5790862489d83c7bd48b0c7c62a3273e7a04833a16149ce489847f17fbb037e88922d359a2 SHA512 e0688681bceba324d36ea4dc552791801dc93b5882d106b79dd317af99cb718b711899bfd09917a811d23096693448801e64f0651bd9eeae7895618821d88fa9
 DIST zeroize_derive-1.3.1.crate 10268 BLAKE2B cfca89267374c562dc89dbddcad9bc889b33a489d2519fce69b74cbf95d7e8a6b29641a660635f77d303a5f785133caad59560e44b4973f2def52b610f364b9e SHA512 070619a664c404610cac48ad4a831e3f449a2b022c5e55c9f0ba3b19ecb0f737445ae5577f7cb9c314661efeb19801488b158961a9db0cf16e636c2df8758503
+DIST zeroize_derive-1.3.3.crate 10380 BLAKE2B 5ed1fd50f483e1eeec54584adb3d6e20f12987037edf859bd0ca1e9274c41be332edfd4a294d25a96ec811ab06299185148702f4317dbcf1c5e0a23e7e8116b0 SHA512 cfe53287c80866868ca435414efba32267f68b6b95dca9c11201365c9fc21444b1ca926fe8a2dd64c0978a8691e351108538bc7e1fc6f60feb83dde93f56b3c3

diff --git a/net-nds/389-ds-base/files/README.gentoo b/net-nds/389-ds-base/files/README.gentoo
new file mode 100644
index 000000000000..b12a35177bd4
--- /dev/null
+++ b/net-nds/389-ds-base/files/README.gentoo
@@ -0,0 +1,10 @@
+If you are planning to use 389-ds-snmp (ldap-agent),
+make sure to properly configure: /etc/dirsrv/config/ldap-agent.conf
+adding proper 'server' entries, and adding the lines below to
+ => /etc/snmp/snmpd.conf
+master agent
+agentXSocket /var/agentx/master"
+
+To start 389 Directory Server (LDAP service) at boot:"
+
+    rc-update add 389-ds default"


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-01-30  9:04 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-07-13  4:53 [gentoo-commits] repo/gentoo:master commit in: net-nds/389-ds-base/, net-nds/389-ds-base/files/ Michał Górny
  -- strict thread matches above, loose matches on Subject: below --
2023-01-30  9:04 Florian Schmaus
2021-09-24 16:29 Florian Schmaus
2018-02-05 21:50 Patrice Clement
2017-01-05 16:35 Göktürk Yüksek
2016-03-01  4:29 Ian Delaney

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox