aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/modules/rpm.py
diff options
context:
space:
mode:
authorElliott Sales de Andrade <quantum.analyst@gmail.com>2016-08-24 19:29:11 -0400
committerElliott Sales de Andrade <quantum.analyst@gmail.com>2016-08-27 18:29:55 -0400
commit4c71695e41a50dda3199d26ed7aedbaaf3150768 (patch)
tree8bd499a2a113c3da5c1dee8ed29f4b3c69d27dd7 /mesonbuild/modules/rpm.py
parent7830cb61c39fbaf57933ac403dcdf5007667d87d (diff)
downloadmeson-4c71695e41a50dda3199d26ed7aedbaaf3150768.zip
meson-4c71695e41a50dda3199d26ed7aedbaaf3150768.tar.gz
meson-4c71695e41a50dda3199d26ed7aedbaaf3150768.tar.bz2
Use context manager for file I/O.
There are a few cases where a context manager cannot be used, such as the logger.
Diffstat (limited to 'mesonbuild/modules/rpm.py')
-rw-r--r--mesonbuild/modules/rpm.py147
1 files changed, 76 insertions, 71 deletions
diff --git a/mesonbuild/modules/rpm.py b/mesonbuild/modules/rpm.py
index acad204..89194e9 100644
--- a/mesonbuild/modules/rpm.py
+++ b/mesonbuild/modules/rpm.py
@@ -80,82 +80,87 @@ class RPMModule:
files.add('%%{_mandir}/man%u/%s.*' % (int(man_file.split('.')[-1]), man_file))
if len(files_devel) > 0:
devel_subpkg = True
- fn = open('%s.spec' % os.path.join(state.environment.get_build_dir(), proj), 'w+')
- fn.write('Name: %s\n' % proj)
- fn.write('Version: # FIXME\n')
- fn.write('Release: 1%{?dist}\n')
- fn.write('Summary: # FIXME\n')
- fn.write('License: # FIXME\n')
- fn.write('\n')
- fn.write('Source0: %{name}-%{version}.tar.xz # FIXME\n')
- fn.write('\n')
- for compiler in compiler_deps:
- fn.write('BuildRequires: %s\n' % compiler)
- for dep in state.environment.coredata.deps:
- fn.write('BuildRequires: pkgconfig(%s)\n' % dep)
- for lib in state.environment.coredata.ext_libs.values():
- fn.write('BuildRequires: %s # FIXME\n' % lib.fullpath)
- mlog.log('Warning, replace', mlog.bold(lib.fullpath), 'with real package.',
- 'You can use following command to find package which contains this lib:',
- mlog.bold('dnf provides %s' % lib.fullpath))
- for prog in state.environment.coredata.ext_progs.values():
- if not prog.found():
- fn.write('BuildRequires: /usr/bin/%s # FIXME\n' % prog.get_name())
- else:
- fn.write('BuildRequires: %s\n' % ' '.join(prog.fullpath))
- fn.write('BuildRequires: meson\n')
- fn.write('\n')
- fn.write('%description\n')
- fn.write('\n')
- if devel_subpkg:
- fn.write('%package devel\n')
- fn.write('Summary: Development files for %{name}\n')
- fn.write('Requires: %{name}%{?_isa} = %{version}-%{release}\n')
+ filename = os.path.join(state.environment.get_build_dir(),
+ '%s.spec' % proj)
+ with open(filename, 'w+') as fn:
+ fn.write('Name: %s\n' % proj)
+ fn.write('Version: # FIXME\n')
+ fn.write('Release: 1%{?dist}\n')
+ fn.write('Summary: # FIXME\n')
+ fn.write('License: # FIXME\n')
+ fn.write('\n')
+ fn.write('Source0: %{name}-%{version}.tar.xz # FIXME\n')
+ fn.write('\n')
+ for compiler in compiler_deps:
+ fn.write('BuildRequires: %s\n' % compiler)
+ for dep in state.environment.coredata.deps:
+ fn.write('BuildRequires: pkgconfig(%s)\n' % dep)
+ for lib in state.environment.coredata.ext_libs.values():
+ fn.write('BuildRequires: %s # FIXME\n' % lib.fullpath)
+ mlog.log('Warning, replace', mlog.bold(lib.fullpath),
+ 'with real package.',
+ 'You can use following command to find package which '
+ 'contains this lib:',
+ mlog.bold('dnf provides %s' % lib.fullpath))
+ for prog in state.environment.coredata.ext_progs.values():
+ if not prog.found():
+ fn.write('BuildRequires: /usr/bin/%s # FIXME\n' %
+ prog.get_name())
+ else:
+ fn.write('BuildRequires: %s\n' % ' '.join(prog.fullpath))
+ fn.write('BuildRequires: meson\n')
+ fn.write('\n')
+ fn.write('%description\n')
fn.write('\n')
- fn.write('%description devel\n')
- fn.write('Development files for %{name}.\n')
+ if devel_subpkg:
+ fn.write('%package devel\n')
+ fn.write('Summary: Development files for %{name}\n')
+ fn.write('Requires: %{name}%{?_isa} = %{version}-%{release}\n')
+ fn.write('\n')
+ fn.write('%description devel\n')
+ fn.write('Development files for %{name}.\n')
+ fn.write('\n')
+ fn.write('%prep\n')
+ fn.write('%autosetup\n')
+ fn.write('rm -rf rpmbuilddir && mkdir rpmbuilddir\n')
fn.write('\n')
- fn.write('%prep\n')
- fn.write('%autosetup\n')
- fn.write('rm -rf rpmbuilddir && mkdir rpmbuilddir\n')
- fn.write('\n')
- fn.write('%build\n')
- fn.write('pushd rpmbuilddir\n')
- fn.write(' %meson ..\n')
- fn.write(' ninja-build -v\n')
- fn.write('popd\n')
- fn.write('\n')
- fn.write('%install\n')
- fn.write('pushd rpmbuilddir\n')
- fn.write(' DESTDIR=%{buildroot} ninja-build -v install\n')
- fn.write('popd\n')
- if len(to_delete) > 0:
- fn.write('rm -rf %s\n' % ' '.join(to_delete))
- fn.write('\n')
- fn.write('%check\n')
- fn.write('pushd rpmbuilddir\n')
- fn.write(' ninja-build -v test\n')
- fn.write('popd\n')
- fn.write('\n')
- fn.write('%files\n')
- for f in files:
- fn.write('%s\n' % f)
- fn.write('\n')
- if devel_subpkg:
- fn.write('%files devel\n')
- for f in files_devel:
+ fn.write('%build\n')
+ fn.write('pushd rpmbuilddir\n')
+ fn.write(' %meson ..\n')
+ fn.write(' ninja-build -v\n')
+ fn.write('popd\n')
+ fn.write('\n')
+ fn.write('%install\n')
+ fn.write('pushd rpmbuilddir\n')
+ fn.write(' DESTDIR=%{buildroot} ninja-build -v install\n')
+ fn.write('popd\n')
+ if len(to_delete) > 0:
+ fn.write('rm -rf %s\n' % ' '.join(to_delete))
+ fn.write('\n')
+ fn.write('%check\n')
+ fn.write('pushd rpmbuilddir\n')
+ fn.write(' ninja-build -v test\n')
+ fn.write('popd\n')
+ fn.write('\n')
+ fn.write('%files\n')
+ for f in files:
fn.write('%s\n' % f)
fn.write('\n')
- if so_installed:
- fn.write('%post -p /sbin/ldconfig\n')
+ if devel_subpkg:
+ fn.write('%files devel\n')
+ for f in files_devel:
+ fn.write('%s\n' % f)
+ fn.write('\n')
+ if so_installed:
+ fn.write('%post -p /sbin/ldconfig\n')
+ fn.write('\n')
+ fn.write('%postun -p /sbin/ldconfig\n')
+ fn.write('\n')
+ fn.write('%changelog\n')
+ fn.write('* %s meson <meson@example.com> - \n' %
+ datetime.date.today().strftime('%a %b %d %Y'))
+ fn.write('- \n')
fn.write('\n')
- fn.write('%postun -p /sbin/ldconfig\n')
- fn.write('\n')
- fn.write('%changelog\n')
- fn.write('* %s meson <meson@example.com> - \n' % datetime.date.today().strftime('%a %b %d %Y'))
- fn.write('- \n')
- fn.write('\n')
- fn.close()
mlog.log('RPM spec template written to %s.spec.\n' % proj)
def initialize():