2013-12-22 04:41:30 +04:00
# Copyright (C) 2013 Colin Walters <walters@verbum.org>
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
2014-01-29 23:37:44 +04:00
bin_PROGRAMS += rpm-ostree
2013-12-22 04:41:30 +04:00
2015-04-07 03:18:50 +03:00
rpm_ostree_SOURCES = src/app/main.c \
2015-04-28 04:22:58 +03:00
rpm-ostreed-generated.h \
rpm-ostreed-generated.c \
2015-04-07 03:18:50 +03:00
src/app/rpmostree-builtins.h \
src/app/rpmostree-db-builtins.h \
src/app/rpmostree-compose-builtins.h \
src/app/rpmostree-builtin-upgrade.c \
src/app/rpmostree-builtin-rollback.c \
2015-10-21 16:50:26 +03:00
src/app/rpmostree-builtin-deploy.c \
2016-08-06 16:07:56 +03:00
src/app/rpmostree-builtin-reload.c \
2015-04-07 03:18:50 +03:00
src/app/rpmostree-builtin-rebase.c \
2017-12-06 01:14:18 +03:00
src/app/rpmostree-builtin-cancel.c \
2017-02-09 01:38:49 +03:00
src/app/rpmostree-builtin-cleanup.c \
2017-02-10 20:33:08 +03:00
src/app/rpmostree-builtin-initramfs.c \
Introduce `ex livefs`
There are a few different use cases here. First, for layering new packages,
there's no good reason for us to force a reboot. Second, we want some support
for cherry-picking security updates and allowing admins to restart services. Finally,
at some point we should offer support for entirely replacing the running tree
if that's what the user wants.
Until now we've been very conservative, but there's a spectrum here. In
particular, this patch changes things so we push a rollback before we start
doing anything live. I think in practice, many use cases would be totally fine
with doing most changes live, and falling back to the rollback if something went
wrong.
This initial code drop *only* supports live layering of new packages. However,
a lot of the base infrastructure is laid for future work.
For now, this will be classified as an experimental feature, hence `ex livefs`.
Part of: https://github.com/projectatomic/rpm-ostree/issues/639
Closes: #652
Approved by: jlebon
2017-03-01 01:16:48 +03:00
src/app/rpmostree-builtin-livefs.c \
2018-02-06 22:44:48 +03:00
src/app/rpmostree-builtin-usroverlay.c \
2017-06-05 19:37:56 +03:00
src/app/rpmostree-builtin-override.c \
2017-10-04 18:20:16 +03:00
src/app/rpmostree-builtin-refresh-md.c \
2016-06-23 04:14:27 +03:00
src/app/rpmostree-pkg-builtins.c \
2015-04-07 03:18:50 +03:00
src/app/rpmostree-builtin-status.c \
2017-03-16 04:05:14 +03:00
src/app/rpmostree-builtin-ex.c \
2016-01-26 22:40:51 +03:00
src/app/rpmostree-builtin-container.c \
Introduce experimental "rpm-ostree jigdo"
Tracking issue: https://github.com/projectatomic/rpm-ostree/issues/1081
To briefly recap: Let's experiment with doing ostree-in-RPM, basically the
"compose" process injects additional data (SELinux labels for example) in an
"ostree image" RPM, like `fedora-atomic-host-27.8-1.x86_64.rpm`. That "ostree
image" RPM will contain the OSTree commit+metadata, and tell us what RPMs we
need need to download. For updates, like `yum update` we only download changed
RPMs, plus the new "oirpm". But SELinux labeling, depsolving, etc. are still
done server side, and we still have a reliable OSTree commit checksum.
This is a lot like [Jigdo](http://atterer.org/jigdo/)
Here we fully demonstrate the concept working end-to-end; we use the
"traditional" `compose tree` to commit a bunch of RPMs to an OSTree repo, which
has a checksum, version etc. Then the new `ex commit2jigdo` generates the
"oirpm". This is the "server side" operation. Next simulating the client side,
`jigdo2commit` takes the OIRPM and uses it and downloads the "jigdo set" RPMs,
fully regenerating *bit for bit* the final OSTree commit.
If you want to play with this, I'd take a look at the `test-jigdo.sh`; from
there you can find other useful bits like the example `fedora-atomic-host.spec`
file (though the canonical copy of this will likely land in the
[fedora-atomic](http://pagure.io/fedora-atomic) manifest git repo.
Closes: #1103
Approved by: jlebon
2017-11-09 22:54:33 +03:00
src/app/rpmostree-ex-builtin-commit2jigdo.c \
src/app/rpmostree-ex-builtin-jigdo2commit.c \
2015-04-07 03:18:50 +03:00
src/app/rpmostree-builtin-db.c \
2017-02-10 20:33:08 +03:00
src/app/rpmostree-builtin-start-daemon.c \
2015-04-07 03:18:50 +03:00
src/app/rpmostree-db-builtin-diff.c \
src/app/rpmostree-db-builtin-list.c \
src/app/rpmostree-db-builtin-version.c \
2015-06-13 03:19:16 +03:00
src/app/rpmostree-dbus-helpers.c \
src/app/rpmostree-dbus-helpers.h \
2016-01-26 22:40:51 +03:00
src/app/rpmostree-container-builtins.h \
src/app/rpmostree-container-builtins.c \
2017-06-05 19:37:56 +03:00
src/app/rpmostree-override-builtins.h \
src/app/rpmostree-override-builtins.c \
2015-04-19 16:36:53 +03:00
src/app/rpmostree-libbuiltin.c \
src/app/rpmostree-libbuiltin.h \
2017-07-25 19:59:56 +03:00
src/app/rpmostree-polkit-agent.c \
src/app/rpmostree-polkit-agent.h \
2017-09-25 19:05:24 +03:00
src/app/rpmostree-builtin-kargs.c \
2014-09-17 05:45:30 +04:00
$(NULL)
if BUILDOPT_COMPOSE_TOOLING
rpm_ostree_SOURCES += \
2015-04-07 03:18:50 +03:00
src/app/rpmostree-compose-builtin-tree.c \
src/app/rpmostree-builtin-compose.c \
2014-01-29 23:37:44 +04:00
$(NULL)
2014-09-17 05:45:30 +04:00
endif
2016-05-27 21:46:46 +03:00
rpm_ostree_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/src/app -I$(srcdir)/src/daemon \
-I$(srcdir)/src/lib -I$(srcdir)/src/libpriv -I$(libglnx_srcpath) \
-DPKGLIBDIR=\"$(pkglibdir)\" $(PKGDEP_RPMOSTREE_CFLAGS)
rpm_ostree_LDADD = $(PKGDEP_RPMOSTREE_LIBS) librpmostreepriv.la librpmostree-1.la librpmostreed.la
2014-01-16 16:26:54 +04:00
2013-12-22 04:41:30 +04:00
privdatadir=$(pkglibdir)
2016-06-15 23:30:11 +03:00
privdata_DATA = src/app/rpm-ostree-0-integration.conf
2016-10-19 21:24:40 +03:00
install-bin-hook:
mv $(DESTDIR)$(bindir)/rpm-ostree $(DESTDIR)$(bindir)/$(primaryname)
ln -sf $(primaryname) $(DESTDIR)$(bindir)/rpm-ostree
if BUILDOPT_NEW_NAME
INSTALL_DATA_HOOKS += install-bin-hook
endif