[poky] RFC: Undocumented Recipe Variables Script
Darren Hart
dvhart at linux.intel.com
Fri Dec 10 11:10:15 PST 2010
On 12/09/2010 05:53 AM, Richard Purdie wrote:
> On Tue, 2010-12-07 at 17:27 -0800, Darren Hart wrote:
>> After discussing a bit with Richard, we felt seeing a count for each
>> recipe that used a variable along with the doc tag (documentation.conf)
>> would aid in identifying which variables needed documentation. The
>> attached script accomplishes this. The -T argument will limit output to
>> only variables with doc tags - which should make updating the
>> documentation rather trivial.
>>
>> Things like PROVIDES with 50 occurences under meta and an existing doc
>> tag should be prioritized for documentation updates. After that, things
>> like BBCLASSEXTEND with 117 users and no doc-tag should follow.
>>
>> Richard, could you give the output a scan and let me know if there is
>> additional filtering I could add to make the results easier to digest?
>> If they look good to you, can you have a go at identifying a set of
>> variables that should get documentation updates?
>
> Some of whats listed is still documented, e.g. PACKAGES_ or RDEPENDS_.
The trailing _ probably indicates something like PACKAGES_append or
similar, where the character after the _ was not [A-Z_]. I should
probably drop those or allow for [a-z] as well.
> I've done a *very* rough filter over this to highlight the ones I think
> we need to try and document first and some other things I noticed:
>
> We should check if these are in the bitbake manual:
>
> BB_CURRENTTASK 1
> BB_DEFAULT_TASK 4
> BB_HASHCHECK_FUNCTION 1
> BB_HASHFILENAME 1
> BB_MIN_VERSION 1
> BB_RUNTASK 1
> BB_SCHEDULER 1
> BB_TASKHASH 1
> BB_VERSION 1
> BB_WORKERCONTEXT 1
None of the above appear in bitbake/doc/manual/usermanual.xml, but I will
include this file as a -d doc in future runs of the script.
>
> I'd like to know what is setting this as we shouldn't using BROKEN IMO:
> BROKEN 1
meta/recipes-multimedia/alsa/alsa-tools_1.0.20.bb:BROKEN
> Some subset of these should be documented:
> SSTATE_BUILDDIR 1
> SSTATE_DIR 1
> SSTATE_INSTDIR 1
> SSTATE_MANFILEBASE 1
> SSTATE_MANFILEPREFIX 1
> SSTATE_MANIFESTS 1
> SSTATE_MIRRORS 1
> SSTATE_PKG 1
> SSTATE_PKGARCH 1
> SSTATE_PKGNAME 1
> SSTATE_SCAN_CMD 1
> SSTATE_VERSION 1
>
> Something is broken here with a misspelling:
> DESCRIPTON 6
> PARALELL_MAKE_ 1
Patches forthcoming.
>
> These variables are dead iirc and shouldn't be referenced anywhere:
> NATIVE_INSTALL_WORKS 1
> PSTAGING_ACTIVE 1
> PSTAGING_DISABLED 1
Opened BUG http://bugzilla.pokylinux.org/show_bug.cgi?id=582
(And looks like I need to include .inc files in my recipes list too)
> I also wondered about these:
> LIC_CHKSUM_FILES 2
> LIC_FILE_CHKSUM 1
Patches forthcoming
> these are ones I'd like to see documented with a higher priority:
Great, thanks for the review Richard.
Scott, how do you want these tracked? Perhaps you could create a handful of
bugs, one for each block of variables. High use count, already with doc
tags,
BUILD_*, IMAGE_*... something along those lines?
>
> ALLOW_EMPTY 24
> ALTERNATIVE_LINKS 4
> APPEND 2
> BBCLASSEXTEND 117
> BUGTRACKER 114
> BUILD_AR 1
> BUILD_ARCH 4 The name of the building
architecture. E.g. i686.
> BUILD_CC 11
> BUILD_CC_ARCH 2 FIXME
> BUILD_CFLAGS 7
> BUILD_CXX 3
> BUILD_CXXFLAGS 3
> BUILD_LD 1
> BUILD_LDFLAGS 5
> BUILD_OS 3
> BUILD_PREFIX 4 FIXME
> BUILD_RANLIB 1
> BUILD_SYS 13 FIXME
> BUILD_VENDOR 2 FIXME
> CCACHE 6
> CFLAGS_ 10
> CLEANFUNCS 2
> CMDLINE_ 1
> CMDLINE_CONSOLE 1
> COMMERCIAL_AUDIO_PLUGINS 2
> COMMERCIAL_LICENSE 1
> COMMERCIAL_QT 1
> COMMERCIAL_VIDEO_PLUGINS 1
> COMPATIBLE_HOST 17 A regular expression
which matches the HOST_SYS names supported by the package/file. Failure
to match will cause the file to be skipped by the parser.
> CONFFILES 3
> CPPFLAGS 13
> CXXFLAGS 14
> DEBIANNAME_ 2
> DEBIAN_NAMES 6
> DEBIAN_NOAUTONAME_ 3
> DEFAULT_PREFERENCE_ 14
> DEPLOY_DIR 7
> DEPLOY_DIR_DEB 2
> DEPLOY_DIR_IMAGE 13
> DEPLOY_DIR_IPK 3
> DEPLOY_DIR_RPM 2
> DEPLOY_DIR_SRC 1
> DEPLOY_DIR_TAR 1
> DEPLOY_KEEP_PACKAGES 2
> DESCRIPTION_ 8
> EXCLUDE_FROM_SHLIBS 1
> EXCLUDE_FROM_WORLD 10
> EXPORT_FUNCTIONS 24
> EXTRA_AUTORECONF 4
> EXTRA_CFLAGS 1
> EXTRA_CPANFLAGS 2
> EXTRA_DIST 3
> EXTRA_IMAGEDEPENDS 1
> EXTRA_NATIVE_PKGCONFIG_PATH 1
> EXTRA_OECONF_ 12
> EXTRA_OEMAKE_ 2
> EXTRA_OEMAKE_NETGROUP 1
> EXTRA_QMAKEVARS_POST 1
> EXTRA_QMAKEVARS_PRE 1
> EXTRA_RDEPENDS 1
> FAKEROOT 4
> FAKEROOTENV 1
> FILESDIR 11
> FILESEXTRAPATHS 1
> FILESPATH 10
> FILESPATHBASE 1
> FILESPATHPKG 2
> FILES_ 179
> FILE_DIRNAME 11
> FULL_OPTIMIZATION_ 2
> GIT_CONFIG 1
> GIT_CORE_CONFIG 1
> GIT_PROXY_COMMAND 1
> GIT_PROXY_IGNORE 1
> HOST_AR 1
> HOST_ARCH 9 The name of the target
architecture. Normally same as the TARGET_ARCH. @see TARGET_ARCH @group base
> HOST_AR_KERNEL_ARCH 1
> HOST_CC 1
> HOST_CC_ARCH 5 Normally same as the
TARGET_CC_ARCH. @see TARGET_CC_ARCH @group base
> HOST_CC_KERNEL_ARCH 2
> HOST_CFLAGS 1
> HOST_CXX 1
> HOST_CXXFLAGS 1
> HOST_LDFLAGS 1
> HOST_OS 7
> HOST_PREFIX 10 Normally same as the
TARGET_PREFIX. @see TARGET_PREFIX @group base
> HOST_RANLIB 1
> HOST_SYS 21 FIXME
> HOST_VENDOR 6 The name of the vendor.
Normally same as the TARGET_VENDOR. @see TARGET_VENDOR
> IMAGEROOTFS 2
> IMAGETEST 1
> IMAGE_BASENAME 2
> IMAGE_CMD_ 1
> IMAGE_DEPENDS_ 1
> IMAGE_DEVICE_TABLE 1
> IMAGE_DEVICE_TABLES 1
> IMAGE_LINGUAS 3
> IMAGE_LINK_NAME 3
> IMAGE_LOCALES 2
> IMAGE_NAME 5
> IMAGE_OVERHEAD_FACTOR 1
> IMAGE_PKGTYPE 5
> IMAGE_POSTPROCESS_COMMAND 1
> IMAGE_PREPROCESS_COMMAND 2
> IMAGE_ROOTFS 12
> IMAGE_ROOTFS_SIZE 1
> INHIBIT_AUTOTOOLS_DEPS 2
> INHIBIT_AUTO_STAGE 1
> INHIBIT_DEFAULT_DEPS 13
> KERNELDIR 1
> KERNEL_ALT_IMAGETYPE 1
> KERNEL_CC 5
> KERNEL_FEATURES 1
> KERNEL_IMAGE_BASE_NAME 2
> KERNEL_IMAGE_MAXSIZE 1
> KERNEL_IMAGE_SYMLINK_NAME 2
> KERNEL_LD 4
> KERNEL_VERSION 6
> KMACHINE 1
> LAYER_CONF_VERSION 1
> LCONF_VERSION 1
> LDFLAGS 32
> LDFLAGS_ 2
> LEAD_SONAME 12
> LICENCE 5
> LINGUAS_INSTALL 4
> LOG_DIR 3
> MACHINE_ARCH 27
> MACHINE_ESSENTIAL_EXTRA_RDEPENDS 2
> MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS 2
> MACHINE_POSTPROCESS_COMMAND 1
> MIRRORS 1
> MULTIMACH_ARCH 3
> MULTIMACH_HOST_SYS 2
> MULTIMACH_TARGET_SYS 5
> OBJCOPY 2
> OBJDUMP 2
> OVERRIDES 13
> PACKAGES_ 6
> PACKAGES_DYNAMIC 19
> PACKAGE_ARCHS 10
> PACKAGE_INSTALL 4
> PACKAGE_INSTALL_ATTEMPTONLY 4
> PACKAGE_PREPROCESS_FUNCS 4
> PARALLEL_MAKE_ 1
> PATCHRESOLVE 1
> PATH_ 2
> PF 3 Package name - Package
version - Package revision (PN-PV-PR)
> PKG 6
> PKGD 7
> PKGDATA_DIR 4
> PKGDEST 8
> PKGDESTWORK 1
> PKGFN 4
> PKGHIST_DIR 2
> PKG_ 12
> PKG_CONFIG 1
> PKG_CONFIG_DIR 3
> PKG_CONFIG_PATH 3
> PKG_CONFIG_SYSROOT_DIR 5
> PREFERRED_PROVIDER_ 1
> PRIORITY 73 Importance of package,
default values are 'optional' or 'needed'.
> PROVIDES 50 Names for additional
build time dependencies that this package will provide. @group dependencies
> QA_LOGFILE 1
> ROOTFS_PKGMANAGE 5
> ROOTFS_PKGMANAGE_BOOTSTRAP 3
> ROOTFS_POSTINSTALL_COMMAND 2
> ROOTFS_POSTPROCESS_COMMAND 7
> RPM_POSTPROCESS_COMMANDS 1
> RPM_PREPROCESS_COMMANDS 1
> RPROVIDES 9 Names for additional run
time dependencies that this package will provide. This is used to
populate the ipkg:Provides field. @group dependencies
> RRECOMMENDS_ 21
> RREPLACES_ 4
> RSUGGESTS 4
> SDKMACHINE 2
> SDK_ARCH 8
> SDK_CC_ARCH 3
> SDK_DEPLOY 2
> SDK_DIR 2
> SDK_NAME 2
> SDK_OS 4
> SDK_OUTPUT 3
> SDK_PREFIX 3
> SDK_VENDOR 3
> SRCREV_ 1
> SRCREV_FORMAT 2
> SRC_URI_ 43
> STAGING_BINDIR 3
> STAGING_BINDIR_CROSS 11
> STAGING_BINDIR_NATIVE 13
> STAGING_BINDIR_TOOLCHAIN 2
> STAGING_DATADIR 16
> STAGING_DATADIR_NATIVE 3
> STAGING_DIR 13
> STAGING_DIR_HOST 18
> STAGING_DIR_NATIVE 19
> STAGING_DIR_TARGET 18
> STAGING_ETCDIR_NATIVE 3
> STAGING_EXECPREFIXDIR 1
> STAGING_INCDIR 39
> STAGING_INCDIR_NATIVE 6
> STAGING_LIBDIR 42
> STAGING_LIBDIR_NATIVE 9
> STAMP 3 The directory that holds
files to keep track of what was built.
> SYSROOT_DESTDIR 12
> TARGETARCH 1
> TARGETFPU 1
> TARGETOS 1
> TARGET_AR_KERNEL_ARCH 1
> TARGET_CC_ARCH 5 FIXME
> TARGET_CC_ARCH_ 1
> TARGET_CC_KERNEL_ARCH 2
> TARGET_CPPFLAGS 3
> TARGET_LDFLAGS 1
> TARGET_LD_KERNEL_ARCH 2
> TARGET_PREFIX 23 The prefix for the cross
compile toolchain. E.g arm-linux- .
> TARGET_SYS 19 The target system is
composed out of TARGET_ARCH,TARGET_VENDOR and TARGET_OS.
> TARGET_VENDOR 7 FIXME
> TOPDIR 3
> XORG_PN 33
>
>
>
>
>
--
Darren Hart
Yocto Linux Kernel
More information about the poky
mailing list