More sophisticated users of libostree like rpm-ostree need control over things like the system repository. Previously we introduced a "no cleanup" flag to `ostree_sysroot_simple_write_deployment()`, but that's a high level API that does filtering on its own. Since rpm-ostree needs more control, let's expose the bare essentials of the "sysroot commit" operation with an extensible options structure, where one of the options is whether or not to do post-transaction repository operations. Closes: #745 Approved by: jlebon
406 lines
14 KiB
Plaintext
406 lines
14 KiB
Plaintext
/***
|
|
Copyright (C) 2016 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.
|
|
***/
|
|
|
|
|
|
/*
|
|
Retroactively make all of these symbols 2016.3, which is
|
|
the first release where we started using versioned symbols. See
|
|
also https://www.berrange.com/posts/2011/01/13/versioning-in-the-libvirt-library/
|
|
*/
|
|
LIBOSTREE_2016.3 {
|
|
global:
|
|
ostree_async_progress_finish;
|
|
ostree_async_progress_get_status;
|
|
ostree_async_progress_get_type;
|
|
ostree_async_progress_get_uint;
|
|
ostree_async_progress_get_uint64;
|
|
ostree_async_progress_new;
|
|
ostree_async_progress_new_and_connect;
|
|
ostree_async_progress_set_status;
|
|
ostree_async_progress_set_uint;
|
|
ostree_async_progress_set_uint64;
|
|
ostree_bootconfig_parser_clone;
|
|
ostree_bootconfig_parser_get;
|
|
ostree_bootconfig_parser_get_type;
|
|
ostree_bootconfig_parser_new;
|
|
ostree_bootconfig_parser_parse;
|
|
ostree_bootconfig_parser_parse_at;
|
|
ostree_bootconfig_parser_set;
|
|
ostree_bootconfig_parser_write;
|
|
ostree_bootconfig_parser_write_at;
|
|
ostree_chain_input_stream_get_type;
|
|
ostree_chain_input_stream_new;
|
|
ostree_checksum_b64_inplace_from_bytes;
|
|
ostree_checksum_b64_inplace_to_bytes;
|
|
ostree_checksum_bytes_peek;
|
|
ostree_checksum_bytes_peek_validate;
|
|
ostree_checksum_file;
|
|
ostree_checksum_file_async;
|
|
ostree_checksum_file_async_finish;
|
|
ostree_checksum_file_from_input;
|
|
ostree_checksum_from_bytes;
|
|
ostree_checksum_from_bytes_v;
|
|
ostree_checksum_inplace_from_bytes;
|
|
ostree_checksum_inplace_to_bytes;
|
|
ostree_checksum_input_stream_get_type;
|
|
ostree_checksum_input_stream_new;
|
|
ostree_checksum_to_bytes;
|
|
ostree_checksum_to_bytes_v;
|
|
ostree_cmd__private__;
|
|
ostree_cmp_checksum_bytes;
|
|
ostree_commit_get_parent;
|
|
ostree_commit_get_timestamp;
|
|
ostree_content_file_parse;
|
|
ostree_content_file_parse_at;
|
|
ostree_content_stream_parse;
|
|
ostree_create_directory_metadata;
|
|
ostree_deployment_clone;
|
|
ostree_deployment_equal;
|
|
ostree_deployment_get_bootconfig;
|
|
ostree_deployment_get_bootcsum;
|
|
ostree_deployment_get_bootserial;
|
|
ostree_deployment_get_csum;
|
|
ostree_deployment_get_deployserial;
|
|
ostree_deployment_get_index;
|
|
ostree_deployment_get_origin;
|
|
ostree_deployment_get_origin_relpath;
|
|
ostree_deployment_get_osname;
|
|
ostree_deployment_get_type;
|
|
ostree_deployment_hash;
|
|
ostree_deployment_new;
|
|
ostree_deployment_set_bootconfig;
|
|
ostree_deployment_set_bootserial;
|
|
ostree_deployment_set_index;
|
|
ostree_deployment_set_origin;
|
|
ostree_diff_dirs;
|
|
ostree_diff_item_get_type;
|
|
ostree_diff_item_ref;
|
|
ostree_diff_item_unref;
|
|
ostree_diff_print;
|
|
ostree_fetcher_config_flags_get_type;
|
|
ostree_gpg_verify_result_count_all;
|
|
ostree_gpg_verify_result_count_valid;
|
|
ostree_gpg_verify_result_describe;
|
|
ostree_gpg_verify_result_describe_variant;
|
|
ostree_gpg_verify_result_get;
|
|
ostree_gpg_verify_result_get_all;
|
|
ostree_gpg_verify_result_get_type;
|
|
ostree_gpg_verify_result_lookup;
|
|
ostree_hash_object_name;
|
|
ostree_metadata_variant_type;
|
|
ostree_mutable_tree_ensure_dir;
|
|
ostree_mutable_tree_ensure_parent_dirs;
|
|
ostree_mutable_tree_get_contents_checksum;
|
|
ostree_mutable_tree_get_files;
|
|
ostree_mutable_tree_get_metadata_checksum;
|
|
ostree_mutable_tree_get_subdirs;
|
|
ostree_mutable_tree_get_type;
|
|
ostree_mutable_tree_lookup;
|
|
ostree_mutable_tree_new;
|
|
ostree_mutable_tree_replace_file;
|
|
ostree_mutable_tree_set_contents_checksum;
|
|
ostree_mutable_tree_set_metadata_checksum;
|
|
ostree_mutable_tree_walk;
|
|
ostree_object_from_string;
|
|
ostree_object_name_deserialize;
|
|
ostree_object_name_serialize;
|
|
ostree_object_to_string;
|
|
ostree_object_type_from_string;
|
|
ostree_object_type_to_string;
|
|
ostree_parse_refspec;
|
|
ostree_raw_file_to_content_stream;
|
|
ostree_repo_abort_transaction;
|
|
ostree_repo_add_gpg_signature_summary;
|
|
ostree_repo_append_gpg_signature;
|
|
ostree_repo_checkout_gc;
|
|
ostree_repo_checkout_tree;
|
|
ostree_repo_checkout_tree_at;
|
|
ostree_repo_commit_modifier_get_type;
|
|
ostree_repo_commit_modifier_new;
|
|
ostree_repo_commit_modifier_ref;
|
|
ostree_repo_commit_modifier_set_devino_cache;
|
|
ostree_repo_commit_modifier_set_sepolicy;
|
|
ostree_repo_commit_modifier_set_xattr_callback;
|
|
ostree_repo_commit_modifier_unref;
|
|
ostree_repo_commit_transaction;
|
|
ostree_repo_commit_traverse_iter_cleanup;
|
|
ostree_repo_commit_traverse_iter_clear;
|
|
ostree_repo_commit_traverse_iter_get_dir;
|
|
ostree_repo_commit_traverse_iter_get_file;
|
|
ostree_repo_commit_traverse_iter_init_commit;
|
|
ostree_repo_commit_traverse_iter_init_dirtree;
|
|
ostree_repo_commit_traverse_iter_next;
|
|
ostree_repo_copy_config;
|
|
ostree_repo_create;
|
|
ostree_repo_delete_object;
|
|
ostree_repo_devino_cache_get_type;
|
|
ostree_repo_devino_cache_new;
|
|
ostree_repo_devino_cache_ref;
|
|
ostree_repo_devino_cache_unref;
|
|
ostree_repo_export_tree_to_archive;
|
|
ostree_repo_file_ensure_resolved;
|
|
ostree_repo_file_get_checksum;
|
|
ostree_repo_file_get_repo;
|
|
ostree_repo_file_get_root;
|
|
ostree_repo_file_get_type;
|
|
ostree_repo_file_get_xattrs;
|
|
ostree_repo_file_tree_find_child;
|
|
ostree_repo_file_tree_get_contents;
|
|
ostree_repo_file_tree_get_contents_checksum;
|
|
ostree_repo_file_tree_get_metadata;
|
|
ostree_repo_file_tree_get_metadata_checksum;
|
|
ostree_repo_file_tree_query_child;
|
|
ostree_repo_file_tree_set_metadata;
|
|
ostree_repo_get_config;
|
|
ostree_repo_get_disable_fsync;
|
|
ostree_repo_get_mode;
|
|
ostree_repo_get_parent;
|
|
ostree_repo_get_path;
|
|
ostree_repo_get_type;
|
|
ostree_repo_has_object;
|
|
ostree_repo_import_archive_to_mtree;
|
|
ostree_repo_import_object_from;
|
|
ostree_repo_is_system;
|
|
ostree_repo_is_writable;
|
|
ostree_repo_list_commit_objects_starting_with;
|
|
ostree_repo_list_objects;
|
|
ostree_repo_list_refs;
|
|
ostree_repo_list_static_delta_names;
|
|
ostree_repo_load_commit;
|
|
ostree_repo_load_file;
|
|
ostree_repo_load_object_stream;
|
|
ostree_repo_load_variant;
|
|
ostree_repo_load_variant_if_exists;
|
|
ostree_repo_mode_from_string;
|
|
ostree_repo_new;
|
|
ostree_repo_new_default;
|
|
ostree_repo_new_for_sysroot_path;
|
|
ostree_repo_open;
|
|
ostree_repo_prepare_transaction;
|
|
ostree_repo_prune;
|
|
ostree_repo_prune_static_deltas;
|
|
ostree_repo_pull;
|
|
ostree_repo_pull_default_console_progress_changed;
|
|
ostree_repo_pull_one_dir;
|
|
ostree_repo_pull_with_options;
|
|
ostree_repo_query_object_storage_size;
|
|
ostree_repo_read_commit;
|
|
ostree_repo_read_commit_detached_metadata;
|
|
ostree_repo_regenerate_summary;
|
|
ostree_repo_remote_add;
|
|
ostree_repo_remote_change;
|
|
ostree_repo_remote_delete;
|
|
ostree_repo_remote_fetch_summary;
|
|
ostree_repo_remote_get_gpg_verify;
|
|
ostree_repo_remote_get_gpg_verify_summary;
|
|
ostree_repo_remote_get_url;
|
|
ostree_repo_remote_gpg_import;
|
|
ostree_repo_remote_list;
|
|
ostree_repo_remote_list_refs;
|
|
ostree_repo_resolve_rev;
|
|
ostree_repo_scan_hardlinks;
|
|
ostree_repo_set_disable_fsync;
|
|
ostree_repo_set_ref_immediate;
|
|
ostree_repo_sign_commit;
|
|
ostree_repo_sign_delta;
|
|
ostree_repo_static_delta_execute_offline;
|
|
ostree_repo_static_delta_generate;
|
|
ostree_repo_transaction_set_ref;
|
|
ostree_repo_transaction_set_refspec;
|
|
ostree_repo_transaction_stats_get_type;
|
|
ostree_repo_traverse_commit;
|
|
ostree_repo_traverse_commit_union;
|
|
ostree_repo_traverse_new_reachable;
|
|
ostree_repo_verify_commit;
|
|
ostree_repo_verify_commit_ext;
|
|
ostree_repo_verify_summary;
|
|
ostree_repo_write_archive_to_mtree;
|
|
ostree_repo_write_commit;
|
|
ostree_repo_write_commit_detached_metadata;
|
|
ostree_repo_write_commit_with_time;
|
|
ostree_repo_write_config;
|
|
ostree_repo_write_content;
|
|
ostree_repo_write_content_async;
|
|
ostree_repo_write_content_finish;
|
|
ostree_repo_write_content_trusted;
|
|
ostree_repo_write_dfd_to_mtree;
|
|
ostree_repo_write_directory_to_mtree;
|
|
ostree_repo_write_metadata;
|
|
ostree_repo_write_metadata_async;
|
|
ostree_repo_write_metadata_finish;
|
|
ostree_repo_write_metadata_stream_trusted;
|
|
ostree_repo_write_metadata_trusted;
|
|
ostree_repo_write_mtree;
|
|
ostree_sepolicy_fscreatecon_cleanup;
|
|
ostree_sepolicy_get_label;
|
|
ostree_sepolicy_get_name;
|
|
ostree_sepolicy_get_path;
|
|
ostree_sepolicy_get_type;
|
|
ostree_sepolicy_new;
|
|
ostree_sepolicy_restorecon;
|
|
ostree_sepolicy_setfscreatecon;
|
|
ostree_sysroot_cleanup;
|
|
ostree_sysroot_deployment_set_kargs;
|
|
ostree_sysroot_deployment_set_mutable;
|
|
ostree_sysroot_deploy_tree;
|
|
ostree_sysroot_ensure_initialized;
|
|
ostree_sysroot_get_booted_deployment;
|
|
ostree_sysroot_get_bootversion;
|
|
ostree_sysroot_get_deployment_directory;
|
|
ostree_sysroot_get_deployment_dirpath;
|
|
ostree_sysroot_get_deployment_origin_path;
|
|
ostree_sysroot_get_deployments;
|
|
ostree_sysroot_get_fd;
|
|
ostree_sysroot_get_merge_deployment;
|
|
ostree_sysroot_get_path;
|
|
ostree_sysroot_get_repo;
|
|
ostree_sysroot_get_subbootversion;
|
|
ostree_sysroot_get_type;
|
|
ostree_sysroot_load;
|
|
ostree_sysroot_lock;
|
|
ostree_sysroot_lock_async;
|
|
ostree_sysroot_lock_finish;
|
|
ostree_sysroot_new;
|
|
ostree_sysroot_new_default;
|
|
ostree_sysroot_origin_new_from_refspec;
|
|
ostree_sysroot_prepare_cleanup;
|
|
ostree_sysroot_simple_write_deployment;
|
|
ostree_sysroot_try_lock;
|
|
ostree_sysroot_unload;
|
|
ostree_sysroot_unlock;
|
|
ostree_sysroot_upgrader_check_timestamps;
|
|
ostree_sysroot_upgrader_deploy;
|
|
ostree_sysroot_upgrader_dup_origin;
|
|
ostree_sysroot_upgrader_flags_get_type;
|
|
ostree_sysroot_upgrader_get_origin;
|
|
ostree_sysroot_upgrader_get_origin_description;
|
|
ostree_sysroot_upgrader_get_type;
|
|
ostree_sysroot_upgrader_new;
|
|
ostree_sysroot_upgrader_new_for_os;
|
|
ostree_sysroot_upgrader_new_for_os_with_flags;
|
|
ostree_sysroot_upgrader_pull;
|
|
ostree_sysroot_upgrader_pull_one_dir;
|
|
ostree_sysroot_upgrader_set_origin;
|
|
ostree_sysroot_write_deployments;
|
|
ostree_sysroot_write_origin_file;
|
|
ostree_validate_checksum_string;
|
|
ostree_validate_rev;
|
|
ostree_validate_structureof_checksum_string;
|
|
ostree_validate_structureof_commit;
|
|
ostree_validate_structureof_csum_v;
|
|
ostree_validate_structureof_dirmeta;
|
|
ostree_validate_structureof_dirtree;
|
|
ostree_validate_structureof_file_mode;
|
|
ostree_validate_structureof_objtype;
|
|
local:
|
|
*;
|
|
};
|
|
|
|
LIBOSTREE_2016.4 {
|
|
global:
|
|
ostree_repo_get_dfd;
|
|
ostree_repo_list_refs_ext;
|
|
ostree_sysroot_init_osname;
|
|
ostree_sysroot_load_if_changed;
|
|
ostree_sysroot_deployment_unlock;
|
|
ostree_deployment_get_unlocked;
|
|
ostree_deployment_unlocked_state_to_string;
|
|
} LIBOSTREE_2016.3;
|
|
|
|
LIBOSTREE_2016.5 {
|
|
global:
|
|
ostree_repo_import_object_from_with_trust;
|
|
ostree_sepolicy_get_csum;
|
|
ostree_repo_get_remote_option;
|
|
ostree_repo_get_remote_list_option;
|
|
ostree_repo_get_remote_boolean_option;
|
|
ostree_repo_set_cache_dir;
|
|
} LIBOSTREE_2016.4;
|
|
|
|
LIBOSTREE_2016.6 {
|
|
global:
|
|
ostree_gpg_verify_result_require_valid_signature;
|
|
ostree_raw_file_to_archive_z2_stream;
|
|
ostree_repo_gpg_verify_data;
|
|
ostree_repo_remote_fetch_summary_with_options;
|
|
} LIBOSTREE_2016.5;
|
|
|
|
LIBOSTREE_2016.7 {
|
|
global:
|
|
ostree_repo_resolve_rev_ext;
|
|
} LIBOSTREE_2016.6;
|
|
|
|
LIBOSTREE_2016.8 {
|
|
global:
|
|
ostree_checksum_b64_to_bytes;
|
|
ostree_checksum_b64_from_bytes;
|
|
ostree_repo_checkout_at;
|
|
} LIBOSTREE_2016.7;
|
|
|
|
/* No new symbols in 2016.9 */
|
|
/* No new symbols in 2016.10 */
|
|
/* No new symbols in 2016.11 */
|
|
/* No new symbols in 2016.12 */
|
|
/* No new symbols in 2016.13 */
|
|
|
|
LIBOSTREE_2016.14 {
|
|
global:
|
|
ostree_repo_verify_commit_for_remote;
|
|
} LIBOSTREE_2016.8;
|
|
|
|
/* No new symbols in 2016.15 */
|
|
|
|
LIBOSTREE_2017.1 {
|
|
global:
|
|
ostree_repo_prune_from_reachable;
|
|
} LIBOSTREE_2016.14;
|
|
|
|
LIBOSTREE_2017.2 {
|
|
global:
|
|
ostree_repo_reload_config;
|
|
} LIBOSTREE_2017.1;
|
|
|
|
LIBOSTREE_2017.3 {
|
|
global:
|
|
ostree_raw_file_to_archive_z2_stream_with_options;
|
|
} LIBOSTREE_2017.2;
|
|
|
|
/* NOTE NOTE NOTE
|
|
* Versions above here are released. Only add symbols below this line.
|
|
* NOTE NOTE NOTE
|
|
*/
|
|
|
|
LIBOSTREE_2017.4 {
|
|
global:
|
|
ostree_check_version;
|
|
ostree_diff_dirs_with_options;
|
|
ostree_sepolicy_new_at;
|
|
ostree_sysroot_write_deployments_with_options;
|
|
} LIBOSTREE_2017.3;
|
|
|
|
/* Stub section for the stable release *after* this development one; don't
|
|
* edit this other than to update the last number. This is just a copy/paste
|
|
* source. Replace $LASTSTABLE with the last stable version, and $NEWVERSION
|
|
* with whatever the next version with new symbols will be.
|
|
LIBOSTREE_2017.$NEWVERSION {
|
|
global:
|
|
someostree_symbol_deleteme;
|
|
} LIBOSTREE_2017.$LASTSTABLE;
|
|
*/
|