diff options
113 files changed, 1754 insertions, 2165 deletions
diff --git a/bitbake/lib/bb/cache_extra.py b/bitbake/lib/bb/cache_extra.py index bf02bb74dd..9e38a439e8 100644 --- a/bitbake/lib/bb/cache_extra.py +++ b/bitbake/lib/bb/cache_extra.py | |||
@@ -44,6 +44,7 @@ class HobRecipeInfo(RecipeInfoCommon): | |||
44 | self.homepage = self.getvar('HOMEPAGE', metadata) | 44 | self.homepage = self.getvar('HOMEPAGE', metadata) |
45 | self.bugtracker = self.getvar('BUGTRACKER', metadata) | 45 | self.bugtracker = self.getvar('BUGTRACKER', metadata) |
46 | self.prevision = self.getvar('PR', metadata) | 46 | self.prevision = self.getvar('PR', metadata) |
47 | self.files_info = self.getvar('FILES_INFO', metadata) | ||
47 | 48 | ||
48 | @classmethod | 49 | @classmethod |
49 | def init_cacheData(cls, cachedata): | 50 | def init_cacheData(cls, cachedata): |
@@ -55,6 +56,7 @@ class HobRecipeInfo(RecipeInfoCommon): | |||
55 | cachedata.homepage = {} | 56 | cachedata.homepage = {} |
56 | cachedata.bugtracker = {} | 57 | cachedata.bugtracker = {} |
57 | cachedata.prevision = {} | 58 | cachedata.prevision = {} |
59 | cachedata.files_info = {} | ||
58 | 60 | ||
59 | def add_cacheData(self, cachedata, fn): | 61 | def add_cacheData(self, cachedata, fn): |
60 | cachedata.summary[fn] = self.summary | 62 | cachedata.summary[fn] = self.summary |
@@ -64,3 +66,4 @@ class HobRecipeInfo(RecipeInfoCommon): | |||
64 | cachedata.homepage[fn] = self.homepage | 66 | cachedata.homepage[fn] = self.homepage |
65 | cachedata.bugtracker[fn] = self.bugtracker | 67 | cachedata.bugtracker[fn] = self.bugtracker |
66 | cachedata.prevision[fn] = self.prevision | 68 | cachedata.prevision[fn] = self.prevision |
69 | cachedata.files_info[fn] = self.files_info | ||
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index 4650d7c551..c7c2ca6483 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py | |||
@@ -576,6 +576,7 @@ class BBCooker: | |||
576 | description = self.status.description[fn] | 576 | description = self.status.description[fn] |
577 | homepage = self.status.homepage[fn] | 577 | homepage = self.status.homepage[fn] |
578 | bugtracker = self.status.bugtracker[fn] | 578 | bugtracker = self.status.bugtracker[fn] |
579 | files_info = self.status.files_info[fn] | ||
579 | rdepends = self.status.rundeps[fn] | 580 | rdepends = self.status.rundeps[fn] |
580 | rrecs = self.status.runrecs[fn] | 581 | rrecs = self.status.runrecs[fn] |
581 | prevision = self.status.prevision[fn] | 582 | prevision = self.status.prevision[fn] |
@@ -591,6 +592,7 @@ class BBCooker: | |||
591 | depend_tree["pn"][pn]["inherits"] = inherits | 592 | depend_tree["pn"][pn]["inherits"] = inherits |
592 | depend_tree["pn"][pn]["homepage"] = homepage | 593 | depend_tree["pn"][pn]["homepage"] = homepage |
593 | depend_tree["pn"][pn]["bugtracker"] = bugtracker | 594 | depend_tree["pn"][pn]["bugtracker"] = bugtracker |
595 | depend_tree["pn"][pn]["files_info"] = files_info | ||
594 | depend_tree["pn"][pn]["revision"] = prevision | 596 | depend_tree["pn"][pn]["revision"] = prevision |
595 | 597 | ||
596 | if fnid not in seen_fnids: | 598 | if fnid not in seen_fnids: |
diff --git a/bitbake/lib/bb/tests/fetch.py b/bitbake/lib/bb/tests/fetch.py index 778d94f872..46db7e5c60 100644 --- a/bitbake/lib/bb/tests/fetch.py +++ b/bitbake/lib/bb/tests/fetch.py | |||
@@ -308,6 +308,8 @@ class FetcherTest(unittest.TestCase): | |||
308 | def tearDown(self): | 308 | def tearDown(self): |
309 | bb.utils.prunedir(self.tempdir) | 309 | bb.utils.prunedir(self.tempdir) |
310 | 310 | ||
311 | @unittest.skipIf(os.environ.get("BB_SKIP_NETTESTS") == "yes", | ||
312 | "Unset BB_SKIP_NETTESTS to run network tests") | ||
311 | def test_fetch(self): | 313 | def test_fetch(self): |
312 | fetcher = bb.fetch.Fetch(["http://downloads.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz", "http://downloads.yoctoproject.org/releases/bitbake/bitbake-1.1.tar.gz"], self.d) | 314 | fetcher = bb.fetch.Fetch(["http://downloads.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz", "http://downloads.yoctoproject.org/releases/bitbake/bitbake-1.1.tar.gz"], self.d) |
313 | fetcher.download() | 315 | fetcher.download() |
@@ -320,12 +322,16 @@ class FetcherTest(unittest.TestCase): | |||
320 | self.assertEqual(len(os.listdir(self.unpackdir + "/bitbake-1.0/")), 9) | 322 | self.assertEqual(len(os.listdir(self.unpackdir + "/bitbake-1.0/")), 9) |
321 | self.assertEqual(len(os.listdir(self.unpackdir + "/bitbake-1.1/")), 9) | 323 | self.assertEqual(len(os.listdir(self.unpackdir + "/bitbake-1.1/")), 9) |
322 | 324 | ||
325 | @unittest.skipIf(os.environ.get("BB_SKIP_NETTESTS") == "yes", | ||
326 | "Unset BB_SKIP_NETTESTS to run network tests") | ||
323 | def test_fetch_mirror(self): | 327 | def test_fetch_mirror(self): |
324 | self.d.setVar("MIRRORS", "http://.*/.* http://downloads.yoctoproject.org/releases/bitbake") | 328 | self.d.setVar("MIRRORS", "http://.*/.* http://downloads.yoctoproject.org/releases/bitbake") |
325 | fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz"], self.d) | 329 | fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz"], self.d) |
326 | fetcher.download() | 330 | fetcher.download() |
327 | self.assertEqual(os.path.getsize(self.dldir + "/bitbake-1.0.tar.gz"), 57749) | 331 | self.assertEqual(os.path.getsize(self.dldir + "/bitbake-1.0.tar.gz"), 57749) |
328 | 332 | ||
333 | @unittest.skipIf(os.environ.get("BB_SKIP_NETTESTS") == "yes", | ||
334 | "Unset BB_SKIP_NETTESTS to run network tests") | ||
329 | def test_fetch_premirror(self): | 335 | def test_fetch_premirror(self): |
330 | self.d.setVar("PREMIRRORS", "http://.*/.* http://downloads.yoctoproject.org/releases/bitbake") | 336 | self.d.setVar("PREMIRRORS", "http://.*/.* http://downloads.yoctoproject.org/releases/bitbake") |
331 | fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz"], self.d) | 337 | fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz"], self.d) |
@@ -351,21 +357,29 @@ class FetcherTest(unittest.TestCase): | |||
351 | fetcher.download() | 357 | fetcher.download() |
352 | checkrevision(self, fetcher) | 358 | checkrevision(self, fetcher) |
353 | 359 | ||
360 | @unittest.skipIf(os.environ.get("BB_SKIP_NETTESTS") == "yes", | ||
361 | "Unset BB_SKIP_NETTESTS to run network tests") | ||
354 | def test_gitfetch(self): | 362 | def test_gitfetch(self): |
355 | url1 = url2 = "git://git.openembedded.org/bitbake" | 363 | url1 = url2 = "git://git.openembedded.org/bitbake" |
356 | self.gitfetcher(url1, url2) | 364 | self.gitfetcher(url1, url2) |
357 | 365 | ||
366 | @unittest.skipIf(os.environ.get("BB_SKIP_NETTESTS") == "yes", | ||
367 | "Unset BB_SKIP_NETTESTS to run network tests") | ||
358 | def test_gitfetch_premirror(self): | 368 | def test_gitfetch_premirror(self): |
359 | url1 = "git://git.openembedded.org/bitbake" | 369 | url1 = "git://git.openembedded.org/bitbake" |
360 | url2 = "git://someserver.org/bitbake" | 370 | url2 = "git://someserver.org/bitbake" |
361 | self.d.setVar("PREMIRRORS", "git://someserver.org/bitbake git://git.openembedded.org/bitbake \n") | 371 | self.d.setVar("PREMIRRORS", "git://someserver.org/bitbake git://git.openembedded.org/bitbake \n") |
362 | self.gitfetcher(url1, url2) | 372 | self.gitfetcher(url1, url2) |
363 | 373 | ||
374 | @unittest.skipIf(os.environ.get("BB_SKIP_NETTESTS") == "yes", | ||
375 | "Unset BB_SKIP_NETTESTS to run network tests") | ||
364 | def test_gitfetch_premirror2(self): | 376 | def test_gitfetch_premirror2(self): |
365 | url1 = url2 = "git://someserver.org/bitbake" | 377 | url1 = url2 = "git://someserver.org/bitbake" |
366 | self.d.setVar("PREMIRRORS", "git://someserver.org/bitbake git://git.openembedded.org/bitbake \n") | 378 | self.d.setVar("PREMIRRORS", "git://someserver.org/bitbake git://git.openembedded.org/bitbake \n") |
367 | self.gitfetcher(url1, url2) | 379 | self.gitfetcher(url1, url2) |
368 | 380 | ||
381 | @unittest.skipIf(os.environ.get("BB_SKIP_NETTESTS") == "yes", | ||
382 | "Unset BB_SKIP_NETTESTS to run network tests") | ||
369 | def test_gitfetch_premirror3(self): | 383 | def test_gitfetch_premirror3(self): |
370 | realurl = "git://git.openembedded.org/bitbake" | 384 | realurl = "git://git.openembedded.org/bitbake" |
371 | dummyurl = "git://someserver.org/bitbake" | 385 | dummyurl = "git://someserver.org/bitbake" |
diff --git a/bitbake/lib/bb/ui/crumbs/hig/propertydialog.py b/bitbake/lib/bb/ui/crumbs/hig/propertydialog.py index 4420f97665..f4cf9a67d0 100644 --- a/bitbake/lib/bb/ui/crumbs/hig/propertydialog.py +++ b/bitbake/lib/bb/ui/crumbs/hig/propertydialog.py | |||
@@ -41,11 +41,11 @@ class PropertyDialog(CrumbsDialog): | |||
41 | 41 | ||
42 | super(PropertyDialog, self).__init__(title, parent, flags, buttons) | 42 | super(PropertyDialog, self).__init__(title, parent, flags, buttons) |
43 | 43 | ||
44 | self.properties = information | 44 | self.properties = information |
45 | 45 | ||
46 | if len(self.properties) == 10: | 46 | if len(self.properties) == 10: |
47 | self.create_recipe_visual_elements() | 47 | self.create_recipe_visual_elements() |
48 | elif len(self.properties) == 4: | 48 | elif len(self.properties) == 5: |
49 | self.create_package_visual_elements() | 49 | self.create_package_visual_elements() |
50 | else: | 50 | else: |
51 | self.create_information_visual_elements() | 51 | self.create_information_visual_elements() |
@@ -56,6 +56,8 @@ class PropertyDialog(CrumbsDialog): | |||
56 | HOB_ICON_BASE_DIR = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))), ("icons/")) | 56 | HOB_ICON_BASE_DIR = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))), ("icons/")) |
57 | ICON_PACKAGES_DISPLAY_FILE = os.path.join(HOB_ICON_BASE_DIR, ('info/info_display.png')) | 57 | ICON_PACKAGES_DISPLAY_FILE = os.path.join(HOB_ICON_BASE_DIR, ('info/info_display.png')) |
58 | 58 | ||
59 | self.set_resizable(False) | ||
60 | |||
59 | self.table = gtk.Table(1,1,False) | 61 | self.table = gtk.Table(1,1,False) |
60 | self.table.set_row_spacings(0) | 62 | self.table.set_row_spacings(0) |
61 | self.table.set_col_spacings(0) | 63 | self.table.set_col_spacings(0) |
@@ -86,6 +88,19 @@ class PropertyDialog(CrumbsDialog): | |||
86 | 88 | ||
87 | self.vbox.add(self.table) | 89 | self.vbox.add(self.table) |
88 | 90 | ||
91 | def treeViewTooltip( self, widget, e, tooltips, cell, emptyText="" ): | ||
92 | try: | ||
93 | (path,col,x,y) = widget.get_path_at_pos( int(e.x), int(e.y) ) | ||
94 | it = widget.get_model().get_iter(path) | ||
95 | value = widget.get_model().get_value(it,cell) | ||
96 | if value in self.tooltip_items: | ||
97 | tooltips.set_tip(widget, self.tooltip_items[value]) | ||
98 | tooltips.enable() | ||
99 | else: | ||
100 | tooltips.set_tip(widget, emptyText) | ||
101 | except: | ||
102 | tooltips.set_tip(widget, emptyText) | ||
103 | |||
89 | 104 | ||
90 | def create_package_visual_elements(self): | 105 | def create_package_visual_elements(self): |
91 | 106 | ||
@@ -93,7 +108,18 @@ class PropertyDialog(CrumbsDialog): | |||
93 | binb = self.properties['binb'] | 108 | binb = self.properties['binb'] |
94 | size = self.properties['size'] | 109 | size = self.properties['size'] |
95 | recipe = self.properties['recipe'] | 110 | recipe = self.properties['recipe'] |
111 | file_list = self.properties['files_list'] | ||
112 | |||
113 | file_list = file_list.strip("{}'") | ||
114 | files_temp = '' | ||
115 | paths_temp = '' | ||
116 | files_binb = [] | ||
117 | paths_binb = [] | ||
96 | 118 | ||
119 | self.tooltip_items = {} | ||
120 | |||
121 | self.set_resizable(False) | ||
122 | |||
97 | #cleaning out the recipe variable | 123 | #cleaning out the recipe variable |
98 | recipe = recipe.split("+")[0] | 124 | recipe = recipe.split("+")[0] |
99 | 125 | ||
@@ -151,9 +177,71 @@ class PropertyDialog(CrumbsDialog): | |||
151 | self.vbox.add(self.label_short) | 177 | self.vbox.add(self.label_short) |
152 | self.vbox.add(self.label_info) | 178 | self.vbox.add(self.label_info) |
153 | 179 | ||
180 | #################################### FILES BROUGHT BY PACKAGES ################################### | ||
181 | |||
182 | if file_list != '': | ||
183 | |||
184 | self.textWindow = gtk.ScrolledWindow() | ||
185 | self.textWindow.set_shadow_type(gtk.SHADOW_IN) | ||
186 | self.textWindow.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) | ||
187 | self.textWindow.set_size_request(100, 170) | ||
188 | |||
189 | sstatemirrors_store = gtk.ListStore(str) | ||
190 | |||
191 | self.sstatemirrors_tv = gtk.TreeView() | ||
192 | self.sstatemirrors_tv.set_rules_hint(True) | ||
193 | self.sstatemirrors_tv.set_headers_visible(True) | ||
194 | self.textWindow.add(self.sstatemirrors_tv) | ||
195 | |||
196 | self.cell1 = gtk.CellRendererText() | ||
197 | col1 = gtk.TreeViewColumn('Package files', self.cell1) | ||
198 | col1.set_cell_data_func(self.cell1, self.regex_field) | ||
199 | self.sstatemirrors_tv.append_column(col1) | ||
200 | |||
201 | for items in file_list.split(']]'): | ||
202 | if len(items) > 1: | ||
203 | paths_temp = items.split(":")[0] | ||
204 | paths_binb.append(paths_temp.strip(" ,'")) | ||
205 | files_temp = items.split(":")[1] | ||
206 | files_binb.append(files_temp.strip(" ['")) | ||
207 | |||
208 | unsorted_list = [] | ||
209 | |||
210 | for items in range(len(paths_binb)): | ||
211 | if len(files_binb[items]) > 1: | ||
212 | for aduse in (files_binb[items].split(",")): | ||
213 | unsorted_list.append(paths_binb[items].split(name)[len(paths_binb[items].split(name))-1] + '/' + aduse.strip(" '")) | ||
214 | |||
215 | |||
216 | unsorted_list.sort() | ||
217 | for items in unsorted_list: | ||
218 | temp = items | ||
219 | while len(items) > 35: | ||
220 | items = items[:len(items)/2] + "" + items[len(items)/2+1:] | ||
221 | if len(items) == 35: | ||
222 | items = items[:len(items)/2] + "..." + items[len(items)/2+3:] | ||
223 | self.tooltip_items[items] = temp | ||
224 | |||
225 | sstatemirrors_store.append([str(items)]) | ||
226 | |||
227 | |||
228 | self.sstatemirrors_tv.set_model(sstatemirrors_store) | ||
229 | |||
230 | tips = gtk.Tooltips() | ||
231 | tips.set_tip(self.sstatemirrors_tv, "") | ||
232 | self.sstatemirrors_tv.connect("motion-notify-event", self.treeViewTooltip, tips, 0) | ||
233 | self.sstatemirrors_tv.set_events(gtk.gdk.POINTER_MOTION_MASK) | ||
234 | |||
235 | self.vbox.add(self.textWindow) | ||
236 | |||
154 | self.vbox.show_all() | 237 | self.vbox.show_all() |
155 | 238 | ||
156 | 239 | ||
240 | def regex_field(self, column, cell, model, iter): | ||
241 | cell.set_property('text', model.get_value(iter, 0)) | ||
242 | return | ||
243 | |||
244 | |||
157 | def create_recipe_visual_elements(self): | 245 | def create_recipe_visual_elements(self): |
158 | 246 | ||
159 | summary = self.properties['summary'] | 247 | summary = self.properties['summary'] |
@@ -166,6 +254,8 @@ class PropertyDialog(CrumbsDialog): | |||
166 | homepage = self.properties['homepage'] | 254 | homepage = self.properties['homepage'] |
167 | bugtracker = self.properties['bugtracker'] | 255 | bugtracker = self.properties['bugtracker'] |
168 | description = self.properties['description'] | 256 | description = self.properties['description'] |
257 | |||
258 | self.set_resizable(False) | ||
169 | 259 | ||
170 | #cleaning out the version variable and also the summary | 260 | #cleaning out the version variable and also the summary |
171 | version = version.split(":")[1] | 261 | version = version.split(":")[1] |
diff --git a/bitbake/lib/bb/ui/crumbs/hoblistmodel.py b/bitbake/lib/bb/ui/crumbs/hoblistmodel.py index 9b8db23c79..0bd9734f48 100644 --- a/bitbake/lib/bb/ui/crumbs/hoblistmodel.py +++ b/bitbake/lib/bb/ui/crumbs/hoblistmodel.py | |||
@@ -35,7 +35,7 @@ class PackageListModel(gtk.ListStore): | |||
35 | provide filtered views of the data. | 35 | provide filtered views of the data. |
36 | """ | 36 | """ |
37 | 37 | ||
38 | (COL_NAME, COL_VER, COL_REV, COL_RNM, COL_SEC, COL_SUM, COL_RDEP, COL_RPROV, COL_SIZE, COL_RCP, COL_BINB, COL_INC, COL_FADE_INC, COL_FONT) = range(14) | 38 | (COL_NAME, COL_VER, COL_REV, COL_RNM, COL_SEC, COL_SUM, COL_RDEP, COL_RPROV, COL_SIZE, COL_RCP, COL_BINB, COL_INC, COL_FADE_INC, COL_FONT, COL_FLIST) = range(15) |
39 | 39 | ||
40 | __gsignals__ = { | 40 | __gsignals__ = { |
41 | "package-selection-changed" : (gobject.SIGNAL_RUN_LAST, | 41 | "package-selection-changed" : (gobject.SIGNAL_RUN_LAST, |
@@ -61,6 +61,7 @@ class PackageListModel(gtk.ListStore): | |||
61 | gobject.TYPE_STRING, | 61 | gobject.TYPE_STRING, |
62 | gobject.TYPE_BOOLEAN, | 62 | gobject.TYPE_BOOLEAN, |
63 | gobject.TYPE_BOOLEAN, | 63 | gobject.TYPE_BOOLEAN, |
64 | gobject.TYPE_STRING, | ||
64 | gobject.TYPE_STRING) | 65 | gobject.TYPE_STRING) |
65 | 66 | ||
66 | """ | 67 | """ |
@@ -90,7 +91,7 @@ class PackageListModel(gtk.ListStore): | |||
90 | for key in filter.keys(): | 91 | for key in filter.keys(): |
91 | if key == self.COL_NAME: | 92 | if key == self.COL_NAME: |
92 | if filter[key] != 'Search packages by name': | 93 | if filter[key] != 'Search packages by name': |
93 | if filter[key] not in name: | 94 | if name and filter[key] not in name: |
94 | return False | 95 | return False |
95 | else: | 96 | else: |
96 | if model.get_value(it, key) not in filter[key]: | 97 | if model.get_value(it, key) not in filter[key]: |
@@ -199,6 +200,7 @@ class PackageListModel(gtk.ListStore): | |||
199 | rdep = getpkgvalue(pkginfo, 'RDEPENDS', pkg, "") | 200 | rdep = getpkgvalue(pkginfo, 'RDEPENDS', pkg, "") |
200 | rrec = getpkgvalue(pkginfo, 'RRECOMMENDS', pkg, "") | 201 | rrec = getpkgvalue(pkginfo, 'RRECOMMENDS', pkg, "") |
201 | rprov = getpkgvalue(pkginfo, 'RPROVIDES', pkg, "") | 202 | rprov = getpkgvalue(pkginfo, 'RPROVIDES', pkg, "") |
203 | files_list = getpkgvalue(pkginfo, 'FILES_INFO', pkg, "") | ||
202 | for i in rprov.split(): | 204 | for i in rprov.split(): |
203 | self.rprov_pkg[i] = pkg | 205 | self.rprov_pkg[i] = pkg |
204 | 206 | ||
@@ -218,7 +220,7 @@ class PackageListModel(gtk.ListStore): | |||
218 | self.COL_RDEP, rdep + ' ' + rrec, | 220 | self.COL_RDEP, rdep + ' ' + rrec, |
219 | self.COL_RPROV, rprov, self.COL_SIZE, size, | 221 | self.COL_RPROV, rprov, self.COL_SIZE, size, |
220 | self.COL_RCP, recipe, self.COL_BINB, "", | 222 | self.COL_RCP, recipe, self.COL_BINB, "", |
221 | self.COL_INC, False, self.COL_FONT, '10') | 223 | self.COL_INC, False, self.COL_FONT, '10', self.COL_FLIST, files_list) |
222 | 224 | ||
223 | self.pn_path = {} | 225 | self.pn_path = {} |
224 | it = self.get_iter_first() | 226 | it = self.get_iter_first() |
diff --git a/bitbake/lib/bb/ui/crumbs/hobwidget.py b/bitbake/lib/bb/ui/crumbs/hobwidget.py index 17d9cee138..1d1ae1a349 100644 --- a/bitbake/lib/bb/ui/crumbs/hobwidget.py +++ b/bitbake/lib/bb/ui/crumbs/hobwidget.py | |||
@@ -165,6 +165,7 @@ class HobViewTable (gtk.VBox): | |||
165 | no_result_tab.attach(label, 1, 14, 1, 4) | 165 | no_result_tab.attach(label, 1, 14, 1, 4) |
166 | 166 | ||
167 | clear_button = HobButton("Clear search") | 167 | clear_button = HobButton("Clear search") |
168 | clear_button.set_tooltip_text("Clear search query") | ||
168 | clear_button.connect('clicked', self.set_search_entry_clear_cb, entry) | 169 | clear_button.connect('clicked', self.set_search_entry_clear_cb, entry) |
169 | no_result_tab.attach(clear_button, 16, 19, 1, 4) | 170 | no_result_tab.attach(clear_button, 16, 19, 1, 4) |
170 | 171 | ||
@@ -480,6 +481,8 @@ class HobNotebook(gtk.Notebook): | |||
480 | self.pages = [] | 481 | self.pages = [] |
481 | 482 | ||
482 | self.search = None | 483 | self.search = None |
484 | self.search_focus = False | ||
485 | self.page_changed = False | ||
483 | 486 | ||
484 | self.connect("switch-page", self.page_changed_cb) | 487 | self.connect("switch-page", self.page_changed_cb) |
485 | 488 | ||
@@ -493,6 +496,7 @@ class HobNotebook(gtk.Notebook): | |||
493 | lbl.set_active(False) | 496 | lbl.set_active(False) |
494 | 497 | ||
495 | if self.search: | 498 | if self.search: |
499 | self.page_changed = True | ||
496 | self.reset_entry(self.search, page_num) | 500 | self.reset_entry(self.search, page_num) |
497 | 501 | ||
498 | def append_page(self, child, tab_label, tab_tooltip=None): | 502 | def append_page(self, child, tab_label, tab_tooltip=None): |
@@ -536,15 +540,20 @@ class HobNotebook(gtk.Notebook): | |||
536 | child.set_count(0) | 540 | child.set_count(0) |
537 | 541 | ||
538 | def set_search_entry_editable_cb(self, search, event): | 542 | def set_search_entry_editable_cb(self, search, event): |
543 | self.search_focus = True | ||
539 | search.set_editable(True) | 544 | search.set_editable(True) |
540 | search.set_text("") | 545 | text = search.get_text() |
546 | if text in self.search_names: | ||
547 | search.set_text("") | ||
541 | style = self.search.get_style() | 548 | style = self.search.get_style() |
542 | style.text[gtk.STATE_NORMAL] = self.get_colormap().alloc_color(HobColors.BLACK, False, False) | 549 | style.text[gtk.STATE_NORMAL] = self.get_colormap().alloc_color(HobColors.BLACK, False, False) |
543 | search.set_style(style) | 550 | search.set_style(style) |
544 | 551 | ||
545 | def set_search_entry_reset_cb(self, search, event): | 552 | def set_search_entry_reset_cb(self, search, event): |
546 | page_num = self.get_current_page() | 553 | page_num = self.get_current_page() |
547 | self.reset_entry(search, page_num) | 554 | text = search.get_text() |
555 | if not text: | ||
556 | self.reset_entry(search, page_num) | ||
548 | 557 | ||
549 | def reset_entry(self, entry, page_num): | 558 | def reset_entry(self, entry, page_num): |
550 | style = entry.get_style() | 559 | style = entry.get_style() |
@@ -559,6 +568,7 @@ class HobNotebook(gtk.Notebook): | |||
559 | if search.get_editable() == True: | 568 | if search.get_editable() == True: |
560 | search.set_text("") | 569 | search.set_text("") |
561 | search.set_icon_sensitive(gtk.ENTRY_ICON_SECONDARY, False) | 570 | search.set_icon_sensitive(gtk.ENTRY_ICON_SECONDARY, False) |
571 | search.grab_focus() | ||
562 | 572 | ||
563 | def set_page(self, title): | 573 | def set_page(self, title): |
564 | for child in self.pages: | 574 | for child in self.pages: |
diff --git a/bitbake/lib/bb/ui/crumbs/packageselectionpage.py b/bitbake/lib/bb/ui/crumbs/packageselectionpage.py index ce2deabb89..fb9afcb3cf 100755 --- a/bitbake/lib/bb/ui/crumbs/packageselectionpage.py +++ b/bitbake/lib/bb/ui/crumbs/packageselectionpage.py | |||
@@ -180,9 +180,19 @@ class PackageSelectionPage (HobPage): | |||
180 | self.button_box.pack_end(self.back_button, expand=False, fill=False) | 180 | self.button_box.pack_end(self.back_button, expand=False, fill=False) |
181 | 181 | ||
182 | def search_entry_changed(self, entry): | 182 | def search_entry_changed(self, entry): |
183 | text = entry.get_text() | ||
184 | if self.ins.search_focus: | ||
185 | self.ins.search_focus = False | ||
186 | elif self.ins.page_changed: | ||
187 | self.ins.page_change = False | ||
188 | self.filter_search(entry) | ||
189 | elif text not in self.ins.search_names: | ||
190 | self.filter_search(entry) | ||
191 | |||
192 | def filter_search(self, entry): | ||
193 | text = entry.get_text() | ||
183 | current_tab = self.ins.get_current_page() | 194 | current_tab = self.ins.get_current_page() |
184 | filter = self.pages[current_tab]['filter'] | 195 | filter = self.pages[current_tab]['filter'] |
185 | text = entry.get_text() | ||
186 | filter[PackageListModel.COL_NAME] = text | 196 | filter[PackageListModel.COL_NAME] = text |
187 | self.tables[current_tab].set_model(self.package_model.tree_model(filter, search_data=text)) | 197 | self.tables[current_tab].set_model(self.package_model.tree_model(filter, search_data=text)) |
188 | if self.package_model.filtered_nb == 0: | 198 | if self.package_model.filtered_nb == 0: |
@@ -202,12 +212,13 @@ class PackageSelectionPage (HobPage): | |||
202 | def button_click_cb(self, widget, event): | 212 | def button_click_cb(self, widget, event): |
203 | path, col = widget.table_tree.get_cursor() | 213 | path, col = widget.table_tree.get_cursor() |
204 | tree_model = widget.table_tree.get_model() | 214 | tree_model = widget.table_tree.get_model() |
205 | if path: # else activation is likely a removal | 215 | if path and col.get_title() != 'Included': # else activation is likely a removal |
206 | properties = {'binb': '' , 'name': '', 'size':'', 'recipe':''} | 216 | properties = {'binb': '' , 'name': '', 'size':'', 'recipe':'', 'files_list':''} |
207 | properties['binb'] = tree_model.get_value(tree_model.get_iter(path), PackageListModel.COL_BINB) | 217 | properties['binb'] = tree_model.get_value(tree_model.get_iter(path), PackageListModel.COL_BINB) |
208 | properties['name'] = tree_model.get_value(tree_model.get_iter(path), PackageListModel.COL_NAME) | 218 | properties['name'] = tree_model.get_value(tree_model.get_iter(path), PackageListModel.COL_NAME) |
209 | properties['size'] = tree_model.get_value(tree_model.get_iter(path), PackageListModel.COL_SIZE) | 219 | properties['size'] = tree_model.get_value(tree_model.get_iter(path), PackageListModel.COL_SIZE) |
210 | properties['recipe'] = tree_model.get_value(tree_model.get_iter(path), PackageListModel.COL_RCP) | 220 | properties['recipe'] = tree_model.get_value(tree_model.get_iter(path), PackageListModel.COL_RCP) |
221 | properties['files_list'] = tree_model.get_value(tree_model.get_iter(path), PackageListModel.COL_FLIST) | ||
211 | 222 | ||
212 | self.builder.show_recipe_property_dialog(properties) | 223 | self.builder.show_recipe_property_dialog(properties) |
213 | 224 | ||
diff --git a/bitbake/lib/bb/ui/crumbs/recipeselectionpage.py b/bitbake/lib/bb/ui/crumbs/recipeselectionpage.py index aa0cd60c3f..d1e5b69401 100755 --- a/bitbake/lib/bb/ui/crumbs/recipeselectionpage.py +++ b/bitbake/lib/bb/ui/crumbs/recipeselectionpage.py | |||
@@ -195,9 +195,19 @@ class RecipeSelectionPage (HobPage): | |||
195 | button_box.pack_end(self.back_button, expand=False, fill=False) | 195 | button_box.pack_end(self.back_button, expand=False, fill=False) |
196 | 196 | ||
197 | def search_entry_changed(self, entry): | 197 | def search_entry_changed(self, entry): |
198 | text = entry.get_text() | ||
199 | if self.ins.search_focus: | ||
200 | self.ins.search_focus = False | ||
201 | elif self.ins.page_changed: | ||
202 | self.ins.page_change = False | ||
203 | self.filter_search(entry) | ||
204 | elif text not in self.ins.search_names: | ||
205 | self.filter_search(entry) | ||
206 | |||
207 | def filter_search(self, entry): | ||
208 | text = entry.get_text() | ||
198 | current_tab = self.ins.get_current_page() | 209 | current_tab = self.ins.get_current_page() |
199 | filter = self.pages[current_tab]['filter'] | 210 | filter = self.pages[current_tab]['filter'] |
200 | text = entry.get_text() | ||
201 | filter[RecipeListModel.COL_NAME] = text | 211 | filter[RecipeListModel.COL_NAME] = text |
202 | self.tables[current_tab].set_model(self.recipe_model.tree_model(filter, search_data=text)) | 212 | self.tables[current_tab].set_model(self.recipe_model.tree_model(filter, search_data=text)) |
203 | if self.recipe_model.filtered_nb == 0: | 213 | if self.recipe_model.filtered_nb == 0: |
@@ -217,7 +227,7 @@ class RecipeSelectionPage (HobPage): | |||
217 | def button_click_cb(self, widget, event): | 227 | def button_click_cb(self, widget, event): |
218 | path, col = widget.table_tree.get_cursor() | 228 | path, col = widget.table_tree.get_cursor() |
219 | tree_model = widget.table_tree.get_model() | 229 | tree_model = widget.table_tree.get_model() |
220 | if path: # else activation is likely a removal | 230 | if path and col.get_title() != 'Included': # else activation is likely a removal |
221 | properties = {'summary': '', 'name': '', 'version': '', 'revision': '', 'binb': '', 'group': '', 'license': '', 'homepage': '', 'bugtracker': '', 'description': ''} | 231 | properties = {'summary': '', 'name': '', 'version': '', 'revision': '', 'binb': '', 'group': '', 'license': '', 'homepage': '', 'bugtracker': '', 'description': ''} |
222 | properties['summary'] = tree_model.get_value(tree_model.get_iter(path), RecipeListModel.COL_SUMMARY) | 232 | properties['summary'] = tree_model.get_value(tree_model.get_iter(path), RecipeListModel.COL_SUMMARY) |
223 | properties['name'] = tree_model.get_value(tree_model.get_iter(path), RecipeListModel.COL_NAME) | 233 | properties['name'] = tree_model.get_value(tree_model.get_iter(path), RecipeListModel.COL_NAME) |
diff --git a/meta-yocto-bsp/conf/machine/atom-pc.conf b/meta-yocto-bsp/conf/machine/atom-pc.conf index b1c2ae194e..e8f377fd5d 100644 --- a/meta-yocto-bsp/conf/machine/atom-pc.conf +++ b/meta-yocto-bsp/conf/machine/atom-pc.conf | |||
@@ -10,7 +10,7 @@ MACHINE_FEATURES = "screen keyboard pci usbhost ext2 ext3 x86 wifi acpi alsa" | |||
10 | KERNEL_IMAGETYPE = "bzImage" | 10 | KERNEL_IMAGETYPE = "bzImage" |
11 | 11 | ||
12 | PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto" | 12 | PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto" |
13 | PREFERRED_VERSION_linux-yocto ?= "3.4%" | 13 | PREFERRED_VERSION_linux-yocto ?= "3.8%" |
14 | PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg" | 14 | PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg" |
15 | XSERVER ?= "xserver-xorg \ | 15 | XSERVER ?= "xserver-xorg \ |
16 | xserver-xorg-extension-glx \ | 16 | xserver-xorg-extension-glx \ |
diff --git a/meta-yocto-bsp/conf/machine/routerstationpro.conf b/meta-yocto-bsp/conf/machine/routerstationpro.conf index e5e4d1a338..a727e2a0a2 100644 --- a/meta-yocto-bsp/conf/machine/routerstationpro.conf +++ b/meta-yocto-bsp/conf/machine/routerstationpro.conf | |||
@@ -6,8 +6,8 @@ require conf/machine/include/tune-mips32.inc | |||
6 | 6 | ||
7 | MACHINE_FEATURES = "screen keyboard pci usbhost ext2 ext3 serial" | 7 | MACHINE_FEATURES = "screen keyboard pci usbhost ext2 ext3 serial" |
8 | 8 | ||
9 | KERNEL_IMAGETYPE = "vmlinux" | 9 | KERNEL_ALT_IMAGETYPE = "vmlinux" |
10 | KERNEL_ALT_IMAGETYPE = "vmlinux.bin" | 10 | KERNEL_IMAGETYPE = "vmlinux.bin" |
11 | 11 | ||
12 | PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto" | 12 | PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto" |
13 | PREFERRED_VERSION_linux-yocto ?= "3.4%" | 13 | PREFERRED_VERSION_linux-yocto ?= "3.4%" |
diff --git a/meta-yocto/conf/conf-notes.txt b/meta-yocto/conf/conf-notes.txt new file mode 100644 index 0000000000..503cffa44e --- /dev/null +++ b/meta-yocto/conf/conf-notes.txt | |||
@@ -0,0 +1,9 @@ | |||
1 | Common targets are: | ||
2 | core-image-minimal | ||
3 | core-image-sato | ||
4 | meta-toolchain | ||
5 | meta-toolchain-sdk | ||
6 | adt-installer | ||
7 | meta-ide-support | ||
8 | |||
9 | You can also run generated qemu images with a command like 'runqemu qemux86' | ||
diff --git a/meta-yocto/conf/distro/include/package_regex.inc b/meta-yocto/conf/distro/include/package_regex.inc index 882c13cf53..aff4bdd4e0 100644 --- a/meta-yocto/conf/distro/include/package_regex.inc +++ b/meta-yocto/conf/distro/include/package_regex.inc | |||
@@ -48,6 +48,7 @@ REGEX_URI_pn-nativesdk-db = "http://www.oracle.com/technetwork/products/berkeley | |||
48 | REGEX_pn-nativesdk-db = "[hH][rR][eE][fF]=\"http://download.oracle.com/otn/berkeley-db/db-(?P<pver>((\d+[\.\-_]*)+))\.tar\.gz\"" | 48 | REGEX_pn-nativesdk-db = "[hH][rR][eE][fF]=\"http://download.oracle.com/otn/berkeley-db/db-(?P<pver>((\d+[\.\-_]*)+))\.tar\.gz\"" |
49 | REGEX_URI_pn-e2fsprogs = "http://sourceforge.net/projects/e2fsprogs/files/e2fsprogs/" | 49 | REGEX_URI_pn-e2fsprogs = "http://sourceforge.net/projects/e2fsprogs/files/e2fsprogs/" |
50 | REGEX_pn-e2fsprogs = "[hH][rR][eE][fF]=\"/projects/e2fsprogs/files/e2fsprogs/v(?P<pver>((\d+[\.\-_]*)+))/\"" | 50 | REGEX_pn-e2fsprogs = "[hH][rR][eE][fF]=\"/projects/e2fsprogs/files/e2fsprogs/v(?P<pver>((\d+[\.\-_]*)+))/\"" |
51 | REGEX_pn-elfutils = "[hH][rR][eE][fF]=\"(elfutils\-)?(?P<pver>((\d+[\.\-_]*)+))(/|\.tar\.bz2)\"" | ||
51 | REGEX_URI_pn-expat = "http://sourceforge.net/projects/expat/files/expat/" | 52 | REGEX_URI_pn-expat = "http://sourceforge.net/projects/expat/files/expat/" |
52 | REGEX_pn-expat-native = "[hH][rR][eE][fF]=\"/projects/expat/files/expat/(?P<pver>((\d+[\.\-_]*)+))/\"" | 53 | REGEX_pn-expat-native = "[hH][rR][eE][fF]=\"/projects/expat/files/expat/(?P<pver>((\d+[\.\-_]*)+))/\"" |
53 | REGEX_URI_pn-expat-native = "http://sourceforge.net/projects/expat/files/expat/" | 54 | REGEX_URI_pn-expat-native = "http://sourceforge.net/projects/expat/files/expat/" |
diff --git a/meta-yocto/conf/distro/poky.conf b/meta-yocto/conf/distro/poky.conf index f146f5f439..538f3434b5 100644 --- a/meta-yocto/conf/distro/poky.conf +++ b/meta-yocto/conf/distro/poky.conf | |||
@@ -1,6 +1,7 @@ | |||
1 | DISTRO = "poky" | 1 | DISTRO = "poky" |
2 | DISTRO_NAME = "Poky 8.0 (Yocto Project 1.3 Reference Distro)" | 2 | DISTRO_NAME = "Poky 8.0 (Yocto Project 1.3 Reference Distro)" |
3 | DISTRO_VERSION = "1.3+snapshot-${DATE}" | 3 | DISTRO_VERSION = "1.3+snapshot-${DATE}" |
4 | DISTRO_CODENAME = "dylan" | ||
4 | SDK_VENDOR = "-pokysdk" | 5 | SDK_VENDOR = "-pokysdk" |
5 | SDK_VERSION := "${@'${DISTRO_VERSION}'.replace('snapshot-${DATE}','snapshot')}" | 6 | SDK_VERSION := "${@'${DISTRO_VERSION}'.replace('snapshot-${DATE}','snapshot')}" |
6 | 7 | ||
@@ -11,7 +12,7 @@ TARGET_VENDOR = "-poky" | |||
11 | LOCALCONF_VERSION = "1" | 12 | LOCALCONF_VERSION = "1" |
12 | LAYER_CONF_VERSION ?= "6" | 13 | LAYER_CONF_VERSION ?= "6" |
13 | 14 | ||
14 | DISTRO_FEATURES_append = " largefile opengl multiarch" | 15 | DISTRO_FEATURES_append = " largefile opengl multiarch wayland" |
15 | 16 | ||
16 | PREFERRED_VERSION_linux-yocto ?= "3.4%" | 17 | PREFERRED_VERSION_linux-yocto ?= "3.4%" |
17 | PREFERRED_VERSION_linux-yocto_qemux86 ?= "3.8%" | 18 | PREFERRED_VERSION_linux-yocto_qemux86 ?= "3.8%" |
@@ -44,7 +45,7 @@ TCLIBCAPPEND = "" | |||
44 | QEMU_TARGETS ?= "arm i386 mips mipsel ppc x86_64" | 45 | QEMU_TARGETS ?= "arm i386 mips mipsel ppc x86_64" |
45 | # Other QEMU_TARGETS "mips64 mips64el sh4" | 46 | # Other QEMU_TARGETS "mips64 mips64el sh4" |
46 | 47 | ||
47 | PREMIRRORS ?= "\ | 48 | PREMIRRORS ??= "\ |
48 | bzr://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \n \ | 49 | bzr://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \n \ |
49 | cvs://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \n \ | 50 | cvs://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \n \ |
50 | git://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \n \ | 51 | git://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \n \ |
diff --git a/meta-yocto/conf/local.conf.sample.extended b/meta-yocto/conf/local.conf.sample.extended index 4d9ce562dc..d0dff80385 100644 --- a/meta-yocto/conf/local.conf.sample.extended +++ b/meta-yocto/conf/local.conf.sample.extended | |||
@@ -211,7 +211,3 @@ | |||
211 | # Put the following two lines in the conf file with intact. | 211 | # Put the following two lines in the conf file with intact. |
212 | #ARCHIVER_CLASS = "${@'archive-${ARCHIVER_MODE}-source' if ARCHIVER_MODE != 'none' else ''}" | 212 | #ARCHIVER_CLASS = "${@'archive-${ARCHIVER_MODE}-source' if ARCHIVER_MODE != 'none' else ''}" |
213 | #INHERIT += "${ARCHIVER_CLASS}" | 213 | #INHERIT += "${ARCHIVER_CLASS}" |
214 | # | ||
215 | # set init manager: sysvinit or systemd | ||
216 | # sysvinit is the default choice | ||
217 | #DISTRO_FEATURES_INITMAN ?= "sysvinit" | ||
diff --git a/meta/classes/archive-configured-source.bbclass b/meta/classes/archive-configured-source.bbclass index 0f2c9ee329..d346f69e29 100644 --- a/meta/classes/archive-configured-source.bbclass +++ b/meta/classes/archive-configured-source.bbclass | |||
@@ -24,24 +24,17 @@ python () { | |||
24 | return | 24 | return |
25 | 25 | ||
26 | d.appendVarFlag('do_dumpdata_create_diff_gz', 'depends', ' %s:do_package_write_' %pn + packaging) | 26 | d.appendVarFlag('do_dumpdata_create_diff_gz', 'depends', ' %s:do_package_write_' %pn + packaging) |
27 | build_deps = ' %s:do_dumpdata_create_diff_gz' %pn | ||
27 | 28 | ||
28 | if d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True) != 'srpm': | 29 | if d.getVar('SOURCE_ARCHIVE_LOG_WITH_SCRIPTS', True) == 'logs_with_scripts': |
29 | """ | 30 | d.appendVarFlag('do_archive_scripts_logs', 'depends', ' %s:do_package_write_' %pn + packaging) |
30 | If package type is not 'srpm' then add tasks to move archive packages of | 31 | build_deps += ' %s:do_archive_scripts_logs' %pn |
31 | configured sources and scripts/logs in ${DEPLOY_DIR}/sources. | 32 | |
32 | """ | 33 | if not not_tarball(d): |
33 | d.appendVarFlag('do_compile', 'depends', ' %s:do_archive_configured_sources' %pn) | 34 | d.appendVarFlag('do_compile', 'depends', ' %s:do_archive_configured_sources' %pn) |
34 | build_deps = ' %s:do_dumpdata_create_diff_gz' %pn | 35 | build_deps += ' %s:do_archive_configured_sources' %pn |
35 | if not not_tarball(d): | 36 | |
36 | build_deps += ' %s:do_archive_configured_sources' %pn | 37 | d.appendVarFlag('do_build', 'depends', build_deps) |
37 | if d.getVar('SOURCE_ARCHIVE_LOG_WITH_SCRIPTS', True) == 'logs_with_scripts': | ||
38 | build_deps += ' %s:do_archive_scripts_logs' %pn | ||
39 | d.appendVarFlag('do_archive_scripts_logs', 'depends', ' %s:do_package_write_' %pn + packaging) | ||
40 | d.appendVarFlag('do_build', 'depends', build_deps) | ||
41 | |||
42 | else: | ||
43 | d.prependVarFlag('do_configure', 'postfuncs', "do_archive_configured_sources") | ||
44 | d.prependVarFlag('do_package_write_rpm', 'prefuncs', "do_archive_scripts_logs") | ||
45 | } | 38 | } |
46 | 39 | ||
47 | ARCHIVE_SSTATE_OUTDIR = "${DEPLOY_DIR}/sources/" | 40 | ARCHIVE_SSTATE_OUTDIR = "${DEPLOY_DIR}/sources/" |
diff --git a/meta/classes/archive-original-source.bbclass b/meta/classes/archive-original-source.bbclass index 1e138ce2fa..7258293c93 100644 --- a/meta/classes/archive-original-source.bbclass +++ b/meta/classes/archive-original-source.bbclass | |||
@@ -24,24 +24,17 @@ python () { | |||
24 | return | 24 | return |
25 | 25 | ||
26 | d.appendVarFlag('do_dumpdata_create_diff_gz', 'depends', ' %s:do_package_write_' %pn + packaging) | 26 | d.appendVarFlag('do_dumpdata_create_diff_gz', 'depends', ' %s:do_package_write_' %pn + packaging) |
27 | build_deps = ' %s:do_dumpdata_create_diff_gz' %pn | ||
27 | 28 | ||
28 | if d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True) != 'srpm': | 29 | if d.getVar('SOURCE_ARCHIVE_LOG_WITH_SCRIPTS', True) == 'logs_with_scripts': |
29 | """ | 30 | d.appendVarFlag('do_archive_scripts_logs', 'depends', ' %s:do_package_write_' %pn + packaging) |
30 | If package type is not 'srpm' then add tasks to move archive packages of | 31 | build_deps += ' %s:do_archive_scripts_logs' %pn |
31 | original sources and scripts/logs in ${DEPLOY_DIR}/sources. | 32 | |
32 | """ | 33 | if not not_tarball(d): |
33 | d.appendVarFlag('do_patch', 'depends', ' %s:do_archive_original_sources_patches' %pn) | 34 | d.appendVarFlag('do_patch', 'depends', ' %s:do_archive_original_sources_patches' %pn) |
34 | build_deps = ' %s:do_dumpdata_create_diff_gz' %pn | 35 | build_deps += ' %s:do_archive_original_sources_patches' %pn |
35 | if not not_tarball(d): | 36 | |
36 | build_deps += ' %s:do_archive_original_sources_patches' %pn | 37 | d.appendVarFlag('do_build', 'depends', build_deps) |
37 | if d.getVar('SOURCE_ARCHIVE_LOG_WITH_SCRIPTS', True) == 'logs_with_scripts': | ||
38 | build_deps += ' %s:do_archive_scripts_logs' %pn | ||
39 | d.appendVarFlag('do_archive_scripts_logs', 'depends', ' %s:do_package_write_' %pn + packaging) | ||
40 | d.appendVarFlag('do_build', 'depends', build_deps) | ||
41 | |||
42 | else: | ||
43 | d.prependVarFlag('do_unpack', 'postfuncs', "do_archive_original_sources_patches") | ||
44 | d.prependVarFlag('do_package_write_rpm', 'prefuncs', "do_archive_scripts_logs") | ||
45 | } | 38 | } |
46 | 39 | ||
47 | ARCHIVE_SSTATE_OUTDIR = "${DEPLOY_DIR}/sources/" | 40 | ARCHIVE_SSTATE_OUTDIR = "${DEPLOY_DIR}/sources/" |
diff --git a/meta/classes/archive-patched-source.bbclass b/meta/classes/archive-patched-source.bbclass index ac6d2c39f1..9e5ec74f45 100644 --- a/meta/classes/archive-patched-source.bbclass +++ b/meta/classes/archive-patched-source.bbclass | |||
@@ -24,24 +24,17 @@ python () { | |||
24 | return | 24 | return |
25 | 25 | ||
26 | d.appendVarFlag('do_dumpdata_create_diff_gz', 'depends', ' %s:do_package_write_' %pn + packaging) | 26 | d.appendVarFlag('do_dumpdata_create_diff_gz', 'depends', ' %s:do_package_write_' %pn + packaging) |
27 | build_deps = ' %s:do_dumpdata_create_diff_gz' %pn | ||
27 | 28 | ||
28 | if d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True) != 'srpm': | 29 | if d.getVar('SOURCE_ARCHIVE_LOG_WITH_SCRIPTS', True) == 'logs_with_scripts': |
29 | """ | 30 | d.appendVarFlag('do_archive_scripts_logs', 'depends', ' %s:do_package_write_' %pn + packaging) |
30 | If package type is not 'srpm' then add tasks to move archive packages of | 31 | build_deps += ' %s:do_archive_scripts_logs' %pn |
31 | patched sources and scripts/logs in ${DEPLOY_DIR}/sources. | 32 | |
32 | """ | 33 | if not not_tarball(d): |
33 | d.appendVarFlag('do_configure', 'depends', ' %s:do_archive_patched_sources' %pn) | 34 | d.appendVarFlag('do_configure', 'depends', ' %s:do_archive_patched_sources' %pn) |
34 | build_deps = ' %s:do_dumpdata_create_diff_gz' %pn | 35 | build_deps += ' %s:do_archive_patched_sources' %pn |
35 | if not not_tarball(d): | 36 | |
36 | build_deps += ' %s:do_archive_patched_sources' %pn | 37 | d.appendVarFlag('do_build', 'depends', build_deps) |
37 | if d.getVar('SOURCE_ARCHIVE_LOG_WITH_SCRIPTS', True) == 'logs_with_scripts': | ||
38 | build_deps += ' %s:do_archive_scripts_logs' %pn | ||
39 | d.appendVarFlag('do_archive_scripts_logs', 'depends', ' %s:do_package_write_' %pn + packaging) | ||
40 | d.appendVarFlag('do_build', 'depends', build_deps) | ||
41 | |||
42 | else: | ||
43 | d.prependVarFlag('do_patch', 'postfuncs', "do_archive_patched_sources") | ||
44 | d.prependVarFlag('do_package_write_rpm', 'prefuncs', "do_archive_scripts_logs") | ||
45 | } | 38 | } |
46 | 39 | ||
47 | ARCHIVE_SSTATE_OUTDIR = "${DEPLOY_DIR}/sources/" | 40 | ARCHIVE_SSTATE_OUTDIR = "${DEPLOY_DIR}/sources/" |
diff --git a/meta/classes/archiver.bbclass b/meta/classes/archiver.bbclass index ed07b2edb8..6749d61678 100644 --- a/meta/classes/archiver.bbclass +++ b/meta/classes/archiver.bbclass | |||
@@ -440,10 +440,6 @@ def archive_scripts_logs(d): | |||
440 | tarlog = archive_logs(d, logdir, True) | 440 | tarlog = archive_logs(d, logdir, True) |
441 | 441 | ||
442 | if d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True) == 'srpm': | 442 | if d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True) == 'srpm': |
443 | if os.path.exists(work_dir+ '/' + tarlog): | ||
444 | os.remove(work_dir+ '/' + tarlog) | ||
445 | shutil.move(os.path.join(logdir, '..', tarlog), work_dir) | ||
446 | shutil.rmtree(os.path.join(work_dir,'script-logs')) | ||
447 | store_package(d, tarlog) | 443 | store_package(d, tarlog) |
448 | 444 | ||
449 | def dumpdata(d): | 445 | def dumpdata(d): |
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index 5fe9a84efe..abd6a526c3 100644 --- a/meta/classes/base.bbclass +++ b/meta/classes/base.bbclass | |||
@@ -162,7 +162,7 @@ def preferred_ml_updates(d): | |||
162 | providers.append(v) | 162 | providers.append(v) |
163 | 163 | ||
164 | for pkg, reason in blacklists.items(): | 164 | for pkg, reason in blacklists.items(): |
165 | if pkg.endswith(("-native", "-crosssdk")) or pkg.startswith("nativesdk-") or 'cross-canadian' in pkg: | 165 | if pkg.endswith(("-native", "-crosssdk")) or pkg.startswith(("nativesdk-", "virtual/nativesdk-")) or 'cross-canadian' in pkg: |
166 | continue | 166 | continue |
167 | for p in prefixes: | 167 | for p in prefixes: |
168 | newpkg = p + "-" + pkg | 168 | newpkg = p + "-" + pkg |
@@ -172,7 +172,7 @@ def preferred_ml_updates(d): | |||
172 | for v in versions: | 172 | for v in versions: |
173 | val = d.getVar(v, False) | 173 | val = d.getVar(v, False) |
174 | pkg = v.replace("PREFERRED_VERSION_", "") | 174 | pkg = v.replace("PREFERRED_VERSION_", "") |
175 | if pkg.endswith(("-native", "-crosssdk")) or pkg.startswith("nativesdk-"): | 175 | if pkg.endswith(("-native", "-crosssdk")) or pkg.startswith(("nativesdk-", "virtual/nativesdk-")): |
176 | continue | 176 | continue |
177 | if 'cross-canadian' in pkg: | 177 | if 'cross-canadian' in pkg: |
178 | for p in prefixes: | 178 | for p in prefixes: |
@@ -182,8 +182,12 @@ def preferred_ml_updates(d): | |||
182 | bb.data.update_data(localdata) | 182 | bb.data.update_data(localdata) |
183 | newname = localdata.expand(v) | 183 | newname = localdata.expand(v) |
184 | if newname != v: | 184 | if newname != v: |
185 | newval = localdata.getVar(v, True) | 185 | newval = localdata.expand(val) |
186 | d.setVar(newname, newval) | 186 | d.setVar(newname, newval) |
187 | # Avoid future variable key expansion | ||
188 | vexp = d.expand(v) | ||
189 | if v != vexp and d.getVar(v, False): | ||
190 | d.renameVar(v, vexp) | ||
187 | continue | 191 | continue |
188 | for p in prefixes: | 192 | for p in prefixes: |
189 | newname = "PREFERRED_VERSION_" + p + "-" + pkg | 193 | newname = "PREFERRED_VERSION_" + p + "-" + pkg |
@@ -193,7 +197,7 @@ def preferred_ml_updates(d): | |||
193 | for prov in providers: | 197 | for prov in providers: |
194 | val = d.getVar(prov, False) | 198 | val = d.getVar(prov, False) |
195 | pkg = prov.replace("PREFERRED_PROVIDER_", "") | 199 | pkg = prov.replace("PREFERRED_PROVIDER_", "") |
196 | if pkg.endswith(("-native", "-crosssdk")) or pkg.startswith("nativesdk-"): | 200 | if pkg.endswith(("-native", "-crosssdk")) or pkg.startswith(("nativesdk-", "virtual/nativesdk-")): |
197 | continue | 201 | continue |
198 | if 'cross-canadian' in pkg: | 202 | if 'cross-canadian' in pkg: |
199 | for p in prefixes: | 203 | for p in prefixes: |
@@ -205,6 +209,10 @@ def preferred_ml_updates(d): | |||
205 | if newname != prov: | 209 | if newname != prov: |
206 | newval = localdata.expand(val) | 210 | newval = localdata.expand(val) |
207 | d.setVar(newname, newval) | 211 | d.setVar(newname, newval) |
212 | # Avoid future variable key expansion | ||
213 | provexp = d.expand(prov) | ||
214 | if prov != provexp and d.getVar(prov, False): | ||
215 | d.renameVar(prov, provexp) | ||
208 | continue | 216 | continue |
209 | virt = "" | 217 | virt = "" |
210 | if pkg.startswith("virtual/"): | 218 | if pkg.startswith("virtual/"): |
@@ -220,19 +228,23 @@ def preferred_ml_updates(d): | |||
220 | localdata.setVar("OVERRIDES", localdata.getVar("OVERRIDES", False) + override) | 228 | localdata.setVar("OVERRIDES", localdata.getVar("OVERRIDES", False) + override) |
221 | bb.data.update_data(localdata) | 229 | bb.data.update_data(localdata) |
222 | newname = localdata.expand(prov) | 230 | newname = localdata.expand(prov) |
223 | if newname != prov: | 231 | if newname != prov and not d.getVar(newname, False): |
224 | d.setVar(newname, localdata.expand(val)) | 232 | d.setVar(newname, localdata.expand(val)) |
225 | 233 | ||
226 | # implement alternative multilib name | 234 | # implement alternative multilib name |
227 | newname = localdata.expand("PREFERRED_PROVIDER_" + virt + p + "-" + pkg) | 235 | newname = localdata.expand("PREFERRED_PROVIDER_" + virt + p + "-" + pkg) |
228 | if not d.getVar(newname, False): | 236 | if not d.getVar(newname, False): |
229 | d.setVar(newname, val) | 237 | d.setVar(newname, val) |
238 | # Avoid future variable key expansion | ||
239 | provexp = d.expand(prov) | ||
240 | if prov != provexp and d.getVar(prov, False): | ||
241 | d.renameVar(prov, provexp) | ||
230 | 242 | ||
231 | 243 | ||
232 | mp = (d.getVar("MULTI_PROVIDER_WHITELIST", True) or "").split() | 244 | mp = (d.getVar("MULTI_PROVIDER_WHITELIST", True) or "").split() |
233 | extramp = [] | 245 | extramp = [] |
234 | for p in mp: | 246 | for p in mp: |
235 | if p.endswith(("-native", "-crosssdk")) or p.startswith("nativesdk-") or 'cross-canadian' in p: | 247 | if p.endswith(("-native", "-crosssdk")) or p.startswith(("nativesdk-", "virtual/nativesdk-")) or 'cross-canadian' in p: |
236 | continue | 248 | continue |
237 | virt = "" | 249 | virt = "" |
238 | if p.startswith("virtual/"): | 250 | if p.startswith("virtual/"): |
@@ -489,6 +501,8 @@ python () { | |||
489 | d.setVarFlag('do_package', 'fakeroot', 1) | 501 | d.setVarFlag('do_package', 'fakeroot', 1) |
490 | d.setVarFlag('do_package', 'umask', 022) | 502 | d.setVarFlag('do_package', 'umask', 022) |
491 | d.setVarFlag('do_package_setscene', 'fakeroot', 1) | 503 | d.setVarFlag('do_package_setscene', 'fakeroot', 1) |
504 | d.setVarFlag('do_devshell', 'fakeroot', 1) | ||
505 | d.appendVarFlag('do_devshell', 'depends', ' virtual/fakeroot-native:do_populate_sysroot') | ||
492 | source_mirror_fetch = d.getVar('SOURCE_MIRROR_FETCH', 0) | 506 | source_mirror_fetch = d.getVar('SOURCE_MIRROR_FETCH', 0) |
493 | if not source_mirror_fetch: | 507 | if not source_mirror_fetch: |
494 | need_host = d.getVar('COMPATIBLE_HOST', True) | 508 | need_host = d.getVar('COMPATIBLE_HOST', True) |
diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass index 38923261d3..82d0bf8070 100644 --- a/meta/classes/buildhistory.bbclass +++ b/meta/classes/buildhistory.bbclass | |||
@@ -259,12 +259,6 @@ def write_recipehistory(rcpinfo, d): | |||
259 | f.write("DEPENDS = %s\n" % rcpinfo.depends) | 259 | f.write("DEPENDS = %s\n" % rcpinfo.depends) |
260 | f.write("PACKAGES = %s\n" % rcpinfo.packages) | 260 | f.write("PACKAGES = %s\n" % rcpinfo.packages) |
261 | 261 | ||
262 | if rcpinfo.srcrev: | ||
263 | srcrevfile = os.path.join(pkghistdir, "latest_srcrev") | ||
264 | with open(srcrevfile, "w") as f: | ||
265 | f.write(','.join([rcpinfo.bbfile, rcpinfo.src_uri, rcpinfo.srcrev, | ||
266 | rcpinfo.srcrev_autorev])) | ||
267 | |||
268 | 262 | ||
269 | def write_pkghistory(pkginfo, d): | 263 | def write_pkghistory(pkginfo, d): |
270 | bb.debug(2, "Writing package history for package %s" % pkginfo.name) | 264 | bb.debug(2, "Writing package history for package %s" % pkginfo.name) |
@@ -439,8 +433,9 @@ ROOTFS_POSTPROCESS_COMMAND =+ "buildhistory_get_image_installed ; " | |||
439 | 433 | ||
440 | IMAGE_POSTPROCESS_COMMAND += " buildhistory_get_imageinfo ; " | 434 | IMAGE_POSTPROCESS_COMMAND += " buildhistory_get_imageinfo ; " |
441 | 435 | ||
442 | POPULATE_SDK_POST_TARGET_COMMAND += "buildhistory_get_sdk_installed target ; " | 436 | # We want these to be the last run so that we get called after complementary package installation |
443 | POPULATE_SDK_POST_HOST_COMMAND += "buildhistory_get_sdk_installed host ; " | 437 | POPULATE_SDK_POST_TARGET_COMMAND_append = "buildhistory_get_sdk_installed target ; " |
438 | POPULATE_SDK_POST_HOST_COMMAND_append = "buildhistory_get_sdk_installed host ; " | ||
444 | 439 | ||
445 | SDK_POSTPROCESS_COMMAND += "buildhistory_get_sdkinfo ; " | 440 | SDK_POSTPROCESS_COMMAND += "buildhistory_get_sdkinfo ; " |
446 | 441 | ||
@@ -527,3 +522,55 @@ python buildhistory_eventhandler() { | |||
527 | } | 522 | } |
528 | 523 | ||
529 | addhandler buildhistory_eventhandler | 524 | addhandler buildhistory_eventhandler |
525 | |||
526 | |||
527 | # FIXME this ought to be moved into the fetcher | ||
528 | def _get_srcrev_values(d): | ||
529 | """ | ||
530 | Return the version strings for the current recipe | ||
531 | """ | ||
532 | |||
533 | scms = [] | ||
534 | fetcher = bb.fetch.Fetch(d.getVar('SRC_URI', True).split(), d) | ||
535 | urldata = fetcher.ud | ||
536 | for u in urldata: | ||
537 | if urldata[u].method.supports_srcrev(): | ||
538 | scms.append(u) | ||
539 | |||
540 | autoinc_templ = 'AUTOINC+' | ||
541 | dict = {} | ||
542 | for scm in scms: | ||
543 | ud = urldata[scm] | ||
544 | for name in ud.names: | ||
545 | rev = ud.method.sortable_revision(scm, ud, d, name) | ||
546 | if rev.startswith(autoinc_templ): | ||
547 | rev = rev[len(autoinc_templ):] | ||
548 | dict[name] = rev | ||
549 | return dict | ||
550 | |||
551 | python do_write_srcrev() { | ||
552 | pkghistdir = d.getVar('BUILDHISTORY_DIR_PACKAGE', True) | ||
553 | srcrevfile = os.path.join(pkghistdir, 'latest_srcrev') | ||
554 | |||
555 | srcrevs = _get_srcrev_values(d) | ||
556 | if srcrevs: | ||
557 | if not os.path.exists(pkghistdir): | ||
558 | os.makedirs(pkghistdir) | ||
559 | with open(srcrevfile, 'w') as f: | ||
560 | orig_srcrev = d.getVar('SRCREV', False) or 'INVALID' | ||
561 | if orig_srcrev != 'INVALID': | ||
562 | f.write('# SRCREV = "%s"\n' % orig_srcrev) | ||
563 | if len(srcrevs) > 1: | ||
564 | for name, srcrev in srcrevs.items(): | ||
565 | orig_srcrev = d.getVar('SRCREV_%s' % name, False) | ||
566 | if orig_srcrev: | ||
567 | f.write('# SRCREV_%s = "%s"\n' % (name, orig_srcrev)) | ||
568 | f.write('SRCREV_%s = "%s"\n' % (name, srcrev)) | ||
569 | else: | ||
570 | f.write('SRCREV = "%s"\n' % srcrevs.itervalues().next()) | ||
571 | else: | ||
572 | if os.path.exists(srcrevfile): | ||
573 | os.remove(srcrevfile) | ||
574 | } | ||
575 | |||
576 | addtask write_srcrev after do_fetch before do_build | ||
diff --git a/meta/classes/gtk-icon-cache.bbclass b/meta/classes/gtk-icon-cache.bbclass index a5d642c954..6d205a1473 100644 --- a/meta/classes/gtk-icon-cache.bbclass +++ b/meta/classes/gtk-icon-cache.bbclass | |||
@@ -1,6 +1,6 @@ | |||
1 | FILES_${PN} += "${datadir}/icons/hicolor" | 1 | FILES_${PN} += "${datadir}/icons/hicolor" |
2 | 2 | ||
3 | DEPENDS += "${@['hicolor-icon-theme', '']['${BPN}' == 'hicolor-icon-theme']} virtual/gtk-update-icon-cache-native" | 3 | DEPENDS += "${@['hicolor-icon-theme', '']['${BPN}' == 'hicolor-icon-theme']} gtk-update-icon-cache-native" |
4 | 4 | ||
5 | # | 5 | # |
6 | # On host, the postinstall MUST return 1 because we do not know if the intercept | 6 | # On host, the postinstall MUST return 1 because we do not know if the intercept |
diff --git a/meta/classes/image_types.bbclass b/meta/classes/image_types.bbclass index f7b8314784..98d31f5bfb 100644 --- a/meta/classes/image_types.bbclass +++ b/meta/classes/image_types.bbclass | |||
@@ -171,7 +171,7 @@ IMAGE_CMD_btrfs () { | |||
171 | } | 171 | } |
172 | 172 | ||
173 | IMAGE_CMD_squashfs = "mksquashfs ${IMAGE_ROOTFS} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.squashfs ${EXTRA_IMAGECMD} -noappend" | 173 | IMAGE_CMD_squashfs = "mksquashfs ${IMAGE_ROOTFS} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.squashfs ${EXTRA_IMAGECMD} -noappend" |
174 | IMAGE_CMD_squashfs-lzma = "mksquashfs ${IMAGE_ROOTFS} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.squashfs-lzma ${EXTRA_IMAGECMD} -noappend -comp lzma" | 174 | IMAGE_CMD_squashfs-xz = "mksquashfs ${IMAGE_ROOTFS} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.squashfs-xz ${EXTRA_IMAGECMD} -noappend -comp xz" |
175 | IMAGE_CMD_tar = "cd ${IMAGE_ROOTFS} && tar -cvf ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.tar ." | 175 | IMAGE_CMD_tar = "cd ${IMAGE_ROOTFS} && tar -cvf ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.tar ." |
176 | 176 | ||
177 | CPIO_TOUCH_INIT () { | 177 | CPIO_TOUCH_INIT () { |
@@ -230,13 +230,13 @@ IMAGE_DEPENDS_ext3 = "genext2fs-native e2fsprogs-native" | |||
230 | IMAGE_DEPENDS_ext4 = "genext2fs-native e2fsprogs-native" | 230 | IMAGE_DEPENDS_ext4 = "genext2fs-native e2fsprogs-native" |
231 | IMAGE_DEPENDS_btrfs = "btrfs-tools-native" | 231 | IMAGE_DEPENDS_btrfs = "btrfs-tools-native" |
232 | IMAGE_DEPENDS_squashfs = "squashfs-tools-native" | 232 | IMAGE_DEPENDS_squashfs = "squashfs-tools-native" |
233 | IMAGE_DEPENDS_squashfs-lzma = "squashfs-tools-native" | 233 | IMAGE_DEPENDS_squashfs-xz = "squashfs-tools-native" |
234 | IMAGE_DEPENDS_elf = "virtual/kernel mkelfimage-native" | 234 | IMAGE_DEPENDS_elf = "virtual/kernel mkelfimage-native" |
235 | IMAGE_DEPENDS_ubi = "mtd-utils-native" | 235 | IMAGE_DEPENDS_ubi = "mtd-utils-native" |
236 | IMAGE_DEPENDS_ubifs = "mtd-utils-native" | 236 | IMAGE_DEPENDS_ubifs = "mtd-utils-native" |
237 | 237 | ||
238 | # This variable is available to request which values are suitable for IMAGE_FSTYPES | 238 | # This variable is available to request which values are suitable for IMAGE_FSTYPES |
239 | IMAGE_TYPES = "jffs2 sum.jffs2 cramfs ext2 ext2.gz ext2.bz2 ext3 ext3.gz ext2.lzma btrfs live squashfs squashfs-lzma ubi tar tar.gz tar.bz2 tar.xz cpio cpio.gz cpio.xz cpio.lzma vmdk elf" | 239 | IMAGE_TYPES = "jffs2 sum.jffs2 cramfs ext2 ext2.gz ext2.bz2 ext3 ext3.gz ext2.lzma btrfs live squashfs squashfs-xz ubi tar tar.gz tar.bz2 tar.xz cpio cpio.gz cpio.xz cpio.lzma vmdk elf" |
240 | 240 | ||
241 | COMPRESSIONTYPES = "gz bz2 lzma xz" | 241 | COMPRESSIONTYPES = "gz bz2 lzma xz" |
242 | COMPRESS_CMD_lzma = "lzma -k -f -7 ${IMAGE_NAME}.rootfs.${type}" | 242 | COMPRESS_CMD_lzma = "lzma -k -f -7 ${IMAGE_NAME}.rootfs.${type}" |
diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass index 7b8e6075f2..d1b4f10254 100644 --- a/meta/classes/kernel-yocto.bbclass +++ b/meta/classes/kernel-yocto.bbclass | |||
@@ -46,7 +46,7 @@ def find_kernel_feature_dirs(d): | |||
46 | 46 | ||
47 | # find the master/machine source branch. In the same way that the fetcher proceses | 47 | # find the master/machine source branch. In the same way that the fetcher proceses |
48 | # git repositories in the SRC_URI we take the first repo found, first branch. | 48 | # git repositories in the SRC_URI we take the first repo found, first branch. |
49 | def get_machine_branch(d): | 49 | def get_machine_branch(d, default): |
50 | fetch = bb.fetch2.Fetch([], d) | 50 | fetch = bb.fetch2.Fetch([], d) |
51 | for url in fetch.urls: | 51 | for url in fetch.urls: |
52 | urldata = fetch.ud[url] | 52 | urldata = fetch.ud[url] |
@@ -55,7 +55,7 @@ def get_machine_branch(d): | |||
55 | branches = urldata.parm.get("branch").split(',') | 55 | branches = urldata.parm.get("branch").split(',') |
56 | return branches[0] | 56 | return branches[0] |
57 | 57 | ||
58 | return "master" | 58 | return default |
59 | 59 | ||
60 | do_patch() { | 60 | do_patch() { |
61 | cd ${S} | 61 | cd ${S} |
@@ -70,7 +70,7 @@ do_patch() { | |||
70 | fi | 70 | fi |
71 | fi | 71 | fi |
72 | 72 | ||
73 | machine_branch="${@ get_machine_branch(d)}" | 73 | machine_branch="${@ get_machine_branch(d, "${KBRANCH}" )}" |
74 | 74 | ||
75 | # if we have a defined/set meta branch we should not be generating | 75 | # if we have a defined/set meta branch we should not be generating |
76 | # any meta data. The passed branch has what we need. | 76 | # any meta data. The passed branch has what we need. |
@@ -195,7 +195,8 @@ do_kernel_checkout() { | |||
195 | fi | 195 | fi |
196 | fi | 196 | fi |
197 | 197 | ||
198 | machine_branch="${@ get_machine_branch(d)}" | 198 | machine_branch="${@ get_machine_branch(d, "${KBRANCH}" )}" |
199 | |||
199 | if [ "${KBRANCH}" != "${machine_branch}" ]; then | 200 | if [ "${KBRANCH}" != "${machine_branch}" ]; then |
200 | echo "WARNING: The SRC_URI machine branch and KBRANCH are not the same." | 201 | echo "WARNING: The SRC_URI machine branch and KBRANCH are not the same." |
201 | echo " KBRANCH will be adjusted to match, but this typically is a" | 202 | echo " KBRANCH will be adjusted to match, but this typically is a" |
@@ -280,7 +281,7 @@ do_validate_branches() { | |||
280 | cd ${S} | 281 | cd ${S} |
281 | export KMETA=${KMETA} | 282 | export KMETA=${KMETA} |
282 | 283 | ||
283 | machine_branch="${@ get_machine_branch(d)}" | 284 | machine_branch="${@ get_machine_branch(d, "${KBRANCH}" )}" |
284 | 285 | ||
285 | set +e | 286 | set +e |
286 | # if SRCREV is AUTOREV it shows up as AUTOINC there's nothing to | 287 | # if SRCREV is AUTOREV it shows up as AUTOINC there's nothing to |
diff --git a/meta/classes/package_deb.bbclass b/meta/classes/package_deb.bbclass index 455919913b..853b5ea8a3 100644 --- a/meta/classes/package_deb.bbclass +++ b/meta/classes/package_deb.bbclass | |||
@@ -7,7 +7,6 @@ inherit package | |||
7 | IMAGE_PKGTYPE ?= "deb" | 7 | IMAGE_PKGTYPE ?= "deb" |
8 | 8 | ||
9 | DPKG_ARCH ?= "${TARGET_ARCH}" | 9 | DPKG_ARCH ?= "${TARGET_ARCH}" |
10 | DPKG_ARCH_arm ?= "armel" | ||
11 | 10 | ||
12 | PKGWRITEDIRDEB = "${WORKDIR}/deploy-debs" | 11 | PKGWRITEDIRDEB = "${WORKDIR}/deploy-debs" |
13 | 12 | ||
@@ -406,8 +405,11 @@ python () { | |||
406 | d.setVarFlag('do_package_write_deb_setscene', 'fakeroot', "1") | 405 | d.setVarFlag('do_package_write_deb_setscene', 'fakeroot', "1") |
407 | 406 | ||
408 | # Map TARGET_ARCH to Debian's ideas about architectures | 407 | # Map TARGET_ARCH to Debian's ideas about architectures |
409 | if d.getVar('DPKG_ARCH', True) in ["x86", "i486", "i586", "i686", "pentium"]: | 408 | darch = d.getVar('DPKG_ARCH', True) |
410 | d.setVar('DPKG_ARCH', 'i386') | 409 | if darch in ["x86", "i486", "i586", "i686", "pentium"]: |
410 | d.setVar('DPKG_ARCH', 'i386') | ||
411 | elif darch == "arm": | ||
412 | d.setVar('DPKG_ARCH', 'armel') | ||
411 | } | 413 | } |
412 | 414 | ||
413 | python do_package_write_deb () { | 415 | python do_package_write_deb () { |
diff --git a/meta/classes/packageinfo.bbclass b/meta/classes/packageinfo.bbclass index bd7b249bb4..5e6f5901e0 100644 --- a/meta/classes/packageinfo.bbclass +++ b/meta/classes/packageinfo.bbclass | |||
@@ -8,6 +8,25 @@ python packageinfo_handler () { | |||
8 | package_archs = e.data.getVar('PACKAGE_ARCHS', True) | 8 | package_archs = e.data.getVar('PACKAGE_ARCHS', True) |
9 | packaging = e.data.getVar('PACKAGE_CLASSES', True).split()[0].split('_')[1] | 9 | packaging = e.data.getVar('PACKAGE_CLASSES', True).split()[0].split('_')[1] |
10 | deploy_dir = e.data.getVar('DEPLOY_DIR', True) + '/' + packaging | 10 | deploy_dir = e.data.getVar('DEPLOY_DIR', True) + '/' + packaging |
11 | dirs = os.listdir(tmpdir + '/work/') | ||
12 | pkgsplit_dir = tmpdir + '/work/' | ||
13 | items = {} | ||
14 | passing = '' | ||
15 | for directories in dirs: | ||
16 | temp_dirs = os.listdir(pkgsplit_dir + directories) | ||
17 | for temps1 in temp_dirs: | ||
18 | if os.path.exists(pkgsplit_dir + directories + '/' + temps1 + '/' + os.listdir(pkgsplit_dir + directories + '/' + temps1)[0] + '/packages-split'): | ||
19 | subs = pkgsplit_dir + directories + '/' + temps1 + '/' + os.listdir(pkgsplit_dir + directories + '/' + temps1)[0] + '/packages-split' | ||
20 | for temps in os.listdir(subs): | ||
21 | items[temps] = {} | ||
22 | for path, dirs, files in os.walk(pkgsplit_dir + directories + '/' + temps1 + '/' + os.listdir(pkgsplit_dir + directories + '/' + temps1)[0] + '/packages-split' + '/' + temps): | ||
23 | file_list = [] | ||
24 | if os.listdir(path) != []: | ||
25 | items[temps][path] = [] | ||
26 | for f in files: | ||
27 | file_list.append(f) | ||
28 | items[temps][path].append(file_list) | ||
29 | |||
11 | for arch in package_archs.split(): | 30 | for arch in package_archs.split(): |
12 | pkgdata_dir = tmpdir + '/pkgdata/' + arch + target_vendor + '-' + target_os + '/runtime/' | 31 | pkgdata_dir = tmpdir + '/pkgdata/' + arch + target_vendor + '-' + target_os + '/runtime/' |
13 | if os.path.exists(pkgdata_dir): | 32 | if os.path.exists(pkgdata_dir): |
@@ -19,6 +38,8 @@ python packageinfo_handler () { | |||
19 | try: | 38 | try: |
20 | sdata = oe.packagedata.read_pkgdatafile(pkgdatafile) | 39 | sdata = oe.packagedata.read_pkgdatafile(pkgdatafile) |
21 | sdata['PKG'] = pkgname | 40 | sdata['PKG'] = pkgname |
41 | if pkgname in items: | ||
42 | sdata['FILES_INFO'] = items[pkgname] | ||
22 | pkginfolist.append(sdata) | 43 | pkginfolist.append(sdata) |
23 | except Exception as e: | 44 | except Exception as e: |
24 | bb.warn("Failed to read pkgdata file %s: %s: %s" % (pkgdatafile, e.__class__, str(e))) | 45 | bb.warn("Failed to read pkgdata file %s: %s: %s" % (pkgdatafile, e.__class__, str(e))) |
diff --git a/meta/classes/rootfs_rpm.bbclass b/meta/classes/rootfs_rpm.bbclass index 1d3ea641f0..d373dab408 100644 --- a/meta/classes/rootfs_rpm.bbclass +++ b/meta/classes/rootfs_rpm.bbclass | |||
@@ -3,6 +3,7 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | ROOTFS_PKGMANAGE = "rpm smartpm" | 5 | ROOTFS_PKGMANAGE = "rpm smartpm" |
6 | ROOTFS_PKGMANAGE_BOOTSTRAP = "rpm-postinsts" | ||
6 | 7 | ||
7 | # Add 50Meg of extra space for Smart | 8 | # Add 50Meg of extra space for Smart |
8 | IMAGE_ROOTFS_EXTRA_SPACE_append = "${@base_contains("PACKAGE_INSTALL", "smartpm", " + 51200", "" ,d)}" | 9 | IMAGE_ROOTFS_EXTRA_SPACE_append = "${@base_contains("PACKAGE_INSTALL", "smartpm", " + 51200", "" ,d)}" |
@@ -10,9 +11,6 @@ IMAGE_ROOTFS_EXTRA_SPACE_append = "${@base_contains("PACKAGE_INSTALL", "smartpm" | |||
10 | # Smart is python based, so be sure python-native is available to us. | 11 | # Smart is python based, so be sure python-native is available to us. |
11 | EXTRANATIVEPATH += "python-native" | 12 | EXTRANATIVEPATH += "python-native" |
12 | 13 | ||
13 | # Postinstalls on device are handled within this class at present | ||
14 | ROOTFS_PKGMANAGE_BOOTSTRAP = "" | ||
15 | |||
16 | do_rootfs[depends] += "rpm-native:do_populate_sysroot" | 14 | do_rootfs[depends] += "rpm-native:do_populate_sysroot" |
17 | do_rootfs[depends] += "rpmresolve-native:do_populate_sysroot" | 15 | do_rootfs[depends] += "rpmresolve-native:do_populate_sysroot" |
18 | do_rootfs[depends] += "python-smartpm-native:do_populate_sysroot" | 16 | do_rootfs[depends] += "python-smartpm-native:do_populate_sysroot" |
diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass index ce9f243445..67ddc466ce 100644 --- a/meta/classes/sstate.bbclass +++ b/meta/classes/sstate.bbclass | |||
@@ -197,7 +197,8 @@ def sstate_install(ss, d): | |||
197 | 197 | ||
198 | # Run the actual file install | 198 | # Run the actual file install |
199 | for state in ss['dirs']: | 199 | for state in ss['dirs']: |
200 | oe.path.copytree(state[1], state[2]) | 200 | if os.path.exists(state[1]): |
201 | oe.path.copytree(state[1], state[2]) | ||
201 | 202 | ||
202 | for postinst in (d.getVar('SSTATEPOSTINSTFUNCS', True) or '').split(): | 203 | for postinst in (d.getVar('SSTATEPOSTINSTFUNCS', True) or '').split(): |
203 | bb.build.exec_func(postinst, d) | 204 | bb.build.exec_func(postinst, d) |
@@ -448,6 +449,8 @@ def sstate_package(ss, d): | |||
448 | bb.mkdirhier(sstatebuild) | 449 | bb.mkdirhier(sstatebuild) |
449 | bb.mkdirhier(os.path.dirname(sstatepkg)) | 450 | bb.mkdirhier(os.path.dirname(sstatepkg)) |
450 | for state in ss['dirs']: | 451 | for state in ss['dirs']: |
452 | if not os.path.exists(state[1]): | ||
453 | continue | ||
451 | srcbase = state[0].rstrip("/").rsplit('/', 1)[0] | 454 | srcbase = state[0].rstrip("/").rsplit('/', 1)[0] |
452 | for walkroot, dirs, files in os.walk(state[1]): | 455 | for walkroot, dirs, files in os.walk(state[1]): |
453 | for file in files: | 456 | for file in files: |
@@ -547,7 +550,7 @@ sstate_create_package () { | |||
547 | tar -cz --file=$TFILE --files-from=/dev/null | 550 | tar -cz --file=$TFILE --files-from=/dev/null |
548 | fi | 551 | fi |
549 | chmod 0664 $TFILE | 552 | chmod 0664 $TFILE |
550 | mv $TFILE ${SSTATE_PKG} | 553 | mv -f $TFILE ${SSTATE_PKG} |
551 | 554 | ||
552 | cd ${WORKDIR} | 555 | cd ${WORKDIR} |
553 | rm -rf ${SSTATE_BUILDDIR} | 556 | rm -rf ${SSTATE_BUILDDIR} |
@@ -641,7 +644,7 @@ def setscene_depvalid(task, taskdependees, notneeded, d): | |||
641 | return True | 644 | return True |
642 | return False | 645 | return False |
643 | def isPostInstDep(x): | 646 | def isPostInstDep(x): |
644 | if x in ["qemu-native", "gdk-pixbuf-native", "gtk+-native", "qemuwrapper-cross", "depmodwrapper-cross", "systemd-systemctl-native", "gtk-update-icon-cache-native"]: | 647 | if x in ["qemu-native", "gdk-pixbuf-native", "qemuwrapper-cross", "depmodwrapper-cross", "systemd-systemctl-native", "gtk-update-icon-cache-native"]: |
645 | return True | 648 | return True |
646 | return False | 649 | return False |
647 | 650 | ||
diff --git a/meta/classes/systemd.bbclass b/meta/classes/systemd.bbclass index 564cd727df..69eeb9ef16 100644 --- a/meta/classes/systemd.bbclass +++ b/meta/classes/systemd.bbclass | |||
@@ -10,11 +10,14 @@ SYSTEMD_AUTO_ENABLE ??= "enable" | |||
10 | # even if the systemd DISTRO_FEATURE isn't enabled. As such don't make any | 10 | # even if the systemd DISTRO_FEATURE isn't enabled. As such don't make any |
11 | # changes directly but check the DISTRO_FEATURES first. | 11 | # changes directly but check the DISTRO_FEATURES first. |
12 | python __anonymous() { | 12 | python __anonymous() { |
13 | if "systemd" in d.getVar("DISTRO_FEATURES", True).split(): | 13 | features = d.getVar("DISTRO_FEATURES", True).split() |
14 | # If the distro features have systemd but not sysvinit, inhibit update-rcd | ||
15 | # from doing any work so that pure-systemd images don't have redundant init | ||
16 | # files. | ||
17 | if "systemd" in features: | ||
14 | d.appendVar("DEPENDS", " systemd-systemctl-native") | 18 | d.appendVar("DEPENDS", " systemd-systemctl-native") |
15 | # Set a variable so that update-rcd.bbclass knows we're active and can | 19 | if "sysvinit" not in features: |
16 | # disable itself. | 20 | d.setVar("INHIBIT_UPDATERCD_BBCLASS", "1") |
17 | d.setVar("SYSTEMD_BBCLASS_ENABLED", "1") | ||
18 | } | 21 | } |
19 | 22 | ||
20 | systemd_postinst() { | 23 | systemd_postinst() { |
@@ -24,19 +27,23 @@ if [ -n "$D" ]; then | |||
24 | OPTS="--root=$D" | 27 | OPTS="--root=$D" |
25 | fi | 28 | fi |
26 | 29 | ||
27 | systemctl $OPTS ${SYSTEMD_AUTO_ENABLE} ${SYSTEMD_SERVICE} | 30 | if type systemctl >/dev/null 2>/dev/null; then |
31 | systemctl $OPTS ${SYSTEMD_AUTO_ENABLE} ${SYSTEMD_SERVICE} | ||
28 | 32 | ||
29 | if [ -z "$D" -a "${SYSTEMD_AUTO_ENABLE}" = "enable" ]; then | 33 | if [ -z "$D" -a "${SYSTEMD_AUTO_ENABLE}" = "enable" ]; then |
30 | systemctl start ${SYSTEMD_SERVICE} | 34 | systemctl start ${SYSTEMD_SERVICE} |
35 | fi | ||
31 | fi | 36 | fi |
32 | } | 37 | } |
33 | 38 | ||
34 | systemd_prerm() { | 39 | systemd_prerm() { |
35 | if [ -z "$D" ]; then | 40 | if type systemctl >/dev/null 2>/dev/null; then |
36 | systemctl stop ${SYSTEMD_SERVICE} | 41 | if [ -z "$D" ]; then |
37 | fi | 42 | systemctl stop ${SYSTEMD_SERVICE} |
43 | fi | ||
38 | 44 | ||
39 | systemctl disable ${SYSTEMD_SERVICE} | 45 | systemctl disable ${SYSTEMD_SERVICE} |
46 | fi | ||
40 | } | 47 | } |
41 | 48 | ||
42 | python systemd_populate_packages() { | 49 | python systemd_populate_packages() { |
@@ -56,14 +63,6 @@ python systemd_populate_packages() { | |||
56 | bb.error('%s does not appear in package list, please add it' % pkg_systemd) | 63 | bb.error('%s does not appear in package list, please add it' % pkg_systemd) |
57 | 64 | ||
58 | 65 | ||
59 | # Add a runtime dependency on systemd to pkg | ||
60 | def systemd_add_rdepends(pkg): | ||
61 | rdepends = d.getVar('RDEPENDS_' + pkg, True) or "" | ||
62 | if not 'systemd' in rdepends.split(): | ||
63 | rdepends = '%s %s' % (rdepends, 'systemd') | ||
64 | d.setVar('RDEPENDS_' + pkg, rdepends) | ||
65 | |||
66 | |||
67 | def systemd_generate_package_scripts(pkg): | 66 | def systemd_generate_package_scripts(pkg): |
68 | bb.debug(1, 'adding systemd calls to postinst/postrm for %s' % pkg) | 67 | bb.debug(1, 'adding systemd calls to postinst/postrm for %s' % pkg) |
69 | 68 | ||
@@ -156,7 +155,6 @@ python systemd_populate_packages() { | |||
156 | systemd_check_package(pkg) | 155 | systemd_check_package(pkg) |
157 | if d.getVar('SYSTEMD_SERVICE_' + pkg, True): | 156 | if d.getVar('SYSTEMD_SERVICE_' + pkg, True): |
158 | systemd_generate_package_scripts(pkg) | 157 | systemd_generate_package_scripts(pkg) |
159 | systemd_add_rdepends(pkg) | ||
160 | systemd_check_services() | 158 | systemd_check_services() |
161 | } | 159 | } |
162 | 160 | ||
diff --git a/meta/classes/update-rc.d.bbclass b/meta/classes/update-rc.d.bbclass index 65bf022e49..0c2b94a25b 100644 --- a/meta/classes/update-rc.d.bbclass +++ b/meta/classes/update-rc.d.bbclass | |||
@@ -6,7 +6,7 @@ UPDATERCD_virtclass-cross = "" | |||
6 | UPDATERCD_class-native = "" | 6 | UPDATERCD_class-native = "" |
7 | UPDATERCD_class-nativesdk = "" | 7 | UPDATERCD_class-nativesdk = "" |
8 | 8 | ||
9 | RDEPENDS_${UPDATERCPN}_append = " ${UPDATERCD}" | 9 | RRECOMMENDS_${UPDATERCPN}_append = " ${UPDATERCD}" |
10 | 10 | ||
11 | INITSCRIPT_PARAMS ?= "defaults" | 11 | INITSCRIPT_PARAMS ?= "defaults" |
12 | 12 | ||
@@ -18,7 +18,9 @@ if test "x$D" != "x"; then | |||
18 | else | 18 | else |
19 | OPT="-s" | 19 | OPT="-s" |
20 | fi | 20 | fi |
21 | update-rc.d $OPT ${INITSCRIPT_NAME} ${INITSCRIPT_PARAMS} | 21 | if type update-rc.d >/dev/null 2>/dev/null; then |
22 | update-rc.d $OPT ${INITSCRIPT_NAME} ${INITSCRIPT_PARAMS} | ||
23 | fi | ||
22 | } | 24 | } |
23 | 25 | ||
24 | updatercd_prerm() { | 26 | updatercd_prerm() { |
@@ -28,10 +30,13 @@ fi | |||
28 | } | 30 | } |
29 | 31 | ||
30 | updatercd_postrm() { | 32 | updatercd_postrm() { |
31 | if [ "$D" != "" ]; then | 33 | if test "$D" != ""; then |
32 | update-rc.d -f -r $D ${INITSCRIPT_NAME} remove | 34 | OPT="-f -r $D" |
33 | else | 35 | else |
34 | update-rc.d ${INITSCRIPT_NAME} remove | 36 | OPT="" |
37 | fi | ||
38 | if type update-rc.d >/dev/null 2>/dev/null; then | ||
39 | update-rc.d $OPT ${INITSCRIPT_NAME} remove | ||
35 | fi | 40 | fi |
36 | } | 41 | } |
37 | 42 | ||
@@ -75,9 +80,10 @@ python populate_packages_updatercd () { | |||
75 | postrm += d.getVar('updatercd_postrm', True) | 80 | postrm += d.getVar('updatercd_postrm', True) |
76 | d.setVar('pkg_postrm_%s' % pkg, postrm) | 81 | d.setVar('pkg_postrm_%s' % pkg, postrm) |
77 | 82 | ||
78 | # If the systemd class has also been inherited, then don't do anything as | 83 | # Check that this class isn't being inhibited (generally, by |
79 | # the systemd units will override anything created by update-rc.d. | 84 | # systemd.bbclass) before doing any work. |
80 | if not d.getVar("SYSTEMD_BBCLASS_ENABLED", True): | 85 | if "sysvinit" in d.getVar("DISTRO_FEATURES").split() or \ |
86 | not d.getVar("INHIBIT_UPDATERCD_BBCLASS", True): | ||
81 | pkgs = d.getVar('INITSCRIPT_PACKAGES', True) | 87 | pkgs = d.getVar('INITSCRIPT_PACKAGES', True) |
82 | if pkgs == None: | 88 | if pkgs == None: |
83 | pkgs = d.getVar('UPDATERCPN', True) | 89 | pkgs = d.getVar('UPDATERCPN', True) |
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index 01ebad4e1f..cd5d61e347 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf | |||
@@ -730,7 +730,7 @@ MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= "" | |||
730 | MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= "" | 730 | MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= "" |
731 | IMAGE_FEATURES += "${EXTRA_IMAGE_FEATURES}" | 731 | IMAGE_FEATURES += "${EXTRA_IMAGE_FEATURES}" |
732 | 732 | ||
733 | DISTRO_FEATURES_BACKFILL = "pulseaudio ${DISTRO_FEATURES_INITMAN}" | 733 | DISTRO_FEATURES_BACKFILL = "pulseaudio sysvinit" |
734 | MACHINE_FEATURES_BACKFILL = "rtc" | 734 | MACHINE_FEATURES_BACKFILL = "rtc" |
735 | 735 | ||
736 | COMBINED_FEATURES = "\ | 736 | COMBINED_FEATURES = "\ |
diff --git a/meta/conf/conf-notes.txt b/meta/conf/conf-notes.txt new file mode 100644 index 0000000000..503cffa44e --- /dev/null +++ b/meta/conf/conf-notes.txt | |||
@@ -0,0 +1,9 @@ | |||
1 | Common targets are: | ||
2 | core-image-minimal | ||
3 | core-image-sato | ||
4 | meta-toolchain | ||
5 | meta-toolchain-sdk | ||
6 | adt-installer | ||
7 | meta-ide-support | ||
8 | |||
9 | You can also run generated qemu images with a command like 'runqemu qemux86' | ||
diff --git a/meta/conf/distro/include/default-distrovars.inc b/meta/conf/distro/include/default-distrovars.inc index f0fec2a011..b0586d6f05 100644 --- a/meta/conf/distro/include/default-distrovars.inc +++ b/meta/conf/distro/include/default-distrovars.inc | |||
@@ -17,8 +17,7 @@ DISTRO_FEATURES_LIBC_DEFAULT ?= "ipv4 ipv6 libc-backtrace libc-big-macros libc-b | |||
17 | libc-posix-wchar-io" | 17 | libc-posix-wchar-io" |
18 | DISTRO_FEATURES_LIBC ?= "${DISTRO_FEATURES_LIBC_DEFAULT}" | 18 | DISTRO_FEATURES_LIBC ?= "${DISTRO_FEATURES_LIBC_DEFAULT}" |
19 | DISTRO_FEATURES_LIBC_class-nativesdk = "${DISTRO_FEATURES_LIBC_DEFAULT}" | 19 | DISTRO_FEATURES_LIBC_class-nativesdk = "${DISTRO_FEATURES_LIBC_DEFAULT}" |
20 | DISTRO_FEATURES_INITMAN ?= "sysvinit" | 20 | DISTRO_FEATURES ?= "alsa argp bluetooth ext2 irda largefile pcmcia usbgadget usbhost wifi xattr nfs zeroconf pci 3g nfc x11 ${DISTRO_FEATURES_LIBC}" |
21 | DISTRO_FEATURES ?= "alsa argp bluetooth ext2 irda largefile pcmcia usbgadget usbhost wifi xattr nfs zeroconf pci 3g nfc x11 ${DISTRO_FEATURES_LIBC} ${DISTRO_FEATURES_INITMAN}" | ||
22 | 21 | ||
23 | IMAGE_FEATURES ?= "" | 22 | IMAGE_FEATURES ?= "" |
24 | 23 | ||
diff --git a/meta/conf/distro/include/default-providers.inc b/meta/conf/distro/include/default-providers.inc index 39ce7cc3f1..4b665225ac 100644 --- a/meta/conf/distro/include/default-providers.inc +++ b/meta/conf/distro/include/default-providers.inc | |||
@@ -12,7 +12,6 @@ PREFERRED_PROVIDER_virtual/update-alternatives ?= "opkg" | |||
12 | PREFERRED_PROVIDER_virtual/update-alternatives-native ?= "opkg-native" | 12 | PREFERRED_PROVIDER_virtual/update-alternatives-native ?= "opkg-native" |
13 | PREFERRED_PROVIDER_virtual/libx11 ?= "libx11" | 13 | PREFERRED_PROVIDER_virtual/libx11 ?= "libx11" |
14 | PREFERRED_PROVIDER_xf86-video-intel ?= "xf86-video-intel" | 14 | PREFERRED_PROVIDER_xf86-video-intel ?= "xf86-video-intel" |
15 | PREFERRED_PROVIDER_virtual/gtk-update-icon-cache-native ?= "gtk-update-icon-cache-native" | ||
16 | 15 | ||
17 | # | 16 | # |
18 | # Default virtual runtime providers | 17 | # Default virtual runtime providers |
@@ -38,4 +37,4 @@ PREFERRED_PROVIDER_nativesdk-opkg ?= "nativesdk-opkg" | |||
38 | PREFERRED_PROVIDER_console-tools ?= "kbd" | 37 | PREFERRED_PROVIDER_console-tools ?= "kbd" |
39 | PREFERRED_PROVIDER_gzip-native ?= "pigz-native" | 38 | PREFERRED_PROVIDER_gzip-native ?= "pigz-native" |
40 | PREFERRED_PROVIDER_make ?= "make" | 39 | PREFERRED_PROVIDER_make ?= "make" |
41 | PREFERRED_PROVIDER_udev ?= "${@base_contains('DISTRO_FEATURES','sysvinit','udev','',d)}${@base_contains('DISTRO_FEATURES','systemd','systemd','',d)}" | 40 | PREFERRED_PROVIDER_udev ?= "${@base_contains('DISTRO_FEATURES','systemd','systemd','udev',d)}" |
diff --git a/meta/conf/distro/include/default-versions.inc b/meta/conf/distro/include/default-versions.inc index 53ec2e7caf..0a5b2f45f9 100644 --- a/meta/conf/distro/include/default-versions.inc +++ b/meta/conf/distro/include/default-versions.inc | |||
@@ -9,3 +9,6 @@ PREFERRED_VERSION_python-native ?= "2.7.3" | |||
9 | 9 | ||
10 | # Force the older version of liberation-fonts until we fix the fontforge issue | 10 | # Force the older version of liberation-fonts until we fix the fontforge issue |
11 | PREFERRED_VERSION_liberation-fonts ?= "1.04" | 11 | PREFERRED_VERSION_liberation-fonts ?= "1.04" |
12 | |||
13 | # Set libpng default version for linuxstdbase | ||
14 | PREFERRED_VERSION_libpng_linuxstdbase ?= "1.2.50" | ||
diff --git a/meta/conf/distro/include/seperatebuilddir.inc b/meta/conf/distro/include/seperatebuilddir.inc index 06df5fd73b..a9ca24090b 100644 --- a/meta/conf/distro/include/seperatebuilddir.inc +++ b/meta/conf/distro/include/seperatebuilddir.inc | |||
@@ -222,7 +222,6 @@ B_pn-gtk+3 = "${SEPB}" | |||
222 | B_pn-gtk-doc-stub = "${SEPB}" | 222 | B_pn-gtk-doc-stub = "${SEPB}" |
223 | B_pn-gtk-doc-stub-native = "${SEPB}" | 223 | B_pn-gtk-doc-stub-native = "${SEPB}" |
224 | B_pn-gtk-engines = "${SEPB}" | 224 | B_pn-gtk-engines = "${SEPB}" |
225 | B_pn-gtk+-native = "${SEPB}" | ||
226 | ##make[1]: *** No rule to make target `data/gtkrc', needed by `all-am'. Stop | 225 | ##make[1]: *** No rule to make target `data/gtkrc', needed by `all-am'. Stop |
227 | ##B_pn-gtk-sato-engine = "${SEPB}" | 226 | ##B_pn-gtk-sato-engine = "${SEPB}" |
228 | B_pn-guile = "${SEPB}" | 227 | B_pn-guile = "${SEPB}" |
diff --git a/meta/conf/machine/qemux86-64.conf b/meta/conf/machine/qemux86-64.conf index 90007fb26e..ff666af1f7 100644 --- a/meta/conf/machine/qemux86-64.conf +++ b/meta/conf/machine/qemux86-64.conf | |||
@@ -14,7 +14,7 @@ KERNEL_IMAGETYPE = "bzImage" | |||
14 | 14 | ||
15 | SERIAL_CONSOLE = "115200 ttyS0" | 15 | SERIAL_CONSOLE = "115200 ttyS0" |
16 | 16 | ||
17 | XSERVER ?= "xserver-xorg \ | 17 | XSERVER = "xserver-xorg \ |
18 | mesa-driver-swrast \ | 18 | mesa-driver-swrast \ |
19 | xf86-input-vmmouse \ | 19 | xf86-input-vmmouse \ |
20 | xf86-input-keyboard \ | 20 | xf86-input-keyboard \ |
diff --git a/meta/conf/machine/qemux86.conf b/meta/conf/machine/qemux86.conf index 7a7cbfde8b..5f107bea8b 100644 --- a/meta/conf/machine/qemux86.conf +++ b/meta/conf/machine/qemux86.conf | |||
@@ -14,7 +14,7 @@ KERNEL_IMAGETYPE = "bzImage" | |||
14 | 14 | ||
15 | SERIAL_CONSOLE = "115200 ttyS0" | 15 | SERIAL_CONSOLE = "115200 ttyS0" |
16 | 16 | ||
17 | XSERVER ?= "xserver-xorg \ | 17 | XSERVER = "xserver-xorg \ |
18 | mesa-driver-swrast \ | 18 | mesa-driver-swrast \ |
19 | xf86-input-vmmouse \ | 19 | xf86-input-vmmouse \ |
20 | xf86-input-keyboard \ | 20 | xf86-input-keyboard \ |
diff --git a/meta/lib/oe/lsb.py b/meta/lib/oe/lsb.py index f4a5ba1c17..fed1204e85 100644 --- a/meta/lib/oe/lsb.py +++ b/meta/lib/oe/lsb.py | |||
@@ -1,9 +1,9 @@ | |||
1 | def release_dict(): | 1 | def release_dict(): |
2 | """Return the output of lsb_release -a as a dictionary""" | 2 | """Return the output of lsb_release -ir as a dictionary""" |
3 | from subprocess import PIPE | 3 | from subprocess import PIPE |
4 | 4 | ||
5 | try: | 5 | try: |
6 | output, err = bb.process.run(['lsb_release', '-a'], stderr=PIPE) | 6 | output, err = bb.process.run(['lsb_release', '-ir'], stderr=PIPE) |
7 | except bb.process.CmdError as exc: | 7 | except bb.process.CmdError as exc: |
8 | return None | 8 | return None |
9 | 9 | ||
@@ -26,7 +26,7 @@ def release_dict_file(): | |||
26 | with open('/etc/lsb-release') as f: | 26 | with open('/etc/lsb-release') as f: |
27 | for line in f: | 27 | for line in f: |
28 | key, value = line.split("=", 1) | 28 | key, value = line.split("=", 1) |
29 | data[key] = value | 29 | data[key] = value.strip() |
30 | elif os.path.exists('/etc/redhat-release'): | 30 | elif os.path.exists('/etc/redhat-release'): |
31 | data = {} | 31 | data = {} |
32 | with open('/etc/redhat-release') as f: | 32 | with open('/etc/redhat-release') as f: |
diff --git a/meta/recipes-bsp/pcmciautils/pcmciautils.inc b/meta/recipes-bsp/pcmciautils/pcmciautils.inc index 80271d6a9a..065123682a 100644 --- a/meta/recipes-bsp/pcmciautils/pcmciautils.inc +++ b/meta/recipes-bsp/pcmciautils/pcmciautils.inc | |||
@@ -21,7 +21,7 @@ export udevrulesdir = "${nonarch_base_libdir}/udev/rules.d" | |||
21 | export UDEV = "1" | 21 | export UDEV = "1" |
22 | LD = "${CC}" | 22 | LD = "${CC}" |
23 | CFLAGS =+ "-I${S}/src" | 23 | CFLAGS =+ "-I${S}/src" |
24 | CFLAGS =+ "-DPCMCIAUTILS_VERSION=\'${PV}\'" | 24 | CFLAGS =+ "-DPCMCIAUTILS_VERSION=\\"${PV}\\"" |
25 | 25 | ||
26 | PARALLEL_MAKE = "" | 26 | PARALLEL_MAKE = "" |
27 | EXTRA_OEMAKE = "-e 'STRIP=echo' 'LIB_OBJS=-lc -lsysfs' 'LEX=flex'" | 27 | EXTRA_OEMAKE = "-e 'STRIP=echo' 'LIB_OBJS=-lc -lsysfs' 'LEX=flex'" |
diff --git a/meta/recipes-connectivity/connman/connman.inc b/meta/recipes-connectivity/connman/connman.inc index 96ebc551b8..5d35bc2185 100644 --- a/meta/recipes-connectivity/connman/connman.inc +++ b/meta/recipes-connectivity/connman/connman.inc | |||
@@ -20,7 +20,7 @@ DEPENDS = "dbus glib-2.0 ppp iptables gnutls \ | |||
20 | ${@base_contains('DISTRO_FEATURES', '3g','ofono', '', d)} \ | 20 | ${@base_contains('DISTRO_FEATURES', '3g','ofono', '', d)} \ |
21 | " | 21 | " |
22 | 22 | ||
23 | INC_PR = "r0" | 23 | INC_PR = "r1" |
24 | 24 | ||
25 | TIST = "--enable-tist" | 25 | TIST = "--enable-tist" |
26 | TIST_powerpc = "" | 26 | TIST_powerpc = "" |
@@ -47,6 +47,7 @@ INITSCRIPT_NAME = "connman" | |||
47 | INITSCRIPT_PARAMS = "start 05 5 2 3 . stop 22 0 1 6 ." | 47 | INITSCRIPT_PARAMS = "start 05 5 2 3 . stop 22 0 1 6 ." |
48 | 48 | ||
49 | SYSTEMD_SERVICE_${PN} = "connman.service" | 49 | SYSTEMD_SERVICE_${PN} = "connman.service" |
50 | SYSTEMD_WIRED_SETUP = "ExecStartPre=-/usr/lib/connman/wired-setup" | ||
50 | 51 | ||
51 | # IMPORTANT: because xuser is shared with rootless X, please make sure the | 52 | # IMPORTANT: because xuser is shared with rootless X, please make sure the |
52 | # USERADD_PARAM is in sync with the one in xserver-nodm-init.bb | 53 | # USERADD_PARAM is in sync with the one in xserver-nodm-init.bb |
@@ -57,6 +58,10 @@ USERADD_PARAM_${PN} = "--create-home \ | |||
57 | 58 | ||
58 | inherit autotools gtk-doc pkgconfig systemd update-rc.d useradd | 59 | inherit autotools gtk-doc pkgconfig systemd update-rc.d useradd |
59 | 60 | ||
61 | do_configure_append () { | ||
62 | sed -i "s#ExecStart=#${SYSTEMD_WIRED_SETUP}\nExecStart=#" ${S}/src/connman.service | ||
63 | } | ||
64 | |||
60 | # This allows *everyone* to access ConnMan over DBus, without any access | 65 | # This allows *everyone* to access ConnMan over DBus, without any access |
61 | # control. Really the at_console flag should work, which would mean that | 66 | # control. Really the at_console flag should work, which would mean that |
62 | # both this and the xuser patch can be dropped. | 67 | # both this and the xuser patch can be dropped. |
diff --git a/meta/recipes-connectivity/openssh/openssh_6.1p1.bb b/meta/recipes-connectivity/openssh/openssh_6.1p1.bb index 32c3b2c8a4..0cffd2316d 100644 --- a/meta/recipes-connectivity/openssh/openssh_6.1p1.bb +++ b/meta/recipes-connectivity/openssh/openssh_6.1p1.bb | |||
@@ -96,8 +96,7 @@ FILES_${PN}-misc = "${bindir}/ssh* ${libexecdir}/ssh*" | |||
96 | FILES_${PN}-keygen = "${bindir}/ssh-keygen" | 96 | FILES_${PN}-keygen = "${bindir}/ssh-keygen" |
97 | 97 | ||
98 | RDEPENDS_${PN} += "${PN}-scp ${PN}-ssh ${PN}-sshd ${PN}-keygen" | 98 | RDEPENDS_${PN} += "${PN}-scp ${PN}-ssh ${PN}-sshd ${PN}-keygen" |
99 | DEPENDS_${PN}-sshd += "update-rc.d" | 99 | RDEPENDS_${PN}-sshd += "${PN}-keygen" |
100 | RDEPENDS_${PN}-sshd += "update-rc.d ${PN}-keygen" | ||
101 | 100 | ||
102 | CONFFILES_${PN}-sshd = "${sysconfdir}/ssh/sshd_config" | 101 | CONFFILES_${PN}-sshd = "${sysconfdir}/ssh/sshd_config" |
103 | CONFFILES_${PN}-ssh = "${sysconfdir}/ssh/ssh_config" | 102 | CONFFILES_${PN}-ssh = "${sysconfdir}/ssh/ssh_config" |
diff --git a/meta/recipes-core/base-files/base-files/fstab.systemd b/meta/recipes-core/base-files/base-files/fstab.systemd deleted file mode 100644 index cb48a0de4a..0000000000 --- a/meta/recipes-core/base-files/base-files/fstab.systemd +++ /dev/null | |||
@@ -1,9 +0,0 @@ | |||
1 | # stock fstab - you probably want to override this with a machine specific one | ||
2 | |||
3 | rootfs / auto defaults 1 1 | ||
4 | tmpfs /var/volatile tmpfs defaults 0 0 | ||
5 | tmpfs /media/ram tmpfs defaults 0 0 | ||
6 | |||
7 | # uncomment this if your device has a SD/MMC/Transflash slot | ||
8 | #/dev/mmcblk0p1 /media/card auto defaults,sync,noauto 0 0 | ||
9 | |||
diff --git a/meta/recipes-core/base-files/base-files_3.0.14.bb b/meta/recipes-core/base-files/base-files_3.0.14.bb index e7a9d82133..a56450dc3f 100644 --- a/meta/recipes-core/base-files/base-files_3.0.14.bb +++ b/meta/recipes-core/base-files/base-files_3.0.14.bb | |||
@@ -18,7 +18,6 @@ SRC_URI = "file://rotation \ | |||
18 | file://profile \ | 18 | file://profile \ |
19 | file://shells \ | 19 | file://shells \ |
20 | file://fstab \ | 20 | file://fstab \ |
21 | file://fstab.systemd \ | ||
22 | file://filesystems \ | 21 | file://filesystems \ |
23 | file://issue.net \ | 22 | file://issue.net \ |
24 | file://issue \ | 23 | file://issue \ |
@@ -92,11 +91,7 @@ do_install () { | |||
92 | install -m 0644 ${WORKDIR}/rotation ${D}${sysconfdir}/rotation | 91 | install -m 0644 ${WORKDIR}/rotation ${D}${sysconfdir}/rotation |
93 | fi | 92 | fi |
94 | 93 | ||
95 | if ${@base_contains('DISTRO_FEATURES','systemd','true','false',d)}; then | 94 | install -m 0644 ${WORKDIR}/fstab ${D}${sysconfdir}/fstab |
96 | install -m 0644 ${WORKDIR}/fstab.systemd ${D}${sysconfdir}/fstab | ||
97 | else | ||
98 | install -m 0644 ${WORKDIR}/fstab ${D}${sysconfdir}/fstab | ||
99 | fi | ||
100 | install -m 0644 ${WORKDIR}/filesystems ${D}${sysconfdir}/filesystems | 95 | install -m 0644 ${WORKDIR}/filesystems ${D}${sysconfdir}/filesystems |
101 | install -m 0644 ${WORKDIR}/usbd ${D}${sysconfdir}/default/usbd | 96 | install -m 0644 ${WORKDIR}/usbd ${D}${sysconfdir}/default/usbd |
102 | sed -i "s#ROOTHOME#${ROOT_HOME}#" ${WORKDIR}/profile | 97 | sed -i "s#ROOTHOME#${ROOT_HOME}#" ${WORKDIR}/profile |
diff --git a/meta/recipes-core/busybox/busybox-1.20.2/strict-atime.patch b/meta/recipes-core/busybox/busybox-1.20.2/strict-atime.patch new file mode 100644 index 0000000000..8696427ee8 --- /dev/null +++ b/meta/recipes-core/busybox/busybox-1.20.2/strict-atime.patch | |||
@@ -0,0 +1,49 @@ | |||
1 | Add support for the "strictatime" mount option. | ||
2 | |||
3 | Upstream-Status: Backport [9ad8979ff15e1b894ee1f4bb6a2535a1a2c20d65] | ||
4 | Signed-off-by: Ross Burton <ross.burton@intel.com> | ||
5 | |||
6 | Index: busybox-1.20.2/util-linux/mount.c | ||
7 | =================================================================== | ||
8 | --- busybox-1.20.2.orig/util-linux/mount.c 2012-07-02 15:08:25.000000000 +0100 | ||
9 | +++ busybox-1.20.2/util-linux/mount.c 2013-03-22 15:37:31.340277463 +0000 | ||
10 | @@ -113,6 +113,12 @@ | ||
11 | #ifndef MS_RELATIME | ||
12 | # define MS_RELATIME (1 << 21) | ||
13 | #endif | ||
14 | +#ifndef MS_STRICTATIME | ||
15 | +# define MS_STRICTATIME (1 << 24) | ||
16 | +#endif | ||
17 | + | ||
18 | +/* Any ~MS_FOO value has this bit set: */ | ||
19 | +#define BB_MS_INVERTED_VALUE (1u << 31) | ||
20 | |||
21 | #include "libbb.h" | ||
22 | #if ENABLE_FEATURE_MOUNT_LABEL | ||
23 | @@ -239,6 +245,7 @@ | ||
24 | /* "nomand" */ ~MS_MANDLOCK, | ||
25 | /* "relatime" */ MS_RELATIME, | ||
26 | /* "norelatime" */ ~MS_RELATIME, | ||
27 | + /* "strictatime" */ MS_STRICTATIME, | ||
28 | /* "loud" */ ~MS_SILENT, | ||
29 | /* "rbind" */ MS_BIND|MS_RECURSIVE, | ||
30 | |||
31 | @@ -295,6 +302,7 @@ | ||
32 | "nomand\0" | ||
33 | "relatime\0" | ||
34 | "norelatime\0" | ||
35 | + "strictatime\0" | ||
36 | "loud\0" | ||
37 | "rbind\0" | ||
38 | |||
39 | @@ -466,8 +474,8 @@ | ||
40 | // Find this option in mount_options | ||
41 | for (i = 0; i < ARRAY_SIZE(mount_options); i++) { | ||
42 | if (strcasecmp(option_str, options) == 0) { | ||
43 | - long fl = mount_options[i]; | ||
44 | - if (fl < 0) | ||
45 | + unsigned long fl = mount_options[i]; | ||
46 | + if (fl & BB_MS_INVERTED_VALUE) | ||
47 | flags &= fl; | ||
48 | else | ||
49 | flags |= fl; | ||
diff --git a/meta/recipes-core/busybox/busybox.inc b/meta/recipes-core/busybox/busybox.inc index fc6ca917cd..655cb3cd9b 100644 --- a/meta/recipes-core/busybox/busybox.inc +++ b/meta/recipes-core/busybox/busybox.inc | |||
@@ -18,7 +18,7 @@ export EXTRA_LDFLAGS = "${LDFLAGS}" | |||
18 | PACKAGES =+ "${PN}-httpd ${PN}-udhcpd ${PN}-udhcpc ${PN}-syslog ${PN}-mdev ${PN}-hwclock" | 18 | PACKAGES =+ "${PN}-httpd ${PN}-udhcpd ${PN}-udhcpc ${PN}-syslog ${PN}-mdev ${PN}-hwclock" |
19 | 19 | ||
20 | FILES_${PN}-httpd = "${sysconfdir}/init.d/busybox-httpd /srv/www" | 20 | FILES_${PN}-httpd = "${sysconfdir}/init.d/busybox-httpd /srv/www" |
21 | FILES_${PN}-syslog = "${sysconfdir}/init.d/syslog* ${sysconfdir}/syslog-startup.conf*" | 21 | FILES_${PN}-syslog = "${sysconfdir}/init.d/syslog* ${sysconfdir}/syslog-startup.conf* ${systemd_unitdir}/system/syslog.service" |
22 | FILES_${PN}-mdev = "${sysconfdir}/init.d/mdev ${sysconfdir}/mdev.conf" | 22 | FILES_${PN}-mdev = "${sysconfdir}/init.d/mdev ${sysconfdir}/mdev.conf" |
23 | FILES_${PN}-udhcpd = "${sysconfdir}/init.d/busybox-udhcpd" | 23 | FILES_${PN}-udhcpd = "${sysconfdir}/init.d/busybox-udhcpd" |
24 | FILES_${PN}-udhcpc = "${sysconfdir}/udhcpc.d ${datadir}/udhcpc" | 24 | FILES_${PN}-udhcpc = "${sysconfdir}/udhcpc.d ${datadir}/udhcpc" |
@@ -27,17 +27,21 @@ FILES_${PN}-hwclock = "${sysconfdir}/init.d/hwclock.sh" | |||
27 | INITSCRIPT_PACKAGES = "${PN}-httpd ${PN}-syslog ${PN}-udhcpd ${PN}-mdev ${PN}-hwclock" | 27 | INITSCRIPT_PACKAGES = "${PN}-httpd ${PN}-syslog ${PN}-udhcpd ${PN}-mdev ${PN}-hwclock" |
28 | 28 | ||
29 | INITSCRIPT_NAME_${PN}-httpd = "busybox-httpd" | 29 | INITSCRIPT_NAME_${PN}-httpd = "busybox-httpd" |
30 | INITSCRIPT_NAME_${PN}-syslog = "syslog" | ||
31 | INITSCRIPT_NAME_${PN}-mdev = "mdev" | ||
32 | INITSCRIPT_NAME_${PN}-hwclock = "hwclock.sh" | 30 | INITSCRIPT_NAME_${PN}-hwclock = "hwclock.sh" |
31 | INITSCRIPT_NAME_${PN}-mdev = "mdev" | ||
33 | INITSCRIPT_PARAMS_${PN}-mdev = "start 06 S ." | 32 | INITSCRIPT_PARAMS_${PN}-mdev = "start 06 S ." |
33 | INITSCRIPT_NAME_${PN}-syslog = "syslog" | ||
34 | INITSCRIPT_NAME_${PN}-udhcpd = "busybox-udhcpd" | 34 | INITSCRIPT_NAME_${PN}-udhcpd = "busybox-udhcpd" |
35 | |||
36 | SYSTEMD_PACKAGES = "${PN}-syslog" | ||
37 | SYSTEMD_SERVICE_${PN}-syslog = "${PN}-syslog.service" | ||
38 | |||
35 | CONFFILES_${PN}-syslog = "${sysconfdir}/syslog-startup.conf.${BPN}" | 39 | CONFFILES_${PN}-syslog = "${sysconfdir}/syslog-startup.conf.${BPN}" |
36 | CONFFILES_${PN}-mdev = "${sysconfdir}/mdev.conf" | 40 | CONFFILES_${PN}-mdev = "${sysconfdir}/mdev.conf" |
37 | 41 | ||
38 | RRECOMMENDS_${PN} = "${PN}-syslog ${PN}-udhcpc" | 42 | RRECOMMENDS_${PN} = "${PN}-syslog ${PN}-udhcpc" |
39 | 43 | ||
40 | inherit cml1 update-rc.d | 44 | inherit cml1 systemd update-rc.d |
41 | 45 | ||
42 | # internal helper | 46 | # internal helper |
43 | def busybox_cfg(feature, features, tokens, cnf, rem): | 47 | def busybox_cfg(feature, features, tokens, cnf, rem): |
@@ -213,6 +217,16 @@ do_install () { | |||
213 | fi | 217 | fi |
214 | fi | 218 | fi |
215 | install -m 0644 ${S}/busybox.links ${D}${sysconfdir} | 219 | install -m 0644 ${S}/busybox.links ${D}${sysconfdir} |
220 | |||
221 | if ${@base_contains('DISTRO_FEATURES','systemd','true','false',d)}; then | ||
222 | install -d ${D}${systemd_unitdir}/system | ||
223 | sed 's,@base_sbindir@,${base_sbindir},g' < ${WORKDIR}/busybox-syslog.service.in \ | ||
224 | > ${D}${systemd_unitdir}/system/busybox-syslog.service | ||
225 | sed 's,@base_sbindir@,${base_sbindir},g' < ${WORKDIR}/busybox-klogd.service.in \ | ||
226 | > ${D}${systemd_unitdir}/system/busybox-klogd.service | ||
227 | |||
228 | ln -sf /dev/null ${D}${systemd_unitdir}/system/syslog.service | ||
229 | fi | ||
216 | } | 230 | } |
217 | 231 | ||
218 | inherit update-alternatives | 232 | inherit update-alternatives |
diff --git a/meta/recipes-core/busybox/busybox_1.20.2.bb b/meta/recipes-core/busybox/busybox_1.20.2.bb index 783261e4ea..c09a492dbd 100644 --- a/meta/recipes-core/busybox/busybox_1.20.2.bb +++ b/meta/recipes-core/busybox/busybox_1.20.2.bb | |||
@@ -28,7 +28,10 @@ SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \ | |||
28 | file://fix-for-spurious-testsuite-failure.patch \ | 28 | file://fix-for-spurious-testsuite-failure.patch \ |
29 | file://busybox-1.20.2-kernel_ver.patch \ | 29 | file://busybox-1.20.2-kernel_ver.patch \ |
30 | file://stat-usr-bin.patch \ | 30 | file://stat-usr-bin.patch \ |
31 | file://testsuite-du-du-k-works-fix-false-positive.patch" | 31 | file://busybox-syslog.service.in \ |
32 | file://busybox-klogd.service.in \ | ||
33 | file://testsuite-du-du-k-works-fix-false-positive.patch \ | ||
34 | file://strict-atime.patch" | ||
32 | 35 | ||
33 | SRC_URI[tarball.md5sum] = "e025414bc6cd79579cc7a32a45d3ae1c" | 36 | SRC_URI[tarball.md5sum] = "e025414bc6cd79579cc7a32a45d3ae1c" |
34 | SRC_URI[tarball.sha256sum] = "eb13ff01dae5618ead2ef6f92ba879e9e0390f9583bd545d8789d27cf39b6882" | 37 | SRC_URI[tarball.sha256sum] = "eb13ff01dae5618ead2ef6f92ba879e9e0390f9583bd545d8789d27cf39b6882" |
diff --git a/meta/recipes-core/busybox/files/busybox-klogd.service.in b/meta/recipes-core/busybox/files/busybox-klogd.service.in new file mode 100644 index 0000000000..d7c77558f3 --- /dev/null +++ b/meta/recipes-core/busybox/files/busybox-klogd.service.in | |||
@@ -0,0 +1,8 @@ | |||
1 | [Unit] | ||
2 | Description=Kernel Logging Service | ||
3 | |||
4 | [Service] | ||
5 | ExecStart=@base_sbindir@/klogd -n | ||
6 | |||
7 | [Install] | ||
8 | WantedBy=multi-user.target | ||
diff --git a/meta/recipes-core/busybox/files/busybox-syslog.service.in b/meta/recipes-core/busybox/files/busybox-syslog.service.in new file mode 100644 index 0000000000..2e04321385 --- /dev/null +++ b/meta/recipes-core/busybox/files/busybox-syslog.service.in | |||
@@ -0,0 +1,13 @@ | |||
1 | [Unit] | ||
2 | Description=System Logging Service | ||
3 | Wants=busybox-klogd.service | ||
4 | |||
5 | [Service] | ||
6 | EnvironmentFile=-/etc/default/busybox-syslog | ||
7 | ExecStart=@base_sbindir@/syslogd -n $OPTIONS | ||
8 | Sockets=syslog.socket | ||
9 | |||
10 | [Install] | ||
11 | WantedBy=multi-user.target | ||
12 | Also=busybox-klogd.service | ||
13 | Alias=syslog.service | ||
diff --git a/meta/recipes-core/coreutils/coreutils-8.14/remove-gets.patch b/meta/recipes-core/coreutils/coreutils-8.14/remove-gets.patch deleted file mode 100644 index 4f61c92b15..0000000000 --- a/meta/recipes-core/coreutils/coreutils-8.14/remove-gets.patch +++ /dev/null | |||
@@ -1,23 +0,0 @@ | |||
1 | use gets iff its defined. eglibc 2.16 removed gets | ||
2 | |||
3 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
4 | Upstream-Status: Pending | ||
5 | |||
6 | Index: coreutils-8.14/lib/stdio.in.h | ||
7 | =================================================================== | ||
8 | --- coreutils-8.14.orig/lib/stdio.in.h 2011-09-24 04:20:48.000000000 -0700 | ||
9 | +++ coreutils-8.14/lib/stdio.in.h 2012-07-03 10:36:19.886296576 -0700 | ||
10 | @@ -713,11 +713,13 @@ | ||
11 | _GL_CXXALIAS_SYS (gets, char *, (char *s)); | ||
12 | # undef gets | ||
13 | # endif | ||
14 | +# if defined gets | ||
15 | _GL_CXXALIASWARN (gets); | ||
16 | /* It is very rare that the developer ever has full control of stdin, | ||
17 | so any use of gets warrants an unconditional warning. Assume it is | ||
18 | always declared, since it is required by C89. */ | ||
19 | _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); | ||
20 | +# endif | ||
21 | #endif | ||
22 | |||
23 | |||
diff --git a/meta/recipes-core/coreutils/coreutils-8.14/coreutils-build-with-acl.patch b/meta/recipes-core/coreutils/coreutils-8.21/coreutils-build-with-acl.patch index 8273d78eb3..8273d78eb3 100644 --- a/meta/recipes-core/coreutils/coreutils-8.14/coreutils-build-with-acl.patch +++ b/meta/recipes-core/coreutils/coreutils-8.21/coreutils-build-with-acl.patch | |||
diff --git a/meta/recipes-core/coreutils/coreutils-8.21/dummy_help2man.patch b/meta/recipes-core/coreutils/coreutils-8.21/dummy_help2man.patch new file mode 100644 index 0000000000..4757f52aa0 --- /dev/null +++ b/meta/recipes-core/coreutils/coreutils-8.21/dummy_help2man.patch | |||
@@ -0,0 +1,22 @@ | |||
1 | Upstream-Status: Inappropriate [disable feature] | ||
2 | |||
3 | Signed-off-by: Marko Lindqvist <cazfi74@gmail.com> | ||
4 | diff -Nurd coreutils-8.21/man/local.mk coreutils-8.21/man/local.mk | ||
5 | --- coreutils-8.21/man/local.mk 2013-02-05 16:01:21.000000000 +0200 | ||
6 | +++ coreutils-8.21/man/local.mk 2013-03-23 09:12:53.360470192 +0200 | ||
7 | @@ -19,11 +19,11 @@ | ||
8 | EXTRA_DIST += man/help2man man/dummy-man | ||
9 | |||
10 | ## Graceful degradation for systems lacking perl. | ||
11 | -if HAVE_PERL | ||
12 | -run_help2man = $(PERL) -- $(srcdir)/man/help2man | ||
13 | -else | ||
14 | +#if HAVE_PERL | ||
15 | +#run_help2man = $(PERL) -- $(srcdir)/man/help2man | ||
16 | +#else | ||
17 | run_help2man = $(SHELL) $(srcdir)/man/dummy-man | ||
18 | -endif | ||
19 | +#endif | ||
20 | |||
21 | man1_MANS = @man1_MANS@ | ||
22 | EXTRA_DIST += $(man1_MANS:.1=.x) | ||
diff --git a/meta/recipes-core/coreutils/coreutils-8.14/remove-usr-local-lib-from-m4.patch b/meta/recipes-core/coreutils/coreutils-8.21/remove-usr-local-lib-from-m4.patch index 2ef8a548ac..2ef8a548ac 100644 --- a/meta/recipes-core/coreutils/coreutils-8.14/remove-usr-local-lib-from-m4.patch +++ b/meta/recipes-core/coreutils/coreutils-8.21/remove-usr-local-lib-from-m4.patch | |||
diff --git a/meta/recipes-core/coreutils/coreutils_8.14.bb b/meta/recipes-core/coreutils/coreutils_8.21.bb index b82bbe4145..88561c773a 100644 --- a/meta/recipes-core/coreutils/coreutils_8.14.bb +++ b/meta/recipes-core/coreutils/coreutils_8.21.bb | |||
@@ -6,8 +6,8 @@ HOMEPAGE = "http://www.gnu.org/software/coreutils/" | |||
6 | BUGTRACKER = "http://debbugs.gnu.org/coreutils" | 6 | BUGTRACKER = "http://debbugs.gnu.org/coreutils" |
7 | LICENSE = "GPLv3+" | 7 | LICENSE = "GPLv3+" |
8 | LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504\ | 8 | LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504\ |
9 | file://src/ls.c;beginline=5;endline=16;md5=2e9acd8818fe6db4c2981d20ca632553" | 9 | file://src/ls.c;beginline=5;endline=16;md5=38b79785ca88537b75871782a2a3c6b8" |
10 | PR = "r5" | 10 | PR = "r0" |
11 | DEPENDS = "gmp libcap" | 11 | DEPENDS = "gmp libcap" |
12 | DEPENDS_class-native = "" | 12 | DEPENDS_class-native = "" |
13 | 13 | ||
@@ -15,11 +15,12 @@ inherit autotools gettext | |||
15 | 15 | ||
16 | SRC_URI = "${GNU_MIRROR}/coreutils/${BP}.tar.xz \ | 16 | SRC_URI = "${GNU_MIRROR}/coreutils/${BP}.tar.xz \ |
17 | file://remove-usr-local-lib-from-m4.patch \ | 17 | file://remove-usr-local-lib-from-m4.patch \ |
18 | file://remove-gets.patch \ | ||
19 | file://coreutils-build-with-acl.patch \ | 18 | file://coreutils-build-with-acl.patch \ |
19 | file://dummy_help2man.patch \ | ||
20 | " | 20 | " |
21 | SRC_URI[md5sum] = "bcb135ce553493a45aba01b39eb3920a" | 21 | |
22 | SRC_URI[sha256sum] = "0d120817c19292edb19e92ae6b8eac9020e03d51e0af9cb116cf82b65d18b02d" | 22 | SRC_URI[md5sum] = "065ba41828644eca5dd8163446de5d64" |
23 | SRC_URI[sha256sum] = "adaa44bdab3fa5eb352e80d8a31fdbf957b78653d0c2cd30d63e161444288e18" | ||
23 | 24 | ||
24 | EXTRA_OECONF = "--disable-acl" | 25 | EXTRA_OECONF = "--disable-acl" |
25 | EXTRA_OECONF_class-native = "--disable-acl --without-gmp" | 26 | EXTRA_OECONF_class-native = "--disable-acl --without-gmp" |
@@ -38,6 +39,11 @@ base_bindir_progs = "cat chgrp chmod chown cp date dd echo false kill ln ls mkdi | |||
38 | 39 | ||
39 | sbindir_progs= "chroot" | 40 | sbindir_progs= "chroot" |
40 | 41 | ||
42 | # Deal with a separate builddir failure if src doesn't exist when creating version.c/version.h | ||
43 | do_compile_prepend () { | ||
44 | mkdir -p ${B}/src | ||
45 | } | ||
46 | |||
41 | do_install_append() { | 47 | do_install_append() { |
42 | for i in df mktemp base64; do mv ${D}${bindir}/$i ${D}${bindir}/$i.${BPN}; done | 48 | for i in df mktemp base64; do mv ${D}${bindir}/$i ${D}${bindir}/$i.${BPN}; done |
43 | 49 | ||
diff --git a/meta/recipes-core/dbus/dbus.inc b/meta/recipes-core/dbus/dbus.inc index affffbc187..bfd11672cf 100644 --- a/meta/recipes-core/dbus/dbus.inc +++ b/meta/recipes-core/dbus/dbus.inc | |||
@@ -9,7 +9,7 @@ X11DEPENDS = "virtual/libx11 libsm" | |||
9 | DEPENDS = "expat virtual/libintl ${@base_contains('DISTRO_FEATURES', 'x11', '${X11DEPENDS}', '', d)}" | 9 | DEPENDS = "expat virtual/libintl ${@base_contains('DISTRO_FEATURES', 'x11', '${X11DEPENDS}', '', d)}" |
10 | DEPENDS_class-native = "expat-native virtual/libintl-native" | 10 | DEPENDS_class-native = "expat-native virtual/libintl-native" |
11 | DEPENDS_class-nativesdk = "nativesdk-expat virtual/nativesdk-libintl" | 11 | DEPENDS_class-nativesdk = "nativesdk-expat virtual/nativesdk-libintl" |
12 | RDEPENDS_dbus = "${@base_contains('DISTRO_FEATURES', 'ptest', 'dbus-ptest', '', d)}" | 12 | RDEPENDS_dbus = "${@base_contains('DISTRO_FEATURES', 'ptest', 'dbus-ptest-ptest', '', d)}" |
13 | RDEPENDS_class-native = "" | 13 | RDEPENDS_class-native = "" |
14 | 14 | ||
15 | INC_PR = "r6" | 15 | INC_PR = "r6" |
@@ -68,8 +68,8 @@ pkg_postinst_dbus() { | |||
68 | EXTRA_OECONF_X = "${@base_contains('DISTRO_FEATURES', 'x11', '--with-x', '--without-x', d)}" | 68 | EXTRA_OECONF_X = "${@base_contains('DISTRO_FEATURES', 'x11', '--with-x', '--without-x', d)}" |
69 | EXTRA_OECONF_X_class-native = "--without-x --disable-x11-autolaunch" | 69 | EXTRA_OECONF_X_class-native = "--without-x --disable-x11-autolaunch" |
70 | # TODO: would like to --enable-systemd but that's a circular build-dependency | 70 | # TODO: would like to --enable-systemd but that's a circular build-dependency |
71 | # between systemd <->dbus | 71 | # between systemd<->dbus |
72 | EXTRA_OECONF_SYSTEMD = "${@base_contains('DISTRO_FEATURES', 'systemd', '--with-systemdsystemunitdir=${systemd_unitdir}/system/', '', d)}" | 72 | EXTRA_OECONF_SYSTEMD = "${@base_contains('DISTRO_FEATURES', 'systemd', '--with-systemdsystemunitdir=${systemd_unitdir}/system/', '--without-systemdsystemunitdir', d)}" |
73 | 73 | ||
74 | EXTRA_OECONF = "--disable-tests \ | 74 | EXTRA_OECONF = "--disable-tests \ |
75 | --disable-checks \ | 75 | --disable-checks \ |
diff --git a/meta/recipes-core/glib-networking/glib-networking_2.28.7.bb b/meta/recipes-core/glib-networking/glib-networking_2.28.7.bb index 8c2404c1d3..17f0102f5a 100644 --- a/meta/recipes-core/glib-networking/glib-networking_2.28.7.bb +++ b/meta/recipes-core/glib-networking/glib-networking_2.28.7.bb | |||
@@ -15,7 +15,7 @@ SRC_URI = "${GNOME_MIRROR}/${BPN}/2.28/${BPN}-${PV}.tar.bz2" | |||
15 | SRC_URI[md5sum] = "c10e51571d03c10111a37bcd21fbf777" | 15 | SRC_URI[md5sum] = "c10e51571d03c10111a37bcd21fbf777" |
16 | SRC_URI[sha256sum] = "98bedfbd530c4b1b53c91025fe82290bafd289d249e4eb549c3b90d23a76021c" | 16 | SRC_URI[sha256sum] = "98bedfbd530c4b1b53c91025fe82290bafd289d249e4eb549c3b90d23a76021c" |
17 | 17 | ||
18 | EXTRA_OECONF = "--without-ca-certificates" | 18 | EXTRA_OECONF = "--without-ca-certificates --without-gnome-proxy --without-libproxy" |
19 | 19 | ||
20 | inherit autotools pkgconfig | 20 | inherit autotools pkgconfig |
21 | 21 | ||
diff --git a/meta/recipes-core/images/core-image-minimal-initramfs.bb b/meta/recipes-core/images/core-image-minimal-initramfs.bb index 7f6826ceb1..6de24b3211 100644 --- a/meta/recipes-core/images/core-image-minimal-initramfs.bb +++ b/meta/recipes-core/images/core-image-minimal-initramfs.bb | |||
@@ -17,3 +17,5 @@ IMAGE_FSTYPES = "${INITRAMFS_FSTYPES}" | |||
17 | inherit core-image | 17 | inherit core-image |
18 | 18 | ||
19 | IMAGE_ROOTFS_SIZE = "8192" | 19 | IMAGE_ROOTFS_SIZE = "8192" |
20 | |||
21 | BAD_RECOMMENDATIONS += "busybox-syslog" | ||
diff --git a/meta/recipes-core/initrdscripts/files/init-install.sh b/meta/recipes-core/initrdscripts/files/init-install.sh index 2c4486a149..d2a0db3183 100644 --- a/meta/recipes-core/initrdscripts/files/init-install.sh +++ b/meta/recipes-core/initrdscripts/files/init-install.sh | |||
@@ -57,6 +57,7 @@ echo "Installing image on /dev/${device}" | |||
57 | # | 57 | # |
58 | # The udev automounter can cause pain here, kill it | 58 | # The udev automounter can cause pain here, kill it |
59 | # | 59 | # |
60 | rm -f /etc/udev/rules.d/automount.rules | ||
60 | rm -f /etc/udev/scripts/mount* | 61 | rm -f /etc/udev/scripts/mount* |
61 | 62 | ||
62 | # | 63 | # |
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/volatiles b/meta/recipes-core/initscripts/initscripts-1.0/volatiles index f0c796c406..270f128a12 100644 --- a/meta/recipes-core/initscripts/initscripts-1.0/volatiles +++ b/meta/recipes-core/initscripts/initscripts-1.0/volatiles | |||
@@ -35,4 +35,3 @@ f root root 0664 /var/log/wtmp none | |||
35 | f root root 0664 /var/run/utmp none | 35 | f root root 0664 /var/run/utmp none |
36 | l root root 0644 /etc/resolv.conf /var/run/resolv.conf | 36 | l root root 0644 /etc/resolv.conf /var/run/resolv.conf |
37 | f root root 0644 /var/run/resolv.conf none | 37 | f root root 0644 /var/run/resolv.conf none |
38 | l root root 0755 /run /var/run | ||
diff --git a/meta/recipes-core/packagegroups/packagegroup-core-boot.bb b/meta/recipes-core/packagegroups/packagegroup-core-boot.bb index b9183a8709..9306a34840 100644 --- a/meta/recipes-core/packagegroups/packagegroup-core-boot.bb +++ b/meta/recipes-core/packagegroups/packagegroup-core-boot.bb | |||
@@ -26,8 +26,8 @@ RCONFLICTS_${PN} = "task-core-boot" | |||
26 | # Distro can override the following VIRTUAL-RUNTIME providers: | 26 | # Distro can override the following VIRTUAL-RUNTIME providers: |
27 | VIRTUAL-RUNTIME_dev_manager ?= "udev" | 27 | VIRTUAL-RUNTIME_dev_manager ?= "udev" |
28 | VIRTUAL-RUNTIME_login_manager ?= "tinylogin" | 28 | VIRTUAL-RUNTIME_login_manager ?= "tinylogin" |
29 | VIRTUAL-RUNTIME_init_manager ?= "${DISTRO_FEATURES_INITMAN}" | 29 | VIRTUAL-RUNTIME_init_manager ?= "sysvinit" |
30 | VIRTUAL-RUNTIME_initscripts ?= "${@base_contains('DISTRO_FEATURES', 'sysvinit', 'initscripts', '',d)}" | 30 | VIRTUAL-RUNTIME_initscripts ?= "initscripts" |
31 | VIRTUAL-RUNTIME_keymaps ?= "keymaps" | 31 | VIRTUAL-RUNTIME_keymaps ?= "keymaps" |
32 | 32 | ||
33 | RDEPENDS_${PN} = "\ | 33 | RDEPENDS_${PN} = "\ |
@@ -42,7 +42,6 @@ RDEPENDS_${PN} = "\ | |||
42 | ${VIRTUAL-RUNTIME_login_manager} \ | 42 | ${VIRTUAL-RUNTIME_login_manager} \ |
43 | ${VIRTUAL-RUNTIME_init_manager} \ | 43 | ${VIRTUAL-RUNTIME_init_manager} \ |
44 | ${VIRTUAL-RUNTIME_initscripts} \ | 44 | ${VIRTUAL-RUNTIME_initscripts} \ |
45 | ${@base_contains('DISTRO_FEATURES', 'systemd', 'systemd-compat-units', '',d)} \ | ||
46 | ${VIRTUAL-RUNTIME_dev_manager} \ | 45 | ${VIRTUAL-RUNTIME_dev_manager} \ |
47 | ${VIRTUAL-RUNTIME_update-alternatives} \ | 46 | ${VIRTUAL-RUNTIME_update-alternatives} \ |
48 | ${MACHINE_ESSENTIAL_EXTRA_RDEPENDS}" | 47 | ${MACHINE_ESSENTIAL_EXTRA_RDEPENDS}" |
diff --git a/meta/recipes-core/psplash/psplash_git.bb b/meta/recipes-core/psplash/psplash_git.bb index 5413b24057..2d0cae371d 100644 --- a/meta/recipes-core/psplash/psplash_git.bb +++ b/meta/recipes-core/psplash/psplash_git.bb | |||
@@ -74,12 +74,13 @@ python do_compile () { | |||
74 | import shutil, commands | 74 | import shutil, commands |
75 | 75 | ||
76 | # Build a separate executable for each splash image | 76 | # Build a separate executable for each splash image |
77 | convertscript = "%s/make-image-header.sh" % d.getVar('S', True) | ||
77 | destfile = "%s/psplash-poky-img.h" % d.getVar('S', True) | 78 | destfile = "%s/psplash-poky-img.h" % d.getVar('S', True) |
78 | localfiles = d.getVar('SPLASH_LOCALPATHS', True).split() | 79 | localfiles = d.getVar('SPLASH_LOCALPATHS', True).split() |
79 | outputfiles = d.getVar('SPLASH_INSTALL', True).split() | 80 | outputfiles = d.getVar('SPLASH_INSTALL', True).split() |
80 | for localfile, outputfile in zip(localfiles, outputfiles): | 81 | for localfile, outputfile in zip(localfiles, outputfiles): |
81 | if localfile.endswith(".png"): | 82 | if localfile.endswith(".png"): |
82 | outp = commands.getstatusoutput('./make-image-header.sh %s POKY' % localfile) | 83 | outp = commands.getstatusoutput('%s %s POKY' % (convertscript, localfile)) |
83 | print(outp[1]) | 84 | print(outp[1]) |
84 | fbase = os.path.splitext(os.path.basename(localfile))[0] | 85 | fbase = os.path.splitext(os.path.basename(localfile))[0] |
85 | shutil.copyfile("%s-img.h" % fbase, destfile) | 86 | shutil.copyfile("%s-img.h" % fbase, destfile) |
diff --git a/meta/recipes-core/systemd/systemd-compat-units.bb b/meta/recipes-core/systemd/systemd-compat-units.bb index 19a1ea1889..9b4a8a4abc 100644 --- a/meta/recipes-core/systemd/systemd-compat-units.bb +++ b/meta/recipes-core/systemd/systemd-compat-units.bb | |||
@@ -34,6 +34,7 @@ SYSTEMD_DISABLED_SYSV_SERVICES = " \ | |||
34 | hwclock \ | 34 | hwclock \ |
35 | networking \ | 35 | networking \ |
36 | syslog.busybox \ | 36 | syslog.busybox \ |
37 | dbus-1 \ | ||
37 | " | 38 | " |
38 | 39 | ||
39 | pkg_postinst_${PN} () { | 40 | pkg_postinst_${PN} () { |
diff --git a/meta/recipes-core/systemd/systemd/0001-systemd-analyze-rewrite-in-C.patch b/meta/recipes-core/systemd/systemd/0001-systemd-analyze-rewrite-in-C.patch deleted file mode 100644 index b278390fef..0000000000 --- a/meta/recipes-core/systemd/systemd/0001-systemd-analyze-rewrite-in-C.patch +++ /dev/null | |||
@@ -1,1087 +0,0 @@ | |||
1 | Upstream-Status: Pending | ||
2 | |||
3 | From 523f304facdf3dbc09dbcdcff500ddce60274987 Mon Sep 17 00:00:00 2001 | ||
4 | From: Peeters Simon <peeters.simon@gmail.com> | ||
5 | Date: Thu, 17 Jan 2013 14:34:25 -0800 | ||
6 | Subject: [PATCH] systemd-analyze: rewrite in C. | ||
7 | |||
8 | Written by Peeters Simon <peeters.simon@gmail.com>. Makefile stuff | ||
9 | and cleaned up a bit by Auke Kok <auke-jan.h.kok@intel.com>. | ||
10 | --- | ||
11 | Makefile.am | 21 +- | ||
12 | src/analyze/systemd-analyze.c | 684 +++++++++++++++++++++++++++++++++++++++++ | ||
13 | src/analyze/systemd-analyze.in | 328 -------------------- | ||
14 | 3 files changed, 694 insertions(+), 339 deletions(-) | ||
15 | create mode 100644 src/analyze/systemd-analyze.c | ||
16 | delete mode 100755 src/analyze/systemd-analyze.in | ||
17 | |||
18 | Index: systemd-197/Makefile.am | ||
19 | =================================================================== | ||
20 | --- systemd-197.orig/Makefile.am 2013-01-07 17:37:15.391966148 -0800 | ||
21 | +++ systemd-197/Makefile.am 2013-01-24 10:06:11.219490786 -0800 | ||
22 | @@ -185,7 +185,8 @@ | ||
23 | systemd-ask-password \ | ||
24 | systemd-tty-ask-password-agent \ | ||
25 | systemd-tmpfiles \ | ||
26 | - systemd-machine-id-setup | ||
27 | + systemd-machine-id-setup \ | ||
28 | + systemd-analyze | ||
29 | |||
30 | bin_PROGRAMS = \ | ||
31 | systemd-cgls \ | ||
32 | @@ -220,14 +221,16 @@ | ||
33 | systemd-fstab-generator \ | ||
34 | systemd-system-update-generator | ||
35 | |||
36 | -dist_bin_SCRIPTS = \ | ||
37 | - src/analyze/systemd-analyze | ||
38 | +systemd_analyze_SOURCES = \ | ||
39 | + src/analyze/systemd-analyze.c | ||
40 | |||
41 | -EXTRA_DIST += \ | ||
42 | - src/analyze/systemd-analyze.in | ||
43 | +systemd_analyze_CFLAGS = \ | ||
44 | + $(AM_CFLAGS) \ | ||
45 | + $(DBUS_CFLAGS) | ||
46 | |||
47 | -CLEANFILES += \ | ||
48 | - src/analyze/systemd-analyze | ||
49 | +systemd_analyze_LDADD = \ | ||
50 | + libsystemd-shared.la \ | ||
51 | + libsystemd-dbus.la | ||
52 | |||
53 | dist_bashcompletion_DATA = \ | ||
54 | shell-completion/systemd-bash-completion.sh | ||
55 | @@ -3839,10 +3842,6 @@ | ||
56 | $(SED_PROCESS) | ||
57 | $(AM_V_GEN)chmod +x $@ | ||
58 | |||
59 | -src/analyze/systemd-analyze: %: %.in Makefile | ||
60 | - $(SED_PROCESS) | ||
61 | - $(AM_V_GEN)chmod +x $@ | ||
62 | - | ||
63 | src/%.c: src/%.gperf | ||
64 | $(AM_V_at)$(MKDIR_P) $(dir $@) | ||
65 | $(AM_V_GEN)$(GPERF) < $< > $@ | ||
66 | Index: systemd-197/src/analyze/systemd-analyze.c | ||
67 | =================================================================== | ||
68 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | ||
69 | +++ systemd-197/src/analyze/systemd-analyze.c 2013-01-24 10:06:11.219490786 -0800 | ||
70 | @@ -0,0 +1,684 @@ | ||
71 | +#include <stdio.h> | ||
72 | +#include <stdlib.h> | ||
73 | +#include <getopt.h> | ||
74 | +#include <locale.h> | ||
75 | + | ||
76 | +#include "install.h" | ||
77 | +#include "log.h" | ||
78 | +#include "dbus-common.h" | ||
79 | +#include "build.h" | ||
80 | +#include "util.h" | ||
81 | + | ||
82 | +#define svg(...) printf(__VA_ARGS__) | ||
83 | + | ||
84 | +static UnitFileScope arg_scope = UNIT_FILE_SYSTEM; | ||
85 | + | ||
86 | +struct unit_times { | ||
87 | + char *name; | ||
88 | + unsigned long long int ixt; | ||
89 | + unsigned long long int iet; | ||
90 | + unsigned long long int axt; | ||
91 | + unsigned long long int aet; | ||
92 | +}; | ||
93 | + | ||
94 | + | ||
95 | +unsigned long long int property_getull( | ||
96 | + DBusConnection *bus, | ||
97 | + const char *dest, | ||
98 | + const char *path, | ||
99 | + const char *interface, | ||
100 | + const char *property) | ||
101 | +{ | ||
102 | + _cleanup_dbus_message_unref_ DBusMessage *reply = NULL; | ||
103 | + DBusMessageIter iter, sub; | ||
104 | + unsigned long long int result = 0; | ||
105 | + union { | ||
106 | + char byte; | ||
107 | + dbus_int16_t i16; | ||
108 | + dbus_uint16_t u16; | ||
109 | + dbus_int32_t i32; | ||
110 | + dbus_uint32_t u32; | ||
111 | + dbus_int64_t i64; | ||
112 | + dbus_uint64_t u64; | ||
113 | + } dbus_result; | ||
114 | + | ||
115 | + int r = bus_method_call_with_reply ( | ||
116 | + bus, | ||
117 | + dest, | ||
118 | + path, | ||
119 | + "org.freedesktop.DBus.Properties", | ||
120 | + "Get", | ||
121 | + &reply, | ||
122 | + NULL, | ||
123 | + DBUS_TYPE_STRING, &interface, | ||
124 | + DBUS_TYPE_STRING, &property, | ||
125 | + DBUS_TYPE_INVALID); | ||
126 | + if (r) | ||
127 | + goto finish; | ||
128 | + | ||
129 | + if (!dbus_message_iter_init(reply, &iter) || | ||
130 | + dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_VARIANT) | ||
131 | + goto finish; | ||
132 | + | ||
133 | + dbus_message_iter_recurse(&iter, &sub); | ||
134 | + | ||
135 | + switch(dbus_message_iter_get_arg_type(&sub)) { | ||
136 | + case DBUS_TYPE_BYTE: | ||
137 | + dbus_message_iter_get_basic(&sub, &dbus_result.byte); | ||
138 | + result = dbus_result.byte; | ||
139 | + break; | ||
140 | + case DBUS_TYPE_INT16: | ||
141 | + dbus_message_iter_get_basic(&sub, &dbus_result.i16); | ||
142 | + result = dbus_result.i16; | ||
143 | + break; | ||
144 | + case DBUS_TYPE_UINT16: | ||
145 | + dbus_message_iter_get_basic(&sub, &dbus_result.u16); | ||
146 | + result = dbus_result.u16; | ||
147 | + break; | ||
148 | + case DBUS_TYPE_INT32: | ||
149 | + dbus_message_iter_get_basic(&sub, &dbus_result.i32); | ||
150 | + result = dbus_result.i32; | ||
151 | + break; | ||
152 | + case DBUS_TYPE_UINT32: | ||
153 | + dbus_message_iter_get_basic(&sub, &dbus_result.u32); | ||
154 | + result = dbus_result.u32; | ||
155 | + break; | ||
156 | + case DBUS_TYPE_INT64: | ||
157 | + dbus_message_iter_get_basic(&sub, &dbus_result.i64); | ||
158 | + result = dbus_result.i64; | ||
159 | + break; | ||
160 | + case DBUS_TYPE_UINT64: | ||
161 | + dbus_message_iter_get_basic(&sub, &dbus_result.u64); | ||
162 | + result = dbus_result.u64; | ||
163 | + break; | ||
164 | + default: | ||
165 | + goto finish; | ||
166 | + } | ||
167 | +finish: | ||
168 | + return result; | ||
169 | +} | ||
170 | + | ||
171 | +static int compare_unit_times1(const void *a, const void *b) { | ||
172 | + const struct unit_times *u = a, *v = b; | ||
173 | + | ||
174 | + return (int)(v->aet - v->ixt) - (int)(u->aet - u->ixt); | ||
175 | +} | ||
176 | + | ||
177 | +static int compare_unit_times2(const void *a, const void *b) { | ||
178 | + const struct unit_times *u = a, *v = b; | ||
179 | + | ||
180 | + return (long long int)(u->ixt) - (long long int)(v->ixt); | ||
181 | +} | ||
182 | + | ||
183 | +int acquire_time_data(DBusConnection *bus, struct unit_times **out) | ||
184 | +{ | ||
185 | + _cleanup_dbus_message_unref_ DBusMessage *reply = NULL; | ||
186 | + DBusMessageIter iter, sub, sub2; | ||
187 | + unsigned int c = 0, n_units = 0; | ||
188 | + struct unit_times *unit_times = NULL; | ||
189 | + int r = bus_method_call_with_reply ( | ||
190 | + bus, | ||
191 | + "org.freedesktop.systemd1", | ||
192 | + "/org/freedesktop/systemd1", | ||
193 | + "org.freedesktop.systemd1.Manager", | ||
194 | + "ListUnits", | ||
195 | + &reply, | ||
196 | + NULL, | ||
197 | + DBUS_TYPE_INVALID); | ||
198 | + if (r) | ||
199 | + goto finish; | ||
200 | + | ||
201 | + if (!dbus_message_iter_init(reply, &iter) || | ||
202 | + dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_ARRAY || | ||
203 | + dbus_message_iter_get_element_type(&iter) != DBUS_TYPE_STRUCT) { | ||
204 | + log_error("Failed to parse reply."); | ||
205 | + r = -EIO; | ||
206 | + goto finish; | ||
207 | + } | ||
208 | + | ||
209 | + dbus_message_iter_recurse(&iter, &sub); | ||
210 | + | ||
211 | + while (dbus_message_iter_get_arg_type(&sub) != DBUS_TYPE_INVALID) { | ||
212 | + struct unit_times *u; | ||
213 | + char *path; | ||
214 | + | ||
215 | + if (dbus_message_iter_get_arg_type(&sub) != DBUS_TYPE_STRUCT) { | ||
216 | + log_error("Failed to parse reply."); | ||
217 | + r = -EIO; | ||
218 | + goto finish; | ||
219 | + } | ||
220 | + | ||
221 | + if (c >= n_units) { | ||
222 | + struct unit_times *w; | ||
223 | + | ||
224 | + n_units = MAX(2*c, 16); | ||
225 | + w = realloc(unit_times, sizeof(struct unit_times) * n_units); | ||
226 | + | ||
227 | + if (!w) { | ||
228 | + log_error("Failed to allocate unit array."); | ||
229 | + r = -ENOMEM; | ||
230 | + goto finish; | ||
231 | + } | ||
232 | + | ||
233 | + unit_times = w; | ||
234 | + } | ||
235 | + u = unit_times+c; | ||
236 | + | ||
237 | + dbus_message_iter_recurse(&sub, &sub2); | ||
238 | + | ||
239 | + if (bus_iter_get_basic_and_next(&sub2, DBUS_TYPE_STRING, &u->name, true) < 0 || | ||
240 | + dbus_message_iter_next(&sub2), dbus_message_iter_next(&sub2), dbus_message_iter_next(&sub2), | ||
241 | + dbus_message_iter_next(&sub2), dbus_message_iter_next(&sub2), | ||
242 | + bus_iter_get_basic_and_next(&sub2, DBUS_TYPE_OBJECT_PATH, &path, true) < 0) { | ||
243 | + log_error("Failed to parse reply."); | ||
244 | + r = -EIO; | ||
245 | + goto finish; | ||
246 | + } | ||
247 | + u->name = strdup(u->name); | ||
248 | + u->ixt = property_getull(bus, | ||
249 | + "org.freedesktop.systemd1", | ||
250 | + path, | ||
251 | + "org.freedesktop.systemd1.Unit", | ||
252 | + "InactiveExitTimestampMonotonic"); | ||
253 | + u->iet = property_getull(bus, | ||
254 | + "org.freedesktop.systemd1", | ||
255 | + path, | ||
256 | + "org.freedesktop.systemd1.Unit", | ||
257 | + "InactiveEnterTimestampMonotonic"); | ||
258 | + u->axt = property_getull(bus, | ||
259 | + "org.freedesktop.systemd1", | ||
260 | + path, | ||
261 | + "org.freedesktop.systemd1.Unit", | ||
262 | + "ActiveExitTimestampMonotonic"); | ||
263 | + u->aet = property_getull(bus, | ||
264 | + "org.freedesktop.systemd1", | ||
265 | + path, | ||
266 | + "org.freedesktop.systemd1.Unit", | ||
267 | + "ActiveEnterTimestampMonotonic"); | ||
268 | + dbus_message_iter_next(&sub); | ||
269 | + if (u->ixt == 0) | ||
270 | + continue; | ||
271 | + c++; | ||
272 | + } | ||
273 | + | ||
274 | + *out = unit_times; | ||
275 | + return c; | ||
276 | +finish: | ||
277 | + free(unit_times); | ||
278 | + return r; | ||
279 | +} | ||
280 | + | ||
281 | +static void svg_graph_box(int height, long long int begin, long long int end, float scale_x, float scale_y) | ||
282 | +{ | ||
283 | + double d = 0.0; | ||
284 | + int i = 0; | ||
285 | + | ||
286 | + /* outside box, fill */ | ||
287 | + svg("<rect class=\"box\" x=\"%.03f\" y=\"0\" width=\"%.03f\" height=\"%.03f\" />\n", | ||
288 | + 0, | ||
289 | + scale_x * (end - begin), | ||
290 | + scale_y * height); | ||
291 | + | ||
292 | + for (d = 0.000001 * begin; d <= 0.000001 * end; | ||
293 | + d += 0.1) { | ||
294 | + /* lines for each second */ | ||
295 | + if (i % 50 == 0) | ||
296 | + svg(" <line class=\"sec5\" x1=\"%.03f\" y1=\"0\" x2=\"%.03f\" y2=\"%.03f\" />\n", | ||
297 | + scale_x * d, | ||
298 | + scale_x * d, | ||
299 | + scale_y * height); | ||
300 | + else if (i % 10 == 0) | ||
301 | + svg(" <line class=\"sec1\" x1=\"%.03f\" y1=\"0\" x2=\"%.03f\" y2=\"%.03f\" />\n", | ||
302 | + scale_x * d, | ||
303 | + scale_x * d, | ||
304 | + scale_y * height); | ||
305 | + else | ||
306 | + svg(" <line class=\"sec01\" x1=\"%.03f\" y1=\"0\" x2=\"%.03f\" y2=\"%.03f\" />\n", | ||
307 | + scale_x * d, | ||
308 | + scale_x * d, | ||
309 | + scale_y * height); | ||
310 | + | ||
311 | + /* time label */ | ||
312 | + if (i % 10 == 0) | ||
313 | + svg(" <text class=\"sec\" x=\"%.03f\" y=\"%.03f\" >%.01fs</text>\n", | ||
314 | + scale_x * d, -5.0, d); | ||
315 | + | ||
316 | + i++; | ||
317 | + } | ||
318 | +} | ||
319 | + | ||
320 | +int analyze_plot(DBusConnection *bus) | ||
321 | +{ | ||
322 | + struct unit_times *times; | ||
323 | + int n = acquire_time_data(bus, ×); | ||
324 | + int m = n + 1; | ||
325 | + unsigned long long int firmware_time, loader_time, kernel_time, initrd_time, userspace_time, finish_time; | ||
326 | + long long int starttime = 0; | ||
327 | + | ||
328 | + float scale_x = 100.0; | ||
329 | + float scale_y = 20.0; | ||
330 | + | ||
331 | + if (n<=0) | ||
332 | + return -n; | ||
333 | + | ||
334 | + qsort(times, n, sizeof(struct unit_times), compare_unit_times2); | ||
335 | + | ||
336 | + firmware_time = property_getull(bus, | ||
337 | + "org.freedesktop.systemd1", | ||
338 | + "/org/freedesktop/systemd1", | ||
339 | + "org.freedesktop.systemd1.Manager", | ||
340 | + "FirmwareTimestampMonotonic"); | ||
341 | + loader_time = property_getull(bus, | ||
342 | + "org.freedesktop.systemd1", | ||
343 | + "/org/freedesktop/systemd1", | ||
344 | + "org.freedesktop.systemd1.Manager", | ||
345 | + "LoaderTimestampMonotonic"); | ||
346 | + kernel_time = property_getull(bus, | ||
347 | + "org.freedesktop.systemd1", | ||
348 | + "/org/freedesktop/systemd1", | ||
349 | + "org.freedesktop.systemd1.Manager", | ||
350 | + "KernelTimestamp"); | ||
351 | + initrd_time = property_getull(bus, | ||
352 | + "org.freedesktop.systemd1", | ||
353 | + "/org/freedesktop/systemd1", | ||
354 | + "org.freedesktop.systemd1.Manager", | ||
355 | + "InitRDTimestampMonotonic"); | ||
356 | + userspace_time = property_getull(bus, | ||
357 | + "org.freedesktop.systemd1", | ||
358 | + "/org/freedesktop/systemd1", | ||
359 | + "org.freedesktop.systemd1.Manager", | ||
360 | + "UserspaceTimestampMonotonic"); | ||
361 | + finish_time = property_getull(bus, | ||
362 | + "org.freedesktop.systemd1", | ||
363 | + "/org/freedesktop/systemd1", | ||
364 | + "org.freedesktop.systemd1.Manager", | ||
365 | + "FinishTimestampMonotonic"); | ||
366 | + | ||
367 | + | ||
368 | + if (firmware_time > 0) { | ||
369 | + m++; | ||
370 | + starttime += firmware_time - loader_time; | ||
371 | + } | ||
372 | + if (loader_time > 0) { | ||
373 | + m++; | ||
374 | + starttime += loader_time; | ||
375 | + } | ||
376 | + if (initrd_time > 0) | ||
377 | + m += 2; | ||
378 | + else if (kernel_time > 0) | ||
379 | + m++; | ||
380 | + | ||
381 | + float width = 80.0 + (scale_x * (starttime + finish_time) * 0.000001); | ||
382 | + float height = 150.0 + (m* scale_y); | ||
383 | + | ||
384 | + svg("<?xml version=\"1.0\" standalone=\"no\"?>\n"); | ||
385 | + svg("<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" "); | ||
386 | + svg("\"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n"); | ||
387 | + | ||
388 | + //svg("<g transform=\"translate(10,%d)\">\n", 1000 + 150 + (pcount * 20)); | ||
389 | + svg("<svg width=\"%.0fpx\" height=\"%.0fpx\" version=\"1.1\" ", width, height); | ||
390 | + svg("xmlns=\"http://www.w3.org/2000/svg\">\n\n"); | ||
391 | + | ||
392 | + /* write some basic info as a comment, including some help */ | ||
393 | + svg("<!-- This file is a systemd-analyze SVG file. It is best rendered in a -->\n"); | ||
394 | + svg("<!-- browser such as Chrome/Chromium, firefox. Other applications that -->\n"); | ||
395 | + svg("<!-- render these files properly but much more slow are ImageMagick, -->\n"); | ||
396 | + svg("<!-- gimp, inkscape, etc.. To display the files on your system, just -->\n"); | ||
397 | + svg("<!-- point your browser to file:///var/log/ and click. -->\n\n"); | ||
398 | + svg("<!-- this plot was generated by systemd-analyze version %-16.16s -->\n\n", VERSION); | ||
399 | + | ||
400 | + /* style sheet */ | ||
401 | + svg("<defs>\n <style type=\"text/css\">\n <![CDATA[\n"); | ||
402 | + | ||
403 | + svg(" rect { stroke-width: 1; stroke-opacity: 0; }\n"); | ||
404 | + svg(" rect.activating { fill: rgb(255,0,0); fill-opacity: 0.7; }\n"); | ||
405 | + svg(" rect.active { fill: rgb(200,150,150); fill-opacity: 0.7; }\n"); | ||
406 | + svg(" rect.deactivating { fill: rgb(150,100,100); fill-opacity: 0.7; }\n"); | ||
407 | + svg(" rect.kernel { fill: rgb(150,150,150); fill-opacity: 0.7; }\n"); | ||
408 | + svg(" rect.initrd { fill: rgb(150,150,150); fill-opacity: 0.7; }\n"); | ||
409 | + svg(" rect.firmware { fill: rgb(150,150,150); fill-opacity: 0.7; }\n"); | ||
410 | + svg(" rect.loader { fill: rgb(150,150,150); fill-opacity: 0.7; }\n"); | ||
411 | + svg(" rect.userspace { fill: rgb(150,150,150); fill-opacity: 0.7; }\n"); | ||
412 | + svg(" rect.cpu { fill: rgb(64,64,240); stroke-width: 0; fill-opacity: 0.7; }\n"); | ||
413 | + svg(" rect.wait { fill: rgb(240,240,0); stroke-width: 0; fill-opacity: 0.7; }\n"); | ||
414 | + svg(" rect.bi { fill: rgb(240,128,128); stroke-width: 0; fill-opacity: 0.7; }\n"); | ||
415 | + svg(" rect.bo { fill: rgb(192,64,64); stroke-width: 0; fill-opacity: 0.7; }\n"); | ||
416 | + svg(" rect.ps { fill: rgb(192,192,192); stroke: rgb(128,128,128); fill-opacity: 0.7; }\n"); | ||
417 | + svg(" rect.krnl { fill: rgb(240,240,0); stroke: rgb(128,128,128); fill-opacity: 0.7; }\n"); | ||
418 | + svg(" rect.box { fill: rgb(240,240,240); stroke: rgb(192,192,192); }\n"); | ||
419 | + svg(" rect.clrw { stroke-width: 0; fill-opacity: 0.7;}\n"); | ||
420 | + svg(" line { stroke: rgb(64,64,64); stroke-width: 1; }\n"); | ||
421 | + svg("// line.sec1 { }\n"); | ||
422 | + svg(" line.sec5 { stroke-width: 2; }\n"); | ||
423 | + svg(" line.sec01 { stroke: rgb(224,224,224); stroke-width: 1; }\n"); | ||
424 | + svg(" line.dot { stroke-dasharray: 2 4; }\n"); | ||
425 | + svg(" line.idle { stroke: rgb(64,64,64); stroke-dasharray: 10 6; stroke-opacity: 0.7; }\n"); | ||
426 | + | ||
427 | + svg(" .run { font-size: 8; font-style: italic; }\n"); | ||
428 | + svg(" text { font-family: Verdana, Helvetica; font-size: 10; }\n"); | ||
429 | + svg(" text.sec { font-size: 8; }\n"); | ||
430 | + svg(" text.t1 { font-size: 24; }\n"); | ||
431 | + svg(" text.t2 { font-size: 12; }\n"); | ||
432 | + svg(" text.idle { font-size: 18; }\n"); | ||
433 | + | ||
434 | + svg(" ]]>\n </style>\n</defs>\n\n"); | ||
435 | + | ||
436 | + svg("<text x=\"20\" y=\"40\">Startup finished in "); | ||
437 | + | ||
438 | + if (firmware_time > 0) | ||
439 | + svg("%llums (firmware) + ", (firmware_time - loader_time) / 1000); | ||
440 | + if (loader_time > 0) | ||
441 | + svg("%llums (loader) + ", loader_time / 1000); | ||
442 | + if (initrd_time > 0) | ||
443 | + svg("%llums (kernel) + %llums (initrd) + ", initrd_time / 1000, (userspace_time - initrd_time) / 1000); | ||
444 | + else if (kernel_time > 0) | ||
445 | + svg("%llums (kernel) + ", userspace_time / 1000); | ||
446 | + svg("%llums (userspace) ", (finish_time - userspace_time) / 1000); | ||
447 | + if (kernel_time > 0) | ||
448 | + svg("= %llums\n", (firmware_time + finish_time) / 1000); | ||
449 | + else | ||
450 | + svg("= %llums\n", (finish_time - userspace_time) / 1000); | ||
451 | + svg("</text>"); | ||
452 | + | ||
453 | + svg("<g transform=\"translate(20,100)\">\n"); | ||
454 | + svg_graph_box(m, starttime, finish_time, scale_x, scale_y); | ||
455 | + | ||
456 | + float top = 0.0; | ||
457 | + | ||
458 | + if (firmware_time > 0) { | ||
459 | + svg(" <rect class=\"firmware\" x=\"%.03f\" y=\"%.03f\" width=\"%.03f\" height=\"%.03f\" />\n", | ||
460 | + scale_x * (starttime - firmware_time) * 0.000001, | ||
461 | + top, | ||
462 | + scale_x * (firmware_time - loader_time) * 0.000001, | ||
463 | + scale_y - 1.0); | ||
464 | + svg(" <text x=\"%.03f\" y=\"%.03f\">firmware</text>\n", | ||
465 | + scale_x * (starttime - firmware_time) * 0.000001 + 5.0, | ||
466 | + top + 14.0); | ||
467 | + top += scale_y; | ||
468 | + } | ||
469 | + if (loader_time > 0) { | ||
470 | + svg(" <rect class=\"loader\" x=\"%.03f\" y=\"%.03f\" width=\"%.03f\" height=\"%.03f\" />\n", | ||
471 | + scale_x * (starttime - loader_time) * 0.000001, | ||
472 | + top, | ||
473 | + scale_x * (loader_time) * 0.000001, | ||
474 | + scale_y - 1.0); | ||
475 | + svg(" <text x=\"%.03f\" y=\"%.03f\">loader</text>\n", | ||
476 | + scale_x * (starttime - loader_time) * 0.000001 + 5.0, | ||
477 | + top + 14.0); | ||
478 | + top += scale_y; | ||
479 | + } | ||
480 | + if (initrd_time > 0) { | ||
481 | + svg(" <rect class=\"kernel\" x=\"%.03f\" y=\"%.03f\" width=\"%.03f\" height=\"%.03f\" />\n", | ||
482 | + scale_x * (starttime) * 0.000001, | ||
483 | + top, | ||
484 | + scale_x * (initrd_time) * 0.000001, | ||
485 | + scale_y - 1.0); | ||
486 | + svg(" <text x=\"%.03f\" y=\"%.03f\">kernel</text>\n", | ||
487 | + scale_x * (starttime) * 0.000001 + 5.0, | ||
488 | + top + 14.0); | ||
489 | + top += scale_y; | ||
490 | + svg(" <rect class=\"inird\" x=\"%.03f\" y=\"%.03f\" width=\"%.03f\" height=\"%.03f\" />\n", | ||
491 | + scale_x * (starttime + initrd_time) * 0.000001, | ||
492 | + top, | ||
493 | + scale_x * (userspace_time - initrd_time) * 0.000001, | ||
494 | + scale_y - 1.0); | ||
495 | + svg(" <text x=\"%.03f\" y=\"%.03f\">initrd</text>\n", | ||
496 | + scale_x * (starttime + initrd_time) * 0.000001 + 5.0, | ||
497 | + top + 14.0); | ||
498 | + top += scale_y; | ||
499 | + } else if (kernel_time > 0) { | ||
500 | + svg(" <rect class=\"kernel\" x=\"%.03f\" y=\"%.03f\" width=\"%.03f\" height=\"%.03f\" />\n", | ||
501 | + scale_x * (starttime) * 0.000001, | ||
502 | + top, | ||
503 | + scale_x * (userspace_time) * 0.000001, | ||
504 | + scale_y - 1.0); | ||
505 | + svg(" <text x=\"%.03f\" y=\"%.03f\">kernel</text>\n", | ||
506 | + scale_x * (starttime) * 0.000001 + 5.0, | ||
507 | + top + 14.0); | ||
508 | + top += scale_y; | ||
509 | + } | ||
510 | + | ||
511 | + svg(" <rect class=\"userspace\" x=\"%.03f\" y=\"%.03f\" width=\"%.03f\" height=\"%.03f\" />\n", | ||
512 | + scale_x * (userspace_time) * 0.000001, | ||
513 | + top, | ||
514 | + scale_x * (finish_time - userspace_time) * 0.000001, | ||
515 | + scale_y - 1.0); | ||
516 | + svg(" <text x=\"%.03f\" y=\"%.03f\">userspace</text>\n", | ||
517 | + scale_x * (userspace_time) * 0.000001 + 5.0, | ||
518 | + top + 14.0); | ||
519 | + top += scale_y; | ||
520 | + | ||
521 | + | ||
522 | + for (int i=0; i < n; i++) { | ||
523 | + //draw times[i] | ||
524 | + | ||
525 | + bool drawn = false; | ||
526 | + | ||
527 | + if (times[i].ixt >= userspace_time && times[i].ixt <= finish_time) { | ||
528 | + unsigned long long int end = finish_time; | ||
529 | + if (times[i].aet >= times[i].ixt && times[i].aet < end) | ||
530 | + end = times[i].aet; | ||
531 | + if (times[i].axt >= times[i].ixt && times[i].axt < end) | ||
532 | + end = times[i].axt; | ||
533 | + if (times[i].iet >= times[i].ixt && times[i].iet < end) | ||
534 | + end = times[i].iet; | ||
535 | + svg(" <rect class=\"activating\" x=\"%.03f\" y=\"%.03f\" width=\"%.03f\" height=\"%.03f\" />\n", | ||
536 | + scale_x * (starttime + times[i].ixt) * 0.000001, | ||
537 | + top + (scale_y * i), | ||
538 | + scale_x * (end - times[i].ixt) * 0.000001, | ||
539 | + scale_y - 1.0); | ||
540 | + } | ||
541 | + if (times[i].aet >= userspace_time && times[i].aet <= finish_time) { | ||
542 | + unsigned long long int end = finish_time; | ||
543 | + if (times[i].axt >= times[i].aet && times[i].axt < end) | ||
544 | + end = times[i].axt; | ||
545 | + if (times[i].iet >= times[i].aet && times[i].iet < end) | ||
546 | + end = times[i].iet; | ||
547 | + svg(" <rect class=\"active\" x=\"%.03f\" y=\"%.03f\" width=\"%.03f\" height=\"%.03f\" />\n", | ||
548 | + scale_x * (starttime + times[i].aet) * 0.000001, | ||
549 | + top + (scale_y * i), | ||
550 | + scale_x * (end - times[i].aet) * 0.000001, | ||
551 | + scale_y - 1.0); | ||
552 | + } | ||
553 | + if (times[i].axt >= userspace_time && times[i].axt <= finish_time) { | ||
554 | + unsigned long long int end = finish_time; | ||
555 | + if (times[i].iet >= times[i].axt && times[i].iet < end) | ||
556 | + end = times[i].iet; | ||
557 | + svg(" <rect class=\"deactivating\" x=\"%.03f\" y=\"%.03f\" width=\"%.03f\" height=\"%.03f\" />\n", | ||
558 | + scale_x * (starttime + times[i].axt) * 0.000001, | ||
559 | + top + (scale_y * i), | ||
560 | + scale_x * (end - times[i].axt) * 0.000001, | ||
561 | + scale_y - 1.0); | ||
562 | + } | ||
563 | + | ||
564 | + svg(" <text x=\"%.03f\" y=\"%.03f\">%s</text>\n", | ||
565 | + (starttime + times[i].ixt) * scale_x * 0.000001 + 5.0, | ||
566 | + top + (scale_y * i) + 14.0, | ||
567 | + times[i].name); | ||
568 | + | ||
569 | + } | ||
570 | + svg("</g>\n\n"); | ||
571 | + | ||
572 | + svg("</svg>"); | ||
573 | + return 0; | ||
574 | +} | ||
575 | + | ||
576 | +int analyze_blame(DBusConnection *bus) | ||
577 | +{ | ||
578 | + struct unit_times *times; | ||
579 | + int n = acquire_time_data(bus, ×); | ||
580 | + if (n<=0) | ||
581 | + return -n; | ||
582 | + | ||
583 | + qsort(times, n, sizeof(struct unit_times), compare_unit_times1); | ||
584 | + | ||
585 | + for (int i = 0; i < n; i++) { | ||
586 | + if (times[i].ixt <= 0 || times[i].aet <= 0) | ||
587 | + continue; | ||
588 | + if (times[i].aet <= times[i].ixt) | ||
589 | + continue; | ||
590 | + printf("%6llums %s\n", (times[i].aet - times[i].ixt) / 1000, times[i].name); | ||
591 | + } | ||
592 | + return 0; | ||
593 | +} | ||
594 | +int analyze_time(DBusConnection *bus) | ||
595 | +{ | ||
596 | + unsigned long long firmware_time, loader_time, kernel_time, initrd_time, userspace_time, finish_time; | ||
597 | + | ||
598 | + firmware_time = property_getull(bus, | ||
599 | + "org.freedesktop.systemd1", | ||
600 | + "/org/freedesktop/systemd1", | ||
601 | + "org.freedesktop.systemd1.Manager", | ||
602 | + "FirmwareTimestampMonotonic"); | ||
603 | + loader_time = property_getull(bus, | ||
604 | + "org.freedesktop.systemd1", | ||
605 | + "/org/freedesktop/systemd1", | ||
606 | + "org.freedesktop.systemd1.Manager", | ||
607 | + "LoaderTimestampMonotonic"); | ||
608 | + kernel_time = property_getull(bus, | ||
609 | + "org.freedesktop.systemd1", | ||
610 | + "/org/freedesktop/systemd1", | ||
611 | + "org.freedesktop.systemd1.Manager", | ||
612 | + "KernelTimestamp"); | ||
613 | + initrd_time = property_getull(bus, | ||
614 | + "org.freedesktop.systemd1", | ||
615 | + "/org/freedesktop/systemd1", | ||
616 | + "org.freedesktop.systemd1.Manager", | ||
617 | + "InitRDTimestampMonotonic"); | ||
618 | + userspace_time = property_getull(bus, | ||
619 | + "org.freedesktop.systemd1", | ||
620 | + "/org/freedesktop/systemd1", | ||
621 | + "org.freedesktop.systemd1.Manager", | ||
622 | + "UserspaceTimestampMonotonic"); | ||
623 | + finish_time = property_getull(bus, | ||
624 | + "org.freedesktop.systemd1", | ||
625 | + "/org/freedesktop/systemd1", | ||
626 | + "org.freedesktop.systemd1.Manager", | ||
627 | + "FinishTimestampMonotonic"); | ||
628 | + | ||
629 | + printf("Startup finished in "); | ||
630 | + | ||
631 | + if (firmware_time > 0) | ||
632 | + printf("%llums (firmware) + ", (firmware_time - loader_time) / 1000); | ||
633 | + if (loader_time > 0) | ||
634 | + printf("%llums (loader) + ", loader_time / 1000); | ||
635 | + if (initrd_time > 0) | ||
636 | + printf("%llums (kernel) + %llums (initrd) + ", initrd_time / 1000, (userspace_time - initrd_time) / 1000); | ||
637 | + else if (kernel_time > 0) | ||
638 | + printf("%llums (kernel) + ", userspace_time / 1000); | ||
639 | + | ||
640 | + printf("%llums (userspace) ", (finish_time - userspace_time) / 1000); | ||
641 | + | ||
642 | + if (kernel_time > 0) | ||
643 | + printf("= %llums\n", (firmware_time + finish_time) / 1000); | ||
644 | + else | ||
645 | + printf("= %llums\n", (finish_time - userspace_time) / 1000); | ||
646 | + | ||
647 | + return 0; | ||
648 | +} | ||
649 | + | ||
650 | +void analyze_help() | ||
651 | +{ | ||
652 | + printf("%s [OPTIONS...] {COMMAND} ...\n\n" | ||
653 | + " -h --help Show this help\n" | ||
654 | + " --version Show package version\n" | ||
655 | + " --system Connect to system manager\n" | ||
656 | + " --user Connect to user service manager\n\n" | ||
657 | + "Commands:\n" | ||
658 | + " time\n" | ||
659 | + " blame\n", | ||
660 | + program_invocation_short_name); | ||
661 | + | ||
662 | +} | ||
663 | + | ||
664 | +static int parse_argv(int argc, char *argv[]) | ||
665 | +{ | ||
666 | + enum { | ||
667 | + ARG_VERSION = 0x100, | ||
668 | + ARG_USER, | ||
669 | + ARG_SYSTEM | ||
670 | + }; | ||
671 | + | ||
672 | + static const struct option options[] = { | ||
673 | + { "help", no_argument, NULL, 'h' }, | ||
674 | + { "version", no_argument, NULL, ARG_VERSION }, | ||
675 | + { "user", no_argument, NULL, ARG_USER }, | ||
676 | + { "system", no_argument, NULL, ARG_SYSTEM }, | ||
677 | + { NULL, 0, NULL, 0 } | ||
678 | + }; | ||
679 | + | ||
680 | + int c; | ||
681 | + | ||
682 | + assert(argc >= 0); | ||
683 | + assert(argv); | ||
684 | + | ||
685 | + while ((c = getopt_long(argc, argv, "h", options, NULL)) >= 0) { | ||
686 | + switch (c) { | ||
687 | + case 'h': | ||
688 | + analyze_help(); | ||
689 | + return 0; | ||
690 | + case ARG_VERSION: | ||
691 | + puts(PACKAGE_STRING); | ||
692 | + puts(SYSTEMD_FEATURES); | ||
693 | + return 0; | ||
694 | + case ARG_USER: | ||
695 | + arg_scope = UNIT_FILE_USER; | ||
696 | + break; | ||
697 | + case ARG_SYSTEM: | ||
698 | + arg_scope = UNIT_FILE_SYSTEM; | ||
699 | + break; | ||
700 | + | ||
701 | + case '?': | ||
702 | + return -EINVAL; | ||
703 | + | ||
704 | + default: | ||
705 | + log_error("Unknown option code '%c'.", c); | ||
706 | + return -EINVAL; | ||
707 | + } | ||
708 | + } | ||
709 | + return 1; | ||
710 | +} | ||
711 | + | ||
712 | + | ||
713 | +int main(int argc, char*argv[]) { | ||
714 | + int r, retval = EXIT_FAILURE; | ||
715 | + DBusConnection *bus = NULL; | ||
716 | + DBusError error; | ||
717 | + bool private_bus = false; | ||
718 | + | ||
719 | + dbus_error_init(&error); | ||
720 | + | ||
721 | + setlocale(LC_ALL, ""); | ||
722 | + log_parse_environment(); | ||
723 | + log_open(); | ||
724 | + | ||
725 | + r = parse_argv(argc, argv); | ||
726 | + if (r < 0) | ||
727 | + goto finish; | ||
728 | + else if (r == 0) { | ||
729 | + retval = EXIT_SUCCESS; | ||
730 | + goto finish; | ||
731 | + } | ||
732 | + | ||
733 | + bus_connect(arg_scope == UNIT_FILE_SYSTEM ? DBUS_BUS_SYSTEM : DBUS_BUS_SESSION, &bus, &private_bus, &error); | ||
734 | + | ||
735 | + if (!argv[optind] || streq(argv[optind], "time")) | ||
736 | + retval = analyze_time(bus); | ||
737 | + else if (streq(argv[optind], "blame")) | ||
738 | + retval = analyze_blame(bus); | ||
739 | + else if (streq(argv[optind], "plot")) | ||
740 | + retval = analyze_plot(bus); | ||
741 | + else | ||
742 | + log_error("Unknown operation '%s'.", argv[optind]); | ||
743 | + | ||
744 | +finish: | ||
745 | + if (bus) { | ||
746 | + dbus_connection_flush(bus); | ||
747 | + dbus_connection_close(bus); | ||
748 | + dbus_connection_unref(bus); | ||
749 | + } | ||
750 | + | ||
751 | + dbus_error_free(&error); | ||
752 | + | ||
753 | + return retval; | ||
754 | +} | ||
755 | Index: systemd-197/src/analyze/systemd-analyze.in | ||
756 | =================================================================== | ||
757 | --- systemd-197.orig/src/analyze/systemd-analyze.in 2013-01-07 16:27:01.000000000 -0800 | ||
758 | +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 | ||
759 | @@ -1,328 +0,0 @@ | ||
760 | -#!@PYTHON_BINARY@ | ||
761 | -# -*-python-*- | ||
762 | - | ||
763 | -# This file is part of systemd. | ||
764 | -# | ||
765 | -# Copyright 2010-2013 Lennart Poettering | ||
766 | -# | ||
767 | -# systemd is free software; you can redistribute it and/or modify it | ||
768 | -# under the terms of the GNU Lesser General Public License as published by | ||
769 | -# the Free Software Foundation; either version 2.1 of the License, or | ||
770 | -# (at your option) any later version. | ||
771 | -# | ||
772 | -# systemd is distributed in the hope that it will be useful, but | ||
773 | -# WITHOUT ANY WARRANTY; without even the implied warranty of | ||
774 | -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
775 | -# Lesser General Public License for more details. | ||
776 | -# | ||
777 | -# You should have received a copy of the GNU Lesser General Public License | ||
778 | -# along with systemd; If not, see <http://www.gnu.org/licenses/>. | ||
779 | - | ||
780 | -import sys, os | ||
781 | -import argparse | ||
782 | -from gi.repository import Gio | ||
783 | -try: | ||
784 | - import cairo | ||
785 | -except ImportError: | ||
786 | - cairo = None | ||
787 | - | ||
788 | -def acquire_time_data(): | ||
789 | - manager = Gio.DBusProxy.new_for_bus_sync(bus, Gio.DBusProxyFlags.NONE, | ||
790 | - None, 'org.freedesktop.systemd1', '/org/freedesktop/systemd1', 'org.freedesktop.systemd1.Manager', None) | ||
791 | - units = manager.ListUnits() | ||
792 | - | ||
793 | - l = [] | ||
794 | - | ||
795 | - for i in units: | ||
796 | - if i[5] != "": | ||
797 | - continue | ||
798 | - | ||
799 | - properties = Gio.DBusProxy.new_for_bus_sync(bus, Gio.DBusProxyFlags.NONE, | ||
800 | - None, 'org.freedesktop.systemd1', i[6], 'org.freedesktop.DBus.Properties', None) | ||
801 | - | ||
802 | - ixt = properties.Get('(ss)', 'org.freedesktop.systemd1.Unit', 'InactiveExitTimestampMonotonic') | ||
803 | - aet = properties.Get('(ss)', 'org.freedesktop.systemd1.Unit', 'ActiveEnterTimestampMonotonic') | ||
804 | - axt = properties.Get('(ss)', 'org.freedesktop.systemd1.Unit', 'ActiveExitTimestampMonotonic') | ||
805 | - iet = properties.Get('(ss)', 'org.freedesktop.systemd1.Unit', 'InactiveEnterTimestampMonotonic') | ||
806 | - | ||
807 | - l.append((str(i[0]), ixt, aet, axt, iet)) | ||
808 | - | ||
809 | - return l | ||
810 | - | ||
811 | -def acquire_start_time(): | ||
812 | - properties = Gio.DBusProxy.new_for_bus_sync(bus, Gio.DBusProxyFlags.NONE, | ||
813 | - None, 'org.freedesktop.systemd1', '/org/freedesktop/systemd1', 'org.freedesktop.DBus.Properties', None) | ||
814 | - | ||
815 | - # Note that the firmware/loader times are returned as positive | ||
816 | - # values but are actually considered negative from the point | ||
817 | - # in time of kernel initialization. Also, the monotonic kernel | ||
818 | - # time will always be 0 since that's the epoch of the | ||
819 | - # monotonic clock. Since we want to know whether the kernel | ||
820 | - # timestamp is set at all we will instead ask for the realtime | ||
821 | - # clock for this timestamp. | ||
822 | - | ||
823 | - firmware_time = properties.Get('(ss)', 'org.freedesktop.systemd1.Manager', 'FirmwareTimestampMonotonic') | ||
824 | - loader_time = properties.Get('(ss)', 'org.freedesktop.systemd1.Manager', 'LoaderTimestampMonotonic') | ||
825 | - kernel_time = properties.Get('(ss)', 'org.freedesktop.systemd1.Manager', 'KernelTimestamp') | ||
826 | - initrd_time = properties.Get('(ss)', 'org.freedesktop.systemd1.Manager', 'InitRDTimestampMonotonic') | ||
827 | - userspace_time = properties.Get('(ss)', 'org.freedesktop.systemd1.Manager', 'UserspaceTimestampMonotonic') | ||
828 | - finish_time = properties.Get('(ss)', 'org.freedesktop.systemd1.Manager', 'FinishTimestampMonotonic') | ||
829 | - | ||
830 | - if finish_time == 0: | ||
831 | - sys.exit("Bootup is not yet finished. Please try again later.") | ||
832 | - | ||
833 | - assert firmware_time >= loader_time | ||
834 | - assert initrd_time <= userspace_time | ||
835 | - assert userspace_time <= finish_time | ||
836 | - | ||
837 | - return firmware_time, loader_time, kernel_time, initrd_time, userspace_time, finish_time | ||
838 | - | ||
839 | -def draw_box(context, j, k, l, m, r = 0, g = 0, b = 0): | ||
840 | - context.save() | ||
841 | - context.set_source_rgb(r, g, b) | ||
842 | - context.rectangle(j, k, l, m) | ||
843 | - context.fill() | ||
844 | - context.restore() | ||
845 | - | ||
846 | -def draw_text(context, x, y, text, size = 12, r = 0, g = 0, b = 0, vcenter = 0.5, hcenter = 0.5): | ||
847 | - context.save() | ||
848 | - | ||
849 | - context.set_source_rgb(r, g, b) | ||
850 | - context.select_font_face("Sans", cairo.FONT_SLANT_NORMAL, cairo.FONT_WEIGHT_NORMAL) | ||
851 | - context.set_font_size(size) | ||
852 | - | ||
853 | - if vcenter or hcenter: | ||
854 | - x_bearing, y_bearing, width, height = context.text_extents(text)[:4] | ||
855 | - | ||
856 | - if hcenter: | ||
857 | - x = x - width*hcenter - x_bearing | ||
858 | - | ||
859 | - if vcenter: | ||
860 | - y = y - height*vcenter - y_bearing | ||
861 | - | ||
862 | - context.move_to(x, y) | ||
863 | - context.show_text(text) | ||
864 | - | ||
865 | - context.restore() | ||
866 | - | ||
867 | -def time(): | ||
868 | - | ||
869 | - firmware_time, loader_time, kernel_time, initrd_time, userspace_time, finish_time = acquire_start_time() | ||
870 | - | ||
871 | - sys.stdout.write("Startup finished in ") | ||
872 | - | ||
873 | - if firmware_time > 0: | ||
874 | - sys.stdout.write("%lums (firmware) + " % ((firmware_time - loader_time) / 1000)) | ||
875 | - if loader_time > 0: | ||
876 | - sys.stdout.write("%lums (loader) + " % (loader_time / 1000)) | ||
877 | - if initrd_time > 0: | ||
878 | - sys.stdout.write("%lums (kernel) + %lums (initrd) + " % (initrd_time / 1000, (userspace_time - initrd_time) / 1000)) | ||
879 | - elif kernel_time > 0: | ||
880 | - sys.stdout.write("%lums (kernel) + " % (userspace_time / 1000)) | ||
881 | - | ||
882 | - sys.stdout.write("%lums (userspace) " % ((finish_time - userspace_time) / 1000)) | ||
883 | - | ||
884 | - if kernel_time > 0: | ||
885 | - sys.stdout.write("= %lums\n" % ((firmware_time + finish_time) / 1000)) | ||
886 | - else: | ||
887 | - sys.stdout.write("= %lums\n" % ((finish_time - userspace_time) / 1000)) | ||
888 | - | ||
889 | -def blame(): | ||
890 | - | ||
891 | - data = acquire_time_data() | ||
892 | - s = sorted(data, key = lambda i: i[2] - i[1], reverse = True) | ||
893 | - | ||
894 | - for name, ixt, aet, axt, iet in s: | ||
895 | - | ||
896 | - if ixt <= 0 or aet <= 0: | ||
897 | - continue | ||
898 | - | ||
899 | - if aet <= ixt: | ||
900 | - continue | ||
901 | - | ||
902 | - sys.stdout.write("%6lums %s\n" % ((aet - ixt) / 1000, name)) | ||
903 | - | ||
904 | -def plot(): | ||
905 | - if cairo is None: | ||
906 | - sys.exit("Failed to initilize python-cairo required for 'plot' verb.") | ||
907 | - firmware_time, loader_time, kernel_time, initrd_time, userspace_time, finish_time = acquire_start_time() | ||
908 | - data = acquire_time_data() | ||
909 | - s = sorted(data, key = lambda i: i[1]) | ||
910 | - | ||
911 | - # Account for kernel and initramfs bars if they exist | ||
912 | - if initrd_time > 0: | ||
913 | - count = 3 | ||
914 | - else: | ||
915 | - count = 2 | ||
916 | - | ||
917 | - for name, ixt, aet, axt, iet in s: | ||
918 | - | ||
919 | - if (ixt >= userspace_time and ixt <= finish_time) or \ | ||
920 | - (aet >= userspace_time and aet <= finish_time) or \ | ||
921 | - (axt >= userspace_time and axt <= finish_time): | ||
922 | - count += 1 | ||
923 | - | ||
924 | - border = 100 | ||
925 | - bar_height = 20 | ||
926 | - bar_space = bar_height * 0.1 | ||
927 | - | ||
928 | - # 1000px = 10s, 1px = 10ms | ||
929 | - width = finish_time/10000 + border*2 | ||
930 | - height = count * (bar_height + bar_space) + border * 2 | ||
931 | - | ||
932 | - if width < 1000: | ||
933 | - width = 1000 | ||
934 | - | ||
935 | - surface = cairo.SVGSurface(sys.stdout, width, height) | ||
936 | - context = cairo.Context(surface) | ||
937 | - | ||
938 | - draw_box(context, 0, 0, width, height, 1, 1, 1) | ||
939 | - | ||
940 | - context.translate(border + 0.5, border + 0.5) | ||
941 | - | ||
942 | - context.save() | ||
943 | - context.set_line_width(1) | ||
944 | - context.set_source_rgb(0.7, 0.7, 0.7) | ||
945 | - | ||
946 | - for x in range(0, int(finish_time/10000) + 100, 100): | ||
947 | - context.move_to(x, 0) | ||
948 | - context.line_to(x, height-border*2) | ||
949 | - | ||
950 | - context.move_to(0, 0) | ||
951 | - context.line_to(width-border*2, 0) | ||
952 | - | ||
953 | - context.move_to(0, height-border*2) | ||
954 | - context.line_to(width-border*2, height-border*2) | ||
955 | - | ||
956 | - context.stroke() | ||
957 | - context.restore() | ||
958 | - | ||
959 | - osrel = "Linux" | ||
960 | - if os.path.exists("/etc/os-release"): | ||
961 | - for line in open("/etc/os-release"): | ||
962 | - if line.startswith('PRETTY_NAME='): | ||
963 | - osrel = line[12:] | ||
964 | - osrel = osrel.strip('\"\n') | ||
965 | - break | ||
966 | - | ||
967 | - banner = "{} {} ({} {}) {}".format(osrel, *(os.uname()[1:5])) | ||
968 | - draw_text(context, 0, -15, banner, hcenter = 0, vcenter = 1) | ||
969 | - | ||
970 | - for x in range(0, int(finish_time/10000) + 100, 100): | ||
971 | - draw_text(context, x, -5, "%lus" % (x/100), vcenter = 0, hcenter = 0) | ||
972 | - | ||
973 | - y = 0 | ||
974 | - | ||
975 | - # draw boxes for kernel and initramfs boot time | ||
976 | - if initrd_time > 0: | ||
977 | - draw_box(context, 0, y, initrd_time/10000, bar_height, 0.7, 0.7, 0.7) | ||
978 | - draw_text(context, 10, y + bar_height/2, "kernel", hcenter = 0) | ||
979 | - y += bar_height + bar_space | ||
980 | - | ||
981 | - draw_box(context, initrd_time/10000, y, userspace_time/10000-initrd_time/10000, bar_height, 0.7, 0.7, 0.7) | ||
982 | - draw_text(context, initrd_time/10000 + 10, y + bar_height/2, "initramfs", hcenter = 0) | ||
983 | - y += bar_height + bar_space | ||
984 | - | ||
985 | - else: | ||
986 | - draw_box(context, 0, y, userspace_time/10000, bar_height, 0.6, 0.6, 0.6) | ||
987 | - draw_text(context, 10, y + bar_height/2, "kernel", hcenter = 0) | ||
988 | - y += bar_height + bar_space | ||
989 | - | ||
990 | - draw_box(context, userspace_time/10000, y, finish_time/10000-userspace_time/10000, bar_height, 0.7, 0.7, 0.7) | ||
991 | - draw_text(context, userspace_time/10000 + 10, y + bar_height/2, "userspace", hcenter = 0) | ||
992 | - y += bar_height + bar_space | ||
993 | - | ||
994 | - for name, ixt, aet, axt, iet in s: | ||
995 | - | ||
996 | - drawn = False | ||
997 | - left = -1 | ||
998 | - | ||
999 | - if ixt >= userspace_time and ixt <= finish_time: | ||
1000 | - | ||
1001 | - # Activating | ||
1002 | - a = ixt | ||
1003 | - b = min(filter(lambda x: x >= ixt, (aet, axt, iet, finish_time))) - ixt | ||
1004 | - | ||
1005 | - draw_box(context, a/10000, y, b/10000, bar_height, 1, 0, 0) | ||
1006 | - drawn = True | ||
1007 | - | ||
1008 | - if left < 0: | ||
1009 | - left = a | ||
1010 | - | ||
1011 | - if aet >= userspace_time and aet <= finish_time: | ||
1012 | - | ||
1013 | - # Active | ||
1014 | - a = aet | ||
1015 | - b = min(filter(lambda x: x >= aet, (axt, iet, finish_time))) - aet | ||
1016 | - | ||
1017 | - draw_box(context, a/10000, y, b/10000, bar_height, .8, .6, .6) | ||
1018 | - drawn = True | ||
1019 | - | ||
1020 | - if left < 0: | ||
1021 | - left = a | ||
1022 | - | ||
1023 | - if axt >= userspace_time and axt <= finish_time: | ||
1024 | - | ||
1025 | - # Deactivating | ||
1026 | - a = axt | ||
1027 | - b = min(filter(lambda x: x >= axt, (iet, finish_time))) - axt | ||
1028 | - | ||
1029 | - draw_box(context, a/10000, y, b/10000, bar_height, .6, .4, .4) | ||
1030 | - drawn = True | ||
1031 | - | ||
1032 | - if left < 0: | ||
1033 | - left = a | ||
1034 | - | ||
1035 | - if drawn: | ||
1036 | - x = left/10000 | ||
1037 | - | ||
1038 | - if x < width/2-border: | ||
1039 | - draw_text(context, x + 10, y + bar_height/2, name, hcenter = 0) | ||
1040 | - else: | ||
1041 | - draw_text(context, x - 10, y + bar_height/2, name, hcenter = 1) | ||
1042 | - | ||
1043 | - y += bar_height + bar_space | ||
1044 | - | ||
1045 | - draw_text(context, 0, height-border*2, "Legend: Red = Activating; Pink = Active; Dark Pink = Deactivating", hcenter = 0, vcenter = -1) | ||
1046 | - | ||
1047 | - if initrd_time > 0: | ||
1048 | - draw_text(context, 0, height-border*2 + bar_height, "Startup finished in %lums (kernel) + %lums (initramfs) + %lums (userspace) = %lums" % ( \ | ||
1049 | - initrd_time/1000, \ | ||
1050 | - (userspace_time - initrd_time)/1000, \ | ||
1051 | - (finish_time - userspace_time)/1000, \ | ||
1052 | - finish_time/1000), hcenter = 0, vcenter = -1) | ||
1053 | - else: | ||
1054 | - draw_text(context, 0, height-border*2 + bar_height, "Startup finished in %lums (kernel) + %lums (userspace) = %lums" % ( \ | ||
1055 | - userspace_time/1000, \ | ||
1056 | - (finish_time - userspace_time)/1000, \ | ||
1057 | - finish_time/1000), hcenter = 0, vcenter = -1) | ||
1058 | - | ||
1059 | - surface.finish() | ||
1060 | - | ||
1061 | -parser = argparse.ArgumentParser(formatter_class=argparse.RawDescriptionHelpFormatter, | ||
1062 | - version='systemd-analyze @PACKAGE_VERSION@', | ||
1063 | - description='Process systemd profiling information', | ||
1064 | - epilog='''\ | ||
1065 | -time - print time spent in the kernel before reaching userspace | ||
1066 | -blame - print list of running units ordered by time to init | ||
1067 | -plot - output SVG graphic showing service initialization | ||
1068 | -''') | ||
1069 | - | ||
1070 | -parser.add_argument('action', choices=('time', 'blame', 'plot'), | ||
1071 | - default='time', nargs='?', | ||
1072 | - help='action to perform (default: time)') | ||
1073 | -parser.add_argument('--user', action='store_true', | ||
1074 | - help='use the session bus') | ||
1075 | - | ||
1076 | -args = parser.parse_args() | ||
1077 | - | ||
1078 | -if args.user: | ||
1079 | - bus = Gio.BusType.SESSION | ||
1080 | -else: | ||
1081 | - bus = Gio.BusType.SYSTEM | ||
1082 | - | ||
1083 | -verb = {'time' : time, | ||
1084 | - 'blame': blame, | ||
1085 | - 'plot' : plot, | ||
1086 | - } | ||
1087 | -verb.get(args.action)() | ||
diff --git a/meta/recipes-core/systemd/systemd/0002-readahead-chunk-on-spinning-media.patch b/meta/recipes-core/systemd/systemd/0002-readahead-chunk-on-spinning-media.patch new file mode 100644 index 0000000000..d57a01c916 --- /dev/null +++ b/meta/recipes-core/systemd/systemd/0002-readahead-chunk-on-spinning-media.patch | |||
@@ -0,0 +1,142 @@ | |||
1 | Upstream-Status: Backport | ||
2 | |||
3 | -Khem 2013/03/28 | ||
4 | |||
5 | From 94243ef299425d6c7089a7a05c48c9bb8f6cf3da Mon Sep 17 00:00:00 2001 | ||
6 | From: Auke Kok <auke-jan.h.kok@intel.com> | ||
7 | Date: Fri, 22 Mar 2013 15:09:45 -0700 | ||
8 | Subject: [PATCH 02/17] readahead: chunk on spinning media | ||
9 | |||
10 | Readahead has all sorts of bad side effects depending on your | ||
11 | storage media. On rotating disks, it may be degrading startup | ||
12 | performance if enough requests are queued spanning linearly | ||
13 | over all blocks early at boot, and mount, blkid and friends | ||
14 | want to insert reads to the start of these block devices after. | ||
15 | |||
16 | The end result is that on spinning disks with ext3/4 that udev | ||
17 | and mounts take a very long time, and nothing really happens until | ||
18 | readahead is completely finished. | ||
19 | |||
20 | This has the net effect that the CPU is almost entirely idle | ||
21 | for the entire period that readahead is working. We could have | ||
22 | finished starting up quite a lot of services in this time if | ||
23 | we were smarter at how we do readahead. | ||
24 | |||
25 | This patch sorts all requests into 2 second "chunks" and sub-sorts | ||
26 | each chunk by block. This adds a single cross-drive seek per "chunk" | ||
27 | but has the benefit that we will have a lot of the blocks we need | ||
28 | early on in the boot sequence loaded into memory faster. | ||
29 | |||
30 | For a comparison of how before/after bootcharts look (ext4 on a | ||
31 | mobile 5400rpm 250GB drive) please look at: | ||
32 | |||
33 | http://foo-projects.org/~sofar/blocked-tests/ | ||
34 | |||
35 | There are bootcharts in the "before" and "after" folders where you | ||
36 | should be able to see that many low-level services finish 5-7 | ||
37 | seconds earlier with the patch applied (after). | ||
38 | --- | ||
39 | Makefile.am | 2 +- | ||
40 | src/readahead/readahead-collect.c | 28 +++++++++++++++++++++++++--- | ||
41 | 2 files changed, 26 insertions(+), 4 deletions(-) | ||
42 | |||
43 | diff --git a/Makefile.am b/Makefile.am | ||
44 | index 37c1cc2..5861976 100644 | ||
45 | --- a/Makefile.am | ||
46 | +++ b/Makefile.am | ||
47 | @@ -2956,7 +2956,7 @@ systemd_readahead_SOURCES = \ | ||
48 | systemd_readahead_LDADD = \ | ||
49 | libsystemd-shared.la \ | ||
50 | libsystemd-daemon.la \ | ||
51 | - libudev.la | ||
52 | + libudev.la -lm | ||
53 | |||
54 | dist_doc_DATA += \ | ||
55 | src/readahead/sd-readahead.c \ | ||
56 | diff --git a/src/readahead/readahead-collect.c b/src/readahead/readahead-collect.c | ||
57 | index 5d07f47..5d22949 100644 | ||
58 | --- a/src/readahead/readahead-collect.c | ||
59 | +++ b/src/readahead/readahead-collect.c | ||
60 | @@ -42,6 +42,7 @@ | ||
61 | #include <sys/vfs.h> | ||
62 | #include <getopt.h> | ||
63 | #include <sys/inotify.h> | ||
64 | +#include <math.h> | ||
65 | |||
66 | #ifdef HAVE_FANOTIFY_INIT | ||
67 | #include <sys/fanotify.h> | ||
68 | @@ -67,6 +68,7 @@ | ||
69 | */ | ||
70 | |||
71 | static ReadaheadShared *shared = NULL; | ||
72 | +static struct timespec starttime; | ||
73 | |||
74 | /* Avoid collisions with the NULL pointer */ | ||
75 | #define SECTOR_TO_PTR(s) ULONG_TO_PTR((s)+1) | ||
76 | @@ -205,6 +207,7 @@ static unsigned long fd_first_block(int fd) { | ||
77 | struct item { | ||
78 | const char *path; | ||
79 | unsigned long block; | ||
80 | + unsigned long bin; | ||
81 | }; | ||
82 | |||
83 | static int qsort_compare(const void *a, const void *b) { | ||
84 | @@ -213,6 +216,13 @@ static int qsort_compare(const void *a, const void *b) { | ||
85 | i = a; | ||
86 | j = b; | ||
87 | |||
88 | + /* sort by bin first */ | ||
89 | + if (i->bin < j->bin) | ||
90 | + return -1; | ||
91 | + if (i->bin > j->bin) | ||
92 | + return 1; | ||
93 | + | ||
94 | + /* then sort by sector */ | ||
95 | if (i->block < j->block) | ||
96 | return -1; | ||
97 | if (i->block > j->block) | ||
98 | @@ -250,6 +260,8 @@ static int collect(const char *root) { | ||
99 | goto finish; | ||
100 | } | ||
101 | |||
102 | + clock_gettime(CLOCK_MONOTONIC, &starttime); | ||
103 | + | ||
104 | /* If there's no pack file yet we lower the kernel readahead | ||
105 | * so that mincore() is accurate. If there is a pack file | ||
106 | * already we assume it is accurate enough so that kernel | ||
107 | @@ -447,10 +459,21 @@ static int collect(const char *root) { | ||
108 | free(p); | ||
109 | else { | ||
110 | unsigned long ul; | ||
111 | + struct timespec ts; | ||
112 | + struct item *entry; | ||
113 | + | ||
114 | + entry = new0(struct item, 1); | ||
115 | |||
116 | ul = fd_first_block(m->fd); | ||
117 | |||
118 | - if ((k = hashmap_put(files, p, SECTOR_TO_PTR(ul))) < 0) { | ||
119 | + clock_gettime(CLOCK_MONOTONIC, &ts); | ||
120 | + | ||
121 | + entry->block = ul; | ||
122 | + entry->path = strdup(p); | ||
123 | + entry->bin = round((ts.tv_sec - starttime.tv_sec + | ||
124 | + ((ts.tv_nsec - starttime.tv_nsec) / 1000000000.0)) / 2.0); | ||
125 | + | ||
126 | + if ((k = hashmap_put(files, p, entry)) < 0) { | ||
127 | log_warning("set_put() failed: %s", strerror(-k)); | ||
128 | free(p); | ||
129 | } | ||
130 | @@ -518,8 +541,7 @@ done: | ||
131 | |||
132 | j = ordered; | ||
133 | HASHMAP_FOREACH_KEY(q, p, files, i) { | ||
134 | - j->path = p; | ||
135 | - j->block = PTR_TO_SECTOR(q); | ||
136 | + memcpy(j, q, sizeof(struct item)); | ||
137 | j++; | ||
138 | } | ||
139 | |||
140 | -- | ||
141 | 1.7.9.5 | ||
142 | |||
diff --git a/meta/recipes-core/systemd/systemd/0003-readahead-cleanups.patch b/meta/recipes-core/systemd/systemd/0003-readahead-cleanups.patch new file mode 100644 index 0000000000..e0b68df607 --- /dev/null +++ b/meta/recipes-core/systemd/systemd/0003-readahead-cleanups.patch | |||
@@ -0,0 +1,86 @@ | |||
1 | Upstream-Status: Backport | ||
2 | |||
3 | -Khem 2013/03/28 | ||
4 | |||
5 | From b0640287f784a320661f7206c9ade07b99003fd5 Mon Sep 17 00:00:00 2001 | ||
6 | From: Auke Kok <auke-jan.h.kok@intel.com> | ||
7 | Date: Tue, 26 Mar 2013 11:13:47 -0700 | ||
8 | Subject: [PATCH 03/17] readahead: cleanups | ||
9 | |||
10 | - check for OOM | ||
11 | - no need to use floats and round() | ||
12 | --- | ||
13 | Makefile.am | 2 +- | ||
14 | src/readahead/readahead-collect.c | 20 ++++++++++++++------ | ||
15 | 2 files changed, 15 insertions(+), 7 deletions(-) | ||
16 | |||
17 | diff --git a/Makefile.am b/Makefile.am | ||
18 | index 5861976..37c1cc2 100644 | ||
19 | --- a/Makefile.am | ||
20 | +++ b/Makefile.am | ||
21 | @@ -2956,7 +2956,7 @@ systemd_readahead_SOURCES = \ | ||
22 | systemd_readahead_LDADD = \ | ||
23 | libsystemd-shared.la \ | ||
24 | libsystemd-daemon.la \ | ||
25 | - libudev.la -lm | ||
26 | + libudev.la | ||
27 | |||
28 | dist_doc_DATA += \ | ||
29 | src/readahead/sd-readahead.c \ | ||
30 | diff --git a/src/readahead/readahead-collect.c b/src/readahead/readahead-collect.c | ||
31 | index 5d22949..e2fd8df 100644 | ||
32 | --- a/src/readahead/readahead-collect.c | ||
33 | +++ b/src/readahead/readahead-collect.c | ||
34 | @@ -68,7 +68,7 @@ | ||
35 | */ | ||
36 | |||
37 | static ReadaheadShared *shared = NULL; | ||
38 | -static struct timespec starttime; | ||
39 | +static usec_t starttime; | ||
40 | |||
41 | /* Avoid collisions with the NULL pointer */ | ||
42 | #define SECTOR_TO_PTR(s) ULONG_TO_PTR((s)+1) | ||
43 | @@ -260,7 +260,7 @@ static int collect(const char *root) { | ||
44 | goto finish; | ||
45 | } | ||
46 | |||
47 | - clock_gettime(CLOCK_MONOTONIC, &starttime); | ||
48 | + starttime = now(CLOCK_MONOTONIC); | ||
49 | |||
50 | /* If there's no pack file yet we lower the kernel readahead | ||
51 | * so that mincore() is accurate. If there is a pack file | ||
52 | @@ -459,19 +459,27 @@ static int collect(const char *root) { | ||
53 | free(p); | ||
54 | else { | ||
55 | unsigned long ul; | ||
56 | - struct timespec ts; | ||
57 | + usec_t entrytime; | ||
58 | struct item *entry; | ||
59 | |||
60 | entry = new0(struct item, 1); | ||
61 | + if (!entry) { | ||
62 | + r = log_oom(); | ||
63 | + goto finish; | ||
64 | + } | ||
65 | |||
66 | ul = fd_first_block(m->fd); | ||
67 | |||
68 | - clock_gettime(CLOCK_MONOTONIC, &ts); | ||
69 | + entrytime = now(CLOCK_MONOTONIC); | ||
70 | |||
71 | entry->block = ul; | ||
72 | entry->path = strdup(p); | ||
73 | - entry->bin = round((ts.tv_sec - starttime.tv_sec + | ||
74 | - ((ts.tv_nsec - starttime.tv_nsec) / 1000000000.0)) / 2.0); | ||
75 | + if (!entry->path) { | ||
76 | + free(entry); | ||
77 | + r = log_oom(); | ||
78 | + goto finish; | ||
79 | + } | ||
80 | + entry->bin = (entrytime - starttime) / 2000000; | ||
81 | |||
82 | if ((k = hashmap_put(files, p, entry)) < 0) { | ||
83 | log_warning("set_put() failed: %s", strerror(-k)); | ||
84 | -- | ||
85 | 1.7.9.5 | ||
86 | |||
diff --git a/meta/recipes-core/systemd/systemd/0013-systemd-sysctl-Handle-missing-etc-sysctl.conf-proper.patch b/meta/recipes-core/systemd/systemd/0013-systemd-sysctl-Handle-missing-etc-sysctl.conf-proper.patch new file mode 100644 index 0000000000..f2c8e0290f --- /dev/null +++ b/meta/recipes-core/systemd/systemd/0013-systemd-sysctl-Handle-missing-etc-sysctl.conf-proper.patch | |||
@@ -0,0 +1,33 @@ | |||
1 | Upstream-Status: Backport | ||
2 | |||
3 | -Khem 2013/03/28 | ||
4 | |||
5 | From 6f6fad96addf6b00b55c98cc0d0d8026b0c1e7ca Mon Sep 17 00:00:00 2001 | ||
6 | From: Eelco Dolstra <eelco.dolstra@logicblox.com> | ||
7 | Date: Wed, 27 Mar 2013 13:41:59 +0100 | ||
8 | Subject: [PATCH 13/17] systemd-sysctl: Handle missing /etc/sysctl.conf | ||
9 | properly | ||
10 | |||
11 | Since fabe5c0e5fce730aa66e10a9c4f9fdd443d7aeda, systemd-sysctl returns | ||
12 | a non-zero exit code if /etc/sysctl.conf does not exist, due to a | ||
13 | broken ENOENT check. | ||
14 | --- | ||
15 | src/sysctl/sysctl.c | 2 +- | ||
16 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
17 | |||
18 | diff --git a/src/sysctl/sysctl.c b/src/sysctl/sysctl.c | ||
19 | index 2d43660..79f3f77 100644 | ||
20 | --- a/src/sysctl/sysctl.c | ||
21 | +++ b/src/sysctl/sysctl.c | ||
22 | @@ -125,7 +125,7 @@ static int parse_file(Hashmap *sysctl_options, const char *path, bool ignore_eno | ||
23 | |||
24 | r = search_and_fopen_nulstr(path, "re", conf_file_dirs, &f); | ||
25 | if (r < 0) { | ||
26 | - if (ignore_enoent && errno == -ENOENT) | ||
27 | + if (ignore_enoent && r == -ENOENT) | ||
28 | return 0; | ||
29 | |||
30 | log_error("Failed to open file '%s', ignoring: %s", path, strerror(-r)); | ||
31 | -- | ||
32 | 1.7.9.5 | ||
33 | |||
diff --git a/meta/recipes-core/systemd/systemd/init b/meta/recipes-core/systemd/systemd/init new file mode 100644 index 0000000000..0ddd0434f2 --- /dev/null +++ b/meta/recipes-core/systemd/systemd/init | |||
@@ -0,0 +1,101 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | ### BEGIN INIT INFO | ||
4 | # Provides: udev | ||
5 | # Required-Start: mountvirtfs | ||
6 | # Required-Stop: | ||
7 | # Default-Start: S | ||
8 | # Default-Stop: | ||
9 | # Short-Description: Start udevd, populate /dev and load drivers. | ||
10 | ### END INIT INFO | ||
11 | |||
12 | . /etc/init.d/functions | ||
13 | |||
14 | export TZ=/etc/localtime | ||
15 | |||
16 | [ -d /sys/class ] || exit 1 | ||
17 | [ -r /proc/mounts ] || exit 1 | ||
18 | [ -x /lib/systemd/systemd-udevd ] || exit 1 | ||
19 | [ -f /etc/default/udev-cache ] && . /etc/default/udev-cache | ||
20 | [ -f /etc/udev/udev.conf ] && . /etc/udev/udev.conf | ||
21 | |||
22 | readfile () { | ||
23 | filename=$1 | ||
24 | READDATA="" | ||
25 | if [ -r $filename ]; then | ||
26 | while read line; do | ||
27 | READDATA="$READDATA$line" | ||
28 | done < $filename | ||
29 | fi | ||
30 | } | ||
31 | |||
32 | case "$1" in | ||
33 | start) | ||
34 | export ACTION=add | ||
35 | # propagate /dev from /sys | ||
36 | echo "Starting udev" | ||
37 | |||
38 | # mount the tmpfs on /dev, if not already done | ||
39 | LANG=C awk '$2 == "/dev" && ($3 == "tmpfs" || $3 == "devtmpfs") { exit 1 }' /proc/mounts && { | ||
40 | mount -n -o mode=0755 -t tmpfs none "/dev" | ||
41 | } | ||
42 | [ -e /dev/pts ] || mkdir -m 0755 /dev/pts | ||
43 | [ -e /dev/shm ] || mkdir -m 1777 /dev/shm | ||
44 | mount -a -t tmpfs 2>/dev/null | ||
45 | mkdir -p /var/volatile/run | ||
46 | |||
47 | # cache handling | ||
48 | if [ "$DEVCACHE" != "" ]; then | ||
49 | readfile /proc/version | ||
50 | VERSION="$READDATA" | ||
51 | readfile /proc/cmdline | ||
52 | CMDLINE="$READDATA" | ||
53 | readfile /proc/devices | ||
54 | DEVICES="$READDATA" | ||
55 | readfile /proc/atags | ||
56 | ATAGS="$READDATA" | ||
57 | |||
58 | if [ -e $DEVCACHE ]; then | ||
59 | readfile /etc/udev/cache.data | ||
60 | if [ "$READDATA" = "$VERSION$CMDLINE$DEVICES$ATAGS" ]; then | ||
61 | (cd /; tar xf $DEVCACHE > /dev/null 2>&1) | ||
62 | not_first_boot=1 | ||
63 | fi | ||
64 | |||
65 | echo "$VERSION$CMDLINE$DEVICES$ATAGS" > /dev/shm/udev.cache | ||
66 | fi | ||
67 | fi | ||
68 | |||
69 | # make_extra_nodes | ||
70 | killproc systemd-udevd > "/dev/null" 2>&1 | ||
71 | |||
72 | # trigger the sorted events | ||
73 | echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug | ||
74 | /lib/systemd/systemd-udevd -d | ||
75 | |||
76 | /usr/bin/udevadm control --env=STARTUP=1 | ||
77 | if [ "$not_first_boot" != "" ];then | ||
78 | /usr/bin/udevadm trigger --action=add --subsystem-nomatch=tty --subsystem-nomatch=mem --subsystem-nomatch=vc --subsystem-nomatch=vtconsole --subsystem-nomatch=misc --subsystem-nomatch=dcon --subsystem-nomatch=pci_bus --subsystem-nomatch=graphics --subsystem-nomatch=backlight --subsystem-nomatch=video4linux --subsystem-nomatch=platform | ||
79 | (/usr/bin/udevadm settle --timeout=3; /usr/bin/udevadm control --env=STARTUP=)& | ||
80 | else | ||
81 | /usr/bin/udevadm trigger --action=add | ||
82 | /usr/bin/udevadm settle | ||
83 | fi | ||
84 | ;; | ||
85 | stop) | ||
86 | echo "Stopping udevd" | ||
87 | start-stop-daemon --stop --name udevd --quiet | ||
88 | ;; | ||
89 | restart) | ||
90 | $0 stop | ||
91 | sleep 1 | ||
92 | $0 start | ||
93 | ;; | ||
94 | status) | ||
95 | status udevd | ||
96 | ;; | ||
97 | *) | ||
98 | echo "Usage: $0 {start|stop|status|restart}" | ||
99 | exit 1 | ||
100 | esac | ||
101 | exit 0 | ||
diff --git a/meta/recipes-core/systemd/systemd/systemd-pam-fix-msformat.patch b/meta/recipes-core/systemd/systemd/systemd-pam-fix-msformat.patch index aa186bda72..8d1aa7d11a 100644 --- a/meta/recipes-core/systemd/systemd/systemd-pam-fix-msformat.patch +++ b/meta/recipes-core/systemd/systemd/systemd-pam-fix-msformat.patch | |||
@@ -1,20 +1,20 @@ | |||
1 | Upstream-Status: Denied [no desire for uclibc support] | 1 | Upstream-Status: Denied [no desire for uclibc support] |
2 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | 2 | Signed-off-by: Khem Raj <raj.khem@gmail.com> |
3 | 3 | ||
4 | Index: systemd-196/src/fsck/fsck.c | 4 | Index: systemd-198/src/fsck/fsck.c |
5 | =================================================================== | 5 | =================================================================== |
6 | --- systemd-196.orig/src/fsck/fsck.c 2012-07-26 03:45:14.000000000 -0700 | 6 | --- systemd-198.orig/src/fsck/fsck.c 2013-03-07 13:18:34.000000000 -0800 |
7 | +++ systemd-196/src/fsck/fsck.c 2013-01-21 16:10:46.807537608 -0800 | 7 | +++ systemd-198/src/fsck/fsck.c 2013-03-09 14:49:03.756572873 -0800 |
8 | @@ -36,6 +36,8 @@ | 8 | @@ -37,6 +37,8 @@ |
9 | #include "bus-errors.h" | ||
10 | #include "virt.h" | 9 | #include "virt.h" |
10 | #include "fileio.h" | ||
11 | 11 | ||
12 | +#include "config.h" | 12 | +#include "config.h" |
13 | + | 13 | + |
14 | static bool arg_skip = false; | 14 | static bool arg_skip = false; |
15 | static bool arg_force = false; | 15 | static bool arg_force = false; |
16 | static bool arg_show_progress = false; | 16 | static bool arg_show_progress = false; |
17 | @@ -193,9 +195,16 @@ | 17 | @@ -203,9 +205,16 @@ |
18 | char *device; | 18 | char *device; |
19 | double p; | 19 | double p; |
20 | usec_t t; | 20 | usec_t t; |
@@ -33,10 +33,10 @@ Index: systemd-196/src/fsck/fsck.c | |||
33 | 33 | ||
34 | /* Only show one progress counter at max */ | 34 | /* Only show one progress counter at max */ |
35 | if (!locked) { | 35 | if (!locked) { |
36 | Index: systemd-196/src/core/swap.c | 36 | Index: systemd-198/src/core/swap.c |
37 | =================================================================== | 37 | =================================================================== |
38 | --- systemd-196.orig/src/core/swap.c 2012-10-29 19:40:42.000000000 -0700 | 38 | --- systemd-198.orig/src/core/swap.c 2013-03-07 13:18:34.000000000 -0800 |
39 | +++ systemd-196/src/core/swap.c 2013-01-21 16:15:11.751544181 -0800 | 39 | +++ systemd-198/src/core/swap.c 2013-03-09 14:49:03.756572873 -0800 |
40 | @@ -41,6 +41,8 @@ | 40 | @@ -41,6 +41,8 @@ |
41 | #include "path-util.h" | 41 | #include "path-util.h" |
42 | #include "virt.h" | 42 | #include "virt.h" |
@@ -46,7 +46,7 @@ Index: systemd-196/src/core/swap.c | |||
46 | static const UnitActiveState state_translation_table[_SWAP_STATE_MAX] = { | 46 | static const UnitActiveState state_translation_table[_SWAP_STATE_MAX] = { |
47 | [SWAP_DEAD] = UNIT_INACTIVE, | 47 | [SWAP_DEAD] = UNIT_INACTIVE, |
48 | [SWAP_ACTIVATING] = UNIT_ACTIVATING, | 48 | [SWAP_ACTIVATING] = UNIT_ACTIVATING, |
49 | @@ -1059,6 +1061,7 @@ | 49 | @@ -1037,6 +1039,7 @@ |
50 | char *dev = NULL, *d; | 50 | char *dev = NULL, *d; |
51 | int prio = 0, k; | 51 | int prio = 0, k; |
52 | 52 | ||
@@ -54,7 +54,7 @@ Index: systemd-196/src/core/swap.c | |||
54 | k = fscanf(m->proc_swaps, | 54 | k = fscanf(m->proc_swaps, |
55 | "%ms " /* device/file */ | 55 | "%ms " /* device/file */ |
56 | "%*s " /* type of swap */ | 56 | "%*s " /* type of swap */ |
57 | @@ -1066,6 +1069,16 @@ | 57 | @@ -1044,6 +1047,16 @@ |
58 | "%*s " /* used */ | 58 | "%*s " /* used */ |
59 | "%i\n", /* priority */ | 59 | "%i\n", /* priority */ |
60 | &dev, &prio); | 60 | &dev, &prio); |
@@ -71,10 +71,10 @@ Index: systemd-196/src/core/swap.c | |||
71 | if (k != 2) { | 71 | if (k != 2) { |
72 | if (k == EOF) | 72 | if (k == EOF) |
73 | break; | 73 | break; |
74 | Index: systemd-196/src/core/mount-setup.c | 74 | Index: systemd-198/src/core/mount-setup.c |
75 | =================================================================== | 75 | =================================================================== |
76 | --- systemd-196.orig/src/core/mount-setup.c 2012-11-09 06:55:35.000000000 -0800 | 76 | --- systemd-198.orig/src/core/mount-setup.c 2013-03-07 13:18:34.000000000 -0800 |
77 | +++ systemd-196/src/core/mount-setup.c 2013-01-21 16:10:46.807537608 -0800 | 77 | +++ systemd-198/src/core/mount-setup.c 2013-03-09 14:49:03.760572872 -0800 |
78 | @@ -28,6 +28,7 @@ | 78 | @@ -28,6 +28,7 @@ |
79 | #include <assert.h> | 79 | #include <assert.h> |
80 | #include <unistd.h> | 80 | #include <unistd.h> |
@@ -83,16 +83,16 @@ Index: systemd-196/src/core/mount-setup.c | |||
83 | 83 | ||
84 | #include "mount-setup.h" | 84 | #include "mount-setup.h" |
85 | #include "dev-setup.h" | 85 | #include "dev-setup.h" |
86 | @@ -42,6 +43,8 @@ | 86 | @@ -43,6 +44,8 @@ |
87 | #include "missing.h" | ||
88 | #include "virt.h" | 87 | #include "virt.h" |
88 | #include "efivars.h" | ||
89 | 89 | ||
90 | +#include "config.h" | 90 | +#include "config.h" |
91 | + | 91 | + |
92 | #ifndef TTY_GID | 92 | #ifndef TTY_GID |
93 | #define TTY_GID 5 | 93 | #define TTY_GID 5 |
94 | #endif | 94 | #endif |
95 | @@ -224,9 +227,12 @@ | 95 | @@ -231,9 +234,12 @@ |
96 | for (;;) { | 96 | for (;;) { |
97 | char *controller; | 97 | char *controller; |
98 | int enabled = 0; | 98 | int enabled = 0; |
@@ -107,11 +107,11 @@ Index: systemd-196/src/core/mount-setup.c | |||
107 | if (feof(f)) | 107 | if (feof(f)) |
108 | break; | 108 | break; |
109 | 109 | ||
110 | Index: systemd-196/src/core/mount.c | 110 | Index: systemd-198/src/core/mount.c |
111 | =================================================================== | 111 | =================================================================== |
112 | --- systemd-196.orig/src/core/mount.c 2012-10-22 16:53:02.000000000 -0700 | 112 | --- systemd-198.orig/src/core/mount.c 2013-03-07 13:18:34.000000000 -0800 |
113 | +++ systemd-196/src/core/mount.c 2013-01-21 16:10:46.811537609 -0800 | 113 | +++ systemd-198/src/core/mount.c 2013-03-09 14:49:03.760572872 -0800 |
114 | @@ -41,6 +41,8 @@ | 114 | @@ -42,6 +42,8 @@ |
115 | #include "exit-status.h" | 115 | #include "exit-status.h" |
116 | #include "def.h" | 116 | #include "def.h" |
117 | 117 | ||
@@ -120,7 +120,7 @@ Index: systemd-196/src/core/mount.c | |||
120 | static const UnitActiveState state_translation_table[_MOUNT_STATE_MAX] = { | 120 | static const UnitActiveState state_translation_table[_MOUNT_STATE_MAX] = { |
121 | [MOUNT_DEAD] = UNIT_INACTIVE, | 121 | [MOUNT_DEAD] = UNIT_INACTIVE, |
122 | [MOUNT_MOUNTING] = UNIT_ACTIVATING, | 122 | [MOUNT_MOUNTING] = UNIT_ACTIVATING, |
123 | @@ -1538,7 +1540,7 @@ | 123 | @@ -1584,7 +1586,7 @@ |
124 | int k; | 124 | int k; |
125 | 125 | ||
126 | device = path = options = options2 = fstype = d = p = o = NULL; | 126 | device = path = options = options2 = fstype = d = p = o = NULL; |
@@ -129,7 +129,7 @@ Index: systemd-196/src/core/mount.c | |||
129 | if ((k = fscanf(m->proc_self_mountinfo, | 129 | if ((k = fscanf(m->proc_self_mountinfo, |
130 | "%*s " /* (1) mount id */ | 130 | "%*s " /* (1) mount id */ |
131 | "%*s " /* (2) parent id */ | 131 | "%*s " /* (2) parent id */ |
132 | @@ -1557,7 +1559,31 @@ | 132 | @@ -1603,7 +1605,31 @@ |
133 | &fstype, | 133 | &fstype, |
134 | &device, | 134 | &device, |
135 | &options2)) != 5) { | 135 | &options2)) != 5) { |
@@ -162,10 +162,10 @@ Index: systemd-196/src/core/mount.c | |||
162 | if (k == EOF) | 162 | if (k == EOF) |
163 | break; | 163 | break; |
164 | 164 | ||
165 | Index: systemd-196/src/core/umount.c | 165 | Index: systemd-198/src/core/umount.c |
166 | =================================================================== | 166 | =================================================================== |
167 | --- systemd-196.orig/src/core/umount.c 2012-11-16 09:32:41.000000000 -0800 | 167 | --- systemd-198.orig/src/core/umount.c 2013-03-07 13:18:34.000000000 -0800 |
168 | +++ systemd-196/src/core/umount.c 2013-01-21 16:10:46.811537609 -0800 | 168 | +++ systemd-198/src/core/umount.c 2013-03-09 14:49:03.760572872 -0800 |
169 | @@ -36,6 +36,8 @@ | 169 | @@ -36,6 +36,8 @@ |
170 | #include "util.h" | 170 | #include "util.h" |
171 | #include "virt.h" | 171 | #include "virt.h" |
@@ -235,20 +235,20 @@ Index: systemd-196/src/core/umount.c | |||
235 | if (k == EOF) | 235 | if (k == EOF) |
236 | break; | 236 | break; |
237 | 237 | ||
238 | Index: systemd-196/src/shared/socket-util.c | 238 | Index: systemd-198/src/shared/socket-util.c |
239 | =================================================================== | 239 | =================================================================== |
240 | --- systemd-196.orig/src/shared/socket-util.c 2012-11-14 13:21:15.000000000 -0800 | 240 | --- systemd-198.orig/src/shared/socket-util.c 2013-03-07 13:18:34.000000000 -0800 |
241 | +++ systemd-196/src/shared/socket-util.c 2013-01-21 16:10:46.811537609 -0800 | 241 | +++ systemd-198/src/shared/socket-util.c 2013-03-09 14:49:03.760572872 -0800 |
242 | @@ -39,6 +39,8 @@ | 242 | @@ -40,6 +40,8 @@ |
243 | #include "socket-util.h" | ||
244 | #include "missing.h" | 243 | #include "missing.h" |
244 | #include "fileio.h" | ||
245 | 245 | ||
246 | +#include "config.h" | 246 | +#include "config.h" |
247 | + | 247 | + |
248 | int socket_address_parse(SocketAddress *a, const char *s) { | 248 | int socket_address_parse(SocketAddress *a, const char *s) { |
249 | int r; | 249 | int r; |
250 | char *e, *n; | 250 | char *e, *n; |
251 | @@ -202,8 +204,16 @@ | 251 | @@ -203,8 +205,16 @@ |
252 | a->type = SOCK_RAW; | 252 | a->type = SOCK_RAW; |
253 | 253 | ||
254 | errno = 0; | 254 | errno = 0; |
@@ -266,10 +266,10 @@ Index: systemd-196/src/shared/socket-util.c | |||
266 | 266 | ||
267 | family = netlink_family_from_string(sfamily); | 267 | family = netlink_family_from_string(sfamily); |
268 | if (family < 0) | 268 | if (family < 0) |
269 | Index: systemd-196/src/tmpfiles/tmpfiles.c | 269 | Index: systemd-198/src/tmpfiles/tmpfiles.c |
270 | =================================================================== | 270 | =================================================================== |
271 | --- systemd-196.orig/src/tmpfiles/tmpfiles.c 2012-10-23 16:06:30.000000000 -0700 | 271 | --- systemd-198.orig/src/tmpfiles/tmpfiles.c 2013-03-07 13:18:34.000000000 -0800 |
272 | +++ systemd-196/src/tmpfiles/tmpfiles.c 2013-01-21 16:10:46.811537609 -0800 | 272 | +++ systemd-198/src/tmpfiles/tmpfiles.c 2013-03-09 14:55:40.772566599 -0800 |
273 | @@ -51,6 +51,8 @@ | 273 | @@ -51,6 +51,8 @@ |
274 | #include "conf-files.h" | 274 | #include "conf-files.h" |
275 | #include "capability.h" | 275 | #include "capability.h" |
@@ -279,26 +279,25 @@ Index: systemd-196/src/tmpfiles/tmpfiles.c | |||
279 | /* This reads all files listed in /etc/tmpfiles.d/?*.conf and creates | 279 | /* This reads all files listed in /etc/tmpfiles.d/?*.conf and creates |
280 | * them in the file system. This is intended to be used to create | 280 | * them in the file system. This is intended to be used to create |
281 | * properly owned directories beneath /tmp, /var/tmp, /run, which are | 281 | * properly owned directories beneath /tmp, /var/tmp, /run, which are |
282 | @@ -990,7 +992,7 @@ | 282 | @@ -993,6 +995,7 @@ |
283 | i = new0(Item, 1); | ||
284 | if (!i) | 283 | if (!i) |
285 | return log_oom(); | 284 | return log_oom(); |
286 | - | 285 | |
287 | +#ifdef HAVE_MSFORMAT | 286 | +#ifdef HAVE_MSFORMAT |
288 | if (sscanf(buffer, | 287 | r = sscanf(buffer, |
289 | "%c " | 288 | "%c %ms %ms %ms %ms %ms %n", |
290 | "%ms " | 289 | &type, |
291 | @@ -1006,6 +1008,28 @@ | 290 | @@ -1002,6 +1005,29 @@ |
292 | &group, | 291 | &group, |
293 | &age, | 292 | &age, |
294 | &n) < 2) { | 293 | &n); |
295 | +#else | 294 | +#else |
296 | + i->path = malloc(257); | 295 | + i->path = malloc(257); |
297 | + mode = malloc(257); | 296 | + mode = malloc(257); |
298 | + user = malloc(257); | 297 | + user = malloc(257); |
299 | + group = malloc(257); | 298 | + group = malloc(257); |
300 | + age = malloc(257); | 299 | + age = malloc(257); |
301 | + if (sscanf(buffer, | 300 | + r = sscanf(buffer, |
302 | + "%c " | 301 | + "%c " |
303 | + "%256s " | 302 | + "%256s " |
304 | + "%256s " | 303 | + "%256s " |
@@ -312,38 +311,39 @@ Index: systemd-196/src/tmpfiles/tmpfiles.c | |||
312 | + user, | 311 | + user, |
313 | + group, | 312 | + group, |
314 | + age, | 313 | + age, |
315 | + &n) < 2) { | 314 | + &n); |
316 | +#endif /* HAVE_MSFORMAT */ | 315 | +#endif /* HAVE_MSFORMAT */ |
316 | + | ||
317 | if (r < 2) { | ||
317 | log_error("[%s:%u] Syntax error.", fname, line); | 318 | log_error("[%s:%u] Syntax error.", fname, line); |
318 | r = -EIO; | 319 | r = -EIO; |
319 | goto finish; | 320 | Index: systemd-198/src/cryptsetup/cryptsetup-generator.c |
320 | Index: systemd-196/src/cryptsetup/cryptsetup-generator.c | ||
321 | =================================================================== | 321 | =================================================================== |
322 | --- systemd-196.orig/src/cryptsetup/cryptsetup-generator.c 2012-08-08 14:53:24.000000000 -0700 | 322 | --- systemd-198.orig/src/cryptsetup/cryptsetup-generator.c 2013-03-07 13:18:34.000000000 -0800 |
323 | +++ systemd-196/src/cryptsetup/cryptsetup-generator.c 2013-01-21 16:10:46.811537609 -0800 | 323 | +++ systemd-198/src/cryptsetup/cryptsetup-generator.c 2013-03-09 14:51:33.080571639 -0800 |
324 | @@ -30,6 +30,8 @@ | 324 | @@ -31,6 +31,8 @@ |
325 | #include "virt.h" | ||
326 | #include "strv.h" | 325 | #include "strv.h" |
326 | #include "fileio.h" | ||
327 | 327 | ||
328 | +#include "config.h" | 328 | +#include "config.h" |
329 | + | 329 | + |
330 | static const char *arg_dest = "/tmp"; | 330 | static const char *arg_dest = "/tmp"; |
331 | static bool arg_enabled = true; | 331 | static bool arg_enabled = true; |
332 | static bool arg_read_crypttab = true; | 332 | static bool arg_read_crypttab = true; |
333 | @@ -421,8 +423,15 @@ | 333 | @@ -395,7 +397,16 @@ |
334 | l = strstrip(line); | 334 | if (*l == '#' || *l == 0) |
335 | if (*l == '#' || *l == 0) | 335 | continue; |
336 | continue; | 336 | |
337 | - | ||
338 | +#ifdef HAVE_MSFORMAT | 337 | +#ifdef HAVE_MSFORMAT |
339 | k = sscanf(l, "%ms %ms %ms %ms", &name, &device, &password, &options); | 338 | k = sscanf(l, "%ms %ms %ms %ms", &name, &device, &password, &options); |
340 | +#else | 339 | +#else |
341 | + name = malloc(257); | 340 | + name = malloc(257); |
342 | + device = malloc(257); | 341 | + device = malloc(257); |
343 | + password = malloc(257); | 342 | + password = malloc(257); |
344 | + options = malloc(257); | 343 | + options = malloc(257); |
345 | + k = sscanf(l, "%256s %256s %256s %256s", name, device, password, options); | 344 | + k = sscanf(l, "%256s %256s %256s %256s", name, device, password, options); |
346 | +#endif /* HAVE_MSFORMAT */ | 345 | +#endif /* HAVE_MSFORMAT */ |
347 | if (k < 2 || k > 4) { | 346 | + |
348 | log_error("Failed to parse /etc/crypttab:%u, ignoring.", n); | 347 | if (k < 2 || k > 4) { |
349 | r = EXIT_FAILURE; | 348 | log_error("Failed to parse /etc/crypttab:%u, ignoring.", n); |
349 | r = EXIT_FAILURE; | ||
diff --git a/meta/recipes-core/systemd/systemd/udev-linkage.patch b/meta/recipes-core/systemd/systemd/udev-linkage.patch deleted file mode 100644 index a0d9b4c876..0000000000 --- a/meta/recipes-core/systemd/systemd/udev-linkage.patch +++ /dev/null | |||
@@ -1,62 +0,0 @@ | |||
1 | Don't cause libudev to link against libsystemd-daemon. | ||
2 | |||
3 | Upstream-Status: Backport | ||
4 | Signed-off-by: Ross Burton <ross.burton@intel.com> | ||
5 | |||
6 | From 8ee37c2bed1d452d566abf85b0cdf732b7ca029a Mon Sep 17 00:00:00 2001 | ||
7 | From: Kay Sievers <kay@vrfy.org> | ||
8 | Date: Thu, 7 Feb 2013 13:47:46 +0100 | ||
9 | Subject: [PATCH] build-sys: at least for now, never link libudev against | ||
10 | systemd's shared libraries | ||
11 | |||
12 | --- | ||
13 | Makefile.am | 12 +++++++++--- | ||
14 | 1 file changed, 9 insertions(+), 3 deletions(-) | ||
15 | |||
16 | diff --git a/Makefile.am b/Makefile.am | ||
17 | index 474110a..0e6c88f 100644 | ||
18 | --- a/Makefile.am | ||
19 | +++ b/Makefile.am | ||
20 | @@ -811,8 +811,6 @@ libsystemd_shared_la_SOURCES = \ | ||
21 | src/shared/calendarspec.c \ | ||
22 | src/shared/calendarspec.h | ||
23 | |||
24 | -libsystemd_shared_la_LIBADD = libsystemd-daemon.la | ||
25 | - | ||
26 | #------------------------------------------------------------------------------- | ||
27 | noinst_LTLIBRARIES += \ | ||
28 | libsystemd-dbus.la | ||
29 | @@ -1662,6 +1660,9 @@ systemd_tty_ask_password_agent_LDADD = \ | ||
30 | libsystemd_daemon_la_SOURCES = \ | ||
31 | src/libsystemd-daemon/sd-daemon.c | ||
32 | |||
33 | +libsystemd_daemon_internal_la_SOURCES = \ | ||
34 | + $(libsystemd_daemon_la_SOURCES) | ||
35 | + | ||
36 | libsystemd_daemon_la_CFLAGS = \ | ||
37 | $(AM_CFLAGS) \ | ||
38 | -fvisibility=hidden \ | ||
39 | @@ -1689,6 +1690,9 @@ UNINSTALL_EXEC_HOOKS += libsystemd-daemon-uninstall-hook | ||
40 | lib_LTLIBRARIES += \ | ||
41 | libsystemd-daemon.la | ||
42 | |||
43 | +noinst_LTLIBRARIES += \ | ||
44 | + libsystemd-daemon-internal.la | ||
45 | + | ||
46 | pkgconfiglib_DATA += \ | ||
47 | src/libsystemd-daemon/libsystemd-daemon.pc | ||
48 | |||
49 | @@ -1768,7 +1772,9 @@ libudev_la_LDFLAGS = \ | ||
50 | -Wl,--version-script=$(top_srcdir)/src/libudev/libudev.sym | ||
51 | |||
52 | libudev_la_LIBADD = \ | ||
53 | - libsystemd-shared.la | ||
54 | + libsystemd-shared.la \ | ||
55 | + libsystemd-daemon-internal.la \ | ||
56 | + libsystemd-id128-internal.la | ||
57 | |||
58 | pkgconfiglib_DATA += \ | ||
59 | src/libudev/libudev.pc | ||
60 | -- | ||
61 | 1.7.10.4 | ||
62 | |||
diff --git a/meta/recipes-core/systemd/systemd_197.bb b/meta/recipes-core/systemd/systemd_199.bb index 5180eef2b3..ba1d13390d 100644 --- a/meta/recipes-core/systemd/systemd_197.bb +++ b/meta/recipes-core/systemd/systemd_199.bb | |||
@@ -9,14 +9,13 @@ LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \ | |||
9 | PROVIDES = "udev" | 9 | PROVIDES = "udev" |
10 | 10 | ||
11 | PE = "1" | 11 | PE = "1" |
12 | PR = "r4" | ||
13 | 12 | ||
14 | DEPENDS = "xz kmod docbook-sgml-dtd-4.1-native intltool-native gperf-native acl readline dbus libcap libcgroup tcp-wrappers glib-2.0" | 13 | DEPENDS = "kmod docbook-sgml-dtd-4.1-native intltool-native gperf-native acl readline dbus libcap libcgroup tcp-wrappers glib-2.0" |
15 | DEPENDS += "${@base_contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" | 14 | DEPENDS += "${@base_contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" |
16 | 15 | ||
17 | SECTION = "base/shell" | 16 | SECTION = "base/shell" |
18 | 17 | ||
19 | inherit gtk-doc useradd pkgconfig autotools perlnative | 18 | inherit gtk-doc useradd pkgconfig autotools perlnative update-rc.d |
20 | 19 | ||
21 | SRC_URI = "http://www.freedesktop.org/software/systemd/systemd-${PV}.tar.xz \ | 20 | SRC_URI = "http://www.freedesktop.org/software/systemd/systemd-${PV}.tar.xz \ |
22 | file://touchscreen.rules \ | 21 | file://touchscreen.rules \ |
@@ -24,11 +23,13 @@ SRC_URI = "http://www.freedesktop.org/software/systemd/systemd-${PV}.tar.xz \ | |||
24 | file://var-run.conf \ | 23 | file://var-run.conf \ |
25 | ${UCLIBCPATCHES} \ | 24 | ${UCLIBCPATCHES} \ |
26 | file://00-create-volatile.conf \ | 25 | file://00-create-volatile.conf \ |
27 | file://0001-systemd-analyze-rewrite-in-C.patch \ | 26 | file://0002-readahead-chunk-on-spinning-media.patch \ |
28 | file://udev-linkage.patch \ | 27 | file://0003-readahead-cleanups.patch \ |
28 | file://0013-systemd-sysctl-Handle-missing-etc-sysctl.conf-proper.patch \ | ||
29 | file://init \ | ||
29 | " | 30 | " |
30 | SRC_URI[md5sum] = "56a860dceadfafe59f40141eb5223743" | 31 | SRC_URI[md5sum] = "4bb13f84ce211e93f0141774a90a2322" |
31 | SRC_URI[sha256sum] = "e6857ea21ae24d7056e7b0f4c2aaaba73b8bf57025b8949c0a8af0c1bc9774b5" | 32 | SRC_URI[sha256sum] = "8c4462a04f3ecf7f083782e5e0687913b1d33c6444bf20fa2f31df9222965fed" |
32 | 33 | ||
33 | UCLIBCPATCHES = "" | 34 | UCLIBCPATCHES = "" |
34 | UCLIBCPATCHES_libc-uclibc = "file://systemd-pam-configure-check-uclibc.patch \ | 35 | UCLIBCPATCHES_libc-uclibc = "file://systemd-pam-configure-check-uclibc.patch \ |
@@ -43,9 +44,11 @@ LDFLAGS_libc-uclibc_append = " -lrt" | |||
43 | 44 | ||
44 | GTKDOC_DOCDIR = "${S}/docs/" | 45 | GTKDOC_DOCDIR = "${S}/docs/" |
45 | 46 | ||
46 | PACKAGECONFIG ??= "" | 47 | PACKAGECONFIG ??= "xz" |
47 | # Sign the journal for anti-tampering | 48 | # Sign the journal for anti-tampering |
48 | PACKAGECONFIG[gcrypt] = "--enable-gcrypt,--disable-gcrypt,libgcrypt" | 49 | PACKAGECONFIG[gcrypt] = "--enable-gcrypt,--disable-gcrypt,libgcrypt" |
50 | # Compress the journal | ||
51 | PACKAGECONFIG[xz] = "--enable-xz,--disable-xz,xz" | ||
49 | 52 | ||
50 | CACHED_CONFIGUREVARS = "ac_cv_path_KILL=${base_bindir}/kill" | 53 | CACHED_CONFIGUREVARS = "ac_cv_path_KILL=${base_bindir}/kill" |
51 | 54 | ||
@@ -59,7 +62,6 @@ EXTRA_OECONF = " --with-rootprefix=${base_prefix} \ | |||
59 | --disable-manpages \ | 62 | --disable-manpages \ |
60 | --disable-coredump \ | 63 | --disable-coredump \ |
61 | --disable-introspection \ | 64 | --disable-introspection \ |
62 | --with-pci-ids-path=/usr/share/misc \ | ||
63 | --disable-tcpwrap \ | 65 | --disable-tcpwrap \ |
64 | --enable-split-usr \ | 66 | --enable-split-usr \ |
65 | --disable-microhttpd \ | 67 | --disable-microhttpd \ |
@@ -99,6 +101,11 @@ do_install() { | |||
99 | install -m 0644 ${WORKDIR}/var-run.conf ${D}${sysconfdir}/tmpfiles.d/ | 101 | install -m 0644 ${WORKDIR}/var-run.conf ${D}${sysconfdir}/tmpfiles.d/ |
100 | 102 | ||
101 | install -m 0644 ${WORKDIR}/00-create-volatile.conf ${D}${sysconfdir}/tmpfiles.d/ | 103 | install -m 0644 ${WORKDIR}/00-create-volatile.conf ${D}${sysconfdir}/tmpfiles.d/ |
104 | |||
105 | if ${@base_contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then | ||
106 | install -d ${D}${sysconfdir}/init.d | ||
107 | install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/systemd-udevd | ||
108 | fi | ||
102 | } | 109 | } |
103 | 110 | ||
104 | python populate_packages_prepend (){ | 111 | python populate_packages_prepend (){ |
@@ -107,10 +114,10 @@ python populate_packages_prepend (){ | |||
107 | } | 114 | } |
108 | PACKAGES_DYNAMIC += "^lib(udev|gudev|systemd).*" | 115 | PACKAGES_DYNAMIC += "^lib(udev|gudev|systemd).*" |
109 | 116 | ||
110 | PACKAGES =+ "${PN}-gui ${PN}-vconsole-setup ${PN}-initramfs ${PN}-analyze" | 117 | PACKAGES =+ "${PN}-gui ${PN}-vconsole-setup ${PN}-initramfs ${PN}-analyze ${PN}-kernel-install" |
111 | 118 | ||
112 | USERADD_PACKAGES = "${PN}" | 119 | USERADD_PACKAGES = "${PN}" |
113 | GROUPADD_PARAM_${PN} = "-r lock" | 120 | GROUPADD_PARAM_${PN} = "-r lock; -r systemd-journal" |
114 | 121 | ||
115 | FILES_${PN}-analyze = "${base_bindir}/systemd-analyze" | 122 | FILES_${PN}-analyze = "${base_bindir}/systemd-analyze" |
116 | 123 | ||
@@ -123,6 +130,10 @@ FILES_${PN}-vconsole-setup = "${systemd_unitdir}/systemd-vconsole-setup \ | |||
123 | ${systemd_unitdir}/system/systemd-vconsole-setup.service \ | 130 | ${systemd_unitdir}/system/systemd-vconsole-setup.service \ |
124 | ${systemd_unitdir}/system/sysinit.target.wants/systemd-vconsole-setup.service" | 131 | ${systemd_unitdir}/system/sysinit.target.wants/systemd-vconsole-setup.service" |
125 | 132 | ||
133 | FILES_${PN}-kernel-install = "${bindir}/kernel-install \ | ||
134 | ${sysconfdir}/kernel/ \ | ||
135 | ${exec_prefix}/lib/kernel \ | ||
136 | " | ||
126 | RRECOMMENDS_${PN}-vconsole-setup = "kbd kbd-consolefonts" | 137 | RRECOMMENDS_${PN}-vconsole-setup = "kbd kbd-consolefonts" |
127 | 138 | ||
128 | CONFFILES_${PN} = "${sysconfdir}/systemd/journald.conf \ | 139 | CONFFILES_${PN} = "${sysconfdir}/systemd/journald.conf \ |
@@ -131,6 +142,7 @@ CONFFILES_${PN} = "${sysconfdir}/systemd/journald.conf \ | |||
131 | ${sysconfdir}/systemd/user.conf" | 142 | ${sysconfdir}/systemd/user.conf" |
132 | 143 | ||
133 | FILES_${PN} = " ${base_bindir}/* \ | 144 | FILES_${PN} = " ${base_bindir}/* \ |
145 | ${datadir}/bash-completion \ | ||
134 | ${datadir}/dbus-1/services \ | 146 | ${datadir}/dbus-1/services \ |
135 | ${datadir}/dbus-1/system-services \ | 147 | ${datadir}/dbus-1/system-services \ |
136 | ${datadir}/polkit-1 \ | 148 | ${datadir}/polkit-1 \ |
@@ -155,6 +167,8 @@ FILES_${PN} = " ${base_bindir}/* \ | |||
155 | ${bindir}/localectl \ | 167 | ${bindir}/localectl \ |
156 | ${bindir}/hostnamectl \ | 168 | ${bindir}/hostnamectl \ |
157 | ${bindir}/timedatectl \ | 169 | ${bindir}/timedatectl \ |
170 | ${bindir}/bootctl \ | ||
171 | ${bindir}/kernel-install \ | ||
158 | ${exec_prefix}/lib/tmpfiles.d/*.conf \ | 172 | ${exec_prefix}/lib/tmpfiles.d/*.conf \ |
159 | ${exec_prefix}/lib/systemd \ | 173 | ${exec_prefix}/lib/systemd \ |
160 | ${exec_prefix}/lib/binfmt.d \ | 174 | ${exec_prefix}/lib/binfmt.d \ |
@@ -171,21 +185,21 @@ FILES_${PN} = " ${base_bindir}/* \ | |||
171 | FILES_${PN}-dbg += "${systemd_unitdir}/.debug ${systemd_unitdir}/*/.debug ${base_libdir}/security/.debug/" | 185 | FILES_${PN}-dbg += "${systemd_unitdir}/.debug ${systemd_unitdir}/*/.debug ${base_libdir}/security/.debug/" |
172 | FILES_${PN}-dev += "${base_libdir}/security/*.la ${datadir}/dbus-1/interfaces/ ${sysconfdir}/rpm/macros.systemd" | 186 | FILES_${PN}-dev += "${base_libdir}/security/*.la ${datadir}/dbus-1/interfaces/ ${sysconfdir}/rpm/macros.systemd" |
173 | 187 | ||
174 | RDEPENDS_${PN} += "dbus udev-systemd" | 188 | RDEPENDS_${PN} += "dbus" |
175 | 189 | ||
176 | RRECOMMENDS_${PN} += "systemd-serialgetty \ | 190 | RRECOMMENDS_${PN} += "systemd-serialgetty systemd-compat-units \ |
177 | util-linux-agetty \ | 191 | util-linux-agetty \ |
178 | util-linux-fsck e2fsprogs-e2fsck \ | 192 | util-linux-fsck e2fsprogs-e2fsck \ |
179 | kernel-module-autofs4 kernel-module-unix kernel-module-ipv6 \ | 193 | kernel-module-autofs4 kernel-module-unix kernel-module-ipv6 \ |
180 | " | 194 | " |
181 | 195 | ||
182 | PACKAGES =+ "udev-dbg udev udev-consolekit udev-utils udev-systemd" | 196 | PACKAGES =+ "udev-dbg udev udev-consolekit udev-utils udev-hwdb" |
183 | 197 | ||
184 | FILES_udev-dbg += "/lib/udev/.debug" | 198 | FILES_udev-dbg += "/lib/udev/.debug" |
185 | 199 | ||
186 | RDEPENDS_udev += "udev-utils" | 200 | RDEPENDS_udev += "udev-utils" |
187 | RPROVIDES_udev = "hotplug" | 201 | RPROVIDES_udev = "hotplug" |
188 | RRECOMMENDS_udev += "udev-extraconf usbutils-ids pciutils-ids" | 202 | RRECOMMENDS_udev += "udev-extraconf udev-hwdb" |
189 | 203 | ||
190 | FILES_udev += "${base_sbindir}/udevd \ | 204 | FILES_udev += "${base_sbindir}/udevd \ |
191 | ${base_libdir}/systemd/systemd-udevd \ | 205 | ${base_libdir}/systemd/systemd-udevd \ |
@@ -208,17 +222,22 @@ FILES_udev += "${base_sbindir}/udevd \ | |||
208 | /lib/udev/rules.d/78*.rules \ | 222 | /lib/udev/rules.d/78*.rules \ |
209 | /lib/udev/rules.d/8*.rules \ | 223 | /lib/udev/rules.d/8*.rules \ |
210 | /lib/udev/rules.d/95*.rules \ | 224 | /lib/udev/rules.d/95*.rules \ |
211 | ${base_libdir}/udev/hwdb.d \ | ||
212 | ${sysconfdir}/udev \ | 225 | ${sysconfdir}/udev \ |
226 | ${sysconfdir}/init.d/systemd-udevd \ | ||
227 | ${systemd_unitdir}/system/*udev* \ | ||
228 | ${systemd_unitdir}/system/*.wants/*udev* \ | ||
213 | " | 229 | " |
214 | 230 | ||
215 | FILES_udev-consolekit += "/lib/ConsoleKit" | 231 | FILES_udev-consolekit += "/lib/ConsoleKit" |
216 | RDEPENDS_udev-consolekit += "${@base_contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d)}" | 232 | RDEPENDS_udev-consolekit += "${@base_contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d)}" |
217 | 233 | ||
218 | FILES_udev-utils = "${bindir}/udevadm" | 234 | FILES_udev-utils = "${base_bindir}/udevadm ${datadir}/bash-completion/completions/udevadm" |
235 | |||
236 | FILES_udev-hwdb = "${base_libdir}/udev/hwdb.d" | ||
219 | 237 | ||
220 | FILES_udev-systemd = "${systemd_unitdir}/system/*udev* ${systemd_unitdir}/system/*.wants/*udev*" | 238 | INITSCRIPT_PACKAGES = "udev" |
221 | RDEPENDS_udev-systemd = "udev" | 239 | INITSCRIPT_NAME_udev = "systemd-udevd" |
240 | INITSCRIPT_PARAMS_udev = "start 03 S ." | ||
222 | 241 | ||
223 | # TODO: | 242 | # TODO: |
224 | # u-a for runlevel and telinit | 243 | # u-a for runlevel and telinit |
@@ -239,6 +258,21 @@ update-alternatives --remove shutdown ${base_bindir}/systemctl | |||
239 | update-alternatives --remove poweroff ${base_bindir}/systemctl | 258 | update-alternatives --remove poweroff ${base_bindir}/systemctl |
240 | } | 259 | } |
241 | 260 | ||
261 | pkg_postinst_udev-hwdb () { | ||
262 | if test -n "$D"; then | ||
263 | exit 1 | ||
264 | fi | ||
265 | |||
266 | udevadm hwdb --update | ||
267 | } | ||
268 | |||
269 | pkg_prerm_udev-hwdb () { | ||
270 | if test -n "$D"; then | ||
271 | exit 1 | ||
272 | fi | ||
273 | |||
274 | rm -f ${sysconfdir}/udev/hwdb.bin | ||
275 | } | ||
242 | 276 | ||
243 | # As this recipe builds udev, respect the systemd DISTRO_FEATURE so we don't try | 277 | # As this recipe builds udev, respect the systemd DISTRO_FEATURE so we don't try |
244 | # building udev and systemd in world builds. | 278 | # building udev and systemd in world builds. |
diff --git a/meta/recipes-core/sysvinit/sysvinit/rc b/meta/recipes-core/sysvinit/sysvinit/rc index 44bc9bfd74..655a0b067c 100755 --- a/meta/recipes-core/sysvinit/sysvinit/rc +++ b/meta/recipes-core/sysvinit/sysvinit/rc | |||
@@ -171,7 +171,7 @@ startup() { | |||
171 | fi | 171 | fi |
172 | 172 | ||
173 | #Uncomment to cause psplash to exit manually, otherwise it exits when it sees a VC switch | 173 | #Uncomment to cause psplash to exit manually, otherwise it exits when it sees a VC switch |
174 | if [ "x$runlevel" != "xS" ] && [ ! -x /etc/init.d/xserver-nodm ]; then | 174 | if [ "x$runlevel" != "xS" ] && [ ! -x /etc/rc${runlevel}.d/S??xserver-nodm ]; then |
175 | if type psplash-write >/dev/null 2>&1; then | 175 | if type psplash-write >/dev/null 2>&1; then |
176 | TMPDIR=/mnt/.psplash psplash-write "QUIT" || true | 176 | TMPDIR=/mnt/.psplash psplash-write "QUIT" || true |
177 | umount /mnt/.psplash | 177 | umount /mnt/.psplash |
diff --git a/meta/recipes-core/uclibc/uclibc-git.inc b/meta/recipes-core/uclibc/uclibc-git.inc index ed9b5fd1c4..db00ee6243 100644 --- a/meta/recipes-core/uclibc/uclibc-git.inc +++ b/meta/recipes-core/uclibc/uclibc-git.inc | |||
@@ -1,4 +1,4 @@ | |||
1 | SRCREV="9591091f150e8a86c47efbea5def21fa67fffb07" | 1 | SRCREV="946799cd0ce0c6c803c9cb173a84f4d607bde350" |
2 | 2 | ||
3 | DEFAULT_PREFERENCE = "-1" | 3 | DEFAULT_PREFERENCE = "-1" |
4 | 4 | ||
@@ -16,13 +16,12 @@ SRC_URI = "git://uclibc.org/uClibc.git;branch=master;protocol=git \ | |||
16 | file://argp-headers.patch \ | 16 | file://argp-headers.patch \ |
17 | file://remove_attribute_optimize_Os.patch \ | 17 | file://remove_attribute_optimize_Os.patch \ |
18 | file://compile-arm-fork-with-O2.patch \ | 18 | file://compile-arm-fork-with-O2.patch \ |
19 | file://uclibc-execvpe.patch \ | ||
20 | file://orign_path.patch \ | 19 | file://orign_path.patch \ |
21 | file://posix_fallocate.patch \ | ||
22 | file://0001-atexit_old-Do-not-add-it-to-shared-libc.patch \ | 20 | file://0001-atexit_old-Do-not-add-it-to-shared-libc.patch \ |
23 | file://0001-nptl-arm-Move-aeabi_read_tp-to-uclibc_nonshared.a.patch \ | 21 | file://0001-nptl-arm-Move-aeabi_read_tp-to-uclibc_nonshared.a.patch \ |
24 | file://0001-nptl-atfork-Hide-pthread_atfork-in-shared-versions.patch \ | 22 | file://0001-nptl-atfork-Hide-pthread_atfork-in-shared-versions.patch \ |
25 | file://0001-librt-Use-nodefaultlibs-instead-of-nostdlib.patch \ | 23 | file://0001-librt-Use-nodefaultlibs-instead-of-nostdlib.patch \ |
26 | file://0001-Revert-utent.c-wtent.c-move-functions-from-utxent.c.patch \ | 24 | file://0001-Revert-utent.c-wtent.c-move-functions-from-utxent.c.patch \ |
25 | file://0001-i386-sysdep.h-Remove-STABS_-macros.patch \ | ||
27 | " | 26 | " |
28 | S = "${WORKDIR}/git" | 27 | S = "${WORKDIR}/git" |
diff --git a/meta/recipes-core/uclibc/uclibc-git/0001-i386-sysdep.h-Remove-STABS_-macros.patch b/meta/recipes-core/uclibc/uclibc-git/0001-i386-sysdep.h-Remove-STABS_-macros.patch new file mode 100644 index 0000000000..8512c456a5 --- /dev/null +++ b/meta/recipes-core/uclibc/uclibc-git/0001-i386-sysdep.h-Remove-STABS_-macros.patch | |||
@@ -0,0 +1,71 @@ | |||
1 | Upstream-Status: Submitted | ||
2 | |||
3 | -Khem | ||
4 | |||
5 | From e20fd2c2427be981c16cb936cc6866d08520de9b Mon Sep 17 00:00:00 2001 | ||
6 | From: Khem Raj <raj.khem@gmail.com> | ||
7 | Date: Mon, 25 Mar 2013 19:34:39 -0700 | ||
8 | Subject: [PATCH] i386/sysdep.h: Remove STABS_* macros | ||
9 | |||
10 | uclibc is compiled with elf/dwarf and secondly HAVE_CPP_ASM_DEBUGINFO | ||
11 | is not defined so we generate bogus .stab sections needlessly | ||
12 | |||
13 | Some of post processing tools get confused when they see both | ||
14 | dwarf and stab sections | ||
15 | |||
16 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
17 | --- | ||
18 | libc/sysdeps/linux/i386/sysdep.h | 27 --------------------------- | ||
19 | 1 file changed, 27 deletions(-) | ||
20 | |||
21 | diff --git a/libc/sysdeps/linux/i386/sysdep.h b/libc/sysdeps/linux/i386/sysdep.h | ||
22 | index 983c4f5..7a8d2e2 100644 | ||
23 | --- a/libc/sysdeps/linux/i386/sysdep.h | ||
24 | +++ b/libc/sysdeps/linux/i386/sysdep.h | ||
25 | @@ -43,12 +43,9 @@ | ||
26 | incomplete stabs information. Fake some entries here which specify | ||
27 | the current source file. */ | ||
28 | #define ENTRY(name) \ | ||
29 | - STABS_CURRENT_FILE1("") \ | ||
30 | - STABS_CURRENT_FILE(name) \ | ||
31 | ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME(name); \ | ||
32 | ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function) \ | ||
33 | .align ALIGNARG(4); \ | ||
34 | - STABS_FUN(name) \ | ||
35 | C_LABEL(name) \ | ||
36 | cfi_startproc; \ | ||
37 | CALL_MCOUNT | ||
38 | @@ -57,30 +54,6 @@ | ||
39 | #define END(name) \ | ||
40 | cfi_endproc; \ | ||
41 | ASM_SIZE_DIRECTIVE(name) \ | ||
42 | - STABS_FUN_END(name) | ||
43 | - | ||
44 | -#ifdef HAVE_CPP_ASM_DEBUGINFO | ||
45 | -/* Disable that goop, because we just pass -g through to the assembler | ||
46 | - and it generates proper line number information directly. */ | ||
47 | -# define STABS_CURRENT_FILE1(name) | ||
48 | -# define STABS_CURRENT_FILE(name) | ||
49 | -# define STABS_FUN(name) | ||
50 | -# define STABS_FUN_END(name) | ||
51 | -#else | ||
52 | -/* Remove the following two lines once the gdb bug is fixed. */ | ||
53 | -#define STABS_CURRENT_FILE(name) \ | ||
54 | - STABS_CURRENT_FILE1 (#name) | ||
55 | -#define STABS_CURRENT_FILE1(name) \ | ||
56 | - 1: .stabs name,100,0,0,1b; | ||
57 | -/* Emit stabs definition lines. We use F(0,1) and define t(0,1) as `int', | ||
58 | - the same way gcc does it. */ | ||
59 | -#define STABS_FUN(name) STABS_FUN2(name, name##:F(0,1)) | ||
60 | -#define STABS_FUN2(name, namestr) \ | ||
61 | - .stabs "int:t(0,1)=r(0,1);-2147483648;2147483647;",128,0,0,0; \ | ||
62 | - .stabs #namestr,36,0,0,name; | ||
63 | -#define STABS_FUN_END(name) \ | ||
64 | - 1: .stabs "",36,0,0,1b-name; | ||
65 | -#endif | ||
66 | |||
67 | /* If compiled for profiling, call `mcount' at the start of each function. */ | ||
68 | #ifdef PROF | ||
69 | -- | ||
70 | 1.7.9.5 | ||
71 | |||
diff --git a/meta/recipes-core/uclibc/uclibc-git/0001-nptl-arm-Move-aeabi_read_tp-to-uclibc_nonshared.a.patch b/meta/recipes-core/uclibc/uclibc-git/0001-nptl-arm-Move-aeabi_read_tp-to-uclibc_nonshared.a.patch index 407beb657b..7fc5bd3d74 100644 --- a/meta/recipes-core/uclibc/uclibc-git/0001-nptl-arm-Move-aeabi_read_tp-to-uclibc_nonshared.a.patch +++ b/meta/recipes-core/uclibc/uclibc-git/0001-nptl-arm-Move-aeabi_read_tp-to-uclibc_nonshared.a.patch | |||
@@ -13,12 +13,12 @@ Upstream-Status: Pending | |||
13 | 13 | ||
14 | Index: git/libc/sysdeps/linux/arm/Makefile.arch | 14 | Index: git/libc/sysdeps/linux/arm/Makefile.arch |
15 | =================================================================== | 15 | =================================================================== |
16 | --- git.orig/libc/sysdeps/linux/arm/Makefile.arch 2013-01-21 16:29:25.000000000 -0800 | 16 | --- git.orig/libc/sysdeps/linux/arm/Makefile.arch 2013-03-25 19:48:48.000000000 -0700 |
17 | +++ git/libc/sysdeps/linux/arm/Makefile.arch 2013-01-21 16:33:11.575571091 -0800 | 17 | +++ git/libc/sysdeps/linux/arm/Makefile.arch 2013-03-25 19:51:57.496677771 -0700 |
18 | @@ -12,7 +12,10 @@ | 18 | @@ -13,7 +13,10 @@ |
19 | bsd-_setjmp.S sigrestorer.S mmap64.S \ | ||
20 | vfork.S clone.S | 19 | vfork.S clone.S |
21 | 20 | ||
21 | SSRC-$(UCLIBC_HAS_LFS) += mmap64.S | ||
22 | -SSRC-$(UCLIBC_HAS_THREADS_NATIVE) += libc-aeabi_read_tp.S libc-thumb_atomics.S | 22 | -SSRC-$(UCLIBC_HAS_THREADS_NATIVE) += libc-aeabi_read_tp.S libc-thumb_atomics.S |
23 | +SSRC-$(UCLIBC_HAS_THREADS_NATIVE) += libc-thumb_atomics.S | 23 | +SSRC-$(UCLIBC_HAS_THREADS_NATIVE) += libc-thumb_atomics.S |
24 | +libc-nonshared-$(UCLIBC_HAS_THREADS_NATIVE) += $(ARCH_OUT)/libc-aeabi_read_tp.os | 24 | +libc-nonshared-$(UCLIBC_HAS_THREADS_NATIVE) += $(ARCH_OUT)/libc-aeabi_read_tp.os |
diff --git a/meta/recipes-core/uclibc/uclibc-git/posix_fallocate.patch b/meta/recipes-core/uclibc/uclibc-git/posix_fallocate.patch deleted file mode 100644 index 46448babcb..0000000000 --- a/meta/recipes-core/uclibc/uclibc-git/posix_fallocate.patch +++ /dev/null | |||
@@ -1,408 +0,0 @@ | |||
1 | Delivered-To: raj.khem@gmail.com | ||
2 | Received: by 10.152.129.134 with SMTP id nw6csp47712lab; | ||
3 | Tue, 17 Apr 2012 00:30:48 -0700 (PDT) | ||
4 | Received: by 10.68.216.167 with SMTP id or7mr34112133pbc.140.1334647840512; | ||
5 | Tue, 17 Apr 2012 00:30:40 -0700 (PDT) | ||
6 | Return-Path: <uclibc-bounces@uclibc.org> | ||
7 | Received: from hemlock.osuosl.org (hemlock.osuosl.org. [140.211.166.133]) | ||
8 | by mx.google.com with ESMTP id gr10si13305623pbc.339.2012.04.17.00.30.39; | ||
9 | Tue, 17 Apr 2012 00:30:40 -0700 (PDT) | ||
10 | Received-SPF: neutral (google.com: 140.211.166.133 is neither permitted nor denied by best guess record for domain of uclibc-bounces@uclibc.org) client-ip=140.211.166.133; | ||
11 | Authentication-Results: mx.google.com; spf=neutral (google.com: 140.211.166.133 is neither permitted nor denied by best guess record for domain of uclibc-bounces@uclibc.org) smtp.mail=uclibc-bounces@uclibc.org; dkim=neutral (body hash did not verify) header.i=@gmail.com | ||
12 | Received: from localhost (localhost [127.0.0.1]) | ||
13 | by hemlock.osuosl.org (Postfix) with ESMTP id 7C494A0277; | ||
14 | Tue, 17 Apr 2012 07:30:39 +0000 (UTC) | ||
15 | X-Virus-Scanned: amavisd-new at osuosl.org | ||
16 | Received: from hemlock.osuosl.org ([127.0.0.1]) | ||
17 | by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) | ||
18 | with ESMTP id ZsSp5xE48GwC; Tue, 17 Apr 2012 07:30:34 +0000 (UTC) | ||
19 | Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) | ||
20 | by hemlock.osuosl.org (Postfix) with ESMTP id 1C4F5A0274; | ||
21 | Tue, 17 Apr 2012 07:30:33 +0000 (UTC) | ||
22 | X-Original-To: uclibc@lists.busybox.net | ||
23 | Delivered-To: uclibc@osuosl.org | ||
24 | Received: from fraxinus.osuosl.org (fraxinus.osuosl.org [140.211.166.137]) | ||
25 | by ash.osuosl.org (Postfix) with ESMTP id 17FDE8F75B | ||
26 | for <uclibc@lists.busybox.net>; Tue, 17 Apr 2012 07:30:32 +0000 (UTC) | ||
27 | Received: from localhost (localhost [127.0.0.1]) | ||
28 | by fraxinus.osuosl.org (Postfix) with ESMTP id 07B491016A1 | ||
29 | for <uclibc@lists.busybox.net>; Tue, 17 Apr 2012 07:30:32 +0000 (UTC) | ||
30 | X-Virus-Scanned: amavisd-new at osuosl.org | ||
31 | Received: from fraxinus.osuosl.org ([127.0.0.1]) | ||
32 | by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) | ||
33 | with ESMTP id XKP7jhcUijp4 for <uclibc@lists.busybox.net>; | ||
34 | Tue, 17 Apr 2012 07:30:27 +0000 (UTC) | ||
35 | X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 | ||
36 | Received: from mail-we0-f174.google.com (mail-we0-f174.google.com | ||
37 | [74.125.82.174]) | ||
38 | by fraxinus.osuosl.org (Postfix) with ESMTPS id 2CC0B100190 | ||
39 | for <uclibc@uclibc.org>; Tue, 17 Apr 2012 07:30:26 +0000 (UTC) | ||
40 | Received: by wejx9 with SMTP id x9so5218587wej.33 | ||
41 | for <uclibc@uclibc.org>; Tue, 17 Apr 2012 00:30:25 -0700 (PDT) | ||
42 | DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; | ||
43 | h=from:to:cc:subject:date:message-id:x-mailer; | ||
44 | bh=vadTQ1GL81XLDadHLtwCrcdL0YvVNNbIuISfTaQphgg=; | ||
45 | b=KkyW95PC1TUTmwGt+iBJ8p0FfGtTPAsTlXmul/1iH2p21itEpWkU+WcVd2jBH+jc6L | ||
46 | gzf4d6K1pmmfscdbPY3OkpFfvO/v/E4KYN7JmeI+fX1NY+gLBSHhExAVhM1Opue9z09V | ||
47 | 54MrEMtlIA9Wo/5QPd1+W7o9gXHYEnMkoqYYZLmfPlG3+pCXZ6RP36fOZnSV44BQgOFz | ||
48 | KBqn7XLo6nxgP5X/+JuEe4stvCrI9/66nX30u/Sh77a9poj5pp8hQZmtIpbbm3xRKGnM | ||
49 | Fi72jNCq/0nHh3M7eMqn+rvwi1JQjk/90zWNv8v5ShAKqSJVrfqLVN72KjTJtXfLOqbL | ||
50 | e2qA== | ||
51 | Received: by 10.216.133.72 with SMTP id p50mr8903959wei.78.1334647825412; | ||
52 | Tue, 17 Apr 2012 00:30:25 -0700 (PDT) | ||
53 | Received: from s42.loc (85-127-86-115.dynamic.xdsl-line.inode.at. | ||
54 | [85.127.86.115]) | ||
55 | by mx.google.com with ESMTPS id n20sm40466274wiw.5.2012.04.17.00.30.23 | ||
56 | (version=TLSv1/SSLv3 cipher=OTHER); | ||
57 | Tue, 17 Apr 2012 00:30:24 -0700 (PDT) | ||
58 | Received: from cow by s42.loc with local (Exim 4.77) | ||
59 | (envelope-from <rep.dot.nop@gmail.com>) | ||
60 | id 1SK2rm-0008Pl-V3; Tue, 17 Apr 2012 09:30:23 +0200 | ||
61 | From: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | ||
62 | To: uclibc@uclibc.org | ||
63 | Subject: [PATCH,CFT] libc: add posix_fallocate() | ||
64 | Date: Tue, 17 Apr 2012 09:30:15 +0200 | ||
65 | Message-Id: <1334647815-32315-1-git-send-email-rep.dot.nop@gmail.com> | ||
66 | X-Mailer: git-send-email 1.7.9.1 | ||
67 | X-BeenThere: uclibc@uclibc.org | ||
68 | X-Mailman-Version: 2.1.14 | ||
69 | Precedence: list | ||
70 | List-Id: "Discussion and development of uClibc \(the embedded C library\)" | ||
71 | <uclibc.uclibc.org> | ||
72 | List-Unsubscribe: <http://lists.busybox.net/mailman/options/uclibc>, | ||
73 | <mailto:uclibc-request@uclibc.org?subject=unsubscribe> | ||
74 | List-Archive: <http://lists.busybox.net/pipermail/uclibc> | ||
75 | List-Post: <mailto:uclibc@uclibc.org> | ||
76 | List-Help: <mailto:uclibc-request@uclibc.org?subject=help> | ||
77 | List-Subscribe: <http://lists.busybox.net/mailman/listinfo/uclibc>, | ||
78 | <mailto:uclibc-request@uclibc.org?subject=subscribe> | ||
79 | MIME-Version: 1.0 | ||
80 | Content-Type: text/plain; charset="us-ascii" | ||
81 | Content-Transfer-Encoding: 7bit | ||
82 | Errors-To: uclibc-bounces@uclibc.org | ||
83 | Sender: uclibc-bounces@uclibc.org | ||
84 | |||
85 | Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | ||
86 | Upstream-Status: Pending | ||
87 | --- | ||
88 | include/fcntl.h | 4 +- | ||
89 | libc/sysdeps/linux/common/Makefile.in | 3 +- | ||
90 | libc/sysdeps/linux/common/bits/kernel-features.h | 8 ++ | ||
91 | libc/sysdeps/linux/common/posix_fallocate.c | 43 ++++++++ | ||
92 | libc/sysdeps/linux/common/posix_fallocate64.c | 39 +++++++ | ||
93 | libc/sysdeps/linux/common/stubs.c | 4 + | ||
94 | test/.gitignore | 1 + | ||
95 | test/unistd/Makefile.in | 3 + | ||
96 | test/unistd/tst-posix_fallocate.c | 121 ++++++++++++++++++++++ | ||
97 | 9 files changed, 222 insertions(+), 4 deletions(-) | ||
98 | create mode 100644 libc/sysdeps/linux/common/posix_fallocate.c | ||
99 | create mode 100644 libc/sysdeps/linux/common/posix_fallocate64.c | ||
100 | create mode 100644 test/unistd/tst-posix_fallocate.c | ||
101 | |||
102 | Index: git/include/fcntl.h | ||
103 | =================================================================== | ||
104 | --- git.orig/include/fcntl.h 2012-06-23 18:47:18.000000000 -0700 | ||
105 | +++ git/include/fcntl.h 2012-06-23 18:48:54.805911794 -0700 | ||
106 | @@ -218,9 +218,7 @@ | ||
107 | |||
108 | #endif | ||
109 | |||
110 | -#if 0 /* && defined __UCLIBC_HAS_ADVANCED_REALTIME__ */ | ||
111 | - | ||
112 | -/* FIXME -- uClibc should probably implement these... */ | ||
113 | +#if defined __UCLIBC_HAS_ADVANCED_REALTIME__ | ||
114 | |||
115 | /* Reserve storage for the data of the file associated with FD. | ||
116 | |||
117 | Index: git/libc/sysdeps/linux/common/Makefile.in | ||
118 | =================================================================== | ||
119 | --- git.orig/libc/sysdeps/linux/common/Makefile.in 2012-06-23 18:47:18.000000000 -0700 | ||
120 | +++ git/libc/sysdeps/linux/common/Makefile.in 2012-06-23 18:50:14.033915572 -0700 | ||
121 | @@ -81,7 +81,8 @@ | ||
122 | sched_get_priority_max.c sched_get_priority_min.c sched_getscheduler.c \ | ||
123 | sched_rr_get_interval.c sched_setparam.c sched_setscheduler.c sigqueue.c | ||
124 | # clock_getcpuclockid|clock_nanosleep|mq_timedreceive|mq_timedsend|posix_fadvise|posix_fallocate|posix_madvise|posix_memalign|posix_mem_offset|posix_spawnattr_destroy|posix_spawnattr_init|posix_spawnattr_getflags|posix_spawnattr_setflags|posix_spawnattr_getpgroup|posix_spawnattr_setpgroup|posix_spawnattr_getschedparam|posix_spawnattr_setschedparam|posix_spawnattr_getschedpolicy|posix_spawnattr_setschedpolicy|posix_spawnattr_getsigdefault|posix_spawnattr_setsigdefault|posix_spawnattr_getsigmask|posix_spawnattr_setsigmask|posix_spawnattr_init|posix_spawnattr_setflags|posix_spawnattr_setpgroup|posix_spawnattr_setschedparam|posix_spawnattr_setschedpolicy|posix_spawnattr_setsigdefault|posix_spawnattr_setsigmask|posix_spawn_file_actions_addclose|posix_spawn_file_actions_addopen|posix_spawn_file_actions_adddup2|posix_spawn_file_actions_addopen|posix_spawn_file_actions_destroy|posix_spawn_file_actions_init|posix_spawn_file_actions_init|posix_spawn|posix_spawnp|posix_spawnp|posix_typed_mem_get_info|pthread_mutex_timedlock|sem_timedwait | ||
125 | -CSRC-$(UCLIBC_HAS_ADVANCED_REALTIME) += posix_fadvise64.c posix_fadvise.c posix_madvise.c | ||
126 | +CSRC-$(UCLIBC_HAS_ADVANCED_REALTIME) += posix_fadvise64.c posix_fadvise.c posix_madvise.c \ | ||
127 | + posix_fallocate.c posix_fallocate64.c | ||
128 | CSRC-$(UCLIBC_SUSV4_LEGACY) += utime.c | ||
129 | CSRC-$(UCLIBC_HAS_EPOLL) += epoll.c | ||
130 | CSRC-$(UCLIBC_HAS_XATTR) += xattr.c | ||
131 | Index: git/libc/sysdeps/linux/common/bits/kernel-features.h | ||
132 | =================================================================== | ||
133 | --- git.orig/libc/sysdeps/linux/common/bits/kernel-features.h 2012-06-23 18:47:18.000000000 -0700 | ||
134 | +++ git/libc/sysdeps/linux/common/bits/kernel-features.h 2012-06-23 18:48:54.805911794 -0700 | ||
135 | @@ -494,6 +494,14 @@ | ||
136 | # define __ASSUME_PRIVATE_FUTEX 1 | ||
137 | #endif | ||
138 | |||
139 | +/* Support for fallocate was added in 2.6.23, | ||
140 | + on s390 only after 2.6.23-rc1, on alpha only after 2.6.33-rc1. */ | ||
141 | +#if __LINUX_KERNEL_VERSION >= 0x020617 \ | ||
142 | + && (!defined __s390__ || __LINUX_KERNEL_VERSION >= 0x020618) \ | ||
143 | + && (!defined __alpha__ || __LINUX_KERNEL_VERSION >= 0x020621) | ||
144 | +# define __ASSUME_FALLOCATE 1 | ||
145 | +#endif | ||
146 | + | ||
147 | /* getcpu is a syscall for x86-64 since 3.1. */ | ||
148 | #if defined __x86_64__ && __LINUX_KERNEL_VERSION >= 0x030100 | ||
149 | # define __ASSUME_GETCPU_SYSCALL 1 | ||
150 | Index: git/libc/sysdeps/linux/common/posix_fallocate.c | ||
151 | =================================================================== | ||
152 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | ||
153 | +++ git/libc/sysdeps/linux/common/posix_fallocate.c 2012-06-23 18:48:54.825911795 -0700 | ||
154 | @@ -0,0 +1,43 @@ | ||
155 | +/* vi: set sw=4 ts=4: */ | ||
156 | +/* | ||
157 | + * posix_fallocate() for uClibc | ||
158 | + * http://www.opengroup.org/onlinepubs/9699919799/functions/posix_fallocate.html | ||
159 | + * | ||
160 | + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org> | ||
161 | + * | ||
162 | + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball. | ||
163 | + */ | ||
164 | + | ||
165 | +#include <sys/syscall.h> | ||
166 | +#include <fcntl.h> | ||
167 | +#include <bits/kernel-features.h> | ||
168 | +#include <stdint.h> | ||
169 | + | ||
170 | +#if defined __NR_fallocate | ||
171 | +int posix_fallocate(int fd, __off_t offset, __off_t len) | ||
172 | +{ | ||
173 | + int ret; | ||
174 | + | ||
175 | +# if __WORDSIZE == 32 | ||
176 | + uint32_t off_low = offset; | ||
177 | + uint32_t len_low = len; | ||
178 | + /* may assert that these >>31 are 0 */ | ||
179 | + uint32_t zero = 0; | ||
180 | + INTERNAL_SYSCALL_DECL(err); | ||
181 | + ret = (int) (INTERNAL_SYSCALL(fallocate, err, 6, fd, 0, | ||
182 | + __LONG_LONG_PAIR (zero, off_low), | ||
183 | + __LONG_LONG_PAIR (zero, len_low))); | ||
184 | +# elif __WORDSIZE == 64 | ||
185 | + INTERNAL_SYSCALL_DECL(err); | ||
186 | + ret = (int) (INTERNAL_SYSCALL(fallocate, err, 4, fd, 0, offset, len)); | ||
187 | +# else | ||
188 | +# error your machine is neither 32 bit or 64 bit ... it must be magical | ||
189 | +#endif | ||
190 | + if (unlikely(INTERNAL_SYSCALL_ERROR_P (ret, err))) | ||
191 | + return INTERNAL_SYSCALL_ERRNO (ret, err); | ||
192 | + return 0; | ||
193 | +} | ||
194 | +# if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64 | ||
195 | +strong_alias(posix_fallocate,posix_fallocate64) | ||
196 | +# endif | ||
197 | +#endif | ||
198 | Index: git/libc/sysdeps/linux/common/posix_fallocate64.c | ||
199 | =================================================================== | ||
200 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | ||
201 | +++ git/libc/sysdeps/linux/common/posix_fallocate64.c 2012-06-23 18:48:54.825911795 -0700 | ||
202 | @@ -0,0 +1,39 @@ | ||
203 | +/* vi: set sw=4 ts=4: */ | ||
204 | +/* | ||
205 | + * posix_fallocate() for uClibc | ||
206 | + * http://www.opengroup.org/onlinepubs/9699919799/functions/posix_fallocate.html | ||
207 | + * | ||
208 | + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org> | ||
209 | + * | ||
210 | + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball. | ||
211 | + */ | ||
212 | + | ||
213 | +#include <sys/syscall.h> | ||
214 | +#include <fcntl.h> | ||
215 | +#include <bits/kernel-features.h> | ||
216 | +#include <stdint.h> | ||
217 | + | ||
218 | +#if defined __NR_fallocate | ||
219 | + | ||
220 | +# if __WORDSIZE == 64 | ||
221 | +/* Can use normal posix_fallocate() */ | ||
222 | +# elif __WORDSIZE == 32 | ||
223 | +int posix_fallocate64(int fd, __off64_t offset, __off64_t len) | ||
224 | +{ | ||
225 | + int ret; | ||
226 | + uint32_t off_low = offset & 0xffffffff; | ||
227 | + uint32_t off_high = offset >> 32; | ||
228 | + uint32_t len_low = len & 0xffffffff; | ||
229 | + uint32_t len_high = len >> 32; | ||
230 | + INTERNAL_SYSCALL_DECL(err); | ||
231 | + ret = (int) (INTERNAL_SYSCALL(fallocate, err, 6, fd, 0, | ||
232 | + __LONG_LONG_PAIR (off_high, off_low), | ||
233 | + __LONG_LONG_PAIR (len_high, len_low))); | ||
234 | + if (unlikely(INTERNAL_SYSCALL_ERROR_P (ret, err))) | ||
235 | + return INTERNAL_SYSCALL_ERRNO (ret, err); | ||
236 | + return 0; | ||
237 | +} | ||
238 | +# else | ||
239 | +# error your machine is neither 32 bit or 64 bit ... it must be magical | ||
240 | +# endif | ||
241 | +#endif | ||
242 | Index: git/libc/sysdeps/linux/common/stubs.c | ||
243 | =================================================================== | ||
244 | --- git.orig/libc/sysdeps/linux/common/stubs.c 2012-06-23 18:47:18.000000000 -0700 | ||
245 | +++ git/libc/sysdeps/linux/common/stubs.c 2012-06-23 18:48:54.825911795 -0700 | ||
246 | @@ -253,6 +253,10 @@ | ||
247 | make_ret_stub(posix_fadvise64) | ||
248 | #endif | ||
249 | |||
250 | +#if !defined __NR_fallocate && defined __UCLIBC_HAS_ADVANCED_REALTIME__ | ||
251 | +make_ret_stub(posix_fallocate) | ||
252 | +#endif | ||
253 | + | ||
254 | #ifndef __NR_madvise | ||
255 | make_ret_stub(posix_madvise) | ||
256 | #endif | ||
257 | Index: git/test/.gitignore | ||
258 | =================================================================== | ||
259 | --- git.orig/test/.gitignore 2012-06-23 18:47:18.000000000 -0700 | ||
260 | +++ git/test/.gitignore 2012-06-23 18:48:54.825911795 -0700 | ||
261 | @@ -316,6 +316,7 @@ | ||
262 | unistd/getopt | ||
263 | unistd/getopt_long | ||
264 | unistd/tstgetopt | ||
265 | +unistd/tst-posix_fallocate | ||
266 | unistd/tst-preadwrite | ||
267 | unistd/tst-preadwrite64 | ||
268 | unistd/vfork | ||
269 | Index: git/test/unistd/Makefile.in | ||
270 | =================================================================== | ||
271 | --- git.orig/test/unistd/Makefile.in 2012-06-23 18:47:18.000000000 -0700 | ||
272 | +++ git/test/unistd/Makefile.in 2012-06-23 18:48:54.829911795 -0700 | ||
273 | @@ -4,6 +4,9 @@ | ||
274 | ifeq ($(UCLIBC_HAS_LFS),) | ||
275 | TESTS_DISABLED := tst-preadwrite64 | ||
276 | endif | ||
277 | +ifeq ($(UCLIBC_HAS_ADVANCED_REALTIME),) | ||
278 | +TESTS_DISABLED := tst-posix_fallocate | ||
279 | +endif | ||
280 | OPTS_getopt := -abcXXX -9 | ||
281 | OPTS_getopt_long := --add XXX --delete YYY --verbose | ||
282 | ifeq ($(UCLIBC_HAS_GNU_GETOPT),y) | ||
283 | Index: git/test/unistd/tst-posix_fallocate.c | ||
284 | =================================================================== | ||
285 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | ||
286 | +++ git/test/unistd/tst-posix_fallocate.c 2012-06-23 18:48:54.829911795 -0700 | ||
287 | @@ -0,0 +1,121 @@ | ||
288 | +#include <fcntl.h> | ||
289 | +#include <sys/stat.h> | ||
290 | + | ||
291 | +static void do_prepare (void); | ||
292 | +#define PREPARE(argc, argv) do_prepare () | ||
293 | +static int do_test (void); | ||
294 | +#define TEST_FUNCTION do_test () | ||
295 | +#include <test-skeleton.c> | ||
296 | + | ||
297 | +static int fd; | ||
298 | +#ifndef O_LARGEFILE | ||
299 | +# error no O_LARGEFILE | ||
300 | +#endif | ||
301 | +static void | ||
302 | +do_prepare (void) | ||
303 | +{ | ||
304 | + fd = create_temp_file ("tst-posix_fallocate.", NULL); | ||
305 | + if (fd == -1) | ||
306 | + { | ||
307 | + printf ("cannot create temporary file: %m\n"); | ||
308 | + exit (1); | ||
309 | + } | ||
310 | +} | ||
311 | + | ||
312 | + | ||
313 | +static int | ||
314 | +do_test (void) | ||
315 | +{ | ||
316 | + struct stat64 st; | ||
317 | + | ||
318 | + if (fstat64 (fd, &st) != 0) | ||
319 | + { | ||
320 | + puts ("1st fstat failed"); | ||
321 | + return 1; | ||
322 | + } | ||
323 | + | ||
324 | + if (st.st_size != 0) | ||
325 | + { | ||
326 | + puts ("file not created with size 0"); | ||
327 | + return 1; | ||
328 | + } | ||
329 | + | ||
330 | + if (posix_fallocate (fd, 512, 768) != 0) | ||
331 | + { | ||
332 | + puts ("1st posix_fallocate call failed"); | ||
333 | + return 1; | ||
334 | + } | ||
335 | + | ||
336 | + if (fstat64 (fd, &st) != 0) | ||
337 | + { | ||
338 | + puts ("2nd fstat failed"); | ||
339 | + return 1; | ||
340 | + } | ||
341 | + | ||
342 | + if (st.st_size != 512 + 768) | ||
343 | + { | ||
344 | + printf ("file size after 1st posix_fallocate call is %llu, expected %u\n", | ||
345 | + (unsigned long long int) st.st_size, 512u + 768u); | ||
346 | + return 1; | ||
347 | + } | ||
348 | + | ||
349 | + if (posix_fallocate (fd, 0, 1024) != 0) | ||
350 | + { | ||
351 | + puts ("2nd posix_fallocate call failed"); | ||
352 | + return 1; | ||
353 | + } | ||
354 | + | ||
355 | + if (fstat64 (fd, &st) != 0) | ||
356 | + { | ||
357 | + puts ("3rd fstat failed"); | ||
358 | + return 1; | ||
359 | + } | ||
360 | + | ||
361 | + if (st.st_size != 512 + 768) | ||
362 | + { | ||
363 | + puts ("file size changed in 2nd posix_fallocate"); | ||
364 | + return 1; | ||
365 | + } | ||
366 | + | ||
367 | + if (posix_fallocate (fd, 2048, 64) != 0) | ||
368 | + { | ||
369 | + puts ("3rd posix_fallocate call failed"); | ||
370 | + return 1; | ||
371 | + } | ||
372 | + | ||
373 | + if (fstat64 (fd, &st) != 0) | ||
374 | + { | ||
375 | + puts ("4th fstat failed"); | ||
376 | + return 1; | ||
377 | + } | ||
378 | + | ||
379 | + if (st.st_size != 2048 + 64) | ||
380 | + { | ||
381 | + printf ("file size after 3rd posix_fallocate call is %llu, expected %u\n", | ||
382 | + (unsigned long long int) st.st_size, 2048u + 64u); | ||
383 | + return 1; | ||
384 | + } | ||
385 | + | ||
386 | + if (posix_fallocate64 (fd, 4097ULL, 4294967295ULL + 2ULL) != 0) | ||
387 | + { | ||
388 | + puts ("4th posix_fallocate call failed"); | ||
389 | + return 1; | ||
390 | + } | ||
391 | + | ||
392 | + if (fstat64 (fd, &st) != 0) | ||
393 | + { | ||
394 | + puts ("5th fstat failed"); | ||
395 | + return 1; | ||
396 | + } | ||
397 | + | ||
398 | + if (st.st_size != 4097ULL + 4294967295ULL + 2ULL) | ||
399 | + { | ||
400 | + printf ("file size after 4th posix_fallocate call is %llu, expected %u\n", | ||
401 | + (unsigned long long int) st.st_size, 4097ULL + 4294967295ULL + 2ULL); | ||
402 | + return 1; | ||
403 | + } | ||
404 | + | ||
405 | + close (fd); | ||
406 | + | ||
407 | + return 0; | ||
408 | +} | ||
diff --git a/meta/recipes-core/uclibc/uclibc-git/uclibc-execvpe.patch b/meta/recipes-core/uclibc/uclibc-git/uclibc-execvpe.patch deleted file mode 100644 index fe191fc496..0000000000 --- a/meta/recipes-core/uclibc/uclibc-git/uclibc-execvpe.patch +++ /dev/null | |||
@@ -1,163 +0,0 @@ | |||
1 | From d20556adadea03bff0bba051172caf0314a35471 Mon Sep 17 00:00:00 2001 | ||
2 | From: Henning Heinold <heinold@inf.fu-berlin.de> | ||
3 | Date: Sat, 4 Jun 2011 21:23:15 +0200 | ||
4 | Subject: [PATCH 2/2] libc: add non standard execvpe function | ||
5 | |||
6 | |||
7 | Signed-off-by: Henning Heinold <heinold@inf.fu-berlin.de> | ||
8 | --- | ||
9 | include/unistd.h | 6 ++++++ | ||
10 | libc/unistd/exec.c | 38 +++++++++++++++++++++++++++++++++----- | ||
11 | libc/unistd/execvpe.c | 7 +++++++ | ||
12 | 3 files changed, 46 insertions(+), 5 deletions(-) | ||
13 | create mode 100644 libc/unistd/execvpe.c | ||
14 | |||
15 | |||
16 | Upstream-Status: Pending | ||
17 | |||
18 | diff --git a/include/unistd.h b/include/unistd.h | ||
19 | index 9568790..070e4f2 100644 | ||
20 | --- a/include/unistd.h | ||
21 | +++ b/include/unistd.h | ||
22 | @@ -557,6 +557,12 @@ extern int execvp (__const char *__file, char *__const __argv[]) | ||
23 | __THROW __nonnull ((1)); | ||
24 | libc_hidden_proto(execvp) | ||
25 | |||
26 | +/* Execute FILE, searching in the `PATH' environment variable if it contains | ||
27 | + no slashes, with arguments ARGV and environment from a pointer */ | ||
28 | +extern int execvpe (__const char *__file, char *__const __argv[], char *__const __envp[]) | ||
29 | + __THROW __nonnull ((1)); | ||
30 | +libc_hidden_proto(execvpe) | ||
31 | + | ||
32 | /* Execute FILE, searching in the `PATH' environment variable if | ||
33 | it contains no slashes, with all arguments after FILE until a | ||
34 | NULL pointer and environment from `environ'. */ | ||
35 | diff --git a/libc/unistd/exec.c b/libc/unistd/exec.c | ||
36 | index 7d24072..802a174 100644 | ||
37 | --- a/libc/unistd/exec.c | ||
38 | +++ b/libc/unistd/exec.c | ||
39 | @@ -32,6 +32,8 @@ | ||
40 | /**********************************************************************/ | ||
41 | #define EXEC_FUNC_COMMON 0 | ||
42 | #define EXEC_FUNC_EXECVP 1 | ||
43 | +#define EXEC_FUNC_EXECVPE 2 | ||
44 | + | ||
45 | #if defined(__ARCH_USE_MMU__) | ||
46 | |||
47 | /* We have an MMU, so use alloca() to grab space for buffers and arg lists. */ | ||
48 | @@ -58,6 +60,7 @@ | ||
49 | * execle(a) -> execve(-) | ||
50 | * execv(-) -> execve(-) | ||
51 | * execvp(a) -> execve(-) | ||
52 | + * execvpe(a) -> execve(-) | ||
53 | */ | ||
54 | |||
55 | # define EXEC_ALLOC_SIZE(VAR) /* nothing to do */ | ||
56 | @@ -219,15 +222,18 @@ libc_hidden_def(execlp) | ||
57 | |||
58 | #endif | ||
59 | /**********************************************************************/ | ||
60 | -#ifdef L_execvp | ||
61 | +#if defined (L_execvp) || defined(L_execvpe) | ||
62 | |||
63 | |||
64 | /* Use a default path that matches glibc behavior, since SUSv3 says | ||
65 | * this is implementation-defined. The default is current working dir, | ||
66 | * /bin, and then /usr/bin. */ | ||
67 | static const char default_path[] = ":/bin:/usr/bin"; | ||
68 | - | ||
69 | +#if defined (L_execvp) | ||
70 | int execvp(const char *path, char *const argv[]) | ||
71 | +#elif defined (L_execvpe) | ||
72 | +int execvpe(const char *path, char *const argv[], char *const envp[]) | ||
73 | +#endif | ||
74 | { | ||
75 | char *buf = NULL; | ||
76 | char *p; | ||
77 | @@ -245,7 +251,11 @@ int execvp(const char *path, char *const argv[]) | ||
78 | } | ||
79 | |||
80 | if (strchr(path, '/')) { | ||
81 | +#if defined (L_execvp) | ||
82 | execve(path, argv, __environ); | ||
83 | +#elif defined (L_execvpe) | ||
84 | + execve(path, argv, envp); | ||
85 | +#endif | ||
86 | if (errno == ENOEXEC) { | ||
87 | char **nargv; | ||
88 | EXEC_ALLOC_SIZE(size2) /* Do NOT add a semicolon! */ | ||
89 | @@ -254,11 +264,19 @@ int execvp(const char *path, char *const argv[]) | ||
90 | /* Need the dimension - 1. We omit counting the trailing | ||
91 | * NULL but we actually omit the first entry. */ | ||
92 | for (n=0 ; argv[n] ; n++) {} | ||
93 | +#if defined (L_execvp) | ||
94 | nargv = (char **) EXEC_ALLOC((n+2) * sizeof(char *), size2, EXEC_FUNC_EXECVP); | ||
95 | +#elif defined (L_execvpe) | ||
96 | + nargv = (char **) EXEC_ALLOC((n+2) * sizeof(char *), size2, EXEC_FUNC_EXECVPE); | ||
97 | +#endif | ||
98 | nargv[0] = argv[0]; | ||
99 | nargv[1] = (char *)path; | ||
100 | memcpy(nargv+2, argv+1, n*sizeof(char *)); | ||
101 | +#if defined (L_execvp) | ||
102 | execve("/bin/sh", nargv, __environ); | ||
103 | +#elif defined (L_execvpe) | ||
104 | + execve("/bin/sh", nargv, envp); | ||
105 | +#endif | ||
106 | EXEC_FREE(nargv, size2); | ||
107 | } | ||
108 | } else { | ||
109 | @@ -277,8 +295,11 @@ int execvp(const char *path, char *const argv[]) | ||
110 | return -1; | ||
111 | } | ||
112 | len = (FILENAME_MAX - 1) - plen; | ||
113 | - | ||
114 | +#if defined (L_execvp) | ||
115 | buf = EXEC_ALLOC(FILENAME_MAX, size, EXEC_FUNC_EXECVP); | ||
116 | +#elif defined (L_execvpe) | ||
117 | + buf = EXEC_ALLOC(FILENAME_MAX, size, EXEC_FUNC_EXECVPE); | ||
118 | +#endif | ||
119 | { | ||
120 | int seen_small = 0; | ||
121 | s0 = buf + len; | ||
122 | @@ -300,8 +321,11 @@ int execvp(const char *path, char *const argv[]) | ||
123 | s[plen-1] = '/'; | ||
124 | } | ||
125 | |||
126 | +#if defined (L_execvp) | ||
127 | execve(s, argv, __environ); | ||
128 | - | ||
129 | +#elif defined (L_execvpe) | ||
130 | + execve(s, argv, envp); | ||
131 | +#endif | ||
132 | seen_small = 1; | ||
133 | |||
134 | if (errno == ENOEXEC) { | ||
135 | @@ -325,7 +349,11 @@ int execvp(const char *path, char *const argv[]) | ||
136 | |||
137 | return -1; | ||
138 | } | ||
139 | +#if defined (L_execvp) | ||
140 | libc_hidden_def(execvp) | ||
141 | - | ||
142 | +#elif defined (L_execvpe) | ||
143 | +libc_hidden_def(execvpe) | ||
144 | #endif | ||
145 | + | ||
146 | +#endif /* #if defined (L_execvp) || defined(L_execvpe) */ | ||
147 | /**********************************************************************/ | ||
148 | diff --git a/libc/unistd/execvpe.c b/libc/unistd/execvpe.c | ||
149 | new file mode 100644 | ||
150 | index 0000000..5c1ce06 | ||
151 | --- /dev/null | ||
152 | +++ b/libc/unistd/execvpe.c | ||
153 | @@ -0,0 +1,7 @@ | ||
154 | +/* Copyright (C) 2011 Hennning Heinold <heinold@inf.fu-berlin.de> | ||
155 | + * | ||
156 | + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. | ||
157 | + */ | ||
158 | + | ||
159 | +#define L_execvpe | ||
160 | +#include "exec.c" | ||
161 | -- | ||
162 | 1.7.5.3 | ||
163 | |||
diff --git a/meta/recipes-core/udev/udev.inc b/meta/recipes-core/udev/udev.inc index bd82c34b57..e358d2d200 100644 --- a/meta/recipes-core/udev/udev.inc +++ b/meta/recipes-core/udev/udev.inc | |||
@@ -27,7 +27,8 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/hotplug/udev-${PV}.tar.gz \ | |||
27 | file://local.rules \ | 27 | file://local.rules \ |
28 | file://udev-cache \ | 28 | file://udev-cache \ |
29 | file://udev-cache.default \ | 29 | file://udev-cache.default \ |
30 | file://init" | 30 | file://init \ |
31 | file://volatiles" | ||
31 | 32 | ||
32 | inherit autotools pkgconfig update-rc.d | 33 | inherit autotools pkgconfig update-rc.d |
33 | 34 | ||
@@ -81,6 +82,9 @@ do_install_append () { | |||
81 | install -d ${D}${sysconfdir}/default | 82 | install -d ${D}${sysconfdir}/default |
82 | install -m 0755 ${WORKDIR}/udev-cache.default ${D}${sysconfdir}/default/udev-cache | 83 | install -m 0755 ${WORKDIR}/udev-cache.default ${D}${sysconfdir}/default/udev-cache |
83 | 84 | ||
85 | install -d ${D}${sysconfdir}/default/volatiles | ||
86 | install -m 0644 ${WORKDIR}/volatiles ${D}${sysconfdir}/default/volatiles/00_udev | ||
87 | |||
84 | touch ${D}${sysconfdir}/udev/cache.data | 88 | touch ${D}${sysconfdir}/udev/cache.data |
85 | 89 | ||
86 | install -d ${D}${sysconfdir}/udev/rules.d/ | 90 | install -d ${D}${sysconfdir}/udev/rules.d/ |
diff --git a/meta/recipes-core/udev/udev/volatiles b/meta/recipes-core/udev/udev/volatiles new file mode 100644 index 0000000000..e33561bf06 --- /dev/null +++ b/meta/recipes-core/udev/udev/volatiles | |||
@@ -0,0 +1 @@ | |||
l root root 0755 /run /var/run | |||
diff --git a/meta/recipes-core/util-linux/util-linux.inc b/meta/recipes-core/util-linux/util-linux.inc index 41a5471132..dd9c5466d4 100644 --- a/meta/recipes-core/util-linux/util-linux.inc +++ b/meta/recipes-core/util-linux/util-linux.inc | |||
@@ -17,7 +17,7 @@ LIC_FILES_CHKSUM = "file://README.licensing;md5=679af3e410ee112a5ec94de6501bf5c3 | |||
17 | file://libmount/COPYING;md5=152f98bc301a5ea649769ede7203ac82 \ | 17 | file://libmount/COPYING;md5=152f98bc301a5ea649769ede7203ac82 \ |
18 | file://libblkid/COPYING;md5=152f98bc301a5ea649769ede7203ac82" | 18 | file://libblkid/COPYING;md5=152f98bc301a5ea649769ede7203ac82" |
19 | 19 | ||
20 | inherit autotools gettext pkgconfig | 20 | inherit autotools gettext pkgconfig systemd |
21 | DEPENDS = "zlib ncurses" | 21 | DEPENDS = "zlib ncurses" |
22 | DEPENDS_append_class-native = " lzo-native" | 22 | DEPENDS_append_class-native = " lzo-native" |
23 | 23 | ||
@@ -34,7 +34,7 @@ PACKAGES =+ "util-linux-agetty util-linux-fdisk util-linux-cfdisk util-linux-sfd | |||
34 | util-linux-libmount util-linux-libmount-dev \ | 34 | util-linux-libmount util-linux-libmount-dev \ |
35 | util-linux-libblkid-dev util-linux-libuuid util-linux-libuuid-dev \ | 35 | util-linux-libblkid-dev util-linux-libuuid util-linux-libuuid-dev \ |
36 | util-linux-uuidgen util-linux-lscpu util-linux-fsck util-linux-blkid \ | 36 | util-linux-uuidgen util-linux-lscpu util-linux-fsck util-linux-blkid \ |
37 | util-linux-mkfs util-linux-mcookie util-linux-reset" | 37 | util-linux-mkfs util-linux-mcookie util-linux-reset util-linux-uuidd" |
38 | 38 | ||
39 | EXTRA_OECONF = "--libdir=${base_libdir} --disable-use-tty-group \ | 39 | EXTRA_OECONF = "--libdir=${base_libdir} --disable-use-tty-group \ |
40 | --disable-makeinstall-chown --enable-elvtune --enable-init \ | 40 | --disable-makeinstall-chown --enable-elvtune --enable-init \ |
@@ -46,6 +46,10 @@ EXTRA_OECONF = "--libdir=${base_libdir} --disable-use-tty-group \ | |||
46 | usrsbin_execdir='${sbindir}' \ | 46 | usrsbin_execdir='${sbindir}' \ |
47 | " | 47 | " |
48 | 48 | ||
49 | # Respect the systemd feature for uuidd | ||
50 | EXTRA_OECONF += "${@base_contains('DISTRO_FEATURES', 'systemd', '--enable-socket-activation', '--disable-socket-activation', d)}" | ||
51 | EXTRA_OECONF += "${@base_contains('DISTRO_FEATURES', 'systemd', '--with-systemdsystemunitdir=${systemd_unitdir}/system/', '--without-systemdsystemunitdir', d)}" | ||
52 | |||
49 | EXTRA_OECONF_append_class-native = " --disable-login --disable-su" | 53 | EXTRA_OECONF_append_class-native = " --disable-login --disable-su" |
50 | 54 | ||
51 | FILES_${PN}-doc += "${datadir}/getopt/getopt-*.*" | 55 | FILES_${PN}-doc += "${datadir}/getopt/getopt-*.*" |
@@ -61,6 +65,7 @@ FILES_util-linux-mcookie = "${bindir}/mcookie" | |||
61 | FILES_util-linux-umount = "${base_bindir}/umount.${BPN}" | 65 | FILES_util-linux-umount = "${base_bindir}/umount.${BPN}" |
62 | FILES_util-linux-readprofile = "${base_sbindir}/readprofile.${BPN}" | 66 | FILES_util-linux-readprofile = "${base_sbindir}/readprofile.${BPN}" |
63 | FILES_util-linux-uuidgen = "${bindir}/uuidgen" | 67 | FILES_util-linux-uuidgen = "${bindir}/uuidgen" |
68 | FILES_util-linux-uuidd = "${sbindir}/uuidd" | ||
64 | FILES_util-linux-reset = "${base_bindir}/reset" | 69 | FILES_util-linux-reset = "${base_bindir}/reset" |
65 | 70 | ||
66 | FILES_util-linux-libblkid = "${base_libdir}/libblkid.so.*" | 71 | FILES_util-linux-libblkid = "${base_libdir}/libblkid.so.*" |
@@ -88,6 +93,8 @@ RRECOMMENDS_${PN} = "util-linux-fdisk util-linux-cfdisk util-linux-sfdisk util-l | |||
88 | RRECOMMENDS_${PN}_class-native = "" | 93 | RRECOMMENDS_${PN}_class-native = "" |
89 | RDEPENDS_${PN}_class-native = "" | 94 | RDEPENDS_${PN}_class-native = "" |
90 | 95 | ||
96 | SYSTEMD_PACKAGES = "util-linux-uuidd" | ||
97 | SYSTEMD_SERVICE_util-linux-uuidd = "uuidd.service" | ||
91 | 98 | ||
92 | do_compile () { | 99 | do_compile () { |
93 | set -e | 100 | set -e |
@@ -110,7 +117,7 @@ do_install () { | |||
110 | 117 | ||
111 | sbinprogs="agetty ctrlaltdel cfdisk vipw vigr" | 118 | sbinprogs="agetty ctrlaltdel cfdisk vipw vigr" |
112 | sbinprogs_a="pivot_root hwclock mkswap mkfs.minix fsck.minix losetup swapon fdisk readprofile fsck blkid blockdev" | 119 | sbinprogs_a="pivot_root hwclock mkswap mkfs.minix fsck.minix losetup swapon fdisk readprofile fsck blkid blockdev" |
113 | usrbinprogs_a="chfn chsh hexdump last logger mesg newgrp renice utmpdump wall setsid chrt flock" | 120 | usrbinprogs_a="chfn chsh hexdump last logger mesg newgrp renice utmpdump wall setsid chrt flock getopt" |
114 | binprogs_a="dmesg kill more umount mount login reset" | 121 | binprogs_a="dmesg kill more umount mount login reset" |
115 | 122 | ||
116 | if [ "${base_sbindir}" != "${sbindir}" ]; then | 123 | if [ "${base_sbindir}" != "${sbindir}" ]; then |
@@ -146,7 +153,7 @@ ALTERNATIVE_PRIORITY = "100" | |||
146 | 153 | ||
147 | ALTERNATIVE_${PN} = "dmesg kill more mkswap blockdev pivot_root" | 154 | ALTERNATIVE_${PN} = "dmesg kill more mkswap blockdev pivot_root" |
148 | ALTERNATIVE_${PN} += "mkfs.minix hexdump last logger mesg renice wall" | 155 | ALTERNATIVE_${PN} += "mkfs.minix hexdump last logger mesg renice wall" |
149 | ALTERNATIVE_${PN} += "setsid chrt flock hwclock utmpdump eject" | 156 | ALTERNATIVE_${PN} += "setsid chrt flock hwclock utmpdump eject getopt" |
150 | 157 | ||
151 | ALTERNATIVE_LINK_NAME[dmesg] = "${base_bindir}/dmesg" | 158 | ALTERNATIVE_LINK_NAME[dmesg] = "${base_bindir}/dmesg" |
152 | ALTERNATIVE_LINK_NAME[kill] = "${base_bindir}/kill" | 159 | ALTERNATIVE_LINK_NAME[kill] = "${base_bindir}/kill" |
@@ -156,6 +163,8 @@ ALTERNATIVE_LINK_NAME[blockdev] = "${base_sbindir}/blockdev" | |||
156 | ALTERNATIVE_LINK_NAME[pivot_root] = "${base_sbindir}/pivot_root" | 163 | ALTERNATIVE_LINK_NAME[pivot_root] = "${base_sbindir}/pivot_root" |
157 | ALTERNATIVE_LINK_NAME[mkfs.minix] = "${base_sbindir}/mkfs.minix" | 164 | ALTERNATIVE_LINK_NAME[mkfs.minix] = "${base_sbindir}/mkfs.minix" |
158 | ALTERNATIVE_LINK_NAME[eject] = "${bindir}/eject" | 165 | ALTERNATIVE_LINK_NAME[eject] = "${bindir}/eject" |
166 | ALTERNATIVE_LINK_NAME[getopt] = "${base_bindir}/getopt" | ||
167 | ALTERNATIVE_TARGET[getopt] = "${bindir}/getopt" | ||
159 | 168 | ||
160 | ALTERNATIVE_${PN}-doc = "mountpoint.1 last.1 mesg.1 wall.1 sulogin.8 utmpdump.1" | 169 | ALTERNATIVE_${PN}-doc = "mountpoint.1 last.1 mesg.1 wall.1 sulogin.8 utmpdump.1" |
161 | 170 | ||
diff --git a/meta/recipes-core/util-linux/util-linux_2.22.2.bb b/meta/recipes-core/util-linux/util-linux_2.22.2.bb index 9b94a4773d..43a55a6db7 100644 --- a/meta/recipes-core/util-linux/util-linux_2.22.2.bb +++ b/meta/recipes-core/util-linux/util-linux_2.22.2.bb | |||
@@ -1,5 +1,5 @@ | |||
1 | MAJOR_VERSION = "2.22" | 1 | MAJOR_VERSION = "2.22" |
2 | PR = "r2" | 2 | PR = "r3" |
3 | require util-linux.inc | 3 | require util-linux.inc |
4 | 4 | ||
5 | SRC_URI += "file://util-linux-ng-replace-siginterrupt.patch \ | 5 | SRC_URI += "file://util-linux-ng-replace-siginterrupt.patch \ |
diff --git a/meta/recipes-devtools/dosfstools/dosfstools_2.11.bb b/meta/recipes-devtools/dosfstools/dosfstools_2.11.bb index eca54f1870..b7b85f059e 100644 --- a/meta/recipes-devtools/dosfstools/dosfstools_2.11.bb +++ b/meta/recipes-devtools/dosfstools/dosfstools_2.11.bb | |||
@@ -7,7 +7,7 @@ DESCRIPTION = "DOS FAT Filesystem Utilities" | |||
7 | SECTION = "base" | 7 | SECTION = "base" |
8 | LICENSE = "GPLv2" | 8 | LICENSE = "GPLv2" |
9 | LIC_FILES_CHKSUM = "file://mkdosfs/COPYING;md5=cbe67f08d6883bff587f615f0cc81aa8" | 9 | LIC_FILES_CHKSUM = "file://mkdosfs/COPYING;md5=cbe67f08d6883bff587f615f0cc81aa8" |
10 | PR = "r4" | 10 | PR = "r5" |
11 | 11 | ||
12 | SRC_URI = "ftp://ftp.uni-erlangen.de/pub/Linux/LOCAL/dosfstools/dosfstools-${PV}.src.tar.gz \ | 12 | SRC_URI = "ftp://ftp.uni-erlangen.de/pub/Linux/LOCAL/dosfstools/dosfstools-${PV}.src.tar.gz \ |
13 | file://mkdosfs-bootcode.patch \ | 13 | file://mkdosfs-bootcode.patch \ |
@@ -22,6 +22,11 @@ SRC_URI = "ftp://ftp.uni-erlangen.de/pub/Linux/LOCAL/dosfstools/dosfstools-${PV} | |||
22 | SRC_URI[md5sum] = "407d405ade410f7597d364ab5dc8c9f6" | 22 | SRC_URI[md5sum] = "407d405ade410f7597d364ab5dc8c9f6" |
23 | SRC_URI[sha256sum] = "0eac6d12388b3d9ed78684529c1b0d9346fa2abbe406c4d4a3eb5a023c98a484" | 23 | SRC_URI[sha256sum] = "0eac6d12388b3d9ed78684529c1b0d9346fa2abbe406c4d4a3eb5a023c98a484" |
24 | 24 | ||
25 | # Makefile sets this, but we clobber its CFLAGS, so | ||
26 | # add this in here to for sure allow for big files. | ||
27 | # | ||
28 | CFLAGS_append = " -D_FILE_OFFSET_BITS=64" | ||
29 | |||
25 | do_install () { | 30 | do_install () { |
26 | oe_runmake "PREFIX=${D}" "SBINDIR=${D}${sbindir}" \ | 31 | oe_runmake "PREFIX=${D}" "SBINDIR=${D}${sbindir}" \ |
27 | "MANDIR=${D}${mandir}/man8" install | 32 | "MANDIR=${D}${mandir}/man8" install |
diff --git a/meta/recipes-devtools/elfutils/elfutils_0.148.bb b/meta/recipes-devtools/elfutils/elfutils_0.148.bb index e8d58fbde5..9c0a08eafa 100644 --- a/meta/recipes-devtools/elfutils/elfutils_0.148.bb +++ b/meta/recipes-devtools/elfutils/elfutils_0.148.bb | |||
@@ -52,7 +52,7 @@ EXTRA_OECONF_append_class-native = " --without-bzlib" | |||
52 | EXTRA_OECONF_append_libc-uclibc = " --enable-uclibc" | 52 | EXTRA_OECONF_append_libc-uclibc = " --enable-uclibc" |
53 | 53 | ||
54 | do_configure_prepend() { | 54 | do_configure_prepend() { |
55 | sed -i 's:./i386_gendis:echo\ \#:g' ${S}/libcpu/Makefile.am | 55 | sed -i '/^i386_dis.h:/,+4 {/.*/d}' ${S}/libcpu/Makefile.am |
56 | 56 | ||
57 | cp ${WORKDIR}/*dis.h ${S}/libcpu | 57 | cp ${WORKDIR}/*dis.h ${S}/libcpu |
58 | } | 58 | } |
diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc index f9b22f3a75..1b5b569eee 100644 --- a/meta/recipes-devtools/qemu/qemu.inc +++ b/meta/recipes-devtools/qemu/qemu.inc | |||
@@ -1,7 +1,7 @@ | |||
1 | DESCRIPTION = "open source processor emulator" | 1 | DESCRIPTION = "open source processor emulator" |
2 | HOMEPAGE = "http://qemu.org" | 2 | HOMEPAGE = "http://qemu.org" |
3 | LICENSE = "GPLv2 & LGPLv2.1" | 3 | LICENSE = "GPLv2 & LGPLv2.1" |
4 | DEPENDS = "glib-2.0 zlib alsa-lib virtual/libx11 pixman" | 4 | DEPENDS = "glib-2.0 zlib alsa-lib virtual/libx11 pixman dtc" |
5 | DEPENDS_class-native = "zlib-native alsa-lib-native glib-2.0-native pixman-native dtc-native" | 5 | DEPENDS_class-native = "zlib-native alsa-lib-native glib-2.0-native pixman-native dtc-native" |
6 | DEPENDS_class-nativesdk = "nativesdk-zlib nativesdk-libsdl nativesdk-glib-2.0 nativesdk-pixman nativesdk-dtc" | 6 | DEPENDS_class-nativesdk = "nativesdk-zlib nativesdk-libsdl nativesdk-glib-2.0 nativesdk-pixman nativesdk-dtc" |
7 | RDEPENDS_${PN}_class-nativesdk = "nativesdk-libsdl" | 7 | RDEPENDS_${PN}_class-nativesdk = "nativesdk-libsdl" |
diff --git a/meta/recipes-devtools/remake/remake_git.bb b/meta/recipes-devtools/remake/remake_git.bb index a7cf54e320..afbc5d0710 100644 --- a/meta/recipes-devtools/remake/remake_git.bb +++ b/meta/recipes-devtools/remake/remake_git.bb | |||
@@ -16,10 +16,10 @@ PROVIDES += "make" | |||
16 | 16 | ||
17 | do_configure_prepend() { | 17 | do_configure_prepend() { |
18 | # remove the default LINGUAS since we are not going to generate languages | 18 | # remove the default LINGUAS since we are not going to generate languages |
19 | rm po/LINGUAS | 19 | rm ${S}/po/LINGUAS |
20 | touch po/LINGUAS | 20 | touch ${S}/po/LINGUAS |
21 | # create config.rpath which required by configure.ac | 21 | # create config.rpath which required by configure.ac |
22 | autopoint || touch config.rpath | 22 | ( cd ${S}; autopoint || touch config.rpath ) |
23 | } | 23 | } |
24 | 24 | ||
25 | BBCLASSEXTEND = "native" | 25 | BBCLASSEXTEND = "native" |
diff --git a/meta/recipes-devtools/rpm/rpm_5.4.9.bb b/meta/recipes-devtools/rpm/rpm_5.4.9.bb index e9c8f23c18..7c3897c822 100644 --- a/meta/recipes-devtools/rpm/rpm_5.4.9.bb +++ b/meta/recipes-devtools/rpm/rpm_5.4.9.bb | |||
@@ -43,7 +43,7 @@ LICENSE = "LGPLv2.1" | |||
43 | LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1" | 43 | LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1" |
44 | 44 | ||
45 | DEPENDS = "libpcre attr acl popt ossp-uuid file bison-native" | 45 | DEPENDS = "libpcre attr acl popt ossp-uuid file bison-native" |
46 | PR = "r61" | 46 | PR = "r62" |
47 | 47 | ||
48 | # rpm2cpio is a shell script, which is part of the rpm src.rpm. It is needed | 48 | # rpm2cpio is a shell script, which is part of the rpm src.rpm. It is needed |
49 | # in order to extract the distribution SRPM into a format we can extract... | 49 | # in order to extract the distribution SRPM into a format we can extract... |
@@ -200,7 +200,7 @@ CFLAGS_append = " -DRPM_VENDOR_WINDRIVER -DRPM_VENDOR_POKY -DRPM_VENDOR_OE" | |||
200 | 200 | ||
201 | LDFLAGS_append_libc-uclibc = "-lrt -lpthread" | 201 | LDFLAGS_append_libc-uclibc = "-lrt -lpthread" |
202 | 202 | ||
203 | PACKAGES = "${PN}-dbg ${PN} ${PN}-doc ${PN}-libs ${PN}-dev ${PN}-staticdev ${PN}-common ${PN}-build python-rpm-dbg python-rpm-staticdev python-rpm-dev python-rpm perl-module-rpm perl-module-rpm-dev ${PN}-locale" | 203 | PACKAGES = "${PN}-dbg ${PN} ${PN}-doc ${PN}-libs ${PN}-dev ${PN}-staticdev ${PN}-common ${PN}-build python-rpm-dbg python-rpm-staticdev python-rpm-dev python-rpm perl-module-rpm perl-module-rpm-dev ${PN}-locale ${PN}-postinsts" |
204 | 204 | ||
205 | SOLIBS = "5.4.so" | 205 | SOLIBS = "5.4.so" |
206 | 206 | ||
@@ -224,9 +224,13 @@ FILES_${PN} = "${bindir}/rpm \ | |||
224 | ${libdir}/rpm/bin/wget \ | 224 | ${libdir}/rpm/bin/wget \ |
225 | /var/lib/rpm \ | 225 | /var/lib/rpm \ |
226 | /var/cache/rpm \ | 226 | /var/cache/rpm \ |
227 | ${sysconfdir}/rcS.d/S${POSTINSTALL_INITPOSITION}run-postinsts \ | ||
228 | " | 227 | " |
229 | 228 | ||
229 | RDEPENDS_${PN} += "${PN}-postinsts" | ||
230 | |||
231 | FILES_${PN}-postinsts = "${sysconfdir}/rcS.d/S${POSTINSTALL_INITPOSITION}run-postinsts \ | ||
232 | " | ||
233 | |||
230 | FILES_${PN}-dbg += "${libdir}/rpm/.debug \ | 234 | FILES_${PN}-dbg += "${libdir}/rpm/.debug \ |
231 | ${libdir}/rpm/bin/.debug \ | 235 | ${libdir}/rpm/bin/.debug \ |
232 | " | 236 | " |
diff --git a/meta/recipes-devtools/tcf-agent/tcf-agent_git.bb b/meta/recipes-devtools/tcf-agent/tcf-agent_git.bb index 25fccaf45d..4d43c62c47 100644 --- a/meta/recipes-devtools/tcf-agent/tcf-agent_git.bb +++ b/meta/recipes-devtools/tcf-agent/tcf-agent_git.bb | |||
@@ -3,22 +3,17 @@ HOMEPAGE = "http://wiki.eclipse.org/TCF" | |||
3 | BUGTRACKER = "https://bugs.eclipse.org/bugs/" | 3 | BUGTRACKER = "https://bugs.eclipse.org/bugs/" |
4 | 4 | ||
5 | LICENSE = "EPL-1.0 | EDL-1.0" | 5 | LICENSE = "EPL-1.0 | EDL-1.0" |
6 | LIC_FILES_CHKSUM = "file://../epl-v10.html;md5=7aa4215a330a0a4f6a1cbf8da1a0879f \ | 6 | LIC_FILES_CHKSUM = "file://edl-v10.html;md5=522a390a83dc186513f0500543ad3679" |
7 | file://edl-v10.html;md5=522a390a83dc186513f0500543ad3679" | ||
8 | 7 | ||
9 | SRCREV = "4ef94ecb927a8912c3d79ce137182247786cff8f" | 8 | SRCREV = "4ef94ecb927a8912c3d79ce137182247786cff8f" |
10 | PV = "0.4.0+git${SRCPV}" | 9 | PV = "0.4.0+git${SRCPV}" |
11 | PR = "r0" | 10 | PR = "r0" |
12 | 11 | ||
13 | SRC_URI = "git://git.eclipse.org/gitroot/tcf/org.eclipse.tcf.agent.git;protocol=git \ | 12 | SRC_URI = "git://git.eclipse.org/gitroot/tcf/org.eclipse.tcf.agent.git;protocol=git \ |
14 | http://www.eclipse.org/legal/epl-v10.html;name=epl \ | ||
15 | file://fix_ranlib.patch \ | 13 | file://fix_ranlib.patch \ |
16 | file://fix_tcf-agent.init.patch \ | 14 | file://fix_tcf-agent.init.patch \ |
17 | " | 15 | " |
18 | 16 | ||
19 | SRC_URI[epl.md5sum] = "7aa4215a330a0a4f6a1cbf8da1a0879f" | ||
20 | SRC_URI[epl.sha256sum] = "4fd64aeed340d62a64a8da4b371efe0f6d0d745f4d2dbefacba86c646d36bc72" | ||
21 | |||
22 | DEPENDS = "util-linux openssl" | 17 | DEPENDS = "util-linux openssl" |
23 | RDEPENDS_${PN} = "bash" | 18 | RDEPENDS_${PN} = "bash" |
24 | 19 | ||
diff --git a/meta/recipes-extended/lsb/lsb_4.1.bb b/meta/recipes-extended/lsb/lsb_4.1.bb index 01368b334b..59d5bcafef 100644 --- a/meta/recipes-extended/lsb/lsb_4.1.bb +++ b/meta/recipes-extended/lsb/lsb_4.1.bb | |||
@@ -2,7 +2,7 @@ DESCRIPTION = "LSB support for OpenEmbedded" | |||
2 | SECTION = "console/utils" | 2 | SECTION = "console/utils" |
3 | HOMEPAGE = "http://prdownloads.sourceforge.net/lsb" | 3 | HOMEPAGE = "http://prdownloads.sourceforge.net/lsb" |
4 | LICENSE = "GPLv2+" | 4 | LICENSE = "GPLv2+" |
5 | PR = "r1" | 5 | PR = "r2" |
6 | 6 | ||
7 | # lsb_release needs getopt | 7 | # lsb_release needs getopt |
8 | RDEPENDS_${PN} += "util-linux" | 8 | RDEPENDS_${PN} += "util-linux" |
@@ -41,6 +41,9 @@ do_install(){ | |||
41 | echo "\"" >> ${D}${sysconfdir}/lsb-release | 41 | echo "\"" >> ${D}${sysconfdir}/lsb-release |
42 | echo "DISTRIB_ID=${DISTRO}" >> ${D}${sysconfdir}/lsb-release | 42 | echo "DISTRIB_ID=${DISTRO}" >> ${D}${sysconfdir}/lsb-release |
43 | echo "DISTRIB_RELEASE=${DISTRO_VERSION}" >> ${D}${sysconfdir}/lsb-release | 43 | echo "DISTRIB_RELEASE=${DISTRO_VERSION}" >> ${D}${sysconfdir}/lsb-release |
44 | if [ -n "${DISTRO_CODENAME}" ]; then | ||
45 | echo "DISTRIB_CODENAME=${DISTRO_CODENAME}" >> ${D}${sysconfdir}/lsb-release | ||
46 | fi | ||
44 | echo "DISTRIB_DESCRIPTION=\"${DISTRO_NAME} ${DISTRO_VERSION}\"" >> ${D}${sysconfdir}/lsb-release | 47 | echo "DISTRIB_DESCRIPTION=\"${DISTRO_NAME} ${DISTRO_VERSION}\"" >> ${D}${sysconfdir}/lsb-release |
45 | 48 | ||
46 | if [ "${TARGET_ARCH}" = "i586" ];then | 49 | if [ "${TARGET_ARCH}" = "i586" ];then |
diff --git a/meta/recipes-gnome/gtk+/gtk+.inc b/meta/recipes-gnome/gtk+/gtk+.inc index f05838a173..84edaf38a6 100644 --- a/meta/recipes-gnome/gtk+/gtk+.inc +++ b/meta/recipes-gnome/gtk+/gtk+.inc | |||
@@ -10,8 +10,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7" | |||
10 | 10 | ||
11 | SECTION = "libs" | 11 | SECTION = "libs" |
12 | 12 | ||
13 | PROVIDES_class-native = "virtual/gtk-update-icon-cache-native" | ||
14 | |||
15 | X11DEPENDS = "virtual/libx11 libxext libxcursor libxrandr libxdamage libxrender libxcomposite" | 13 | X11DEPENDS = "virtual/libx11 libxext libxcursor libxrandr libxdamage libxrender libxcomposite" |
16 | DEPENDS = "glib-2.0 pango atk jpeg libpng gdk-pixbuf-native docbook-utils-native \ | 14 | DEPENDS = "glib-2.0 pango atk jpeg libpng gdk-pixbuf-native docbook-utils-native \ |
17 | libgcrypt cairo gdk-pixbuf" | 15 | libgcrypt cairo gdk-pixbuf" |
@@ -81,12 +79,6 @@ do_install () { | |||
81 | mv ${D}${bindir}/gtk-update-icon-cache ${D}${bindir}/gtk-update-icon-cache-2.0 | 79 | mv ${D}${bindir}/gtk-update-icon-cache ${D}${bindir}/gtk-update-icon-cache-2.0 |
82 | } | 80 | } |
83 | 81 | ||
84 | do_install_append_class-native () { | ||
85 | # Ideally we'd use alternatives in the sysroot, but they don't work. | ||
86 | # As we know we don't have a native GTK+ 3 (yet), make a symlink instead. | ||
87 | ln -s gtk-update-icon-cache-2.0 ${D}${bindir}/gtk-update-icon-cache | ||
88 | } | ||
89 | |||
90 | SYSROOT_PREPROCESS_FUNCS += "gtk_sysroot_preprocess" | 82 | SYSROOT_PREPROCESS_FUNCS += "gtk_sysroot_preprocess" |
91 | 83 | ||
92 | gtk_sysroot_preprocess () { | 84 | gtk_sysroot_preprocess () { |
diff --git a/meta/recipes-gnome/gtk+/gtk+_2.24.15.bb b/meta/recipes-gnome/gtk+/gtk+_2.24.15.bb index 4e045e4fef..02d66f86b9 100644 --- a/meta/recipes-gnome/gtk+/gtk+_2.24.15.bb +++ b/meta/recipes-gnome/gtk+/gtk+_2.24.15.bb | |||
@@ -28,7 +28,7 @@ SRC_URI = "http://download.gnome.org/sources/gtk+/2.24/gtk+-${PV}.tar.xz \ | |||
28 | # file://combo-arrow-size.patch;striplevel=0 | 28 | # file://combo-arrow-size.patch;striplevel=0 |
29 | # file://configurefix.patch | 29 | # file://configurefix.patch |
30 | 30 | ||
31 | PR = "r0" | 31 | PR = "r1" |
32 | 32 | ||
33 | SRC_URI[md5sum] = "68f034fb4f68086790d7488cf00e71c8" | 33 | SRC_URI[md5sum] = "68f034fb4f68086790d7488cf00e71c8" |
34 | SRC_URI[sha256sum] = "d7e1c6d6ae6baa48c88441fe52b73b0fb6008763644867d59b049bafb0cf771b" | 34 | SRC_URI[sha256sum] = "d7e1c6d6ae6baa48c88441fe52b73b0fb6008763644867d59b049bafb0cf771b" |
@@ -38,14 +38,6 @@ EXTRA_OECONF = "--without-libtiff --without-libjasper --enable-xkb --disable-gli | |||
38 | LIBV = "2.10.0" | 38 | LIBV = "2.10.0" |
39 | 39 | ||
40 | PACKAGES_DYNAMIC += "^gtk-immodule-.* ^gtk-printbackend-.*" | 40 | PACKAGES_DYNAMIC += "^gtk-immodule-.* ^gtk-printbackend-.*" |
41 | BBCLASSEXTEND = "native" | ||
42 | RRECOMMENDS_${PN}_class-native = "" | ||
43 | DEPENDS_class-native = "glib-2.0-native atk-native pango-native cairo-native gdk-pixbuf-native" | ||
44 | |||
45 | do_install_append_class-native () { | ||
46 | create_wrapper ${D}/${bindir}/gtk-update-icon-cache-2.0 \ | ||
47 | GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache | ||
48 | } | ||
49 | 41 | ||
50 | python populate_packages_prepend () { | 42 | python populate_packages_prepend () { |
51 | gtk_libdir = d.expand('${libdir}/gtk-2.0/${LIBV}') | 43 | gtk_libdir = d.expand('${libdir}/gtk-2.0/${LIBV}') |
diff --git a/meta/recipes-gnome/gtk+/gtk-update-icon-cache-native_3.4.4.bb b/meta/recipes-gnome/gtk+/gtk-update-icon-cache-native_3.4.4.bb index ea99c14901..93c30a75b1 100644 --- a/meta/recipes-gnome/gtk+/gtk-update-icon-cache-native_3.4.4.bb +++ b/meta/recipes-gnome/gtk+/gtk-update-icon-cache-native_3.4.4.bb | |||
@@ -2,8 +2,6 @@ SUMMARY = "gtk-update-icon-cache built natively" | |||
2 | DESCRIPTION = "Just gtk-update-icon-cache built from GTK+ natively, for on-host postinst script execution." | 2 | DESCRIPTION = "Just gtk-update-icon-cache built from GTK+ natively, for on-host postinst script execution." |
3 | SECTION = "libs" | 3 | SECTION = "libs" |
4 | 4 | ||
5 | PROVIDES = "virtual/gtk-update-icon-cache-native" | ||
6 | |||
7 | DEPENDS = "gdk-pixbuf-native" | 5 | DEPENDS = "gdk-pixbuf-native" |
8 | 6 | ||
9 | LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+" | 7 | LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+" |
diff --git a/meta/recipes-gnome/packagegroups/packagegroup-toolset-native.bb b/meta/recipes-gnome/packagegroups/packagegroup-toolset-native.bb index 5c544ecf5c..82ee8202a3 100644 --- a/meta/recipes-gnome/packagegroups/packagegroup-toolset-native.bb +++ b/meta/recipes-gnome/packagegroups/packagegroup-toolset-native.bb | |||
@@ -84,7 +84,7 @@ DEPENDS = "\ | |||
84 | gperf-native \ | 84 | gperf-native \ |
85 | groff-native \ | 85 | groff-native \ |
86 | gtk-doc-stub-native \ | 86 | gtk-doc-stub-native \ |
87 | gtk+-native \ | 87 | gtk-update-icon-cache-native \ |
88 | guile-native \ | 88 | guile-native \ |
89 | guilt-native \ | 89 | guilt-native \ |
90 | gzip-native \ | 90 | gzip-native \ |
diff --git a/meta/recipes-graphics/builder/files/builder_hob_start.sh b/meta/recipes-graphics/builder/files/builder_hob_start.sh index 1c6884e42b..40616f5e7b 100644 --- a/meta/recipes-graphics/builder/files/builder_hob_start.sh +++ b/meta/recipes-graphics/builder/files/builder_hob_start.sh | |||
@@ -7,7 +7,7 @@ | |||
7 | export PSEUDO_PREFIX=/usr | 7 | export PSEUDO_PREFIX=/usr |
8 | export PSEUDO_LOCALSTATEDIR=/home/builder/pseudo | 8 | export PSEUDO_LOCALSTATEDIR=/home/builder/pseudo |
9 | export PSEUDO_LIBDIR=/usr/lib/pseudo/lib64 | 9 | export PSEUDO_LIBDIR=/usr/lib/pseudo/lib64 |
10 | export GIT_PROXY_COMMAND=/home/builder/poky/scripts/oe-git-proxy-socks-command | 10 | export GIT_PROXY_COMMAND=/home/builder/poky/scripts/oe-git-proxy |
11 | 11 | ||
12 | cd /home/builder/poky | 12 | cd /home/builder/poky |
13 | . ./oe-init-build-env | 13 | . ./oe-init-build-env |
diff --git a/meta/recipes-graphics/wayland/wayland_1.0.3.bb b/meta/recipes-graphics/wayland/wayland_1.0.6.bb index 6e01b227f0..6385933133 100644 --- a/meta/recipes-graphics/wayland/wayland_1.0.3.bb +++ b/meta/recipes-graphics/wayland/wayland_1.0.6.bb | |||
@@ -11,8 +11,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=1d4476a7d98dd5691c53d4d43a510c72 \ | |||
11 | file://src/wayland-server.c;endline=21;md5=079ae21dbf98ada52ec23744851b0a5c" | 11 | file://src/wayland-server.c;endline=21;md5=079ae21dbf98ada52ec23744851b0a5c" |
12 | 12 | ||
13 | SRC_URI = "http://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz" | 13 | SRC_URI = "http://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz" |
14 | SRC_URI[md5sum] = "eebe23571fd4f9ceacc583238e5a8ae9" | 14 | SRC_URI[md5sum] = "936a2590aea69fa3c0cf234d54b9137c" |
15 | SRC_URI[sha256sum] = "f6be5ee11ba534baaa116350b5efb874bf9963bf3fb18bcf40130317e83a5913" | 15 | SRC_URI[sha256sum] = "f52a012df699eff434b0f49e56000d6978b5f781048402ca8e0232242970fc49" |
16 | 16 | ||
17 | inherit autotools pkgconfig | 17 | inherit autotools pkgconfig |
18 | 18 | ||
diff --git a/meta/recipes-graphics/wayland/weston_1.0.3.bb b/meta/recipes-graphics/wayland/weston_1.0.6.bb index f769312f32..cb41e05c46 100644 --- a/meta/recipes-graphics/wayland/weston_1.0.3.bb +++ b/meta/recipes-graphics/wayland/weston_1.0.6.bb | |||
@@ -8,8 +8,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=275efac2559a224527bd4fd593d38466 \ | |||
8 | SRC_URI = "http://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \ | 8 | SRC_URI = "http://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \ |
9 | file://weston.png \ | 9 | file://weston.png \ |
10 | file://weston.desktop" | 10 | file://weston.desktop" |
11 | SRC_URI[md5sum] = "f82ac2e013e6b6a6303ac4ba7b64c7f2" | 11 | SRC_URI[md5sum] = "63202129d66d5514e572814da5dfa1f7" |
12 | SRC_URI[sha256sum] = "3136a7d2f654ea3e946d4217f7e25321248ad2921f1f4e2504dda58968e04853" | 12 | SRC_URI[sha256sum] = "c833bc4dc8667561d2639b57220541531c039aa9332ce2a7022a3c466eb894f1" |
13 | 13 | ||
14 | inherit autotools pkgconfig | 14 | inherit autotools pkgconfig |
15 | 15 | ||
diff --git a/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm b/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm index c707a4bdb8..e790fb0921 100755 --- a/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm +++ b/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm | |||
@@ -4,7 +4,7 @@ | |||
4 | # Provides: xserver | 4 | # Provides: xserver |
5 | # Required-Start: $local_fs $remote_fs dbus | 5 | # Required-Start: $local_fs $remote_fs dbus |
6 | # Required-Stop: $local_fs $remote_fs | 6 | # Required-Stop: $local_fs $remote_fs |
7 | # Default-Start: 2 3 4 5 | 7 | # Default-Start: 2 5 |
8 | # Default-Stop: 0 1 6 | 8 | # Default-Stop: 0 1 6 |
9 | ### END INIT INFO | 9 | ### END INIT INFO |
10 | 10 | ||
diff --git a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb index b9e00fcdd6..5ee3b7362c 100644 --- a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb +++ b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb | |||
@@ -18,6 +18,9 @@ LIC_FILES_CHKSUM = "file://LICENSE.radeon;md5=e56b405656593a0c97e478513051ea0e \ | |||
18 | file://LICENCE.agere;md5=af0133de6b4a9b2522defd5f188afd31 \ | 18 | file://LICENCE.agere;md5=af0133de6b4a9b2522defd5f188afd31 \ |
19 | file://LICENCE.rtlwifi_firmware.txt;md5=00d06cfd3eddd5a2698948ead2ad54a5 \ | 19 | file://LICENCE.rtlwifi_firmware.txt;md5=00d06cfd3eddd5a2698948ead2ad54a5 \ |
20 | file://LICENCE.broadcom_bcm43xx;md5=3160c14df7228891b868060e1951dfbc \ | 20 | file://LICENCE.broadcom_bcm43xx;md5=3160c14df7228891b868060e1951dfbc \ |
21 | file://LICENCE.ti-connectivity;md5=186e7a43cf6c274283ad81272ca218ea \ | ||
22 | file://LICENCE.atheros_firmware;md5=30a14c7823beedac9fa39c64fdd01a13 \ | ||
23 | file://LICENCE.via_vt6656;md5=e4159694cba42d4377a912e78a6e850f \ | ||
21 | " | 24 | " |
22 | 25 | ||
23 | SRCREV = "c530a75c1e6a472b0eb9558310b518f0dfcd8860" | 26 | SRCREV = "c530a75c1e6a472b0eb9558310b518f0dfcd8860" |
@@ -38,20 +41,44 @@ do_install() { | |||
38 | install -d ${D}/lib/firmware/ | 41 | install -d ${D}/lib/firmware/ |
39 | cp -r * ${D}/lib/firmware/ | 42 | cp -r * ${D}/lib/firmware/ |
40 | 43 | ||
44 | # Avoid Makefile to be deplyed | ||
45 | rm ${D}/lib/firmware/Makefile | ||
46 | |||
41 | # Libertas sd8686 | 47 | # Libertas sd8686 |
42 | ln -sf libertas/sd8686_v9.bin ${D}/lib/firmware/sd8686.bin | 48 | ln -sf libertas/sd8686_v9.bin ${D}/lib/firmware/sd8686.bin |
43 | ln -sf libertas/sd8686_v9_helper.bin ${D}/lib/firmware/sd8686_helper.bin | 49 | ln -sf libertas/sd8686_v9_helper.bin ${D}/lib/firmware/sd8686_helper.bin |
44 | 50 | ||
45 | # Realtek rtl8192* | ||
46 | install -m 0644 LICENCE.rtlwifi_firmware.txt ${D}/lib/firmware/rtlwifi/LICENCE.rtlwifi_firmware.txt | ||
47 | |||
48 | # fixup wl12xx location, after 2.6.37 the kernel searches a different location for it | 51 | # fixup wl12xx location, after 2.6.37 the kernel searches a different location for it |
49 | ( cd ${D}/lib/firmware ; ln -sf ti-connectivity/* . ) | 52 | ( cd ${D}/lib/firmware ; ln -sf ti-connectivity/* . ) |
50 | } | 53 | } |
51 | 54 | ||
52 | PACKAGES =+ "${PN}-ralink ${PN}-sd8686 ${PN}-rtl8192cu \ | 55 | PACKAGES =+ "${PN}-ralink ${PN}-sd8686 ${PN}-wl12xx ${PN}-vt6656 \ |
53 | ${PN}-rtl8192ce ${PN}-rtl8192su ${PN}-wl12xx \ | 56 | ${PN}-rtl-license ${PN}-rtl8192cu ${PN}-rtl8192ce ${PN}-rtl8192su \ |
54 | ${PN}-bcm4329 ${PN}-bcm4330 ${PN}-bcm4334" | 57 | ${PN}-broadcom-license ${PN}-bcm4329 ${PN}-bcm4330 ${PN}-bcm4334 \ |
58 | ${PN}-atheros-license ${PN}-ar9170 ${PN}-ath6k ${PN}-ath9k" | ||
59 | |||
60 | FILES_${PN}-atheros-license = "/lib/firmware/LICENCE.atheros_firmware" | ||
61 | |||
62 | LICENSE_${PN}-9170 = "Firmware-atheros_firmware" | ||
63 | FILES_${PN}-ar9170 = " \ | ||
64 | /lib/firmware/ar9170*.fw \ | ||
65 | " | ||
66 | RDEPENDS_${PN}-ar9170 += "${PN}-atheros-license" | ||
67 | |||
68 | LICENSE_${PN}-ath6k = "Firmware-atheros_firmware" | ||
69 | FILES_${PN}-ath6k = " \ | ||
70 | /lib/firmware/ath6k \ | ||
71 | " | ||
72 | RDEPENDS_${PN}-ath6k += "${PN}-atheros-license" | ||
73 | |||
74 | LICENSE_${PN}-ath9k = "Firmware-atheros_firmware" | ||
75 | FILES_${PN}-ath9k = " \ | ||
76 | /lib/firmware/ar9271.fw \ | ||
77 | /lib/firmware/ar7010*.fw \ | ||
78 | /lib/firmware/htc_9271.fw \ | ||
79 | /lib/firmware/htc_7010.fw \ | ||
80 | " | ||
81 | RDEPENDS_${PN}-ath9k += "${PN}-atheros-license" | ||
55 | 82 | ||
56 | LICENSE_${PN}-ralink = "Firmware-ralink" | 83 | LICENSE_${PN}-ralink = "Firmware-ralink" |
57 | FILES_${PN}-ralink = " \ | 84 | FILES_${PN}-ralink = " \ |
@@ -66,57 +93,71 @@ FILES_${PN}-sd8686 = " \ | |||
66 | /lib/firmware/LICENCE.libertas \ | 93 | /lib/firmware/LICENCE.libertas \ |
67 | " | 94 | " |
68 | 95 | ||
96 | FILES_${PN}-rtl-license = " \ | ||
97 | /lib/firmware/rtlwifi/LICENCE.rtlwifi_firmware.txt \ | ||
98 | " | ||
99 | |||
69 | LICENSE_${PN}-rtl8192cu = "Firmware-rtlwifi" | 100 | LICENSE_${PN}-rtl8192cu = "Firmware-rtlwifi" |
70 | FILES_${PN}-rtl8192cu = " \ | 101 | FILES_${PN}-rtl8192cu = " \ |
71 | /lib/firmware/rtlwifi/rtl8192cufw.bin \ | 102 | /lib/firmware/rtlwifi/rtl8192cufw.bin \ |
72 | /lib/firmware/rtlwifi/LICENCE.rtlwifi_firmware.txt \ | ||
73 | " | 103 | " |
104 | RDEPENDS_${PN}-rtl8192cu += "${PN}-rtl-license" | ||
74 | 105 | ||
75 | LICENSE_${PN}-rtl8192ce = "Firmware-rtlwifi" | 106 | LICENSE_${PN}-rtl8192ce = "Firmware-rtlwifi" |
76 | FILES_${PN}-rtl8192ce = " \ | 107 | FILES_${PN}-rtl8192ce = " \ |
77 | /lib/firmware/rtlwifi/rtl8192cfw.bin \ | 108 | /lib/firmware/rtlwifi/rtl8192cfw.bin \ |
78 | " | 109 | " |
110 | RDEPENDS_${PN}-rtl8192ce += "${PN}-rtl-license" | ||
111 | |||
79 | 112 | ||
80 | LICENSE_${PN}-rtl8192su = "Firmware-rtlwifi" | 113 | LICENSE_${PN}-rtl8192su = "Firmware-rtlwifi" |
81 | FILES_${PN}-rtl8192su = " \ | 114 | FILES_${PN}-rtl8192su = " \ |
82 | /lib/firmware/rtlwifi/rtl8712u.bin \ | 115 | /lib/firmware/rtlwifi/rtl8712u.bin \ |
83 | " | 116 | " |
84 | 117 | ||
118 | LICENSE_${PN}-wl12xx = "Firmware-ti-connectivity" | ||
85 | FILES_${PN}-wl12xx = " \ | 119 | FILES_${PN}-wl12xx = " \ |
86 | /lib/firmware/wl12* \ | 120 | /lib/firmware/wl12* \ |
87 | /lib/firmware/TI* \ | 121 | /lib/firmware/TI* \ |
88 | /lib/firmware/ti-connectivity \ | 122 | /lib/firmware/ti-connectivity \ |
89 | " | 123 | " |
90 | 124 | ||
125 | LICENSE_${PN}-vt6656 = "Firmware-via_vt6656" | ||
126 | FILES_${PN}-vt6656 = " \ | ||
127 | /lib/firmware/vntwusb.fw \ | ||
128 | " | ||
129 | |||
91 | # WARNING: The ALTERNATIVE_* variables are not using ${PN} because of | 130 | # WARNING: The ALTERNATIVE_* variables are not using ${PN} because of |
92 | # a bug in bitbake; when this is fixed and bitbake learns how to proper | 131 | # a bug in bitbake; when this is fixed and bitbake learns how to proper |
93 | # pass variable flags with expansion we can rework this patch. | 132 | # pass variable flags with expansion we can rework this patch. |
94 | 133 | ||
95 | ALTERNATIVE_LINK_NAME[brcmfmac-sdio.bin] = "/lib/firmware/brcm/brcmfmac-sdio.bin" | 134 | ALTERNATIVE_LINK_NAME[brcmfmac-sdio.bin] = "/lib/firmware/brcm/brcmfmac-sdio.bin" |
96 | 135 | ||
136 | FILES_${PN}-broadcom-license = " \ | ||
137 | /lib/firmware/LICENCE.broadcom_bcm43xx \ | ||
138 | " | ||
139 | |||
97 | LICENSE_${PN}-bcm4329 = "Firmware-bcm4329" | 140 | LICENSE_${PN}-bcm4329 = "Firmware-bcm4329" |
98 | FILES_${PN}-bcm4329 = " \ | 141 | FILES_${PN}-bcm4329 = " \ |
99 | /lib/firmware/brcm/brcmfmac4329.bin \ | 142 | /lib/firmware/brcm/brcmfmac4329.bin \ |
100 | /lib/firmware/LICENCE.broadcom_bcm43xx \ | ||
101 | " | 143 | " |
144 | RDEPENDS_${PN}-bcm4329 += "${PN}-broadcom-license" | ||
102 | ALTERNATIVE_linux-firmware-bcm4329 = "brcmfmac-sdio.bin" | 145 | ALTERNATIVE_linux-firmware-bcm4329 = "brcmfmac-sdio.bin" |
103 | ALTERNATIVE_TARGET_linux-firmware-bcm4329[brcmfmac-sdio.bin] = "/lib/firmware/brcm/brcmfmac4329.bin" | 146 | ALTERNATIVE_TARGET_linux-firmware-bcm4329[brcmfmac-sdio.bin] = "/lib/firmware/brcm/brcmfmac4329.bin" |
104 | 147 | ||
105 | LICENSE_${PN}-bcm4330 = "Firmware-bcm4330" | 148 | LICENSE_${PN}-bcm4330 = "Firmware-bcm4330" |
106 | FILES_${PN}-bcm4330 = " \ | 149 | FILES_${PN}-bcm4330 = " \ |
107 | /lib/firmware/brcm/brcmfmac4330.bin \ | 150 | /lib/firmware/brcm/brcmfmac4330.bin \ |
108 | /lib/firmware/LICENCE.broadcom_bcm43xx \ | ||
109 | " | 151 | " |
110 | 152 | RDEPENDS_${PN}-bcm4330 += "${PN}-broadcom-license" | |
111 | ALTERNATIVE_linux-firmware-bcm4330 = "brcmfmac-sdio.bin" | 153 | ALTERNATIVE_linux-firmware-bcm4330 = "brcmfmac-sdio.bin" |
112 | ALTERNATIVE_TARGET_linux-firmware-bcm4330[brcmfmac-sdio.bin] = "/lib/firmware/brcm/brcmfmac4330.bin" | 154 | ALTERNATIVE_TARGET_linux-firmware-bcm4330[brcmfmac-sdio.bin] = "/lib/firmware/brcm/brcmfmac4330.bin" |
113 | 155 | ||
114 | LICENSE_${PN}-bcm4334 = "Firmware-bcm4334" | 156 | LICENSE_${PN}-bcm4334 = "Firmware-bcm4334" |
115 | FILES_${PN}-bcm4334 = " \ | 157 | FILES_${PN}-bcm4334 = " \ |
116 | /lib/firmware/brcm/brcmfmac4334.bin \ | 158 | /lib/firmware/brcm/brcmfmac4334.bin \ |
117 | /lib/firmware/LICENCE.broadcom_bcm43xx \ | ||
118 | " | 159 | " |
119 | 160 | RDEPENDS_${PN}-bcm4334 += "${PN}-broadcom-license" | |
120 | ALTERNATIVE_linux-firmware-bcm4334 = "brcmfmac-sdio.bin" | 161 | ALTERNATIVE_linux-firmware-bcm4334 = "brcmfmac-sdio.bin" |
121 | ALTERNATIVE_TARGET_linux-firmware-bcm4334[brcmfmac-sdio.bin] = "/lib/firmware/brcm/brcmfmac4334.bin" | 162 | ALTERNATIVE_TARGET_linux-firmware-bcm4334[brcmfmac-sdio.bin] = "/lib/firmware/brcm/brcmfmac4334.bin" |
122 | 163 | ||
diff --git a/meta/recipes-kernel/linux/linux-yocto-rt_3.8.bb b/meta/recipes-kernel/linux/linux-yocto-rt_3.8.bb index 255e2e37b4..903fcb5c17 100644 --- a/meta/recipes-kernel/linux/linux-yocto-rt_3.8.bb +++ b/meta/recipes-kernel/linux/linux-yocto-rt_3.8.bb | |||
@@ -8,8 +8,8 @@ LINUX_KERNEL_TYPE = "preempt-rt" | |||
8 | 8 | ||
9 | KMETA = "meta" | 9 | KMETA = "meta" |
10 | 10 | ||
11 | SRCREV_machine ?= "f35992f80c81dc5fa1a97165dfd5cbb84661f7cb" | 11 | SRCREV_machine ?= "abd0728b164f651292374e96251ee197b50e3c02" |
12 | SRCREV_machine_qemuppc ?= "5789e3f33c1d5df35ced60d0153cafca7cd0e319" | 12 | SRCREV_machine_qemuppc ?= "1619988b773840ec546292a9cd65dda99d55b96c" |
13 | SRCREV_meta ?= "1b534b2f8bbe9b8a773268cfa30a4850346f6f5f" | 13 | SRCREV_meta ?= "1b534b2f8bbe9b8a773268cfa30a4850346f6f5f" |
14 | 14 | ||
15 | PR = "${INC_PR}.0" | 15 | PR = "${INC_PR}.0" |
diff --git a/meta/recipes-kernel/linux/linux-yocto_3.8.bb b/meta/recipes-kernel/linux/linux-yocto_3.8.bb index 95a4906b99..10fc693d0e 100644 --- a/meta/recipes-kernel/linux/linux-yocto_3.8.bb +++ b/meta/recipes-kernel/linux/linux-yocto_3.8.bb | |||
@@ -3,12 +3,12 @@ require recipes-kernel/linux/linux-yocto.inc | |||
3 | KBRANCH_DEFAULT = "standard/base" | 3 | KBRANCH_DEFAULT = "standard/base" |
4 | KBRANCH = "${KBRANCH_DEFAULT}" | 4 | KBRANCH = "${KBRANCH_DEFAULT}" |
5 | 5 | ||
6 | SRCREV_machine_qemuarm ?= "3a73643770a32ea6c86724e92e1e5abecb5dc822" | 6 | SRCREV_machine_qemuarm ?= "bf458ca0e48f4f57cbb02b52070a000f361eec84" |
7 | SRCREV_machine_qemumips ?= "1aefa19417793412ef87217a4cb5d1074dc549ba" | 7 | SRCREV_machine_qemumips ?= "c7297b41016919c95a2c779cafc0aad736f6a400" |
8 | SRCREV_machine_qemuppc ?= "8844013c81e9ad80246aabca6573eed9dbaac646" | 8 | SRCREV_machine_qemuppc ?= "f8848d222d1fcd1ebc517d28f289735621708449" |
9 | SRCREV_machine_qemux86 ?= "15a0766b3d007e5fafce3503375694dff2b0603e" | 9 | SRCREV_machine_qemux86 ?= "42ddf06111efe45f3c36012d5a04a1eeb9781f42" |
10 | SRCREV_machine_qemux86-64 ?= "15a0766b3d007e5fafce3503375694dff2b0603e" | 10 | SRCREV_machine_qemux86-64 ?= "42ddf06111efe45f3c36012d5a04a1eeb9781f42" |
11 | SRCREV_machine ?= "15a0766b3d007e5fafce3503375694dff2b0603e" | 11 | SRCREV_machine ?= "42ddf06111efe45f3c36012d5a04a1eeb9781f42" |
12 | SRCREV_meta ?= "1b534b2f8bbe9b8a773268cfa30a4850346f6f5f" | 12 | SRCREV_meta ?= "1b534b2f8bbe9b8a773268cfa30a4850346f6f5f" |
13 | 13 | ||
14 | SRC_URI = "git://git.yoctoproject.org/linux-yocto-3.8.git;protocol=git;bareclone=1;branch=${KBRANCH},${KMETA};name=machine,meta" | 14 | SRC_URI = "git://git.yoctoproject.org/linux-yocto-3.8.git;protocol=git;bareclone=1;branch=${KBRANCH},${KMETA};name=machine,meta" |
diff --git a/meta/recipes-lsb4/libpng/libpng_1.2.50.bb b/meta/recipes-lsb4/libpng/libpng_1.2.50.bb new file mode 100644 index 0000000000..8fdc41ba19 --- /dev/null +++ b/meta/recipes-lsb4/libpng/libpng_1.2.50.bb | |||
@@ -0,0 +1,21 @@ | |||
1 | SUMMARY = "PNG Library" | ||
2 | DESCRIPTION = "PNG Library" | ||
3 | HOMEPAGE = "http://www.libpng.org/" | ||
4 | SECTION = "libs" | ||
5 | LICENSE = "Libpng" | ||
6 | LIC_FILES_CHKSUM = "file://LICENSE;md5=c3d807a85c09ebdff087f18b4969ff96 \ | ||
7 | file://png.h;beginline=310;endline=424;md5=b87b5e9252a3e14808a27b92912d268d" | ||
8 | DEPENDS = "zlib" | ||
9 | PR = "r0" | ||
10 | |||
11 | SRC_URI = "${SOURCEFORGE_MIRROR}/project/libpng/libpng12/${PV}/libpng-${PV}.tar.xz" | ||
12 | |||
13 | SRC_URI[md5sum] = "a3e00fccbfe356174ab515b5c00641c7" | ||
14 | SRC_URI[sha256sum] = "4724f81f8c92ac7f360ad1fbf173396ea7c535923424db9fbaff07bfd9d8e8e7" | ||
15 | |||
16 | inherit autotools binconfig pkgconfig | ||
17 | |||
18 | PACKAGES =+ "${PN}12" | ||
19 | |||
20 | FILES_${PN}12 = "${libdir}/libpng12${SOLIBS}" | ||
21 | RPROVIDES_${PN}-dev += "${PN}12-dev" | ||
diff --git a/meta/recipes-multimedia/alsa/alsa-tools/makefile_no_gtk.patch b/meta/recipes-multimedia/alsa/alsa-tools/makefile_no_gtk.patch new file mode 100644 index 0000000000..51f934d8f6 --- /dev/null +++ b/meta/recipes-multimedia/alsa/alsa-tools/makefile_no_gtk.patch | |||
@@ -0,0 +1,21 @@ | |||
1 | Remove some sub-components which need gtk+. | ||
2 | |||
3 | Signed-off-by: Rogerio Nunes <ronunes@gmail.com> | ||
4 | |||
5 | Upstream-Status: Inappropriate [configuration] | ||
6 | |||
7 | diff --git a/Makefile b/Makefile | ||
8 | --- a/Makefile | ||
9 | +++ b/Makefile | ||
10 | @@ -1,8 +1,8 @@ | ||
11 | VERSION = 1.0.26.1 | ||
12 | TOP = . | ||
13 | -SUBDIRS = ac3dec as10k1 envy24control \ | ||
14 | - mixartloader pcxhrloader rmedigicontrol sb16_csp seq sscape_ctl \ | ||
15 | - us428control usx2yloader vxloader echomixer \ | ||
16 | +SUBDIRS = ac3dec as10k1 \ | ||
17 | + mixartloader pcxhrloader sb16_csp seq sscape_ctl \ | ||
18 | + us428control usx2yloader vxloader \ | ||
19 | hwmixvolume hda-verb | ||
20 | |||
21 | all: | ||
diff --git a/meta/recipes-multimedia/alsa/alsa-tools_1.0.26.1.bb b/meta/recipes-multimedia/alsa/alsa-tools_1.0.26.1.bb index 2b46aaffdd..81ad55acd3 100644 --- a/meta/recipes-multimedia/alsa/alsa-tools_1.0.26.1.bb +++ b/meta/recipes-multimedia/alsa/alsa-tools_1.0.26.1.bb | |||
@@ -5,14 +5,15 @@ SECTION = "console/utils" | |||
5 | LICENSE = "GPLv2 & LGPLv2+" | 5 | LICENSE = "GPLv2 & LGPLv2+" |
6 | DEPENDS = "alsa-lib ncurses" | 6 | DEPENDS = "alsa-lib ncurses" |
7 | 7 | ||
8 | PR = "r0" | 8 | PR = "r1" |
9 | 9 | ||
10 | LIC_FILES_CHKSUM = "file://hdsploader/COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ | 10 | LIC_FILES_CHKSUM = "file://hdsploader/COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ |
11 | file://ld10k1/COPYING.LIB;md5=7fbc338309ac38fefcd64b04bb903e34" | 11 | file://ld10k1/COPYING.LIB;md5=7fbc338309ac38fefcd64b04bb903e34" |
12 | 12 | ||
13 | SRC_URI = "ftp://ftp.alsa-project.org/pub/tools/alsa-tools-${PV}.tar.bz2 \ | 13 | SRC_URI = "ftp://ftp.alsa-project.org/pub/tools/alsa-tools-${PV}.tar.bz2 \ |
14 | file://mips_has_no_io_h.patch \ | 14 | file://mips_has_no_io_h.patch \ |
15 | file://autotools.patch" | 15 | file://autotools.patch \ |
16 | ${@base_contains('DISTRO_FEATURES', 'x11', '', 'file://makefile_no_gtk.patch', d)}" | ||
16 | 17 | ||
17 | SRC_URI[md5sum] = "805526ea5d6c40e1f2c94cee86141230" | 18 | SRC_URI[md5sum] = "805526ea5d6c40e1f2c94cee86141230" |
18 | SRC_URI[sha256sum] = "553338693707fe6ddfc430b9edc4cd2677390e200c9e38de82ede3394e733841" | 19 | SRC_URI[sha256sum] = "553338693707fe6ddfc430b9edc4cd2677390e200c9e38de82ede3394e733841" |
@@ -21,6 +22,9 @@ inherit autotools | |||
21 | 22 | ||
22 | EXTRA_OEMAKE += "GITCOMPILE_ARGS='--host=${HOST_SYS} --build=${BUILD_SYS} --target=${TARGET_SYS} --with-libtool-sysroot=${STAGING_DIR_HOST} --prefix=${prefix}' ACLOCAL_FLAGS='-I ${STAGING_DATADIR}/aclocal'" | 23 | EXTRA_OEMAKE += "GITCOMPILE_ARGS='--host=${HOST_SYS} --build=${BUILD_SYS} --target=${TARGET_SYS} --with-libtool-sysroot=${STAGING_DIR_HOST} --prefix=${prefix}' ACLOCAL_FLAGS='-I ${STAGING_DATADIR}/aclocal'" |
23 | 24 | ||
25 | PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'x11', 'gtk+', '', d)}" | ||
26 | PACKAGECONFIG[gtk+] = ",,gtk+," | ||
27 | |||
24 | do_compile_prepend () { | 28 | do_compile_prepend () { |
25 | #Automake dir is not correctly detected in cross compilation case | 29 | #Automake dir is not correctly detected in cross compilation case |
26 | export AUTOMAKE_DIR=${STAGING_DATADIR_NATIVE}/$(ls ${STAGING_DATADIR_NATIVE} | grep automake) | 30 | export AUTOMAKE_DIR=${STAGING_DATADIR_NATIVE}/$(ls ${STAGING_DATADIR_NATIVE} | grep automake) |
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-bad_0.10.23.bb b/meta/recipes-multimedia/gstreamer/gst-plugins-bad_0.10.23.bb index 9039f97804..eb289c70de 100644 --- a/meta/recipes-multimedia/gstreamer/gst-plugins-bad_0.10.23.bb +++ b/meta/recipes-multimedia/gstreamer/gst-plugins-bad_0.10.23.bb | |||
@@ -6,9 +6,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \ | |||
6 | file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605 \ | 6 | file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605 \ |
7 | file://gst/tta/crc32.h;beginline=12;endline=29;md5=71a904d99ce7ae0c1cf129891b98145c" | 7 | file://gst/tta/crc32.h;beginline=12;endline=29;md5=71a904d99ce7ae0c1cf129891b98145c" |
8 | 8 | ||
9 | DEPENDS += "gst-plugins-base tremor librsvg curl" | 9 | DEPENDS += "gst-plugins-base tremor curl" |
10 | 10 | ||
11 | PR = "r3" | 11 | PR = "r4" |
12 | 12 | ||
13 | inherit gettext | 13 | inherit gettext |
14 | 14 | ||
@@ -16,6 +16,9 @@ EXTRA_OECONF += "--disable-examples --disable-experimental --disable-sdl --disab | |||
16 | --with-plugins=wavpack,ivorbis,mpegvideoparse --disable-vdpau --disable-apexsink \ | 16 | --with-plugins=wavpack,ivorbis,mpegvideoparse --disable-vdpau --disable-apexsink \ |
17 | --disable-orc" | 17 | --disable-orc" |
18 | 18 | ||
19 | PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'x11', 'librsvg', '', d)}" | ||
20 | PACKAGECONFIG[librsvg] = "--enable-librsvg,--disable-librsvg,librsvg," | ||
21 | |||
19 | ARM_INSTRUCTION_SET = "arm" | 22 | ARM_INSTRUCTION_SET = "arm" |
20 | 23 | ||
21 | do_configure_prepend() { | 24 | do_configure_prepend() { |
diff --git a/meta/recipes-qt/qt4/qt-mobility_1.2.0.inc b/meta/recipes-qt/qt4/qt-mobility_1.2.0.inc index fca4cb0a13..1db143817d 100644 --- a/meta/recipes-qt/qt4/qt-mobility_1.2.0.inc +++ b/meta/recipes-qt/qt4/qt-mobility_1.2.0.inc | |||
@@ -18,7 +18,7 @@ SRC_URI = "http://get.qt.nokia.com/qt/add-ons/qt-mobility-opensource-src-${PV}.t | |||
18 | SRC_URI[md5sum]="ea5db5a8d3dd4709c2926dceda646bd8" | 18 | SRC_URI[md5sum]="ea5db5a8d3dd4709c2926dceda646bd8" |
19 | SRC_URI[sha256sum]="ee3c88975e04139ac9589f76d4be646d44fcbc4c8c1cf2db621abc154cf0ba44" | 19 | SRC_URI[sha256sum]="ee3c88975e04139ac9589f76d4be646d44fcbc4c8c1cf2db621abc154cf0ba44" |
20 | 20 | ||
21 | PR = "r7" | 21 | PR = "r8" |
22 | 22 | ||
23 | S = "${WORKDIR}/qt-mobility-opensource-src-${PV}" | 23 | S = "${WORKDIR}/qt-mobility-opensource-src-${PV}" |
24 | 24 | ||
@@ -31,6 +31,8 @@ qtm_plugins := "/usr/lib/${qtm_dir}/plugins/QtMobility" | |||
31 | qtm_data := "/usr/share/${qtm_dir}" | 31 | qtm_data := "/usr/share/${qtm_dir}" |
32 | qtm_imports := "/usr/lib/${qtm_dir}/imports" | 32 | qtm_imports := "/usr/lib/${qtm_dir}/imports" |
33 | 33 | ||
34 | QTM_MODULES_LIST ?= "bearer contacts gallery location publishsubscribe messaging multimedia \ | ||
35 | systeminfo serviceframework sensors versit organizer feedback connectivity" | ||
34 | qtm_bluezflag ?= "${@base_contains('DISTRO_FEATURES', 'bluetooth', 'yes', 'no', d)}" | 36 | qtm_bluezflag ?= "${@base_contains('DISTRO_FEATURES', 'bluetooth', 'yes', 'no', d)}" |
35 | 37 | ||
36 | do_configure_prepend() { | 38 | do_configure_prepend() { |
@@ -44,7 +46,7 @@ do_configure_prepend() { | |||
44 | cp staticconfig.pri staticconfig.pri.old | 46 | cp staticconfig.pri staticconfig.pri.old |
45 | echo "include(${STAGING_DATADIR}/${qtm_dir}/mkspecs/qconfig.pri)" >staticconfig.pri | 47 | echo "include(${STAGING_DATADIR}/${qtm_dir}/mkspecs/qconfig.pri)" >staticconfig.pri |
46 | cat staticconfig.pri.old >>staticconfig.pri | 48 | cat staticconfig.pri.old >>staticconfig.pri |
47 | ./configure -qmake-exec qmake2 -prefix /usr -examples -demos | 49 | ./configure -qmake-exec qmake2 -prefix /usr -examples -demos -modules "${QTM_MODULES_LIST}" |
48 | echo QT_MOBILITY_BIN = ${qtm_bin} >>./config.pri | 50 | echo QT_MOBILITY_BIN = ${qtm_bin} >>./config.pri |
49 | echo QT_MOBILITY_LIB = ${qtm_lib} >>./config.pri | 51 | echo QT_MOBILITY_LIB = ${qtm_lib} >>./config.pri |
50 | echo QT_MOBILITY_INCLUDE = ${qtm_include} >>./config.pri | 52 | echo QT_MOBILITY_INCLUDE = ${qtm_include} >>./config.pri |
diff --git a/meta/recipes-support/boost/bjam-native_1.53.0.bb b/meta/recipes-support/boost/bjam-native_1.53.0.bb new file mode 100644 index 0000000000..59a031032c --- /dev/null +++ b/meta/recipes-support/boost/bjam-native_1.53.0.bb | |||
@@ -0,0 +1,15 @@ | |||
1 | include boost-${PV}.inc | ||
2 | |||
3 | DESCRIPTION = "Portable Boost.Jam build tool for boost" | ||
4 | SECTION = "devel" | ||
5 | |||
6 | inherit native | ||
7 | |||
8 | do_compile() { | ||
9 | ./bootstrap.sh --with-toolset=gcc | ||
10 | } | ||
11 | |||
12 | do_install() { | ||
13 | install -d ${D}${bindir}/ | ||
14 | install -c -m 755 bjam ${D}${bindir}/ | ||
15 | } | ||
diff --git a/meta/recipes-support/boost/boost-1.53.0.inc b/meta/recipes-support/boost/boost-1.53.0.inc new file mode 100644 index 0000000000..dbcaabcd10 --- /dev/null +++ b/meta/recipes-support/boost/boost-1.53.0.inc | |||
@@ -0,0 +1,19 @@ | |||
1 | # The Boost web site provides free peer-reviewed portable | ||
2 | # C++ source libraries. The emphasis is on libraries which | ||
3 | # work well with the C++ Standard Library. The libraries are | ||
4 | # intended to be widely useful, and are in regular use by | ||
5 | # thousands of programmers across a broad spectrum of applications. | ||
6 | HOMEPAGE = "http://www.boost.org/" | ||
7 | LICENSE = "BSL-1.0 & MIT & Python-2.0" | ||
8 | LIC_FILES_CHKSUM = "file://LICENSE_1_0.txt;md5=e4224ccaecb14d942c71d31bef20d78c" | ||
9 | |||
10 | BOOST_VER = "${@"_".join(d.getVar("PV",1).split("."))}" | ||
11 | BOOST_MAJ = "${@"_".join(d.getVar("PV",1).split(".")[0:2])}" | ||
12 | BOOST_P = "boost_${BOOST_VER}" | ||
13 | |||
14 | SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BOOST_P}.tar.bz2" | ||
15 | |||
16 | SRC_URI[md5sum] = "a00d22605d5dbcfb4c9936a9b35bc4c2" | ||
17 | SRC_URI[sha256sum] = "f88a041b01882b0c9c5c05b39603ec8383fb881f772f6f9e6e6fd0e0cddb9196" | ||
18 | |||
19 | S = "${WORKDIR}/${BOOST_P}" | ||
diff --git a/meta/recipes-support/boost/boost.inc b/meta/recipes-support/boost/boost.inc index 1266666e30..a1c35c7b95 100644 --- a/meta/recipes-support/boost/boost.inc +++ b/meta/recipes-support/boost/boost.inc | |||
@@ -1,25 +1,9 @@ | |||
1 | # The Boost web site provides free peer-reviewed portable | ||
2 | # C++ source libraries. The emphasis is on libraries which | ||
3 | # work well with the C++ Standard Library. The libraries are | ||
4 | # intended to be widely useful, and are in regular use by | ||
5 | # thousands of programmers across a broad spectrum of applications. | ||
6 | DESCRIPTION = "Free peer-reviewed portable C++ source libraries" | 1 | DESCRIPTION = "Free peer-reviewed portable C++ source libraries" |
7 | HOMEPAGE = "http://www.boost.org/" | ||
8 | SECTION = "libs" | 2 | SECTION = "libs" |
9 | DEPENDS = "boost-native zlib bzip2" | 3 | DEPENDS = "bjam-native zlib bzip2" |
10 | DEPENDS_class-native = "" | ||
11 | LICENSE = "BSL-1.0 & MIT & Python-2.0" | ||
12 | 4 | ||
13 | ARM_INSTRUCTION_SET = "arm" | 5 | ARM_INSTRUCTION_SET = "arm" |
14 | 6 | ||
15 | BOOST_VER = "${@"_".join(d.getVar("PV",1).split("."))}" | ||
16 | BOOST_MAJ = "${@"_".join(d.getVar("PV",1).split(".")[0:2])}" | ||
17 | BOOST_P = "boost_${BOOST_VER}" | ||
18 | |||
19 | SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BOOST_P}.tar.bz2" | ||
20 | |||
21 | S = "${WORKDIR}/${BOOST_P}" | ||
22 | |||
23 | BOOST_LIBS = "\ | 7 | BOOST_LIBS = "\ |
24 | date_time \ | 8 | date_time \ |
25 | filesystem \ | 9 | filesystem \ |
@@ -126,6 +110,8 @@ BJAM_OPTS = '${PARALLEL_MAKE} \ | |||
126 | --disable-icu \ | 110 | --disable-icu \ |
127 | ${BJAM_EXTRA}' | 111 | ${BJAM_EXTRA}' |
128 | 112 | ||
113 | # Native compilation of bzip2 isn't working | ||
114 | BJAM_OPTS_append_class-native = ' -sNO_BZIP2=1' | ||
129 | 115 | ||
130 | do_boostconfig() { | 116 | do_boostconfig() { |
131 | cp -f boost/config/platform/linux.hpp boost/config/platform/linux-gnueabi.hpp | 117 | cp -f boost/config/platform/linux.hpp boost/config/platform/linux-gnueabi.hpp |
@@ -138,7 +124,7 @@ do_boostconfig() { | |||
138 | 124 | ||
139 | echo "using python : ${PYTHON_VERSION} : : ${STAGING_INCDIR}/python${PYTHON_VERSION} ;" >> ${S}/tools/build/v2/user-config.jam | 125 | echo "using python : ${PYTHON_VERSION} : : ${STAGING_INCDIR}/python${PYTHON_VERSION} ;" >> ${S}/tools/build/v2/user-config.jam |
140 | 126 | ||
141 | CC="${BUILD_CC}" CFLAGS="${BUILD_CFLAGS}" ./bootstrap.sh --with-toolset=gcc --with-python-root=${PYTHON_ROOT} | 127 | CC="${BUILD_CC}" CFLAGS="${BUILD_CFLAGS}" ./bootstrap.sh --with-bjam=bjam --with-toolset=gcc --with-python-root=${PYTHON_ROOT} |
142 | sed -i '/^using python/d' project-config.jam | 128 | sed -i '/^using python/d' project-config.jam |
143 | } | 129 | } |
144 | 130 | ||
@@ -170,30 +156,3 @@ do_install() { | |||
170 | } | 156 | } |
171 | 157 | ||
172 | BBCLASSEXTEND = "native" | 158 | BBCLASSEXTEND = "native" |
173 | |||
174 | do_configure_class-native() { | ||
175 | : | ||
176 | } | ||
177 | |||
178 | do_boostconfig_class-native() { | ||
179 | : | ||
180 | } | ||
181 | |||
182 | do_compile_class-native() { | ||
183 | set -ex | ||
184 | cd ${S}/tools/build/v2/engine | ||
185 | rm -rf bin.* | ||
186 | ./build.sh gcc | ||
187 | } | ||
188 | |||
189 | # This is too terrible - the build script doesn't give any good | ||
190 | # way I can see to find out where the binaries are placed, so | ||
191 | # rely on only one bin.foo directory being created. | ||
192 | do_install_class-native () { | ||
193 | set -ex | ||
194 | cd ${S}/tools/build/v2/engine | ||
195 | install -d ${D}${bindir}/ | ||
196 | install -c -m 755 bin.*/bjam ${D}${bindir}/ | ||
197 | } | ||
198 | |||
199 | |||
diff --git a/meta/recipes-support/boost/boost_1.53.0.bb b/meta/recipes-support/boost/boost_1.53.0.bb index de721c532f..3a5a6cc386 100644 --- a/meta/recipes-support/boost/boost_1.53.0.bb +++ b/meta/recipes-support/boost/boost_1.53.0.bb | |||
@@ -1,9 +1,7 @@ | |||
1 | include boost-${PV}.inc | ||
1 | include boost.inc | 2 | include boost.inc |
2 | 3 | ||
3 | LIC_FILES_CHKSUM = "file://LICENSE_1_0.txt;md5=e4224ccaecb14d942c71d31bef20d78c" | 4 | PR = "r1" |
4 | 5 | ||
5 | SRC_URI += "file://arm-intrinsics.patch \ | 6 | SRC_URI += "file://arm-intrinsics.patch \ |
6 | " | 7 | " |
7 | |||
8 | SRC_URI[md5sum] = "a00d22605d5dbcfb4c9936a9b35bc4c2" | ||
9 | SRC_URI[sha256sum] = "f88a041b01882b0c9c5c05b39603ec8383fb881f772f6f9e6e6fd0e0cddb9196" | ||
diff --git a/meta/recipes-support/nspr/files/nspr.pc.in b/meta/recipes-support/nspr/files/nspr.pc.in index e7af08d271..c37d0bcbd7 100644 --- a/meta/recipes-support/nspr/files/nspr.pc.in +++ b/meta/recipes-support/nspr/files/nspr.pc.in | |||
@@ -6,6 +6,6 @@ includedir=OEINCDIR | |||
6 | 6 | ||
7 | Name: NSPR | 7 | Name: NSPR |
8 | Description: The Netscape Portable Runtime | 8 | Description: The Netscape Portable Runtime |
9 | Version: 4.8.9 | 9 | Version: 4.9.5 |
10 | Libs: -L${libdir} -lplds4 -lplc4 -lnspr4 -lpthread -ldl | 10 | Libs: -L${libdir} -lplds4 -lplc4 -lnspr4 -lpthread -ldl |
11 | Cflags: | 11 | Cflags: |
diff --git a/scripts/buildhistory-collect-srcrevs b/scripts/buildhistory-collect-srcrevs new file mode 100755 index 0000000000..7f65c90376 --- /dev/null +++ b/scripts/buildhistory-collect-srcrevs | |||
@@ -0,0 +1,104 @@ | |||
1 | #!/usr/bin/env python | ||
2 | # | ||
3 | # Collects the recorded SRCREV values from buildhistory and reports on them | ||
4 | # | ||
5 | # Copyright 2013 Intel Corporation | ||
6 | # Authored-by: Paul Eggleton <paul.eggleton@intel.com> | ||
7 | # | ||
8 | # This program is free software; you can redistribute it and/or modify | ||
9 | # it under the terms of the GNU General Public License version 2 as | ||
10 | # published by the Free Software Foundation. | ||
11 | # | ||
12 | # This program is distributed in the hope that it will be useful, | ||
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | # GNU General Public License for more details. | ||
16 | # | ||
17 | # You should have received a copy of the GNU General Public License along | ||
18 | # with this program; if not, write to the Free Software Foundation, Inc., | ||
19 | # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | ||
20 | |||
21 | import os, sys | ||
22 | import optparse | ||
23 | import logging | ||
24 | |||
25 | def logger_create(): | ||
26 | logger = logging.getLogger("buildhistory") | ||
27 | loggerhandler = logging.StreamHandler() | ||
28 | loggerhandler.setFormatter(logging.Formatter("%(levelname)s: %(message)s")) | ||
29 | logger.addHandler(loggerhandler) | ||
30 | logger.setLevel(logging.INFO) | ||
31 | return logger | ||
32 | |||
33 | logger = logger_create() | ||
34 | |||
35 | def main(): | ||
36 | parser = optparse.OptionParser( | ||
37 | usage = """ | ||
38 | %prog [options] <buildhistory-dir>""") | ||
39 | |||
40 | parser.add_option("-a", "--report-all", | ||
41 | help = "Report all SRCREV values, not just ones where AUTOREV has been used", | ||
42 | action="store_true", dest="reportall") | ||
43 | parser.add_option("-f", "--forcevariable", | ||
44 | help = "Use forcevariable override for all output lines", | ||
45 | action="store_true", dest="forcevariable") | ||
46 | |||
47 | options, args = parser.parse_args(sys.argv) | ||
48 | |||
49 | if len(args) != 2: | ||
50 | parser.print_help() | ||
51 | sys.exit(1) | ||
52 | |||
53 | buildhistory_dir = args[1] | ||
54 | if not os.path.exists(buildhistory_dir): | ||
55 | logger.error('specified buildhistory path %s could not be found' % buildhistory_dir) | ||
56 | sys.exit(1) | ||
57 | |||
58 | if options.forcevariable: | ||
59 | forcevariable = '_forcevariable' | ||
60 | else: | ||
61 | forcevariable = '' | ||
62 | |||
63 | lastdir = '' | ||
64 | for root, dirs, files in os.walk(buildhistory_dir): | ||
65 | if '.git' in dirs: | ||
66 | dirs.remove('.git') | ||
67 | for fn in files: | ||
68 | if fn == 'latest_srcrev': | ||
69 | curdir = os.path.basename(os.path.dirname(root)) | ||
70 | if lastdir != curdir: | ||
71 | print('# %s' % curdir) | ||
72 | lastdir = curdir | ||
73 | fullpath = os.path.join(root, fn) | ||
74 | pn = os.path.basename(root) | ||
75 | srcrev = None | ||
76 | orig_srcrev = None | ||
77 | orig_srcrevs = {} | ||
78 | srcrevs = {} | ||
79 | with open(fullpath) as f: | ||
80 | for line in f: | ||
81 | if '=' in line: | ||
82 | splitval = line.split('=') | ||
83 | value = splitval[1].strip('" \t\n\r') | ||
84 | if line.startswith('# SRCREV = '): | ||
85 | orig_srcrev = value | ||
86 | elif line.startswith('# SRCREV_'): | ||
87 | splitval = line.split('=') | ||
88 | name = splitval[0].split('_')[1].strip() | ||
89 | orig_srcrevs[name] = value | ||
90 | elif line.startswith('SRCREV ='): | ||
91 | srcrev = value | ||
92 | elif line.startswith('SRCREV_'): | ||
93 | name = splitval[0].split('_')[1].strip() | ||
94 | srcrevs[name] = value | ||
95 | if srcrev and (options.reportall or srcrev != orig_srcrev): | ||
96 | print('SRCREV_pn-%s%s = "%s"' % (pn, forcevariable, srcrev)) | ||
97 | for name, value in srcrevs.items(): | ||
98 | orig = orig_srcrevs.get(name, orig_srcrev) | ||
99 | if options.reportall or value != orig: | ||
100 | print('SRCREV_%s_pn-%s%s = "%s"' % (name, pn, forcevariable, value)) | ||
101 | |||
102 | |||
103 | if __name__ == "__main__": | ||
104 | main() | ||
diff --git a/scripts/contrib/build-perf-test.sh b/scripts/contrib/build-perf-test.sh new file mode 100755 index 0000000000..44a902c135 --- /dev/null +++ b/scripts/contrib/build-perf-test.sh | |||
@@ -0,0 +1,348 @@ | |||
1 | #!/bin/bash | ||
2 | # | ||
3 | # This script runs a series of tests (with and without sstate) and reports build time (and tmp/ size) | ||
4 | # | ||
5 | # Build performance test script | ||
6 | # | ||
7 | # Copyright 2013 Intel Corporation | ||
8 | # | ||
9 | # This program is free software; you can redistribute it and/or modify | ||
10 | # it under the terms of the GNU General Public License as published by | ||
11 | # the Free Software Foundation; either version 2 of the License, or | ||
12 | # (at your option) any later version. | ||
13 | # | ||
14 | # This program is distributed in the hope that it will be useful, | ||
15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
17 | # GNU General Public License for more details. | ||
18 | # | ||
19 | # You should have received a copy of the GNU General Public License | ||
20 | # along with this program; if not, write to the Free Software | ||
21 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
22 | # | ||
23 | # | ||
24 | # AUTHORS: | ||
25 | # Stefan Stanacar <stefanx.stanacar@intel.com> | ||
26 | |||
27 | |||
28 | ME=$(basename $0) | ||
29 | |||
30 | # | ||
31 | # usage and setup | ||
32 | # | ||
33 | |||
34 | usage () { | ||
35 | cat << EOT | ||
36 | Usage: $ME [-h] | ||
37 | $ME [-c <commit>] [-v] [-m <val>] [-j <val>] [-t <val>] [-i <image-name>] [-d <path>] | ||
38 | Options: | ||
39 | -h | ||
40 | Display this help and exit. | ||
41 | -c <commit> | ||
42 | git checkout <commit> before anything else | ||
43 | -v | ||
44 | Show bitbake output, don't redirect it to a log. | ||
45 | -m <machine> | ||
46 | Value for MACHINE. Default is qemux86. | ||
47 | -j <val> | ||
48 | Value for PARALLEL_MAKE. Default is 8. | ||
49 | -t <val> | ||
50 | Value for BB_NUMBER_THREADS. Default is 8. | ||
51 | -i <image-name> | ||
52 | Instead of timing against core-image-sato, use <image-name> | ||
53 | -d <path> | ||
54 | Use <path> as DL_DIR | ||
55 | -p <githash> | ||
56 | Cherry pick githash onto the commit | ||
57 | |||
58 | Note: current working directory must be inside a poky git clone. | ||
59 | |||
60 | EOT | ||
61 | } | ||
62 | |||
63 | |||
64 | if clonedir=$(git rev-parse --show-toplevel); then | ||
65 | cd $clonedir | ||
66 | else | ||
67 | echo "The current working dir doesn't seem to be a poky git clone. Please cd there before running $ME" | ||
68 | exit 1 | ||
69 | fi | ||
70 | |||
71 | IMAGE="core-image-sato" | ||
72 | verbose=0 | ||
73 | dldir= | ||
74 | commit= | ||
75 | pmake= | ||
76 | cherrypicks= | ||
77 | while getopts "hvc:m:j:t:i:d:p:" opt; do | ||
78 | case $opt in | ||
79 | h) usage | ||
80 | exit 0 | ||
81 | ;; | ||
82 | v) verbose=1 | ||
83 | ;; | ||
84 | c) commit=$OPTARG | ||
85 | ;; | ||
86 | m) export MACHINE=$OPTARG | ||
87 | ;; | ||
88 | j) pmake=$OPTARG | ||
89 | ;; | ||
90 | t) export BB_NUMBER_THREADS=$OPTARG | ||
91 | ;; | ||
92 | i) IMAGE=$OPTARG | ||
93 | ;; | ||
94 | d) dldir=$OPTARG | ||
95 | ;; | ||
96 | p) cherrypicks="$cherrypicks $OPTARG" | ||
97 | ;; | ||
98 | *) usage | ||
99 | exit 1 | ||
100 | ;; | ||
101 | esac | ||
102 | done | ||
103 | |||
104 | |||
105 | #drop cached credentials and test for sudo access without a password | ||
106 | sudo -k -n ls > /dev/null 2>&1 | ||
107 | reqpass=$? | ||
108 | if [ $reqpass -ne 0 ]; then | ||
109 | echo "The script requires sudo access to drop caches between builds (echo 3 > /proc/sys/vm/drop_caches)" | ||
110 | read -s -p "Please enter your sudo password: " pass | ||
111 | echo | ||
112 | fi | ||
113 | |||
114 | if [ -n "$commit" ]; then | ||
115 | echo "git checkout $commit" | ||
116 | git pull > /dev/null 2>&1 | ||
117 | git checkout $commit || exit 1 | ||
118 | git pull > /dev/null 2>&1 | ||
119 | fi | ||
120 | |||
121 | if [ -n "$cherrypicks" ]; then | ||
122 | for c in $cherrypicks; do | ||
123 | git cherry-pick $c | ||
124 | done | ||
125 | fi | ||
126 | |||
127 | rev=$(git rev-parse --short HEAD) || exit 1 | ||
128 | OUTDIR="$clonedir/build-perf-test/results-$rev-`date "+%Y%m%d%H%M%S"`" | ||
129 | BUILDDIR="$OUTDIR/build" | ||
130 | resultsfile="$OUTDIR/results.log" | ||
131 | bboutput="$OUTDIR/bitbake.log" | ||
132 | myoutput="$OUTDIR/output.log" | ||
133 | globalres="$clonedir/build-perf-test/globalres.log" | ||
134 | |||
135 | mkdir -p $OUTDIR || exit 1 | ||
136 | |||
137 | log () { | ||
138 | local msg="$1" | ||
139 | echo "`date`: $msg" | tee -a $myoutput | ||
140 | } | ||
141 | |||
142 | |||
143 | # | ||
144 | # Config stuff | ||
145 | # | ||
146 | |||
147 | rev=$(git rev-parse HEAD) || exit 1 | ||
148 | log "Git revision is $rev" | ||
149 | |||
150 | source ./oe-init-build-env $OUTDIR/build >/dev/null || exit 1 | ||
151 | cd $OUTDIR/build | ||
152 | |||
153 | [ -n "$MACHINE" ] || export MACHINE="qemux86" | ||
154 | [ -n "$BB_NUMBER_THREADS" ] || export BB_NUMBER_THREADS="8" | ||
155 | |||
156 | if [ -n "$pmake" ]; then | ||
157 | export PARALLEL_MAKE="-j $pmake" | ||
158 | else | ||
159 | export PARALLEL_MAKE="-j 8" | ||
160 | fi | ||
161 | |||
162 | if [ -n "$dldir" ]; then | ||
163 | echo "DL_DIR = \"$dldir\"" >> conf/local.conf | ||
164 | else | ||
165 | echo "DL_DIR = \"$clonedir/build-perf-test/downloads\"" >> conf/local.conf | ||
166 | fi | ||
167 | |||
168 | # | ||
169 | # Functions | ||
170 | # | ||
171 | |||
172 | declare -a TIMES | ||
173 | time_count=0 | ||
174 | |||
175 | bbtime () { | ||
176 | log " Timing: bitbake $1" | ||
177 | |||
178 | if [ $verbose -eq 0 ]; then | ||
179 | /usr/bin/time -v -o $resultsfile bitbake "$1" >> $bboutput | ||
180 | else | ||
181 | /usr/bin/time -v -o $resultsfile bitbake "$1" | ||
182 | fi | ||
183 | ret=$? | ||
184 | if [ $ret -eq 0 ]; then | ||
185 | t=`grep wall $resultsfile | sed 's/.*m:ss): //'` | ||
186 | log " TIME: $t" | ||
187 | TIMES[(( time_count++ ))]="$t" | ||
188 | else | ||
189 | log "ERROR: exit status was non-zero, will report time as 0." | ||
190 | TIMES[(( time_count++ ))]="0" | ||
191 | fi | ||
192 | |||
193 | #time by default overwrites the output file and we want to keep the results | ||
194 | #it has an append option but I don't want to clobber the results in the same file | ||
195 | i=`ls $OUTDIR/results.log* |wc -l` | ||
196 | mv $resultsfile "${resultsfile}.${i}" | ||
197 | log "More stats can be found in ${resultsfile}.${i}" | ||
198 | } | ||
199 | |||
200 | #we don't time bitbake here | ||
201 | bbnotime () { | ||
202 | log " Running: bitbake $1" | ||
203 | if [ $verbose -eq 0 ]; then | ||
204 | bitbake "$1" >> $bboutput | ||
205 | else | ||
206 | bitbake "$1" | ||
207 | fi | ||
208 | ret=$? | ||
209 | if [ $ret -eq 0 ]; then | ||
210 | log " Finished bitbake $1" | ||
211 | else | ||
212 | log "ERROR: exit status was non-zero. Exit.." | ||
213 | exit $? | ||
214 | fi | ||
215 | |||
216 | } | ||
217 | |||
218 | do_rmtmp() { | ||
219 | log " Removing tmp" | ||
220 | rm -rf bitbake.lock pseudodone conf/sanity_info cache tmp | ||
221 | } | ||
222 | do_rmsstate () { | ||
223 | log " Removing sstate-cache" | ||
224 | rm -rf sstate-cache | ||
225 | } | ||
226 | do_sync () { | ||
227 | log " Syncing and dropping caches" | ||
228 | sync; sync | ||
229 | if [ $reqpass -eq 0 ]; then | ||
230 | sudo sh -c "echo 3 > /proc/sys/vm/drop_caches" | ||
231 | else | ||
232 | echo "$pass" | sudo -S sh -c "echo 3 > /proc/sys/vm/drop_caches" | ||
233 | echo | ||
234 | fi | ||
235 | sleep 3 | ||
236 | } | ||
237 | |||
238 | #### | ||
239 | |||
240 | # | ||
241 | # Test 1 | ||
242 | # Measure: Wall clock of "bitbake core-image-sato" and size of tmp/dir (w/o rm_work and w/ rm_work) | ||
243 | # Pre: Downloaded sources, no sstate | ||
244 | # Steps: | ||
245 | # Part1: | ||
246 | # - fetchall | ||
247 | # - clean build dir | ||
248 | # - time bitbake core-image-sato | ||
249 | # - collect data | ||
250 | # Part2: | ||
251 | # - bitbake virtual/kernel -c cleansstate | ||
252 | # - time bitbake virtual/kernel | ||
253 | # Part3: | ||
254 | # - add INHERIT to local.conf | ||
255 | # - clean build dir | ||
256 | # - build | ||
257 | # - report size, remove INHERIT | ||
258 | |||
259 | test1_p1 () { | ||
260 | log "Running Test 1, part 1/3: Measure wall clock of bitbake $IMAGE and size of tmp/ dir" | ||
261 | bbnotime "$IMAGE -c fetchall" | ||
262 | do_rmtmp | ||
263 | do_rmsstate | ||
264 | do_sync | ||
265 | bbtime "$IMAGE" | ||
266 | log "SIZE of tmp dir is: `du -sh tmp | sed 's/tmp//'`" | ||
267 | log "Buildstats are saved in $OUTDIR/buildstats-test1" | ||
268 | mv tmp/buildstats $OUTDIR/buildstats-test1 | ||
269 | } | ||
270 | |||
271 | |||
272 | test1_p2 () { | ||
273 | log "Running Test 1, part 2/3: bitbake virtual/kernel -c cleansstate and time bitbake virtual/kernel" | ||
274 | bbnotime "virtual/kernel -c cleansstate" | ||
275 | do_sync | ||
276 | bbtime "virtual/kernel" | ||
277 | } | ||
278 | |||
279 | test1_p3 () { | ||
280 | log "Running Test 1, part 3/3: Build $IMAGE w/o sstate and report size of tmp/dir with rm_work enabled" | ||
281 | echo "INHERIT += \"rm_work\"" >> conf/local.conf | ||
282 | do_rmtmp | ||
283 | do_rmsstate | ||
284 | do_sync | ||
285 | bbtime "$IMAGE" | ||
286 | sed -i 's/INHERIT += \"rm_work\"//' conf/local.conf | ||
287 | log "SIZE of tmp dir is: `du -sh tmp | sed 's/tmp//'`" | ||
288 | log "Buildstats are saved in $OUTDIR/buildstats-test13" | ||
289 | mv tmp/buildstats $OUTDIR/buildstats-test13 | ||
290 | } | ||
291 | |||
292 | |||
293 | # | ||
294 | # Test 2 | ||
295 | # Measure: Wall clock of "bitbake core-image-sato" and size of tmp/dir | ||
296 | # Pre: populated sstate cache | ||
297 | |||
298 | test2 () { | ||
299 | #assuming test 1 has run | ||
300 | log "Running Test 2: Measure wall clock of bitbake $IMAGE -c rootfs with sstate" | ||
301 | do_rmtmp | ||
302 | do_sync | ||
303 | bbtime "$IMAGE -c rootfs" | ||
304 | } | ||
305 | |||
306 | |||
307 | # Test 3 | ||
308 | # parsing time metrics | ||
309 | # | ||
310 | # Start with | ||
311 | # i) "rm -rf tmp/cache; time bitbake -p" | ||
312 | # ii) "rm -rf tmp/cache/default-eglibc/; time bitbake -p" | ||
313 | # iii) "time bitbake -p" | ||
314 | |||
315 | |||
316 | test3 () { | ||
317 | log "Running Test 3: Parsing time metrics (bitbake -p)" | ||
318 | log " Removing tmp/cache && cache" | ||
319 | rm -rf tmp/cache cache | ||
320 | bbtime "-p" | ||
321 | log " Removing tmp/cache/default-eglibc/" | ||
322 | rm -rf tmp/cache/default-eglibc/ | ||
323 | bbtime "-p" | ||
324 | bbtime "-p" | ||
325 | } | ||
326 | |||
327 | |||
328 | |||
329 | # RUN! | ||
330 | |||
331 | test1_p1 | ||
332 | test1_p2 | ||
333 | test1_p3 | ||
334 | test2 | ||
335 | test3 | ||
336 | |||
337 | log "All done, cleaning up..." | ||
338 | |||
339 | do_rmtmp | ||
340 | do_rmsstate | ||
341 | |||
342 | # if we got til here write to global results | ||
343 | echo "$rev" >> $globalres | ||
344 | for i in "${TIMES[@]}"; do | ||
345 | echo -n "$i," >> $globalres | ||
346 | done | ||
347 | echo >> $globalres | ||
348 | sed -i '$ s/,$//' $globalres | ||
diff --git a/scripts/oe-setup-builddir b/scripts/oe-setup-builddir index 95c803d504..76e17784d8 100755 --- a/scripts/oe-setup-builddir +++ b/scripts/oe-setup-builddir | |||
@@ -55,6 +55,7 @@ if [ "x" != "x$TEMPLATECONF" ]; then | |||
55 | fi | 55 | fi |
56 | OECORELAYERCONF="$TEMPLATECONF/bblayers.conf.sample" | 56 | OECORELAYERCONF="$TEMPLATECONF/bblayers.conf.sample" |
57 | OECORELOCALCONF="$TEMPLATECONF/local.conf.sample" | 57 | OECORELOCALCONF="$TEMPLATECONF/local.conf.sample" |
58 | OECORENOTESCONF="$TEMPLATECONF/conf-notes.txt" | ||
58 | fi | 59 | fi |
59 | 60 | ||
60 | if [ "x" = "x$OECORELOCALCONF" ]; then | 61 | if [ "x" = "x$OECORELOCALCONF" ]; then |
@@ -113,14 +114,9 @@ cat <<EOM | |||
113 | 114 | ||
114 | You can now run 'bitbake <target>' | 115 | You can now run 'bitbake <target>' |
115 | 116 | ||
116 | Common targets are: | ||
117 | core-image-minimal | ||
118 | core-image-sato | ||
119 | meta-toolchain | ||
120 | meta-toolchain-sdk | ||
121 | adt-installer | ||
122 | meta-ide-support | ||
123 | |||
124 | You can also run generated qemu images with a command like 'runqemu qemux86' | ||
125 | |||
126 | EOM | 117 | EOM |
118 | if [ "x" = "x$OECORENOTESCONF" ]; then | ||
119 | OECORENOTESCONF="$OEROOT/meta/conf/conf-notes.txt" | ||
120 | fi | ||
121 | cat $OECORENOTESCONF | ||
122 | unset OECORENOTESCONF | ||
diff --git a/scripts/qemuimage-testlib b/scripts/qemuimage-testlib index a800f681f2..f791c527ab 100755 --- a/scripts/qemuimage-testlib +++ b/scripts/qemuimage-testlib | |||
@@ -408,8 +408,8 @@ Test_Create_Qemu() | |||
408 | export MACHINE=$QEMUARCH | 408 | export MACHINE=$QEMUARCH |
409 | 409 | ||
410 | # Create Qemu in localhost VNC Port 1 | 410 | # Create Qemu in localhost VNC Port 1 |
411 | echo "Running xterm -display ${DISPLAY} -e 'OE_TMPDIR=${OE_TMPDIR} ${RUNQEMU} ${KERNEL} ${TEST_ROOTFS_IMAGE} | tee ${RUNQEMU_LOGFILE} || /bin/sleep 60' &" | 411 | echo "Running xterm -display ${DISPLAY} -e 'OE_TMPDIR=${OE_TMPDIR} ${RUNQEMU} ${KERNEL} ${TEST_ROOTFS_IMAGE} 2>&1 | tee ${RUNQEMU_LOGFILE} || /bin/sleep 60' &" |
412 | xterm -display ${DISPLAY} -e "OE_TMPDIR=${OE_TMPDIR} ${RUNQEMU} ${KERNEL} ${TEST_ROOTFS_IMAGE} | tee ${RUNQEMU_LOGFILE} || /bin/sleep 60" & | 412 | xterm -display ${DISPLAY} -e "OE_TMPDIR=${OE_TMPDIR} ${RUNQEMU} ${KERNEL} ${TEST_ROOTFS_IMAGE} 2>&1 | tee ${RUNQEMU_LOGFILE} || /bin/sleep 60" & |
413 | 413 | ||
414 | # Get the pid of the xterm processor, which will be used in Test_Kill_Qemu | 414 | # Get the pid of the xterm processor, which will be used in Test_Kill_Qemu |
415 | XTERMPID=$! | 415 | XTERMPID=$! |
@@ -418,7 +418,7 @@ Test_Create_Qemu() | |||
418 | sleep 5 | 418 | sleep 5 |
419 | fi | 419 | fi |
420 | 420 | ||
421 | while [ ${up_time} -lt 10 ] | 421 | while [ ${up_time} -lt 30 ] |
422 | do | 422 | do |
423 | QEMUPID=`qemuimage-testlib-pythonhelper --findqemu $XTERMPID 2>/dev/null` | 423 | QEMUPID=`qemuimage-testlib-pythonhelper --findqemu $XTERMPID 2>/dev/null` |
424 | if [ $? -ne 0 ]; then | 424 | if [ $? -ne 0 ]; then |
@@ -432,7 +432,7 @@ Test_Create_Qemu() | |||
432 | fi | 432 | fi |
433 | done | 433 | done |
434 | 434 | ||
435 | if [ ${up_time} == 10 ]; then | 435 | if [ ${up_time} == 30 ]; then |
436 | Test_Info "No qemu process appeared to start, exiting" | 436 | Test_Info "No qemu process appeared to start, exiting" |
437 | ps axww -O ppid | 437 | ps axww -O ppid |
438 | Test_Info "Process list dumped for debugging purposes" | 438 | Test_Info "Process list dumped for debugging purposes" |
@@ -442,10 +442,11 @@ Test_Create_Qemu() | |||
442 | return 1 | 442 | return 1 |
443 | fi | 443 | fi |
444 | 444 | ||
445 | up_time=0 | ||
445 | # Parse IP address of target from the qemu command line | 446 | # Parse IP address of target from the qemu command line |
446 | TARGET_IPADDR=`Test_Fetch_Target_IP $QEMUPID` | 447 | TARGET_IPADDR=`Test_Fetch_Target_IP $QEMUPID` |
447 | echo "Target IP is ${TARGET_IPADDR}" | 448 | echo "Target IP is ${TARGET_IPADDR}" |
448 | if [ ${TARGET_IPADDR} = "" -o "${TARGET_IPADDR}" = "0" ]; then | 449 | if [ "${TARGET_IPADDR}" = "" -o "${TARGET_IPADDR}" = "0" ]; then |
449 | Test_Info "There is no qemu process or qemu ip address found, return failed" | 450 | Test_Info "There is no qemu process or qemu ip address found, return failed" |
450 | ps -wwf | 451 | ps -wwf |
451 | ps axww -O ppid | 452 | ps axww -O ppid |
diff --git a/scripts/qemuimage-testlib-pythonhelper b/scripts/qemuimage-testlib-pythonhelper index 2c1f557778..bb01246c77 100755 --- a/scripts/qemuimage-testlib-pythonhelper +++ b/scripts/qemuimage-testlib-pythonhelper | |||
@@ -19,7 +19,7 @@ if options.findqemu: | |||
19 | # | 19 | # |
20 | # Walk the process tree from the process specified looking for a qemu-system. Return its pid. | 20 | # Walk the process tree from the process specified looking for a qemu-system. Return its pid. |
21 | # | 21 | # |
22 | ps = subprocess.Popen(['ps', 'ax', '-o', 'pid,ppid,command'], stdout=subprocess.PIPE).communicate()[0] | 22 | ps = subprocess.Popen(['ps', 'axww', '-o', 'pid,ppid,command'], stdout=subprocess.PIPE).communicate()[0] |
23 | processes = ps.split('\n') | 23 | processes = ps.split('\n') |
24 | nfields = len(processes[0].split()) - 1 | 24 | nfields = len(processes[0].split()) - 1 |
25 | pids = {} | 25 | pids = {} |
diff --git a/scripts/runqemu-internal b/scripts/runqemu-internal index f06870e972..e8191d1375 100755 --- a/scripts/runqemu-internal +++ b/scripts/runqemu-internal | |||
@@ -302,7 +302,7 @@ if [ "$MACHINE" = "qemuarm" -o "$MACHINE" = "qemuarmv6" -o "$MACHINE" = "qemuarm | |||
302 | # QEMU_UI_OPTIONS="$QEMU_UI_OPTIONS -force-pointer" | 302 | # QEMU_UI_OPTIONS="$QEMU_UI_OPTIONS -force-pointer" |
303 | if [ "$FSTYPE" = "ext3" -o "$FSTYPE" = "btrfs" ]; then | 303 | if [ "$FSTYPE" = "ext3" -o "$FSTYPE" = "btrfs" ]; then |
304 | KERNCMDLINE="root=/dev/sda rw console=ttyAMA0,115200 console=tty $KERNEL_NETWORK_CMD mem=$QEMU_MEMORY highres=off" | 304 | KERNCMDLINE="root=/dev/sda rw console=ttyAMA0,115200 console=tty $KERNEL_NETWORK_CMD mem=$QEMU_MEMORY highres=off" |
305 | QEMUOPTIONS="$QEMU_NETWORK_CMD -M versatilepb -hda $ROOTFS -no-reboot $QEMU_UI_OPTIONS" | 305 | QEMUOPTIONS="$QEMU_NETWORK_CMD -M ${MACHINE_SUBTYPE} -hda $ROOTFS -no-reboot $QEMU_UI_OPTIONS" |
306 | fi | 306 | fi |
307 | if [ "$FSTYPE" = "nfs" ]; then | 307 | if [ "$FSTYPE" = "nfs" ]; then |
308 | if [ "$NFS_SERVER" = "192.168.7.1" -a ! -d "$NFS_DIR" ]; then | 308 | if [ "$NFS_SERVER" = "192.168.7.1" -a ! -d "$NFS_DIR" ]; then |
@@ -311,7 +311,7 @@ if [ "$MACHINE" = "qemuarm" -o "$MACHINE" = "qemuarmv6" -o "$MACHINE" = "qemuarm | |||
311 | return 1 | 311 | return 1 |
312 | fi | 312 | fi |
313 | KERNCMDLINE="root=/dev/nfs nfsroot=$NFS_SERVER:$NFS_DIR,$UNFS_OPTS rw $KERNEL_NETWORK_CMD mem=$QEMU_MEMORY" | 313 | KERNCMDLINE="root=/dev/nfs nfsroot=$NFS_SERVER:$NFS_DIR,$UNFS_OPTS rw $KERNEL_NETWORK_CMD mem=$QEMU_MEMORY" |
314 | QEMUOPTIONS="$QEMU_NETWORK_CMD -M versatilepb --no-reboot $QEMU_UI_OPTIONS" | 314 | QEMUOPTIONS="$QEMU_NETWORK_CMD -M ${MACHINE_SUBTYPE} --no-reboot $QEMU_UI_OPTIONS" |
315 | fi | 315 | fi |
316 | if [ "$MACHINE" = "qemuarmv6" ]; then | 316 | if [ "$MACHINE" = "qemuarmv6" ]; then |
317 | QEMUOPTIONS="$QEMUOPTIONS -cpu arm1136" | 317 | QEMUOPTIONS="$QEMUOPTIONS -cpu arm1136" |
@@ -325,7 +325,7 @@ if [ "$MACHINE" = "qemux86" ]; then | |||
325 | QEMU=qemu-system-i386 | 325 | QEMU=qemu-system-i386 |
326 | QEMU_UI_OPTIONS="$QEMU_UI_OPTIONS -vga vmware" | 326 | QEMU_UI_OPTIONS="$QEMU_UI_OPTIONS -vga vmware" |
327 | if [ "$FSTYPE" = "ext2" -o "$FSTYPE" = "ext3" -o "$FSTYPE" = "btrfs" ]; then | 327 | if [ "$FSTYPE" = "ext2" -o "$FSTYPE" = "ext3" -o "$FSTYPE" = "btrfs" ]; then |
328 | KERNCMDLINE="vga=0 root=$DROOT rw mem=$QEMU_MEMORY $KERNEL_NETWORK_CMD" | 328 | KERNCMDLINE="vga=0 uvesafb.mode_option=640x480-32 root=$DROOT rw mem=$QEMU_MEMORY $KERNEL_NETWORK_CMD" |
329 | QEMUOPTIONS="$QEMU_NETWORK_CMD $ROOTFS_OPTIONS $QEMU_UI_OPTIONS" | 329 | QEMUOPTIONS="$QEMU_NETWORK_CMD $ROOTFS_OPTIONS $QEMU_UI_OPTIONS" |
330 | fi | 330 | fi |
331 | if [ "$FSTYPE" = "nfs" ]; then | 331 | if [ "$FSTYPE" = "nfs" ]; then |