build.py: Fix task variable expansion issue
[bitbake.git] / ChangeLog
1 Changes in BitBake 1.8.x:
2         - Fix exit code for build failures in --continue mode
3         - Fix git branch tags fetching
4         - Change parseConfigurationFile so it works on real data, not a copy
5         - Handle 'base' inherit and all other INHERITs from parseConfigurationFile 
6           instead of BBHandler
7         - Fix getVarFlags bug in data_smart
8         - Optmise cache handling by more quickly detecting an invalid cache, only 
9           saving the cache when its changed, moving the cache validity check into
10           the parsing loop and factoring some getVar calls outside a for loop
11         - Cooker: Remove a debug message from the parsing loop to lower overhead
12         - Convert build.py exec_task to use getVarFlags
13         - Update shell to use cooker.buildFile
14         - Add StampUpdate event
15         - Convert -b option to use taskdata/runqueue
16         - Remove digraph and switch to new stamp checking code. exec_task no longer
17           honours dependencies
18         - Make fetcher timestamp updating non-fatal when permissions don't allow 
19           updates
20         - Add BB_SCHEDULER variable/option ("completion" or "speed") controlling
21           the way bitbake schedules tasks
22         - Add BB_STAMP_POLICY variable/option ("perfile" or "full") controlling
23           how extensively stamps are looked at for validity
24
25 Changes in BitBake 1.8.10:
26         - Psyco is available only for x86 - do not use it on other architectures.
27         - Fix a bug in bb.decodeurl where http://some.where.com/somefile.tgz decoded to host="" (#1530)
28         - Warn about malformed PREFERRED_PROVIDERS (#1072)
29         - Add support for BB_NICE_LEVEL option (#1627)
30         - Sort initial providers list by default preference (#1145, #2024)
31         - Improve provider sorting so prefered versions have preference over latest versions (#768)
32         - Detect builds of tasks with overlapping providers and warn (will become a fatal error) (#1359)
33         - Add MULTI_PROVIDER_WHITELIST variable to allow known safe multiple providers to be listed
34         - Handle paths in svn fetcher module parameter
35         - Support the syntax "export VARIABLE"
36         - Add bzr fetcher
37         - Add support for cleaning directories before a task in the form:
38           do_taskname[cleandirs] = "dir"
39         - bzr fetcher tweaks from Robert Schuster (#2913)
40         - Add mercurial (hg) fetcher from Robert Schuster (#2913)
41         - Fix bogus preferred_version return values
42         - Fix 'depends' flag splitting
43         - Fix unexport handling (#3135)
44         - Add bb.copyfile function similar to bb.movefile (and improve movefile error reporting)
45         - Allow multiple options for deptask flag
46         - Use git-fetch instead of git-pull removing any need for merges when 
47           fetching (we don't care about the index). Fixes fetch errors.
48         - Add BB_GENERATE_MIRROR_TARBALLS option, set to 0 to make git fetches 
49           faster at the expense of not creating mirror tarballs.
50         - SRCREV handling updates, improvements and fixes from Poky
51         - Add bb.utils.lockfile() and bb.utils.unlockfile() from Poky
52         - Add support for task selfstamp and lockfiles flags
53         - Disable task number acceleration since it can allow the tasks to run 
54           out of sequence
55         - Improve runqueue code comments
56         - Add task scheduler abstraction and some example schedulers
57         - Improve circular dependency chain debugging code and user feedback
58         - Don't give a stacktrace for invalid tasks, have a user friendly message (#3431)
59         - Add support for "-e target" (#3432)
60         - Fix shell showdata command (#3259)
61         - Fix shell data updating problems (#1880)
62         - Properly raise errors for invalid source URI protocols
63         - Change the wget fetcher failure handling to avoid lockfile problems
64         - Add git branch support
65         - Add support for branches in git fetcher (Otavio Salvador, Michael Lauer)
66         - Make taskdata and runqueue errors more user friendly
67         - Add norecurse and fullpath options to cvs fetcher
68
69 Changes in Bitbake 1.8.8:
70         - Rewrite svn fetcher to make adding extra operations easier 
71           as part of future SRCDATE="now" fixes
72           (requires new FETCHCMD_svn definition in bitbake.conf)
73         - Change SVNDIR layout to be more unique (fixes #2644 and #2624)
74         - Import persistent data store from trunk
75         - Sync fetcher code with that in trunk, adding SRCREV support for svn
76         - Add ConfigParsed Event after configuration parsing is complete
77         - data.emit_var() - only call getVar if we need the variable
78         - Stop generating the A variable (seems to be legacy code)
79         - Make sure intertask depends get processed correcting in recursive depends
80         - Add pn-PN to overrides when evaluating PREFERRED_VERSION
81         - Improve the progress indicator by skipping tasks that have 
82           already run before starting the build rather than during it
83         - Add profiling option (-P)
84         - Add BB_SRCREV_POLICY variable (clear or cache) to control SRCREV cache
85         - Add SRCREV_FORMAT support
86         - Fix local fetcher's localpath return values
87         - Apply OVERRIDES before performing immediate expansions
88         - Allow the -b -e option combination to take regular expressions
89         - Add plain message function to bb.msg
90         - Sort the list of providers before processing so dependency problems are 
91           reproducible rather than effectively random
92         - Add locking for fetchers so only one tries to fetch a given file at a given time
93         - Fix int(0)/None confusion in runqueue.py which causes random gaps in dependency chains
94         - Fix handling of variables with expansion in the name using _append/_prepend
95           e.g. RRECOMMENDS_${PN}_append_xyz = "abc"
96         - Expand data in addtasks
97         - Print the list of missing DEPENDS,RDEPENDS for the "No buildable providers available for required...."
98           error message.
99         - Rework add_task to be more efficient (6% speedup, 7% number of function calls reduction)
100         - Sort digraph output to make builds more reproducible
101         - Split expandKeys into two for loops to benefit from the expand_cache (12% speedup)
102         - runqueue.py: Fix idepends handling to avoid dependency errors
103         - Clear the terminal TOSTOP flag if set (and warn the user)
104         - Fix regression from r653 and make SRCDATE/CVSDATE work for packages again
105
106 Changes in Bitbake 1.8.6:
107         - Correctly redirect stdin when forking
108         - If parsing errors are found, exit, too many users miss the errors
109         - Remove supriours PREFERRED_PROVIDER warnings
110
111 Changes in Bitbake 1.8.4:
112         - Make sure __inherit_cache is updated before calling include() (from Michael Krelin)
113         - Fix bug when target was in ASSUME_PROVIDED (#2236)
114         - Raise ParseError for filenames with multiple underscores instead of infinitely looping (#2062)
115         - Fix invalid regexp in BBMASK error handling (missing import) (#1124)
116         - Don't run build sanity checks on incomplete builds
117         - Promote certain warnings from debug to note 2 level
118         - Update manual
119
120 Changes in Bitbake 1.8.2:
121         - Catch truncated cache file errors
122         - Add PE (Package Epoch) support from Philipp Zabel (pH5)
123         - Add code to handle inter-task dependencies
124         - Allow operations other than assignment on flag variables
125         - Fix cache errors when generation dotGraphs
126
127 Changes in Bitbake 1.8.0:
128         - Release 1.7.x as a stable series
129
130 Changes in BitBake 1.7.x:
131         - Major updates of the dependency handling and execution
132           of tasks. Code from bin/bitbake replaced with runqueue.py
133           and taskdata.py
134         - New task execution code supports multithreading with a simplistic
135           threading algorithm controlled by BB_NUMBER_THREADS
136         - Change of the SVN Fetcher to keep the checkout around
137           courtsey of Paul Sokolovsky (#1367)
138         - PATH fix to bbimage (#1108)
139         - Allow debug domains to be specified on the commandline (-l)
140         - Allow 'interactive' tasks
141         - Logging message improvements
142         - Drop now uneeded BUILD_ALL_DEPS variable
143         - Add support for wildcards to -b option
144         - Major overhaul of the fetchers making a large amount of code common
145           including mirroring code
146         - Fetchers now touch md5 stamps upon access (to show activity)
147         - Fix -f force option when used without -b (long standing bug)
148         - Add expand_cache to data_cache.py, caching expanded data (speedup)
149         - Allow version field in DEPENDS (ignored for now)
150         - Add abort flag support to the shell
151         - Make inherit fail if the class doesn't exist (#1478)
152         - Fix data.emit_env() to expand keynames as well as values
153         - Add ssh fetcher
154         - Add perforce fetcher
155         - Make PREFERRED_PROVIDER_foobar defaults to foobar if available
156         - Share the parser's mtime_cache, reducing the number of stat syscalls
157         - Compile all anonfuncs at once! 
158           *** Anonfuncs must now use common spacing format ***
159         - Memorise the list of handlers in __BBHANDLERS and tasks in __BBTASKS
160           This removes 2 million function calls resulting in a 5-10% speedup
161         - Add manpage
162         - Update generateDotGraph to use taskData/runQueue improving accuracy
163           and also adding a task dependency graph
164         - Fix/standardise on GPLv2 licence
165         - Move most functionality from bin/bitbake to cooker.py and split into
166           separate funcitons
167         - CVS fetcher: Added support for non-default port
168         - Add BBINCLUDELOGS_LINES, the number of lines to read from any logfile
169         - Drop shebangs from lib/bb scripts
170
171 Changes in Bitbake 1.6.0:
172         - Better msg handling
173         - COW dict implementation from Tim Ansell (mithro) leading
174           to better performance
175         - Speed up of -s
176
177 Changes in Bitbake 1.4.4:
178         - SRCDATE now handling courtsey Justin Patrin
179         - #1017 fix to work with rm_work
180
181 Changes in BitBake 1.4.2:
182         - Send logs to oe.pastebin.com instead of pastebin.com
183           fixes #856
184         - Copy the internal bitbake data before building the
185           dependency graph. This fixes nano not having a
186           virtual/libc dependency
187         - Allow multiple TARBALL_STASH entries
188         - Cache, check if the directory exists before changing
189           into it
190         - git speedup cloning by not doing a checkout
191         - allow to have spaces in filenames (.conf, .bb, .bbclass)
192
193 Changes in BitBake 1.4.0:
194         - Fix to check both RDEPENDS and RDEPENDS_${PN}
195         - Fix a RDEPENDS parsing bug in utils:explode_deps()
196         - Update git fetcher behaviour to match git changes
197         - ASSUME_PROVIDED allowed to include runtime packages
198         - git fetcher cleanup and efficency improvements
199         - Change the format of the cache
200         - Update usermanual to document the Fetchers
201         - Major changes to caching with a new strategy
202           giving a major performance increase when reparsing
203           with few data changes
204
205 Changes in BitBake 1.3.3:
206         - Create a new Fetcher module to ease the
207           development of new Fetchers.
208           Issue #438 fixed by rpurdie@openedhand.com
209         - Make the Subversion fetcher honor the SRC Date
210           (CVSDATE).
211           Issue #555 fixed by chris@openedhand.com
212         - Expand PREFERRED_PROVIDER properly
213           Issue #436 fixed by rprudie@openedhand.com
214         - Typo fix for Issue #531 by Philipp Zabel for the
215           BitBake Shell
216         - Introduce a new special variable SRCDATE as
217           a generic naming to replace CVSDATE.
218         - Introduce a new keyword 'required'. In contrast
219           to 'include' parsing will fail if a to be included
220           file can not be found.
221         - Remove hardcoding of the STAMP directory. Patch
222           courtsey pHilipp Zabel
223         - Track the RDEPENDS of each package (rpurdie@openedhand.com)
224         - Introduce BUILD_ALL_DEPS to build all RDEPENDS. E.g
225           this is used by the OpenEmbedded Meta Packages.
226           (rpurdie@openedhand.com).
227
228 Changes in BitBake 1.3.2:
229         - reintegration of make.py into BitBake
230         - bbread is gone, use bitbake -e
231         - lots of shell updates and bugfixes
232         - Introduction of the .= and =. operator
233         - Sort variables, keys and groups in bitdoc
234         - Fix regression in the handling of BBCOLLECTIONS
235         - Update the bitbake usermanual
236
237 Changes in BitBake 1.3.0:
238         - add bitbake interactive shell (bitbake -i)
239         - refactor bitbake utility in OO style
240         - kill default arguments in methods in the bb.data module
241         - kill default arguments in methods in the bb.fetch module
242         - the http/https/ftp fetcher will fail if the to be 
243           downloaded file was not found in DL_DIR (this is needed
244           to avoid unpacking the sourceforge mirror page)
245         - Switch to a cow like data instance for persistent and non
246           persisting mode (called data_smart.py)
247         - Changed the callback of bb.make.collect_bbfiles to carry
248           additional parameters
249         - Drastically reduced the amount of needed RAM by not holding
250           each data instance in memory when using a cache/persistent
251           storage
252
253 Changes in BitBake 1.2.1:
254         The 1.2.1 release is meant as a intermediate release to lay the
255         ground for more radical changes. The most notable changes are:
256
257         - Do not hardcode {}, use bb.data.init() instead if you want to
258           get a instance of a data class
259         - bb.data.init() is a factory and the old bb.data methods are delegates
260         - Do not use deepcopy use bb.data.createCopy() instead.
261         - Removed default arguments in bb.fetch
262