2015-04-17 14:03:24 -04:00
# Copyright (C) 2015 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.
noinst_LTLIBRARIES += librpmostreepriv.la
librpmostreepriv_la_SOURCES = \
src/libpriv/rpmostree-postprocess.c \
src/libpriv/rpmostree-postprocess.h \
src/libpriv/rpmostree-json-parsing.c \
src/libpriv/rpmostree-json-parsing.h \
src/libpriv/rpmostree-util.c \
src/libpriv/rpmostree-util.h \
2018-01-22 16:44:16 +00:00
src/libpriv/rpmostree-types.h \
2015-04-17 14:03:24 -04:00
src/libpriv/rpmostree-passwd-util.c \
src/libpriv/rpmostree-passwd-util.h \
2015-05-22 10:54:41 -04:00
src/libpriv/rpmostree-refts.h \
src/libpriv/rpmostree-refts.c \
2016-02-09 16:38:38 +01:00
src/libpriv/rpmostree-core.c \
src/libpriv/rpmostree-core.h \
2017-12-21 12:29:30 +01:00
src/libpriv/rpmostree-core-private.h \
2016-08-12 13:03:23 -04:00
src/libpriv/rpmostree-bwrap.c \
src/libpriv/rpmostree-bwrap.h \
2017-01-05 22:55:11 -05:00
src/libpriv/rpmostree-kernel.c \
src/libpriv/rpmostree-kernel.h \
2017-01-11 14:05:18 -05:00
src/libpriv/rpmostree-origin.c \
src/libpriv/rpmostree-origin.h \
2016-06-17 15:14:24 -04:00
src/libpriv/rpmostree-scripts.c \
src/libpriv/rpmostree-scripts.h \
2015-05-20 13:21:48 -04:00
src/libpriv/rpmostree-refsack.h \
src/libpriv/rpmostree-refsack.c \
2015-04-17 14:03:24 -04:00
src/libpriv/rpmostree-rpm-util.c \
src/libpriv/rpmostree-rpm-util.h \
2017-11-17 16:57:05 -05:00
src/libpriv/rpmostree-importer.c \
src/libpriv/rpmostree-importer.h \
2018-02-27 15:16:28 -05:00
src/libpriv/rpmostree-rojig-build.c \
src/libpriv/rpmostree-rojig-build.h \
2018-02-27 15:23:59 -05:00
src/libpriv/rpmostree-rojig-assembler.c \
src/libpriv/rpmostree-rojig-assembler.h \
2018-02-27 15:13:09 -05:00
src/libpriv/rpmostree-rojig-core.h \
2018-02-27 15:18:07 -05:00
src/libpriv/rpmostree-rojig-client.c \
2017-11-17 16:57:05 -05:00
src/libpriv/rpmostree-unpacker-core.c \
src/libpriv/rpmostree-unpacker-core.h \
2016-05-10 12:17:26 -04:00
src/libpriv/rpmostree-output.c \
src/libpriv/rpmostree-output.h \
2017-09-30 00:07:08 +00:00
src/libpriv/rpmostree-kargs-process.c \
src/libpriv/rpmostree-kargs-process.h \
2017-11-02 20:24:37 +00:00
src/libpriv/rpmostree-editor.c \
src/libpriv/rpmostree-editor.h \
2016-05-29 14:15:29 -04:00
src/libpriv/libsd-locale-util.c \
src/libpriv/libsd-locale-util.h \
2017-12-15 17:01:46 +00:00
src/libpriv/libsd-time-util.c \
src/libpriv/libsd-time-util.h \
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 14:54:33 -05:00
src/libpriv/rpmostree-libarchive-input-stream.c \
src/libpriv/rpmostree-libarchive-input-stream.h \
2016-05-10 12:17:26 -04:00
$(NULL)
librpmostreepriv_la_CFLAGS = \
$(AM_CFLAGS) \
2017-04-21 16:23:33 -04:00
-I$(srcdir)/src/lib \
2016-05-10 12:17:26 -04:00
-I$(srcdir)/src/libpriv \
-I$(libglnx_srcpath) \
-DPKGLIBDIR=\"$(pkglibdir)\" \
2018-03-28 10:08:16 -04:00
-fvisibility=hidden \
2016-05-10 12:17:26 -04:00
$(PKGDEP_RPMOSTREE_CFLAGS) \
$(NULL)
librpmostreepriv_la_LIBADD = \
$(PKGDEP_RPMOSTREE_LIBS) \
libglnx.la \
$(CAP_LIBS) \
2015-04-17 14:03:24 -04:00
$(NULL)
2016-06-17 15:14:24 -04:00
2016-08-03 14:30:17 -04:00
# bundled libdnf
EXTRA_librpmostreepriv_la_DEPENDENCIES = libdnf.so.1
2016-06-28 21:33:02 -04:00
2016-06-17 15:14:24 -04:00
gperf_gperf_sources = src/libpriv/rpmostree-script-gperf.gperf
BUILT_SOURCES += $(gperf_gperf_sources:-gperf.gperf=-gperf.c)
CLEANFILES += $(gperf_gperf_sources:-gperf.gperf=-gperf.c)
nodist_librpmostreepriv_la_SOURCES = src/libpriv/rpmostree-script-gperf.c
2017-12-13 17:17:03 -05:00
rpmostree-libpriv-gresources.c: src/libpriv/gresources.xml Makefile $(shell glib-compile-resources --sourcedir=$(srcdir)/src/libpriv --generate-dependencies $(srcdir)/src/libpriv/gresources.xml)
$(AM_V_GEN) glib-compile-resources --target=$@ --sourcedir=$(srcdir)/src/libpriv --generate-source --c-name _rpmostree_ $<
BUILT_SOURCES += rpmostree-libpriv-gresources.c
librpmostreepriv_la_SOURCES += rpmostree-libpriv-gresources.c
2016-06-17 15:14:24 -04:00
AM_V_GPERF = $(AM_V_GPERF_$(V))
AM_V_GPERF_ = $(AM_V_GPERF_$(AM_DEFAULT_VERBOSITY))
AM_V_GPERF_0 = @echo " GPERF " $@;
src/%.c: src/%.gperf Makefile
$(AM_V_at)$(MKDIR_P) $(dir $@)
$(AM_V_GPERF)$(GPERF) < $< > $@.tmp && mv $@.tmp $@