Break out ref helper functions to separate file

flatpak-utils.c is getting large, and also I got some issues with
include order, so split out things that are purely handling ref stings
in various ways to its own file.
This commit is contained in:
Alexander Larsson
2020-11-04 13:57:49 +01:00
committed by Alexander Larsson
parent ed192e1044
commit 5dae1fc6bc
6 changed files with 1674 additions and 1609 deletions

View File

@@ -150,6 +150,8 @@ libflatpak_common_la_SOURCES = \
common/flatpak-progress-private.h \
common/flatpak-progress.c \
common/flatpak-ref.c \
common/flatpak-ref-utils-private.h \
common/flatpak-ref-utils.c \
common/flatpak-related-ref-private.h \
common/flatpak-related-ref.c \
common/flatpak-remote-private.h \

View File

@@ -27,6 +27,7 @@
#include "flatpak-context-private.h"
#include "flatpak-progress-private.h"
#include "flatpak-variant-private.h"
#include "flatpak-ref-utils-private.h"
#include "libglnx/libglnx.h"
/* Version history:

View File

@@ -0,0 +1,157 @@
/*
* Copyright © 2020 Red Hat, Inc
*
* 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.1 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, see <http://www.gnu.org/licenses/>.
*
* Authors:
* Alexander Larsson <alexl@redhat.com>
*/
#include <flatpak-common-types-private.h>
#ifndef __FLATPAK_REF_UTILS_H__
#define __FLATPAK_REF_UTILS_H__
gboolean flatpak_is_valid_name (const char *string,
gssize len,
GError **error);
gboolean flatpak_is_valid_branch (const char *string,
gssize len,
GError **error);
gboolean flatpak_is_valid_arch (const char *string,
gssize len,
GError **error);
gboolean flatpak_has_name_prefix (const char *string,
const char *name);
gboolean flatpak_name_matches_one_wildcard_prefix (const char *string,
const char * const *maybe_wildcard_prefixes,
gboolean require_exact_match);
char * flatpak_make_valid_id_prefix (const char *orig_id);
gboolean flatpak_id_has_subref_suffix (const char *id,
gssize id_len);
char **flatpak_decompose_ref (const char *ref,
GError **error);
char * flatpak_get_arch_for_ref (const char *ref);
const char *flatpak_get_compat_arch_reverse (const char *compat_arch);
typedef struct _FlatpakDecomposed FlatpakDecomposed;
FlatpakDecomposed *flatpak_decomposed_new_from_ref (const char *ref,
GError **error);
FlatpakDecomposed *flatpak_decomposed_new_from_col_ref (const char *ref,
const char *collection_id,
GError **error);
FlatpakDecomposed *flatpak_decomposed_new_from_refspec (const char *refspec,
GError **error);
FlatpakDecomposed *flatpak_decomposed_new_from_ref_take (char *ref,
GError **error);
FlatpakDecomposed *flatpak_decomposed_new_from_refspec_take (char *refspec,
GError **error);
FlatpakDecomposed *flatpak_decomposed_new_from_decomposed (FlatpakDecomposed *ref,
FlatpakKinds opt_kind,
const char *opt_id,
const char *opt_arch,
const char *opt_branch,
GError **error);
FlatpakDecomposed *flatpak_decomposed_ref (FlatpakDecomposed *ref);
void flatpak_decomposed_unref (FlatpakDecomposed *ref);
const char * flatpak_decomposed_get_ref (FlatpakDecomposed *ref);
const char * flatpak_decomposed_get_refspec (FlatpakDecomposed *ref);
char * flatpak_decomposed_dup_ref (FlatpakDecomposed *ref);
char * flatpak_decomposed_dup_refspec (FlatpakDecomposed *ref);
char * flatpak_decomposed_dup_remote (FlatpakDecomposed *ref);
const char * flatpak_decomposed_get_collection_id (FlatpakDecomposed *ref);
char * flatpak_decomposed_dup_collection_id (FlatpakDecomposed *ref);
gboolean flatpak_decomposed_equal (FlatpakDecomposed *ref_a,
FlatpakDecomposed *ref_b);
gint flatpak_decomposed_strcmp (FlatpakDecomposed *ref_a,
FlatpakDecomposed *ref_b);
gint flatpak_decomposed_strcmp_p (FlatpakDecomposed **ref_a,
FlatpakDecomposed **ref_b);
guint flatpak_decomposed_hash (FlatpakDecomposed *ref);
gboolean flatpak_decomposed_is_app (FlatpakDecomposed *ref);
gboolean flatpak_decomposed_is_runtime (FlatpakDecomposed *ref);
FlatpakKinds flatpak_decomposed_get_kind (FlatpakDecomposed *ref);
const char * flatpak_decomposed_get_kind_str (FlatpakDecomposed *ref);
const char * flatpak_decomposed_get_pref (FlatpakDecomposed *ref);
char * flatpak_decomposed_dup_pref (FlatpakDecomposed *ref);
const char * flatpak_decomposed_peek_id (FlatpakDecomposed *ref,
gsize *out_len);
char * flatpak_decomposed_dup_id (FlatpakDecomposed *ref);
char * flatpak_decomposed_dup_readable_id (FlatpakDecomposed *ref);
gboolean flatpak_decomposed_is_id (FlatpakDecomposed *ref,
const char *id);
gboolean flatpak_decomposed_is_id_fuzzy (FlatpakDecomposed *ref,
const char *id);
gboolean flatpak_decomposed_id_is_subref (FlatpakDecomposed *ref);
const char * flatpak_decomposed_peek_arch (FlatpakDecomposed *ref,
gsize *out_len);
char * flatpak_decomposed_dup_arch (FlatpakDecomposed *ref);
gboolean flatpak_decomposed_is_arch (FlatpakDecomposed *ref,
const char *arch);
gboolean flatpak_decomposed_is_arches (FlatpakDecomposed *ref,
const char **arches);
const char * flatpak_decomposed_peek_branch (FlatpakDecomposed *ref,
gsize *out_len);
const char * flatpak_decomposed_get_branch (FlatpakDecomposed *ref);
char * flatpak_decomposed_dup_branch (FlatpakDecomposed *ref);
gboolean flatpak_decomposed_is_branch (FlatpakDecomposed *ref,
const char *branch);
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FlatpakDecomposed, flatpak_decomposed_unref)
FlatpakKinds flatpak_kinds_from_bools (gboolean app,
gboolean runtime);
gboolean flatpak_split_partial_ref_arg (const char *partial_ref,
FlatpakKinds default_kinds,
const char *default_arch,
const char *default_branch,
FlatpakKinds *out_kinds,
char **out_id,
char **out_arch,
char **out_branch,
GError **error);
gboolean flatpak_split_partial_ref_arg_novalidate (const char *partial_ref,
FlatpakKinds default_kinds,
const char *default_arch,
const char *default_branch,
FlatpakKinds *out_kinds,
char **out_id,
char **out_arch,
char **out_branch);
int flatpak_compare_ref (const char *ref1,
const char *ref2);
char * flatpak_compose_ref (gboolean app,
const char *name,
const char *branch,
const char *arch,
GError **error);
char * flatpak_build_untyped_ref (const char *runtime,
const char *branch,
const char *arch);
char * flatpak_build_runtime_ref (const char *runtime,
const char *branch,
const char *arch);
char * flatpak_build_app_ref (const char *app,
const char *branch,
const char *arch);
#endif /* __FLATPAK_REF_UTILS_H__ */

1506
common/flatpak-ref-utils.c Normal file
View File

File diff suppressed because it is too large Load Diff

View File

@@ -187,9 +187,6 @@ gboolean flatpak_summary_find_ref_map (VarSummaryRef summary,
gboolean flatpak_var_ref_map_lookup_ref (VarRefMapRef ref_map,
const char *ref,
VarRefInfoRef *out_info);
gboolean flatpak_name_matches_one_wildcard_prefix (const char *string,
const char * const *maybe_wildcard_prefixes,
gboolean require_exact_match);
gboolean flatpak_get_allowed_exports (const char *source_path,
const char *app_id,
@@ -198,141 +195,6 @@ gboolean flatpak_get_allowed_exports (const char *source_path,
char ***allowed_prefixes_out,
gboolean *require_exact_match_out);
gboolean flatpak_is_valid_name (const char *string,
gssize len,
GError **error);
gboolean flatpak_is_valid_branch (const char *string,
gssize len,
GError **error);
gboolean flatpak_has_name_prefix (const char *string,
const char *name);
gboolean flatpak_is_valid_arch (const char *string,
gssize len,
GError **error);
char * flatpak_make_valid_id_prefix (const char *orig_id);
gboolean flatpak_id_has_subref_suffix (const char *id,
gssize id_len);
char **flatpak_decompose_ref (const char *ref,
GError **error);
char * flatpak_get_arch_for_ref (const char *ref);
const char *flatpak_get_compat_arch_reverse (const char *compat_arch);
typedef struct _FlatpakDecomposed FlatpakDecomposed;
FlatpakDecomposed *flatpak_decomposed_new_from_ref (const char *ref,
GError **error);
FlatpakDecomposed *flatpak_decomposed_new_from_col_ref (const char *ref,
const char *collection_id,
GError **error);
FlatpakDecomposed *flatpak_decomposed_new_from_refspec (const char *refspec,
GError **error);
FlatpakDecomposed *flatpak_decomposed_new_from_ref_take (char *ref,
GError **error);
FlatpakDecomposed *flatpak_decomposed_new_from_refspec_take (char *refspec,
GError **error);
FlatpakDecomposed *flatpak_decomposed_new_from_decomposed (FlatpakDecomposed *ref,
FlatpakKinds opt_kind,
const char *opt_id,
const char *opt_arch,
const char *opt_branch,
GError **error);
FlatpakDecomposed *flatpak_decomposed_ref (FlatpakDecomposed *ref);
void flatpak_decomposed_unref (FlatpakDecomposed *ref);
const char * flatpak_decomposed_get_ref (FlatpakDecomposed *ref);
const char * flatpak_decomposed_get_refspec (FlatpakDecomposed *ref);
char * flatpak_decomposed_dup_ref (FlatpakDecomposed *ref);
char * flatpak_decomposed_dup_refspec (FlatpakDecomposed *ref);
char * flatpak_decomposed_dup_remote (FlatpakDecomposed *ref);
const char * flatpak_decomposed_get_collection_id (FlatpakDecomposed *ref);
char * flatpak_decomposed_dup_collection_id (FlatpakDecomposed *ref);
gboolean flatpak_decomposed_equal (FlatpakDecomposed *ref_a,
FlatpakDecomposed *ref_b);
gint flatpak_decomposed_strcmp (FlatpakDecomposed *ref_a,
FlatpakDecomposed *ref_b);
gint flatpak_decomposed_strcmp_p (FlatpakDecomposed **ref_a,
FlatpakDecomposed **ref_b);
guint flatpak_decomposed_hash (FlatpakDecomposed *ref);
gboolean flatpak_decomposed_is_app (FlatpakDecomposed *ref);
gboolean flatpak_decomposed_is_runtime (FlatpakDecomposed *ref);
FlatpakKinds flatpak_decomposed_get_kind (FlatpakDecomposed *ref);
const char * flatpak_decomposed_get_kind_str (FlatpakDecomposed *ref);
const char * flatpak_decomposed_get_pref (FlatpakDecomposed *ref);
char * flatpak_decomposed_dup_pref (FlatpakDecomposed *ref);
const char * flatpak_decomposed_peek_id (FlatpakDecomposed *ref,
gsize *out_len);
char * flatpak_decomposed_dup_id (FlatpakDecomposed *ref);
char * flatpak_decomposed_dup_readable_id (FlatpakDecomposed *ref);
gboolean flatpak_decomposed_is_id (FlatpakDecomposed *ref,
const char *id);
gboolean flatpak_decomposed_is_id_fuzzy (FlatpakDecomposed *ref,
const char *id);
gboolean flatpak_decomposed_id_is_subref (FlatpakDecomposed *ref);
const char * flatpak_decomposed_peek_arch (FlatpakDecomposed *ref,
gsize *out_len);
char * flatpak_decomposed_dup_arch (FlatpakDecomposed *ref);
gboolean flatpak_decomposed_is_arch (FlatpakDecomposed *ref,
const char *arch);
gboolean flatpak_decomposed_is_arches (FlatpakDecomposed *ref,
const char **arches);
const char * flatpak_decomposed_peek_branch (FlatpakDecomposed *ref,
gsize *out_len);
const char * flatpak_decomposed_get_branch (FlatpakDecomposed *ref);
char * flatpak_decomposed_dup_branch (FlatpakDecomposed *ref);
gboolean flatpak_decomposed_is_branch (FlatpakDecomposed *ref,
const char *branch);
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FlatpakDecomposed, flatpak_decomposed_unref)
char * flatpak_filter_glob_to_regexp (const char *glob, gboolean runtime_only, GError **error);
gboolean flatpak_parse_filters (const char *data,
GRegex **allow_refs_out,
GRegex **deny_refs_out,
GError **error);
gboolean flatpak_filters_allow_ref (GRegex *allow_refs,
GRegex *deny_refs,
const char *ref);
FlatpakKinds flatpak_kinds_from_bools (gboolean app,
gboolean runtime);
gboolean flatpak_split_partial_ref_arg (const char *partial_ref,
FlatpakKinds default_kinds,
const char *default_arch,
const char *default_branch,
FlatpakKinds *out_kinds,
char **out_id,
char **out_arch,
char **out_branch,
GError **error);
gboolean flatpak_split_partial_ref_arg_novalidate (const char *partial_ref,
FlatpakKinds default_kinds,
const char *default_arch,
const char *default_branch,
FlatpakKinds *out_kinds,
char **out_id,
char **out_arch,
char **out_branch);
int flatpak_compare_ref (const char *ref1,
const char *ref2);
char * flatpak_compose_ref (gboolean app,
const char *name,
const char *branch,
const char *arch,
GError **error);
char * flatpak_build_untyped_ref (const char *runtime,
const char *branch,
const char *arch);
char * flatpak_build_runtime_ref (const char *runtime,
const char *branch,
const char *arch);
char * flatpak_build_app_ref (const char *app,
const char *branch,
const char *arch);
char * flatpak_find_current_ref (const char *app_id,
GCancellable *cancellable,
GError **error);
@@ -941,6 +803,14 @@ void flatpak_appstream_xml_filter (FlatpakXml *appstream,
GRegex *allow_refs,
GRegex *deny_refs);
char * flatpak_filter_glob_to_regexp (const char *glob, gboolean runtime_only, GError **error);
gboolean flatpak_parse_filters (const char *data,
GRegex **allow_refs_out,
GRegex **deny_refs_out,
GError **error);
gboolean flatpak_filters_allow_ref (GRegex *allow_refs,
GRegex *deny_refs,
const char *ref);
gboolean flatpak_allocate_tmpdir (int tmpdir_dfd,
const char *tmpdir_relpath,

View File

File diff suppressed because it is too large Load Diff