diff options
| -rw-r--r-- | meta/classes/package_ipk.bbclass | 67 |
1 files changed, 24 insertions, 43 deletions
diff --git a/meta/classes/package_ipk.bbclass b/meta/classes/package_ipk.bbclass index 9fb128b82b..a76b23538e 100644 --- a/meta/classes/package_ipk.bbclass +++ b/meta/classes/package_ipk.bbclass | |||
| @@ -104,11 +104,7 @@ python do_package_ipk () { | |||
| 104 | 104 | ||
| 105 | controldir = os.path.join(root, 'CONTROL') | 105 | controldir = os.path.join(root, 'CONTROL') |
| 106 | bb.utils.mkdirhier(controldir) | 106 | bb.utils.mkdirhier(controldir) |
| 107 | try: | 107 | ctrlfile = open(os.path.join(controldir, 'control'), 'w') |
| 108 | ctrlfile = open(os.path.join(controldir, 'control'), 'w') | ||
| 109 | except OSError: | ||
| 110 | bb.utils.unlockfile(lf) | ||
| 111 | bb.fatal("unable to open control file for writing") | ||
| 112 | 108 | ||
| 113 | fields = [] | 109 | fields = [] |
| 114 | pe = d.getVar('PKGE') | 110 | pe = d.getVar('PKGE') |
| @@ -134,35 +130,28 @@ python do_package_ipk () { | |||
| 134 | 130 | ||
| 135 | ctrlfile.write("Package: %s\n" % pkgname) | 131 | ctrlfile.write("Package: %s\n" % pkgname) |
| 136 | # check for required fields | 132 | # check for required fields |
| 137 | try: | 133 | for (c, fs) in fields: |
| 138 | for (c, fs) in fields: | 134 | for f in fs: |
| 139 | for f in fs: | 135 | if localdata.getVar(f, False) is None: |
| 140 | if localdata.getVar(f, False) is None: | 136 | raise KeyError(f) |
| 141 | raise KeyError(f) | 137 | # Special behavior for description... |
| 142 | # Special behavior for description... | 138 | if 'DESCRIPTION' in fs: |
| 143 | if 'DESCRIPTION' in fs: | 139 | summary = localdata.getVar('SUMMARY') or localdata.getVar('DESCRIPTION') or "." |
| 144 | summary = localdata.getVar('SUMMARY') or localdata.getVar('DESCRIPTION') or "." | 140 | ctrlfile.write('Description: %s\n' % summary) |
| 145 | ctrlfile.write('Description: %s\n' % summary) | 141 | description = localdata.getVar('DESCRIPTION') or "." |
| 146 | description = localdata.getVar('DESCRIPTION') or "." | 142 | description = textwrap.dedent(description).strip() |
| 147 | description = textwrap.dedent(description).strip() | 143 | if '\\n' in description: |
| 148 | if '\\n' in description: | 144 | # Manually indent |
| 149 | # Manually indent | 145 | for t in description.split('\\n'): |
| 150 | for t in description.split('\\n'): | 146 | # We don't limit the width when manually indent, but we do |
| 151 | # We don't limit the width when manually indent, but we do | 147 | # need the textwrap.fill() to set the initial_indent and |
| 152 | # need the textwrap.fill() to set the initial_indent and | 148 | # subsequent_indent, so set a large width |
| 153 | # subsequent_indent, so set a large width | 149 | ctrlfile.write('%s\n' % textwrap.fill(t.strip(), width=100000, initial_indent=' ', subsequent_indent=' ')) |
| 154 | ctrlfile.write('%s\n' % textwrap.fill(t.strip(), width=100000, initial_indent=' ', subsequent_indent=' ')) | ||
| 155 | else: | ||
| 156 | # Auto indent | ||
| 157 | ctrlfile.write('%s\n' % textwrap.fill(description, width=74, initial_indent=' ', subsequent_indent=' ')) | ||
| 158 | else: | 150 | else: |
| 159 | ctrlfile.write(c % tuple(pullData(fs, localdata))) | 151 | # Auto indent |
| 160 | except KeyError: | 152 | ctrlfile.write('%s\n' % textwrap.fill(description, width=74, initial_indent=' ', subsequent_indent=' ')) |
| 161 | import sys | 153 | else: |
| 162 | (type, value, traceback) = sys.exc_info() | 154 | ctrlfile.write(c % tuple(pullData(fs, localdata))) |
| 163 | ctrlfile.close() | ||
| 164 | bb.utils.unlockfile(lf) | ||
| 165 | bb.fatal("Missing field for ipk generation: %s" % value) | ||
| 166 | # more fields | 155 | # more fields |
| 167 | 156 | ||
| 168 | custom_fields_chunk = get_package_additional_metadata("ipk", localdata) | 157 | custom_fields_chunk = get_package_additional_metadata("ipk", localdata) |
| @@ -222,22 +211,14 @@ python do_package_ipk () { | |||
| 222 | scriptvar = localdata.getVar('pkg_%s' % script) | 211 | scriptvar = localdata.getVar('pkg_%s' % script) |
| 223 | if not scriptvar: | 212 | if not scriptvar: |
| 224 | continue | 213 | continue |
| 225 | try: | 214 | scriptfile = open(os.path.join(controldir, script), 'w') |
| 226 | scriptfile = open(os.path.join(controldir, script), 'w') | ||
| 227 | except OSError: | ||
| 228 | bb.utils.unlockfile(lf) | ||
| 229 | bb.fatal("unable to open %s script file for writing" % script) | ||
| 230 | scriptfile.write(scriptvar) | 215 | scriptfile.write(scriptvar) |
| 231 | scriptfile.close() | 216 | scriptfile.close() |
| 232 | os.chmod(os.path.join(controldir, script), 0o755) | 217 | os.chmod(os.path.join(controldir, script), 0o755) |
| 233 | 218 | ||
| 234 | conffiles_str = ' '.join(get_conffiles(pkg, d)) | 219 | conffiles_str = ' '.join(get_conffiles(pkg, d)) |
| 235 | if conffiles_str: | 220 | if conffiles_str: |
| 236 | try: | 221 | conffiles = open(os.path.join(controldir, 'conffiles'), 'w') |
| 237 | conffiles = open(os.path.join(controldir, 'conffiles'), 'w') | ||
| 238 | except OSError: | ||
| 239 | bb.utils.unlockfile(lf) | ||
| 240 | bb.fatal("unable to open conffiles for writing") | ||
| 241 | for f in conffiles_str.split(): | 222 | for f in conffiles_str.split(): |
| 242 | if os.path.exists(oe.path.join(root, f)): | 223 | if os.path.exists(oe.path.join(root, f)): |
| 243 | conffiles.write('%s\n' % f) | 224 | conffiles.write('%s\n' % f) |
