diff --git a/debian/changelog b/debian/changelog
index 5713a81..51daae8 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,15 @@
+base-files (10.3+mendel1) mendel-day; urgency=medium
+
+  * Bump for the Day 4.0 release
+  * Mirror changes to upstream base-files:
+  - Remove VERSION and VERSION_ID from release.
+  - Add CC0-1.0 to common-licenses.
+  - Add Breaks: debian-security-support.
+  - Add VERSION_CODENAME to os-release.
+  - Update Standards-Version to 4.1.3.
+
+ -- Coral <coral-support@google.com>  Tue, 20 Aug 2019 13:40:57 -0700
+
 base-files (9.9+mendel6) mendel-chef; urgency=medium
 
   * Bump for the Chef 3.1 point release
diff --git a/debian/control b/debian/control
index 678aea3..378a335 100644
--- a/debian/control
+++ b/debian/control
@@ -2,7 +2,7 @@
 Section: admin
 Priority: required
 Maintainer: Coral <coral-support@google.com>
-Standards-Version: 3.9.8
+Standards-Version: 4.1.3
 Build-Depends: debhelper (>= 9)
 
 Package: base-files
@@ -13,7 +13,8 @@
 Essential: yes
 Priority: required
 Replaces: base, miscutils, dpkg (<= 1.15.0)
-Breaks: initscripts (<< 2.88dsf-13.3), sendfile (<< 2.1b.20080616-5.2~)
+Breaks: initscripts (<< 2.88dsf-13.3), sendfile (<< 2.1b.20080616-5.2~),
+ debian-security-support (<< 2019.04.25)
 Multi-Arch: foreign
 Description: Mendel base system miscellaneous files
  This package contains the basic filesystem hierarchy of a Mendel system, and
diff --git a/debian/postinst.in b/debian/postinst.in
index 0393a4f..a8c646c 100644
--- a/debian/postinst.in
+++ b/debian/postinst.in
@@ -44,13 +44,13 @@
   fi
 }
 
-if [ -e /etc/dpkg/origins/#VENDORFILE# ]; then
-  ln -sf /etc/dpkg/origins/#VENDORFILE# /etc/dpkg/origins/default
+if [ ! -e /etc/dpkg/origins/default ]; then
+  if [ -e /etc/dpkg/origins/#VENDORFILE# ]; then
+    ln -sf /etc/dpkg/origins/#VENDORFILE# /etc/dpkg/origins/default
+  fi
 fi
 
 if [ "$1" = "configure" ] && [ "$2" = "" ]; then
-  install_from_default staff-group-for-usr-local \
-                                     /etc/staff-group-for-usr-local
   install_from_default dot.profile   /root/.profile
   install_from_default dot.bashrc    /root/.bashrc
   install_from_default profile       /etc/profile
@@ -120,8 +120,3 @@
     install_directory mnt 755 root
   fi
 fi
-
-if dpkg --compare-versions "$2" lt-nl "6.10"; then
-  install_from_default staff-group-for-usr-local \
-    /etc/staff-group-for-usr-local
-fi
diff --git a/debian/rules b/debian/rules
index e0143b0..27740f3 100755
--- a/debian/rules
+++ b/debian/rules
@@ -9,6 +9,7 @@
 endif
 
 VENDORFILE = mendel
+DESTDIR = debian/base-files
 
 %:
 	dh $@
@@ -19,23 +20,6 @@
 	sed -e "s/#VENDORFILE#/$(VENDORFILE)/g" debian/postinst.in > debian/postinst
 
 override_dh_auto_install:
-	debian/rules install DESTDIR=`pwd`/debian/base-files
-
-override_dh_link:
-	dh_link -X os-release
-
-override_dh_compress:
-	dh_compress -X README
-
-override_dh_fixperms:
-	dh_fixperms
-	cd debian/base-files && chown root:staff   var/local
-	cd debian/base-files && chmod 755  `find . -type d`
-	cd debian/base-files && chmod 1777 `cat ../1777-dirs`
-	cd debian/base-files && chmod 2775 `cat ../2775-dirs`
-	cd debian/base-files && chmod 700 root
-
-install:
 	install -p -m 644 etc/*      $(DESTDIR)/etc
 	install -p -m 755 motd/*     $(DESTDIR)/etc/update-motd.d
 	install -p -m 644 licenses/* $(DESTDIR)/usr/share/common-licenses
@@ -51,3 +35,17 @@
 	sed -e "s&#OSNAME#&$(OSNAME)&g" etc/os-release > $(DESTDIR)/etc/os-release
 	mv $(DESTDIR)/etc/os-release $(DESTDIR)/usr/lib/os-release
 	ln -s ../usr/lib/os-release $(DESTDIR)/etc/os-release
+
+override_dh_link:
+	dh_link -X os-release
+
+override_dh_compress:
+	dh_compress -X README
+
+override_dh_fixperms:
+	dh_fixperms
+	cd debian/base-files && chown root:staff   var/local
+	cd debian/base-files && chmod 755  `find . -type d`
+	cd debian/base-files && chmod 1777 `cat ../1777-dirs`
+	cd debian/base-files && chmod 2775 `cat ../2775-dirs`
+	cd debian/base-files && chmod 700 root
diff --git a/etc/debian_version b/etc/debian_version
index 9d5e716..2f52450 100644
--- a/etc/debian_version
+++ b/etc/debian_version
@@ -1 +1 @@
-9.7
+10.0
diff --git a/etc/issue b/etc/issue
index 6c3dc4f..0d266a6 100644
--- a/etc/issue
+++ b/etc/issue
@@ -1,2 +1,2 @@
-Mendel #OSNAME# (chef) \n \l
+Mendel #OSNAME# (day) \n \l
 
diff --git a/etc/issue.net b/etc/issue.net
index ee883f8..083a488 100644
--- a/etc/issue.net
+++ b/etc/issue.net
@@ -1 +1 @@
-Mendel #OSNAME# (chef)
+Mendel #OSNAME# (day)
diff --git a/etc/lsb-release b/etc/lsb-release
index 6c17bc9..533f2a7 100644
--- a/etc/lsb-release
+++ b/etc/lsb-release
@@ -1,7 +1,7 @@
-DISTRIB_CODENAME=chef
-DISTRIB_DESCRIPTION="Mendel GNU/Linux Chef"
+DISTRIB_CODENAME=day
+DISTRIB_DESCRIPTION="Mendel GNU/Linux Day"
 DISTRIB_ID=Mendel
-DISTRIB_RELEASE=mendel-chef
+DISTRIB_RELEASE=mendel-day
 PRETTY_NAME="Mendel"
 NAME="Mendel"
 ID=Mendel
diff --git a/etc/mendel_version b/etc/mendel_version
index 8c50098..5186d07 100644
--- a/etc/mendel_version
+++ b/etc/mendel_version
@@ -1 +1 @@
-3.1
+4.0
diff --git a/etc/os-release b/etc/os-release
index e91dfcc..d052fbf 100644
--- a/etc/os-release
+++ b/etc/os-release
@@ -1,9 +1,8 @@
-PRETTY_NAME="Mendel #OSNAME# 3 (Chef)"
+PRETTY_NAME="Mendel #OSNAME# 4 (Day)"
 NAME="Mendel #OSNAME#"
-VERSION_ID="3"
-VERSION="3 (chef)"
 ID=mendel
 ID_LIKE=debian
 HOME_URL="https://coral.withgoogle.com/"
 SUPPORT_URL="https://coral.withgoogle.com/"
 BUG_REPORT_URL="https://coral.withgoogle.com/"
+VERSION_CODENAME="day"
diff --git a/licenses/CC0-1.0 b/licenses/CC0-1.0
new file mode 100644
index 0000000..0e259d4
--- /dev/null
+++ b/licenses/CC0-1.0
@@ -0,0 +1,121 @@
+Creative Commons Legal Code
+
+CC0 1.0 Universal
+
+    CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
+    LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
+    ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
+    INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
+    REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
+    PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
+    THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
+    HEREUNDER.
+
+Statement of Purpose
+
+The laws of most jurisdictions throughout the world automatically confer
+exclusive Copyright and Related Rights (defined below) upon the creator
+and subsequent owner(s) (each and all, an "owner") of an original work of
+authorship and/or a database (each, a "Work").
+
+Certain owners wish to permanently relinquish those rights to a Work for
+the purpose of contributing to a commons of creative, cultural and
+scientific works ("Commons") that the public can reliably and without fear
+of later claims of infringement build upon, modify, incorporate in other
+works, reuse and redistribute as freely as possible in any form whatsoever
+and for any purposes, including without limitation commercial purposes.
+These owners may contribute to the Commons to promote the ideal of a free
+culture and the further production of creative, cultural and scientific
+works, or to gain reputation or greater distribution for their Work in
+part through the use and efforts of others.
+
+For these and/or other purposes and motivations, and without any
+expectation of additional consideration or compensation, the person
+associating CC0 with a Work (the "Affirmer"), to the extent that he or she
+is an owner of Copyright and Related Rights in the Work, voluntarily
+elects to apply CC0 to the Work and publicly distribute the Work under its
+terms, with knowledge of his or her Copyright and Related Rights in the
+Work and the meaning and intended legal effect of CC0 on those rights.
+
+1. Copyright and Related Rights. A Work made available under CC0 may be
+protected by copyright and related or neighboring rights ("Copyright and
+Related Rights"). Copyright and Related Rights include, but are not
+limited to, the following:
+
+  i. the right to reproduce, adapt, distribute, perform, display,
+     communicate, and translate a Work;
+ ii. moral rights retained by the original author(s) and/or performer(s);
+iii. publicity and privacy rights pertaining to a person's image or
+     likeness depicted in a Work;
+ iv. rights protecting against unfair competition in regards to a Work,
+     subject to the limitations in paragraph 4(a), below;
+  v. rights protecting the extraction, dissemination, use and reuse of data
+     in a Work;
+ vi. database rights (such as those arising under Directive 96/9/EC of the
+     European Parliament and of the Council of 11 March 1996 on the legal
+     protection of databases, and under any national implementation
+     thereof, including any amended or successor version of such
+     directive); and
+vii. other similar, equivalent or corresponding rights throughout the
+     world based on applicable law or treaty, and any national
+     implementations thereof.
+
+2. Waiver. To the greatest extent permitted by, but not in contravention
+of, applicable law, Affirmer hereby overtly, fully, permanently,
+irrevocably and unconditionally waives, abandons, and surrenders all of
+Affirmer's Copyright and Related Rights and associated claims and causes
+of action, whether now known or unknown (including existing as well as
+future claims and causes of action), in the Work (i) in all territories
+worldwide, (ii) for the maximum duration provided by applicable law or
+treaty (including future time extensions), (iii) in any current or future
+medium and for any number of copies, and (iv) for any purpose whatsoever,
+including without limitation commercial, advertising or promotional
+purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
+member of the public at large and to the detriment of Affirmer's heirs and
+successors, fully intending that such Waiver shall not be subject to
+revocation, rescission, cancellation, termination, or any other legal or
+equitable action to disrupt the quiet enjoyment of the Work by the public
+as contemplated by Affirmer's express Statement of Purpose.
+
+3. Public License Fallback. Should any part of the Waiver for any reason
+be judged legally invalid or ineffective under applicable law, then the
+Waiver shall be preserved to the maximum extent permitted taking into
+account Affirmer's express Statement of Purpose. In addition, to the
+extent the Waiver is so judged Affirmer hereby grants to each affected
+person a royalty-free, non transferable, non sublicensable, non exclusive,
+irrevocable and unconditional license to exercise Affirmer's Copyright and
+Related Rights in the Work (i) in all territories worldwide, (ii) for the
+maximum duration provided by applicable law or treaty (including future
+time extensions), (iii) in any current or future medium and for any number
+of copies, and (iv) for any purpose whatsoever, including without
+limitation commercial, advertising or promotional purposes (the
+"License"). The License shall be deemed effective as of the date CC0 was
+applied by Affirmer to the Work. Should any part of the License for any
+reason be judged legally invalid or ineffective under applicable law, such
+partial invalidity or ineffectiveness shall not invalidate the remainder
+of the License, and in such case Affirmer hereby affirms that he or she
+will not (i) exercise any of his or her remaining Copyright and Related
+Rights in the Work or (ii) assert any associated claims and causes of
+action with respect to the Work, in either case contrary to Affirmer's
+express Statement of Purpose.
+
+4. Limitations and Disclaimers.
+
+ a. No trademark or patent rights held by Affirmer are waived, abandoned,
+    surrendered, licensed or otherwise affected by this document.
+ b. Affirmer offers the Work as-is and makes no representations or
+    warranties of any kind concerning the Work, express, implied,
+    statutory or otherwise, including without limitation warranties of
+    title, merchantability, fitness for a particular purpose, non
+    infringement, or the absence of latent or other defects, accuracy, or
+    the present or absence of errors, whether or not discoverable, all to
+    the greatest extent permissible under applicable law.
+ c. Affirmer disclaims responsibility for clearing rights of other persons
+    that may apply to the Work or any use thereof, including without
+    limitation any person's Copyright and Related Rights in the Work.
+    Further, Affirmer disclaims responsibility for obtaining any necessary
+    consents, permissions or other rights required for any use of the
+    Work.
+ d. Affirmer understands and acknowledges that Creative Commons is not a
+    party to this document and has no duty or obligation with respect to
+    this CC0 or use of the Work.
