28179 Commits

Author SHA1 Message Date
Michael Marineau
077c135ef9 Merge pull request #239 from marineam/ccache
ccache: drop, moved to coreos-overlay for now
2015-07-09 15:21:31 -07:00
Michael Marineau
0cc352c838 Merge pull request #1352 from marineam/ccache
Fix building GCC with ccache
2015-07-09 15:21:17 -07:00
Michael Marineau
e8a965132a ccache: drop, moved to coreos-overlay for now 2015-07-09 14:09:57 -07:00
Michael Marineau
4f87afd277 ccache: fix building GCC with ccache enabled 2015-07-09 13:40:01 -07:00
Michael Marineau
1b5d4d776f ccache: import current version from portage-stable 2015-07-09 13:31:42 -07:00
Alex Crawford
34c31ebb20 Merge pull request #1350 from crawford/openssl
profiles: remove unneeded entries for openssl
2015-07-09 10:35:03 -07:00
Alex Crawford
1f94c9fb1f Merge pull request #237 from crawford/openssl
bump(dev-libs/openssl): sync with upstream
2015-07-09 10:34:57 -07:00
Alex Crawford
f45d0ad703 profiles: remove unneeded entries for openssl 2015-07-09 10:12:18 -07:00
Alex Crawford
9534f1b492 bump(dev-libs/openssl): sync with upstream 2015-07-09 10:07:30 -07:00
Michael Marineau
0b1f2f4c8f Merge pull request #1349 from marineam/systemd
systemd: revise python dependencies
2015-07-08 18:58:53 -07:00
Michael Marineau
0825a88401 systemd: revise python dependencies
Dug more into the build process and python is not strictly required for
man pages, it is only used to create an index which isn't significant.
Only call setup_python when features that *do* need python are enabled.

Fixes bootstrap_sdk which builds systemd with minimal use flags.
2015-07-08 18:35:07 -07:00
Michael Marineau
5b3d82cd08 Merge pull request #1347 from marineam/systemd
systemd: sync with upstream, bump to 222
2015-07-08 17:16:06 -07:00
Michael Marineau
31b85412dd systemd: sync with upstream, bump to 222
Biggest change (beyond the version bump itself) is removing support for
building gudev which is moving out of the systemd repository. Also moves
USE flag changes from IUSE into package.use so the IUSE line doesn't
cause merge conflicts with upstream.

For reference the current delta from upstream is:

```patch
--- gentoo-x86/sys-apps/systemd/systemd-9999.ebuild	2015-07-08 14:20:49.679059002 -0700
+++ coreos-overlay/sys-apps/systemd/systemd-9999.ebuild	2015-07-08 15:51:11.351991236 -0700
@@ -4,18 +4,25 @@

 EAPI=5

+AUTOTOOLS_AUTORECONF=yes
 AUTOTOOLS_PRUNE_LIBTOOL_FILES=all
 PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+CROS_WORKON_PROJECT="coreos/systemd"
+CROS_WORKON_REPO="git://github.com"

 if [[ ${PV} == 9999 ]]; then
-	AUTOTOOLS_AUTORECONF=yes
-	EGIT_REPO_URI="https://github.com/systemd/systemd.git"
-	inherit git-r3
+	# Use ~arch instead of empty keywords for compatibility with cros-workon
+	KEYWORDS="~amd64 ~arm64 ~arm ~x86"
 else
-	SRC_URI="http://www.freedesktop.org/software/systemd/${P}.tar.xz"
-	KEYWORDS="~amd64 ~arm ~ia64 ~x86"
+	CROS_WORKON_COMMIT="9b174479806a66ff3a220a89291a38f8a4fed701"
+	KEYWORDS="amd64 arm64 ~arm ~x86"
 fi

+# cros-workon must be imported first, in cases where cros-workon and
+# another eclass exports the same function (say src_compile) we want
+# the later eclass's version to win. Only need src_unpack from workon.
+inherit cros-workon
+
 inherit autotools-utils bash-completion-r1 linux-info multilib \
 	multilib-minimal pam python-single-r1 systemd toolchain-funcs udev \
 	user
@@ -29,6 +36,9 @@
 	idn importd +kdbus +kmod +lz4 lzma nat pam policykit python
 	qrcode +seccomp selinux ssl sysv-utils terminal test vanilla xkb"

+# CoreOS specific use flags
+IUSE+=" man symlink-usr"
+
 REQUIRED_USE="importd? ( curl gcrypt lzma )
 	python? ( ${PYTHON_REQUIRED_USE} )"

@@ -82,7 +92,6 @@
 # sys-apps/dbus: the daemon only (+ build-time lib dep for tests)
 PDEPEND=">=sys-apps/dbus-1.6.8-r1:0[systemd]
 	>=sys-apps/hwids-20130717-r1[udev]
-	>=sys-fs/udev-init-scripts-25
 	policykit? ( sys-auth/polkit )
 	!vanilla? ( sys-apps/gentoo-systemd-integration )"

@@ -102,19 +111,19 @@
 	terminal? ( media-fonts/unifont[utils(+)] )
 	test? ( >=sys-apps/dbus-1.6.8-r1:0 )"

-if [[ -n ${AUTOTOOLS_AUTORECONF} ]]; then
-	DEPEND+="
-		app-text/docbook-xml-dtd:4.2
+# Not required when building from unpatched tarballs, but we build from git.
+DEPEND+="
+	man? ( app-text/docbook-xml-dtd:4.2
 		app-text/docbook-xml-dtd:4.5
 		app-text/docbook-xsl-stylesheets
 		dev-libs/libxslt:0
-		>=dev-libs/libgcrypt-1.4.5:0"
-fi
-
-if [[ ${PV} == 9999 ]]; then
-	DEPEND+=" ${PYTHON_DEPS}"
-	REQUIRED_USE+=" ${PYTHON_REQUIRED_USE}"
-fi
+		${PYTHON_DEPS} )
+	terminal? ( ${PYTHON_DEPS} )
+	>=dev-libs/libgcrypt-1.4.5:0"
+
+REQUIRED_USE+="
+	man? ( ${PYTHON_REQUIRED_USE} )
+	terminal? ( ${PYTHON_REQUIRED_USE} )"

 pkg_pretend() {
 	local CONFIG_CHECK="~AUTOFS4_FS ~BLK_DEV_BSG ~CGROUPS
@@ -162,12 +171,6 @@
 	# Bug 463376
 	sed -i -e 's/GROUP="dialout"/GROUP="uucp"/' rules/*.rules || die

-	if [[ ${PV} != 9999 ]]; then
-		# Update the timestamp on this to avoid rebuilding it.
-		[[ -e src/libsystemd-terminal/unifont-glyph-array.bin ]] || die "File missing from tarball"
-		touch src/libsystemd-terminal/unifont-glyph-array.bin || die
-	fi
-
 	autotools-utils_src_prepare
 }

@@ -177,18 +180,14 @@
 	# Fix systems broken by bug #509454.
 	[[ ${MY_UDEVDIR} ]] || MY_UDEVDIR=/lib/udev

-	if [[ ${PV} == 9999 ]] || use python; then
-		python_setup
-	fi
+	python_setup

 	multilib-minimal_src_configure
 }

 multilib_src_configure() {
 	local myeconfargs=(
-		# disable -flto since it is an optimization flag
-		# and makes distcc less effective
-		cc_cv_CFLAGS__flto=no
+		--with-pamconfdir=/usr/share/pam.d

 		# Workaround for bug 516346
 		--enable-dependency-tracking
@@ -229,6 +228,7 @@
 		$(multilib_native_use_enable kmod)
 		$(use_enable lz4)
 		$(use_enable lzma xz)
+		$(multilib_native_use_enable man manpages)
 		$(multilib_native_use_enable nat libiptc)
 		$(multilib_native_use_enable pam)
 		$(multilib_native_use_enable policykit polkit)
@@ -250,11 +250,19 @@
 		EFI_CC="$(tc-getCC)"

 		# dbus paths
-		--with-dbuspolicydir="${EPREFIX}/etc/dbus-1/system.d"
+		--with-dbuspolicydir="${EPREFIX}/usr/share/dbus-1/system.d"
 		--with-dbussessionservicedir="${EPREFIX}/usr/share/dbus-1/services"
 		--with-dbussystemservicedir="${EPREFIX}/usr/share/dbus-1/system-services"

-		--with-ntp-servers="0.gentoo.pool.ntp.org 1.gentoo.pool.ntp.org 2.gentoo.pool.ntp.org 3.gentoo.pool.ntp.org"
+		--with-ntp-servers="0.coreos.pool.ntp.org 1.coreos.pool.ntp.org 2.coreos.pool.ntp.org 3.coreos.pool.ntp.org"
+
+		# The CoreOS epoch, Mon Jul  1 00:00:00 UTC 2013. Used by timesyncd
+		# as a sanity check for the minimum acceptable time. Explicitly set
+		# to avoid using the current build time.
+		--with-time-epoch=1372636800
+
+		# no default name servers
+		--with-dns-servers=
 	)

 	if ! multilib_is_native_abi; then
@@ -326,38 +334,81 @@
 }

 multilib_src_install_all() {
+	local unitdir=$(systemd_get_unitdir)
+
 	prune_libtool_files --modules
 	einstalldocs

 	if use sysv-utils; then
+		local prefix
+		use symlink-usr && prefix=/usr
 		for app in halt poweroff reboot runlevel shutdown telinit; do
-			dosym "..${ROOTPREFIX-/usr}/bin/systemctl" /sbin/${app}
+			dosym "${ROOTPREFIX-/usr}/bin/systemctl" ${prefix}/sbin/${app}
 		done
-		dosym "..${ROOTPREFIX-/usr}/lib/systemd/systemd" /sbin/init
-	else
+		dosym "${ROOTPREFIX-/usr}/lib/systemd/systemd" ${prefix}/sbin/init
+	elif use man; then
 		# we just keep sysvinit tools, so no need for the mans
 		rm "${D}"/usr/share/man/man8/{halt,poweroff,reboot,runlevel,shutdown,telinit}.8 \
 			|| die
 		rm "${D}"/usr/share/man/man1/init.1 || die
 	fi

-	# Disable storing coredumps in journald, bug #433457
-	mv "${D}"/usr/lib/sysctl.d/50-coredump.conf{,.disabled} || die
-
-	# Preserve empty dirs in /etc & /var, bug #437008
-	keepdir /etc/binfmt.d /etc/modules-load.d /etc/tmpfiles.d \
-		/etc/systemd/ntp-units.d /etc/systemd/user /var/lib/systemd \
-		/var/log/journal/remote
-
-	# Symlink /etc/sysctl.conf for easy migration.
-	dosym ../sysctl.conf /etc/sysctl.d/99-sysctl.conf
-
-	# If we install these symlinks, there is no way for the sysadmin to remove them
-	# permanently.
-	rm "${D}"/etc/systemd/system/multi-user.target.wants/systemd-networkd.service || die
-	rm "${D}"/etc/systemd/system/multi-user.target.wants/systemd-resolved.service || die
-	rm -r "${D}"/etc/systemd/system/network-online.target.wants || die
-	rm -r "${D}"/etc/systemd/system/sysinit.target.wants || die
+	# Ensure journal directory has correct ownership/mode in inital image.
+	# This is fixed by systemd-tmpfiles *but* journald starts before that
+	# and will create the journal if the filesystem is already read-write.
+	# Conveniently the systemd Makefile sets this up completely wrong.
+	dodir /var/log/journal
+	fowners root:systemd-journal /var/log/journal
+	fperms 2755 /var/log/journal
+
+	systemd_dotmpfilesd "${FILESDIR}"/systemd-coreos.conf
+	systemd_dotmpfilesd "${FILESDIR}"/systemd-resolv.conf
+
+	# Don't default to graphical.target
+	rm "${D}${unitdir}"/default.target || die
+	dosym multi-user.target "${unitdir}"/default.target
+
+	# Move a few services enabled in /etc to /usr, delete files individually
+	# so builds fail if systemd adds any new unexpected stuff to /etc
+	local f
+	for f in \
+		getty.target.wants/getty@tty1.service \
+		multi-user.target.wants/remote-fs.target \
+		multi-user.target.wants/systemd-networkd.service \
+		multi-user.target.wants/systemd-resolved.service \
+		network-online.target.wants/systemd-networkd-wait-online.service \
+		sockets.target.wants/systemd-networkd.socket \
+		sysinit.target.wants/systemd-timesyncd.service
+	do
+		local s="${f#*/}" t="${f%/*}"
+		local u="${s/@*.service/@.service}"
+
+		# systemd_enable_service doesn't understand template units
+		einfo "Enabling ${s} via ${t}"
+		dodir "${unitdir}/${t}"
+		dosym "../${u}" "${unitdir}/${t}/${s}"
+
+		rm "${D}/etc/systemd/system/${f}" || die
+	done
+	rmdir "${D}"/etc/systemd/system/*.wants || die
+
+	# Grant networkd access to set the transient host name
+	insinto /usr/share/polkit-1/rules.d
+	doins "${FILESDIR}"/99-org.freedesktop.hostname1.rules
+
+	# Do not enable random services if /etc was detected as empty!!!
+	rm "${D}"/usr/lib/systemd/system-preset/90-systemd.preset
+	insinto /usr/lib/systemd/system-preset
+	doins "${FILESDIR}"/99-default.preset
+
+	# Disable the "First Boot Wizard" by default, it isn't very applicable to CoreOS
+	rm "${D}${unitdir}"/sysinit.target.wants/systemd-firstboot.service
+
+	# Do not ship distro-specific files (nsswitch.conf pam.d)
+	rm -rf "${D}"/usr/share/factory
+	sed -i "${D}"/usr/lib/tmpfiles.d/etc.conf \
+		-e '/^C \/etc\/nsswitch\.conf/d' \
+		-e '/^C \/etc\/pam\.d/d'
 }

 migrate_locale() {
```
2015-07-08 16:32:37 -07:00
Michael Marineau
5d07880d3d Merge pull request #1344 from marineam/util-linux
util-linux: don't bother excluding misc small utilities
2015-07-08 14:14:09 -07:00
Michael Marineau
17ff57c376 Merge pull request #433 from marineam/rebuild
build_packages: be less aggressive about rebuilding packages
2015-07-08 13:58:22 -07:00
Michael Marineau
28c3c3def3 build_packages: be less aggressive about rebuilding packages
The --rebuild-if-unbuilt emerge option will recompile packages if any
build-time dependencies changed. This can be a useful safety to make
sure applications get re-linked and so forth. However recent versions of
portage have grown better defaults for choosing when to rebuild so lets
turn the build_packages flag around and leave emerge to do its default
behavior and see if that is sufficiently safe.
2015-07-08 13:45:18 -07:00
Michael Marineau
028e21b14e Merge pull request #236 from marineam/ccache
bump(dev-util/ccache): sync with upstream
2015-07-08 13:26:38 -07:00
Nick Owens
e6fe35eb12 Merge pull request #234 from mischief/libxml2
bump(dev-libs/libxml2): sync with upstream
2015-07-08 13:25:10 -07:00
Nick Owens
74dbb152b9 Merge pull request #235 from mischief/sqlite
bump(dev-db/sqlite): sync with upstream
2015-07-08 13:25:03 -07:00
Michael Marineau
b44ef79681 Merge pull request #1343 from marineam/ccache
ccache and systemd build cleanups
2015-07-08 12:02:02 -07:00
Michael Marineau
1ad8deb6ce systemd: remove nls use flag
This option doesn't actually do anything, it merely moves errors about
missing intltool from the compile step to the configure step. Upstream
dropped the flag ages ago but we kept it not knowing if it was useful.
2015-07-08 12:00:57 -07:00
Michael Marineau
76885d2ab3 systemd: add a 'man' use flag
No need to spend time generating man pages for targets we never install
man pages on.
2015-07-08 12:00:57 -07:00
Michael Marineau
d1da4816c4 systemd: remove old configure options
elfutils has a use flag, the dbus option was removed in 219
2015-07-08 12:00:50 -07:00
Michael Marineau
09e076669b util-linux: don't bother excluding misc small utilities
We may not *need* things like fsck.minix but it does get the systemd
test suite to pass. setarch should be there. fdformat and others are no
longer built by the ebuild.
2015-07-08 11:48:19 -07:00
Michael Marineau
5c8f1516ad systemd: set explicit reference time for NTP 2015-07-07 20:35:45 -07:00
Michael Marineau
e9a96f2f61 profiles: re-enable ccache, using latest 3.2.x version
Kernel builds should now be happy with ccache so re-enable by default.
2015-07-07 20:33:42 -07:00
Michael Marineau
7fed71e9ac coreos-kernel: explicitly add -nopie for hardened compilers
The Gentoo hardened compiler enables PIE by default unless it detects an
incompatible option. To detect kernel builds it uses -D__KERNEL__ which
is unfortunately a preprocessor option that ccache >= 3.2 will not pass
to compile-only calls, since in theory it is unnessicary and omitting
preprocessor options works around and issues in another (*cough* LLVM)
compilers. There really isn't any other alternative magic hack so go
with the plain no-magic solution. :)

Bug: https://bugs.gentoo.org/show_bug.cgi?id=535984
2015-07-07 20:25:12 -07:00
Michael Marineau
123ba24f9e bump(dev-util/ccache): sync with upstream 2015-07-07 18:07:52 -07:00
mischief
9f7b64dd3a bump(dev-db/sqlite): sync with upstream 2015-07-07 06:59:19 -07:00
mischief
40f709adac bump(dev-libs/libxml2): sync with upstream 2015-07-07 06:56:29 -07:00
Alex Crawford
f968fd1697 Merge pull request #233 from crawford/rust
bump(dev-lang/rust-bin): sync with upstream
2015-07-06 19:47:14 -07:00
Alex Crawford
75836ac1d2 bump(dev-lang/rust-bin): sync with upstream 2015-07-06 18:23:20 -07:00
Alex Crawford
9d50045378 remove(dev-lang/rust): moving to rust-bin 2015-07-06 18:23:20 -07:00
Alex Crawford
edfd5ad012 Merge pull request #1342 from crawford/seismograph
sys-apps/seismograph: include disk GUID feature
2015-07-06 16:47:25 -07:00
Alex Crawford
7ac986e5ed sys-apps/seismograph: include disk GUID feature 2015-07-06 13:51:16 -07:00
Michael Marineau
5d037e2840 Merge pull request #432 from marineam/cleanup
bootstrap_sdk: do not remove make.conf
2015-07-06 13:22:41 -07:00
Michael Marineau
aa4ba8b2bb bootstrap_sdk: do not remove make.conf, turns out catalyst runs sed over it 2015-07-06 13:14:51 -07:00
Michael Marineau
1721249283 Merge pull request #1341 from coreos/revert-1337-update
Revert "Update update_engine"
2015-07-06 13:10:33 -07:00
Michael Marineau
db5b23df47 Merge pull request #431 from marineam/cleanup
Simplify SDK setup
2015-07-06 12:15:56 -07:00
Michael Marineau
9f6ef609b5 Revert "Update update_engine" 2015-07-06 06:08:46 -07:00
Michael Marineau
2eec99130b setup_board: simplify PORTAGE_USERNAME handling 2015-07-05 18:01:50 -07:00
Michael Marineau
1fa7ef236b update_chroot: remove dependency on complex 'chromeos-cache' links
The distfiles cache is always under .cache in the repo tree but there is
a lot of extra logic to make that configurable along with compatibility
symlinks for previous locations. Just yank it all out.
2015-07-05 17:54:00 -07:00
Michael Marineau
611ed7698e enter_chroot: remove subversion config goo
We do not have any svn based live ebuilds that require credentials which
I presume is the only reason for shuffling svn configs like this.
2015-07-05 17:20:43 -07:00
Michael Marineau
db734ea417 bootstrap_sdk: do not leak catalyst config into sdk tarballs
The version of repos.conf/coreos.conf that catalyst needs isn't valid
for normal SDK chroots and causes env-update to spew errors when it is
run prior to update_chroot which configures portage properly.
2015-07-05 16:57:05 -07:00
Michael Marineau
174a847e36 update_chroot: remove dependence on /usr/local/portage/* symlinks
A step in reducing the amount of initialization code required: drop
needless symlinks under /usr/local/portage to the portage trees. Just
configure portage to point directly at the source instead. Only crossdev
remains in that location because it is a locally managed overlay.
2015-07-05 16:57:05 -07:00
Michael Marineau
dcf94ca48c Merge pull request #1340 from coreos/revert-1338-fleet-0.11.0
Revert "app-admin/fleet: bump to v0.11.0"
2015-07-04 20:16:09 -07:00
Michael Marineau
1520766779 Revert "app-admin/fleet: bump to v0.11.0" 2015-07-04 13:14:32 -07:00
Michael Marineau
76856e8718 Merge pull request #430 from marineam/auzip
generate_au_zip: improve error reporting of missing files
2015-07-03 21:47:06 -07:00
Michael Marineau
0477ee2df0 Merge pull request #1337 from marineam/update
Update update_engine
2015-07-03 21:46:57 -07:00
Nick Owens
c6b9fa98be Merge pull request #1339 from mischief/networkd-nat
sys-apps/systemd: enable nat use flag for ip masquerading in networkd
2015-07-03 18:49:53 -07:00