Hello,

Honestly, my main motivation to send this series comes from a time when
I was building u-boot (meta-freescale) and I saw vim-native in Bitbake's
tasks. It blew my mind that a bootloader somehow dependend on a text
editor (yes, only to be built, not to be executed, I know), and the whole
text editor was being built to provide nothing more than xxd.

Just to be clear, what bothers me is NOT u-boot depending on xxd. It is
actually configuring and compiling Vim (considering the overhead this
represents) only to use a single tiny piece of it.

As for the tests I performed:

- machine: qemuriscv64
- toolchains: clang and gcc
- classes (xxd, vim-xxd): target, native, nativesdk
- classes (vim): target, native, nativesdk
- archiving: the resulting tarball includes only xxd's sources, as expected

Some benchmarks as well, from a previous mail:

vim-native-9.2.0340-r0: do_configure
Elapsed time: 6.81 seconds

vim-native-9.2.0340-r0: do_compile
Elapsed time: 4.43 seconds

vim-xxd-native-9.2.0340-r0: do_configure
Elapsed time: 0.03 seconds

vim-xxd-native-9.2.0340-r0: do_compile
Elapsed time: 0.23 seconds

(this data comes from tmp/buildstats)

Everything built fine, and the core-image-minimal running with qemu also
correctly shipped vim and xxd, which executed fine as well.

Finally, regarding runtime, vim already RDEPENDs on vim-xxd, so by default they
are installed together if you have 'vim' in IMAGE_INSTALL. After the split, it
is true that both recipes will be built, but as per the numbers above, the time
spent building vim-xxd-native is minimal.

Best regards,

Changes since v1:
- added the step where vim's sources are pruned
- fixed the license information in xxd
- moved the patches from vim-sources.inc to vim's recipe, as they don't apply to
  xxd
- added support to pruning in archiver.bbclass, to make things coherent
- added some benchmarks to the cover letter

João Marcos Costa (5):
  vim: introduce vim-sources.inc file
  vim-xxd: introduce new recipe for xxd
  vim: drop references to xxd in base recipe
  vim.inc: remove xxd from the destination directory
  base.bbclass: introduce prune_source_tree function

 meta/classes-global/base.bbclass         | 49 ++++++++++++++++++++++++
 meta/classes/archiver.bbclass            |  1 +
 meta/conf/distro/include/maintainers.inc |  1 +
 meta/recipes-support/vim/vim-sources.inc |  9 +++++
 meta/recipes-support/vim/vim-xxd_9.2.bb  | 39 +++++++++++++++++++
 meta/recipes-support/vim/vim.inc         | 18 +++------
 meta/recipes-support/vim/vim_9.2.bb      | 13 ++-----
 7 files changed, 108 insertions(+), 22 deletions(-)
 create mode 100644 meta/recipes-support/vim/vim-sources.inc
 create mode 100644 meta/recipes-support/vim/vim-xxd_9.2.bb

-- 
2.43.0

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#237507): 
https://lists.openembedded.org/g/openembedded-core/message/237507
Mute This Topic: https://lists.openembedded.org/mt/119424104/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to