inc files in recipes


Frans Meulenbroeks <fransmeulenbroeks@...>
 

Dear all,

Peeking at flex I was wondering whether we should try to avoid using
.inc files in recipes especially if there is only one recipe.

flex has:
frans@frans-desktop:~/yocto/poky-laverne-4.0$ ls meta/recipes-devtools/flex
flex_2.5.35.bb flex.inc

Here the inc file could be merged into the bb file.
This has the advantage of having only a single file, so it is slightly
easier if you want to read or maintain the recipe.

For recipes with multiple versions (e.g. tar) it might be useful to
have inc files. It is really a tradeoff between easy access/reading
and maintainability here.

(and I think for some packages (e.g. gcc) the inc file is actually very useful!)

Frans

PS: laverne seems to have 255 inc files:
frans@frans-desktop:~/yocto/poky-laverne-4.0$ find meta* | grep \.inc\$
meta/recipes-core/glib-2.0/glib-2.0.inc
meta/recipes-core/glib-2.0/glib.inc
meta/recipes-core/udev/udev.inc
meta/recipes-core/udev/udev-new.inc
meta/recipes-core/glibc/glibc.inc
meta/recipes-core/glibc/glibc-package.inc
meta/recipes-core/glibc/glibc-initial.inc
meta/recipes-core/glibc/glibc-stage.inc
meta/recipes-core/busybox/busybox.inc
meta/recipes-core/readline/readline.inc
meta/recipes-core/dbus/dbus-glib.inc
meta/recipes-core/dbus/dbus.inc
meta/recipes-core/uclibc/uclibc.inc
meta/recipes-core/ncurses/ncurses.inc
meta/recipes-core/dropbear/dropbear.inc
meta/recipes-core/eglibc/eglibc-package.inc
meta/recipes-core/eglibc/eglibc.inc
meta/recipes-core/eglibc/eglibc-initial.inc
meta/recipes-core/expat/expat.inc
meta/recipes-core/images/poky-image-live.inc
meta/recipes-core/images/poky-image-directdisk.inc
meta/recipes-core/util-linux/util-linux.inc
meta/recipes-core/libxml/libxml2.inc
meta/recipes-bsp/pcmciautils/pcmciautils.inc
meta/recipes-bsp/uboot/u-boot.inc
meta/recipes-bsp/hostap/hostap-utils.inc
meta/recipes-bsp/acpid/acpid.inc
meta/recipes-bsp/x-load/x-load.inc
meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato.inc
meta/recipes-sato/gtk-engines/gtk-sato-engine.inc
meta/recipes-sato/sato-icon-theme/sato-icon-theme.inc
meta/recipes-sato/pimlico/dates.inc
meta/recipes-sato/pimlico/contacts.inc
meta/recipes-sato/pimlico/tasks.inc
meta/recipes-sato/claws-mail/claws-mail.inc
meta/classes/ccache.inc
meta/recipes-multimedia/gstreamer/gst-fluendo.inc
meta/recipes-multimedia/gstreamer/gst-plugins.inc
meta/recipes-multimedia/alsa/alsa-fpu.inc
meta/recipes-extended/cpio/cpio_v2.inc
meta/recipes-extended/byacc/byacc.inc
meta/recipes-extended/findutils/findutils.inc
meta/recipes-extended/zip/zip.inc
meta/recipes-extended/augeas/augeas.inc
meta/recipes-extended/sysstat/sysstat.inc
meta/recipes-extended/psmisc/psmisc.inc
meta/recipes-extended/shadow/shadow.inc
meta/recipes-extended/sudo/sudo.inc
meta/recipes-extended/procps/procps.inc
meta/recipes-extended/tar/tar.inc
meta/recipes-extended/sysklogd/sysklogd.inc
meta/recipes-extended/time/time.inc
meta/recipes-extended/bash/bash.inc
meta/recipes-extended/gzip/gzip.inc
meta/recipes-extended/gperf/gperf.inc
meta/recipes-tbd/pulseaudio/pulseaudio.inc
meta/recipes-tbd/poppler/poppler.inc
meta/recipes-tbd/poppler/poppler-fpu.inc
meta/conf/machine/include/tune-c3.inc
meta/conf/machine/include/tune-sh3.inc
meta/conf/machine/include/tune-ppce500.inc
meta/conf/machine/include/tune-cortexr4.inc
meta/conf/machine/include/tune-strongarm1100.inc
meta/conf/machine/include/zaurus-2.6.inc
meta/conf/machine/include/tune-xscale.inc
meta/conf/machine/include/tune-ppce300c2.inc
meta/conf/machine/include/tune-armv7.inc
meta/conf/machine/include/qemu.inc
meta/conf/machine/include/tune-supersparc.inc
meta/conf/machine/include/tune-cortexa8.inc
meta/conf/machine/include/tune-iwmmxt.inc
meta/conf/machine/include/tune-cortexm1.inc
meta/conf/machine/include/tune-cortexm3.inc
meta/conf/machine/include/tune-ppc603e.inc
meta/conf/machine/include/tune-ep9312.inc
meta/conf/machine/include/tune-arm9tdmi.inc
meta/conf/machine/include/tune-atom.inc
meta/conf/machine/include/tune-thumb.inc
meta/conf/machine/include/zaurus-clamshell.inc
meta/conf/machine/include/tune-arm920t.inc
meta/conf/machine/include/tune-sh4.inc
meta/conf/machine/include/tune-arm926ejs.inc
meta/conf/machine/include/tune-mips32.inc
meta/conf/machine/include/tune-arm1136jf-s.inc
meta/conf/distro/include/poky-uclibc.inc
meta/conf/distro/include/poky-external-csl2007q3.inc
meta/conf/distro/include/preferred-xorg-versions.inc
meta/conf/distro/include/poky-default.inc
meta/conf/distro/include/poky-glibc.inc
meta/conf/distro/include/poky-eglibc.inc
meta/conf/distro/include/as-needed.inc
meta/conf/distro/include/distro_tracking_fields.inc
meta/conf/distro/include/poky-default-revisions.inc
meta/conf/distro/include/poky-external.inc
meta/conf/distro/include/world-broken.inc
meta/conf/distro/include/poky-eabi-csl2005q3-2.inc
meta/conf/distro/include/poky-oabi.inc
meta/conf/distro/include/poky-fixed-revisions.inc
meta/conf/distro/include/poky-external-oabi.inc
meta/conf/distro/include/poky-floating-revisions.inc
meta/conf/distro/include/poky-external-default.inc
meta/conf/distro/include/poky-external-csl2008q3.inc
meta/conf/distro/include/poky-external-csl2006q3.inc
meta/recipes-gnome/gnome/gnome-doc-utils.inc
meta/recipes-gnome/gnome/gnome-desktop.inc
meta/recipes-gnome/abiword/abiword.inc
meta/recipes-gnome/abiword/abiword-2.5.inc
meta/recipes-gnome/gtk+/gtk+.inc
meta/recipes-gnome/tasks/task-sdk-gmae.inc
meta/recipes-kernel/fuse/fuse.inc
meta/recipes-kernel/dtc/dtc_git.inc
meta/recipes-kernel/dtc/dtc.inc
meta/recipes-kernel/dtc/dtc-native.inc
meta/recipes-kernel/module-init-tools/module-init-tools.inc
meta/recipes-kernel/oprofile/oprofileui.inc
meta/recipes-kernel/oprofile/oprofileui-svn.inc
meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc
meta/recipes-kernel/linux/linux.inc
meta/recipes-kernel/linux/linux-zylonite.inc
meta/recipes-kernel/linux/linux-netbook.inc
meta/recipes-kernel/linux/linux-mx31.inc
meta/recipes-kernel/linux/linux-omap.inc
meta/recipes-kernel/linux/linux-simtec.inc
meta/recipes-kernel/linux/linux-omap2.inc
meta/recipes-kernel/linux/linux-rp.inc
meta/recipes-kernel/kexec/kexec-tools.inc
meta/recipes-connectivity/wpa-supplicant/wpa-supplicant-0.6.inc
meta/recipes-connectivity/wpa-supplicant/wpa-supplicant-0.7.inc
meta/recipes-connectivity/opensync/libopensync-plugin_0.36.inc
meta/recipes-connectivity/gypsy/gypsy.inc
meta/recipes-connectivity/dhcp/dhcp3.inc
meta/recipes-connectivity/dhcp/dhcp4.inc
meta/recipes-connectivity/libpcap/libpcap.inc
meta/recipes-connectivity/avahi/avahi.inc
meta/recipes-connectivity/ofono/ofono.inc
meta/recipes-connectivity/portmap/portmap.inc
meta/recipes-connectivity/openssl/openssl.inc
meta/recipes-connectivity/gsm/gsmd.inc
meta/recipes-connectivity/connman/connman.inc
meta/recipes-connectivity/iproute2/iproute2.inc
meta/recipes-support/mpfr/mpfr.inc
meta/recipes-support/vte/vte.inc
meta/recipes-support/gmp/gmp.inc
meta/recipes-support/hal/hal-info.inc
meta/recipes-support/hal/hal.inc
meta/recipes-support/shared-mime-info/shared-mime-info.inc
meta/recipes-support/boost/boost-36.inc
meta/recipes-support/boost/boost-jam-native.inc
meta/recipes-support/libmpc/libmpc.inc
meta/recipes-support/sqlite/sqlite3.inc
meta/recipes-support/libcap/libcap.inc
meta/recipes-support/atk/atk.inc
meta/recipes-support/libgcrypt/libgcrypt.inc
meta/recipes-support/attr/attr.inc
meta/recipes-support/attr/acl.inc
meta/recipes-support/attr/ea-acl.inc
meta/recipes-support/gnutls/gnutls.inc
meta/recipes-support/icu/icu-3.6.inc
meta/recipes-qt/qt4/qt-4.6.3.inc
meta/recipes-qt/qt4/qt4.inc
meta/recipes-qt/qt4/qt4-tools-native.inc
meta/recipes-qt/qt4/qt4-x11-free.inc
meta/recipes-graphics/pango/pango.inc
meta/recipes-graphics/cairo/cairo-fpu.inc
meta/recipes-graphics/cairo/cairo.inc
meta/recipes-graphics/xorg-proto/xorg-proto-common.inc
meta/recipes-graphics/xorg-lib/xorg-lib-common.inc
meta/recipes-graphics/xorg-lib/libx11.inc
meta/recipes-graphics/xorg-lib/libx11_git.inc
meta/recipes-graphics/xorg-util/xorg-util-common.inc
meta/recipes-graphics/xorg-font/xorg-font-common.inc
meta/recipes-graphics/libmatchbox/libmatchbox.inc
meta/recipes-graphics/mutter/mutter.inc
meta/recipes-graphics/drm/libdrm.inc
meta/recipes-graphics/xorg-driver/xf86-input-common.inc
meta/recipes-graphics/xorg-driver/xf86-driver-common.inc
meta/recipes-graphics/xorg-driver/xf86-video-common.inc
meta/recipes-graphics/xorg-xserver/xserver-xf86-lite.inc
meta/recipes-graphics/xorg-xserver/xserver-xf86-common.inc
meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite.inc
meta/recipes-graphics/xorg-xserver/xserver-kdrive.inc
meta/recipes-graphics/xcb/libxcb.inc
meta/recipes-graphics/xcb/xcb-proto.inc
meta/recipes-graphics/xcb/xcb-util.inc
meta/recipes-graphics/clutter/clutter-gst.inc
meta/recipes-graphics/clutter/clutter-gtk.inc
meta/recipes-graphics/clutter/aaina.inc
meta/recipes-graphics/clutter/clutter.inc
meta/recipes-graphics/clutter/clutter-package.inc
meta/recipes-graphics/clutter/clutter-fpu.inc
meta/recipes-graphics/clutter/table.inc
meta/recipes-graphics/clutter/clutter-cairo.inc
meta/recipes-graphics/clutter/clutter-box2d.inc
meta/recipes-graphics/clutter/tidy.inc
meta/recipes-graphics/mesa/mesa-common.inc
meta/recipes-graphics/xorg-app/xorg-app-common.inc
meta/recipes-devtools/quilt/quilt.inc
meta/recipes-devtools/quilt/quilt-native.inc
meta/recipes-devtools/exmap-console/exmap-console.inc
meta/recipes-devtools/opkg/opkg.inc
meta/recipes-devtools/automake/automake.inc
meta/recipes-devtools/gcc/gcc-configure-sdk.inc
meta/recipes-devtools/gcc/gcc-package-sdk.inc
meta/recipes-devtools/gcc/gcc-cross-intermediate.inc
meta/recipes-devtools/gcc/gcc-configure-target.inc
meta/recipes-devtools/gcc/gcc-cross4.inc
meta/recipes-devtools/gcc/gcc-cross-initial.inc
meta/recipes-devtools/gcc/gcc-crosssdk.inc
meta/recipes-devtools/gcc/gcc-package-target.inc
meta/recipes-devtools/gcc/gcc-package-runtime.inc
meta/recipes-devtools/gcc/gcc-4.5.0.inc
meta/recipes-devtools/gcc/gcc-4.3.3.inc
meta/recipes-devtools/gcc/gcc-common.inc
meta/recipes-devtools/gcc/gcc-cross.inc
meta/recipes-devtools/gcc/gcc-cross-kernel.inc
meta/recipes-devtools/gcc/gcc-cross-canadian.inc
meta/recipes-devtools/gcc/gcc-configure-common.inc
meta/recipes-devtools/gcc/gcc-crosssdk-intermediate.inc
meta/recipes-devtools/gcc/gcc-csl-arm-2005q3.inc
meta/recipes-devtools/gcc/gcc-configure-cross.inc
meta/recipes-devtools/gcc/gcc-crosssdk-initial.inc
meta/recipes-devtools/gcc/gcc-package-cross.inc
meta/recipes-devtools/gcc/gcc-configure-runtime.inc
meta/recipes-devtools/gcc/gcc-csl-arm-2008q1.inc
meta/recipes-devtools/dpkg/dpkg.inc
meta/recipes-devtools/cmake/cmake.inc
meta/recipes-devtools/apt/apt-package.inc
meta/recipes-devtools/apt/apt-native.inc
meta/recipes-devtools/apt/apt.inc
meta/recipes-devtools/make/make.inc
meta/recipes-devtools/patch/patch.inc
meta/recipes-devtools/pkgconfig/pkgconfig.inc
meta/recipes-devtools/yaffs2/yaffs2-utils.inc
meta/recipes-devtools/e2fsprogs/e2fsprogs.inc
meta/recipes-devtools/rsync/rsync.inc
meta/recipes-devtools/update-alternatives/update-alternatives-dpkg.inc
meta/recipes-devtools/intltool/intltool.inc
meta/recipes-devtools/autoconf/autoconf.inc
meta/recipes-devtools/flex/flex.inc
meta/recipes-devtools/qemu/qemu.inc
meta/recipes-devtools/shasum/shasum.inc
meta/recipes-devtools/perl/perl-rprovides.inc
meta/recipes-devtools/perl/perl-rdepends_5.8.8.inc
meta/recipes-devtools/git/git.inc
meta/recipes-devtools/binutils/binutils-cross.inc
meta/recipes-devtools/binutils/binutils.inc
meta/recipes-devtools/binutils/binutils-cross-canadian.inc
meta/recipes-devtools/genext2fs/genext2fs.inc
meta/recipes-devtools/gdb/gdb-cross.inc
meta/recipes-devtools/gdb/gdb.inc
meta/recipes-devtools/gdb/gdb-common.inc
meta/recipes-devtools/libtool/libtool.inc
meta/recipes-devtools/python/python.inc
meta/recipes-devtools/python/python-2.6-manifest.inc
meta/recipes-devtools/python/fix-path.inc


Gary Thomas
 

On 11/19/2010 01:44 AM, Frans Meulenbroeks wrote:
Dear all,

Peeking at flex I was wondering whether we should try to avoid using
.inc files in recipes especially if there is only one recipe.

flex has:
frans@frans-desktop:~/yocto/poky-laverne-4.0$ ls meta/recipes-devtools/flex
flex_2.5.35.bb flex.inc

Here the inc file could be merged into the bb file.
This has the advantage of having only a single file, so it is slightly
easier if you want to read or maintain the recipe.

For recipes with multiple versions (e.g. tar) it might be useful to
have inc files. It is really a tradeoff between easy access/reading
and maintainability here.

(and I think for some packages (e.g. gcc) the inc file is actually very useful!)
The fact that there is only one recipe using a particular .inc is (I believe)
a Poky/Yocto design practice. Once a given recipe is known to work and cause
no other dependencies or regressions, older versions are purged. This is how
Poky can build a very useful embedded system with only ~1000 recipes, whereas
OE has terrible bloat (IMO) of nearly 8000!

The practice of using a well-crafted .inc file should make it easier to keep
up with the upstream changes. Often, moving to a new version is as simple as
creating a new recipe with the appropriate PN and you're done. Very little
duplication of effort, code or rules.

--
------------------------------------------------------------
Gary Thomas | Consulting for the
MLB Associates | Embedded world
------------------------------------------------------------


Tian, Kevin <kevin.tian@...>
 

From: Frans Meulenbroeks
Sent: Friday, November 19, 2010 4:45 PM

Dear all,

Peeking at flex I was wondering whether we should try to avoid using
.inc files in recipes especially if there is only one recipe.

flex has:
frans@frans-desktop:~/yocto/poky-laverne-4.0$ ls meta/recipes-devtools/flex
flex_2.5.35.bb flex.inc
I think most .inc come from historical reason when the 1st poky repo is
created from OE side. After that Poky chooses to maintain only one version
which results in the fact that some .inc exists for one recipe


Here the inc file could be merged into the bb file.
This has the advantage of having only a single file, so it is slightly
easier if you want to read or maintain the recipe.
One advantage of not doing so is to retrieve change history in git easily.
Version change on .bb is a rename which in git is simply a remove and
create, while with .inc you can easily track history. This also reduces the
commit size.


For recipes with multiple versions (e.g. tar) it might be useful to
have inc files. It is really a tradeoff between easy access/reading
and maintainability here.
There's one case we actually suggest not using .inc for multiple versions:
both GPLv2 and GPLv3 exist for one package. That way we can avoid potential
contamination as much as possible.


(and I think for some packages (e.g. gcc) the inc file is actually very useful!)

Frans

PS: laverne seems to have 255 inc files:
frans@frans-desktop:~/yocto/poky-laverne-4.0$ find meta* | grep \.inc\$
meta/recipes-core/glib-2.0/glib-2.0.inc
meta/recipes-core/glib-2.0/glib.inc
meta/recipes-core/udev/udev.inc
meta/recipes-core/udev/udev-new.inc
meta/recipes-core/glibc/glibc.inc
meta/recipes-core/glibc/glibc-package.inc
meta/recipes-core/glibc/glibc-initial.inc
meta/recipes-core/glibc/glibc-stage.inc
meta/recipes-core/busybox/busybox.inc
meta/recipes-core/readline/readline.inc
meta/recipes-core/dbus/dbus-glib.inc
meta/recipes-core/dbus/dbus.inc
meta/recipes-core/uclibc/uclibc.inc
meta/recipes-core/ncurses/ncurses.inc
meta/recipes-core/dropbear/dropbear.inc
meta/recipes-core/eglibc/eglibc-package.inc
meta/recipes-core/eglibc/eglibc.inc
meta/recipes-core/eglibc/eglibc-initial.inc
meta/recipes-core/expat/expat.inc
meta/recipes-core/images/poky-image-live.inc
meta/recipes-core/images/poky-image-directdisk.inc
meta/recipes-core/util-linux/util-linux.inc
meta/recipes-core/libxml/libxml2.inc
meta/recipes-bsp/pcmciautils/pcmciautils.inc
meta/recipes-bsp/uboot/u-boot.inc
meta/recipes-bsp/hostap/hostap-utils.inc
meta/recipes-bsp/acpid/acpid.inc
meta/recipes-bsp/x-load/x-load.inc
meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato.inc
meta/recipes-sato/gtk-engines/gtk-sato-engine.inc
meta/recipes-sato/sato-icon-theme/sato-icon-theme.inc
meta/recipes-sato/pimlico/dates.inc
meta/recipes-sato/pimlico/contacts.inc
meta/recipes-sato/pimlico/tasks.inc
meta/recipes-sato/claws-mail/claws-mail.inc
meta/classes/ccache.inc
meta/recipes-multimedia/gstreamer/gst-fluendo.inc
meta/recipes-multimedia/gstreamer/gst-plugins.inc
meta/recipes-multimedia/alsa/alsa-fpu.inc
meta/recipes-extended/cpio/cpio_v2.inc
meta/recipes-extended/byacc/byacc.inc
meta/recipes-extended/findutils/findutils.inc
meta/recipes-extended/zip/zip.inc
meta/recipes-extended/augeas/augeas.inc
meta/recipes-extended/sysstat/sysstat.inc
meta/recipes-extended/psmisc/psmisc.inc
meta/recipes-extended/shadow/shadow.inc
meta/recipes-extended/sudo/sudo.inc
meta/recipes-extended/procps/procps.inc
meta/recipes-extended/tar/tar.inc
meta/recipes-extended/sysklogd/sysklogd.inc
meta/recipes-extended/time/time.inc
meta/recipes-extended/bash/bash.inc
meta/recipes-extended/gzip/gzip.inc
meta/recipes-extended/gperf/gperf.inc
meta/recipes-tbd/pulseaudio/pulseaudio.inc
meta/recipes-tbd/poppler/poppler.inc
meta/recipes-tbd/poppler/poppler-fpu.inc
meta/conf/machine/include/tune-c3.inc
meta/conf/machine/include/tune-sh3.inc
meta/conf/machine/include/tune-ppce500.inc
meta/conf/machine/include/tune-cortexr4.inc
meta/conf/machine/include/tune-strongarm1100.inc
meta/conf/machine/include/zaurus-2.6.inc
meta/conf/machine/include/tune-xscale.inc
meta/conf/machine/include/tune-ppce300c2.inc
meta/conf/machine/include/tune-armv7.inc
meta/conf/machine/include/qemu.inc
meta/conf/machine/include/tune-supersparc.inc
meta/conf/machine/include/tune-cortexa8.inc
meta/conf/machine/include/tune-iwmmxt.inc
meta/conf/machine/include/tune-cortexm1.inc
meta/conf/machine/include/tune-cortexm3.inc
meta/conf/machine/include/tune-ppc603e.inc
meta/conf/machine/include/tune-ep9312.inc
meta/conf/machine/include/tune-arm9tdmi.inc
meta/conf/machine/include/tune-atom.inc
meta/conf/machine/include/tune-thumb.inc
meta/conf/machine/include/zaurus-clamshell.inc
meta/conf/machine/include/tune-arm920t.inc
meta/conf/machine/include/tune-sh4.inc
meta/conf/machine/include/tune-arm926ejs.inc
meta/conf/machine/include/tune-mips32.inc
meta/conf/machine/include/tune-arm1136jf-s.inc
meta/conf/distro/include/poky-uclibc.inc
meta/conf/distro/include/poky-external-csl2007q3.inc
meta/conf/distro/include/preferred-xorg-versions.inc
meta/conf/distro/include/poky-default.inc
meta/conf/distro/include/poky-glibc.inc
meta/conf/distro/include/poky-eglibc.inc
meta/conf/distro/include/as-needed.inc
meta/conf/distro/include/distro_tracking_fields.inc
meta/conf/distro/include/poky-default-revisions.inc
meta/conf/distro/include/poky-external.inc
meta/conf/distro/include/world-broken.inc
meta/conf/distro/include/poky-eabi-csl2005q3-2.inc
meta/conf/distro/include/poky-oabi.inc
meta/conf/distro/include/poky-fixed-revisions.inc
meta/conf/distro/include/poky-external-oabi.inc
meta/conf/distro/include/poky-floating-revisions.inc
meta/conf/distro/include/poky-external-default.inc
meta/conf/distro/include/poky-external-csl2008q3.inc
meta/conf/distro/include/poky-external-csl2006q3.inc
meta/recipes-gnome/gnome/gnome-doc-utils.inc
meta/recipes-gnome/gnome/gnome-desktop.inc
meta/recipes-gnome/abiword/abiword.inc
meta/recipes-gnome/abiword/abiword-2.5.inc
meta/recipes-gnome/gtk+/gtk+.inc
meta/recipes-gnome/tasks/task-sdk-gmae.inc
meta/recipes-kernel/fuse/fuse.inc
meta/recipes-kernel/dtc/dtc_git.inc
meta/recipes-kernel/dtc/dtc.inc
meta/recipes-kernel/dtc/dtc-native.inc
meta/recipes-kernel/module-init-tools/module-init-tools.inc
meta/recipes-kernel/oprofile/oprofileui.inc
meta/recipes-kernel/oprofile/oprofileui-svn.inc
meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc
meta/recipes-kernel/linux/linux.inc
meta/recipes-kernel/linux/linux-zylonite.inc
meta/recipes-kernel/linux/linux-netbook.inc
meta/recipes-kernel/linux/linux-mx31.inc
meta/recipes-kernel/linux/linux-omap.inc
meta/recipes-kernel/linux/linux-simtec.inc
meta/recipes-kernel/linux/linux-omap2.inc
meta/recipes-kernel/linux/linux-rp.inc
meta/recipes-kernel/kexec/kexec-tools.inc
meta/recipes-connectivity/wpa-supplicant/wpa-supplicant-0.6.inc
meta/recipes-connectivity/wpa-supplicant/wpa-supplicant-0.7.inc
meta/recipes-connectivity/opensync/libopensync-plugin_0.36.inc
meta/recipes-connectivity/gypsy/gypsy.inc
meta/recipes-connectivity/dhcp/dhcp3.inc
meta/recipes-connectivity/dhcp/dhcp4.inc
meta/recipes-connectivity/libpcap/libpcap.inc
meta/recipes-connectivity/avahi/avahi.inc
meta/recipes-connectivity/ofono/ofono.inc
meta/recipes-connectivity/portmap/portmap.inc
meta/recipes-connectivity/openssl/openssl.inc
meta/recipes-connectivity/gsm/gsmd.inc
meta/recipes-connectivity/connman/connman.inc
meta/recipes-connectivity/iproute2/iproute2.inc
meta/recipes-support/mpfr/mpfr.inc
meta/recipes-support/vte/vte.inc
meta/recipes-support/gmp/gmp.inc
meta/recipes-support/hal/hal-info.inc
meta/recipes-support/hal/hal.inc
meta/recipes-support/shared-mime-info/shared-mime-info.inc
meta/recipes-support/boost/boost-36.inc
meta/recipes-support/boost/boost-jam-native.inc
meta/recipes-support/libmpc/libmpc.inc
meta/recipes-support/sqlite/sqlite3.inc
meta/recipes-support/libcap/libcap.inc
meta/recipes-support/atk/atk.inc
meta/recipes-support/libgcrypt/libgcrypt.inc
meta/recipes-support/attr/attr.inc
meta/recipes-support/attr/acl.inc
meta/recipes-support/attr/ea-acl.inc
meta/recipes-support/gnutls/gnutls.inc
meta/recipes-support/icu/icu-3.6.inc
meta/recipes-qt/qt4/qt-4.6.3.inc
meta/recipes-qt/qt4/qt4.inc
meta/recipes-qt/qt4/qt4-tools-native.inc
meta/recipes-qt/qt4/qt4-x11-free.inc
meta/recipes-graphics/pango/pango.inc
meta/recipes-graphics/cairo/cairo-fpu.inc
meta/recipes-graphics/cairo/cairo.inc
meta/recipes-graphics/xorg-proto/xorg-proto-common.inc
meta/recipes-graphics/xorg-lib/xorg-lib-common.inc
meta/recipes-graphics/xorg-lib/libx11.inc
meta/recipes-graphics/xorg-lib/libx11_git.inc
meta/recipes-graphics/xorg-util/xorg-util-common.inc
meta/recipes-graphics/xorg-font/xorg-font-common.inc
meta/recipes-graphics/libmatchbox/libmatchbox.inc
meta/recipes-graphics/mutter/mutter.inc
meta/recipes-graphics/drm/libdrm.inc
meta/recipes-graphics/xorg-driver/xf86-input-common.inc
meta/recipes-graphics/xorg-driver/xf86-driver-common.inc
meta/recipes-graphics/xorg-driver/xf86-video-common.inc
meta/recipes-graphics/xorg-xserver/xserver-xf86-lite.inc
meta/recipes-graphics/xorg-xserver/xserver-xf86-common.inc
meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite.inc
meta/recipes-graphics/xorg-xserver/xserver-kdrive.inc
meta/recipes-graphics/xcb/libxcb.inc
meta/recipes-graphics/xcb/xcb-proto.inc
meta/recipes-graphics/xcb/xcb-util.inc
meta/recipes-graphics/clutter/clutter-gst.inc
meta/recipes-graphics/clutter/clutter-gtk.inc
meta/recipes-graphics/clutter/aaina.inc
meta/recipes-graphics/clutter/clutter.inc
meta/recipes-graphics/clutter/clutter-package.inc
meta/recipes-graphics/clutter/clutter-fpu.inc
meta/recipes-graphics/clutter/table.inc
meta/recipes-graphics/clutter/clutter-cairo.inc
meta/recipes-graphics/clutter/clutter-box2d.inc
meta/recipes-graphics/clutter/tidy.inc
meta/recipes-graphics/mesa/mesa-common.inc
meta/recipes-graphics/xorg-app/xorg-app-common.inc
meta/recipes-devtools/quilt/quilt.inc
meta/recipes-devtools/quilt/quilt-native.inc
meta/recipes-devtools/exmap-console/exmap-console.inc
meta/recipes-devtools/opkg/opkg.inc
meta/recipes-devtools/automake/automake.inc
meta/recipes-devtools/gcc/gcc-configure-sdk.inc
meta/recipes-devtools/gcc/gcc-package-sdk.inc
meta/recipes-devtools/gcc/gcc-cross-intermediate.inc
meta/recipes-devtools/gcc/gcc-configure-target.inc
meta/recipes-devtools/gcc/gcc-cross4.inc
meta/recipes-devtools/gcc/gcc-cross-initial.inc
meta/recipes-devtools/gcc/gcc-crosssdk.inc
meta/recipes-devtools/gcc/gcc-package-target.inc
meta/recipes-devtools/gcc/gcc-package-runtime.inc
meta/recipes-devtools/gcc/gcc-4.5.0.inc
meta/recipes-devtools/gcc/gcc-4.3.3.inc
meta/recipes-devtools/gcc/gcc-common.inc
meta/recipes-devtools/gcc/gcc-cross.inc
meta/recipes-devtools/gcc/gcc-cross-kernel.inc
meta/recipes-devtools/gcc/gcc-cross-canadian.inc
meta/recipes-devtools/gcc/gcc-configure-common.inc
meta/recipes-devtools/gcc/gcc-crosssdk-intermediate.inc
meta/recipes-devtools/gcc/gcc-csl-arm-2005q3.inc
meta/recipes-devtools/gcc/gcc-configure-cross.inc
meta/recipes-devtools/gcc/gcc-crosssdk-initial.inc
meta/recipes-devtools/gcc/gcc-package-cross.inc
meta/recipes-devtools/gcc/gcc-configure-runtime.inc
meta/recipes-devtools/gcc/gcc-csl-arm-2008q1.inc
meta/recipes-devtools/dpkg/dpkg.inc
meta/recipes-devtools/cmake/cmake.inc
meta/recipes-devtools/apt/apt-package.inc
meta/recipes-devtools/apt/apt-native.inc
meta/recipes-devtools/apt/apt.inc
meta/recipes-devtools/make/make.inc
meta/recipes-devtools/patch/patch.inc
meta/recipes-devtools/pkgconfig/pkgconfig.inc
meta/recipes-devtools/yaffs2/yaffs2-utils.inc
meta/recipes-devtools/e2fsprogs/e2fsprogs.inc
meta/recipes-devtools/rsync/rsync.inc
meta/recipes-devtools/update-alternatives/update-alternatives-dpkg.inc
meta/recipes-devtools/intltool/intltool.inc
meta/recipes-devtools/autoconf/autoconf.inc
meta/recipes-devtools/flex/flex.inc
meta/recipes-devtools/qemu/qemu.inc
meta/recipes-devtools/shasum/shasum.inc
meta/recipes-devtools/perl/perl-rprovides.inc
meta/recipes-devtools/perl/perl-rdepends_5.8.8.inc
meta/recipes-devtools/git/git.inc
meta/recipes-devtools/binutils/binutils-cross.inc
meta/recipes-devtools/binutils/binutils.inc
meta/recipes-devtools/binutils/binutils-cross-canadian.inc
meta/recipes-devtools/genext2fs/genext2fs.inc
meta/recipes-devtools/gdb/gdb-cross.inc
meta/recipes-devtools/gdb/gdb.inc
meta/recipes-devtools/gdb/gdb-common.inc
meta/recipes-devtools/libtool/libtool.inc
meta/recipes-devtools/python/python.inc
meta/recipes-devtools/python/python-2.6-manifest.inc
meta/recipes-devtools/python/fix-path.inc
_______________________________________________
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Frans Meulenbroeks <fransmeulenbroeks@...>
 

2010/11/19 Gary Thomas <gary@mlbassoc.com>:


The fact that there is only one recipe using a particular .inc is (I
believe)
a Poky/Yocto design practice.  Once a given recipe is known to work and
cause
no other dependencies or regressions, older versions are purged.  This is
how
Poky can build a very useful embedded system with only ~1000 recipes,
whereas
OE has terrible bloat (IMO) of nearly 8000!
I agree that the purging is good. The large number of recipes for the
same package makes things very hard to maintain.
Also most users will not understand why there are multiple versions,
what the difference is between them, or which one to pick.


The practice of using a well-crafted .inc file should make it easier to keep
up with the upstream changes.  Often, moving to a new version is as simple
as
creating a new recipe with the appropriate PN and you're done.  Very little
duplication of effort, code or rules.
I don't think this depends on the inc file.

If you have a package x_0.bb with a well crafted x.inc file then
moving to 1 is just a cp (or mv or git mv) of x_0.bb to x_1.bb.
However if the package has no inc file but has all the stuff in the
.bb file moving to a new version is also just a cp of x_0.bb to
x_1.bb.
So effort wise this does not make a difference!

And yes you might see this as duplication but then again if x_0.bb is
going to be removed after x_1 is considered to be OK, this does not
hurt either.

Main advantage of .inc files is that (if well done) it reduces the
maintenance effort in case there are multiple versions.

Thinking of it: if yocto prefers .inc files it seems good to come up
with some guidelines what goes into a .inc file and what goes into the
.bb file.
In OE I've seen that people do stuff things like HOMEPAGE, DESCRIPTION
and LICENSE in the .inc file, in some cases even going to far that the
.bb file is only a oneliner including the .inc file

Frans


Frans Meulenbroeks <fransmeulenbroeks@...>
 

2010/11/19 Tian, Kevin <kevin.tian@intel.com>:
From: Frans Meulenbroeks
Sent: Friday, November 19, 2010 4:45 PM

Dear all,

Peeking at flex I was wondering whether we should try to avoid using
.inc files in recipes especially if there is only one recipe.

flex has:
frans@frans-desktop:~/yocto/poky-laverne-4.0$ ls meta/recipes-devtools/flex
flex_2.5.35.bb flex.inc
I think most .inc come from historical reason when the 1st poky repo is
created from OE side. After that Poky chooses to maintain only one version
which results in the fact that some .inc exists for one recipe
Guess so.


Here the inc file could be merged into the bb file.
This has the advantage of having only a single file, so it is slightly
easier if you want to read or maintain the recipe.
One advantage of not doing so is to retrieve change history in git easily.
Version change on .bb is a rename which in git is simply a remove and
create, while with .inc you can easily track history. This also reduces the
commit size.
If I am correct git mv does preserve history although the name change
makes it a little bit more difficult to track them.

Wrt commit size: I agree that the commit size is bigger.
If you want to minimize this you should maximize what goes into the inc.
Personally when it comes to choosing between readability, cleanness
etc and commit size, I go for the former.


For recipes with multiple versions (e.g. tar) it might be useful to
have inc files. It is really a tradeoff between easy access/reading
and maintainability here.
There's one case we actually suggest not using .inc for multiple versions:
both GPLv2 and GPLv3 exist for one package. That way we can avoid potential
contamination as much as possible.
If you want to avoid contamination as much as possible I would suggest
creating two different folders. They are two different beasts that you
want to maintain separately.

The same also holds if you want to keep two versions because they are
e.g. functionwise very different.
Sometimes this is already done (at least in OE, there we have e.g
libsigc++-1.2 and libsigc++-2.0 and apache and apache2 directories,
also sometimes there are differently named recipes (different PN) in
the same folder, e.g. bluez and bluez4)

Frans


Tian, Kevin <kevin.tian@...>
 

From: Frans Meulenbroeks [mailto:fransmeulenbroeks@gmail.com]
Sent: Friday, November 19, 2010 5:43 PM



Here the inc file could be merged into the bb file.
This has the advantage of having only a single file, so it is slightly
easier if you want to read or maintain the recipe.
One advantage of not doing so is to retrieve change history in git easily.
Version change on .bb is a rename which in git is simply a remove and
create, while with .inc you can easily track history. This also reduces the
commit size.
If I am correct git mv does preserve history although the name change
makes it a little bit more difficult to track them.
I'm not sure how that works consistently. Sometimes the rename is kept
while most times it doesn't happen to me. :-(


Wrt commit size: I agree that the commit size is bigger.
If you want to minimize this you should maximize what goes into the inc.
Personally when it comes to choosing between readability, cleanness
etc and commit size, I go for the former.
I'm neutral here actually. :-) But I agree with you that we should document
such guideline on the wiki after it's finalized.



For recipes with multiple versions (e.g. tar) it might be useful to
have inc files. It is really a tradeoff between easy access/reading
and maintainability here.
There's one case we actually suggest not using .inc for multiple versions:
both GPLv2 and GPLv3 exist for one package. That way we can avoid potential
contamination as much as possible.
If you want to avoid contamination as much as possible I would suggest
creating two different folders. They are two different beasts that you
want to maintain separately.

The same also holds if you want to keep two versions because they are
e.g. functionwise very different.
Sometimes this is already done (at least in OE, there we have e.g
libsigc++-1.2 and libsigc++-2.0 and apache and apache2 directories,
also sometimes there are differently named recipes (different PN) in
the same folder, e.g. bluez and bluez4)
Perhaps that's the better approach.

Thanks
Kevin


Richard Purdie <rpurdie@...>
 

On Fri, 2010-11-19 at 17:47 +0800, Tian, Kevin wrote:
From: Frans Meulenbroeks [mailto:fransmeulenbroeks@gmail.com]
Sent: Friday, November 19, 2010 5:43 PM



Here the inc file could be merged into the bb file.
This has the advantage of having only a single file, so it is slightly
easier if you want to read or maintain the recipe.
One advantage of not doing so is to retrieve change history in git easily.
Version change on .bb is a rename which in git is simply a remove and
create, while with .inc you can easily track history. This also reduces the
commit size.
If I am correct git mv does preserve history although the name change
makes it a little bit more difficult to track them.
I'm not sure how that works consistently. Sometimes the rename is kept
while most times it doesn't happen to me. :-(
Git does not track renames. Some of its tools can however detect renames
which is subtly different. See "git diff -M" which detects renames for
example.

Cheers,

Richard


Richard Purdie <rpurdie@...>
 

On Fri, 2010-11-19 at 10:42 +0100, Frans Meulenbroeks wrote:
2010/11/19 Tian, Kevin <kevin.tian@intel.com>:
From: Frans Meulenbroeks
Sent: Friday, November 19, 2010 4:45 PM

Dear all,

Peeking at flex I was wondering whether we should try to avoid using
.inc files in recipes especially if there is only one recipe.

flex has:
frans@frans-desktop:~/yocto/poky-laverne-4.0$ ls meta/recipes-devtools/flex
flex_2.5.35.bb flex.inc
I think most .inc come from historical reason when the 1st poky repo is
created from OE side. After that Poky chooses to maintain only one version
which results in the fact that some .inc exists for one recipe
Guess so.


Here the inc file could be merged into the bb file.
This has the advantage of having only a single file, so it is slightly
easier if you want to read or maintain the recipe.
One advantage of not doing so is to retrieve change history in git easily.
Version change on .bb is a rename which in git is simply a remove and
create, while with .inc you can easily track history. This also reduces the
commit size.
If I am correct git mv does preserve history although the name change
makes it a little bit more difficult to track them.
git mv does not preserve history. Some of git's tools can detect renames
though (e.g. git diff -M).

Wrt commit size: I agree that the commit size is bigger.
If you want to minimize this you should maximize what goes into the inc.
Personally when it comes to choosing between readability, cleanness
etc and commit size, I go for the former.
The .inc files are kept around as it mirrors what is in OpenEmbedded.
We'll continue to do that until we work out what out relationship is
going to be there. I understand moving to a single .bb file would make
things more logical but it would remove any ability to diff files with
OE easily.

There's one case we actually suggest not using .inc for multiple versions:
both GPLv2 and GPLv3 exist for one package. That way we can avoid potential
contamination as much as possible.
If you want to avoid contamination as much as possible I would suggest
creating two different folders. They are two different beasts that you
want to maintain separately.

The same also holds if you want to keep two versions because they are
e.g. functionwise very different.
Sometimes this is already done (at least in OE, there we have e.g
libsigc++-1.2 and libsigc++-2.0 and apache and apache2 directories,
also sometimes there are differently named recipes (different PN) in
the same folder, e.g. bluez and bluez4)
Having them in the same directory doesn't cause any complications and
using the same names means that creation of a GPLv3 image is much
simpler which is why we didn't rename the recipes.

Cheers,

Richard


Frans Meulenbroeks <fransmeulenbroeks@...>
 

2010/11/19 Richard Purdie <rpurdie@linux.intel.com>:
On Fri, 2010-11-19 at 10:42 +0100, Frans Meulenbroeks wrote:
2010/11/19 Tian, Kevin <kevin.tian@intel.com>:

The same also holds if you want to keep two versions because they are
e.g. functionwise very different.
Sometimes this is already done (at least in OE, there we have e.g
libsigc++-1.2 and libsigc++-2.0 and apache and apache2 directories,
also sometimes there are differently named recipes (different PN) in
the same folder, e.g. bluez and bluez4)
Having them in the same directory doesn't cause any complications and
using the same names means that creation of a GPLv3 image is much
simpler which is why we didn't rename the recipes.
True, but it slightly increases the risk that the v2 recipe gets
accidently removed because someone thinks it is old.
Of course for OE due to the fact that there are a lot of people with
commit rights there

Frans