/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- * * Copyright (C) 2015 Colin Walters * * This program 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 licence 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. */ #pragma once #include #include #include #include #include #include "libglnx.h" #define RPMOSTREE_TYPE_CONTEXT (rpmostree_context_get_type ()) G_DECLARE_FINAL_TYPE (RpmOstreeContext, rpmostree_context, RPMOSTREE, CONTEXT, GObject) #define RPMOSTREE_TYPE_INSTALL (rpmostree_install_get_type ()) G_DECLARE_FINAL_TYPE (RpmOstreeInstall, rpmostree_install, RPMOSTREE, INSTALL, GObject) RpmOstreeContext *rpmostree_context_new_system (GCancellable *cancellable, GError **error); RpmOstreeContext *rpmostree_context_new_unprivileged (int basedir_dfd, GCancellable *cancellable, GError **error); HifContext * rpmostree_context_get_hif (RpmOstreeContext *self); gboolean rpmostree_context_repos_enable_only (RpmOstreeContext *context, const char *const *enabled_repos, GError **error); gboolean rpmostree_context_setup (RpmOstreeContext *self, const char *install_root, GCancellable *cancellable, GError **error); void rpmostree_hif_add_checksum_goal (GChecksum *checksum, HyGoal goal); char * rpmostree_hif_checksum_goal (GChecksumType type, HyGoal goal); char *rpmostree_get_cache_branch_header (Header hdr); char *rpmostree_get_cache_branch_pkg (HifPackage *pkg); gboolean rpmostree_context_download_metadata (RpmOstreeContext *context, GCancellable *cancellable, GError **error); /* This API allocates an install context, use with one of the later ones */ gboolean rpmostree_context_prepare_install (RpmOstreeContext *self, const char *const *packages, RpmOstreeInstall **out_install, GCancellable *cancellable, GError **error); gboolean rpmostree_context_download_rpms (RpmOstreeContext *self, int target_dfd, RpmOstreeInstall *install, GCancellable *cancellable, GError **error); gboolean rpmostree_context_download_import (RpmOstreeContext *self, RpmOstreeInstall *install, GCancellable *cancellable, GError **error); gboolean rpmostree_context_assemble_commit (RpmOstreeContext *self, int tmpdir_dfd, const char *name, RpmOstreeInstall *install, char **out_commit, GCancellable *cancellable, GError **error);