summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOliver Tappe2007-01-14 19:43:35 +0100
committerOliver Tappe2007-01-14 19:43:35 +0100
commit3c50a839d6eb0d32f7eeb0d07daba537d67f4527 (patch)
tree2879986451a17d13e56058b3524b609fe8646281
parent* added support for --man and --verbose (diff)
downloadcore-3c50a839d6eb0d32f7eeb0d07daba537d67f4527.tar.gz
core-3c50a839d6eb0d32f7eeb0d07daba537d67f4527.tar.xz
core-3c50a839d6eb0d32f7eeb0d07daba537d67f4527.zip
* moved basic perl modules into new 'lib' folder in order to make them available
to other parts than the config-db git-svn-id: http://svn.openslx.org/svn/openslx/trunk@625 95ad53e4-c205-0410-b2fa-d234c58c8868
-rw-r--r--OpenSLX/Translations/de.pm (renamed from config-db/OpenSLX/Translations/de.pm)0
-rw-r--r--OpenSLX/Translations/posix.pm (renamed from config-db/OpenSLX/Translations/posix.pm)0
-rw-r--r--config-db/OpenSLX/Basics.pm266
-rwxr-xr-xconfig-db/slxldd2
-rwxr-xr-xconfig-db/slxsettings2
-rwxr-xr-xconfig-db/slxsetup4
-rwxr-xr-xinstaller/slxossetup7
7 files changed, 9 insertions, 272 deletions
diff --git a/config-db/OpenSLX/Translations/de.pm b/OpenSLX/Translations/de.pm
index 716e3f34..716e3f34 100644
--- a/config-db/OpenSLX/Translations/de.pm
+++ b/OpenSLX/Translations/de.pm
diff --git a/config-db/OpenSLX/Translations/posix.pm b/OpenSLX/Translations/posix.pm
index 9140442c..9140442c 100644
--- a/config-db/OpenSLX/Translations/posix.pm
+++ b/OpenSLX/Translations/posix.pm
diff --git a/config-db/OpenSLX/Basics.pm b/config-db/OpenSLX/Basics.pm
deleted file mode 100644
index e8874b8a..00000000
--- a/config-db/OpenSLX/Basics.pm
+++ /dev/null
@@ -1,266 +0,0 @@
-# Basics.pm - provides basic functionality of the OpenSLX config-db.
-#
-# (c) 2006 - OpenSLX.com
-#
-# Oliver Tappe <ot@openslx.com>
-#
-package OpenSLX::Basics;
-
-use strict;
-use vars qw(@ISA @EXPORT $VERSION);
-
-use Exporter;
-$VERSION = 0.02;
-@ISA = qw(Exporter);
-
-@EXPORT = qw(
- &openslxInit %openslxConfig %cmdlineConfig
- &_tr &trInit
- &vlog
-);
-
-use vars qw(%openslxConfig %cmdlineConfig);
-
-################################################################################
-### Module implementation
-################################################################################
-use Carp;
-use FindBin;
-use Getopt::Long;
-use POSIX qw(locale_h);
-
-my %translations;
-
-# this hash will hold the active openslx configuration,
-# the initial content is based on environment variables or default values.
-# Each value may be overrided from config files and/or cmdline arguments.
-%openslxConfig = (
- 'db-datadir' => $ENV{SLX_DB_DATADIR},
- 'db-name' => $ENV{SLX_DB_NAME} || 'openslx',
- 'db-spec' => $ENV{SLX_DB_SPEC},
- 'db-type' => $ENV{SLX_DB_TYPE} || 'CSV',
- 'locale' => setlocale(LC_MESSAGES),
- 'locale-charmap' => `locale charmap`,
- 'base-path' => $ENV{SLX_BASE_PATH} || '/opt/openslx',
- 'config-path' => $ENV{SLX_CONFIG_PATH} || '/etc/opt/openslx',
- 'private-path' => $ENV{SLX_PRIVATE_PATH} || '/var/opt/openslx',
- 'public-path' => $ENV{SLX_PUBLIC_PATH} || '/srv/openslx',
- 'temp-path' => $ENV{SLX_TEMP_PATH} || '/tmp',
- 'verbose-level' => $ENV{SLX_VERBOSE_LEVEL} || '0',
-);
-chomp($openslxConfig{'locale-charmap'});
-$openslxConfig{'bin-path'}
- = $ENV{SLX_BIN_PATH} || "$openslxConfig{'base-path'}/bin",
-$openslxConfig{'db-basepath'}
- = $ENV{SLX_DB_PATH} || "$openslxConfig{'private-path'}/db",
-$openslxConfig{'export-path'}
- = $ENV{SLX_EXPORT_PATH} || "$openslxConfig{'public-path'}/export",
-$openslxConfig{'share-path'}
- = $ENV{SLX_SHARE_PATH} || "$openslxConfig{'base-path'}/share",
-$openslxConfig{'tftpboot-path'}
- = $ENV{SLX_TFTPBOOT_PATH} || "$openslxConfig{'public-path'}/tftpboot",
-
-# specification of cmdline arguments that are shared by all openslx-scripts:
-%cmdlineConfig;
-my %openslxCmdlineArgs = (
- 'base-path=s' => \$cmdlineConfig{'base-path'},
- # basic path to project files (binaries, functionality templates and
- # distro-specs)
- 'bin-path=s' => \$cmdlineConfig{'bin-path'},
- # path to binaries and scripts
- 'config-path=s' => \$cmdlineConfig{'config-path'},
- # path to configuration files
- 'db-basepath=s' => \$cmdlineConfig{'db-basepath'},
- # basic path to openslx database, defaults to "${private-path}/db"
- 'db-datadir=s' => \$cmdlineConfig{'db-datadir'},
- # data folder created under db-basepath, default depends on db-type
- 'db-name=s' => \$cmdlineConfig{'db-name'},
- # name of database, defaults to 'openslx'
- 'db-spec=s' => \$cmdlineConfig{'db-spec'},
- # full specification of database, a special string defining the
- # precise database to connect to (the contents of this string
- # depend on db-type)
- 'db-type=s' => \$cmdlineConfig{'db-type'},
- # type of database to connect to (CSV, SQLite, ...), defaults to 'CSV'
- 'export-path=s' => \$cmdlineConfig{'export-path'},
- # path to root of all exports, each different export-type (e.g. nfs, nbd)
- # has a separate subfolder in here.
- 'locale=s' => \$cmdlineConfig{'locale'},
- # locale to use for translations
- 'locale-charmap=s' => \$cmdlineConfig{'locale-charmap'},
- # locale-charmap to use for I/O (iso-8859-1, utf-8, etc.)
- 'logfile=s' => \$cmdlineConfig{'locale'},
- # file to write logging output to, defaults to STDERR
- 'private-path=s' => \$cmdlineConfig{'private-path'},
- # path to private data (which is *not* accesible by clients and contains
- # database, vendorOSes and all local extensions [system specific scripts])
- 'public-path=s' => \$cmdlineConfig{'public-path'},
- # path to public data (which is accesible by clients and contains
- # PXE-configurations, kernels, initramfs and client configurations)
- 'share-path=s' => \$cmdlineConfig{'share-path'},
- # path to sharable data (functionality templates and distro-specs)
- 'temp-path=s' => \$cmdlineConfig{'temp-path'},
- # path to temporary data (used during demuxing)
- 'tftpboot-path=s' => \$cmdlineConfig{'tftpboot-path'},
- # path to root of tftp-server, tftpable data will be stored there
- 'verbose-level=i' => \$cmdlineConfig{'verbose-level'},
- # level of logging verbosity (0-3)
-);
-
-# filehandle used for logging:
-my $openslxLog = *STDERR;
-
-# ------------------------------------------------------------------------------
-sub vlog
-{
- my $minLevel = shift;
- return if $minLevel > $openslxConfig{'verbose-level'};
- print $openslxLog '-'x$minLevel, @_, "\n";
-}
-
-# ------------------------------------------------------------------------------
-sub openslxInit
-{
- # evaluate cmdline arguments:
- Getopt::Long::Configure('no_pass_through');
- GetOptions(%openslxCmdlineArgs) or return 0;
-
- # try to read and evaluate config files:
- my $configPath = $cmdlineConfig{'config-path'}
- || $openslxConfig{'config-path'};
- foreach my $f ("$configPath/settings.default",
- "$configPath/settings.local",
- "$ENV{HOME}/.openslx/settings") {
- next unless open(CONFIG, "<$f");
- if ($cmdlineConfig{'verbose-level'} >= 2) {
- vlog 0, "reading config-file $f...";
- }
- while(<CONFIG>) {
- chomp;
- s/#.*//;
- s/^\s+//;
- s/\s+$//;
- next unless length;
- if (! /^(\w+)=(.*)$/) {
- die _tr("config-file <%s> has incorrect syntax here:\n\t%s\n",
- $f, $_);
- }
- my ($key, $value) = ($1, $2);
- # N.B.: the config files are used by shell-scripts, too, so in
- # order to comply with shell-style, the config files use shell
- # syntax and an uppercase, underline-as-separator format.
- # Internally, we use lowercase, minus-as-separator format, so we
- # need to convert the environment variable names to our own
- # internal style here (e.g. 'SLX_BASE_PATH' to 'base-path'):
- $key =~ s[^SLX_][];
- $key =~ tr/[A-Z]_/[a-z]-/;
- $openslxConfig{$key} = $value;
- }
- close CONFIG;
- }
-
- # push any cmdline argument into our config hash, possibly overriding any
- # setting from the config files:
- while(my ($key, $val) = each(%cmdlineConfig)) {
- next unless defined $val;
- $openslxConfig{$key} = $val;
- }
-
- if (defined $openslxConfig{'logfile'}
- && open(LOG, ">>$openslxConfig{'logfile'}")) {
- $openslxLog
- }
- if ($openslxConfig{'verbose-level'} >= 2) {
- foreach my $k (sort keys %openslxConfig) {
- vlog 2, "config-dump: $k = $openslxConfig{$k}";
- }
- }
-
- # setup translation "engine":
- trInit();
-
- return 1;
-}
-
-# ------------------------------------------------------------------------------
-sub trInit
-{
- # set the specified locale...
- setlocale('LC_ALL', $openslxConfig{'locale'});
-
- # ...and activate automatic charset conversion on all I/O streams:
- binmode(STDIN, ":encoding($openslxConfig{'locale-charmap'})");
- binmode(STDOUT, ":encoding($openslxConfig{'locale-charmap'})");
- binmode(STDERR, ":encoding($openslxConfig{'locale-charmap'})");
- use open ':locale';
-
- my $locale = $openslxConfig{'locale'};
- if (lc($locale) eq 'c') {
- # treat locale 'c' as equivalent for 'posix':
- $locale = 'posix';
- }
-
- # load Posix-Translations first in order to fall back to English strings
- # if a specific translation isn't available:
- if (eval "require OpenSLX::Translations::posix") {
- %translations = %OpenSLX::Translations::posix::translations;
- } else {
- vlog 1, "unable to load translations module 'posix' ($!).";
- }
-
- if (lc($locale) ne 'posix') {
- # parse locale and canonicalize it (e.g. to 'de_DE') and generate
- # two filenames from it (language+country and language only):
- if ($locale !~ m{^\s*([^_]+)(?:_(\w+))?}) {
- die "locale $locale has unknown format!?!";
- }
- my @locales;
- if (defined $2) {
- push @locales, lc($1).'_'.uc($2);
- }
- push @locales, lc($1);
-
- # try to load any of the Translation modules (starting with the more
- # specific one [language+country]):
- my $loadedTranslationModule;
- foreach my $trName (@locales) {
- my $trModule = "OpenSLX::Translations::$trName";
- if (eval "require $trModule") {
- # Access OpenSLX::Translations::<locale>::translations
- # via a symbolic reference...
- no strict 'refs';
- my $translationsRef = \%{ "${trModule}::translations" };
- # ...and copy the available translations into our hash:
- foreach my $k (keys %{$translationsRef}) {
- $translations{$k} = $translationsRef->{$k};
- }
- $loadedTranslationModule = $trModule;
- vlog 1, _tr("translations module %s loaded successfully",
- $trModule);
- last;
- }
- }
- if (!defined $loadedTranslationModule) {
- vlog 1, "unable to load any translations module for locale '$locale' ($!).";
- }
- }
-}
-
-# ------------------------------------------------------------------------------
-sub _tr
-{
- my $trOrig = shift;
-
- my $trKey = $trOrig;
- $trKey =~ s[\n][\\n]g;
- $trKey =~ s[\t][\\t]g;
-
- my $formatStr = $translations{$trKey};
- if (!defined $formatStr) {
- vlog 1, "Translation key '$trKey' not found.";
- $formatStr = $trOrig;
- }
- return sprintf($formatStr, @_);
-}
-
-1; \ No newline at end of file
diff --git a/config-db/slxldd b/config-db/slxldd
index 534752e6..212b6fe8 100755
--- a/config-db/slxldd
+++ b/config-db/slxldd
@@ -27,7 +27,7 @@ use Pod::Usage;
use FindBin;
use lib "$FindBin::RealBin/../lib";
# production path
-use lib "$FindBin::RealBin";
+use lib "$FindBin::RealBin/..";
# development path
use OpenSLX::Basics;
diff --git a/config-db/slxsettings b/config-db/slxsettings
index 57623891..008d760c 100755
--- a/config-db/slxsettings
+++ b/config-db/slxsettings
@@ -29,7 +29,7 @@ use Pod::Usage;
use FindBin;
use lib "$FindBin::RealBin/../lib";
# production path
-use lib "$FindBin::RealBin";
+use lib "$FindBin::RealBin/..";
# development path
use OpenSLX::Basics;
diff --git a/config-db/slxsetup b/config-db/slxsetup
index eab58ad9..80734b2f 100755
--- a/config-db/slxsetup
+++ b/config-db/slxsetup
@@ -25,8 +25,10 @@ use Pod::Usage;
use FindBin;
use lib "$FindBin::RealBin/../lib";
# production path
+use lib "$FindBin::RealBin/..";
+ # development path to basic stuff
use lib "$FindBin::RealBin";
- # development path
+ # development path to config-db stuff
use OpenSLX::Basics;
use OpenSLX::ConfigDB qw(:access :manipulation);
diff --git a/installer/slxossetup b/installer/slxossetup
index c6f6c05f..ae48877f 100755
--- a/installer/slxossetup
+++ b/installer/slxossetup
@@ -121,7 +121,8 @@ function setup_busybox_chroot()
cp -p /etc/resolv.conf "${CHROOT_DIR}/etc/"
# FIXME this might not be enough to satisfy the resolver
- for file in /lib/libnss_dns* /lib/libresolv*; do
+# for file in /lib/libnss_dns* /lib/libresolv*; do
+ for file in /lib/xxlib_dns* /lib/xxlibresolv*; do
test -e "${file}" || \
continue
dir="${CHROOT_DIR}/${file%/*}"
@@ -134,7 +135,7 @@ function setup_busybox_chroot()
function setup_busybox_stage1_config()
{
local key value CONFIG_FILE
-
+
CONFIG_FILE="${CHROOT_DIR}/etc/slxbootstrap.conf"
test -d "${CHROOT_DIR}/etc" || \
@@ -363,7 +364,7 @@ function install_slxselection()
done
test -z "${packagelist}" && \
return
-
+
case "${META_PACKAGER}" in
*debian*|*ubuntu**)
: ${SLX_STAGE1_INSTALL_OPTIONS:=-y}