script: Remove systemd directories only if not required.

Mask systemd directories only if the USE variable doesn't list
the "systemd" flag.

BUG=chromium:583671
TEST=Built packages. Checked directories.

Change-Id: I9981a5f03476979279a5aa191d8808dcc0395ddc
Reviewed-on: https://chromium-review.googlesource.com/412642
Commit-Ready: Sabin Flo <sabin.floares@gmail.com>
Tested-by: Sabin Floares <sabin.floares@intel.com>
Tested-by: Sabin Flo <sabin.floares@gmail.com>
Reviewed-by: Andrey Ulanov <andreyu@google.com>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
diff --git a/build_image b/build_image
index f73ebec..369592c 100755
--- a/build_image
+++ b/build_image
@@ -144,6 +144,15 @@
   export USE="${USE} fbconsole vtconsole factory_shim_ramfs i2cdev vfat"
 fi
 
+# Mask systemd directories if this is not a systemd image.
+if ! has "systemd" "$(portageq-${FLAGS_board} envvar USE)"; then
+  COMMON_INSTALL_MASK+=" ${SYSTEMD_INSTALL_MASK}"
+  DEFAULT_INSTALL_MASK+=" ${SYSTEMD_INSTALL_MASK}"
+  FACTORY_TEST_INSTALL_MASK+=" ${SYSTEMD_INSTALL_MASK}"
+  FACTORY_SHIM_INSTALL_MASK+=" ${SYSTEMD_INSTALL_MASK}"
+  INSTALL_MASK+=" ${SYSTEMD_INSTALL_MASK}"
+fi
+
 # TODO: </prebuild hook>
 
 # If we are creating a developer image, also create a pristine image with a
diff --git a/common.sh b/common.sh
index 2d00ac8..a86dd38 100644
--- a/common.sh
+++ b/common.sh
@@ -437,7 +437,6 @@
   /firmware
   /lib/modules/*/vdso
   /lib/rc
-  /lib/systemd
   /usr/bin/*-config
   /usr/bin/Xnest
   /usr/bin/Xvfb
@@ -446,7 +445,6 @@
   /usr/lib/debug
   /usr/lib/gopath
   /usr/lib*/pkgconfig
-  /usr/lib/systemd
   /usr/local/autotest-chrome
   /usr/man
   /usr/share/aclocal
@@ -514,6 +512,12 @@
   /usr/share/zoneinfo
   "
 
+# Mask for images without systemd.
+SYSTEMD_INSTALL_MASK="
+  /lib/systemd
+  /usr/lib/systemd
+"
+
 # -----------------------------------------------------------------------------
 # Functions