/* * Contains code taken from Flatpak. * * Copyright © 2014-2019 Red Hat, Inc * Copyright © 2017-2019 Collabora Ltd. * * SPDX-License-Identifier: LGPL-2.1-or-later * * 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.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/>. */ #pragma once #include <stdio.h> #include <sys/types.h> #include <glib.h> #ifndef PR_GET_CHILD_SUBREAPER #define PR_GET_CHILD_SUBREAPER 37 #endif #ifndef PR_SET_CHILD_SUBREAPER #define PR_SET_CHILD_SUBREAPER 36 #endif void pv_avoid_gvfs (void); int pv_envp_cmp (const void *p1, const void *p2); void pv_get_current_dirs (gchar **cwd_p, gchar **cwd_l); gboolean pv_is_same_file (const gchar *a, const gchar *b); void pv_search_path_append (GString *search_path, const gchar *item); gchar *pv_capture_output (const char * const * argv, GError **error); gpointer pv_hash_table_get_arbitrary_key (GHashTable *table); gboolean pv_rm_rf (const char *directory); gboolean pv_boolean_environment (const gchar *name, gboolean def); FILE *pv_divert_stdout_to_stderr (GError **error); void pv_async_signal_safe_error (const char *message, int exit_status) G_GNUC_NORETURN; gchar *pv_get_random_uuid (GError **error); gboolean pv_wait_for_child_processes (pid_t main_process, int *wait_status_out, GError **error); gboolean pv_terminate_all_child_processes (GTimeSpan wait_period, GTimeSpan grace_period, GError **error);