Add a simple script that generates some offline metadata

See http://blogs.gnome.org/hughsie/2014/08/29/putting-packagekit-metadata-on-the-fedora-livecd/
This commit is contained in:
Richard Hughes 2014-09-09 13:34:32 +01:00
parent 769700a920
commit c848547820
3 changed files with 60 additions and 0 deletions

View File

@ -29,4 +29,8 @@ bashcompletiondir = $(BASH_COMPLETIONS_DIR)
dist_bashcompletion_DATA = pkcon
endif
EXTRA_DIST = generate-md-archive.sh
CLEANFILES = cached-metadata.tar
-include $(top_srcdir)/git.mk

View File

@ -10,6 +10,9 @@ License: GPLv2+ and LGPLv2+
URL: http://www.freedesktop.org/software/PackageKit/
Source0: http://www.freedesktop.org/software/PackageKit/releases/%{name}-%{version}.tar.xz
# generated using contrib/generate-md-archive.sh in the PackageKit source tree
Source1: cached-metadata.tar
Requires: %{name}-glib%{?_isa} = %{version}-%{release}
Requires: shared-mime-info
Requires: comps-extras
@ -92,6 +95,15 @@ Provides: PackageKit-libs = %{version}-%{release}
%description glib
GLib libraries for accessing PackageKit.
%package cached-metadata
Summary: Cached metadata for PackageKit
Requires: %{name}%{?_isa} = %{version}-%{release}
%description cached-metadata
Cached metadata allows application installers to start instantly on the
LiveCD or installed system without downloading files from the internet or
regenerating the SAT caches. It can safely removed if not required.
%package cron
Summary: Cron job and related utilities for PackageKit
Requires: crontabs
@ -208,6 +220,10 @@ pushd ${RPM_BUILD_ROOT}%{_datadir}/PackageKit > /dev/null
ln -s ../pixmaps/comps icons
popd > /dev/null
# ship cached metadata on the LiveCD
# http://blogs.gnome.org/hughsie/2014/08/29/putting-packagekit-metadata-on-the-fedora-livecd/
tar -xf %{SOURCE1} --directory=$RPM_BUILD_ROOT
%find_lang %name
%post
@ -270,6 +286,12 @@ popd > /dev/null
%{_libdir}/packagekit-backend/libpk_backend_hif.so
%endif
%files cached-metadata
%defattr(-,root,root,-)
%{_datadir}/PackageKit/hawkey
%{_datadir}/PackageKit/hawkey/*
%{_datadir}/PackageKit/metadata/*
%files glib
%defattr(-,root,root,-)
%{_libdir}/*packagekit-glib2.so.*

34
contrib/generate-md-archive.sh Executable file
View File

@ -0,0 +1,34 @@
#!/bin/bash
# Copyright (C) 2014 Richard Hughes <richard@hughsie.com>
#
# Licensed under the GNU General Public License Version 2
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
# run this as non-root
PREFIX=`realpath "./root"`
rm -rf ${PREFIX}
mkdir -p ${PREFIX}/etc/yum.repos.d
cp /etc/yum.repos.d/fedora.repo ${PREFIX}/etc/yum.repos.d/
cp /etc/yum.repos.d/fedora-updates.repo ${PREFIX}/etc/yum.repos.d/
cp /etc/yum.repos.d/fedora-updates-testing.repo ${PREFIX}/etc/yum.repos.d/
[ -x /usr/bin/rpm ] && rpm --root=${PREFIX} --initdb
DESTDIR=${PREFIX} /usr/libexec/packagekit-direct repo-set-data fedora enabled 1
DESTDIR=${PREFIX} /usr/libexec/packagekit-direct repo-set-data updates enabled 1
DESTDIR=${PREFIX} /usr/libexec/packagekit-direct repo-set-data fedora-debuginfo enabled 0
DESTDIR=${PREFIX} /usr/libexec/packagekit-direct repo-set-data updates-debuginfo enabled 0
DESTDIR=${PREFIX} /usr/libexec/packagekit-direct repo-set-data updates-testing-debuginfo enabled 0
DESTDIR=${PREFIX} /usr/libexec/packagekit-direct repo-set-data updates-testing enabled 0
DESTDIR=${PREFIX} /usr/libexec/packagekit-direct refresh
rm -rf ${PREFIX}/etc
rm -rf ${PREFIX}/var/run
rm -rf ${PREFIX}/var/lib
# this is so we can use it again at runtime
mv ${PREFIX}/var/cache ${PREFIX}/var/share
mv ${PREFIX}/var ${PREFIX}/usr
cd ${PREFIX} && tar -cf ../cached-metadata.tar usr
rm -rf ${PREFIX}
echo "now ship cached-metadata.tar in your package!"