meta: start to ignore the largefile distro feature
PATCH 1/1 meta: start to ignore the largefile distro feature
The largefile distro feature has been enabled by default in oe-core for a long time and, more recently, also in poky-tiny. Building without the largefile distro feature receives little or no testing. Many packages now enable LFS without exposing a configure option, so there should be very little expectation that disabling the distro feature will result in a distro which globally disables LFS.
Respecting the distro feature adds a maintenance over-head and may be the source of configurations oddities (e.g. dbus-native currently builds with LFS disabled for no clear reason - fixed by this commit).
Ignore the largefile distro feature more widely, as a first step towards deprecating and eventually removing it.
--- meta/recipes-bsp/grub/grub-efi_2.00.bb | 6 +++--- meta/recipes-bsp/grub/grub_2.00.bb | 6 +++--- meta/recipes-bsp/grub/grub_git.bb | 6 +++--- meta/recipes-core/dbus/dbus_1.10.14.bb | 4 ++-- meta/recipes-devtools/cmake/cmake_3.7.2.bb | 2 +- meta/recipes-devtools/dosfstools/dosfstools_2.11.bb | 2 +- meta/recipes-devtools/dosfstools/dosfstools_4.1.bb | 2 +- meta/recipes-devtools/pax-utils/pax-utils_1.2.2.bb | 7 ++++--- meta/recipes-devtools/perl/perl_5.24.1.bb | 13 ------------- meta/recipes-extended/libarchive/libarchive_3.2.2.bb | 7 +++---- meta/recipes-extended/lighttpd/lighttpd_1.4.45.bb | 5 +++-- 11 files changed, 24 insertions(+), 36 deletions(-)
meta/recipes-bsp/grub/grub-efi_2.00.bb +3 -3
@@ -31,9 +31,9 @@ inherit deploy CACHED_CONFIGUREVARS += "ac_cv_path_HELP2MAN=" EXTRA_OECONF = "--with-platform=efi --disable-grub-mkfont \ --enable-efiemu=no --program-prefix='' \ - --enable-liblzma=no --enable-device-mapper=no --enable-libzfs=no" - -EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'largefile', '--enable-largefile', '--disable-largefile', d)}" + --enable-liblzma=no --enable-device-mapper=no --enable-libzfs=no \ + --enable-largefile \ +" # ldm.c:114:7: error: trampoline generated for nested function 'hook' [-Werror=trampolines] # and many other places in the grub code when compiled with some native gcc compilers (specifically, gentoo)
meta/recipes-bsp/grub/grub_2.00.bb +3 -3
@@ -4,9 +4,9 @@ RDEPENDS_${PN} = "diffutils freetype grub-editenv" PR = "r1" EXTRA_OECONF = "--with-platform=pc --disable-grub-mkfont --program-prefix="" \ - --enable-liblzma=no --enable-device-mapper=no --enable-libzfs=no" - -EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'largefile', '--enable-largefile', '--disable-largefile', d)}" + --enable-liblzma=no --enable-device-mapper=no --enable-libzfs=no \ + --enable-largefile \ +" PACKAGES =+ "grub-editenv"
meta/recipes-bsp/grub/grub_git.bb +3 -3
@@ -27,9 +27,9 @@ GRUBPLATFORM_aarch64 = "efi" GRUBPLATFORM ??= "pc" EXTRA_OECONF = "--with-platform=${GRUBPLATFORM} --disable-grub-mkfont --program-prefix="" \ - --enable-liblzma=no --enable-device-mapper=no --enable-libzfs=no" - -EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'largefile', '--enable-largefile', '--disable-largefile', d)}" + --enable-liblzma=no --enable-device-mapper=no --enable-libzfs=no \ + --enable-largefile \ +" do_install_append () { install -d ${D}${sysconfdir}/grub.d
meta/recipes-core/dbus/dbus_1.10.14.bb +2 -2
@@ -95,18 +95,18 @@ EXTRA_OECONF = "--disable-tests \ --disable-xml-docs \ --disable-doxygen-docs \ --disable-libaudit \ + --enable-largefile \ " EXTRA_OECONF_append_class-target = " SYSTEMCTL=${base_bindir}/systemctl" EXTRA_OECONF_append_class-native = " --disable-selinux" -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'largefile systemd x11', d)}" +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd x11', d)}" PACKAGECONFIG_class-native = "" PACKAGECONFIG_class-nativesdk = "" PACKAGECONFIG[systemd] = "--enable-systemd --with-systemdsystemunitdir=${systemd_system_unitdir},--disable-systemd --without-systemdsystemunitdir,systemd" PACKAGECONFIG[x11] = "--with-x --enable-x11-autolaunch,--without-x --disable-x11-autolaunch, virtual/libx11 libsm" -PACKAGECONFIG[largefile] = "--enable-largefile,--disable-largefile,," PACKAGECONFIG[user-session] = "--enable-user-session --with-systemduserunitdir=${systemd_user_unitdir},--disable-user-session" do_install() {
meta/recipes-devtools/cmake/cmake_3.7.2.bb +1 -1
@@ -30,7 +30,7 @@ EXTRA_OECMAKE=" \ -DCMAKE_USE_SYSTEM_LIBRARY_LIBUV=0 \ -DKWSYS_CHAR_IS_SIGNED=1 \ -DBUILD_CursesDialog=0 \ - ${@bb.utils.contains('DISTRO_FEATURES', 'largefile', '-DKWSYS_LFS_WORKS=1', '-DKWSYS_LFS_DISABLE=1', d)} \ + -DKWSYS_LFS_WORKS=1 \ " do_install_append_class-nativesdk() {
meta/recipes-devtools/dosfstools/dosfstools_2.11.bb +1 -1
@@ -24,7 +24,7 @@ SRC_URI = "http://pkgs.fedoraproject.org/repo/pkgs/${BPN}/${BP}.src.tar.gz/407d4 SRC_URI[md5sum] = "407d405ade410f7597d364ab5dc8c9f6" SRC_URI[sha256sum] = "0eac6d12388b3d9ed78684529c1b0d9346fa2abbe406c4d4a3eb5a023c98a484" -CFLAGS += "-D_GNU_SOURCE ${@bb.utils.contains('DISTRO_FEATURES', 'largefile', '-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', '', d)}" +CFLAGS += "-D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" EXTRA_OEMAKE = "CC='${CC}' CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}'"
meta/recipes-devtools/dosfstools/dosfstools_4.1.bb +1 -1
@@ -20,6 +20,6 @@ inherit autotools pkgconfig EXTRA_OECONF = "--without-udev --enable-compat-symlinks" -CFLAGS += "-D_GNU_SOURCE ${@bb.utils.contains('DISTRO_FEATURES', 'largefile', '-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', '', d)}" +CFLAGS += "-D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" BBCLASSEXTEND = "native"
meta/recipes-devtools/pax-utils/pax-utils_1.2.2.bb +4 -3
@@ -29,9 +29,10 @@ BBCLASSEXTEND = "native" inherit autotools pkgconfig -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'largefile', d)} \ -" +PACKAGECONFIG ??= "" + PACKAGECONFIG[libcap] = "--with-caps, --without-caps, libcap" PACKAGECONFIG[libseccomp] = "--with-seccomp, --without-seccomp, libseccomp" -PACKAGECONFIG[largefile] = "--enable-largefile,--disable-largefile,," PACKAGECONFIG[pyelftools] = "--with-python, --without-python,, pyelftools" + +EXTRA_OECONF += "--enable-largefile"
meta/recipes-devtools/perl/perl_5.24.1.bb +0 -13
@@ -99,17 +99,6 @@ LDFLAGS_append = " -fstack-protector" # We're almost Debian, aren't we? CFLAGS += "-DDEBIAN" -do_nolargefile() { - sed -i -e "s,\(uselargefiles=\)'define',\1'undef',g" \ - -e "s,\(d_readdir64_r=\)'define',\1'undef',g" \ - -e "s,\(readdir64_r_proto=\)'\w+',\1'0',g" \ - -e "/ccflags_uselargefiles/d" \ - -e "s/-Duselargefiles//" \ - -e "s/-D_FILE_OFFSET_BITS=64//" \ - -e "s/-D_LARGEFILE_SOURCE//" \ - ${S}/Cross/config.sh-${TARGET_ARCH}-${TARGET_OS} -} - do_configure() { # Make hostperl in build directory be the native perl ln -sf ${HOSTPERL} hostperl
@@ -182,8 +171,6 @@ do_configure() { config.sh-${TARGET_ARCH}-${TARGET_OS} fi - ${@bb.utils.contains('DISTRO_FEATURES', 'largefile', '', 'do_nolargefile', d)} - # Update some paths in the configuration sed -i -e 's,@ARCH@-thread-multi,,g' \ -e 's,@ARCH@,${TARGET_ARCH}-${TARGET_OS},g' \
meta/recipes-extended/libarchive/libarchive_3.2.2.bb +3 -4
@@ -11,17 +11,14 @@ PACKAGECONFIG ?= "zlib bz2" PACKAGECONFIG_append_class-target = "\ libxml2 \ - ${@bb.utils.filter('DISTRO_FEATURES', 'acl largefile xattr', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'acl xattr', d)} \ " -PACKAGECONFIG_append_class-nativesdk = " largefile" - DEPENDS_BZIP2 = "bzip2-replacement-native" DEPENDS_BZIP2_class-target = "bzip2" PACKAGECONFIG[acl] = "--enable-acl,--disable-acl,acl," PACKAGECONFIG[xattr] = "--enable-xattr,--disable-xattr,attr," -PACKAGECONFIG[largefile] = "--enable-largefile,--disable-largefile,," PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib," PACKAGECONFIG[bz2] = "--with-bz2lib,--without-bz2lib,${DEPENDS_BZIP2}," PACKAGECONFIG[xz] = "--with-lzmadec --with-lzma,--without-lzmadec --without-lzma,xz,"
@@ -32,6 +29,8 @@ PACKAGECONFIG[lzo] = "--with-lzo2,--without-lzo2,lzo," PACKAGECONFIG[nettle] = "--with-nettle,--without-nettle,nettle," PACKAGECONFIG[lz4] = "--with-lz4,--without-lz4,lz4," +EXTRA_OECONF += "--enable-largefile" + SRC_URI = "http://libarchive.org/downloads/libarchive-${PV}.tar.gz \ file://non-recursive-extract-and-list.patch \ file://0001-archive_write_disk_posix.c-make-_fsobj-functions-mor.patch \
meta/recipes-extended/lighttpd/lighttpd_1.4.45.bb +3 -2
@@ -25,10 +25,9 @@ SRC_URI[sha256sum] = "1c97225deea33eefba6d4158c2cef27913d47553263516bbe9d2e2760f PACKAGECONFIG ??= "openssl pcre zlib \ ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'largefile', 'lfs', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)} \ " -PACKAGECONFIG[lfs] = "--enable-lfs,--disable-lfs" + PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6" PACKAGECONFIG[mmap] = "--enable-mmap,--disable-mmap" PACKAGECONFIG[libev] = "--with-libev,--without-libev,libev"
@@ -48,6 +47,8 @@ PACKAGECONFIG[gdbm] = "--with-gdbm,--without-gdbm,gdbm" PACKAGECONFIG[memcache] = "--with-memcached,--without-memcached,libmemcached" PACKAGECONFIG[lua] = "--with-lua,--without-lua,lua5.1" +EXTRA_OECONF += "--enable-lfs" + inherit autotools pkgconfig update-rc.d gettext systemd INITSCRIPT_NAME = "lighttpd"
Signature · 1 line
1.9.1
CCing openembedded-architecture to open the field for comments.
Quoted 7 lines · Andre McCurdy
The largefile distro feature has been enabled by default in oe-core for a long time and, more recently, also in poky-tiny. Building without the largefile distro feature receives little or no testing. Many packages now enable LFS without exposing a configure option, so there should be very little expectation that disabling the distro feature will result in a distro which globally disables LFS.
So I've had a bug for this for some time but have never got around to it.
If we're going to assert "LFS by default" do we want a sanity check to verify it was used?
Do we want to put -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 in the default CFLAGS?
I'm not aware of any good reason to not use LFS, but now is the time for anyone else to speak up if you have a good reason to keep it as an option!
Ross
Quoted 1 line · Ross
CCing openembedded-architecture to open the field for comments.
At this point, I'm not sure there is any reason to NOT using largefile system wide. It's a common enough feature, and even 'small' devices (with sdcard slots) can run into large file problems now.
Quoted 29 lines
On 7 March 2017 at 04:58, Andre McCurdy <[email protected] <mailto:[email protected]>> wrote:
The largefile distro feature has been enabled by default in oe-core for a long time and, more recently, also in poky-tiny. Building without the largefile distro feature receives little or no testing. Many packages now enable LFS without exposing a configure option, so there should be very little expectation that disabling the distro feature will result in a distro which globally disables LFS.
So I've had a bug for this for some time but have never got around to it.
If we're going to assert "LFS by default" do we want a sanity check to verify it was used?
Do we want to put -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 in the default CFLAGS?
I'm not aware of any good reason to not use LFS, but now is the time for anyone else to speak up if you have a good reason to keep it as an option!
Ross
_______________________________________________
Openembedded-architecture mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-architecture
Quoted 5 lines · Mark Hatle
At this point, I'm not sure there is any reason to NOT using largefile system
wide. It's a common enough feature, and even 'small' devices (with sdcard slots) can run into large file problems now.
My thoughts exactly, fwiw.
Ross
Quoted 4 lines · Ross
On 7 March 2017 at 14:43, Mark Hatle <[email protected] <mailto:[email protected]>> wrote:
Quoted 8 lines
At this point, I'm not sure there is any reason to NOT using largefile system
wide. It's a common enough feature, and even 'small' devices (with sdcard
slots) can run into large file problems now.My thoughts exactly, fwiw.
FULLACK
Signature · 19 lines
Josef Holzmayr Software Developer Embedded Systems Tel: +49 8444 9204-48 Fax: +49 8444 9204-50 R-S-I Elektrotechnik GmbH & Co. KG Woelkestrasse 11 D-85301 Schweitenkirchen www.rsi-elektrotechnik.de ——————————————— Amtsgericht Ingolstadt – GmbH: HRB 191328 – KG: HRA 170393 Geschäftsführer: Dr.-Ing. Michael Sorg, Dipl.-Ing. Franz Sorg Ust-IdNr: DE 128592548 _____________________________________________________________ Amtsgericht Ingolstadt - GmbH: HRB 191328 - KG: HRA 170363 Geschäftsführer: Dr.-Ing. Michael Sorg, Dipl.-Ing. Franz Sorg USt-IdNr.: DE 128592548
Quoted 8 lines · Mark Hatle
Quoted 2 lines · Ross
CCing openembedded-architecture to open the field for comments.
At this point, I'm not sure there is any reason to NOT using largefile system
wide. It's a common enough feature, and even 'small' devices (with sdcard
slots) can run into large file problems now.
Agreed. Where we can we need to reduce our test matrix so I think dropping non-largefile support is a good move.
Cheers,
Richard
Quoted 3 lines · Ross
If we're going to assert "LFS by default" do we want a sanity check to verify it was used?
So I don't forget, Debian looks for linkage to the following symbols in 32-bit binaries and warns if they are used:
https://github.com/Debian/lintian/blob/master/data/binaries/lfs-symbols
Ross
Quoted 12 lines · Ross
CCing openembedded-architecture to open the field for comments.
Quoted 7 lines · Andre McCurdy
The largefile distro feature has been enabled by default in oe-core for a long time and, more recently, also in poky-tiny. Building without the largefile distro feature receives little or no testing. Many packages now enable LFS without exposing a configure option, so there should be very little expectation that disabling the distro feature will result in a distro which globally disables LFS.
Quoted 7 lines
So I've had a bug for this for some time but have never got around to it.
If we're going to assert "LFS by default" do we want a sanity check to verify it was used?
Do we want to put -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 in the default CFLAGS?
I think this is fine to assert, however, there might be applications which still want to use --enable/--disable autoconf stuff, and ignore/override the env settings we might pass, so we need to watch
out for those. Otherwise, this seems a step in right direction.
Quoted 3 lines
I'm not aware of any good reason to not use LFS, but now is the time for anyone else to speak up if you have a good reason to keep it as an option!
me neither, we should just make it default settings.
Quoted 7 lines
Ross
_______________________________________________
Openembedded-architecture mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-architecture