dpkg 1.21.11
dpkg-db.h
Go to the documentation of this file.
1/*
2 * libdpkg - Debian packaging suite library routines
3 * dpkg-db.h - declarations for in-core package database management
4 *
5 * Copyright © 1994,1995 Ian Jackson <ijackson@chiark.greenend.org.uk>
6 * Copyright © 2000,2001 Wichert Akkerman
7 * Copyright © 2006-2014 Guillem Jover <guillem@debian.org>
8 *
9 * This is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
13 *
14 * This is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program. If not, see <https://www.gnu.org/licenses/>.
21 */
22
23#ifndef LIBDPKG_DPKG_DB_H
24#define LIBDPKG_DPKG_DB_H
25
26#include <sys/types.h>
27
28#include <stdbool.h>
29#include <stdio.h>
30
31#include <dpkg/macros.h>
32#include <dpkg/varbuf.h>
33#include <dpkg/version.h>
34#include <dpkg/arch.h>
35
37
44enum deptype {
54};
55
56struct dependency {
57 struct pkginfo *up;
59 struct deppossi *list;
61};
62
63struct deppossi {
64 struct dependency *up;
65 struct pkgset *ed;
67 const struct dpkg_arch *arch;
72};
73
76 const char *name;
77 const char *value;
78};
79
80struct conffile {
81 struct conffile *next;
82 const char *name;
83 const char *hash;
86};
87
90 const char *name;
91 const char *msdosname;
92 const char *size;
93 const char *md5sum;
94};
95
101};
102
108struct pkgbin {
115 const struct dpkg_arch *arch;
118 const char *pkgname_archqual;
119 const char *description;
120 const char *maintainer;
121 const char *source;
122 const char *installedsize;
123 const char *origin;
124 const char *bugs;
128};
129
137struct trigpend {
138 struct trigpend *next;
139 const char *name;
140};
141
145struct trigaw {
146 struct pkginfo *aw, *pend;
148 struct {
149 struct trigaw *next, *prev;
151};
152
153/* Note: dselect and dpkg have different versions of this. */
154struct perpackagestate;
155
164};
165
169};
170
180};
181
191};
192
198struct pkginfo {
199 struct pkgset *set;
201
207 const char *otherpriority;
208 const char *section;
213
215
216 struct {
217 /* ->aw == this */
218 struct trigaw *head, *tail;
220
221 /* ->pend == this, non-NULL for us when Triggers-Pending. */
224
237
238 /* The status has changed, it needs to be logged. */
240};
241
245struct pkgset {
246 struct pkgset *next;
247 const char *name;
248 struct pkginfo pkg;
249 struct {
254};
255
256/*** from dbdir.c ***/
257
258const char *dpkg_db_set_dir(const char *dir);
259const char *dpkg_db_get_dir(void);
260char *dpkg_db_get_path(const char *pathpart);
261
262#include <dpkg/atomic-file.h>
263
264/*** from dbmodify.c ***/
265
267 /* Those marked with «return» are possible returns from modstatdb_open(). */
268 msdbrw_readonly, /* «return» */
271 msdbrw_write, /* «return» */
273
274 /* Now some optional flags (starting at bit 8): */
278};
279
280void modstatdb_init(void);
281void modstatdb_done(void);
282bool modstatdb_is_locked(void);
283bool modstatdb_can_lock(void);
284void modstatdb_lock(void);
285void modstatdb_unlock(void);
286enum modstatdb_rw modstatdb_open(enum modstatdb_rw reqrwflags);
288void modstatdb_note(struct pkginfo *pkg);
289void modstatdb_note_ifwrite(struct pkginfo *pkg);
290void modstatdb_checkpoint(void);
291void modstatdb_shutdown(void);
292
293/*** from database.c ***/
294
295void pkgset_blank(struct pkgset *set);
296int pkgset_installed_instances(struct pkgset *set);
297
298void pkg_blank(struct pkginfo *pp);
299void pkgbin_blank(struct pkgbin *pkgbin);
300bool pkg_is_informative(struct pkginfo *pkg, struct pkgbin *info);
301
302struct pkgset *
303pkg_hash_find_set(const char *name);
304struct pkginfo *
306struct pkginfo *
307pkg_hash_find_singleton(const char *name);
308struct pkginfo *
309pkg_hash_get_pkg(struct pkgset *set, const struct dpkg_arch *arch);
310struct pkginfo *
311pkg_hash_find_pkg(const char *name, const struct dpkg_arch *arch);
312int
314int
316void
317pkg_hash_reset(void);
318
319struct pkg_hash_iter *
321struct pkgset *
323struct pkginfo *
325void
327
328void
329pkg_hash_report(FILE *);
330
331/*** from parse.c ***/
332
358
359 /* Standard operations. */
360
368};
369
370const char *pkg_name_is_illegal(const char *p);
371
372const struct fieldinfo *
373find_field_info(const struct fieldinfo *fields, const char *fieldname);
374const struct arbitraryfield *
375find_arbfield_info(const struct arbitraryfield *arbs, const char *fieldname);
376
377int parsedb(const char *filename, enum parsedbflags, struct pkginfo **donep);
378void copy_dependency_links(struct pkginfo *pkg,
379 struct dependency **updateme,
380 struct dependency *newdepends,
381 bool available);
382
383/*** from parsehelp.c ***/
384
385#include <dpkg/namevalue.h>
386
387extern const struct namevalue booleaninfos[];
388extern const struct namevalue multiarchinfos[];
389extern const struct namevalue priorityinfos[];
390extern const struct namevalue statusinfos[];
391extern const struct namevalue eflaginfos[];
392extern const struct namevalue wantinfos[];
393
394#include <dpkg/error.h>
395
400};
401void varbufversion(struct varbuf *, const struct dpkg_version *,
403int parseversion(struct dpkg_version *version, const char *,
404 struct dpkg_error *err);
405const char *versiondescribe(const struct dpkg_version *,
407const char *versiondescribe_c(const struct dpkg_version *version,
408 enum versiondisplayepochwhen vdew);
409
421};
422
423void varbuf_add_pkgbin_name(struct varbuf *vb, const struct pkginfo *pkg,
424 const struct pkgbin *pkgbin,
425 enum pkg_name_arch_when pnaw);
426
427const char *
428pkgbin_name_archqual(const struct pkginfo *pkg, const struct pkgbin *pkgbin);
429
430const char *
431pkgbin_name(struct pkginfo *pkg, struct pkgbin *pkgbin,
432 enum pkg_name_arch_when pnaw);
433const char *
434pkg_name(struct pkginfo *pkg, enum pkg_name_arch_when pnaw);
435
436const char *
437pkgbin_name_const(const struct pkginfo *pkg, const struct pkgbin *pkgbin,
438 enum pkg_name_arch_when pnaw);
439const char *
440pkg_name_const(const struct pkginfo *pkg, enum pkg_name_arch_when pnaw);
441
442void
443pkg_source_version(struct dpkg_version *version,
444 const struct pkginfo *pkg, const struct pkgbin *pkgbin);
445
446void
448 const struct pkginfo *pkg, const struct pkgbin *pkgbin);
449
450const char *pkg_want_name(const struct pkginfo *pkg);
451const char *pkg_status_name(const struct pkginfo *pkg);
452const char *pkg_eflag_name(const struct pkginfo *pkg);
453
454const char *pkg_priority_name(const struct pkginfo *pkg);
455
456/*** from dump.c ***/
457
458void writerecord(FILE*, const char*,
459 const struct pkginfo *, const struct pkgbin *);
460
466};
467
468void writedb_records(FILE *fp, const char *filename, enum writedb_flags flags);
469void writedb(const char *filename, enum writedb_flags flags);
470
471/* Note: The varbufs must have been initialized and will not be
472 * NUL-terminated. */
473void varbufrecord(struct varbuf *, const struct pkginfo *,
474 const struct pkgbin *);
475void varbufdependency(struct varbuf *vb, struct dependency *dep);
476
477/*** from depcon.c ***/
478
479bool versionsatisfied(struct pkgbin *it, struct deppossi *against);
480bool deparchsatisfied(struct pkgbin *it, const struct dpkg_arch *arch,
481 struct deppossi *against);
482bool archsatisfied(struct pkgbin *it, struct deppossi *against);
483
484bool
486 struct deppossi *provider);
487
488/*** from nfmalloc.c ***/
489void *nfmalloc(size_t);
490char *nfstrsave(const char*);
491char *nfstrnsave(const char*, size_t);
492void nffreeall(void);
493
497
498#endif /* LIBDPKG_DPKG_DB_H */
struct pkginfo * pkg_hash_find_singleton(const char *name)
Return the singleton package instance with the given name.
Definition: pkg-hash.c:146
parsedbflags
Definition: dpkg-db.h:333
void writerecord(FILE *, const char *, const struct pkginfo *, const struct pkgbin *)
Definition: dump.c:481
void copy_dependency_links(struct pkginfo *pkg, struct dependency **updateme, struct dependency *newdepends, bool available)
Copy dependency links structures.
Definition: parse.c:883
const char * pkgbin_name_archqual(const struct pkginfo *pkg, const struct pkgbin *pkgbin)
Definition: pkg-show.c:87
enum modstatdb_rw modstatdb_open(enum modstatdb_rw reqrwflags)
Definition: dbmodify.c:306
void writedb(const char *filename, enum writedb_flags flags)
Definition: dump.c:538
int parseversion(struct dpkg_version *version, const char *, struct dpkg_error *err)
Parse a version string and check for invalid syntax.
Definition: parsehelp.c:218
const struct namevalue priorityinfos[]
Definition: pkg-namevalue.c:42
bool versionsatisfied(struct pkgbin *it, struct deppossi *against)
Definition: depcon.c:31
deptype
Definition: dpkg-db.h:44
void modstatdb_note_ifwrite(struct pkginfo *pkg)
Definition: dbmodify.c:528
void writedb_records(FILE *fp, const char *filename, enum writedb_flags flags)
Definition: dump.c:497
const char * pkgbin_name(struct pkginfo *pkg, struct pkgbin *pkgbin, enum pkg_name_arch_when pnaw)
Return a string representation of the package name.
Definition: pkg-show.c:172
const struct namevalue multiarchinfos[]
Definition: pkg-namevalue.c:34
versiondisplayepochwhen
Definition: dpkg-db.h:396
void pkgset_blank(struct pkgset *set)
Definition: pkg.c:149
bool archsatisfied(struct pkgbin *it, struct deppossi *against)
Definition: depcon.c:82
const struct namevalue booleaninfos[]
Definition: pkg-namevalue.c:28
pkgeflag
Definition: dpkg-db.h:166
const char * dpkg_db_set_dir(const char *dir)
Set current on-disk database directory.
Definition: dbdir.c:71
modstatdb_rw
Definition: dpkg-db.h:266
const char * versiondescribe_c(const struct dpkg_version *version, enum versiondisplayepochwhen vdew)
Definition: parsehelp.c:192
const char * pkg_eflag_name(const struct pkginfo *pkg)
Return a string representation of the package eflag status name.
Definition: pkg-show.c:323
const char * pkg_want_name(const struct pkginfo *pkg)
Return a string representation of the package want status name.
Definition: pkg-show.c:310
void modstatdb_lock(void)
Definition: dbmodify.c:280
enum modstatdb_rw modstatdb_get_status(void)
Definition: dbmodify.c:376
pkgmultiarch
Definition: dpkg-db.h:96
void nffreeall(void)
Definition: nfmalloc.c:68
pkgpriority
Definition: dpkg-db.h:182
pkgwant
Definition: dpkg-db.h:156
const char * dpkg_db_get_dir(void)
Get current on-disk database directory.
Definition: dbdir.c:95
writedb_flags
Definition: dpkg-db.h:461
const char * pkg_name(struct pkginfo *pkg, enum pkg_name_arch_when pnaw)
Return a string representation of the installed package name.
Definition: pkg-show.c:196
bool modstatdb_can_lock(void)
Definition: dbmodify.c:249
char * nfstrsave(const char *)
Definition: nfmalloc.c:56
bool pkg_virtual_deppossi_satisfied(struct deppossi *dependee, struct deppossi *provider)
Check if the dependency is satisfied by a virtual package.
Definition: depcon.c:111
void varbufdependency(struct varbuf *vb, struct dependency *dep)
Definition: dump.c:305
int pkgset_installed_instances(struct pkgset *set)
Get the number of installed package instances in a package set.
Definition: pkg.c:182
char * dpkg_db_get_path(const char *pathpart)
Get a pathname to the current on-disk database directory.
Definition: dbdir.c:114
void pkg_hash_reset(void)
Definition: pkg-hash.c:363
pkgstatus
Definition: dpkg-db.h:171
void pkg_blank(struct pkginfo *pp)
Definition: pkg.c:117
const char * pkgbin_name_const(const struct pkginfo *pkg, const struct pkgbin *pkgbin, enum pkg_name_arch_when pnaw)
Return a string representation of the package name.
Definition: pkg-show.c:124
const char * pkg_name_is_illegal(const char *p)
Definition: parsehelp.c:123
struct pkginfo * pkg_hash_find_pkg(const char *name, const struct dpkg_arch *arch)
Return the package instance with the given name and architecture.
Definition: pkg-hash.c:226
void pkg_hash_report(FILE *)
Definition: pkg-hash.c:373
bool pkg_is_informative(struct pkginfo *pkg, struct pkgbin *info)
Check if a pkg is informative.
Definition: pkg.c:194
void pkg_source_version(struct dpkg_version *version, const struct pkginfo *pkg, const struct pkgbin *pkgbin)
Definition: pkg-show.c:417
void varbufversion(struct varbuf *, const struct dpkg_version *, enum versiondisplayepochwhen)
Definition: parsehelp.c:145
const char * versiondescribe(const struct dpkg_version *, enum versiondisplayepochwhen)
Definition: parsehelp.c:172
int pkg_hash_count_set(void)
Return the number of package sets available in the database.
Definition: pkg-hash.c:243
int parsedb(const char *filename, enum parsedbflags, struct pkginfo **donep)
Parse a deb822 style file.
Definition: parse.c:847
const struct arbitraryfield * find_arbfield_info(const struct arbitraryfield *arbs, const char *fieldname)
Definition: parsehelp.c:111
const struct namevalue statusinfos[]
Definition: pkg-namevalue.c:67
void * nfmalloc(size_t)
Definition: nfmalloc.c:50
const struct fieldinfo * find_field_info(const struct fieldinfo *fields, const char *fieldname)
Definition: parsehelp.c:99
const struct namevalue wantinfos[]
Definition: pkg-namevalue.c:52
void varbuf_add_pkgbin_name(struct varbuf *vb, const struct pkginfo *pkg, const struct pkgbin *pkgbin, enum pkg_name_arch_when pnaw)
Add a string representation of the package name to a varbuf.
Definition: pkg-show.c:76
void varbufrecord(struct varbuf *, const struct pkginfo *, const struct pkgbin *)
Definition: dump.c:466
struct pkg_hash_iter * pkg_hash_iter_new(void)
Create a new package iterator.
Definition: pkg-hash.c:272
void modstatdb_init(void)
Definition: dbmodify.c:180
int pkg_hash_count_pkg(void)
Return the number of package instances available in the database.
Definition: pkg-hash.c:254
const char * pkg_priority_name(const struct pkginfo *pkg)
Return a string representation of the package priority name.
Definition: pkg-show.c:349
void modstatdb_shutdown(void)
Definition: dbmodify.c:407
void pkgbin_blank(struct pkgbin *pkgbin)
Definition: pkg.c:99
const char * pkg_name_const(const struct pkginfo *pkg, enum pkg_name_arch_when pnaw)
Return a string representation of the installed package name.
Definition: pkg-show.c:150
void modstatdb_note(struct pkginfo *pkg)
Definition: dbmodify.c:484
void modstatdb_done(void)
Definition: dbmodify.c:201
struct pkgset * pkg_hash_iter_next_set(struct pkg_hash_iter *iter)
Definition: pkg-hash.c:293
pkg_name_arch_when
Definition: dpkg-db.h:410
struct pkgset * pkg_hash_find_set(const char *name)
Return the package set with the given name.
Definition: pkg-hash.c:68
bool modstatdb_is_locked(void)
Definition: dbmodify.c:221
struct pkginfo * pkg_hash_get_singleton(struct pkgset *set)
Return the singleton package instance from a package set.
Definition: pkg-hash.c:112
bool deparchsatisfied(struct pkgbin *it, const struct dpkg_arch *arch, struct deppossi *against)
Check if the architecture qualifier in the dependency is satisfied.
Definition: depcon.c:55
struct pkginfo * pkg_hash_iter_next_pkg(struct pkg_hash_iter *iter)
Definition: pkg-hash.c:328
void varbuf_add_source_version(struct varbuf *vb, const struct pkginfo *pkg, const struct pkgbin *pkgbin)
Add a string representation of the source package version to a varbuf.
Definition: pkg-show.c:406
void modstatdb_checkpoint(void)
Definition: dbmodify.c:381
void pkg_hash_iter_free(struct pkg_hash_iter *iter)
Definition: pkg-hash.c:357
struct pkginfo * pkg_hash_get_pkg(struct pkgset *set, const struct dpkg_arch *arch)
Return the package instance in a set with the given architecture.
Definition: pkg-hash.c:174
char * nfstrnsave(const char *, size_t)
Definition: nfmalloc.c:62
const char * pkg_status_name(const struct pkginfo *pkg)
Return a string representation of the package current status name.
Definition: pkg-show.c:336
const struct namevalue eflaginfos[]
Definition: pkg-namevalue.c:61
void modstatdb_unlock(void)
Definition: dbmodify.c:294
@ pdb_parse_available
Definition: dpkg-db.h:364
@ pdb_recordavailable
Store in ‘available’ in-core structures, not ‘status’.
Definition: dpkg-db.h:337
@ pdb_lax_stanza_parser
Perform laxer control stanza parsing.
Definition: dpkg-db.h:349
@ pdb_lax_version_parser
Perform laxer version parsing.
Definition: dpkg-db.h:347
@ pdb_rejectstatus
Throw up an error if ‘Status’ encountered.
Definition: dpkg-db.h:339
@ pdb_parse_binary
Definition: dpkg-db.h:366
@ pdb_ignore_archives
Ignore archives info if we already have them.
Definition: dpkg-db.h:343
@ pdb_lax_parser
Perform laxer parsing, used to transition to stricter parsing.
Definition: dpkg-db.h:351
@ pdb_weakclassification
Ignore priority/section info if we already have any.
Definition: dpkg-db.h:341
@ pdb_dash_is_stdin
Interpret filename ‘-’ as stdin.
Definition: dpkg-db.h:355
@ pdb_ignoreolder
Ignore packages with older versions already read.
Definition: dpkg-db.h:345
@ pdb_allow_empty
Allow empty/missing files.
Definition: dpkg-db.h:357
@ pdb_close_fd
Close file descriptor on context destruction.
Definition: dpkg-db.h:353
@ pdb_parse_status
Definition: dpkg-db.h:361
@ pdb_parse_update
Definition: dpkg-db.h:363
@ pdb_single_stanza
Parse a single control stanza.
Definition: dpkg-db.h:335
@ dep_depends
Definition: dpkg-db.h:47
@ dep_enhances
Definition: dpkg-db.h:53
@ dep_conflicts
Definition: dpkg-db.h:50
@ dep_replaces
Definition: dpkg-db.h:52
@ dep_predepends
Definition: dpkg-db.h:48
@ dep_suggests
Definition: dpkg-db.h:45
@ dep_recommends
Definition: dpkg-db.h:46
@ dep_provides
Definition: dpkg-db.h:51
@ dep_breaks
Definition: dpkg-db.h:49
@ vdew_nonambig
Definition: dpkg-db.h:398
@ vdew_never
Definition: dpkg-db.h:397
@ vdew_always
Definition: dpkg-db.h:399
@ PKG_EFLAG_REINSTREQ
Definition: dpkg-db.h:168
@ PKG_EFLAG_OK
Definition: dpkg-db.h:167
@ msdbrw_write
Definition: dpkg-db.h:271
@ msdbrw_writeifposs
Definition: dpkg-db.h:270
@ msdbrw_available_mask
Definition: dpkg-db.h:277
@ msdbrw_available_readonly
Definition: dpkg-db.h:275
@ msdbrw_needsuperuser
Definition: dpkg-db.h:272
@ msdbrw_needsuperuserlockonly
Definition: dpkg-db.h:269
@ msdbrw_available_write
Definition: dpkg-db.h:276
@ msdbrw_readonly
Definition: dpkg-db.h:268
@ PKG_MULTIARCH_ALLOWED
Definition: dpkg-db.h:99
@ PKG_MULTIARCH_SAME
Definition: dpkg-db.h:98
@ PKG_MULTIARCH_FOREIGN
Definition: dpkg-db.h:100
@ PKG_MULTIARCH_NO
Definition: dpkg-db.h:97
@ PKG_PRIO_EXTRA
Definition: dpkg-db.h:187
@ PKG_PRIO_OTHER
Definition: dpkg-db.h:188
@ PKG_PRIO_IMPORTANT
Definition: dpkg-db.h:184
@ PKG_PRIO_UNSET
Definition: dpkg-db.h:190
@ PKG_PRIO_REQUIRED
Definition: dpkg-db.h:183
@ PKG_PRIO_OPTIONAL
Definition: dpkg-db.h:186
@ PKG_PRIO_UNKNOWN
Definition: dpkg-db.h:189
@ PKG_PRIO_STANDARD
Definition: dpkg-db.h:185
@ PKG_WANT_PURGE
Definition: dpkg-db.h:161
@ PKG_WANT_INSTALL
Definition: dpkg-db.h:158
@ PKG_WANT_UNKNOWN
Definition: dpkg-db.h:157
@ PKG_WANT_SENTINEL
Not allowed except as special sentinel value in some places.
Definition: dpkg-db.h:163
@ PKG_WANT_HOLD
Definition: dpkg-db.h:159
@ PKG_WANT_DEINSTALL
Definition: dpkg-db.h:160
@ wdb_dump_available
Dump ‘available’ in-core structures, not ‘status’.
Definition: dpkg-db.h:463
@ wdb_must_sync
Must sync the written file.
Definition: dpkg-db.h:465
@ PKG_STAT_TRIGGERSPENDING
Definition: dpkg-db.h:178
@ PKG_STAT_TRIGGERSAWAITED
Definition: dpkg-db.h:177
@ PKG_STAT_CONFIGFILES
Definition: dpkg-db.h:173
@ PKG_STAT_NOTINSTALLED
Definition: dpkg-db.h:172
@ PKG_STAT_INSTALLED
Definition: dpkg-db.h:179
@ PKG_STAT_HALFCONFIGURED
Definition: dpkg-db.h:176
@ PKG_STAT_HALFINSTALLED
Definition: dpkg-db.h:174
@ PKG_STAT_UNPACKED
Definition: dpkg-db.h:175
@ pnaw_same
Display arch only when it's a Multi-Arch same package.
Definition: dpkg-db.h:416
@ pnaw_nonambig
Display arch only when it's non-ambiguous.
Definition: dpkg-db.h:414
@ pnaw_never
Never display arch.
Definition: dpkg-db.h:412
@ pnaw_always
Always display arch.
Definition: dpkg-db.h:420
@ pnaw_foreign
Display arch only when it's a foreign one.
Definition: dpkg-db.h:418
#define DPKG_BEGIN_DECLS
Definition: macros.h:86
#define DPKG_END_DECLS
Definition: macros.h:87
#define DPKG_BIT(n)
Return the integer value of bit n.
Definition: macros.h:125
void info(const char *fmt,...)
Definition: report.c:119
dpkg_relation
Enum constants for the supported relation operations that can be done on Debian versions.
Definition: version.h:64
Definition: dpkg-db.h:74
const char * name
Definition: dpkg-db.h:76
const char * value
Definition: dpkg-db.h:77
struct arbitraryfield * next
Definition: dpkg-db.h:75
Definition: dpkg-db.h:88
struct archivedetails * next
Definition: dpkg-db.h:89
const char * name
Definition: dpkg-db.h:90
const char * size
Definition: dpkg-db.h:92
const char * msdosname
Definition: dpkg-db.h:91
const char * md5sum
Definition: dpkg-db.h:93
Definition: dpkg-db.h:80
bool obsolete
Definition: dpkg-db.h:84
struct conffile * next
Definition: dpkg-db.h:81
const char * name
Definition: dpkg-db.h:82
bool remove_on_upgrade
Definition: dpkg-db.h:85
const char * hash
Definition: dpkg-db.h:83
Definition: dpkg-db.h:56
enum deptype type
Definition: dpkg-db.h:60
struct deppossi * list
Definition: dpkg-db.h:59
struct dependency * next
Definition: dpkg-db.h:58
struct pkginfo * up
Definition: dpkg-db.h:57
Definition: dpkg-db.h:63
struct pkgset * ed
Definition: dpkg-db.h:65
struct deppossi * rev_prev
Definition: dpkg-db.h:66
struct dependency * up
Definition: dpkg-db.h:64
struct deppossi * rev_next
Definition: dpkg-db.h:66
bool arch_is_implicit
Definition: dpkg-db.h:70
bool cyclebreak
Definition: dpkg-db.h:71
const struct dpkg_arch * arch
Definition: dpkg-db.h:67
struct deppossi * next
Definition: dpkg-db.h:66
struct dpkg_version version
Definition: dpkg-db.h:68
enum dpkg_relation verrel
Definition: dpkg-db.h:69
Definition: arch.h:48
Definition: error.h:42
Data structure representing a Debian version.
Definition: version.h:42
Definition: parsedump.h:142
Definition: fsys.h:126
Definition: namevalue.h:35
Definition: main.h:55
Definition: pkg-hash.c:259
Node describing a binary package file.
Definition: dpkg-db.h:108
const char * description
Definition: dpkg-db.h:119
bool essential
The ‘essential’ flag, true = yes, false = no (absent).
Definition: dpkg-db.h:111
struct dependency * depends
Definition: dpkg-db.h:109
struct dpkg_version version
Definition: dpkg-db.h:125
const char * source
Definition: dpkg-db.h:121
const struct dpkg_arch * arch
Definition: dpkg-db.h:115
const char * installedsize
Definition: dpkg-db.h:122
const char * pkgname_archqual
The following is the "pkgname:archqual" cached string, if this was a C++ class this member would be m...
Definition: dpkg-db.h:118
bool is_protected
The ‘protected’ flag, true = yes, false = no (absent).
Definition: dpkg-db.h:113
enum pkgmultiarch multiarch
Definition: dpkg-db.h:114
struct arbitraryfield * arbs
Definition: dpkg-db.h:127
struct conffile * conffiles
Definition: dpkg-db.h:126
const char * maintainer
Definition: dpkg-db.h:120
const char * bugs
Definition: dpkg-db.h:124
const char * origin
Definition: dpkg-db.h:123
Node describing an architecture package instance.
Definition: dpkg-db.h:198
const char * otherpriority
Definition: dpkg-db.h:207
struct trigpend * trigpend_head
Definition: dpkg-db.h:223
enum pkgwant want
Definition: dpkg-db.h:202
enum pkgstatus status
Definition: dpkg-db.h:205
struct pkgbin available
Definition: dpkg-db.h:211
const char * section
Definition: dpkg-db.h:208
struct trigaw * othertrigaw_head
Definition: dpkg-db.h:222
struct pkgbin installed
Definition: dpkg-db.h:210
enum pkgpriority priority
Definition: dpkg-db.h:206
struct pkginfo::@2 trigaw
struct trigaw * head
Definition: dpkg-db.h:218
bool files_list_valid
Definition: dpkg-db.h:236
struct fsys_namenode_list * files
files_list_valid files Meaning
Definition: dpkg-db.h:234
struct pkgset * set
Definition: dpkg-db.h:199
bool status_dirty
Definition: dpkg-db.h:239
off_t files_list_phys_offs
Definition: dpkg-db.h:235
struct dpkg_version configversion
Definition: dpkg-db.h:209
enum pkgeflag eflag
The error flag bitmask.
Definition: dpkg-db.h:204
struct archivedetails * archives
Definition: dpkg-db.h:214
struct perpackagestate * clientdata
Definition: dpkg-db.h:212
struct pkginfo * arch_next
Definition: dpkg-db.h:200
struct trigaw * tail
Definition: dpkg-db.h:218
Node describing a package set sharing the same package name.
Definition: dpkg-db.h:245
struct deppossi * available
Definition: dpkg-db.h:250
struct deppossi * installed
Definition: dpkg-db.h:251
struct pkginfo pkg
Definition: dpkg-db.h:248
const char * name
Definition: dpkg-db.h:247
int installed_instances
Definition: dpkg-db.h:253
struct pkgset * next
Definition: dpkg-db.h:246
struct pkgset::@3 depended
Node indicates that aw's Triggers-Awaited mentions pend.
Definition: dpkg-db.h:145
struct trigaw * next
Definition: dpkg-db.h:149
struct pkginfo * pend
Definition: dpkg-db.h:146
struct trigaw * samepend_next
Definition: dpkg-db.h:147
struct pkginfo * aw
Definition: dpkg-db.h:146
struct trigaw * prev
Definition: dpkg-db.h:149
struct trigaw::@1 sameaw
Node indicates that parent's Triggers-Pending mentions name.
Definition: dpkg-db.h:137
struct trigpend * next
Definition: dpkg-db.h:138
const char * name
Definition: dpkg-db.h:139
varbuf_init must be called exactly once before the use of each varbuf (including before any call to v...
Definition: varbuf.h:55