Changeset faa8181 in rtems-tools


Ignore:
Timestamp:
Feb 22, 2011, 3:46:44 AM (8 years ago)
Author:
Chris Johns <chrisj@…>
Branches:
4.10, 4.11, master
Children:
a86cd82
Parents:
31d4e80
Message:

2011-02-22 Chris Johns <chrisj@…>

  • specbuilder/sb-versions, specbuilder/specbuilder/version.py: New. Print a suitable version message for automatic documentation updating from the spec files in CVS.
  • specbuilder/specbuilder/build.py: Add xz support. Add a function to return the name of a package.
  • specbuilder/specbuilder/crossgcc.py: Use the build name in the tmp path.
  • specbuilder/specbuilder/darwin.py: Add xz support.
  • specbuilder/specbuilder/defaults.py: Add xz support. Add Windows and Linux support.
  • specbuilder/specbuilder/setup.py: Reference the correct shell opts. Use the shell setup in the version probe command. Fix the version check. Add autotools to the list of spec files to install.
  • specbuilder/specbuilder/spec.py: Add changelog and configure tests. Manage sub-packages better.
  • specbuilder/specbuilder/version.py, specbuilder/specbuilder/windows.py: New.
Files:
3 added
7 edited

Legend:

Unmodified
Added
Removed
  • ChangeLog

    r31d4e80 rfaa8181  
     12011-02-22      Chris Johns <chrisj@rtems.org>
     2
     3        * specbuilder/sb-versions, specbuilder/specbuilder/version.py:
     4        New. Print a suitable version message for automatic documentation
     5        updating from the spec files in CVS.
     6
     7        * specbuilder/specbuilder/build.py: Add xz support. Add a function
     8        to return the name of a package.
     9       
     10        * specbuilder/specbuilder/crossgcc.py: Use the build name in the
     11        tmp path.
     12       
     13        * specbuilder/specbuilder/darwin.py: Add xz support.
     14       
     15        * specbuilder/specbuilder/defaults.py: Add xz support. Add Windows
     16        and Linux support.
     17       
     18        * specbuilder/specbuilder/setup.py: Reference the correct shell
     19        opts. Use the shell setup in the version probe command. Fix the
     20        version check. Add autotools to the list of spec files to
     21        install.
     22       
     23        * specbuilder/specbuilder/spec.py: Add changelog and configure
     24        tests. Manage sub-packages better.
     25       
     26        * specbuilder/specbuilder/version.py,
     27        specbuilder/specbuilder/windows.py: New.
     28
    1292010-08-31      Chris Johns <chrisj@rtems.org>
    230
  • specbuilder/specbuilder/build.py

    r31d4e80 rfaa8181  
    191191        elif esl[-1:][0] == 'bz2':
    192192            source['compressed'] = '%{__zip} -u'
     193        elif esl[-1:][0] == 'xz':
     194            source['compressed'] = '%{__xz} -dc'
    193195        source['script'] = ''
    194196        return source
     
    390392            self.cleanup()
    391393
     394    def name(self):
     395        packages = self.spec.packages()
     396        package = packages['main']
     397        return package.name() + '-' + package.version()
     398
    392399def run(args):
    393400    try:
  • specbuilder/specbuilder/crossgcc.py

    r31d4e80 rfaa8181  
    7373
    7474    def first_package(self, _build):
    75         path = os.path.join(_build.spec.abspath('%{_tmppath}'),
    76                             _build.spec.expand('crossgcc-%(%{__id_u} -n)'))
     75        what = _build.spec.expand('crossgcc-%(%{__id_u} -n)-' + _build.name())
     76        path = os.path.join(_build.spec.abspath('%{_tmppath}'), what)
    7777        _build.rmdir(path)
    7878        _build.mkdir(path)
  • specbuilder/specbuilder/darwin.py

    r31d4e80 rfaa8181  
    5252        '_var':                    '/opt/local/var',
    5353        'optflags':                '-O2 -fasynchronous-unwind-tables',
    54         '_smp_mflags':             smp_mflags
     54        '_smp_mflags':             smp_mflags,
     55        '__xz':                    '/usr/local/bin/xz',
    5556        }
    5657    return defines
  • specbuilder/specbuilder/defaults.py

    r31d4e80 rfaa8181  
    136136'__tar_extract':       '%{__tar} -xvvf',
    137137'__unzip':             '/usr/bin/unzip',
     138'__xz':                '/usr/bin/xz',
    138139'_datadir':            '%{_prefix}/share',
    139140'_defaultdocdir':      '%{_prefix}/share/doc',
     
    416417    d = defaults
    417418    overrides = None
    418     uname = os.uname()
    419     if uname[0] == 'Darwin':
    420         import darwin
    421         overrides = darwin.load()
    422     elif uname[0] == 'Linux':
    423         import linux
    424         overrides = linux.load()
     419    if os.name == 'nt':
     420        import windows
     421        overrides = windows.load()
     422    else:
     423        uname = os.uname()
     424        if uname[0] == 'Darwin':
     425            import darwin
     426            overrides = darwin.load()
     427        elif uname[0] == 'Linux':
     428            import linux
     429            overrides = linux.load()
    425430    if overrides is None:
    426431        raise error.general('no hosts defaults found; please add')
     
    452457    sys.exit(0)
    453458
     459
     460
  • specbuilder/specbuilder/setup.py

    r31d4e80 rfaa8181  
    8989    def run(self, command, shell_opts = '', cwd = None):
    9090        e = execute.capture_execution(log = log.default, dump = self.opts.quiet())
    91         cmd = self.opts.expand('%{__setup_shell} -ex ' + shell_opts + ' ' + command, self.defaults)
     91        cmd = self.opts.expand('%{___setup_shell} -ex ' + \
     92                                   shell_opts + ' ' + command, self.defaults)
    9293        self._output('run: ' + cmd)
    9394        exit_code, proc, output = e.shell(cmd, cwd = cwd)
     
    9798    def check_version(self, cmd, macro):
    9899        vcmd = cmd + ' --version'
     100        vcmd = self.opts.expand('%{___setup_shell} -e ' + vcmd, self.defaults)       
    99101        e = execute.capture_execution()
    100102        exit_code, proc, output = e.shell(vcmd)
    101103        if exit_code != 0 and len(output) != 0:
    102104            raise error.general('shell cmd failed: ' + vcmd)
    103         version = output.split('\n')[0].split(' ')
     105        version = output.split('\n')[0].split(' ')[-1:][0]
    104106        need = self.opts.expand(macro, self.defaults)
    105107        if version < need:
    106             _notice(self.opts, 'warning: ' + cmd + ' version is invalid, need ' + need + ' or higher')
     108            _notice(self.opts, 'warning: ' + cmd + \
     109                        ' version is invalid, need ' + need + ' or higher, found ' + version)
    107110            return False
    108111        return True
    109112
    110113    def get_specs(self, path):
    111         return self._get_file_list(path, 'rtems', 'spec')
     114        return self._get_file_list(path, 'autotools', 'spec') + \
     115            self._get_file_list(path, 'rtems', 'spec')
    112116
    113117    def get_patches(self, path):
     
    128132                self.mkdir(dst)
    129133            except os.error, oerr:
    130                 if oerr[0] != errno.EEXIST:
     134                if oerr[0] != errno.EEXIST and oerr[0] != 183:
    131135                    raise error.general('OS error: ' + str(oerr))
    132136            if d == 'RPMLIB':
     
    142146            if not os.path.isdir(crossrpms):
    143147                raise error.general('no crossrpms directory found under: ' + crossrpms)
    144             if 'rebuild' in self.opts.opts:
     148            if self.opts.rebuild():
    145149                if self.check_version('autoconf', '%{__setup_autoconf}'):
    146150                    self.run('../../bootstrap -c', '-c', crossrpms)
     
    174178if __name__ == "__main__":
    175179    run()
     180
     181
  • specbuilder/specbuilder/spec.py

    r31d4e80 rfaa8181  
    7777        for i in self.infos:
    7878            il = i.lower()
    79             if il.startswith(label) and il[len(label):].isdigit():
     79            if il.startswith(label):
     80                if il == label:
     81                    il = label + '0'
     82                elif not il[len(label):].isdigit():
     83                    continue
    8084                infos[il] = self.infos[i]
    8185        return infos
     
    147151
    148152    _directive = [ '%description',
     153                   '%changelog',
    149154                   '%prep',
    150155                   '%build',
     
    157162
    158163    _ignore = [ re.compile('%setup'),
     164                re.compile('%configure'),
    159165                re.compile('%doc'),
    160166                re.compile('%dir'),
     
    610616                        for d in self._directive:
    611617                            if ls[0].strip() == d:
    612                                 if len(ls) == 1:
    613                                     package = 'main'
    614                                 elif len(ls) == 2:
    615                                     package = ls[1].strip()
    616                                 else:
    617                                     if ls[1].strip() != '-n':
    618                                         self._warning("unknown directive option: '" + ls[1] + "'")
    619                                     package = ls[2].strip()
    620                                 return ('directive', ls[0].strip(), package)
     618                                return ('directive', ls[0].strip(), ls[1:])
    621619                        self._warning("unknown directive: '" + ls[0] + "'")
    622620                        return ('data', [l])
     
    680678                    self._warning("unexpected '" + r[1] + "'")
    681679                elif r[0] == 'directive':
    682                     self._set_package(r[2])
     680                    new_data = []
     681                    if r[1] == '%description':
     682                        new_data = [' '.join(r[2])]
     683                    else:
     684                        if len(r[2]) == 0:
     685                            _package = 'main'
     686                        elif len(r[2]) == 1:
     687                            _package = r[2][0]
     688                        else:
     689                            if r[2][0].strip() != '-n':
     690                                self._warning("unknown directive option: '" + ' '.join(r[2]) + "'")
     691                            _package = r[2][1].strip()
     692                        self._set_package(_package)
    683693                    if dir and dir != r[1]:
    684694                        self._directive_extend(dir, data)
    685695                    dir = r[1]
    686                     data = []
     696                    data = new_data
    687697                elif r[0] == 'data':
    688698                    for l in r[1]:
Note: See TracChangeset for help on using the changeset viewer.