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/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.
