1LIBDPKG_0 {
2global:
3	# Error reporting
4	dpkg_has_error;
5	dpkg_put_warn;
6	dpkg_put_error;
7	dpkg_put_errno;
8	dpkg_error_print;
9	dpkg_error_move;
10	dpkg_error_destroy;
11
12	# Charset and string functions
13	dpkg_locales_init;
14
15	# Program name
16	dpkg_set_progname;
17	dpkg_get_progname;
18
19	# Program setup/teardown
20	dpkg_program_init;
21	dpkg_program_done;
22
23	# Ar support
24	dpkg_ar_fdopen;
25	dpkg_ar_create;
26	dpkg_ar_open;
27	dpkg_ar_set_mtime;
28	dpkg_ar_close;
29	dpkg_ar_normalize_name;
30	dpkg_ar_member_is_illegal;
31
32local:
33	*;
34};
35
36LIBDPKG_PRIVATE {
37	# Color handling
38	color_set_mode;
39	color_get;
40	color_reset;
41
42	# Error handling
43	push_error_context_jump;
44	push_error_context_func;
45	push_error_context;
46	pop_error_context;
47	print_fatal_error;
48	catch_fatal_error;
49	push_checkpoint;
50	push_cleanup;
51	push_cleanup_fallback;
52	pop_cleanup;
53	onerr_abort;		# XXX variable, do not export
54	ohshitv;
55	ohshite;
56	ohshit;
57	do_internerr;
58	dpkg_set_report_piped_mode;
59	dpkg_set_report_buffer;
60	dpkg_warning_printer;
61	dpkg_set_warning_printer;
62	warning_get_count;
63	warningv;
64	warning;
65	notice;
66	info;
67
68	debug_set_output;
69	debug_set_mask;
70	debug_has_flag;
71	debug;
72
73	# Generic cleanup
74	cu_closepipe;
75	cu_closestream;
76	cu_closedir;
77	cu_closefd;
78	cu_filename;
79
80	# ‘Must do’ functions
81	m_malloc;
82	m_calloc;
83	m_realloc;
84	m_strdup;
85	m_vasprintf;
86	m_asprintf;
87	m_dup;
88	m_dup2;
89	m_pipe;
90	m_output;
91	fgets_must;
92	fgets_checked;
93
94	# Charset and string functions
95	c_isbits;
96
97	str_match_end;
98	str_fnv_hash;
99	str_concat;
100	str_fmt;
101	str_escape_fmt;
102	str_strip_quotes;
103	str_quote_meta;
104	str_width;
105	str_gen_crop;
106
107	# Variable buffer support
108	varbuf_new;
109	varbuf_init;
110	varbuf_reset;
111	varbuf_grow;
112	varbuf_trunc;
113	varbuf_add_char;
114	varbuf_dup_char;
115	varbuf_map_char;
116	varbuf_add_buf;
117	varbuf_get_str;
118	varbuf_end_str;
119	varbuf_printf;
120	varbuf_vprintf;
121	varbuf_detach;
122	varbuf_snapshot;
123	varbuf_rollback;
124	varbuf_destroy;
125	varbuf_free;
126
127	# Path, directory and file functions
128	secure_unlink_statted;
129	secure_unlink;
130	secure_remove;
131	path_remove_tree;
132	path_skip_slash_dotslash;
133	path_trim_slash_slashdot;
134	path_basename;
135	path_make_temp_template;
136	path_quote_filename;
137
138	dir_sync_path;
139	dir_sync_path_parent;
140	dir_sync_contents;
141
142	treenode_get_mode;
143	treenode_get_virtname;
144	treenode_get_pathname;
145	treewalk_open;
146	treewalk_node;
147	treewalk_next;
148	treewalk_close;
149
150	file_copy_perms;
151	file_show;
152
153	atomic_file_new;
154	atomic_file_open;
155	atomic_file_sync;
156	atomic_file_close;
157	atomic_file_commit;
158	atomic_file_remove;
159	atomic_file_free;
160
161	glob_list_prepend;
162	glob_list_free;
163
164	# Data structure functions
165	namevalue_find_by_name;
166
167	# Buffer I/O functions
168	fd_read;
169	fd_write;
170	fd_allocate_size;
171	buffer_digest;
172	buffer_skip_*;
173	buffer_copy_*;
174
175	# Subprocess and command handling
176	subproc_signals_ignore;
177	subproc_signals_cleanup;
178	subproc_signals_restore;
179	subproc_fork;
180	subproc_reap;
181
182	command_init;
183	command_add_arg;
184	command_add_argl;
185	command_add_argv;
186	command_add_args;
187	command_exec;
188	command_shell;
189	command_destroy;
190
191	pager_get_exec;
192	pager_spawn;
193	pager_reap;
194
195	setcloexec;
196
197	# Compression support
198	compressor_find_by_name;
199	compressor_find_by_extension;
200	compressor_get_name;
201	compressor_get_extension;
202	compressor_get_strategy;
203	compressor_check_params;
204	compress_filter;
205	decompress_filter;
206
207	# Ar support
208	dpkg_ar_put_magic;
209	dpkg_ar_member_put_header;
210	dpkg_ar_member_put_file;
211	dpkg_ar_member_put_mem;
212	dpkg_ar_member_get_size;
213
214	# deb version support
215	deb_version_parse;
216
217	# Configuration and command line handling
218	dpkg_options_load;
219	dpkg_options_parse;
220	dpkg_options_parse_arg_int;
221	dpkg_options_parse_pkgname;
222	badusage;
223	cipaction;		# XXX variable, do not export
224	setaction;
225	setobsolete;
226
227	# General logging
228	log_file;		# XXX variable, do not export
229	log_message;
230
231	# Action logging
232	statusfd_add;
233	statusfd_send;
234
235	# Progress report support
236	progress_init;
237	progress_step;
238	progress_done;
239
240	# Tar support
241	tar_atoul;
242	tar_atosl;
243	tar_extractor;
244	tar_entry_update_from_system;
245
246	# Non-freeing malloc (pool/arena)
247	nfmalloc;
248	nfstrnsave;
249	nfstrsave;
250	nffreeall;
251
252	# Version struct handling
253	dpkg_version_blank;
254	dpkg_version_is_informative;
255	dpkg_version_compare;
256	dpkg_version_relate;
257	versiondescribe;
258	parseversion;
259
260	# Architecture database
261	dpkg_arch_name_is_illegal;
262	dpkg_arch_describe;
263	dpkg_arch_find;
264	dpkg_arch_get;
265	dpkg_arch_get_list;
266	dpkg_arch_reset_list;
267	dpkg_arch_add;
268	dpkg_arch_unmark;
269	dpkg_arch_load_list;
270	dpkg_arch_save_list;
271
272	# Package struct handling
273	pkgset_blank;
274	pkgset_link_pkg;
275	pkgset_installed_instances;
276	pkg_blank;
277	pkgbin_blank;
278	pkg_name_is_illegal;
279	pkg_set_status;
280	pkg_set_eflags;
281	pkg_clear_eflags;
282	pkg_reset_eflags;
283	pkg_copy_eflags;
284	pkg_set_want;
285	pkg_is_informative;
286	copy_dependency_links;
287	pkg_sorter_by_nonambig_name_arch;
288	varbuf_add_pkgbin_name;
289	varbuf_add_archqual;
290	varbuf_add_source_version;
291	pkgbin_name;
292	pkg_name;
293	pkgbin_name_const;
294	pkg_name_const;
295	pkg_source_version;
296	pkgbin_synopsis;
297	pkg_abbrev_want;
298	pkg_abbrev_status;
299	pkg_abbrev_eflag;
300	pkg_want_name;
301	pkg_eflag_name;
302	pkg_status_name;
303	pkg_priority_name;
304
305	# Package list handling
306	pkg_list_new;
307	pkg_list_free;
308	pkg_list_prepend;
309
310	# Package array handling
311	pkg_array_init_from_hash;
312	pkg_array_init_from_names;
313	pkg_array_foreach;
314	pkg_array_sort;
315	pkg_array_destroy;
316
317	# Package queue handling
318	pkg_queue_init;
319	pkg_queue_destroy;
320	pkg_queue_is_empty;
321	pkg_queue_push;
322	pkg_queue_pop;
323
324	# Package in-core database functions
325	pkg_hash_find_set;
326	pkg_hash_find_singleton;
327	pkg_hash_find_pkg;
328	pkg_hash_count_set;
329	pkg_hash_count_pkg;
330	pkg_hash_reset;
331	pkg_hash_iter_new;
332	pkg_hash_iter_next_set;
333	pkg_hash_iter_next_pkg;
334	pkg_hash_iter_free;
335
336	# Package field handling
337	fieldinfos;		# XXX variable, do not export
338	find_field_info;
339	find_arbfield_info;
340
341	# Package field format handling
342	pkg_format_parse;
343	pkg_format_show;
344	pkg_format_free;
345
346	# Package specifiers
347	pkg_spec_is_illegal;
348	pkg_spec_init;
349	pkg_spec_destroy;
350	pkg_spec_set;
351	pkg_spec_parse;
352	pkg_spec_match_pkg;
353	pkg_spec_parse_pkg;
354	pkg_spec_find_pkg;
355	pkg_spec_iter_init;
356	pkg_spec_iter_next_pkg;
357	pkg_spec_iter_destroy;
358
359	# Dependency and Conflict functions
360	pkg_virtual_deppossi_satisfied;
361	deparchsatisfied;
362	archsatisfied;
363	versionsatisfied;
364
365	# Package on-disk database functions
366	wantinfos;		# XXX variable, do not export
367	varbuf_add_arbfield;
368	varbufdependency;
369	varbufrecord;
370	writerecord;
371	parsedb_new;
372	parsedb_open;
373	parsedb_load;
374	parsedb_parse;
375	parsedb_close;
376	parsedb;
377	writedb_records;
378	writedb;
379
380	dpkg_db_set_dir;
381	dpkg_db_get_dir;
382	dpkg_db_get_path;
383
384	# Log based package on-disk database support
385	modstatdb_init;
386	modstatdb_is_locked;
387	modstatdb_can_lock;
388	modstatdb_lock;
389	modstatdb_unlock;
390	modstatdb_open;
391	modstatdb_get_status;
392	modstatdb_note;
393	modstatdb_note_ifwrite;
394	modstatdb_checkpoint;
395	modstatdb_shutdown;
396	modstatdb_done;
397
398	# Package on-disk control database support
399	pkg_infodb_foreach;
400	pkg_infodb_get_dir;
401	pkg_infodb_get_file;
402	pkg_infodb_has_file;
403	pkg_infodb_upgrade;
404
405	# Package on-disk diversion database support
406	ensure_diversions;
407
408	# Filesystem node hash support
409	fsys_hash_init;
410	fsys_hash_reset;
411	fsys_hash_entries;
412	fsys_hash_find_node;
413
414	fsys_hash_iter_new;
415	fsys_hash_iter_next;
416	fsys_hash_iter_free;
417
418	fsys_hash_rev_iter_init;
419	fsys_hash_rev_iter_next;
420	fsys_hash_rev_iter_abort;
421
422	fsys_node_pkgs_iter_new;
423	fsys_node_pkgs_iter_next;
424	fsys_node_pkgs_iter_free;
425
426	dpkg_fsys_set_dir;
427	dpkg_fsys_get_dir;
428	dpkg_fsys_get_path;
429
430	# Package on-disk filesystem database support
431	parse_filehash;
432	write_filelist_except;
433	write_filehash_except;
434	ensure_packagefiles_available;
435	ensure_allinstfiles_available;
436	ensure_allinstfiles_available_quiet;
437
438	# Package on-disk stat override database support
439	statdb_parse_uid;
440	statdb_parse_gid;
441	statdb_parse_mode;
442	ensure_statoverrides;
443
444	# Triggers support
445	trig_name_is_illegal;
446	trigdef_set_methods;
447	trigdef_update_start;
448	trigdef_update_printf;
449	trigdef_parse;
450	trigdef_process_done;
451	trig_override_hooks;
452	trig_file_activate_byname;
453	trig_file_activate;
454	trig_path_activate;
455	trig_note_pend;
456	trig_note_aw;
457	trig_clear_awaiters;
458	trig_file_interests_ensure;
459	trig_file_interests_save;
460	trig_cicb_interest_delete;
461	trig_cicb_interest_add;
462	trig_parse_ci;
463	trig_cicb_statuschange_activate;
464	trig_incorporate;
465} LIBDPKG_0;
466