]>
Commit | Line | Data |
---|---|---|
47a4cb89 | 1 | #!/usr/bin/python |
b792d887 MT |
2 | ############################################################################### |
3 | # # | |
4 | # Pakfire - The IPFire package management system # | |
5 | # Copyright (C) 2011 Pakfire development team # | |
6 | # # | |
7 | # This program is free software: you can redistribute it and/or modify # | |
8 | # it under the terms of the GNU General Public License as published by # | |
9 | # the Free Software Foundation, either version 3 of the License, or # | |
10 | # (at your option) any later version. # | |
11 | # # | |
12 | # This program is distributed in the hope that it will be useful, # | |
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of # | |
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # | |
15 | # GNU General Public License for more details. # | |
16 | # # | |
17 | # You should have received a copy of the GNU General Public License # | |
18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. # | |
19 | # # | |
20 | ############################################################################### | |
47a4cb89 MT |
21 | |
22 | import os.path | |
23 | ||
53bb7960 MT |
24 | from errors import * |
25 | ||
4366c12d | 26 | from __version__ import PAKFIRE_VERSION |
14ea3228 | 27 | |
f165e102 | 28 | PAKFIRE_LEAST_COMPATIBLE_VERSION = PAKFIRE_VERSION |
c07a3ca7 | 29 | |
0f882359 MT |
30 | # The default hub to connect to. |
31 | PAKFIRE_HUB = "https://pakfirehub.ipfire.org/" | |
32 | ||
ad4542cf | 33 | SYSCONFDIR = "/etc" |
87745c01 | 34 | SCRIPT_DIR = "/usr/lib/pakfire" |
47a4cb89 | 35 | |
a6bd96bc MT |
36 | CONFIG_DIR = os.path.join(SYSCONFDIR, "pakfire") |
37 | CONFIG_REPOS_DIR = os.path.join(CONFIG_DIR, "repos") | |
854d8ccf | 38 | CONFIG_DISTRO_DIR = os.path.join(CONFIG_DIR, "distros") |
47a4cb89 | 39 | |
d6ca2727 | 40 | KEYRING_DIR = os.path.join(CONFIG_DIR, "gnupg") |
68c0e769 | 41 | |
47a4cb89 | 42 | CACHE_DIR = "/var/cache/pakfire" |
33f4679b | 43 | CCACHE_CACHE_DIR = os.path.join(CACHE_DIR, "ccache") |
3817ae8e | 44 | CACHE_ENVIRON_DIR = os.path.join(CACHE_DIR, "environments") |
5a99898b | 45 | REPO_CACHE_DIR = os.path.join(CACHE_DIR, "downloads") |
33f4679b | 46 | |
0ec833c6 | 47 | LOCAL_BUILD_REPO_PATH = "/var/lib/pakfire/local" |
a2b92fe4 | 48 | LOCAL_TMP_PATH = "/var/tmp" |
47a4cb89 | 49 | |
66af936c MT |
50 | PACKAGES_DB_DIR = "var/lib/pakfire" |
51 | PACKAGES_DB = os.path.join(PACKAGES_DB_DIR, "packages.db") | |
c4d7f8f1 | 52 | PACKAGES_SOLV = os.path.join(PACKAGES_DB_DIR, "packages.solv") |
fa6d335b | 53 | REPOSITORY_DB = "index.db" |
47a4cb89 | 54 | |
c1fbb0b7 | 55 | BUFFER_SIZE = 102400 |
47a4cb89 | 56 | |
c62d93f1 MT |
57 | # The size of the data chunks that are uploaded to the |
58 | # pakfire hub. | |
59 | CHUNK_SIZE = BUFFER_SIZE | |
60 | ||
a2d1644c MT |
61 | MIRRORLIST_MAXSIZE = 1024**2 |
62 | ||
c07a3ca7 | 63 | MACRO_FILE_DIR = "/usr/lib/pakfire/macros" |
8051d519 | 64 | MACRO_EXTENSION = ".macro" |
c07a3ca7 | 65 | |
3cf7127f MT |
66 | METADATA_FORMAT = 0 |
67 | METADATA_DOWNLOAD_LIMIT = 1024**2 | |
68 | METADATA_DOWNLOAD_PATH = "repodata" | |
2568a6d1 | 69 | METADATA_DOWNLOAD_FILE = "repomd.json" |
c605d735 | 70 | METADATA_DATABASE_FILE = "packages.solv" |
3cf7127f | 71 | |
3c5a85f3 | 72 | PACKAGE_FORMAT = 5 |
c07a3ca7 | 73 | # XXX implement this properly |
3c5a85f3 | 74 | PACKAGE_FORMATS_SUPPORTED = [0, 1, 2, 3, 4, 5] |
47a4cb89 MT |
75 | PACKAGE_EXTENSION = "pfm" |
76 | MAKEFILE_EXTENSION = "nm" | |
77 | ||
ba5dc639 MT |
78 | DATABASE_FORMAT = 6 |
79 | DATABASE_FORMATS_SUPPORTED = [0, 1, 2, 3, 4, 5, 6] | |
85a1120f | 80 | |
47a4cb89 MT |
81 | PACKAGE_FILENAME_FMT = "%(name)s-%(version)s-%(release)s.%(arch)s.%(ext)s" |
82 | ||
c07a3ca7 MT |
83 | BUILD_PACKAGES = [ |
84 | "@Build", | |
c07a3ca7 MT |
85 | "pakfire-build>=%s" % PAKFIRE_LEAST_COMPATIBLE_VERSION, |
86 | ] | |
83e5f0da MT |
87 | |
88 | # A script that is called, when a user is dropped to a chroot shell. | |
33083dc5 | 89 | SHELL_SCRIPT = "/usr/lib/pakfire/chroot-shell" |
83e5f0da | 90 | SHELL_PACKAGES = ["elinks", "less", "vim", SHELL_SCRIPT,] |
47a4cb89 MT |
91 | BUILD_ROOT = "/var/lib/pakfire/build" |
92 | ||
93 | SOURCE_DOWNLOAD_URL = "http://source.ipfire.org/source-3.x/" | |
94 | SOURCE_CACHE_DIR = os.path.join(CACHE_DIR, "sources") | |
95 | ||
53ceed32 MT |
96 | TIME_10M = 10 |
97 | TIME_24H = 60*24 | |
1de8761d | 98 | |
8c617c20 MT |
99 | ORPHAN_DIRECTORIES = [ |
100 | "lib", "lib64", "usr/lib", "usr/lib64", "libexec", "usr/libexec", | |
101 | "bin", "sbin", "usr/bin", "usr/sbin", "usr/include", "usr/share", | |
102 | "usr/share/man", "usr/share/man/man0", "usr/share/man/man1", | |
103 | "usr/share/man/man2", "usr/share/man/man3", "usr/share/man/man4", | |
104 | "usr/share/man/man5", "usr/share/man/man6", "usr/share/man/man7", | |
105 | "usr/share/man/man8", "usr/share/man/man9", "usr/lib/pkgconfig", | |
106 | ] | |
c07a3ca7 MT |
107 | for i in ORPHAN_DIRECTORIES: |
108 | i = os.path.dirname(i) | |
8c617c20 | 109 | |
c07a3ca7 MT |
110 | if not i or i in ORPHAN_DIRECTORIES: |
111 | continue | |
47a4cb89 | 112 | |
c07a3ca7 | 113 | ORPHAN_DIRECTORIES.append(i) |
47a4cb89 | 114 | |
c07a3ca7 | 115 | ORPHAN_DIRECTORIES.sort(cmp=lambda x,y: cmp(len(x), len(y)), reverse=True) |
47a4cb89 | 116 | |
c07a3ca7 MT |
117 | PACKAGE_INFO = """\ |
118 | # Pakfire %(pakfire_version)s | |
47a4cb89 MT |
119 | |
120 | # Package information | |
c07a3ca7 MT |
121 | package |
122 | name = %(name)s | |
123 | version = %(version)s | |
124 | release = %(release)s | |
125 | epoch = %(epoch)s | |
126 | arch = %(arch)s | |
127 | ||
128 | uuid = %(uuid)s | |
129 | groups = %(groups)s | |
130 | maintainer = %(maintainer)s | |
131 | url = %(url)s | |
132 | license = %(license)s | |
133 | ||
134 | summary = %(summary)s | |
5dda54e4 | 135 | |
c07a3ca7 MT |
136 | def description |
137 | %(description)s | |
138 | end | |
139 | ||
1b59091e | 140 | type = %(type)s |
c07a3ca7 MT |
141 | size = %(inst_size)d |
142 | end | |
47a4cb89 | 143 | |
c07a3ca7 MT |
144 | # Build information |
145 | build | |
146 | host = %(build_host)s | |
147 | id = %(build_id)s | |
148 | time = %(build_time)d | |
149 | end | |
47a4cb89 | 150 | |
c07a3ca7 MT |
151 | # Distribution information |
152 | distribution | |
153 | name = %(distro_name)s | |
154 | release = %(distro_release)s | |
155 | vendor = %(distro_vendor)s | |
156 | maintainer = %(distro_maintainer)s | |
157 | end | |
158 | ||
159 | # Dependency information | |
160 | dependencies | |
161 | def prerequires | |
162 | %(prerequires)s | |
163 | end | |
164 | ||
165 | def requires | |
166 | %(requires)s | |
167 | end | |
168 | ||
169 | def provides | |
170 | %(provides)s | |
171 | end | |
172 | ||
173 | def conflicts | |
174 | %(conflicts)s | |
175 | end | |
176 | ||
177 | def obsoletes | |
178 | %(obsoletes)s | |
179 | end | |
a60f0f7d MT |
180 | |
181 | def recommends | |
182 | %(recommends)s | |
183 | end | |
184 | ||
185 | def suggests | |
186 | %(suggests)s | |
187 | end | |
c07a3ca7 MT |
188 | end |
189 | ||
190 | # EOF | |
47a4cb89 | 191 | """ |
c07a3ca7 | 192 | PACKAGE_INFO_DESCRIPTION_LINE = PACKAGE_INFO_DEPENDENCY_LINE = "\t\t%s" |
063606f6 MT |
193 | |
194 | # XXX make this configurable in pakfire.conf | |
acf9ff3a MT |
195 | PAKFIRE_MULTIINSTALL = [ |
196 | "kernel", | |
424f775d | 197 | "kernel-exynos", |
acf9ff3a MT |
198 | "kernel-kirkwood", |
199 | "kernel-legacy", | |
200 | "kernel-omap", | |
201 | "kernel-versatile", | |
202 | "kernel-devel", | |
203 | ] | |
94438733 MT |
204 | |
205 | SCRIPTLET_INTERPRETER = "/bin/sh" | |
206 | SCRIPTLET_TIMEOUT = 60 * 15 | |
207 | ||
c07a3ca7 | 208 | SCRIPTS = ( |
f943de15 MT |
209 | "pretransin", |
210 | "pretransun", | |
211 | "pretransup", | |
c07a3ca7 MT |
212 | "prein", |
213 | "postin", | |
214 | "preun", | |
215 | "postun", | |
216 | "preup", | |
217 | "postup", | |
218 | "posttransin", | |
219 | "posttransun", | |
220 | "posttransup", | |
221 | ) | |
d335c40e | 222 | |
08e95360 MT |
223 | SCRIPTS_PREREQUIRES = ( |
224 | "prein", | |
225 | "postin", | |
226 | "preup", | |
227 | "postup", | |
228 | ) | |
229 | ||
d335c40e | 230 | LDCONFIG = "/sbin/ldconfig" |
c2808056 MT |
231 | |
232 | CONFIG_FILE_SUFFIX_NEW = ".paknew" | |
233 | CONFIG_FILE_SUFFIX_SAVE = ".paksave" |