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) |