2 ###############################################################################
4 # Pakfire - The IPFire package management system #
5 # Copyright (C) 2011 Pakfire development team #
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. #
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. #
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/>. #
20 ###############################################################################
26 from __version__
import PAKFIRE_VERSION
28 PAKFIRE_LEAST_COMPATIBLE_VERSION
= PAKFIRE_VERSION
30 # The default hub to connect to.
31 PAKFIRE_HUB
= "https://pakfirehub.ipfire.org/"
34 SCRIPT_DIR
= "/usr/lib/pakfire"
36 CONFIG_DIR
= os
.path
.join(SYSCONFDIR
, "pakfire")
37 CONFIG_REPOS_DIR
= os
.path
.join(CONFIG_DIR
, "repos")
38 CONFIG_DISTRO_DIR
= os
.path
.join(CONFIG_DIR
, "distros")
40 KEYRING_DIR
= os
.path
.join(CONFIG_DIR
, "gnupg")
42 CACHE_DIR
= "/var/cache/pakfire"
43 CCACHE_CACHE_DIR
= os
.path
.join(CACHE_DIR
, "ccache")
44 CACHE_ENVIRON_DIR
= os
.path
.join(CACHE_DIR
, "environments")
45 REPO_CACHE_DIR
= os
.path
.join(CACHE_DIR
, "downloads")
47 LOCAL_BUILD_REPO_PATH
= "/var/lib/pakfire/local"
48 LOCAL_TMP_PATH
= "/var/tmp"
50 PACKAGES_DB_DIR
= "var/lib/pakfire"
51 PACKAGES_DB
= os
.path
.join(PACKAGES_DB_DIR
, "packages.db")
52 PACKAGES_SOLV
= os
.path
.join(PACKAGES_DB_DIR
, "packages.solv")
53 REPOSITORY_DB
= "index.db"
57 # The size of the data chunks that are uploaded to the
59 CHUNK_SIZE
= BUFFER_SIZE
61 MIRRORLIST_MAXSIZE
= 1024**2
63 MACRO_FILE_DIR
= "/usr/lib/pakfire/macros"
64 MACRO_EXTENSION
= ".macro"
67 METADATA_DOWNLOAD_LIMIT
= 1024**2
68 METADATA_DOWNLOAD_PATH
= "repodata"
69 METADATA_DOWNLOAD_FILE
= "repomd.json"
70 METADATA_DATABASE_FILE
= "packages.solv"
73 # XXX implement this properly
74 PACKAGE_FORMATS_SUPPORTED
= [0, 1, 2, 3, 4, 5]
75 PACKAGE_EXTENSION
= "pfm"
76 MAKEFILE_EXTENSION
= "nm"
79 DATABASE_FORMATS_SUPPORTED
= [0, 1, 2, 3, 4, 5, 6, 7]
81 PACKAGE_FILENAME_FMT
= "%(name)s-%(version)s-%(release)s.%(arch)s.%(ext)s"
85 "pakfire-build>=%s" % PAKFIRE_LEAST_COMPATIBLE_VERSION
,
88 # A script that is called, when a user is dropped to a chroot shell.
89 SHELL_SCRIPT
= "/usr/lib/pakfire/chroot-shell"
90 SHELL_PACKAGES
= ["elinks", "less", "vim", SHELL_SCRIPT
,]
91 BUILD_ROOT
= "/var/lib/pakfire/build"
93 SOURCE_DOWNLOAD_URL
= "http://source.ipfire.org/source-3.x/"
94 SOURCE_CACHE_DIR
= os
.path
.join(CACHE_DIR
, "sources")
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",
107 for i
in ORPHAN_DIRECTORIES
:
108 i
= os
.path
.dirname(i
)
110 if not i
or i
in ORPHAN_DIRECTORIES
:
113 ORPHAN_DIRECTORIES
.append(i
)
115 ORPHAN_DIRECTORIES
.sort(cmp=lambda x
,y
: cmp(len(x
), len(y
)), reverse
=True)
118 # Pakfire %(pakfire_version)s
120 # Package information
123 version = %(version)s
124 release = %(release)s
130 maintainer = %(maintainer)s
132 license = %(license)s
134 summary = %(summary)s
146 host = %(build_host)s
148 time = %(build_time)d
151 # Distribution information
153 name = %(distro_name)s
154 release = %(distro_release)s
155 vendor = %(distro_vendor)s
156 maintainer = %(distro_maintainer)s
159 # Dependency information
192 PACKAGE_INFO_DESCRIPTION_LINE
= PACKAGE_INFO_DEPENDENCY_LINE
= "\t\t%s"
194 # XXX make this configurable in pakfire.conf
195 PAKFIRE_MULTIINSTALL
= [
205 SCRIPTLET_INTERPRETER
= "/bin/sh"
206 SCRIPTLET_TIMEOUT
= 60 * 15
223 SCRIPTS_PREREQUIRES
= (
230 LDCONFIG
= "/sbin/ldconfig"
232 CONFIG_FILE_SUFFIX_NEW
= ".paknew"
233 CONFIG_FILE_SUFFIX_SAVE
= ".paksave"