19950eceeSBaptiste Daroussin /*- 24d846d26SWarner Losh * SPDX-License-Identifier: BSD-2-Clause 31de7b4b8SPedro F. Giffuni * 49950eceeSBaptiste Daroussin * Copyright (c) 2013 Baptiste Daroussin <bapt@FreeBSD.org> 59950eceeSBaptiste Daroussin * All rights reserved. 69950eceeSBaptiste Daroussin * 79950eceeSBaptiste Daroussin * Redistribution and use in source and binary forms, with or without 89950eceeSBaptiste Daroussin * modification, are permitted provided that the following conditions 99950eceeSBaptiste Daroussin * are met: 109950eceeSBaptiste Daroussin * 1. Redistributions of source code must retain the above copyright 119950eceeSBaptiste Daroussin * notice, this list of conditions and the following disclaimer. 129950eceeSBaptiste Daroussin * 2. Redistributions in binary form must reproduce the above copyright 139950eceeSBaptiste Daroussin * notice, this list of conditions and the following disclaimer in the 149950eceeSBaptiste Daroussin * documentation and/or other materials provided with the distribution. 159950eceeSBaptiste Daroussin * 169950eceeSBaptiste Daroussin * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 179950eceeSBaptiste Daroussin * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 189950eceeSBaptiste Daroussin * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 199950eceeSBaptiste Daroussin * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 209950eceeSBaptiste Daroussin * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 219950eceeSBaptiste Daroussin * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 229950eceeSBaptiste Daroussin * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 239950eceeSBaptiste Daroussin * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 249950eceeSBaptiste Daroussin * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 259950eceeSBaptiste Daroussin * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 269950eceeSBaptiste Daroussin * SUCH DAMAGE. 279950eceeSBaptiste Daroussin */ 289950eceeSBaptiste Daroussin 299950eceeSBaptiste Daroussin #ifndef _PKG_CONFIG_H 309950eceeSBaptiste Daroussin #define _PKG_CONFIG_H 319950eceeSBaptiste Daroussin 321f474190SStefan Eßer #include <paths.h> 33*dc458158SBaptiste Daroussin #include <sys/queue.h> 341f474190SStefan Eßer 3562940ea9SBryan Drewery #define URL_SCHEME_PREFIX "pkg+" 369950eceeSBaptiste Daroussin 379950eceeSBaptiste Daroussin typedef enum { 389950eceeSBaptiste Daroussin PACKAGESITE = 0, 399950eceeSBaptiste Daroussin ABI, 409950eceeSBaptiste Daroussin MIRROR_TYPE, 419950eceeSBaptiste Daroussin ASSUME_ALWAYS_YES, 42f12db248SBryan Drewery SIGNATURE_TYPE, 43f12db248SBryan Drewery FINGERPRINTS, 44eb31a574SBryan Drewery REPOS_DIR, 4561acb458SBaptiste Daroussin PUBKEY, 46e869d3c6SMoritz Schmitt PKG_ENV, 479950eceeSBaptiste Daroussin CONFIG_SIZE 489950eceeSBaptiste Daroussin } pkg_config_key; 499950eceeSBaptiste Daroussin 509950eceeSBaptiste Daroussin typedef enum { 519950eceeSBaptiste Daroussin PKG_CONFIG_STRING=0, 529950eceeSBaptiste Daroussin PKG_CONFIG_BOOL, 53eb31a574SBryan Drewery PKG_CONFIG_LIST, 54e869d3c6SMoritz Schmitt PKG_CONFIG_OBJECT 559950eceeSBaptiste Daroussin } pkg_config_t; 569950eceeSBaptiste Daroussin 57bc5e9ac0SBryan Drewery typedef enum { 58bc5e9ac0SBryan Drewery CONFFILE_PKG=0, 59bc5e9ac0SBryan Drewery CONFFILE_REPO, 60bc5e9ac0SBryan Drewery } pkg_conf_file_t; 61bc5e9ac0SBryan Drewery 62*dc458158SBaptiste Daroussin typedef enum { 63*dc458158SBaptiste Daroussin SIGNATURE_NONE = 0, 64*dc458158SBaptiste Daroussin SIGNATURE_FINGERPRINT, 65*dc458158SBaptiste Daroussin SIGNATURE_PUBKEY, 66*dc458158SBaptiste Daroussin } signature_t; 67*dc458158SBaptiste Daroussin 68*dc458158SBaptiste Daroussin typedef enum { 69*dc458158SBaptiste Daroussin MIRROR_NONE = 0, 70*dc458158SBaptiste Daroussin MIRROR_SRV, 71*dc458158SBaptiste Daroussin } mirror_t; 72*dc458158SBaptiste Daroussin 73*dc458158SBaptiste Daroussin struct repository { 74*dc458158SBaptiste Daroussin char *name; 75*dc458158SBaptiste Daroussin char *url; 76*dc458158SBaptiste Daroussin mirror_t mirror_type; 77*dc458158SBaptiste Daroussin signature_t signature_type; 78*dc458158SBaptiste Daroussin char *fingerprints; 79*dc458158SBaptiste Daroussin char *pubkey; 80*dc458158SBaptiste Daroussin STAILQ_ENTRY(repository) next; 81*dc458158SBaptiste Daroussin }; 82*dc458158SBaptiste Daroussin STAILQ_HEAD(repositories, repository); 83*dc458158SBaptiste Daroussin 8418418e19SKyle Evans int config_init(const char *); 859950eceeSBaptiste Daroussin void config_finish(void); 869950eceeSBaptiste Daroussin int config_string(pkg_config_key, const char **); 879950eceeSBaptiste Daroussin int config_bool(pkg_config_key, bool *); 88*dc458158SBaptiste Daroussin struct repositories *config_get_repositories(void); 899950eceeSBaptiste Daroussin 909950eceeSBaptiste Daroussin #endif 91