]> git.ipfire.org Git - people/stevee/pakfire.git/blame - src/pakfire/constants.py
Fix execution of scriptlets in a dirty environment
[people/stevee/pakfire.git] / src / 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
87da3448
MT
78DATABASE_FORMAT = 7
79DATABASE_FORMATS_SUPPORTED = [0, 1, 2, 3, 4, 5, 6, 7]
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
1dd38b7b
MT
93MINIMAL_ENVIRONMENT = {
94 "HOME" : "/root",
95 "LANG" : "C",
96 "PATH" : "/usr/bin:/bin:/usr/sbin:/sbin",
97 "PS1" : "\u:\w\$ ",
98 "TERM" : "vt100",
99}
100
47a4cb89
MT
101SOURCE_DOWNLOAD_URL = "http://source.ipfire.org/source-3.x/"
102SOURCE_CACHE_DIR = os.path.join(CACHE_DIR, "sources")
103
53ceed32
MT
104TIME_10M = 10
105TIME_24H = 60*24
1de8761d 106
8c617c20
MT
107ORPHAN_DIRECTORIES = [
108 "lib", "lib64", "usr/lib", "usr/lib64", "libexec", "usr/libexec",
109 "bin", "sbin", "usr/bin", "usr/sbin", "usr/include", "usr/share",
110 "usr/share/man", "usr/share/man/man0", "usr/share/man/man1",
111 "usr/share/man/man2", "usr/share/man/man3", "usr/share/man/man4",
112 "usr/share/man/man5", "usr/share/man/man6", "usr/share/man/man7",
113 "usr/share/man/man8", "usr/share/man/man9", "usr/lib/pkgconfig",
114]
c07a3ca7
MT
115for i in ORPHAN_DIRECTORIES:
116 i = os.path.dirname(i)
8c617c20 117
c07a3ca7
MT
118 if not i or i in ORPHAN_DIRECTORIES:
119 continue
47a4cb89 120
c07a3ca7 121 ORPHAN_DIRECTORIES.append(i)
47a4cb89 122
c07a3ca7 123ORPHAN_DIRECTORIES.sort(cmp=lambda x,y: cmp(len(x), len(y)), reverse=True)
47a4cb89 124
c07a3ca7
MT
125PACKAGE_INFO = """\
126# Pakfire %(pakfire_version)s
47a4cb89
MT
127
128# Package information
c07a3ca7
MT
129package
130 name = %(name)s
131 version = %(version)s
132 release = %(release)s
133 epoch = %(epoch)s
134 arch = %(arch)s
135
136 uuid = %(uuid)s
137 groups = %(groups)s
138 maintainer = %(maintainer)s
139 url = %(url)s
140 license = %(license)s
141
142 summary = %(summary)s
5dda54e4 143
c07a3ca7
MT
144 def description
145%(description)s
146 end
147
1b59091e 148 type = %(type)s
c07a3ca7
MT
149 size = %(inst_size)d
150end
47a4cb89 151
c07a3ca7
MT
152# Build information
153build
154 host = %(build_host)s
155 id = %(build_id)s
156 time = %(build_time)d
157end
47a4cb89 158
c07a3ca7
MT
159# Distribution information
160distribution
161 name = %(distro_name)s
162 release = %(distro_release)s
163 vendor = %(distro_vendor)s
164 maintainer = %(distro_maintainer)s
165end
166
167# Dependency information
168dependencies
169 def prerequires
170%(prerequires)s
171 end
172
173 def requires
174%(requires)s
175 end
176
177 def provides
178%(provides)s
179 end
180
181 def conflicts
182%(conflicts)s
183 end
184
185 def obsoletes
186%(obsoletes)s
187 end
a60f0f7d
MT
188
189 def recommends
190%(recommends)s
191 end
192
193 def suggests
194%(suggests)s
195 end
c07a3ca7
MT
196end
197
198# EOF
47a4cb89 199"""
c07a3ca7 200PACKAGE_INFO_DESCRIPTION_LINE = PACKAGE_INFO_DEPENDENCY_LINE = "\t\t%s"
063606f6
MT
201
202# XXX make this configurable in pakfire.conf
acf9ff3a
MT
203PAKFIRE_MULTIINSTALL = [
204 "kernel",
424f775d 205 "kernel-exynos",
acf9ff3a
MT
206 "kernel-kirkwood",
207 "kernel-legacy",
208 "kernel-omap",
209 "kernel-versatile",
210 "kernel-devel",
211]
94438733
MT
212
213SCRIPTLET_INTERPRETER = "/bin/sh"
214SCRIPTLET_TIMEOUT = 60 * 15
215
c07a3ca7 216SCRIPTS = (
f943de15
MT
217 "pretransin",
218 "pretransun",
219 "pretransup",
c07a3ca7
MT
220 "prein",
221 "postin",
222 "preun",
223 "postun",
224 "preup",
225 "postup",
226 "posttransin",
227 "posttransun",
228 "posttransup",
229)
d335c40e 230
08e95360
MT
231SCRIPTS_PREREQUIRES = (
232 "prein",
233 "postin",
234 "preup",
235 "postup",
236)
237
d335c40e 238LDCONFIG = "/sbin/ldconfig"
c2808056
MT
239
240CONFIG_FILE_SUFFIX_NEW = ".paknew"
241CONFIG_FILE_SUFFIX_SAVE = ".paksave"