2015-04-17 21:03:24 +03: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.
2020-12-17 01:04:40 +03:00
librpmostreepriv_sources = \
2020-12-06 22:46:20 +03:00
src/libpriv/rpmostree-postprocess.cxx \
2015-04-17 21:03:24 +03:00
src/libpriv/rpmostree-postprocess.h \
src/libpriv/rpmostree-json-parsing.c \
src/libpriv/rpmostree-json-parsing.h \
2020-12-19 19:12:39 +03:00
src/libpriv/rpmostree-util.cxx \
2015-04-17 21:03:24 +03:00
src/libpriv/rpmostree-util.h \
2018-01-22 19:44:16 +03:00
src/libpriv/rpmostree-types.h \
2020-12-19 00:49:43 +03:00
src/libpriv/rpmostree-passwd-util.cxx \
2015-04-17 21:03:24 +03:00
src/libpriv/rpmostree-passwd-util.h \
2015-05-22 17:54:41 +03:00
src/libpriv/rpmostree-refts.h \
2020-12-19 21:17:03 +03:00
src/libpriv/rpmostree-refts.cxx \
2020-12-06 23:54:37 +03:00
src/libpriv/rpmostree-core.cxx \
2016-02-09 18:38:38 +03:00
src/libpriv/rpmostree-core.h \
2017-12-21 14:29:30 +03:00
src/libpriv/rpmostree-core-private.h \
2020-11-22 22:55:06 +03:00
src/libpriv/rpmostree-bwrap.cxx \
2016-08-12 20:03:23 +03:00
src/libpriv/rpmostree-bwrap.h \
2020-12-11 04:36:49 +03:00
src/libpriv/rpmostree-kernel.cxx \
2017-01-06 06:55:11 +03:00
src/libpriv/rpmostree-kernel.h \
2020-12-21 19:08:51 +03:00
src/libpriv/rpmostree-origin.cxx \
2017-01-11 22:05:18 +03:00
src/libpriv/rpmostree-origin.h \
2020-12-21 19:08:51 +03:00
src/libpriv/rpmostree-scripts.cxx \
2016-06-17 22:14:24 +03:00
src/libpriv/rpmostree-scripts.h \
2015-05-20 20:21:48 +03:00
src/libpriv/rpmostree-refsack.h \
2020-11-22 22:55:06 +03:00
src/libpriv/rpmostree-refsack.cxx \
2020-12-19 18:29:13 +03:00
src/libpriv/rpmostree-rpm-util.cxx \
2015-04-17 21:03:24 +03:00
src/libpriv/rpmostree-rpm-util.h \
2020-12-21 19:08:51 +03:00
src/libpriv/rpmostree-importer.cxx \
2017-11-18 00:57:05 +03:00
src/libpriv/rpmostree-importer.h \
2020-12-21 19:08:51 +03:00
src/libpriv/rpmostree-unpacker-core.cxx \
2017-11-18 00:57:05 +03:00
src/libpriv/rpmostree-unpacker-core.h \
2020-12-18 21:17:11 +03:00
src/libpriv/rpmostree-output.cxx \
2016-05-10 19:17:26 +03:00
src/libpriv/rpmostree-output.h \
2017-11-02 23:24:37 +03:00
src/libpriv/rpmostree-editor.c \
src/libpriv/rpmostree-editor.h \
2016-05-29 21:15:29 +03:00
src/libpriv/libsd-locale-util.c \
src/libpriv/libsd-locale-util.h \
2017-12-15 20:01:46 +03:00
src/libpriv/libsd-time-util.c \
src/libpriv/libsd-time-util.h \
2020-12-19 21:17:03 +03:00
src/libpriv/rpmostree-libarchive-input-stream.cxx \
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/libpriv/rpmostree-libarchive-input-stream.h \
2016-05-10 19:17:26 +03:00
$(NULL)
2020-10-22 20:33:45 +03:00
if BUILDOPT_ROJIG
2020-12-17 01:04:40 +03:00
librpmostreepriv_sources += \
2020-12-19 18:29:13 +03:00
src/libpriv/rpmostree-rojig-build.cxx \
2020-10-22 20:33:45 +03:00
src/libpriv/rpmostree-rojig-build.h \
2020-12-21 19:08:51 +03:00
src/libpriv/rpmostree-rojig-assembler.cxx \
2020-10-22 20:33:45 +03:00
src/libpriv/rpmostree-rojig-assembler.h \
src/libpriv/rpmostree-rojig-core.h \
2020-12-21 19:08:51 +03:00
src/libpriv/rpmostree-rojig-client.cxx \
2020-10-22 20:33:45 +03:00
$(NULL)
endif
2016-06-17 22:14:24 +03: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)
2020-12-17 01:04:40 +03:00
nodist_librpmostreepriv_sources = src/libpriv/rpmostree-script-gperf.c
2016-06-17 22:14:24 +03:00
2017-12-14 01:17:03 +03: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
2020-12-17 01:04:40 +03:00
librpmostreepriv_sources += rpmostree-libpriv-gresources.c
2017-12-14 01:17:03 +03:00
2016-06-17 22:14:24 +03: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 $@