]> git.ipfire.org Git - people/ms/pakfire.git/blame - python/pakfire/constants.py
database: Save installed package size.
[people/ms/pakfire.git] / python / pakfire / constants.py
CommitLineData
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
22import os.path
23
53bb7960
MT
24from errors import *
25
4366c12d 26from __version__ import PAKFIRE_VERSION
14ea3228 27
f165e102 28PAKFIRE_LEAST_COMPATIBLE_VERSION = PAKFIRE_VERSION
c07a3ca7 29
0f882359
MT
30# The default hub to connect to.
31PAKFIRE_HUB = "https://pakfirehub.ipfire.org/"
32
ad4542cf 33SYSCONFDIR = "/etc"
87745c01 34SCRIPT_DIR = "/usr/lib/pakfire"
47a4cb89 35
a6bd96bc
MT
36CONFIG_DIR = os.path.join(SYSCONFDIR, "pakfire")
37CONFIG_REPOS_DIR = os.path.join(CONFIG_DIR, "repos")
854d8ccf 38CONFIG_DISTRO_DIR = os.path.join(CONFIG_DIR, "distros")
47a4cb89 39
d6ca2727 40KEYRING_DIR = os.path.join(CONFIG_DIR, "gnupg")
68c0e769 41
47a4cb89 42CACHE_DIR = "/var/cache/pakfire"
33f4679b 43CCACHE_CACHE_DIR = os.path.join(CACHE_DIR, "ccache")
3817ae8e 44CACHE_ENVIRON_DIR = os.path.join(CACHE_DIR, "environments")
5a99898b 45REPO_CACHE_DIR = os.path.join(CACHE_DIR, "downloads")
33f4679b 46
0ec833c6 47LOCAL_BUILD_REPO_PATH = "/var/lib/pakfire/local"
a2b92fe4 48LOCAL_TMP_PATH = "/var/tmp"
47a4cb89 49
66af936c
MT
50PACKAGES_DB_DIR = "var/lib/pakfire"
51PACKAGES_DB = os.path.join(PACKAGES_DB_DIR, "packages.db")
c4d7f8f1 52PACKAGES_SOLV = os.path.join(PACKAGES_DB_DIR, "packages.solv")
fa6d335b 53REPOSITORY_DB = "index.db"
47a4cb89 54
c1fbb0b7 55BUFFER_SIZE = 102400
47a4cb89 56
c62d93f1
MT
57# The size of the data chunks that are uploaded to the
58# pakfire hub.
59CHUNK_SIZE = BUFFER_SIZE
60
a2d1644c
MT
61MIRRORLIST_MAXSIZE = 1024**2
62
c07a3ca7 63MACRO_FILE_DIR = "/usr/lib/pakfire/macros"
8051d519 64MACRO_EXTENSION = ".macro"
c07a3ca7 65
3cf7127f
MT
66METADATA_FORMAT = 0
67METADATA_DOWNLOAD_LIMIT = 1024**2
68METADATA_DOWNLOAD_PATH = "repodata"
2568a6d1 69METADATA_DOWNLOAD_FILE = "repomd.json"
c605d735 70METADATA_DATABASE_FILE = "packages.solv"
3cf7127f 71
3c5a85f3 72PACKAGE_FORMAT = 5
c07a3ca7 73# XXX implement this properly
3c5a85f3 74PACKAGE_FORMATS_SUPPORTED = [0, 1, 2, 3, 4, 5]
47a4cb89
MT
75PACKAGE_EXTENSION = "pfm"
76MAKEFILE_EXTENSION = "nm"
77
ba5dc639
MT
78DATABASE_FORMAT = 6
79DATABASE_FORMATS_SUPPORTED = [0, 1, 2, 3, 4, 5, 6]
85a1120f 80
47a4cb89
MT
81PACKAGE_FILENAME_FMT = "%(name)s-%(version)s-%(release)s.%(arch)s.%(ext)s"
82
c07a3ca7
MT
83BUILD_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 89SHELL_SCRIPT = "/usr/lib/pakfire/chroot-shell"
83e5f0da 90SHELL_PACKAGES = ["elinks", "less", "vim", SHELL_SCRIPT,]
47a4cb89
MT
91BUILD_ROOT = "/var/lib/pakfire/build"
92
93SOURCE_DOWNLOAD_URL = "http://source.ipfire.org/source-3.x/"
94SOURCE_CACHE_DIR = os.path.join(CACHE_DIR, "sources")
95
53ceed32
MT
96TIME_10M = 10
97TIME_24H = 60*24
1de8761d 98
8c617c20
MT
99ORPHAN_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
107for 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 115ORPHAN_DIRECTORIES.sort(cmp=lambda x,y: cmp(len(x), len(y)), reverse=True)
47a4cb89 116
c07a3ca7
MT
117PACKAGE_INFO = """\
118# Pakfire %(pakfire_version)s
47a4cb89
MT
119
120# Package information
c07a3ca7
MT
121package
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
142end
47a4cb89 143
c07a3ca7
MT
144# Build information
145build
146 host = %(build_host)s
147 id = %(build_id)s
148 time = %(build_time)d
149end
47a4cb89 150
c07a3ca7
MT
151# Distribution information
152distribution
153 name = %(distro_name)s
154 release = %(distro_release)s
155 vendor = %(distro_vendor)s
156 maintainer = %(distro_maintainer)s
157end
158
159# Dependency information
160dependencies
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
188end
189
190# EOF
47a4cb89 191"""
c07a3ca7 192PACKAGE_INFO_DESCRIPTION_LINE = PACKAGE_INFO_DEPENDENCY_LINE = "\t\t%s"
063606f6
MT
193
194# XXX make this configurable in pakfire.conf
acf9ff3a
MT
195PAKFIRE_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
205SCRIPTLET_INTERPRETER = "/bin/sh"
206SCRIPTLET_TIMEOUT = 60 * 15
207
c07a3ca7 208SCRIPTS = (
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
223SCRIPTS_PREREQUIRES = (
224 "prein",
225 "postin",
226 "preup",
227 "postup",
228)
229
d335c40e 230LDCONFIG = "/sbin/ldconfig"
c2808056
MT
231
232CONFIG_FILE_SUFFIX_NEW = ".paknew"
233CONFIG_FILE_SUFFIX_SAVE = ".paksave"