Commit Graph

707 Commits

Author SHA1 Message Date
Colin Walters
385303e3f8 compose: Disable yumdb by default
This API was added to libhif a while ago.  I'm adding this now because
libhif was changed recently to write the dnf copy of the yumdb, and we
didn't have code to remove it explicitly.

It's better not to write it in the first place.
2015-05-30 15:48:17 -04:00
Matthew Barnes
e5e6081c01 Merge pull request #151 from jasonbrooks/master
remove erroneous rpm-ostree equals /usr/bin/atomic reference
2015-05-28 15:12:01 -04:00
Jason Brooks
3e4963a9e8 remove erroneous rpm-ostree equals /usr/bin/atomic reference 2015-05-28 11:51:39 -07:00
Colin Walters
4515a0f07b Merge pull request #150 from cgwalters/hif-fatal-source-unavail
compose: Make use of hif_source_set_required()
2015-05-27 16:01:15 -04:00
Colin Walters
370c5e5b63 compose: Make use of hif_source_set_required()
We noticed that tree composes failed with a missing `atomic` package,
when really what happend is Fedora 22 was released and the repo
metadata moved from `development/` to `released/`.

See https://github.com/hughsie/libhif/pull/47
2015-05-26 10:43:33 -04:00
Matthew Barnes
a3210f908c build: Update libglnx to get autocleanup backports 2015-05-25 12:10:55 -04:00
Colin Walters
b8ac0f7caf libpriv: Introduce an rpmostree_mkdtemp()
- Can also give you a file descriptor
 - Takes a constant string as input, returning a mutated string as a
   separate variable which means that one can check whether the variable
   is `NULL` to know whether or not one needs to `rm -rf` it on error
   paths.
2015-05-23 09:32:28 -04:00
Colin Walters
bfe801b77e libpriv: Fix memory leak 2015-05-23 09:32:23 -04:00
Colin Walters
1aa0e37cc9 libpriv: Teach RpmRevisionData to use new RefTs API
More code de-duplication.
2015-05-23 09:30:57 -04:00
Colin Walters
70f5b535e4 libpriv: Add RpmOstreeRefTs and API to create one from a commit
This API is intended for use by the caching framework to hold open an
rpmdb for the previous commit.
2015-05-23 09:30:57 -04:00
Colin Walters
b378386e98 Prefer rpmostree_ for internal API over _rpm_ostree
The refsack code was using the latter, and it stood out.  Now that
we're making use of explicit export markers, there's no need to uglify
internal APIs with a leading `_`.
2015-05-22 09:38:55 -04:00
Colin Walters
07871a08fd libpriv: Further centralize (commit | root) -> (sack | rpmdb) code
While `rpm-util.c` may not best describe this, it's where most
of this code is ending up.  Let's further centralize things.

We more consistently return an `RpmOstreeRefSack` instead of a
`HySack`, where the former supports refcounting and knows how to clean
up its temporary directory if it was allocated from a commit.
2015-05-22 09:32:03 -04:00
Colin Walters
3c3947564d db: Use internal rpmdb-in-tempdir API
And now, finally the actual goal is achieved.  \o/

Only one code path dealing with extracting the rpm database from an
OSTree commit.

An astute reader would notice that the `root` member of the struct was
actually only necessary as of a few commits ago.  But said astute
reader would also realize it's kind of late in the evening and not
worth rebasing it to where it would properly go.
2015-05-21 21:27:38 -04:00
Colin Walters
0756708f24 db: Create var/lib/rpm -> ../../usr/share/rpm in tempdir
hawkey and libsolv are both patched to look in `usr/share/rpm` if the
db can't be found in `/var/lib/rpm`.  However, librpm itself isn't.
One *can* override it with a macro...which is process global.  Yuck.
Needs fixing.

Anyways, we can just make a symlink.  That's a lot easier than writing
a patch for librpm and waiting a billion years to be able to use it
everywhere we care about.

This will help unify the librpm tempdir code with the hawkey tempdir
code.
2015-05-21 21:25:27 -04:00
Colin Walters
60d68f6e24 db: Make RpmRevisionData an opaque struct
This allows us to more cleanly encapsulate things.
2015-05-21 21:16:21 -04:00
Colin Walters
349dd45679 db: Remove --rpmdbdir option
As far as I can tell, this is basically a way to specify the temporary
directory.  That significantly complicates the code as it now
needs to keep track of whether or not it owns the temporary directory.

This hinders unifying this code with the hawkey query path.

Because of this, and since I'm not aware of a use case for specifying
this tempdir, let's remove it.
2015-05-21 21:16:21 -04:00
Colin Walters
bd9b9eac0a Drop root arguments from internal rpmdb API
It was only used to access the yumdb, which we don't use because:

 - It badly exacerbates the OSTree one-HTTP-request-per-object issue
 - We're assembling multiple repos on the server side, so things like
   who took the action aren't relevant.

But the reason I did this patch at the moment is because I want to
unify the code that's creating tempdirs from commits so we can feed
real files to librpm.
2015-05-21 20:34:01 -04:00
Colin Walters
5de58aae9c libpriv: Split out an internal API to get a tempdir with just the rpmdb
For a future patch, I want to add an API to get an rpmts for a commit,
instead of a hawkey Sack, because libsolv doesn't expose some
optimized queries that we can get by just going directly to librpm,
such as package file owners.
2015-05-21 20:15:08 -04:00
Alexander Larsson
5331eeccc0 Merge pull request #148 from alexlarsson/container
Support container=true in treefile
2015-05-21 16:17:04 +02:00
Alexander Larsson
25d073d044 Add docs for container=true 2015-05-21 16:15:43 +02:00
Alexander Larsson
79cdcd1817 Support container: true in treefile
If this is set we don't do anything special for kernel or /boot, as
such things are not needed when running in a container.
2015-05-21 12:00:20 +02:00
Colin Walters
cf89acb74c (cleanup): Move the refsack and root loading code into libpriv
We had `src/lib` having its own little private library; I wanted to
use some of it inside `src/libpriv`, so let's consistently have all
private utility code in `src/libpriv`.

Closes: https://github.com/projectatomic/rpm-ostree/pull/147
2015-05-20 20:51:42 -04:00
Matthew Barnes
f420167dba Merge pull request #144 from mbarnes/package-cmp 2015-05-13 11:33:43 -04:00
Matthew Barnes
03b886dae0 lib: Add rpm_ostree_package_cmp()
Equivalent to hy_package_cmp(), but works for comparing packages from
different memory pools.

This a stop gap measure in light of
https://github.com/rpm-software-management/hawkey/pull/90

If and when that pull request gets merged, then this function could at
some later point simply call hy_package_cmp().
2015-05-13 11:31:30 -04:00
Colin Walters
1c3a549ef9 postprocess: Handle Fedora rawhide kernel installation
The vmlinuz binary has moved to /usr/lib/modules, which is a change
mostly for the better, but we need to adapt.

Closes: https://github.com/projectatomic/rpm-ostree/pull/143
2015-05-12 13:51:12 -04:00
Colin Walters
95fc6eb395 Release 2015.5 2015-05-11 16:05:51 -04:00
Colin Walters
f115d0276f db: Remove query parameter to diff
Matthew argues we can add this at a later time.
2015-04-23 16:30:18 -04:00
Colin Walters
8bf8d71f99 db: Remove query argument, rename to query_all()
Matthew argues that we can add this later.

https://github.com/projectatomic/rpm-ostree/pull/139#issuecomment-95327428
2015-04-23 16:30:18 -04:00
Colin Walters
c16058b66a libpriv: Move rpm/hawkey util functions into -rpm-util
`treepkgdiff` no longer describes the function of the file; as a baby
step towards unifying the db and hawkey code, move the functions into
that file.
2015-04-23 16:30:18 -04:00
Colin Walters
e414be8ae2 Move diff printing code into client
This is a step forward to deduplicating; the client tooling now calls
into the public API for diffs, rather than using the older internal
function.

Note: this patch also links the client against the public library.
2015-04-23 16:30:18 -04:00
Colin Walters
3326e13481 lib: Add diff API
This is a *third* implementation of rpm database diffs in the code,
but it is now a public introspectable shared library API.

Further commits will change the command line tools to use this, and
then after that we'll further deduplicate the `db diff` from this
code.
2015-04-23 16:30:18 -04:00
Colin Walters
28ab27caf7 db: Refactor internal helpers in preparation for diff API
This will make it easier to query two commits at once.  Note that
`RpmOstreeRefSack` now can hold a reference to a temporary directory.
2015-04-23 16:30:18 -04:00
Colin Walters
7b45f13a62 Link lib/ against libpriv/, use it to share sack loading function
On the plus side, we share some code between the library and the
binary now.  On the downside, because `librpmostreepriv.la` is a
noinst library, its code text is duplicated between the shared library
and binary, at least until we either:

 - Have the binary solely use the public shared library (like ostree does)
 - Install `librpmostreepriv.so` to e.g. `/usr/lib64/rpm-ostree/librpmostreepriv.so`
   without the headers being public
2015-04-23 16:30:17 -04:00
Colin Walters
f3600e922e libpriv: Adjust internal package diff API to be fd-relative
We presently have 3 internal code paths that are doing rpmdb
inspection.  This conversion to fd-relative for one of them is a
generic cleanup preparatory to de-duplicating.

Note this bumps libglnx to include
381ca54ee3
2015-04-23 16:30:17 -04:00
Giuseppe Scrivano
3bf7926adc postprocess: do not hardcode /etc/machine-id
The file is automatically populated by systemd when it is empty.

Apparently it doesn't work when the file is missing (as of
systemd-219-9.fc22).

https://bugzilla.redhat.com/show_bug.cgi?id=1198700

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2015-04-23 11:37:50 +02:00
Giuseppe Scrivano
ad30a790de Makefile-tests.am: clean generated files
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2015-04-22 11:41:03 +02:00
Colin Walters
5842741dd4 build: Update libglnx to get latest progress API changes 2015-04-17 14:13:23 -04:00
Matthew Barnes
347a5003e0 status: Print any GPG signatures for deployments
In pretty mode (--pretty), print signatures for each listed deployment.

Otherwise, just print signatures for the booted deployment at the end to
preserve the tabular formatting of the deployment list.
2015-04-17 12:32:35 -04:00
Matthew Barnes
750a8889f0 upgrade: Print any GPG signatures while upgrading 2015-04-17 12:30:04 -04:00
Colin Walters
3e6f877282 lib: Add RpmOstreePackage
The `QueryResult` class ended up being too awkward; having NEVRA
strings meant for example that clients would have to parse them.  It
would be harder to present something like the current `rpm-ostree
upgrade` package diff output.

Now...I debated quite a while before doing this patch.  The thing
that's really awful about creating this library is there are *SO MANY*
layers.  rpm-ostree → libhif → hawkey → libsolv → librpm.  It's enough
to make one question whether one is actually accomplishing anything or
just contributing to a collective insanity...

Let's pretend for now it's the former.

Closes: https://github.com/projectatomic/rpm-ostree/pull/136
2015-04-16 13:26:58 -04:00
Matthew Barnes
3578c446b5 Merge pull request #134 from swordphilic/docscodequote
Adds quotes for atomic commands in doc/administrator-handbook.md
2015-04-15 09:24:27 -04:00
Matthew Barnes
b04b08d6fa Merge pull request #133 from swordphilic/docstypofix
Fixes minor typo in doc/compose-server.md
2015-04-15 09:24:08 -04:00
Matthew Barnes
91d99e66ab Merge pull request #132 from swordphilic/docsfix
Fixed typo in doc/background.md
2015-04-15 09:23:52 -04:00
Navid Shaikh
f656eda800 Fixes minor typo in doc/compose-server.md 2015-04-15 18:32:58 +05:30
Navid Shaikh
6329f1c946 Adds quotes for atomic commands in doc/administrator-handbook.md 2015-04-15 18:14:14 +05:30
Navid Shaikh
736227a7e2 Fixed typo in doc/background.md 2015-04-15 13:25:21 +05:30
Colin Walters
be9de3a7df Merge pull request #130 from cgwalters/lib
build: Use -fvisibility=hidden and explicit exports
2015-04-14 16:28:40 -04:00
Giuseppe Scrivano
cab58e37ea compose: honor --proxy again
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2015-04-14 14:57:14 +02:00
Colin Walters
792da457db build: Use -fvisibility=hidden and explicit exports
This avoids symbol leakage.  Previously we were at risk of exporting
other random API from libpriv, as well as libglnx.
2015-04-13 21:25:05 -04:00
Colin Walters
de47c23450 doc: Add gtk-doc for new library 2015-04-13 14:39:06 -04:00