sys-fs/mdadm: Removed old.

Package-Manager: Portage-2.3.24, Repoman-2.3.6
This commit is contained in:
Lars Wendler
2018-03-27 11:12:46 +02:00
parent fd6eaf2e26
commit 597d7c451e
10 changed files with 0 additions and 566 deletions

View File

@@ -1,8 +1,6 @@
DIST mdadm-3.3.1.tar.xz 407964 BLAKE2B 7494f6431729c3278412080aa3db7676a02d963148e5be7522f3de3e73acb1af9bf9e0be0042e13ee0c7524155e772a252a924eb4965c430d6918dc37aede246 SHA512 46fc1889e97d2d14b72ac26ee07eb4301467dc4a0e838ba89920253484fcd443749f3afccb3d792f7e468b20021d50dbc29dda7033d9b5a8fbaee664200f1981
DIST mdadm-3.4.tar.xz 422704 BLAKE2B 0e8251fefb2db853a921215a07f1f7e70dfcd6650c20493cb487d4ce32cb609fe8191297046161e62f802c75150e6628b52192bb466d72c4cabfb1bcfae09839 SHA512 5de06f3a2b83333e5346a1e858b15e76f75a13a1d5c5f2032fecc6eb167454b282e12ee111ac2abec778e058ec9554708ac317a476778328546603618e6f70f7
DIST mdadm-4.0.tar.xz 430780 BLAKE2B f08a67452398c864d73c78e2a7258d89c5c81b83dd136d4cd7e31e46b22d75ff67ecf553dc22f55dca418409daded51a399728dfdbd36039e828cad3233774e6 SHA512 12fb26e6b9c1912698defa406e5e47a7ca8d68d4a9aa7acdc9b463ee2d4a37fc6ecef6beb5395ff619018c3f6bdb6d8c573060d027707540f645ad2265170e8b
DIST mdadm-4.1-rc1.tar.xz 440336 BLAKE2B af2e4b9e9fd7f75e92d30a29b0a240e4b078e34f3906a583cf10cda1c89717a27d0044d1ba72e9d41b96becda370a423f880c09cd5f2d783715bf2519e401b3c SHA512 07d75ba511a252de95356bc63e480b3c196ad0715d719f75599d1fa2995d649ea86a63f74aee7558316d728ebaae2c87d86806089cba735532e1c39641baf727
DIST mdadm_3.3-2.debian.tar.gz 127889 BLAKE2B f7cfe5e59e16bf71561f672e3c7f7a480658919665490a0b6c32b47979050880b51e481c4f0869efdeb791c8bd34d3db5d4034b40bbf9b55f5b8bbdf73040618 SHA512 92e4c403542caba4b9afb870ba803e6bc7ade143b27efdc27e03b3407f322722a635457cce9e8c195a3ecd7cbce66fdebdd6046fc4f36836e56e27d5d838c037
DIST mdadm_3.3.4-1.1.debian.tar.xz 86312 BLAKE2B 367a9ed4b16b73a63b613e8029934ee8fbb056e33ca621e92964408ac9a3b3d107af03b657dbfe572f63150e5438879f6dd29a7e7cca1599b213ba135249e78d SHA512 ea9b34a9952e1ff836cb931c7eef0ae0c44e3f4d46162c7a7eca24936d6f7168e99d67749b3100bc68ebadc8f256e4833d42da48c531cf71e6e8f3100911828f
DIST mdadm_3.4-4.debian.tar.xz 81200 BLAKE2B 393bac2310139788935ced77b736d60d11f58e86349990034367af5460483e97239eef5a6622405b68a7aa6f65059bc5692518172e422c3596ab879527619952 SHA512 86a9edb8f29931fdfa40037d535ca80f0bf59539fe1ef16f2639e666a5ac1bd90ec617ec1635080ae62a02f7986a6e10c97dce5389555ab7d417885f216c0f93
DIST mdadm_4.0-2.debian.tar.xz 81844 BLAKE2B f8b33e27dacfa83292cc0632dd2d9a83b9d5a69e5360cdfb7494b489400504f20c7ab213ec455dfefc68d5a7f8a48fb2085710fe420b9791df9f8ebbe05d1a10 SHA512 a118df3edbe492e28dda054672a0adfe2c1ce276655f70509c2f24082aecd5193ade84ca3f0ee93280f646ee6a1636d703607046b7e27388086627bed911037a

View File

@@ -1,44 +0,0 @@
From 1f17f96b538793a0e665e471f602c6fa490ec167 Mon Sep 17 00:00:00 2001
From: NeilBrown <neilb@suse.de>
Date: Thu, 10 Jul 2014 15:59:06 +1000
Subject: [PATCH 12/14] DDF: validate metadata_update size before using it.
process_update already checks update->len, for all but
the 'magic', prepare_update doesn't at all.
So add tests to prepare_update that we don't exceed the buffer.
This will consequently protect process_update from looking
for a 'magic' which isn't there.
Reported-by: Vincent Berg <vberg@ioactive.com>
Signed-off-by: NeilBrown <neilb@suse.de>
---
super-ddf.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/super-ddf.c b/super-ddf.c
index 1e43ca2..8957c2e 100644
--- a/super-ddf.c
+++ b/super-ddf.c
@@ -4914,10 +4914,16 @@ static int ddf_prepare_update(struct supertype *st,
* If a malloc is needed, do it here.
*/
struct ddf_super *ddf = st->sb;
- be32 *magic = (be32 *)update->buf;
+ be32 *magic;
+ if (update->len < 4)
+ return 0;
+ magic = (be32 *)update->buf;
if (be32_eq(*magic, DDF_VD_CONF_MAGIC)) {
struct vcl *vcl;
- struct vd_config *conf = (struct vd_config *) update->buf;
+ struct vd_config *conf;
+ if (update->len < (int)sizeof(*conf))
+ return 0;
+ conf = (struct vd_config *) update->buf;
if (posix_memalign(&update->space, 512,
offsetof(struct vcl, conf)
+ ddf->conf_rec_len * 512) != 0) {
--
2.0.0

View File

@@ -1,45 +0,0 @@
From 13ffbe89b6103c146c08eb1c9a70833306c8322b Mon Sep 17 00:00:00 2001
From: Pawel Baldysiak <pawel.baldysiak@intel.com>
Date: Wed, 16 Jul 2014 12:20:34 +0200
Subject: [PATCH 14/14] Grow: Do not try to restart if reshape is running
Grow process did not check if reshape is already started
when deciding about restarting.
Sync_action should be checked in this case, and if
reshape is running - restart flag should not be set.
Otherwise, Grow process will fail to write data to
sysfs, and reshape will not be continued.
Signed-off-by: Pawel Baldysiak <pawel.baldysiak@intel.com>
Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
Signed-off-by: NeilBrown <neilb@suse.de>
---
Grow.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/Grow.c b/Grow.c
index a2f4f14..ea9cc60 100644
--- a/Grow.c
+++ b/Grow.c
@@ -2822,6 +2822,7 @@ static int reshape_array(char *container, int fd, char *devname,
unsigned long long array_size;
int done;
struct mdinfo *sra = NULL;
+ char buf[20];
/* when reshaping a RAID0, the component_size might be zero.
* So try to fix that up.
@@ -2869,7 +2870,9 @@ static int reshape_array(char *container, int fd, char *devname,
goto release;
}
- if (st->ss->external && restart && (info->reshape_progress == 0)) {
+ if (st->ss->external && restart && (info->reshape_progress == 0) &&
+ !((sysfs_get_str(info, NULL, "sync_action", buf, sizeof(buf)) > 0) &&
+ (strncmp(buf, "reshape", 7) == 0))) {
/* When reshape is restarted from '0', very begin of array
* it is possible that for external metadata reshape and array
* configuration doesn't happen.
--
2.0.0

View File

@@ -1,39 +0,0 @@
From e339dba2a1744dc6860a58e286ded39fc993c2db Mon Sep 17 00:00:00 2001
From: Pawel Baldysiak <pawel.baldysiak@intel.com>
Date: Wed, 11 Jun 2014 15:18:44 +0000
Subject: [PATCH 02/14] Grow: fix removal of line in wrong case
Commit 18d9bcfa33939cee345d4d7735bc6081bcc409c8
removed wrong line (in case RAID0->RAID4).
This patch corrects this mistake
(line should be removed in case RAID4->RAID4).
Signed-off-by: Pawel Baldysiak <pawel.baldysiak@intel.com>
Signed-off-by: NeilBrown <neilb@suse.de>
---
Grow.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Grow.c b/Grow.c
index 12730e2..a2f4f14 100644
--- a/Grow.c
+++ b/Grow.c
@@ -1324,6 +1324,7 @@ char *analyse_change(char *devname, struct mdinfo *info, struct reshape *re)
switch (re->level) {
case 4:
+ re->before.layout = 0;
re->after.layout = 0;
break;
case 5:
@@ -1339,7 +1340,6 @@ char *analyse_change(char *devname, struct mdinfo *info, struct reshape *re)
switch (re->level) {
case 4:
- re->before.layout = 0;
re->after.layout = 0;
break;
case 5:
--
2.0.0

View File

@@ -1,32 +0,0 @@
From 6d8d290a2f09a3bfd9e44f382ae5daea128772f7 Mon Sep 17 00:00:00 2001
From: NeilBrown <neilb@suse.de>
Date: Thu, 3 Jul 2014 15:04:01 +1000
Subject: [PATCH 03/14] IMSM: use strcpy rather than pointless strncpy.
As strncpy doesn't guarantee to nul-terminate, some static
analysers get upset that it is followed by a 'strncat'.
So just use a 'strcpy' - strlen(disk_by_path) is constant
and definitely less than PATH_MAX.
Link: https://github.com/neilbrown/mdadm/issues/4
Signed-off-by: NeilBrown <neilb@suse.de>
---
super-intel.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/super-intel.c b/super-intel.c
index 9dd807a..0106b4f 100644
--- a/super-intel.c
+++ b/super-intel.c
@@ -9357,7 +9357,7 @@ static const char *imsm_get_disk_controller_domain(const char *path)
char *drv=NULL;
struct stat st;
- strncpy(disk_path, disk_by_path, PATH_MAX - 1);
+ strcpy(disk_path, disk_by_path);
strncat(disk_path, path, PATH_MAX - strlen(disk_path) - 1);
if (stat(disk_path, &st) == 0) {
struct sys_dev* hba;
--
2.0.0

View File

@@ -1,128 +0,0 @@
From 095b8088fa99ad1195d1aba03af2aa561b4a6379 Mon Sep 17 00:00:00 2001
From: NeilBrown <neilb@suse.de>
Date: Thu, 10 Jul 2014 16:09:28 +1000
Subject: [PATCH 13/14] IMSM: validate metadata_update size before using it.
Every case in prepare_update check that the size message
size is sufficient, so process_update doesn't need to check anything.
Reported-by: Vincent Berg <vberg@ioactive.com>
Signed-off-by: NeilBrown <neilb@suse.de>
---
super-intel.c | 44 +++++++++++++++++++++++++++++++++++++++++---
1 file changed, 41 insertions(+), 3 deletions(-)
diff --git a/super-intel.c b/super-intel.c
index 2547b4a..b4efa72 100644
--- a/super-intel.c
+++ b/super-intel.c
@@ -8587,7 +8587,7 @@ static void imsm_process_update(struct supertype *st,
}
case update_add_remove_disk: {
/* we may be able to repair some arrays if disks are
- * being added, check teh status of add_remove_disk
+ * being added, check the status of add_remove_disk
* if discs has been added.
*/
if (add_remove_disk_update(super)) {
@@ -8617,19 +8617,28 @@ static int imsm_prepare_update(struct supertype *st,
* integrated by the monitor thread without worrying about live pointers
* in the manager thread.
*/
- enum imsm_update_type type = *(enum imsm_update_type *) update->buf;
+ enum imsm_update_type type;
struct intel_super *super = st->sb;
struct imsm_super *mpb = super->anchor;
size_t buf_len;
size_t len = 0;
+ if (update->len < (int)sizeof(type))
+ return 0;
+
+ type = *(enum imsm_update_type *) update->buf;
+
switch (type) {
case update_general_migration_checkpoint:
+ if (update->len < (int)sizeof(struct imsm_update_general_migration_checkpoint))
+ return 0;
dprintf("imsm: prepare_update() "
"for update_general_migration_checkpoint called\n");
break;
case update_takeover: {
struct imsm_update_takeover *u = (void *)update->buf;
+ if (update->len < (int)sizeof(*u))
+ return 0;
if (u->direction == R0_TO_R10) {
void **tail = (void **)&update->space_list;
struct imsm_dev *dev = get_imsm_dev(super, u->subarray);
@@ -8670,6 +8679,9 @@ static int imsm_prepare_update(struct supertype *st,
struct intel_dev *dl;
void **space_tail = (void**)&update->space_list;
+ if (update->len < (int)sizeof(*u))
+ return 0;
+
dprintf("imsm: imsm_prepare_update() for update_reshape\n");
for (dl = super->devlist; dl; dl = dl->next) {
@@ -8702,6 +8714,9 @@ static int imsm_prepare_update(struct supertype *st,
void *s;
int current_level = -1;
+ if (update->len < (int)sizeof(*u))
+ return 0;
+
dprintf("imsm: imsm_prepare_update() for update_reshape\n");
/* add space for bigger array in update
@@ -8769,6 +8784,13 @@ static int imsm_prepare_update(struct supertype *st,
break;
}
case update_size_change: {
+ if (update->len < (int)sizeof(struct imsm_update_size_change))
+ return 0;
+ break;
+ }
+ case update_activate_spare: {
+ if (update->len < (int)sizeof(struct imsm_update_activate_spare))
+ return 0;
break;
}
case update_create_array: {
@@ -8781,6 +8803,9 @@ static int imsm_prepare_update(struct supertype *st,
int i;
int activate = 0;
+ if (update->len < (int)sizeof(*u))
+ return 0;
+
inf = get_disk_info(u);
len = sizeof_imsm_dev(dev, 1);
/* allocate a new super->devlist entry */
@@ -8802,9 +8827,22 @@ static int imsm_prepare_update(struct supertype *st,
}
len += activate * sizeof(struct imsm_disk);
break;
- default:
+ }
+ case update_kill_array: {
+ if (update->len < (int)sizeof(struct imsm_update_kill_array))
+ return 0;
break;
}
+ case update_rename_array: {
+ if (update->len < (int)sizeof(struct imsm_update_rename_array))
+ return 0;
+ break;
+ }
+ case update_add_remove_disk:
+ /* no update->len needed */
+ break;
+ default:
+ return 0;
}
/* check if we need a larger metadata buffer */
--
2.0.0

View File

@@ -1,28 +0,0 @@
From 616f197f9d6d044afb9e27ddc9cd087d21d610f0 Mon Sep 17 00:00:00 2001
From: NeilBrown <neilb@suse.de>
Date: Tue, 10 Jun 2014 20:34:40 +1000
Subject: [PATCH 01/14] Makefile: install mdadm-grow-continue@.service
Forgot to add this to install-systemd target
Signed-off-by: NeilBrown <neilb@suse.de>
---
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index c7e7a42..1a4a5dc 100644
--- a/Makefile
+++ b/Makefile
@@ -290,7 +290,7 @@ install-udev: udev-md-raid-arrays.rules udev-md-raid-assembly.rules
install-systemd: systemd/mdmon@.service
@for file in mdmon@.service mdmonitor.service mdadm-last-resort@.timer \
- mdadm-last-resort@.service ; \
+ mdadm-last-resort@.service mdadm-grow-continue@.service; \
do sed -e 's,BINDIR,$(BINDIR),g' systemd/$$file > .install.tmp && \
echo $(INSTALL) -D -m 644 systemd/$$file $(DESTDIR)$(SYSTEMD_DIR)/$$file ; \
$(INSTALL) -D -m 644 .install.tmp $(DESTDIR)$(SYSTEMD_DIR)/$$file ; \
--
2.0.0

View File

@@ -1,119 +0,0 @@
From 5fe6f031d9a21a935f0ef1b1fbdb314b53f2199f Mon Sep 17 00:00:00 2001
From: NeilBrown <neilb@suse.de>
Date: Thu, 10 Jul 2014 15:54:02 +1000
Subject: [PATCH 11/14] mdmon: allow prepare_update to report failure.
If 'prepare_update' fails for some reason there is little
point continuing on to 'process_update'.
For now only malloc failures are caught, but other failures
will be considered in future.
Signed-off-by: NeilBrown <neilb@suse.de>
---
managemon.c | 3 ++-
mdadm.h | 5 ++++-
super-ddf.c | 8 +++++---
super-intel.c | 9 +++++----
4 files changed, 16 insertions(+), 9 deletions(-)
diff --git a/managemon.c b/managemon.c
index 5f7e2ce..1c9eccc 100644
--- a/managemon.c
+++ b/managemon.c
@@ -819,7 +819,8 @@ static void handle_message(struct supertype *container, struct metadata_update *
mu->space_list = NULL;
mu->next = NULL;
if (container->ss->prepare_update)
- container->ss->prepare_update(container, mu);
+ if (!container->ss->prepare_update(container, mu))
+ free_updates(&mu);
queue_metadata_update(mu);
}
}
diff --git a/mdadm.h b/mdadm.h
index 914d67c..02a9288 100644
--- a/mdadm.h
+++ b/mdadm.h
@@ -929,7 +929,10 @@ extern struct superswitch {
void (*sync_metadata)(struct supertype *st);
void (*process_update)(struct supertype *st,
struct metadata_update *update);
- void (*prepare_update)(struct supertype *st,
+ /* Prepare updates allocates extra memory that might be
+ * needed. If the update cannot be understood, return 0.
+ */
+ int (*prepare_update)(struct supertype *st,
struct metadata_update *update);
/* activate_spare will check if the array is degraded and, if it
diff --git a/super-ddf.c b/super-ddf.c
index ab9fc46..1e43ca2 100644
--- a/super-ddf.c
+++ b/super-ddf.c
@@ -4906,8 +4906,8 @@ static void ddf_process_update(struct supertype *st,
/* case DDF_SPARE_ASSIGN_MAGIC */
}
-static void ddf_prepare_update(struct supertype *st,
- struct metadata_update *update)
+static int ddf_prepare_update(struct supertype *st,
+ struct metadata_update *update)
{
/* This update arrived at managemon.
* We are about to pass it to monitor.
@@ -4922,15 +4922,17 @@ static void ddf_prepare_update(struct supertype *st,
offsetof(struct vcl, conf)
+ ddf->conf_rec_len * 512) != 0) {
update->space = NULL;
- return;
+ return 0;
}
vcl = update->space;
vcl->conf.sec_elmnt_count = conf->sec_elmnt_count;
if (alloc_other_bvds(ddf, vcl) != 0) {
free(update->space);
update->space = NULL;
+ return 0;
}
}
+ return 1;
}
/*
diff --git a/super-intel.c b/super-intel.c
index 7734bde..2547b4a 100644
--- a/super-intel.c
+++ b/super-intel.c
@@ -8607,8 +8607,8 @@ static void imsm_process_update(struct supertype *st,
static struct mdinfo *get_spares_for_grow(struct supertype *st);
-static void imsm_prepare_update(struct supertype *st,
- struct metadata_update *update)
+static int imsm_prepare_update(struct supertype *st,
+ struct metadata_update *update)
{
/**
* Allocate space to hold new disk entries, raid-device entries or a new
@@ -8828,6 +8828,7 @@ static void imsm_prepare_update(struct supertype *st,
else
super->next_buf = NULL;
}
+ return 1;
}
/* must be called while manager is quiesced */
@@ -9716,8 +9717,8 @@ static void imsm_update_metadata_locally(struct supertype *st,
mu.space = NULL;
mu.space_list = NULL;
mu.next = NULL;
- imsm_prepare_update(st, &mu);
- imsm_process_update(st, &mu);
+ if (imsm_prepare_update(st, &mu))
+ imsm_process_update(st, &mu);
while (mu.space_list) {
void **space = mu.space_list;
--
2.0.0

View File

@@ -1,34 +0,0 @@
From 120ec6f7b96455e42bdfa9131c0c9026c57eaf19 Mon Sep 17 00:00:00 2001
From: NeilBrown <neilb@suse.de>
Date: Thu, 3 Jul 2014 17:06:45 +1000
Subject: [PATCH 09/14] mdmon: ensure Unix domain socket is created with safe
permissions.
In the unlikely case that mdmon is started with an overly
permissive umask, we don't want to risk giving away world acccess.
All other "mkdir" and "O_CREAT" calls in mdmon and mdadm set
a suitably restrictive permission mask. 'bind' don't take an
explicit mask so it needs an implicit one.
Reported-by: Vincent Berg <vberg@ioactive.com>
Signed-off-by: NeilBrown <neilb@suse.de>
---
mdmon.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/mdmon.c b/mdmon.c
index b84d4d9..21221cd 100644
--- a/mdmon.c
+++ b/mdmon.c
@@ -232,6 +232,7 @@ static int make_control_sock(char *devname)
addr.sun_family = PF_LOCAL;
strcpy(addr.sun_path, path);
+ umask(077); /* ensure no world write access */
if (bind(sfd, &addr, sizeof(addr)) < 0) {
close(sfd);
return -1;
--
2.0.0

View File

@@ -1,95 +0,0 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=4
inherit eutils flag-o-matic multilib systemd toolchain-funcs udev
DESCRIPTION="Tool for running RAID systems - replacement for the raidtools"
HOMEPAGE="http://neil.brown.name/blog/mdadm"
DEB_PR=2
SRC_URI="mirror://kernel/linux/utils/raid/mdadm/${P}.tar.xz
mirror://debian/pool/main/m/mdadm/${PN}_3.3-${DEB_PR}.debian.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 sparc x86"
IUSE="static"
DEPEND="virtual/pkgconfig
app-arch/xz-utils"
RDEPEND=">=sys-apps/util-linux-2.16"
# The tests edit values in /proc and run tests on software raid devices.
# Thus, they shouldn't be run on systems with active software RAID devices.
RESTRICT="test"
mdadm_emake() {
emake \
PKG_CONFIG="$(tc-getPKG_CONFIG)" \
CC="$(tc-getCC)" \
CWFLAGS="-Wall" \
CXFLAGS="${CFLAGS}" \
UDEVDIR="$(get_udevdir)" \
SYSTEMD_DIR="$(systemd_get_unitdir)" \
"$@"
}
src_prepare() {
# These are important bugfixes from upstream git after 3.3.1 release,
# and before and including 17 Jul 2014:
epatch \
"${FILESDIR}"/${P}-Makefile-install-mdadm-grow-continue-.service.patch \
"${FILESDIR}"/${P}-Grow-fix-removal-of-line-in-wrong-case.patch \
"${FILESDIR}"/${P}-IMSM-use-strcpy-rather-than-pointless-strncpy.patch \
"${FILESDIR}"/${P}-mdmon-ensure-Unix-domain-socket-is-created-with-safe.patch \
"${FILESDIR}"/${P}-mdmon-allow-prepare_update-to-report-failure.patch \
"${FILESDIR}"/${P}-DDF-validate-metadata_update-size-before-using-it.patch \
"${FILESDIR}"/${P}-IMSM-validate-metadata_update-size-before-using-it.patch \
"${FILESDIR}"/${P}-Grow-Do-not-try-to-restart-if-reshape-is-running.patch
}
src_compile() {
use static && append-ldflags -static
mdadm_emake all mdassemble
}
src_test() {
mdadm_emake test
sh ./test || die
}
src_install() {
# Use split lines because of bug #517218
mdadm_emake DESTDIR="${D}" install
mdadm_emake DESTDIR="${D}" install-systemd
into /
dosbin mdassemble
dodoc ChangeLog INSTALL TODO README* ANNOUNCE-${PV}
insinto /etc
newins mdadm.conf-example mdadm.conf
newinitd "${FILESDIR}"/mdadm.rc mdadm
newconfd "${FILESDIR}"/mdadm.confd mdadm
newinitd "${FILESDIR}"/mdraid.rc mdraid
newconfd "${FILESDIR}"/mdraid.confd mdraid
# From the Debian patchset
into /usr
dodoc "${WORKDIR}"/debian/README.checkarray
dosbin "${WORKDIR}"/debian/checkarray
insinto /etc/cron.weekly
newins "${FILESDIR}"/mdadm.weekly mdadm
}
pkg_postinst() {
if ! systemd_is_booted; then
if [[ -z ${REPLACING_VERSIONS} ]] ; then
# Only inform people the first time they install.
elog "If you're not relying on kernel auto-detect of your RAID"
elog "devices, you need to add 'mdraid' to your 'boot' runlevel:"
elog " rc-update add mdraid boot"
fi
fi
}