r36743 - in /packages/code-aster/aster/trunk/debian: changelog control patches/debian-install.patch patches/edf-install.patch patches/series patches/setup.cfg.patch pyversions rules
trophime-guest at users.alioth.debian.org
trophime-guest at users.alioth.debian.org
Mon Jul 19 15:22:45 UTC 2010
Author: trophime-guest
Date: Mon Jul 19 15:22:43 2010
New Revision: 36743
URL: http://svn.debian.org/wsvn/debian-science/?sc=1&rev=36743
Log:
update to 10.2
Added:
packages/code-aster/aster/trunk/debian/patches/debian-install.patch
packages/code-aster/aster/trunk/debian/patches/edf-install.patch
Modified:
packages/code-aster/aster/trunk/debian/changelog
packages/code-aster/aster/trunk/debian/control
packages/code-aster/aster/trunk/debian/patches/series
packages/code-aster/aster/trunk/debian/patches/setup.cfg.patch
packages/code-aster/aster/trunk/debian/pyversions
packages/code-aster/aster/trunk/debian/rules
Modified: packages/code-aster/aster/trunk/debian/changelog
URL: http://svn.debian.org/wsvn/debian-science/packages/code-aster/aster/trunk/debian/changelog?rev=36743&op=diff
==============================================================================
--- packages/code-aster/aster/trunk/debian/changelog (original)
+++ packages/code-aster/aster/trunk/debian/changelog Mon Jul 19 15:22:43 2010
@@ -1,3 +1,10 @@
+aster (10.2.0-1-1.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * New upstream release
+
+ -- Christophe Trophime <christophe.trophime at grenoble.cnrs.fr> Mon, 19 Jul 2010 14:10:47 +0200
+
aster (10.1.0-4-1.3) unstable; urgency=low
* Non-maintainer upload.
Modified: packages/code-aster/aster/trunk/debian/control
URL: http://svn.debian.org/wsvn/debian-science/packages/code-aster/aster/trunk/debian/control?rev=36743&op=diff
==============================================================================
--- packages/code-aster/aster/trunk/debian/control (original)
+++ packages/code-aster/aster/trunk/debian/control Mon Jul 19 15:22:43 2010
@@ -5,8 +5,8 @@
Uploader: Adam C. Powell, IV <hazelsct at debian.org>, Sylvestre Ledru <sylvestre at debian.org>
Standards-Version: 3.8.4
Build-Depends: debhelper (>= 7), cdbs, quilt, gfortran (>= 4.3.2),
- liblapack-dev, libblas-dev, libhdf5-openmpi-dev, libmed-dev,
- python-all-dev (>= 2.5), python-support, python-numeric, libmumps-metis-dev,
+ liblapack-dev, libblas-dev, libhdf5-mpi-dev, libmed-dev,
+ python-all-dev (>= 2.5), python-support, python-numeric, libmumps-scotch-dev,
libscotch-dev
Homepage: http://www.code-aster.org/
Vcs-Svn: svn://svn.debian.org/svn/debian-science/packages/code-aster/aster/
Added: packages/code-aster/aster/trunk/debian/patches/debian-install.patch
URL: http://svn.debian.org/wsvn/debian-science/packages/code-aster/aster/trunk/debian/patches/debian-install.patch?rev=36743&op=file
==============================================================================
--- packages/code-aster/aster/trunk/debian/patches/debian-install.patch (added)
+++ packages/code-aster/aster/trunk/debian/patches/debian-install.patch Mon Jul 19 15:22:43 2010
@@ -1,0 +1,418 @@
+Index: aster-10.2.0-1/as_setup.py
+===================================================================
+--- aster-10.2.0-1.orig/as_setup.py 2010-07-19 16:51:47.000000000 +0200
++++ aster-10.2.0-1/as_setup.py 2010-07-19 16:51:47.000000000 +0200
+@@ -180,6 +180,7 @@
+ (default is product-version),
+ .verbose : True for verbose mode,
+ .debug : True for debug mode,
++ .destdir : destdir directory,
+ .installdir : installation directory,
+ .sourcedir : directory where is 'archive',
+ .workdir : directory used for extraction, compilation...
+@@ -204,6 +205,7 @@
+ _fmt_info = _separ+_(""" Installation of : %s %s
+ %s
+ Archive filename : %s
++ Destdir : %s
+ Destination : %s
+ Working directory : %s""")+_separ
+ _fmt_enter = _("entering directory '%s'")
+@@ -220,7 +222,7 @@
+ self.exit_code = None
+ self.temporary_folder=kargs.get('temporary_folder', '/tmp')
+ # product parameters
+- required_args=('product', 'version', 'description', 'installdir', 'sourcedir')
++ required_args=('product', 'version', 'description', 'destdir', 'installdir', 'sourcedir')
+ for arg in required_args:
+ try:
+ setattr(self, arg, kargs[arg])
+@@ -252,7 +254,7 @@
+ )
+ self.actions = kargs.get('actions', default_actions)
+ self.clean_actions = kargs.get('clean_actions', [])
+- for d in ('installdir', 'sourcedir', 'workdir'):
++ for d in ('destdir', 'installdir', 'sourcedir', 'workdir'):
+ setattr(self, d, os.path.abspath(getattr(self, d)))
+
+ # external methods
+@@ -333,7 +335,7 @@
+ # check for permissions and create directories
+ self.VerbStart(_('Checking permissions...'))
+ iret=0
+- ldirs=[self.installdir, self.workdir]
++ ldirs=[self.destdir+self.installdir, self.destdir+self.workdir]
+ for d in ldirs:
+ try:
+ if not os.path.exists(d):
+@@ -354,7 +356,7 @@
+ """Print informations about the installation of current product
+ """
+ self._print(self._fmt_info % (self.product, self.version, self.description,
+- self.archive, self.installdir, self.workdir))
++ self.archive, self.destdir, self.installdir, self.workdir))
+
+ #-------------------------------------------------------------------------------
+ def Extract(self, **kargs):
+@@ -371,10 +373,10 @@
+ archive = kargs.get('archive', os.path.join(self.sourcedir,self.archive))
+ command = kargs.get('command')
+ newname = kargs.get('extract_as', None)
+- path=self.workdir
++ path=self.destdir+self.workdir
+ iextr_as=newname<>None and self.content<>newname and self.content<>'.'
+ if iextr_as:
+- path=os.path.join(self.workdir,'tmp_extract')
++ path=os.path.join(self.destdir+self.workdir,'tmp_extract')
+ if not os.path.exists(path):
+ os.makedirs(path)
+
+@@ -527,7 +529,7 @@
+ postinst = kargs.get('postinst')
+ postdest = kargs.get('postdest', self.installdir)
+ postdest = self.special_vars(postdest)
+- path = kargs.get('path', os.path.join(self.workdir,self.content))
++ path = kargs.get('path', os.path.join(self.destdir+self.workdir,self.content))
+ path = self.special_vars(path)
+ only_postinst = kargs.get('only_post', False)
+
+@@ -629,11 +631,12 @@
+ def Install(self, **kargs):
+ """Perform installation of the product.
+ command : alternative command line
+- path : directory to build
++ path : directory to buildd
++ destdir : destination directory to install
+ """
+ self._print(self._fmt_title % _('Installation'))
+ command = kargs.get('command')
+- path = kargs.get('path', os.path.join(self.workdir,self.content))
++ path = kargs.get('path', os.path.join(self.destdir+self.workdir,self.content))
+ path = self.special_vars(path)
+ if command==None:
+ command='make install'
+@@ -667,9 +670,10 @@
+ command : alternative command line
+ path : initial directory
+ prefix : installation prefix
++ destdir : installation destdir
+ cmd_opts : options
+ """
+- format = '%(python)s %(script)s %(global_opts)s %(cmd)s --prefix=%(prefix)s %(cmd_opts)s'
++ format = '%(python)s %(script)s %(global_opts)s %(cmd)s --prefix=%(prefix)s --root=%(destdir)s %(cmd_opts)s'
+ d_cmd = {}
+ d_cmd['python'] = self.depend.cfg.get('PYTHON_EXE', sys.executable)
+ d_cmd['script'] = kargs.get('script', 'setup.py')
+@@ -677,6 +681,7 @@
+ d_cmd['cmd'] = kargs.get('cmd', 'install')
+ d_cmd['cmd_opts'] = kargs.get('cmd_opts', '')
+ d_cmd['prefix'] = kargs.get('prefix', GetPrefix(self.installdir))
++ d_cmd['destdir'] = kargs.get('destdir', self.destdir)
+
+ kargs['command'] = kargs.get('command', format % d_cmd)
+ self.Install(**kargs)
+@@ -1076,6 +1081,7 @@
+ _fmt_title=_separ + ' %s' + _separ
+ _fmt_sum=_(""" Installation of : %(product)s %(version)s
+ Destination : %(installdir)s
++ Destdir : %(destdir)s
+ Elapsed time : %(time).2f s""")
+ _fmt_except=_('\n *** Exception %s raised : %s\nSee detailed traceback in' \
+ ' the logfile')
+@@ -1100,7 +1106,8 @@
+ self.diag[p]={
+ 'product' : p,
+ 'version' : '(version unavailable)',
+- 'installdir' : 'unknown',
++ 'destdir' : 'unknown',
++ 'installdir' : 'unknown',
+ 'exit_code' : None,
+ 'time' : 0.,
+ 'tb_info' : None,
+@@ -1126,6 +1133,7 @@
+ if isinstance(setup, SETUP):
+ self.diag[product].update({
+ 'version' : setup.version,
++ 'destdir' : setup.destdir,
+ 'installdir' : setup.installdir,
+ 'exit_code' : setup.exit_code,
+ })
+Index: aster-10.2.0-1/products.py
+===================================================================
+--- aster-10.2.0-1.orig/products.py 2010-07-19 16:51:47.000000000 +0200
++++ aster-10.2.0-1/products.py 2010-07-19 17:17:30.000000000 +0200
+@@ -514,7 +514,7 @@
+ pkg_name = '%s-%s' % (product, version)
+ # ----- add (and check) product dependencies
+ dep.Add(product,
+- req=['ASTER_ROOT', 'ASTER_VERSION',
++ req=['DESTDIR', 'ASTER_ROOT', 'ASTER_VERSION',
+ 'HOME_PYTHON', 'PYTHON_EXE', 'IFDEF',
+ 'TERMINAL', 'EDITOR', 'SHELL_EXECUTION',
+ 'PS_COMMAND_CPU', 'PS_COMMAND_PID',
+@@ -908,8 +908,8 @@
+ 'HOME_MUMPS', 'HOME_ZMAT', 'HOME_MPI', 'INCLUDE_MUMPS', 'HOME_METIS',
+ 'HOME_MED', 'HOME_HDF', 'HOME_CRPCRS', 'HOME_NUMPY', 'USE_NUMPY',
+ 'LD', 'CC', 'F77', 'F90', 'CXXLIB', 'OTHERLIB',],
+- reqobj=['file:?ASTER_ROOT?/bin/as_run',
+- 'file:?ASTER_ROOT?/etc/codeaster/profile.sh'],
++ reqobj=['file:/usr/bin/as_run',
++ 'file:/etc/codeaster/profile.sh'],
+ set=['SYSLIB',
+ 'MEDLIB', 'HDFLIB', 'MATHLIB',
+ 'MUMPSLIB', 'ZMATLIB', 'SCOTCHLIB',
+@@ -925,8 +925,10 @@
+ cfg['OPT_ENV'] = '#?OPT_ENV?\n\n' + cfg['OPT_ENV']
+ ftools=kargs['find_tools']
+
++ destdir_installdir_pkg = cfg['DESTDIR'] + cfg['ASTER_ROOT']
++
+ # ----- add path to Code_Aster headers
+- cfg['CINCLUDE'] = '-I%s' % os.path.join(cfg['ASTER_ROOT'], cfg['ASTER_VERSION'], 'bibc', 'include')
++ cfg['CINCLUDE'] = '-I%s' % os.path.join(destdir_installdir_pkg, cfg['ASTER_ROOT'], cfg['ASTER_VERSION'], 'bibc', 'include')
+ # ----- check for Python headers
+ ftools.find_and_set(cfg, 'CINCLUDE', 'Python.h',
+ [os.path.join(cfg['HOME_PYTHON'], 'include', 'python'+sys.version[:3])],
+@@ -1043,7 +1045,7 @@
+ mumps_lib = ['dmumps', 'zmumps']
+ if not less_than_version(dict_prod['mumps'], '4.8.0'):
+ mumps_lib.extend(['smumps', 'cmumps', 'mumps_common'])
+- mumps_lib.extend(['pord', 'mpiseq'])
++ mumps_lib.extend(['pord', 'mpiseq_seq'])
+ for lib in mumps_lib:
+ ftools.findlib_and_set(cfg, 'MUMPSLIB', lib,
+ cfg['HOME_MUMPS'],
+@@ -1052,7 +1054,7 @@
+ ftools.CheckFromLastFound(cfg, 'HOME_MUMPS', 'lib')
+ if cfg['HOME_METIS'] != '':
+ cfg['MUMPSLIB'] += " -L%s/lib -lmetis" % cfg['HOME_METIS']
+- opt['F90INCLUDE'] += ' -I%s' % os.path.join(cfg['ASTER_ROOT'],cfg['ASTER_VERSION'],'bibf90',cfg['INCLUDE_MUMPS'])
++ opt['F90INCLUDE'] += ' -I%s' % os.path.join(destdir_installdir_pkg, cfg['ASTER_ROOT'],cfg['ASTER_VERSION'],'bibf90',cfg['INCLUDE_MUMPS'])
+ if cfg['HOME_MPI'] != '':
+ cfg['DEFINED'] += ' _USE_MPI_MUMPS'
+ else:
+@@ -1099,7 +1101,7 @@
+
+ # ----- SCOTCH
+ if cfg['HOME_SCOTCH']<>'':
+- for lib in ('common', 'scotch', 'scotcherr', 'scotcherrcom'):
++ for lib in ('scotch', 'scotcherr', 'scotcherrexit'):
+ ftools.findlib_and_set(cfg, 'SCOTCHLIB', lib,
+ cfg['HOME_SCOTCH'],
+ err=True, append=True)
+@@ -1184,53 +1186,26 @@
+ log=kargs['log'],
+
+ actions=(
+- ('Extract' , { 'extract_as' : cfg['ASTER_VERSION'] }),
+ ('ChgFiles' , {
+ 'external' : set_profile,
+ 'files' : ['profile.sh'],
+- 'path' : os.path.join(cfg['ASTER_ROOT'], cfg['ASTER_VERSION']),
++ 'path' : os.path.join(destdir_installdir_pkg, cfg['ASTER_ROOT'], cfg['ASTER_VERSION']),
+ }),
+ ('ChgFiles' , {
+ 'files' : ['config.txt', '*.export', 'Makefile*'],
+- 'path' : os.path.join(cfg['ASTER_ROOT'],cfg['ASTER_VERSION']),
+- 'postdest' : os.path.join(cfg['ASTER_ROOT'],cfg['ASTER_VERSION']),
++ 'path' : os.path.join(destdir_installdir_pkg, cfg['ASTER_ROOT'],cfg['ASTER_VERSION']),
++ 'postdest' : os.path.join(destdir_installdir_pkg, cfg['ASTER_ROOT'],cfg['ASTER_VERSION']),
+ 'dtrans' : cfg,
+ 'postinst' : kargs['postinst'],
+ }),
+- ('ChgFiles' , {
+- 'files' : ['aster'],
+- 'path' : os.path.join(cfg['ASTER_ROOT'],'etc','codeaster'),
+- 'dtrans' : {'^ *vers : %s.*\n' % cfg['ASTER_VERSION'] : '',
+- },
+- 'delimiter' : '',
+- 'keep' : True,
+- 'ext' : '.install_'+cfg['ASTER_VERSION'],
+- }),
+- ('ChgFiles' , {
+- 'files' : ['aster'],
+- 'path' : os.path.join(cfg['ASTER_ROOT'],'etc','codeaster'),
+- 'dtrans' : {
+- re.escape('?vers : VVV?') : '?vers : VVV?\nvers : %s' % cfg['ASTER_VERSION'],
+- },
+- 'delimiter' : '', # that's why some ? have been added above
+- 'keep' : False,
+- }),
+- ('ChgFiles' , {
+- 'files' : [os.path.join('etc','codeaster','profile.sh'),
+- os.path.join('etc','codeaster','profile.csh'),
+- os.path.join(cfg['ASTER_VERSION'], 'profile.sh')],
+- 'path' : cfg['ASTER_ROOT'],
+- 'postinst' : kargs['postinst'],
+- 'only_post' : True,
+- }),
+ ('Install', {
+- 'path' : os.path.join(cfg['ASTER_ROOT'],cfg['ASTER_VERSION']),
++ 'path' : os.path.join(destdir_installdir_pkg, cfg['ASTER_ROOT'],cfg['ASTER_VERSION']),
+ 'command' : 'ln -sf Makefile.asrun Makefile',
+ }),
+ ('Make' , {
+- 'path' : os.path.join(cfg['ASTER_ROOT'],cfg['ASTER_VERSION']),
+- 'command' : '%s --make --vers=%s' % \
+- (os.path.join(cfg['ASTER_ROOT'],'bin','as_run'), cfg['ASTER_VERSION']),
++ 'path' : os.path.join(destdir_installdir_pkg, cfg['ASTER_ROOT'],cfg['ASTER_VERSION']),
++ 'command' : '%s --make --vers=%s --destdir=%s --config=%s' % \
++ (os.path.join('/usr/bin','as_run'), cfg['ASTER_VERSION'], 'config.txt'),
+ 'capturestderr' : False,
+ }),
+ ),
+Index: aster-10.2.0-1/products_versions.py
+===================================================================
+--- aster-10.2.0-1.orig/products_versions.py 2010-07-19 16:51:47.000000000 +0200
++++ aster-10.2.0-1/products_versions.py 2010-07-19 16:51:47.000000000 +0200
+@@ -6,7 +6,7 @@
+ 'eficas-doc': '2.0.3',
+ 'gibi': '2000',
+ 'gmsh': '2.4.2',
+- 'grace': '5.1.21',
++ 'grace': '5.1.22',
+ 'hdf5': '1.6.9',
+ 'homard': '9.6',
+ 'med': '2.3.6',
+@@ -16,7 +16,7 @@
+ 'omniORB': '4.1.4',
+ 'omniORBpy': '3.4',
+ 'pylotage': '2.0.5',
+- 'scotch': '4.0'}
++ 'scotch': '5.1.8a'}
+
+ dict_prod_param = {'__to_install__': ['med',
+ 'astk',
+Index: aster-10.2.0-1/setup.py
+===================================================================
+--- aster-10.2.0-1.orig/setup.py 2010-07-19 16:51:47.000000000 +0200
++++ aster-10.2.0-1/setup.py 2010-07-19 16:51:47.000000000 +0200
+@@ -133,6 +133,9 @@
+ parser = OptionParser(
+ usage=usage,
+ version='Code_Aster Setup version ' + __pkginfo__.version + '-' + __pkginfo__.release)
++ parser.add_option("--root", dest="DESTDIR", action='store',
++ # default='/opt/aster', not here !
++ help=_("define destdir directory for Code_Aster (default '')"), metavar="DIR")
+ parser.add_option("--prefix", dest="prefix", action='store',
+ help=_("define toplevel directory for Code_Aster (identical to --aster_root)"), metavar="DIR")
+ parser.add_option("--aster_root", dest="ASTER_ROOT", action='store',
+@@ -159,6 +162,12 @@
+ parser.add_option("--noprompt", dest="noprompt", action='store_true',
+ default=False,
+ help=_("do not ask any questions"),)
++ parser.add_option("--install-purelib", dest="PYTHONPURELIB", action='store',
++ # default='/opt/aster', not here !
++ help=_("define python pure library directory (default '/usr/lib/python2.5/site-packages/')"), metavar="DIR")
++ parser.add_option("--install-platlib", dest="PYTHONPLATLIB", action='store',
++ # default='/opt/aster', not here !
++ help=_("define python plat library directory (default '/usr/lib/python2.5/site-packages/')"), metavar="DIR")
+
+ opts, args = parser.parse_args()
+ fcfg = opts.fcfg
+@@ -173,8 +182,11 @@
+ cache_file = os.path.join(setup_maindir, 'setup.cache')
+
+ def_opts={
++ 'DESTDIR' : '',
+ 'ASTER_ROOT' : '/opt/aster',
+ 'SOURCEDIR' : os.path.normpath(os.path.join(setup_maindir, 'SRC')),
++ 'PYTHONPURELIB' : '/usr/lib/python2.5/site-packages/',
++ 'PYTHONPLATLIB' : '/usr/lib/python2.5/site-packages/',
+ }
+ if opts.prefix is not None and opts.ASTER_ROOT is None:
+ opts.ASTER_ROOT = opts.prefix
+@@ -187,6 +199,8 @@
+ pass
+ elif args[0] == 'test':
+ _test = True
++ elif args[0] == 'build':
++ _test = True
+ elif args[0] == 'clean':
+ os.system('rm -f setup.log* setup.dbg* setup.cache *.pyc')
+ print _("temporary files deleted!")
+@@ -270,7 +284,7 @@
+ log._print(_(' %15s (from cache) : %s') % (k, repr(v)))
+
+ # 1.1.3. ----- list of options to put in cfg
+- for o in ('ASTER_ROOT', 'SOURCEDIR',):
++ for o in ('DESTDIR', 'ASTER_ROOT', 'SOURCEDIR',):
+ if getattr(opts, o) is not None:
+ cfg[o]=os.path.normpath(os.path.abspath(getattr(opts, o)))
+ log._print(_separ,_(' %15s (from arguments) : %s') % (o, cfg[o]))
+@@ -684,20 +698,9 @@
+ ftools.find_and_set(cfg, 'XMGRACE', ['xmgrace', 'grace'], err=False)
+ if cfg.get('XMGRACE'):
+ iret, out, outspl = ftools.get_product_version(cfg['XMGRACE'], '-version')
+- vers = None
+- svers = '?'
+- for line in outspl:
+- if line.startswith('Grace') or line.startswith('grace'):
+- mat = re.search('([0-9\.]+)', line)
+- if mat is not None:
+- vers = mat.group(1).strip('.').split('.')
+- try:
+- vers = [int(v) for v in vers]
+- svers = '.'.join([str(i) for i in vers])
+- except:
+- vers = None
+- break
+- log._print('XMGRACE', line, ': version', vers, DBG=True)
++ vers = [5, 22]
++ svers='5.1.22'
++ log._print('XMGRACE : version', vers, DBG=True)
+ if vers is not None and vers < [5, 90]:
+ res = 'version is %s : ok. Do not need compile grace from sources.' % svers
+ to_install.remove('grace')
+@@ -721,12 +724,15 @@
+ #-------------------------------------------------------------------------------
+ # 2.99. ----- stop here if 'test'
+ err = False
+- if not os.path.exists(cfg['ASTER_ROOT']):
++ destdir_installdir = cfg['DESTDIR'] + cfg['ASTER_ROOT']
++ if not os.path.exists(destdir_installdir):
+ try:
+- os.makedirs(cfg['ASTER_ROOT'])
++ if cfg['DESTDIR'] != '' and not os.path.exists(cfg['DESTDIR']):
++ os.makedirs(cfg['DESTDIR'])
++ os.makedirs(destdir_installdir)
+ except OSError:
+ err = True
+- err = err or not os.access(cfg['ASTER_ROOT'], os.W_OK)
++ err = err or not os.access(destdir_installdir, os.W_OK)
+ if err:
+ log._print(_separ, term='')
+ log._print(_('No write access to %s.\nUse --aster_root=XXX to change destination directory.') % cfg['ASTER_ROOT'])
+@@ -751,14 +757,14 @@
+ log._print('Continue without prompting.')
+ else:
+ log._print(_("Check if found values seem correct. If not you can change them using 'setup.cfg'."))
+- should_continue()
++ #should_continue()
+
+ t_ini = time.time() - t_ini
+
+ #-------------------------------------------------------------------------------
+ # 3. prepare post-installation
+ #-------------------------------------------------------------------------------
+- post_installdir = os.path.join(cfg['ASTER_ROOT'], '.postinst')
++ post_installdir = os.path.join(destdir_installdir, '.postinst')
+ if not os.path.exists(post_installdir):
+ os.makedirs(post_installdir)
+ shutil.copy2(os.path.join(setup_maindir, 'post_install.py'), post_installdir)
+@@ -776,12 +782,12 @@
+ #-------------------------------------------------------------------------------
+ # 4. products installation
+ #-------------------------------------------------------------------------------
+- if not os.path.exists(cfg['TOOLS_DIR']):
+- os.makedirs(cfg['TOOLS_DIR'])
++ if not os.path.exists(cfg['DESTDIR'] +cfg['TOOLS_DIR']):
++ os.makedirs(cfg['DESTDIR'] +cfg['TOOLS_DIR'])
+
+ # product for which full installation is not required
+ if grace_add_symlink:
+- dest = os.path.join(cfg['TOOLS_DIR'], 'xmgrace')
++ dest = os.path.join(cfg['DESTDIR'] +cfg['TOOLS_DIR'], 'xmgrace')
+ if os.path.exists(dest):
+ os.remove(dest)
+ os.symlink(cfg['XMGRACE'], dest)
Added: packages/code-aster/aster/trunk/debian/patches/edf-install.patch
URL: http://svn.debian.org/wsvn/debian-science/packages/code-aster/aster/trunk/debian/patches/edf-install.patch?rev=36743&op=file
==============================================================================
--- packages/code-aster/aster/trunk/debian/patches/edf-install.patch (added)
+++ packages/code-aster/aster/trunk/debian/patches/edf-install.patch Mon Jul 19 15:22:43 2010
@@ -1,0 +1,10308 @@
+Index: aster-10.2.0-1/README_Calibre.txt
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ aster-10.2.0-1/README_Calibre.txt 2010-07-19 14:53:17.000000000 +0200
+@@ -0,0 +1,3485 @@
++-----------------------------------------------------------------
++ README FOR CODE_ASTER INSTALLATION
++ FULL DISTRIBUTION WITH ALL PRE-REQUISITES
++-----------------------------------------------------------------
++
++This note concerns only "EDF CALIBRE" Linux distribution.
++See README_aster.txt file for general informations.
++
++SOMMAIRE :
++ . VERSION DE CALIBRE SUPPORTEES
++ . NOTE D'INSTALLATION
++ . INSTALLATION
++ . RESULTAT DES TESTS - VERSION 9.7 - CALIBRE 5.0
++ . LISTE DES PAQUETS CALIBRE 5.0
++
++
++-----------------------------------------------------------------
++. VERSION DE CALIBRE SUPPORTEES
++ Cette distribution de Code_Aster a été validée sur :
++ - Calibre 5.0 (64 bits avec les compilateurs Intel 10.0.026 et GNU 4.1.2).
++
++ Identification des machines de test :
++ Calibre 5.0.3
++ Linux clau5dcd 2.6.26-2-amd64 #1 SMP Fri Mar 12 08:20:54 UTC 2010 x86_64
++
++-----------------------------------------------------------------
++. NOTE D'INSTALLATION
++ L'installation a uniquement été validée avec un compte
++ utilisateur banalisé (sans permission particulière).
++ Ainsi aucun fichier n'est installé en dehors du répertoire
++ principal (appelé ASTER_ROOT).
++
++ Si l'installation est faite en tant que root (déconseillé), les modules
++ Python seront installés dans /usr/lib/python2.x/site-packages et
++ risquent d'écraser ceux de la distribution Calibre.
++
++. FORTRAN 90
++ Un compilateur fortran90 (ifort, gfortran...) est maintenant requis.
++
++. VERSION DE PYTHON
++ Des problèmes apparaissent quand on recompile le module python Numeric
++ sur Calibre 5. Il est donc nécessaire d'utiliser le paquet debian natif
++ du module python Numeric qui est déjà installé mais pour python2.4
++ uniquement.
++ Il est donc obligatoire d'utiliser python2.4 sur Calibre 5.
++ Le support du multi-threading n'étant alors pas disponible, le temps
++ de compilation et de passage des tests est plus long.
++
++. COMPILATEURS INTEL CALIBRE 5.0
++ L'installation a été validée en utilisant les compilateurs Intel pour
++ Code_Aster, Mumps et Metis et les compilateurs GNU pour le reste.
++ Malheureusement, la bibliothèque Intel Math Kernel Library n'est pas
++ installée avec les compilateurs. Cela complique le paramétrage
++ de l'installation.
++ 1. Préparation de l'environnement des compilateurs Intel ::
++
++ export INTEL_LICENSE_FILE=/path/to/directory/licenses
++ source /opt/intel/cce/10.0.026/bin/iccvars.sh
++ source /opt/intel/fce/10.0.026/bin/ifortvars.sh
++
++ 2. Indiquer dans le fichier `setup.cfg` ::
++
++ # GNU compiler for all products
++ PREFER_COMPILER = 'GNU'
++
++ # Intel compilers for aster, mumps, metis
++ PREFER_COMPILER_aster = 'Intel_without_MATH'
++ PREFER_COMPILER_mumps = PREFER_COMPILER_aster
++ PREFER_COMPILER_metis = PREFER_COMPILER_aster
++ PREFER_COMPILER_metis_edf = PREFER_COMPILER_aster
++
++ # use lapack/blas instead of mkl
++ MATHLIB='-L/usr/lib -llapack -lblas -lgfortran'
++
++ 3. Lancer setup.py
++
++-----------------------------------------------------------------
++. INSTALLATION
++ Pour l'installation (remplacer /local00/aster par le
++ répertoire d'installation souhaité) :
++
++ > tar xvzf aster-full-src-X.X.X-Y.tar.gz
++ > cd aster-src-X.X.X
++ > /usr/bin/python setup.py install --force --aster_root=/local00/aster
++
++
++ La compilation de l'ensemble des produits dure environ 30 min.
++
++
++-----------------------------------------------------------------
++. RESULTAT DES TESTS - VERSION 9.7 - CALIBRE 5.0
++ La liste de validation de la version 9.7 comprend 2277 tests
++ (seuls les cas-tests ayant de gros fichiers de données ont
++ été exclus).
++ Il faut compter environ 4-5 heures pour passer tous les tests.
++
++ La procédure de lancement des cas-tests est décrite dans
++ le fichier README_aster.txt. Par exemple :
++
++ > cd /local00/aster/STA9.7
++ > /local00/aster/outils/as_run astout.export
++
++ Le bilan est affiché à la fin du lancement de tous les tests.
++ On peut reproduire le bilan des tests en erreur en lancant :
++
++ > cd /local00/aster/STA9.7
++ > /local00/aster/outils/as_run --diag --only_nook --astest_dir=astest,resu_test
++
++ Commentaires sur les résultats : consulter la Fiche Qualité de la version 9.7.
++
++--- Répertoire des cas-tests : /local01/install/aster9/STA9.7/astest, /local01/install/aster9/STA9.7/resu_test
++ Version : 9.7.0
++ Nombre de cas-tests : 2277
++ Nombre d'erreurs : 34
++ - sans fichier .resu : 3
++ - version incorrecte : 3
++
++fiab001a <F>_ERROR 0.00 0.00 0.00 mefisto
++hsna120a <F>_ERROR 0.00 0.00 0.00 gmsh1
++miss03a <F>_ERROR 0.00 0.00 0.00 miss3d
++miss04a <F>_ERROR 0.00 0.00 0.00 miss3d
++miss06a <F>_ERROR 0.00 0.00 0.00 miss3d
++miss06b <F>_ERROR 0.00 0.00 0.00 miss3d
++miss06c <F>_ERROR 0.00 0.00 0.00 miss3d
++miss07a <F>_ERROR 0.00 0.00 0.00 miss3d
++miss07b <F>_ERROR 0.00 0.00 0.00 miss3d
++miss08a <F>_ERROR 0.00 0.00 0.00 miss3d
++plexu01a NO_RESU_FILE 1.61 0.13 1.74 europlexus
++plexu02a NO_RESU_FILE 1.66 0.22 1.88 europlexus
++sdll136a <F>_ERROR 0.00 0.00 0.00 fiche 14506
++sdll141a <F>_ERROR 0.00 0.00 0.00 fiche 13855
++sdls118a <F>_ERROR 0.00 0.00 0.00 miss3d
++yyyy104k NOOK_TEST_RESU 23.07 0.41 23.48 faible nook
++zmat001a NO_RESU_FILE 0.00 0.00 0.00 zmat
++zmat001b NO_RESU_FILE 0.00 0.00 0.00 zmat
++zmat001c NO_RESU_FILE 0.00 0.00 0.00 zmat
++zmat002a <F>_ERROR 0.00 0.00 0.00 zmat
++zmat002b <F>_ERROR 0.00 0.00 0.00 zmat
++zmat003a <F>_ERROR 0.00 0.00 0.00 zmat
++zmat004a <F>_ERROR 0.00 0.00 0.00 zmat
++zmat005a <F>_ERROR 0.00 0.00 0.00 zmat
++zmat005b <F>_ERROR 0.00 0.00 0.00 zmat
++zmat006a <F>_ERROR 0.00 0.00 0.00 zmat
++zmat007a <F>_ERROR 0.00 0.00 0.00 zmat
++zzzz108a <F>_ERROR 0.00 0.00 0.00 miss3d
++zzzz108b <F>_ERROR 0.00 0.00 0.00 miss3d
++zzzz200b <F>_ERROR 0.00 0.00 0.00 miss3d
++zzzz218a <F>_ERROR 0.00 0.00 0.00 ecrevisse
++zzzz218b <F>_ERROR 0.00 0.00 0.00 ecrevisse
++zzzz218c <F>_ERROR 0.00 0.00 0.00 ecrevisse
++------------ ------------------ ---------- ---------- ---------
++2277 tests 33 errors 62779.97 2149.93 64929.90
++
++
++
++-----------------------------------------------------------------
++. LISTE DES PAQUETS CALIBRE 5.0
++
++ Liste obtenue sur la machine de test en exécutant la commande :
++ COLUMNS=132 dpkg -l
++
++Souhait=inconnU/Installé/suppRimé/Purgé/H=à garder
++| État=Non/Installé/fichier-Config/dépaqUeté/échec-conFig/H=semi-installé
++|/ Err?=(aucune)/H=à garder/besoin Réinstallation/X=les deux (État,Err: majuscule=mauvais)
++||/ Nom Version Description
+++++-===========================-===========================-======================================================================
++ii a2ps 4.13b.dfsg.1-1 GNU a2ps - 'Anything to PostScript' converter and pretty-printer
++ii abakus 0.91-1 calculator for KDE
++ii abiword-common 2.4.6-1.1 WYSIWYG word processor based on GTK2
++ii abiword-gnome 2.4.6-1.1 WYSIWYG word processor based on GTK2/GNOME2
++ii abiword-help 2.4.6-1.1 online help for AbiWord
++ii abiword-plugins-gnome 2.4.6-1.1 plugins for AbiWord (with GNOME dependency)
++ii acpi 0.09-1 displays information on ACPI devices
++ii acpi-support 0.90-4 scripts for handling many ACPI events
++ii acpid 1.0.10-2~bpo50+2 Utilities for using ACPI power management
++ii acpidump 20060606-1 utilities to dump system's ACPI tables to an ASCII file
++ii acpitool 0.4.5-0.1 a small, convenient command-line ACPI client
++ii adduser 3.102 Add and remove users and groups
++ii admesh 0.95-7 a tool for processing triangulated solid meshes
++ii agsync 0.2-pre-9 Synchronization mediator for AvantGo and Pocket PC
++ii akregator 3.5.5.dfsg.1-6 RSS feed aggregator for KDE
++ii alacarte 0.8-5 easy GNOME menu editing tool
++ii alien 8.64 install non-native packages with dpkg
++ii alsa-base 1.0.13-5etch1 ALSA driver configuration files
++ii alsa-utils 1.0.13-2 ALSA utilities
++ii amarok 1.4.4-4etch1 versatile and easy to use audio player for KDE
++ii amarok-engines 1.4.4-4etch1 output engines for the Amarok audio player
++ii amarok-xine 1.4.4-4etch1 xine engine for the Amarok audio player
++ii amor 3.5.5-3 a KDE creature for your desktop
++ii anacron 2.3-13 cron-like program that doesn't go by time
++ii anjuta 1.2.4a-5 A GNOME development IDE for C/C++
++ii anjuta-common 1.2.4a-5 Data files for Anjuta
++ii ant 1.6.5-6 Java based build tool like make
++ii ant-optional 1.6.5-6 Java based build tool like make - optional libraries
++ii antlr 2.7.6-7 language tool for constructing recognizers, compilers etc
++ii apbs 0.4.0-2 Adaptive Poisson Boltzmann Solver
++ii aplus-fsf-el 4.20.2-5 XEmacs lisp for A+ development
++ii apt 0.6.46.4-0.1+etch1 Advanced front-end for dpkg
++ii apt-doc 0.6.46.4-0.1+etch1 Documentation for APT
++ii apt-file 2.0.8.2 APT package searching utility -- command-line interface
++ii apt-howto-common 2.0.2-2 example-based guide to APT
++ii apt-howto-fr 2.0.2-2 example-based guide to APT (French)
++ii apt-utils 0.6.46.4-0.1+etch1 APT utility programs
++ii aptitude 0.4.4-4 terminal-based apt frontend
++ii arj 3.10.22-2 archiver for .arj files
++ii ark 3.5.5-3etch1 graphical archiving tool for KDE
++ii arson 0.9.8beta2-4.3 KDE frontend for burning CDs
++ii arts 1.5.5-1 sound system from the official KDE release
++ii artsbuilder 3.5.5-2 synthesizer designer for aRts
++ii ash 0.5.3-7 Compatibility package for the Debian Almquist Shell
++ii aspell 0.60.4-4 GNU Aspell spell-checker
++ii aspell-en 6.0-0-5.1 English dictionary for GNU Aspell
++ii aspell-fr 0.50-3-6 French dictionary for aspell
++ii at 3.1.10 Delayed job execution and batch processing
++ii at-spi 1.7.12-1 Assistive Technology Service Provider Interface
++ii atlantik 3.5.5-1 KDE client for Monopoly-like network games
++ii atlantikdesigner 3.5.5-1 game board designer for Atlantik
++ii atlas3-base 3.6.0-20.6 Automatically Tuned Linear Algebra Software,generic shared
++ii atlas3-base-dev 3.6.0-20.6 Automatically Tuned Linear Algebra Software,generic static
++ii atlas3-doc 3.6.0-20.6 Automatically Tuned Linear Algebra Software,documentation
++ii atlas3-headers 3.6.0-20.6 Automatically Tuned Linear Algebra Software,C header files
++ii atlas3-test 3.6.0-20.6 Automatically Tuned Linear Algebra Software,test programs
++ii autobook 1.4.4-unofficial-4 GNU Autoconf, Automake and Libtool Book
++ii autoconf 2.61-4 automatic configure script builder
++ii autoconf2.13 2.13-58 automatic configure script builder (obsolete version)
++ii autofs 4.1.4-13 kernel-based automounter for Linux
++ii autogen 5.8.3-2 an automated text file generator
++ii automake 1.10+nogfdl-1 A tool for generating GNU Standards-compliant Makefiles
++ii automake1.10-doc 1.10-1 A tool for generating GNU Standards-compliant Makefiles
++ii automake1.4 1.4-p6-12 A tool for generating GNU Standards-compliant Makefiles
++ii automake1.7 1.7.9-9 A tool for generating GNU Standards-compliant Makefiles
++ii automake1.8 1.8.5+nogfdl-2 A tool for generating GNU Standards-compliant Makefiles
++ii automake1.8-doc 1.8.5-1 A tool for generating GNU Standards-compliant Makefiles
++ii automake1.9 1.9.6+nogfdl-3 A tool for generating GNU Standards-compliant Makefiles
++ii automake1.9-doc 1.9.6-1 A tool for generating GNU Standards-compliant Makefiles
++ii autotools-dev 20060702.1 Update infrastructure for config.{guess,sub} files
++ii avahi-daemon 0.6.16-3etch2 Avahi mDNS/DNS-SD daemon
++ii avifile-win32-plugin 0.7.44.20051021-2.2+b1 Win32 audio/video plugin for libavifile
++ii bake 1.0-4 yet another Make replacement (python)
++ii base-files 4 Debian base system miscellaneous files
++ii base-passwd 3.5.11 Debian base system master password and group files
++ii bash 3.1dfsg-8 The GNU Bourne Again SHell
++ii basket 0.5.0-6 User-friendly way to run programs and manage links in KDE
++ii bazaar 1.4.2-5.3 arch-based distributed revision control system
++ii bazaar-doc 1.4-1 bazaar revision control system (documentation)
++ii bc 1.06-20 The GNU bc arbitrary precision calculator language
++ii bcp 1.33.1-10 tool for extracting subsets of Boost C++ Libraries
++ii bicyclerepair 0.9-4.1 A refactoring tool for python
++ii bind9-host 9.3.4-2etch6 Version of 'host' bundled with BIND 9.X
++ii binfmt-support 1.2.8 Support for extra binary formats
++ii binutils 2.17-3 The GNU assembler, linker and binary utilities
++ii bison 2.3.dfsg-4 A parser generator that is compatible with YACC
++ii bison-1.35 1.35-4.1 A parser generator that is compatible with YACC
++ii bisonc++ 1.5.0-1 Bison-style parser generator for C++
++ii bittorrent 3.4.2-10 Scatter-gather network file transfer
++ii bjam 3.1.13-1 Software build tool
++ii blackdown-j2sdk1.4 1.4.2+rc1 Java(TM) 2 SDK, Standard Edition, Blackdown
++ii blacs-mpich-dev 1.1-27 Basic Linear Algebra Comm. Subprograms - Dev. files for MPICH
++ii blacs1-mpich 1.1-27 Basic Linear Algebra Comm. Subprograms - Shared libs. for MPICH
++ii blinken 3.5.5-1 KDE version of the Simon Says electronic memory game
++ii blitz++ 0.9-1.2 C++ template class library for scientific computing
++ii blop 0.2.8-5 Bandlimited wavetable-based oscillator plugins for LADSPA hosts
++ii blt 2.4z-4 the BLT extension library for Tcl/Tk - run-time package
++ii bluefish 1.0.7-1 advanced Gtk+ HTML editor
++ii bluez-gnome 0.6-1 Bluetooth utilities for GNOME
++ii boost-build 2.0-m11-2 Build system
++ii brasero 0.4.4-4 CD/DVD burning application for GNOME
++ii bsdmainutils 6.1.6 collection of more utilities from FreeBSD
++ii bsdutils 2.12r-19etch1+c5+1 Basic utilities from 4.4BSD-Lite
++ii bsh 2.0b4-4 Java scripting environment (BeanShell) Version 2
++ii bug-buddy 2.14.0-4 GNOME Desktop Environment bug reporting tool
++ii build-essential 11.3 informational list of build-essential packages
++ii buildbot 0.7.4-3 a system to automate the compile/test cycle
++ii busybox 1.1.3-4 Tiny utilities for small and embedded systems
++ii bwidget 1.7.0-1 A set of extension widgets for Tcl/Tk
++ii bzip2 1.0.3-6 high-quality block-sorting file compressor - utilities
++ii bzr 0.11-1.1 bazaar-ng, the next-generation distributed version control system
++ii c++-annotations-pdf 6.5.0-1 Extensive tutorial and documentation about C++
++ii ca-certificates 20070303 Common CA Certificates PEM files
++ii cabextract 1.2-2 a program to extract Microsoft Cabinet files
++ii cableswig 0.1.0+cvs20060311-1 Generate wrappers for Python and Tcl from C++ code
++ii calibre-acpi 1.0.0 Meta paquet Calibre ACPI
++ii calibre-archive-keyring 20090907 GnuPG archive key of the Calibre repository
++ii calibre-atlas3 1.0.2 Méta-paquet Calibre ATLAS
++ii calibre-autoconf 1.0.0 Meta-paquet Calibre autoconf
++ii calibre-automake 1.0.0 Meta-paquet Calibre automake
++ii calibre-base-x 1.0.18 Meta-paquet Calibre Xorg
++ii calibre-bison 1.0.1 Meta-paquet Calibre bison
++ii calibre-bureautique 1.0.11 Meta-paquet Calibre bureautique
++ii calibre-cernlib 1.0.2 Meta-paquet Calibre Cernlib
++ii calibre-client-nis 1.0.2 Meta-paquet Calibre pour les clients NIS
++ii calibre-clients-connexions 1.0.4 Meta-paquet Calibre pour les connexions des clients
++ii calibre-console 1.0.0 Meta-paquet Calibre console
++ii calibre-cvs 1.0.6 Meta-paquet Calibre Concurrent Versions
++ii calibre-dbclients-libres 1.0.0 Meta-paquet Calibre pour les bases de donnees libres
++ii calibre-default 1.0.7 Meta-paquet Calibre avec le logiciel a installer par default
++ii calibre-devel-deb 1.0.7 Meta-paquet Calibre pour la construction des paquets Debian
++ii calibre-devel-extras-gui 1.0.22 Meta-paquet Calibre des outils graphiques de developpement
++ii calibre-devel-kde 1.0.7 Meta-paquet Calibre outils developpement KDE
++ii calibre-devel-libs-nox 1.0.65 Meta-paquet Calibre bibliotheques developpement NO X
++ii calibre-devel-libs-x 1.0.65 Meta-paquet Calibre bibliotheques developpement X
++ii calibre-devel-outils-nox 1.0.12 Meta paquet Calibre outils developpement NO X
++ii calibre-devel-outils-x 1.0.13 Meta paquet Calibre outils developpement X
++ii calibre-eclipse 1.0.3 Meta-paquet Calibre eclipse
++ii calibre-extras-gui 1.0.9 Meta-paquet Calibre pour les GUI supplementaires
++ii calibre-extraswap 1.0.3 Meta-paquet pour augmenter la memoire swap de facon interactive
++ii calibre-extratmp 1.0.2 Meta-paquet pour augmenter la capacite de /tmp
++ii calibre-flashplugin-nonfree 1.0.8 Paquet Calibre pour les plugins Flash proprietaires
++ii calibre-french 1.0.3 Meta-paquet Calibre pour la langue Francaise
++ii calibre-geda 1.0.0 Meta-paquet Calibre gEDA
++ii calibre-gnome-config 1.0.4 Configuration par defaut de Gnome
++ii calibre-gnome-desktop 1.0.3 Meta-paquet Calibre pour l'environnement de bureau GNOME
++ii calibre-gnome-integration 1.0.9 Meta-paquet Calibre pour les plugins GNOME
++ii calibre-gnustep-nox 1.0.1 Meta-paquet Calibre Gnustep modalite console
++ii calibre-gnustep-x 1.0.0 Meta-paquet Calibre Gnustep modalite graphique
++ii calibre-internet-desktop 1.0.8 Meta-paquet Calibre des logiciels pour Internet
++ii calibre-internet-nox 1.0.3 Meta-paquet Calibre des logiciels pour Internet NO X
++ii calibre-kde-desktop 1.0.11 Meta-paquet Calibre pour l'environnement de bureau KDE
++ii calibre-kde-integration 1.0.14 Meta-paquet Calibre pour les plugins KDE
++ii calibre-kernel-2.6.26 1.0.1 Meta-paquet Calibre pour l'installation du noyau 2.6.26
++ii calibre-langage-erlang 1.0.0 Meta-paquet Calibre langage erlang NO X
++ii calibre-langage-erlang-x 1.0.1 Meta-paquet Calibre langage erlang X
++ii calibre-langage-python 1.0.19 Meta-paquet Calibre Python
++ii calibre-langage-python-x 1.0.16 Meta paquet Calibre Python interface graphique
++ii calibre-langage-r 1.0.0 Meta-paquet Calibre Langage R
++ii calibre-langages-compilateu 1.0.1 Meta-paquet Calibre pour les compilateurs
++ii calibre-latex 1.0.10 Meta-paquet Calibre LaTeX
++ii calibre-lock-grub 1.0.9 Paquet Calibre pour verrouiller GRUB
++ii calibre-math-nox 1.0.7 Meta-paquet Calibre outils mathematiques NO X
++ii calibre-math-x 1.0.11 Meta-paquet Calibre outils mathematiques modalite graphique
++ii calibre-maxima 1.0.2 Meta-paquet Calibre pour le logiciel Maxima nox
++ii calibre-mini-editeurs 1.0.0 Meta-paquet Calibre mini editeurs
++ii calibre-modules-nonfree-2.6 1.0.3 Meta-paquet Calibre pour les modules non libres 2.6.26
++ii calibre-mono 1.0.3 Meta-paquet Calibre Mono
++ii calibre-msttcorefonts 1.1.1 Paquet Calibre des polices TrueType non libres
++ii calibre-multimedia 1.0.13 Meta-paquet Calibre pour la gestion multimedia
++ii calibre-nofrench 1.0.7 Meta-paquet Calibre pour les langues etrangeres
++ii calibre-nvidia185-linux2.6. 1.0.0 Paquet Calibre pilotes et outils proprietaires Nvidia
++ii calibre-nvidia185-tools 1.0.3 Paquet Calibre des outils proprietaires Nvidia
++ii calibre-octave 1.0.2 Meta-paquet Calibre Octave
++ii calibre-oracle 1.0.1 Meta-paquet Calibre pour le client Oracle
++ii calibre-outils-nox 1.0.22 Meta paquet Calibre pour les differents outils NO X
++ii calibre-pao 1.0.20 Meta-paquet Calibre publication assistee par ordinateur
++ii calibre-pdts-full-desktop 1.0.2 Meta-paquet Calibre Poste de Travail Scientifique GNOME et KDE
++ii calibre-pdts-non-free 1.0.5 Meta-paquet Calibre logiciels non libres
++ii calibre-pdts-nox 1.0.14 Meta-paquet Calibre Poste de Travail Scientifique NO X
++ii calibre-pdts-x 1.0.13 Meta-paquet Calibre Poste de Travail Scientifique X
++ii calibre-pexsi-rd 1.0.37 Meta-paquet commun aux departements R&D
++ii calibre-pexsi-rd-ama 1.0.59 Paquet de configuration pour le departement AMA
++ii calibre-pexsi-rd-ccrt 1.0.5 Installation image CCRT
++ii calibre-pexsi-rd-octofuss 1.1.6 Configuration du client Octofuss pour la r&d
++ii calibre-pexsi-rd-portalis 1.0.6 Installation image Portalis
++ii calibre-pexsi-rd-ppcalibre 1.0.34 Paquet de personnalisation du poste Calibre
++ii calibre-pexsi-rd-vmplayer 1.0.1 Configuration VmWare RD pour Calibre 5
++ii calibre-plot-nox 1.0.5 Meta-paquet Calibre Plot NO X
++ii calibre-plot-x 1.0.3 Meta-paquet Calibre outils plot en modalite graphique
++ii calibre-pluginwrapper 1.0.4 Meta-paquet Calibre pour l'adaptateur de plugins 32 bits
++ii calibre-polices-truetype 1.0.O Meta-paquet Calibre Polices proprietaires
++ii calibre-print-client 1.0.2 Meta paquet Calibre pour la connexion au serveur des imprimantes
++ii calibre-print-server-nox 1.0.3 Meta paquet Calibre pour la gestion des serveurs d'impression
++ii calibre-ruby 1.0.1 Meta-paquet Calibre Ruby
++ii calibre-shell 1.0.0 Meta-paquet Calibre shell
++ii calibre-standard 1.0.7 Meta-paquet Calibre pour le systeme de base
++ii calibre-sun-java5 1.0.1 Meta-paquet Calibre pour la machine virtuelle Java 5
++ii calibre-tao 1.0.0 Meta paquet Calibre bibliotheques et outils TAO
++ii calibre-version 5.0.3 Meta-paquet Calibre pour indiquer la version de la souche
++ii calibre-vim 1.0.0 Meta-paquet Calibre Vim
++ii calibre-vmware-player 1.0.5 Meta-paquet Calibre pour le player de vmware
++ii calibre-vnc 1.0.2 Meta-paquet Calibre pour VNC
++ii calibre-xemacs 1.0.5 Meta-paquet Calibre Xemacs21
++ii calibre-xvim 1.0.3 Meta-paquet Calibre X-Vim
++ii capplets-data 2.14.2-7 configuration applets for GNOME 2 - data files
++ii ccache 2.4-7 Compiler results cacher, for fast recompiles
++ii ccmalloc 0.4.0-6 A memory profiler/debugger
++ii ccontrol 0.9.1+20060806-2 Compilation controller
++ii cdbs 0.4.48 common build system for Debian packages
++ii cdda2wav 1.1.2-1 Dummy transition package for icedax
++ii cdebootstrap 0.3.15 Bootstrap a Debian system
++ii cdparanoia 3.10+debian~pre0-4 audio extraction tool for sampling CDs
++ii cdrdao 1.2.2-5 records CDs in Disk-At-Once (DAO) mode
++ii cdrecord 1.1.2-1 Dummy transition package for wodim
++ii cedet-common 1.0pre3-6 Collection of Emacs Development Environment Tools - common parts
++ii cernlib 2005.dfsg-5 almost complete set of Debian Cernlib packages
++ii cernlib-base 2005.dfsg-5 script to determine Cernlib library dependencies
++ii cernlib-core 2005.dfsg-5 Cernlib main libraries and programs
++ii cernlib-core-dev 2005.dfsg-5 Cernlib development headers, tools, and static libraries
++ii cernlib-montecarlo 2005.dfsg-2 Cernlib Monte Carlo libraries
++ii cervisia 3.5.5-3 a graphical CVS front end for KDE
++ii cfengine2 2.1.20-1 Tool for configuring and maintaining network machines
++ii cflow 1.1-1 Analyze control flow in C source files
++ii cfortran 4.4-11 Header file permitting Fortran routines to be called in C/C++
++ii checkinstall 1.6.1-1 installation tracker
++ii checkpolicy 1.32-1 SELinux policy compiler
++ii cli-common 0.4.6 common files between all CLI (.NET) packages
++ii cmake 2.4.5-1 A cross-platform, open-source make system
++ii codeine 1.0.1-3.dfsg-2 Simple KDE video player
++ii cogre 1.0pre3-6 Connected Graph Editor
++ii colorgcc 1.3.2.0-4 Colorizer for GCC warning/error messages
++ii colormake 0.2-4.3 simple wrapper around make to colorize output
++ii comerr-dev 2.1-1.39+1.40-WIP-2006.11.1 common error description library - headers and static libraries
++ii commit-tool 0.4-3 GUI commit tool for various Source Control Management systems
++ii compilercache 1.0.10-4 a caching wrapper around compilers to speed up compilations
++ii console-common 0.7.69 Basic infrastructure for text console configuration
++ii console-data 1.01-7 Keymaps, fonts, charset maps, fallback tables for console-tools
++ii console-tools 0.2.3dbs-65 Linux console and font utilities
++ii coreutils 5.97-5.3 The GNU core utilities
++ii cowdancer 0.25 Copy-on-write directory tree utility.
++ii cpio 2.6-18.1+etch1 GNU cpio -- a program to manage archives of files
++ii cpp 4.1.1-15 The GNU C preprocessor (cpp)
++ii cpp-3.3 3.3.6-15 The GNU C preprocessor
++ii cpp-3.4 3.4.6-5 The GNU C preprocessor
++ii cpp-4.1 4.1.1-21 The GNU C preprocessor
++ii cpufrequtils 002-2 utilities to deal with the cpufreq Linux kernel feature
++ii cream 0.38-2 VIM macros that make the VIM easier to use for beginners
++ii cron 3.0pl1-100 management of regular background processing
++ii cscope 15.6-2+etch1 Interactively examine a C program source
++ii csh 20060813-1 Shell with C-like syntax, standard login shell on BSD systems
++ii cups-pdf 2.4.2-3 PDF printer for CUPS
++ii cupsys 1.2.7-4+etch9 Common UNIX Printing System(tm) - server
++ii cupsys-bsd 1.2.7-4+etch9 Common UNIX Printing System(tm) - BSD commands
++ii cupsys-client 1.2.7-4+etch9 Common UNIX Printing System(tm) - client programs (SysV)
++ii cupsys-common 1.2.7-4+etch9 Common UNIX Printing System(tm) - common files
++ii cupsys-driver-gutenprint 5.0.0-3 printer drivers for CUPS
++ii curl 7.15.5-1etch3 Get a file from an HTTP, HTTPS, FTP or GOPHER server
++ii cvs 1.12.13-8 Concurrent Versions System
++ii cvs2svn 1.5.0-1 Convert a cvs repository to a subversion repository
++ii cvsdelta 1.7.0-3 Summarize differences in a CVS repository
++ii cvsgraph 1.6.0-1 Create a tree of revisions/branches from a CVS/RCS file
++ii cvstrac 1.1.5-2 Low-ceremony bug tracker for medium-sized projects under CVS
++ii cvsutils 0.2.3-1 CVS utilities for use in working directories
++ii dash 0.5.3-7 The Debian Almquist Shell
++ii dbmix 0.9.8-5 DJ mixer for digital audio streams
++ii dbus 1.0.2-1+etch3+c5-2 simple interprocess messaging system
++ii dbus-1-utils 1.0.2-1+etch3+c5-2 simple interprocess messaging system (utilities)
++ii dc 1.06-20 The GNU dc arbitrary precision reverse-polish calculator
++ii dcoprss 3.5.5-5 RSS utilities for KDE
++ii dcraw 8.39-1 decode raw digital camera images
++ii ddd 3.3.11-1 The Data Display Debugger, a graphical debugger frontend
++ii ddd-doc 3.3.11-1 Additional documentation for the Data Display Debugger
++ii debconf 1.5.11etch2 Debian configuration management system
++ii debconf-i18n 1.5.11etch2 full internationalization support for debconf
++ii debconf-utils 1.5.11etch2 debconf utilities
++ii debhelper 5.0.42 helper programs for debian/rules
++ii debian-archive-keyring 2009.01.31 GnuPG archive keys of the Debian archive
++ii debian-policy 3.7.2.2 Debian Policy Manual and related documents
++ii debianutils 2.17 Miscellaneous utilities specific to Debian
++ii deborphan 1.7.23 Find orphaned libraries
++ii decompyle 2.3.2-4 a Python byte-code decompiler
++ii defoma 0.11.10-0.1 Debian Font Manager -- automatic font configuration framework
++ii dejagnu 1.4.4.cvs20060709-3 framework for running test suites on software tools
++ii deskbar-applet 2.14.2-4.2 universal search and navigation bar for GNOME
++ii desktop-base 4.0.1etch2 common files for the Debian Desktop
++ii desktop-file-utils 0.11-1 Utilities for .desktop files
++ii developers-reference-fr 3.3.8 guidelines and information for Debian developers, in French
++ii devhelp 0.13-1 A GNOME developers help program
++ii devhelp-common 0.13-1 common files for devhelp and its library
++ii devscripts 2.9.26etch5 Scripts to make the life of a Debian Package maintainer easier
++ii dh-make 0.42 tool that converts source archives into Debian package source
++ii dhcp3-client 3.0.4-13+etch2 DHCP Client
++ii dhcp3-common 3.0.4-13+etch2 Common files used by all the dhcp3* packages
++ii dia 0.95.0-4.1+b1 Diagram editor
++ii dia-common 0.95.0-4.1 Diagram editor (common files)
++ii dia-gnome 0.95.0-4.1+b1 Diagram editor (GNOME version)
++ii dia-libs 0.95.0-4.1+b1 Diagram editor (library files)
++ii dialog 1.0-20060221-3 Displays user-friendly dialog boxes from shell scripts
++ii dict 1.10.2-3.1 Dictionary Client
++ii dictionaries-common 0.70.10 Common utilities for spelling dictionary tools
++ii diff 2.8.1-11 File comparison utilities
++ii diffstat 1.43-2 produces graph of changes introduced by a diff file
++ii digikam 0.8.2-4 digital photo management application for KDE
++ii dillo 0.8.5-4.1 Small and fast web browser
++ii dirmngr 0.9.6-1+b1 server for managing certificate revocation lists
++ii discover1 1.7.19 hardware identification system
++ii discover1-data 2.2007.02.02 Data lists for Discover hardware detection system (legacy format)
++ii distcc 2.18.3-4.1 Simple distributed compiler client and server
++ii diveintopython 5.4-2 free Python book for experienced programmers
++ii djview 3.5.17-3 Viewer for the DjVu image format
++ii djvulibre-bin 3.5.17-3 Utilities for the DjVu image format
++ii djvulibre-plugin 3.5.17-3 Browser plugin for the DjVu image format
++ii dmake 4.6-1 make utility used to build OpenOffice.org
++ii dmidecode 2.8-4 Dump Desktop Management Interface data
++ii dnsutils 9.3.4-2etch6 Clients provided with BIND
++ii doc-base 0.7.21 utilities to manage online documentation
++ii doc-debian 3.1.5 Debian Project documentation, Debian FAQ and other documents
++ii doc-debian-fr 3.1.3.1 Debian Manuals, FAQs and other documents in French
++ii doc-linux-fr-text 2005.08-1 Linux docs in French: HOWTOs, MetaFAQs in ASCII format
++ii doc-linux-text 2007.02-1 Linux HOWTOs and FAQs in ASCII format
++ii docbook 4.4-1 standard SGML representation system for technical documents
++ii docbook-dsssl 1.79-4 modular DocBook DSSSL stylesheets, for print and HTML
++ii docbook-to-man 2.0.0-21 converter from DocBook SGML into roff man macros
++ii docbook-xml 4.4-5 standard XML documentation system, for software and systems
++ii docbook-xsl 1.71.0.dfsg.1-1.1 stylesheets for processing DocBook XML files to various output formats
++ii docbook-xsl-doc 1.71.0.dfsg.1-1.1 stylesheets for processing DocBook XML files (documentation)
++ii dolphin 0.7.0-1 file manager for KDE focusing on usability
++ii dosfstools 2.11-2.1 Utilities to create and check MS-DOS FAT filesystems
++ii doxygen 1.5.1-1 Documentation system for C, C++, Java, Python and other languages
++ii doxygen-doc 1.5.1-1 Documentation for doxygen
++ii doxygen-gui 1.5.1-1 GUI configuration tool for doxygen
++ii dpkg 1.13.26 package maintenance system for Debian
++ii dpkg-dev 1.13.26 package building tools for Debian
++ii drgeo 1.1.0-1 An interactive geometry software
++ii drgeo-doc 1.5-2.1 The Dr. Geo online manual.
++ii dselect 1.13.26 user tool to manage Debian packages
++ii dvd+rw-tools 7.0-4 DVD+-RW/R tools
++ii dvi2ps 3.2j-15 TeX DVI-driver for NTT JTeX, MulTeX and ASCII pTeX
++ii dvipng 1.9-1+etch.1 convert DVI files to PNG graphics
++ii dvipost 1.1-2 Post processor for dvi files supporting change bars
++ii dzedit 2005.dfsg-5 Cernlib's ZEBRA documentation editor
++ii e2fslibs 1.39+1.40-WIP-2006.11.14+df ext2 filesystem libraries
++ii e2fsprogs 1.39+1.40-WIP-2006.11.14+df ext2 file system utilities and libraries
++ii ecj-bootstrap 3.2.1-3 bootstrap version of the Eclipse Java compiler
++ii ecj-bootstrap-gcj 3.2.1-3 bootstrap version of the Eclipse Java compiler (native version)
++ii eclipse 3.2.1-4 Extensible Tool Platform and Java IDE
++ii eclipse-cdt 3.1.2-1 C/C++ Development Tools for Eclipse
++ii eclipse-fortran 4.0~beta1-1 Eclipse Fortran (Photran)
++ii eclipse-gcj 3.2.1-4 Native Eclipse run with GCJ
++ii eclipse-jdt 3.2.1-4 Java Development Tools plug-ins for Eclipse
++ii eclipse-jdt-gcj 3.2.1-4 Java Development Tools plug-ins for Eclipse (GCJ version)
++ii eclipse-pde 3.2.1-4 Plug-in Development Environment to develop Eclipse plug-ins
++ii eclipse-pde-gcj 3.2.1-4 Plug-in Development Environment to develop Eclipse plug-ins (GCJ versi
++ii eclipse-platform 3.2.1-4 Eclipse platform without plug-ins to develop any language
++ii eclipse-platform-gcj 3.2.1-4 Eclipse platform without plug-ins to develop any language (GCJ version
++ii eclipse-plugin-gef 3.2.2 GEF Plugin for Subversion
++ii eclipse-plugin-subclipse 1.6.5 Eclipse Plugin for Subversion
++ii eclipse-rcp 3.2.1-4 Eclipse rich client platform
++ii eclipse-rcp-gcj 3.2.1-4 Eclipse rich client platform (GCJ version)
++ii eclipse-source 3.2.1-4 Eclipse source code plug-ins
++ii ed 0.2-20 The classic unix line editor
++ii ede 1.0pre3-6 File manager / Makefile generator for Emacsen
++ii edict 2006.10.09-1 English / Japanese dictionary
++ii eieio 1.0pre3-6 Enhanced Implementation of Emacs Interpreted Objects
++ii eject 2.1.4-3 ejects CDs and operates CD-Changers under Linux
++ii ekiga 2.0.3-6 H.323 and SIP compatible VOIP client
++ii electric-fence 2.1.14.1 A malloc(3) debugger
++ii emacs21 21.4a+1-3etch1 The GNU Emacs editor
++ii emacs21-bin-common 21.4a+1-3etch1 The GNU Emacs editor's shared, architecture dependent files
++ii emacs21-common 21.4a+1-3etch1 The GNU Emacs editor's shared, architecture independent infrastructure
++ii emacsen-common 1.4.17 Common facilities for all emacsen
++ii enigmail 0.94.2-2 GnuPG support for Icedove
++ii enigmail-locale-fr 0.9x-20061010-1 French language package for Enigmail
++ii enscript 1.6.4-11.1 Converts ASCII text to Postscript, HTML, RTF or Pretty-Print
++ii eog 2.16.3-3 Eye of Gnome graphics viewer program
++ii epiphany-browser 2.14.3-8 Intuitive GNOME web browser
++ii epiphany-extensions 2.14.1.1-3 Extensions for Epiphany web browser
++ii epydoc-doc 2.1-11 official documentation for the Epydoc package
++ii eric 3.9.1-1 full featured Python IDE
++ii eric-api-files 3.9.1-1 API description files for use with eric
++ii erlang-base 11.b.2-4 Concurrent, real-time, distributed functional language (virtual machin
++ii erlang-dev 11.b.2-4 Concurrent, real-time, distributed functional language (development li
++ii erlang-doc-html 11.b.2-1 Erlang HTML pages
++ii erlang-examples 11.b.2-4 Concurrent, real-time, distributed functional language (application ex
++ii erlang-manpages 11.b.2-1 Erlang man pages
++ii erlang-mode 11.b.2-4 Concurrent, real-time, distributed functional language (editing mode f
++ii erlang-nox 11.b.2-4 Concurrent, real-time, distributed functional language (no X11 deps)
++ii erlang-src 11.b.2-4 Concurrent, real-time, distributed functional language (application so
++ii erlang-x11 11.b.2-4 Concurrent, real-time, distributed functional language (X11 deps)
++ii esound 0.2.36-3 Enlightened Sound Daemon - Support binaries
++ii esound-clients 0.2.36-3 Enlightened Sound Daemon - clients
++ii esound-common 0.2.36-3 Enlightened Sound Daemon - Common files
++ii ess 5.3.0-1 Emacs statistics mode, supporting R,S and others
++ii esvn 0.6.11+1-2 frontend for the Subversion revision system written in Qt
++ii esvn-doc 0.6.11+1-2 documentation for esvn
++ii ethtool 5-1 display or change ethernet card settings
++ii eukleides 0.9.2-3 a Euclidean geometry drawing language
++ii euro-support 1.36 Help setting up euro character support in your Debian system
++ii evince 0.4.0-5 Document (postscript, pdf) viewer
++ii evolution 2.6.3-6etch2 groupware suite with mail client and organizer
++ii evolution-common 2.6.3-6etch2 architecture independent files for Evolution
++ii evolution-data-server 1.6.3-5etch3 evolution database backend server
++ii evolution-data-server-commo 1.6.3-5etch3 architecture independent files for Evolution Data Server
++ii evolution-exchange 2.6.3.dfsg-1 Exchange plugin for the Evolution groupware suite
++ii evolution-plugins 2.6.3-6etch2 standard plugins for Evolution
++ii evolution-webcal 2.6.0-1+b1 webcal: URL handler for GNOME and Evolution
++ii exim4 4.63-17 metapackage to ease exim MTA (v4) installation
++ii exim4-base 4.63-17 support files for all exim MTA (v4) packages
++ii exim4-config 4.63-17 configuration for the exim MTA (v4)
++ii exim4-daemon-light 4.63-17 lightweight exim MTA (v4) daemon
++ii exiv2 0.10-1.6 EXIF/IPTC metadata manipulation tool
++ii expat 1.95.8-3.4+etch3 XML parsing C library - example application
++ii expect 5.43.0-8 A program that can automate interactive applications
++ii exuberant-ctags 5.6-1 build tag file indexes of source code definitions
++ii eyesapplet 3.5.5-3 eyes applet for KDE
++ii f2c 20050501-1 A FORTRAN 77 to C/C++ translator.
++ii fakeroot 1.5.10 Gives a fake root environment
++ii fast-user-switch-applet 2.14.2-1 Applet for the GNOME panel providing a menu to switch between users
++ii fastjar 4.1.1-21 Jar creation utility
++ii fftw2 2.1.3-20 library for computing Fast Fourier Transforms
++ii fftw3 3.1.2-1 library for computing Fast Fourier Transforms
++ii fftw3-dev 3.1.2-1 library for computing Fast Fourier Transforms
++ii fifteenapplet 3.5.5-3 fifteen pieces puzzle for KDE
++ii file 4.17-5etch3 Determines file type using "magic" numbers
++ii file-roller 2.14.4-2 an archive manager for GNOME
++ii filezilla 3.0.0~beta2-3 Port of the famous Win32 graphical FTP client
++ii filezilla-common 3.0.0~beta2-3 Architecture independent files for filezilla
++ii filezilla-locales 3.0.0~beta2-3 Translations of filezilla
++ii findutils 4.2.28-1etch1 utilities for finding files--find, xargs, and locate
++ii finger 0.17-10 user information lookup program
++ii firebird2-common 1.5.3.4870-12 Common files for firebird clients and servers
++ii fityk 0.7.6-1 general-purpose nonlinear curve fitting and data analysis
++ii flex 2.5.33-11 A fast lexical analyzer generator.
++ii flex-doc 2.5.33-11 Documentation for flex (a fast lexical analyzer generator)
++ii fluxbox 0.9.14-1.2 Highly configurable and low resource X11 Window manager
++ii fnorb 1.3-3 a pure Python ORB
++ii fnorb-doc 1.3-3 a pure Python ORB - programming examples
++ii fontconfig 2.4.2-1.2 generic font configuration library - support binaries
++ii fontconfig-config 2.4.2-1.2 generic font configuration library - configuration
++ii foomatic-db 20061031-1 linuxprinting.org printer support - database
++ii foomatic-db-engine 3.0.2-20061031-1 linuxprinting.org printer support - programs
++ii foomatic-db-gutenprint 5.0.0-3 linuxprinting.org printer support - database for Gutenprint printer dr
++ii foomatic-db-hpijs 20061031-1 linuxprinting.org printer support - database for HPIJS driver
++ii foomatic-filters 3.0.2-20061031-1.2 linuxprinting.org printer support - filters
++ii foomatic-filters-ppds 20061104-1 linuxprinting.org printer support - prebuilt PPD files
++ii fort77 1.15-7 Invoke f2c like a real compiler
++ii forutil 0.62-4 a collection of FORTRAN 77 utilities
++ii fping 2.4b2-to-ipv6-14 sends ICMP ECHO_REQUEST packets to network hosts
++ii freefem 3.5.8-3 A PDE oriented language using Finite Element Method
++ii freefem-doc 3.5.8-3 Documentation for FreeFEM (html and pdf)
++ii freefem-examples 3.5.8-3 Example files for FreeFEM
++ii freefem3d 1.0pre8-2 A language and solver for partial differential equations in 3D
++ii freeglut3 2.4.0-5 OpenGL Utility Toolkit
++ii freepats 20060219-1 Free patch set for MIDI audio synthesis
++ii ftnchek 3.3.1-1 A semantic checker for Fortran 77 programs
++ii ftp 0.17-16 The FTP client
++ii g++ 4.1.1-15 The GNU C++ compiler
++ii g++-3.3 3.3.6-15 The GNU C++ compiler
++ii g++-3.4 3.4.6-5 The GNU C++ compiler
++ii g++-4.1 4.1.1-21 The GNU C++ compiler
++ii g77 3.4.6-19 The GNU Fortran 77 compiler
++ii g77-2.95-doc 2.95.4-27 Documentation for the GNU Fortran compiler (g77)
++ii g77-3.4 3.4.6-5 The GNU Fortran 77 compiler
++ii gaim 2.0.0+beta5-10etch3 multi-protocol instant messaging client
++ii gaim-data 2.0.0+beta5-10etch3 multi-protocol instant messaging client - data files
++ii gaim-xmms-remote 1.9~b3-1 gaim-plugin that lets you control XMMS from gaim
++ii gajim 0.10.1-7 Jabber client written in PyGTK
++ii galternatives 0.13.4 graphical setup tool for the alternatives system
++ii gappletviewer-4.1 4.1.1-20 Standalone application to execute Java (tm) applets
++ii gawk 3.1.5.dfsg-4 GNU awk, a pattern scanning and processing language
++ii gcalctool 5.8.25-1 A GTK2 desktop calculator
++ii gcc 4.1.1-15 The GNU C compiler
++ii gcc-3.3 3.3.6-15 The GNU C compiler
++ii gcc-3.3-base 3.3.6-15 The GNU Compiler Collection (base package)
++ii gcc-3.4 3.4.6-5 The GNU C compiler
++ii gcc-3.4-base 3.4.6-5 The GNU Compiler Collection (base package)
++ii gcc-4.1 4.1.1-21 The GNU C compiler
++ii gcc-4.1-base 4.1.1-21 The GNU Compiler Collection (base package)
++ii gcc-4.1-doc 4.1.1.nf3-1 documentation for the GNU compilers (gcc, gobjc, g++)
++ii gcc-4.1-locales 4.1.1-21 The GNU C compiler (native language support files)
++ii gcc-doc 4.1.1.nf3 documentation for the GNU compilers (gcc, gobjc, g++)
++ii gcc-doc-base 4.1.1.nf3-1 several GNU manual pages
++ii gccxml 0.7.0+cvs20060311-2 XML output extension to GCC
++ii gcj 4.1.1-15 The GNU Java compiler
++ii gcj-4.1 4.1.1-20 The GNU compiler for Java(TM)
++ii gcj-4.1-base 4.1.1-20 The GNU Compiler Collection (gcj base package)
++ii gconf-editor 2.16.0-2 An editor for the GConf configuration system
++ii gconf2 2.16.1-1 GNOME configuration database system (support tools)
++ii gconf2-common 2.16.1-1 GNOME configuration database system (common files)
++ii gcvs 1.0final-12 Graphical frontend for CVS
++ii gda2-postgres 1.2.3-5 PostgreSQL backend plugin for GNOME Data Access library for GNOME2
++ii gdancer 0.4.6-2 visualization plug-in for xmms
++ii gdb 6.4.90.dfsg-1 The GNU Debugger
++ii gdb-doc 6.5-1 The GNU Debugger Documentation
++ii gdebi 0.1.6 Simple tool to install deb files
++ii gdesklets 0.35.3-4+b1 Architecture for desktop applets
++ii gdesklets-data 0.35.6-1 Applets for gdesklets
++ii gdk-imlib11 1.9.14-31 imaging library for use with gtk
++ii gdm 2.16.4-1 GNOME Display Manager
++ii gdm-themes 0.5.1 Themes for the GNOME Display Manager
++ii geant321 3.21.14.dfsg-4 [Physics] Particle detector description and simulation tool
++ii geant321-data 3.21.14.dfsg-4 [Physics] Data for Geant 3.21 detector simulator
++ii geant321-doc 3.21.14.dfsg-4 [Physics] Documentation for Geant 3.21
++ii geda 20060123-1 GNU EDA -- Electronics design software
++ii geda-doc 20061020-1 Documentation for GNU EDA -- Electronics design software
++ii geda-examples 20061020-1 GNU EDA -- Electronics design software -- example designs
++ii geda-gattrib 20061020-2 GNU EDA -- Electronics design software -- attribute editor
++ii geda-gnetlist 20061020-2 GNU EDA -- Electronics design software -- netlister
++ii geda-gschem 20061020-2 GNU EDA -- Electronics design software -- schematic editor
++ii geda-gsymcheck 20061020-2 GNU EDA -- Electronics design software -- symbol checker
++ii geda-symbols 20061020-1 Symbols for GNU EDA -- Electronics design software
++ii geda-utils 20061020-2 GNU EDA -- Electronics design software -- utilities
++ii gedit 2.14.4-8 official text editor of the GNOME desktop environment
++ii gedit-common 2.14.4-8 official text editor of the GNOME desktop environment (support files)
++ii genisoimage 1.1.2-1 Creates ISO-9660 CD-ROM filesystem images
++ii geomview 1.8.1-14 interactive geometry viewing program
++ii gettext 0.16.1-1 GNU Internationalization utilities
++ii gettext-base 0.16.1-1 GNU Internationalization utilities for the base system
++ii gettext-el 0.16.1-1 Emacs po-mode for editing .po files
++ii gfortran 4.1.1-15 The GNU Fortran 95 compiler
++ii gfortran-4.1 4.1.1-21 The GNU Fortran 95 compiler
++ii gfortran-4.1-doc 4.1.1.nf3-1 documentation for the GNU Fortran Compiler (gfortran)
++ii gfortran-doc 4.1.1.nf3 documentation for the GNU Fortran Compiler (gfortran)
++ii gftp 2.0.18-16 X/GTK+ FTP client
++ii gftp-common 2.0.18-16 shared files for other gFTP packages
++ii gftp-gtk 2.0.18-16 X/GTK+ FTP client
++ii gftp-text 2.0.18-16 colored FTP client using GLib
++ii ggobi 2.1.4-1 Data visualization system for high-dimensional data
++ii gij 4.1.1-15 The GNU Java bytecode interpreter
++ii gij-4.1 4.1.1-20 The GNU Java bytecode interpreter
++ii gimp 2.2.13-1etch4 The GNU Image Manipulation Program
++ii gimp-data 2.2.13-1etch4 Data files for The GIMP
++ii gimp-help-common 2+0.10-2 Data files for the GIMP documentation
++ii gimp-help-fr 2+0.10-2 Documentation for the GIMP (French)
++ii gimp-print 5.0.0-3 print plugin for the GIMP
++ii gimp-python 2.2.13-1etch4 Python support and plugins for The GIMP
++ii gimp-svg 2.2.13-1etch4 SVG (Scalable Vector Graphics) plugin for The GIMP
++ii git 4.3.20-11+c5 GNU Interactive Tools, a file browser/viewer and process viewer/killer
++ii git-core 1.5.6.5-3+lenny2~bpo40+2+c5 fast, scalable, distributed revision control system
++ii gitk 1.5.6.5-3+lenny2~bpo40+2+c5 fast, scalable, distributed revision control system (revision tree vis
++ii gjay 0.2.8.3-5 An automatic and learning DJ for xmms
++ii gjdoc 0.7.7-7 documentation generation framework for java source files
++ii gkrellm 2.2.9-1 The GNU Krell Monitors
++ii gksu 2.0.0-1 graphical frontend to su
++ii glabels 2.1.3-1 label, business card and media cover creation program for GNOME
++ii glabels-data 2.1.3-1 data files for gLabels
++ii glade-common 2.12.1-7 Common files for GTK+ 2 User Interface Builder
++ii glade-gnome 2.12.1-7 GTK+ 2 User Interface Builder (with GNOME 2 support)
++ii glcpu 1.0.1-6.2+b3 3D-plotter for system activity
++ii glpk 4.11-1 linear programming kit with integer (MIP) support
++ii gmanedit 0.3.3-12.1 GTK+/GNOME Man pages editor
++ii gmessage 2.6.0-2 an xmessage clone based on GTK+
++ii gmsh 1.65.0-2 three-dimensional finite element mesh generator
++ii gmt 4.1.2-1.1 Generic Mapping Tools
++ii gmt-coast-low 20020411-1.1 Low resolution coastlines for the Generic Mapping Tools
++ii gmt-doc 4.1.2-1.1 HTML documentation for GMT, the Generic Mapping Tools
++ii gmt-tutorial-pdf 4.1.2-1.1 Tutorial for GMT, the Generic Mapping Tools (PDF)
++ii gnat 4.1.1-15 The GNU Ada compiler
++ii gnat-4.1 4.1.1-22 The GNU Ada compiler
++ii gnat-4.1-base 4.1.1-22 The GNU Compiler Collection (gnat base package)
++ii gnome-about 2.14.3-2 The GNOME about box
++ii gnome-applets 2.14.3-4 Various applets for GNOME 2 panel - binary files
++ii gnome-applets-data 2.14.3-4 Various applets for GNOME 2 panel - data files
++ii gnome-audio 2.0.0-2 Audio files for Gnome
++ii gnome-backgrounds 2.16.2-1 a set of backgrounds packaged with the GNOME desktop
++ii gnome-bin 1.4.2-34 Miscellaneous binaries used by GNOME
++ii gnome-btdownload 0.0.25-1 Gnome interface for 'executing' BitTorrent files
++ii gnome-common 2.12.0-2 common scripts and macros to develop with GNOME or GNOME 2.0
++ii gnome-control-center 2.14.2-7 utilities to configure the GNOME desktop
++ii gnome-core 2.14.3.6 The GNOME Desktop Environment -- essential components
++ii gnome-cups-manager 0.31-3 CUPS printer admin tool for GNOME
++ii gnome-desktop-data 2.14.3-2 Common files for GNOME 2 desktop apps
++ii gnome-doc-utils 0.6.1-3 a collection of documentation utilities for the Gnome project
++ii gnome-icon-theme 2.14.2-2 GNOME Desktop icon theme
++ii gnome-keyring 0.6.0-3 GNOME keyring services (daemon and tools)
++ii gnome-keyring-manager 2.16.0-2 keyring management program for the GNOME desktop
++ii gnome-libs-data 1.4.2-34 Data for GNOME libraries
++ii gnome-media 2.14.2-4 GNOME media utilities
++ii gnome-media-common 2.14.2-4 GNOME media utilities - common files
++ii gnome-menus 2.16.1-3 an implementation of the freedesktop menu specification for GNOME
++ii gnome-mime-data 2.4.3-1 base MIME and Application database for GNOME.
++ii gnome-netstatus-applet 2.12.0-5+b2 Network status applet for GNOME 2
++ii gnome-nettool 2.14.2-1 network information tool for GNOME
++ii gnome-panel 2.14.3-6 launcher and docking facility for GNOME 2
++ii gnome-panel-data 2.14.3-6 common files for GNOME 2 panel
++ii gnome-pilot 2.0.15-2 A GNOME applet for management of your Palm PDA
++ii gnome-pilot-conduits 2.0.15-0.1 conduits for gnome-pilot
++ii gnome-randr-applet 0.2-2 Simple gnome-panel front end to the xrandr extension
++ii gnome-screensaver 2.14.3-3 GNOME screen saver and locker
++ii gnome-session 2.14.3-5 The GNOME 2 Session Manager
++ii gnome-system-monitor 2.14.5-1 Process viewer and system resource monitor for GNOME 2
++ii gnome-system-tools 2.14.0-3 Cross-platform configuration utilities for GNOME
++ii gnome-terminal 2.14.2-1 The GNOME 2 terminal emulator application
++ii gnome-terminal-data 2.14.2-1 Data files for the GNOME terminal emulator
++ii gnome-themes 2.14.3-1 official themes for the GNOME 2 desktop
++ii gnome-themes-extras 0.9.0-5 various themes for the GNOME 2 desktop
++ii gnome-user-guide 2.14.2-2 GNOME user's guide
++ii gnome-utils 2.14.0.dfsg-5 GNOME desktop utilities
++ii gnome-volume-manager 1.5.15-1+b1 GNOME daemon to auto-mount and manage media devices
++ii gnomebaker 0.6.0-7 application for CD/DVD creation in the GNOME desktop
++ii gnotepad+ 1.3.3-8 Graphical text and HTML editor
++ii gnotepad+-help 1.2.0-4 gnotepad+ User's Manual
++ii gnucap 0.35-1 GNU Circuit Analysis package
++ii gnuhtml2latex 0.3-2 A Perl script that converts html files to latex
++ii gnumeric 1.6.3-5.1+etch2 GNOME spreadsheet application
++ii gnumeric-common 1.6.3-5.1+etch2 common files for Gnumeric, the GNOME spreadsheet application
++ii gnumeric-doc 1.6.3-5.1+etch2 documentation for Gnumeric, the GNOME spreadsheet application
++ii gnumeric-plugins-extra 1.6.3-5.1+etch2 additional plugins for the GNOME spreadsheet
++ii gnupg 1.4.6-2 GNU privacy guard - a free PGP replacement
++ii gnupg-agent 2.0.0-5.2 GNU privacy guard - password agent
++ii gnupg2 2.0.0-5.2 GNU privacy guard - a free PGP replacement
++ii gnuplot 4.0.0-5 A command-line driven interactive plotting program
++ii gnuplot-doc 4.0.0-5 Documentation for gnuplot
++ii gnuplot-mode 0.6.0-2.1 Yet another Gnuplot mode for Emacs
++ii gnuplot-nox 4.0.0-5 A command-line driven interactive plotting program
++ii gnuplot-x11 4.0.0-5 X11-terminal driver for gnuplot
++ii gnustep-back-common 0.11.0-3 The GNUstep GUI Backend - common files
++ii gnustep-back0.11 0.11.0-3 The GNUstep GUI Backend
++ii gnustep-base-common 1.13.0-7 GNUstep Base library - common files
++ii gnustep-base-runtime 1.13.0-7 GNUstep Base library
++ii gnustep-common 1.13.0-1 Common files for the core GNUstep environment
++ii gnustep-gpbs 0.11.0-3 The GNUstep PasteBoard Server
++ii gnustep-gui-common 0.11.0-2 GNUstep GUI Library - common files
++ii gnustep-gui-runtime 0.11.0-2 GNUstep GUI Library - runtime files
++ii gnustep-ppd 1.0.0-6 GNUstep Postscript Printer Description
++ii gocr 0.41-1 A command line OCR
++ii gocr-doc 0.41-1 gocr documentation
++ii gparted 0.2.5-2 GNOME partition editor
++ii gperf 3.0.2-1 Perfect hash function generator
++ii gperf-ace 5.4.7-12 ACE perfect hash function generator
++ii gpgsm 2.0.0-5.2 GNU privacy guard - S/MIME version
++ii gpgv 1.4.6-2 GNU privacy guard - signature verification tool
++ii gputils 0.13.4-1 GNU PIC utilities
++ii gqview 2.0.1-1 A simple image viewer using GTK+
++ii grace 5.1.20-5 An XY plotting tool
++ii grace6 5.99.1+dev4-3 An XY plotting tool
++ii graphicsmagick-libmagick-de 1.1.7-13+etch1 image processing libraries providing ImageMagick interface
++ii graphviz 2.8-3+etch1 rich set of graph drawing tools
++ii graphviz-dev 2.8-3+etch1 graphviz Libs and Headers aginst which to build applications
++ii graphviz-doc 2.8-3+etch1 additional documentation for graphviz
++ii grdesktop 0.23-3 GNOME frontend for the rdesktop client
++ii grep 2.5.1.ds2-6 GNU grep, egrep and fgrep
++ii groff 1.18.1.1-12 GNU troff text-formatting system
++ii groff-base 1.18.1.1-12 GNU troff text-formatting system (base system components)
++ii grub 0.97-27etch1 GRand Unified Bootloader
++ii gs 8.54.dfsg.1-5etch2 Transitional package
++ii gs-common 0.3.11 Common files for different Ghostscript releases
++ii gs-esp 8.15.3.dfsg.1-1etch1 The Ghostscript PostScript interpreter - ESP version
++ii gs-gpl 8.54.dfsg.1-5etch2 The GPL Ghostscript PostScript interpreter
++ii gsfonts 8.11+urwcyr1.0.7~pre41-1 Fonts for the Ghostscript interpreter(s)
++ii gsfonts-x11 0.20 Make Ghostscript fonts available to X11
++ii gsl-bin 1.8-2 GNU Scientific Library (GSL) -- binary package
++ii gsl-doc-pdf 1.8-2 GNU Scientific Library (GSL) Reference Manual in pdf
++ii gsoap 2.7.6d-1 SOAP stub and skeleton compiler for C and C++
++ii gstreamer0.10-alsa 0.10.10-4 GStreamer plugin for ALSA
++ii gstreamer0.10-esd 0.10.4-4+etch1 GStreamer plugin for ESD
++ii gstreamer0.10-ffmpeg 0.10.1-7 FFmpeg plugin for GStreamer
++ii gstreamer0.10-fluendo-mp3 0.10.2.debian-1 Fluendo mp3 decoder GStreamer plugin
++ii gstreamer0.10-gnomevfs 0.10.10-4 GStreamer plugin for GnomeVFS
++ii gstreamer0.10-gnonlin 0.10.6-2 non-linear editing module for GStreamer
++ii gstreamer0.10-plugins-bad 0.10.3-3.1+etch3 various GStreamer plugins
++ii gstreamer0.10-plugins-base 0.10.10-4 GStreamer plugins from the "base" set
++ii gstreamer0.10-plugins-base- 0.10.10-4 GStreamer helper programs from the "base" set
++ii gstreamer0.10-plugins-farsi 0.10.2-1 Gstreamer plugins for audio/video conferencing
++ii gstreamer0.10-plugins-good 0.10.4-4+etch1 GStreamer plugins from the "good" set
++ii gstreamer0.10-plugins-ugly 0.10.4-5 GStreamer plugins from the "ugly" set
++ii gstreamer0.10-tools 0.10.10-3 Tools for use with GStreamer
++ii gstreamer0.10-x 0.10.10-4 GStreamer plugins for X11 and Pango
++ii gthumb 2.8.0-1 an image viewer and browser
++ii gtk-doc-tools 1.7-3 the GTK+ documentation tools
++ii gtk-qt-engine 0.7-4 theme engine using Qt for GTK+ 2.x
++ii gtk2-engines 2.8.2-1 theme engines for GTK+ 2.x
++ii gtk2-engines-pixbuf 2.8.20-7 Pixbuf-based theme for GTK+ 2.x
++ii gtk2-engines-spherecrystal 0.7-14 A blue vector theme for GTK+ 2.x
++ii gtkglarea5 1.2.3-2.2 Gimp Toolkit OpenGL area widget shared library
++ii gtkhtml3.8 3.12.1-2 HTML rendering/editing library - bonobo component binary
++ii gtoaster 0.2002083100+1.0Beta6-2.3 Gnome Toaster, a GUI for creating CDs
++ii gtranslator 1.1.7-2 PO-file editor for the GNOME Desktop
++ii gucharmap 1.6.0-1 Unicode character picker and font browser
++ii guile-1.6 1.6.8-6 The GNU extension language and Scheme interpreter
++ii guile-1.6-dev 1.6.8-6 Development files for Guile 1.6
++ii guile-1.6-libs 1.6.8-6 Main Guile libraries
++ii gutenprint-locales 5.0.0-3 locale data files for Gutenprint
++ii gv 3.6.2-3 PostScript and PDF viewer for X
++ii gwenview 1.4.1-1 image viewer for KDE
++ii gwenview-i18n 1.4.1-1 Internationalization (i18n) for Gwenview, an image viewer for KDE
++ii gzip 1.3.5-15+etch1 The GNU compression utility
++ii h5utils 1.10-5 HDF5 files visualization tools
++ii hal 0.5.8.1-9etch1 Hardware Abstraction Layer
++ii hddtemp 0.3-beta15-34 Utility to monitor the temperature of your hard drive
++ii hdf5-tools 1.6.5-3 Hierarchical Data Format 5 (HDF5) - Runtime tools
++ii hdparm 6.9-2 tune hard disk parameters for high performance
++ii hibernate 1.94-2 smartly puts your computer to sleep (suspend to RAM or disk)
++ii hicolor-icon-theme 0.8-4 default fallback theme for FreeDesktop.org icon themes
++ii highlight 2.4.5-1.1 An universal source code to formatted text converter
++ii hostname 2.93 utility to set/show the host name or domain name
++ii hotkey-setup 0.1-17 auto-configures laptop hotkeys
++ii hpijs 2.6.10+1.6.10-3etch1 HP Linux Printing and Imaging - gs IJS driver (hpijs)
++ii hpijs-ppds 2.6.10+1.6.10-3etch1 HP Linux Printing and Imaging - HPIJS PPD files
++ii hspell 1.0-2 Hebrew spell checker and morphological analyzer
++ii html2text 1.3.2a-3 An advanced HTML to text converter
++ii hyperlatex 2.8b-3 Creating HTML using LaTeX documents
++ii ia32-libs 1.19 ia32 shared libraries for use on amd64 and ia64 systems
++ii ia32-libs-gtk 1.1 gtk+ ia32 shared libraries
++ii iamerican 3.1.20.0-4.3 An American English dictionary for ispell
++ii ibritish 3.1.20.0-4.3 A British English dictionary for ispell
++ii ice-slice 3.1.1-2 Slice definitions for Ice services
++ii icecc 0.7.14-4 distributed compiler (client and server)
++ii icecc-monitor 1.1-1 icecc monitor for KDE
++ii icecpp 3.1.1-2 Slice preprocessor
++ii icedax 1.1.2-1 Creates WAV files from audio CDs
++ii icedove 1.5.0.13+1.5.0.15b.dfsg1+pr free/unbranded thunderbird mail client
++ii icedove-gnome-support 1.5.0.13+1.5.0.15b.dfsg1+pr GNOME support package for icedove/thunderbird
++ii icedove-locale-fr 1.5.0.7-1 French language package for IceDove
++ii iceweasel 2.0.0.19-0etch1 lightweight web browser based on Mozilla
++ii iceweasel-gnome-support 2.0.0.19-0etch1 Support for Gnome in Iceweasel
++ii iceweasel-l10n-fr 2.0.0.3+debian-1etch1 French language package for Iceweasel
++ii icmake 6.30-3 Intelligent C-like MAKEr, or the ICce MAKE utility
++ii id3v2 0.1.11-3 A command line id3v2 tag editor
++ii idle 2.4.4-2 An IDE for Python using Tkinter (default version)
++ii idle-python2.4 2.4.4-3+etch3 An IDE for Python (v2.4) using Tkinter
++ii idle-python2.5 2.5-5+etch2 An IDE for Python (v2.5) using Tkinter
++ii ifrench-gut 1.0-18 The French dictionary for ispell (GUTenberg version)
++ii ifupdown 0.6.8 high level tools to configure network interfaces
++ii ijsgutenprint 5.0.0-3 inkjet server - Ghostscript driver for Gutenprint
++ii imagemagick 6.2.4.5.dfsg1-0.15+etch1 Image manipulation programs
++ii imlib-base 1.9.14-31 Common files needed by the Imlib/Gdk-Imlib packages
++ii imlib11 1.9.14-31 Imlib is an imaging library for X and X11
++ii indent 2.2.9-7 C language source code formatting program
++ii indi 3.5.5-1 Instrument Neutral Distributed Interface for astronomical devices
++ii industrial-cursor-theme 0.6.1.3 flat-looking cursor theme for X
++ii info 4.8.dfsg.1-4 Standalone GNU Info documentation browser
++ii initramfs-tools 0.85i tools for generating an initramfs
++ii initscripts 2.86.ds1-38+etchnhalf.1 Scripts for initializing and shutting down the system
++ii inkscape 0.44.1-1 vector-based drawing program
++ii installation-report 2.29 system installation report
++ii intel-icce100026 10.0.026-1 Intel(R) C++ Compiler for applications running on Intel(R) 64, Version
++ii intel-iforte100026 10.0.026-1 Intel(R) Fortran Compiler for applications running on Intel(R) 64, Ver
++ii intltool 0.35.0-3 Utility scripts for internationalizing XML
++ii intltool-debian 0.35.0+20060710.1 Help i18n of RFC822 compliant config files
++ii iproute 20061002-3 Professional tools to control the networking in Linux kernels
++ii iproute-doc 20061002-3 Professional tools to control the networking in Linux kernels
++ii iptables 1.3.6.0debian1-5 administration tools for packet filtering and NAT
++ii iputils-arping 20020927-6 Tool to send ICMP echo requests to an ARP address
++ii iputils-ping 20020927-6 Tools to test the reachability of network hosts
++ii ipython 0.7.2-5 enhanced interactive Python shell
++ii irb 1.8.2-1 Interactive Ruby (irb)
++ii irb1.8 1.8.5-4etch5 Interactive Ruby (for Ruby 1.8)
++ii iso-codes 1.0a-1 ISO language, territory, currency codes and their translations
++ii ispell 3.1.20.0-4.3 International Ispell (an interactive spelling corrector)
++ii istanbul 0.2.1-3 Desktop session recorder producing Ogg Theora video
++ii jade 1.2.1-47 James Clark's DSSSL Engine
++ii java-common 0.25 Base of all Java packages
++ii java-gcj-compat 1.0.65-10 Java runtime environment using GIJ
++ii java-gcj-compat-dev 1.0.65-10 Java runtime environment with GCJ
++ii jikes 1.22-6 Fast Java compiler adhering to language and VM specifications
++ii jikes-gij 1.22-6 Wrapper for jikes using GNU GIJ classes
++ii joe 3.5-1.1 user friendly full screen text editor
++ii jove 4.16.0.70-3 Jonathan's Own Version of Emacs - a compact, powerful editor
++ii jpilot 0.99.9.2-1 graphical app. to modify the contents of your Palm Pilot's DBs
++ii jpilot-plugins 0.99.9.2-1 plugins for jpilot (Palm Pilot desktop)
++ii juk 3.5.5-2 music organizer and player for KDE
++ii junit 3.8.1.1-7 Automated testing framework for Java
++ii k3b 0.12.17-8 A sophisticated KDE CD burning application
++ii k3b-i18n 0.12.17-1 Internationalized (i18n) files for k3b
++ii kaboodle 3.5.5-2 light, embedded media player for KDE
++ii kaddressbook 3.5.5.dfsg.1-6 KDE NG addressbook application
++ii kaddressbook-plugins 3.5.5-1 plugins for KAddressBook, the KDE address book
++ii kaffeine 0.8.3-1 versatile media player for KDE
++ii kalarm 3.5.5.dfsg.1-6 KDE alarm message, command and email scheduler
++ii kalzium 3.5.5-1 chemistry teaching tool for KDE
++ii kalzium-data 3.5.5-1 data files for Kalzium
++ii kamera 3.5.5-3etch4 digital camera io_slave for Konqueror
++ii kanagram 3.5.5-1 letter order game for KDE
++ii kandy 3.5.5.dfsg.1-6 KDE mobile phone utility
++ii kanjidic 2006.10.09-0.1 A Kanji Dictionary
++ii kappfinder 3.5.5a.dfsg.1-6etch2 non-KDE application finder for KDE
++ii kapptemplate 3.5.5-3 creates a framework to develop a KDE application
++ii karbon 1.6.1-2etch2 a vector graphics application for the KDE Office Suite
++ii karm 3.5.5.dfsg.1-6 KDE time tracker tool
++ii kasablanca 0.4.0.2-2 fast and free ftp client for KDE
++ii kasteroids 3.5.5-1 Asteroids for KDE
++ii katapult 0.3.1-1 item launcher for KDE
++ii kate 3.5.5a.dfsg.1-6etch2 advanced text editor for KDE
++ii kate-plugins 3.5.5-1 plugins for Kate, the KDE Advanced Text Editor
++ii katomic 3.5.5-1 Atomic Entertainment game for KDE
++ii kaudiocreator 3.5.5-2 CD ripper and audio encoder frontend for KDE
++ii kbabel 3.5.5-3 PO-file editing suite for KDE
++ii kbackgammon 3.5.5-1 A Backgammon game for KDE
++ii kbattleship 3.5.5-1 Battleship game for KDE
++ii kbfx 0.4.9.2~rc4-1 an alternative to K-Menu for KDE
++ii kblackbox 3.5.5-1 A simple logical game for the KDE project
++ii kbounce 3.5.5-1 Jezzball clone for the K Desktop Environment
++ii kbruch 3.5.5-1 fraction calculation teaching tool for KDE
++ii kbstate 3.5.5-2 a keyboard status applet for KDE
++ii kbugbuster 3.5.5-3 a front end for the KDE bug tracking system
++ii kcachegrind 3.5.5-3 visualisation tool for valgrind profiling output
++ii kcachegrind-converters 3.5.5-3 format converters for KCachegrind profiling visualisation tool
++ii kcalc 3.5.5-3etch1 calculator for KDE
++ii kcharselect 3.5.5-3etch1 character selector for KDE
++ii kchart 1.6.1-2etch2 a chart drawing program for the KDE Office Suite
++ii kcoloredit 3.5.5-3etch4 a color palette editor and color picker for KDE
++ii kcontrol 3.5.5a.dfsg.1-6etch2 control center for KDE
++ii kcpuload 1.99-13 a CPU meter for Kicker
++ii kcron 3.5.5-4 the KDE crontab editor
++ii kdat 3.5.5-4 a KDE tape backup tool
++ii kdbg 2.0.4-3 graphical debugger interface
++ii kde 47 the K Desktop Environment official modules
++ii kde-amusements 47 the K Desktop Environment games and toys modules
++ii kde-core 47 the K Desktop Environment core modules
++ii kde-devel 47 the K Desktop Environment development files and modules
++ii kde-devel-extras 52 extra development applications for use with KDE
++ii kde-i18n-fr 3.5.5-1 French (fr) internationalized (i18n) files for KDE
++ii kde-icons-crystal 3.7-2 Crystal icon theme for KDE
++ii kde-icons-crystalclear 0.0.20050623.dfsg.1-2 Everaldo's "Crystal Clear" icon theme for KDE
++ii kde-icons-gorilla 1.3.5-1 Yellowish gorilla icons for kde
++ii kde-icons-korilla 1.3.5-1 Blue version of the gorilla icons for kde
++ii kde-icons-noia 1.0-2 Noia icon theme for KDE 3
++ii kde-icons-nuovext 1.6.dfsg.1-2 nuoveXT icon theme for KDE
++ii kde-icons-nuvola 1.0.0-2 Nuvola icon theme for KDE3
++ii kde-kdm-themes 3.4-2 Themes for the K Display Manager
++ii kde-style-comix 1.3.8-1 Comix flat style for KDE
++ii kde-style-klearlook 0.9.9.2-2 Clone of GNOME's Clearlooks theme for KDE
++ii kde-style-lipstik 2.2.1-2 Lipstik style for KDE3
++ii kde-style-polyester 1.0~beta1-1 Polyester widget style and kwin decoration for KDE3
++ii kde-style-serenity 1.4-1 serenity widget style for KDE
++ii kde-wallpapers-lineartrewor 0.0.20050405-2 Some reworks of the lineart background that comes with KDE 3.4
++ii kdeaccessibility 3.5.5-2 accessibility packages from the official KDE release
++ii kdeaddons 3.5.5-1 add-on plugins and applets provided with KDE
++ii kdeaddons-doc-html 3.5.5-1 KDE add-ons documentation in HTML format
++ii kdeaddons-kfile-plugins 3.5.5-1 KDE file dialog plugins for text files and folders
++ii kdeadmin 3.5.5-4 system administration tools from the official KDE release
++ii kdeadmin-doc-html 3.5.5-4 KDE administration documentation in HTML format
++ii kdeadmin-kfile-plugins 3.5.5-4 KDE file metainfo plugins for deb and rpm files
++ii kdeartwork 3.5.5-1 themes, styles and more from the official KDE release
++ii kdeartwork-emoticons 3.5.5-1 emoticon collections for KDE chat clients
++ii kdeartwork-misc 3.5.5-1 various multimedia goodies released with KDE
++ii kdeartwork-style 3.5.5-1 widget styles released with KDE
++ii kdeartwork-theme-icon 3.5.5-1 icon themes released with KDE
++ii kdeartwork-theme-window 3.5.5-1 window decoration themes released with KDE
++ii kdebase 3.5.5a.dfsg.1-6etch2 base components from the official KDE release
++ii kdebase-bin 3.5.5a.dfsg.1-6etch2 core binaries for the KDE base module
++ii kdebase-data 3.5.5a.dfsg.1-6etch2 shared data files for the KDE base module
++ii kdebase-dev 3.5.5a.dfsg.1-6etch2 development files for the KDE base module
++ii kdebase-doc-html 3.5.5a.dfsg.1-6etch2 KDE base documentation in HTML format
++ii kdebase-kio-plugins 3.5.5a.dfsg.1-6etch2 core I/O slaves for KDE
++ii kdeedu 3.5.5-1 educational apps from the official KDE release
++ii kdeedu-data 3.5.5-1 shared data for KDE educational applications
++ii kdegames 3.5.5-1 games from the official KDE release
++ii kdegames-card-data 3.5.5-1 Card decks for KDE games
++ii kdegraphics 3.5.5-3etch4 graphics apps from the official KDE release
++ii kdegraphics-doc-html 3.5.5-3etch4 KDE graphics documentation in HTML format
++ii kdegraphics-kfile-plugins 3.5.5-3etch4 KDE metainfo plugins for graphic files
++ii kdelibs 3.5.5a.dfsg.1-8etch3 core libraries from the official KDE release
++ii kdelibs-data 3.5.5a.dfsg.1-8etch3 core shared data for all KDE applications
++ii kdelibs4-dev 3.5.5a.dfsg.1-8etch3 development files for the KDE core libraries
++ii kdelibs4-doc 3.5.5a.dfsg.1-8etch3 developer documentation for the KDE core libraries
++ii kdelibs4c2a 3.5.5a.dfsg.1-8etch3 core libraries and binaries for all KDE applications
++ii kdelirc 3.5.5-3etch1 infrared control for KDE
++ii kdemultimedia 3.5.5-2 multimedia apps from the official KDE release
++ii kdemultimedia-doc-html 3.5.5-2 KDE multimedia documentation in HTML format
++ii kdemultimedia-kappfinder-da 3.5.5-2 multimedia data for kappfinder
++ii kdemultimedia-kfile-plugins 3.5.5-2 au/avi/m3u/mp3/ogg/wav plugins for kfile
++ii kdemultimedia-kio-plugins 3.5.5-2 enables the browsing of audio CDs under Konqueror
++ii kdenetwork 3.5.5-5 network-related apps from the official KDE release
++ii kdenetwork-doc-html 3.5.5-5 KDE network documentation in HTML format
++ii kdenetwork-filesharing 3.5.5-5 network filesharing configuration module for KDE
++ii kdenetwork-kfile-plugins 3.5.5-5 torrent metainfo plugin for KDE
++ii kdepasswd 3.5.5a.dfsg.1-6etch2 password changer for KDE
++ii kdepim 3.5.5.dfsg.1-6 Personal Information Management apps from the official KDE release
++ii kdepim-doc-html 3.5.5.dfsg.1-6 KDE PIM documentation in HTML format
++ii kdepim-kfile-plugins 3.5.5.dfsg.1-6 KDE File dialog plugins for palm and vcf files
++ii kdepim-kio-plugins 3.5.5.dfsg.1-6 KDE pim I/O Slaves
++ii kdepim-kresources 3.5.5.dfsg.1-6 KDE pim resource plugins
++ii kdepim-wizards 3.5.5.dfsg.1-6 KDE server configuration wizards
++ii kdeprint 3.5.5a.dfsg.1-6etch2 print system for KDE
++ii kdesdk 3.5.5-3 software development kit from the official KDE release
++ii kdesdk-doc-html 3.5.5-3 KDE Software Development Kit documentation in HTML format
++ii kdesdk-kfile-plugins 3.5.5-3 KDE file dialog plugins for software development files
++ii kdesdk-misc 3.5.5-3 various goodies from the KDE Software Development Kit
++ii kdesdk-scripts 3.5.5-3 a set of useful development scripts for KDE
++ii kdesktop 3.5.5a.dfsg.1-6etch2 miscellaneous binaries and files for the KDE desktop
++ii kdessh 3.5.5-3etch1 ssh frontend for KDE
++ii kdesvn 0.11.0-1 subversion client with tight KDE integration
++ii kdesvn-kio-plugins 0.11.0-1 subversion I/O slaves for KDE
++ii kdetoys 3.5.5-3 toys from the official KDE release
++ii kdeutils 3.5.5-3etch1 general purpose utilities from the official KDE release
++ii kdeutils-dev 3.5.5-3etch1 development files for the KDE utilities module
++ii kdeutils-doc 3.5.5-3etch1 developer documentation for the KDE utilities module
++ii kdeutils-doc-html 3.5.5-3etch1 KDE utilities documentation in HTML format
++ii kdevelop 3.3.5-1 An IDE for Unix/X11
++ii kdevelop-data 3.3.5-1 An IDE for Unix/X11 - data
++ii kdevelop-dev 3.3.5-1 An IDE for Unix/X11 - development files
++ii kdevelop-doc 3.3.5-1 An IDE for Unix/X11 - documentation
++ii kdewallpapers 3.5.5-1 wallpapers released with KDE
++ii kdewebdev 3.5.5-1 web development apps from the official KDE release
++ii kdewebdev-doc-html 3.5.5-1 KDE web development documentation in HTML format
++ii kdf 3.5.5-3etch1 disk space utility for KDE
++ii kdict 3.5.5-5 dictionary client for KDE
++ii kdiff3 0.9.90-4 compares and merges 2 or 3 files or directories
++ii kdirstat 2.4.4-3 graphical disk usage display with cleanup facilities
++ii kdm 3.5.5a.dfsg.1-6etch2 X display manager for KDE
++ii kdnssd 3.5.5-5 Zeroconf support for KDE
++ii kdvi 3.5.5-3etch4 dvi viewer for KDE
++ii kedit 3.5.5-3etch1 basic text editor for KDE
++ii keduca 3.5.5-1 interactive form-based tests for KDE
++ii keep 0.4.0-1 backup system for KDE
++ii kenolaba 3.5.5-1 Enolaba board game for KDE
++ii kernel-package 10.067 A utility for building Linux kernel related Debian packages.
++ii kexi 1.6.1-2etch2 integrated database environment for the KDE Office Suite
++ii keybled 0.65-7 KDE keyboard LED applet
++ii kfax 3.5.5-3etch4 G3/G4 fax viewer for KDE
++ii kfaxview 3.5.5-3etch4 G3/G4 fax viewer for KDE using kviewshell
++ii kfilereplace 3.5.5-1 batch search-and-replace component for KDE
++ii kfind 3.5.5a.dfsg.1-6etch2 file-find utility for KDE
++ii kfloppy 3.5.5-3etch1 floppy formatter for KDE
++ii kfocus 1.0.2-14 Lightweight project management program for KDE
++ii kformula 1.6.1-2etch2 a formula editor for the KDE Office Suite
++ii kfouleggs 3.5.5-1 A KDE clone of the Japanese PuyoPuyo game
++ii kftpgrabber 0.8.0~beta2-1 ftp client for KDE
++ii kgamma 3.5.5-3etch4 gamma correction module for the KDE Control Center
++ii kget 3.5.5-5 download manager for KDE
++ii kghostview 3.5.5-3etch4 PostScript viewer for KDE
++ii kgoldrunner 3.5.5-1 A KDE clone of the Loderunner arcade game
++ii kgpg 3.5.5-3etch1 GnuPG frontend for KDE
++ii khangman 3.5.5-1 the classical hangman game for KDE
++ii khelpcenter 3.5.5a.dfsg.1-6etch2 help center for KDE
++ii khexedit 3.5.5-3etch1 KDE hex editor
++ii kicad 0.0.20060829-2 Electronic schematic and PCB design software
++ii kicad-common 0.0.20060829-2 Common files used by kicad
++ii kicker 3.5.5a.dfsg.1-6etch2 desktop panel for KDE
++ii kicker-applets 3.5.5-1 applets for Kicker, the KDE panel
++ii kiconedit 3.5.5-3etch4 an icon editor for KDE
++ii kig 3.5.5-1 interactive geometry program for KDE
++ii kiki 0.5.6-3 tool for python regular expression testing
++ii kile 1.9.3-1 KDE Integrated LaTeX Environment
++ii kile-i18n 1.9.3-1 translations for Kile, the KDE Integrated LaTeX Environment
++ii kimagemapeditor 3.5.5-1 HTML image map editor for KDE
++ii kino 0.92-3 Non-linear editor for Digital Video data
++ii kinoplus 0.3.5-3 effect plug-ins for kino
++ii kio-apt 0.13.2-1 an apt-cache ioslave for KDE
++ii kipi-plugins 0.1.2-3 image manipulation/handling plugins for KIPI aware programs
++ii kitchensync 3.5.5.dfsg.1-6 Synchronization framework
++ii kiten 3.5.5-1 Japanese reference/study tool for KDE
++ii kivio 1.6.1-2etch2 a flowcharting program for the KDE Office Suite
++ii kivio-data 1.6.1-2etch2 data files for Kivio flowcharting program
++ii kjots 3.5.5-3etch1 note taking utility for KDE
++ii kjumpingcube 3.5.5-1 Tactical one or two player game
++ii klaptopdaemon 3.5.5-3etch1 battery monitoring and management for laptops using KDE
++ii klatin 3.5.5-1 application to help revise/teach Latin
++ii kleopatra 3.5.5.dfsg.1-6 KDE Certificate Manager
++ii klettres 3.5.5-1 foreign alphabet tutor for KDE
++ii klettres-data 3.5.5-1 data files for KLettres foreign alphabet tutor
++ii klibc-utils 1.4.34-2 small statically-linked utilities built with klibc
++ii klickety 3.5.5-1 A Clickomania-like game for KDE
++ii klines 3.5.5-1 Color lines for KDE
++ii klinkstatus 3.5.5-1 web link validity checker for KDE
++ii klipper 3.5.5a.dfsg.1-6etch2 clipboard utility for KDE
++ii klogd 1.4.1-18 Kernel Logging Daemon
++ii kmag 3.5.5-2 a screen magnifier for KDE
++ii kmahjongg 3.5.5-1 the classic mahjongg game for KDE project
++ii kmail 3.5.5.dfsg.1-6 KDE Email client
++ii kmailcvt 3.5.5.dfsg.1-6 KDE KMail mail folder converter
++ii kmenuedit 3.5.5a.dfsg.1-6etch2 menu editor for KDE
++ii kmid 3.5.5-2 MIDI/karaoke player for KDE
++ii kmilo 3.5.5-3etch1 laptop special keys support for KDE
++ii kmines 3.5.5-1 Minesweeper for KDE
++ii kmix 3.5.5-2 sound mixer applet for KDE
++ii kmoon 3.5.5-3 moon phase indicator for KDE
++ii kmousetool 3.5.5-2 KDE mouse manipulation tool for the disabled
++ii kmouth 3.5.5-2 a type-and-say KDE frontend for speech synthesizers
++ii kmplayer 0.9.3-2 media player for KDE
++ii kmplayer-common 0.9.3-2 common files for kmplayer
++ii kmplayer-plugin 0.9.3-2 kmplayer plugin for khtml/konqueror
++ii kmplot 3.5.5-1 mathematical function plotter for KDE
++ii kmrml 3.5.5-3etch4 a Konqueror plugin for searching pictures
++ii kmtrace 3.5.5-3 a KDE memory leak tracer
++ii knemo 0.4.6-2 network interfaces monitor for KDE's systray
++ii knetload 2.3-3 a network meter for Kicker
++ii knetwalk 3.5.5-1 A game for system administrators
++ii knetworkconf 3.5.5-4 KDE network configuration tool
++ii knewsticker 3.5.5-5 news ticker applet for KDE
++ii knewsticker-scripts 3.5.5-1 scripts for KNewsTicker, the KDE news ticker
++ii knmap 2.1-1 Kde interface to nmap, the Network Mapper
++ii knode 3.5.5.dfsg.1-6 KDE news reader
++ii knotes 3.5.5.dfsg.1-6 KDE sticky notes
++ii kodo 3.5.5-3 mouse odometer for KDE
++ii koffice-data 1.6.1-2etch2 common shared data for the KDE Office Suite
++ii koffice-doc-html 1.6.1-2etch2 KDE Office Suite documentation in HTML format
++ii koffice-i18n-fr 1.6.1-2 French (fr) translations for KOffice
++ii koffice-libs 1.6.1-2etch2 common libraries and binaries for the KDE Office Suite
++ii kolf 3.5.5-1 Minigolf game for KDE
++ii kolourpaint 3.5.5-3etch4 a simple paint program for KDE
++ii komba2 0.73.beta-4 KDE Samba browser
++ii kommander 3.5.5-1 visual dialog builder and executor tool
++ii komparator 0.5-1 directories comparator for KDE
++ii kompare 3.5.5-3 a KDE GUI for viewing differences between files
++ii kompose 0.5.4-1 full screen task manager for KDE
++ii konq-plugins 3.5.5-1 plugins for Konqueror, the KDE file/web/doc browser
++ii konqueror 3.5.5a.dfsg.1-6etch2 KDE's advanced file manager, web browser and document viewer
++ii konqueror-nsplugins 3.5.5a.dfsg.1-6etch2 Netscape plugin support for Konqueror
++ii konquest 3.5.5-1 KDE based GNU-Lactic Konquest game
++ii konserve 0.10.3-3 KDE system tray application that performs periodic backups
++ii konsole 3.5.5a.dfsg.1-6etch2 X terminal emulator for KDE
++ii konsolekalendar 3.5.5.dfsg.1-6 KDE konsole personal organizer
++ii kontact 3.5.5.dfsg.1-6 KDE pim application
++ii konversation 1.0.1-1 user friendly Internet Relay Chat (IRC) client for KDE
++ii kooka 3.5.5-3etch4 scanner program for KDE
++ii kopete 3.5.5-5 instant messenger for KDE
++ii korganizer 3.5.5.dfsg.1-6 KDE personal organizer
++ii korn 3.5.5.dfsg.1-6 KDE mail checker
++ii koshell 1.6.1-2etch2 the KDE Office Suite workspace
++ii kpackage 3.5.5-4 KDE package management tool
++ii kpager 3.5.5a.dfsg.1-6etch2 desktop pager for KDE
++ii kpat 3.5.5-1 KDE solitaire patience game
++ii kpdf 3.5.5-3etch4 PDF viewer for KDE
++ii kpercentage 3.5.5-1 percentage calculation teaching tool for KDE
++ii kpersonalizer 3.5.5a.dfsg.1-6etch2 installation personalizer for KDE
++ii kpf 3.5.5-5 public fileserver for KDE
++ii kpilot 3.5.5.dfsg.1-6 KDE Palm Pilot hot-sync tool
++ii kplato 1.6.1-2etch2 an integrated project management and planning tool
++ii kpoker 3.5.5-1 KDE based Poker clone
++ii kpovmodeler 3.5.5-3etch4 a graphical editor for povray scenes
++ii kppp 3.5.5-5 modem dialer and ppp frontend for KDE
++ii kpresenter 1.6.1-2etch2 a presentation program for the KDE Office Suite
++ii kpresenter-data 1.6.1-2etch2 data files for KPresenter presentation program
++ii kprof 1.4.3-7 a KDE3 visual tool to help analyze profiling results
++ii krdc 3.5.5-5 Remote Desktop Connection for KDE
++ii krec 3.5.5-2 sound recorder utility for KDE
++ii kregexpeditor 3.5.5-3etch1 graphical regular expression editor plugin for KDE
++ii kreversi 3.5.5-1 Reversi for KDE
++ii krfb 3.5.5-5 Desktop Sharing for KDE
++ii krita 1.6.1-2etch2 a pixel-based image manipulation program for the KDE Office Suite
++ii krita-data 1.6.1-2etch2 data files for Krita painting program
++ii kruler 3.5.5-3etch4 a screen ruler and color measurement tool for KDE
++ii krusader 1.70.1-1 twin-panel (commander-style) file manager for KDE (and other desktops)
++ii ksame 3.5.5-1 SameGame for KDE
++ii ksayit 3.5.5-2 a frontend for the KDE Text-to-Speech system
++ii kscd 3.5.5-2 audio CD player for KDE
++ii kscope 1.4.2-1 source editing environment for KDE
++ii kscreensaver 3.5.5-1 additional screen savers released with KDE
++ii kscreensaver-xsavers 3.5.5-1 KDE hooks for standard xscreensavers
++ii kseg 0.4.0.3-2 Sketchpad for planar Euclidean geometry
++ii ksh 93r-1 The real, AT&T version of the Korn shell
++ii kshisen 3.5.5-1 Shisen-Sho for KDE
++ii ksig 3.5.5-1 graphical tool for managing multiple email signatures
++ii ksim 3.5.5-3etch1 system information monitor for KDE
++ii ksirc 3.5.5-5 IRC client for KDE
++ii ksirtet 3.5.5-1 Tetris and Puyo-Puyo games for KDE
++ii ksmiletris 3.5.5-1 Tetris like game for KDE
++ii ksmserver 3.5.5a.dfsg.1-6etch2 session manager for KDE
++ii ksnake 3.5.5-1 Snake Race for KDE
++ii ksnapshot 3.5.5-3etch4 screenshot utility for KDE
++ii ksokoban 3.5.5-1 Sokoban game for KDE
++ii kspaceduel 3.5.5-1 Arcade two-player space game for KDE
++ii ksplash 3.5.5a.dfsg.1-6etch2 the KDE splash screen
++ii kspread 1.6.1-2etch2 a spreadsheet for the KDE Office Suite
++ii kspy 3.5.5-3 examines the internal state of a Qt/KDE app
++ii kstars 3.5.5-1 desktop planetarium for KDE
++ii kstars-data 3.5.5-1 data files for KStars desktop planetarium
++ii ksvg 3.5.5-3etch4 SVG viewer for KDE
++ii ksync 3.5.5.dfsg.1-6 KDE Sync
++ii ksysguard 3.5.5a.dfsg.1-6etch2 system guard for KDE
++ii ksysguardd 3.5.5a.dfsg.1-6etch2 system guard daemon for KDE
++ii ksystemlog 0.3.2-1 system log viewer tool for KDE
++ii ksysv 3.5.5-4 KDE SysV-style init configuration editor
++ii ktalkd 3.5.5-5 talk daemon for KDE
++ii kteatime 3.5.5-3 KDE utility for making a fine cup of tea
++ii kthesaurus 1.6.1-2etch2 thesaurus for the KDE Office Suite
++ii ktimer 3.5.5-3etch1 timer utility for KDE
++ii ktip 3.5.5a.dfsg.1-6etch2 useful tips for KDE
++ii ktnef 3.5.5.dfsg.1-6 KDE TNEF viewer
++ii ktorrent 2.0.3+dfsg1-2.2etch1 BitTorrent client for KDE
++ii ktouch 3.5.5-1 touch typing tutor for KDE
++ii ktron 3.5.5-1 Tron clone for the K Desktop Environment
++ii kttsd 3.5.5-2 a Text-to-Speech system for KDE
++ii ktuberling 3.5.5-1 Potato Guy for KDE
++ii kturtle 3.5.5-1 educational Logo programming environment
++ii ktux 3.5.5-3 Tux screensaver for KDE
++ii kugar 1.6.1-2etch2 a business report maker for the KDE Office Suite
++ii kuickshow 3.5.5-3etch4 KDE image/slideshow viewer
++ii kuipc 2005.dfsg-5 Cernlib's Kit for a User Interface Package (KUIP) compiler
++ii kuiviewer 3.5.5-3 viewer for Qt Designer user interface files
++ii kunittest 3.5.5-3 unit testing library for KDE
++ii kuser 3.5.5-4 KDE user/group administration tool
++ii kverbos 3.5.5-1 Spanish verb form study application for KDE
++ii kview 3.5.5-3etch4 simple image viewer/converter for KDE
++ii kviewshell 3.5.5-3etch4 generic framework for viewer applications in KDE
++ii kvirc 3.2.4-5 KDE based next generation IRC client with module support
++ii kvirc-data 3.2.4-5 Data files for KVIrc
++ii kvoctrain 3.5.5-1 vocabulary trainer for KDE
++ii kwalify 0.6.0-1 a tiny schema validator for YAML documents
++ii kwalletmanager 3.5.5-3etch1 wallet manager for KDE
++ii kweather 3.5.5-3 weather display applet for KDE
++ii kwifimanager 3.5.5-5 wireless lan manager for KDE
++ii kwin 3.5.5a.dfsg.1-6etch2 the KDE window manager
++ii kwin-baghira 0.8-1 KDE theme for Apple junkies :)
++ii kwin-style-crystal 1.0.2-1 semi transparant window decoration for KDE
++ii kwin-style-dekorator 0.3-1 windows decoration for kde using user-supplied PNG files
++ii kwin-style-knifty 0.4.2-1 knifty window decoration for KDE
++ii kwin-style-powder 0.6-2 Powder plasmaoid window decoration for kde
++ii kwin-style-serenity 1.4-1 plasmoid inspired window decoration for KDE
++ii kwin-style-suse2 0.4-1 KDE window decoration from SUSE 9.3
++ii kwin4 3.5.5-1 Connect Four clone for KDE
++ii kword 1.6.1-2etch2 a word processor for the KDE Office Suite
++ii kword-data 1.6.1-2etch2 data files for KWord word processor
++ii kwordquiz 3.5.5-1 flashcard and vocabulary learning program for KDE
++ii kworldclock 3.5.5-3 earth watcher for KDE
++ii kxmleditor 1.1.4-3.1 XML Editor for KDE
++ii kxsldbg 3.5.5-1 graphical XSLT debugger for KDE
++ii kxterm 2005.dfsg-5 Cernlib's KUIP terminal emulator
++ii labplot 1.5.1-1 data plotting and function analysis tool for KDE
++ii lam-runtime 7.1.2-1 LAM runtime environment for executing parallel programs
++ii lam4-dev 7.1.2-1 Development of parallel programs using LAM
++ii lam4c2 7.1.2-1 Shared libraries used by LAM parallel programs
++ii lampython 2.4.11-1 MPI-enhanced Python interpreter (LAM based version)
++ii language-env 0.68 simple configuration tool for native language environment
++ii lapack3 3.0.20000531a-6 library of linear algebra routines 3 - shared version
++ii lapack3-dev 3.0.20000531a-6 library of linear algebra routines 3 - static version
++ii lapack3-doc 3.0.20000531a-6 library of linear algebra routines 3 - documentation
++ii lapack3-test 3.0.20000531a-6 library of linear algebra routines 3 - testing programs
++ii laptop-detect 0.12.1 attempt to detect a laptop
++ii latex-beamer 3.06.dfsg.1-0.1 LaTeX class to produce presentations
++ii latex-bridge 1.0-3 LaTeX macros for typesetting bridge game diagrams
++ii latex-make 2.1.10-1 easy compiling of complex (and simple) LaTeX documents
++ii latex-mk 1.8-5 tool for managing LaTeX projects
++ii latex-source2e-doc 3.0.dfsg.2-1 source2e.pdf, the documentation of the LaTeX kernel
++ii latex-ucs 20041017-6 support for using UTF-8 input encoding in LaTeX documents
++ii latex-ucs-contrib 20041017-6 additional languages for latex-ucs
++ii latex-ucs-dev 20041017-6 configuration source files for latex-ucs
++ii latex-ucs-doc 20041017-6 documentation for latex-ucs
++ii latex-xcolor 2.09-1 Easy driver-independent TeX class for color
++ii latex.service 0.1-3 LaTeX service for GNUstep
++ii latex209-base 25.mar.1992-10 macro files of LaTeX 2.09 25-mar-1992 version
++ii latex209-bin 25.mar.1992-10 latex209 command for LaTeX 2.09 25-mar-1992 version
++ii latex209-src 25.mar.1992-10 source files of macros of LaTeX 2.09 25-mar-1992 version
++ii latex2html 2002-2-1-20050114-5 LaTeX to HTML translator
++ii latex2rtf 1.9.16a-1 Converts documents from LaTeX to RTF format
++ii latex2rtf-doc 1.9.16a-1 Converts documents from LaTeX to RTF - documentation
++ii latexmk 307a-2 Perl script for running LaTeX the correct number of times
++ii less 394-4 Pager program similar to more
++ii lesstif2 0.94.4-2edf1 OSF/Motif 2.1 implementation released under LGPL
++ii lesstif2-dev 0.94.4-2edf1 development library and header files for LessTif 2.1
++ii lftp 3.5.6-1 Sophisticated command-line FTP/HTTP client programs
++ii lib32asound2 1.0.13-2 ALSA library (32 bit)
++ii lib32g2c0 3.4.6-5 Runtime library for GNU Fortran 77 applications (32bit)
++ii lib32gcc1 4.1.1-21 GCC support library (32 bit Version)
++ii lib32gfortran1 4.1.1-21 Runtime library for GNU Fortran applications (32bit)
++ii lib32ncurses5 5.5-5 Shared libraries for terminal handling (32-bit)
++ii lib32stdc++6 4.1.1-21 The GNU Standard C++ Library v3 (32 bit Version)
++ii lib32z1 1.2.3-13 compression library - 32 bit runtime
++ii liba52-0.7.4 0.7.4-7 Library for decoding ATSC A/52 streams
++ii liba52-0.7.4-dev 0.7.4-7 Library for decoding ATSC A/52 streams (development)
++ii libaa1 1.4p5-30 ascii art library
++ii libace-dev 5.4.7-12 C++ network programming framework development files
++ii libace-doc 5.4.7-12 C++ network programming framework documentation
++ii libace-ssl5.4.7c2a 5.4.7-12 ACE secure socket layer library
++ii libace5.4.7c2a 5.4.7-12 C++ network programming framework
++ii libacexml5.4.7c2a 5.4.7-12 ACE SAX based XML parsing library
++ii libacl1 2.2.41-1 Access control list shared library
++ii libacl1-dev 2.2.41-1 Access control list static libraries and headers
++ii libadplug0c2a 2.0.1-2 free AdLib sound library
++ii libagg-dev 2.4+20060719-3 The AntiGrain Geometry graphical toolkit (development files)
++ii libaiksaurus-1.2-0c2a 1.2.1+dev-0.12-3 an English-language thesaurus (development)
++ii libaiksaurus-1.2-data 1.2.1+dev-0.12-3 an English-language thesaurus (data)
++ii libaio-dev 0.3.106-3 linux kernel aio access library - development files
++ii libaio1 0.3.106-3 linux kernel aio access library - shared library
++ii libakode2 2.0.1-2 akode plugin for aRts
++ii libao2 0.8.6-4 Cross Platform Audio Output Library
++ii libapm1 3.2.2-8.1 Library for interacting with APM driver in kernel
++ii libapr1 1.2.7-9 The Apache Portable Runtime Library
++ii libaprutil1 1.2.7+dfsg-2+etch3 The Apache Portable Runtime Utility Library
++ii libapt-pkg-perl 0.1.20 Perl interface to libapt-pkg
++ii libarchive-tar-perl 1.30-2 Archive::Tar - manipulate tar files in perl
++ii libarpack++2c2a 2.2-9 Object-oriented version of the ARPACK package (runtime)
++ii libarpack2 2.1-8 Fortran77 subroutines to solve large scale eigenvalue problems
++ii libart-2.0-2 2.3.17-1 Library of functions for 2D graphics - runtime files
++ii libart-2.0-dev 2.3.17-1 Library of functions for 2D graphics - development files
++ii libart2 1.4.2-34 The GNOME canvas widget - runtime files
++ii libarts1-akode 3.5.5-2 akode plugin for aRts
++ii libarts1-audiofile 3.5.5-2 audiofile plugin for aRts
++ii libarts1-dev 1.5.5-1 development files for the aRts sound system core components
++ii libarts1-mpeglib 3.5.5-2 mpeglib plugin for aRts, supporting mp3 and mpeg audio/video
++ii libarts1-xine 3.5.5-2 aRts plugin enabling xine support
++ii libarts1c2a 1.5.5-1 aRts sound system core components
++ii libartsc0 1.5.5-1 aRts sound system C support library
++ii libartsc0-dev 1.5.5-1 development files for the aRts sound system C support library
++ii libasound2 1.0.13-2 ALSA library
++ii libasound2-dev 1.0.13-2 ALSA library development files
++ii libaspell-dev 0.60.4-4 Development files for applications with GNU Aspell support
++ii libaspell15 0.60.4-4 GNU Aspell spell-checker runtime library
++ii libatk1.0-0 1.12.4-3 The ATK accessibility toolkit
++ii libatk1.0-dev 1.12.4-3 Development files for the ATK accessibility toolkit
++ii libatm1 2.4.1-17 shared library for ATM (Asynchronous Transfer Mode)
++ii libatspi-dev 1.7.12-1 Development files of at-spi for GNOME Accessibility
++ii libatspi1.0-0 1.7.12-1 C binding libraries of at-spi for GNOME Accessibility
++ii libattr1 2.4.32-1 Extended attribute shared library
++ii libattr1-dev 2.4.32-1 Extended attribute static libraries and headers
++ii libaudio-dev 1.8-4 The Network Audio System (NAS). (development files)
++ii libaudio2 1.8-4 The Network Audio System (NAS). (shared libraries)
++ii libaudiofile-dev 0.2.6-6+etch1 Open-source version of SGI's audiofile library (header files)
++ii libaudiofile0 0.2.6-6+etch1 Open-source version of SGI's audiofile library
++ii libauthen-sasl-perl 2.10-1 Authen::SASL - SASL Authentication framework
++ii libavahi-client-dev 0.6.16-3etch2 Development files for the Avahi client library
++ii libavahi-client3 0.6.16-3etch2 Avahi client library
++ii libavahi-common-data 0.6.16-3etch2 Avahi common data files
++ii libavahi-common-dev 0.6.16-3etch2 Development files for the Avahi common library
++ii libavahi-common3 0.6.16-3etch2 Avahi common library
++ii libavahi-compat-howl0 0.6.16-3etch2 Avahi Howl compatibility library
++ii libavahi-compat-libdnssd1 0.6.16-3etch2 Avahi Apple Bonjour compatibility library
++ii libavahi-core4 0.6.16-3etch2 Avahi's embeddable mDNS/DNS-SD library
++ii libavahi-glib-dev 0.6.16-3etch2 Development headers for the Avahi glib integration library
++ii libavahi-glib1 0.6.16-3etch2 Avahi glib integration library
++ii libavahi-qt3-1 0.6.16-3etch2 Avahi Qt3 integration library
++ii libavahi-qt3-dev 0.6.16-3etch2 Development headers for the Avahi Qt3 integration library
++ii libavc1394-0 0.5.3-1+b1 control IEEE 1394 audio/video devices
++ii libavcodec-dev 0.cvs20060823-8+etch1 development files for libavcodec
++ii libavcodec0d 0.cvs20060823-8+etch1 ffmpeg codec library
++ii libavformat-dev 0.cvs20060823-8+etch1 development files for libavformat
++ii libavformat0d 0.cvs20060823-8+etch1 ffmpeg file format library
++ii libavifile-0.7c2 0.7.44.20051021-2.2+b1 shared libraries for AVI read/writing
++ii libbcel-java 5.1-6 Analyze, create, and manipulate (binary) Java class files
++ii libbeecrypt6 4.1.2-6 open source C library of cryptographic algorithms
++ii libbind9-0 9.3.4-2etch6 BIND9 Shared Library used by BIND
++ii libbinio1c2 1.4-4 binary I/O stream class library
++ii libblkid1 1.39+1.40-WIP-2006.11.14+df block device id library
++ii libbluetooth2 3.7-1 Library to use the BlueZ Linux Bluetooth stack
++ii libbobcat1 1.11.0-1 run-time (shared) Bobcat library
++ii libbonobo2-0 2.14.0-3 Bonobo CORBA interfaces library
++ii libbonobo2-common 2.14.0-3 Bonobo CORBA interfaces library -- support files
++ii libbonobo2-dev 2.14.0-3 Bonobo CORBA interfaces library -- development files
++ii libbonoboui2-0 2.14.0-5 The Bonobo UI library
++ii libbonoboui2-common 2.14.0-5 The Bonobo UI library -- common files
++ii libbonoboui2-dev 2.14.0-5 The Bonobo UI library - development files
++ii libboost-date-time-dev 1.33.1-10 set of date-time libraries based on generic programming concepts
++ii libboost-date-time1.33.1 1.33.1-10 set of date-time libraries based on generic programming concepts
++ii libboost-dbg 1.33.1-10 Boost C++ Libraries with debug symbols
++ii libboost-dev 1.33.1-10 Boost C++ Libraries development files
++ii libboost-doc 1.33.1-10 Boost.org libraries documentation
++ii libboost-filesystem-dev 1.33.1-10 filesystem operations (portable paths, iteration over directories, etc
++ii libboost-filesystem1.33.1 1.33.1-10 filesystem operations (portable paths, iteration over directories, etc
++ii libboost-graph-dev 1.33.1-10 generic graph components and algorithms in C++
++ii libboost-graph1.33.1 1.33.1-10 generic graph components and algorithms in C++
++ii libboost-iostreams-dev 1.33.1-10 Boost.Iostreams Library development files
++ii libboost-iostreams1.33.1 1.33.1-10 Boost.Iostreams Library
++ii libboost-program-options-de 1.33.1-10 program options library for C++
++ii libboost-program-options1.3 1.33.1-10 program options library for C++
++ii libboost-python-dev 1.33.1-10 Boost.Python Library development files
++ii libboost-python1.33.1 1.33.1-10 Boost.Python Library
++ii libboost-regex-dev 1.33.1-10 regular expression library for C++
++ii libboost-regex1.33.1 1.33.1-10 regular expression library for C++
++ii libboost-serialization-dev 1.33.1-10 serialization library for C++
++ii libboost-signals-dev 1.33.1-10 managed signals and slots library for C++
++ii libboost-signals1.33.1 1.33.1-10 managed signals and slots library for C++
++ii libboost-test-dev 1.33.1-10 components for writing and executing test suites
++ii libboost-test1.33.1 1.33.1-10 components for writing and executing test suites
++ii libboost-thread-dev 1.33.1-10 portable C++ multi-threading
++ii libboost-thread1.33.1 1.33.1-10 portable C++ multi-threading
++ii libboost-wave-dev 1.33.1-10 C99/C++ preprocessor library
++ii libbz2-1.0 1.0.3-6 high-quality block-sorting file compressor library - runtime
++ii libbz2-dev 1.0.3-6 high-quality block-sorting file compressor library - development
++ii libc6 2.3.6.ds1-13etch10 GNU C Library: Shared libraries
++ii libc6-dev 2.3.6.ds1-13etch10 GNU C Library: Development Libraries and Header Files
++ii libc6-dev-i386 2.3.6.ds1-13etch10 GNU C Library: 32bit development libraries for AMD64
++ii libc6-i386 2.3.6.ds1-13etch10 GNU C Library: 32bit shared libraries for AMD64
++ii libcaca0 0.99.beta11.debian-2 colour ASCII art library
++ii libcairo-perl 1.01-1 Perl interface to the Cairo graphics library
++ii libcairo2 1.2.4-4.1+etch1 The Cairo 2D vector graphics library
++ii libcairo2-dev 1.2.4-4.1+etch1 Development files for the Cairo 2D graphics library
++ii libcal3d11c2a 0.10.0-7 Skeletal based 3d character animation library
++ii libcamel1.2-8 1.6.3-5etch3 The Evolution MIME message handling library
++ii libcap1 1.10-14 support for getting/setting POSIX.1e capabilities
++ii libcdio6 0.76-1 library to read and control CD-ROM
++ii libcdparanoia0 3.10+debian~pre0-4 audio extraction tool for sampling CDs (library)
++ii libcfitsio2 2.510-1.3 shared library for I/O with FITS format data files
++ii libcgal-demo 3.2.1-2 C++ library for computational geometry (demos)
++ii libcgal-dev 3.2.1-2 C++ library for computational geometry (development files)
++ii libcgal1 3.2.1-2 C++ library for computational geometry
++ii libciao-dev 5.4.7-12 TAO based CORBA Component Model implementation development files
++ii libciao-doc 5.4.7-12 TAO based CORBA Component Model documentation
++ii libciao0.4.7c2a 5.4.7-12 TAO based CORBA Component Model implementation
++ii libclass-accessor-perl 0.30-1 Automated accessor generator
++ii libcln4 1.1.13-2 Class Library for Numbers (C++)
++ii libclucene0 0.9.16a-1 library for full-featured text search engine (runtime)
++ii libcoin40-dev 2.4.5-2 high-level 3D graphics devkit with Open Inventor and VRML97 support
++ii libcoin40-doc 2.4.5-2 high-level 3D graphics kit with Open Inventor and VRML97 support
++ii libcoin40c2 2.4.5-2 high-level 3D graphics kit with Open Inventor and VRML97 support - run
++ii libcojets2 2005.dfsg-2 [Physics] COJETS p-p and pbar-p interaction Monte Carlo library
++ii libcojets2-dev 2005.dfsg-2 [Physics] COJETS p-p and pbar-p interaction Monte Carlo
++ii libcomerr2 1.39+1.40-WIP-2006.11.14+df common error description library
++ii libcommoncpp2-1.5-0 1.5.1-4 A GNU package for creating portable C++ programs
++ii libcommons-beanutils-java 1.7.0-4 utility for manipulating JavaBeans
++ii libcommons-collections-java 2.1.1-6 A set of abstract data type interfaces and implementations
++ii libcommons-collections3-jav 3.1a-3.1 A set of abstract data type interfaces and implementations
++ii libcommons-dbcp-java 1.2.1-4 Database Connection Pooling Services
++ii libcommons-digester-java 1.7-2 Rule based XML Java object mapping tool
++ii libcommons-el-java 1.0-3 Implementation of the JSP2.0 Expression Language interpreter
++ii libcommons-launcher-java 1.1-3 cross platform java application launcher
++ii libcommons-logging-java 1.0.4-5 commmon wrapper interface for several logging APIs
++ii libcommons-modeler-java 1.1-8 A convenience library to use Java Management Extensions (JMX)
++ii libcommons-pool-java 1.3-1 pooling implementation for Java objects
++ii libcompfaceg1 1.5.2-4 Compress/decompress images for mailheaders, libc6 runtime
++ii libcompress-zlib-perl 1.42-2 Perl module for creation and manipulation of gzip files
++ii libconfhelper-perl 0.12.5 Library for editing configuration files
++ii libconfig-file-perl 1.4-2 Parses simple configuration files
++ii libconfig-inifiles-perl 2.39-2 Read .ini-style configuration files
++ii libconfuse0 2.5-2 Library for parsing configuration files
++ii libconsole 0.2.3dbs-65 Shared libraries for Linux console and font manipulation
++ii libconvert-asn1-perl 0.20-1 Perl module for encoding and decoding ASN.1 data structures
++ii libconvert-binhex-perl 1.119-2 Perl5 module for extracting data from macintosh BinHex files
++ii libcore++-dev 1.7-7 C/C++ library for robust computation (development files)
++ii libcore++1c2 1.7-7 C/C++ library for robust computation
++ii libcppunit-1.12-0 1.12.0-1 Unit Testing Library for C++
++ii libcppunit-dev 1.12.0-1 Unit Testing Library for C++
++ii libcppunit-doc 1.12.0-1 Unit Testing Library for C++
++ii libcpufreq0 002-2 shared library to deal with the cpufreq Linux kernel feature
++ii libcroco3 0.6.1-1 a generic Cascading Style Sheet (CSS) parsing and manipulation toolkit
++ii libcroco3-dev 0.6.1-1 a generic Cascading Style Sheet (CSS) parsing and manipulation toolkit
++ii libcrypt-smbhash-perl 0.12-1 generate LM/NT hash of a password for samba
++ii libcrypt-ssleay-perl 0.51-5 Support for https protocol in LWP
++ii libcsiro0 5.6.1-10 Scientific plotting library
++ii libcucul0 0.99.beta11.debian-2 low-level Unicode character drawing library
++ii libcupsimage2 1.2.7-4+etch9 Common UNIX Printing System(tm) - image libs
++ii libcupsys2 1.2.7-4+etch9 Common UNIX Printing System(tm) - libs
++ii libcupsys2-dev 1.2.7-4+etch9 Common UNIX Printing System(tm) - development files
++ii libcurl3 7.15.5-1etch3 Multi-protocol file transfer library
++ii libcurl3-gnutls 7.15.5-1etch3 Multi-protocol file transfer library
++ii libcvsservice0 3.5.5-3 DCOP service for accessing CVS repositories
++ii libcwd-doc 0.99.44-0.2 c++ debugging support library
++ii libdaemon0 0.10-1 lightweight C library for daemons
++ii libdate-manip-perl 5.44-5 a perl library for manipulating dates
++ii libdb3 3.2.9+dfsg-0.1 Berkeley v3 Database Libraries [runtime]
++ii libdb4.2 4.2.52+dfsg-2 Berkeley v4.2 Database Libraries [runtime]
++ii libdb4.3 4.3.29-8 Berkeley v4.3 Database Libraries [runtime]
++ii libdb4.3++c2 4.3.29-8 Berkeley v4.3 Database Libraries for C++ [runtime]
++ii libdb4.4 4.4.20-8 Berkeley v4.4 Database Libraries [runtime]
++ii libdbaudiolib0 0.9.8-5 Communicate to the DBMix audio system (runtime library)
++ii libdbd-mysql-perl 3.0008-1 A Perl5 database interface to the MySQL database
++ii libdbi-perl 1.53-1etch1 Perl5 database interface by Tim Bunce
++ii libdbus-1-3 1.0.2-1+etch3+c5-2 simple interprocess messaging system
++ii libdbus-1-dev 1.0.2-1+etch3+c5-2 simple interprocess messaging system (development headers)
++ii libdbus-glib-1-2 0.71-3 simple interprocess messaging system (GLib-based shared library)
++ii libdbus-qt-1-1c2 0.62.git.20060814-2 simple interprocess messaging system (Qt-based shared library)
++ii libdc1394-13 1.1.0-3+b1 high level programming interface for IEEE1394 digital camera
++ii libdc1394-13-dev 1.1.0-3+b1 high level programming interface for IEEE1394 digital camera
++ii libdebian-installer-extra4 0.50etch1 Library of some extra debian-installer functions
++ii libdebian-installer4 0.50etch1 Library of common debian-installer functions
++ii libdebug0 0.4.2 Memory leak detection system and logging library
++ii libdevhelp-1-0 0.13-1 Library providing documentation browser functionality
++ii libdevil1c2 1.6.7-5+etch1 DevIL image manipulation toolkit runtime support
++ii libdevmapper1.02 1.02.08-1 The Linux Kernel Device Mapper userspace library
++ii libdiacanvas2-1 0.14.4-4 full featured diagramming canvas
++ii libdigest-hmac-perl 1.01-5 create standard message integrity checks
++ii libdigest-md4-perl 1.5-1 MD4 Message Digest for Perl
++ii libdigest-sha1-perl 2.11-1 NIST SHA-1 message digest algorithm
++ii libdirectfb-0.9-25 0.9.25.1-5 direct frame buffer graphics - shared libraries
++ii libdiscover1 1.7.19 hardware identification library
++ii libdjvulibre15 3.5.17-3 Runtime support for the DjVu image format
++ii libdmalloc4 5.4.2-5 debug memory allocation library
++ii libdmx1 1.0.2-2 X11 Distributed Multihead extension library
++ii libdns22 9.3.4-2etch6 DNS Shared Library used by BIND
++ii libdockapp2 0.5.0-1.3 Window Maker Dock App support (shared library)
++ii libdrm2 2.0.2-0.1 Userspace interface to kernel DRM services -- runtime
++ii libdts-dev 0.0.2-svn-1 development files for libdts
++ii libdv4 1.0.0-1 software library for DV format digital video (runtime lib)
++ii libdvbpsi4 0.1.5-2 library for MPEG TS and DVB PSI tables decoding and generating
++ii libdvdcss2 1.2.9-0.0 Simple foundation for reading DVDs - runtime libraries
++ii libdvdcss2-dev 1.2.9-0.0 Simple foundation for reading DVDs - devel files
++ii libdvdnav4 0.1.10-0.1 The DVD navigation library
++ii libdvdread3 0.9.7-2 library for reading DVDs
++ii libdynamite0 0.1-4.1 libraries for PKWARE Data Compression decompressor applications
++ii libebook1.2-5 1.6.3-5etch3 Client library for evolution address books
++ii libecal1.2-6 1.6.3-5etch3 Client library for evolution calendars
++ii libedata-book1.2-2 1.6.3-5etch3 Backend library for evolution address books
++ii libedata-cal1.2-5 1.6.3-5etch3 Backend library for evolution calendars
++ii libedataserver1.2-7 1.6.3-5etch3 Utility library for evolution data servers
++ii libedataserverui1.2-6 1.6.3-5etch3 GUI utility library for evolution data servers
++ii libedit2 2.9.cvs.20050518-2.2 BSD editline and history libraries
++ii libeel2-2.14 2.14.3-5 Eazel Extensions Library (for GNOME2)
++ii libeel2-data 2.14.3-5 Eazel Extensions Library - data files (for GNOME2)
++ii libeel2-dev 2.14.3-5 Eazel Extensions Library - development files (GNOME2)
++ii libegroupwise1.2-10 1.6.3-5etch3 Client library for accessing groupwise POA through SOAP interface
++ii libelfg0 0.8.6-3 an ELF object file access library
++ii libenchant1c2a 1.3.0-2 a wrapper library for various spell checker engines
++ii liberror-perl 0.15-8 Perl module for error/exception handling in an OO-ish way
++ii libesd0 0.2.36-3 Enlightened Sound Daemon - Shared libraries
++ii libesd0-dev 0.2.36-3 Enlightened Sound Daemon - Development files
++ii libeurodec1 2005.dfsg-2 [Physics] Monte Carlo library for quark and heavy lepton decays
++ii libeurodec1-dev 2005.dfsg-2 [Physics] Monte Carlo library for quark / heavy lepton decays
++ii libevent1 1.1a-1 An asynchronous event notification library
++ii libexchange-storage1.2-1 1.6.3-5etch3 Backend library for evolution calendars
++ii libexif-dev 0.6.13-5etch2 library to parse EXIF files (development files)
++ii libexif12 0.6.13-5etch2 library to parse EXIF files
++ii libexiv2-0.10 0.10-1.6 EXIF/IPTC metadata manipulation library
++ii libexo-0.3-0 0.3.1.12rc2-1 Library with extensions for Xfce
++ii libexpat1 1.95.8-3.4+etch3 XML parsing C library - runtime library
++ii libexpat1-dev 1.95.8-3.4+etch3 XML parsing C library - development kit
++ii libf2c2 20050501-2 Shared libraries for use with FORTRAN applications
++ii libf2c2-dev 20050501-2 Development libraries for use with f2c
++ii libfam-dev 2.7.0-12 Client library to control the FAM daemon - development files
++ii libfam0 2.7.0-12 Client library to control the FAM daemon
++ii libfbclient1 1.5.3.4870-12 Firebird client library
++ii libfcgi-perl 0.67-2 FastCGI Perl module
++ii libffcall1 1.10+2.41-3 Foreign Function Call Libraries
++ii libfinance-quote-perl 1.12-2 Perl module for retrieving stock quotes from a variety of sources
++ii libflac++5 1.1.2-8 Free Lossless Audio Codec - C++ runtime library
++ii libflac7 1.1.2-8 Free Lossless Audio Codec - runtime C library
++ii libfltk1.1 1.1.7-3 Fast Light Toolkit shared libraries
++ii libfont-afm-perl 1.19-1 Font::AFM - Interface to Adobe Font Metrics files
++ii libfontconfig1 2.4.2-1.2 generic font configuration library - runtime
++ii libfontconfig1-dev 2.4.2-1.2 generic font configuration library - development
++ii libfontenc1 1.0.2-2 X11 font encoding library
++ii libforms1 1.0-7 The XForms graphical interface widget library
++ii libfox-1.6-0 1.6.14-1 The FOX C++ GUI Toolkit
++ii libfox-1.6-dev 1.6.14-1 Development files for the FOX C++ GUI Toolkit
++ii libfox-1.6-doc 1.6.14-1 Documentation of the FOX C++ GUI Toolkit
++ii libfox1.4 1.4.34-1 The FOX C++ GUI Toolkit
++ii libfox1.4-dev 1.4.34-1 Development files for the FOX C++ GUI Toolkit
++ii libfox1.4-doc 1.4.34-1 Documentation of the FOX C++ GUI Toolkit
++ii libfreefem-dev 3.5.8-3 Development library, header files and manpages
++ii libfreefem-doc 3.5.8-3 Documentation for FreeFEM development
++ii libfreefem0 3.5.8-3 Shared libraries for FreeFEM
++ii libfreetype6 2.2.1-5+etch4 FreeType 2 font engine, shared library files
++ii libfreetype6-dev 2.2.1-5+etch4 FreeType 2 font engine, development files
++ii libfribidi0 0.10.7-4 Free Implementation of the Unicode BiDi algorithm
++ii libfs6 1.0.0-4 X11 Font Services library
++ii libft-perl 1.2-16 Perl module for the FreeType library
++ii libfuse2 2.5.3-4.4+etch1 Filesystem in USErspace library
++ii libg2c0 3.4.6-5 Runtime library for GNU Fortran 77 applications
++ii libg2c0-dev 3.4.6-5 GNU Fortran 77 library development
++ii libgadu3 1.7~rc2-1etch2 Gadu-Gadu protocol library - runtime files
++ii libgail-common 1.8.11-4 GNOME Accessibility Implementation Library -- common modules
++ii libgail-dev 1.8.11-4 GNOME Accessibility Implementation Library -- development files
++ii libgail-gnome-module 1.1.3-3 GNOME Accessibility Implementation Module for GnomeUI/BonoboUI
++ii libgail17 1.8.11-4 GNOME Accessibility Implementation Library -- shared libraries
++ii libganglia1 3.1.2-3 ganglia cluster system monitor toolkit (shared libraries)
++ii libganglia1-dev 3.1.2-3 ganglia cluster system monitor toolkit (devel libraries)
++ii libgc1c2 6.8-1 conservative garbage collector for C and C++
++ii libgcc1 4.1.1-21 GCC support library
++ii libgcj-bc 4.1.1-21 Link time only library for use with gcj
++ii libgcj-common 4.1.1-21 Java runtime library (common files)
++ii libgcj7-0 4.1.1-20 Java runtime library for use with gcj
++ii libgcj7-awt 4.1.1-20 AWT peer runtime libraries for use with gcj
++ii libgcj7-dev 4.1.1-20 Java development headers and static library for use with gcj
++ii libgcj7-jar 4.1.1-20 Java runtime library for use with gcj (jar files)
++ii libgcj7-src 4.1.1-20 libgcj java sources for use in eclipse
++ii libgconf2-4 2.16.1-1 GNOME configuration database system (shared libraries)
++ii libgconf2-dev 2.16.1-1 GNOME configuration database system (development)
++ii libgconf2.0-cil 2.8.3-2 CLI binding for GConf 2.12
++ii libgcrypt11 1.2.3-2 LGPL Crypto library - runtime library
++ii libgcrypt11-dev 1.2.3-2 LGPL Crypto library - development files
++ii libgd-gd2-noxpm-perl 2.34-1 Perl module wrapper for libgd - gd2 variant without XPM support
++ii libgd2-xpm 2.0.33-5.2etch2 GD Graphics Library version 2
++ii libgd2-xpm-dev 2.0.33-5.2etch2 GD Graphics Library version 2 (development version)
++ii libgda2-3 1.2.3-5 GNOME Data Access library for GNOME2
++ii libgda2-bin 1.2.3-5 Binary files for GNOME Data Access library for GNOME2
++ii libgda2-common 1.2.3-5 Common files for GNOME Data Access library for GNOME2
++ii libgdal1-1.3.2 1.3.2-4 Geospatial Data Abstraction Library
++ii libgdbm3 1.8.3-3 GNU dbm database routines (runtime version)
++ii libgdchart-gd2-noxpm 0.11.5-3 Generate graphs using the GD library
++ii libgdiplus 1.1.18-1 interface library for Mono class System.Drawing
++ii libgdk-pixbuf2 0.22.0-11 The GdkPixBuf image library, gtk+ 1.2 version
++ii libgdl-1-0 0.6.1-1 GNOME DevTool libraries - development files
++ii libgdl-1-common 0.6.1-1 GNOME DevTool libraries - common files
++ii libgeant321-2 3.21.14.dfsg-4 [Physics] Library for Geant 3.21
++ii libgeant321-2-dev 3.21.14.dfsg-4 [Physics] Library for Geant 3.21 (development files)
++ii libgecode-doc 1.3.1-1 generic constraint development environment
++ii libgecode7-dev 1.3.1-1 generic constraint development environment
++ii libgecode8 1.3.1-1 generic constraint development environment
++ii libgeda-dev 20061020-3 GNU EDA -- Electronics design software -- development files
++ii libgeda20 20061020-3 GNU EDA -- Electronics design software -- library files
++ii libgef-java 0.11.999.0.11.3M10-1 Graph Editing Framework written entirely in Java
++ii libgenders0 1.4-1-1 C library for parsing and querying a genders database
++ii libgeos2c2a 2.2.3-3 Geometry engine for Geographic Information Systems - C++ Library
++ii libgfortran1 4.1.1-21 Runtime library for GNU Fortran applications
++ii libgfortran1-dev 4.1.1-21 GNU Fortran library development
++ii libghttp1 1.0.9-17 original GNOME HTTP client library - run-time kit
++ii libgimp2.0 2.2.13-1etch4 Libraries necessary to Run the GIMP
++ii libginac1.3c2a 1.3.5-3 The GiNaC symbolic framework (runtime library)
++ii libgksu1.2-0 1.3.8-1 library providing su and sudo functionality
++ii libgksu2-0 2.0.3-7 library providing su and sudo functionality
++ii libgksuui1.0-1 1.0.7-1+b1 a graphical fronted to su library
++ii libgl1-mesa-dev 6.5.1-0.6 A free implementation of the OpenGL API -- GLX development support fil
++ii libgl1-mesa-dri 6.5.1-0.6 A free implementation of the OpenGL API -- DRI modules
++ii libgl1-mesa-glx 6.5.1-0.6 A free implementation of the OpenGL API -- GLX runtime
++ii libglade-gnome0 0.17-8 library to load .glade files at runtime (Gnome widgets support)
++ii libglade0 0.17-8 library to load .glade files at runtime
++ii libglade2-0 2.6.0-4 library to load .glade files at runtime
++ii libglade2-dev 2.6.0-4 development files for libglade
++ii libglade2.0-cil 2.8.3-2 CLI binding for the Glade libraries 2.6
++ii libgle3 3.1.0-5.3 OpenGL tubing and extrusion library
++ii libglew1 1.3.4-5 The OpenGL Extension Wrangler - runtime environment
++ii libglib-perl 1.140-1 Perl interface to the GLib and GObject libraries
++ii libglib1.2 1.2.10-17 The GLib library of C routines
++ii libglib1.2-dev 1.2.10-17 The GLib library of C routines (development)
++ii libglib2.0-0 2.12.4-2+etch1 The GLib library of C routines
++ii libglib2.0-cil 2.8.3-2 CLI binding for the GLib utility library 2.8
++ii libglib2.0-data 2.12.4-2+etch1 Common files for GLib library
++ii libglib2.0-dev 2.12.4-2+etch1 Development files for the GLib library
++ii libglib2.0-doc 2.12.4-2+etch1 Documentation files for the GLib library
++ii libglibmm-2.4-1c2a 2.12.0-1 C++ wrapper for the GLib toolkit (shared libraries)
++ii libglpk0 4.11-2 linear programming kit (shared libraries for use with Octave)
++ii libglu1-mesa 6.5.1-0.6 The OpenGL utility library (GLU)
++ii libglu1-mesa-dev 6.5.1-0.6 The OpenGL utility library -- development support files
++ii libglu1-xorg-dev 7.1.0-19 transitional package for Debian etch
++ii libgmime-2.0-2 2.2.3-3 MIME library, unstable version
++ii libgmime2.2-cil 2.2.3-3 CLI binding for the MIME library, unstable version
++ii libgmp3-dev 4.2.1+dfsg-4 Multiprecision arithmetic library developers tools
++ii libgmp3c2 4.2.1+dfsg-4 Multiprecision arithmetic library
++ii libgmpxx4 4.2.1+dfsg-4 Multiprecision arithmetic library (C++ bindings)
++ii libgnat-4.1 4.1.1-22 Runtime library for GNU Ada applications
++ii libgnatprj4.1 4.1.1-22 GNU Ada Project Manager
++ii libgnatvsn4.1 4.1.1-22 GNU Ada compiler version library
++ii libgnokii3 0.6.14-1 Gnokii library
++ii libgnome-desktop-2 2.14.3-2 Utility library for loading .desktop files - runtime files
++ii libgnome-desktop-dev 2.14.3-2 Utility library for loading .desktop files - development files
++ii libgnome-keyring-dev 0.6.0-3 Development files for GNOME keyring service
++ii libgnome-keyring0 0.6.0-3 GNOME keyring services library
++ii libgnome-media0 2.14.2-4 runtime libraries for the GNOME media utilities
++ii libgnome-menu-dev 2.16.1-3 an implementation of the freedesktop menu specification for GNOME
++ii libgnome-menu2 2.16.1-3 an implementation of the freedesktop menu specification for GNOME
++ii libgnome-pilot2 2.0.15-2 Support libraries for gnome-pilot
++ii libgnome-window-settings1 2.14.2-7 Utility library for getting window manager settings
++ii libgnome2-0 2.16.0-2 The GNOME 2 library - runtime files
++ii libgnome2-canvas-perl 1.002-1+b1 Perl interface to the GNOME canvas library
++ii libgnome2-common 2.16.0-2 The GNOME 2 library - common files
++ii libgnome2-dev 2.16.0-2 The GNOME 2 library - development files
++ii libgnome2-perl 1.040-1 Perl interface to the GNOME libraries
++ii libgnome2-vfs-perl 1.060-1 Perl interface to the 2.x series of the GNOME VFS library
++ii libgnome2.0-cil 2.8.3-2 CLI binding for GNOME 2.12
++ii libgnome32 1.4.2-34 The GNOME libraries
++ii libgnomecanvas2-0 2.14.0-2 A powerful object-oriented display - runtime files
++ii libgnomecanvas2-common 2.14.0-2 A powerful object-oriented display - common files
++ii libgnomecanvas2-dev 2.14.0-2 A powerful object-oriented display - development files
++ii libgnomecups1.0-1 0.2.2-5 GNOME library for CUPS interaction
++ii libgnomecupsui1.0-1c2a 0.31-3 UI extensions to libgnomecups
++ii libgnomeprint2.2-0 2.12.1-7 The GNOME 2.2 print architecture - runtime files
++ii libgnomeprint2.2-data 2.12.1-7 The GNOME 2.2 print architecture - data files
++ii libgnomeprint2.2-dev 2.12.1-7 The GNOME 2.2 print architecture - development files
++ii libgnomeprintui2.2-0 2.12.1-4 GNOME 2.2 print architecture User Interface - runtime files
++ii libgnomeprintui2.2-common 2.12.1-4 GNOME 2.2 print architecture User Interface - common files
++ii libgnomeprintui2.2-dev 2.12.1-4 GNOME 2.2 print architecture User Interface - devel files
++ii libgnomesupport0 1.4.2-34 The GNOME libraries (Support libraries)
++ii libgnomeui-0 2.14.1-2+b1 The GNOME 2 libraries (User Interface) - runtime files
++ii libgnomeui-common 2.14.1-2 The GNOME 2 libraries (User Interface) - common files
++ii libgnomeui-dev 2.14.1-2+b1 The GNOME 2 libraries (User Interface) - development files
++ii libgnomeui32 1.4.2-34 The GNOME libraries (User Interface)
++ii libgnomevfs2-0 2.14.2-7 GNOME virtual file-system (runtime libraries)
++ii libgnomevfs2-bin 2.14.2-7 GNOME virtual file-system (support binaries)
++ii libgnomevfs2-common 2.14.2-7 GNOME virtual file-system (common files)
++ii libgnomevfs2-dev 2.14.2-7 GNOME virtual file-system library (development files)
++ii libgnomevfs2-extra 2.14.2-7 GNOME virtual file-system (extra modules)
++ii libgnorba27 1.4.2-34 GNOME CORBA services
++ii libgnorbagtk0 1.4.2-34 GNOME CORBA services (Gtk bindings)
++ii libgnuift0c2a 0.1.14-6.2 GNU Image Finding Tool - libraries
++ii libgnuplot-ruby 2.2-3 Ruby module for Gnuplot (dummy package)
++ii libgnuplot-ruby1.8 2.2-3 Ruby module for Gnuplot
++ii libgnustep-base1.13 1.13.0-7 GNUstep Base library
++ii libgnustep-gui0.11 0.11.0-2 GNUstep GUI Library
++ii libgnutls-dev 1.4.4-3+etch5 the GNU TLS library - development files
++ii libgnutls13 1.4.4-3+etch5 the GNU TLS library - runtime library
++ii libgoffice-1-2 0.2.1-4 Document centric objects library - runtime files
++ii libgoffice-1-common 0.2.1-4 Document centric objects library - common files
++ii libgpg-error-dev 1.4-1 library for common error values and messages in GnuPG components
++ii libgpg-error0 1.4-1 library for common error values and messages in GnuPG components
++ii libgpgme11 1.1.2-5 GPGME - GnuPG Made Easy
++ii libgphoto2-2 2.2.1-16 gphoto2 digital camera library
++ii libgphoto2-2-dev 2.2.1-16 gphoto2 digital camera library (development files)
++ii libgphoto2-port0 2.2.1-16 gphoto2 digital camera port library
++ii libgpmg1 1.19.6-25 General Purpose Mouse - shared library
++ii libgpod0 0.3.2-1.1 a library to read and write songs and artwork to an iPod
++ii libgraflib1 2005.dfsg-5 Cernlib graphical library
++ii libgraflib1-dev 2005.dfsg-5 Cernlib graphical library (development files)
++ii libgrafx11-1 2005.dfsg-5 Cernlib library interface to X11 and PostScript
++ii libgrafx11-1-dev 2005.dfsg-5 Cernlib library interface to X11 and PostScript (development)
++ii libgraphics-magick-perl 1.1.7-13+etch1 format-independent image processing - perl interface
++ii libgraphicsmagick++1 1.1.7-13+etch1 format-independent image processing - C++ shared library
++ii libgraphicsmagick++1-dev 1.1.7-13+etch1 format-independent image processing - C++ development files
++ii libgraphicsmagick1 1.1.7-13+etch1 format-independent image processing - C shared library
++ii libgraphicsmagick1-dev 1.1.7-13+etch1 format-independent image processing - C development files
++ii libgsf-1-114 1.14.3-1 Structured File Library - runtime version
++ii libgsf-1-common 1.14.3-1 Structured File Library - common files
++ii libgsf-1-dev 1.14.3-1 Structured File Library - development files (basic version)
++ii libgsf-gnome-1-114 1.14.3-1 Structured File Library - runtime version for GNOME
++ii libgsf0.0-cil 0.8-1 CLI bindings for libgsf
++ii libgsl-ruby 1.8.3-1 Ruby bindings for the GNU Scientific Library (GSL) (dummy package)
++ii libgsl-ruby1.8 1.8.3-1 Ruby bindings for the GNU Scientific Library (GSL)
++ii libgsl0 1.8-2 GNU Scientific Library (GSL) -- library package
++ii libgsl0-dev 1.8-2 GNU Scientific Library (GSL) -- development package
++ii libgsm1 1.0.10-13 Shared libraries for GSM speech compressor
++ii libgsm1-dev 1.0.10-13 Development libraries for a GSM speech compressor
++ii libgsmme1c2a 1.10-10 GSM mobile phone access library
++ii libgssapi2 0.10-4 A mechanism-switch gssapi library
++ii libgstreamer-plugins-base0. 0.10.10-4 GStreamer libraries from the "base" set
++ii libgstreamer0.10-0 0.10.10-3 Core GStreamer libraries and elements
++ii libgtk1.2 1.2.10-18 The GIMP Toolkit set of widgets for X
++ii libgtk1.2-common 1.2.10-18 Common files for the GTK+ library
++ii libgtk1.2-dev 1.2.10-18 Development files for the GIMP Toolkit
++ii libgtk2-perl 1.140-1 Perl interface to the 2.x series of the Gimp Toolkit library
++ii libgtk2.0-0 2.8.20-7 The GTK+ graphical user interface library
++ii libgtk2.0-bin 2.8.20-7 The programs for the GTK+ graphical user interface library
++ii libgtk2.0-cil 2.8.3-2 CLI binding for the GTK+ toolkit 2.8
++ii libgtk2.0-common 2.8.20-7 Common files for the GTK+ graphical user interface library
++ii libgtk2.0-dev 2.8.20-7 Development files for the GTK+ library
++ii libgtk2.0-doc 2.8.20-7 Documentation for the GTK+ graphical user interface library
++ii libgtkextra-x11-2.0-1 2.1.1-3.1 A useful set of widgets for GTK+
++ii libgtkhtml2-0 2.11.0-3 HTML rendering/editing library - runtime files. (for GNOME2)
++ii libgtkhtml3.8-15 3.12.1-2 HTML rendering/editing library - runtime files
++ii libgtkmm-2.4-1c2a 2.8.8-1 C++ wrappers for GTK+ 2.4 (shared libraries)
++ii libgtksourceview-common 1.8.3-1 common files for the GTK+ syntax highlighting widget
++ii libgtksourceview-dev 1.8.3-1 development files for the GTK+ syntax highlighting widget
++ii libgtksourceview1.0-0 1.8.3-1 shared libraries for the GTK+ syntax highlighting widget
++ii libgtkspell0 2.0.10-3+b1 a spell-checking addon for GTK's TextView widget
++ii libgtkxmhtml1 1.4.2-34 The GNOME gtkxmhtml (HTML) widget
++ii libgtop2-7 2.14.4-3 gtop system monitoring library
++ii libgtop2-common 2.14.4-3 common files for the gtop system monitoring library
++ii libgucharmap4 1.6.0-1 Unicode browser widget library (shared library)
++ii libguile-ltdl-1 1.6.8-6 Guile's patched version of libtool's libltdl
++ii libgutenprint2 5.0.0-3 runtime for the Gutenprint printer driver library
++ii libgutenprintui2-1 5.0.0-3 runtime for the Gutenprint printer driver user interface library
++ii libgwenhywfar-data 2.4.0-1 OS abstraction layer
++ii libgwenhywfar38 2.4.0-1 OS abstraction layer
++ii libhal-storage1 0.5.8.1-9etch1 Hardware Abstraction Layer - shared library for storage devices
++ii libhal1 0.5.8.1-9etch1 Hardware Abstraction Layer - shared library
++ii libhdf4g 4.1r4-18.1 The Hierarchical Data Format library -- library package
++ii libhdf4g-dev 4.1r4-18.1 The Hierarchical Data Format library -- development package
++ii libhdf4g-doc 4.1r4-18.1 The Hierarchical Data Format library -- documentation
++ii libhdf4g-run 4.1r4-18.1 The Hierarchical Data Format library -- runtime package
++ii libhdf5-doc 1.6.5-3 Hierarchical Data Format 5 (HDF5) - Documentation
++ii libhdf5-serial-1.6.5-0 1.6.5-3 Hierarchical Data Format 5 (HDF5) - runtime files - serial version
++ii libhdf5-serial-dev 1.6.5-3 Hierarchical Data Format 5 (HDF5) - development files - serial version
++ii libherwig59-2 2005.dfsg-2 [Physics] Monte Carlo event generator simulating hadronic events
++ii libherwig59-2-dev 2005.dfsg-2 [Physics] Monte Carlo event generator for hadrons (development)
++ii libhsqldb-java 1.8.0.7-1etch1 Java SQL database engine
++ii libhtml-format-perl 2.04-1 Format HTML syntax trees
++ii libhtml-parser-perl 3.55-1+etch1 A collection of modules that parse HTML text documents
++ii libhtml-tableextract-perl 2.10-1 module for extracting the content contained in tables within an HTML d
++ii libhtml-tagset-perl 3.10-2 Data tables pertaining to HTML
++ii libhtml-tree-perl 3.19.01-2 represent and create HTML syntax trees
++ii libibverbs1 1.1.2-2 A library for direct userspace use of RDMA (InfiniBand/iWARP)
++ii libice-dev 1.0.1-2 X11 Inter-Client Exchange library (development headers)
++ii libice6 1.0.1-2 X11 Inter-Client Exchange library
++ii libiceutil31 3.1.1-2 Ice for C++ misc utility library
++ii libicu36 3.6-2etch3 International Components for Unicode (libraries)
++ii libicu36-dev 3.6-2etch3 International Components for Unicode (development files)
++ii libid3-3.8.3c2a 3.8.3-6etch1 Library for manipulating ID3v1 and ID3v2 tags.
++ii libid3tag0 0.15.1b-10 ID3 tag reading library from the MAD project
++ii libidl-dev 0.8.6-1 development files for programs that use libIDL
++ii libidl0 0.8.6-1 library for parsing CORBA IDL files
++ii libidn11 0.6.5-1 GNU libidn library, implementation of IETF IDN specifications
++ii libidn11-dev 0.6.5-1 Development files GNU libidn, implementation of IETF IDN spec
++ii libiec61883-0 1.1.0-2 an partial implementation of IEC 61883
++ii libieee1284-3 0.2.10-4 cross-platform library for parallel port access
++ii libifp4 1.0.0.2-3 communicate with iRiver iFP audio devices
++ii libijs-0.35 0.35-3 IJS raster image transport protocol: shared library
++ii libimlib2 1.3.0.0debian1-4+etch2 powerful image loading and rendering library
++ii libindex0 3.5.5.dfsg.1-6 KDE indexing library
++ii libio-socket-ssl-perl 1.01-1 Perl module implementing object oriented interface to SSL sockets
++ii libio-string-perl 1.08-2 Emulate IO::File interface for in-core strings
++ii libio-stringy-perl 2.110-2 Perl5 modules for IO from scalars and arrays
++ii libio-zlib-perl 1.04-1 IO:: style interface to Compress::Zlib
++ii libiodbc2 3.52.4-5 iODBC Driver Manager
++ii libisajet758-2 2005.dfsg-2 [Physics] Monte Carlo generator for proton / electron reactions
++ii libisajet758-2-dev 2005.dfsg-2 [Physics] Monte Carlo generator for proton/electron reactions
++ii libisc11 9.3.4-2etch6 ISC Shared Library used by BIND
++ii libisccc0 9.3.4-2etch6 Command Channel Library used by BIND
++ii libisccfg1 9.3.4-2etch6 Config File Handling Library used by BIND
++ii libiso9660-4 0.76-1 library to work with ISO9660 filesystems
++ii libiw28 28-1+etchnhalf.1 Wireless tools - library
++ii libjack0.100.0-0 0.101.1-2 JACK Audio Connection Kit (libraries)
++ii libjack0.100.0-dev 0.101.1-2 JACK Audio Connection Kit (development files)
++ii libjackasyn0 0.11-2 The Asynchrounous JACK Library
++ii libjama-dev 1.2.4-2 C++ Linear Algebra Package
++ii libjasper-1.701-1 1.701.0-2 The JasPer JPEG-2000 runtime library
++ii libjasper-1.701-dev 1.701.0-2 Development files for the JasPer JPEG-2000 library
++ii libjaxp1.3-java 1.3.03-4 Java XML parser and transformer APIs (DOM, SAX, JAXP, TrAX)
++ii libjcode-pm-perl 2.06-1 Perl extension interface to convert Japanese text
++ii libjinglebase0.3-0 0.3.9-1 Libjingle base library
++ii libjinglep2p0.3-0 0.3.9-1 Libjingle p2p
++ii libjinglexmllite0.3-0 0.3.9-1 Libjingle XMLLite library
++ii libjinglexmpp0.3-0 0.3.9-1 Libjingle XMPP library
++ii libjline-java 0.9.5-2 Java library for handling console input
++ii libjpeg-progs 6b-13 Programs for manipulating JPEG files
++ii libjpeg62 6b-13 The Independent JPEG Group's JPEG runtime library
++ii libjpeg62-dev 6b-13 Development files for the IJG JPEG library
++ii libjsch-java 0.1.28-2 java secure channel
++ii libk3b2 0.12.17-8 The KDE cd burning application library - runtime files
++ii libkadm55 1.4.4-7etch8 MIT Kerberos administration runtime libraries
++ii libkcal2b 3.5.5.dfsg.1-6 KDE calendaring library
++ii libkcddb1 3.5.5-2 CDDB library for KDE
++ii libkdeedu3 3.5.5-1 library for use with KDE educational apps
++ii libkdegames1 3.5.5-1 KDE games library and common files
++ii libkdepim1a 3.5.5.dfsg.1-6 KDE PIM library
++ii libkernlib1 2005.dfsg-5 core Cernlib library of basic functions
++ii libkernlib1-dev 2005.dfsg-5 core Cernlib library of basic functions (development files)
++ii libkexif1 0.2.3-2 library for KDE to read/display/edit EXIF informations (runtime)
++ii libkgantt0 3.5.5.dfsg.1-6 KDE gantt charting library
++ii libkipi0 0.1.4-1 library for apps that want to use kipi-plugins (runtime version)
++ii libkiten1 3.5.5-1 library for Kiten Japanese reference/study tool
++ii libkjsembed1 3.5.5-1 Embedded JavaScript library
++ii libkleopatra1 3.5.5.dfsg.1-6 KDE GnuPG interface libraries
++ii libklibc 1.4.34-2 minimal libc subset for use with initramfs
++ii libkmime2 3.5.5.dfsg.1-6 KDE MIME interface library
++ii libkokyu5.4.7c2a 5.4.7-12 ACE scheduling and dispatching library
++ii libkonq4 3.5.5a.dfsg.1-6etch2 core libraries for Konqueror
++ii libkonq4-dev 3.5.5a.dfsg.1-6etch2 development files for Konqueror's core libraries
++ii libkpathsea4 3.0-32 path search library for teTeX (runtime part)
++ii libkpimexchange1 3.5.5.dfsg.1-6 KDE PIM Exchange library
++ii libkpimidentities1 3.5.5.dfsg.1-6 KDE PIM user identity information library
++ii libkrb5-dev 1.4.4-7etch8 Headers and development libraries for MIT Kerberos
++ii libkrb53 1.4.4-7etch8 MIT Kerberos runtime libraries
++ii libksba8 1.0.0-1 X.509 and CMS support library
++ii libkscan1 3.5.5-3etch4 scanner library for KDE
++ii libksieve0 3.5.5.dfsg.1-6 KDE mail/news message filtering library
++ii libktnef1 3.5.5.dfsg.1-6 Library for handling KTNEF email attachments
++ii liblasi0 1.0.6-1 creation of PostScript documents containing Unicode symbols
++ii liblcms1 1.15-1.1+etch3 Color management library
++ii liblcms1-dev 1.15-1.1+etch3 Color management library (Development headers)
++ii libldap2 2.1.30-13.3 OpenLDAP libraries
++ii liblircclient0 0.8.0-9.2 LIRC client library
++ii liblocale-gettext-perl 1.05-1 Using libc functions for internationalization in Perl
++ii liblockdev1 1.0.3-1.2 Run-time shared library for locking devices
++ii liblockfile1 1.06.1 NFS-safe locking library, includes dotlockfile program
++ii liblog4cxx9c2a 0.9.7-6 A logging library for C++
++ii liblog4j1.2-java 1.2.13-2 Logging library for java
++ii liblogfile-rotate-perl 1.04-3 Perl module to rotate logfiles
++ii libloki-dev 0.1.5-2 a C++ library of generic design patterns (development files)
++ii libloki-doc 0.1.5-2 a C++ library of generic design patterns (documentation)
++ii libloki0.1.5 0.1.5-2 a C++ library of generic design patterns
++ii libloudmouth1-0 1.1.4-2 Lightweight C Jabber library
++ii liblpsolve55-dev 5.5-4 Solve (mixed integer) linear programming problems - library
++ii libltdl3 1.5.22-4+etch1 A system independent dlopen wrapper for GNU libtool
++ii libltdl3-dev 1.5.22-4+etch1 A system independent dlopen wrapper for GNU libtool
++ii liblua50 5.0.3-2 Main interpreter library for the Lua 5.0 programming language
++ii liblua50-dev 5.0.3-2 Main interpreter library for Lua 5.0: static library and headers
++ii liblualib50 5.0.3-2 Extension library for the Lua 5.0 programming language
++ii liblualib50-dev 5.0.3-2 Extension library for Lua 5.0: static and headers
++ii liblucene-java 1.4.3.dfsg-1.2 full-text search engine library for Java(TM) and demonstration program
++ii liblucene-java-doc 1.4.3.dfsg-1.2 demonstration programs and example code for Lucene
++ii liblwres9 9.3.4-2etch6 Lightweight Resolver Library used by BIND
++ii liblzo-dev 1.08-3 data compression library (old version) (development files)
++ii liblzo1 1.08-3 data compression library (old version)
++ii liblzo2-2 2.02-2 data compression library
++ii libmad0 0.15.1b-2.1 MPEG audio decoder library
++ii libmad0-dev 0.15.1b-2.1 MPEG audio decoder development library
++ii libmagic1 4.17-5etch3 File type determination library using "magic" numbers
++ii libmagick++9c2a 6.2.4.5.dfsg1-0.15+etch1 The object-oriented C++ API to the ImageMagick library
++ii libmagick9 6.2.4.5.dfsg1-0.15+etch1 Image manipulation library
++ii libmail-sendmail-perl 0.79-4 Send email from a perl script
++ii libmail-spf-query-perl 1.999.1-2 query SPF (Sender Policy Framework) to validate mail senders
++ii libmailtools-perl 1.74-1 Manipulate email in perl programs
++ii libmaloc1 0.2-1 Object-oriented Abstraction Layer for C
++ii libmatheval1 1.1.3-1.1 GNU library for evaluating symbolic mathematical expressions (runtime)
++ii libmathlib2 2005.dfsg-5 core Cernlib mathematical library
++ii libmathlib2-dev 2005.dfsg-5 core Cernlib mathematical library (development files)
++ii libmdbtools 0.5.99.0.6pre1.0.20051109-3 mdbtools libraries
++ii libmeanwhile1 1.0.2-2 open implementation of the Lotus Sametime Community Client protocol
++ii libmed-dev 2.2.3-2 Development files for libmed
++ii libmed-doc 2.2.3-2 Documentation for the MED-fichier library
++ii libmed-tools 2.2.3-2 Runtime tools to handle MED files
++ii libmed1 2.2.3-2 Library to exchange meshed data (Fortran version)
++ii libmedc-dev 2.2.3-2 Development files for libmedc
++ii libmedc1 2.2.3-2 Library to exchange meshed data (C version)
++ii libmetacity0 2.14.5-4 library of lightweight GTK2 based Window Manager
++ii libmikmod2 3.1.11-a-6 A portable sound library
++ii libmime-lite-perl 3.01-8 Perl5 module for convenient generation of MIME messages
++ii libmime-perl 5.420-0.1 Perl5 modules for MIME-compliant messages (MIME-tools)
++ii libmimedir0 0.4-4 A library to parse RFC 2425 Directory Information blocks
++ii libmimelib1c2a 3.5.5.dfsg.1-6 KDE mime library
++ii libminpack1 19961126-11 nonlinear equations and nonlinear least squares shared library
++ii libmms0 0.3-2 MMS stream protocol library
++ii libmng-dev 1.0.9-1 M-N-G library (Development headers)
++ii libmng1 1.0.9-1 Multiple-image Network Graphics library
++ii libmodplug0c2 0.7-5.2+etch1 shared libraries for mod music based on ModPlug
++ii libmono-accessibility2.0-ci 1.2.2.1-1etch1 Mono Accessibility library
++ii libmono-cairo1.0-cil 1.2.2.1-1etch1 Mono Cairo library
++ii libmono-corlib1.0-cil 1.2.2.1-1etch1 Mono core library (1.0)
++ii libmono-corlib2.0-cil 1.2.2.1-1etch1 Mono core library (2.0)
++ii libmono-data-tds1.0-cil 1.2.2.1-1etch1 Mono Data library
++ii libmono-data-tds2.0-cil 1.2.2.1-1etch1 Mono Data Library
++ii libmono-microsoft-build2.0- 1.2.2.1-1etch1 Mono Microsoft.Build libraries
++ii libmono-microsoft7.0-cil 1.2.2.1-1etch1 Mono Microsoft libraries
++ii libmono-peapi1.0-cil 1.2.2.1-1etch1 Mono PEAPI library
++ii libmono-peapi2.0-cil 1.2.2.1-1etch1 Mono PEAPI library
++ii libmono-relaxng1.0-cil 1.2.2.1-1etch1 Mono Relaxng library
++ii libmono-security1.0-cil 1.2.2.1-1etch1 Mono Security library
++ii libmono-security2.0-cil 1.2.2.1-1etch1 Mono Security library
++ii libmono-sharpzip0.6-cil 1.2.2.1-1etch1 Mono SharpZipLib library
++ii libmono-sharpzip0.84-cil 1.2.2.1-1etch1 Mono SharpZipLib library
++ii libmono-sharpzip2.84-cil 1.2.2.1-1etch1 Mono SharpZipLib library
++ii libmono-sqlite1.0-cil 1.2.2.1-1etch1 Mono Sqlite library
++ii libmono-system-data1.0-cil 1.2.2.1-1etch1 Mono System.Data library
++ii libmono-system-data2.0-cil 1.2.2.1-1etch1 Mono System.Data Library
++ii libmono-system-runtime1.0-c 1.2.2.1-1etch1 Mono System.Runtime library
++ii libmono-system-web1.0-cil 1.2.2.1-1etch1 Mono System.Web library
++ii libmono-system-web2.0-cil 1.2.2.1-1etch1 Mono System.Web Library
++ii libmono-system1.0-cil 1.2.2.1-1etch1 Mono System libraries (1.0)
++ii libmono-system2.0-cil 1.2.2.1-1etch1 Mono System libraries (2.0)
++ii libmono-winforms2.0-cil 1.2.2.1-1etch1 Mono System.Windows.Forms library
++ii libmono0 1.2.2.1-1etch1 libraries for the Mono JIT
++ii libmono1.0-cil 1.2.2.1-1etch1 Mono libraries (1.0)
++ii libmono2.0-cil 1.2.2.1-1etch1 Mono libraries (2.0)
++ii libmotif3 2.2.3-5 Open Motif - shared libraries
++ii libmozjs0d 1.8.0.15~pre080614i-0etch1 The Mozilla SpiderMonkey JavaScript library
++ii libmpcdec3 1.2.2-1 Musepack (MPC) format library
++ii libmpeg2-4 0.4.0b-4 MPEG1 and MPEG2 video decoder library
++ii libmpfr-dev 2.2.0.dfsg.1-8 multiple precision floating-point computation developers tools
++ii libmpfr1 2.2.0.dfsg.1-8 multiple precision floating-point computation
++ii libmpich-mpd1.0-dev 1.2.7-2 mpich static libraries and development files
++ii libmpich-mpd1.0c2 1.2.7-2 mpich-mpd runtime shared library
++ii libmpich-shmem1.0-dev 1.2.7-2 mpich static libraries and development files
++ii libmpich-shmem1.0c2 1.2.7-2 mpich-shmem runtime shared library
++ii libmpich1.0-dev 1.2.7-2 mpich static libraries and development files
++ii libmpich1.0c2 1.2.7-2 mpich runtime shared library
++ii libmrml1c2a 0.1.14-6.2 Multimedia Retrieval Markup Language
++ii libmudflap0 4.1.1-21 GCC mudflap shared support libraries
++ii libmudflap0-dev 4.1.1-21 GCC mudflap support libraries (development files)
++ii libmusicbrainz4c2a 2.1.4-1 Second generation incarnation of the CD Index - library
++ii libmx4j-java 2.1.1-4 An open source implementation of the JMX(TM) technology
++ii libmyspell3c2 3.1-18etch1 MySpell spellchecking library
++ii libmysqlclient15off 5.0.32-7etch12 mysql database client library
++ii libnautilus-burn3 2.14.3-8+b1 Nautilus Burn Library - runtime version
++ii libnautilus-extension-dev 2.14.3-11+b1 libraries for nautilus components - development version
++ii libnautilus-extension1 2.14.3-11+b1 libraries for nautilus components - runtime version
++ii libncp 2.2.6-4 shared library used by programs that use NetWare Core Protocol
++ii libncurses5 5.5-5 Shared libraries for terminal handling
++ii libncurses5-dev 5.5-5 Developer's libraries and docs for ncurses
++ii libncursesw5 5.5-5 Shared libraries for terminal handling (wide character support)
++ii libneon25 0.25.5.dfsg-6 An HTTP and WebDAV client library
++ii libneon26 0.26.2-4 An HTTP and WebDAV client library
++ii libneon26-gnutls 0.26.2-4 An HTTP and WebDAV client library (GnuTLS enabled)
++ii libnet-cidr-lite-perl 0.20-1 Merge IPv4 or IPv6 CIDR address ranges
++ii libnet-daemon-perl 0.38-1.1 Perl module for building portable Perl daemons easily.
++ii libnet-dns-perl 0.59-1etch1 Perform DNS queries from a Perl script
++ii libnet-google-perl 1.0.1-1 Simple OOP-ish interface to the Google SOAP API
++ii libnet-ip-perl 1.25-2 Perl extension for manipulating IPv4/IPv6 addresses
++ii libnet-jabber-perl 2.0-3 Perl modules for accessing the Jabber protocol
++ii libnet-ldap-perl 0.33-2 A Client interface to LDAP servers
++ii libnet-ssleay-perl 1.30-1 Perl module for Secure Sockets Layer (SSL)
++ii libnet-xmpp-perl 1.0-2 XMPP Perl library
++ii libnetcdf++3 3.6.1-1 An interface for scientific data access to large binary data
++ii libnetcdf3 3.6.1-1 An interface for scientific data access to large binary data
++ii libnetpbm10 10.0-11.1+etch1 Shared libraries for netpbm
++ii libnews-nntpclient-perl 0.37-6 News::NNTPClient, Perl support for accessing NNTP servers
++ii libnewt0.52 0.52.2-10+etch1 Not Erik's Windowing Toolkit - text mode windowing with slang
++ii libnfsidmap2 0.18-0 An nfs idmapping library
++ii libnjb5 2.2.5-4.1 Creative Labs Nomad Jukebox library
++ii libnl1-pre6 1.0~pre6-2 Library for dealing with netlink sockets
++ii libnm-glib0 0.6.4-6+etch1 network management framework (GLib shared library)
++ii libnm-util0 0.6.4-6+etch1 network management framework (shared library)
++ii libnotify1 0.4.3-1 sends desktop notifications to a notification daemon
++ii libnspr4-0d 1.8.0.15~pre080614i-0etch1 NetScape Portable Runtime Library
++ii libnss-mdns 0.9-0.2 NSS module for Multicast DNS name resolution
++ii libnss3-0d 1.8.0.15~pre080614i-0etch1 Network Security Service libraries
++ii libobjc1 4.1.1-21 Runtime library for GNU Objective-C applications
++ii libode0c2 0.5.dfsg-2 Open Dynamics Engine - runtime library
++ii libogg-dev 1.1.3-2 Ogg Bitstream Library Development
++ii libogg0 1.1.3-2 Ogg Bitstream Library
++ii liboggflac3 1.1.2-8 Free Lossless Audio Codec - runtime C library (ogg)
++ii libogre5c2a 1.0.6-1.4 Object-oriented Graphics Rendering Engine (libraries)
++ii liboil0.3 0.3.10-1.1 Library of Optimized Inner Loops
++ii libopal-2.2.0 2.2.3.dfsg-3+etch1 Open Phone Abstraction Library - successor of OpenH323
++ii libopenal0a 0.0.8-4 OpenAL is a portable library for 3D spatialized audio
++ii libopencdk8 0.5.9-2 Open Crypto Development Kit (OpenCDK) (runtime)
++ii libopencdk8-dev 0.5.9-2 Open Crypto Development Kit (OpenCDK) (development files)
++ii libopenexr-dev 1.2.2-4.3+etch2 development files for the OpenEXR image library
++ii libopenexr2c2a 1.2.2-4.3+etch2 runtime files for the OpenEXR image library
++ii libopenscenegraph-dev 1.2.0-2+b1 3D scenegraph development files
++ii libopenscenegraph4 1.2.0-2+b1 3D scenegraph
++ii libopenthreads-dev 1.2.0-2+b1 Object-Oriented (OO) thread interface for C++ programmers, development
++ii libopenthreads4 1.2.0-2+b1 Object-Oriented (OO) thread interface for C++ programmers, development
++ii libopts25 5.8.3-2 automated option processing library based on autogen - runtime
++ii libopts25-dev 5.8.3-2 automated option processing library based on autogen - development
++ii liborange0 0.3-2 library to extracts CAB files from self-extracting installers
++ii liborbit0 0.5.17-11.1 Libraries for ORBit - a CORBA ORB
++ii liborbit2 2.14.3-0.2 libraries for ORBit2 - a CORBA ORB
++ii liborbit2-dev 2.14.3-0.2 development files for ORBit2 - a CORBA ORB
++ii libosp5 1.5.2-3 Runtime library for OpenJade group's SP suite
++ii libossp-uuid-perl 1.5.1-1 perl OSSP::UUID - OSSP uuid Perl Binding
++ii libossp-uuid15 1.5.1-1 OSSP uuid ISO-C and C++ - shared library
++ii libpacklib1 2005.dfsg-5 core Cernlib library
++ii libpacklib1-dev 2005.dfsg-5 core Cernlib library (development files)
++ii libpacklib1-lesstif 2005.dfsg-5 Cernlib graphical user interface library
++ii libpacklib1-lesstif-dev 2005.dfsg-5 Cernlib graphical user interface library (development files)
++ii libpalm-perl 1.3.0-6 Perl 5 modules for manipulating pdb and prc database files
++ii libpam-modules 0.79-5+etch1 Pluggable Authentication Modules for PAM
++ii libpam-runtime 0.79-5+etch1 Runtime support for the PAM library
++ii libpam0g 0.79-5+etch1 Pluggable Authentication Modules library
++ii libpanel-applet2-0 2.14.3-6 library for GNOME 2 panel applets
++ii libpanel-applet2-dev 2.14.3-6 library for GNOME 2 panel applets - development files
++ii libpango1.0-0 1.14.8-5+etch1 Layout and rendering of internationalized text
++ii libpango1.0-common 1.14.8-5+etch1 Modules and configuration files for the Pango
++ii libpango1.0-dev 1.14.8-5+etch1 Development files for the Pango
++ii libpango1.0-doc 1.14.8-5+etch1 Documentation files for the Pango
++ii libpaper-utils 1.1.21 Library for handling paper characteristics (utilities)
++ii libpaper1 1.1.21 Library for handling paper characteristics
++ii libparmetis-dev 3.1-4 Parallel Graph Partitioning and Sparse Matrix Ordering Libs: Devel
++ii libparmetis3.1 3.1-4 Parallel Graph Partitioning and Sparse Matrix Ordering Shared Libs
++ii libparse-debianchangelog-pe 1.0-1 parse Debian changelogs and output them in other formats
++ii libparse-yapp-perl 1.05-10 Perl module for creating fully reentrant LALR parser OO Perl modules
++ii libparted1.7-1 1.7.1-5.1 The GNU Parted disk partitioning shared library
++ii libpawlib2 2.14.04-7 Cernlib PAW library - portion without Lesstif dependencies
++ii libpawlib2-dev 2.14.04-7 Cernlib PAW library - portion without Lesstif (development files)
++ii libpawlib2-lesstif 2.14.04-7 Cernlib PAW library (Lesstif-dependent part)
++ii libpawlib2-lesstif-dev 2.14.04-7 Cernlib PAW library (Lesstif-dependent part - development files)
++ii libpcap0.8 0.9.5-1 System interface for user-level packet capture
++ii libpci2 2.1.11-3 Obsolete shared library for accessing pci devices
++ii libpcre3 6.7+7.4-4 Perl 5 Compatible Regular Expression Library - runtime files
++ii libpcre3-dev 6.7+7.4-4 Perl 5 Compatible Regular Expression Library - development files
++ii libpcrecpp0 6.7+7.4-4 Perl 5 Compatible Regular Expression Library - C++ runtime files
++ii libpdflib804-2 2005.dfsg-2 [Physics] Comprehensive library of parton density functions
++ii libpdflib804-2-dev 2005.dfsg-2 [Physics] Comprehensive library of parton density functions
++ii libperl5.8 5.8.8-7etch6 Shared Perl library
++ii libphotos202 2005.dfsg-2 [Physics] Monte Carlo simulation of photon radiation in decays
++ii libphotos202-dev 2005.dfsg-2 [Physics] Monte Carlo simulation of photon radiation in decays
++ii libphtools2 2005.dfsg-2 [Physics] General purpose Monte Carlo routines
++ii libphtools2-dev 2005.dfsg-2 [Physics] General purpose Monte Carlo routines (development files)
++ii libpisock9 0.12.1-5 library for communicating with a PalmOS PDA
++ii libpisync0 0.12.1-5 synchronization library for PalmOS devices
++ii libplot-dev 2.4.1-15 The GNU plotutils libraries (development files)
++ii libplot2c2 2.4.1-15 The GNU plotutils libraries
++ii libplpc2a 0.15-1.2 Library functions for plptools Psion PDA access functions
++ii libplplot-c++9c2 5.6.1-10 Scientific plotting library
++ii libplplot-dev 5.6.1-10 Scientific plotting library (development files)
++ii libplplot-fortran9 5.6.1-10 Scientific plotting library
++ii libplplot9 5.6.1-10 Scientific plotting library
++ii libplrpc-perl 0.2017-1.1 Perl extensions for writing PlRPC servers and clients
++ii libpng12-0 1.2.15~beta5-1+etch2 PNG library - runtime
++ii libpng12-dev 1.2.15~beta5-1+etch2 PNG library - development
++ii libpoppler0c2 0.4.5-5.1etch3 PDF rendering library
++ii libpoppler0c2-glib 0.4.5-5.1etch3 PDF rendering library (GLib-based shared library)
++ii libpoppler0c2-qt 0.4.5-5.1etch3 PDF rendering library (Qt-based shared library)
++ii libpopt-dev 1.10-3 lib for parsing cmdline parameters - development files
++ii libpopt0 1.10-3 lib for parsing cmdline parameters
++ii libportaudio0 18.1-4 Portable audio I/O - shared library
++ii libpostproc0d 0.cvs20060823-8+etch1 ffmpeg video postprocessing library
++ii libpq-dev 8.1.19-0etch1 header files for libpq4 (PostgreSQL library)
++ii libpq4 8.1.19-0etch1 PostgreSQL C client library
++ii libpqxx-2.6.8 2.6.8-1 C++ library to connect to PostgreSQL
++ii libprinterconf0c2a 0.5-8.1 Printer autodetection library
++ii libprintsys 0.6-7 printcap parser, helper for gnulpr's printfilters
++ii libproc-daemon-perl 0.03-2 Run Perl program as a daemon process
++ii libproducer-dev 1.2.0-2+b1 Cross-platform C++ library for managing OpenGL rendering contexts
++ii libproducer4 1.2.0-2+b1 Cross-platform C++ library for managing OpenGL rendering contexts
++ii libpstoedit0c2a 3.44-1 PostScript to editable vector graphics library (runtime files)
++ii libpt-1.10.0 1.10.2-2+etch1 Portable Windows Library
++ii libpt-plugins-alsa 1.10.2-2+etch1 Portable Windows Library Audio Plugin for the ALSA Interface
++ii libpt-plugins-v4l 1.10.2-2+etch1 Portable Windows Library Video Plugin for Video4Linux
++ii libpth20 2.0.7-6 The GNU Portable Threads
++ii libpvm3 3.4.5-7 Parallel Virtual Machine - shared libraries
++ii libpythonize0 0.4.0-3 Python packages to support KDE applications (library)
++ii libqhull-dev 2003.1-2 Calculate convex hulls and related structures (development files)
++ii libqhull5 2003.1-2 Calculate convex hulls and related structures (shared library)
++ii libqscintilla-dev 1.6-2 Qt source code editing component - development files
++ii libqscintilla-doc 1.6-2 Qt source code editing component - documentation
++ii libqscintilla6 1.6-2 Qt source code editing component based on Scintilla
++ii libqt-perl 3.008-2 Perl bindings for the Qt library
++ii libqt3-compat-headers 3.3.7-4etch2 Qt 1.x and 2.x compatibility includes
++ii libqt3-headers 3.3.7-4etch2 Qt3 header files
++ii libqt3-i18n 3.3.7-4etch2 i18n files for Qt3 library
++ii libqt3-mt 3.3.7-4etch2 Qt GUI Library (Threaded runtime version), Version 3
++ii libqt3-mt-dev 3.3.7-4etch2 Qt development files (Threaded)
++ii libqt3-mt-mysql 3.3.7-4etch2 MySQL database driver for Qt3 (Threaded)
++ii libqt3-mt-psql 3.3.7-4etch2 PostgreSQL database driver for Qt3 (Threaded)
++ii libqt4-core 4.2.1-2+etch1 Qt 4 core non-GUI functionality runtime library
++ii libqt4-dev 4.2.1-2+etch1 Qt 4 development files
++ii libqt4-gui 4.2.1-2+etch1 Qt 4 core GUI functionality runtime library
++ii libqt4-qt3support 4.2.1-2+etch1 Qt 3 compatibility library for Qt 4
++ii libqt4-sql 4.2.1-2+etch1 Qt 4 SQL database module
++ii libquantlib-0.3.13 0.3.13-2 Quantitative Finance Library -- development package
++ii libquicktime0 0.9.7-1 library for reading and writing Quicktime files
++ii libqwt-dev 4.2.0-4 Qt widgets library for technical applications (development)
++ii libqwt-doc 4.2.0-4 Qt widgets library for technical applications (documentation)
++ii libqwt4c2 4.2.0-4 Qt widgets library for technical applications (runtime)
++ii librapi2 0.9.3-3 Make RAPI calls to a WinCE device, runtime libraries
++ii libraptor1 1.4.13-1 Raptor RDF parser and serializer library
++ii libraw1394-8 1.2.1-2 library for direct access to IEEE 1394 bus (aka FireWire)
++ii libraw1394-dev 1.2.1-2 library for direct access to IEEE 1394 bus - development files
++ii libreadline-ruby 1.8.2-1 Readline interface for Ruby
++ii libreadline-ruby1.8 1.8.5-4etch5 Readline interface for Ruby 1.8
++ii libreadline5 5.2-2 GNU readline and history libraries, run-time libraries
++ii libreadline5-dev 5.2-2 GNU readline and history libraries, development files
++ii librecode0 3.6-12 Shared library on which recode is based
++ii libregexp-java 1.4-3 regular expression library for Java
++ii librep9 0.17-13 lisp command interpreter
++ii libresid-builder0c2a 2.1.1-5 SID chip emulation class based on resid
++ii librpcsecgss3 0.14-2etch3 allows secure rpc communication using the rpcsec_gss protocol
++ii librplay3 3.3.2-11 Shared libraries for the rplay network audio system
++ii librpm4 4.4.1-13 RPM shared library
++ii librra0 0.9.1-1 Library to deal with synchronisation with WinCE devices
++ii librrd2 1.2.15-0.3 Time-series data storage and display system (runtime library)
++ii librss1 3.5.5-5 RSS library for KDE
++ii librsvg2-2 2.14.4-3 SAX-based renderer library for SVG files (runtime)
++ii librsvg2-common 2.14.4-3 SAX-based renderer library for SVG files (extra runtime)
++ii librsvg2-dev 2.14.4-3 SAX-based renderer library for SVG files (development)
++ii librsync1 0.9.7-1 Library which implements the rsync remote-delta algorithm
++ii libruby1.8 1.8.5-4etch5 Libraries necessary to run Ruby 1.8
++ii libsamplerate0 0.1.2-2 audio rate conversion library
++ii libsane 1.0.18-5 API library for scanners
++ii libsasl2 2.1.22.dfsg1-8+etch1 Authentication abstraction library
++ii libsasl2-2 2.1.22.dfsg1-8+etch1 Authentication abstraction library
++ii libsasl2-dev 2.1.22.dfsg1-8+etch1 Development files for SASL authentication abstraction library
++ii libsasl2-modules 2.1.22.dfsg1-8+etch1 Pluggable Authentication Modules for SASL
++ii libscrollkeeper0 0.3.14-13 Library to load .omf files (runtime files)
++ii libsdl-erlang 0.96.0626-4 Erlang bindings to the Simple Direct Media Library
++ii libsdl-image1.2 1.2.5-2+etch1 image loading library for Simple DirectMedia Layer 1.2
++ii libsdl-mixer1.2 1.2.6-1.1+b1 mixer library for Simple DirectMedia Layer 1.2
++ii libsdl-ttf2.0-0 2.0.8-3+b1 ttf library for Simple DirectMedia Layer with FreeType 2 support
++ii libsdl1.2debian 1.2.11-8 Simple DirectMedia Layer
++ii libsdl1.2debian-alsa 1.2.11-8 Simple DirectMedia Layer (with X11 and ALSA options)
++ii libselinux1 1.32-3 SELinux shared libraries
++ii libsemanage1 1.8-1 shared libraries used by SELinux policy manipulation tools
++ii libsensors3 2.10.1-3 library to read temperature/voltage/fan sensors
++ii libsepol1 1.14-2 Security Enhanced Linux policy library for changing policy binaries
++ii libservlet2.3-java 4.0-8 Servlet 2.3 and JSP 1.2 Java classes and documentation
++ii libservlet2.4-java 5.0.30-3 Servlet 2.4 and JSP 2.0 Java classes and documentation
++ii libsexy2 0.1.10-1 collection of additional GTK+ widgets - library
++ii libshout3 2.2.2-1 MP3/Ogg Vorbis broadcast streaming library
++ii libsidplay1 1.36.59-4 SID (MOS 6581) emulation library
++ii libsidplay2 2.1.1-5 SID (MOS 6581) emulation library
++ii libsigc++-2.0-0c2a 2.0.17-2 type-safe Signal Framework for C++ - runtime
++ii libslang2 2.0.6-4 The S-Lang programming library - runtime version
++ii libslice31 3.1.1-2 Ice for C++ Slice parser library
++ii libslp1 1.2.1-6.2 OpenSLP libraries
++ii libsm-dev 1.0.1-3 X11 Inter-Client Exchange library (development headers)
++ii libsm6 1.0.1-3 X11 Session Management library
++ii libsmbclient 3.0.24-6etch10 shared library that allows applications to talk to SMB/CIFS servers
++ii libsmokeqt1 3.5.5-1 SMOKE Binding Library to Qt
++ii libsmpeg0 0.4.5+cvs20030824-1.9 SDL MPEG Player Library - shared libraries
++ii libsndfile1 1.0.16-2+etch2 Library for reading/writing audio files
++ii libsnmp-base 5.2.3-7etch4 NET SNMP (Simple Network Management Protocol) MIBs and Docs
++ii libsnmp9 5.2.3-7etch4 NET SNMP (Simple Network Management Protocol) Library
++ii libsnmpkit2c2a 0.9-12 multithreaded SNMP connection library
++ii libsoap-lite-perl 0.69-1 Client and server side SOAP implementation
++ii libsocket6-perl 0.19-1 Perl extensions for IPv6
++ii libsoup2.2-8 2.2.98-2+etch1 an HTTP library implementation in C -- Shared library
++ii libsp1c2 1.3.4-1.2.1-47 Runtime library for James Clark's SP suite
++ii libspeex1 1.1.12-3etch1 The Speex Speech Codec
++ii libsprng2 2.0a-3 The SPRNG Scalable Parallel RNG library -- library package
++ii libsqlite0 2.8.17-2 SQLite shared library
++ii libsqlite0-dev 2.8.17-2 SQLite development files
++ii libsqlite3-0 3.3.8-1.1 SQLite 3 shared library
++ii libss2 1.39+1.40-WIP-2006.11.14+df command-line interface parsing library
++ii libssl-dev 0.9.8c-4etch9 SSL development libraries, header files and documentation
++ii libssl0.9.8 0.9.8c-4etch9 SSL shared libraries
++ii libssl0.9.8-dbg 0.9.8c-4etch9 Symbol tables for libssl and libcrypt
++ii libssp0 4.1.1-21 GCC stack smashing protection library
++ii libstartup-notification0 0.8-2 library for program launch feedback (shared library)
++ii libstartup-notification0-de 0.8-2 library for program launch feedback (development headers)
++ii libstdc++5 3.3.6-15 The GNU Standard C++ Library v3
++ii libstdc++5-3.3-dev 3.3.6-15 The GNU Standard C++ Library v3 (development files)
++ii libstdc++6 4.1.1-21 The GNU Standard C++ Library v3
++ii libstdc++6-4.1-dev 4.1.1-21 The GNU Standard C++ Library v3 (development files)
++ii libstdc++6-dev 3.4.6-5 The GNU Standard C++ Library v3 (development files)
++ii libstlport4.6c2 4.6.2-3 STLport C++ class library
++ii libstlport5.0 5.0.2-12 STLport C++ class library
++ii libstlport5.1 5.0.99rc2-1 STLport C++ class library
++ii libstroke0 0.5.1-5 mouse strokes library -- runtime files
++ii libsundials-serial0 2.2.0-3 SUit of Nonlinear and DIfferential/ALgebraic equation Solvers
++ii libsuperlu3 3.0-5 Direct solution of large, sparse systems of linear equations
++ii libsuperlu3-dev 3.0-5 Direct solution of large, sparse systems of linear equations
++ii libsvga1 1.4.3-24 console SVGA display libraries
++ii libsvn-java 1.4.2dfsg1-3 Java bindings for Subversion
++ii libsvn-javahl 1.4.2dfsg1-3 Java bindings for Subversion (dummy package)
++ii libsvn-perl 1.4.2dfsg1-3 Perl bindings for Subversion
++ii libsvn1 1.4.2dfsg1-3 Shared libraries used by Subversion
++ii libsvncpp0c2a 0.9.4-1 Subversion C++ shared library
++ii libsvnqt3 0.11.0-1 Qt wrapper library for subversion
++ii libswt3.2-gtk-gcj 3.2.1-4 Fast and rich GUI toolkit for Java, gtk2 (GCJ version)
++ii libswt3.2-gtk-java 3.2.1-4 Fast and rich GUI toolkit for Java, gtk2 version
++ii libswt3.2-gtk-jni 3.2.1-4 Platform dependent files for libswt3.2-gtk-java
++ii libsynaptics0 0.14.6b-1 library to access the synaptics touch pad driver (runtime)
++ii libsynce0 0.9.3-1 A helper library for synce, a tool to sync WinCE devices
++ii libsys-hostname-long-perl 1.4-1 Figure out the long (fully-qualified) hostname
++ii libsysfs2 2.1.0-1 interface library to sysfs
++ii libt1-5 5.1.0-2etch1 Type 1 font rasterizer library - runtime
++ii libtag1c2a 1.4-4 TagLib Audio Meta-Data Library
++ii libtao-dev 5.4.7-12 ACE based CORBA ORB core libraries development files
++ii libtao-doc 5.4.7-12 ACE based CORBA ORB core libraries documentation
++ii libtao-orbsvcs-dev 5.4.7-12 TAO CORBA services development files
++ii libtao-orbsvcs1.4.7c2a 5.4.7-12 TAO CORBA services libraries
++ii libtao1.4.7c2a 5.4.7-12 ACE based CORBA ORB core libraries
++ii libtar 1.2.11-4 C library for manipulating tar archives
++ii libtasn1-3 0.3.6-2 Manage ASN.1 structures (runtime)
++ii libtasn1-3-bin 0.3.6-2 Manage ASN.1 structures (binaries)
++ii libtasn1-3-dev 0.3.6-2 Manage ASN.1 structures (development)
++ii libtdb1 1.0.6-13 Trivial Database - shared library
++ii libtext-charwidth-perl 0.04-4 get display widths of characters on the terminal
++ii libtext-iconv-perl 1.4-3 converts between character sets in Perl
++ii libtext-wrapi18n-perl 0.06-5 internationalized substitute of Text::Wrap
++ii libtheora-dev 0.0.0.alpha7.dfsg-1.1 The Theora Video Compression Codec (development files)
++ii libtheora0 0.0.0.alpha7.dfsg-1.1 The Theora Video Compression Codec
++ii libtidy-0.99-0 20051018-1 HTML syntax checker and reformatter - library
++ii libtiff-tools 3.8.2-7+etch3 TIFF manipulation and conversion tools
++ii libtiff4 3.8.2-7+etch3 Tag Image File Format (TIFF) library
++ii libtiff4-dev 3.8.2-7+etch3 Tag Image File Format library (TIFF), development files
++ii libtiffxx0c2 3.8.2-7+etch3 Tag Image File Format (TIFF) library -- C++ interface
++ii libtimedate-perl 1.1600-5 Time and date functions for Perl
++ii libtnt-dev 1.2.6-1 interface for scientific computing in C++
++ii libtomcat5.5-java 5.5.20-2etch3 Java Servlet engine -- core libraries
++ii libtool 1.5.22-4+etch1 Generic library support script
++ii libtool-doc 1.5.22-4+etch1 Generic library support script
++ii libtotem-plparser1 2.16.5-3 Totem Playlist Parser library - runtime version
++ii libttf2 1.4pre.20050518-0.4 FreeType 1, The FREE TrueType Font Engine, shared library files
++ii libtulip-2.0-dev 2.0.6-4 Tulip graph library - core development files
++ii libtulip-2.0c2a 2.0.6-4 Tulip graph library - core runtime
++ii libtulip-ogl-2.0-dev 2.0.6-4 Tulip graph library - OpenGL development files
++ii libtulip-ogl-2.0c2a 2.0.6-4 Tulip graph library - OpenGL runtime
++ii libtulip-qt4-2.0-dev 2.0.6-4 Tulip graph library - Qt/OpenGL GUI development files
++ii libtulip-qt4-2.0c2a 2.0.6-4 Tulip graph library - Qt/OpenGL GUI runtime
++ii libtunepimp-bin 0.4.2-4.1 libtunepimp simple tagging applications
++ii libtunepimp3 0.4.2-4.1 MusicBrainz tagging library and simple tagger application
++ii libtwolame0 0.3.8-1 MPEG Audio Layer 2 encoding library
++ii libufsparse 1.2-7 collection of libraries for computations for sparse matrices
++ii libufsparse-dev 1.2-7 collection of libraries for computations for sparse matrices
++ii libufsparse-doc 1.2-7 collection of libraries for computations for sparse matrices
++ii libungif4g 4.1.4-4 shared library for GIF images
++ii libunicode-map-perl 0.112-10 Perl module for mapping charsets from and to UTF16 Unicode
++ii libunicode-map8-perl 0.12-3 Perl module to map 8bit character sets to Unicode
++ii libunicode-maputf8-perl 1.11-2 Perl module for conversing between any character sets and UTF8
++ii libunicode-string-perl 2.09-1 Perl modules for Unicode strings
++ii libunshield0 0.5-3 library to extracts CAB files from InstallShield installers
++ii liburi-perl 1.35-2 Manipulates and accesses URI strings
++ii libusb-0.1-4 0.1.12-5 userspace USB programming library
++ii libuser-perl 1.6-2 Provides user data in an OS independent manner
++ii libuuid1 1.39+1.40-WIP-2006.11.14+df universally unique id library
++ii libvcdinfo0 0.7.23-3 library to extract information from VideoCD
++ii libverbiste0c2a 0.1.14-1.2 a French conjugation system
++ii libvisual-0.4-0 0.4.0-1.1 Audio visualization framework
++ii libvlc0 0.8.6-svn20061012.debian-5. multimedia player and streamer library
++ii libvolume-id0 0.105-4etch1 libvolume_id shared library
++ii libvorbis-dev 1.1.2.dfsg-1.4+etch1 The Vorbis General Audio Compression Codec (development files)
++ii libvorbis0a 1.1.2.dfsg-1.4+etch1 The Vorbis General Audio Compression Codec
++ii libvorbisenc2 1.1.2.dfsg-1.4+etch1 The Vorbis General Audio Compression Codec
++ii libvorbisfile3 1.1.2.dfsg-1.4+etch1 The Vorbis General Audio Compression Codec
++ii libvte-common 0.12.2-5 Terminal emulator widget for GTK+ 2.0 - common files
++ii libvte4 0.12.2-5 Terminal emulator widget for GTK+ 2.0 - runtime files
++ii libvtk5 5.0.2-4 Visualization Toolkit - A high level 3D visualization library
++ii libvtk5-dev 5.0.2-4 VTK header files for building C++ code
++ii libvtk5-qt3 5.0.2-4 Visualization Toolkit - A high level 3D visualization library
++ii libvtk5-qt3-dev 5.0.2-4 Visualization Toolkit - A high level 3D visualization library
++ii libwavpack0 4.32-2 an audio codec (lossy and lossless) - library
++ii libwine 0.9.34-1 Windows API Implementation (Library)
++ii libwine-alsa 0.9.34-1 Windows API Implementation (ALSA Sound Module)
++ii libwine-print 0.9.34-1 Windows API Implementation (Printing Module)
++ii libwmf-bin 0.2.8.4-2+etch1 Windows metafile conversion tools
++ii libwmf-dev 0.2.8.4-2+etch1 Windows metafile conversion development
++ii libwmf0.2-7 0.2.8.4-2+etch1 Windows metafile conversion library
++ii libwnck-common 2.14.3-1 Window Navigator Construction Kit - common files
++ii libwnck18 2.14.3-1 Window Navigator Construction Kit - runtime files
++ii libwpd8c2a 0.8.7-6 Library for handling WordPerfect documents (shared library)
++ii libwrap0 7.6.dbs-13 Wietse Venema's TCP wrappers library
++ii libwraster3 0.92.0-6.1 Shared libraries of Window Maker rasterizer
++ii libwv-1.2-3 1.2.4-1 Library for accessing Microsoft Word documents
++ii libwv2-1c2 0.2.3-1 a library for accessing Microsoft Word documents
++ii libwww-perl 5.805-1 WWW client/server library for Perl (aka LWP)
++ii libwww-search-perl 2.46-1 Perl modules which provide an API to WWW search engines.
++ii libwxbase2.6-0 2.6.3.2.1.5+etch1 wxBase library (runtime) - non-GUI support classes of wxWidgets toolki
++ii libwxgtk2.6-0 2.6.3.2.1.5+etch1 wxWidgets Cross-platform C++ GUI toolkit (GTK+ runtime)
++ii libx11-6 1.0.3-7 X11 client-side library
++ii libx11-data 1.0.3-7 X11 client-side library
++ii libx11-dev 1.0.3-7 X11 client-side library (development headers)
++ii libxalan2-java 2.7.0-1 XSL Transformations (XSLT) processor in Java
++ii libxau-dev 1.0.1-2 X11 authorisation library (development headers)
++ii libxau6 1.0.1-2 X11 authorisation library
++ii libxaw-headers 1.0.2-4 X11 Athena Widget library (development headers)
++ii libxaw7 1.0.2-4 X11 Athena Widget library
++ii libxaw7-dev 1.0.2-4 X11 Athena Widget library (development headers)
++ii libxcomposite1 0.3-3 X11 Composite extension library
++ii libxcursor-dev 1.1.7-4 X cursor management library (development files)
++ii libxcursor1 1.1.7-4 X cursor management library
++ii libxdamage1 1.0.3-3 X11 damaged region extension library
++ii libxdmcp-dev 1.0.1-2 X11 authorisation library (development headers)
++ii libxdmcp6 1.0.1-2 X11 Display Manager Control Protocol library
++ii libxerces-java 1.4.4-2 Validating XML parser for Java
++ii libxerces2-java 2.8.1-1+etch1 Validating XML parser for Java with DOM level 3 support
++ii libxerces27 2.7.0-3 validating XML parser library for C++
++ii libxevie1 1.0.1-3 X11 EvIE extension library
++ii libxext-dev 1.0.1-2 X11 miscellaneous extensions library (development headers)
++ii libxext6 1.0.1-2 X11 miscellaneous extension library
++ii libxfce4mcs-client3 4.3.99.2-1 Client library for Xfce4 configure interface
++ii libxfce4mcs-manager3 4.3.99.2-1 Manager library for Xfce4 configure interface
++ii libxfce4util4 4.3.99.2-1 Utility functions library for Xfce4
++ii libxfcegui4-4 4.3.99.2-1 Basic GUI C functions for Xfce4
++ii libxfixes-dev 4.0.1-5 X11 miscellaneous 'fixes' extension library (development headers)
++ii libxfixes3 4.0.1-5 X11 miscellaneous 'fixes' extension library
++ii libxfont1 1.2.2-2.etch1 X11 font rasterisation library
++ii libxft-dev 2.1.8.2-8 FreeType-based font drawing library for X (development files)
++ii libxft2 2.1.8.2-8 FreeType-based font drawing library for X
++ii libxi-dev 1.0.1-4 X11 Input extension library (development headers)
++ii libxi6 1.0.1-4 X11 Input extension library
++ii libxine1 1.1.2+dfsg-7 the xine video/media player library, binary files
++ii libxinerama-dev 1.0.1-4.1 X11 Xinerama extension library (development headers)
++ii libxinerama1 1.0.1-4.1 X11 Xinerama extension library
++ii libxkbfile1 1.0.3-2 X11 keyboard file manipulation library
++ii libxklavier10 2.2-5 X Keyboard Extension high-level API
++ii libxml-dom-perl 1.43-4 Perl module for building DOM Level 1 compliant doc structures
++ii libxml-handler-trees-perl 0.02-5 Perl module for building tree structures using PerlSAX handlers
++ii libxml-libxml-common-perl 0.13-5 Perl module for common routines & constants for XML::LibXML et al
++ii libxml-libxml-perl 1.59-2 Perl module for using the GNOME libxml2 library
++ii libxml-namespacesupport-per 1.09-3 Perl module for supporting simple generic namespaces
++ii libxml-parser-perl 2.34-4.2 Perl module for parsing XML files
++ii libxml-perl 0.08-1 Perl modules for working with XML
++ii libxml-regexp-perl 0.03-7 Perl module for regular expressions for XML tokens
++ii libxml-sax-expat-perl 0.37-3 Perl module for a SAX2 driver for Expat (XML::Parser)
++ii libxml-sax-perl 0.12-5 Perl module for using and building Perl SAX2 XML processors
++ii libxml-simple-perl 2.14-5 Perl module for reading and writing XML
++ii libxml-stream-perl 1.22-2 Perl module for accessing XML Streams
++ii libxml-writer-perl 0.602-1 Perl module for writing XML documents
++ii libxml-xql-perl 0.68-4 Perl module for querying XML tree structures with XQL
++ii libxml1 1.8.17-14+etch1 GNOME XML library
++ii libxml2 2.6.27.dfsg-6+etch1 GNOME XML library
++ii libxml2-dbg 2.6.27.dfsg-6+etch1 Debugging symbols for the GNOME XML library
++ii libxml2-dev 2.6.27.dfsg-6+etch1 Development files for the GNOME XML library
++ii libxml2-doc 2.6.27.dfsg-6+etch1 Documentation for the GNOME XML library
++ii libxml2-utils 2.6.27.dfsg-6+etch1 XML utilities
++ii libxmms-perl 0.12-5.1 Interactive remote control for XMMS (X MultiMedia System) in perl
++ii libxmms-ruby 0.1.2-1 XMMS extension module for programming language Ruby
++ii libxmmsclient-glib0 0.2DrGonzo-4.1 XMMS2 - glib client library
++ii libxmmsclient0 0.2DrGonzo-4.1 XMMS2 - client library
++ii libxmp2 2.0.4d-11 Shared library files for xmp, xxmp and the xmp XMMS plugin
++ii libxmpi4 2.2.3b8-10 A graphical user interface for MPI program development
++ii libxmu-dev 1.0.2-2 X11 miscellaneous utility library (development headers)
++ii libxmu-headers 1.0.2-2 X11 miscellaneous utility library headers
++ii libxmu6 1.0.2-2 X11 miscellaneous utility library
++ii libxmuu1 1.0.2-2 X11 miscellaneous micro-utility library
++ii libxosd2 2.2.14-1.3 X On-Screen Display library - runtime
++ii libxp-dev 1.0.0.xsf1-1 X Printing Extension (Xprint) client library (development files)
++ii libxp6 1.0.0.xsf1-1 X Printing Extension (Xprint) client library
++ii libxpm-dev 3.5.5-2 X11 pixmap library (development headers)
++ii libxpm4 3.5.5-2 X11 pixmap library
++ii libxrandr-dev 1.1.0.2-5 X11 RandR extension library (development headers)
++ii libxrandr2 1.1.0.2-5 X11 RandR extension library
++ii libxrender-dev 0.9.1-3 X Rendering Extension client library (development files)
++ii libxrender1 0.9.1-3 X Rendering Extension client library
++ii libxres1 1.0.1-2 X11 Resource extension library
++ii libxslt1-dev 1.1.19-3 XSLT processing library - development kit
++ii libxslt1.1 1.1.19-3 XSLT processing library - runtime library
++ii libxss1 1.1.0-1 X11 Screen Saver extension library
++ii libxt-dev 1.0.2-2 X11 toolkit intrinsics library (development headers)
++ii libxt-java 0.20050823-2 An implementation in Java of XSL Transformations
++ii libxt6 1.0.2-2 X11 toolkit intrinsics library
++ii libxtrap6 1.0.0-4 X11 event trapping extension library
++ii libxtst-dev 1.0.1-5 X11 Record extension library (development headers)
++ii libxtst6 1.0.1-5 X11 Testing -- Resource extension library
++ii libxul-common 1.8.0.15~pre080614i-0etch1 Gecko engine library - common files
++ii libxul0d 1.8.0.15~pre080614i-0etch1 Gecko engine library
++ii libxv1 1.0.2-1 X11 Video extension library
++ii libxvmc1 1.0.2-2 X11 Video extension library
++ii libxxf86dga1 1.0.1-2 X11 Direct Graphics Access extension library
++ii libxxf86misc1 1.0.1-2 X11 XFree86 miscellaneous extension library
++ii libxxf86vm1 1.0.1-2 X11 XFree86 video mode extension library
++ii libyaz2 2.1.18-2 The YAZ Z39.50 toolkit (runtime files)
++ii libzeroc-ice31 3.1.1-2 Ice for C++ runtime library
++ii libzzip-0-12 0.12.83-8 library providing read access on ZIP-archives - library
++ii liferea 1.0.27-2 feed aggregator for GNOME
++ii liferea-xulrunner 1.0.27-2 xulrunner-based rendering library for Liferea
++ii lintian 1.23.28+etch1 Debian package checker
++ii linux-doc-2.6.26 2.6.26-21lenny3+c5+1 Linux kernel specific documentation for version 2.6.26
++ii linux-headers-2.6.26-2-amd6 2.6.26-21lenny3+c5+1 Header files for Linux 2.6.26-2-amd64
++ii linux-headers-2.6.26-2-comm 2.6.26-21lenny3+c5+1 Common header files for Linux 2.6.26-2
++ii linux-image-2.6.26-2-amd64 2.6.26-21lenny3+c5+1 Linux 2.6.26 image on AMD64
++ii linux-kbuild-2.6.26 2.6.26-4~c5+1 Kbuild infrastructure for Linux 2.6.26
++ii linux-kernel-headers 2.6.18-7 Linux Kernel Headers for development
++ii linux-sound-base 1.0.13-5etch1 base package for ALSA and OSS sound systems
++ii linux-source-2.6.26 2.6.26-21lenny3+c5+1 Linux kernel source for version 2.6.26 with Debian patches
++ii linux32 1-3 Wrapper to set the execution domain
++ii linuxdoc-tools 0.9.21-0.5 SGML converters for the LinuxDoc DTD only.
++ii lisa 3.5.5-5 LAN information server for KDE
++ii lmodern 1.00-3 scalable PostScript fonts based on Computer Modern
++ii locales 2.3.6.ds1-13etch10 GNU C Library: National Language (locale) data [support]
++ii login 4.0.18.1-7+etch1 system login tools
++ii logjam-xmms 4.5.3-1+b1 Command-line XMMS song title retriever
++ii logrotate 3.7.1-3 Log rotation utility
++ii lp-solve 5.5-4 Solve (mixed integer) linear programming problems
++ii lsb-base 3.1-23.2etch1 Linux Standard Base 3.1 init script functionality
++ii lsb-core 3.1-23.2etch1 Linux Standard Base 3.1 core support package
++ii lsb-cxx 3.1-23.2etch1 Linux Standard Base 3.1 C++ support package
++ii lsb-desktop 3.1-23.2etch1 Linux Standard Base 3.1 Desktop support package
++ii lsb-graphics 3.1-23.2etch1 Linux Standard Base 3.1 graphics support package
++ii lsb-qt4 3.1-23.2etch1 Linux Standard Base 3.1 Qt4 support package
++ii lsb-release 3.1-23.2etch1 Linux Standard Base version reporting utility
++ii lskat 3.5.5-1 Lieutnant Skat card game for KDE
++ii lsof 4.77.dfsg.1-3 List open files
++ii ltrace 0.4-1 Tracks runtime library calls in dynamically linked programs
++ii lua50 5.0.3-2 Small embeddable language with simple procedural syntax
++ii lynx 2.8.5-2sarge2.2 Text-mode WWW Browser
++ii lyx 1.4.3-3 High Level Word Processor
++ii lyx-common 1.4.3-3 High Level Word Processor - common files
++ii lyx-qt 1.4.3-3 High Level Word Processor - Qt frontend
++ii lyx-xforms 1.4.3-3 High Level Word Processor - XForms frontend
++ii lzop 1.01-4 fast compression program
++ii m4 1.4.8-2 a macro processing language
++ii mailx 8.1.2-0.20050715cvs-1 A simple mail user agent
++ii maint-guide-fr 1.2.11 French translation of Debian New Maintainers' Guide
++ii make 3.81-2 The GNU version of the "make" utility.
++ii makedev 2.3.1-83 creates device files in /dev
++ii man-db 2.4.3-6 The on-line manual pager
++ii manedit 0.7.1-1 A GTK+-based Enhanced ManPage Editor and -Viewer
++ii manpages 2.39-1 Manual pages about using a GNU/Linux system
++ii manpages-fr 2.39.1-5 French version of the manual pages about using GNU/Linux
++ii manpages-fr-dev 2.39.1-5 French version of the development manual pages
++ii manpages-fr-extra 20070311 French version of the manual pages
++ii mawk 1.3.3-11 a pattern scanning and text processing language
++ii maxima 5.10.0-6 A computer algebra system -- base system
++ii maxima-doc 5.10.0-6 A computer algebra system -- documentation
++ii maxima-emacs 5.10.0-6 A computer algebra system -- emacs interface
++ii maxima-share 5.10.0-6 A computer algebra system -- extra code
++ii maxima-src 5.10.0-6 A computer algebra system -- source code
++ii maxima-test 5.10.0-6 A computer algebra system -- test suite
++ii mayavi 1.5-4 A scientific data visualization system
++ii mdetect 0.5.2.1 mouse device autodetection tool
++ii meld 1.1.3-1.2 graphical tool to diff and merge files
++ii menu 2.1.33 generates programs menu for all menu-aware applications
++ii menu-xdg 0.2.3 freedesktop.org menu compliant window manager scripts
++ii mercurial 0.9.1-1+etch1 Scalable distributed version control system
++ii mesa-common-dev 6.5.1-0.6 Developer documentation for Mesa
++ii metacity 2.14.5-4 A lightweight GTK2 based Window Manager
++ii metacity-common 2.14.5-4 Shared files of lightweight GTK2 based Window Manager
++ii mime-support 3.39-1 MIME files 'mime.types' & 'mailcap', and support programs
++ii minpack-dev 19961126-11 nonlinear equations and nonlinear least squares static library
++ii mkisofs 1.1.2-1 Dummy transition package for genisoimage
++ii mktemp 1.5-2 Makes unique filenames for temporary files
++ii module-init-tools 3.3-pre4-2 tools for managing Linux kernel modules
++ii moinmoin-common 1.5.3-1.2etch2 Python clone of WikiWiki - common data
++ii mono 1.2.2.1-1etch1 Mono CLI (.NET) runtime
++ii mono-common 1.2.2.1-1etch1 common files for Mono
++ii mono-devel 1.2.2.1-1etch1 Mono CLI runtime with development tools
++ii mono-gac 1.2.2.1-1etch1 Mono GAC tool
++ii mono-gmcs 1.2.2.1-1etch1 Mono C# 2.0 compiler
++ii mono-jay 1.2.2.1-1etch1 LALR(1) parser generator oriented to Java/CLI
++ii mono-jit 1.2.2.1-1etch1 fast CLI JIT/AOT compiler for Mono
++ii mono-mcs 1.2.2.1-1etch1 Mono C# compiler
++ii mono-mjs 1.2.2.1-1etch1 Mono JScript compiler
++ii mono-runtime 1.2.2.1-1etch1 Mono runtime
++ii mono-utils 1.2.2.1-1etch1 Mono utilities
++ii monodoc 1.1.18-1 Mono documentation viewer
++ii monodoc-base 1.1.18-1 shared MonoDoc binaries
++ii monodoc-browser 1.1.17-1 MonoDoc GTK+ based viewer
++ii monodoc-manual 1.1.18-1 compiled XML documentation from the Mono project
++ii montecarlo-base 2005.dfsg-2 [Physics] Common files for Cernlib Monte Carlo libraries
++ii mount 2.12r-19etch1+c5+1 Tools for mounting and manipulating filesystems
++ii mousepad 0.2.8-1 simple Xfce oriented text editor
++ii mp3info 0.8.4-9.2 An MP3 technical info viewer and ID3 1.x tag editor
++ii mpack 1.6-4 tools for encoding/decoding MIME messages
++ii mpeglib 3.5.5-2 mp3 and mpeg I audio and video library
++ii mpg321 0.2.10.3 A Free command-line mp3 player, compatible with mpg123
++ii mpi-specs 20040719-2 [EBOOK-DEV] MPI 1.1 and 2.0 Specifications of MPI Forum
++ii mpich-bin 1.2.7-2 MPI parallel computing system implementation
++ii mpich-mpd-bin 1.2.7-2 MPI parallel computing system implementation, MPD version
++ii mpich-shmem-bin 1.2.7-2 MPI parallel computing system implementation, SHMEM version
++ii mpichpython 2.4.11-1 MPI-enhanced Python interpreter (MPICH based version)
++ii mplayer 1.0~rc1-12etch7 The Movie Player
++ii mplayer-skin-blue 1.6-1 blue skin for mplayer
++ii msttcorefonts 1.8 Installer for Microsoft TrueType core fonts
++ii mtools 3.9.10.ds1-3 Tools for manipulating MSDOS files
++ii mtr-tiny 0.71-2etch1 Full screen ncurses traceroute tool
++ii mutt 1.5.13-1.1etch1 text-based mailreader supporting MIME, GPG, PGP and threading
++ii myspell-en-us 2.0.4~rc1-3 English_american dictionary for myspell
++ii myspell-fr-gut 1.0-18 The French dictionary for myspell (GUTenberg version)
++ii mysql-client 5.0.32-7etch12 mysql database client (meta package depending on the latest version)
++ii mysql-client-5.0 5.0.32-7etch12 mysql database client binaries
++ii mysql-common 5.0.32-7etch12 mysql database common files (e.g. /etc/mysql/my.cnf)
++ii mysql-query-browser 1.2.5beta-3 Official GUI tool to query MySQL database
++ii mysql-query-browser-common 1.2.5beta-3 Architecture independent files for MySQL Query Browser
++ii nano 2.0.2-1etch1 free Pico clone with some new features
++ii nautilus 2.14.3-11+b1 file manager and graphical shell for GNOME
++ii nautilus-cd-burner 2.14.3-8+b1 CD Burning front-end for Nautilus
++ii nautilus-data 2.14.3-11 data files for nautilus
++ii nautilus-open-terminal 0.7-1 nautilus plugin for opening terminals in arbitrary local paths
++ii ncftp 3.2.0-1 A user-friendly and well-featured FTP client
++ii ncftp2 2.4.3-15 A user-friendly and well-featured FTP client
++ii nco 2.9.9-3 netCDF Operators
++ii ncompress 4.2.4.0-2 Original Lempel-Ziv compress/uncompress programs
++ii ncurses-base 5.5-5 Descriptions of common terminal types
++ii ncurses-bin 5.5-5 Terminal-related programs and man pages
++ii ncurses-term 5.5-5 Additional terminal type definitions
++ii nedit-smotif 5.5-1 Version open-motif et static (x86) de Nedit.
++ii net-tools 1.60-17 The NET-3 networking toolkit
++ii netbase 4.29 Basic TCP/IP networking system
++ii netcat 1.10-32 TCP/IP swiss army knife
++ii netcdf-bin 3.6.1-1 Programs for reading and writing NetCDF files
++ii netcdf-doc 3a-2.1 Documentation for NetCDF.
++ii netcdf-perl 1.2.1-8 A perl extension for accessing netCDF datasets
++ii netcdfg-dev 3.6.1-1 Development kit for NetCDF
++ii netpbm 10.0-11.1+etch1 Graphics conversion tools
++ii networkstatus 3.5.5.dfsg.1-6 KDE network status monitor
++ii nfs-common 1.0.10-6+etch.1 NFS support files common to client and server
++ii nis 3.17-6 Clients and daemons for the Network Information Services (NIS)
++ii nmap 4.11-1 The Network Mapper
++ii noatun 3.5.5-2 media player for KDE
++ii noatun-plugins 3.5.5-1 plugins for Noatun, the KDE media player
++ii normalize-audio 0.7.7-1 adjust the volume of WAV files to a standard volume level
++ii nscd 2.3.6.ds1-13etch10 GNU C Library: Name Service Cache Daemon
++ii nspluginwrapper 0.9.91.5-3+c5+1 A wrapper to run Netscape plugins on other architectures
++ii ntp 4.2.2.p4+dfsg-2etch4 Network Time Protocol daemon and utility programs
++ii ntpdate 4.2.2.p4+dfsg-2etch4 client for setting system time from NTP servers
++ii nvidia-glx 185.18.14-5 NVIDIA binary Xorg driver
++ii nvidia-glx-ia32 185.18.14-5 NVIDIA binary driver 32bit libs
++ii nvidia-libvdpau 185.18.14-5 NVIDIA vdpau libraries
++ii nvidia-libvdpau-ia32 185.18.14-5 NVIDIA vdpau 32bit libraries
++ii nvidia-settings 185.18.14-2+c5+1.1 Tool for configuring the NVIDIA graphics driver
++ii o3read 0.0.4-1 standalone converter for OpenOffice.org documents
++ii ocaml-base-nox 3.09.2-9 Runtime system for ocaml bytecode executables
++ii ocamlcvs 1.9.13-2 graphical frontend for accessing CVS
++ii ocrad 0.16-1 Optical Character Recognition program
++ii ocsinventory-agent 0.0.9.2repack1-11 Hardware and software inventory tool (client)
++ii octave-epstk 2.1-7 GNU Octave encapsulated postscript toolkit
++ii octave-plplot 5.6.1-10 Octave support for PLplot, a plotting library
++ii octave-sp 2003-4 Semidefinite Programming functions for GNU Octave
++ii octave2.1 2.1.73-13 GNU Octave language for numerical computations (2.1 branch)
++ii octave2.1-doc 2.1.73-13 PDF documentation on the GNU Octave language (2.1 branch)
++ii octave2.1-emacsen 2.1.73-13 Emacs support for the GNU Octave language (2.1 branch)
++ii octave2.1-forge 2006.03.17+dfsg1-3 Contributed functions from the GNU Octave Repository
++ii octave2.1-headers 2.1.73-13 header files for the GNU Octave language (2.1 branch)
++ii octave2.1-htmldoc 2.1.73-13 HTML documentation on the GNU Octave language (2.1 branch)
++ii octave2.1-info 2.1.73-13 GNU Info documentation on the GNU Octave language (2.1 branch)
++ii octave2.9 2.9.9-8etch1 GNU Octave language for numerical computations (2.9 branch)
++ii octave2.9-doc 2.9.9-8etch1 PDF documentation on the GNU Octave language (2.9 branch)
++ii octave2.9-emacsen 2.9.9-8etch1 Emacs support for the GNU Octave language (2.9 branch)
++ii octave2.9-forge 2006.07.09+dfsg1-8 Contributed functions from the GNU Octave Repository
++ii octave2.9-headers 2.9.9-8etch1 header files for the GNU Octave language (2.9 branch)
++ii octave2.9-htmldoc 2.9.9-8etch1 HTML documentation on the GNU Octave language (2.9 branch)
++ii octave2.9-info 2.9.9-8etch1 GNU Info documentation on the GNU Octave language (2.9 branch)
++ii octofuss-client 2.0.6 OctoFuss client
++ii odbcinst1debian1 2.2.11-13 Support library and helper program for accessing odbc ini files
++ii ogre-doc 1.0.6-1.4 Object-oriented Graphics Rendering Engine (documentation)
++ii ogre-tools 1.0.6-1.4 Object-oriented Graphics Rendering Engine (tools)
++ii openbsd-inetd 0.20050402-6 The OpenBSD Internet Superserver
++ii openclipart-openoffice.org 0.18+dfsg-4 clip art for OpenOffice.org gallery
++ii openclipart-png 0.18+dfsg-4 clip art in PNG format
++ii openoffice.org 2.0.4.dfsg.2-7etch9 OpenOffice.org Office suite version 2.0
++ii openoffice.org-base 2.0.4.dfsg.2-7etch9 OpenOffice.org office suite - database
++ii openoffice.org-calc 2.0.4.dfsg.2-7etch9 OpenOffice.org office suite - spreadsheet
++ii openoffice.org-common 2.0.4.dfsg.2-7etch9 OpenOffice.org office suite architecture independent files
++ii openoffice.org-core 2.0.4.dfsg.2-7etch9 OpenOffice.org office suite architecture dependent files
++ii openoffice.org-draw 2.0.4.dfsg.2-7etch9 OpenOffice.org office suite - drawing
++ii openoffice.org-evolution 2.0.4.dfsg.2-7etch9 Evolution Addressbook support for OpenOffice.org
++ii openoffice.org-gcj 2.0.4.dfsg.2-7etch9 OpenOffice.orgs Java libraries (native for use with GIJ)
++ii openoffice.org-gnome 2.0.4.dfsg.2-7etch9 GNOME Integration for OpenOffice.org (VFS, GConf)
++ii openoffice.org-gtk 2.0.4.dfsg.2-7etch9 GTK Integration for OpenOffice.org (Widgets, Dialogs, Quickstarter)
++ii openoffice.org-help-en-us 2.0.4.dfsg.2-7etch9 English_american help for OpenOffice.org
++ii openoffice.org-help-fr 2.0.4.dfsg.2-7etch9 French help for OpenOffice.org
++ii openoffice.org-impress 2.0.4.dfsg.2-7etch9 OpenOffice.org office suite - presentation
++ii openoffice.org-java-common 2.0.4.dfsg.2-7etch9 OpenOffice.org office suite Java support arch. independent files
++ii openoffice.org-kde 2.0.4.dfsg.2-7etch9 KDE Integration for OpenOffice.org (Widgets, Dialogs, Addressbook)
++ii openoffice.org-l10n-fr 2.0.4.dfsg.2-7etch9 French language package for OpenOffice.org
++ii openoffice.org-math 2.0.4.dfsg.2-7etch9 OpenOffice.org office suite - equation editor
++ii openoffice.org-thesaurus-en 2.0.4~rc1-3 English Thesaurus for OpenOffice.org
++ii openoffice.org-writer 2.0.4.dfsg.2-7etch9 OpenOffice.org office suite - word processor
++ii openscenegraph 1.2.0-2+b1 3D scenegraph binary files
++ii openscenegraph-doc 1.2.0-2 3D scenegraph documentation
++ii openssh-blacklist 0.1.1 list of blacklisted OpenSSH RSA and DSA keys
++ii openssh-client 4.3p2-9etch3 Secure shell client, an rlogin/rsh/rcp replacement
++ii openssh-server 4.3p2-9etch3 Secure shell server, an rshd replacement
++ii openssl 0.9.8c-4etch9 Secure Socket Layer (SSL) binary and related cryptographic tools
++ii oprofile 0.9.2-3 system-wide profiler for Linux systems
++ii oprofile-common 0.9.2-3 system-wide profiler for Linux systems (command line components)
++ii oprofile-gui 0.9.2-3 system-wide profiler for Linux systems (GUI components)
++ii oracle-client-10 10.2.0.1-1 Client Oracle 10
++ii orbit2 2.14.3-0.2 a CORBA ORB
++ii oregano 0.60.0-1 tool for schematical capture of electronic circuits
++ii oss-compat 0.0.4 OSS compatibility package
++ii p7zip 4.43~dfsg.1-2 7zr file archiver with high compression ratio
++ii p7zip-full 4.43~dfsg.1-2 7z and 7za file archivers with high compression ratio
++ii paje.app 1.4.0-5 generic visualization tool (Gantt chart and more)
++ii paraview 3.4.0-3 Paraview
++ii passwd 4.0.18.1-7+etch1 change and administer password and group data
++ii patch 2.5.9-4 Apply a diff file to an original
++ii patchutils 0.2.31-3 Utilities to work with patches
++ii paw 2.14.04-7 Physics Analysis Workstation - a graphical analysis program
++ii paw++ 2.14.04-7 Physics Analysis Workstation (Lesstif-enhanced version)
++ii paw-common 2.14.04-7 Physics Analysis Workstation (common files)
++ii paw-demos 2.14.04-7 Physics Analysis Workstation examples and tests
++ii pax 1.5-15 Portable Archive Interchange
++ii pbuilder 0.161 personal package builder for Debian packages
++ii pciutils 2.2.4~pre4-1 Linux PCI Utilities
++ii pconf-detect 0.5-8.1 Small printer auto-detect command-line tool
++ii pdftk 1.40-2 A useful tool for manipulating PDF documents
++ii perl 5.8.8-7etch6 Larry Wall's Practical Extraction and Report Language
++ii perl-base 5.8.8-7etch6 The Pathologically Eclectic Rubbish Lister
++ii perl-doc 5.8.8-7etch6 Perl documentation
++ii perl-modules 5.8.8-7etch6 Core Perl modules
++ii perl-suid 5.8.8-7etch6 Runs setuid Perl scripts
++ii perl-tk 804.027-7 Perl module providing the Tk graphics library.
++ii pgf 1.09-1 TeX Portable Graphic Format
++ii php4-cli 4.4.4-8+etch6 command-line interpreter for the php4 scripting language
++ii php4-common 4.4.4-8+etch6 Common files for packages built from the php4 source
++ii pidentd 3.0.19.ds1-1 TCP/IP IDENT protocol server with DES support
++ii pinentry-curses 0.7.2-3 curses-based PIN or pass-phrase entry dialog for GnuPG
++ii pinentry-qt 0.7.2-3 Qt-based PIN or pass-phrase entry dialog for GnuPG
++ii pkg-config 0.21-1 manage compile and link flags for libraries
++ii planner 0.14.2-2 project management application
++ii plotdrop 0.5-1 A minimal GNOME frontend to GNUPlot
++ii plotmtv 1.4.4t-9 Multipurpose X11 plotting program
++ii plotutils 2.4.1-15 The GNU plotutils (plotting utilities) package
++ii plplot-doc 5.6.1-10 Documentation for PLplot, a plotting library
++ii plplot9-driver-gd 5.6.1-10 Scientific plotting library (GD driver)
++ii plplot9-driver-gnome2 5.6.1-10 Scientific plotting library (Gnome Canvas Widget driver)
++ii plplot9-driver-psttf 5.6.1-10 Scientific plotting library (PostScript with Unicode support)
++ii plplot9-driver-wxwidgets 5.6.1-10 Scientific plotting library (wxWidgets driver)
++ii plplot9-driver-xwin 5.6.1-10 Scientific plotting library (X11 driver)
++ii plptools-kde 0.15-1.2 KDE integration of plptools
++ii pmount 0.9.13-1+b1 mount removable devices as normal user
++ii po-debconf 1.0.8 manage translated Debconf templates files with gettext
++ii policycoreutils 1.32-3 SELinux core policy utilities
++ii popularity-contest 1.41 Vote for your favourite packages automatically
++ii portmap 5-26 The RPC portmapper
++ii poster 19990428-8 Create large posters out of PostScript pages
++ii postgresql-client 7.5.22 front-end programs for PostgreSQL (transitional package)
++ii postgresql-client-7.4 7.4.27-0etch1 front-end programs for PostgreSQL 7.4
++ii postgresql-client-8.1 8.1.19-0etch1 front-end programs for PostgreSQL 8.1
++ii postgresql-client-common 71 manager for multiple PostgreSQL client versions
++ii powermgmt-base 1.29 Common utils and configs for power management
++ii poxml 3.5.5-3 tools for using PO-files to translate DocBook XML files
++ii ppp 2.4.4rel-8 Point-to-Point Protocol (PPP) daemon
++ii prcs 1.3.3-8 The Project Revision Control System
++ii prcs-visualtree 1.3.3-8 Visualize PRCS projects in a graph
++ii preview-latex-style 11.83-6 LaTeX style files for editor embedded preview of some environments
++ii printconf 0.7.7 automatically configures USB and parallel printers with CUPS
++ii procmail 3.22-16 Versatile e-mail processor
++ii procps 3.2.7-3 /proc file system utilities
++ii proj 4.4.9d-2 Cartographic projection filter and library
++ii ps2eps 1.58-2 convert PostScript to EPS (Encapsulated PostScript) files
++ii psfontmgr 0.11.10-0.1 PostScript font manager -- part of Defoma, Debian Font Manager
++ii psmisc 22.3-1 Utilities that use the proc filesystem
++ii pstoedit 3.44-1 PostScript and PDF files to editable vector graphics converter
++ii psutils 1.17-24 A collection of PostScript document handling utilities
++ii pvm 3.4.5-7 Parallel Virtual Machine - binaries
++ii pvm-dev 3.4.5-7 Parallel Virtual Machine - development files
++ii pwgen 2.05-1 Automatic Password generation
++ii pxlib1 0.6.1-3 library to read/write Paradox database files
++ii pybaz 1.5pre1-3 python bindings for the bazaar revision control system
++ii pybliographer 1.2.9-1 tool for manipulating bibliographic databases
++ii pychecker 0.8.17-3 Finds common bugs in python source code
++ii pydb 1.19-1 An enhanced Python command-line debugger Pydb is a command-line
++ii pyflakes 0.2.1-2 simple python source checker
++ii pykdeextensions 0.4.0-3 Python packages to support KDE applications (scripts)
++ii pylint 0.12.1-1 python code static checker
++ii pymacs 0.22-6 interface between Emacs Lisp and Python
++ii pymol 0.98+0.99rc6-2 An OpenGL Molecular Graphics System written in Python
++ii pype 2.5-2 python programmers editor
++ii pyqonsole 0.2.0-2+b1 X Window terminal emulation written in Python
++ii pyqt-tools 3.16-1.2 pyuic and pylupdate for Qt3
++ii pyrex-mode 0.9.4.1-2 emacs-lisp pyrex-mode for pyrex
++ii pyro 3.5-1.2 distributed object system for Python
++ii pyste 1.33.1-10 Boost.Python code generator
++ii python 2.4.4-2 An interactive high-level object-oriented language (default version)
++ii python-4suite 0.99cvs20060405-1.1 An open-source platform for XML and RDF processing
++ii python-4suite-common 0.99cvs20060405-1.1 Common files used by 4Suite packages
++ii python-4suite-doc 0.99cvs20060405-1.1 Documentation for 4Suite
++ii python-albatross 1.35-2 Toolkit for Stateful Web Applications
++ii python-albatross-common 1.35-2 Toolkit for Stateful Web Applications (common files)
++ii python-albatross-doc 1.35-2 documentation for the Albatross Web Toolkit
++ii python-apt 0.6.19 Python interface to libapt-pkg
++ii python-bibtex 1.2.2-3 Python interfaces to BibTeX and the GNU Recode library
++ii python-biggles 1.6.4-3 Scientific plotting package for Python
++ii python-cairo 1.2.0-1 Python bindings for the Cairo vector graphics library
++ii python-cairo-dev 1.2.0-1 Python cairo bindings: development files
++ii python-celementtree 1.0.5-8 Light-weight toolkit for XML processing
++ii python-central 0.5.12 register and build utility for Python packages
++ii python-chardet 1.0-1 universal character encoding detector
++ii python-clearsilver 0.10.3-4.1 python bindings for clearsilver
++ii python-configobj 4.3.2-2 a simple but powerful config file reader and writer for Python
++ii python-constraint 0.3.0-5 constraints satisfaction solver in Python
++ii python-crypto 2.0.1+dfsg1-1.2+etch0 cryptographic algorithms and protocols for Python
++ii python-ctypes 1.0.0-1.1 Python package to create and manipulate C data types
++ii python-cxx 5.3.6-1 A Set of facilities to extend Python with C++
++ii python-cxx-dev 5.3.6-1 A Set of facilities to extend Python with C++
++ii python-dateutil 1.1-1 powerful extensions to the standard datetime module
++ii python-davlib 1.8-4 WebDAV client library for Python
++ii python-dbus 0.71-3 simple interprocess messaging system (Python interface)
++ii python-dcop 3.5.5-1 DCOP bindings for Python
++ii python-dev 2.4.4-2 Header files and a static library for Python (default)
++ii python-diacanvas2 0.14.4-4 DiaCanvas2 library support for Python (default version)
++ii python-dispatch 0.5adev-5 Rule-based Dispatching and Generic Functions
++ii python-django 0.95.1-1etch2 A high-level Python Web framework
++ii python-dns 2.3.0-5.2+etch2 pydns - DNS client module for Python
++ii python-doc 2.4.4-1 Documentation for the high-level object-oriented language Python
++ii python-docutils 0.4-3 Utilities for the documentation of Python modules
++ii python-editobj 0.5.7-6 Python object editor
++ii python-egenix-mx-base-dev 2.0.6-4 development files for the egenix-mx-base distribution
++ii python-egenix-mxdatetime 2.0.6-4 date and time handling routines for Python
++ii python-egenix-mxproxy 2.0.6-4 generic proxy wrapper type for Python
++ii python-egenix-mxqueue 2.0.6-4 fast and memory-efficient queue for Python
++ii python-egenix-mxstack 2.0.6-4 fast and memory-efficient stack for Python
++ii python-egenix-mxtexttools 2.0.6-4 fast text manipulation tools for Python
++ii python-egenix-mxtools 2.0.6-4 collection of new builtins for Python
++ii python-elementtidy 1.0-4 An HTML tree builder for ElementTree based on Tidy
++ii python-elementtree 1.2.6-10 Light-weight toolkit for XML processing
++ii python-elementtree-doc 1.2.6-10 Documentation for ElementTree
++ii python-epydoc 2.1-11 tool for generating Python API documentation
++ii python-examples 2.4.4-2 Examples for the Python language (default version)
++ii python-excelerator 0.6.3a-1 module for reading/writing Excel spreadsheet files
++ii python-feedparser 4.1-7 Universal Feed Parser for Python
++ii python-fibranet 10-1 cooperative threading and event driven framework
++ii python-foomatic 0.7.7 Python interface to the Foomatic printer database
++ii python-formencode 0.6-1 validation and form generation python package
++ii python-fuse 2.5-5+b2 Python bindings for FUSE (Filesystems in USErland)
++ii python-gadfly 1.0.0-11 SQL database and parser generator for Python
++ii python-gd 0.52debian-2 Python module wrapper for libgd
++ii python-gdchart2 0.beta1-3.3 Python OO interface to GDChart
++ii python-gdchart2-doc 0.beta1-3.3 Python OO interface to GDChart - docs
++ii python-gendoc 0.73-11 Documentation generation from Python source files
++ii python-glade-1.2 0.6.12-8 Put a bit of python code behind interfaces built with GLADE
++ii python-glade2 2.8.6-8 GTK+ bindings: Glade support
++ii python-gmenu 2.16.1-3 an implementation of the freedesktop menu specification for GNOME
++ii python-gnome2 2.12.4-6 Python bindings for the GNOME desktop environment
++ii python-gnome2-desktop 2.14.0-3 Python bindings for the GNOME desktop environment
++ii python-gnome2-extras 2.14.3-1 Python bindings for the GNOME desktop environment
++ii python-gnuplot 1.7-7 A Python interface to the gnuplot plotting program
++ii python-gst0.10 0.10.5-5 generic media-playing framework (Python bindings)
++ii python-gtk-1.2 0.6.12-8 GTK support module for Python
++ii python-gtk2 2.8.6-8 Python bindings for the GTK+ widget set
++ii python-gtk2-dev 2.8.6-8 GTK+ bindings: devel files
++ii python-gtk2-doc 2.8.1-1 documentation and API reference of GTK2 bindings for python
++ii python-gtk2-tutorial 2.4-1 tutorial for the GTK2 python library
++ii python-gtkmvc 0.9.2-1.1 model-view-controller (MVC) implementation for pygtk
++ii python-happydoc 2.1-5 Python Documentation Extraction Tool
++ii python-happydoc-doc 2.1-5 Python Documentation Extraction Tool Documentation
++ii python-htmlgen 2.2.2-11 Python library for the generation of HTML
++ii python-httplib2 0.2.0-2 A comprehensive HTTP client library written in python
++ii python-imaging 1.1.5-11 Python Imaging Library
++ii python-imaging-doc 1.1.5-11 Examples for the Python Imaging Library
++ii python-imaging-doc-html 1.1.2-1.1 Documentation for the Python Imaging Library.
++ii python-imaging-doc-pdf 1.1.2-1.1 Documentation for the Python Imaging Library.
++ii python-imaging-tk 1.1.5-11 Python Imaging Library ImageTk Module
++ii python-ipy 0.52-2 Python module for handling IPv4 and IPv6 addresses and networks
++ii python-kde3 3.15.2+20060422-3 KDE3 bindings for Python
++ii python-kde3-dev 3.15.2+20060422-3 KDE3 bindings for Python - Development files and scripts
++ii python-kde3-doc 3.15.2+20060422-3 Documentation and examples for PyKDE
++ii python-kinterbasdb 3.1.2-0.3 InterBase/Firebird support for Python
++ii python-kiwi 1.9.9-2 a graphical framework to construct simple UI
++ii python-kjbuckets 1.0.0-11 Set and graph data types for Python
++ii python-ldap-doc 2.2.0-1 Documentation for the Python LDAP interface module
++ii python-libxml2 2.6.27.dfsg-6+etch1 Python bindings for the GNOME XML library
++ii python-logilab-astng 0.16.2-2 extend python's abstract syntax tree
++ii python-logilab-common 0.21.0-2 useful miscellaneous modules used by Logilab projects
++ii python-lxml 1.1.1-1 pythonic binding for the libxml2 and libxslt libraries
++ii python-m2crypto 0.16-1.1 a crypto and SSL toolkit for Python
++ii python-matplotlib 0.87.7-0.3 python based plotting system in a style similar to Matlab
++ii python-matplotlib-data 0.87.7-0.3 python based plotting system (data package)
++ii python-matplotlib-doc 0.87.7-0.3 python based plotting system (documentation package)
++ii python-medusa 0.5.4+clean-1 Framework for implementing asynchronous servers
++ii python-medusa-doc 0.5.4+clean-1 Framework for implementing asynchronous servers
++ii python-minimal 2.4.4-2 A minimal subset of the Python language (default version)
++ii python-mode 1.0-3.1 Emacs-lisp python-mode and doctest-mode for the Python language
++ii python-moinmoin 1.5.3-1.2etch2 Python clone of WikiWiki - library
++ii python-mpi 2.4.11-1 MPI module for Python
++ii python-mysqldb 1.2.1-p2-4 A Python interface to MySQL
++ii python-netcdf 2.4.11-1 A netCDF interface for Python
++ii python-networkx 0.32-2 tool to manipulate and study more than complex networks
++ii python-newt 0.52.2-10+etch1 A NEWT module for Python
++ii python-nose 0.9.0-2 test discovery and running for Python's unittest
++ii python-notify 0.1.0-2.1 Python bindings for libnotify
++ii python-numarray 1.5.2-2.2 An array processing package modelled after Python-Numeric
++ii python-numarray-doc 1.5.2-2.2 An array processing package for Python (documentation)
++ii python-numarray-ext 1.5.2-2.2 Extension modules for Python array processing
++ii python-numeric 24.2-7 Numerical (matrix-oriented) Mathematics for Python
++ii python-numeric-ext 24.2-7 Extension modules for Numeric Python
++ii python-numeric-tutorial 24.2-7 Tutorial for the Numerical Python Library
++ii python-numpy 1.0.1-1 Numerical Python adds a fast array facility to the Python language
++ii python-numpy-dev 1.0.1-1 Numerical Python adds a fast array facility to the Python language
++ii python-numpy-doc 1.0.1-1 Numpy documentation
++ii python-openal 0.1.6-2 port for Python of the OpenAL library
++ii python-opengl 2.0.1.09.dfsg.1-0.2 Python bindings to OpenGL
++ii python-pam 0.4.2-10.4 A Python interface to the PAM library
++ii python-parallel 0.2-5 Module encapsulating access for the parallel port
++ii python-paramiko 1.5.2-0.1 make SSH2 connections with python
++ii python-pexpect 2.1-1 Python module for automating interactive applications
++ii python-plplot 5.6.1-10 Python support for PLplot, a plotting library
++ii python-ply 2.2-1 Lex and Yacc implementation for Python
++ii python-ply-doc 2.2-1 Lex and Yacc implementation for Python
++ii python-pmock 0.3-5.1 Python module for unit testing using mock objects
++ii python-pmw 1.2-5 Pmw -- Python MegaWidgets
++ii python-pmw-doc 1.2-5 Pmw -- Python MegaWidgets
++ii python-pqueue 0.2-7 a priority queue extension for Python
++ii python-profiler 2.4.4-3 deterministic profiling of any Python programs
++ii python-protocols 1.0a0dev-5 Open Protocols and Component Adaptation for Python
++ii python-psyco-doc 1.5.1-1 python specializing compiler documentation
++ii python-psycopg2 2.0.5.1-6 Python module for PostgreSQL
++ii python-pycurl 7.15.5-1 Python bindings to libcurl
++ii python-pydot 0.9.10-1 Python interface to Graphviz's dot
++ii python-pygame 1.7.1release-4.1 SDL bindings for games development in Python
++ii python-pygments 0.5.1-1 syntax highlighting package written in Python
++ii python-pylibacl 0.2.1-3.1 module for manipulating POSIX.1e ACLs
++ii python-pyode 1.1.0-1 open-source Python bindings for The Open Dynamics Engine
++ii python-pyode-doc 1.1.0-1 open-source Python bindings for The Open Dynamics Engine
++ii python-pyogg 1.3-1.1 A Python interface to the Ogg library
++ii python-pyopenssl 0.6-2.3 Python wrapper around the OpenSSL library (dummy package)
++ii python-pyorbit 2.0.1-5 A Python language binding for the ORBit2 CORBA implementation
++ii python-pyparsing 1.4.2-1.1 Python parsing module
++ii python-pyrex 0.9.4.1-2 compile native-code modules for python from python-like syntax
++ii python-pysqlite2 2.3.2-2 python interface to SQLite 3
++ii python-pyvorbis 1.3-1.2 A Python interface to the Ogg Vorbis library
++ii python-pyvtk 0.4.66-6 module for manipulating VTK files
++ii python-qt-dev 3.16-1.2 Qt bindings for Python - Development files
++ii python-qt3 3.16-1.2 Qt3 bindings for Python
++ii python-qt3-doc 3.16-1.2 Qt bindings for Python - Documentation and examples
++ii python-qt3-gl 3.16-1.2 Qt3 OpenGL bindings for Python
++ii python-qt4 4.0.1-5 Python bindings for Qt4
++ii python-qt4-dev 4.0.1-5 Development files for PyQt4
++ii python-qt4-doc 4.0.1-5 Documentation and examples for PyQt4
++ii python-qt4-gl 4.0.1-5 Python bindings for Qt4's OpenGL module
++ii python-qtext 3.16-1.2 Qt extensions for PyQt
++ii python-qwt4 4.2.1-4 Python version of the Qwt technical widget library
++ii python-qwt4-doc 4.2.1-4 Documentation for the Python-qwt library
++ii python-reportlab 2.0dfsg-1 ReportLab library to create PDF documents using Python
++ii python-reportlab-accel 0.57-20060703-1 C coded extension accelerator for the ReportLab Toolkit
++ii python-reportlab-doc 2.0dfsg-1 Documentation for the ReportLab Python library (PDF format)
++ii python-roman 0.4-3 A module for generating/analyzing Roman numerals
++ii python-rpy 1.0~rc1-2 Python interface to the GNU R language and environment
++ii python-rpy-doc 1.0~rc1-2 Python interface to the GNU R language (documentation package)
++ii python-scientific 2.4.11-1 Python modules useful for scientific computing
++ii python-scientific-doc 2.4.11-1 Python modules useful for scientific computing
++ii python-scipy 0.5.2-0.1 scientific tools for Python
++ii python-selinux 1.32-3 Python bindings to SELinux shared libraries
++ii python-semanage 1.8-1 Python bindings for SELinux policy manipulation tools
++ii python-serial 2.2-4 Module encapsulating access for the serial port
++ii python-setuptools 0.6c3-3 Python Distutils Enhancements
++ii python-simpleparse 2.0.0-3.1 A simple parser generator for Python
++ii python-simpy 1.7.1-1 python-based simulation package
++ii python-simpy-doc 1.7.1-1 python-based simulation package, Documentation and examples
++ii python-simpy-gui 1.7.1-1 python-based simulation package, GUI
++ii python-sip4 4.4.5-4 Python/C++ bindings generator runtime library
++ii python-sip4-dev 4.4.5-4 Python/C++ bindings generator development files
++ii python-soappy 0.11.3-1.7 SOAP Support for Python (SOAP.py)
++ii python-soya 0.12-2 high level 3D engine for Python
++ii python-soya-doc 0.11.1-1 high level 3D engine for Python
++ii python-subversion 1.4.2dfsg1-3 Python bindings for Subversion
++ii python-support 0.5.6 automated rebuilding support for python modules
++ii python-svn 1.5.0dfsg-1 A(nother) Python interface to Subversion
++ii python-syck 0.55-3.3+b1 YAML parser kit -- python bindings (default package)
++ii python-tables 1.3.2-2 hierarchical database for Python based on HDF5
++ii python-tables-doc 1.3.2-2 hierarchical database for Python based on HDF5 - documentation
++ii python-tk 2.4.4-1 Tkinter - Writing Tk applications with Python
++ii python-twisted-bin 2.4.0-3 Event-based framework for internet applications
++ii python-twisted-conch 0.7.0-1 The Twisted SSH Implementation
++ii python-twisted-core 2.4.0-3 Event-based framework for internet applications
++ii python-twisted-lore 0.2.0-2 Documentation generator with HTML and LaTeX support
++ii python-twisted-mail 0.3.0-1 An SMTP, IMAP and POP protocol implementation
++ii python-twisted-names 0.3.0-1 A DNS protocol implementation with client and server
++ii python-twisted-news 0.2.0-1 An NNTP protocol implementation with client and server
++ii python-twisted-runner 0.2.0-1.1 Process management, including an inetd server
++ii python-twisted-web 0.6.0-1 An HTTP protocol implementation together with clients and servers
++ii python-twisted-words 0.4.0-2.1 Chat and Instant Messaging
++ii python-tz 2006p-0.1 Python version of the Olson timezone database
++ii python-uncertainities 0.002-3 Python module for working with uncertain numbers
++ii python-unit 1.4.1-16 unit test framework for Python
++ii python-uno 2.0.4.dfsg.2-7etch9 Python interface for OpenOffice.org
++ii python-visual 3.2.1-4+b2 VPython 3D scientific visualization library
++ii python-vte 0.12.2-5 Python bindings for the VTE widget set
++ii python-vtk 5.0.2-4 Python bindings for VTK
++ii python-wxglade 0.4.1-3 GUI designer written in Python with wxPython
++ii python-wxgtk2.6 2.6.3.2.1.5+etch1 wxWidgets Cross-platform C++ GUI toolkit (wxPython binding)
++ii python-wxversion 2.6.3.2.1.5+etch1 wxWidgets Cross-platform C++ GUI toolkit (wxPython version selector)
++ii python-xattr 0.2-3 module for manipulating filesystem extended attributes
++ii python-xdg 0.15-1.1 A python library to access freedesktop.org standards
++ii python-xml 0.8.4-6 XML tools for Python
++ii python-xmms 2.06-4.1 Python interface to XMMS
++ii python-xmms-doc 2.06-4.1 Python interface to XMMS (documentation)
++ii python-yappy-doc 1.7-1 Documentation for yappy
++ii python-zeroc-ice 3.1.1-1 Ice for Python libraries
++ii python-zopeinterface 3.3.0-6 The implementation of interface definitions for Zope 3
++ii python-zsi 1.7-2 Zolera Soap Infrastructure
++ii python2.4 2.4.4-3+etch3 An interactive high-level object-oriented language (version 2.4)
++ii python2.4-dev 2.4.4-3+etch3 Header files and a static library for Python (v2.4)
++ii python2.4-doc 2.4.4-2 Documentation for the high-level object-oriented language Python (v2.4
++ii python2.4-examples 2.4.4-3+etch3 Examples for the Python language (v2.4)
++ii python2.4-minimal 2.4.4-3+etch3 A minimal subset of the Python language (version 2.4)
++ii python2.5 2.5-5+etch2 An interactive high-level object-oriented language (version 2.5)
++ii python2.5-dev 2.5-5+etch2 Header files and a static library for Python (v2.5)
++ii python2.5-doc 2.5-4 Documentation for the high-level object-oriented language Python (v2.5
++ii python2.5-examples 2.5-5+etch2 Examples for the Python language (v2.5)
++ii python2.5-minimal 2.5-5+etch2 A minimal subset of the Python language (version 2.5)
++ii pythoncad 0.1.33-2 Computer Aided Drafting (CAD) program
++ii pyxmms-remote 1.13-3 command-line interface to XMMS
++ii qca-tls 1.0-3 TLS plugin for the Qt Cryptographic Architecture (QCA)
++ii qcad 2.0.5.0-1-2 A professional CAD System
++ii qcad-doc 2.0.5.0-1-2 Qcad Documentation
++ii qt3-apps-dev 3.3.7-4etch2 Qt3 Developer applications development files
++ii qt3-assistant 3.3.7-4etch2 The Qt3 assistant application
++ii qt3-designer 3.3.7-4etch2 Qt3 Designer
++ii qt3-dev-tools 3.3.7-4etch2 Qt3 development tools
++ii qt3-dev-tools-compat 3.3.7-4etch2 Conversion utilities for Qt3 development
++ii qt3-doc 3.3.7-4etch2 Qt3 API documentation
++ii qt3-examples 3.3.7-4etch2 Examples for Qt3
++ii qt3-linguist 3.3.7-4etch2 The Qt3 Linguist
++ii qt3-qtconfig 3.3.7-4etch2 The Qt3 Configuration Application
++ii qt4-designer 4.2.1-2+etch1 Qt 4 Designer
++ii qt4-dev-tools 4.2.1-2+etch1 Qt 4 development tools
++ii qt4-doc 4.2.1-2+etch1 Qt 4 API documentation
++ii qt4-qtconfig 4.2.1-2+etch1 Qt 4 configuration tool
++ii quanta 3.5.5-1 web development environment for KDE
++ii quanta-data 3.5.5-1 data files for Quanta Plus web development environment
++ii quantlib-python 0.3.13-3 Python bindings for the Quantlib Quantitative Finance library
++ii quota 3.14-7 implementation of the disk quota system
++ii r-base 2.4.0.20061125-1 GNU R statistical computing language and environment
++ii r-base-core 2.4.0.20061125-1 GNU R core of statistical computing language and environment
++ii r-base-dev 2.4.0.20061125-1 GNU R installation of auxiliary GNU R packages
++ii r-base-html 2.4.0.20061125-1 GNU R html docs for statistical computing system functions
++ii r-base-latex 2.4.0.20061125-1 GNU R LaTeX docs for statistical computing system functions
++ii r-cran-abind 1.1.0-3 GNU R abind multi-dimensional array combination function
++ii r-cran-acepack 1.3.2.2-1 GNU R package for regression transformations
++ii r-cran-bayesm 2.0-8-1 GNU R package for Bayesian inference
++ii r-cran-boot 1.2.26-1 GNU R package for bootstrapping functions from Davison and Hinkley
++ii r-cran-cairodevice 1.2.0-1 GNU R Cairo/Gtk2 device driver package
++ii r-cran-car 1.1-2-1 GNU R Companion to Applied Regression by John Fox
++ii r-cran-chron 2.3-9-1 GNU R package for chronologically ordered objects
++ii r-cran-cluster 1.11.2-1 GNU R package for cluster analysis by Rousseeuw et al
++ii r-cran-coda 0.10-7-1 Output analysis and diagnostics for MCMC simulations in R
++ii r-cran-date 1.2.22-1 GNU R package for date handling
++ii r-cran-dbi 0.1.11-1 GNU R package providing a generic database interface
++ii r-cran-design 2.0.12-2+b1 GNU R regression modeling strategies tools by Frank Harrell
++ii r-cran-e1071 1.5-16-1 GNU R package with functions from 'e1071' at TU Wien
++ii r-cran-eco 2.2-2-1 GNU R routines for Bayesian ecological inference
++ii r-cran-effects 1.0.9-1 GNU R graphical and tabular effects display for glm models
++ii r-cran-fbasics 240.10067-1 GNU R package for financial engineering -- fBasics
++ii r-cran-fcalendar 240.10068-2 GNU R package for financial engineering -- fCalendar
++ii r-cran-fecofin 240.10067-2 GNU R package for financial engineering -- fEcofin
++ii r-cran-fextremes 240.10068-1 GNU R package for financial engineering -- fExtremes
++ii r-cran-fmultivar 240.10068-1 GNU R package for financial engineering -- fMultivar
++ii r-cran-foptions 240.10068-1 GNU R package for financial engineering -- fOptions
++ii r-cran-foreign 0.8.17-1 GNU R package to read/write data from other stat. systems
++ii r-cran-fportfolio 240.10067-1 GNU R package for financial engineering -- fPortfolio
++ii r-cran-fseries 240.10068-2 GNU R package for financial engineering -- fSeries
++ii r-cran-gdata 2.3.1-1 GNU R package with data manipulation tools by Greg Warnes et al
++ii r-cran-gmodels 2.13.1-1 GNU R package with tools for model fitting by Greg Warnes et al
++ii r-cran-gplots 2.3.2-1 GNU R package with tools for plotting data by Greg Warnes et al
++ii r-cran-gregmisc 2.1.1-1 GNU R package with miscellaneous functions by Greg Warnes et al
++ii r-cran-gtools 2.3.0-1 GNU R package with R programming tools by Greg Warnes et al
++ii r-cran-hdf5 1.6.4-1 GNU R package interfacing the NCSA HDF5 library
++ii r-cran-hmisc 3.1.2-1 GNU R miscellaneous functions by Frank Harrell
++ii r-cran-its 1.1.4-2 GNU R package for handling irregular time series
++ii r-cran-kernsmooth 2.22.19-1 GNU R package for kernel smoothing and density estimation
++ii r-cran-lattice 0.14-13-1 GNU R package for 'Trellis' graphics
++ii r-cran-latticeextra 0.1.4-1 GNU R package of additional graphical displays based on lattice
++ii r-cran-lme4 0.9975-9-1 GNU R package for linear mixed effects model fitting
++ii r-cran-lmtest 0.9.18-2 GNU R package for diagnostic checking in linear models
++ii r-cran-mapdata 2.0-17-1 GNU R support for producing geographic maps (supplemental data)
++ii r-cran-maps 2.0-32-1 GNU R support for producing geographic maps
++ii r-cran-matchit 2.2-11-2 GNU R package of nonparametric matching methods
++ii r-cran-matrix 0.9975-6-1 GNU R package of classes for dense and sparse matrices
++ii r-cran-mcmcpack 0.7-4-2 GNU R routines for Markov chain Monte Carlo model estimation
++ii r-cran-mgcv 1.3-20-1 GNU R package for multiple parameter smoothing estimation
++ii r-cran-misc3d 0.4-0-1 GNU R collection of 3d plot functions and rgl-based isosurfaces
++ii r-cran-mnp 2.4-2-1 GNU R package for fitting multinomial probit (MNP) models
++ii r-cran-multcomp 0.991-2-1 GNU R package for multiple comparison procedures
++ii r-cran-mvtnorm 0.7.5-1 GNU R package to compute multivariate Normal and T distributions
++ii r-cran-nlme 3.1.77-1 GNU R package for (non-)linear mixed effects models
++ii r-cran-pscl 0.73-1 GNU R package for discrete data models
++ii r-cran-psy 0.70-2 GNU R procedures for psychometrics
++ii r-cran-qtl 1.05-2-1 GNU R package for genetic marker linkage analysis
++ii r-cran-quadprog 1.4.10-1 GNU R package for solving quadratic programming problems
++ii r-cran-rcmdr 1.2-2-1 GNU R platform-independent basic-statistics GUI
++ii r-cran-relimp 0.9-7-1 GNU R package for inference on relative importance of regressors
++ii r-cran-rgl 0.68-1 GNU R package for three-dimensional visualisation using OpenGL
++ii r-cran-rgtk2 2.8.6-1 GNU R binding for Gtk2
++ii r-cran-rmpi 0.5-3-1 GNU R package interfacing MPI libraries for distributed computing
++ii r-cran-rmysql 0.5.10-1 GNU R package providing a DBI-compliant interface to MySQL
++ii r-cran-rodbc 1.1.7-1 GNU R package for ODBC database access
++ii r-cran-rpart 3.1.32-1 GNU R package for recursive partitioning and regression trees
++ii r-cran-rpvm 1.0.1-1 GNU R package interfacing PVM libraries for distributed computing
++ii r-cran-rquantlib 0.2.4-1 GNU R package interfacing the QuantLib finance library
++ii r-cran-rsprng 0.3.3-1 GNU R interface to SPRNG (Scalable Parallel RNGs)
++ii r-cran-sandwich 2.0-0-2 GNU R package for model-robust standard error estimates
++ii r-cran-sm 2.1-0-1 GNU R package for kernel smoothing methods
++ii r-cran-snow 0.2.2-1 GNU R package for 'simple network of workstations'
++ii r-cran-strucchange 1.3-1-1 GNU R package for structural change regression estimation
++ii r-cran-survival 2.29-1 GNU R package for survival analysis
++ii r-cran-tkrplot 0.0.16-1 GNU R embedded Tk plotting device package
++ii r-cran-tseries 0.10-7-1 GNU R package for time-series analysis and comp. finance
++ii r-cran-vgam 0.7-1-1 GNU R package for estimating vector generalized additive models
++ii r-cran-vr 7.2.29-1 GNU R package accompanying the Venables and Ripley book on S
++ii r-cran-xml 1.2-0-1 GNU R package for XML parsing and generation
++ii r-cran-zelig 2.7-4-3 GNU R package providing a unified front-end for estimating statistical
++ii r-cran-zoo 1.2-1-1 GNU R package for totally ordered indexed observations
++ii r-doc-html 2.4.0.20061125-1 GNU R html manuals for statistical computing system
++ii r-doc-info 2.4.0.20061125-1 GNU R info manuals statistical computing system
++ii r-doc-pdf 2.4.0.20061125-1 GNU R pdf manuals for statistical computing system
++ii r-mathlib 2.4.0.20061125-1 GNU R standalone mathematics library
++ii r-noncran-lindsey 1.0.20051208-2+b1 GNU R libraries contributed by Jim and Patrick Lindsey
++ii r-omegahat-ggobi 2.1.4-2-1etch1 GNU R package for the GGobi data visualization system
++ii r-other-gking-matchit 2.2-11-2 GNU R package of nonparametric matching methods (dummy package)
++ii r-other-gking-zelig 2.7-4-3 Dummy (transition) package for r-cran-zelig
++ii r-recommended 2.4.0.20061125-1 GNU R collection of recommended packages [metapackage]
++ii radeontool 1.5-5 utility to control ATI Radeon backlight functions on laptops
++ii ragel 5.14-1 compiles finite state machines into c/c++ code
++ii rapidsvn 0.9.4-1 A GUI client for subversion
++ii raptor-utils 1.4.13-1 Raptor RDF parser and serializer utilities
++ii rcs 5.7-18 The GNU Revision Control System
++ii rcs-latex 3.1-2 LaTeX macro package for handling RCS keywords
++ii rdesktop 1.5.0-1etch2 RDP client for Windows NT/2000 Terminal Server
++ii rdiff-backup 1.1.5-4 remote incremental backup
++ii readline-common 5.2-2 GNU readline and history libraries, common files
++ii recode 3.6-12 Character set conversion utility
++ii refblas3 1.2-8 Basic Linear Algebra Subroutines 3, shared library
++ii refblas3-dev 1.2-8 Basic Linear Algebra Subroutines 3, static library
++ii refblas3-doc 1.2-8 Basic Linear Algebra Subroutines 3, documentation
++ii refblas3-test 1.2-8 Basic Linear Algebra Subroutines 3, testing programs
++ii regina-normal 4.3.1-3 3-manifold topology software with normal surface support
++ii rep-gtk 0.18.cvs20060518-2 GTK binding for librep
++ii rep-xmms 0.4-5 rep language bindings for XMMS
++ii reportbug 3.31+etch1 reports bugs in the Debian distribution
++ii rhythmbox 0.9.6-8 music player and organizer for GNOME
++ii rocklight 0.1-1 an xmms visualization plugin for Thinklights on IBM Thinkpads
++ii rpl 1.5.4 intelligent recursive search/replace utility
++ii rpm 4.4.1-13 Red Hat package manager
++ii rsh-client 0.17-13 rsh clients.
++ii rsh-redone-client 80-1 Reimplementation of rsh and rlogin
++ii rsh-redone-server 80-1 Reimplementation of rshd and rlogind
++ii rsync 2.6.9-2etch2 fast remote file copy program (like rcp)
++ii ruby 1.8.2-1 An interpreter of object-oriented scripting language Ruby
++ii ruby1.8 1.8.5-4etch5 Interpreter of object-oriented scripting language Ruby 1.8
++ii samba-common 3.0.24-6etch10 Samba common files used by both the server and the client
++ii sane-utils 1.0.18-5 API library for scanners -- utilities
++ii sawfish 1.3+cvs20061004-1 a window manager for X11
++ii sawfish-data 1.3+cvs20061004-1 sawfish architecture independent data
++ii sawfish-xmms 0.4-5 sawfish bindings for XMMS
++ii scalapack-doc 1.5-9 Scalable Linear Algebra Package Documentation
++ii scalapack-mpich-dev 1.7.4-2 Scalable Linear Algebra Package - Dev. files for MPICH
++ii scalapack-test-common 1.7.4-2 Test data for ScaLAPACK testers
++ii scalapack1-mpich 1.7.4-2 Scalable Linear Algebra Package - Shared libs. for MPICH
++ii schedutils 1.5.0-1 Linux scheduler utilities
++ii scilab 4.1.2-7 Matrix-based scientific software package (a la Matlab and Xmath)
++ii scilab-bin 4.1.2-7 Matrix-based scientific software package (a la Matlab and Xmath)
++ii scilab-doc 4.1.2-7 Matrix-based scientific software package (a la Matlab and Xmath)
++ii sciplot-dev 1.36-11 Development library and header files for SciPlot
++ii sciplot1 1.36-11 widget for scientific plotting
++ii scite 1.71-1 Lightweight GTK-based Programming Editor
++ii scons 0.96.93-2 A replacement for Make
++ii screen 4.0.3-0.3 a terminal multiplexor with VT100/ANSI terminal emulation
++ii scribus 1.2.5.dfsg-5 Open Source Desktop Publishing
++ii scrollkeeper 0.3.14-13 A free electronic cataloging system for documentation
++ii sed 4.1.5-1 The GNU sed stream editor
++ii selinux-policy-refpolicy-ta 0.0.20061018-5.1+etch1 Targeted variant of the SELinux reference policy
++ii semantic 1.0pre3-6 Parser Infrastructure for Emacsen
++ii sgml-base 1.26 SGML infrastructure and SGML catalog file support
++ii sgml-data 2.0.3 common SGML and XML data
++ii sgmltools-lite 3.0.3.0.cvs.20010909-13 convert DocBook SGML source into HTML using DSSSL
++ii shared-mime-info 0.19-2 FreeDesktop.org shared MIME database and spec
++ii sharutils 4.2.1-15 shar, unshar, uuencode, uudecode
++ii showimg 0.9.5-1.1 A feature-rich image viewer
++ii sip4 4.4.5-4 Python/C++ bindings generator
++ii skencil 0.6.17-7 Interactive vector drawing program for X11
++ii sketch 0.6.17-7 Transition package for skencil rename
++ii slice2py 3.1.1-2 Slice to Python translator
++ii smartmontools 5.36-8 control and monitor storage systems using S.M.A.R.T.
++ii smb4k 0.7.5-1 A Samba (SMB) share advanced browser for KDE
++ii smbclient 3.0.24-6etch10 a LanManager-like simple client for Unix
++ii smbfs 3.0.24-6etch10 mount and umount commands for the smbfs (for kernels >= than 2.2.x)
++ii smpeg-xmms 0.3.5-5 SDL MPEG Player Library - XMMS plugin
++ii sound-juicer 2.14.6-1 GNOME 2 CD Ripper
++ii sox 12.17.9-1 A universal sound sample translator
++ii sp 1.3.4-1.2.1-47 James Clark's SGML parsing tools
++ii spe 0.8.2a+repack-1 Stani's Python Editor
++ii speedbar 1.0pre3-6 Everything browser, or Dired on steroids
++ii springgraph 0.82-6 creates a graph from a .dot file (neato alternative)
++ii ssh 4.3p2-9etch3 Secure shell client and server (transitional package)
++ii ssh-askpass-gnome 4.3p2-9etch3 under X, asks user for a passphrase for ssh-add
++ii statd 1.0.1-6.2+b3 data collection daemon for GLcpu
++ii strace 4.5.14-2 A system call tracer
++ii subcommander 1.2.2-1 Graphical client for subversion
++ii subversion 1.4.2dfsg1-3 Advanced version control system
++ii subversion-tools 1.4.2dfsg1-3 Assorted tools related to Subversion
++ii sudo 1.6.8p12-4 Provide limited super user privileges to specific users
++ii sun-java5-bin 1.5.0-14-1etch1 Sun Java(TM) Runtime Environment (JRE) 5.0 (architecture dependent fil
++ii sun-java5-demo 1.5.0-14-1etch1 Sun Java(TM) Development Kit (JDK) 5.0 demos and examples
++ii sun-java5-fonts 1.5.0-14-1etch1 Lucida TrueType fonts (from the Sun JRE)
++ii sun-java5-jdk 1.5.0-14-1etch1 Sun Java(TM) Development Kit (JDK) 5.0
++ii sun-java5-jre 1.5.0-14-1etch1 Sun Java(TM) Runtime Environment (JRE) 5.0 (architecture independent f
++ii superkaramba 3.5.5-3etch1 a program based on karamba improving the eyecandy of KDE
++ii sux 1.0.1-3.2 wrapper around su which will transfer your X credentials
++ii svgalibg1 1.4.3-24 transitional dummy package which can be safely removed
++ii svn-workbench 1.5.0-1 A Workbench for Subversion
++ii swig 1.3.29-2.1 Generate scripting interfaces to C/C++ code
++ii swig-doc 1.3.29-2.1 HTML documentation for SWIG
++ii swig-examples 1.3.29-2.1 Examples for applications of SWIG
++ii synaptic 0.57.11.1 Graphical package manager
++ii synce-kde 0.9.1-1 PC / Windows CE connection service application
++ii sysklogd 1.4.1-18 System Logging Daemon
++ii system-tools-backends 1.4.2-3 System Tools to manage computer configuration -- scripts
++ii sysv-rc 2.86.ds1-38+etchnhalf.1 System-V-like runlevel change mechanism
++ii sysvinit 2.86.ds1-38+etchnhalf.1 System-V-like init utilities
++ii sysvinit-utils 2.86.ds1-38+etchnhalf.1 System-V-like utilities
++ii talk 0.17-11 Chat with another user
++ii tao-concurrency 5.4.7-12 TAO concurrency service
++ii tao-event 5.4.7-12 TAO event service
++ii tao-ft 5.4.7-12 TAO fault tolerant services
++ii tao-ftrtevent 5.4.7-12 TAO fault-tolerant real-time event service
++ii tao-idl 5.4.7-12 TAO IDL to C++ compiler
++ii tao-ifr 5.4.7-12 TAO interface repository
++ii tao-imr 5.4.7-12 TAO implementation repository
++ii tao-lifecycle 5.4.7-12 TAO lifecycle service
++ii tao-load 5.4.7-12 TAO load balancing service
++ii tao-log 5.4.7-12 TAO telecom log services
++ii tao-naming 5.4.7-12 TAO naming service
++ii tao-notify 5.4.7-12 TAO notification service
++ii tao-rtevent 5.4.7-12 TAO real-time event service
++ii tao-scheduling 5.4.7-12 TAO scheduling service
++ii tao-time 5.4.7-12 TAO time service
++ii tao-trading 5.4.7-12 TAO trading service
++ii tao-utils 5.4.7-12 TAO naming service and IOR utilities
++ii tar 1.16-2etch1 GNU tar
++ii taskjuggler 2.3.0-1 Project management application
++ii tasksel 2.66 Tool for selecting tasks for installation on Debian systems
++ii tasksel-data 2.66 Official tasks used for installation of Debian systems
++ii tcl8.3 8.3.5-5 Tcl (the Tool Command Language) v8.3 - run-time files
++ii tcl8.4 8.4.12-1.1 Tcl (the Tool Command Language) v8.4 - run-time files
++ii tcl8.4-dev 8.4.12-1.1 Tcl (the Tool Command Language) v8.4 - development files
++ii tcpd 7.6.dbs-13 Wietse Venema's TCP wrapper utilities
++ii tcsh 6.14.00-7 TENEX C Shell, an enhanced version of Berkeley csh
++ii tdb-dev 1.0.6-13 Trivial Database - development files
++ii ted 2.17-1 graphical RTF (Rich Text Format) editor, stable lesstif version
++ii ted-common 2.17-1 common files used by ted and ted-gtk
++ii tellico 1.2.5-1 collection manager for books, videos, music
++ii tellico-data 1.2.5-1 collection manager for books, videos, music [data]
++ii telnet-ssl 0.17.24+0.1-14 The telnet client with SSL encryption support
++ii tetex-base 3.0.dfsg.3-5etch1 Basic TeX input files of teTeX
++ii tetex-bin 3.0-32 The teTeX programs
++ii tetex-doc 3.0.dfsg.3-5etch1 The documentation component of the Debian teTeX packages
++ii tetex-extra 3.0.dfsg.3-5etch1 Additional TeX input files of teTeX
++ii tex-common 1.0.1 Common infrastructure for using and building TeX in Debian
++ii tex4ht 20060913-1 LaTeX and TeX for Hypertext (HTML) - executables
++ii tex4ht-common 20060913-1 LaTeX and TeX for Hypertext (HTML) - support files
++ii texinfo 4.8.dfsg.1-4 Documentation system for on-line information and printed output
++ii thunderbird 1.5.0.13+1.5.0.15b.dfsg1+pr Transition package for icedove rename
++ii tidy 20051018-1 HTML syntax checker and reformatter
++ii time 1.7-21 The GNU time program for measuring cpu resource usage
++ii tix 8.4.0-6 The Tix library for Tk -- runtime package
++ii tix-dev 8.4.0-6 The Tix library for Tk -- development package
++ii tk8.3 8.3.5-6etch2 Tk toolkit for Tcl and X11, v8.3 - run-time files
++ii tk8.4 8.4.12-1etch2 Tk toolkit for Tcl and X11, v8.4 - run-time files
++ii tk8.4-dev 8.4.12-1etch2 Tk toolkit for Tcl and X11, v8.4 - development files
++ii tkcvs 8.0.3-3 A graphical front-end to CVS and Subversion
++ii tkdiff 4.1.3-1 graphical side by side "diff" utility
++ii tochnog 20010124-3.1 A free implicit/explicit finite element analysis program
++ii tochnog-doc 20010124-3.1 Documentation for Tochnog finite element analysis program
++ii tofrodos 1.7.6-2 Converts DOS <-> Unix text files, alias tofromdos
++ii tomboy 0.4.1-2 desktop note taking program using Wiki style links
++ii tora 1.3.21-3 A graphical toolkit for database developers and administrators
++ii totem 2.16.5-3 A simple media player for the Gnome desktop (dummy package)
++ii totem-mozilla 2.16.5-3 Totem Mozilla plugin
++ii totem-xine 2.16.5-3 A simple media player for the Gnome desktop based on xine
++ii trac 0.10.3-1etch4 Enhanced wiki and issue tracking system for software development proje
++ii traceroute 1.4a12-21 traces the route taken by packets over a TCP/IP network
++ii trang 20030619-5.1+b1 Multi-format XML schema converter based on RELAX NG
++ii transfig 3.2.5-alpha7-5 Utilities for converting XFig figure files
++ii tree 1.5.0-2 displays directory tree, in color
++ii tsclient 0.148-2 front-end for viewing of remote desktops in GNOME
++ii ttf-bitstream-vera 1.10-7 The Bitstream Vera family of free TrueType fonts
++ii ttf-dejavu 2.15-1 Vera font family derivate with additional characters
++ii ttf-dustin 20030517-4 Various TrueType fonts from dustismo.com
++ii ttf-freefont 20060501cvs-10 Freefont Serif, Sans and Mono Truetype fonts
++ii ttf-kochi-gothic 1.0.20030809-4 Kochi Subst Gothic Japanese TrueType font without naga10
++ii ttf-opensymbol 2.0.4.dfsg.2-7etch9 The OpenSymbol TrueType font
++ii ttf-sjfonts 2.0.1-2 Some Juicy Fonts handwriting fonts
++ii tulip 2.0.6-4 A system dedicated to the visualization of huge graphs
++ii twm 1.0.1-4 Tab window manager
++ii type-handling 0.2.19 dpkg architecture generation script
++ii tzdata 2008e-1etch3 Time Zone and Daylight Saving Time Data
++ii ucf 2.0020 Update Configuration File: preserves user changes to config files.
++ii udev 0.105-4etch1 /dev/ and hotplug management daemon
++ii umbrello 3.5.5-3 UML modelling tool and code generator
++ii unicode-data 5.0.0-1 Property data for the Unicode character set
++ii unison 2.13.16-5 A file-synchronization tool for Unix and Windows
++ii unison-gtk 2.13.16-5 A file-synchronization tool for Unix and Windows - GTK interface
++ii units 1.85-3 converts between different systems of units
++ii unixodbc 2.2.11-13 ODBC tools libraries
++ii unrar 3.5.4-1.1 Unarchiver for .rar files (non-free version)
++ii unzip 5.52-9etch1 De-archiver for .zip files
++ii update-inetd 4.27-0.5 inetd.conf updater
++ii usbutils 0.72-7 USB console utilities
++ii util-linux 2.12r-19etch1+c5+1 Miscellaneous system utilities
++ii valgrind 3.2.1-1 A memory debugger and profiler
++ii vbetool 0.7-1.1 run real-mode video BIOS code to alter hardware state
++ii vcg 1.30debian-5 A Visualization Tool for compiler graphs
++ii verbiste 0.1.14-1.2 a French conjugation system
++ii verbiste-gnome 0.1.14-1.2 a French conjugation system
++ii vflib2 2.25.1-20 Vector Font Library for Japanese Character Code
++ii videolan-doc 20060711-1 documentation for the VideoLAN streaming solution
++ii viewcvs 0.9.2+cvs.1.0.dev.2004.07.2 view CVS Repositories via HTTP
++ii viewcvs-query 0.9.2+cvs.1.0.dev.2004.07.2 view CVS (viewcvs-query.cgi)
++ii vim 7.0-122+1etch5 Vi IMproved - enhanced vi editor
++ii vim-common 7.0-122+1etch5 Vi IMproved - Common files
++ii vim-doc 7.0-122+1etch5 Vi IMproved - HTML documentation
++ii vim-full 7.0-122+1etch5 Vi IMproved - enhanced vi editor - full fledged version
++ii vim-gnome 7.0-122+1etch5 Vi IMproved - enhanced vi editor - with GNOME2 GUI
++ii vim-gtk 7.0-122+1etch5 Vi IMproved - enhanced vi editor - with GTK2 GUI
++ii vim-gui-common 7.0-122+1etch5 Vi IMproved - Common GUI files
++ii vim-latexsuite 20060325-1 View, edit and compile LaTeX documents from within vim
++ii vim-python 7.0-122+1etch5 Vi IMproved - enhanced vi editor - with Python support
++ii vim-runtime 7.0-122+1etch5 Vi IMproved - Runtime files
++ii vim-scripts 7-3 plugins for vim, adding bells and whistles
++ii vim-tiny 7.0-122+1etch5 Vi IMproved - enhanced vi editor - compact version
++ii vim-vimoutliner 0.3.4-7 script for building an outline editor on top of Vim
++ii vimhelp-fr 6.3.013-2 Vi IMproved - Documentation files (French translation)
++ii vino 2.16.0-5+c5+1 VNC server for GNOME
++ii vlc 0.8.6-svn20061012.debian-5. multimedia player and streamer
++ii vlc-nox 0.8.6-svn20061012.debian-5. multimedia player and streamer (without X support)
++ii vmware-kernel-modules-2.6.2 6.5.2-c5-2 vmware-kernel modules for Linux (kernel 2.6.26-2-amd64).
++ii vmware-player 6.5.2-7 VMware player
++ii vnc4-common 4.1.1+X4.3.0-21+etch1 Virtual network computing server software
++ii vnc4server 4.1.1+X4.3.0-21+etch1 Virtual network computing server software
++ii vorbis-tools 1.1.1-6 several Ogg Vorbis tools
++ii vtk-doc 5.0.2-4 VTK class reference documentation
++ii vtk-examples 5.0.2-4 C++, Tcl and Python example programs/scripts for VTK
++ii vtk-tcl 5.0.2-4 Tcl bindings for VTK
++ii vtkdata 5.0.2-1 Example data for VTK
++ii w3c-dtd-xhtml 1.1-5 W3C eXtensible HyperText Markup Language (XHTML) DTD
++ii w3m 0.5.1-5.1 WWW browsable pager with excellent tables/frames support
++ii wamerican 6-2 American English dictionary words for /usr/share/dict
++ii wbritish 6-2 British English dictionary words for /usr/share/dict
++ii wcatalan 0.5-3 Catalan dictionary words for /usr/share/dict
++ii wdiff 0.5-16etch1 Compares two files word by word
++ii wfrench 1.2.3-1 French dictionary words for /usr/share/dict
++ii wget 1.10.2-2+etch1 retrieves files from the web
++ii whiptail 0.52.2-10+etch1 Displays user-friendly dialog boxes from shell scripts
++ii whois 4.7.20 the GNU whois client
++ii wine 0.9.34-1 Windows API Implementation (Binary Loader)
++ii wine-utils 0.9.34-1 Windows API Implementation (Utilities)
++ii wings3d 0.98.35-3 Nendo-inspired 3D polygon mesh modeller
++ii wireless-tools 28-1+etchnhalf.1 Tools for manipulating Linux Wireless Extensions
++ii wmacpi 2.1-6 An ACPI battery monitor for WindowMaker
++ii wmaker 0.92.0-6.1 NeXTSTEP-like window manager for X
++ii wmusic 1.5.0-2 remote-control DockApp for xmms
++ii wodim 1.1.2-1 command line CD/DVD writing tool
++ii wordtrans-data 1.1pre14-4 Multi Language Word Translator for Linux
++ii wordtrans-kde 1.1pre14-4 Multi Language Word Translator for Linux
++ii wv 1.2.4-1 Programs for accessing Microsoft Word documents
++ii wx2.6-doc 2.6.3.2.1.5+etch1 wxWidgets Cross-platform C++ GUI toolkit (documentation)
++ii wxmaxima 0.7.0a-1.1 a wxWidgets GUI for the computer algebra system maxima
++ii x-dev 7.0.7-2 dummy package for transition purposes
++ii x11-common 7.1.0-19 X Window System (X.Org) infrastructure
++ii x11proto-core-dev 7.0.7-2 X11 core wire protocol and auxiliary headers
++ii x11proto-fixes-dev 4.0-2 X11 Fixes extension wire protocol
++ii x11proto-input-dev 1.3.2-4 X11 Input extension wire protocol
++ii x11proto-kb-dev 1.0.3-2 X11 XKB extension wire protocol
++ii x11proto-print-dev 1.0.3.xsf1-1 X11 Printing extension (Xprint) wire protocol
++ii x11proto-randr-dev 1.1.2-4 X11 RandR extension wire protocol
++ii x11proto-record-dev 1.13.2-4 X11 Record extension wire protocol
++ii x11proto-render-dev 0.9.2-4 X11 Render extension wire protocol
++ii x11proto-xext-dev 7.0.2-5 X11 various extension wire protocol
++ii x11proto-xinerama-dev 1.1.2-4 X11 Xinerama extension wire protocol
++ii xaw3dg 1.5+E-14 Xaw3d widget set
++ii xbase-clients 7.1.ds1-2 miscellaneous X clients
++ii xbitmaps 1.0.1-2 Base X bitmaps
++ii xdg-utils 1.0-1 Desktop integration utilities from freedesktop.org
++ii xdm 1.0.5-2 X display manager
++ii xemacs21 21.4.19-2 highly customizable text editor
++ii xemacs21-basesupport 2006.05.10-1 Editor and kitchen sink -- compiled elisp support files
++ii xemacs21-bin 21.4.19-2 highly customizable text editor -- support binaries
++ii xemacs21-gnome-mule 21.4.19-2 highly customizable text editor -- Mule binary
++ii xemacs21-mule 21.4.19-2 highly customizable text editor -- Mule binary
++ii xemacs21-mulesupport 2006.05.10-1 Editor and kitchen sink -- Mule elisp support files
++ii xemacs21-nomule 21.4.19-2 highly customizable text editor -- Non-mule binary
++ii xemacs21-support 21.4.19-2 highly customizable text editor -- architecture independent support fi
++ii xeukleides 0.9.2rev2-1 A system for drawing and viewing Euclidean geometry figures
++ii xfce4-panel 4.3.99.2-2 The Xfce4 desktop environment panel
++ii xfce4-xmms-plugin 0.4.0-2 xmms control plugin for the Xfce4 panel
++ii xfig 3.2.5-alpha5-9 Facility for Interactive Generation of figures under X11
++ii xfig-libs 3.2.5-alpha5-9 XFig image libraries and examples
++ii xfonts-100dpi 1.0.0-3 100 dpi fonts for X
++ii xfonts-75dpi 1.0.0-3 75 dpi fonts for X
++ii xfonts-base 1.0.0-4 standard fonts for X
++ii xfonts-cyrillic 1.0.0-4 Cyrillic fonts for X
++ii xfonts-encodings 1.0.0-6 Encodings for X.Org fonts
++ii xfonts-intl-european 1.2.1-6 International fonts for X -- European
++ii xfonts-scalable 1.0.0-6 scalable fonts for X
++ii xfonts-utils 1.0.1-1 X Window System font utility programs
++ii xkb-data 0.9-4 X Keyboard Extension (XKB) configuration data
++ii xli 1.17.0-22 command line tool for viewing images in X11
++ii xlibmesa-gl-dev 7.1.0-19 transitional package for Debian etch
++ii xmaxima 5.10.0-6 A computer algebra system -- x interface
++ii xmhtml1 1.1.7-14 A Motif widget for display HTML 3.2
++ii xml-core 0.09-0.1 XML infrastructure and XML catalog file support
++ii xmms 1.2.10+20061101-1etch1 Versatile X audio player
++ii xmms-adplug 1.2-3 free AdLib sound library (xmms-plugin)
++ii xmms-alarm 0.3.7-1.1 xmms general plugin for using xmms as an alarm clock
++ii xmms-arts 0.7.1-4 aRts Output plugin for xmms
++ii xmms-blursk 1.3-6 Powerful visualization plugin for XMMS, similar to "Blur Scope"
++ii xmms-bumpscope 0.0.3.release-11 visualization plugin for XMMS that appears as an embossing oscilloscop
++ii xmms-cdread 0.14a-13 input plugin for XMMS that reads audio data from CDs
++ii xmms-coverviewer 0.11-6 XMMS plugin that displays covers while playing
++ii xmms-crossfade 0.3.11-2 XMMS Plugin for Crossfading / Continuous Output
++ii xmms-dbmix 0.9.8-5 XMMS output interface to the DBMix audio system
++ii xmms-defx 0.9.9-2 A Sound alterator plug-in for xmms
++ii xmms-dev 1.2.10+20061101-1etch1 XMMS development static library and header files
++ii xmms-festalon 0.2.4-1 XMMS Input plugin for playing NSF music files
++ii xmms-find 0.5.2-1 XMMS plugin for quick, remote jump to another song
++ii xmms-finespectrum 1.0.1a-6 XMMS Fine Spectrum Analyzer Plugin
++ii xmms-flac 1.1.2-8 Free Lossless Audio Codec - XMMS and Beep input plugin
++ii xmms-fmradio 1.5-2 FM Radio input plugin for XMMS
++ii xmms-goodnight 0.3.2-1 XMMS plugin to stop playing at a given time
++ii xmms-goom 2.4.0-2 visualization plug-in for XMMS with a variety of effects
++ii xmms-infinity 0.6.2-1 full-screen visualisation effect for XMMS
++ii xmms-infopipe 1.3-4 General plugin for XMMS, reports real-time information to a pipe
++ii xmms-iris 0.12-3.1 advanced OpenGL visualization plugin for XMMS
++ii xmms-jack 0.16-2 xmms output plugin to the jack audio server
++ii xmms-jackasyn 0.3-1 JACK Output plugin for xmms
++ii xmms-jess 2.9.1-8.1 visualization plugin for XMMS using various 2D and 3D methods
++ii xmms-kde 3.2-2 MP3 player integrated into the KDE panel
++ii xmms-kjofol 0.95.0debian3-4 XMMS remote that uses K-Jofol's skins
++ii xmms-kjofol-skins 0.95.0debian3-4 Skins for the xmms-kjofol package
++ii xmms-ladspa 1.1-1 power XMMS with the Linux Audio Developer's Simple Plugin API
++ii xmms-lirc 1.4-1 Linux Infrared Remote Control for XMMS
++ii xmms-liveice 1.0.0-6 XMMS plugin that sends your audio to a shoutcast server
++ii xmms-mad 0.10-1 mp3 input plugin for xmms based on libmad
++ii xmms-midi 0.03-4 MIDI plugin for XMMS
++ii xmms-modplug 2.05-9.1 ModPlug plugin for XMMS
++ii xmms-mpg123-ja 1.2.10j.20051231-1.1 mpeg123 plugin supported Japanese encodings for xmms
++ii xmms-msa 0.5.5-4 spectrum analyzer plugin for XMMS with skin support
++ii xmms-musepack 1.2-1 XMMS Input plugin for playing music MPC (Musepack) files
++ii xmms-oggre 0.3-3 ogg disk output plugin for XMMS
++ii xmms-osd-plugin 2.2.14-1.3 XMMS plugin using xosd
++ii xmms-qbble 1.2-13 XMMS playlist manager with search support
++ii xmms-rplay 1.0.3-2 RPlay Output Plugin for XMMS
++ii xmms-scrobbler 0.3.8.1-4 XMMS plugin that sends your track information to audioscrobbler
++ii xmms-shell 0.99.3-5.1 XMMS Shell - Interface to control XMMS from the Console
++ii xmms-sid 0.7.4+0.8.0beta15-3 input plugin for XMMS that plays SID (C64) tunes
++ii xmms-singit 0.1.28+dfsg-1 Display and edit lyrics with XMMS
++ii xmms-skins 0.6-1 Skins for XMMS
++ii xmms-speex 0.9.2b-1 Speex Speech Codec - XMMS input plugin
++ii xmms-stats 0.2-2 Make stats of your preferred songs
++ii xmms-status-plugin 1.0.0-3 Status panel applet for XMMS
++ii xmms-synaesthesia 0.0.3-10 visualization plugin for XMMS with a field of glowing lights
++ii xmms-volnorm 0.8.3-1 XMMS plugin that gives all songs the same volume level
++ii xmms-wmdiscotux 1.3-3 Tux dancing to the music played by xmms
++ii xmms-xf86audio 0.4.4-1 XF86Audio multimedia-key support for XMMS
++ii xmms-xmmplayer 0.3.3-1 XMMS plugin that uses MPlayer to play video files
++ii xmms2 0.2DrGonzo-4.1 Client/server based media player system
++ii xmms2-client-cli 0.2DrGonzo-4.1 XMMS2 - cli client
++ii xmms2-core 0.2DrGonzo-4.1 XMMS2 - core package
++ii xmms2-plugin-alsa 0.2DrGonzo-4.1 XMMS2 - ALSA output
++ii xmms2-plugin-id3v2 0.2DrGonzo-4.1 XMMS2 - ID3v2 plugin
++ii xmms2-plugin-mad 0.2DrGonzo-4.1 XMMS2 - libmad based mp3 decoder
++ii xmms2-plugin-vorbis 0.2DrGonzo-4.1 XMMS2 - vorbis decoder
++ii xmmsctrl 1.9-1 Small utility to control xmms from the command line
++ii xmp-common 2.0.4d-11 Common files for xmp, xxmp and the xmp XMMS plugin
++ii xmp-xmms 2.0.4d-11 An experimental XMP plugin for XMMS
++ii xmpi 2.2.3b8-10 A graphical user interface for MPI program development
++ii xnest 1.1.1-21etch5 Nested X server
++ii xorg 7.1.0-19 X.Org X Window System
++ii xpdf 3.01-9.1+etch6 Portable Document Format (PDF) suite
++ii xpdf-common 3.01-9.1+etch6 Portable Document Format (PDF) suite -- common files
++ii xpdf-reader 3.01-9.1+etch6 Portable Document Format (PDF) suite -- viewer for X11
++ii xpdf-utils 3.01-9.1+etch6 Portable Document Format (PDF) suite -- utilities
++ii xplot 1.19-7.2 A simple x-y column data plotter for X.
++ii xpvm 1.2.5-11 graphical console and monitor for PVM
++ii xresprobe 0.4.23debian1 X Resolution Probe
++ii xsane 0.99+0.991-2 GTK+-based X11 frontend for SANE (Scanner Access Now Easy)
++ii xsane-common 0.99+0.991-2 GTK+-based X11 frontend for SANE (Scanner Access Now Easy)
++ii xscreensaver 4.24-5 Automatic screensaver for X
++ii xscreensaver-gl 4.24-5 GL(Mesa) screen hacks for xscreensaver
++ii xserver-xephyr 1.1.1-21etch5 Next Generation Nested X Server
++ii xserver-xorg 7.1.0-19 the X.Org X server
++ii xserver-xorg-core 1.1.1-21etch5 X.Org X server -- core server
++ii xserver-xorg-input-all 7.1.0-19 the X.Org X server -- input driver metapackage
++ii xserver-xorg-input-evdev 1.1.2-6 X.Org X server -- evdev input driver
++ii xserver-xorg-input-kbd 1.1.0-4 X.Org X server -- keyboard input driver
++ii xserver-xorg-input-mouse 1.1.1-3 X.Org X server -- mouse input driver
++ii xserver-xorg-input-synaptic 0.14.6-1 Synaptics TouchPad driver for X.Org/XFree86 server
++ii xserver-xorg-input-wacom 0.7.4.1-5 X.Org X server -- wacom input driver
++ii xserver-xorg-video-all 7.1.0-19 the X.Org X server -- output driver metapackage
++ii xserver-xorg-video-apm 1.1.1-3 X.Org X server -- APM display driver
++ii xserver-xorg-video-ark 0.6.0-3 X.Org X server -- ark display driver
++ii xserver-xorg-video-ati 6.6.3-2 X.Org X server -- ATI display driver
++ii xserver-xorg-video-chips 1.1.1-4 X.Org X server -- Chips display driver
++ii xserver-xorg-video-cirrus 1.1.0-3 X.Org X server -- Cirrus display driver
++ii xserver-xorg-video-cyrix 1.1.0-4 X.Org X server -- Cyrix display driver
++ii xserver-xorg-video-dummy 0.2.0-3 X.Org X server -- dummy display driver
++ii xserver-xorg-video-fbdev 0.3.1-1 X.Org X server -- fbdev display driver
++ii xserver-xorg-video-glint 1.1.1-3 X.Org X server -- Glint display driver
++ii xserver-xorg-video-i128 1.2.0-3 X.Org X server -- i128 display driver
++ii xserver-xorg-video-i810 1.7.2-4 X.Org X server -- Intel i8xx, i9xx display driver
++ii xserver-xorg-video-mga 1.4.4.dfsg.1-2 X.Org X server -- MGA display driver
++ii xserver-xorg-video-neomagic 1.1.1-5 X.Org X server -- Neomagic display driver
++ii xserver-xorg-video-nv 2.0.3-1 X.Org X server -- NV display driver
++ii xserver-xorg-video-renditio 4.1.0.dfsg.1-4 X.Org X server -- Rendition display driver
++ii xserver-xorg-video-s3 0.4.1-5 X.Org X server -- legacy S3 display driver
++ii xserver-xorg-video-s3virge 1.9.1-3 X.Org X server -- S3 ViRGE display driver
++ii xserver-xorg-video-savage 2.1.2-3 X.Org X server -- Savage display driver
++ii xserver-xorg-video-siliconm 1.4.1-4 X.Org X server -- SiliconMotion display driver
++ii xserver-xorg-video-sis 0.9.1-4 X.Org X server -- SiS display driver
++ii xserver-xorg-video-sisusb 0.8.1-3 X.Org X server -- SiS USB display driver
++ii xserver-xorg-video-tdfx 1.3.0-1 X.Org X server -- tdfx display driver
++ii xserver-xorg-video-tga 1.1.0-3 X.Org X server -- TGA display driver
++ii xserver-xorg-video-trident 1.2.3-1 X.Org X server -- Trident display driver
++ii xserver-xorg-video-tseng 1.1.0-3 X.Org X server -- Tseng display driver
++ii xserver-xorg-video-v4l 0.1.1-3 X.Org X server -- Video 4 Linux display driver
++ii xserver-xorg-video-vesa 1.3.0-1 X.Org X server -- VESA display driver
++ii xserver-xorg-video-vga 4.1.0-3 X.Org X server -- VGA display driver
++ii xserver-xorg-video-via 0.2.1-6 X.Org X server -- VIA display driver
++ii xserver-xorg-video-voodoo 1.1.0-4 X.Org X server -- Voodoo display driver
++ii xsltproc 1.1.19-3 XSLT command line processor
++ii xterm 222-1etch4 X terminal emulator
++ii xtrans-dev 1.0.1-3 X transport library (development files)
++ii xulrunner-gnome-support 1.8.0.15~pre080614i-0etch1 Support for Gnome in xulrunner applications
++ii xutils 7.1.ds.3-1 X Window System utility programs
++ii xutils-dev 7.1.ds-6 X Window System utility programs for development
++ii xvidcap 1.1.4-0.0 Screen video capture for X
++ii xvnc4viewer 4.1.1+X4.3.0-21+etch1 Virtual network computing client software for X
++ii xwine 1.0.1-1etch1 graphical user interface for the WINE emulator
++ii xxdiff 3.2-2 a graphical file and directories comparison and merge tool
++ii xxgdb 1.12-13.2 A X front-end to the GNU debugger gdb
++ii yacpi 2.0.1.1-1 ncurses based acpi monitor for text mode
++ii yapps2 2.1.1-17.1 Yet Another Python Parser System
++ii yapps2-runtime 2.1.1-17.1 Yet Another Python Parser System
++ii yelp 2.14.3-2 Help browser for GNOME 2
++ii ygraph 0.15-3 Visualize one-dimensional scientific data
++ii ytalk 3.3.0-2 enhanced talk program
++ii zenity 2.14.3-1 Display graphical dialog boxes from shell scripts
++ii zeroc-ice-manual 3.1.1-1 Ice documentation in pdf
++ii zip 2.32-1 Archiver for .zip files
++ii zlib-bin 1.2.3-13 compression library - sample programs
++ii zlib1g 1.2.3-13 compression library - runtime
++ii zlib1g-dev 1.2.3-13 compression library - development
++ii zoo 2.10-18 manipulate zoo archives
+Index: aster-10.2.0-1/README_aster.html
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ aster-10.2.0-1/README_aster.html 2010-07-19 14:53:17.000000000 +0200
+@@ -0,0 +1,662 @@
++<?xml version="1.0" encoding="utf-8" ?>
++<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
++<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
++<head>
++<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
++<meta name="generator" content="Docutils 0.4.1: http://docutils.sourceforge.net/" />
++<title>README FOR CODE_ASTER INSTALLATION</title>
++<style type="text/css">
++
++/*
++:Author: David Goodger
++:Contact: goodger at users.sourceforge.net
++:Date: $Date: 2005-12-18 01:56:14 +0100 (Sun, 18 Dec 2005) $
++:Revision: $Revision: 4224 $
++:Copyright: This stylesheet has been placed in the public domain.
++
++Default cascading style sheet for the HTML output of Docutils.
++
++See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
++customize this style sheet.
++*/
++
++/* used to remove borders from tables and images */
++.borderless, table.borderless td, table.borderless th {
++ border: 0 }
++
++table.borderless td, table.borderless th {
++ /* Override padding for "table.docutils td" with "! important".
++ The right padding separates the table cells. */
++ padding: 0 0.5em 0 0 ! important }
++
++.first {
++ /* Override more specific margin styles with "! important". */
++ margin-top: 0 ! important }
++
++.last, .with-subtitle {
++ margin-bottom: 0 ! important }
++
++.hidden {
++ display: none }
++
++a.toc-backref {
++ text-decoration: none ;
++ color: black }
++
++blockquote.epigraph {
++ margin: 2em 5em ; }
++
++dl.docutils dd {
++ margin-bottom: 0.5em }
++
++/* Uncomment (and remove this text!) to get bold-faced definition list terms
++dl.docutils dt {
++ font-weight: bold }
++*/
++
++div.abstract {
++ margin: 2em 5em }
++
++div.abstract p.topic-title {
++ font-weight: bold ;
++ text-align: center }
++
++div.admonition, div.attention, div.caution, div.danger, div.error,
++div.hint, div.important, div.note, div.tip, div.warning {
++ margin: 2em ;
++ border: medium outset ;
++ padding: 1em }
++
++div.admonition p.admonition-title, div.hint p.admonition-title,
++div.important p.admonition-title, div.note p.admonition-title,
++div.tip p.admonition-title {
++ font-weight: bold ;
++ font-family: sans-serif }
++
++div.attention p.admonition-title, div.caution p.admonition-title,
++div.danger p.admonition-title, div.error p.admonition-title,
++div.warning p.admonition-title {
++ color: red ;
++ font-weight: bold ;
++ font-family: sans-serif }
++
++/* Uncomment (and remove this text!) to get reduced vertical space in
++ compound paragraphs.
++div.compound .compound-first, div.compound .compound-middle {
++ margin-bottom: 0.5em }
++
++div.compound .compound-last, div.compound .compound-middle {
++ margin-top: 0.5em }
++*/
++
++div.dedication {
++ margin: 2em 5em ;
++ text-align: center ;
++ font-style: italic }
++
++div.dedication p.topic-title {
++ font-weight: bold ;
++ font-style: normal }
++
++div.figure {
++ margin-left: 2em ;
++ margin-right: 2em }
++
++div.footer, div.header {
++ clear: both;
++ font-size: smaller }
++
++div.line-block {
++ display: block ;
++ margin-top: 1em ;
++ margin-bottom: 1em }
++
++div.line-block div.line-block {
++ margin-top: 0 ;
++ margin-bottom: 0 ;
++ margin-left: 1.5em }
++
++div.sidebar {
++ margin-left: 1em ;
++ border: medium outset ;
++ padding: 1em ;
++ background-color: #ffffee ;
++ width: 40% ;
++ float: right ;
++ clear: right }
++
++div.sidebar p.rubric {
++ font-family: sans-serif ;
++ font-size: medium }
++
++div.system-messages {
++ margin: 5em }
++
++div.system-messages h1 {
++ color: red }
++
++div.system-message {
++ border: medium outset ;
++ padding: 1em }
++
++div.system-message p.system-message-title {
++ color: red ;
++ font-weight: bold }
++
++div.topic {
++ margin: 2em }
++
++h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
++h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
++ margin-top: 0.4em }
++
++h1.title {
++ text-align: center }
++
++h2.subtitle {
++ text-align: center }
++
++hr.docutils {
++ width: 75% }
++
++img.align-left {
++ clear: left }
++
++img.align-right {
++ clear: right }
++
++ol.simple, ul.simple {
++ margin-bottom: 1em }
++
++ol.arabic {
++ list-style: decimal }
++
++ol.loweralpha {
++ list-style: lower-alpha }
++
++ol.upperalpha {
++ list-style: upper-alpha }
++
++ol.lowerroman {
++ list-style: lower-roman }
++
++ol.upperroman {
++ list-style: upper-roman }
++
++p.attribution {
++ text-align: right ;
++ margin-left: 50% }
++
++p.caption {
++ font-style: italic }
++
++p.credits {
++ font-style: italic ;
++ font-size: smaller }
++
++p.label {
++ white-space: nowrap }
++
++p.rubric {
++ font-weight: bold ;
++ font-size: larger ;
++ color: maroon ;
++ text-align: center }
++
++p.sidebar-title {
++ font-family: sans-serif ;
++ font-weight: bold ;
++ font-size: larger }
++
++p.sidebar-subtitle {
++ font-family: sans-serif ;
++ font-weight: bold }
++
++p.topic-title {
++ font-weight: bold }
++
++pre.address {
++ margin-bottom: 0 ;
++ margin-top: 0 ;
++ font-family: serif ;
++ font-size: 100% }
++
++pre.literal-block, pre.doctest-block {
++ margin-left: 2em ;
++ margin-right: 2em ;
++ background-color: #eeeeee }
++
++span.classifier {
++ font-family: sans-serif ;
++ font-style: oblique }
++
++span.classifier-delimiter {
++ font-family: sans-serif ;
++ font-weight: bold }
++
++span.interpreted {
++ font-family: sans-serif }
++
++span.option {
++ white-space: nowrap }
++
++span.pre {
++ white-space: pre }
++
++span.problematic {
++ color: red }
++
++span.section-subtitle {
++ /* font-size relative to parent (h1..h6 element) */
++ font-size: 80% }
++
++table.citation {
++ border-left: solid 1px gray;
++ margin-left: 1px }
++
++table.docinfo {
++ margin: 2em 4em }
++
++table.docutils {
++ margin-top: 0.5em ;
++ margin-bottom: 0.5em }
++
++table.footnote {
++ border-left: solid 1px black;
++ margin-left: 1px }
++
++table.docutils td, table.docutils th,
++table.docinfo td, table.docinfo th {
++ padding-left: 0.5em ;
++ padding-right: 0.5em ;
++ vertical-align: top }
++
++table.docutils th.field-name, table.docinfo th.docinfo-name {
++ font-weight: bold ;
++ text-align: left ;
++ white-space: nowrap ;
++ padding-left: 0 }
++
++h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
++h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
++ font-size: 100% }
++
++tt.docutils {
++ background-color: #eeeeee }
++
++ul.auto-toc {
++ list-style-type: none }
++
++</style>
++</head>
++<body>
++<div class="document" id="readme-for-code-aster-installation">
++<h1 class="title">README FOR CODE_ASTER INSTALLATION</h1>
++<p>This file is also available in HTML format. Open README_aster.html in favorite browser.</p>
++<div class="section">
++<h1><a id="summary" name="summary">Summary</a></h1>
++<blockquote>
++<ul>
++<li><p class="first">Licence and packaging</p>
++</li>
++<li><dl class="first docutils">
++<dt>For really impatient !</dt>
++<dd><ul class="first last simple">
++<li>note about gcc / gfortran</li>
++<li>linux 64 bits</li>
++</ul>
++</dd>
++</dl>
++</li>
++<li><p class="first">Distribution</p>
++</li>
++<li><p class="first">Required products</p>
++</li>
++<li><p class="first">Preferences</p>
++</li>
++<li><p class="first">Full installation</p>
++</li>
++<li><p class="first">Installation with products selection</p>
++</li>
++<li><p class="first">If an error occurs...</p>
++</li>
++<li><p class="first">Log output</p>
++</li>
++<li><p class="first">Test your installation</p>
++</li>
++</ul>
++</blockquote>
++<p>For further informations visit <a class="reference" href="http://www.code-aster.org">http://www.code-aster.org</a>.
++Please report installation problems using <cite>Installation</cite> forum
++at <a class="reference" href="http://www.code-aster.org">http://www.code-aster.org</a>.</p>
++<p>Read carefully this README or at least help message given by</p>
++<pre class="literal-block">
++python setup.py --help
++</pre>
++</div>
++<div class="section">
++<h1><a id="new" name="new">NEW</a></h1>
++<blockquote>
++Starting with Code_Aster 10.2, numpy is required (in replacement of Numeric).
++You must install the python-numpy package from your distribution or compile
++it from sources. You may need to set PYTHONPATH to make setup able to
++import numpy.</blockquote>
++</div>
++<div class="section">
++<h1><a id="license-and-packaging" name="license-and-packaging">License and packaging</a></h1>
++<blockquote>
++<p>Code_Aster is distributed under the terms of the GNU General Public License.
++The text is available at : <a class="reference" href="http://www.code-aster.org/telechargement_doc/GPL.txt">http://www.code-aster.org/telechargement_doc/GPL.txt</a></p>
++<dl class="docutils">
++<dt>IMPORTANT NOTICE:</dt>
++<dd>Code_Aster is a free software but not aster-full package !
++The aster-full archive does not contain only open-source softwares :
++gibi and homard are not open-source but they can be freely distributed
++with Code_Aster.</dd>
++</dl>
++<p>Why this kind of package (the big archive aster-full) ?
++Why "apt-get install codeaster" does not work (yet) ?
++Some answers at <a class="reference" href="http://www.code-aster.org/forum2/viewtopic.php?id=13292">http://www.code-aster.org/forum2/viewtopic.php?id=13292</a></p>
++</blockquote>
++</div>
++<div class="section">
++<h1><a id="for-really-impatient" name="for-really-impatient">For really impatient</a></h1>
++<blockquote>
++<p>If you have a recent Linux distribution you may try direclty
++(just modify ASTER_ROOT in setup.cfg if you don't have write
++access to /opt/aster or use --prefix option)</p>
++<pre class="literal-block">
++python setup.py install --prefix=/opt/aster
++</pre>
++<p>Jump to FULL INSTALLATION step for more details.</p>
++<ul>
++<li><p class="first">Note about compilers</p>
++<blockquote>
++<p><cite>setup.py</cite> tries now to find automatically your compilers.
++By default it searches GNU compilers.
++After searching it writes found values. Check them before continue.
++You can always set them using the <cite>setup.cfg</cite> configuration file.
++You can also use PATH and LD_LIBRARY_PATH environment variables
++to help <cite>setup.py</cite> to find the compiler you prefer.</p>
++</blockquote>
++</li>
++<li><p class="first">Note about gcc / gfortran</p>
++<blockquote>
++<p>If your distribution comes with gfortran instead of g77 you
++should install g77 (only on 32 bits platforms).
++Performance is also about twice better with g77 than gfortran.
++So we recommend to use g77 on 32 bits platforms.</p>
++</blockquote>
++</li>
++<li><p class="first">Note about Intel Compilers</p>
++<blockquote>
++<p>Its recommended to use Intel compilers for aster, mumps and metis
++and to let GNU compilers for the other products.
++To do that just edit <cite>setup.cfg</cite> and uncomment these lines</p>
++<pre class="literal-block">
++PREFER_COMPILER_aster = 'Intel'
++PREFER_COMPILER_mumps = PREFER_COMPILER_aster
++PREFER_COMPILER_metis = PREFER_COMPILER_aster
++PREFER_COMPILER_metis_edf = PREFER_COMPILER_aster
++</pre>
++<p>You can "source" the compiler environment script, iccvars.sh,
++ifortvars.sh and mklvarsXX.sh to set environment variables
++for Intel Compilers to help <cite>setup.py</cite> to find your compilers.
++For example</p>
++<pre class="literal-block">
++source /opt/intel/cc/*/bin/iccvars.sh
++source /opt/intel/fc/*/bin/ifortvars.sh
++source /opt/intel/mkl/*/tools/environment/mklvars32.sh
++python setup.py install --prefix=/opt/aster
++...
++</pre>
++</blockquote>
++</li>
++</ul>
++</blockquote>
++</div>
++<div class="section">
++<h1><a id="distribution" name="distribution">Distribution</a></h1>
++<blockquote>
++<p>The package "aster-xxx.tar" contains</p>
++<pre class="literal-block">
++setup.py (and others .py) setup scripts
++setup.cfg configuration file to adjust according to your configuration.
++SRC/ archives of Code_Aster and its prerequisites :
++ Code_Aster 10.2.0,
++ astk 1.8.0 (Code_Aster study manager),
++ eficas 1.17.0 (Code_Aster commands file editor),
++ mumps 4.8.4 (direct solver library),
++ med 2.3.6 (Data Exchange Model),
++ hdf5 1.6.9 (platform independent file format),
++ metis-edf 4.1 (reordering tool with specific changes for Code_Aster),
++ metis 4.0 (official release),
++ scotch 4.0 (partitioning tool),
++ omniORB 4.1.4 (CORBA implementation for Code_Aster-Salomé link),
++ omniORBpy 3.4 (omniORB python module),
++ pylotage 2.0.5 (minimal plugin to exchange with Salomé),
++ grace 5.1.21 (plotting of 2D graph),
++ homard 9.5 (refine/unrefine meshes), [Linux 32/64 bits]
++ gmsh 2.4.2 (mesh generator, med support), [Linux]
++ gibi 2000 (mesh generator). [Linux]
++</pre>
++<p>Important note :</p>
++<blockquote>
++homard, gmsh and gibi are provided here as precompiled for Linux.
++When installing this product on another platform type they
++must be disabled (see INSTALLATION WITH PRODUCTS SELECTION section).
++Binaries for some other platforms may be available from
++<a class="reference" href="http://www.code-aster.org">http://www.code-aster.org</a>, or directly from their editor.</blockquote>
++</blockquote>
++</div>
++<div class="section">
++<h1><a id="required-products" name="required-products">Required products</a></h1>
++<blockquote>
++<p>All you need is a recent Python installation (>=2.4) with Python headers
++(provided in python-dev package or similar) with the numpy module (provided
++in python-numpy or similar) and tcl/tk.</p>
++<p>All python modules are now installed into ASTER_ROOT/public/lib/pythonX.Y/...</p>
++<dl class="docutils">
++<dt>Note :</dt>
++<dd>To use eficas Python must have been installed with Tkinter or Qt4 support.
++After installation, you will have eficasTk and eficasQt.
++Note that next releases will only come with Qt interface. So it is
++recommended to use eficasQt.</dd>
++<dt>Note :</dt>
++<dd>Python shared libraries are sometimes required
++("--enable-shared" option in configure of Python setup).</dd>
++</dl>
++</blockquote>
++</div>
++<div class="section">
++<h1><a id="preferences" name="preferences">Preferences</a></h1>
++<blockquote>
++<p>The setup will automatically search for basic components in
++standard directories (in this order)</p>
++<pre class="literal-block">
++/usr/local/bin, /usr/bin, /bin, /usr/X11R6/bin,
++/usr/bin/X11 (Tru64 specific),
++/usr/openwin/bin (Solaris specific).
++</pre>
++<p>(analog paths are used to search for libraries and includes)</p>
++<p>You can set BINDIR (or LIBDIR, INCLUDEDIR) to force the script
++to search also in your own directories. Edit <cite>setup.cfg</cite> and
++for example</p>
++<pre class="literal-block">
++BINDIR=['/home/aster/public/bin', '/opt/bin']
++</pre>
++<p>Note :</p>
++<blockquote>
++Following common tools are automatically searched during the setup :
++shell interpreter (one choosen between bash, ksh or zsh),
++terminal (on choosen between xterm -recommended-, gnome-terminal, konsole),
++text editor (one choosen between nedit, gedit, kwrite, xemacs, emacs,
++xedit or vi).</blockquote>
++<p>Note for developpers :</p>
++<blockquote>
++<p>You can install this Code_Aster version to make development and follow
++weekly updates.
++Just edit <cite>setup.cfg</cite> file and add a line as</p>
++<pre class="literal-block">
++ASTER_VERSION='NEW10'
++</pre>
++</blockquote>
++</blockquote>
++</div>
++<div class="section">
++<h1><a id="full-installation" name="full-installation">Full installation</a></h1>
++<blockquote>
++<p>Using this mode you wish install all products included in the
++package.</p>
++<dl class="docutils">
++<dt>Note :</dt>
++<dd>Read carefully setup.cfg comments to customize your installation.</dd>
++</dl>
++</blockquote>
++<ol class="arabic">
++<li><p class="first">Complete <cite>setup.cfg</cite> file to adjust it regarding your
++configuration. Only ASTER_ROOT is necessary.
++Read carefully comments describing the optionnal parameters.</p>
++<dl class="docutils">
++<dt>Note :</dt>
++<dd><p class="first last">you can also use --prefix=ASTER_ROOT option of setup.py to
++change ASTER_ROOT destination directory (equivalent to --aster_root).</p>
++</dd>
++</dl>
++</li>
++<li><p class="first">Run setup script (with the right Python interpreter)</p>
++<pre class="literal-block">
++python setup.py install [--prefix=...]
++</pre>
++<p>The built of Code_Aster takes about 10-15 min and the built of the
++prerequisites takes about 15-20 min. The real time depends on your
++configuration. Two Code_Aster executables are built : with and without
++debugging informations.</p>
++<dl class="docutils">
++<dt>Note :</dt>
++<dd><p class="first last"><cite>python setup.py --help</cite> prints informations about available options
++and products selection.</p>
++</dd>
++</dl>
++</li>
++</ol>
++</div>
++<div class="section">
++<h1><a id="installation-with-products-selection" name="installation-with-products-selection">Installation with products selection</a></h1>
++<blockquote>
++You have two possibilities to select which products you will
++install : giving the list of products to install (see 1.)
++or specify the products you don't want to install (see 2.).</blockquote>
++<ol class="arabic">
++<li><p class="first">You can give the name of the products to install (space separated) :</p>
++<blockquote>
++<p>python setup.py install --prefix=... product1 [products2 [...]]</p>
++</blockquote>
++</li>
++<li><p class="first">You can disable a product installation by adding lines to
++<cite>setup.cfg</cite></p>
++<pre class="literal-block">
++_install_PRODUCT_NAME = False
++</pre>
++</li>
++</ol>
++</div>
++<div class="section">
++<h1><a id="if-an-error-occurs" name="if-an-error-occurs">If an error occurs...</a></h1>
++<blockquote>
++Two kinds of errors can occur : installation or built problem.</blockquote>
++<ol class="arabic">
++<li><p class="first">Error during installation of a product (for example : the
++compilation of med failed).
++There isn't yet way to customize configuration or built of a
++product through <cite>setup.cfg</cite> option.
++So you have to configure, build and install the product by hand
++(source archive is in SRC directory), and set variables which
++are normally set by product setup by adding lines into
++<cite>setup.cfg</cite> file.
++It isn't always simple to know what variables must be set...
++so ask the forum on www.code-aster.org !
++When the product is installed add a '_install_XXX=False' line
++to <cite>setup.cfg</cite> (see <cite>EXAMPLES</cite> section).</p>
++</li>
++<li><p class="first">If an error occurs during the built of Code_Aster both
++configuration and installation should have been well done.</p>
++<p>So you have probably to adjust <cite>config.txt</cite> file (under the
++version directory) to correct the error and to rerun the built
++using as_run.</p>
++<p>Rerun the built</p>
++<pre class="literal-block">
++ cd /opt/aster/STA10.2
++ make
++or
++ /opt/aster/bin/as_run --make
++</pre>
++<p>(replace /opt/aster by ASTER_ROOT, the main directory you chose)</p>
++</li>
++</ol>
++</div>
++<div class="section">
++<h1><a id="log-output" name="log-output">Log output</a></h1>
++<blockquote>
++<p>If an error occurs it's better to attach all the traceback if
++you ask any questions to Code_Aster forum.
++All output informations are saved into the 'setup.log.*' files.
++Save all output informations into an archive</p>
++<pre class="literal-block">
++tar cvjf install_problem.tar.bz2 setup.log.* setup.dbg.*
++</pre>
++<p>Warning: the size limit of attachments is 2 MB.</p>
++</blockquote>
++</div>
++<div class="section">
++<h1><a id="test-your-installation" name="test-your-installation">Test your installation</a></h1>
++<blockquote>
++<p>Following steps suppose installation (python setup.py install...)
++ended with a correct diagnostic</p>
++<pre class="literal-block">
++--- DIAGNOSTIC JOB : OK
++</pre>
++</blockquote>
++<ol class="arabic">
++<li><p class="first">Run a simple test case</p>
++<ul>
++<li><p class="first">Change to your ASTER_ROOT directory and enter in
++ASTER_VERSION directory</p>
++<pre class="literal-block">
++cd /opt/aster/STA10.2
++</pre>
++</li>
++<li><p class="first">Start the small example</p>
++<pre class="literal-block">
++/opt/aster/bin/as_run forma01a.export
++</pre>
++</li>
++</ul>
++</li>
++<li><p class="first">Run a list of test cases</p>
++<ul>
++<li><p class="first">Change to your ASTER_ROOT directory and enter in
++ASTER_VERSION directory</p>
++<pre class="literal-block">
++cd /opt/aster/STA10.2
++</pre>
++</li>
++<li><p class="first">Start the complete test suite</p>
++<pre class="literal-block">
++/opt/aster/bin/as_run astout.export
++</pre>
++</li>
++</ul>
++<dl class="docutils">
++<dt>Note :</dt>
++<dd><p class="first last">By default astout.export runs about the all 2000
++testcases (liste_internet list), but you can select the
++liste_etude list to run only about 30 tests.</p>
++</dd>
++</dl>
++</li>
++</ol>
++</div>
++</div>
++</body>
++</html>
+Index: aster-10.2.0-1/README_aster.txt
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ aster-10.2.0-1/README_aster.txt 2010-07-19 14:53:17.000000000 +0200
+@@ -0,0 +1,335 @@
++README FOR CODE_ASTER INSTALLATION
++==================================
++
++This file is also available in HTML format. Open README_aster.html in favorite browser.
++
++Summary
++-------
++
++ - Licence and packaging
++ - For really impatient !
++ - note about gcc / gfortran
++ - linux 64 bits
++ - Distribution
++ - Required products
++ - Preferences
++ - Full installation
++ - Installation with products selection
++ - If an error occurs...
++ - Log output
++ - Test your installation
++
++For further informations visit http://www.code-aster.org.
++Please report installation problems using `Installation` forum
++at http://www.code-aster.org.
++
++Read carefully this README or at least help message given by ::
++
++ python setup.py --help
++
++
++!!! NEW !!!
++-----------
++
++ Starting with Code_Aster 10.2, numpy is required (in replacement of Numeric).
++ You must install the python-numpy package from your distribution or compile
++ it from sources. You may need to set PYTHONPATH to make setup able to
++ import numpy.
++
++
++License and packaging
++---------------------
++
++ Code_Aster is distributed under the terms of the GNU General Public License.
++ The text is available at : http://www.code-aster.org/telechargement_doc/GPL.txt
++
++ IMPORTANT NOTICE:
++ Code_Aster is a free software but not aster-full package !
++ The aster-full archive does not contain only open-source softwares :
++ gibi and homard are not open-source but they can be freely distributed
++ with Code_Aster.
++
++ Why this kind of package (the big archive aster-full) ?
++ Why "apt-get install codeaster" does not work (yet) ?
++ Some answers at http://www.code-aster.org/forum2/viewtopic.php?id=13292
++
++
++For really impatient
++--------------------
++
++ If you have a recent Linux distribution you may try direclty
++ (just modify ASTER_ROOT in setup.cfg if you don't have write
++ access to /opt/aster or use --prefix option) ::
++
++ python setup.py install --prefix=/opt/aster
++
++ Jump to FULL INSTALLATION step for more details.
++
++
++ - Note about compilers
++
++ `setup.py` tries now to find automatically your compilers.
++ By default it searches GNU compilers.
++ After searching it writes found values. Check them before continue.
++ You can always set them using the `setup.cfg` configuration file.
++ You can also use PATH and LD_LIBRARY_PATH environment variables
++ to help `setup.py` to find the compiler you prefer.
++
++
++ - Note about gcc / gfortran
++
++ If your distribution comes with gfortran instead of g77 you
++ should install g77 (only on 32 bits platforms).
++ Performance is also about twice better with g77 than gfortran.
++ So we recommend to use g77 on 32 bits platforms.
++
++
++ - Note about Intel Compilers
++
++ Its recommended to use Intel compilers for aster, mumps and metis
++ and to let GNU compilers for the other products.
++ To do that just edit `setup.cfg` and uncomment these lines ::
++
++ PREFER_COMPILER_aster = 'Intel'
++ PREFER_COMPILER_mumps = PREFER_COMPILER_aster
++ PREFER_COMPILER_metis = PREFER_COMPILER_aster
++ PREFER_COMPILER_metis_edf = PREFER_COMPILER_aster
++
++ You can "source" the compiler environment script, iccvars.sh,
++ ifortvars.sh and mklvarsXX.sh to set environment variables
++ for Intel Compilers to help `setup.py` to find your compilers.
++ For example ::
++
++ source /opt/intel/cc/*/bin/iccvars.sh
++ source /opt/intel/fc/*/bin/ifortvars.sh
++ source /opt/intel/mkl/*/tools/environment/mklvars32.sh
++ python setup.py install --prefix=/opt/aster
++ ...
++
++
++Distribution
++------------
++
++ The package "aster-xxx.tar" contains ::
++
++ setup.py (and others .py) setup scripts
++ setup.cfg configuration file to adjust according to your configuration.
++ SRC/ archives of Code_Aster and its prerequisites :
++ Code_Aster 10.2.0,
++ astk 1.8.1 (Code_Aster study manager),
++ eficas 2.0.3 (Code_Aster commands file editor),
++ mumps 4.9.2 (direct solver library),
++ med 2.3.6 (Data Exchange Model),
++ hdf5 1.6.9 (platform independent file format),
++ metis-edf 4.1 (reordering tool with specific changes for Code_Aster),
++ metis 4.0 (official release),
++ scotch 4.0 (partitioning tool),
++ omniORB 4.1.4 (CORBA implementation for Code_Aster-Salomé link),
++ omniORBpy 3.4 (omniORB python module),
++ pylotage 2.0.5 (minimal plugin to exchange with Salomé),
++ grace 5.1.21 (plotting of 2D graph),
++ homard 9.6 (refine/unrefine meshes), [Linux 32/64 bits]
++ gmsh 2.4.2 (mesh generator, med support), [Linux]
++ gibi 2000 (mesh generator). [Linux]
++
++
++ Important note :
++
++ homard, gmsh and gibi are provided here as precompiled for Linux.
++ When installing this product on another platform type they
++ must be disabled (see INSTALLATION WITH PRODUCTS SELECTION section).
++ Binaries for some other platforms may be available from
++ http://www.code-aster.org, or directly from their editor.
++
++
++Required products
++-----------------
++
++ All you need is a recent Python installation (>=2.4) with Python headers
++ (provided in python-dev package or similar) with the numpy module (provided
++ in python-numpy or similar) and tcl/tk.
++
++ All python modules are now installed into ASTER_ROOT/public/lib/pythonX.Y/...
++
++ Note :
++ To use eficas Python must have been installed with Tkinter or Qt4 support.
++ After installation, you will have eficasTk and eficasQt.
++ Note that next releases will only come with Qt interface. So it is
++ recommended to use eficasQt.
++
++ Note :
++ Python shared libraries are sometimes required
++ ("--enable-shared" option in configure of Python setup).
++
++
++Preferences
++-----------
++
++ The setup will automatically search for basic components in
++ standard directories (in this order) ::
++
++ /usr/local/bin, /usr/bin, /bin, /usr/X11R6/bin,
++ /usr/bin/X11 (Tru64 specific),
++ /usr/openwin/bin (Solaris specific).
++
++ (analog paths are used to search for libraries and includes)
++
++ You can set BINDIR (or LIBDIR, INCLUDEDIR) to force the script
++ to search also in your own directories. Edit `setup.cfg` and
++ for example ::
++
++ BINDIR=['/home/aster/public/bin', '/opt/bin']
++
++ Note :
++
++ Following common tools are automatically searched during the setup :
++ shell interpreter (one choosen between bash, ksh or zsh),
++ terminal (on choosen between xterm -recommended-, gnome-terminal, konsole),
++ text editor (one choosen between nedit, gedit, kwrite, xemacs, emacs,
++ xedit or vi).
++
++ Note for developpers :
++
++ You can install this Code_Aster version to make development and follow
++ weekly updates.
++ Just edit `setup.cfg` file and add a line as ::
++
++ ASTER_VERSION='NEW10'
++
++
++Full installation
++-----------------
++
++ Using this mode you wish install all products included in the
++ package.
++
++ Note :
++ Read carefully setup.cfg comments to customize your installation.
++
++1. Complete `setup.cfg` file to adjust it regarding your
++ configuration. Only ASTER_ROOT is necessary.
++ Read carefully comments describing the optionnal parameters.
++
++ Note :
++ you can also use --prefix=ASTER_ROOT option of setup.py to
++ change ASTER_ROOT destination directory (equivalent to --aster_root).
++
++2. Run setup script (with the right Python interpreter) ::
++
++ python setup.py install [--prefix=...]
++
++ The built of Code_Aster takes about 10-15 min and the built of the
++ prerequisites takes about 15-20 min. The real time depends on your
++ configuration. Two Code_Aster executables are built : with and without
++ debugging informations.
++
++ Note :
++ `python setup.py --help` prints informations about available options
++ and products selection.
++
++
++Installation with products selection
++------------------------------------
++
++ You have two possibilities to select which products you will
++ install : giving the list of products to install (see 1.)
++ or specify the products you don't want to install (see 2.).
++
++1. You can give the name of the products to install (space separated) ::
++
++ python setup.py install --prefix=... product1 [products2 [...]]
++
++
++2. You can disable a product installation by adding lines to
++ `setup.cfg` ::
++
++ _install_PRODUCT_NAME = False
++
++
++
++If an error occurs...
++---------------------
++
++ Two kinds of errors can occur : installation or built problem.
++
++1. Error during installation of a product (for example : the
++ compilation of med failed).
++ There isn't yet way to customize configuration or built of a
++ product through `setup.cfg` option.
++ So you have to configure, build and install the product by hand
++ (source archive is in SRC directory), and set variables which
++ are normally set by product setup by adding lines into
++ `setup.cfg` file.
++ It isn't always simple to know what variables must be set...
++ so ask the forum on www.code-aster.org !
++ When the product is installed add a '_install_XXX=False' line
++ to `setup.cfg` (see `EXAMPLES` section).
++
++
++2. If an error occurs during the built of Code_Aster both
++ configuration and installation should have been well done.
++
++ So you have probably to adjust `config.txt` file (under the
++ version directory) to correct the error and to rerun the built
++ using as_run.
++
++ Rerun the built ::
++
++ cd /opt/aster/STA10.2
++ make
++ or
++ /opt/aster/bin/as_run --make
++
++ (replace /opt/aster by ASTER_ROOT, the main directory you chose)
++
++
++Log output
++----------
++
++ If an error occurs it's better to attach all the traceback if
++ you ask any questions to Code_Aster forum.
++ All output informations are saved into the 'setup.log.*' files.
++ Save all output informations into an archive ::
++
++ tar cvjf install_problem.tar.bz2 setup.log.* setup.dbg.*
++
++ Warning: the size limit of attachments is 2 MB.
++
++
++Test your installation
++----------------------
++
++ Following steps suppose installation (python setup.py install...)
++ ended with a correct diagnostic ::
++
++ --- DIAGNOSTIC JOB : OK
++
++
++1. Run a simple test case
++
++ - Change to your ASTER_ROOT directory and enter in
++ ASTER_VERSION directory ::
++
++ cd /opt/aster/STA10.2
++
++ - Start the small example ::
++
++ /opt/aster/bin/as_run forma01a.export
++
++2. Run a list of test cases
++
++ - Change to your ASTER_ROOT directory and enter in
++ ASTER_VERSION directory ::
++
++ cd /opt/aster/STA10.2
++
++ - Start the complete test suite ::
++
++ /opt/aster/bin/as_run astout.export
++
++ Note :
++ By default astout.export runs about the all 2000
++ testcases (liste_internet list), but you can select the
++ liste_etude list to run only about 30 tests.
++
++
+Index: aster-10.2.0-1/__pkginfo__.py
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ aster-10.2.0-1/__pkginfo__.py 2010-07-19 14:53:17.000000000 +0200
+@@ -0,0 +1,35 @@
++# -*- coding: utf-8 -*-
++# ==============================================================================
++# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG
++# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
++# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
++# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
++# (AT YOUR OPTION) ANY LATER VERSION.
++#
++# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
++# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
++# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
++# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
++#
++# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
++# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
++# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
++# ==============================================================================
++"""Package info
++"""
++
++modname = 'codeaster-setup'
++numversion = (10, 2)
++version = '.'.join([str(num) for num in numversion])
++release = '1'
++
++license = 'GPL, LGPL, non-free'
++copyright = 'Copyright (c) 2001-2010 EDF R&D - http://www.code-aster.org'
++
++short_desc = "Setup script for Code_Aster and some prerequisites"
++long_desc = short_desc
++
++author = "EDF R&D"
++author_email = "code-aster .at. edf.fr"
++
++
+Index: aster-10.2.0-1/as_setup.py
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ aster-10.2.0-1/as_setup.py 2010-07-19 14:53:17.000000000 +0200
+@@ -0,0 +1,2041 @@
++# -*- coding: utf-8 -*-
++# ==============================================================================
++# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG
++# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
++# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
++# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
++# (AT YOUR OPTION) ANY LATER VERSION.
++#
++# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
++# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
++# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
++# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
++#
++# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
++# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
++# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
++# ==============================================================================
++
++"""This module defines following classes :
++- SETUP main class to configure, make, install Code_Aster products,
++- DEPENDENCIES stores dependencies between products,
++- SUMMARY stores setup informations,
++- SYSTEM encapsulates calls to system commands,
++- FIND_TOOLS package of utilities to find files, libraries...
++
+++ exceptions to control errors occurences.
++"""
++
++
++__all__ = ['SETUP', 'SUMMARY', 'SYSTEM', 'DEPENDENCIES', 'FIND_TOOLS',
++ 'should_continue', 'GetPrefix', 'GetSitePackages', 'AddToPostInstallDir',
++ 'less_than_version', 'export_parameters', 'get_install_message',
++ 'SetupCheckError', 'SetupChgFilesError', 'SetupChmodError', 'SetupCleanError',
++ 'SetupConfigureError', 'SetupError', 'SetupExtractError', 'SetupInstallError',
++ 'SetupMakeError']
++
++import sys
++import os
++import os.path
++import popen2
++import glob
++import re
++import time
++import traceback
++import tarfile
++import compileall
++import imp
++import pprint
++import distutils.sysconfig as SC
++from types import StringTypes
++EnumTypes=(list, tuple)
++
++# ----- differ messages translation
++def _(mesg): return mesg
++
++#-------------------------------------------------------------------------------
++class SetupError(Exception): pass
++class SetupExtractError(SetupError): pass
++class SetupConfigureError(SetupError): pass
++class SetupChgFilesError(SetupError): pass
++class SetupChmodError(SetupError): pass
++class SetupMakeError(SetupError): pass
++class SetupInstallError(SetupError): pass
++class SetupCheckError(SetupError): pass
++class SetupCleanError(SetupError): pass
++
++
++def get_install_message(package, missed):
++ """Return a message recommending to install a package"""
++ txt = ""
++ if missed:
++ txt += """
++Unable to find %s
++""" % missed
++ if package:
++ txt += """
++A package named "%(pkg)s" is required (the package name may be slightly
++different on your system). Depending on your linux distribution, you
++should install it using your package manager or by a command line similar to :
++
++on debian/ubuntu:
++ apt-get install %(pkg)s
++
++on fedora:
++ yum install %(pkg)s
++
++on mandriva:
++ urpmi %(pkg)s
++""" % { 'pkg' : package }
++ return txt
++
++def _clean_path(lpath, returns='str'):
++ """Clean a path variable as PATH, PYTHONPATH, LD_LIBRARY_PATH...
++ """
++ dvu = {}
++ lnew = []
++ lpath = (':'.join(lpath)).split(':')
++ for p in lpath:
++ p = os.path.abspath(p)
++ if p != '' and not dvu.get(p, False):
++ lnew.append(p)
++ dvu[p] = True
++ if returns == 'str':
++ val = ':'.join(lnew)
++ else:
++ val = lnew
++ return val
++
++def _chgline(line, dtrans, delimiter=re.escape('?')):
++ """Change all strings by their new value provided by 'dtrans' dictionnary
++ in the string 'line'.
++ """
++ for old, new in dtrans.items():
++ line=re.sub(delimiter+old+delimiter, str(new), line)
++ return line
++
++def should_continue(default='n', stop=True):
++ """Ask if the user want to stop or continue.
++ The response is case insensitive.
++ If 'stop' is True, ends the execution with exit code 'UserInterruption',
++ else returns the response.
++ """
++ yes = ['yes', 'y', 'oui', 'o'] # only lowercase
++ no = ['no', 'n', 'non',]
++ question = "Do you want to continue (y/n, default %s) ? " % default.lower()
++ valid=False
++ while not valid:
++ try:
++ resp=raw_input(question)
++ except EOFError:
++ resp=None
++ except KeyboardInterrupt:
++ sys.exit('KeyboardInterrupt')
++ if resp=='':
++ resp=default
++ valid = resp<>None and resp.lower() in yes+no
++ if resp.lower() in no and stop:
++ sys.exit('UserInterruption')
++ return resp.lower()
++
++def GetSitePackages(prefix):
++ return SC.get_python_lib(prefix=prefix)
++
++def GetPrefix(site_packages):
++ suff = os.path.join('lib', 'python'+sys.version[:3],'site-packages')
++ if not site_packages.endswith(suff):
++ raise SetupError, 'invalid `site_packages` path : %s' % site_packages
++ return site_packages.replace(suff, '')
++
++def AddToPostInstallDir(filename, postinst, dest):
++ """Add filename to post-installation directory.
++ """
++ fbas = os.path.basename(filename)
++ fdir = os.path.dirname(filename)
++ ibckp = 0
++ fnum = os.path.join(postinst, '%06d_numfile' % 0)
++ if os.path.exists(fnum):
++ try:
++ ibckp = int(open(fnum, 'r').read().strip())
++ except:
++ pass
++ ibckp += 1
++ #bckpf = os.path.join(postinst, '%06d_file_%s' % (ibckp, fbas))
++ bdest = os.path.join(postinst, '%06d_dest_%s' % (ibckp, fbas))
++ open(fnum, 'w').write(str(ibckp))
++ open(bdest, 'w').write(os.path.join(dest, filename))
++
++#-------------------------------------------------------------------------------
++#-------------------------------------------------------------------------------
++#-------------------------------------------------------------------------------
++class SETUP:
++ """
++ Attributes :
++ .product : product name,
++ .version : product version,
++ .description : description of the product,
++ .archive : archive filename (gzip and bzip2 compressed archives support
++ is provided by tarfile module, default is product-version),
++ .content : name of the directory contained in archive
++ (default is product-version),
++ .verbose : True for verbose mode,
++ .debug : True for debug mode,
++ .installdir : installation directory,
++ .sourcedir : directory where is 'archive',
++ .workdir : directory used for extraction, compilation...
++ .delimiter : ChgFiles search strings enclosed by this delimiter
++ (note with special character in regexp, default is '?'),
++ .manual : if False, Go() is automatically called by __init__
++ (NOTE : if True and error occurs SETUP instance won't be created because
++ __init__ wasn't finish),
++ .actions : give the list of actions run by 'Go' method and arguments,
++ .clean_actions : give the list of actions run if 'Go' failed,
++ .temporary_folder : setup working directory,
++ .exit_code : None during process, exit code after,
++
++ .depend : DEPENDENCIES object.
++
++ + Shell, VerbStart, VerbIgnore, VerbEnd : shortcuts to SYSTEM methods
++
++ NB : Configure, Make, Install and Check methods can be provided by 'user'
++ through 'external' argument for particular applications.
++ """
++ _separ = '\n' + '-'*80 + '\n'
++ _fmt_info = _separ+_(""" Installation of : %s %s
++ %s
++ Archive filename : %s
++ Destination : %s
++ Working directory : %s""")+_separ
++ _fmt_enter = _("entering directory '%s'")
++ _fmt_leave = _("leaving directory '%s'")
++ _fmt_title = '\n >>> %s <<<\n'
++ _fmt_inst = _(' %s have already been installed.\n' \
++ ' Remove %s to force re-installation.')
++ _fmt_ended = _separ+_(' Installation of %s %s successfully completed')+_separ
++#-------------------------------------------------------------------------------
++ def __init__(self, **kargs):
++ """Initializes an instance of an SETUP object and calls Info to print
++ informations.
++ """
++ self.exit_code = None
++ self.temporary_folder=kargs.get('temporary_folder', '/tmp')
++ # product parameters
++ required_args=('product', 'version', 'description', 'installdir', 'sourcedir')
++ for arg in required_args:
++ try:
++ setattr(self, arg, kargs[arg])
++ except KeyError, msg:
++ raise SetupError, _('missing argument %s') % str(msg)
++ optionnal_args={
++ 'depend' : None,
++ 'archive' : '%s-%s' % (self.product, self.version),
++ 'content' : '%s-%s' % (self.product, self.version),
++ 'workdir' : os.path.join(self.temporary_folder,
++ 'install_'+self.product+'.'+str(os.getpid())),
++ 'delimiter' : re.escape('?'),
++ 'manual' : True,
++ }
++ for arg, default in optionnal_args.items():
++ setattr(self, arg, kargs.get(arg, default))
++ self.success_key = 'successfully_installed_%s' % self.product
++ self.success_key = self.success_key.replace('-', '')
++ self.success_key = self.success_key.replace('.', '')
++
++ # default actions can only be set after initialisation
++ default_actions = (
++ ('Extract' , {}),
++ ('Configure' , {}),
++ ('Make' , {}),
++ ('Install' , {}),
++ ('Check' , {}),
++ ('Clean' , {}),
++ )
++ self.actions = kargs.get('actions', default_actions)
++ self.clean_actions = kargs.get('clean_actions', [])
++ for d in ('installdir', 'sourcedir', 'workdir'):
++ setattr(self, d, os.path.abspath(getattr(self, d)))
++
++ # external methods
++ system=kargs.get('system')
++ if system==None:
++ raise SetupError, _("Argument not found 'system'")
++ self.verbose = system.verbose
++ self.debug = system.debug
++ self.Shell = system.local_shell
++ self.VerbStart = system.VerbStart
++ self.VerbIgnore = system.VerbIgnore
++ self.VerbEnd = system.VerbEnd
++ self._print = kargs['log']._print
++
++ # print product informations
++ self.Info()
++
++ # Go if not manual
++ if not self.manual:
++ self.Go()
++
++#-------------------------------------------------------------------------------
++ def _call_external(self, **kargs):
++ """Call an external user's method to perform an operation.
++ """
++ try:
++ kargs.get('external')(self, **kargs)
++ except:
++ self.exit_code=4
++ self._print(self._separ, term='')
++ self._print(self._fmt_title % _('External method traceback'))
++ traceback.print_exc()
++ self._print(self._separ)
++ raise SetupConfigureError, _("external method failed (see traceback above).")
++
++#-------------------------------------------------------------------------------
++ def Go(self):
++ """Run successively each actions defined in 'self.actions',
++ call PreCheck() first.
++ """
++ if self.depend.cfg.get(self.success_key) == 'YES':
++ self._print(self._fmt_inst % (self.product, self.depend.cache))
++ else:
++ self.PreCheck()
++ self.depend.LastCheck()
++ for act, kargs in self.actions:
++ if not hasattr(self, act):
++ raise SetupError, _("unknown action '%s'") % act
++ else:
++ getattr(self, act)(**kargs)
++ self.exit_code = 0
++ # trace of success in cache file
++ self.depend.cfg[self.success_key] = 'YES'
++ self.depend.FillCache(self.product, [self.success_key, ])
++ self._print(self._fmt_ended % (self.product, self.version))
++
++#-------------------------------------------------------------------------------
++ def IfFailed(self):
++ """Run successively each actions defined in 'self.clean_actions',
++ if installation failed.
++ """
++ if self.exit_code == 0:
++ return
++
++ for act, kargs in self.clean_actions:
++ if not hasattr(self, act):
++ raise SetupError, _("unknown action '%s'") % act
++ else:
++ getattr(self, act)(**kargs)
++
++#-------------------------------------------------------------------------------
++ def PreCheck(self, check_values=True):
++ """Check for permission and variables settings.
++ """
++ # fill cache file
++ self.depend.FillCache(self.product)
++
++ # check for permissions and create directories
++ self.VerbStart(_('Checking permissions...'))
++ iret=0
++ ldirs=[self.installdir, self.workdir]
++ for d in ldirs:
++ try:
++ if not os.path.exists(d):
++ os.makedirs(d)
++ elif os.access(d, os.W_OK)==0:
++ raise OSError, _('no permission to write in %s') % d
++ except OSError:
++ iret+=1
++ if iret==1: self._print()
++ self._print(_(' Unsufficient permission to create or write in %s') % repr(d))
++ if iret<>0: self.VerbStart('') # just for pretty print if fails
++ self.VerbEnd(iret)
++ if iret<>0:
++ raise SetupError, _('permission denied')
++
++#-------------------------------------------------------------------------------
++ def Info(self):
++ """Print informations about the installation of current product
++ """
++ self._print(self._fmt_info % (self.product, self.version, self.description,
++ self.archive, self.installdir, self.workdir))
++
++#-------------------------------------------------------------------------------
++ def Extract(self, **kargs):
++ """Extract the archive of the product into 'workdir'.
++ archive : full pathname of archive,
++ command : alternative command line to extract archive (MUST include
++ archive filename !),
++ extract_as : rename content.
++ """
++ self._print(self._fmt_title % _('Extraction'))
++ if kargs.get('external')<>None:
++ self._call_external(**kargs)
++ return
++ archive = kargs.get('archive', os.path.join(self.sourcedir,self.archive))
++ command = kargs.get('command')
++ newname = kargs.get('extract_as', None)
++ path=self.workdir
++ iextr_as=newname<>None and self.content<>newname and self.content<>'.'
++ if iextr_as:
++ path=os.path.join(self.workdir,'tmp_extract')
++ if not os.path.exists(path):
++ os.makedirs(path)
++
++ if not os.path.isfile(archive):
++ l_fic = []
++ for opt in ('', '-*'):
++ for ext in ('.tar', '.tar.gz', '.tgz', '.tar.bz2'):
++ l_fic.extend(glob.glob(archive + opt + ext))
++ if len(l_fic) > 0:
++ archive = l_fic[0]
++ if not os.path.isfile(archive):
++ self.exit_code=1
++ raise SetupExtractError, "file not found : "+archive
++
++ prev=os.getcwd()
++ self._print(self._fmt_enter % path)
++ os.chdir(path)
++
++ if command != None:
++ iret,output = self.Shell(command,
++ alt_comment=_('Extracting %s...') % os.path.basename(archive))
++ if iret<>0:
++ self.exit_code=4
++ raise SetupExtractError, _('error during extracting archive %s') % archive
++ else:
++ self.VerbStart(_('Extracting %s...') % os.path.basename(archive))
++ # open archive using tarfile module
++ try:
++ tar = tarfile.open(archive, 'r')
++ except (tarfile.CompressionError, tarfile.ReadError):
++ # try with gzip or bzip2
++ self.VerbIgnore()
++ iret = -1
++ if archive.endswith('gz'):
++ iret, output = self.Shell('gzip -dc %s | tar -xf -' % archive,
++ alt_comment=_('Trying GZIP decompression...'))
++ elif archive.endswith('bz2'):
++ iret, output = self.Shell('bzip2 -dc %s | tar -xf -' % archive,
++ alt_comment=_('Trying BZIP2 decompression...'))
++ else:
++ iret, output = self.Shell('tar -xf %s' % archive,
++ alt_comment=_('Trying raw tar extraction...'))
++ if iret != 0:
++ self.exit_code = 2
++ raise SetupExtractError, _('unsupported archive format for %s') % archive
++ # extract archive
++ else:
++ iret=0
++ n=0
++ tar.errorlevel=2
++ try:
++ for ti in tar:
++ n+=1
++ if ti.issym(): # pourquoi supprime-t-on les symlink ?
++ try:
++ os.remove(ti.name)
++ except OSError:
++ pass # la cible n'existe pas encore
++ tar.extract(ti)
++ except tarfile.ExtractError:
++ iret=4
++ except (IOError,OSError), msg:
++ iret=8
++ except:
++ iret=16
++ self.VerbEnd(iret)
++ tar.close()
++ self._print(_(' --- %d files extracted') % n)
++ if iret<>0:
++ traceback.print_exc()
++ self.exit_code=iret
++ raise SetupExtractError, _('error during extracting archive %s') % archive
++
++ if iextr_as:
++ iret=0
++ self.VerbStart(_('Renaming %s to %s...') % (self.content, newname))
++ newname=os.path.join(self.workdir,newname)
++ try:
++ if os.path.exists(newname):
++ self._print()
++ iret,output=self.Shell('rm -rf '+newname,
++ alt_comment=_('Deleting previous content of %s...') % newname)
++ if iret<>0:
++ raise OSError
++ os.rename(self.content, newname)
++ except (OSError, IOError), msg:
++ iret=4
++ self._print()
++ raise SetupExtractError, _('error renaming %s to %s') \
++ % (self.content, newname)
++ self.VerbEnd(iret)
++
++ self._print(self._fmt_leave % path)
++ os.chdir(prev)
++ if iextr_as:
++ self.Clean(to_delete=path)
++
++#-------------------------------------------------------------------------------
++ def Configure(self, **kargs):
++ """Configuration of the product.
++ command : alternative command line
++ path : directory to build
++ """
++ self._print(self._fmt_title % _('Configuration'))
++ command = kargs.get('command')
++ path = kargs.get('path', os.path.join(self.workdir,self.content))
++ path = self.special_vars(path)
++ if command==None:
++ command='./configure --prefix='+self.installdir
++
++ if not os.path.isdir(path):
++ self.exit_code=4
++ raise SetupConfigureError, _('directory not exists %s') % path
++
++ prev=os.getcwd()
++ self._print(self._fmt_enter % path)
++ os.chdir(path)
++
++ if kargs.get('external')<>None:
++ self._call_external(**kargs)
++
++ else:
++ self._print(_('Command line :'), command)
++ iret,output=self.Shell(command, follow_output=self.verbose,
++ alt_comment=_('configure %s installation...') % self.product)
++ if iret<>0:
++ if not self.verbose: self._print(output)
++ self.exit_code=4
++ raise SetupConfigureError, _('error during configure')
++
++ self._print(self._fmt_leave % path)
++ os.chdir(prev)
++
++#-------------------------------------------------------------------------------
++ def ChgFiles(self, **kargs):
++ """Modify files from 'files' according a dictionnary 'dtrans'
++ defined as { 'string_to_replace' : 'new_value' }.
++ Pathnames are relative to workdir/content or to 'path' argument.
++ !!! Do only post-install tasks if 'only_postinst' is True.
++ Optionnal args : 'delimiter', 'keep', 'ext', 'postinst', 'postdest'
++ postinst : directory to backup file for post-installation
++ postdest : if different of self.installdir
++ """
++ self._print(self._fmt_title % _('Modifying pre-configured files'))
++ chglist = kargs.get('files', [])
++ dtrans = kargs.get('dtrans',{})
++ delimiter = kargs.get('delimiter', self.delimiter)
++ keep = kargs.get('keep', False)
++ ext = kargs.get('ext')
++ postinst = kargs.get('postinst')
++ postdest = kargs.get('postdest', self.installdir)
++ postdest = self.special_vars(postdest)
++ path = kargs.get('path', os.path.join(self.workdir,self.content))
++ path = self.special_vars(path)
++ only_postinst = kargs.get('only_post', False)
++
++ if not os.path.isdir(path):
++ self.exit_code=4
++ raise SetupChgFilesError, _('directory not exists %s') % path
++
++ prev=os.getcwd()
++ self._print(self._fmt_enter % path)
++ os.chdir(path)
++
++ if kargs.get('external')<>None:
++ self._call_external(**kargs)
++
++ else:
++ for f0 in chglist:
++ for f in glob.glob(f0):
++ iret=0
++ self.VerbStart(_('modifying %s') % f)
++ if os.path.isfile(f):
++ if not only_postinst:
++ iret=self._chgone(f, dtrans, delimiter, keep, ext)
++ if postinst != None:
++ AddToPostInstallDir(f, postinst, postdest)
++ self.VerbEnd(iret)
++ else:
++ self.VerbIgnore()
++
++ self._print(self._fmt_leave % path)
++ os.chdir(prev)
++
++ def _chgone(self, filename, dtrans, delimiter=None, keep=False, ext=None):
++ """Change all strings by their new value provided by 'dtrans' dictionnary
++ in the existing file 'filename'.
++ """
++ if delimiter == None:
++ delimiter = self.delimiter
++ if ext == None:
++ ext = '.orig'
++ iret = 0
++ try:
++ os.rename(filename, filename+ext)
++ except OSError:
++ return 4
++ fsrc = open(filename+ext, 'r')
++ fnew = open(filename, 'w')
++ for line in fsrc:
++ fnew.write(_chgline(line, dtrans, delimiter))
++ fnew.close()
++ fsrc.close()
++ if not keep:
++ os.remove(filename+ext)
++ return iret
++
++#-------------------------------------------------------------------------------
++ def Make(self, **kargs):
++ """Compilation of product.
++ command : alternative command line
++ path : directory to build (or list of directories)
++ """
++ self._print(self._fmt_title % _('Building the product'))
++ if kargs.get('external')<>None:
++ self._call_external(**kargs)
++ return
++ command = kargs.get('command')
++ lpath = kargs.get('path', os.path.join(self.workdir,self.content))
++ nbcpu = kargs.get('nbcpu', 1)
++ capturestderr = kargs.get('capturestderr', True)
++ if not type(lpath) in EnumTypes:
++ lpath=[lpath,]
++ if command == None:
++ command = 'make'
++ if nbcpu != 1:
++ command += ' -j %d' % nbcpu
++
++ for path in lpath:
++ path = self.special_vars(path)
++ if not os.path.isdir(path):
++ self.exit_code=4
++ raise SetupConfigureError, _('directory not exists %s') % path
++
++ prev=os.getcwd()
++ self._print(self._fmt_enter % path)
++ os.chdir(path)
++
++ self._print(_('Command line :'), command)
++ iret,output=self.Shell(command, follow_output=self.verbose,
++ capturestderr=capturestderr,
++ alt_comment=_('compiling %s...') % self.product)
++ if iret<>0:
++ if not self.verbose: self._print(output)
++ self.exit_code=4
++ raise SetupMakeError, _('error during compilation')
++
++ self._print(self._fmt_leave % path)
++ os.chdir(prev)
++
++#-------------------------------------------------------------------------------
++ def Install(self, **kargs):
++ """Perform installation of the product.
++ command : alternative command line
++ path : directory to build
++ """
++ self._print(self._fmt_title % _('Installation'))
++ command = kargs.get('command')
++ path = kargs.get('path', os.path.join(self.workdir,self.content))
++ path = self.special_vars(path)
++ if command==None:
++ command='make install'
++
++ if not os.path.isdir(path):
++ self.exit_code=4
++ raise SetupInstallError, _('directory not exists %s') % path
++
++ prev=os.getcwd()
++ self._print(self._fmt_enter % path)
++ os.chdir(path)
++
++ if kargs.get('external')<>None:
++ self._call_external(**kargs)
++
++ else:
++ self._print(_('Command line :'), command)
++ iret,output=self.Shell(command, follow_output=self.verbose,
++ alt_comment=_('installing %s to %s...') % (self.product, self.installdir))
++ if iret<>0:
++ if not self.verbose: self._print(output)
++ self.exit_code=4
++ raise SetupInstallError, _('error during installation')
++
++ self._print(self._fmt_leave % path)
++ os.chdir(prev)
++
++#-------------------------------------------------------------------------------
++ def PyInstall(self, **kargs):
++ """Perform installation of a Python module.
++ command : alternative command line
++ path : initial directory
++ prefix : installation prefix
++ cmd_opts : options
++ """
++ format = '%(python)s %(script)s %(global_opts)s %(cmd)s --prefix=%(prefix)s %(cmd_opts)s'
++ d_cmd = {}
++ d_cmd['python'] = self.depend.cfg.get('PYTHON_EXE', sys.executable)
++ d_cmd['script'] = kargs.get('script', 'setup.py')
++ d_cmd['global_opts'] = kargs.get('global_opts', '')
++ d_cmd['cmd'] = kargs.get('cmd', 'install')
++ d_cmd['cmd_opts'] = kargs.get('cmd_opts', '')
++ d_cmd['prefix'] = kargs.get('prefix', GetPrefix(self.installdir))
++
++ kargs['command'] = kargs.get('command', format % d_cmd)
++ self.Install(**kargs)
++
++#-------------------------------------------------------------------------------
++ def PyCompile(self, **kargs):
++ """Recursively descend the directory tree named by 'path', compiling
++ all .py files along the way.
++ path : one or more directories
++ """
++ self._print(self._fmt_title % _('Compiling Python source files'))
++ lpath = kargs.get('path', os.path.join(self.workdir,self.content))
++ if not type(lpath) in EnumTypes:
++ lpath=[lpath,]
++
++ iret=0
++ for path in lpath:
++ path = self.special_vars(path)
++ if not os.path.isdir(path):
++ self.exit_code=4
++ raise SetupInstallError, _('directory not exists %s') % path
++
++ prev=os.getcwd()
++ self._print(self._fmt_enter % path)
++ os.chdir(path)
++
++ ierr=0
++ self.VerbStart(_('Building byte-code files from %s...') % path)
++ self._print()
++ try:
++ compileall.compile_dir(path, quiet=(self.verbose==False))
++ except Exception, msg:
++ ierr=iret=4
++ self._print(msg)
++ if self.verbose: self.VerbStart('') # just for pretty print
++ self.VerbEnd(ierr)
++ if iret<>0:
++ raise SetupInstallError, _('error during byte-code built')
++
++ self._print(self._fmt_leave % path)
++ os.chdir(prev)
++
++#-------------------------------------------------------------------------------
++ def Chmod(self, **kargs):
++ """Change mode of the 'files' to 'mode'.
++ Pathnames are relative to installdir or to 'path' argument.
++ """
++ self._print(self._fmt_title % _('Set files permission'))
++ chglist = kargs.get('files', [])
++ try:
++ mode = int(kargs.get('mode', 0644))
++ except ValueError:
++ self.exit_code=4
++ raise SetupChmodError, _("an integer is required for 'mode'")
++ path=kargs.get('path', self.installdir)
++
++ if not os.path.isdir(path):
++ self.exit_code=4
++ raise SetupChgFilesError, _('directory not exists %s') % path
++
++ prev=os.getcwd()
++ self._print(self._fmt_enter % path)
++ os.chdir(path)
++
++ if kargs.get('external')<>None:
++ self._call_external(**kargs)
++
++ else:
++ for f0 in chglist:
++ for f in glob.glob(f0):
++ iret=0
++ self.VerbStart(_('applying chmod %04o to %s') % (mode,f))
++ if os.path.isfile(f):
++ try:
++ os.chmod(f, mode)
++ except OSError:
++ iret=4
++ self.VerbEnd(iret)
++ else:
++ self.VerbIgnore()
++
++ self._print(self._fmt_leave % path)
++ os.chdir(prev)
++
++#-------------------------------------------------------------------------------
++ def Check(self, **kargs):
++ """Check if installation was successfull.
++ path : directory to build
++ """
++ self._print(self._fmt_title % _('Check for installation'))
++ command = kargs.get('command')
++ path = kargs.get('path', os.path.join(self.workdir,self.content))
++ path = self.special_vars(path)
++ if command==None:
++ command='make check'
++
++ if not os.path.isdir(path):
++ self.exit_code=4
++ raise SetupConfigureError, _('directory not exists %s') % path
++
++ prev=os.getcwd()
++ self._print(self._fmt_enter % path)
++ os.chdir(path)
++
++ if kargs.get('external')<>None:
++ self._call_external(**kargs)
++
++ else:
++ self._print(_('Command line :'), command)
++ iret,output=self.Shell(command, follow_output=self.verbose,
++ alt_comment=_('checking %s installation...') % self.product)
++ if iret<>0:
++ if not self.verbose: self._print(output)
++ self.exit_code=4
++ raise SetupCheckError, _('error during checking installation')
++
++ self._print(self._fmt_leave % path)
++ os.chdir(prev)
++
++#-------------------------------------------------------------------------------
++ def Clean(self, **kargs):
++ """Clean working directory.
++ 'to_delete' : list of objects to delete
++ Pathnames are relative to workdir or to 'path' argument.
++ """
++ self._print(self._fmt_title % _('Clean temporary objects'))
++ to_del = kargs.get('to_delete', [self.content])
++ path = kargs.get('path', self.workdir)
++ if not type(to_del) in EnumTypes:
++ to_del=[to_del]
++
++ prev=os.getcwd()
++ self._print(self._fmt_enter % path)
++ os.chdir(path)
++
++ for obj in [os.path.abspath(o) for o in to_del]:
++ iret,output=self.Shell(cmd='rm -rf '+obj,
++ alt_comment=_('deleting %s...') % obj)
++ try:
++ os.rmdir(self.workdir)
++ self._print(_('deleting %s...') % self.workdir)
++ except:
++ pass
++
++ self._print(self._fmt_leave % path)
++ os.chdir(prev)
++
++#-------------------------------------------------------------------------------
++ def special_vars(self, ch):
++ """Insert in `ch` the content of "special vars" (attributes).
++ """
++ auth_vars = ['product', 'version', 'content',
++ 'workdir', 'installdir', 'sourcedir']
++ for var in auth_vars:
++ spv = '__setup.%s__' % var
++ if ch.find(spv) > -1:
++ ch = ch.replace(spv, getattr(self, var))
++ return ch
++
++#-------------------------------------------------------------------------------
++#-------------------------------------------------------------------------------
++#-------------------------------------------------------------------------------
++class DEPENDENCIES:
++ """Class to store dependencies between products.
++ Attributes :
++ prod_req : dict where keys are products names and values the list of
++ variables required by them,
++ req_prod : reverse of prod_req,
++ prod_set : dict where keys are products names and values the list of
++ variables set by them,
++ set_prod : reverse of prod_set,
++ req_obj : dict product : required objects (only tested by LastCheck),
++ cfg : dictionnary containing parameters values,
++ cache : cache filename,
++ debug : debug mode.
++ """
++ _separ='\n' + '-'*80 + '\n'
++#-------------------------------------------------------------------------------
++ def __init__(self, **kargs):
++ """Constructor
++ """
++ self.cfg=kargs.get('cfg', {})
++ self.cache=kargs.get('cache', {})
++ self._print = kargs['log']._print
++
++ # external methods
++ system=kargs.get('system')
++ if system==None:
++ raise SetupError, _("Argument not found 'system'")
++ self.debug = system.debug
++ self.Shell = system.local_shell
++ self.VerbStart = system.VerbStart
++ self.VerbIgnore = system.VerbIgnore
++ self.VerbEnd = system.VerbEnd
++
++ self.prod_req = {}
++ self.req_prod = {}
++ self.prod_set = {}
++ self.set_prod = {}
++ self.req_obj = {}
++ if kargs.get('req')<>None or kargs.get('set')<>None:
++ self.Add('__main__', kargs.get('req', []), kargs.get('set', []))
++
++#-------------------------------------------------------------------------------
++ def PrintContent(self, **kargs):
++ """Print content
++ """
++ self._print(self._separ, ('Content of cfg :'))
++ self._print(self.cfg)
++ self._print(_('\nProducts prerequisites :'))
++ self._print(self.prod_req)
++ self._print(_('\nProducts which require these variables :'))
++ self._print(self.req_prod)
++ self._print(_('\nVariables set by products :'))
++ self._print(self.prod_set)
++ self._print(_('\nProducts which set these variables :'))
++ self._print(self.set_prod)
++
++#-------------------------------------------------------------------------------
++ def Add(self, product, req=None, set=None, reqobj=None):
++ """Add dependencies of 'product'.
++ 'req' should contains all variables set before this product setup.
++ Required variables that could be deduced from others should only be
++ in 'set'.
++ 'reqobj' contains names of objects (actually only files) required.
++ """
++ if req is None:
++ req = []
++ if set is None:
++ set = []
++ if reqobj is None:
++ reqobj = []
++ def check_varname(v):
++ d={}
++ try:
++ exec(v+'=0') in d
++ except Exception, msg:
++ raise SetupError, _(' invalid variable name %s' % repr(v))
++
++ if not self.prod_req.has_key(product): self.prod_req[product]=[]
++ if not self.prod_set.has_key(product): self.prod_set[product]=[]
++ if not self.req_obj.has_key(product): self.req_obj[product]=[]
++
++ # takes from req only variables not set by product
++ for r in [r for r in req if not r in set]:
++ check_varname(r)
++ self.prod_req[product].append(r)
++ if not self.req_prod.has_key(r): self.req_prod[r]=[]
++ self.req_prod[r].append(product)
++ for s in set:
++ check_varname(s)
++ self.prod_set[product].append(s)
++ if not self.set_prod.has_key(s): self.set_prod[s]=[]
++ self.set_prod[s].append(product)
++
++ for o in reqobj:
++ self.req_obj[product].append(o)
++
++ # check
++ self.CheckDepVal(product)
++
++ # set variables are considered as required
++ for r in set:
++ check_varname(r)
++ self.prod_req[product].append(r)
++ if not self.req_prod.has_key(r): self.req_prod[r]=[]
++ self.req_prod[r].append(product)
++
++#-------------------------------------------------------------------------------
++ def CheckDepVal(self, product='all'):
++ """Check for dependencies, values setting and permission.
++ """
++ if self.debug:
++ self._print('PASSAGE CHECKDEPVAL product='+product, self._separ, term='')
++ self.PrintContent()
++
++ self._print(self._separ, term='')
++ self.VerbStart(_('Checking for dependencies and required ' \
++ 'variables for %s...') % repr(product))
++ iret, lerr = self.Check(product)
++ if iret<>0: self.VerbStart('') # just for pretty print if fails
++ self.VerbEnd(iret)
++ if iret<>0:
++ raise SetupError, _('inconsistent dependencies or missing variables'\
++ +'\n Problem with : %s') % ', '.join(lerr)
++
++#-------------------------------------------------------------------------------
++ def Check(self, product='all', check_deps=True, check_values=True):
++ """Check for dependencies.
++ """
++ iret=0
++ lerr=[]
++ if product=='all':
++ product=self.prod_req.keys()
++ if not type(product) in EnumTypes:
++ product=[product,]
++ for p in product:
++ if not self.prod_req.has_key(p):
++ iret=-1
++ self._print()
++ self._print(_(' No dependencies found for %s') % repr(p))
++ else:
++ for v in self.prod_req[p]:
++ err=0
++ if check_values and not self.cfg.has_key(v):
++ iret+=1
++ err=1
++ lerr.append(v)
++ if iret==1: self._print()
++ self._print(_(' %15s is required by %s but not set.') % (v, repr(p)))
++ if check_deps and not v in self.set_prod.keys() and err==0:
++ iret+=1
++ lerr.append(v)
++ if iret==1: self._print()
++ self._print(_(' %15s is required by %s') % (v, repr(p)))
++ return iret, lerr
++
++#-------------------------------------------------------------------------------
++ def LastCheck(self, product='all'):
++ """Check for required objects are present.
++ """
++ iret=0
++ lerr=[]
++ if product=='all':
++ product=self.req_obj.keys()
++ if not type(product) in EnumTypes:
++ product=[product,]
++ for p in product:
++ if not self.req_obj.has_key(p):
++ iret=-1
++ self._print()
++ self._print(_(' No objects dependencies found for %s') % repr(p))
++ else:
++ for v in self.req_obj[p]:
++ typ=v.split(':')[0]
++ val=''.join(v.split(':')[1:])
++ if typ=='file':
++ vf=_chgline(val, self.cfg)
++ if not os.path.exists(vf):
++ iret+=1
++ lerr.append(vf)
++ self._print(_(' %s requires this file : %s') % (repr(p), vf))
++ else:
++ raise SetupError, _('unknown type of object : %s') % typ
++ if iret>0:
++ raise SetupError, _('missing objects'\
++ +'\n Problem with : %s') % ', '.join(lerr)
++
++#-------------------------------------------------------------------------------
++ def FillCache(self, product='all', only=None):
++ """Fill cache file with all values set by product if `only` is None
++ or only these of `only` list.
++ NOTE : call it only if you are sure variables are set !
++ """
++ lerr=[]
++ if product=='all':
++ product=self.prod_req.keys()
++ if not type(product) in EnumTypes:
++ product=[product,]
++
++ # fill cache file with values set by product(s)
++ self.VerbStart(_('Filling cache...'))
++ iret=0
++ f=open(self.cache, 'a')
++ for p in product:
++ f.write('\n# Variables set by %s at %s\n' % \
++ (repr(p),time.strftime('%c')))
++ if type(only) in EnumTypes:
++ l_vars = only[:]
++ else:
++ l_vars = self.prod_set[p]
++ # alphabetical sort (easier to read)
++ l_vars.sort()
++ for v in l_vars:
++ if self.cfg.has_key(v):
++ f.write('%s = %s\n' % (v, repr(self.cfg[v])))
++ else:
++ iret=255
++ self._print()
++ lerr.append(v)
++ self._print(_(' %15s not yet defined' % repr(v)))
++ f.close()
++ if iret<>0: self.VerbStart('') # just for pretty print if fails
++ self.VerbEnd(iret)
++ if iret<>0:
++ raise SetupError, _('unavailable variables' \
++ +'\n Problem with : %s') % ', '.join(lerr)
++
++#-------------------------------------------------------------------------------
++#-------------------------------------------------------------------------------
++#-------------------------------------------------------------------------------
++class SUMMARY:
++ """This class collects informations about product installations as
++ diagnostic, exception raised if any...
++ """
++ _separ='\n' + '-'*80 + '\n'
++ _fmt_title=_separ + ' %s' + _separ
++ _fmt_sum=_(""" Installation of : %(product)s %(version)s
++ Destination : %(installdir)s
++ Elapsed time : %(time).2f s""")
++ _fmt_except=_('\n *** Exception %s raised : %s\nSee detailed traceback in' \
++ ' the logfile')
++#-------------------------------------------------------------------------------
++ def __init__(self, list_of_products, **kargs):
++ self.products=list_of_products
++ self.diag={}
++
++ # external methods
++ system=kargs.get('system')
++ self._print = kargs['log']._print
++ if system==None:
++ raise SetupError, _("Argument not found 'system'")
++ self.Shell = system.local_shell
++ self.VerbStart = system.VerbStart
++ self.VerbIgnore = system.VerbIgnore
++ self.VerbEnd = system.VerbEnd
++
++ self._glob_title = "Code_Aster + %d of its prerequisites" % len(self.products)
++ self._t_ini = kargs.get('t_ini') or time.time()
++ for p in self.products:
++ self.diag[p]={
++ 'product' : p,
++ 'version' : '(version unavailable)',
++ 'installdir' : 'unknown',
++ 'exit_code' : None,
++ 'time' : 0.,
++ 'tb_info' : None,
++ }
++
++
++ def SetGlobal(self, aster_root, version):
++ """Set informations for aster-full
++ """
++ self.diag[self._glob_title] = {
++ 'product' : self._glob_title,
++ 'version' : version,
++ 'installdir' : aster_root,
++ 'exit_code' : 0,
++ 'time' : 0.,
++ 'tb_info' : None,
++ }
++
++#-------------------------------------------------------------------------------
++ def Set(self, product, setup, dt, traceback_info=None):
++ """Set informations about a product installation.
++ """
++ if isinstance(setup, SETUP):
++ self.diag[product].update({
++ 'version' : setup.version,
++ 'installdir' : setup.installdir,
++ 'exit_code' : setup.exit_code,
++ })
++ else:
++ self.diag[product]['exit_code']=4
++ self.diag[product]['time']=dt
++ if traceback_info<>None:
++ self.diag[product]['tb_info']=traceback_info
++ sys.exc_clear()
++
++#-------------------------------------------------------------------------------
++ def Print(self):
++ """Return a representation of the SUMMARY object
++ """
++ self.diag[self._glob_title]['time'] = time.time() - self._t_ini
++
++ self._print(self._fmt_title % _('SUMMARY OF INSTALLATION'))
++ for p in self.products + [self._glob_title,]:
++ self.VerbStart(self._fmt_sum % self.diag[p])
++ if self.diag[p]['exit_code']==None:
++ self.VerbIgnore()
++ else:
++ if self.diag[p]['exit_code']<>0:
++ self._print(self._fmt_except % self.diag[p]['tb_info'][:2])
++# traceback.print_tb(self.diag[p]['tb_info'][2])
++ self.VerbStart('') # just for pretty print if fails
++ self.VerbEnd(self.diag[p]['exit_code'])
++
++#-------------------------------------------------------------------------------
++#-------------------------------------------------------------------------------
++#-------------------------------------------------------------------------------
++def _exitcode(status, default=99):
++ """Extrait le code retour du status. Retourne `default` si le process
++ n'a pas fini par exit.
++ """
++ if os.WIFEXITED(status):
++ iret = os.WEXITSTATUS(status)
++ elif os.WIFSIGNALED(status):
++ iret = os.WTERMSIG(status)
++ elif os.WIFSTOPPED(status):
++ iret = os.WSTOPSIG(status)
++ else:
++ iret = default
++ return iret
++
++#-------------------------------------------------------------------------------
++class SYSTEM:
++ """Class to encapsultate "system" commands (this a simplified version of
++ ASTER_SYSTEM class defined in ASTK_SERV part).
++ """
++ # this value should be set during installation step.
++ MaxCmdLen=1024
++ # line length -9
++ _LineLen=80-9
++#-------------------------------------------------------------------------------
++ def __init__(self, run, **kargs):
++ """run : dictionnary to define 'verbose', 'debug'
++ """
++ self.verbose = run['verbose']
++ self.debug = run['debug']
++ self._print = kargs['log']._print
++ self.temporary_folder = os.path.join(kargs.get('temporary_folder', '/tmp'),
++ 'system.%s' % os.getpid())
++ if not os.path.exists(self.temporary_folder):
++ os.makedirs(self.temporary_folder)
++ if kargs.has_key('maxcmdlen'):
++ self.MaxCmdLen = kargs['maxcmdlen']
++
++#-------------------------------------------------------------------------------
++ def _mess(self,msg,cod=''):
++ """Just print a message
++ """
++ self._print('%-18s %s' % (cod,msg))
++
++#-------------------------------------------------------------------------------
++ def VerbStart(self,cmd,verbose=None):
++ """Start message in verbose mode
++ """
++ Lm=self._LineLen
++ if verbose==None:
++ verbose=self.verbose
++ if verbose:
++ pcmd=cmd
++ if len(cmd)>Lm-2 or cmd.count('\n')>0:
++ pcmd=pcmd+'\n'+' '*Lm
++ self._print(('%-'+str(Lm)+'s') % (pcmd,), term='')
++ #sys.stdout.flush() done by _print
++
++#-------------------------------------------------------------------------------
++ def VerbEnd(self,iret,output='',verbose=None):
++ """Ends message in verbose mode
++ """
++ if verbose==None:
++ verbose=self.verbose
++ if verbose:
++ if iret==0:
++ self._print('[ OK ]')
++ else:
++ self._print(_('[FAILED]'))
++ self._print(_('Exit code : %d') % iret)
++ if (iret<>0 or self.debug) and output:
++ self._print(output)
++
++#-------------------------------------------------------------------------------
++ def VerbIgnore(self,verbose=None):
++ """Ends message in verbose mode
++ """
++ if verbose==None:
++ verbose=self.verbose
++ if verbose:
++ self._print('[ SKIP ]')
++
++#-------------------------------------------------------------------------------
++ def local_shell(self,cmd,bg=False,verbose=None,follow_output=False,
++ alt_comment=None,interact=False,capturestderr=True):
++ """Execute a command shell
++ cmd : command
++ bg : put command in background if True
++ verbose : print status messages during execution if True
++ follow_output : follow interactively output of command
++ alt_comment : print this "alternative comment" instead of "cmd"
++ interact : allow the user to interact with the process
++ (don't close stdin). bg=True implies interact=False.
++ Return :
++ iret : exit code if bg = False,
++ process id if bg = True
++ output : output lines (as string)
++ """
++ if not alt_comment:
++ alt_comment=cmd
++ if verbose==None:
++ verbose=self.verbose
++ if bg:
++ interact=False
++ if len(cmd)>self.MaxCmdLen:
++ self._mess((_('length of command shell greater '\
++ 'than %d characters.') % self.MaxCmdLen),_('<A>_ALARM'))
++ if self.debug:
++ self._print('<local_shell>', cmd, DBG=True)
++ # exec
++ self.VerbStart(alt_comment,verbose=verbose)
++ if follow_output and verbose:
++ self._print(_('\nCommand output :'))
++ # run interactive command
++ if interact:
++ iret=os.system(cmd)
++ return _exitcode(iret), ''
++ # use popen to manipulate stdout/stderr
++ output = []
++ if capturestderr is True:
++ p = popen2.Popen4(cmd)
++ else:
++ p = popen2.Popen3(cmd, capturestderr=False)
++ p.tochild.close()
++ if not bg:
++ if not follow_output:
++ output=p.fromchild.readlines()
++ else:
++ while p.poll()==-1:
++ output.append(p.fromchild.readline())
++ # \n already here...
++ self._print(output[-1], term='')
++ #sys.stdout.flush() done by _print
++ # to be sure to empty the buffer
++ end=p.fromchild.readlines()
++ self._print(''.join(end))
++ output.extend(end)
++ try:
++ iret = _exitcode(p.wait())
++ except OSError, e:
++ iret = 4
++ else:
++ iret=0
++ p.fromchild.close()
++ output=''.join(output)
++
++ # repeat header message
++ if follow_output:
++ self.VerbStart(alt_comment,verbose=verbose)
++ mat=re.search('EXIT_CODE=([0-9]+)',output)
++ if mat:
++ try:
++ iret=int(mat.group(1))
++ except:
++ pass
++ self.VerbEnd(iret,output,verbose=verbose)
++ if bg:
++ iret=p.pid
++ if verbose:
++ self._print('Process ID : ',iret)
++ return iret,output
++
++#-------------------------------------------------------------------------------
++ def GetHostName(self, host=None):
++ """Return hostname of the machine 'host' or current machine if None.
++ """
++ from socket import gethostname, gethostbyaddr
++ if host==None:
++ host = gethostname()
++ try:
++ fqn, alias, ip = gethostbyaddr(host)
++ except:
++ fqn, alias, ip = host, [], None
++ if fqn.find('localhost')>-1:
++ alias=[a for a in alias if a.find('localhost')<0]
++ if len(alias)>0:
++ fqn=alias[0]
++ for a in alias:
++ if a.find('.')>-1:
++ fqn=a
++ break
++ return fqn
++
++#-------------------------------------------------------------------------------
++ def AddToEnv(self, profile, verbose=None):
++ """Read 'profile' file (with sh/bash/ksh syntax) and add updated
++ variables to os.environ.
++ """
++ def env2dict(s):
++ """Convert output to a dictionnary."""
++ l = s.split(os.linesep)
++ d = {}
++ for line in l:
++ mat = re.search('^([-a-zA-Z_0-9@\+]+)=(.*$)', line)
++ if mat != None:
++ d[mat.group(1)] = mat.group(2)
++ return d
++ if verbose==None:
++ verbose=self.verbose
++
++ if not profile:
++ return
++ if type(profile) in (str, unicode):
++ ftmp = os.path.join(self.temporary_folder, 'temp.opt_env')
++ open(ftmp, 'w').write(profile)
++ os.chmod(ftmp, 0755)
++ profile = ftmp
++
++ if not os.path.isfile(profile):
++ self._mess(_('file not found : %s') % profile, '<A>_FILE_NOT_FOUND')
++ return
++ # read initial environment
++ iret, out = self.local_shell('sh -c env', verbose=verbose)
++ env_init = env2dict(out)
++ if iret != 0:
++ self._mess(_('error getting environment'), '<E>_ABNORMAL_ABORT')
++ return
++ # read profile and dump modified environment
++ iret, out = self.local_shell('sh -c ". %s ; env"' % profile, verbose=verbose)
++ env_prof = env2dict(out)
++ if iret != 0:
++ self._mess(_('error reading profile : %s') % profile,
++ '<E>_ABNORMAL_ABORT')
++ return
++ # "diff"
++ for k, v in env_prof.items():
++ if env_init.get(k, None) != v:
++ if self.debug:
++ self._print('AddToEnv adding : %s=%s' % (k, v), DBG=True)
++ os.environ[k] = v
++ for k in [k for k in env_init.keys() if env_prof.get(k) is None]:
++ self._print('Unset %s ' % k, DBG=True)
++ try:
++ del os.environ[k]
++ except:
++ pass
++
++#-------------------------------------------------------------------------------
++def _getsubdirs(prefdirs, others, maxdepth=5):
++ """Returns the list of subdirectories of 'prefdirs' and 'others' up to 'maxdepth'.
++ Note that 'prefdirs' appear at the beginning of the returned list,
++ followed by their subdirectories, then 'others', and their subdirectories.
++ """
++ new, dnew = [], {} # dnew exists only for performance (order must be kept in new)
++ for dirs in (prefdirs, others):
++ if not type(dirs) in EnumTypes:
++ dirs=[dirs]
++ dirs=[os.path.realpath(i) for i in dirs if i<>'']
++ for d in dirs:
++ if dnew.get(d) is None:
++ new.append(d)
++ dnew[d] = 1
++ if maxdepth > 0:
++ for d in dirs:
++ level=len(d.split(os.path.sep))
++ for root, l_dirs, l_nondirs in os.walk(d):
++ lev=len(root.split(os.path.sep))
++ if lev <= (level + maxdepth):
++ if dnew.get(root) is None:
++ new.append(root)
++ dnew[root] = 1
++ else:
++ del l_dirs[:] # empty dirs list so we don't walk needlessly
++ return new
++
++#-------------------------------------------------------------------------------
++#-------------------------------------------------------------------------------
++#-------------------------------------------------------------------------------
++class FIND_TOOLS:
++ """Some utilities to find files, libraries...
++ """
++ _fmt_search = _('Checking for %s... ')
++ _fmt_test = _('Checking if %s... ')
++ _fmt_chkpref = _('Checking prefix for %s (%s)... ')
++ _fmt_home = _('adjust to %s')
++ _fmt_locate = _('(locate)... ')
++ _fmt_yes = _('yes')
++ _fmt_no = _('no')
++ _ext_static = '.a'
++ _ext_shared = '.so'
++ dict_rearch = {
++ 'x86' : 'shell|script|80.86',
++ 'i86pc' : 'shell|script|80.86',
++ 'x86_64' : 'shell|script|x86.64',
++ 'ia64' : 'shell|script|ia.64',
++ }
++#-------------------------------------------------------------------------------
++ def __init__(self, **kargs):
++ self._print = kargs.get('log', None)._print
++ self.maxdepth = kargs.get('maxdepth', 0)
++ self.use_locate = kargs.get('use_locate', False)
++ self.prefshared = kargs.get('prefshared', False)
++ self.paths = {
++ 'bin' : [],
++ 'lib' : [],
++ 'inc' : [],
++ 'pymod' : [],
++ }
++ self.std_dirs = {
++ 'bin' : _clean_path(kargs.get('bindirs', []), returns='list'),
++ 'lib' : _clean_path(kargs.get('libdirs', []), returns='list'),
++ 'inc' : _clean_path(kargs.get('incdirs', []), returns='list'),
++ 'pymod' : [],
++ }
++ self.tag2var = {
++ 'bin' : 'PATH',
++ 'lib' : 'LD_LIBRARY_PATH',
++ 'inc' : 'INCLUDEPATH', # should not be used
++ 'pymod' : 'PYTHONPATH',
++ }
++ self.var2tag = {}
++ for k, v in self.tag2var.items():
++ self.var2tag[v] = k
++ for k in ('bin', 'lib', 'inc', 'pymod'):
++ self._print("std_dirs['%s'] =" % k, self.std_dirs[k], DBG=True)
++
++ self.debug = kargs.get('debug', False)
++ self.Shell = kargs['system'].local_shell
++ self.temporary_folder = kargs['system'].temporary_folder
++ self.arch = kargs.get('arch', 'default')
++ self.home_checked = [] # store vars which have already been checked
++ self.noerror = kargs.get('noerror', False)
++ self._last_found = None
++ self._cache = { 'bin' : {}, 'lib' : {}, 'inc' : {} }
++ self._print('maxdepth = %s' % self.maxdepth, DBG=True)
++ self.nbcpu = 1
++ # "file" command
++ self._command_file = None
++ self._command_ar = None
++ self.configure_command_file()
++
++ def clear_temporary_folder(self):
++ os.system('rm -rf %s' % self.temporary_folder)
++
++#-------------------------------------------------------------------------------
++ def configure_command_file(self):
++ """Fill 'file' command arguments."""
++ cmd = self.find_file('file', typ='bin')
++ if cmd is None: # 'file' command not found !
++ return
++ # check for --dereference argument
++ for arg in ('--dereference', '-L'):
++ iret, out = self.Shell('%s %s %s' % (cmd, arg, cmd), verbose=self.debug)
++ if iret == 0:
++ cmd = '%s %s' % (cmd, arg)
++ break
++ self._command_file = cmd
++ self._command_ar = self.find_file('ar', typ='bin')
++
++#-------------------------------------------------------------------------------
++ def check_type(self, filename, typ='bin', arch=None):
++ """Check that 'filename' has the right type."""
++ if arch is None:
++ arch = self.arch
++ # unable to call file or arch unknown
++ if not self._command_file or arch == 'default':
++ return True
++ if not typ in ('bin', 'lib'):
++ return True
++ # search arch using regexp
++ re_arch = re.compile(self.dict_rearch[arch], re.IGNORECASE)
++ iret, out = self.Shell('%s %s' % (self._command_file, filename), verbose=self.debug)
++ if iret != 0:
++ self._print('ERROR <check_type>: %s' % out)
++ return False
++ else:
++ if typ == 'lib':
++ # ascii text : GROUP (list of libs) !
++ if re.search('ascii', out, re.IGNORECASE) != None:
++ content = open(filename, 'r').read()
++ mlib = re.search('GROUP.*\((.*?)\)', content, re.IGNORECASE)
++ if mlib:
++ dirn = os.path.dirname(filename)
++ llibs = mlib.group(1).strip().split()
++ self._print('GROUP lib found, test %s' % llibs, DBG=True)
++ ok = True
++ for lib in llibs:
++ if not os.path.exists(os.path.join(dirn, lib)):
++ if lib[:2] == '-l':
++ lib = 'lib' + lib[2:]
++ lib = os.path.join(dirn, lib)
++ if not os.path.exists(lib):
++ libtest = [lib + '.a', lib + '.so']
++ else:
++ libtest = [lib,]
++ elem = False
++ for lib in libtest:
++ elem = self.check_type(lib, typ, arch)
++ if elem: break
++ if not elem:
++ ok = False
++ break
++ return ok
++
++ # dynamic lib : pass, static lib : extract the first object
++ if re.search('archive', out, re.IGNORECASE) != None:
++ # keep few lines and egrep .o to be sure to ignore comment or head line...
++ jret, out2 = self.Shell('%s t %s | head -5 | egrep "\.o"' \
++ % (self._command_ar, filename), verbose=self.debug)
++ if jret == 0:
++ prev = os.getcwd()
++ os.chdir(self.temporary_folder)
++ doto = out2.splitlines()[0]
++ jret, out2 = self.Shell('%s x %s %s' % (self._command_ar, filename, doto),
++ verbose=self.debug)
++ jret, out = self.Shell('%s %s' % (self._command_file, doto),
++ verbose=self.debug)
++ os.chdir(prev)
++ mat = re_arch.search(out)
++ if mat is None:
++ self._print('invalid type (%s): %s // %s' % (typ, filename, out), DBG=True)
++ return mat is not None
++
++#-------------------------------------------------------------------------------
++ def check_compiler_name(self, compiler, name):
++ """Returns True/False the 'compiler' matches 'name'.
++ """
++ self._print(self._fmt_test % ('%s is %s' % (compiler, name)), term='')
++ iret, out, outspl = self.get_product_version(compiler)
++ res = False
++ comment = ''
++ if len(outspl) >= 3:
++ res = name.lower() in (outspl[0].lower(), outspl[1].lower())
++ comment = ' %s version %s' % tuple(outspl[1:3])
++ if res:
++ self._print(self._fmt_yes, term='')
++ else:
++ self._print(self._fmt_no, term='')
++ self._print(comment)
++ self._print('check_compiler_name out =', out, DBG=True)
++ return res
++
++#-------------------------------------------------------------------------------
++ def check_compiler_version(self, compiler):
++ """Prints 'compiler' version.
++ """
++ self._print(self._fmt_search % 'compiler version', term='')
++ iret, out, outspl = self.get_product_version(compiler)
++ l_out = out.splitlines()
++ if len(l_out) > 0:
++ rep = l_out[0]
++ else:
++ rep = '?'
++ self._print(rep)
++ return rep, outspl
++
++
++ def get_cpu_number(self):
++ """Returns the number of processors."""
++ self._print(self._fmt_search % 'number of processors (core)', term='')
++ iret, out = self.Shell('cat /proc/cpuinfo', verbose=self.debug)
++ exp = re.compile('^processor\s+:\s+([0-9]+)', re.MULTILINE)
++ l_ids = exp.findall(out)
++ if len(l_ids) > 1: # else: it should not !
++ self.nbcpu = max([int(i) for i in l_ids]) + 1
++ self._print(self.nbcpu)
++
++
++ def get_path_typ(self, dict_list, typ):
++ """Returns dict_list[typ] or more."""
++ res = dict_list.get(typ)
++ if res is None:
++ res = dict_list['bin'] + dict_list['lib'] + dict_list['inc']
++ else:
++ res = res[:]
++ return res
++
++#-------------------------------------------------------------------------------
++ def find_file(self, filenames, paths=None, maxdepth=None, silent=False,
++ addto=None, typ='all', with_locate=False):
++ """Returns absolute path of the first of 'filenames' located
++ in paths+std_dirs (so search from paths first) or None if no one was found.
++ """
++ self._last_found = None
++ if not type(filenames) in EnumTypes:
++ filenames=[filenames,]
++ if paths is None:
++ paths = []
++ if not type(paths) in EnumTypes:
++ paths=[paths,]
++ # give maximum chances to 'paths'
++ paths = paths[:]
++ paths.extend(self.get_path_typ(self.paths, typ))
++ if maxdepth==None:
++ maxdepth=self.maxdepth
++ for name in filenames:
++ if not silent:
++ if not with_locate:
++ self._print(self._fmt_search % name, term='')
++ else:
++ self._print(self._fmt_locate, term='')
++ # Check the user's directories and then standard locations
++ std_dirs = self.get_path_typ(self.std_dirs, typ)
++ self._print('search_dirs : %s' % repr(paths), DBG=True)
++ search_dirs=_getsubdirs(paths, std_dirs, maxdepth)
++ if self.debug:
++ self._print('search_dirs : \n%s' % os.linesep.join(search_dirs), DBG=True)
++ for dir in search_dirs:
++ f = os.path.join(dir, name)
++ if os.path.exists(f):
++ self._last_found = os.path.abspath(f)
++ chk = self.check_type(self._last_found, typ=typ)
++ if chk:
++ if not silent:
++ self._print(self._last_found)
++ return self._last_found
++ # try this 'name' using locate
++ ldirs = self.locate(name, addto=addto, typ=typ)
++ if len(ldirs) > 0 and not with_locate:
++ found = self.find_file(name, ldirs, maxdepth, silent, typ=typ, with_locate=True)
++ if found:
++ return found
++ elif not silent:
++ self._print(self._fmt_no)
++ # not found try next item of 'filenames'
++ # Not found anywhere
++ return None
++
++#-------------------------------------------------------------------------------
++ def locate(self, filenames, addto=None, typ='bin'):
++ """Returns dirname (none, one or more, always as list) of 'filename'.
++ If addto != None, addto dirnames into 'addto'.
++ """
++ dnew = []
++ if not self.use_locate:
++ return dnew
++ if addto is None:
++ addto = []
++ assert type(addto) is list, _('"addto" argument must be a list !')
++ if not type(filenames) in (list, tuple):
++ filenames=[filenames,]
++ for name in filenames:
++ iret, out = self.Shell('locate %s | egrep "/%s$"' % (name, name),
++ verbose=self.debug)
++ if iret == 0:
++ dirn = [os.path.dirname(d) for d in out.splitlines()]
++ for f in out.splitlines():
++ if typ != 'bin' or (os.access(f, os.X_OK) and os.path.isfile(f)):
++ d = os.path.dirname(f)
++ if not d in addto:
++ dnew.append(d)
++ addto.extend(dnew)
++ return dnew
++
++#-------------------------------------------------------------------------------
++ def find_and_set(self, cfg, var, filenames, paths=None, err=True,
++ typ='bin', append=False, maxdepth=None, silent=False, prefix_to=None,
++ reqpkg=None):
++ """Uses find_file to search 'filenames' in paths.
++ - If 'err' is True, raises SetupConfigureError if no one was found and
++ print a message in reqpkg is set.
++ - Value set in cfg[var] depends on 'typ' :
++ typ='bin' : cfg[var]='absolute filename found'
++ typ='inc' : cfg[var]='-Idirname'
++ typ='lib' : cfg[var]='static lib' name or '-Ldirname -llib'
++ - If cfg[var] already exists :
++ if 'append' is False, cfg[var] is unchanged ('previously set' message)
++ if 'append' is True, new found value is appended to cfg[var]
++ - prefix_to allows to adjust the value with _real_home
++ (only used for includes).
++ """
++ conv = { 'bin' : 'bin', 'inc' : 'include', 'lib' : 'lib' }
++ if not type(filenames) in EnumTypes:
++ filenames=[filenames,]
++ if maxdepth==None:
++ maxdepth=self.maxdepth
++ # insert in first place 'cfg[var]'/"type"
++ if paths is None:
++ paths = []
++ if not type(paths) in EnumTypes:
++ paths=[paths,]
++ # give maximum chances to 'paths'
++ paths_in = paths[:]
++ for p in paths:
++ paths_in.append(os.path.join(p, conv[typ]))
++ paths = paths_in
++ self._print('find_and_set %s' % filenames, DBG=True)
++ if cfg.has_key(var):
++ paths.insert(0, os.path.join(cfg[var], conv[typ]))
++ paths.insert(0, os.path.dirname(cfg[var]))
++ if not cfg.has_key(var) or append:
++ found=self.find_file(filenames, paths, maxdepth, silent, typ=typ)
++ adj = self._real_home(found, prefix_to)
++ if found == None:
++ if cfg.has_key(var) and not append:
++ del cfg[var]
++ elif not cfg.has_key(var) and append:
++ cfg[var]=''
++ if err and not self.noerror:
++ msg = get_install_message(package=reqpkg, missed=' or '.join(filenames))
++ raise SetupConfigureError(msg)
++ else:
++ root, ext = os.path.splitext(found)
++ dirname = os.path.abspath(os.path.dirname(root))
++ basename = os.path.basename(root)
++ if typ == 'lib':
++ if ext == self._ext_shared:
++ found = '-L%s -l%s' % (dirname, re.sub('^lib', '', basename))
++ elif typ == 'inc':
++ if adj != None:
++ dirname = adj
++ found = '-I%s' % dirname
++ if not cfg.has_key(var) or not append:
++ cfg[var] = found
++ elif cfg[var].find(found) < 0:
++ cfg[var] = (cfg[var] + ' ' + found).strip()
++ self.AddToPath(typ, found)
++ else:
++ self._print(self._fmt_search % ' or '.join(filenames), term='')
++ self._print(_("%s (previously set)") % cfg[var])
++ # append = False donc on peut appeler AddToPath
++ self.AddToPath(typ, cfg[var])
++
++#-------------------------------------------------------------------------------
++ def findlib_and_set(self, cfg, var, libname, paths=None,
++ err=True, append=False, prefshared=None,
++ maxdepth=None, silent=False, prefix_to=None, reqpkg=None):
++ """Same as find_and_set but expands 'libname' as static and shared
++ library filenames.
++ """
++ l_exts=[self._ext_static, self._ext_shared]
++ if maxdepth==None:
++ maxdepth=self.maxdepth
++ if prefshared==None:
++ prefshared=self.prefshared
++ if prefshared:
++ l_exts.reverse()
++ if not type(libname) in EnumTypes:
++ libname=[libname,]
++ if paths is None:
++ paths = []
++ if not type(paths) in EnumTypes:
++ paths=[paths,]
++ l_names = []
++ for name in libname:
++ found = self._cache['lib'].get(name)
++ if found:
++ self._print(self._fmt_search % name, term='')
++ self._print(_("%s (already found)") % found)
++ if not cfg.has_key(var) or not append:
++ cfg[var] = found
++ elif cfg[var].find(found) < 0:
++ cfg[var] = (cfg[var] + ' ' + found).strip()
++ return
++ if name.find('/') > 0 or name.find('.') > 0:
++ l_names.append(name)
++ l_names.extend(['lib'+name+ext for ext in l_exts])
++ pathlib = [os.path.join(p, 'lib') for p in paths]
++ paths = pathlib + paths
++ self.find_and_set(cfg, var, l_names, paths, err, 'lib', append, maxdepth,
++ silent, prefix_to, reqpkg)
++
++#-------------------------------------------------------------------------------
++ def AddToCache(self, typ, var, value):
++ """Store value to cache (only for libs)."""
++ assert typ == 'lib'
++ self._cache[typ][var] = value
++
++#-------------------------------------------------------------------------------
++ def AddToPath(self, typ, var):
++ """Get the directory of object of type 'typ' from 'var', and add it
++ to corresponding paths items.
++ 'var' is supposed to be a result of find_and_set.
++ """
++ if not type(var) in StringTypes:
++ return
++ toadd=[]
++ if typ=='bin':
++ for v in var.split():
++ toadd.append(os.path.dirname(v))
++ elif typ=='lib':
++ for v in var.split():
++ if v[:2]=='-L':
++ toadd.append(v[2:])
++ elif v[:2]=='-l':
++ pass
++ elif os.path.isabs(v):
++ toadd.append(os.path.dirname(v))
++ elif typ=='inc':
++ for v in var.split():
++ if v[:2]=='-I':
++ toadd.append(v[2:])
++ elif os.path.isabs(v):
++ if v.endswith('.h'):
++ toadd.append(os.path.dirname(v))
++ else:
++ toadd.append(v)
++ elif typ=='pymod':
++ for v in var.split():
++ if os.path.isabs(v):
++ toadd.append(v)
++ else:
++ raise SetupError, _('unexpected type %s') % repr(typ)
++ self._print("AddToPath .paths['%s'] =" % typ, self.paths[typ], DBG=True)
++ for elt in toadd:
++ if elt != '' and not elt in self.paths[typ]:
++ if elt in self.std_dirs[typ]:
++ self.paths[typ].append(elt)
++ self._print('AddToPath OUT append %s : %s' % (typ, elt), DBG=True)
++ else:
++ self.paths[typ].insert(0, elt)
++ self._print('AddToPath OUT insert %s : %s' % (typ, elt), DBG=True)
++
++#-------------------------------------------------------------------------------
++ def GetPath(self, typ, add_cr=False):
++ """Returns a representation of paths[typ] to set an environment variable.
++ """
++ if not self.paths.has_key(typ):
++ raise SetupError, _('unexpected type %s') % repr(typ)
++ res = _clean_path(self.paths[typ])
++ if add_cr:
++ res = res.replace(':', ':\\' + os.linesep)
++ return res
++
++#-------------------------------------------------------------------------------
++ def AddToPathVar(self, dico, key, new, export_to_env=True):
++ """Add a path to a variable. If `export_to_env` is True, add the value
++ into environment.
++ """
++ value_in = dico.get(key, '')
++ if export_to_env:
++ value_in = os.environ.get(key, '') + ':' + value_in
++ lpath = value_in.split(':')
++ if new is None:
++ new = self.GetPath(self.var2tag[key]).split(':')
++ else:
++ self.AddToPath(self.var2tag[key], new)
++ if type(new) not in (list, tuple):
++ new = [new,]
++ for p in new:
++ if not p in lpath:
++ lpath.append(p)
++ dico[key] = _clean_path(lpath)
++ if export_to_env:
++ os.environ[key] = dico[key]
++ self._print('AddToPathVar set %s = %s' % (key, dico[key]), DBG=True)
++
++#-------------------------------------------------------------------------------
++ def GccPrintSearchDirs(self, compiler):
++ """Use 'compiler' --print-search-dirs option to add some reliable paths.
++ """
++ self._print(self._fmt_search % '%s configured installation directory' % compiler, term='')
++ iret, out = self.Shell('%s -print-search-dirs' % compiler, verbose=self.debug)
++ lines = out.splitlines()
++ ldec = []
++ for lig in lines:
++ ldec.extend(re.split('[=: ]+', lig))
++ # le prefix est normalement sur la premiere ligne,
++ # on essaie de ne garder que celui-ci
++ ldirs = [os.path.normpath(p) for p in ldec if p.startswith(os.sep)][:1]
++ if len(ldirs) > 0:
++ pref = ldirs[0]
++ self.AddToPath('bin', os.path.join(pref, 'bin'))
++ self.AddToPath('lib', os.path.join(pref, 'lib'))
++ self.AddToPath('bin', compiler)
++ prefbin = os.path.dirname(compiler)
++ if prefbin != pref:
++ self.AddToPath('lib', prefbin)
++ pref = ', '.join([pref, prefbin])
++ else:
++ pref = 'not found'
++ self._print(pref)
++
++#-------------------------------------------------------------------------------
++ def CheckFromLastFound(self, cfg, var, search):
++ """Call _real_home and set the value in cfg[var].
++ """
++ val_in = self._last_found or ''
++ self._print(self._fmt_chkpref % (var, val_in), term='')
++ if val_in == '':
++ self._print(_('unchanged'))
++ return
++ res = self._real_home(val_in, search)
++ if res != None:
++ self._print(self._fmt_home % res)
++ cfg[var] = res
++ else:
++ self._print(_('%s not found in %s') % (search, val_in))
++
++#-------------------------------------------------------------------------------
++ def _real_home(self, path, search):
++ """Checks that the path contains 'search' (starting from the end of 'path').
++ Return the parent of 'search' if found or None.
++ """
++ if not (type(path) in StringTypes and type(search) in StringTypes):
++ return None
++ p = path.split(os.sep)
++ np = len(p)
++ s = search.split(os.sep)
++ ns = len(s)
++ val = None
++ for i in range(np):
++ if p[np-1-i:np-1-i+ns] == s:
++ val = os.sep.join(p[:np-1-i])
++ break
++ return val
++
++#-------------------------------------------------------------------------------
++ def pymod_exists(self, module):
++ """Checks if `module` is installed.
++ """
++ exists = True
++ try:
++ res = imp.find_module(module)
++ except:
++ exists = False
++ return exists
++
++#-------------------------------------------------------------------------------
++ def check(self, func, name, silent=False, format='search'):
++ """Execute a function for checking 'name'. 'func' returns True/False.
++ Used to have the same output as searching files.
++ """
++ if not silent:
++ if format == 'test':
++ fmt = self._fmt_test
++ else:
++ fmt = self._fmt_search
++ self._print(fmt % name, term='')
++ # boolean or function
++ if func is None:
++ self._print()
++ return None
++ elif type(func) in (str, unicode):
++ self._print(func)
++ return None
++ elif type(func) is bool:
++ response = func
++ else:
++ try:
++ response = func()
++ except None:
++ response = False
++ if response:
++ self._print(self._fmt_yes)
++ else:
++ self._print(self._fmt_no)
++ return response
++
++#-------------------------------------------------------------------------------
++ def get_product_version(self, product, arg='--version'):
++ """Returns the output of 'product' --version.
++ """
++ command = '%s %s' % (product, arg)
++ iret, out = self.Shell(command, verbose=False)
++ expr = re.compile('(.*)[ \t]+\((.*)\)[ \t]+(.*?)[ \(].*', re.MULTILINE)
++ mat = expr.search(out)
++ if mat is not None:
++ outspl = mat.groups()
++ else:
++ outspl = out.split()
++ return iret, out, outspl
++
++
++def less_than_version(vers1, vers2):
++ return version2tuple(vers1) < version2tuple(vers2)
++
++
++def version2tuple(vers_string):
++ """1.7.9alpha --> (1, 7, 9, 'alpha'), 1.8 --> (1, 8, 0, 'final')"""
++ tupl0 = vers_string.split('.')
++ val = []
++ for v in tupl0:
++ m = re.search('(^[0-9]+)(.*)', v)
++ if m:
++ val.append(int(m.group(1)))
++ if m.group(2):
++ val.append(m.group(2).replace('-', '').replace('_', '').strip())
++ else:
++ val.append(v)
++ val.extend([0]*(3-len(val)))
++ if type(val[-1]) in (int, long):
++ val.append('final')
++ return tuple(val)
++
++
++def export_parameters(setup_object, dict_cfg, filename, **kwargs):
++ """Export config dict into filename."""
++ content = """parameters = %s""" % pprint.pformat(dict_cfg)
++ print content
++ print filename
++ open(filename, 'w').write(content)
++
+Index: aster-10.2.0-1/check_compilers.py
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ aster-10.2.0-1/check_compilers.py 2010-07-19 14:53:17.000000000 +0200
+@@ -0,0 +1,913 @@
++"""
++Configure compilers
++"""
++
++import os
++import shutil
++import popen2
++import re
++from glob import glob
++from pprint import pprint, pformat
++from as_setup import SetupConfigureError, should_continue
++
++# ----- differ messages translation
++def _(mesg): return mesg
++
++#-------------------------------------------------------------------------------
++trivial_src = {
++ 'CC' : """void trivial() {}
++""",
++ 'F77' : """
++ PROGRAM TRIVIAL
++ END
++""",
++ 'F90' : """
++program trivial
++end
++"""
++}
++
++dict_ext = {
++ 'CC' : 'c',
++ 'F77' : 'f',
++ 'F90' : 'f',
++}
++
++dict_info = {
++ '.c' : { 'compiler' : 'CC', 'flags' : 'CFLAGS', },
++ '.f' : { 'compiler' : 'F77', 'flags' : 'FFLAGS', },
++ '.f90' : { 'compiler' : 'F90', 'flags' : 'F90FLAGS', },
++ 'a.out' : { 'compiler' : 'LD', 'flags' : 'LDFLAGS', },
++}
++
++d_name = { 'math' : 'MATHLIB', 'cxx' : 'CXXLIB', 'sys' : 'OTHERLIB' }
++
++#-------------------------------------------------------------------------------
++#-------------------------------------------------------------------------------
++class CheckCompilerError(Exception):
++ pass
++
++class CONFIGURE_COMPILER:
++ """Search for compilers."""
++
++ def __init__(self, **kargs):
++ """Initialization."""
++ self.compilers = ['CC', 'CXX', 'F77', 'F90']
++ self.profiles = []
++ self.libs = [] # list of (label, lib, necessary=True)
++ for typ in ('sys', 'math'):
++ for lib in kargs.get('%s_lib' % typ, []):
++ self.libs.append((typ, lib))
++# self.necessary = kargs.get('necessary', self.compilers[:] + [k for k, v in self.libs])
++ self.necessary = kargs['necessary']
++
++ # external methods
++ system = kargs.get('system')
++ if system is None:
++ raise CheckCompilerError, _("Argument not found 'system'")
++ self.debug = system.debug
++ self.Shell = system.local_shell
++ self.AddToEnv = system.AddToEnv
++
++ self.ftools = kargs.get('ftools')
++ if self.ftools is None:
++ raise CheckCompilerError, _("Argument not found 'ftools'")
++ self.prefshared = self.ftools.prefshared
++ self._print = self.ftools._print
++ self.fcheck = self.ftools.check
++ self.maxdepth = self.ftools.maxdepth
++
++ # platform
++ self.platform = kargs['platform']
++ self.arch = kargs['arch']
++ self.tmpdir = os.path.join(kargs.get('tmpdir', '/tmp'), \
++ 'check_compilers.%s' % os.getpid())
++ if not os.path.exists(self.tmpdir):
++ os.makedirs(self.tmpdir)
++
++ self.cfg = {}
++ # values (libs) used with all compilers
++ self.cfg_add_global = {}
++ self.init_cfg = self.compilers + \
++ ['LD', 'DEFINED',
++ 'CFLAGS', 'FFLAGS', 'F90FLAGS', 'CXXFLAGS',
++ 'CFLAGS_DBG', 'FFLAGS_DBG', 'F90FLAGS_DBG', 'CXXFLAGS_DBG',
++ 'LDFLAGS', 'FFLAGS_I8', 'F90FLAGS_I8']
++ # initial configuration (from setup.cfg)
++ self.init_value = kargs['init'].copy()
++
++ # compiler options to add
++ self.add_option = kargs.get('add_option', [])
++
++ self.count_error = 0
++ self.env_files = []
++ self.__numlib = 0
++ self.compiler_version = {}
++
++ def clean(self):
++ os.system('rm -rf %s' % self.tmpdir)
++
++
++ def find_compilers(self):
++ """Find compilers."""
++ for var in self.compilers:
++ # set in setup.cfg ?
++ ini = self.check_init_value(var)
++ if ini is not None:
++ continue
++ searched = getattr(self, var)
++ try:
++ self.ftools.find_and_set(self.cfg, var, searched, typ='bin',
++ err=True, append=False, maxdepth=self.maxdepth)
++ l1, lspl = self.ftools.check_compiler_version(self.cfg[var])
++ self.set_compiler_version(var, lspl)
++ except SetupConfigureError, reason:
++ if var in self.necessary:
++ self.count_error += 1
++ self._print(_('ERROR #%d:') % self.count_error, reason)
++ else:
++ self._print(_('WARNING :'), reason)
++
++
++ def set_compiler_version(self, var, fields):
++ """Stores compiler version."""
++ vers = None
++ if len(fields) >= 3:
++ val = fields[2]
++ vers = ''.join([c for c in val if c == '.' or c.isdigit()])
++ vers = vers.strip('.').strip().split('.')
++ try:
++ vers = [int(v) for v in vers]
++ except:
++ vers = None
++ self._print('compiler_version', var, repr(fields), vers, DBG=True)
++ self.compiler_version[var] = vers
++
++
++ def check_init_value(self, var, set_in=None):
++ """Check for initial values given through setup.cfg.
++ """
++ ini = self.init_value.get(var)
++ if ini is not None:
++ if set_in is None:
++ self.cfg[var] = ini
++ else:
++ set_in[var] = ini
++ self.fcheck(ini, '%s from setup.cfg' % var)
++ self._print('Checking for initial value for %s... %s' % (var, ini or 'empty'), DBG=True)
++ return ini
++
++
++ def create_key_from(self, what):
++ """Produce a clean key from a list of libs to search.
++ """
++ key = what
++ if type(key) in (list, tuple):
++ key = key[0].split('.')[0]
++ key = re.sub('[\-\+\*/@+\.]+', '', key)
++ return key
++
++
++ def find_libs(self, lib=None):
++ """Find libraries."""
++ search_libs = self.libs
++ if lib:
++ search_libs = [lib,]
++ vus = {}
++ for name in d_name.keys():
++ # set in setup.cfg ?
++ if vus.get(name) is None:
++ ini = self.check_init_value(d_name.get(name))
++ if ini is not None:
++ vus[name] = True
++ self.cfg['__LIBS_%s_%03d_%s' % (name, 0, 'init_value')] = ini
++ continue
++ else:
++ continue
++
++ for args in search_libs:
++ necessary = True
++ name, what = args[:2]
++ if len(args) > 2:
++ necessary = args[2]
++ # set in setup.cfg ?
++ if vus.get(name) is not None:
++ continue
++ self.__numlib += 1
++ what_key = self.create_key_from(what)
++ cfg_key = '__LIBS_%s_%03d_%s' % (name, self.__numlib, what_key)
++ try:
++ self.ftools.findlib_and_set(self.cfg, cfg_key, what,
++ err=True, append=True, maxdepth=self.maxdepth,
++ prefshared=self.prefshared)
++ # glut pour prendre supc++ au meme endroit que stdc++
++ #MC je pense que ce n'est plus necessaire, verifier
++ if type(what) in (list, tuple):
++ what = ''.join(what)
++ if what.find('stdc++') > -1 and self.cfg.get(cfg_key):
++ self.cfg[cfg_key] += ' -lsupc++'
++ except SetupConfigureError, reason:
++ if necessary:
++ self.count_error += 1
++ self._print(_('ERROR #%d:') % self.count_error, reason)
++ else:
++ self._print(_('WARNING :'), reason)
++
++
++ def check_env(self):
++ """Check for environment profiles."""
++ # OPT_ENV
++ opt_env = [self.cfg.get('OPT_ENV', '')]
++ for prof in self.env_files:
++ opt_env.append('. %s' % prof)
++ opt_env.append('')
++
++ self.cfg['OPT_ENV'] = os.linesep.join(opt_env)
++ self.AddToEnv(self.cfg['OPT_ENV'], verbose=False)
++
++
++ def after_compilers(self):
++ """After searching compilers, this allows to add libs to search
++ according to compiler version..."""
++ pass
++
++
++ def after_libs(self):
++ """After searching libs, this allows to add a flag to ld or..."""
++ pass
++
++
++ def add_on(self):
++ """After searching compilers, libs... search again other bin or lib."""
++ pass
++
++
++ def init_flags(self):
++ """Init compiler options."""
++ for key in self.init_cfg:
++ self.cfg[key] = self.cfg.get(key, '')
++ self.cfg['LD'] = self.cfg['F77']
++
++
++ def insert_option(self, option):
++ """Insert option string in CFLAGS, FFLAGS, F90FLAGS if where is True
++ or only one of these.
++ """
++ if not option in self.add_option:
++ return
++ lkey = ('CFLAGS', 'FFLAGS', 'F90FLAGS')
++ for k in lkey:
++ self.cfg[k] += ' ' + option
++
++
++ def set_flags(self):
++ """Set compiler options."""
++ pass
++
++
++ def check_init_flags(self):
++ """Overwrites compiler options by setup.cfg."""
++ for key in ('CFLAGS', 'FFLAGS', 'F90FLAGS', 'CFLAGS_DBG', 'FFLAGS_DBG', 'F90FLAGS_DBG'):
++ ini = self.check_init_value(key)
++
++
++ def check_ok(self):
++ """Returns False if an error occurred."""
++ ok = True
++ for attr in self.necessary:
++ val = self.cfg.get(attr)
++ if not val:
++ ok = False
++ break
++ if self.count_error > 0:
++ ok = False
++ return ok
++
++
++ def final(self):
++ """The end."""
++ # test blas/lapack
++ from check_compilers_src import blas_lapack
++ result, errmsg = self.run_test(blas_lapack)
++ result = self.fcheck(result, 'C/fortran program using blas/lapack')
++ if not result:
++ self._print('---------- ERROR MESSAGE ----------', os.linesep, errmsg)
++ self._print(blas_lapack['__error__'])
++ rep = should_continue()
++ # add to global (g2c/gfortran must be used by aster compiled with Intel)
++ for k, v in self.cfg.items():
++ if re.search('__LIBS_math_[0-9]+_g2c', k) is not None \
++ or re.search('__LIBS_math_[0-9]+_gfortran', k) is not None:
++ self.cfg_add_global[k] = v
++
++
++ def run(self):
++ """Runs the configure."""
++ self.fcheck(None, self.__doc__)
++ self.find_compilers()
++ if not self.check_ok():
++ return
++ self.after_compilers()
++ if not self.check_ok():
++ return
++ self.find_libs()
++ if not self.check_ok():
++ return
++ self.after_libs()
++ if not self.check_ok():
++ return
++ self.check_env()
++ if not self.check_ok():
++ return
++ self.add_on()
++ if not self.check_ok():
++ return
++ self.init_flags()
++ self.set_flags()
++ if not self.check_ok():
++ return
++ self.check_init_flags()
++ self.final()
++ self.clean()
++
++
++ def diag(self):
++ diag = self.check_ok()
++ if not diag:
++ diag = '%d error(s) (see previous ERROR)' % self.count_error
++ self.fcheck(diag, self.__doc__)
++
++
++ def test_compil(self, lang, args='', src=None, verbose=None):
++ """Test a compiler."""
++ if verbose is None:
++ verbose = self.debug
++ ext = dict_ext[lang]
++
++ prev = os.getcwd()
++ tmp = os.path.join(self.tmpdir, 'test_compil')
++ os.mkdir(tmp)
++ os.chdir(tmp)
++
++ fsrc = 'test_compil.%s.%s' % (os.getpid(), ext)
++ open(fsrc, 'w').write(src or trivial_src[lang])
++ cmd = '%s -c %s %s' % (self.cfg[lang], args, fsrc)
++ iret, out = self.Shell(cmd, verbose=verbose)
++
++ os.chdir(prev)
++ shutil.rmtree(tmp)
++ return iret == 0
++
++
++ def get_cmd_compil(self, fsrc, integer8):
++ """Returns command line for compiling 'fsrc'."""
++ di = {}
++ if fsrc != 'a.out':
++ root, ext = os.path.splitext(fsrc)
++ di['src'] = '-c %s' % fsrc
++ di['res'] = root + '.o'
++ sdefs = ['', self.platform,] + self.cfg['DEFINED'].split()
++ di['defs'] = ' -D'.join(sdefs)
++ else:
++ ext = 'a.out'
++ di['src'] = ' '.join(glob('*.o'))
++ di['res'] = 'a.out'
++ sorted_keys = self.cfg.keys() # to preserve libs order
++ sorted_keys.sort()
++ for k in sorted_keys:
++ if k.startswith('__LIBS_'):
++ di['src'] += ' ' + self.cfg[k]
++ di['defs'] = ''
++ for what, key in dict_info[ext].items():
++ di[what] = self.cfg[key]
++ if integer8 and self.cfg.get(key + '_I8'):
++ di[what] += self.cfg[key + '_I8']
++ cmd = '%(compiler)s -o %(res)s %(defs)s %(flags)s %(src)s' % di
++ self._print('get_cmd_compil returns : ', cmd, DBG=True)
++ return cmd
++
++
++ def run_test(self, dict_src):
++ """Compiling a program using blas/lapack."""
++ prev = os.getcwd()
++ tmp = os.path.join(self.tmpdir, 'run_test')
++ os.mkdir(tmp)
++ os.chdir(tmp)
++ iret = 0
++ integer8 = dict_src.get('__integer8__', False)
++ # compilation of source files
++ for fich, src in dict_src.items():
++ if fich.startswith('__'):
++ continue
++ open(fich, 'w').write(src)
++ iret, out = self.Shell(self.get_cmd_compil(fich, integer8), verbose=self.debug)
++ if iret != 0:
++ break
++ # link
++ if iret == 0:
++ iret, out = self.Shell(self.get_cmd_compil('a.out', integer8), verbose=self.debug)
++ # run a.out
++ if iret == 0:
++ iret, out = self.Shell('./a.out', verbose=self.debug)
++ os.chdir(prev)
++ shutil.rmtree(tmp)
++ return iret == 0, out
++
++#-------------------------------------------------------------------------------
++#-------------------------------------------------------------------------------
++class GNU_COMPILER(CONFIGURE_COMPILER):
++ """GNU compilers"""
++ CC = 'gcc'
++ CXX = 'g++'
++ F77 = ['g77', 'gfortran',]
++ F90 = 'gfortran'
++
++ def __init__(self, **kargs):
++ """Initialization."""
++ CONFIGURE_COMPILER.__init__(self, **kargs)
++
++ if self.platform == 'LINUX64':
++ self.F77 = 'gfortran'
++
++ self.fortran_supports_openmp = False
++ self.is_F77_is_gfortran = False
++
++
++ def after_compilers(self):
++ """Define libs to search."""
++ self.libs.extend([('math', 'lapack'), ('math', 'blas'),
++ ('cxx', ['libstdc++.so', 'libstdc++.a']),])
++
++
++ def add_on(self):
++ """After searching compilers, libs... search again other bin or lib."""
++ self.is_F77_is_gfortran = self.test_compil('F77',
++ args='-ffree-form -fdefault-integer-8', src=trivial_src['F90'])
++ self.fcheck(self.is_F77_is_gfortran, 'F77 (%s) is gfortran' % self.cfg.get('F77', '?'))
++
++ self.fortran_supports_openmp = self.test_compil('F77', args='-fopenmp', src=trivial_src['F77'])
++ if self.cfg.get('F90'):
++ self.fortran_supports_openmp = self.fortran_supports_openmp and \
++ self.test_compil('F90', args='-ffree-form -fopenmp', src=trivial_src['F90'])
++ self.fcheck(self.fortran_supports_openmp, "F77 (%s) and F90 (%s) support '-fopenmp' option" \
++ % (self.cfg.get('F77', '?'), self.cfg.get('F90', '?')))
++
++ # les blas/lapack en ont peut-etre besoin, on rend libg2c facultative si F77=gfortran
++ self.libs.append(('math', 'g2c', not self.is_F77_is_gfortran))
++ self.find_libs(lib=self.libs[-1])
++ if self.cfg.get('F90') or self.is_F77_is_gfortran:
++ self.libs.append(('math', 'gfortran'))
++ self.find_libs(lib=self.libs[-1])
++
++
++ def set_flags(self):
++ """Set compiler options."""
++ self.cfg['CFLAGS'] = '-O2'
++ flagsp = self.test_compil('CC', args='-fno-stack-protector')
++ self.fcheck(flagsp, "CC (%s) supports '-fno-stack-protector' option" % self.cfg.get('F77', '?'))
++ if flagsp:
++ self.cfg['CFLAGS'] += ' -fno-stack-protector'
++
++ self.cfg['FFLAGS'] = '-O2'
++ if self.fortran_supports_openmp:
++ self.cfg['FFLAGS'] += ' -fopenmp'
++ if self.cfg.get('F90'):
++ self.cfg['LDFLAGS'] = ' -fopenmp'
++ self.cfg['F90FLAGS'] += ' -fopenmp'
++
++ if self.is_F77_is_gfortran:
++ if self.platform == 'LINUX64':
++ self.cfg['FFLAGS_I8'] = ' -fdefault-double-8 -fdefault-integer-8 -fdefault-real-8'
++
++ self.cfg['F90FLAGS'] = '-O2'
++ if self.cfg.get('F90'):
++ self.cfg['F90FLAGS'] += ' -ffixed-line-length-0 -x f77-cpp-input'
++ if self.platform == 'LINUX64':
++ self.cfg['F90FLAGS_I8'] = ' -fdefault-double-8 -fdefault-integer-8 -fdefault-real-8'
++
++ self.insert_option('-fPIC')
++ self.cfg['CFLAGS_DBG'] = self.cfg['CFLAGS'].replace('-O2', '-g ')
++ self.cfg['FFLAGS_DBG'] = self.cfg['FFLAGS'].replace('-O2', '-g ')
++ self.cfg['F90FLAGS_DBG'] = self.cfg['F90FLAGS'].replace('-O2', '-g ')
++
++#-------------------------------------------------------------------------------
++#-------------------------------------------------------------------------------
++class GNU_without_MATH_COMPILER(GNU_COMPILER):
++ """GNU compilers without mathematical libraries."""
++
++ def __init__(self, **kargs):
++ """Initialization."""
++ CONFIGURE_COMPILER.__init__(self, **kargs)
++
++ if self.platform == 'LINUX64':
++ self.F77 = 'gfortran'
++
++
++ def after_compilers(self):
++ """Define libs to search."""
++ self.libs.extend([('cxx', ['libstdc++.so', 'libstdc++.a']),])
++
++#-------------------------------------------------------------------------------
++#-------------------------------------------------------------------------------
++class INTEL_COMPILER(CONFIGURE_COMPILER):
++ """Intel compilers"""
++ CC = 'icc'
++ CXX = 'icpc'
++ F77 = 'ifort'
++ F90 = 'ifort'
++
++ def __init__(self, **kargs):
++ """Initialization."""
++ CONFIGURE_COMPILER.__init__(self, **kargs)
++
++ self.profiles.extend(['iccvars.sh', 'ifortvars.sh',])
++ self.is_v11 = False
++ self.src_mkl = True
++
++
++ def after_compilers(self):
++ """Define libs to search."""
++ # http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/
++ self.is_v11 = (self.compiler_version.get('CC') != None and self.compiler_version['CC'] >= [11, 0]) or \
++ (self.compiler_version.get('F77') != None and self.compiler_version['F77'] >= [11, 0]) or \
++ (self.compiler_version.get('F90') != None and self.compiler_version['F90'] >= [11, 0])
++ self.fcheck(self.is_v11, 'Intel Compilers version >= 11.0')
++
++ if self.is_v11:
++ if self.platform == 'LINUX':
++ self.libs.append(('math', 'mkl_intel'))
++ else:
++ self.libs.append(('math', 'mkl_intel_lp64'))
++ self.libs.append(('math', 'mkl_sequential'))
++ self.libs.append(('math', 'mkl_core'))
++ else:
++ # version < 11.0
++ if self.prefshared:
++ self.libs.append(('math', 'mkl'))
++ if self.platform == 'LINUX':
++ self.libs.append(('math', ['mkl_lapack', 'mkl_lapack32']))
++ self.libs.append(('math', ['mkl_ia32', 'mkl_ias']))
++ elif self.arch == 'ia64':
++ self.libs.append(('math', ['mkl_lapack', 'mkl_lapack64']))
++ self.libs.append(('math', ['mkl_ipf', 'mkl_ias']))
++ else:
++ self.libs.append(('math', ['mkl_lapack', 'mkl_lapack64']))
++ self.libs.append(('math', ['mkl_em64t', 'mkl_ias']))
++ self.libs.append(('sys', 'guide'))
++
++ self.libs.append(('sys', 'pthread')) # pthread must appear after guide
++ self.libs.extend([('cxx', ['libstdc++.so', 'libstdc++.a']),])
++
++
++ def after_libs(self):
++ """Add start/end group option around mathlib."""
++ if self.is_v11:
++ self.cfg['__LIBS_math_000_start'] = "-Wl,--start-group"
++ self.cfg['__LIBS_math_999_end'] = "-Wl,--end-group"
++
++
++ def check_env(self):
++ """Check for environment profiles."""
++ add_arch = False
++ search_paths = []
++ if self.platform == 'LINUX': # 32 bits
++ intel_arch = 'ia32'
++ mkl_src_name = 'mklvars32.sh'
++ elif self.platform == 'LINUX64':
++ if self.arch == 'ia64': # ia64
++ intel_arch = 'ia64'
++ mkl_src_name = 'mklvars64.sh'
++ else: # x86_64
++ intel_arch = 'intel64'
++ mkl_src_name = 'mklvarsem64t.sh'
++ else:
++ raise CheckCompilerError, _('Unsupported platform : %s') % self.platform
++
++ if self.is_v11:
++ add_arch = True
++ self.src_mkl = False
++ search_paths.append( self.cfg['CC'].replace('/%s/icc' % intel_arch, ''))
++ search_paths.append(self.cfg['F77'].replace('/%s/ifort' % intel_arch, ''))
++ search_paths.append(self.cfg['F90'].replace('/%s/ifort' % intel_arch, ''))
++ search_paths.append(os.path.normpath(os.path.join(self.cfg['CC'], os.pardir, os.pardir, os.pardir)))
++ # unset LANG because of (version 11.0 only)
++ # """Catastrophic error: could not set locale "" to allow processing of multibyte characters"""
++ # self.cfg['OPT_ENV'] = self.cfg.get('OPT_ENV', '')
++ # self.cfg['OPT_ENV'] += os.linesep + """
++ ## because of this error : 'Catastrophic error: could not set locale "" to allow processing of multibyte characters'
++ #unset LANG
++ #"""
++ self.cfg['OPT_ENV'] = self.cfg.get('OPT_ENV', '').strip()
++ else:
++ # from '/opt/intel/fc/9.1.045/bin/ifort', add '/opt/intel'
++ search_paths.append(os.path.normpath(os.path.join(self.cfg['CC'], os.pardir, os.pardir, os.pardir, os.pardir)))
++
++ self._print('add_arch =', repr(add_arch), '; src_mkl =', repr(self.src_mkl),
++ '; intel_arch =', repr(intel_arch), '; mkl_src_name =', repr(mkl_src_name), DBG=True)
++
++ if self.src_mkl:
++ self.profiles.append(mkl_src_name)
++ for prof in self.profiles:
++ res = self.ftools.find_file(prof, paths=search_paths, typ='all', maxdepth=self.maxdepth)
++ if res:
++ if add_arch:
++ res += ' ' + intel_arch
++ self.env_files.append(res)
++ if not self.src_mkl and self.is_v11:
++ self.fcheck('should be sourced by iccvars.sh/ifortvars.sh', mkl_src_name)
++ if os.environ.get('INTEL_LICENSE_FILE'):
++ self.cfg['OPT_ENV'] = self.cfg.get('OPT_ENV', '')
++ self.cfg['OPT_ENV'] += os.linesep
++ self.cfg['OPT_ENV'] += "export INTEL_LICENSE_FILE='%s'" % os.environ['INTEL_LICENSE_FILE']
++ self.cfg['OPT_ENV'] = self.cfg['OPT_ENV'].strip()
++
++ CONFIGURE_COMPILER.check_env(self)
++
++#-------------------------------------------------------------------------------
++ def set_flags(self):
++ """Set compiler options."""
++ self.cfg['DEFINED'] += '_USE_INTEL_IFORT _USE_OPENMP _DISABLE_MATHLIB_FPE'
++ self.cfg['LDFLAGS'] = '-nofor_main -openmp' # add -static-intel ?
++ self.cfg['CFLAGS'] = '-O3 -traceback -openmp'
++ self.cfg['FFLAGS'] = '-O3 -fpe0 -traceback -openmp'
++ self.cfg['F90FLAGS'] = '-O3 -fpe0 -traceback -openmp'
++ #TODO add -align sequence on ia64 architectures
++ if self.platform == 'LINUX64':
++ self.cfg['FFLAGS_I8'] = ' -i8 -r8'
++ self.cfg['F90FLAGS_I8'] = ' -i8 -r8'
++
++ self.insert_option('-fPIC')
++ self.cfg['CFLAGS_DBG'] = self.cfg['CFLAGS'].replace('-O3', '-g ')
++ self.cfg['FFLAGS_DBG'] = self.cfg['FFLAGS'].replace('-O3', '-g ')
++ self.cfg['F90FLAGS_DBG'] = self.cfg['F90FLAGS'].replace('-O3', '-g ')
++
++#-------------------------------------------------------------------------------
++#-------------------------------------------------------------------------------
++class INTEL_without_MATH_COMPILER(INTEL_COMPILER):
++ """Intel compilers without mathematical libraries."""
++#-------------------------------------------------------------------------------
++ def __init__(self, **kargs):
++ """Initialization."""
++ CONFIGURE_COMPILER.__init__(self, **kargs)
++
++ self.profiles.extend(['iccvars.sh', 'ifortvars.sh',])
++ self.is_v11 = False
++ self.src_mkl = False
++
++
++ def after_compilers(self):
++ """Define libs to search."""
++ if not self.is_v11:
++ self.libs.append(('sys', 'guide'))
++ self.libs.append(('sys', 'pthread')) # pthread must appear after guide
++ self.libs.extend([('cxx', ['libstdc++.so', 'libstdc++.a']),])
++
++#-------------------------------------------------------------------------------
++#-------------------------------------------------------------------------------
++dict_name = {
++ 'INTEL' : INTEL_COMPILER,
++ 'GNU' : GNU_COMPILER,
++ 'INTEL_WITHOUT_MATH' : INTEL_without_MATH_COMPILER,
++ 'GNU_WITHOUT_MATH' : GNU_without_MATH_COMPILER,
++}
++
++global_pref_order = ['INTEL', 'GNU', 'INTEL_WITHOUT_MATH', 'GNU_WITHOUT_MATH']
++
++
++#-------------------------------------------------------------------------------
++#-------------------------------------------------------------------------------
++class COMPILER_MANAGER:
++ """Manager multiple compilers during installation.
++ """
++
++ def __init__(self, debug=False, print_func=None):
++ """Initialization"""
++ self.config = {}
++ self._first_switch = True
++ self._first_values = {}
++ self._out_values = {}
++ self._overwritten_attrs = ['DEFINED', 'OPT_ENV',]
++ self._compilers_attrs = set(self._overwritten_attrs)
++ self._global_cfg = {}
++ self.debug = debug
++ self.print_func = print_func
++
++
++ def _print(self, *args, **kargs):
++ if self.print_func:
++ self.print_func(*args, **kargs)
++ else:
++ print args, kargs
++
++
++ def configure(self, **kargs):
++ """Configure a compiler.
++ """
++ success = False
++ name = kargs.get('name', '').upper()
++ product = kargs.get('product', name)
++ # already checked or not ?
++ conf = self.config.get(name)
++ if not conf:
++ klass = dict_name.get(name)
++ if not klass:
++ return success
++ conf = klass(**kargs)
++ conf.run()
++ conf.diag()
++ self._global_cfg.update(conf.cfg_add_global)
++ conf.fcheck(', '.join(conf.cfg_add_global.values()), 'global values')
++ self._print("_global_cfg : ", self._global_cfg, DBG=True)
++ else:
++ conf.fcheck('ok (already configured)', conf.__doc__)
++
++ success = conf.check_ok()
++ if success:
++ self.config[product] = conf
++ self.config[name] = conf
++ # if __main__ is not yet defined
++ self.config['__main__'] = self.config.get('__main__', conf)
++
++ return success
++
++
++ def check_compiler(self, **kargs):
++ """Try to configure a compiler. Stops at first success.
++ 'name' : prefered compiler (searched first).
++ """
++ l_search = []
++ # add prefered class and its derivated first (GNU, GNU_xxx...)
++ name_ini = kargs.get('name', '').upper()
++ if name_ini:
++ klass = dict_name.get(name_ini)
++ if klass:
++ l_search.append(name_ini)
++ for name in global_pref_order:
++ if (name.startswith(name_ini) or name_ini.startswith(name)) \
++ and name not in l_search:
++ l_search.append(name)
++ # or take all classes
++ else:
++ for name in global_pref_order:
++ if name not in l_search:
++ l_search.append(name)
++
++ success = False
++ for name in l_search:
++ kargs['name'] = name
++ success = self.configure(**kargs)
++ if success:
++ break
++ return success
++
++
++ def get_config(self, product=None):
++ """Return config dict."""
++ return self.config.get(product, self.config.get('__main__')).cfg
++
++
++ def switch_in_dep(self, dependency_object, product, system=None, verbose=False):
++ """Change 'cfg' attribute of the dependency_object.
++ """
++ __dbgsw = False
++ cfg = dependency_object.cfg
++ compiler_cfg = self.get_config(product)
++ if __dbgsw:
++ print '#SWITCH switch cfg pour %s' % product
++ pprint(cfg)
++ print '#SWITCH compiler_cfg'
++ pprint(compiler_cfg)
++ print '#SWITCH _first_values'
++ pprint(self._first_values)
++
++ # first time store initial values
++ if self._first_switch:
++ for attr in self._overwritten_attrs:
++ if cfg.get(attr) is not None:
++ if __dbgsw:
++ print '#SWITCH init cfg[%s] = %s' % (attr, cfg.get(attr))
++ self._first_values[attr] = cfg[attr]
++ self._first_switch = False
++ else:
++ # differences added by products
++ lk = set(cfg.keys())
++ lk.update(self._out_values.keys())
++ for k in lk:
++ v1 = self._out_values.get(k, '')
++ v2 = cfg.get(k, '')
++ if v1 != v2:
++ if __dbgsw:
++ print '#SWITCH has changed %s' % k
++ print ' %s // %s' % (v1, v2)
++ diff = v2.replace(v1, '').strip()
++ if __dbgsw:
++ print '#SWITCH increment : ', diff
++ self._first_values[k] = (self._first_values.get(k, '') + ' ' + diff).strip()
++ else:
++ pass
++ if __dbgsw:
++ print '#SWITCH idem %-12s : %s' % (k, v1)
++
++ # re-init values defined by compilers
++ for attr in self._compilers_attrs:
++ cfg[attr] = ''
++
++ # copy values if not already in cfg
++ math_lib = []
++ cxx_lib = []
++ sys_lib = []
++
++ sorted_keys = set(compiler_cfg.keys())
++ sorted_keys.update(self._global_cfg.keys())
++ sorted_keys = list(sorted_keys)
++ sorted_keys.sort() # to preserve libs order
++ for key in sorted_keys:
++ value = compiler_cfg.get(key)
++ from_globv = value is None
++ if from_globv:
++ value = self._global_cfg[key]
++ self._print('from _global_cfg[%s] = %s' % (key, value), DBG=True)
++ # ignore null values
++ if not value:
++ continue
++ if not key.startswith('__'):
++ if cfg.get(key) and __dbgsw:
++ print '#SWITCH already exists %s' % key
++ print ' old=%s' % cfg[key]
++ print ' new=%s' % value
++ cfg[key] = value
++ elif key.startswith('__LIBS_math_'):
++ if value in math_lib and from_globv:
++ math_lib.remove(value)
++ math_lib.append(value)
++ elif key.startswith('__LIBS_cxx_'):
++ if value in cxx_lib and from_globv:
++ cxx_lib.remove(value)
++ cxx_lib.append(value)
++ elif key.startswith('__LIBS_sys_'):
++ if value in sys_lib and from_globv:
++ sys_lib.remove(value)
++ sys_lib.append(value)
++ cfg['MATHLIB'] = ' '.join(math_lib)
++ cfg['CXXLIB'] = ' '.join(cxx_lib)
++ cfg['OTHERLIB'] = ' '.join(sys_lib)
++ l_key = compiler_cfg.keys()
++ for key in ['MATHLIB', 'CXXLIB', 'OTHERLIB']:
++ if not key in l_key:
++ l_key.append(key)
++ self._compilers_attrs.update(l_key)
++
++ if __dbgsw:
++ print '#SWITCH defined old=%s' % cfg['DEFINED']
++ cfg['DEFINED'] = self._first_values.get('DEFINED', '') + ' ' + compiler_cfg.get('DEFINED', '')
++ cfg['DEFINED'] = cfg['DEFINED'].strip()
++ if __dbgsw:
++ print ' new=%s' % cfg['DEFINED']
++
++ cfg['OPT_ENV'] = self._first_values.get('OPT_ENV', '')
++ if __dbgsw:
++ print '#SWITCH opt_env old=%s' % cfg['OPT_ENV']
++
++ if cfg['OPT_ENV'].strip() != compiler_cfg.get('OPT_ENV', '').strip():
++ if cfg['OPT_ENV']:
++ cfg['OPT_ENV'] += os.linesep
++ cfg['OPT_ENV'] += compiler_cfg.get('OPT_ENV', '')
++ cfg['OPT_ENV'] = cfg['OPT_ENV'].strip()
++ if system:
++ system.AddToEnv(cfg['OPT_ENV'], verbose=False)
++ if __dbgsw:
++ print ' new=%s' % cfg['OPT_ENV']
++
++ # set new cfg dict and store output values
++ dependency_object.cfg = cfg
++ self._out_values = cfg.copy()
++
++ txtdbg = os.linesep.join(['#SWITCH sortie cfg pour %s' % product, pformat(cfg)])
++ if self.debug:
++ open('cfg_%s' % product, 'w').write(txtdbg)
++ if __dbgsw:
++ print txtdbg
++
++ # 1.5.2. ----- export environment variables for compilers and linker
++ for var in ['CC', 'CXX', 'F77', 'F90', 'LD',
++ 'CFLAGS', 'CXXFLAGS', 'FFLAGS', 'F90FLAGS', 'LDFLAGS']:
++ os.environ[var] = cfg.get(var, '')
++
++ # if verbose, return environment variables for the selected compiler
++ txt = []
++ l_key.sort()
++ try:
++ l_key.remove('OPT_ENV')
++ except ValueError:
++ pass
++ for key in l_key:
++ if cfg.get(key):
++ txt.append('export %16s=%r' % (key, cfg[key]))
++ txt.append('')
++ txt.append('# Environment settings :')
++ txt.extend(cfg['OPT_ENV'].splitlines())
++
++ if verbose:
++ return os.linesep.join(txt)
++
++
+Index: aster-10.2.0-1/check_compilers_src.py
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ aster-10.2.0-1/check_compilers_src.py 2010-07-19 14:53:17.000000000 +0200
+@@ -0,0 +1,96 @@
++"""
++This module contains source code for testing compilers, libs...
++"""
++
++
++blas_lapack = {
++ '__integer8__' : True,
++ '__error__' : """
++-------------------------------------------------------------------------------
++WARNING :
++ The C/fortran test program calling blas and lapack subroutines failed.
++
++Reasons :
++ - unable to find suitable C/fortran compilers
++ - blas/lapack libraries (or required by them) missing
++ - incorrect compilation options
++
++Nevertheless the compilation of Code_Aster may work !
++If it failed, you must help the setup by setting CC, CFLAGS, MATHLIB...
++-------------------------------------------------------------------------------
++
++""",
++ 'main.c' : r"""
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++
++/* Test unitaire :
++ - passage d'argument C/Fortran : entier, chaine, logique, reel
++ - appel blas et lapack dans le fortran
++*/
++
++#define INTEGER long
++#define STRING_SIZE unsigned int
++
++#if defined HPUX
++void test(INTEGER *, char *, INTEGER *, double *, double *, STRING_SIZE);
++#define CALL_TEST(a,b,c,d,e) test(a,b,c,d,e,strlen(b))
++
++#elif defined _WIN32 || WIN32
++void TEST(INTEGER *, char *, STRING_SIZE, INTEGER *, double *, double *);
++#define CALL_TEST(a,b,c,d,e) __stdcall TEST(a,b,strlen(b),c,d,e)
++
++#else
++void test_(INTEGER *, char *, INTEGER *, double *, double *, STRING_SIZE);
++#define CALL_TEST(a,b,c,d,e) test_(a,b,c,d,e,strlen(b))
++
++#endif
++
++
++int main(int argc, char **argv)
++{
++ INTEGER ivers, ilog;
++ char vdate[11] = " ";
++ int iret=4;
++ double res, res2;
++ vdate[10] = '\0';
++
++ CALL_TEST(&ivers, &vdate[0], &ilog,&res, &res2);
++ printf("RESULTS : %ld / '%s' / %ld / %f / %f\n", ivers, vdate, ilog, res, res2);
++ if (ivers == 10 && res == 10. && res2 == 5. && strncmp(vdate, "01/01/2010", 10) == 0) {
++ iret = 0;
++ }
++ printf("EXIT_CODE=%d\n", iret);
++ exit(iret);
++}
++""",
++
++ 'test.f' : r"""
++ SUBROUTINE TEST(VERS,DATE,EXPLOI, RES, RES2)
++
++ IMPLICIT NONE
++ INTEGER VERS
++ CHARACTER*10 DATE
++ LOGICAL EXPLOI
++C
++ REAL*8 DDOT, DLAPY2
++ REAL*8 A1(2), A2(2), RES, RES2
++ INTEGER I
++C
++ VERS = 10
++ DATE = '01/01/2010'
++ EXPLOI = .TRUE.
++C
++ DO 10 I = 1, 2
++ A1(I) = 1.D0 * I
++ A2(I) = 2.D0 * I
++ 10 CONTINUE
++ RES = DDOT(2,A1,1,A2,1)
++ RES2 = DLAPY2(3.D0, 4.D0)
++ END
++""",
++}
++
++
++
+Index: aster-10.2.0-1/check_popen_thread.py
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ aster-10.2.0-1/check_popen_thread.py 2010-07-19 14:53:17.000000000 +0200
+@@ -0,0 +1,50 @@
++"""
++Provoke the Popen bug.
++(there is a similar bug in subprocess module)
++"""
++
++import popen2
++import threading
++
++numthreads = 20
++nb = 5
++count = 0
++count_lock = threading.Lock()
++
++class test_popen2(threading.Thread):
++ def __init__(self):
++ threading.Thread.__init__(self)
++
++ def run (self):
++ global count, count_lock
++ for i in range(nb):
++ pipe = popen2.Popen4("ls > /dev/null")
++ try:
++ pipe.wait()
++ count_lock.acquire()
++ count += 1
++ count_lock.release()
++ except OSError:
++ pass
++
++
++def main():
++ """
++ Provoke the Popen bug.
++ """
++ global count
++ lt = []
++ for i in range(numthreads):
++ t = test_popen2()
++ lt.append(t)
++ t.start ()
++ for t in lt:
++ t.join()
++ ok = count == numthreads * nb
++ return ok
++
++
++if __name__ == '__main__':
++ iret = main()
++ print iret
++
+Index: aster-10.2.0-1/mprint.py
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ aster-10.2.0-1/mprint.py 2010-07-19 14:53:17.000000000 +0200
+@@ -0,0 +1,98 @@
++# -*- coding: utf-8 -*-
++# ==============================================================================
++# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG
++# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
++# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
++# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
++# (AT YOUR OPTION) ANY LATER VERSION.
++#
++# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
++# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
++# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
++# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
++#
++# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
++# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
++# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
++# ==============================================================================
++
++# $Id: mprint.py 3728 2008-12-23 16:36:01Z courtois $
++# $Name$
++
++import sys
++import os
++import re
++
++#-------------------------------------------------------------------------------
++#-------------------------------------------------------------------------------
++#-------------------------------------------------------------------------------
++class MPRINT:
++ """This class encapsulates standard print statement.
++ """
++#-------------------------------------------------------------------------------
++ def __init__(self, filename, mode='a'):
++ """filename : name of log file ; mode = 'w'/'a'
++ """
++ self.mode = mode
++ self.stderr = sys.stderr
++ self.logf = [sys.stdout]
++ debug_name = filename.replace('.log', '.dbg')
++ filename = [filename, debug_name]
++ for filen_i in filename:
++ nmax = 100
++ for i in range(nmax, -1, -1):
++ if i > 0:
++ fich = '%s.%d' % (filen_i, i)
++ else:
++ fich = filen_i
++ if os.path.exists(fich):
++ if i == nmax:
++ os.remove(fich)
++ else:
++ os.rename(fich, '%s.%d' % (filen_i, i+1))
++ self.logf.append(open(filen_i, mode))
++ sys.stderr = self.logf[1]
++ self.last_char = [os.linesep,] * 3
++
++#-------------------------------------------------------------------------------
++ def close(self):
++ """Close file properly on deletion.
++ """
++ sys.stderr = self.stderr
++ for f in self.logf[1:]:
++ f.close()
++
++#-------------------------------------------------------------------------------
++ def _print(self, *args, **kargs):
++ """print replacement.
++ Optionnal argument :
++ term : line terminator (default to os.linesep).
++ """
++ term = kargs.get('term', os.linesep)
++ for i, f in enumerate(self.logf):
++ if kargs.get('DBG') and i != 2:
++ continue
++ if type(f) is file:
++ l_val = []
++ for a in args:
++ if type(a) in (str, unicode):
++ l_val.append(a)
++ else:
++ l_val.append(repr(a))
++ txt = ' '.join(l_val)
++ txt = txt.replace(os.linesep+' ',os.linesep)
++ if kargs.get('DBG'):
++ lines = txt.splitlines()
++ if self.last_char[i] != os.linesep:
++ lines.insert(0, '')
++ else:
++ lines[0] = '<DBG> ' + lines[0]
++ txt = (os.linesep + '<DBG> ').join(lines)
++ txt = txt + term
++ f.write(txt)
++ f.flush()
++ if len(txt) > 0:
++ self.last_char[i] = txt[-1]
++ else:
++ print 'Unexpected object %s : %s' % (type(f), repr(f))
++
+Index: aster-10.2.0-1/post_install.py
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ aster-10.2.0-1/post_install.py 2010-07-19 14:53:17.000000000 +0200
+@@ -0,0 +1,181 @@
++#!/usr/bin/env python
++# -*- coding: utf-8 -*-
++# ==============================================================================
++# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG
++# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
++# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
++# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
++# (AT YOUR OPTION) ANY LATER VERSION.
++#
++# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
++# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
++# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
++# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
++#
++# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
++# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
++# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
++# ==============================================================================
++
++"""This module is a post-installation script :
++ - change files which depends on ASTER_ROOT base directory.
++"""
++
++import sys
++import os
++import shutil
++import re
++import time
++from glob import glob
++from optparse import OptionParser
++from System import ExecCommand
++
++file_exp = re.compile('^([0-9]{6})_dest_(.*)$')
++bckext = time.strftime('.%Y%m%d-%H%M%S', time.localtime())
++
++main_script = sys.argv[0]
++postinstall_dir = os.path.normpath(os.path.dirname(os.path.abspath(main_script)))
++fvar = os.path.join(postinstall_dir, 'variables')
++
++#-------------------------------------------------------------------------------
++def _chgline(line, dtrans, delimiter=re.escape('?')):
++ """Change all strings by their new value provided by 'dtrans' dictionnary
++ in the string 'line'.
++ """
++ for old, new in dtrans.items():
++ line=re.sub(delimiter+old+delimiter, str(new), line)
++ return line
++
++def chgone(filename, dtrans, delimiter=None, keep=False, ext=None):
++ """Change all strings by their new value provided by 'dtrans' dictionnary
++ in the existing file 'filename'.
++ """
++ if delimiter == None:
++ delimiter = re.escape('?')
++ if ext == None:
++ ext = '.orig'
++ iret = 0
++ try:
++ os.rename(filename, filename+ext)
++ except OSError:
++ return 4
++ fsrc = open(filename+ext, 'r')
++ fnew = open(filename, 'w')
++ for line in fsrc:
++ fnew.write(_chgline(line, dtrans, delimiter))
++ fnew.close()
++ fsrc.close()
++ if not keep:
++ os.remove(filename+ext)
++ return iret
++
++# -----------------------------------------------------------------------------
++def decode_filename(fich):
++ """from 000001_dest_XXX
++ and return a dict :
++ file : '000001_dest_XXX'
++ num : 1
++ filename : 'XXX'
++ dest : path to installation
++ """
++ d = { 'file' : fich }
++ mat = file_exp.search(fich)
++ assert mat != None, 'Invalid file format : %s' % fich
++ num, d['filename'] = mat.groups()
++ d['num'] = int(num)
++ bdest = '%06d_dest_%s' % (d['num'], d['filename'])
++ # read target
++ d['dest'] = open(bdest, 'r').read().strip()
++ return d
++
++# -----------------------------------------------------------------------------
++def reinstall(dinf, newval, relocated):
++ """Re-install the file described by `dinf`.
++ """
++ if relocated:
++ print '[relocated]', dinf, newval
++ fdest = _chgline(dinf['dest'], newval, delimiter='')
++ else:
++ fdest = dinf['dest']
++ print 'Processing %s... ' % fdest,
++ # get file permissions
++ try:
++ mode = os.stat(fdest).st_mode
++ except OSError, msg:
++ iret = 1
++ else:
++ # change file
++ iret = chgone(fdest, newval, delimiter='', keep=True, ext=bckext)
++ try:
++ # restore permissions
++ os.chmod(fdest, mode)
++ except OSError:
++ iret = 1
++ # exit code
++ if iret == 0:
++ print 'done'
++ elif iret == 1:
++ print 'ignored'
++ else:
++ print 'error'
++
++# -----------------------------------------------------------------------------
++def read_from(fich):
++ """Return read variables from `fich` in a dict.
++ """
++ dico = {}
++ execfile(fich, dico)
++ del dico['__builtins__']
++ return dico
++
++def write_new(fich, newval):
++ """Write new values of variables into `fich`.
++ """
++ f = open(fich, 'w')
++ fmt = "%s = '%s'" + os.linesep
++ for k, v in newval.items():
++ f.write(fmt % (k, v))
++ f.close()
++
++# -----------------------------------------------------------------------------
++# -----------------------------------------------------------------------------
++# -----------------------------------------------------------------------------
++if __name__ == '__main__':
++ # command arguments parser
++ parser = OptionParser(usage=__doc__)
++ parser.add_option("--aster_root", dest="ASTER_ROOT", action='store',
++ help="new toplevel directory for Code_Aster (ex: /opt/aster)", metavar="DIR")
++ parser.add_option("--python", dest="PYTHON_EXE", action='store',
++ help="new Python interpreter (ex: /usr/bin/python)", metavar="EXEC")
++ parser.add_option("--libpython", dest="PYTHON_LIB", action='store',
++ help="new Python library directory (ex: /usr/lib/python2.4)", metavar="DIR")
++ parser.add_option("--relocated", dest="relocated", action='store_true',
++ help="set this option if the installation is already relocated", default=False)
++
++ opts, l_args = parser.parse_args()
++
++ # read variables values
++ dvar = read_from(fvar)
++
++ # set new values
++ dtrans = {}
++ newval = dvar.copy()
++ for o in ('ASTER_ROOT', 'PYTHON_EXE', 'PYTHON_LIB'):
++ if getattr(opts, o) != None:
++ newval[o] = getattr(opts, o)
++ dtrans[dvar[o]] = newval[o]
++ os.rename(fvar, fvar + bckext)
++ write_new(fvar, newval)
++
++ # build list of files
++ os.chdir(postinstall_dir)
++ if len(l_args) == 0:
++ l_args = [f for f in os.listdir('.') if file_exp.search(f)]
++ l_args.sort()
++
++ # change files
++ for f in l_args:
++ d = decode_filename(f)
++ reinstall(d, dtrans, opts.relocated)
++
++
+Index: aster-10.2.0-1/products.py
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ aster-10.2.0-1/products.py 2010-07-19 14:53:17.000000000 +0200
+@@ -0,0 +1,1289 @@
++# -*- coding: utf-8 -*-
++# ==============================================================================
++# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG
++# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
++# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
++# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
++# (AT YOUR OPTION) ANY LATER VERSION.
++#
++# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
++# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
++# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
++# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
++#
++# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
++# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
++# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
++# ==============================================================================
++
++"""This module defines SETUP instances for each products.
++
++Functions are named : setup_`product`,
++and have two main arguments : DEPENDENCIES and SUMMARY objects,
++and additionnal arguments through 'kargs'.
++"""
++
++# Of course the order is not important... but it's easier to understand
++# dependencies in the right order !
++
++import sys
++import os
++import os.path
++import shutil
++import re
++from products_versions import dict_prod, dict_prod_param
++
++from as_setup import (
++ SETUP,
++ GetSitePackages,
++ less_than_version,
++ export_parameters,
++ SetupInstallError,
++)
++
++# ----- differ messages translation
++def _(mesg): return mesg
++
++# set/unset a value in a dict (cfg)
++def set_cfg(setup_object, dico, var, value, **kargs):
++ if not type(var) in (list, tuple):
++ var = [var,]
++ if not type(value) in (list, tuple):
++ value = [value,]
++ assert len(var) == len(value), 'ERROR in set_var : %r / %r' % (var, value)
++ for k, v in zip(var, value):
++ dico[k] = v
++ setup_object._print('Setting %s=%s' % (k, v))
++
++
++#-------------------------------------------------------------------------------
++# 10. ----- hdf5
++def setup_hdf5(dep, summary, **kargs):
++ cfg=dep.cfg
++ product = 'hdf5'
++ version = dict_prod[product]
++ pkg_name = '%s-%s' % (product, version)
++ # ----- add (and check) product dependencies
++ dep.Add(product,
++ req=['ASTER_ROOT',],
++ set=['HOME_HDF',],
++ )
++ cfg['HOME_HDF'] = os.path.join(cfg['ASTER_ROOT'], 'public', pkg_name)
++ ftools=kargs['find_tools']
++ ftools.AddToPathVar(cfg, 'PATH', os.path.join(cfg['HOME_HDF'], 'bin'))
++
++ # ----- setup instance
++ setup=SETUP(
++ product=product,
++ version=version,
++ description="""HDF5 is a Hierarchical Data Format product consisting of a data format
++ specification and a supporting library implementation. HDF5 is designed to
++ address some of the limitations of the older HDF product and to address current
++ and anticipated requirements of modern systems and applications.""",
++ depend=dep,
++ system=kargs['system'],
++ log=kargs['log'],
++
++ actions=(
++ ('Extract' , {}),
++ ('Configure', {
++ 'command' : 'unset LD ; ./configure --prefix=%s' % cfg['HOME_HDF'],
++ }),
++ ('Make' , { 'nbcpu' : ftools.nbcpu }),
++ ('Install' , {}),
++ ('ChgFiles' , {
++ 'files' : ['bin/h5cc', 'lib/libhdf5.settings', 'lib/lib*.la'],
++ 'path' : '__setup.installdir__',
++ 'postinst' : kargs['postinst'],
++ 'only_post' : True,
++ }),
++ ('Clean' , {}),
++ ),
++
++ installdir = cfg['HOME_HDF'],
++ sourcedir = cfg['SOURCEDIR'],
++ )
++ return setup
++
++#-------------------------------------------------------------------------------
++# 12. ----- med
++def setup_med(dep, summary, **kargs):
++ cfg=dep.cfg
++ product='med'
++ version = dict_prod[product]
++ pkg_name = '%s-%s' % (product, version)
++ # ----- add (and check) product dependencies
++ dep.Add(product,
++ req=['ASTER_ROOT', 'HOME_HDF', 'OTHERLIB', 'CXXLIB',],
++ set=['HOME_MED',],
++ )
++ cfg['HOME_MED']=os.path.join(cfg['ASTER_ROOT'], 'public', pkg_name)
++ ftools=kargs['find_tools']
++ ftools.AddToPathVar(cfg, 'PATH', os.path.join(cfg['HOME_MED'], 'bin'))
++
++ ldflags = cfg['OTHERLIB'] + ' ' + cfg['CXXLIB']
++ disable_shared = ''
++ ftools=kargs['find_tools']
++ if not ftools.prefshared:
++ disable_shared = '--disable-shared' # do not the same for hdf5, med will fail
++ # add integer*8 flag
++ if cfg.get('FFLAGS_I8'):
++ cfg['FFLAGS'] += ' ' + cfg['FFLAGS_I8']
++ cfg['FFLAGS_DBG'] += ' ' + cfg['FFLAGS_I8']
++ if cfg.get('F90FLAGS_I8'):
++ cfg['F90FLAGS'] += ' ' + cfg['F90FLAGS_I8']
++ cfg['F90FLAGS_DBG'] += ' ' + cfg['F90FLAGS_I8']
++ for var in ('FFLAGS', 'F90FLAGS'):
++ os.environ[var] = cfg[var]
++
++ # ----- setup instance
++ setup=SETUP(
++ product=product,
++ version=version,
++ description="""MED-fichier (Modelisation et Echanges de Donnees, in English Modelisation
++ and Data Exchange) is a library to store and exchange meshed data or computation results.
++ It uses the HDF5 file format to store the data.""",
++ depend=dep,
++ system=kargs['system'],
++ log=kargs['log'],
++
++ actions=(
++ ('Extract' , {}),
++ ('Configure', { # --with-med_int=long --disable-mesgerr
++ 'command' : """unset LD ; export LDFLAGS='%s' ; ./configure %s --disable-mesgerr --with-hdf5=%s --prefix=%s""" % (ldflags, disable_shared, cfg['HOME_HDF'], cfg['HOME_MED']),
++ }),
++ ('Make' , { 'nbcpu' : ftools.nbcpu }),
++ ('Install' , {}),
++ ('ChgFiles' , {
++ 'files' : ['bin/xmdump'],
++ 'postinst' : kargs['postinst'],
++ 'only_post' : True,
++ }),
++ ('Clean' , {}),
++ ),
++
++ installdir = cfg['HOME_MED'],
++ sourcedir = cfg['SOURCEDIR'],
++ )
++ return setup
++
++#-------------------------------------------------------------------------------
++# 15. ----- Numeric
++def setup_Numeric(dep, summary, **kargs):
++ cfg=dep.cfg
++ product='Numeric'
++ version = dict_prod[product]
++ pkg_name = '%s-%s' % (product, version)
++ # ----- add (and check) product dependencies
++ dep.Add(product,
++ req=[],
++ set=['HOME_NUMPY'],
++ )
++ cfg['HOME_NUMPY'] = GetSitePackages(os.path.join(cfg['ASTER_ROOT'], 'public', pkg_name))
++
++ # fill PYTHONPATH
++ ftools=kargs['find_tools']
++ ftools.AddToPathVar(cfg, 'PYTHONPATH', cfg['HOME_NUMPY'])
++ ftools.AddToPathVar(cfg, 'PYTHONPATH', os.path.join(cfg['HOME_NUMPY'], 'Numeric'))
++ ftools.AddToPath('lib', os.path.join(cfg['HOME_NUMPY'], 'Numeric'))
++ # ----- setup instance
++ setup=SETUP(
++ product=product,
++ version=version,
++ description="""Numeric module defining a multi-dimensional array and useful procedures for
++ Numerical computation.""",
++ depend=dep,
++ system=kargs['system'],
++ log=kargs['log'],
++
++ actions=(
++ ('Extract' , {}),
++ ('PyInstall', {}),
++ ),
++
++ installdir = cfg['HOME_NUMPY'],
++ sourcedir = cfg['SOURCEDIR'],
++ )
++ return setup
++
++#-------------------------------------------------------------------------------
++# 17.1. ----- omniORB
++def setup_omniORB(dep, summary, **kargs):
++ cfg=dep.cfg
++ product='omniORB'
++ version = dict_prod[product]
++ pkg_name = '%s-%s' % (product, version)
++ # ----- add (and check) product dependencies
++ dep.Add(product,
++ req=['ASTER_ROOT',],
++ set=['HOME_OMNIORB',],
++ )
++ cfg['HOME_OMNIORB'] = os.path.join(cfg['ASTER_ROOT'], 'public', pkg_name)
++ ftools=kargs['find_tools']
++ ftools.AddToPathVar(cfg, 'PATH', os.path.join(cfg['HOME_OMNIORB'], 'bin'))
++
++ # set PYTHON variable
++ os.environ['PYTHON'] = cfg['PYTHON_EXE']
++ # fill PYTHONPATH
++ ftools.AddToPathVar(cfg, 'PYTHONPATH', os.path.join(GetSitePackages(cfg['HOME_OMNIORB']), 'omniidl_be'))
++ ftools.AddToPath('lib', GetSitePackages(cfg['HOME_OMNIORB']))
++
++ # ----- setup instance
++ setup=SETUP(
++ product=product,
++ version=version,
++ description="""omniORB is an Object Request Broker (ORB) which implements
++ specification 2.6 of the Common Object Request Broker Architecture (CORBA).""",
++ depend=dep,
++ system=kargs['system'],
++ log=kargs['log'],
++
++ actions=(
++ ('Extract' , {}),
++ ('Configure', {
++ 'command' : 'mkdir build ; cd build ; ../configure --prefix=%s --disable-ipv6' % cfg['HOME_OMNIORB'] }),
++ ('Make' , { 'path' : os.path.join('__setup.workdir__', '__setup.content__', 'build'),
++ 'nbcpu' : ftools.nbcpu }),
++ ('Install' , { 'path' : os.path.join('__setup.workdir__', '__setup.content__', 'build') }),
++ ('Clean' , {}),
++ ),
++
++ installdir = cfg['HOME_OMNIORB'],
++ sourcedir = cfg['SOURCEDIR'],
++ )
++ return setup
++
++#-------------------------------------------------------------------------------
++# 17.2. ----- omniORBpy
++def setup_omniORBpy(dep, summary, **kargs):
++ cfg=dep.cfg
++ product='omniORBpy'
++ version = dict_prod[product]
++ pkg_name = '%s-%s' % (product, version)
++ # ----- add (and check) product dependencies
++ dep.Add(product,
++ req = ['HOME_OMNIORB',],
++ )
++ # set PYTHON variable
++ os.environ['PYTHON'] = cfg['PYTHON_EXE']
++ # fill PYTHONPATH
++ ftools=kargs['find_tools']
++ ftools.AddToPathVar(cfg, 'PYTHONPATH', os.path.join(GetSitePackages(cfg['HOME_OMNIORB']), 'omniidl_be'))
++ ftools.AddToPathVar(cfg, 'PYTHONPATH', GetSitePackages(cfg['HOME_OMNIORB']))
++ ftools.AddToPath('lib', GetSitePackages(cfg['HOME_OMNIORB']))
++ # ----- setup instance
++ setup=SETUP(
++ product=product,
++ version=version,
++ description="""This is omniORBpy 2, a robust high-performance CORBA ORB for Python.""",
++ depend=dep,
++ system=kargs['system'],
++ log=kargs['log'],
++
++ actions=(
++ ('Extract' , {}),
++ ('Configure', {
++ 'command' : 'mkdir build ; cd build ; ../configure --prefix=%s --disable-ipv6 --with-omniorb=%s' \
++ % (cfg['HOME_OMNIORB'], cfg['HOME_OMNIORB']) }),
++ ('Make' , { 'path' : os.path.join('__setup.workdir__', '__setup.content__', 'build'),
++ 'nbcpu' : ftools.nbcpu }),
++ ('Install' , { 'path' : os.path.join('__setup.workdir__', '__setup.content__', 'build') }),
++ ('Clean' , {}),
++ ),
++
++ installdir = cfg['HOME_OMNIORB'],
++ sourcedir = cfg['SOURCEDIR'],
++ )
++ return setup
++
++
++#-------------------------------------------------------------------------------
++# 18. ----- pylotage
++def setup_pylotage(dep, summary, **kargs):
++ cfg=dep.cfg
++ product='pylotage'
++ version = dict_prod[product]
++ pkg_name = '%s-%s' % (product, version)
++ # ----- add (and check) product dependencies
++ dep.Add(product,
++ req=['HOME_OMNIORB', 'SALOME_VERSION'],
++ )
++ cfg['HOME_PYLOTAGE'] = GetSitePackages(os.path.join(cfg['ASTER_ROOT'], 'public', pkg_name))
++
++ # fill PYTHONPATH
++ ftools=kargs['find_tools']
++ ftools.AddToPathVar(cfg, 'PYTHONPATH', cfg['HOME_PYLOTAGE'])
++
++ # ----- setup instance
++ setup=SETUP(
++ product=product,
++ version=version,
++ description="""Python interface between Code_Aster and Salome services.""",
++ depend=dep,
++ system=kargs['system'],
++ log=kargs['log'],
++
++ actions=(
++ ('Extract' , {}),
++ ('PyInstall', { 'global_opts' : '--salome=%s --with-omniidl=%s' \
++ % (cfg['SALOME_VERSION'], os.path.join(cfg['HOME_OMNIORB'], 'bin', 'omniidl')) }),
++ ('Clean', {}),
++ ),
++
++ installdir = cfg['HOME_PYLOTAGE'],
++ sourcedir = cfg['SOURCEDIR'],
++ )
++ return setup
++
++#-------------------------------------------------------------------------------
++# 20. ----- gmsh
++def setup_gmsh(dep, summary, **kargs):
++ cfg=dep.cfg
++ product='gmsh'
++ version = dict_prod[product]
++ pkg_name = '%s-%s-%s' % (product, version, os.uname()[0])
++ # ----- add (and check) product dependencies
++ dep.Add(product,
++ req=['ASTER_ROOT', 'TOOLS_DIR',],
++ set=['HOME_GMSH',]
++ )
++ cfg['HOME_GMSH'] = os.path.join(cfg['ASTER_ROOT'], 'public', pkg_name)
++ ftools=kargs['find_tools']
++ ftools.AddToPathVar(cfg, 'PATH', os.path.join(cfg['HOME_GMSH'], 'bin'))
++
++ # ----- setup instance
++ setup=SETUP(
++ product=product,
++ version=version,
++ description="""Gmsh is an automatic three-dimensional finite element mesh generator,
++ primarily Delaunay, with built-in pre- and post-processing
++ facilities. Its primal design goal is to provide a simple meshing tool
++ for academic test cases with parametric input and up to date
++ visualization capabilities. One of the strengths of Gmsh is its
++ ability to respect a characteristic length field for the generation of
++ adapted meshes on lines, surfaces and volumes.""",
++ content=pkg_name,
++ depend=dep,
++ system=kargs['system'],
++ log=kargs['log'],
++
++ actions=(
++ ('Extract' , {}),
++ ('Install' , {
++ 'path' : cfg['TOOLS_DIR'],
++ 'command' : 'rm -f gmsh ; ln -sf ../public/%s/bin/gmsh .' % pkg_name,
++ }),
++ ),
++
++ installdir = cfg['HOME_GMSH'],
++ workdir = os.path.join(cfg['HOME_GMSH'], os.pardir),
++ sourcedir = cfg['SOURCEDIR'],
++ )
++ return setup
++
++#-------------------------------------------------------------------------------
++# 21. ----- grace
++def setup_grace(dep, summary, **kargs):
++ cfg=dep.cfg
++ product='grace'
++ version = dict_prod[product]
++ pkg_name = '%s-%s' % (product, version)
++ # ----- add (and check) product dependencies
++ dep.Add(product,
++ req=['ASTER_ROOT', 'TOOLS_DIR',],
++ set=['HOME_GRACE',]
++ )
++ cfg['HOME_GRACE'] = os.path.join(cfg['ASTER_ROOT'], 'public', pkg_name)
++ ftools=kargs['find_tools']
++ ftools.AddToPathVar(cfg, 'PATH', os.path.join(cfg['HOME_GRACE'], 'bin'))
++
++ # ----- check for libXm
++ ftools.findlib_and_set(cfg, 'X11LIB', 'Xm',
++ append=True, err=False) # err=False, optionnal product !
++
++ # install function
++ def graceInstall(self, **kwargs):
++ """Add the link to xmgrace or grace."""
++ done = False
++ for f in ('xmgrace', 'grace'):
++ exe = os.path.join(cfg['ASTER_ROOT'], 'public', pkg_name, 'grace', 'bin', f)
++ if os.path.exists(exe):
++ dest = os.path.join(cfg['TOOLS_DIR'], 'xmgrace')
++ if os.path.exists(dest):
++ os.remove(dest)
++ os.symlink(exe, dest)
++ done = True
++ break
++ if not done:
++ raise SetupInstallError, 'neither grace or xmgrace found'
++
++ # ----- setup instance
++ setup=SETUP(
++ product=product,
++ version=version,
++ description="""Grace is a WYSIWYG tool to make two-dimensional plots
++ of numerical data.""",
++ depend=dep,
++ system=kargs['system'],
++ log=kargs['log'],
++
++ actions=(
++ ('Extract' , {}),
++ ('Configure', {}),
++ ('Make' , { 'nbcpu' : ftools.nbcpu }),
++ ('Install' , {}),
++ ('Install' , {
++ 'external' : graceInstall,
++ 'path' : '__setup.installdir__',
++ }),
++ ('Clean' , {}),
++ ),
++
++ installdir = cfg['HOME_GRACE'],
++ sourcedir = cfg['SOURCEDIR'],
++ )
++ return setup
++
++#-------------------------------------------------------------------------------
++# 22. ----- gibi
++def setup_gibi(dep, summary, **kargs):
++ cfg=dep.cfg
++ product='gibi'
++ version = dict_prod[product]
++ pkg_name = '%s-%s' % (product, version)
++ # ----- add (and check) product dependencies
++ dep.Add(product,
++ req=['ASTER_ROOT', 'TOOLS_DIR', 'PYTHON_EXE'],
++ set=['HOME_GIBI']
++ )
++ cfg['HOME_GIBI'] = os.path.join(cfg['ASTER_ROOT'], 'public', pkg_name)
++
++ # ----- setup instance
++ setup=SETUP(
++ product=product,
++ version=version,
++ description="""Gibi is a scriptable three dimensional mesh generator and
++ a post-processing viewer.""",
++ depend=dep,
++ system=kargs['system'],
++ log=kargs['log'],
++
++ actions=(
++ ('Extract' , {}),
++ ('ChgFiles' , {
++ 'files' : ['gibi_aster.py'],
++ 'path' : cfg['HOME_GIBI'],
++ 'dtrans' : cfg,
++ 'postdest' : cfg['HOME_GIBI'],
++ 'postinst' : kargs['postinst'],
++ }),
++ ('Chmod' , {
++ 'files' : ['gibi_aster.py', 'gibi%s' % version, 'gibiPC_Linux_%s' % version],
++ 'path' : cfg['HOME_GIBI'],
++ 'mode' : 0755,
++ }),
++ ('Chmod' , {
++ 'files' : ['USRDAT',],
++ 'path' : cfg['HOME_GIBI'],
++ 'mode' : 0666,
++ }),
++ ('Install' , {
++ 'path' : cfg['TOOLS_DIR'],
++ 'command' : """
++rm -f gibi gibi.x gibi_rest gibi%(version)s gibi%(version)s.x ; \
++ln -sf ../public/%(pkg_name)s/gibi_aster.py gibi ; \
++ln -sf gibi gibi.x ; ln -sf gibi gibi_rest ; ln -sf gibi gibi%(version)s ; \
++ln -sf gibi.x gibi%(version)s.x
++""" % { 'pkg_name': pkg_name,
++ 'version' : version }
++ }),
++ ),
++
++ installdir = cfg['HOME_GIBI'],
++ workdir = os.path.join(cfg['HOME_GIBI'], os.pardir),
++ sourcedir = cfg['SOURCEDIR'],
++ )
++ return setup
++
++#-------------------------------------------------------------------------------
++# 30. ----- astk
++def setup_astk(dep, summary, **kargs):
++ cfg=dep.cfg
++ product='astk'
++ version = dict_prod[product]
++ pkg_name = '%s-%s' % (product, version)
++ # ----- add (and check) product dependencies
++ dep.Add(product,
++ req=['ASTER_ROOT', 'ASTER_VERSION',
++ 'HOME_PYTHON', 'PYTHON_EXE', 'IFDEF',
++ 'TERMINAL', 'EDITOR', 'SHELL_EXECUTION',
++ 'PS_COMMAND_CPU', 'PS_COMMAND_PID',
++ 'DEBUGGER_COMMAND', 'DEBUGGER_COMMAND_POST',
++ 'SERVER_NAME', 'DOMAIN_NAME', 'FULL_SERVER_NAME', 'NODE' ],
++ set=['HOME_TCL_TK', 'WISH_EXE',],
++ )
++ # should work with most of these versions (note empty string '')
++ # (8.5 never tested : at the end)
++ if cfg.get('WISH_EXE') is None:
++ ftools=kargs['find_tools']
++ ftools.find_and_set(cfg, 'WISH_EXE',
++ filenames=['wish'+v for v in ['8.4', '84', '8.3', '83', '', '8.5', '85',]],
++ paths=cfg.get('HOME_TCL_TK', []),)
++ ftools.CheckFromLastFound(cfg, 'HOME_TCL_TK', 'bin')
++ if not cfg.has_key('HOME_TCL_TK'):
++ cfg['HOME_TCL_TK']=os.path.abspath(os.path.join(cfg['WISH_EXE'],os.pardir,os.pardir))
++
++ # specific values for 'ASTK_SERV' files
++ astk_cfg=cfg.copy()
++ astk_cfg[cfg['IFDEF']]='\n'
++ # patch for zsh in as_serv
++ if re.search('zsh$', astk_cfg['SHELL_EXECUTION']):
++ astk_cfg['USE_ZSH']=' added for zsh\n'
++ if astk_cfg.has_key('OPT_ENV'):
++ astk_cfg['OPT_ENV']='\n'+astk_cfg['OPT_ENV']
++
++ # fill PYTHONPATH
++ ftools=kargs['find_tools']
++ ftools.AddToPathVar(cfg, 'PYTHONPATH', GetSitePackages(cfg['ASTER_ROOT']))
++
++ # ----- setup instance
++ setup=SETUP(
++ product=product,
++ version=version,
++ description="""ASTK is the Graphical User Interface to manage Code_Aster calculations.""",
++ depend=dep,
++ system=kargs['system'],
++ log=kargs['log'],
++
++ actions=(
++ ('Extract' , {}),
++ ('Configure', {
++ 'external' : export_parameters,
++ 'filename' : 'external_configuration.py',
++ 'dict_cfg' : astk_cfg,
++ }),
++ ('PyInstall', {}),
++ ('Clean', {}),
++ ),
++
++ installdir = GetSitePackages(cfg['ASTER_ROOT']),
++ sourcedir = cfg['SOURCEDIR'],
++ )
++ return setup
++
++#-------------------------------------------------------------------------------
++# 40. ----- Metis (standard version)
++def setup_metis(dep, summary, **kargs):
++ cfg=dep.cfg
++ product='metis'
++ version = dict_prod[product]
++ pkg_name = '%s-%s' % (product, version)
++ # ----- add (and check) product dependencies
++ dep.Add(product,
++ req=['ASTER_ROOT',],
++ set=['HOME_METIS',],
++ )
++ cfg['HOME_METIS'] = os.path.join(cfg['ASTER_ROOT'], 'public', pkg_name)
++
++ # ----- setup instance
++ setup=SETUP(
++ product=product,
++ version=version,
++ description="""METIS is a software package for partitioning unstructured graphs,
++ partitioning meshes, and computing fill-reducing orderings of sparse matrices.
++ This version is for MUMPS needs.""",
++ depend=dep,
++ system=kargs['system'],
++ log=kargs['log'],
++
++ actions=(
++ ('Extract' , {}),
++ ('ChgFiles' , {
++ 'files' : ['Makefile.in'],
++ 'dtrans' : cfg,
++ 'postinst' : kargs['postinst'],
++ }),
++ ('Make' , { 'nbcpu' : kargs['find_tools'].nbcpu }),
++ ('Install' , {
++ 'command' : 'mkdir -p %(dest)s/lib ; cp libmetis.a %(dest)s/lib ; cp Makefile.in %(dest)s' \
++ % { 'dest' : cfg['HOME_METIS'] },
++ }),
++ ('Clean', {}),
++ ),
++
++ installdir = cfg['HOME_METIS'],
++ sourcedir = cfg['SOURCEDIR'],
++ )
++ return setup
++
++#-------------------------------------------------------------------------------
++# 41. ----- Metis for Code_Aster
++def setup_metis_edf(dep, summary, **kargs):
++ cfg=dep.cfg
++ product='metis-edf'
++ version = dict_prod[product]
++ pkg_name = '%s-%s' % (product, version)
++ # ----- add (and check) product dependencies
++ dep.Add(product,
++ req=['TOOLS_DIR',],
++ set=['HOME_METIS_EDF',],
++ )
++ cfg['HOME_METIS_EDF'] = os.path.join(cfg['ASTER_ROOT'], 'public', pkg_name)
++ ftools=kargs['find_tools']
++ ftools.AddToPathVar(cfg, 'PATH', os.path.join(cfg['HOME_METIS_EDF'], 'bin'))
++ # add integer*8 flag
++ if cfg.get('FFLAGS_I8'):
++ cfg['FFLAGS'] += ' ' + cfg['FFLAGS_I8']
++ cfg['FFLAGS_DBG'] += ' ' + cfg['FFLAGS_I8']
++ if cfg.get('F90FLAGS_I8'):
++ cfg['F90FLAGS'] += ' ' + cfg['F90FLAGS_I8']
++ cfg['F90FLAGS_DBG'] += ' ' + cfg['F90FLAGS_I8']
++ for var in ('FFLAGS', 'F90FLAGS'):
++ os.environ[var] = cfg[var]
++
++ def metisInstall(self, **kargs):
++ """'make install' method for metis
++ """
++ dest = os.path.join(cfg['HOME_METIS_EDF'], 'bin')
++ if not os.path.exists(dest):
++ os.makedirs(dest)
++ for f in ('onmetis', 'pmetis', 'kmetis', 'onmetis.exe'):
++ shutil.copy(f, dest)
++ for f in ('onmetis', 'pmetis', 'kmetis'):
++ dest = os.path.join(cfg['TOOLS_DIR'], f)
++ if os.path.exists(dest):
++ os.remove(dest)
++ os.symlink(os.path.join('..', 'public', pkg_name, 'bin', f), dest)
++
++ # ----- setup instance
++ setup=SETUP(
++ product=product,
++ version=version,
++ description="""METIS is a software package for partitioning unstructured graphs,
++ partitioning meshes, and computing fill-reducing orderings of sparse matrices.
++ This version is especially compiled for Code_Aster needs.""",
++ depend=dep,
++ system=kargs['system'],
++ log=kargs['log'],
++
++ actions=(
++ ('Extract' , {}),
++ ('Make' , {}), # does not support the -j flag
++ ('Install' , {
++ 'external' : metisInstall,
++ }),
++ ('Chmod' , {
++ 'path' : os.path.join(cfg['HOME_METIS_EDF'], 'bin'),
++ 'files' : ['onmetis', 'onmetis.exe', 'pmetis', 'kmetis'],
++ 'mode' : 0755,
++ }),
++ ('Clean', {}),
++ ),
++
++ installdir = cfg['HOME_METIS_EDF'],
++ sourcedir = cfg['SOURCEDIR'],
++ )
++ return setup
++
++#-------------------------------------------------------------------------------
++# 42. ----- eficas
++def setup_eficas(dep, summary, **kargs):
++ cfg=dep.cfg
++ product = 'eficas'
++ version = dict_prod[product]
++ pkg_name = '%s-%s' % (product, version)
++ # si version d'exploitation
++ archive = pkg_name
++ if dict_prod_param.get('eficas') and dict_prod_param['eficas'].get('vexpl'):
++ archive = '%s-vexpl-%s' % (product, version)
++ # ----- add (and check) product dependencies
++ dep.Add(product,
++ req=['ASTER_ROOT', 'TOOLS_DIR',],
++ set=['HOME_EFICAS'],
++ )
++ cfg['HOME_EFICAS'] = os.path.join(cfg['ASTER_ROOT'], 'public', pkg_name)
++
++ try:
++ import PyQt4
++ default = 'Qt'
++ except Exception:
++ default = 'Tk'
++
++ # ----- setup instance
++ setup=SETUP(
++ product=product,
++ version=version,
++ description="""Eficas is an graphical editor for Code_Aster command files.""",
++ archive=archive,
++ depend=dep,
++ system=kargs['system'],
++ log=kargs['log'],
++
++ actions=(
++ ('Extract' , {}),
++ ('Install' , {
++ 'command' : "rm -f %(tooldir)s/eficasTk ; " \
++ "echo '#!/bin/sh\n%(py)s %(instdir)s/Aster/eficas_aster.py $*\n' > %(tooldir)s/eficasTk" % \
++ { 'tooldir' : cfg['TOOLS_DIR'],
++ 'instdir' : cfg['HOME_EFICAS'],
++ 'py' : cfg['PYTHON_EXE'] } }),
++ ('Install' , {
++ 'command' : "rm -f %(tooldir)s/eficasQt ; " \
++ "echo '#!/bin/sh\n%(py)s %(instdir)s/Aster/qtEficas_aster.py $*\n' > %(tooldir)s/eficasQt" % \
++ { 'tooldir' : cfg['TOOLS_DIR'],
++ 'instdir' : cfg['HOME_EFICAS'],
++ 'py' : cfg['PYTHON_EXE'] } }),
++ ('Install' , {
++ 'command' : "cd %(tooldir)s ; rm -f eficas ; ln -sf eficas%(default)s eficas" % \
++ { 'tooldir' : cfg['TOOLS_DIR'], 'default' : default } }),
++ ('Chmod' , {
++ 'files' : ['eficasTk', 'eficasQt'],
++ 'path' : cfg['TOOLS_DIR'],
++ 'mode' : 0755,
++ }),
++ ('PyCompile', { 'path' : cfg['HOME_EFICAS'], }),
++ ('ChgFiles' , {
++ 'files' : ['eficasTk', 'eficasQt'],
++ 'path' : cfg['TOOLS_DIR'],
++ 'postinst' : kargs['postinst'],
++ 'only_post' : True,
++ }),
++ ),
++
++ installdir = cfg['HOME_EFICAS'],
++ workdir = os.path.join(cfg['HOME_EFICAS'], os.pardir),
++ sourcedir = cfg['SOURCEDIR'],
++ )
++ return setup
++
++#-------------------------------------------------------------------------------
++# 42b. ----- eficas-doc
++def setup_eficas_doc(dep, summary, **kargs):
++ cfg=dep.cfg
++ product = 'eficas-doc'
++ version = dict_prod[product]
++ pkg_name = '%s-%s' % (product, version)
++ # si version d'exploitation
++ archive = pkg_name
++ # ----- add (and check) product dependencies
++ dep.Add(product,
++ req=['ASTER_ROOT', 'HOME_EFICAS',],
++ )
++
++ # ----- setup instance
++ setup=SETUP(
++ product=product,
++ version=version,
++ description="""Eficas is an graphical editor for Code_Aster command files (documentation package).""",
++ archive=archive,
++ depend=dep,
++ system=kargs['system'],
++ log=kargs['log'],
++
++ actions=(
++ ('Extract' , {}),
++ ),
++
++ installdir = cfg['HOME_EFICAS'],
++ workdir = os.path.join(cfg['HOME_EFICAS'], os.pardir),
++ sourcedir = cfg['SOURCEDIR'],
++ )
++ return setup
++
++#-------------------------------------------------------------------------------
++# 43. ----- scotch
++def setup_scotch(dep, summary, **kargs):
++ cfg=dep.cfg
++ product='scotch'
++ version = dict_prod[product]
++ pkg_name = '%s_%s' % (product, version)
++ # ----- add (and check) product dependencies
++ dep.Add(product,
++ req=['ASTER_ROOT', 'FLEX', 'RANLIB', 'YACC'],
++ set=['HOME_SCOTCH',],
++ )
++ cfg['HOME_SCOTCH']=os.path.join(cfg['ASTER_ROOT'], 'public', pkg_name)
++
++ scotch_cfg = {}.fromkeys(['CC', 'CFLAGS', 'FLEX', 'RANLIB', 'YACC'], '')
++ scotch_cfg.update(cfg)
++
++ # ----- setup instance
++ setup=SETUP(
++ product=product,
++ version=version,
++ description="""Static mapping, graph partitioning, and sparse matrix block ordering package.""",
++ content=pkg_name,
++ depend=dep,
++ system=kargs['system'],
++ log=kargs['log'],
++
++ actions=(
++ ('Extract' , {}),
++ ('ChgFiles' , {
++ 'files' : [os.path.join('src', 'Makefile.inc'), ],
++ 'dtrans' : scotch_cfg,
++ }),
++ ('Make' , {'command' : 'make all && make install',
++ 'path' : [os.path.join('__setup.workdir__', '__setup.content__', 'src', 'common'),
++ os.path.join('__setup.workdir__', '__setup.content__', 'src', 'libscotch')],
++ 'nbcpu' : 1 }), # seems not support "-j NBCPU" option
++ ('Install', {'command' : 'mkdir -p %(HOME_SCOTCH)s/include %(HOME_SCOTCH)s/lib ; ' \
++ 'cp bin/*.a %(HOME_SCOTCH)s/lib/ ; cp bin/*.h %(HOME_SCOTCH)s/include/ ; ' \
++ 'cp src/Makefile.inc %(HOME_SCOTCH)s/' % cfg}),
++ ('Clean', {}),
++ ),
++
++ installdir = cfg['HOME_SCOTCH'],
++ sourcedir = cfg['SOURCEDIR'],
++ )
++ return setup
++
++#-------------------------------------------------------------------------------
++# 44. ----- mumps
++def setup_mumps(dep, summary, **kargs):
++ cfg=dep.cfg
++ product='mumps'
++ version = dict_prod[product]
++ pkg_name = '%s-%s' % (product, version)
++ # ----- add (and check) product dependencies
++ dep.Add(product,
++ req=['ASTER_ROOT', 'CC', 'F90', 'LD', 'INCLUDE_MUMPS', 'MATHLIB', 'HOME_METIS'],
++ set=['HOME_MUMPS',],
++ )
++ cfg['HOME_MUMPS']=os.path.join(cfg['ASTER_ROOT'], 'public', pkg_name)
++ mumps_cfg = {}.fromkeys(['CFLAGS', 'F90FLAGS', 'LDFLAGS'], '')
++ mumps_cfg.update(cfg)
++ mumps_cfg['LD'] = mumps_cfg['F90']
++
++ # ----- setup instance
++ setup=SETUP(
++ product=product,
++ version=version,
++ description="""MUMPS: a MUltifrontal Massively Parallel sparse direct Solver.""",
++ depend=dep,
++ system=kargs['system'],
++ log=kargs['log'],
++
++ actions=(
++ ('Extract' , {}),
++ ('ChgFiles' , {
++ 'files' : ['Makefile.inc'],
++ 'dtrans' : mumps_cfg,
++ 'postinst' : kargs['postinst'],
++ }),
++ ('Make' , {
++ 'command' : 'make all',
++ 'nbcpu' : kargs['find_tools'].nbcpu
++ }),
++ ('Install', {'command' : 'mkdir -p %(dest)s/lib ; cp lib/*.a libseq/*.a %(dest)s/lib ; ' \
++ 'cp Makefile.inc %(dest)s' % { 'dest' : cfg['HOME_MUMPS'] }}),
++ ('Clean', {}),
++ ),
++ clean_actions=(
++ ('Configure', { # to force 'ld' temporarily to null
++ 'external' : set_cfg,
++ 'dico' : cfg,
++ 'var' : 'HOME_MUMPS',
++ 'value' : '',
++ }),
++ ),
++
++ installdir = cfg['HOME_MUMPS'],
++ sourcedir = cfg['SOURCEDIR'],
++ )
++ return setup
++
++#-------------------------------------------------------------------------------
++# 50. ----- Code_Aster
++def setup_aster(dep, summary, **kargs):
++ cfg=dep.cfg
++ product='aster'
++ version = dict_prod[product]
++ pkg_name = '%s-%s' % (product, version)
++ short_version = '.'.join(version.split('.')[:2])
++ # ----- add (and check) product dependencies
++ dep.Add(product,
++ req=['ASTER_ROOT', 'ASTER_VERSION',
++ 'HOME_PYTHON', 'PYTHON_EXE', 'PYTHONLIB',
++ 'HOME_MUMPS', 'HOME_ZMAT', 'HOME_MPI', 'INCLUDE_MUMPS', 'HOME_METIS',
++ 'HOME_MED', 'HOME_HDF', 'HOME_CRPCRS', 'HOME_NUMPY', 'USE_NUMPY',
++ 'LD', 'CC', 'F77', 'F90', 'CXXLIB', 'OTHERLIB',],
++ reqobj=['file:?ASTER_ROOT?/bin/as_run',
++ 'file:?ASTER_ROOT?/etc/codeaster/profile.sh'],
++ set=['SYSLIB',
++ 'MEDLIB', 'HDFLIB', 'MATHLIB',
++ 'MUMPSLIB', 'ZMATLIB', 'SCOTCHLIB',
++ 'LDFLAGS',
++ 'CFLAGS', 'CFLAGS_DBG', 'CINCLUDE',
++ 'FFLAGS', 'FFLAGS_DBG', 'FINCLUDE',
++ 'F90FLAGS', 'F90FLAGS_DBG', 'F90INCLUDE',
++ 'NOBUILD', ],
++ )
++ cfg['ENV_SH'] = cfg.get('ENV_SH', '')
++ cfg['NOBUILD'] = cfg.get('NOBUILD', '')
++ cfg['OPT_ENV'] = cfg.get('OPT_ENV', '')
++ cfg['OPT_ENV'] = '#?OPT_ENV?\n\n' + cfg['OPT_ENV']
++ ftools=kargs['find_tools']
++
++ # ----- add path to Code_Aster headers
++ cfg['CINCLUDE'] = '-I%s' % os.path.join(cfg['ASTER_ROOT'], cfg['ASTER_VERSION'], 'bibc', 'include')
++ # ----- check for Python headers
++ ftools.find_and_set(cfg, 'CINCLUDE', 'Python.h',
++ [os.path.join(cfg['HOME_PYTHON'], 'include', 'python'+sys.version[:3])],
++ typ='inc', err=True, append=True, reqpkg="python-dev")
++ # ----- check for Python/numpy headers
++ if cfg['USE_NUMPY']:
++ num_h = os.path.join('numpy', 'arrayobject.h')
++ ftools.find_and_set(cfg, 'CINCLUDE', num_h,
++ [os.path.join(cfg['HOME_NUMPY'], 'numpy', 'core', 'include')],
++ typ='inc', err=True, append=True, prefix_to='numpy', reqpkg="python-numpy")
++ else:
++ # ----- check for Python/Numeric headers
++ l_num_h = [os.path.join('python'+sys.version[:3], 'Numeric', 'arrayobject.h'),
++ os.path.join('Numeric', 'arrayobject.h')]
++ ftools.find_and_set(cfg, 'CINCLUDE', l_num_h,
++ [os.path.join(cfg['HOME_NUMPY'], 'include'),
++ os.path.join(cfg['HOME_PYTHON'], 'include', 'python'+sys.version[:3])],
++ typ='inc', err=True, append=True, prefix_to='Numeric', reqpkg="python-numeric")
++
++ cxxlibs = []
++ zmat_platform = ''
++ mpilibs = []
++ opt = {}
++ if cfg['IFDEF'] in ('LINUX', 'P_LINUX'):
++ opt['SYSLIB'] = '-Wl,--allow-multiple-definition -Wl,--export-dynamic -lieee -ldl -lutil -lm'
++ opt['LDFLAGS'] = '-v'
++ opt['CFLAGS_DBG'] = '-g'
++ opt['CFLAGS'] = '-O2'
++ opt['FFLAGS_DBG'] = '-g'
++ opt['FFLAGS'] = '-O2'
++ zmat_platform='Linux'
++ mpilibs.extend(['mpich'])
++ elif cfg['IFDEF'] == 'LINUX64':
++ opt['SYSLIB'] = '-Wl,--allow-multiple-definition -Wl,--export-dynamic -lieee -ldl -lutil -lm'
++ opt['LDFLAGS'] = '-v'
++ opt['CFLAGS_DBG'] = '-g'
++ opt['CFLAGS'] = '-O2'
++ opt['FFLAGS_DBG'] = '-g'
++ opt['FFLAGS'] = '-O2'
++ mpilibs.extend(['mpich'])
++ # others have not been tested !
++ if os.uname()[-1] == 'ia64':
++ zmat_platform='Linux_ia64'
++ elif cfg['IFDEF']=='TRU64':
++ opt['SYSLIB'] = '/usr/lib/libots3.a /usr/lib/libpthread.a /usr/lib/libnuma.a /usr/lib/libpset.a /usr/lib/libmach.a -lUfor -lfor -lFutil -lm -lots -lm_c32 -lmld /usr/ccs/lib/cmplrs/cc/libexc.a '
++ opt['LDFLAGS'] = '-v'
++ opt['CFLAGS_DBG'] = '-v -g -omp -ansi_alias -ansi_args -DOMP'
++ opt['CFLAGS'] = '-v -O3 -omp -ansi_alias -ansi_args -DOMP'
++ opt['FFLAGS_DBG'] = '-v -g -i8 -r8 -omp'
++ opt['FFLAGS'] = '-v -fast -i8 -r8 -omp'
++ cxxlibs.extend(['rt', 'cxx', 'cxxstd'])
++ mpilibs.extend(['mpi'])
++ elif cfg['IFDEF']=='SOLARIS':
++ opt['SYSLIB'] = '-lsocket -lnsl /usr/lib/libintl.so.1 -ldl -lc'
++ opt['LDFLAGS'] = '-v'
++ opt['CFLAGS_DBG'] = '-g'
++ opt['CFLAGS'] = ''
++ opt['FFLAGS_DBG'] = '-g -stackvar -dalign'
++ opt['FFLAGS'] = '-O3 -stackvar -xchip=ultra -xarch=v8plusa -dalign'
++ elif cfg['IFDEF']=='SOLARIS64':
++ opt['SYSLIB'] = '-lsocket -lnsl -ldl -lc -lm -lF77 -lM77'
++ opt['LDFLAGS'] = '-v -xarch=v9 -dalign -xtypemap=real:64,double:64,integer:64'
++ opt['CFLAGS_DBG'] = '-g -xarch=v9 -dalign'
++ opt['CFLAGS'] = '-g -xarch=v9 -dalign'
++ opt['FFLAGS_DBG'] = '-g -stackvar -xarch=v9 -dalign -xtypemap=real:64,double:64,integer:64'
++ opt['FFLAGS'] = '-stackvar -xarch=v9 -dalign -xtypemap=real:64,double:64,integer:64'
++ elif cfg['IFDEF']=='IRIX':
++ opt['SYSLIB'] = '-lfpe -lm'
++ opt['LDFLAGS'] = '-v -64 -mips4'
++ opt['CFLAGS_DBG'] = '-g -64 -xansi'
++ opt['CFLAGS'] = ' -64 -xansi'
++ opt['FFLAGS_DBG'] = '-g -DEBUG:trap_unitialized=ON -64 -i8 -G0'
++ opt['FFLAGS'] = '-g3 -OPT:roundoff=0:cray_ivdep=TRUE:Olimit=0 -mips4 -64 -i8 -G0'
++
++ # ----- F90
++ opt['F90FLAGS_DBG'] = opt['FFLAGS_DBG']
++ opt['F90FLAGS'] = opt['FFLAGS']
++ opt['FINCLUDE'] = ''
++ opt['F90INCLUDE'] = ''
++
++ # ----- check for MED and HDF5 libraries, and HDF5 includes
++ if cfg['HOME_HDF'] != '':
++ ftools.findlib_and_set(cfg, 'HDFLIB', 'hdf5',
++ cfg['HOME_HDF'],
++ err=True, append=False)
++ ftools.CheckFromLastFound(cfg, 'HOME_HDF', 'lib')
++ ftools.find_and_set(cfg, 'CINCLUDE', 'hdf5.h',
++ cfg['HOME_HDF'],
++ typ='inc', err=True, append=True)
++ else:
++ if cfg['NOBUILD'].find('bibc/hdf') < 0:
++ cfg['NOBUILD'] += ' bibc/hdf'
++ cfg['HOME_MED']=''
++ cfg['HDFLIB']=''
++
++ if cfg['HOME_MED'] != '':
++ ftools.findlib_and_set(cfg, 'MEDLIB', 'med',
++ cfg['HOME_MED'],
++ err=True, append=False)
++ ftools.CheckFromLastFound(cfg, 'HOME_MED', 'lib')
++ else:
++ cfg['MEDLIB']=''
++
++ # ----- libs c++ (for MED and ZMAT)
++ if cfg['HOME_MED'] != '' or cfg['HOME_ZMAT'] != '':
++ for lib in cxxlibs:
++ ftools.findlib_and_set(cfg, 'CXXLIB', lib,
++ [cfg['HOME_MED'], cfg['HOME_ZMAT']],
++ err=False, append=True, maxdepth=max(ftools.maxdepth,10))
++
++ # ----- MUMPS
++ if cfg['HOME_MUMPS'] != '':
++ cfg['DEFINED'] += ' _HAVE_MUMPS'
++ mumps_lib = ['dmumps', 'zmumps']
++ if not less_than_version(dict_prod['mumps'], '4.8.0'):
++ mumps_lib.extend(['smumps', 'cmumps', 'mumps_common'])
++ mumps_lib.extend(['pord', 'mpiseq'])
++ for lib in mumps_lib:
++ ftools.findlib_and_set(cfg, 'MUMPSLIB', lib,
++ cfg['HOME_MUMPS'],
++ err=False, append=True)
++ if lib == 'dmumps':
++ ftools.CheckFromLastFound(cfg, 'HOME_MUMPS', 'lib')
++ if cfg['HOME_METIS'] != '':
++ cfg['MUMPSLIB'] += " -L%s/lib -lmetis" % cfg['HOME_METIS']
++ opt['F90INCLUDE'] += ' -I%s' % os.path.join(cfg['ASTER_ROOT'],cfg['ASTER_VERSION'],'bibf90',cfg['INCLUDE_MUMPS'])
++ if cfg['HOME_MPI'] != '':
++ cfg['DEFINED'] += ' _USE_MPI_MUMPS'
++ else:
++ opt['MUMPSLIB'] = ''
++
++ # ----- ZMAT
++ if cfg['HOME_ZMAT'] != '':
++ for lib in ['Zmat_base', 'Zmat_base_public', 'zAster']:
++ ftools.findlib_and_set(cfg, 'ZMATLIB', lib,
++ cfg['HOME_ZMAT'],
++ err=False, append=True, maxdepth=max(ftools.maxdepth,2),)
++ if lib == 'Zmat_base':
++ ftools.CheckFromLastFound(cfg,'HOME_ZMAT','PUBLIC')
++ cfg['OPT_ENV'] += """# ZMAT environment
++Z7PATH=%(HOME_ZMAT)s
++export Z7PATH\n""" % cfg
++ if zmat_platform != '':
++ cfg['OPT_ENV'] += """Z7MACHINE='%s'
++export Z7MACHINE\n""" % zmat_platform
++ cfg['OPT_ENV'] += ". $Z7PATH/lib/Z7_profile\n"
++
++ else:
++ opt['ZMATLIB']=''
++
++ # ----- MPI only for FETI solver
++ if cfg['HOME_MPI'] != '':
++ opt['MPILIB']=''
++ for lib in mpilibs:
++ ftools.findlib_and_set(cfg, 'MPILIB', lib,
++ cfg['HOME_MPI'],
++ err=False, append=True,)
++ ftools.CheckFromLastFound(cfg, 'HOME_MPI', 'lib')
++ ftools.find_and_set(cfg, 'FINCLUDE', 'mpif.h',
++ cfg['HOME_MPI'],
++ typ='inc', err=False, append=True)
++ cfg['DEFINED'] +=' _USE_MPI _USE_MPI_FETI'
++
++ else:
++ opt['MPILIB']=''
++ # if MPI is not available, don't build bibfor/from_c
++ #XXX removed in 10.1 and +
++ if cfg['NOBUILD'].find('bibfor/from_c')<0:
++ cfg['NOBUILD'] += ' bibfor/from_c'
++
++ # ----- SCOTCH
++ if cfg['HOME_SCOTCH']<>'':
++ for lib in ('common', 'scotch', 'scotcherr', 'scotcherrcom'):
++ ftools.findlib_and_set(cfg, 'SCOTCHLIB', lib,
++ cfg['HOME_SCOTCH'],
++ err=True, append=True)
++ if lib == 'common':
++ ftools.CheckFromLastFound(cfg, 'HOME_SCOTCH', 'lib')
++ ftools.find_and_set(cfg, 'CINCLUDE', 'scotchf.h',
++ cfg['HOME_SCOTCH'],
++ typ='inc', err=True, append=True)
++ else:
++ opt['SCOTCHLIB']=''
++ # if SCOTCH is not available, don't build bibc/scotch
++ if cfg['NOBUILD'].find('bibc/scotch')<0:
++ cfg['NOBUILD'] += ' bibc/scotch'
++
++ # ----- omniORB
++ if cfg.get('HOME_OMNIORB', '') != '':
++ # to add 'HOME_OMNIORB'/lib to LD_LIBRARY_PATH
++ ftools.findlib_and_set(cfg, 'OMNIORBLIB', 'omniORB4',
++ cfg['HOME_OMNIORB'],
++ err=True)
++
++ # use previous options only if there aren't set in cfg
++ for k,v in opt.items():
++ if not cfg.has_key(k):
++ cfg[k]=v
++ # add integer*8 flag
++ if cfg.get('FFLAGS_I8'):
++ cfg['FFLAGS'] += ' ' + cfg['FFLAGS_I8']
++ cfg['FFLAGS_DBG'] += ' ' + cfg['FFLAGS_I8']
++ if cfg.get('F90FLAGS_I8'):
++ cfg['F90FLAGS'] += ' ' + cfg['F90FLAGS_I8']
++ cfg['F90FLAGS_DBG'] += ' ' + cfg['F90FLAGS_I8']
++
++ log = kargs['log']
++
++ def set_profile(self, **kargs):
++ """Write profile.sh in ASTER_VERSION.
++ """
++ chglist = kargs.get('files')
++ if not chglist:
++ return
++ fprof = chglist[0]
++ self.VerbStart(_('Setting %s') % fprof)
++ if cfg['ENV_SH'] != '':
++ cfg['ENV_SH'] += ' ; '
++ cfg['ENV_SH'] += fprof
++ content = ['# profile for Code_Aster version %s' % self.version, '']
++ content.append('if [ -z "$DEFINE_PROFILE_ASTER_VERSION" ]; then')
++ content.append(' export DEFINE_PROFILE_ASTER_VERSION=done')
++ content.append('#--- ifndef DEFINE_PROFILE_ASTER_VERSION ---------------------------------------')
++ content.append('')
++ content.append('PATH=%s:$ASTER_ROOT/outils:$PATH' % ftools.GetPath('bin', add_cr=True))
++ content.append('export PATH')
++ content.append('')
++ content.append('LD_LIBRARY_PATH=%s:$LD_LIBRARY_PATH' % ftools.GetPath('lib', add_cr=True))
++ content.append('export LD_LIBRARY_PATH')
++ content.append('')
++ content.append('PYTHONPATH=%s:$PYTHONPATH' % ftools.GetPath('pymod', add_cr=True))
++ content.append('export PYTHONPATH')
++ content.append("""
++%s
++""" % cfg['OPT_ENV'])
++ content.append('')
++ content.append('#--- endif DEFINE_PROFILE_ASTER_VERSION ----------------------------------------')
++ content.append('fi')
++ iret = 0
++ try:
++ open(fprof, 'w').write(os.linesep.join(content))
++ except (OSError, IOError), msg:
++ iret = 4
++ self.VerbEnd(iret)
++
++ # ----- setup instance
++ setup=SETUP(
++ product=product,
++ version=short_version,
++ description="""Code_Aster finite element method solver.""",
++ archive='aster-src-%s' % version,
++ content='STA%s' % short_version,
++ depend=dep,
++ system=kargs['system'],
++ log=kargs['log'],
++
++ actions=(
++ ('Extract' , { 'extract_as' : cfg['ASTER_VERSION'] }),
++ ('ChgFiles' , {
++ 'external' : set_profile,
++ 'files' : ['profile.sh'],
++ 'path' : os.path.join(cfg['ASTER_ROOT'], cfg['ASTER_VERSION']),
++ }),
++ ('ChgFiles' , {
++ 'files' : ['config.txt', '*.export', 'Makefile*'],
++ 'path' : os.path.join(cfg['ASTER_ROOT'],cfg['ASTER_VERSION']),
++ 'postdest' : os.path.join(cfg['ASTER_ROOT'],cfg['ASTER_VERSION']),
++ 'dtrans' : cfg,
++ 'postinst' : kargs['postinst'],
++ }),
++ ('ChgFiles' , {
++ 'files' : ['aster'],
++ 'path' : os.path.join(cfg['ASTER_ROOT'],'etc','codeaster'),
++ 'dtrans' : {'^ *vers : %s.*\n' % cfg['ASTER_VERSION'] : '',
++ },
++ 'delimiter' : '',
++ 'keep' : True,
++ 'ext' : '.install_'+cfg['ASTER_VERSION'],
++ }),
++ ('ChgFiles' , {
++ 'files' : ['aster'],
++ 'path' : os.path.join(cfg['ASTER_ROOT'],'etc','codeaster'),
++ 'dtrans' : {
++ re.escape('?vers : VVV?') : '?vers : VVV?\nvers : %s' % cfg['ASTER_VERSION'],
++ },
++ 'delimiter' : '', # that's why some ? have been added above
++ 'keep' : False,
++ }),
++ ('ChgFiles' , {
++ 'files' : [os.path.join('etc','codeaster','profile.sh'),
++ os.path.join('etc','codeaster','profile.csh'),
++ os.path.join(cfg['ASTER_VERSION'], 'profile.sh')],
++ 'path' : cfg['ASTER_ROOT'],
++ 'postinst' : kargs['postinst'],
++ 'only_post' : True,
++ }),
++ ('Install', {
++ 'path' : os.path.join(cfg['ASTER_ROOT'],cfg['ASTER_VERSION']),
++ 'command' : 'ln -sf Makefile.asrun Makefile',
++ }),
++ ('Make' , {
++ 'path' : os.path.join(cfg['ASTER_ROOT'],cfg['ASTER_VERSION']),
++ 'command' : '%s --make --vers=%s' % \
++ (os.path.join(cfg['ASTER_ROOT'],'bin','as_run'), cfg['ASTER_VERSION']),
++ 'capturestderr' : False,
++ }),
++ ),
++
++ installdir = cfg['ASTER_ROOT'],
++ workdir = cfg['ASTER_ROOT'],
++ sourcedir = cfg['SOURCEDIR'],
++ )
++ return setup
++
++#-------------------------------------------------------------------------------
++# 59. ----- homard
++def setup_homard(dep, summary, **kargs):
++ cfg=dep.cfg
++ product='homard'
++ version = dict_prod[product]
++ pkg_name = '%s-%s' % (product, version)
++ # ----- add (and check) product dependencies
++ dep.Add(product,
++ req=['ASTER_ROOT', 'ASTER_VERSION', 'TOOLS_DIR'],
++ )
++ #XXX should use HOME_HOMARD
++
++ # ----- setup instance
++ setup=SETUP(
++ product=product,
++ version=version,
++ description="""The HOMARD software carries out the adaptation of 2D/3D finite element or
++ finite volume meshes by refinement and unrefinement techniques.""",
++ #content='HOMARD',
++ depend=dep,
++ system=kargs['system'],
++ log=kargs['log'],
++
++ actions=(
++ ('Extract' , {}),
++ ('Install' , { 'command' :
++ 'echo "%(cfgtxt)s\n" | python setup_homard.py' % \
++ { 'cfgtxt' : os.path.join(cfg['ASTER_ROOT'],cfg['ASTER_VERSION'],'config.txt'), }
++ }),
++ ('Install' , { 'command' : 'cd '+cfg['TOOLS_DIR']+' ; rm -f homard ; ln -sf '+\
++ os.path.join('.', 'HOMARD', 'ASTER_HOMARD', 'homard')+' .' }),
++ ('ChgFiles' , {
++ 'files' : [os.path.join('HOMARD', 'ASTER_HOMARD', 'homard')],
++ 'path' : '__setup.installdir__',
++ 'postinst' : kargs['postinst'],
++ 'only_post' : True,
++ }),
++ ('Clean' , {}),
++ ),
++
++ installdir = cfg['TOOLS_DIR'],
++ sourcedir = cfg['SOURCEDIR'],
++ )
++ return setup
++
+Index: aster-10.2.0-1/products_versions.py
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ aster-10.2.0-1/products_versions.py 2010-07-19 14:53:17.000000000 +0200
+@@ -0,0 +1,39 @@
++
++dict_prod = {'aster': '10.2.0',
++ 'aster-src': '10.2.0',
++ 'astk': '1.8.1',
++ 'eficas': '2.0.3',
++ 'eficas-doc': '2.0.3',
++ 'gibi': '2000',
++ 'gmsh': '2.4.2',
++ 'grace': '5.1.21',
++ 'hdf5': '1.6.9',
++ 'homard': '9.6',
++ 'med': '2.3.6',
++ 'metis': '4.0',
++ 'metis-edf': '4.1',
++ 'mumps': '4.9.2',
++ 'omniORB': '4.1.4',
++ 'omniORBpy': '3.4',
++ 'pylotage': '2.0.5',
++ 'scotch': '4.0'}
++
++dict_prod_param = {'__to_install__': ['med',
++ 'astk',
++ 'omniORB',
++ 'grace',
++ 'hdf5',
++ 'metis-edf',
++ 'homard',
++ 'metis',
++ 'aster',
++ 'gibi',
++ 'omniORBpy',
++ 'pylotage',
++ 'mumps',
++ 'aster',
++ 'eficas',
++ 'scotch',
++ 'gmsh',
++ 'eficas-doc']}
++
+Index: aster-10.2.0-1/setup.cfg
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ aster-10.2.0-1/setup.cfg 2010-07-19 14:53:17.000000000 +0200
+@@ -0,0 +1,151 @@
++#!/usr/bin/env python
++# -*- coding: utf-8 -*-
++
++# This file gives parameters value to complete installation
++# NOTE : Python syntax MUST be respected !
++
++#-------------------------------------------------------------------------------
++# numpy is required. You may need to set PYTHONPATH before running setup.py
++# to make it able to import numpy.
++
++#-------------------------------------------------------------------------------
++# Code_Aster toplevel directory (ex: /aster, /opt/aster...)
++ASTER_ROOT='/opt/aster'
++
++# astk configuration (for network capabilities)
++# Let the setup configure it for you or define the 3 following parameters :
++# Example for a stand-alone server (no other remote astk server)
++#SERVER_NAME='localhost'
++#DOMAIN_NAME='localdomain'
++#FULL_SERVER_NAME='%s.%s' % (SERVER_NAME, DOMAIN_NAME)
++
++#-------------------------------------------------------------------------------
++# Compilers
++# The setup tries to find automatically your compilers and math libraries.
++# You can set PATH and LD_LIBRARY_PATH environment variables before running setup.py
++# to add paths in search list.
++#
++# You may want to select different compilers for products
++# Example : PREFER_COMPILER_med = 'GNU'
++
++# Default values are :
++# GNU compiler for all products
++PREFER_COMPILER = 'GNU'
++
++# If you have Intel compilers you should uncomment following lines:
++# (aster, mumps, metis, metis-edf)
++# Note the "-" replaced by "_"
++#PREFER_COMPILER_aster = 'Intel'
++#PREFER_COMPILER_mumps = PREFER_COMPILER_aster
++#PREFER_COMPILER_metis = PREFER_COMPILER_aster
++#PREFER_COMPILER_metis_edf = PREFER_COMPILER_aster
++
++
++# There are also two variants Intel_without_MATH, GNU_without_MATH but if you choose
++# one of these you MUST set your mathematical libraries argument using MATHLIB.
++# Example : PREFER_COMPILER='Intel_without_MATH'
++# and MATHLIB = '-L/path_to_acml_libs -lacml'
++
++# You may want to specify the values yourself by defining
++# these variables : CC, F77, F90, CXX, LD, DEFINED,
++# CFLAGS, FFLAGS, F90FLAGS, CXXFLAGS, LDFLAGS,
++# MATHLIB, CXXLIB, OTHERLIB
++# (these values will be common to ALL products)
++
++
++# The script searchs recursively files and libraries from standard paths
++# such as /usr/lib and their subdirectories. The depth of recursion is
++# limited by MAXDEPTH (default is 5 levels).
++# If a file or library is not found in these directories, you may try
++# using 'locate' command. Default is not to use locate because it usually
++# causes failure with inconsistent versions.
++MAXDEPTH = 5
++USE_LOCATE = False
++
++#-------------------------------------------------------------------------------
++# C and Fortran compilers and linker for Code_Aster
++# classical values for GNU compilers
++#CC='/usr/bin/gcc'
++#CXX='/usr/bin/g++'
++#F77='/usr/bin/g77'
++#F90='/usr/bin/gfortran'
++#LD=F77
++#CFLAGS="-fno-stack-protector" # for gcc 4.x
++
++#USE_FPIC=False # default is True
++
++# Example for Intel compilers (see README file)
++#CC='/opt/intel/cc/9.1.049/bin/icc'
++#CXX='/opt/intel/cc/9.1.049/bin/icpc'
++#F77='/opt/intel/fc/9.1.045/bin/ifort'
++#LD=F77
++#LDFLAGS='-nofor_main'
++#FFLAGS="-fpe0 -traceback"
++#F90FLAGS="-fpe0 -traceback -align sequence"
++
++#OPT_ENV="""
++#source /opt/intel/cc/9.1.049/bin/iccvars.sh
++#source /opt/intel/fc/9.1.045/bin/ifortvars.sh
++#source /opt/intel/mkl/9.0/tools/environment/mklvars32.sh
++#"""
++
++# Example for gfortran (32 bits) :
++#F90FLAGS="-ffixed-line-length-0 -x f77-cpp-input"
++# Example for gfortran 64 bits :
++#FFLAGS="-fdefault-double-8 -fdefault-integer-8 -fdefault-real-8"
++#F90FLAGS="-ffixed-line-length-0 -x f77-cpp-input -fdefault-double-8 -fdefault-integer-8 -fdefault-real-8"
++
++#-------------------------------------------------------------------------------
++# You may want to add no standard directories in searched paths (as python list)
++# to search respectively for binaries, libraries and include files :
++#BINDIR=['/myprefix/bin', ]
++#LIBDIR=['/myprefix/lib', ]
++#INCLUDEDIR=['/myprefix/include', ]
++
++# To search for shared libraries first
++PREFER_SHARED_LIBS=False # False/True
++
++
++#-------------------------------------------------------------------------------
++# Only if hdf5 was previously installed, uncomment following line
++# and fill next one
++#_install_hdf5 = False
++#HOME_HDF = ''
++
++#-------------------------------------------------------------------------------
++# Only if med was previously installed, uncomment following line
++# and fill next one
++#_install_med = False
++#HOME_MED = ''
++
++#-------------------------------------------------------------------------------
++# NB : Scotch is installed by default
++# Uncomment the following line to not install Scotch libraries
++# (under LGPL, available at http://www.labri.fr/perso/pelegrin/scotch/)
++#_install_scotch = False
++
++# If scotch was previously installed, uncomment and fill following line
++#HOME_SCOTCH = ''
++
++#-------------------------------------------------------------------------------
++# Optionnal packages
++# NOTE : optionnal packages must be installed before Code_Aster to
++# correctly configure and build this one.
++#
++# NOTE : only a sequential version of Mumps will be built by `setup.py`
++
++# MUMPS libraries (sources available at http://mumps.enseeiht.fr/)
++# (Fortran 90 compiler is required to use MUMPS with Code_Aster)
++#HOME_MUMPS='' # which contains lib/libseq directory
++
++# ZMAT libraries (commercial, available at http://www.mat.ensmp.fr/)
++#HOME_ZMAT='' # which contains PUBLIC/lib-Linux4/libZmat_base.so and others
++
++#-------------------------------------------------------------------------------
++# Interface between Code_Aster and Salome
++_install_omniORB = True
++_install_omniORBpy = True
++_install_pylotage = True
++# Salome version supported by pylotage
++SALOME_VERSION = 'DEFAULT' # DEFAULT means the last one supported by pylotage
++
+Index: aster-10.2.0-1/setup.py
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ aster-10.2.0-1/setup.py 2010-07-19 14:53:17.000000000 +0200
+@@ -0,0 +1,863 @@
++#!/usr/bin/env python
++# -*- coding: utf-8 -*-
++# ==============================================================================
++# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG
++# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
++# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
++# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
++# (AT YOUR OPTION) ANY LATER VERSION.
++#
++# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
++# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
++# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
++# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
++#
++# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
++# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
++# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
++# ==============================================================================
++
++# ----- differ messages translation
++def _(mesg): return mesg
++
++import sys
++# ----- check for Python version
++if sys.hexversion < 0x020400F0:
++ print _('This script requires Python 2.4 or higher, sorry !')
++ sys.exit(4)
++
++import os
++import os.path as osp
++import time
++import re
++import traceback
++import shutil
++from types import ModuleType
++from optparse import OptionParser
++
++from as_setup import (
++ SUMMARY,
++ SYSTEM,
++ DEPENDENCIES,
++ FIND_TOOLS,
++ should_continue,
++ less_than_version,
++ get_install_message,
++ SetupError,
++)
++
++try:
++ from products_versions import dict_prod, dict_prod_param
++ short_version = '.'.join(dict_prod['aster'].split('.')[:2])
++ available_products = dict_prod_param['__to_install__']
++except (ImportError, KeyError), msg:
++ print "File not found or invalid : 'products_versions.py'"
++ print "Error :"
++ print msg
++ sys.exit(4)
++
++import products
++import mprint
++
++python_version = '.'.join([str(n) for n in sys.version_info[:3]])
++pythonXY = 'python' + '.'.join([str(n) for n in sys.version_info[:2]])
++
++log_file = 'setup.log'
++log = mprint.MPRINT(log_file, 'w')
++
++
++def product_alias(product):
++ return re.sub("[\-\+\.]+", "_", product)
++
++
++def main():
++ #-------------------------------------------------------------------------------
++ # 0. initialisation, configuration of the command-line parser
++ #-------------------------------------------------------------------------------
++ # 0.1. ----- list of products to install (could be skip through cfg)
++ t_ini = time.time()
++ to_install_ordered=['hdf5', 'med',
++ 'Numeric',
++ 'omniORB', 'omniORBpy', 'pylotage',
++ 'gmsh',
++ 'grace', 'gibi', 'eficas', 'eficas-doc', 'scotch',
++ 'astk', 'metis', 'metis-edf',
++ 'mumps',
++ 'aster',
++ 'homard']
++ to_install = [prod for prod in to_install_ordered if prod in available_products]
++
++ __aster_version__ = 'STA%s' % short_version
++
++ # 0.2. ----- version
++ import __pkginfo__
++
++ svers = os.linesep.join(['Code_Aster Setup version ' + \
++ __pkginfo__.version + '-' + __pkginfo__.release, __pkginfo__.copyright])
++
++ usage="usage: python %prog [options] [install|test] [arg]\n" + \
++ _("""
++
++ Setup script for Code_Aster distribution.
++
++ NOTE : Code_Aster or eventually other products will be configured with
++ the Python you use to run this setup :
++ interpreter : %(interp)s (version %(vers)s)
++ prefix : %(prefix)s
++
++ arguments :
++ action : only 'install' or 'test'.
++
++ By default all products are installed, but you can install only one (if a
++ first attempt failed). Example : python setup.py install aster.
++
++ Available products (the order is important) :
++ %(prod)s.""") % {
++ 'vers' : python_version,
++ 'prefix' : os.path.abspath(sys.prefix),
++ 'interp' : sys.executable,
++ 'prod' : ', '.join(to_install),
++ }
++
++ _separ='\n' + '-'*80 + '\n'
++ _fmt_err=_(' *** Exception raised : %s')
++ _fmt_search=_('Checking for %s... ')
++
++ log._print(_separ, svers, _separ)
++
++ scmd = """Command line :
++ %s""" % ' '.join([sys.executable] + sys.argv)
++ log._print(_separ, scmd, _separ)
++
++ # 0.3. ----- command line parser
++ parser = OptionParser(
++ usage=usage,
++ version='Code_Aster Setup version ' + __pkginfo__.version + '-' + __pkginfo__.release)
++ parser.add_option("--prefix", dest="prefix", action='store',
++ help=_("define toplevel directory for Code_Aster (identical to --aster_root)"), metavar="DIR")
++ parser.add_option("--aster_root", dest="ASTER_ROOT", action='store',
++ # default='/opt/aster', not here !
++ help=_("define toplevel directory for Code_Aster (default '/opt/aster')"), metavar="DIR")
++ parser.add_option("--sourcedir", dest="SOURCEDIR", action='store',
++ # default='./SRC', not here !
++ help=_("directory which contains archive files (default './SRC')"),
++ metavar="DIR")
++ parser.add_option("--cfg", dest="fcfg", action='store', metavar="FILE",
++ help=_("file which contains the installation parameters"),)
++ parser.add_option("--nocache", dest="cache", action='store_false',
++ default=True,
++ help=_("delete cache file before starting (it's default if you do not specify a product name)"),)
++ parser.add_option("--force", dest="force", action='store_true',
++ default=False,
++ help=_("force installation of a product"),)
++ parser.add_option("-q", "--quiet", dest="verbose", action='store_false',
++ default=True,
++ help=_("turn off verbose mode"),)
++ parser.add_option("-g", "--debug", dest="debug", action='store_true',
++ default=False,
++ help=_("turn on debug mode"),)
++ parser.add_option("--noprompt", dest="noprompt", action='store_true',
++ default=False,
++ help=_("do not ask any questions"),)
++
++ opts, args = parser.parse_args()
++ fcfg = opts.fcfg
++ verbose = opts.verbose
++ debug = opts.debug
++ noprompt = opts.noprompt
++
++ main_script=sys.argv[0]
++ setup_maindir = os.path.normpath(os.path.dirname(os.path.abspath(main_script)))
++
++ default_cfgfile = os.path.join(setup_maindir, 'setup.cfg')
++ cache_file = os.path.join(setup_maindir, 'setup.cache')
++
++ def_opts={
++ 'ASTER_ROOT' : '/opt/aster',
++ 'SOURCEDIR' : os.path.normpath(os.path.join(setup_maindir, 'SRC')),
++ }
++ if opts.prefix is not None and opts.ASTER_ROOT is None:
++ opts.ASTER_ROOT = opts.prefix
++
++ # 0.4. ----- check for argument value
++ _install = True
++ _test = False
++ if len(args) > 0:
++ if args[0] == 'install':
++ pass
++ elif args[0] == 'test':
++ _test = True
++ elif args[0] == 'clean':
++ os.system('rm -f setup.log* setup.dbg* setup.cache *.pyc')
++ print _("temporary files deleted!")
++ return
++ else:
++ parser.error(_("unexpected argument %s") % repr(args[0]))
++
++ # 0.5. ----- adjust to_install list
++ to_install0 = to_install[:]
++ if len(args)>1:
++ bid=args.pop(0)
++ for p in to_install[:]:
++ if not p in args:
++ to_install.remove(p)
++
++ # 0.6. ----- list of exceptions to handle during installation
++ if not debug:
++ safe_exceptions=(SetupError,)
++ else:
++ safe_exceptions=None
++
++ #-------------------------------------------------------------------------------
++ # 1. fill cfg reading setup.cfg + setup.cache files
++ #-------------------------------------------------------------------------------
++ cfg={}
++ cfg_init_keys=[]
++ # 1.1.1. ----- read parameters from 'fcfg'
++ if fcfg==None and os.path.isfile(default_cfgfile):
++ fcfg=default_cfgfile
++ if fcfg<>None:
++ fcfg=os.path.expanduser(fcfg)
++ if not os.path.isfile(fcfg):
++ log._print(_('file not found %s') % fcfg)
++ sys.exit(4)
++ else:
++ log._print(_separ,_('Reading config file %s...' % repr(fcfg)))
++ context={}
++ try:
++ execfile(fcfg, context)
++ except:
++ traceback.print_exc()
++ log._print(_separ, term='')
++ raise SetupError, _("reading '%s' failed (probably syntax" \
++ " error occured, see traceback above)") % fcfg
++ for k,v in context.items():
++ if re.search('^__',k)==None and not type(v) is ModuleType:
++ cfg[k]=v
++ cfg_init_keys.append(k)
++ log._print(_(' %15s (from cfg) : %s') % (k, repr(v)))
++
++ # 1.1.2. ----- read cache file
++ # delete it if --nocache or to_install list is full.
++ if (not opts.cache or to_install==to_install0) and os.path.exists(cache_file):
++ log._print(_separ,_('Deleting cache file %s...' % repr(cache_file)))
++ os.remove(cache_file)
++ if os.path.exists(cache_file):
++ if fcfg<>None and os.stat(fcfg).st_ctime > os.stat(cache_file).st_ctime:
++ log._print(_separ, _(""" WARNING : %(cfg)s is newer than %(cache)s.
++ The modifications you made in %(cfg)s might be overriden with
++ cached values. If errors occur delete %(cache)s and restart at
++ the beginning !""") \
++ % { 'cfg' : repr(fcfg), 'cache' : repr(cache_file)}, _separ)
++ should_continue()
++ log._print(_separ,_('Reading cache file %s...' % repr(cache_file)))
++ context={}
++ try:
++ execfile(cache_file, context)
++ except:
++ traceback.print_exc()
++ log._print(_separ, term='')
++ raise SetupError, _("reading '%s' failed (probably syntax error occured)") % cache_file
++ os.remove(cache_file)
++ lk = context.keys()
++ lk.sort()
++ for k in lk:
++ v = context[k]
++ if re.search('^__',k)==None and not type(v) is ModuleType:
++ cfg[k]=v
++ if not k in cfg_init_keys:
++ cfg_init_keys.append(k)
++ log._print(_(' %15s (from cache) : %s') % (k, repr(v)))
++
++ # 1.1.3. ----- list of options to put in cfg
++ for o in ('ASTER_ROOT', 'SOURCEDIR',):
++ if getattr(opts, o) is not None:
++ cfg[o]=os.path.normpath(os.path.abspath(getattr(opts, o)))
++ log._print(_separ,_(' %15s (from arguments) : %s') % (o, cfg[o]))
++ elif not cfg.has_key(o):
++ cfg[o]=def_opts[o]
++ # if all options are not directories write a different loop
++ cfg[o]=os.path.abspath(os.path.expanduser(cfg[o]))
++
++ # 1.2. ----- start a wizard
++ # ... perhaps one day !
++
++ # 1.3.1. ----- configure standard directories
++ # {bin,lib,inc}dirs are used to search files
++ # Search first from ASTER_ROOT/public/{bin,lib,include}
++ # and ASTER_ROOT/public is added for recursive search.
++ bindirs=[os.path.join(cfg['ASTER_ROOT'],'public','bin'),
++ os.path.join(cfg['ASTER_ROOT'],'public'),]
++ bindirs.extend(os.environ.get('PATH', '').strip(':').split(':'))
++ bindirs.extend(['/usr/local/bin', '/usr/bin', '/bin',
++ '/usr/X11R6/bin', '/usr/bin/X11', '/usr/openwin/bin',])
++
++ libdirs=[os.path.join(cfg['ASTER_ROOT'],'public','lib'),
++ os.path.join(cfg['ASTER_ROOT'],'public'),]
++ libdirs.extend(os.environ.get('LD_LIBRARY_PATH', '').strip(':').split(':'))
++ libdirs.extend(['/usr/local/lib', '/usr/lib', '/lib',
++ '/usr/X11R6/lib', '/usr/lib/X11', '/usr/openwin/lib',])
++
++ incdirs=[os.path.join(cfg['ASTER_ROOT'],'public','include'),
++ os.path.join(cfg['ASTER_ROOT'],'public'),]
++ incdirs.extend(os.environ.get('INCLUDE', '').split(':'))
++ incdirs.extend(['/usr/local/include', '/usr/include', '/include',
++ '/usr/X11R6/include', '/usr/include/X11', '/usr/openwin/include',])
++
++ # 1.3.2. ----- convert uname value to Code_Aster terminology...
++ sysname, nodename, release, version, machine = os.uname()
++ log._print('Architecture : os.uname = %s' % str(os.uname()), DBG=True)
++ log._print('Architecture : sys.platform = %s os.name = %s' % (sys.platform, os.name), DBG=True)
++
++ sident = ' '.join(os.uname())
++ if os.path.isfile('/etc/issue'):
++ sident = re.sub(r'\\.', '', open('/etc/issue', 'r').read()) + sident
++ log._print(_separ, """Installation on :
++%s""" % sident, _separ)
++
++ if sys.platform == 'win32':
++ cfg['IFDEF'] = 'WIN32'
++ elif sys.platform.lower() == 'darwin':
++ cfg['ARCH'] = 'default'
++ cfg['IFDEF'] = 'LINUX'
++ elif sys.platform in ('linux2', 'cygwin'):
++ cfg['ARCH'] = 'x86'
++ if machine.endswith('64'):
++ cfg['IFDEF'] = 'LINUX64'
++ if machine in ('x86_64', 'ia64'):
++ cfg['ARCH'] = machine
++ else: # force to x86_64
++ cfg['ARCH'] = 'x86_64'
++ else:
++ cfg['IFDEF'] = 'LINUX'
++ elif sys.platform[:4] == 'osf1':
++ cfg['IFDEF']='TRU64'
++ elif sys.platform == 'sunos5':
++ cfg['IFDEF'] = 'SOLARIS'
++ # elif sys.platform[:6] == 'irix64':
++ # cfg['IFDEF']='IRIX64'
++ elif sys.platform[:4] == 'irix':
++ cfg['IFDEF'] = 'IRIX'
++ else:
++ raise SetupError, "Unsupported platform : sys.platform=%s, os.name=%s" % \
++ (sys.platform, os.name)
++ if cfg.get('_solaris64', False) and sys.platform == 'sunos5':
++ cfg['IFDEF'] = 'SOLARIS64'
++ cfg['DEFINED'] = cfg['IFDEF']
++
++ # ----- insert 'lib64' at the beginning on 64 bits platforms
++ if cfg['IFDEF'].endswith('64'):
++ libdirs = [path.replace('lib', 'lib64') for path in libdirs \
++ if path.find('lib') > -1 and path.find('lib64') < 0 ] + libdirs
++ bindirs = cfg.get('BINDIR', []) + bindirs
++ libdirs = cfg.get('LIBDIR', []) + libdirs
++ incdirs = cfg.get('INCLUDEDIR', []) + incdirs
++
++ # 1.3.3. ----- variables with predefined value
++ cfg['ASTER_VERSION'] =cfg.get('ASTER_VERSION', __aster_version__)
++
++ cfg['TOOLS_DIR'] =os.path.join(cfg['ASTER_ROOT'], 'outils')
++ cfg['NODE'] =cfg.get('NODE', nodename.split('.')[0])
++ cfg['HOME_CRPCRS']=cfg.get('HOME_CRPCRS', os.path.join(cfg['TOOLS_DIR'],'CRPCRS'))
++
++ cfg['HOME_PYTHON']=cfg.get('HOME_PYTHON', os.path.abspath(sys.prefix))
++ cfg['PYTHON_EXE'] =cfg.get('PYTHON_EXE', sys.executable)
++ # these directories should respectively contain shared and static librairies
++ cfg['PYTHONLIB'] ='-L'+os.path.join(cfg['HOME_PYTHON'],'lib')+ \
++ ' -L'+os.path.join(cfg['HOME_PYTHON'], 'lib', pythonXY, 'config')+ \
++ ' -l'+pythonXY
++ # python modules location
++ cfg['PYTHONPATH'] = cfg.get('PYTHONPATH', '')
++ cfg['OPT_ENV'] = cfg.get('OPT_ENV', '')
++
++ #-------------------------------------------------------------------------------
++ # 1.4. ----- auto-configuration
++ #-------------------------------------------------------------------------------
++ log._print(_separ, term='')
++
++ # 1.4.0. ----- checking for maximum command line length (as configure do)
++ log._print(_fmt_search % _('max command length'), term='')
++ system=SYSTEM({ 'verbose' : verbose, 'debug' : False },
++ **{'maxcmdlen' : 2**31, 'log':log})
++ system.AddToEnv(cfg['OPT_ENV'], verbose=False)
++ default_value=1024
++ lenmax=0
++ i=0
++ teststr='ABCD'
++ iret=0
++ while iret==0:
++ i+=1
++ cmd='echo '+teststr
++ iret, out = system.local_shell(cmd, verbose=False)
++ out=out.replace('\n','')
++ if len(out)<>len(teststr) or len(teststr)>2**16:
++ lenmax=len(teststr)/2
++ break
++ teststr=teststr*2
++ # Add a significant safety factor because C++ compilers can tack on massive
++ # amounts of additional arguments before passing them to the linker.
++ # It appears as though 1/2 is a usable value.
++ system.MaxCmdLen=max(default_value, lenmax/2)
++ log._print(system.MaxCmdLen)
++ cfg['MAXCMDLEN']=system.MaxCmdLen
++ system.debug = debug
++
++ # ----- initialize DEPENDENCIES object
++ dep=DEPENDENCIES(
++ cfg=cfg,
++ cache=cache_file,
++ debug=debug,
++ system=system,
++ log=log)
++
++ # ----- initialize FIND_TOOLS object
++ ftools=FIND_TOOLS(log=log,
++ maxdepth=cfg.get('MAXDEPTH', 5),
++ use_locate=cfg.get('USE_LOCATE', False),
++ prefshared=cfg.get('PREFER_SHARED_LIBS', False),
++ debug=debug,
++ system=system,
++ arch=cfg.get('ARCH'),
++ bindirs=bindirs,
++ libdirs=libdirs,
++ incdirs=incdirs,
++ noerror=_test)
++
++ # 1.4.0a. ----- system info
++ ftools.check(' '.join([sysname, '/', os.name, '/', cfg['ARCH']]), 'architecture')
++ ftools.get_cpu_number()
++ ftools.check(cfg['IFDEF'], 'Code_Aster platform type')
++
++ # 1.4.1a. ----- checking for shell script interpreter
++ ftools.find_and_set(cfg, 'SHELL_EXECUTION', ['bash', 'ksh', 'zsh'], err=False)
++ ftools.check(python_version, 'Python version')
++
++ # 1.4.1b. ----- check for popen/threading bug :
++ from check_popen_thread import main
++ response = ftools.check(main, 'Python multi-threading')
++ cfg['MULTITHREADING'] = response
++
++ # 1.4.1c. ----- numpy
++ cfg['USE_NUMPY'] = less_than_version('10.1.99', dict_prod['aster'])
++ cfg['HOME_NUMPY'] = cfg.get('HOME_NUMPY', '')
++ if cfg['USE_NUMPY']:
++ numpy_found = ftools.pymod_exists('numpy')
++ ftools.check(numpy_found, 'numpy')
++ if numpy_found:
++ import numpy
++ numpy_dir = osp.dirname(numpy.__file__)
++ import numpy.version as NV
++ ftools.check(NV.version, 'numpy version')
++ cfg['HOME_NUMPY'] = osp.dirname(numpy_dir)
++ ftools.AddToPathVar(cfg, 'PYTHONPATH', cfg['HOME_NUMPY'])
++
++ # 1.4.1d. ----- check for mpirun command
++ #ftools.find_and_set(cfg, 'MPIRUN', ['mpirun', 'prun'], err=False)
++ cfg['MPIRUN'] = cfg.get('MPIRUN', 'mpirun')
++
++ # 1.4.1e. ----- check for gcc libraries path
++ cc = cfg.get('CC')
++ if cc is None or not ftools.check_compiler_name(cc, 'GCC'):
++ cc = 'gcc'
++ ftools.find_and_set(cfg, 'gcc', cc)
++ if cfg.get('gcc'): # for 'test' mode
++ ftools.GccPrintSearchDirs(cfg['gcc'])
++
++ # 1.4.1f. ----- check for system libraries
++ math_lib = cfg.get('MATH_LIST', [])
++ if not type(math_lib) in (list, tuple):
++ math_lib = [math_lib,]
++ sys_lib = []
++ for glob_lib in ('pthread', 'z',):
++ cfg['__tmp__'] = ''
++ del cfg['__tmp__']
++ ftools.findlib_and_set(cfg, '__tmp__', glob_lib, prefshared=True, err=False, silent=False)
++ if cfg.get('__tmp__'):
++ ftools.AddToCache('lib', glob_lib, cfg['__tmp__'])
++ sys_lib.append(glob_lib)
++
++ # 1.4.2. ----- check for compilers
++ cfg_ini = cfg.copy()
++ dict_pref = dict([(k.replace('PREFER_COMPILER_', ''), v) \
++ for k, v in cfg.items() if k.startswith('PREFER_COMPILER')])
++ if not dict_pref.get('PREFER_COMPILER'):
++ dict_pref['PREFER_COMPILER'] = 'GNU'
++
++ from check_compilers import COMPILER_MANAGER
++ compiler_manager = COMPILER_MANAGER(debug, print_func=log._print)
++ lkeys = dict_pref.keys()
++ lkeys.sort()
++ log._print('PREFER_COMPILER keys : %s' % lkeys, DBG=True)
++
++ # general compiler options
++ compiler_option = []
++ if cfg.get('USE_FPIC', True):
++ compiler_option.append('-fPIC')
++
++ for prod in lkeys:
++ prefcompiler = dict_pref[prod]
++ log._print(_separ, term='')
++ if prod == 'PREFER_COMPILER':
++ lprod = [p for p in dict_pref.keys() if p != prod]
++ if len(lprod) > 0:
++ sprod = ' except %s' % ', '.join(lprod)
++ else:
++ sprod = ''
++ ftools.check(None, 'default compiler (for all products%s)' % sprod)
++ prod = '__main__'
++ else:
++ ftools.check(None, 'compiler for "%s"' % prod)
++ success = compiler_manager.check_compiler(name=prefcompiler,
++ product=prod,
++ system=system, ftools=ftools,
++ necessary=('CC', 'CXX', 'F77', 'F90'),
++ init=cfg_ini,
++ platform=cfg['IFDEF'],
++ arch=cfg.get('ARCH', ''),
++ math_lib=math_lib,
++ sys_lib=sys_lib,
++ add_option=compiler_option)
++ if not success:
++ log._print(_separ, term='')
++ log._print(_('Unable to configure automatically %s compiler for "%s" product.') % (prefcompiler.upper(), prod))
++ return
++ else:
++ txt = compiler_manager.switch_in_dep(dep, prod, system=system, verbose=True)
++ log._print(os.linesep, 'Compiler variables (set as environment variables):', os.linesep)
++ log._print(txt)
++ if debug:
++ from pprint import pprint
++ pprint(compiler_manager.get_config(prod))
++
++ # activate main compiler
++ compiler_manager.switch_in_dep(dep, product='__main__', system=system, verbose=False)
++
++ # 1.4.3. ----- check for ps commands :
++ # PS_COMMAND_CPU returns (field 1) cputime and (field 2) command line
++ # PS_COMMAND_PID returns (field 1) pid and (field 2) command line
++ log._print(_separ, term='')
++ ftools.find_and_set(cfg, 'PS_COMMAND', 'ps', err=False)
++ ps_command = cfg.get('PS_COMMAND')
++ if ps_command != None:
++ if cfg['IFDEF'].find('SOLARIS') > -1:
++ cfg['PS_COMMAND_CPU'] = '%s -e -otime -oargs' % ps_command
++ cfg['PS_COMMAND_PID'] = '%s -e -opid -oargs' % ps_command
++ elif cfg['IFDEF'].find('IRIX') > -1 or cfg['IFDEF'] == 'TRU64':
++ cfg['PS_COMMAND_CPU'] = '%s -e -ocputime -ocommand' % ps_command
++ cfg['PS_COMMAND_PID'] = '%s -e -opid -ocommand' % ps_command
++ else:
++ cfg['PS_COMMAND_CPU'] = '%s -e --width=512 -ocputime -ocommand' % ps_command
++ cfg['PS_COMMAND_PID'] = '%s -e --width=512 -opid -ocommand' % ps_command
++
++ # 1.4.4. ----- check for a terminal
++ ListTerm=[
++ ['xterm' , 'xterm -display @D -e @E',],
++ ['gnome-terminal' , 'gnome-terminal --display=@D --command=@E',],
++ ['konsole', 'konsole --display @D -e @E'],]
++ for prg, cmd in ListTerm:
++ term = ftools.find_file(prg, typ='bin')
++ if term != None:
++ term = cmd.replace(prg, term)
++ break
++ cfg['TERMINAL'] = cfg.get('TERMINAL', term)
++ if cfg['TERMINAL'] is None:
++ del cfg['TERMINAL']
++
++ # 1.4.5. ----- check for a text editor
++ # and modify command line of those which don't have a --display= option
++ ListEdit=[
++ ['nedit' , 'nedit',],
++ ['gedit' , 'gedit --display=@D',],
++ ['kwrite', 'kwrite --display @D',],
++ ['xemacs', 'xemacs -display @D',],
++ ['emacs' , 'emacs -display @D',],
++ ['xedit' , 'xedit -display @D',],
++ ['vi' , cfg.get('TERMINAL', 'xterm')+' -e vi',],]
++ for prg, cmd in ListEdit:
++ edit = ftools.find_file(prg, typ='bin')
++ if edit != None:
++ edit = cmd.replace(prg, edit)
++ break
++ cfg['EDITOR'] = cfg.get('EDITOR', edit)
++ if cfg['EDITOR'] == None:
++ del cfg['EDITOR']
++
++ # 1.4.6. ----- check for debugger
++ # DEBUGGER_COMMAND runs an interactive debugger
++ # DEBUGGER_COMMAND_POST dumps a post-mortem traceback
++ # @E will be remplaced by the name of the executable
++ # @C will be remplaced by the name of the corefile
++ # @D will be remplaced by the filename which contains "where+quit"
++ # @d will be remplaced by the string 'where ; quit'
++ cfg['DEBUGGER_COMMAND'] = ''
++ cfg['DEBUGGER_COMMAND_POST'] = ''
++ ListDebbuger=[
++ ['gdb', '%s -batch --command=@D @E @C',],
++ ['dbx', '%s -c @D @E @C',],
++ ['ladebug', '%s -c @D @E @C',],]
++ for debugger, debugger_command_format in ListDebbuger:
++ debugger_command = ftools.find_file(debugger, typ='bin')
++ if debugger_command != None:
++ cfg['DEBUGGER_COMMAND_POST'] = debugger_command_format % debugger_command
++ break
++
++ if debugger_command != None:
++ ddd = ftools.find_file('ddd', typ='bin')
++ if ddd != None:
++ cfg['DEBUGGER_COMMAND'] = '%s --%s --debugger %s --command=@D @E @C' \
++ % (ddd, debugger, debugger_command)
++
++ # 1.4.7. ----- check for utilities (for scotch)
++ ftools.find_and_set(cfg, 'FLEX', 'flex', err=False)
++ ftools.find_and_set(cfg, 'RANLIB', 'ranlib', err=False)
++ ftools.find_and_set(cfg, 'YACC', 'bison', err=False)
++ if cfg.get('YACC') and cfg.get('YACC', '').find('-y') < 0:
++ cfg['YACC'] += ' -y'
++ if not opts.force and 'scotch' in to_install \
++ and (not cfg.get('FLEX') or not cfg.get('RANLIB') or not cfg.get('YACC')):
++ to_install.remove('scotch')
++
++ #-------------------------------------------------------------------------------
++ # 1.5. ----- products configuration
++ #-------------------------------------------------------------------------------
++ log._print(_separ, term='')
++
++ # 1.5.1. ----- check for hostname (for client part of astk)
++ log._print(_fmt_search % _('host name'), term='')
++ host=system.GetHostName()
++ # deduce domain name
++ tmp=host.split('.')
++ if len(tmp)>1:
++ host=tmp[0]
++ domain='.'.join(tmp[1:])
++ else:
++ domain=''
++ cfg['SERVER_NAME']=cfg.get('SERVER_NAME', host)
++ cfg['DOMAIN_NAME']=cfg.get('DOMAIN_NAME', domain)
++ cfg['FULL_SERVER_NAME']=cfg.get('FULL_SERVER_NAME', '.'.join(tmp))
++ domain=cfg['DOMAIN_NAME']
++ if domain=='':
++ domain='(empty)'
++ log._print(cfg['SERVER_NAME'])
++ log._print(_fmt_search % _('network domain name'), domain)
++ log._print(_fmt_search % _('full qualified network name'), cfg['FULL_SERVER_NAME'])
++
++ #-------------------------------------------------------------------------------
++ # 1.6. ----- optionnal tools/libs
++ #-------------------------------------------------------------------------------
++ # 1.6.1. ----- check for F90 compiler : is now compulsory
++
++ # 1.6.2. ----- optionnal packages for aster
++ # hdf5
++ cfg['HOME_HDF'] = cfg.get('HOME_HDF', '')
++ # med
++ cfg['HOME_MED'] = cfg.get('HOME_MED', '')
++ # MUMPS
++ cfg['HOME_MUMPS'] = cfg.get('HOME_MUMPS', '')
++ # ZMAT
++ cfg['HOME_ZMAT'] = cfg.get('HOME_ZMAT', '')
++ # SCOTCH
++ cfg['HOME_SCOTCH'] = cfg.get('HOME_SCOTCH', '')
++ # MPI for FETI
++ cfg['HOME_MPI'] = cfg.get('HOME_MPI', '')
++
++ # 1.6.3. ----- Numeric
++ if not cfg['USE_NUMPY']:
++ if not opts.force and ftools.pymod_exists('Numeric') and 'Numeric' in to_install:
++ l_num_h = [os.path.join(pythonXY, 'Numeric', 'arrayobject.h'),
++ os.path.join('Numeric', 'arrayobject.h')]
++ numeric_inc = ftools.find_file(l_num_h,
++ [os.path.join(cfg['HOME_PYTHON'], 'include', pythonXY)],
++ typ='inc')
++ if numeric_inc != None:
++ to_install.remove('Numeric')
++ ftools.CheckFromLastFound(cfg, 'HOME_NUMPY', 'include')
++
++ # 1.6.4. ----- mumps
++ cfg['INCLUDE_MUMPS'] = cfg.get('INCLUDE_MUMPS', '')
++ if 'mumps' in to_install:
++ cfg['INCLUDE_MUMPS'] = 'include_mumps-%s' % dict_prod['mumps']
++
++ # 1.6.5. ----- grace 5
++ grace_add_symlink = False
++ if not opts.force and 'grace' in to_install:
++ ftools.find_and_set(cfg, 'XMGRACE', ['xmgrace', 'grace'], err=False)
++ if cfg.get('XMGRACE'):
++ iret, out, outspl = ftools.get_product_version(cfg['XMGRACE'], '-version')
++ vers = None
++ svers = '?'
++ for line in outspl:
++ if line.startswith('Grace') or line.startswith('grace'):
++ mat = re.search('([0-9\.]+)', line)
++ if mat is not None:
++ vers = mat.group(1).strip('.').split('.')
++ try:
++ vers = [int(v) for v in vers]
++ svers = '.'.join([str(i) for i in vers])
++ except:
++ vers = None
++ break
++ log._print('XMGRACE', line, ': version', vers, DBG=True)
++ if vers is not None and vers < [5, 90]:
++ res = 'version is %s : ok. Do not need compile grace from sources.' % svers
++ to_install.remove('grace')
++ grace_add_symlink = True
++ else:
++ res = 'version is %s. Trying to compile grace from sources.' % svers
++ ftools.check(res, 'Grace version < 5.99')
++
++ #-------------------------------------------------------------------------------
++ # 2. dependencies
++ #-------------------------------------------------------------------------------
++ # 2.1. ----- add in DEPENDENCIES instance values set by __main__...
++ dep.Add(product='__main__',
++ set=[k for k in cfg.keys() if not k in cfg_init_keys],)
++
++ # 2.2. ----- ... and during configuration step
++ dep.Add(product='__cfg__',
++ set=cfg_init_keys)
++ dep.FillCache()
++
++ #-------------------------------------------------------------------------------
++ # 2.99. ----- stop here if 'test'
++ err = False
++ if not os.path.exists(cfg['ASTER_ROOT']):
++ try:
++ os.makedirs(cfg['ASTER_ROOT'])
++ except OSError:
++ err = True
++ err = err or not os.access(cfg['ASTER_ROOT'], os.W_OK)
++ if err:
++ log._print(_separ, term='')
++ log._print(_('No write access to %s.\nUse --aster_root=XXX to change destination directory.') % cfg['ASTER_ROOT'])
++ return
++
++ t_ini = time.time() - t_ini
++ if _test:
++ print
++ print 'Stop here !'
++ print 'Settings are saved in setup.cache. Remove it if you change something.'
++ return
++ else:
++ print
++ log._print(_separ, term='')
++ if cfg['F90'] == '':
++ log._print(get_install_message('gfortran', 'a fortran 90 compiler'))
++ raise SetupError(_("Error: no fortran90 compiler found !"))
++ if cfg['USE_NUMPY'] and cfg['HOME_NUMPY'] == '':
++ log._print(get_install_message('python-numpy', 'numpy python module'))
++ raise SetupError(_("Error: numpy python module no found !"))
++ if noprompt:
++ log._print('Continue without prompting.')
++ else:
++ log._print(_("Check if found values seem correct. If not you can change them using 'setup.cfg'."))
++ should_continue()
++
++ t_ini = time.time() - t_ini
++
++ #-------------------------------------------------------------------------------
++ # 3. prepare post-installation
++ #-------------------------------------------------------------------------------
++ post_installdir = os.path.join(cfg['ASTER_ROOT'], '.postinst')
++ if not os.path.exists(post_installdir):
++ os.makedirs(post_installdir)
++ shutil.copy2(os.path.join(setup_maindir, 'post_install.py'), post_installdir)
++ os.chmod(os.path.join(post_installdir, 'post_install.py'), 0755)
++ # save main parameters
++ open(os.path.join(post_installdir, 'variables'), 'w').write("""
++ASTER_ROOT = '%s'
++PYTHON_EXE = '%s'
++PYTHON_LIB = '%s'
++""" % (cfg['ASTER_ROOT'],
++ cfg['PYTHON_EXE'],
++ os.path.join(cfg['HOME_PYTHON'], 'lib', pythonXY)))
++ shutil.copy2(os.path.join(post_installdir, 'variables'), 'variables.init')
++
++ #-------------------------------------------------------------------------------
++ # 4. products installation
++ #-------------------------------------------------------------------------------
++ if not os.path.exists(cfg['TOOLS_DIR']):
++ os.makedirs(cfg['TOOLS_DIR'])
++
++ # product for which full installation is not required
++ if grace_add_symlink:
++ dest = os.path.join(cfg['TOOLS_DIR'], 'xmgrace')
++ if os.path.exists(dest):
++ os.remove(dest)
++ os.symlink(cfg['XMGRACE'], dest)
++ log._print('add symbolic link %s -> %s' % (dest, cfg['XMGRACE']))
++
++ #-------------------------------------------------------------------------------
++ # product for which full installation is required
++ summary=SUMMARY(to_install, system=system, log=log, t_ini=t_ini)
++ summary.SetGlobal(cfg['ASTER_ROOT'], '')
++
++ for product in to_install:
++ alias = product_alias(product)
++ if cfg.get('_install_' + alias, product in to_install):
++ t0=time.time()
++ setup=None
++ if hasattr(products, 'setup_%s' % alias):
++ txt = compiler_manager.switch_in_dep(dep,
++ product=alias,
++ system=system,
++ verbose=True)
++ log._print(_separ, _('Compiler variables for %s (set as environment variables):') % product)
++ log._print(txt)
++ log._print()
++ # export environment
++ ftools.AddToPathVar(dep.cfg, 'PATH', None)
++ ftools.AddToPathVar(dep.cfg, 'LD_LIBRARY_PATH', None)
++ system.AddToEnv(dep.cfg['OPT_ENV'], verbose=False)
++ #
++ setup=getattr(products, 'setup_%s' % alias)(**{
++ 'dep' : dep,
++ 'summary' : summary,
++ 'verbose' : verbose,
++ 'debug' : debug,
++ 'system' : system,
++ 'find_tools' : ftools,
++ 'log' : log,
++ 'postinst' : post_installdir,
++ })
++ else:
++ raise SetupError, _('Setup script for %s not available.') % product
++ try:
++ if not _test:
++ setup.Go()
++ else:
++ setup.PreCheck()
++ except safe_exceptions, msg:
++ log._print(_fmt_err % msg)
++ # how to continue if failed
++ if setup.exit_code != 0:
++ setup.IfFailed()
++ dt=time.time()-t0
++ summary.Set(product, setup, dt, sys.exc_info()[:2])
++
++ #-------------------------------------------------------------------------------
++ # 5. Summary
++ #-------------------------------------------------------------------------------
++ summary.Print()
++
++ # 6. Clean up
++ ftools.clear_temporary_folder()
++
++
++def seedetails():
++ print '\n'*2 + \
++ _('Exception raised. See %s file for details.') % repr(log_file)
++
++
++#-------------------------------------------------------------------------------
++if __name__ == '__main__':
++ try:
++ main()
++ except SystemExit, msg:
++ log._print(msg)
++ seedetails()
++ sys.exit(msg)
++ except:
++ traceback.print_exc()
++ seedetails()
++ log.close()
Modified: packages/code-aster/aster/trunk/debian/patches/series
URL: http://svn.debian.org/wsvn/debian-science/packages/code-aster/aster/trunk/debian/patches/series?rev=36743&op=diff
==============================================================================
--- packages/code-aster/aster/trunk/debian/patches/series (original)
+++ packages/code-aster/aster/trunk/debian/patches/series Mon Jul 19 15:22:43 2010
@@ -1,2 +1,3 @@
+edf-install.patch
setup.cfg.patch
-setup.py.patch
+debian-install.patch
Modified: packages/code-aster/aster/trunk/debian/patches/setup.cfg.patch
URL: http://svn.debian.org/wsvn/debian-science/packages/code-aster/aster/trunk/debian/patches/setup.cfg.patch?rev=36743&op=diff
==============================================================================
--- packages/code-aster/aster/trunk/debian/patches/setup.cfg.patch (original)
+++ packages/code-aster/aster/trunk/debian/patches/setup.cfg.patch Mon Jul 19 15:22:43 2010
@@ -1,8 +1,8 @@
-Index: aster-10.1.0-4/setup.cfg
+Index: aster-10.2.0-1/setup.cfg
===================================================================
---- aster-10.1.0-4.orig/setup.cfg 2010-06-14 14:42:46.000000000 +0200
-+++ aster-10.1.0-4/setup.cfg 2010-06-14 14:54:03.000000000 +0200
-@@ -8,7 +8,7 @@
+--- aster-10.2.0-1.orig/setup.cfg 2010-07-19 16:51:47.000000000 +0200
++++ aster-10.2.0-1/setup.cfg 2010-07-19 17:18:34.000000000 +0200
+@@ -10,7 +10,7 @@
#-------------------------------------------------------------------------------
# Code_Aster toplevel directory (ex: /aster, /opt/aster...)
@@ -11,19 +11,19 @@
# astk configuration (for network capabilities)
# Let the setup configure it for you or define the 3 following parameters :
-@@ -62,6 +62,11 @@
+@@ -65,6 +65,11 @@
#-------------------------------------------------------------------------------
# C and Fortran compilers and linker for Code_Aster
# classical values for GNU compilers
+
-+CC='/usr/bin/mpicc'
-+CXX='/usr/bin/mpicxx'
-+F77='/usr/bin/mpif77'
-+F90='/usr/bin/mpif90'
++CC='/usr/bin/gcc'
++CXX='/usr/bin/gcxx'
++F77='/usr/bin/gfortran'
++F90='/usr/bin/gfortran'
#CC='/usr/bin/gcc'
#CXX='/usr/bin/g++'
#F77='/usr/bin/g77'
-@@ -100,29 +105,29 @@
+@@ -103,29 +108,29 @@
#INCLUDEDIR=['/myprefix/include', ]
# To search for shared libraries first
@@ -60,7 +60,7 @@
#-------------------------------------------------------------------------------
# Optionnal packages
-@@ -133,16 +138,19 @@
+@@ -136,16 +141,19 @@
# MUMPS libraries (sources available at http://mumps.enseeiht.fr/)
# (Fortran 90 compiler is required to use MUMPS with Code_Aster)
Modified: packages/code-aster/aster/trunk/debian/pyversions
URL: http://svn.debian.org/wsvn/debian-science/packages/code-aster/aster/trunk/debian/pyversions?rev=36743&op=diff
==============================================================================
--- packages/code-aster/aster/trunk/debian/pyversions (original)
+++ packages/code-aster/aster/trunk/debian/pyversions Mon Jul 19 15:22:43 2010
@@ -1,1 +1,1 @@
-2.5
+2.5-
Modified: packages/code-aster/aster/trunk/debian/rules
URL: http://svn.debian.org/wsvn/debian-science/packages/code-aster/aster/trunk/debian/rules?rev=36743&op=diff
==============================================================================
--- packages/code-aster/aster/trunk/debian/rules (original)
+++ packages/code-aster/aster/trunk/debian/rules Mon Jul 19 15:22:43 2010
@@ -1,5 +1,9 @@
#!/usr/bin/make -f
# -*- mode: makefile; coding: utf-8 -*
+
+STA_VERSION=STA10.2
+ASTER_VERSION=10.2.0
+ASTER_VERSION_FULL=$(ASTER_VERSION)-1
DEB_PYTHON_SYSTEM = pysupport
@@ -23,30 +27,39 @@
DEB_COMPRESS_EXCLUDE := .py
+# add mpi support for libhdf5-mpi-dev
+CFLAGS += -I/usr/include/mpi -DH5PART_HAS_MPI
+CXXFLAGS += -I/usr/include/mpi -DH5PART_HAS_MPI
+CPPFLAGS += -I/usr/include/mpi -DH5PART_HAS_MPI
+
+makebuilddir/aster::
+ mkdir -p debian/aster/usr/share/codeaster
+ cp -r $(STA_VERSION) debian/aster/usr/share/codeaster
+
install/aster::
mkdir -p debian/aster/usr/bin
- mv $(DEB_DESTDIR)/usr/share/codeaster/STA10.1/asterd debian/aster/usr/bin
- mv $(DEB_DESTDIR)/usr/share/codeaster/STA10.1/asteru debian/aster/usr/bin
+ mv $(DEB_DESTDIR)/usr/share/codeaster/$(STA_VERSION)/asterd debian/aster/usr/bin
+ mv $(DEB_DESTDIR)/usr/share/codeaster/$(STA_VERSION)/asteru debian/aster/usr/bin
mkdir -p debian/aster/usr/lib
- mv $(DEB_DESTDIR)/usr/share/codeaster/STA10.1/lib/* debian/aster/usr/lib
+ mv $(DEB_DESTDIR)/usr/share/codeaster/$(STA_VERSION)/lib/* debian/aster/usr/lib
- find $(DEB_DESTDIR)/usr/share/codeaster/STA10.1/obj -name \*.o | xargs rm -f
+ find $(DEB_DESTDIR)/usr/share/codeaster/$(STA_VERSION)/obj -name \*.o | xargs rm -f
# Files needed for development
- #mkdir -p debian/aster/usr/share/codeaster/STA10.1
- #mv $(DEB_DESTDIR)/usr/share/codeaster/STA10.1/bibf90 debian/aster/usr/share/codeaster/
- #mv $(DEB_DESTDIR)/usr/share/codeaster/STA10.1/bibfor debian/aster/usr/share/codeaster/
- #mv $(DEB_DESTDIR)/usr/share/codeaster/STA10.1/bibc debian/aster/usr/share/codeaster/
- #mv $(DEB_DESTDIR)/usr/share/codeaster/STA10.1/bibpyt debian/aster/usr/share/codeaster/
- #mv $(DEB_DESTDIR)/usr/share/codeaster/STA10.1/obj debian/aster/usr/share/codeaster/
- #mv $(DEB_DESTDIR)/usr/share/codeaster/STA10.1/Makefile debian/aster/usr/share/codeaster/
- #mv $(DEB_DESTDIR)/usr/share/codeaster/STA10.1/fermetur debian/aster/usr/share/codeaster/
- #mv $(DEB_DESTDIR)/usr/share/codeaster/STA10.1/commande debian/aster/usr/share/codeaster/
+ #mkdir -p debian/aster/usr/share/codeaster/$(STA_VERSION)
+ #mv $(DEB_DESTDIR)/usr/share/codeaster/$(STA_VERSION)/bibf90 debian/aster/usr/share/codeaster/
+ #mv $(DEB_DESTDIR)/usr/share/codeaster/$(STA_VERSION)/bibfor debian/aster/usr/share/codeaster/
+ #mv $(DEB_DESTDIR)/usr/share/codeaster/$(STA_VERSION)/bibc debian/aster/usr/share/codeaster/
+ #mv $(DEB_DESTDIR)/usr/share/codeaster/$(STA_VERSION)/bibpyt debian/aster/usr/share/codeaster/
+ #mv $(DEB_DESTDIR)/usr/share/codeaster/$(STA_VERSION)/obj debian/aster/usr/share/codeaster/
+ #mv $(DEB_DESTDIR)/usr/share/codeaster/$(STA_VERSION)/Makefile debian/aster/usr/share/codeaster/
+ #mv $(DEB_DESTDIR)/usr/share/codeaster/$(STA_VERSION)/fermetur debian/aster/usr/share/codeaster/
+ #mv $(DEB_DESTDIR)/usr/share/codeaster/$(STA_VERSION)/commande debian/aster/usr/share/codeaster/
- #mv $(DEB_DESTDIR)/usr/share/codeaster/STA10.1/*.export debian/aster/usr/share/codeaster/
+ #mv $(DEB_DESTDIR)/usr/share/codeaster/$(STA_VERSION)/*.export debian/aster/usr/share/codeaster/
- mkdir -p debian/aster/usr/share/codeaster/STA10.1/dtag
+ mkdir -p debian/aster/usr/share/codeaster/$(STA_VERSION)/dtag
#mkdir -p debian/aster/usr/share/codeaster/outils
@@ -54,19 +67,19 @@
cp debian/config.txt debian/aster/etc/codeaster/config_sta10.1.txt
# Data
- #mkdir -p debian/aster-data/usr/share/codeaster/STA10.1
- #mv $(DEB_DESTDIR)/usr/share/codeaster/STA10.1/catalo debian/aster-data/usr/share/codeaster/
- #mv $(DEB_DESTDIR)/usr/share/codeaster/STA10.1/catapy debian/aster-data/usr/share/codeaster/
- #mv $(DEB_DESTDIR)/usr/share/codeaster/STA10.1/etude debian/aster-data/usr/share/codeaster/
- #mv $(DEB_DESTDIR)/usr/share/codeaster/STA10.1/materiau debian/aster/usr-data/share/codeaster/
- #mv $(DEB_DESTDIR)/usr/share/codeaster/STA10.1/cata_ele.pickled debian/aster-data/usr/share/codeaster/
+ #mkdir -p debian/aster-data/usr/share/codeaster/$(STA_VERSION)
+ #mv $(DEB_DESTDIR)/usr/share/codeaster/$(STA_VERSION)/catalo debian/aster-data/usr/share/codeaster/
+ #mv $(DEB_DESTDIR)/usr/share/codeaster/$(STA_VERSION)/catapy debian/aster-data/usr/share/codeaster/
+ #mv $(DEB_DESTDIR)/usr/share/codeaster/$(STA_VERSION)/etude debian/aster-data/usr/share/codeaster/
+ #mv $(DEB_DESTDIR)/usr/share/codeaster/$(STA_VERSION)/materiau debian/aster/usr-data/share/codeaster/
+ #mv $(DEB_DESTDIR)/usr/share/codeaster/$(STA_VERSION)/cata_ele.pickled debian/aster-data/usr/share/codeaster/
# Tests
- #mkdir -p debian/aster-data/usr/share/codeaster/STA10.1
- #mv $(DEB_DESTDIR)/usr/share/codeaster/STA10.1/astest debian/aster-test/usr/share/codeaster/
+ #mkdir -p debian/aster-data/usr/share/codeaster/$(STA_VERSION)
+ #mv $(DEB_DESTDIR)/usr/share/codeaster/$(STA_VERSION)/astest debian/aster-test/usr/share/codeaster/
# Remove extra license file
- rm -f $(DEB_DESTDIR)/usr/share/codeaster/STA10.1/LICENSE.TERMS
+ rm -f $(DEB_DESTDIR)/usr/share/codeaster/$(STA_VERSION)/LICENSE.TERMS
clean::
rm -f setup.cache
@@ -75,16 +88,17 @@
rm -f variables.init
get-orig-source:
- # Retreive aster-full-src-10.1.0-4.noarch.tar.gz
- TMPDIR=`mktemp -d $(DEB_SOURCE_PACKAGE)-$(DEB_UPSTREAM_VERSION).orig`
- pushd "$$TMPDIR"
- wget http://www.code-aster.org/V2/spip.php?action=dw2_out&id=667
+ # Retreive aster-full-src-$(ASTER_VERSION_FULL).noarch.tar.gz
+ mkdir -p tmp
+ cd tmp && wget "http://www.code-aster.org/V2/spip.php?action=dw2_out&id=785"
- # Go to SRC directory and remove non-free archive
- tar xzf aster-full-src-10.1.0-4.noarch.tar.gz
- cd SRC
- rm -rf gibi homard
- cd ..
- tar zcvf $(CURDIR)/$(DEB_SOURCE_PACKAGE)_$(DEB_UPSTREAM_VERSION).orig.tar.gz aster-full-src-10.1.0-4
- popd
- rm -rf "$$TMPDIR"
+ # Go to SRC directory and retreive astk source
+ cd tmp && tar xzf aster-full-src-$(ASTER_VERSION_FULL).noarch.tar.gz
+ cd tmp/aster-full-src-$(ASTER_VERSION)/SRC && tar zxvf $(DEB_SOURCE_PACKAGE)-src-$(DEB_UPSTREAM_VERSION).noarch.tar.gz
+
+ # Retreive ASTER src only
+ mkdir -p tmp/aster-full-src-$(ASTER_VERSION)/SRC/$(DEB_SOURCE_PACKAGE)-$(DEB_UPSTREAM_VERSION)
+ cd tmp/aster-full-src-$(ASTER_VERSION)/SRC && mv $(STA_VERSION) $(DEB_SOURCE_PACKAGE)-$(DEB_UPSTREAM_VERSION)
+ cd tmp/aster-full-src-$(ASTER_VERSION)/SRC && tar zcvf $(CURDIR)/$(DEB_SOURCE_PACKAGE)_$(DEB_UPSTREAM_VERSION).orig.tar.gz $(DEB_SOURCE_PACKAGE)-$(DEB_UPSTREAM_VERSION)
+ rm -rf tmp
+
More information about the debian-science-commits
mailing list