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.
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 19:44:16 +03:00
src/libpriv/rpmostree-types.h \
2015-04-17 21:03:24 +03:00
src/libpriv/rpmostree-passwd-util.c \
src/libpriv/rpmostree-passwd-util.h \
2015-05-22 17:54:41 +03:00
src/libpriv/rpmostree-refts.h \
src/libpriv/rpmostree-refts.c \
2016-02-09 18:38:38 +03:00
src/libpriv/rpmostree-core.c \
src/libpriv/rpmostree-core.h \
2017-12-21 14:29:30 +03:00
src/libpriv/rpmostree-core-private.h \
2016-08-12 20:03:23 +03:00
src/libpriv/rpmostree-bwrap.c \
src/libpriv/rpmostree-bwrap.h \
2017-01-06 06:55:11 +03:00
src/libpriv/rpmostree-kernel.c \
src/libpriv/rpmostree-kernel.h \
2017-01-11 22:05:18 +03:00
src/libpriv/rpmostree-origin.c \
src/libpriv/rpmostree-origin.h \
2016-06-17 22:14:24 +03:00
src/libpriv/rpmostree-scripts.c \
src/libpriv/rpmostree-scripts.h \
2015-05-20 20:21:48 +03:00
src/libpriv/rpmostree-refsack.h \
src/libpriv/rpmostree-refsack.c \
2015-04-17 21:03:24 +03:00
src/libpriv/rpmostree-rpm-util.c \
src/libpriv/rpmostree-rpm-util.h \
2017-11-18 00:57:05 +03:00
src/libpriv/rpmostree-importer.c \
src/libpriv/rpmostree-importer.h \
2017-12-13 21:43:25 +03:00
src/libpriv/rpmostree-jigdo-build.c \
src/libpriv/rpmostree-jigdo-build.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 22:54:33 +03:00
src/libpriv/rpmostree-jigdo-assembler.c \
src/libpriv/rpmostree-jigdo-assembler.h \
2018-02-27 23:13:09 +03:00
src/libpriv/rpmostree-rojig-core.h \
2017-12-21 14:29:49 +03:00
src/libpriv/rpmostree-jigdo-client.c \
2017-11-18 00:57:05 +03:00
src/libpriv/rpmostree-unpacker-core.c \
src/libpriv/rpmostree-unpacker-core.h \
2016-05-10 19:17:26 +03:00
src/libpriv/rpmostree-output.c \
src/libpriv/rpmostree-output.h \
2017-09-30 03:07:08 +03:00
src/libpriv/rpmostree-kargs-process.c \
src/libpriv/rpmostree-kargs-process.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 \
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.c \
src/libpriv/rpmostree-libarchive-input-stream.h \
2016-05-10 19:17:26 +03:00
$(NULL)
librpmostreepriv_la_CFLAGS = \
$(AM_CFLAGS) \
2017-04-21 23:23:33 +03:00
-I$(srcdir)/src/lib \
2016-05-10 19:17:26 +03:00
-I$(srcdir)/src/libpriv \
-I$(libglnx_srcpath) \
-DPKGLIBDIR=\"$(pkglibdir)\" \
$(PKGDEP_RPMOSTREE_CFLAGS) \
$(NULL)
librpmostreepriv_la_LIBADD = \
$(PKGDEP_RPMOSTREE_LIBS) \
libglnx.la \
$(CAP_LIBS) \
2015-04-17 21:03:24 +03:00
$(NULL)
2016-06-17 22:14:24 +03:00
2016-08-03 21:30:17 +03:00
# bundled libdnf
EXTRA_librpmostreepriv_la_DEPENDENCIES = libdnf.so.1
2016-06-29 04:33:02 +03:00
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)
nodist_librpmostreepriv_la_SOURCES = src/libpriv/rpmostree-script-gperf.c
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
librpmostreepriv_la_SOURCES += rpmostree-libpriv-gresources.c
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 $@