libdebian-installer
Data Structures | Enumerations | Functions | Variables
Di_package

Data Structures

struct  di_package
 Package. More...
 
struct  di_package_dependency
 Package dependency. More...
 
struct  di_package_version
 Package version. More...
 

Enumerations

enum  di_package_priority {
  di_package_priority_extra = 1 , di_package_priority_optional , di_package_priority_standard , di_package_priority_important ,
  di_package_priority_required
}
 
enum  di_package_status {
  di_package_status_undefined = 0 , di_package_status_not_installed , di_package_status_unpacked , di_package_status_installed ,
  di_package_status_half_configured , di_package_status_config_files
}
 
enum  di_package_status_want {
  di_package_status_want_unknown = 0 , di_package_status_want_install , di_package_status_want_hold , di_package_status_want_deinstall ,
  di_package_status_want_purge
}
 
enum  di_package_type { di_package_type_non_existent = 0 , di_package_type_virtual_package , di_package_type_real_package }
 
enum  di_package_dependency_type {
  di_package_dependency_type_replaces = 1 , di_package_dependency_type_provides , di_package_dependency_type_depends , di_package_dependency_type_pre_depends ,
  di_package_dependency_type_recommends , di_package_dependency_type_suggests , di_package_dependency_type_conflicts , di_package_dependency_type_enhances ,
  di_package_dependency_type_reverse_provides = 0x100 , di_package_dependency_type_reverse_enhances
}
 

Functions

void di_package_destroy (di_package *package)
 
static di_packagedi_package_alloc (di_packages_allocator *allocator)
 
static di_package_dependencydi_package_dependency_alloc (di_packages_allocator *allocator)
 
void di_package_version_free (di_package_version *version)
 
int di_package_version_compare (const di_package_version *a, const di_package_version *b)
 
di_package_versiondi_package_version_parse (di_package *package)
 
int di_package_array_text_from (const char *const *array, const char *text)
 
static di_package_priority di_package_priority_text_from (const char *text)
 
static di_package_status_want di_package_status_want_text_from (const char *text)
 
static di_package_status di_package_status_text_from (const char *text)
 
static const char * di_package_priority_text_to (const di_package_priority priority)
 
static const char * di_package_status_want_text_to (const di_package_status_want status)
 
static const char * di_package_status_text_to (const di_package_status status)
 
int internal_di_package_array_text_from_rstring (const char *const *array, const di_rstring *text)
 
static di_package_priority internal_di_package_priority_text_from_rstring (const di_rstring *text)
 
static di_package_status_want internal_di_package_status_want_text_from_rstring (const di_rstring *text)
 
static di_package_status internal_di_package_status_text_from_rstring (const di_rstring *text)
 

Variables

const char *const di_package_priority_text []
 
const char *const di_package_status_want_text []
 
const char *const di_package_status_text []
 
di_destroy_notify internal_di_package_destroy_func
 

Detailed Description

Enumeration Type Documentation

◆ di_package_dependency_type

Type of dependency

Enumerator
di_package_dependency_type_replaces 

Replaces field

di_package_dependency_type_provides 

Provides field

di_package_dependency_type_depends 

Depends field

di_package_dependency_type_pre_depends 

Pre-Depends field

di_package_dependency_type_recommends 

Recommends field

di_package_dependency_type_suggests 

Suggests field

di_package_dependency_type_conflicts 

Conflicts field

di_package_dependency_type_enhances 

Enhances field

di_package_dependency_type_reverse_provides 
di_package_dependency_type_reverse_enhances 
125{
136};
@ di_package_dependency_type_pre_depends
Definition package.h:129
@ di_package_dependency_type_reverse_enhances
Definition package.h:135
@ di_package_dependency_type_replaces
Definition package.h:126
@ di_package_dependency_type_conflicts
Definition package.h:132
@ di_package_dependency_type_provides
Definition package.h:127
@ di_package_dependency_type_depends
Definition package.h:128
@ di_package_dependency_type_enhances
Definition package.h:133
@ di_package_dependency_type_suggests
Definition package.h:131
@ di_package_dependency_type_recommends
Definition package.h:130
@ di_package_dependency_type_reverse_provides
Definition package.h:134

◆ di_package_priority

Priority field

49{
50 di_package_priority_extra = 1,
51 di_package_priority_optional,
52 di_package_priority_standard,
53 di_package_priority_important,
54 di_package_priority_required,
55};

◆ di_package_status

Status field, third part

61{
62 di_package_status_undefined = 0,
63 di_package_status_not_installed,
64 di_package_status_unpacked,
65 di_package_status_installed,
66 di_package_status_half_configured,
67 di_package_status_config_files,
68};

◆ di_package_status_want

Status field, first part

74{
75 di_package_status_want_unknown = 0,
76 di_package_status_want_install,
77 di_package_status_want_hold,
78 di_package_status_want_deinstall,
79 di_package_status_want_purge,
80};

◆ di_package_type

type of package

Enumerator
di_package_type_non_existent 

Non existing package

di_package_type_virtual_package 

Virtual package

di_package_type_real_package 

Real package

86{
90};
@ di_package_type_virtual_package
Definition package.h:88
@ di_package_type_real_package
Definition package.h:89
@ di_package_type_non_existent
Definition package.h:87

Function Documentation

◆ di_package_alloc()

static di_package * di_package_alloc ( di_packages_allocator allocator)
inlinestatic
160{
161 return di_mem_chunk_alloc0 (allocator->package_mem_chunk);
162}
void * di_mem_chunk_alloc0(di_mem_chunk *mem_chunk)
Definition mem_chunk.c:156
di_mem_chunk * package_mem_chunk
Definition packages.h:54

◆ di_package_array_text_from()

int di_package_array_text_from ( const char *const *  array,
const char *  text 
)
180{
181 const di_rstring temp = { (char *) text, strlen (text) };
182 return internal_di_package_array_text_from_rstring (array, &temp);
183}
raw string
Definition string.h:38

◆ di_package_dependency_alloc()

static di_package_dependency * di_package_dependency_alloc ( di_packages_allocator allocator)
inlinestatic
165{
167}
di_mem_chunk * package_dependency_mem_chunk
Definition packages.h:55

◆ di_package_destroy()

void di_package_destroy ( di_package package)
34{
35 di_free (package->package);
36 di_free (package->section);
37 di_free (package->maintainer);
38 di_free (package->architecture);
39 di_free (package->version);
40 di_free (package->filename);
41 di_free (package->sha256);
42 di_free (package->short_description);
43 di_free (package->description);
44
45 memset (package, 0, sizeof (di_package));
46}
void di_free(void *mem)
Definition mem.c:60
Package.
Definition package.h:96
char * maintainer
Definition package.h:109
char * section
Definition package.h:107
char * version
Definition package.h:111
char * architecture
Definition package.h:110
char * description
Definition package.h:117
char * short_description
Definition package.h:116
char * sha256
Definition package.h:115
char * filename
Definition package.h:113
char * package
Definition package.h:99

◆ di_package_priority_text_from()

static di_package_priority di_package_priority_text_from ( const char *  text)
inlinestatic
181{
182 return di_package_array_text_from (di_package_priority_text, text);
183}

◆ di_package_priority_text_to()

static const char * di_package_priority_text_to ( const di_package_priority  priority)
inlinestatic
196{
197 return di_package_priority_text[priority];
198}

◆ di_package_status_text_from()

static di_package_status di_package_status_text_from ( const char *  text)
inlinestatic
191{
192 return di_package_array_text_from (di_package_status_text, text);
193}

◆ di_package_status_text_to()

static const char * di_package_status_text_to ( const di_package_status  status)
inlinestatic
206{
207 return di_package_status_text[status];
208}

◆ di_package_status_want_text_from()

static di_package_status_want di_package_status_want_text_from ( const char *  text)
inlinestatic
186{
187 return di_package_array_text_from (di_package_status_want_text, text);
188}

◆ di_package_status_want_text_to()

static const char * di_package_status_want_text_to ( const di_package_status_want  status)
inlinestatic
201{
202 return di_package_status_want_text[status];
203}

◆ di_package_version_compare()

int di_package_version_compare ( const di_package_version a,
const di_package_version b 
)
98{
99 int r;
100
101 if (a->epoch > b->epoch)
102 return 1;
103 if (a->epoch < b->epoch)
104 return -1;
105 r = verrevcmp(a->upstream, b->upstream);
106 if (r != 0)
107 return r;
108 return verrevcmp(a->debian_revision, b->debian_revision);
109}
char * upstream
Definition package.h:153
unsigned long epoch
Definition package.h:152
char * debian_revision
Definition package.h:154

◆ di_package_version_free()

void di_package_version_free ( di_package_version version)
49{
50 di_free (version);
51}

◆ di_package_version_parse()

di_package_version * di_package_version_parse ( di_package package)
112{
113 di_package_version *version;
114 char *hyphen, *colon, *eepochcolon, *string;
115 const char *end;
116 unsigned long epoch;
117
118 if (!package->version)
119 return NULL;
120
121 version = di_new0 (di_package_version, 1);
122
123 string = package->version;
124 end = string + strlen (string);
125 colon = strchr (string, ':');
126 if (colon) {
127 epoch = strtoul (package->version, &eepochcolon, 10);
128 if (colon != eepochcolon)
129 return 0;
130 if (!*++colon)
131 return 0;
132 string = colon;
133 version->epoch = epoch;
134 }
135 hyphen = strrchr (string, '-');
136 if (hyphen)
137 {
138 version->upstream = di_stradup (string, hyphen - string);
139 version->debian_revision = di_stradup (hyphen + 1, end - hyphen - 1);
140 }
141 else
142 version->upstream = di_stradup (string, end - string);
143
144 return version;
145}
#define di_new0(struct_type, n_structs)
Definition mem.h:79
char * di_stradup(const char *s, size_t n)
Definition string.c:45
Package version.
Definition package.h:151

◆ internal_di_package_array_text_from_rstring()

int internal_di_package_array_text_from_rstring ( const char *const *  array,
const di_rstring text 
)
186{
187 int i;
188 for (i = 1; array[i]; i++)
189 if (strncmp (array[i], text->string, text->size) == 0)
190 {
191 return i;
192 }
193 return 0;
194}
di_ksize_t size
Definition string.h:40
char * string
Definition string.h:39

◆ internal_di_package_priority_text_from_rstring()

static di_package_priority internal_di_package_priority_text_from_rstring ( const di_rstring text)
inlinestatic
85{
86 return internal_di_package_array_text_from_rstring (di_package_priority_text, text);
87}

◆ internal_di_package_status_text_from_rstring()

static di_package_status internal_di_package_status_text_from_rstring ( const di_rstring text)
inlinestatic
95{
96 return internal_di_package_array_text_from_rstring (di_package_status_text, text);
97}

◆ internal_di_package_status_want_text_from_rstring()

static di_package_status_want internal_di_package_status_want_text_from_rstring ( const di_rstring text)
inlinestatic
90{
91 return internal_di_package_array_text_from_rstring (di_package_status_want_text, text);
92}

Variable Documentation

◆ internal_di_package_destroy_func

di_destroy_notify internal_di_package_destroy_func

Destroys a di_package struct

Referenced by di_packages_alloc().