pkg: alternatives support
[project/opkg-lede.git] / libopkg / pkg_parse.h
1 /* pkg_parse.h - the opkg package management system
2
3 Steven M. Ayer
4
5 Copyright (C) 2002 Compaq Computer Corporation
6
7 This program is free software; you can redistribute it and/or
8 modify it under the terms of the GNU General Public License as
9 published by the Free Software Foundation; either version 2, or (at
10 your option) any later version.
11
12 This program is distributed in the hope that it will be useful, but
13 WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 General Public License for more details.
16 */
17
18 #ifndef PKG_PARSE_H
19 #define PKG_PARSE_H
20
21 #include "pkg.h"
22
23 int parse_version(pkg_t * pkg, const char *raw);
24 int pkg_parse_from_stream(pkg_t * pkg, FILE * fp, uint mask);
25 int pkg_parse_line(void *ptr, char *line, uint mask);
26
27 #define EXCESSIVE_LINE_LEN (4096 << 8)
28
29 /* package field mask */
30 #define PFM_ALTERNATIVES (1 << 1)
31 #define PFM_ARCHITECTURE (1 << 2)
32 #define PFM_AUTO_INSTALLED (1 << 3)
33 #define PFM_CONFFILES (1 << 4)
34 #define PFM_CONFLICTS (1 << 5)
35 #define PFM_DESCRIPTION (1 << 6)
36 #define PFM_DEPENDS (1 << 7)
37 #define PFM_ESSENTIAL (1 << 8)
38 #define PFM_FILENAME (1 << 9)
39 #define PFM_INSTALLED_SIZE (1 << 10)
40 #define PFM_INSTALLED_TIME (1 << 11)
41 #define PFM_MD5SUM (1 << 12)
42 #define PFM_MAINTAINER (1 << 13)
43 #define PFM_PACKAGE (1 << 14)
44 #define PFM_PRIORITY (1 << 15)
45 #define PFM_PROVIDES (1 << 16)
46 #define PFM_PRE_DEPENDS (1 << 17)
47 #define PFM_RECOMMENDS (1 << 18)
48 #define PFM_REPLACES (1 << 19)
49 #define PFM_SECTION (1 << 20)
50 #define PFM_SHA256SUM (1 << 21)
51 #define PFM_SIZE (1 << 22)
52 #define PFM_SOURCE (1 << 23)
53 #define PFM_STATUS (1 << 24)
54 #define PFM_SUGGESTS (1 << 25)
55 #define PFM_TAGS (1 << 26)
56 #define PFM_VERSION (1 << 27)
57
58 #define PFM_ALL (~(uint)0)
59
60 #endif