The series contains a number of patches for the `generate-manifest` tool as well as fixes for packaging of Erlang modules.
The first patch addresses the problem of maintaining multiple versions of `generate-manifest` tool, one for each Erlang version. This is not effective in the long run. The tool has been updated to support multiple Erlang versions. We exploit the fact that Erlang modules have a predictable directory layout. There is very little change between consecutive Erlang versions with respect to module organization. This allowed for reducing much of the duplication into a smaller, more maintainable code. The script can generate manifest for Erlang 18.2.3 and 18.1.5 (version currently supported in the tree). Particular version is selected by passing --erlang-version <version> as a command line. Along with the changes described above, the script has been pylinted. The generated manifest contain slightly more packages, as by default a *-doc package is added for each module. The script output is largely identical to what the original code produced. The second patch tightens package file selection. We make sure that *-dev packages ship `src` as well as `c_src`, `java_src` and other variants, should they exist. The *-doc packages should ship manpages and other documentation files. The third patch fixes the problem of files being shipped in incorrect packages. The commit message is rather long, so for brevity, I will not repeat it here. TL;DR is that the way the packages are populated and how the manifest gets generated results in for instance dialyzer script being shipped in erlang-erts package. The fix addresses this problem by preserving the order in which modules are defined. Since we're using Erlang in an embedded system, we're rather picky about the modules and install only the ones that are needed for particular application. By shipping incorrect files in packages, we either need to install unnecessary packages, or install too many files, thus wasting space. The last patch is a regenerated manifest files for Erlang 18.1.5 and 18.2.3. The diff is large (~200kB), that's why I've put everything into a pull request. The following changes since commit 8878361e26aee0624385a4ef1ede44cdacd8108a: erlang: add 18.2.3 (2016-02-07 16:08:55 -0200) are available in the git repository at: https://github.com/open-rnd/meta-erlang.git for you to fetch changes up to c9ee91fed2e5241fc3d506cb0fde971b153f8909: erlang-xxx-manifest: regenerate manifest files (2016-02-25 20:27:55 +0100) ---------------------------------------------------------------- Maciej Borzecki (4): generate-manifest: replace multiple scripts with one generate-manifest: tighten file selection rules generate-manifest: preserve the package order erlang-xxx-manifest: regenerate manifest files recipes-devtools/erlang/erlang-18.1.5-manifest.inc | 2058 +++++++++++--------- recipes-devtools/erlang/erlang-18.2.3-manifest.inc | 2058 +++++++++++--------- scripts/contrib/erlang/generate-manifest | 394 ++++ scripts/contrib/erlang/generate-manifest-18.1.py | 460 ----- scripts/contrib/erlang/generate-manifest-18.2.1.py | 460 ----- 5 files changed, 2712 insertions(+), 2718 deletions(-) create mode 100755 scripts/contrib/erlang/generate-manifest delete mode 100755 scripts/contrib/erlang/generate-manifest-18.1.py delete mode 100755 scripts/contrib/erlang/generate-manifest-18.2.1.py -- Maciej Borzęcki Senior Software Engineer at Open-RnD Sp. z o.o. www.open-rnd.pl -- _______________________________________________ Openembedded-devel mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-devel
