diff --git a/pisi/build.py b/pisi/build.py index c32a6540..19953372 100644 --- a/pisi/build.py +++ b/pisi/build.py @@ -9,6 +9,7 @@ import sys import util from ui import ui from constants import const +from config import config from sourcearchive import SourceArchive from files import Files, FileInfo from metadata import MetaData @@ -194,8 +195,8 @@ class PisiBuild: some additional information.""" metadata = MetaData() metadata.fromSpec(self.spec.source, package) - metadata.package.distribution = const.distribution - metadata.package.distributionRelease = const.distributionRelease + metadata.package.distribution = config.values.general.distribution + metadata.package.distributionRelease = config.values.general.distribution_release metadata.package.architecture = "Any" # FIXME: Bu hatalı. installsize'ı almak için tüm diff --git a/pisi/config.py b/pisi/config.py index 181b3e24..84356b99 100644 --- a/pisi/config.py +++ b/pisi/config.py @@ -1,12 +1,10 @@ +# -*- coding: utf-8 -*- # PISI Configuration module is used for gathering and providing # regular PISI configurations. # Authors: Baris Metin -#TODO: Eventually PISI will have a configuration file (located in -#/etc/pisi/conf?) and this module will provide access to those -#configuration parameters. from constants import const from configfile import ConfigurationFile @@ -26,17 +24,20 @@ class Config(object): # pkg_x_dir: per package directory for storing info type x def lib_dir(self): - return self.destdir + const.lib_dir_suffix + return self.destdir + self.values.dirs.lib_dir def db_dir(self): - return self.destdir + const.db_dir_suffix + return self.destdir + self.values.dirs.db_dir def archives_dir(self): - return self.destdir + const.archives_dir_suffix + return self.destdir + self.values.dirs.archives_dir def tmp_dir(self): - return self.destdir + const.tmp_dir_suffix + return self.destdir + self.values.dirs.tmp_dir + # bu dizini neden kullanıyoruz? Yalnızca index.py içerisinde + # kullanılıyor ama /var/tmp/pisi/install gibi bir dizine niye + # ihtiyacımız var? (baris) def install_dir(self): return self.tmp_dir() + const.install_dir_suffix diff --git a/pisi/configfile.py b/pisi/configfile.py index 625f54cf..9b00c631 100644 --- a/pisi/configfile.py +++ b/pisi/configfile.py @@ -27,6 +27,8 @@ class ConfigException(Exception): class GeneralDefaults: """Default values for [general] section""" destinationdirectory = os.getcwd() + "/tmp" # FOR ALPHA + distribution = "Pardus" + distribution_release = "0.1" class BuildDefaults: """Default values for [build] section""" @@ -34,6 +36,13 @@ class BuildDefaults: CFLAGS = "-mcpu=i686 -O2 -pipe -fomit-frame-pointer" CXXFLAGS= "-mcpu=i686 -O2 -pipe -fomit-frame-pointer" +class DirsDefaults: + "Default values for [directories] section" + lib_dir = "/var/lib/pisi" + db_dir = "/var/db/pisi" + archives_dir = "/var/cache/pisi/archives" + tmp_dir = "/var/tmp/pisi" + class SvnDefaults: """Default values for [svn] section """ username = password = None @@ -48,6 +57,8 @@ class ConfigurationSection(object): self.defaults = GeneralDefaults elif section == "build": self.defaults = BuildDefaults + elif section == "directories": + self.defaults = DirsDefaults elif section == "svn": self.defaults = SvnDefaults else: @@ -87,6 +98,12 @@ class ConfigurationFile(object): builditems = [] self.build = ConfigurationSection("build", builditems) + try: + dirsitems = parser.items("directories") + except NoSectionError: + dirsitems = [] + self.dirs = ConfigurationSection("directories", dirsitems) + try: svnitems = parser.items("svn") except NoSectionError: diff --git a/pisi/constants.py b/pisi/constants.py index c9921e2b..38221579 100644 --- a/pisi/constants.py +++ b/pisi/constants.py @@ -28,23 +28,9 @@ class Constants: __c = _constant() def __init__(self): - # Constants for metadata - #TODO: These two will be defined in a configuration file. - self.__c.distribution = "Pardus" - self.__c.distributionRelease = "0.1" - # prefix for package names self.__c.package_prefix = ".pisi" - # directories - # TODO: bu dizinler constant olmak zorunda değil. yalnızca bu - # grubu config içerisine taşıyabiliriz. configfile'dan - # düzenlenebilirler. - self.__c.lib_dir_suffix = "/var/lib/pisi" - self.__c.db_dir_suffix = "/var/db/pisi" - self.__c.archives_dir_suffix = "/var/cache/pisi/archives" - self.__c.tmp_dir_suffix = "/var/tmp/pisi" - # directory suffixes for build self.__c.work_dir_suffix = "/work" self.__c.install_dir_suffix = "/install" diff --git a/pisi/context.py b/pisi/context.py index 2482c346..055a8f0d 100644 --- a/pisi/context.py +++ b/pisi/context.py @@ -27,10 +27,11 @@ class BuildContext(object): # pkg_x_dir: per package directory for storing info type x def pkg_dir(self): + "package build directory" packageDir = self.spec.source.name + '-' \ + self.spec.source.version + '-' + self.spec.source.release - return self.destdir + const.tmp_dir_suffix \ + return self.destdir + self.values.dirs.tmp_dir \ + '/' + packageDir def pkg_work_dir(self):