diff options
Diffstat (limited to 'lib/dpkg/dpkg.h')
-rw-r--r-- | lib/dpkg/dpkg.h | 161 |
1 files changed, 161 insertions, 0 deletions
diff --git a/lib/dpkg/dpkg.h b/lib/dpkg/dpkg.h new file mode 100644 index 0000000..463f829 --- /dev/null +++ b/lib/dpkg/dpkg.h @@ -0,0 +1,161 @@ +/* + * libdpkg - Debian packaging suite library routines + * dpkg.h - general header for Debian package handling + * + * Copyright © 1994,1995 Ian Jackson <ijackson@chiark.greenend.org.uk> + * Copyright © 2000,2001 Wichert Akkerman <wichert@debian.org> + * Copyright © 2006-2015 Guillem Jover <guillem@debian.org> + * + * This is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#ifndef LIBDPKG_DPKG_H +#define LIBDPKG_DPKG_H + +#include <sys/types.h> + +#include <stddef.h> +#include <stdio.h> + +#include <dpkg/macros.h> + +DPKG_BEGIN_DECLS + +/** + * @mainpage libdpkg C API + * + * This is the documentation for the libdpkg C API. It is divided in an + * @ref dpkg-internal "internal API" and a @ref dpkg-public "public API". + * Applications closely tied to dpkg can make use of the internal API, the + * rest should only assume the availability of the public API. + * + * Applications need to define the LIBDPKG_VOLATILE_API macro to acknowledge + * that the API is to be considered volatile, please read doc/README.api for + * more information. + * + * @defgroup dpkg-internal Internal libdpkg C API + * + * @defgroup dpkg-public Public libdpkg C API + */ + +#define MAXCONFFILENAME 1000 +#define MAXDIVERTFILENAME 1024 +#define MAXCONTROLFILENAME 100 +#define DEBEXT ".deb" +#define REMOVECONFFEXTS "~", ".bak", "%", \ + DPKGTEMPEXT, DPKGNEWEXT, DPKGOLDEXT, DPKGDISTEXT + +#define NEWCONFFILEFLAG "newconffile" +#define NONEXISTENTFLAG "nonexistent" +#define EMPTYHASHFLAG "-" + +#define DPKGTEMPEXT ".dpkg-tmp" +#define DPKGNEWEXT ".dpkg-new" +#define DPKGOLDEXT ".dpkg-old" +#define DPKGDISTEXT ".dpkg-dist" + +#define CONTROLFILE "control" +#define CONFFILESFILE "conffiles" +#define PREINSTFILE "preinst" +#define POSTINSTFILE "postinst" +#define PRERMFILE "prerm" +#define POSTRMFILE "postrm" +/* Debconf config maintainer script. */ +#define MAINTSCRIPT_FILE_CONFIG "config" +#define TRIGGERSCIFILE "triggers" + +#define STATUSFILE "status" +#define AVAILFILE "available" +#define LOCKFILE "lock" +#define FRONTENDLOCKFILE "lock-frontend" +#define DIVERSIONSFILE "diversions" +#define STATOVERRIDEFILE "statoverride" +#define UPDATESDIR "updates" +#define INFODIR "info" +#define TRIGGERSDIR "triggers" +#define TRIGGERSFILEFILE "File" +#define TRIGGERSDEFERREDFILE "Unincorp" +#define TRIGGERSLOCKFILE "Lock" +#define CONTROLDIRTMP "tmp.ci" +#define IMPORTANTTMP "tmp.i" +#define REASSEMBLETMP "reassemble" DEBEXT +#define IMPORTANTMAXLEN 10 +#define IMPORTANTFMT "%04d" +#define MAXUPDATES 250 + +#define DEFAULTSHELL "sh" +#define DEFAULTPAGER "pager" + +#define MD5HASHLEN 32 +#define MAXTRIGDIRECTIVE 256 + +#define BACKEND "dpkg-deb" +#define SPLITTER "dpkg-split" +#define DPKGQUERY "dpkg-query" +#define DPKGDIVERT "dpkg-divert" +#define DPKGSTAT "dpkg-statoverride" +#define DPKGTRIGGER "dpkg-trigger" +#define DPKG "dpkg" +#define DEBSIGVERIFY "debsig-verify" + +#define RM "rm" +#define CAT "cat" +#define DIFF "diff" + +#include <dpkg/progname.h> +#include <dpkg/ehandle.h> +#include <dpkg/report.h> +#include <dpkg/string.h> +#include <dpkg/program.h> + +/*** log.c ***/ + +extern const char *log_file; +void log_message(const char *fmt, ...) DPKG_ATTR_PRINTF(1); + +void statusfd_add(int fd); +void statusfd_send(const char *fmt, ...) DPKG_ATTR_PRINTF(1); + +/*** cleanup.c ***/ + +void cu_closestream(int argc, void **argv); +void cu_closepipe(int argc, void **argv); +void cu_closedir(int argc, void **argv); +void cu_closefd(int argc, void **argv); +void cu_filename(int argc, void **argv); + +/*** from mlib.c ***/ + +void setcloexec(int fd, const char *fn); +void *m_malloc(size_t); +void *m_calloc(size_t nmemb, size_t size); +void *m_realloc(void *, size_t); +char *m_strdup(const char *str); +char *m_strndup(const char *str, size_t n); +int m_asprintf(char **strp, const char *fmt, ...) DPKG_ATTR_PRINTF(2); +int m_vasprintf(char **strp, const char *fmt, va_list args) + DPKG_ATTR_VPRINTF(2); +int m_dup(int oldfd); +void m_dup2(int oldfd, int newfd); +void m_pipe(int fds[2]); +void m_output(FILE *f, const char *name); + +/*** from utils.c ***/ + +int fgets_checked(char *buf, size_t bufsz, FILE *f, const char *fn); +int fgets_must(char *buf, size_t bufsz, FILE *f, const char *fn); + +DPKG_END_DECLS + +#endif /* LIBDPKG_DPKG_H */ |