Replace Smart package manager with DNF package manager
cover Replace Smart package manager with DNF package manager
This patchset replaces the outdated, unsupported Smart package manager with DNF package manager (Fedora's successor to yum). This is not a trivial change and there are many consequences:
- DNF is API incompatible with rpm5; therefore rpm5 is replaced with rpm4.
- There are various non-default features that aren't yet supported or tested:
such as signing packages and repositories, RPM_PREFER_ELF_ARCH and possibly others
- db 6.x is removed from oe-core; db 5.x is replacing it
- Although I did my very best to test this patchset locally,
the whole thing may break down in surprising ways. I would appreaciate all the help you can provide here. The patchset touches many things in many places and has more than the usual share of side effects.
Please see specific commits for further information and explanations. There is also a longer email explaining user-visible changes and rationale behind them in
http://lists.openembedded.org/pipermail/openembedded-architecture/2017-February/000419.html
(note that section 6 in that email is no longer valid.
Changes in version 2 of the patchset:
- addressed review comments received for the first version of the pachset; in particular the controversial pkg_postinst changes are removed (but they'll be back as a separate change). Please check that I didn't forget anything.
- rpm package signing with gpg is now fixed, and should be working
Changes in version 3 of the patchset:
- a massive amount of fixes for issues that were found by Yocto autobuilder testing. Particularly multilib support is now working properly. I believe that from the AB perspective the patchset is ready for merging :)
The following changes since commit d454dc2fc17711d3efe6dbe5aca3c734f0ed158b:
gcc-runtime: Fix QA issue (2017-03-08 11:52:57 +0000)
are available in the git repository at:
git://git.yoctoproject.org/poky-contrib akanavin/dnf-rpm4
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=akanavin/dnf-rpm4
Alexander Kanavin (44):
package.bbclass: fix locations of debugedit and rpmdeps utilities
libsolv: enable rpm support
rpmresolve: remove the recipe
createrepo-c: add a recipe
createrepo: remove the recipe
rpm: add a 4.x recipe
rpm: remove 5.x recipe
python-pygpgme: add a recipe
python-iniparse: add a recipe
python-backports-lzma: add a recipe
librepo: add a recipe
libcomps: add a recipe
libdnf: add a recipe
dnf: add a recipe
python-smartpm: remove the recipe
db: remove the 6.x recipe
package_rpm.bbclass: make architecture-independent .rpm packages
"noarch" instead of "all"
package_manager.py: improve the API for insert_feed_uris() package_rpm.bbclass: correctly map RRECOMMENDS and RSUGGESTS to rpm
tags
nativesdk-packagegroup-sdk-host: replace smartpm with dnf rootfs_rpm.bbclass: migrate image creation to dnf scripts/rpm2cpio.sh: replace 5.x version with 4.x version scripts/oe-setup-rpmrepo: replace createrepo with createrepo_c package_rpm.bbclass: replace createrepo reference with createrepo_c package_rpm.bbclass: no need to specify the magic file location testimage.bbclass: fix runtime test for rpm, port smart tests to dnf package_rpm.bbclass: instruct rpm to not remove the buildroot
directory
selftest: do not perform a full build in test_continue
selftest: update output checks in incremental image test to match what
dnf prints
byacc: remove the recipe
gpg_sign.py: fix signing of rpm files using gpg
oe-selftest: no need to parse gpg output to determine the name of the
signing key
run-postinsts: simplify the logic of whether to install it to images package_rpm.bbclass: add a /bin/sh Provides for nativesdk- packages security_flags.inc: update to reflect smart->dnf transition package_rpm.bbclass: do not set the OS dynamically when building rpms
nspr: do not use shared library symbol resolution with musl package_rpm.bbclass: do not strip multilib prefixes from package
names, do not add multilib prefix to package arch
package.bbclass: don't exclude package groups from runtime mapping
glibc: do the multilib_header magic also for bits/long-double.h
bash: package bashbug separately
db: do the multilib_header processing for db.h
base-files: do not write the current date into /etc/issue and
/etc/issue.net
gpgme: fix python module build and installation
.../recipes-test/images/oe-selftest-image.bb | 2 +- .../recipes-test/images/wic-image-minimal.bb | 2 +- meta/classes/image.bbclass | 2 +- meta/classes/package.bbclass | 7 +- meta/classes/package_rpm.bbclass | 86 +- meta/classes/rootfs_deb.bbclass | 1 - meta/classes/rootfs_ipk.bbclass | 1 - meta/classes/rootfs_rpm.bbclass | 22 +- meta/classes/sstate.bbclass | 2 +- meta/classes/testimage.bbclass | 25 +- meta/conf/distro/include/default-versions.inc | 3 - meta/conf/distro/include/security_flags.inc | 5 +- meta/lib/oe/gpg_sign.py | 7 +- meta/lib/oe/manifest.py | 2 +- meta/lib/oe/package_manager.py | 1223 ++++---------------- meta/lib/oe/rootfs.py | 23 +- meta/lib/oe/sdk.py | 7 +- meta/lib/oeqa/oetest.py | 7 - meta/lib/oeqa/runtime/cases/dnf.py | 111 ++ meta/lib/oeqa/runtime/cases/parselogs.py | 1 + meta/lib/oeqa/runtime/cases/rpm.py | 21 +- meta/lib/oeqa/runtime/cases/smart.py | 196 ---- meta/lib/oeqa/selftest/bbtests.py | 2 +- meta/lib/oeqa/selftest/buildoptions.py | 4 +- meta/lib/oeqa/selftest/signing.py | 16 +- meta/recipes-core/base-files/base-files_3.0.14.bb | 5 +- meta/recipes-core/glibc/glibc-package.inc | 2 +- meta/recipes-core/images/core-image-minimal.bb | 2 +- .../nativesdk-packagegroup-sdk-host.bb | 2 +- ...0001-Correctly-install-the-shared-library.patch | 28 + ...-set-PYTHON_INSTALL_DIR-by-running-python.patch | 27 + .../createrepo-c/createrepo-c_git.bb | 31 + ...Corretly-install-tmpfiles.d-configuration.patch | 21 + ...hardcode-etc-and-systemd-unit-directories.patch | 29 + ...0001-Do-not-prepend-installroot-to-logdir.patch | 31 + .../dnf/dnf/0028-Use-backports.lzma-not-lzma.patch | 30 + ...-set-PYTHON_INSTALL_DIR-by-running-python.patch | 27 + .../dnf/0030-Run-python-scripts-using-env.patch | 48 + meta/recipes-devtools/dnf/dnf_git.bb | 44 + meta/recipes-devtools/dpkg/dpkg.inc | 2 +- ...-set-PYTHON_INSTALL_DIR-by-running-python.patch | 41 + ...2-Set-library-installation-path-correctly.patch | 27 + meta/recipes-devtools/libcomps/libcomps_git.bb | 23 + ...cmake-drop-the-requirement-for-GTKDOC_SCA.patch | 31 + ...ers-for-both-libsolv-and-libsolvext-libdn.patch | 28 + ...-sysroot-path-to-introspection-tools-path.patch | 36 + ...-library-installation-directory-correctly.patch | 29 + ...-variables-with-pkg-config-cmake-s-own-mo.patch | 29 + meta/recipes-devtools/libdnf/libdnf_git.bb | 40 + ...ly-set-the-library-installation-directory.patch | 28 + ...to-obtain-PYTHON_INSTALL_DIR-by-running-p.patch | 41 + ...-race-when-deleting-temporary-directories.patch | 41 + ...ariables-with-pkg-config-not-with-cmake-m.patch | 29 + meta/recipes-devtools/librepo/librepo_git.bb | 24 + meta/recipes-devtools/opkg/opkg_0.3.4.bb | 2 +- ...-not-add-include-and-library-directories-.patch | 32 + .../python-backports-lzma_git.bb | 21 + .../recipes-devtools/python/python-iniparse_0.4.bb | 17 + meta/recipes-devtools/python/python-pygpgme_0.3.bb | 18 + ...m_sys-use-md5sum-instead-of-mtime-as-the-.patch | 38 - ...art-add-deugging-when-targetpath-is-empty.patch | 47 - .../smart-add-for-rpm-ignoresize-check.patch | 35 - .../smart-already-installed-message.patch | 54 - .../python/python-smartpm/smart-attempt-fix.patch | 158 --- .../python/python-smartpm/smart-attempt.patch | 185 --- ...cache.py-getPackages-matches-name-version.patch | 43 - .../python-smartpm/smart-channel-remove-all.patch | 33 - .../python/python-smartpm/smart-channelsdir.patch | 24 - .../python/python-smartpm/smart-locale.patch | 27 - .../python/python-smartpm/smart-recommends.patch | 381 ------ .../smart-rpm-transaction-failure-check.patch | 57 - .../smart-set-noprogress-for-pycurl.patch | 20 - .../smartpm-rpm5-support-check-signatures.patch | 112 -- meta/recipes-devtools/python/python-smartpm_git.bb | 141 --- ...d-a-color-setting-for-mips64_n32-binaries.patch | 40 + ...an-unsatisfiable-dependency-when-building.patch | 33 + ...code-lib-rpm-as-the-installation-path-for.patch | 61 + .../0001-Do-not-read-config-files-from-HOME.patch | 38 + ...t-the-PATH-environment-variable-before-ru.patch | 30 + .../files/0001-Fix-build-with-musl-C-library.patch | 74 ++ ...installing-execute-package-scriptlets-wit.patch | 37 + ...alue-cannot-be-reset-issue-a-notice-inste.patch | 31 + ...-for-prefixing-etc-from-RPM_ETCCONFIGDIR-.patch | 72 ++ ...1-Disable-__sync_add_and_fetch_8-on-nios2.patch | 30 - .../rpm/rpm/0001-define-EM_AARCH64.patch | 35 - .../0001-macros-add-_gpg_sign_cmd_extra_args.patch | 43 - .../rpm/rpm/0001-rpm-Fix-build-on-musl.patch | 294 ----- ...0001-system.h-query.c-support-nosignature.patch | 63 - ...arseArgvString-to-parse-the-_gpg_check_pa.patch | 49 - .../configure.ac-check-for-both-gpg2-and-gpg.patch | 29 - meta/recipes-devtools/rpm/rpm/dbconvert.patch | 27 - meta/recipes-devtools/rpm/rpm/debugedit-segv.patch | 100 -- ...debugedit-valid-file-to-fix-segment-fault.patch | 65 -- meta/recipes-devtools/rpm/rpm/gcc6-stdlib.patch | 54 - .../rpm/rpm/header-include-fix.patch | 36 - .../rpm/rpm/makefile-am-exec-hook.patch | 33 - .../rpm/rpm/no-ldflags-in-pkgconfig.patch | 14 - meta/recipes-devtools/rpm/rpm/perfile_rpmdeps.sh | 50 - .../rpm/popt-disable-auto-stack-protector.patch | 27 - .../rpm/rpm/python-rpm-rpmsense.patch | 31 - meta/recipes-devtools/rpm/rpm/pythondeps.sh | 16 - meta/recipes-devtools/rpm/rpm/rpm-atomic-ops.patch | 73 -- .../rpm/rpm/rpm-autogen-force.patch | 78 -- meta/recipes-devtools/rpm/rpm/rpm-autogen.patch | 25 - meta/recipes-devtools/rpm/rpm/rpm-canonarch.patch | 136 --- .../rpm/rpm-check-rootpath-reasonableness.patch | 96 -- meta/recipes-devtools/rpm/rpm/rpm-db-reduce.patch | 19 - meta/recipes-devtools/rpm/rpm/rpm-db5-or-db6.patch | 174 --- meta/recipes-devtools/rpm/rpm/rpm-db60.patch | 56 - .../rpm/rpm/rpm-db_buffer_small.patch | 77 -- .../rpm/rpm/rpm-debug-platform.patch | 65 -- .../rpm/rpm/rpm-disable-auto-stack-protector.patch | 24 - .../rpm/rpm/rpm-disable-blaketest.patch | 28 - ...-ensure-rpm2cpio-call-rpm-relocation-code.patch | 25 - meta/recipes-devtools/rpm/rpm/rpm-fileclass.patch | 36 - .../rpm/rpm/rpm-fix-logio-cp.patch | 30 - .../rpm-fix-lua-tests-compilation-failure.patch | 43 - .../rpm/rpm/rpm-fix-parseEmbedded.patch | 27 - meta/recipes-devtools/rpm/rpm/rpm-gnu-atomic.patch | 64 - .../rpm/rpm/rpm-hardlink-segfault-fix.patch | 43 - .../rpm/rpm/rpm-keccak-sse-intrin.patch | 27 - ...ction.c-fix-file-conflicts-for-mips64-N32.patch | 52 - meta/recipes-devtools/rpm/rpm/rpm-libsql-fix.patch | 22 - .../recipes-devtools/rpm/rpm/rpm-log-auto-rm.patch | 15 - .../rpm/rpm/rpm-lsb-compatibility.patch | 24 - meta/recipes-devtools/rpm/rpm/rpm-lua.patch | 33 - ...rpm-macros.in-disable-external-key-server.patch | 31 - meta/recipes-devtools/rpm/rpm/rpm-macros.patch | 64 - .../rpm/rpm/rpm-mongodb-sasl.patch | 69 -- meta/recipes-devtools/rpm/rpm/rpm-no-loopmsg.patch | 19 - .../rpm/rpm/rpm-no-perl-urpm.patch | 47 - ...b-before-verifyscript-to-avoid-null-point.patch | 24 - meta/recipes-devtools/rpm/rpm/rpm-ossp-uuid.patch | 23 - .../rpm/rpm/rpm-packageorigin.patch | 25 - .../rpm/rpm/rpm-payload-use-hashed-inode.patch | 126 -- .../rpm/rpm/rpm-pkgconfigdeps.patch | 37 - .../rpm/rpm/rpm-platform-file-fix.patch | 28 - meta/recipes-devtools/rpm/rpm/rpm-platform.patch | 137 --- meta/recipes-devtools/rpm/rpm/rpm-platform2.patch | 105 -- meta/recipes-devtools/rpm/rpm/rpm-py-init.patch | 29 - .../rpm/rpm/rpm-python-AddErase.patch | 35 - .../rpm/rpm/rpm-python-restore-origin.patch | 49 - .../rpm/rpm/rpm-python-tagname.patch | 24 - meta/recipes-devtools/rpm/rpm/rpm-realpath.patch | 24 - .../rpm/rpm/rpm-reloc-macros.patch | 31 - meta/recipes-devtools/rpm/rpm/rpm-resolvedep.patch | 40 - .../rpm/rpm/rpm-rpmdb-grammar.patch | 124 -- .../rpm/rpm/rpm-rpmfc.c-fix-for-N32-MIPS64.patch | 34 - .../rpm/rpm/rpm-rpmio-headers.patch | 19 - .../recipes-devtools/rpm/rpm/rpm-rpmpgp-popt.patch | 26 - .../rpm/rpm/rpm-scriptletexechelper.patch | 159 --- meta/recipes-devtools/rpm/rpm/rpm-showrc.patch | 26 - .../rpm/rpm/rpm-syck-fix-gram.patch | 1081 ----------------- .../rpm-tag-generate-endian-conversion-fix.patch | 50 - .../rpm/rpm/rpm-tagname-type.patch | 25 - .../rpm/rpm/rpm-tools-mtree-LDFLAGS.patch | 24 - .../rpm/rpm/rpm-uuid-include.patch | 40 - meta/recipes-devtools/rpm/rpm/rpm2cpio | 39 - meta/recipes-devtools/rpm/rpm/rpmatch.patch | 34 - ...more-verbose-error-logging-in-rpmTempFile.patch | 31 - .../rpmdb-prevent-race-in-tmpdir-creation.patch | 41 - meta/recipes-devtools/rpm/rpm/rpmdeps-oecore.patch | 194 ---- ...heck-_gpg_passphrase-before-ask-for-input.patch | 70 -- .../recipes-devtools/rpm/rpm/rpmqv_cc_b_gone.patch | 50 - meta/recipes-devtools/rpm/rpm/uclibc-support.patch | 63 - meta/recipes-devtools/rpm/rpm_5.4.16.bb | 712 ------------ meta/recipes-devtools/rpm/rpm_git.bb | 108 ++ meta/recipes-devtools/rpm/rpmresolve/rpmresolve.c | 426 ------- meta/recipes-devtools/rpm/rpmresolve_1.0.bb | 29 - meta/recipes-extended/bash/bash.inc | 4 + meta/recipes-extended/byacc/byacc.inc | 22 - .../0001-byacc-do-not-reorder-CC-and-CFLAGS.patch | 161 --- meta/recipes-extended/byacc/byacc/byacc-open.patch | 25 - meta/recipes-extended/byacc/byacc_20161202.bb | 12 - meta/recipes-extended/libsolv/libsolv_0.6.24.bb | 4 +- .../packagegroup-core-full-cmdline.bb | 1 - meta/recipes-gnome/gtk-doc/gtk-doc_1.25.bb | 2 +- .../createrepo/createrepo/createrepo-dbpath.patch | 61 - .../createrepo/createrepo/createrepo-rpm549.patch | 22 - ...dumpMetadata-disable-signature-validation.patch | 31 - .../createrepo/createrepo/fix-native-install.patch | 163 --- .../createrepo/createrepo/fixstat.patch | 19 - ...n-scripts-should-use-interpreter-from-env.patch | 47 - .../createrepo/createrepo/recommends.patch | 71 -- .../createrepo/createrepo/rpm-createsolvedb.py | 64 - .../createrepo/createrepo_0.4.11.bb | 51 - ...Makefile-let-libdb-6.0.la-depend-os_map.l.patch | 29 - ...akefile-let-libso_target-depend-on-bt_rec.patch | 30 - meta/recipes-support/db/db_5.3.28.bb | 5 +- meta/recipes-support/db/db_6.0.35.bb | 111 -- ...-Avoid-host-contamination-from-gpg-config.patch | 30 + .../0001-Correctly-install-python-modules.patch | 26 + meta/recipes-support/gpgme/gpgme_1.8.0.bb | 4 +- meta/recipes-support/libassuan/libassuan_2.4.3.bb | 2 +- meta/recipes-support/libcheck/libcheck_0.10.0.bb | 1 + meta/recipes-support/nspr/nspr_4.13.1.bb | 2 +- scripts/oe-setup-rpmrepo | 2 +- scripts/rpm2cpio.sh | 108 +- 198 files changed, 1952 insertions(+), 10233 deletions(-) create mode 100644 meta/lib/oeqa/runtime/cases/dnf.py delete mode 100644 meta/lib/oeqa/runtime/cases/smart.py create mode 100644 meta/recipes-devtools/createrepo-c/createrepo-c/0001-Correctly-install-the-shared-library.patch create mode 100644 meta/recipes-devtools/createrepo-c/createrepo-c/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch create mode 100644 meta/recipes-devtools/createrepo-c/createrepo-c_git.bb create mode 100644 meta/recipes-devtools/dnf/dnf/0001-Corretly-install-tmpfiles.d-configuration.patch create mode 100644 meta/recipes-devtools/dnf/dnf/0001-Do-not-hardcode-etc-and-systemd-unit-directories.patch create mode 100644 meta/recipes-devtools/dnf/dnf/0001-Do-not-prepend-installroot-to-logdir.patch create mode 100644 meta/recipes-devtools/dnf/dnf/0028-Use-backports.lzma-not-lzma.patch create mode 100644 meta/recipes-devtools/dnf/dnf/0029-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch create mode 100644 meta/recipes-devtools/dnf/dnf/0030-Run-python-scripts-using-env.patch create mode 100644 meta/recipes-devtools/dnf/dnf_git.bb create mode 100644 meta/recipes-devtools/libcomps/libcomps/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch create mode 100644 meta/recipes-devtools/libcomps/libcomps/0002-Set-library-installation-path-correctly.patch create mode 100644 meta/recipes-devtools/libcomps/libcomps_git.bb create mode 100644 meta/recipes-devtools/libdnf/libdnf/0001-FindGtkDoc.cmake-drop-the-requirement-for-GTKDOC_SCA.patch create mode 100644 meta/recipes-devtools/libdnf/libdnf/0001-Get-parameters-for-both-libsolv-and-libsolvext-libdn.patch create mode 100644 meta/recipes-devtools/libdnf/libdnf/0002-Prefix-sysroot-path-to-introspection-tools-path.patch create mode 100644 meta/recipes-devtools/libdnf/libdnf/0003-Set-the-library-installation-directory-correctly.patch create mode 100644 meta/recipes-devtools/libdnf/libdnf/0004-Set-libsolv-variables-with-pkg-config-cmake-s-own-mo.patch create mode 100644 meta/recipes-devtools/libdnf/libdnf_git.bb create mode 100644 meta/recipes-devtools/librepo/librepo/0001-Correctly-set-the-library-installation-directory.patch create mode 100644 meta/recipes-devtools/librepo/librepo/0002-Do-not-try-to-obtain-PYTHON_INSTALL_DIR-by-running-p.patch create mode 100644 meta/recipes-devtools/librepo/librepo/0003-tests-fix-a-race-when-deleting-temporary-directories.patch create mode 100644 meta/recipes-devtools/librepo/librepo/0004-Set-gpgme-variables-with-pkg-config-not-with-cmake-m.patch create mode 100644 meta/recipes-devtools/librepo/librepo_git.bb create mode 100644 meta/recipes-devtools/python-backports-lzma/python-backports-lzma/0001-setup.py-do-not-add-include-and-library-directories-.patch create mode 100644 meta/recipes-devtools/python-backports-lzma/python-backports-lzma_git.bb create mode 100644 meta/recipes-devtools/python/python-iniparse_0.4.bb create mode 100644 meta/recipes-devtools/python/python-pygpgme_0.3.bb delete mode 100644 meta/recipes-devtools/python/python-smartpm/channels-rpm_sys-use-md5sum-instead-of-mtime-as-the-.patch delete mode 100644 meta/recipes-devtools/python/python-smartpm/smart-add-deugging-when-targetpath-is-empty.patch delete mode 100644 meta/recipes-devtools/python/python-smartpm/smart-add-for-rpm-ignoresize-check.patch delete mode 100644 meta/recipes-devtools/python/python-smartpm/smart-already-installed-message.patch delete mode 100644 meta/recipes-devtools/python/python-smartpm/smart-attempt-fix.patch delete mode 100644 meta/recipes-devtools/python/python-smartpm/smart-attempt.patch delete mode 100644 meta/recipes-devtools/python/python-smartpm/smart-cache.py-getPackages-matches-name-version.patch delete mode 100644 meta/recipes-devtools/python/python-smartpm/smart-channel-remove-all.patch delete mode 100644 meta/recipes-devtools/python/python-smartpm/smart-channelsdir.patch delete mode 100644 meta/recipes-devtools/python/python-smartpm/smart-locale.patch delete mode 100644 meta/recipes-devtools/python/python-smartpm/smart-recommends.patch delete mode 100644 meta/recipes-devtools/python/python-smartpm/smart-rpm-transaction-failure-check.patch delete mode 100644 meta/recipes-devtools/python/python-smartpm/smart-set-noprogress-for-pycurl.patch delete mode 100644 meta/recipes-devtools/python/python-smartpm/smartpm-rpm5-support-check-signatures.patch delete mode 100644 meta/recipes-devtools/python/python-smartpm_git.bb create mode 100644 meta/recipes-devtools/rpm/files/0001-Add-a-color-setting-for-mips64_n32-binaries.patch create mode 100644 meta/recipes-devtools/rpm/files/0001-Do-not-add-an-unsatisfiable-dependency-when-building.patch create mode 100644 meta/recipes-devtools/rpm/files/0001-Do-not-hardcode-lib-rpm-as-the-installation-path-for.patch create mode 100644 meta/recipes-devtools/rpm/files/0001-Do-not-read-config-files-from-HOME.patch create mode 100644 meta/recipes-devtools/rpm/files/0001-Do-not-reset-the-PATH-environment-variable-before-ru.patch create mode 100644 meta/recipes-devtools/rpm/files/0001-Fix-build-with-musl-C-library.patch create mode 100644 meta/recipes-devtools/rpm/files/0001-When-cross-installing-execute-package-scriptlets-wit.patch create mode 100644 meta/recipes-devtools/rpm/files/0001-When-nice-value-cannot-be-reset-issue-a-notice-inste.patch create mode 100644 meta/recipes-devtools/rpm/files/0002-Add-support-for-prefixing-etc-from-RPM_ETCCONFIGDIR-.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/0001-Disable-__sync_add_and_fetch_8-on-nios2.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/0001-define-EM_AARCH64.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/0001-macros-add-_gpg_sign_cmd_extra_args.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/0001-rpm-Fix-build-on-musl.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/0001-system.h-query.c-support-nosignature.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/0001-using-poptParseArgvString-to-parse-the-_gpg_check_pa.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/configure.ac-check-for-both-gpg2-and-gpg.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/dbconvert.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/debugedit-segv.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/debugedit-valid-file-to-fix-segment-fault.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/gcc6-stdlib.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/header-include-fix.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/makefile-am-exec-hook.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/no-ldflags-in-pkgconfig.patch delete mode 100755 meta/recipes-devtools/rpm/rpm/perfile_rpmdeps.sh delete mode 100644 meta/recipes-devtools/rpm/rpm/popt-disable-auto-stack-protector.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/python-rpm-rpmsense.patch delete mode 100755 meta/recipes-devtools/rpm/rpm/pythondeps.sh delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-atomic-ops.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-autogen-force.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-autogen.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-canonarch.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-check-rootpath-reasonableness.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-db-reduce.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-db5-or-db6.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-db60.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-db_buffer_small.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-debug-platform.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-disable-auto-stack-protector.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-disable-blaketest.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-ensure-rpm2cpio-call-rpm-relocation-code.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-fileclass.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-fix-logio-cp.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-fix-lua-tests-compilation-failure.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-fix-parseEmbedded.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-gnu-atomic.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-hardlink-segfault-fix.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-keccak-sse-intrin.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-lib-transaction.c-fix-file-conflicts-for-mips64-N32.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-libsql-fix.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-log-auto-rm.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-lsb-compatibility.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-lua.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-macros.in-disable-external-key-server.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-macros.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-mongodb-sasl.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-no-loopmsg.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-no-perl-urpm.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-opendb-before-verifyscript-to-avoid-null-point.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-ossp-uuid.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-packageorigin.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-payload-use-hashed-inode.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-pkgconfigdeps.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-platform-file-fix.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-platform.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-platform2.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-py-init.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-python-AddErase.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-python-restore-origin.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-python-tagname.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-realpath.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-reloc-macros.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-resolvedep.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-rpmdb-grammar.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-rpmfc.c-fix-for-N32-MIPS64.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-rpmio-headers.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-rpmpgp-popt.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-scriptletexechelper.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-showrc.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-syck-fix-gram.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-tag-generate-endian-conversion-fix.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-tagname-type.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-tools-mtree-LDFLAGS.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-uuid-include.patch delete mode 100755 meta/recipes-devtools/rpm/rpm/rpm2cpio delete mode 100644 meta/recipes-devtools/rpm/rpm/rpmatch.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpmdb-more-verbose-error-logging-in-rpmTempFile.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpmdb-prevent-race-in-tmpdir-creation.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpmdeps-oecore.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpmqv.c-check-_gpg_passphrase-before-ask-for-input.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpmqv_cc_b_gone.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/uclibc-support.patch delete mode 100644 meta/recipes-devtools/rpm/rpm_5.4.16.bb create mode 100644 meta/recipes-devtools/rpm/rpm_git.bb delete mode 100644 meta/recipes-devtools/rpm/rpmresolve/rpmresolve.c delete mode 100644 meta/recipes-devtools/rpm/rpmresolve_1.0.bb delete mode 100644 meta/recipes-extended/byacc/byacc.inc delete mode 100644 meta/recipes-extended/byacc/byacc/0001-byacc-do-not-reorder-CC-and-CFLAGS.patch delete mode 100644 meta/recipes-extended/byacc/byacc/byacc-open.patch delete mode 100644 meta/recipes-extended/byacc/byacc_20161202.bb delete mode 100644 meta/recipes-support/createrepo/createrepo/createrepo-dbpath.patch delete mode 100644 meta/recipes-support/createrepo/createrepo/createrepo-rpm549.patch delete mode 100644 meta/recipes-support/createrepo/createrepo/dumpMetadata-disable-signature-validation.patch delete mode 100644 meta/recipes-support/createrepo/createrepo/fix-native-install.patch delete mode 100644 meta/recipes-support/createrepo/createrepo/fixstat.patch delete mode 100644 meta/recipes-support/createrepo/createrepo/python-scripts-should-use-interpreter-from-env.patch delete mode 100644 meta/recipes-support/createrepo/createrepo/recommends.patch delete mode 100755 meta/recipes-support/createrepo/createrepo/rpm-createsolvedb.py delete mode 100644 meta/recipes-support/createrepo/createrepo_0.4.11.bb delete mode 100644 meta/recipes-support/db/db/Makefile-let-libdb-6.0.la-depend-os_map.l.patch delete mode 100644 meta/recipes-support/db/db/Makefile-let-libso_target-depend-on-bt_rec.patch delete mode 100644 meta/recipes-support/db/db_6.0.35.bb create mode 100644 meta/recipes-support/gpgme/gpgme/0001-Avoid-host-contamination-from-gpg-config.patch create mode 100644 meta/recipes-support/gpgme/gpgme/0001-Correctly-install-python-modules.patch
Signature · 1 line
2.11.0
PATCH 1/44 package.bbclass: fix locations of debugedit and rpmdeps utilities
rpm4 installs them in different locations than rpm5. This also replaces our custom rpmdeps-oecore with standard rpmdeps; I'm not seeing a significant performance penalty.
--- meta/classes/package.bbclass | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
meta/classes/package.bbclass +2 -2
@@ -345,7 +345,7 @@ def splitdebuginfo(file, debugfile, debugsrcdir, sourcefile, d): dvar = d.getVar('PKGD') objcopy = d.getVar("OBJCOPY") - debugedit = d.expand("${STAGING_LIBDIR_NATIVE}/rpm/bin/debugedit") + debugedit = d.expand("${STAGING_LIBDIR_NATIVE}/rpm/debugedit") # We ignore kernel modules, we don't generate debug info files. if file.find("/lib/modules/") != -1 and file.endswith(".ko"):
@@ -1436,7 +1436,7 @@ if [ x"$D" = "x" ]; then fi } -RPMDEPS = "${STAGING_LIBDIR_NATIVE}/rpm/bin/rpmdeps-oecore --macros ${STAGING_LIBDIR_NATIVE}/rpm/macros --define '_rpmfc_magic_path ${STAGING_DIR_NATIVE}${datadir_native}/misc/magic.mgc' --rpmpopt ${STAGING_LIBDIR_NATIVE}/rpm/rpmpopt" +RPMDEPS = "${STAGING_LIBDIR_NATIVE}/rpm/rpmdeps --macros ${STAGING_LIBDIR_NATIVE}/rpm/macros --define '_rpmfc_magic_path ${STAGING_DIR_NATIVE}${datadir_native}/misc/magic.mgc' --rpmpopt ${STAGING_LIBDIR_NATIVE}/rpm/rpmpopt" # Collect perfile run-time dependency metadata # Output:
Signature · 1 line
2.11.0
PATCH 2/44 libsolv: enable rpm support
In reply to Alexander KanavinThis is required by libdnf.
--- meta/recipes-extended/libsolv/libsolv_0.6.24.bb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
meta/recipes-extended/libsolv/libsolv_0.6.24.bb +2 -2
@@ -5,7 +5,7 @@ SECTION = "devel" LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE.BSD;md5=62272bd11c97396d4aaf1c41bc11f7d8" -DEPENDS = "expat zlib" +DEPENDS = "expat zlib rpm" SRC_URI = "git://github.com/openSUSE/libsolv.git \ file://0001-Split-libsolvext-into-it-s-own-pkg-config-file.patch \
@@ -19,7 +19,7 @@ S = "${WORKDIR}/git" inherit cmake -EXTRA_OECMAKE = "-DLIB=${baselib} -DMULTI_SEMANTICS=ON" +EXTRA_OECMAKE = "-DLIB=${baselib} -DMULTI_SEMANTICS=ON -DENABLE_RPMMD=ON -DENABLE_RPMDB=ON" PACKAGES =+ "${PN}-tools ${PN}ext"
Signature · 1 line
2.11.0
PATCH 3/44 rpmresolve: remove the recipe
In reply to Alexander KanavinThe source code is incompatible with rpm4 API - let's use rpm binary itself for now.
--- meta/recipes-devtools/rpm/rpmresolve/rpmresolve.c | 426 ---------------------- meta/recipes-devtools/rpm/rpmresolve_1.0.bb | 29 -- 2 files changed, 455 deletions(-) delete mode 100644 meta/recipes-devtools/rpm/rpmresolve/rpmresolve.c delete mode 100644 meta/recipes-devtools/rpm/rpmresolve_1.0.bb
meta/recipes-devtools/rpm/rpmresolve/rpmresolve.c deleted +0 -426
@@ -1,426 +0,0 @@ -/* OpenEmbedded RPM resolver utility - -Written by: Paul Eggleton <[email protected]> - -Copyright 2012 Intel Corporation - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License version 2 as -published by the Free Software Foundation. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License along -with this program; if not, write to the Free Software Foundation, Inc., -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -*/ - -#include <ctype.h> -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <fcntl.h> -#include <sys/stat.h> - -#include <rpmdb.h> -#include <rpmtypes.h> -#include <rpmtag.h> -#include <rpmts.h> -#include <rpmmacro.h> -#include <rpmcb.h> -#include <rpmlog.h> -#include <argv.h> -#include <mire.h> - -int debugmode; -FILE *outf; - -int getPackageStr (rpmts ts,const char *NVRA ,rpmTag tag,char **value) -{ -int rc =-1 ; -rpmmi mi =rpmmiInit (rpmtsGetRdb (ts),RPMTAG_NVRA ,NVRA ,0 ); -Header h; -if ((h =rpmmiNext (mi)) !=NULL ) { -HE_t he = (HE_t )memset (alloca (sizeof (*he)),0 ,sizeof (*he)); - he->tag = tag; - rc = (headerGet (h, he,0 ) !=1 ); -if (rc==0 ) - *value =strdup ((char *)he->p.ptr); - } - (void )rpmmiFree (mi); -return rc; -} - -int loadTs (rpmts **ts,int *tsct,const char *dblistfn) -{ -int count =0 ; -int sz =5 ; -int rc =0 ; -int listfile =1 ; -struct stat st_buf; - - rc =stat (dblistfn, &st_buf); -if (rc !=0 ) { -perror ("stat" ); -return 1 ; - } -if (S_ISDIR (st_buf.st_mode)) - listfile =0 ; - -if (listfile) { -if (debugmode) -printf ("DEBUG: reading database list file '%s'\n" , dblistfn); - *ts =malloc (sz *sizeof (rpmts)); -FILE *f =fopen (dblistfn,"r" ); -if (f) { -char line[2048 ]; -while (fgets (line,sizeof (line), f)) { -int len =strlen (line) -1 ; -if (len >0 ) -// Trim trailing whitespace -while (len >0 &&isspace (line[len])) - line[len--] ='\0' ; - -if (len >0 ) { -// Expand array if needed -if (count == sz) { - sz +=5 ; - *ts = (rpmts *)realloc (*ts, sz); - } - -if (debugmode) -printf ("DEBUG: opening database '%s'\n" , line); -char *dbpathm =malloc (strlen (line) +10 ); -sprintf (dbpathm,"_dbpath %s" , line); -rpmDefineMacro (NULL , dbpathm,RMIL_CMDLINE ); -free (dbpathm); - -rpmts tsi =rpmtsCreate (); - (*ts)[count] = tsi; - rc =rpmtsOpenDB (tsi,O_RDONLY ); -if ( rc ) { -fprintf (stderr,"Failed to open database %s\n" , line); - rc =-1 ; -break ; - } - - count++; - } - } -fclose (f); - *tsct = count; - } -else { -perror (dblistfn); - rc =-1 ; - } - } -else { -if (debugmode) -printf ("DEBUG: opening database '%s'\n" , dblistfn); -// Load from single database - *ts =malloc (sizeof (rpmts)); -char *dbpathm =malloc (strlen (dblistfn) +10 ); -sprintf (dbpathm,"_dbpath %s" , dblistfn); -rpmDefineMacro (NULL , dbpathm,RMIL_CMDLINE ); -free (dbpathm); - -rpmts tsi =rpmtsCreate (); - (*ts)[0 ] = tsi; - rc =rpmtsOpenDB (tsi,O_RDONLY ); -if ( rc ) { -fprintf (stderr,"Failed to open database %s\n" , dblistfn); - rc =-1 ; - } - *tsct =1 ; - } - -return rc; -} - -int processPackages (rpmts *ts,int tscount,const char *packagelistfn,int ignoremissing) -{ -int rc =0 ; -int count =0 ; -int sz =100 ; -int i =0 ; -int missing =0 ; - -FILE *f =fopen (packagelistfn,"r" ); -if (f) { -char line[255 ]; -while (fgets (line,sizeof (line), f)) { -int len =strlen (line) -1 ; -if (len >0 ) -// Trim trailing whitespace -while (len >0 &&isspace (line[len])) - line[len--] ='\0' ; - -if (len >0 ) { -int found =0 ; -for (i=0 ; i<tscount; i++) { -ARGV_t keys =NULL ; -rpmdb db =rpmtsGetRdb (ts[i]); - rc =rpmdbMireApply (db,RPMTAG_NAME , -RPMMIRE_STRCMP , line, &keys); -if (keys) { -int nkeys =argvCount (keys); -if ( nkeys ==1 ) { -char *value =NULL ; - rc =getPackageStr (ts[i], keys[0 ],RPMTAG_PACKAGEORIGIN , &value); -if (rc ==0 ) -fprintf (outf,"%s\n" , value); -else -fprintf (stderr,"Failed to get package origin for %s\n" , line); - found =1 ; - } -else if ( nkeys >1 ) { -int keyindex =0 ; -fprintf (stderr,"Multiple matches for %s:\n" , line); -for ( keyindex=0 ; keyindex<nkeys; keyindex++) { -char *value =NULL ; - rc =getPackageStr (ts[i], keys[keyindex],RPMTAG_PACKAGEORIGIN , &value); -if (rc ==0 ) -fprintf (stderr," %s\n" , value); -else -fprintf (stderr," (%s)\n" , keys[keyindex]); - } - } - } -if (found) -break ; - } - -if ( !found ) { -if ( ignoremissing ) { -fprintf (stderr,"Unable to resolve package %s - ignoring\n" , line); - } -else { -fprintf (stderr,"Unable to resolve package %s\n" , line); - missing =1 ; - } - } - } - count++; - } -fclose (f); - -if ( missing ) { -fprintf (stderr,"ERROR: some packages were missing\n" ); - rc =1 ; - } - } -else { -perror (packagelistfn); - rc =-1 ; - } - -return rc; -} - -int lookupProvider (rpmts ts,const char *req,char **provider) -{ -int rc =0 ; -rpmmi provmi =rpmmiInit (rpmtsGetRdb (ts),RPMTAG_PROVIDENAME , req,0 ); -if (provmi) { -Header h; -if ((h =rpmmiNext (provmi)) !=NULL ) { -HE_t he = (HE_t )memset (alloca (sizeof (*he)),0 ,sizeof (*he)); - he->tag =RPMTAG_NAME ; - rc = (headerGet (h, he,0 ) !=1 ); -if (rc==0 ) - *provider =strdup ((char *)he->p.ptr); - } - (void )rpmmiFree (provmi); - } -else { - rc =-1 ; - } -return rc; -} - -int printDepList (rpmts *ts,int tscount) -{ -int rc =0 ; - -if ( tscount >1 ) -fprintf (stderr,">1 database specified with dependency list, using first only\n" ); - -/* Get list of names */ -rpmdb db =rpmtsGetRdb (ts[0 ]); -ARGV_t names =NULL ; - rc =rpmdbMireApply (db,RPMTAG_NAME , -RPMMIRE_STRCMP ,NULL , &names); -int nnames =argvCount (names); - -/* Get list of NVRAs */ -ARGV_t keys =NULL ; - rc =rpmdbMireApply (db,RPMTAG_NVRA , -RPMMIRE_STRCMP ,NULL , &keys); -if (keys) { -int i, j; -HE_t he = (HE_t )memset (alloca (sizeof (*he)),0 ,sizeof (*he)); -int nkeys =argvCount (keys); -for (i=0 ; i<nkeys; i++) { -rpmmi mi =rpmmiInit (db,RPMTAG_NVRA , keys[i],0 ); -Header h; -if ((h =rpmmiNext (mi)) !=NULL ) { -/* Get name of package */ - he->tag =RPMTAG_NAME ; - rc = (headerGet (h, he,0 ) !=1 ); -char *name =strdup ((char *)he->p.ptr); -/* Get its requires */ - he->tag =RPMTAG_REQUIRENAME ; -if (rc = (headerGet (h, he,0 ) !=1 )) { -if (debugmode) { -printf ("DEBUG: %s requires null\n" , name); - } - rc =0 ; -free (name); - (void )rpmmiFree (mi); -continue ; - } -ARGV_t reqs = (ARGV_t )he->p.ptr; -/* Get its requireflags */ - he->tag =RPMTAG_REQUIREFLAGS ; - rc = (headerGet (h, he,0 ) !=1 ); -rpmuint32_t *reqflags = (rpmuint32_t *)he->p.ui32p; -for (j=0 ; j<he->c; j++) { -int k; -char *prov =NULL ; -for (k=0 ; k<nnames; k++) { -if (strcmp (names[k], reqs[j]) ==0 ) { - prov = names[k]; -break ; - } - } -if (prov) { -if ((int )reqflags[j] &0x80000 ) -fprintf (outf,"%s|%s [REC]\n" , name, prov); -else -fprintf (outf,"%s|%s\n" , name, prov); - } -else { - rc =lookupProvider (ts[0 ], reqs[j], &prov); -if (rc==0 && prov) { -if ((int )reqflags[j] &0x80000 ) -fprintf (outf,"%s|%s [REC]\n" , name, prov); -else -fprintf (outf,"%s|%s\n" , name, prov); -free (prov); - } - } - } -free (name); - } - (void )rpmmiFree (mi); - } - } - -return rc; -} - -void usage () -{ -fprintf (stderr,"OpenEmbedded rpm resolver utility\n" ); -fprintf (stderr,"syntax: rpmresolve [-i] [-d] [-t] <dblistfile> <packagelistfile>\n" ); -} - -int main (int argc,char **argv) -{ -rpmts *ts =NULL ; -int tscount =0 ; -int rc =0 ; -int i; -int c; -int ignoremissing =0 ; -int deplistmode =0 ; -char *outfile =NULL ; - - debugmode =0 ; - outf = stdout; - - opterr =0 ; -while ((c =getopt (argc, argv,"itdo:" )) !=-1 ) { -switch (c) { -case 'i' : - ignoremissing =1 ; -break ; -case 't' : - deplistmode =1 ; -break ; -case 'd' : - debugmode =1 ; -break ; -case 'o' : - outfile =strdup (optarg); -break ; -case '?' : -if (isprint (optopt)) -fprintf (stderr,"Unknown option `-%c'.\n" , optopt); -else -fprintf (stderr,"Unknown option character `\\x%x'.\n" , - optopt); -usage (); -return 1 ; -default : -abort (); - } - } - -if ( argc - optind <1 ) { -usage (); -return 1 ; - } - -if ( outfile ) { -if (debugmode) -printf ("DEBUG: Using output file %s\n" , outfile); - outf =fopen (outfile,"w" ); - } - -const char *dblistfn = argv[optind]; - -rpmcliInit (argc, argv,NULL ); - -if (debugmode) -rpmSetVerbosity (RPMLOG_DEBUG ); - -rpmDefineMacro (NULL ,"__dbi_txn create nofsync" ,RMIL_CMDLINE ); - - rc =loadTs (&ts, &tscount, dblistfn); -if ( rc ) -return 1 ; -if ( tscount ==0 ) { -fprintf (stderr,"Please specify database list file or database location\n" ); -return 1 ; - } - -if (deplistmode) { - rc =printDepList (ts, tscount); - } -else { -if ( argc - optind <2 ) { -fprintf (stderr,"Please specify package list file\n" ); - } -else { -const char *pkglistfn = argv[optind+1 ]; - rc =processPackages (ts, tscount, pkglistfn, ignoremissing); - } - } - -for (i=0 ; i<tscount; i++) - (void )rpmtsFree (ts[i]); -free (ts); - -if ( outfile ) { -fclose (outf); -free (outfile); - } - -return rc; -}
meta/recipes-devtools/rpm/rpmresolve_1.0.bb deleted +0 -29
@@ -1,29 +0,0 @@ -SUMMARY = "OpenEmbedded RPM resolver utility" -DESCRIPTION = "OpenEmbedded RPM resolver - performs RPM database lookups in batches to avoid \ - repeated invocations of rpm on the command line." -DEPENDS = "rpm" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" -PR = "r2" - -SRC_URI = "file://rpmresolve.c" - -S = "${WORKDIR}" - -do_compile() { - ${CC} ${CFLAGS} -ggdb -I${STAGING_INCDIR}/rpm ${LDFLAGS} rpmresolve.c -o rpmresolve -lrpmbuild -lrpm -lrpmio -lrpmdb -} - -do_install() { - install -d ${D}${bindir} - install -m 0755 rpmresolve ${D}${bindir} -} - -do_install_append_class-native() { - create_wrapper ${D}/${bindir}/rpmresolve \ - RPM_USRLIBRPM=${STAGING_LIBDIR_NATIVE}/rpm \ - RPM_ETCRPM=${STAGING_ETCDIR_NATIVE}/rpm \ - RPM_LOCALEDIRRPM=${STAGING_DATADIR_NATIVE}/locale -} - -BBCLASSEXTEND = "native nativesdk"
Signature · 1 line
2.11.0
PATCH 4/44 createrepo-c: add a recipe
In reply to Alexander KanavinThis is the current C reimplementation/replacement of the original createrepo.
https://github.com/rpm-software-management/createrepo_c/wiki
--- ...0001-Correctly-install-the-shared-library.patch | 28 +++++++++++++++++++ ...-set-PYTHON_INSTALL_DIR-by-running-python.patch | 27 +++++++++++++++++++ .../createrepo-c/createrepo-c_git.bb | 31 ++++++++++++++++++++++ 3 files changed, 86 insertions(+) create mode 100644 meta/recipes-devtools/createrepo-c/createrepo-c/0001-Correctly-install-the-shared-library.patch create mode 100644 meta/recipes-devtools/createrepo-c/createrepo-c/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch create mode 100644 meta/recipes-devtools/createrepo-c/createrepo-c_git.bb
meta/recipes-devtools/createrepo-c/createrepo-c/0001-Correctly-install-the-shared-library.patch new file +28 -0
@@ -0,0 +1,28 @@ +From fef835e1fdedc72c97d9c3e5704302e56e1bdef0 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <[email protected]> +Date: Mon, 2 Jan 2017 17:23:59 +0200 +Subject: [PATCH] Correctly install the shared library + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin <[email protected]> +--- + src/CMakeLists.txt | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index f3635e8..46dc037 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -110,7 +110,8 @@ CONFIGURE_FILE("deltarpms.h.in" "${CMAKE_CURRENT_SOURCE_DIR}/deltarpms.h" @ONLY) + IF (CMAKE_SIZEOF_VOID_P MATCHES "8") + SET (LIB_SUFFIX "64") + ENDIF (CMAKE_SIZEOF_VOID_P MATCHES "8") +-SET (LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}") ++#SET (LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}") ++SET (LIB_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}") + + INSTALL(FILES ${headers} DESTINATION "include/createrepo_c") + INSTALL(FILES "createrepo_c.pc" DESTINATION "${LIB_INSTALL_DIR}/pkgconfig") +-- +2.11.0 +
meta/recipes-devtools/createrepo-c/createrepo-c/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch new file +27 -0
@@ -0,0 +1,27 @@ +From bef487b5c2515062c5dd73c21082ce42f69aa717 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <[email protected]> +Date: Fri, 30 Dec 2016 18:31:02 +0200 +Subject: [PATCH] Do not set PYTHON_INSTALL_DIR by running python + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin <[email protected]> +--- + src/python/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/python/CMakeLists.txt b/src/python/CMakeLists.txt +index 9f1ac64..eae0cbb 100644 +--- a/src/python/CMakeLists.txt ++++ b/src/python/CMakeLists.txt +@@ -19,7 +19,7 @@ else() + FIND_PACKAGE(PythonInterp 3.0 REQUIRED) + endif() + +-EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from distutils import sysconfig; stdout.write(sysconfig.get_python_lib(True))" OUTPUT_VARIABLE PYTHON_INSTALL_DIR) ++#EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from distutils import sysconfig; stdout.write(sysconfig.get_python_lib(True))" OUTPUT_VARIABLE PYTHON_INSTALL_DIR) + INCLUDE_DIRECTORIES (${PYTHON_INCLUDE_PATH}) + + MESSAGE(STATUS "Python install dir is ${PYTHON_INSTALL_DIR}") +-- +2.11.0 +
meta/recipes-devtools/createrepo-c/createrepo-c_git.bb new file +31 -0
@@ -0,0 +1,31 @@ +DESCRIPTION = "C implementation of createrepo." +HOMEPAGE = "https://github.com/rpm-software-management/createrepo_c/wiki" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = "git://github.com/rpm-software-management/createrepo_c \ + file://0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \ + file://0001-Correctly-install-the-shared-library.patch \ + " + +PV = "0.10.0+git${SRCPV}" +SRCREV = "748891ff8ee524c2d37926c608cd2794f88013f3" + +S = "${WORKDIR}/git" + +DEPENDS = "expat curl glib-2.0 libxml2 openssl bzip2 zlib file sqlite3 xz rpm" +DEPENDS_append_class-native = " file-replacement-native" + +inherit cmake pkgconfig bash-completion distutils-base + +EXTRA_OECMAKE = " -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR}" + +BBCLASSEXTEND = "native" + +# Direct createrepo to read rpm configuration from our sysroot, not the one it was compiled in +do_install_append_class-native() { + create_wrapper ${D}/${bindir}/createrepo_c \ + RPM_CONFIGDIR=${STAGING_LIBDIR_NATIVE}/rpm +} +
Signature · 1 line
2.11.0
PATCH 5/44 createrepo: remove the recipe
In reply to Alexander Kanavin--- .../createrepo/createrepo/createrepo-dbpath.patch | 61 -------- .../createrepo/createrepo/createrepo-rpm549.patch | 22 --- ...dumpMetadata-disable-signature-validation.patch | 31 ---- .../createrepo/createrepo/fix-native-install.patch | 163 --------------------- .../createrepo/createrepo/fixstat.patch | 19 --- ...n-scripts-should-use-interpreter-from-env.patch | 47 ------ .../createrepo/createrepo/recommends.patch | 71 --------- .../createrepo/createrepo/rpm-createsolvedb.py | 64 -------- .../createrepo/createrepo_0.4.11.bb | 51 ------- 9 files changed, 529 deletions(-) delete mode 100644 meta/recipes-support/createrepo/createrepo/createrepo-dbpath.patch delete mode 100644 meta/recipes-support/createrepo/createrepo/createrepo-rpm549.patch delete mode 100644 meta/recipes-support/createrepo/createrepo/dumpMetadata-disable-signature-validation.patch delete mode 100644 meta/recipes-support/createrepo/createrepo/fix-native-install.patch delete mode 100644 meta/recipes-support/createrepo/createrepo/fixstat.patch delete mode 100644 meta/recipes-support/createrepo/createrepo/python-scripts-should-use-interpreter-from-env.patch delete mode 100644 meta/recipes-support/createrepo/createrepo/recommends.patch delete mode 100755 meta/recipes-support/createrepo/createrepo/rpm-createsolvedb.py delete mode 100644 meta/recipes-support/createrepo/createrepo_0.4.11.bb
meta/recipes-support/createrepo/createrepo/createrepo-dbpath.patch deleted +0 -61
@@ -1,61 +0,0 @@ -createrepo: Implement --dbpath command line option - ---dbpath option allows to specify path to the directory -with rpm database. By default createrepo uses or creates -rpm database in /var/lib/rpm/ - -Upstream-Status: Pending - -Signed-off-by: Ed Bartosh <[email protected]> - ---- createrepo-0.4.11.orig/genpkgmetadata.py 2015-03-30 22:18:19.904000000 +0300 -+++ createrepo-0.4.11/genpkgmetadata.py 2015-03-30 22:28:49.208000000 +0300 -@@ -65,6 +65,7 @@ - -p, --pretty = output xml files in pretty format. - --update = update existing metadata (if present) - -d, --database = generate the sqlite databases. -+ --dbpath <dir> = specify path to rpm db directory. - """) - - sys.exit(retval) -@@ -72,10 +73,13 @@ - class MetaDataGenerator: - def __init__(self, cmds): - self.cmds = cmds -- self.ts = rpm.TransactionSet() - self.pkgcount = 0 - self.files = [] - -+ if self.cmds['dbpath']: -+ rpm.addMacro("_dbpath", self.cmds['dbpath']) -+ self.ts = rpm.TransactionSet() -+ - def _os_path_walk(self, top, func, arg): - """Directory tree walk with callback function. - copy of os.path.walk, fixes the link/stating problem -@@ -435,6 +439,7 @@ - cmds['dir-pattern-match'] = ['.*bin\/.*', '^\/etc\/.*'] - cmds['skip-symlinks'] = False - cmds['pkglist'] = [] -+ cmds['dbpath'] = None - - try: - gopts, argsleft = getopt.getopt(args, 'phqVvndg:s:x:u:c:o:CSi:', ['help', 'exclude=', -@@ -442,7 +447,7 @@ - 'baseurl=', 'groupfile=', 'checksum=', - 'version', 'pretty', 'split', 'outputdir=', - 'noepoch', 'checkts', 'database', 'update', -- 'skip-symlinks', 'pkglist=']) -+ 'skip-symlinks', 'pkglist=', 'dbpath=']) - except getopt.error, e: - errorprint(_('Options Error: %s.') % e) - usage() -@@ -516,6 +521,8 @@ - cmds['skip-symlinks'] = True - elif arg in ['-i', '--pkglist']: - cmds['pkglist'] = a -+ elif arg == '--dbpath': -+ cmds['dbpath'] = os.path.realpath(a) - - except ValueError, e: - errorprint(_('Options Error: %s') % e)
meta/recipes-support/createrepo/createrepo/createrepo-rpm549.patch deleted +0 -22
@@ -1,22 +0,0 @@ -dumpMetadata.py: Fix for RPM5 - 5.4.9 integration - -RPM5 no longer has a switch to disable signature validation. (Due to security -validation concerns.) - -Upstream-Status: Inappropriate [other] - createrepo does not support RPM5 upstream - -Signed-off-by: Mark Hatle <[email protected]> - -diff -u createrepo-0.4.11.orig/dumpMetadata.py createrepo-0.4.11/dumpMetadata.py ---- createrepo-0.4.11.orig/dumpMetadata.py 2012-06-05 10:12:55.687964222 -0500 -+++ createrepo-0.4.11/dumpMetadata.py 2012-06-05 10:40:08.154060600 -0500 -@@ -92,7 +92,7 @@ - fdno = package # let's assume this is an fdno and go with it :) - except OSError: - raise MDError, "Error opening file" -- ts.setVSFlags((rpm._RPMVSF_NOSIGNATURES|rpm.RPMVSF_NOMD5|rpm.RPMVSF_NEEDPAYLOAD)) -+ ts.setVSFlags((rpm.RPMVSF_NOMD5|rpm.RPMVSF_NEEDPAYLOAD)) - try: - hdr = ts.hdrFromFdno(fdno) - except rpm.error:
meta/recipes-support/createrepo/createrepo/dumpMetadata-disable-signature-validation.patch deleted +0 -31
@@ -1,31 +0,0 @@ -dumpMetadata: disable signature validation - -Makes it possible to work on RPM repositories that contain signed packages -without the need of importing the public part of the signing key into the RPM -database. - -Upstream-Status: Pending - -Signed-off-by: Markus Lehtonen <[email protected]> ---- - dumpMetadata.py | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/dumpMetadata.py b/dumpMetadata.py -index e40e8ac..ca6a82d 100644 ---- a/dumpMetadata.py -+++ b/dumpMetadata.py -@@ -92,7 +92,9 @@ def returnHdr(ts, package): - fdno = package # let's assume this is an fdno and go with it :) - except OSError: - raise MDError, "Error opening file" -- ts.setVSFlags((rpm.RPMVSF_NOMD5|rpm.RPMVSF_NEEDPAYLOAD)) -+ ts.setVSFlags((rpm.RPMVSF_NOMD5|rpm.RPMVSF_NEEDPAYLOAD| -+ rpm.RPMVSF_NODSA|rpm.RPMVSF_NORSA| -+ rpm.RPMVSF_NODSAHEADER|rpm.RPMVSF_NORSAHEADER)) - try: - hdr = ts.hdrFromFdno(fdno) - except rpm.error: --- -2.1.4 -
meta/recipes-support/createrepo/createrepo/fix-native-install.patch deleted +0 -163
163 lines not on this page · raw message
meta/recipes-support/createrepo/createrepo/fixstat.patch deleted +0 -19
@@ -1,19 +0,0 @@ -When reading the mtime from disk, the system can get a floating point -value. Convert this to an int for comparision purposes, else some -packages always get reindexed as the value in the index is an int. -RP 2016/3/2 -Upstream-Status: Pending - -Index: createrepo-0.4.11/readMetadata.py -=================================================================== ---- createrepo-0.4.11.orig/readMetadata.py -+++ createrepo-0.4.11/readMetadata.py -@@ -126,7 +126,7 @@ class MetadataIndex(object): - if self.opts.get('verbose'): - print _("Size (%i -> %i) changed for file %s") % (size,st.st_size,filepath) - return -- if st.st_mtime != mtime: -+ if int(st.st_mtime) != mtime: - if self.opts.get('verbose'): - print _("Modification time changed for %s") % filepath - return
meta/recipes-support/createrepo/createrepo/python-scripts-should-use-interpreter-from-env.patch deleted +0 -47
47 lines not on this page · raw message
meta/recipes-support/createrepo/createrepo/recommends.patch deleted +0 -71
71 lines not on this page · raw message
meta/recipes-support/createrepo/createrepo/rpm-createsolvedb.py deleted +0 -64
64 lines not on this page · raw message
meta/recipes-support/createrepo/createrepo_0.4.11.bb deleted +0 -51
51 lines not on this page · raw message
Signature · 1 line
2.11.0
PATCH 6/44 rpm: add a 4.x recipe
In reply to Alexander KanavinThe dnf stack is written and tested against rpm 4.x. So if we want to use dnf for packaging, we should also use rpm 4 - there's simply too much work involved in making rpm 5 work with it due to significant API differences, and supporting that going forward.
--- ...d-a-color-setting-for-mips64_n32-binaries.patch | 40 ++++++++ ...an-unsatisfiable-dependency-when-building.patch | 33 +++++++ ...code-lib-rpm-as-the-installation-path-for.patch | 61 ++++++++++++ .../0001-Do-not-read-config-files-from-HOME.patch | 38 ++++++++ ...t-the-PATH-environment-variable-before-ru.patch | 30 ++++++ .../files/0001-Fix-build-with-musl-C-library.patch | 74 ++++++++++++++ ...installing-execute-package-scriptlets-wit.patch | 37 +++++++ ...alue-cannot-be-reset-issue-a-notice-inste.patch | 31 ++++++ ...-for-prefixing-etc-from-RPM_ETCCONFIGDIR-.patch | 72 ++++++++++++++ meta/recipes-devtools/rpm/rpm_git.bb | 108 +++++++++++++++++++++ 10 files changed, 524 insertions(+) create mode 100644 meta/recipes-devtools/rpm/files/0001-Add-a-color-setting-for-mips64_n32-binaries.patch create mode 100644 meta/recipes-devtools/rpm/files/0001-Do-not-add-an-unsatisfiable-dependency-when-building.patch create mode 100644 meta/recipes-devtools/rpm/files/0001-Do-not-hardcode-lib-rpm-as-the-installation-path-for.patch create mode 100644 meta/recipes-devtools/rpm/files/0001-Do-not-read-config-files-from-HOME.patch create mode 100644 meta/recipes-devtools/rpm/files/0001-Do-not-reset-the-PATH-environment-variable-before-ru.patch create mode 100644 meta/recipes-devtools/rpm/files/0001-Fix-build-with-musl-C-library.patch create mode 100644 meta/recipes-devtools/rpm/files/0001-When-cross-installing-execute-package-scriptlets-wit.patch create mode 100644 meta/recipes-devtools/rpm/files/0001-When-nice-value-cannot-be-reset-issue-a-notice-inste.patch create mode 100644 meta/recipes-devtools/rpm/files/0002-Add-support-for-prefixing-etc-from-RPM_ETCCONFIGDIR-.patch create mode 100644 meta/recipes-devtools/rpm/rpm_git.bb
meta/recipes-devtools/rpm/files/0001-Add-a-color-setting-for-mips64_n32-binaries.patch new file +40 -0
@@ -0,0 +1,40 @@ +From e3eff024826550aec4a6a5baef7210a29faf299d Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <[email protected]> +Date: Thu, 9 Mar 2017 18:54:02 +0200 +Subject: [PATCH] Add a color setting for mips64_n32 binaries + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin <[email protected]> +--- + build/rpmfc.c | 1 + + rpmrc.in | 2 ++ + 2 files changed, 3 insertions(+) + +diff --git a/build/rpmfc.c b/build/rpmfc.c +index d38a10916..c8e2f876a 100644 +--- a/build/rpmfc.c ++++ b/build/rpmfc.c +@@ -622,6 +622,7 @@ exit: + static const struct rpmfcTokens_s rpmfcTokens[] = { + { "directory", RPMFC_INCLUDE }, + ++ { "N32 MIPS64", RPMFC_ELFMIPSN32|RPMFC_INCLUDE }, + { "ELF 32-bit", RPMFC_ELF32|RPMFC_INCLUDE }, + { "ELF 64-bit", RPMFC_ELF64|RPMFC_INCLUDE }, + +diff --git a/rpmrc.in b/rpmrc.in +index abc08fc31..f5bc820d8 100644 +--- a/rpmrc.in ++++ b/rpmrc.in +@@ -133,6 +133,8 @@ archcolor: mipsr6el 1 + archcolor: mips64r6 2 + archcolor: mips64r6el 2 + ++archcolor: mips64_n32 4 ++ + archcolor: m68k 1 + + archcolor: m68kmint 1 +-- +2.11.0 +
meta/recipes-devtools/rpm/files/0001-Do-not-add-an-unsatisfiable-dependency-when-building.patch new file +33 -0
@@ -0,0 +1,33 @@ +From 87cfc0db1ed6fe381a5ed5f0016d8c3344a31a11 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <[email protected]> +Date: Mon, 9 Jan 2017 18:52:11 +0200 +Subject: [PATCH] Do not add an unsatisfiable dependency when building rpms in + a short-circuited way. + +Upstream permits short-circuiting only for local testing; Yocto on the other +hand produces rpms that way by design. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin <[email protected]> +--- + build/pack.c | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/build/pack.c b/build/pack.c +index 1261cdbba..bb2d6f4f6 100644 +--- a/build/pack.c ++++ b/build/pack.c +@@ -595,10 +595,6 @@ rpmRC packageBinaries(rpmSpec spec, const char *cookie, int cheating) + headerPutBin(pkg->header, RPMTAG_SOURCEPKGID, spec->sourcePkgId,16); + } + +- if (cheating) { +- (void) rpmlibNeedsFeature(pkg, "ShortCircuited", "4.9.0-1"); +- } +- + { char *binFormat = rpmGetPath("%{_rpmfilename}", NULL); + char *binRpm, *binDir; + binRpm = headerFormat(pkg->header, binFormat, &errorString); +-- +2.11.0 +
meta/recipes-devtools/rpm/files/0001-Do-not-hardcode-lib-rpm-as-the-installation-path-for.patch new file +61 -0
61 lines not on this page · raw message
meta/recipes-devtools/rpm/files/0001-Do-not-read-config-files-from-HOME.patch new file +38 -0
@@ -0,0 +1,38 @@ +From 35381b6cd6c1b571bf7e6b0640de0f54dbf94386 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <[email protected]> +Date: Tue, 10 Jan 2017 14:11:30 +0200 +Subject: [PATCH] Do not read config files from $HOME + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin <[email protected]> +--- + lib/rpmrc.c | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +diff --git a/lib/rpmrc.c b/lib/rpmrc.c +index 4ed991321..19fe80f98 100644 +--- a/lib/rpmrc.c ++++ b/lib/rpmrc.c +@@ -458,8 +458,7 @@ static void setDefaults(void) + if (!defrcfiles) { + defrcfiles = rstrscat(NULL, confdir, "/rpmrc", ":", + confdir, "/" RPMCANONVENDOR "/rpmrc", ":", +- SYSCONFDIR "/rpmrc", ":", +- "~/.rpmrc", NULL); ++ SYSCONFDIR "/rpmrc", ":"); + } + + #ifndef MACROFILES +@@ -471,8 +470,7 @@ static void setDefaults(void) + confdir, "/" RPMCANONVENDOR "/macros", ":", + SYSCONFDIR "/rpm/macros.*", ":", + SYSCONFDIR "/rpm/macros", ":", +- SYSCONFDIR "/rpm/%{_target}/macros", ":", +- "~/.rpmmacros", NULL); ++ SYSCONFDIR "/rpm/%{_target}/macros", ":"); + } + #else + macrofiles = MACROFILES; +-- +2.11.0 +
meta/recipes-devtools/rpm/files/0001-Do-not-reset-the-PATH-environment-variable-before-ru.patch new file +30 -0
@@ -0,0 +1,30 @@ +From ffb5301a8594140ad7a58bc0f2053be8ca2b2946 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <[email protected]> +Date: Fri, 20 Jan 2017 13:32:06 +0200 +Subject: [PATCH 1/2] Do not reset the PATH environment variable before running + scriptlets. + +We add lots of native stuff into it and scriptlets rely on that. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin <[email protected]> +--- + lib/rpmscript.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/rpmscript.c b/lib/rpmscript.c +index 92f949fa2..7c1aa75a8 100644 +--- a/lib/rpmscript.c ++++ b/lib/rpmscript.c +@@ -201,7 +201,7 @@ static void doScriptExec(ARGV_const_t argv, ARGV_const_t prefixes, + if (ipath && ipath[5] != '%') + path = ipath; + +- xx = setenv("PATH", path, 1); ++ //xx = setenv("PATH", path, 1); + free(ipath); + } + +-- +2.11.0 +
meta/recipes-devtools/rpm/files/0001-Fix-build-with-musl-C-library.patch new file +74 -0
74 lines not on this page · raw message
meta/recipes-devtools/rpm/files/0001-When-cross-installing-execute-package-scriptlets-wit.patch new file +37 -0
@@ -0,0 +1,37 @@ +From a6f269f879221f2777169c5f7291322afe6b661b Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <[email protected]> +Date: Tue, 17 Jan 2017 14:07:17 +0200 +Subject: [PATCH] When cross-installing, execute package scriptlets without + chrooting into destination rootfs + +This is triggered only when RPM_NO_CHROOT_FOR_SCRIPTS environment variable is defined. +Otherwise they will trigger an explosion of failures, obviously. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin <[email protected]> +--- + lib/rpmscript.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/lib/rpmscript.c b/lib/rpmscript.c +index 98d3f420d..b95b5d606 100644 +--- a/lib/rpmscript.c ++++ b/lib/rpmscript.c +@@ -467,7 +467,13 @@ rpmRC rpmScriptRun(rpmScript script, int arg1, int arg2, FD_t scriptFd, + + if (rc != RPMRC_FAIL) { + if (script_type & RPMSCRIPTLET_EXEC) { +- rc = runExtScript(plugins, prefixes, script->descr, lvl, scriptFd, &args, script->body, arg1, arg2, &script->nextFileFunc); ++ if (getenv("RPM_NO_CHROOT_FOR_SCRIPTS") != NULL) { ++ rpmChrootOut(); ++ rc = runExtScript(plugins, prefixes, script->descr, lvl, scriptFd, &args, script->body, arg1, arg2, &script->nextFileFunc); ++ rpmChrootIn(); ++ } else { ++ rc = runExtScript(plugins, prefixes, script->descr, lvl, scriptFd, &args, script->body, arg1, arg2, &script->nextFileFunc); ++ } + } else { + rc = runLuaScript(plugins, prefixes, script->descr, lvl, scriptFd, &args, script->body, arg1, arg2, &script->nextFileFunc); + } +-- +2.11.0 +
meta/recipes-devtools/rpm/files/0001-When-nice-value-cannot-be-reset-issue-a-notice-inste.patch new file +31 -0
@@ -0,0 +1,31 @@ +From d42ece6fa15b98d7f9221b90b85b78631df2c0a0 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <[email protected]> +Date: Tue, 14 Feb 2017 13:51:19 +0200 +Subject: [PATCH] When nice value cannot be reset, issue a notice instead of a + warning + +Otherwise build logs on the autobuilder get very clutter, as it +doesn't allow the nice value to be reset for some reason. + +Upstream-Status: Inappropriate [oe specific] +Signed-off-by: Alexander Kanavin <[email protected]> +--- + lib/rpmscript.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/rpmscript.c b/lib/rpmscript.c +index 5e1e99906..3975aead8 100644 +--- a/lib/rpmscript.c ++++ b/lib/rpmscript.c +@@ -347,7 +347,7 @@ static rpmRC runExtScript(rpmPlugins plugins, ARGV_const_t prefixes, + int ret; + ret = setpriority(PRIO_PROCESS, 0, 0); + if (ret == -1) { +- rpmlog(RPMLOG_WARNING, _("Unable to reset nice value: %s"), ++ rpmlog(RPMLOG_NOTICE, _("Unable to reset nice value: %s\n"), + strerror(errno)); + } + +-- +2.11.0 +
meta/recipes-devtools/rpm/files/0002-Add-support-for-prefixing-etc-from-RPM_ETCCONFIGDIR-.patch new file +72 -0
72 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm_git.bb new file +108 -0
108 lines not on this page · raw message
Signature · 1 line
2.11.0
PATCH 7/44 rpm: remove 5.x recipe
In reply to Alexander Kanavin--- ...1-Disable-__sync_add_and_fetch_8-on-nios2.patch | 30 - .../rpm/rpm/0001-define-EM_AARCH64.patch | 35 - .../0001-macros-add-_gpg_sign_cmd_extra_args.patch | 43 - .../rpm/rpm/0001-rpm-Fix-build-on-musl.patch | 294 ------ ...0001-system.h-query.c-support-nosignature.patch | 63 -- ...arseArgvString-to-parse-the-_gpg_check_pa.patch | 49 - .../configure.ac-check-for-both-gpg2-and-gpg.patch | 29 - meta/recipes-devtools/rpm/rpm/dbconvert.patch | 27 - meta/recipes-devtools/rpm/rpm/debugedit-segv.patch | 100 -- ...debugedit-valid-file-to-fix-segment-fault.patch | 65 -- meta/recipes-devtools/rpm/rpm/gcc6-stdlib.patch | 54 - .../rpm/rpm/header-include-fix.patch | 36 - .../rpm/rpm/makefile-am-exec-hook.patch | 33 - .../rpm/rpm/no-ldflags-in-pkgconfig.patch | 14 - meta/recipes-devtools/rpm/rpm/perfile_rpmdeps.sh | 50 - .../rpm/popt-disable-auto-stack-protector.patch | 27 - .../rpm/rpm/python-rpm-rpmsense.patch | 31 - meta/recipes-devtools/rpm/rpm/pythondeps.sh | 16 - meta/recipes-devtools/rpm/rpm/rpm-atomic-ops.patch | 73 -- .../rpm/rpm/rpm-autogen-force.patch | 78 -- meta/recipes-devtools/rpm/rpm/rpm-autogen.patch | 25 - meta/recipes-devtools/rpm/rpm/rpm-canonarch.patch | 136 --- .../rpm/rpm-check-rootpath-reasonableness.patch | 96 -- meta/recipes-devtools/rpm/rpm/rpm-db-reduce.patch | 19 - meta/recipes-devtools/rpm/rpm/rpm-db5-or-db6.patch | 174 ---- meta/recipes-devtools/rpm/rpm/rpm-db60.patch | 56 - .../rpm/rpm/rpm-db_buffer_small.patch | 77 -- .../rpm/rpm/rpm-debug-platform.patch | 65 -- .../rpm/rpm/rpm-disable-auto-stack-protector.patch | 24 - .../rpm/rpm/rpm-disable-blaketest.patch | 28 - ...-ensure-rpm2cpio-call-rpm-relocation-code.patch | 25 - meta/recipes-devtools/rpm/rpm/rpm-fileclass.patch | 36 - .../rpm/rpm/rpm-fix-logio-cp.patch | 30 - .../rpm-fix-lua-tests-compilation-failure.patch | 43 - .../rpm/rpm/rpm-fix-parseEmbedded.patch | 27 - meta/recipes-devtools/rpm/rpm/rpm-gnu-atomic.patch | 64 -- .../rpm/rpm/rpm-hardlink-segfault-fix.patch | 43 - .../rpm/rpm/rpm-keccak-sse-intrin.patch | 27 - ...ction.c-fix-file-conflicts-for-mips64-N32.patch | 52 - meta/recipes-devtools/rpm/rpm/rpm-libsql-fix.patch | 22 - .../recipes-devtools/rpm/rpm/rpm-log-auto-rm.patch | 15 - .../rpm/rpm/rpm-lsb-compatibility.patch | 24 - meta/recipes-devtools/rpm/rpm/rpm-lua.patch | 33 - ...rpm-macros.in-disable-external-key-server.patch | 31 - meta/recipes-devtools/rpm/rpm/rpm-macros.patch | 64 -- .../rpm/rpm/rpm-mongodb-sasl.patch | 69 -- meta/recipes-devtools/rpm/rpm/rpm-no-loopmsg.patch | 19 - .../rpm/rpm/rpm-no-perl-urpm.patch | 47 - ...b-before-verifyscript-to-avoid-null-point.patch | 24 - meta/recipes-devtools/rpm/rpm/rpm-ossp-uuid.patch | 23 - .../rpm/rpm/rpm-packageorigin.patch | 25 - .../rpm/rpm/rpm-payload-use-hashed-inode.patch | 126 --- .../rpm/rpm/rpm-pkgconfigdeps.patch | 37 - .../rpm/rpm/rpm-platform-file-fix.patch | 28 - meta/recipes-devtools/rpm/rpm/rpm-platform.patch | 137 --- meta/recipes-devtools/rpm/rpm/rpm-platform2.patch | 105 -- meta/recipes-devtools/rpm/rpm/rpm-py-init.patch | 29 - .../rpm/rpm/rpm-python-AddErase.patch | 35 - .../rpm/rpm/rpm-python-restore-origin.patch | 49 - .../rpm/rpm/rpm-python-tagname.patch | 24 - meta/recipes-devtools/rpm/rpm/rpm-realpath.patch | 24 - .../rpm/rpm/rpm-reloc-macros.patch | 31 - meta/recipes-devtools/rpm/rpm/rpm-resolvedep.patch | 40 - .../rpm/rpm/rpm-rpmdb-grammar.patch | 124 --- .../rpm/rpm/rpm-rpmfc.c-fix-for-N32-MIPS64.patch | 34 - .../rpm/rpm/rpm-rpmio-headers.patch | 19 - .../recipes-devtools/rpm/rpm/rpm-rpmpgp-popt.patch | 26 - .../rpm/rpm/rpm-scriptletexechelper.patch | 159 --- meta/recipes-devtools/rpm/rpm/rpm-showrc.patch | 26 - .../rpm/rpm/rpm-syck-fix-gram.patch | 1081 -------------------- .../rpm-tag-generate-endian-conversion-fix.patch | 50 - .../rpm/rpm/rpm-tagname-type.patch | 25 - .../rpm/rpm/rpm-tools-mtree-LDFLAGS.patch | 24 - .../rpm/rpm/rpm-uuid-include.patch | 40 - meta/recipes-devtools/rpm/rpm/rpm2cpio | 39 - meta/recipes-devtools/rpm/rpm/rpmatch.patch | 34 - ...more-verbose-error-logging-in-rpmTempFile.patch | 31 - .../rpmdb-prevent-race-in-tmpdir-creation.patch | 41 - meta/recipes-devtools/rpm/rpm/rpmdeps-oecore.patch | 194 ---- ...heck-_gpg_passphrase-before-ask-for-input.patch | 70 -- .../recipes-devtools/rpm/rpm/rpmqv_cc_b_gone.patch | 50 - meta/recipes-devtools/rpm/rpm/uclibc-support.patch | 63 -- meta/recipes-devtools/rpm/rpm_5.4.16.bb | 712 ------------- 83 files changed, 6097 deletions(-) delete mode 100644 meta/recipes-devtools/rpm/rpm/0001-Disable-__sync_add_and_fetch_8-on-nios2.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/0001-define-EM_AARCH64.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/0001-macros-add-_gpg_sign_cmd_extra_args.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/0001-rpm-Fix-build-on-musl.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/0001-system.h-query.c-support-nosignature.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/0001-using-poptParseArgvString-to-parse-the-_gpg_check_pa.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/configure.ac-check-for-both-gpg2-and-gpg.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/dbconvert.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/debugedit-segv.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/debugedit-valid-file-to-fix-segment-fault.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/gcc6-stdlib.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/header-include-fix.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/makefile-am-exec-hook.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/no-ldflags-in-pkgconfig.patch delete mode 100755 meta/recipes-devtools/rpm/rpm/perfile_rpmdeps.sh delete mode 100644 meta/recipes-devtools/rpm/rpm/popt-disable-auto-stack-protector.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/python-rpm-rpmsense.patch delete mode 100755 meta/recipes-devtools/rpm/rpm/pythondeps.sh delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-atomic-ops.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-autogen-force.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-autogen.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-canonarch.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-check-rootpath-reasonableness.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-db-reduce.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-db5-or-db6.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-db60.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-db_buffer_small.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-debug-platform.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-disable-auto-stack-protector.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-disable-blaketest.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-ensure-rpm2cpio-call-rpm-relocation-code.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-fileclass.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-fix-logio-cp.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-fix-lua-tests-compilation-failure.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-fix-parseEmbedded.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-gnu-atomic.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-hardlink-segfault-fix.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-keccak-sse-intrin.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-lib-transaction.c-fix-file-conflicts-for-mips64-N32.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-libsql-fix.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-log-auto-rm.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-lsb-compatibility.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-lua.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-macros.in-disable-external-key-server.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-macros.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-mongodb-sasl.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-no-loopmsg.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-no-perl-urpm.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-opendb-before-verifyscript-to-avoid-null-point.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-ossp-uuid.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-packageorigin.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-payload-use-hashed-inode.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-pkgconfigdeps.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-platform-file-fix.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-platform.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-platform2.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-py-init.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-python-AddErase.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-python-restore-origin.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-python-tagname.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-realpath.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-reloc-macros.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-resolvedep.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-rpmdb-grammar.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-rpmfc.c-fix-for-N32-MIPS64.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-rpmio-headers.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-rpmpgp-popt.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-scriptletexechelper.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-showrc.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-syck-fix-gram.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-tag-generate-endian-conversion-fix.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-tagname-type.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-tools-mtree-LDFLAGS.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-uuid-include.patch delete mode 100755 meta/recipes-devtools/rpm/rpm/rpm2cpio delete mode 100644 meta/recipes-devtools/rpm/rpm/rpmatch.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpmdb-more-verbose-error-logging-in-rpmTempFile.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpmdb-prevent-race-in-tmpdir-creation.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpmdeps-oecore.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpmqv.c-check-_gpg_passphrase-before-ask-for-input.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/rpmqv_cc_b_gone.patch delete mode 100644 meta/recipes-devtools/rpm/rpm/uclibc-support.patch delete mode 100644 meta/recipes-devtools/rpm/rpm_5.4.16.bb
meta/recipes-devtools/rpm/rpm/0001-Disable-__sync_add_and_fetch_8-on-nios2.patch deleted +0 -30
@@ -1,30 +0,0 @@ -From 06967a50f20095f5ca30b8214f4c98ba0f5262bf Mon Sep 17 00:00:00 2001 -From: Marek Vasut <[email protected]> -Date: Sun, 3 Apr 2016 06:55:25 +0200 -Subject: [PATCH] Disable __sync_add_and_fetch_8 on nios2 - -The NIOS2 softcore does not implement the __sync_add_and_fetch_8, -so disable it accordingly. - -Signed-off-by: Marek Vasut <[email protected]> -Upstream-Status: Submitted ---- - rpmio/bson.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/rpmio/bson.h b/rpmio/bson.h -index 57023f1..60c7d02 100644 ---- a/rpmio/bson.h -+++ b/rpmio/bson.h -@@ -880,7 +880,7 @@ BSON_END_DECLS - BSON_BEGIN_DECLS - - /* Some architectures do not support __sync_add_and_fetch_8 */ --#if (__mips == 32) || (defined(__PPC__) && !defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8)) -+#if (__mips == 32) || (__nios2__) || (defined(__PPC__) && !defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8)) - # define __BSON_NEED_ATOMIC_64 1 - #endif - --- -2.8.0.rc3 -
meta/recipes-devtools/rpm/rpm/0001-define-EM_AARCH64.patch deleted +0 -35
@@ -1,35 +0,0 @@ -[PATCH] define EM_AARCH64 - -Upstream-Status: Submitted [RPM5 maintainer] - -EM_AARCH64 maybe not be defined due to old version elf.h, and lead to -that debugedit can not work on aarch64 elf object files, since there is -no other dependence, except these two macro, define them to make -debugedit work on aarch64 elf files. - -Signed-off-by: Roy Li <[email protected]> ---- - tools/debugedit.c | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/tools/debugedit.c b/tools/debugedit.c -index de693ed..d16a641 100644 ---- a/tools/debugedit.c -+++ b/tools/debugedit.c -@@ -35,6 +35,13 @@ - - #include <gelf.h> - -+#ifndef EM_AARCH64 -+#define EM_AARCH64 183 /* ARM AARCH64 */ -+#endif -+#ifndef R_AARCH64_ABS32 -+#define R_AARCH64_ABS32 258 -+#endif -+ - /* some defines taken from the dwarf standard */ - - #define DW_TAG_compile_unit 0x11 --- -1.9.1 -
meta/recipes-devtools/rpm/rpm/0001-macros-add-_gpg_sign_cmd_extra_args.patch deleted +0 -43
43 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/0001-rpm-Fix-build-on-musl.patch deleted +0 -294
294 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/0001-system.h-query.c-support-nosignature.patch deleted +0 -63
63 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/0001-using-poptParseArgvString-to-parse-the-_gpg_check_pa.patch deleted +0 -49
49 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/configure.ac-check-for-both-gpg2-and-gpg.patch deleted +0 -29
@@ -1,29 +0,0 @@ -configure.ac: search for both gpg2 and gpg - -On some platforms the GnuPG binary is named 'gpg2' whereas others have 'gpg'. -This patch increases compatibility by searching for 'gpg' in addition to -'gpg2'. - -Upstream-Status: Pending - -Signed-off-by: Markus Lehtonen <[email protected]> ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 6746b4c..f6922ae 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -562,7 +562,7 @@ AC_PATH_PROG(__DIFF, diff, /bin/diff, $MYPATH) - AC_PATH_PROG(__DITTO, ditto, %{_bindir}/ditto, $MYPATH) - AC_PATH_PROG(__FILE, file, %{_bindir}/file, $MYPATH) - AC_PATH_PROG(__GIT, git, %{_bindir}/git, $MYPATH) --AC_PATH_PROG(__GPG, gpg2, %{_bindir}/gpg2, $MYPATH) -+AC_PATH_PROGS(__GPG, [gpg2 gpg], %{_bindir}/gpg2, $MYPATH) - AC_PATH_PROG(__GSR, gsr, %{_bindir}/gsr, $MYPATH) - AC_PATH_PROG(__GST_INSPECT, gst-inspect-0.10, %{_bindir}/gst-inspect-0.10, $MYPATH) - AC_PATH_PROG(__GZIP, gzip, /bin/gzip, $MYPATH) --- -2.1.4 -
meta/recipes-devtools/rpm/rpm/dbconvert.patch deleted +0 -27
@@ -1,27 +0,0 @@ -Upstream-Status: Inappropriate - -Hack to prevent unneeded demo app from building on older libc -where it will break the build - -Index: rpm-5.4.14/tools/Makefile.am -=================================================================== ---- rpm-5.4.14.orig/tools/Makefile.am -+++ rpm-5.4.14/tools/Makefile.am -@@ -29,7 +29,7 @@ EXTRA_PROGRAMS = nix-copy-closure nix-en - xiu-instantiate xiu-store - noinst_PROGRAMS = - --EXTRA_PROGRAMS += augtool cudftool dbconvert debugedit \ -+EXTRA_PROGRAMS += augtool cudftool debugedit \ - nix-build nix-channel nix-collect-garbage \ - nix-log2xml nix-prefetch-url nix-pull nix-push \ - xiu-echo xiu-hash \ -@@ -64,7 +64,7 @@ pkgbin_PROGRAMS = \ - rpmcache rpmdigest rpmrepo rpmspecdump \ - rpmcmp rpmdeps rpmdeps-oecore sqlite3 @WITH_KEYUTILS_RPMKEY@ @WITH_LIBELF_DEBUGEDIT@ - if WITH_DB --pkgbin_PROGRAMS += dbconvert -+pkgbin_PROGRAMS += - endif - dist_man_MANS = rpmgrep.1 -
meta/recipes-devtools/rpm/rpm/debugedit-segv.patch deleted +0 -100
100 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/debugedit-valid-file-to-fix-segment-fault.patch deleted +0 -65
65 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/gcc6-stdlib.patch deleted +0 -54
54 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/header-include-fix.patch deleted +0 -36
@@ -1,36 +0,0 @@ -Update two rpm headers to include other headers. - -Using rpmdb.h w/o including errno.h may result in a warning. - -Using rpmtag.h w/o also adding stdint.h will result in numerous failures -about unknown types on modern compilers. - -Upstream-Status: Submitted [RPM5 maintainer] - -Signed-off-by: Qing He <[email protected]> -Signed-off-by: Mark Hatle <[email protected]> - -Index: rpm-5.4.14/rpmdb/rpmdb.h -=================================================================== ---- rpm-5.4.14.orig/rpmdb/rpmdb.h -+++ rpm-5.4.14/rpmdb/rpmdb.h -@@ -9,6 +9,7 @@ - - #include <assert.h> - #include <mire.h> -+#include <errno.h> - - #include <rpmtypes.h> - #include <rpmtag.h> /* XXX Header typedef */ -Index: rpm-5.4.14/rpmdb/rpmtag.h -=================================================================== ---- rpm-5.4.14.orig/rpmdb/rpmtag.h -+++ rpm-5.4.14/rpmdb/rpmtag.h -@@ -7,6 +7,7 @@ - - #include <rpmiotypes.h> - #include <rpmsw.h> -+#include <stdint.h> - - #ifdef __cplusplus - extern "C" {
meta/recipes-devtools/rpm/rpm/makefile-am-exec-hook.patch deleted +0 -33
@@ -1,33 +0,0 @@ -rpm: Resolve parallel install issue when installing lua - -When lua is being installed on some systems that are being run with high levels -of parallelization there are cases where install-data-am and install-exec-hook -are processed at the same or a very short time apart. This causes -install-pkgbinPROGRAMS, which is a dependency of both, to be run at around the -same time This sometimes causes file contention and will sometimes be in a state -where install-exec-hook is looking for a file that is being installed or both -install-pkgbinPROGRAMS being run are installing the same file and fail because -it cannon create a new file. - -This patch allows install-exec-hook to be called by install-data-am instead of -install-exec-am. It also removed the dependency in install-data-hook on -install-pkgbinPROGRAMS. This means install-pkgbinPROGRAMS will only be run once -so there whould be any file contention. - -Upstream-Status: Submitted [RPM5 maintainer] - -Signed-off-by: Morgan Little <[email protected]> - -Index: rpm-5.4.14/lua/Makefile.am -=================================================================== ---- rpm-5.4.14.orig/lua/Makefile.am -+++ rpm-5.4.14/lua/Makefile.am -@@ -326,7 +326,7 @@ clean-local: - # XXX Build & install as rpmlua/rpmluac with hardlinks to lua/luac post install. - # XXX CVS has lua/luac sub-directories in the Attic that collide with the - # XXX lua/luac executable names when using cvs update. --install-exec-hook: install-pkgbinPROGRAMS -+install-data-hook: - mkdir -p $(DESTDIR)$(pkgbindir) - $(__RM) -f $(DESTDIR)$(pkgbindir)/lua - $(__LN) $(DESTDIR)$(pkgbindir)/rpmlua $(DESTDIR)$(pkgbindir)/lua
meta/recipes-devtools/rpm/rpm/no-ldflags-in-pkgconfig.patch deleted +0 -14
@@ -1,14 +0,0 @@ -Don't put LDFLAGS into the Libs.private, all it generally contains is a linker -hash selection (harmless) and the absolute path to the libdir in the sysroot -(actively harmful). - -Upstream-Status: Pending -Signed-off-by: Ross Burton <[email protected]> - -diff --git a/scripts/rpm.pc.in b/scripts/rpm.pc.in -index 8293471..2ea469c 100644 ---- a/scripts/rpm.pc.in -+++ b/scripts/rpm.pc.in -@@ -17 +17 @@ Libs: -L${libdir} -lrpmbuild${suffix} -lrpm${suffix} -lrpmdb${suffix} -lrpmio${s --Libs.private: @LDFLAGS@ @LIBS@ -+Libs.private: @LIBS@
meta/recipes-devtools/rpm/rpm/perfile_rpmdeps.sh deleted +0 -50
50 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/popt-disable-auto-stack-protector.patch deleted +0 -27
@@ -1,27 +0,0 @@ -popt: Disable default stack protection on internal version of popt - -Upstream-Status: Inappropriate [configuration] - -Signed-off-by: Mark Hatle <[email protected]> - -Index: rpm-5.4.15/popt/configure.ac -=================================================================== ---- rpm-5.4.15.orig/popt/configure.ac -+++ rpm-5.4.15/popt/configure.ac -@@ -123,7 +123,6 @@ AS_IF([test "x$popt_gcc_warnings" = xyes - popt_CFLAGS_ADD([-Wjump-misses-init],[POPT_CFLAGS]) - popt_CFLAGS_ADD([-Wno-format-nonliteral],[POPT_CFLAGS]) - popt_CFLAGS_ADD([-Wframe-larger-than=$MAX_STACK_SIZE],[POPT_CFLAGS]) -- popt_CFLAGS_ADD([-fstack-protector-all],[POPT_CFLAGS]) - popt_CFLAGS_ADD([-fasynchronous-unwind-tables],[POPT_CFLAGS]) - popt_CFLAGS_ADD([-fdiagnostics-show-option],[POPT_CFLAGS]) - popt_CFLAGS_ADD([-funit-at-a-time],[POPT_CFLAGS]) -@@ -203,7 +202,7 @@ AC_SUBST([POPT_LDFLAGS]) - # -fno-delete-null-pointer as the kernel does http://patchwork.kernel.org/patch/36060/ - # GNU GCC (usually "gcc") - AS_IF([test "x$GCC" != x], -- [ for c in -fno-delete-null-pointer-checks -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector -fexceptions -+ [ for c in -fno-delete-null-pointer-checks -fexceptions - do - popt_CFLAGS_ADD([$c], [POPT_CFLAGS]) - done
meta/recipes-devtools/rpm/rpm/python-rpm-rpmsense.patch deleted +0 -31
@@ -1,31 +0,0 @@ -rpmmodule.c: Export a few additional RPMSENSE values - -We want to see the RPMSENSE_SCRIPT values for use with SMART. We also -want to see the MISSINGOK value so we can avoid recommended packages causing -failures. - -Upstream-Status: Submitted [RPM5 maintainer] - -Signed-off-by: Mark Hatle <[email protected]> - -Index: rpm/python/rpmmodule.c -=================================================================== ---- rpm.orig/python/rpmmodule.c -+++ rpm/python/rpmmodule.c -@@ -525,12 +525,15 @@ static int initModule(PyObject *m) - REGISTER_ENUM(RPMSENSE_PREREQ); - REGISTER_ENUM(RPMSENSE_PRETRANS); - REGISTER_ENUM(RPMSENSE_INTERP); -+#else -+ #if defined(RPM_VENDOR_WINDRIVER) || defined(RPM_VENDOR_OE) - REGISTER_ENUM(RPMSENSE_SCRIPT_PRE); - REGISTER_ENUM(RPMSENSE_SCRIPT_POST); - REGISTER_ENUM(RPMSENSE_SCRIPT_PREUN); - REGISTER_ENUM(RPMSENSE_SCRIPT_POSTUN); - REGISTER_ENUM(RPMSENSE_SCRIPT_VERIFY); --#else -+ REGISTER_ENUM(RPMSENSE_MISSINGOK); -+ #endif - REGISTER_ENUM(RPMSENSE_NOTEQUAL); - #endif - REGISTER_ENUM(RPMSENSE_FIND_REQUIRES);
meta/recipes-devtools/rpm/rpm/pythondeps.sh deleted +0 -16
@@ -1,16 +0,0 @@ -#!/bin/sh - -[ $# -ge 1 ] || { - cat > /dev/null - exit 0 -} - -case $1 in --R|--requires) - shift - grep "/usr/\(lib[^/]*\|share\)/python[^/]*/" >/dev/null && echo "python" - exit 0 - ;; -esac - -exit 0
meta/recipes-devtools/rpm/rpm/rpm-atomic-ops.patch deleted +0 -73
73 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/rpm-autogen-force.patch deleted +0 -78
78 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/rpm-autogen.patch deleted +0 -25
@@ -1,25 +0,0 @@ -Remove the sanity checking from the rpm autogen.sh. This is required because -we may have slightly different, but yet compatible versions. If we do end -up breaking things, we'll deal with it at that time. - -Upstream-Status: Inappropriate [configuration] - -Signed-off-by: Mark Hatle <[email protected]> - -Index: rpm-5.4.14/syck/autogen.sh -=================================================================== ---- rpm-5.4.14.orig/syck/autogen.sh -+++ rpm-5.4.14/syck/autogen.sh -@@ -34,12 +34,6 @@ libtoolize () { - eval $_libtoolize $_libtoolize_args - } - --# requirements sanity check --[ "`automake --version | head -1`" != "$AMV" ] && echo "$USAGE" # && exit 1 --[ "`autoconf --version | head -1`" != "$ACV" ] && echo "$USAGE" # && exit 1 --[ "`libtoolize --version | head -1`" != "$LTV" ] && echo "$USAGE" # && exit 1 --[ "`gettextize --version | head -1 | sed -e 's;^.*/\\(gettextize\\);\\1;'`" != "$GTT" ] && echo "$USAGE" # && exit 1 -- - echo "---> generate files via GNU libtool (libtoolize)" - libtoolize --quiet --copy --force --install - echo "---> generate files via GNU autoconf (aclocal, autoheader)"
meta/recipes-devtools/rpm/rpm/rpm-canonarch.patch deleted +0 -136
136 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/rpm-check-rootpath-reasonableness.patch deleted +0 -96
96 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/rpm-db-reduce.patch deleted +0 -19
@@ -1,19 +0,0 @@ -Upstream-Status: Inappropriate [configuration] - -Change cache size to reduce the usage of disk space from 62MB to 26MB. - -Signed-off-by: Mei Lei <[email protected]> - -Index: rpm-5.4.14/rpmdb/DB_CONFIG.in -=================================================================== ---- rpm-5.4.14.orig/rpmdb/DB_CONFIG.in -+++ rpm-5.4.14/rpmdb/DB_CONFIG.in -@@ -29,7 +29,7 @@ set_thread_count 64 - - # ================ Memory Pool - #XXX initializing dbenv with set_cachesize has unimplemented prerequsites --#set_cachesize 0 1048576 0 -+set_cachesize 0 1048576 0 - set_mp_mmapsize 268435456 - - # ================ Locking
meta/recipes-devtools/rpm/rpm/rpm-db5-or-db6.patch deleted +0 -174
174 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/rpm-db60.patch deleted +0 -56
56 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/rpm-db_buffer_small.patch deleted +0 -77
77 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/rpm-debug-platform.patch deleted +0 -65
65 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/rpm-disable-auto-stack-protector.patch deleted +0 -24
@@ -1,24 +0,0 @@ -Make security switches manual settings - -RPM checks for the availability of the stack protector switch and -transactional-memory support. If supported it unconditionally -enables the compiler options which can cause errors if the support has -not been built into the compiler. - -Upstream-Status: Inappropriate [configuration] - -Signed-off-by: Mark Hatle <[email protected]> - -Index: rpm-5.4.15/configure.ac -=================================================================== ---- rpm-5.4.15.orig/configure.ac -+++ rpm-5.4.15/configure.ac -@@ -425,7 +425,7 @@ dnl # rpm_CFLAGS_ADD([-fstack-arrays],[ - dnl # build RPM instrumented for extra optimization/security (GCC only) - dnl # --- other optimizations - rpm_CFLAGS_ADD([-fexceptions], [RPM_CFLAGS]) -- rpm_CFLAGS_ADD([-D_FORTIFY_SOURCE=2 -fstack-protector], [RPM_CFLAGS]) -+dnl rpm_CFLAGS_ADD([-D_FORTIFY_SOURCE=2 -fstack-protector], [RPM_CFLAGS]) - dnl # rpm_CFLAGS_ADD([-fstack-protector-all],[RPM_CFLAGS]) - - if test \( ".`$CC --version 2>&1 | grep 'GCC'`" != . \); then
meta/recipes-devtools/rpm/rpm/rpm-disable-blaketest.patch deleted +0 -28
@@ -1,28 +0,0 @@ -rpmio: Disable building of the tblake2 test(s). - -There is some type of a dependency fault here that can occasionally result in: - -gcc: error: tblake2b.o: No such file or directory -or -gcc: error: tblake2bp.o: No such file or directory - -These items are simply test cases that are not packaged, so they can be -safely disabled to resolve the dependency issue. - -Upstream-Status: Inappropriate [workaround] - -Signed-off-by: Mark Hatle <[email protected]> - -Index: rpm-5.4.15/rpmio/Makefile.am -=================================================================== ---- rpm-5.4.15.orig/rpmio/Makefile.am -+++ rpm-5.4.15/rpmio/Makefile.am -@@ -29,7 +29,7 @@ EXTRA_PROGRAMS += bsdiff bspatch pcrsed - tmire todbc toid tperl tpython tput trpmio tsexp tsvn tsw ttcl \ - dumpasn1 lookup3 trel twitter github tmicrojson duk - --noinst_PROGRAMS += b2sum tset tblake2b tblake2bp tblake2s tblake2sp tgfs -+#noinst_PROGRAMS += b2sum tset tblake2b tblake2bp tblake2s tblake2sp tgfs - if WITH_LIBGIT2 - noinst_PROGRAMS += tgit - else
meta/recipes-devtools/rpm/rpm/rpm-ensure-rpm2cpio-call-rpm-relocation-code.patch deleted +0 -25
@@ -1,25 +0,0 @@ -We need to call rpmcliInit to ensure the rpm relocation code is called -and it correctly honours the relocation environmental variables. - -when we export the wrsdk and source the sdk, then execute rpm2cpio xxx.rpm|cpio -t. -we will get the following error : -"rpm-5.4.14/rpmdb/dbconfig.c:493: -db3New: Assertion `dbOpts != ((void *)0) && *dbOpts != '\0'' failed. - -Upstream-Status: Pending - -Signed-off-by: Richard Purdie <[email protected]> -Signed-off-by: Zhixiong Chi <[email protected]> -Index: rpm-5.4.15/tools/rpm2cpio.c -=================================================================== ---- rpm-5.4.15.orig/tools/rpm2cpio.c 2012-04-27 01:46:51.000000000 +0800 -+++ rpm-5.4.15/tools/rpm2cpio.c 2016-09-05 11:07:30.419903338 +0800 -@@ -87,6 +87,8 @@ - #endif - (void) rpmtsSetVSFlags(ts, vsflags); - -+ rpmcliInit(argc, argv, NULL); -+ - /*@-mustmod@*/ /* LCL: segfault */ - rc = rpmReadPackageFile(ts, fdi, "rpm2cpio", &h); - /*@=mustmod@*/
meta/recipes-devtools/rpm/rpm/rpm-fileclass.patch deleted +0 -36
@@ -1,36 +0,0 @@ -rpmfc.c: Always generate per-file information - -Even when the per-file dependency generate is disabled, we want to generate -per file classification and other associated data. - -Note: this is a temporary workaround. Eventually we will want to have a way -to seed per-file dependency and other information in order to generate a -package from previously determined information. - -Upstream-Status: Pending - -Signed-off-by: Mark Hatle <[email protected]> - -Index: rpm-5.4.14/lib/rpmfc.c -=================================================================== ---- rpm-5.4.14.orig/lib/rpmfc.c -+++ rpm-5.4.14/lib/rpmfc.c -@@ -1734,7 +1734,6 @@ rpmRC rpmfcGenerateDepends(void * _spec, - /* ... then generate dependencies using %{__find_requires} et al. */ - rc = rpmfcGenerateDependsHelper(spec, pkg, fi); - printDeps(pkg->header); -- return rc; - } - - /* Generate scriptlet Dependencies. */ -@@ -1762,8 +1761,8 @@ rpmRC rpmfcGenerateDepends(void * _spec, - av[ac] = NULL; - - fc = rpmfcNew(); -- fc->skipProv = !pkg->autoProv; -- fc->skipReq = !pkg->autoReq; -+ fc->skipProv = !pkg->autoProv || !internaldeps; -+ fc->skipReq = !pkg->autoReq || !internaldeps; - fc->tracked = 0; - - { const char * buildRootURL;
meta/recipes-devtools/rpm/rpm/rpm-fix-logio-cp.patch deleted +0 -30
@@ -1,30 +0,0 @@ -Occasionally the cp -p fails with a non-zero return code. This will cause -the system abort the build. - -Upstream-Status: Submitted [RPM5 maintainer] - -Signed-off-by: Mark Hatle <[email protected]> - -Index: rpm/rpmdb/Makefile.am -=================================================================== ---- rpm.orig/rpmdb/Makefile.am -+++ rpm/rpmdb/Makefile.am -@@ -234,11 +234,14 @@ lcov-report: - #lcov-upload: lcov - # rsync -rvz -e ssh --delete lcov/* ??? - -+$(builddir)/logio_recover_template: $(srcdir)/logio_recover_template -+ @if test ".$(builddir)" != ".$(srcdir)"; then \ -+ cp -fp $(srcdir)/logio_recover_template \ -+ $(builddir)/logio_recover_template ; \ -+ fi -+ - logio_BUILT = logio_auto.c logio_autop.c logio_auto.h logio_template --$(logio_BUILT): logio.awk logio.src logio_recover_template -- @test -e $(builddir)/logio_recover_template || \ -- cp -p $(srcdir)/logio_recover_template \ -- $(builddir)/logio_recover_template -+$(logio_BUILT): logio.awk logio.src $(builddir)/logio_recover_template - @rm -f $(logio_BUILT) - @$(AWK) -f $(srcdir)/logio.awk \ - -v header_file=logio_auto.h \
meta/recipes-devtools/rpm/rpm/rpm-fix-lua-tests-compilation-failure.patch deleted +0 -43
43 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/rpm-fix-parseEmbedded.patch deleted +0 -27
@@ -1,27 +0,0 @@ -Fix an issue where parseEmbedded is not defined, but is still used. - -Upstream-Status: Submitted [RPM5 maintainer] - -Signed-off-by: Mark Hatle <[email protected]> - -Index: rpm/rpmio/macro.c -=================================================================== ---- rpm.orig/rpmio/macro.c -+++ rpm/rpmio/macro.c -@@ -1616,8 +1616,6 @@ exit: - * @retval *avp invocation args - * @return script string - */ --#if defined(WITH_AUGEAS) || defined(WITH_FICL) || defined(WITH_MOZJS) || defined(WITH_JNIEMBED) || defined(WITH_PERLEMBED) || defined(WITH_PYTHONEMBED) || defined(WITH_RUBYEMBED) || defined(WITH_MRUBY_EMBED) || defined(WITH_SQLITE) || defined(WITH_SQUIRREL) || defined(WITH_TCL) -- - static char _FIXME_embedded_interpreter_eval_returned_null[] = - "FIXME: embedded interpreter eval returned null."; - -@@ -1668,7 +1666,6 @@ bingo: - script[nb] = '\0'; - return script; - } --#endif - - /** - * The main macro recursion loop.
meta/recipes-devtools/rpm/rpm/rpm-gnu-atomic.patch deleted +0 -64
64 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/rpm-hardlink-segfault-fix.patch deleted +0 -43
43 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/rpm-keccak-sse-intrin.patch deleted +0 -27
@@ -1,27 +0,0 @@ -rpm - rpmio/keccak.c: make SSE/MMX dependent upon gcc config - -Upstream-Status: Submitted [RPM5 maintainer] - -Signed-off-by: Mark Hatle <[email protected]> - -Index: rpm-5.4.15/rpmio/keccak.c -=================================================================== ---- rpm-5.4.15.orig/rpmio/keccak.c -+++ rpm-5.4.15/rpmio/keccak.c -@@ -17,9 +17,13 @@ http://keccak.noekeon.org/ - #if OPTIMIZED == 64 - /* ===== "KeccakOpt64-settings.h" */ - #define Unrolling 18 --//#define UseBebigokimisa --#define UseSSE --//#define UseMMX -+#if defined(__SSE2__) -+ #define UseSSE -+#elif defined(__MMX__) -+ #define UseMMX -+#else -+ #define UseBebigokimisa -+#endif - /* ===== */ - #endif -
meta/recipes-devtools/rpm/rpm/rpm-lib-transaction.c-fix-file-conflicts-for-mips64-N32.patch deleted +0 -52
52 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/rpm-libsql-fix.patch deleted +0 -22
@@ -1,22 +0,0 @@ -During installation, the libtool relink attempts to link to -lrpm... -The problem is that it hasn't been installed yet! So small change causes -the libtool to instead use the build version. - -Upstream-Status: Submitted [RPM5 maintainer] - -Signed-off-by: Mark Hatle <[email protected]> - -Index: rpm-5.4.14/lib/Makefile.am -=================================================================== ---- rpm-5.4.14.orig/lib/Makefile.am -+++ rpm-5.4.14/lib/Makefile.am -@@ -120,6 +120,9 @@ librpm.la: $(librpm_la_OBJECTS) $(librpm - #libsql_la_SOURCES = libsql.c - #libsql_la_LIBADD = librpm.la $(RPMDB_LDADD_COMMON) - -+# pkglib libraries needs to have usrlib libraries already installed! -+install-pkglibLTLIBRARIES: install-usrlibLTLIBRARIES -+ - install-data-hook: - if !ENABLE_BUILD_LAFILES - -for l in $(usrlib_LTLIBRARIES); do \
meta/recipes-devtools/rpm/rpm/rpm-log-auto-rm.patch deleted +0 -15
@@ -1,15 +0,0 @@ - -Upstream-Status: Inappropriate [configuration] - -Index: rpm-5.4.14/rpmdb/DB_CONFIG.in -=================================================================== ---- rpm-5.4.14.orig/rpmdb/DB_CONFIG.in -+++ rpm-5.4.14/rpmdb/DB_CONFIG.in -@@ -4,6 +4,7 @@ set_data_dir . - set_create_dir . - set_lg_dir ./log - set_tmp_dir ./tmp -+set_flags db_log_autoremove on - - # -- thread_count must be >= 8 - set_thread_count 64
meta/recipes-devtools/rpm/rpm/rpm-lsb-compatibility.patch deleted +0 -24
@@ -1,24 +0,0 @@ -Enable platform tag matching workaround in OE. - -When installing some LSB packages the 'platform' field in the package -appears to be invalid. Instead of relying solely on the platform comparison -we also want to generate a perceived platform based on the valid rpm contents -of arch and os. - -Upstream-Status: Submitted [RPM5 maintainer] - -Signed-off-by: Mark Hatle <[email protected]> - -Index: rpm-5.4.14/lib/depends.c -=================================================================== ---- rpm-5.4.14.orig/lib/depends.c -+++ rpm-5.4.14/lib/depends.c -@@ -595,7 +595,7 @@ int rpmtsAddInstallElement(rpmts ts, Hea - platform = rpmExpand(arch, "-unknown-", os, NULL); - - rc = rpmPlatformScore(platform, platpat, nplatpat); --#if defined(RPM_VENDOR_MANDRIVA) -+#if defined(RPM_VENDOR_MANDRIVA) || defined(RPM_VENDOR_OE) - /* - * If no match on platform tag, we'll try again with arch tag - * in case platform tag is inconsistent with it, which is the case
meta/recipes-devtools/rpm/rpm/rpm-lua.patch deleted +0 -33
@@ -1,33 +0,0 @@ -Add support for cross compiling lua - -Upstream-Status: Pending - -Signed-off-by: Mark Hatle <[email protected]> - -Index: rpm-5.4.14/configure.ac -=================================================================== ---- rpm-5.4.14.orig/configure.ac -+++ rpm-5.4.14/configure.ac -@@ -121,6 +121,9 @@ AC_PROG_YACC - - AC_PATH_PROG(AS, as, as) - -+CC_FOR_BUILD=${CC_FOR_BUILD-\$(CC)} -+AC_SUBST(CC_FOR_BUILD) -+ - dnl # GCC specifics - AC_PROG_GCC_TRADITIONAL - AC_ARG_ENABLE(build-pic, -Index: rpm-5.4.14/lua/Makefile.am -=================================================================== ---- rpm-5.4.14.orig/lua/Makefile.am -+++ rpm-5.4.14/lua/Makefile.am -@@ -41,7 +41,7 @@ rpmluac_LDADD = liblua.la - - # --- bin2c doesn't need anything but a compiler - bin2c$(EXEEXT): bin2c.c -- $(CC) -o $@ $< -+ $(CC_FOR_BUILD) -o $@ $< - - liblua_la_SOURCES = - liblua_la_CFLAGS = @WITH_LUA_SUBDIR_DEF@
meta/recipes-devtools/rpm/rpm/rpm-macros.in-disable-external-key-server.patch deleted +0 -31
@@ -1,31 +0,0 @@ -disable external key server - -Upstream-Status: Pending - -When RPM experiences a signed package, with a signature that it does NOT know. -By default it will send the -fingerprint- (and only the 16 digit fingerprint) to -an external HKP server, trying to get the key down. - -This is probably not a reasonable default behavior for the system to do, instead -it should simply fail the key lookup. If someone wants to enable the HKP server -it's easy enough to do by enabling the necessary macros. - -Signed-off-by: yzhu1 <[email protected]> -Signed-off-by: Mark Hatle <[email protected]> -Index: rpm/macros/macros.in -=================================================================== ---- rpm.orig/macros/macros.in -+++ rpm/macros/macros.in -@@ -563,10 +563,10 @@ $_arbitrary_tags_tests Foo:Bar - - # Horowitz Key Protocol server configuration - # --%_hkp_keyserver hkp://keys.rpm5.org -+#%_hkp_keyserver hkp://keys.rpm5.org - #%_hkp_keyserver hkp://keys.n3npq.net - #%_hkp_keyserver hkp://pool.sks-keyservers.net --%_hkp_keyserver_query %{_hkp_keyserver}/pks/lookup?op=get&search= -+#%_hkp_keyserver_query %{_hkp_keyserver}/pks/lookup?op=get&search= - - - # NSS_InitContext() parameter configuration
meta/recipes-devtools/rpm/rpm/rpm-macros.patch deleted +0 -64
64 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/rpm-mongodb-sasl.patch deleted +0 -69
69 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/rpm-no-loopmsg.patch deleted +0 -19
@@ -1,19 +0,0 @@ -lib/order.c: Make the dependency loop messages into debug msgs - -Upstream-Status: Submitted [RPM5 maintainer] - -Signed-off-by: Mark Hatle <[email protected]> - -Index: rpm-5.4.14/lib/order.c -=================================================================== ---- rpm-5.4.14.orig/lib/order.c -+++ rpm-5.4.14/lib/order.c -@@ -2175,7 +2175,7 @@ rescan: - const char * dp; - rpmlogLvl msglvl = (anaconda || (rpmtsDFlags(ts) & RPMDEPS_FLAG_DEPLOOPS)) - ? RPMLOG_WARNING : RPMLOG_ERR; --#if defined(RPM_VENDOR_MANDRIVA) /* loop-detection-optional-loglevel */ -+#if defined(RPM_VENDOR_MANDRIVA) || defined(RPM_VENDOR_OE) /* loop-detection-optional-loglevel */ - // Report loops as debug-level message by default (7 = RPMLOG_DEBUG), overridable - msglvl = rpmExpandNumeric("%{?_loop_detection_loglevel}%{?!_loop_detection_loglevel:7}"); - #endif
meta/recipes-devtools/rpm/rpm/rpm-no-perl-urpm.patch deleted +0 -47
47 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/rpm-opendb-before-verifyscript-to-avoid-null-point.patch deleted +0 -24
@@ -1,24 +0,0 @@ -rpm: opendb before rpmverifyscript to avoid null point input - -If the command is "rpm -V" and the return value of (headerIsEntry(h, RPMTAG_VERIFYSCRIPT) -|| headerIsEntry(h, RPMTAG_SANITYCHECK)) located in /lib/verify.c is true, it will call -rpmpsmStage function(rpmVerifyScript->rpmpsmScriptStage->rpmpsmStage) and occur segment -fault because of null point(rpmtsGetRdb(ts) == NULL and rpmtsGetRdb(ts)->db_txn). -So we open rpmdb to avoid bad input when find headerIsEntry true. - -Upstream-Status: Submitted [RPM5 maintainer] - -Signed-off-by: Zhixiong Chi <[email protected]> -Index: rpm-5.4.14/lib/verify.c -=================================================================== ---- rpm-5.4.14.orig/lib/verify.c 2015-07-22 22:09:59.992895355 +0800 -+++ rpm-5.4.14/lib/verify.c 2015-08-13 10:20:33.752177906 +0800 -@@ -613,6 +613,8 @@ - { - FD_t fdo = fdDup(STDOUT_FILENO); - -+ rpmtsOpenDB(ts, O_RDONLY); /*Open the DB to avoid null point input in function rpmpsmStage()*/ -+ - rc = rpmfiSetHeader(fi, h); - if ((rc = rpmVerifyScript(qva, ts, fi, fdo)) != 0) - ec += rc;
meta/recipes-devtools/rpm/rpm/rpm-ossp-uuid.patch deleted +0 -23
@@ -1,23 +0,0 @@ -Fix integration of ossp-uuid - -We need to avoid including the util-linux uuid library, instead -we need ossp-uuid. There is a related hack in do_configure to -make sure that we use the right .pc file as well. - -Upstream-Status: Inappropriate [disable feature] - -Signed-off-by: Mark Hatle <[email protected]> - -Index: rpm-5.4.14/configure.ac -=================================================================== ---- rpm-5.4.14.orig/configure.ac -+++ rpm-5.4.14/configure.ac -@@ -1951,7 +1951,7 @@ grep -v 'define HAVE_UNISTD_H' confdefs. - esac - RPM_CHECK_LIB( - [OSSP uuid], [uuid], -- [ossp-uuid uuid], [uuid_import], [uuid.h], -+ [ossp-uuid], [uuid_import], [uuid.h], - [no,external:none], [], - [ dnl # enable OSSP uuid native API support for embedded Lua - if test ".$WITH_LUA" = .yes; then
meta/recipes-devtools/rpm/rpm/rpm-packageorigin.patch deleted +0 -25
@@ -1,25 +0,0 @@ -Add the ability to query the packageorigin - -Written by jbj at rpm5.org - -Upstream-Status: Submitted [RPM5 maintainer] - -Signed-off-by: Mark Hatle <[email protected]> - -Index: rpm-5.4.14/rpmdb/hdrfmt.c -=================================================================== ---- rpm-5.4.14.orig/rpmdb/hdrfmt.c -+++ rpm-5.4.14/rpmdb/hdrfmt.c -@@ -2409,8 +2409,10 @@ static int pkgoriginTag(Header h, HE_t h - int rc = 1; - - he->tag = RPMTAG_PACKAGEORIGIN; -- if (!headerGet(h, he, HEADERGET_NOEXTENSION) -- && (origin = headerGetOrigin(h)) != NULL) -+ /* XXX two sources for tag data: what search precedence? */ -+ if (headerGet(h, he, HEADERGET_NOEXTENSION)) -+ rc = 0; -+ else if ((origin = headerGetOrigin(h)) != NULL) - { - he->t = RPM_STRING_TYPE; - he->p.str = xstrdup(origin);
meta/recipes-devtools/rpm/rpm/rpm-payload-use-hashed-inode.patch deleted +0 -126
126 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/rpm-pkgconfigdeps.patch deleted +0 -37
@@ -1,37 +0,0 @@ -pkgconfigdeps.sh: Change to restricting pkgconfig to the local directory - -Using PKG_CONFIG_PATH will allow pkg-config to fall back to the system paths, -we don't want this as it may lead to inaccurate results in some corner cases. - -PKG_CONFIG_LIBDIR will ensure pkg-config stays within the install directory. - -Upstream-Status: Inappropriate [configuration] - -Signed-off-by: Mark Hatle <[email protected]> - -Index: rpm/scripts/pkgconfigdeps.sh -=================================================================== ---- rpm.orig/scripts/pkgconfigdeps.sh -+++ rpm/scripts/pkgconfigdeps.sh -@@ -18,8 +18,8 @@ case $1 in - *.pc) - # Query the dependencies of the package. - DIR=$(dirname ${filename}) -- PKG_CONFIG_PATH="$DIR:$DIR/../../share/pkgconfig" -- export PKG_CONFIG_PATH -+ PKG_CONFIG_LIBDIR="$DIR:$DIR/../../share/pkgconfig" -+ export PKG_CONFIG_LIBDIR - $pkgconfig --print-provides "$filename" 2> /dev/null | while read n r v ; do - [ -n "$n" ] || continue - # We have a dependency. Make a note that we need the pkgconfig -@@ -42,8 +42,8 @@ case $1 in - [ -n "$oneshot" ] && echo "$oneshot"; oneshot="" - # Query the dependencies of the package. - DIR=$(dirname ${filename}) -- PKG_CONFIG_PATH="$DIR:$DIR/../../share/pkgconfig" -- export PKG_CONFIG_PATH -+ PKG_CONFIG_LIBDIR="$DIR:$DIR/../../share/pkgconfig" -+ export PKG_CONFIG_LIBDIR - $pkgconfig --print-requires "$filename" 2> /dev/null | while read n r v ; do - [ -n "$n" ] || continue - if [ -n "$r" ] && [ -n "$v" ]; then
meta/recipes-devtools/rpm/rpm/rpm-platform-file-fix.patch deleted +0 -28
@@ -1,28 +0,0 @@ -Don't add the first line of /etc/rpm/platform to the list of patterns -to match when computing an arch score, use it just for getting -information about the platform (cpu/vendor/os). Fixes #3864. - -Upstream-Status: Submitted [RPM5 maintainer] - -Index: rpm-5.4.14/lib/rpmrc.c -=================================================================== ---- rpm-5.4.14.orig/lib/rpmrc.c -+++ rpm-5.4.14/lib/rpmrc.c -@@ -510,6 +510,7 @@ static rpmRC rpmPlatform(const char * pl - #endif - } - -+#if !defined(RPM_VENDOR_OE) /* Skip the explicit-platform */ - #if defined(RPM_VENDOR_OPENPKG) /* explicit-platform */ - /* do not use vendor and GNU attribution */ - p = rpmExpand("%{_host_cpu}-%{_host_os}", NULL); -@@ -520,7 +521,8 @@ static rpmRC rpmPlatform(const char * pl - #endif - xx = mireAppend(RPMMIRE_STRCMP, 0, p, NULL, &mi_re, &mi_nre); - p = _free(p); -- -+#endif -+ - init_platform++; - } - rc = (init_platform ? RPMRC_OK : RPMRC_FAIL);
meta/recipes-devtools/rpm/rpm/rpm-platform.patch deleted +0 -137
137 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/rpm-platform2.patch deleted +0 -105
82 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/rpm-py-init.patch deleted +0 -29
Lines of this file are not shown. View the raw message.
meta/recipes-devtools/rpm/rpm/rpm-python-AddErase.patch deleted +0 -35
Lines of this file are not shown. View the raw message.
meta/recipes-devtools/rpm/rpm/rpm-python-restore-origin.patch deleted +0 -49
49 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/rpm-python-tagname.patch deleted +0 -24
Lines of this file are not shown. View the raw message.
meta/recipes-devtools/rpm/rpm/rpm-realpath.patch deleted +0 -24
Lines of this file are not shown. View the raw message.
meta/recipes-devtools/rpm/rpm/rpm-reloc-macros.patch deleted +0 -31
Lines of this file are not shown. View the raw message.
meta/recipes-devtools/rpm/rpm/rpm-resolvedep.patch deleted +0 -40
Lines of this file are not shown. View the raw message.
meta/recipes-devtools/rpm/rpm/rpm-rpmdb-grammar.patch deleted +0 -124
124 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/rpm-rpmfc.c-fix-for-N32-MIPS64.patch deleted +0 -34
Lines of this file are not shown. View the raw message.
meta/recipes-devtools/rpm/rpm/rpm-rpmio-headers.patch deleted +0 -19
Lines of this file are not shown. View the raw message.
meta/recipes-devtools/rpm/rpm/rpm-rpmpgp-popt.patch deleted +0 -26
Lines of this file are not shown. View the raw message.
meta/recipes-devtools/rpm/rpm/rpm-scriptletexechelper.patch deleted +0 -159
159 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/rpm-showrc.patch deleted +0 -26
Lines of this file are not shown. View the raw message.
meta/recipes-devtools/rpm/rpm/rpm-syck-fix-gram.patch deleted +0 -1081
1,081 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/rpm-tag-generate-endian-conversion-fix.patch deleted +0 -50
50 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/rpm-tagname-type.patch deleted +0 -25
Lines of this file are not shown. View the raw message.
meta/recipes-devtools/rpm/rpm/rpm-tools-mtree-LDFLAGS.patch deleted +0 -24
Lines of this file are not shown. View the raw message.
meta/recipes-devtools/rpm/rpm/rpm-uuid-include.patch deleted +0 -40
Lines of this file are not shown. View the raw message.
meta/recipes-devtools/rpm/rpm/rpm2cpio deleted +0 -39
Lines of this file are not shown. View the raw message.
meta/recipes-devtools/rpm/rpm/rpmatch.patch deleted +0 -34
Lines of this file are not shown. View the raw message.
meta/recipes-devtools/rpm/rpm/rpmdb-more-verbose-error-logging-in-rpmTempFile.patch deleted +0 -31
Lines of this file are not shown. View the raw message.
meta/recipes-devtools/rpm/rpm/rpmdb-prevent-race-in-tmpdir-creation.patch deleted +0 -41
41 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/rpmdeps-oecore.patch deleted +0 -194
194 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/rpmqv.c-check-_gpg_passphrase-before-ask-for-input.patch deleted +0 -70
70 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/rpmqv_cc_b_gone.patch deleted +0 -50
50 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/uclibc-support.patch deleted +0 -63
63 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm_5.4.16.bb deleted +0 -712
712 lines not on this page · raw message
The rest of this diff is not shown. View the raw message.
Signature · 1 line
2.11.0
Part of the diff is not shown here. View the raw message.
PATCH 8/44 python-pygpgme: add a recipe
In reply to Alexander Kanavinpython-pygpgme is required by dnf.
--- meta/recipes-devtools/python/python-pygpgme_0.3.bb | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 meta/recipes-devtools/python/python-pygpgme_0.3.bb
meta/recipes-devtools/python/python-pygpgme_0.3.bb new file +18 -0
@@ -0,0 +1,18 @@ +SUMMARY = "A Python module for working with OpenPGP messages" +HOMEPAGE = "https://launchpad.net/pygpgme" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://README;md5=2dc15a76acf01e126188c8de634ae4b3" + +SRC_URI = "https://launchpad.net/pygpgme/trunk/${PV}/+download/pygpgme-${PV}.tar.gz" +SRC_URI[md5sum] = "d38355af73f0352cde3d410b25f34fd0" +SRC_URI[sha256sum] = "5fd887c407015296a8fd3f4b867fe0fcca3179de97ccde90449853a3dfb802e1" + +S = "${WORKDIR}/pygpgme-${PV}" + +inherit distutils + +DEPENDS = "gpgme python" + +RDEPENDS_${PN} += "python-core" + +BBCLASSEXTEND = "native"
Signature · 1 line
2.11.0
PATCH 9/44 python-iniparse: add a recipe
In reply to Alexander Kanavinpython-iniparse is required by dnf.
--- meta/recipes-devtools/python/python-iniparse_0.4.bb | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 meta/recipes-devtools/python/python-iniparse_0.4.bb
meta/recipes-devtools/python/python-iniparse_0.4.bb new file +17 -0
@@ -0,0 +1,17 @@ +SUMMARY = "Accessing and Modifying INI files" +HOMEPAGE = "https://pypi.python.org/pypi/iniparse/" +LICENSE = "MIT & PSF" +LIC_FILES_CHKSUM = "file://LICENSE-PSF;md5=1c78a5bb3584b353496d5f6f34edb4b2 \ + file://LICENSE;md5=52f28065af11d69382693b45b5a8eb54" + +SRC_URI = "https://files.pythonhosted.org/packages/source/i/iniparse/iniparse-${PV}.tar.gz" +SRC_URI[md5sum] = "5e573e9e9733d97623881ce9bbe5eca6" +SRC_URI[sha256sum] = "abc1ee12d2cfb2506109072d6c21e40b6c75a3fe90a9c924327d80bc0d99c054" + +inherit distutils + +RDEPENDS_${PN} += "python-core" + +BBCLASSEXTEND = "native" + +S = "${WORKDIR}/iniparse-${PV}"
Signature · 1 line
2.11.0
PATCH 10/44 python-backports-lzma: add a recipe
In reply to Alexander KanavinIt is needed by dnf, and only when using Python 2.x, so can be dropped after moving dnf/rpm4 stack to Python 3.x.
--- ...-not-add-include-and-library-directories-.patch | 32 ++++++++++++++++++++++ .../python-backports-lzma_git.bb | 21 ++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 meta/recipes-devtools/python-backports-lzma/python-backports-lzma/0001-setup.py-do-not-add-include-and-library-directories-.patch create mode 100644 meta/recipes-devtools/python-backports-lzma/python-backports-lzma_git.bb
meta/recipes-devtools/python-backports-lzma/python-backports-lzma/0001-setup.py-do-not-add-include-and-library-directories-.patch new file +32 -0
@@ -0,0 +1,32 @@ +From e5e3196cf69172b625c8c6ccca991c02fd18137c Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <[email protected]> +Date: Fri, 30 Dec 2016 18:02:12 +0200 +Subject: [PATCH] setup.py: do not add include and library directories from the + host + +This avoids host contamination. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin <[email protected]> +--- + setup.py | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +diff --git a/setup.py b/setup.py +index 7886cf7..9a0356a 100644 +--- a/setup.py ++++ b/setup.py +@@ -31,9 +31,7 @@ packages = ["backports", "backports.lzma"] + home = os.path.expanduser("~") + extens = [Extension('backports/lzma/_lzma', + ['backports/lzma/_lzmamodule.c'], +- libraries = ['lzma'], +- include_dirs = [os.path.join(home, 'include'), '/opt/local/include', '/usr/local/include'], +- library_dirs = [os.path.join(home, 'lib'), '/opt/local/lib', '/usr/local/lib'] ++ libraries = ['lzma'] + )] + + descr = "Backport of Python 3.3's 'lzma' module for XZ/LZMA compressed files." +-- +2.11.0 +
meta/recipes-devtools/python-backports-lzma/python-backports-lzma_git.bb new file +21 -0
@@ -0,0 +1,21 @@ +HOMEPAGE = "https://github.com/peterjc/backports.lzma" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=846e05e7e9e1c886b2637c230cfcd5dd" + +SRC_URI = "git://github.com/peterjc/backports.lzma.git \ + file://0001-setup.py-do-not-add-include-and-library-directories-.patch \ + " + +PV = "0.0.6+git${SRCPV}" +SRCREV = "718b3316ae7aee8e03c02e7e110108779ce3aec8" + +S = "${WORKDIR}/git" + +inherit distutils + +DEPENDS_append = " xz" + +RDEPENDS_${PN} += "python-core python-io python-pkgutil" +RDEPENDS_${PN}_class-native += "python-core" + +BBCLASSEXTEND = "native"
Signature · 1 line
2.11.0
PATCH 11/44 librepo: add a recipe
In reply to Alexander Kanavinlibrepo is needed by dnf and libdnf.
--- ...ly-set-the-library-installation-directory.patch | 28 +++++++++++++++ ...to-obtain-PYTHON_INSTALL_DIR-by-running-p.patch | 41 ++++++++++++++++++++++ ...-race-when-deleting-temporary-directories.patch | 41 ++++++++++++++++++++++ ...ariables-with-pkg-config-not-with-cmake-m.patch | 29 +++++++++++++++ meta/recipes-devtools/librepo/librepo_git.bb | 24 +++++++++++++ 5 files changed, 163 insertions(+) create mode 100644 meta/recipes-devtools/librepo/librepo/0001-Correctly-set-the-library-installation-directory.patch create mode 100644 meta/recipes-devtools/librepo/librepo/0002-Do-not-try-to-obtain-PYTHON_INSTALL_DIR-by-running-p.patch create mode 100644 meta/recipes-devtools/librepo/librepo/0003-tests-fix-a-race-when-deleting-temporary-directories.patch create mode 100644 meta/recipes-devtools/librepo/librepo/0004-Set-gpgme-variables-with-pkg-config-not-with-cmake-m.patch create mode 100644 meta/recipes-devtools/librepo/librepo_git.bb
meta/recipes-devtools/librepo/librepo/0001-Correctly-set-the-library-installation-directory.patch new file +28 -0
@@ -0,0 +1,28 @@ +From 36d87919223db9b054862ad38cdda8d9222a2bab Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <[email protected]> +Date: Fri, 30 Dec 2016 18:04:35 +0200 +Subject: [PATCH 1/4] Correctly set the library installation directory + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin <[email protected]> +--- + librepo/CMakeLists.txt | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/librepo/CMakeLists.txt b/librepo/CMakeLists.txt +index 2fe76d8..5026def 100644 +--- a/librepo/CMakeLists.txt ++++ b/librepo/CMakeLists.txt +@@ -60,7 +60,8 @@ CONFIGURE_FILE("version.h.in" "${CMAKE_CURRENT_SOURCE_DIR}/version.h" @ONLY) + IF (CMAKE_SIZEOF_VOID_P MATCHES "8") + SET (LIB_SUFFIX "64") + ENDIF (CMAKE_SIZEOF_VOID_P MATCHES "8") +-SET (LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}") ++#SET (LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}") ++SET (LIB_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}") + + INSTALL(FILES ${librepo_HEADERS} DESTINATION include/librepo) + INSTALL(TARGETS librepo LIBRARY DESTINATION ${LIB_INSTALL_DIR}) +-- +2.11.0 +
meta/recipes-devtools/librepo/librepo/0002-Do-not-try-to-obtain-PYTHON_INSTALL_DIR-by-running-p.patch new file +41 -0
41 lines not on this page · raw message
meta/recipes-devtools/librepo/librepo/0003-tests-fix-a-race-when-deleting-temporary-directories.patch new file +41 -0
41 lines not on this page · raw message
meta/recipes-devtools/librepo/librepo/0004-Set-gpgme-variables-with-pkg-config-not-with-cmake-m.patch new file +29 -0
@@ -0,0 +1,29 @@ +From a36be8192615e2a1fb5a5856d44565277f15583b Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <[email protected]> +Date: Fri, 30 Dec 2016 18:23:27 +0200 +Subject: [PATCH 4/4] Set gpgme variables with pkg-config, not with cmake + module (which doesn't work properly) + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin <[email protected]> +--- + CMakeLists.txt | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ef07d2d..f1fa09b 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -31,7 +31,8 @@ PKG_CHECK_MODULES(GLIB2 glib-2.0 REQUIRED) + PKG_SEARCH_MODULE(LIBCRYPTO REQUIRED libcrypto openssl) + FIND_PACKAGE(EXPAT REQUIRED) + FIND_PACKAGE(CURL REQUIRED) +-FIND_PACKAGE(Gpgme REQUIRED) ++PKG_CHECK_MODULES(GPGME gpgme REQUIRED) ++set(GPGME_VANILLA_LIBRARIES ${GPGME_LIBRARIES}) + FIND_PACKAGE(Xattr REQUIRED) + + INCLUDE_DIRECTORIES(${GLIB2_INCLUDE_DIRS}) +-- +2.11.0 +
meta/recipes-devtools/librepo/librepo_git.bb new file +24 -0
@@ -0,0 +1,24 @@ +SUMMARY = " A library providing C and Python (libcURL like) API for downloading linux repository metadata and packages." +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +SRC_URI = "git://github.com/rpm-software-management/librepo.git \ + file://0001-Correctly-set-the-library-installation-directory.patch \ + file://0002-Do-not-try-to-obtain-PYTHON_INSTALL_DIR-by-running-p.patch \ + file://0003-tests-fix-a-race-when-deleting-temporary-directories.patch \ + file://0004-Set-gpgme-variables-with-pkg-config-not-with-cmake-m.patch \ + " + +PV = "1.7.20+git${SRCPV}" +SRCREV = "e1137cbbda78fecb192146300790680a5bc811b1" + +S = "${WORKDIR}/git" + +DEPENDS = "curl expat glib-2.0 openssl attr libcheck gpgme" + +inherit cmake distutils-base pkgconfig + +EXTRA_OECMAKE = " -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR}" + +BBCLASSEXTEND = "native" +
Signature · 1 line
2.11.0
PATCH 12/44 libcomps: add a recipe
In reply to Alexander Kanavinlibcomps is required by dnf.
--- ...-set-PYTHON_INSTALL_DIR-by-running-python.patch | 41 ++++++++++++++++++++++ ...2-Set-library-installation-path-correctly.patch | 27 ++++++++++++++ meta/recipes-devtools/libcomps/libcomps_git.bb | 23 ++++++++++++ 3 files changed, 91 insertions(+) create mode 100644 meta/recipes-devtools/libcomps/libcomps/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch create mode 100644 meta/recipes-devtools/libcomps/libcomps/0002-Set-library-installation-path-correctly.patch create mode 100644 meta/recipes-devtools/libcomps/libcomps_git.bb
meta/recipes-devtools/libcomps/libcomps/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch new file +41 -0
@@ -0,0 +1,41 @@ +From ff4aae4c8beaf17cb8e7a3431f6c541eccfae244 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <[email protected]> +Date: Fri, 30 Dec 2016 18:22:09 +0200 +Subject: [PATCH 1/2] Do not set PYTHON_INSTALL_DIR by running python. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin <[email protected]> +--- + libcomps/src/python/src/python2/CMakeLists.txt | 2 +- + libcomps/src/python/src/python3/CMakeLists.txt | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libcomps/src/python/src/python2/CMakeLists.txt b/libcomps/src/python/src/python2/CMakeLists.txt +index 3ad9e18..0e7dd4b 100644 +--- a/libcomps/src/python/src/python2/CMakeLists.txt ++++ b/libcomps/src/python/src/python2/CMakeLists.txt +@@ -1,7 +1,7 @@ + find_package (PythonLibs 2.6) + find_package (PythonInterp 2.6 REQUIRED) + +-execute_process (COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from distutils import sysconfig; stdout.write(sysconfig.get_python_lib(True))" OUTPUT_VARIABLE PYTHON_INSTALL_DIR) ++#execute_process (COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from distutils import sysconfig; stdout.write(sysconfig.get_python_lib(True))" OUTPUT_VARIABLE PYTHON_INSTALL_DIR) + + include_directories(${PYTHON_INCLUDE_PATH}) + include_directories(${LIBCOMPS_INCLUDE_PATH}) +diff --git a/libcomps/src/python/src/python3/CMakeLists.txt b/libcomps/src/python/src/python3/CMakeLists.txt +index 7fafa9f..ed82d3d 100644 +--- a/libcomps/src/python/src/python3/CMakeLists.txt ++++ b/libcomps/src/python/src/python3/CMakeLists.txt +@@ -2,7 +2,7 @@ find_package (PythonLibs 3.0) + find_package (PythonInterp 3.0) + #add_custom_target(py3-copy) + +-execute_process (COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from distutils import sysconfig; stdout.write(sysconfig.get_python_lib(True))" OUTPUT_VARIABLE PYTHON_INSTALL_DIR) ++#execute_process (COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from distutils import sysconfig; stdout.write(sysconfig.get_python_lib(True))" OUTPUT_VARIABLE PYTHON_INSTALL_DIR) + + include_directories(${PYTHON_INCLUDE_PATH}) + include_directories(${LIBCOMPS_INCLUDE_PATH}) +-- +2.11.0 +
meta/recipes-devtools/libcomps/libcomps/0002-Set-library-installation-path-correctly.patch new file +27 -0
@@ -0,0 +1,27 @@ +From b1f61296e2f16c2b9a39c5501e4538628ff01ab4 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <[email protected]> +Date: Fri, 30 Dec 2016 18:26:00 +0200 +Subject: [PATCH 2/2] Set library installation path correctly + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin <[email protected]> +--- + libcomps/src/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libcomps/src/CMakeLists.txt b/libcomps/src/CMakeLists.txt +index e553d77..e2eef9c 100644 +--- a/libcomps/src/CMakeLists.txt ++++ b/libcomps/src/CMakeLists.txt +@@ -52,7 +52,7 @@ add_dependencies(libcomps src-copy) + IF (CMAKE_SIZEOF_VOID_P MATCHES "8") + SET (LIB_SUFFIX "64") + ENDIF (CMAKE_SIZEOF_VOID_P MATCHES "8") +-set (LIB_INST_DIR ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}) ++set (LIB_INST_DIR ${CMAKE_INSTALL_LIBDIR}) + + + install (FILES ${libcomps_HEADERS} DESTINATION include/libcomps) +-- +2.11.0 +
meta/recipes-devtools/libcomps/libcomps_git.bb new file +23 -0
@@ -0,0 +1,23 @@ +SUMMARY = "Libcomps is alternative for yum.comps library (which is for managing rpm package groups)." +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = "git://github.com/rpm-software-management/libcomps.git \ + file://0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \ + file://0002-Set-library-installation-path-correctly.patch \ + " + +PV = "0.1.8+git${SRCPV}" +SRCREV = "01a4759894cccff64d2561614a58281adf5ce859" + +S = "${WORKDIR}/git" + +inherit cmake distutils-base + +DEPENDS = "libxml2 expat libcheck" + +EXTRA_OECMAKE = " -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR}" +OECMAKE_SOURCEPATH = "${S}/libcomps" + +BBCLASSEXTEND = "native" +
Signature · 1 line
2.11.0
PATCH 13/44 libdnf: add a recipe
In reply to Alexander Kanavinlibdnf is required by dnf.
--- ...cmake-drop-the-requirement-for-GTKDOC_SCA.patch | 31 +++++++++++++++++ ...ers-for-both-libsolv-and-libsolvext-libdn.patch | 28 +++++++++++++++ ...-sysroot-path-to-introspection-tools-path.patch | 36 +++++++++++++++++++ ...-library-installation-directory-correctly.patch | 29 ++++++++++++++++ ...-variables-with-pkg-config-cmake-s-own-mo.patch | 29 ++++++++++++++++ meta/recipes-devtools/libdnf/libdnf_git.bb | 40 ++++++++++++++++++++++ 6 files changed, 193 insertions(+) create mode 100644 meta/recipes-devtools/libdnf/libdnf/0001-FindGtkDoc.cmake-drop-the-requirement-for-GTKDOC_SCA.patch create mode 100644 meta/recipes-devtools/libdnf/libdnf/0001-Get-parameters-for-both-libsolv-and-libsolvext-libdn.patch create mode 100644 meta/recipes-devtools/libdnf/libdnf/0002-Prefix-sysroot-path-to-introspection-tools-path.patch create mode 100644 meta/recipes-devtools/libdnf/libdnf/0003-Set-the-library-installation-directory-correctly.patch create mode 100644 meta/recipes-devtools/libdnf/libdnf/0004-Set-libsolv-variables-with-pkg-config-cmake-s-own-mo.patch create mode 100644 meta/recipes-devtools/libdnf/libdnf_git.bb
meta/recipes-devtools/libdnf/libdnf/0001-FindGtkDoc.cmake-drop-the-requirement-for-GTKDOC_SCA.patch new file +31 -0
@@ -0,0 +1,31 @@ +From 9bb7630915c3e787732463a3e2064fe0e177101b Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <[email protected]> +Date: Thu, 24 Nov 2016 14:33:07 +0200 +Subject: [PATCH 1/4] FindGtkDoc.cmake: drop the requirement for + GTKDOC_SCANGOBJ_WRAPPER + +For some reason cmake is not able to find it when building in openembedded, +and it's bundled with the source code anyway. + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin <[email protected]> +--- + cmake/modules/FindGtkDoc.cmake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cmake/modules/FindGtkDoc.cmake b/cmake/modules/FindGtkDoc.cmake +index 92b2cc7..39f34bd 100644 +--- a/cmake/modules/FindGtkDoc.cmake ++++ b/cmake/modules/FindGtkDoc.cmake +@@ -52,7 +52,7 @@ find_program(GTKDOC_MKHTML_EXE gtkdoc-mkhtml PATH "${GLIB_PREFIX}/bin") + find_program(GTKDOC_FIXXREF_EXE gtkdoc-fixxref PATH "${GLIB_PREFIX}/bin") + + find_package_handle_standard_args(GtkDoc +- REQUIRED_VARS GTKDOC_SCAN_EXE GTKDOC_SCANGOBJ_EXE GTKDOC_SCANGOBJ_WRAPPER GTKDOC_MKDB_EXE GTKDOC_MKHTML_EXE GTKDOC_FIXXREF_EXE ++ REQUIRED_VARS GTKDOC_SCAN_EXE GTKDOC_SCANGOBJ_EXE GTKDOC_MKDB_EXE GTKDOC_MKHTML_EXE GTKDOC_FIXXREF_EXE + VERSION_VAR GtkDoc_VERSION) + + # :: +-- +2.11.0 +
meta/recipes-devtools/libdnf/libdnf/0001-Get-parameters-for-both-libsolv-and-libsolvext-libdn.patch new file +28 -0
@@ -0,0 +1,28 @@ +From 5958b151a4dbb89114e90c971a34b74f873b7beb Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <[email protected]> +Date: Tue, 7 Feb 2017 12:16:03 +0200 +Subject: [PATCH] Get parameters for both libsolv and libsolvext (libdnf is + using both) + +Upstream-Status: Pending [depends on whether https://github.com/openSUSE/libsolv/pull/177 is accepted] +Signed-off-by: Alexander Kanavin <[email protected]> +--- + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index b531da1..e512da0 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -28,7 +28,7 @@ find_package (PkgConfig REQUIRED) + SET (CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules) + PKG_CHECK_MODULES(GLIB gio-unix-2.0>=2.44.0 REQUIRED) + FIND_LIBRARY (RPMDB_LIBRARY NAMES rpmdb) +-PKG_CHECK_MODULES (LIBSOLV REQUIRED libsolv) ++PKG_CHECK_MODULES (LIBSOLV REQUIRED libsolv libsolvext) + set(LIBSOLV_LIBRARY ${LIBSOLV_LIBRARIES}) + pkg_check_modules (CHECK REQUIRED check) + pkg_check_modules (REPO REQUIRED librepo) +-- +2.11.0 +
meta/recipes-devtools/libdnf/libdnf/0002-Prefix-sysroot-path-to-introspection-tools-path.patch new file +36 -0
@@ -0,0 +1,36 @@ +From c8211ad99ccaa4af4a75e0ba639527267fcfd69e Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <[email protected]> +Date: Fri, 30 Dec 2016 18:17:19 +0200 +Subject: [PATCH 2/4] Prefix sysroot path to introspection tools path. + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin <[email protected]> +--- + libdnf/CMakeLists.txt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libdnf/CMakeLists.txt b/libdnf/CMakeLists.txt +index 63f07bf..837792b 100644 +--- a/libdnf/CMakeLists.txt ++++ b/libdnf/CMakeLists.txt +@@ -133,7 +133,7 @@ if (GOBJECT_INTROSPECTION_FOUND) + set(GIR_TYPELIB "${GIR_PREFIX}.typelib") + + add_custom_command(OUTPUT ${GIR_XML} +- COMMAND env CFLAGS=${CMAKE_C_FLAGS} ${GOBJECT_INTROSPECTION_1.0_G_IR_SCANNER} ++ COMMAND env CFLAGS=${CMAKE_C_FLAGS} $ENV{PKG_CONFIG_SYSROOT_DIR}${GOBJECT_INTROSPECTION_1.0_G_IR_SCANNER} + --namespace=Dnf + --nsversion=${DNF_SO_VERSION}.0 + --library-path=${CMAKE_CURRENT_BINARY_DIR} +@@ -153,7 +153,7 @@ if (GOBJECT_INTROSPECTION_FOUND) + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + + add_custom_command(OUTPUT ${GIR_TYPELIB} +- COMMAND ${GOBJECT_INTROSPECTION_1.0_G_IR_COMPILER} ++ COMMAND $ENV{PKG_CONFIG_SYSROOT_DIR}${GOBJECT_INTROSPECTION_1.0_G_IR_COMPILER} + -o ${GIR_TYPELIB} + ${GIR_XML} + DEPENDS ${GIR_XML} +-- +2.11.0 +
meta/recipes-devtools/libdnf/libdnf/0003-Set-the-library-installation-directory-correctly.patch new file +29 -0
@@ -0,0 +1,29 @@ +From 8d29879fe3606c78769c1bcdddf0bcfc7191c710 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <[email protected]> +Date: Fri, 30 Dec 2016 18:20:01 +0200 +Subject: [PATCH 3/4] Set the library installation directory correctly. + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin <[email protected]> +--- + CMakeLists.txt | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d35f0d7..8edb627 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -62,7 +62,9 @@ ADD_DEFINITIONS(-DPACKAGE_VERSION=\\"${LIBDNF_VERSION}\\") + IF (CMAKE_SIZEOF_VOID_P MATCHES "8") + SET (LIB_SUFFIX "64") + ENDIF (CMAKE_SIZEOF_VOID_P MATCHES "8") +-SET (LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}") ++#SET (LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}") ++SET (LIB_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}") ++ + + ADD_SUBDIRECTORY (libdnf) + ENABLE_TESTING() +-- +2.11.0 +
meta/recipes-devtools/libdnf/libdnf/0004-Set-libsolv-variables-with-pkg-config-cmake-s-own-mo.patch new file +29 -0
@@ -0,0 +1,29 @@ +From 6d2718b925453f9a6915001f489606eb8e4086c8 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <[email protected]> +Date: Fri, 30 Dec 2016 18:24:50 +0200 +Subject: [PATCH 4/4] Set libsolv variables with pkg-config (cmake's own module + doesn't work properly). + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin <[email protected]> +--- + CMakeLists.txt | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 8edb627..b531da1 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -28,7 +28,8 @@ find_package (PkgConfig REQUIRED) + SET (CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules) + PKG_CHECK_MODULES(GLIB gio-unix-2.0>=2.44.0 REQUIRED) + FIND_LIBRARY (RPMDB_LIBRARY NAMES rpmdb) +-find_package (LibSolv 0.6.21 REQUIRED COMPONENTS ext) ++PKG_CHECK_MODULES (LIBSOLV REQUIRED libsolv) ++set(LIBSOLV_LIBRARY ${LIBSOLV_LIBRARIES}) + pkg_check_modules (CHECK REQUIRED check) + pkg_check_modules (REPO REQUIRED librepo) + FIND_PROGRAM (VALGRIND_PROGRAM NAMES valgrind PATH /usr/bin /usr/local/bin) +-- +2.11.0 +
meta/recipes-devtools/libdnf/libdnf_git.bb new file +40 -0
@@ -0,0 +1,40 @@ +SUMMARY = "Library providing simplified C and Python API to libsolv" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +SRC_URI = "git://github.com/rpm-software-management/libdnf \ + file://0001-FindGtkDoc.cmake-drop-the-requirement-for-GTKDOC_SCA.patch \ + file://0002-Prefix-sysroot-path-to-introspection-tools-path.patch \ + file://0003-Set-the-library-installation-directory-correctly.patch \ + file://0004-Set-libsolv-variables-with-pkg-config-cmake-s-own-mo.patch \ + file://0001-Get-parameters-for-both-libsolv-and-libsolvext-libdn.patch \ + " + +PV = "0.2.3+git${SRCPV}" +SRCREV = "367545629cc01a8e622890d89bd13d062ce60d7b" + +S = "${WORKDIR}/git" + +DEPENDS = "glib-2.0 libsolv libcheck librepo rpm gtk-doc" + +inherit gtk-doc gobject-introspection cmake pkgconfig + +# We cannot inherit pythonnative (or descendant classes like distutils etc.) +# because that would conflict with inheriting python3native +# (which is done by inheriting gobject-introspection). +# But libdnf only needs the path to native Python 2.x binary +# so we simply set it explicitly here. +# +# These lines can be dropped when dnf stack is moved to python 3.x +EXTRANATIVEPATH += "python-native" +FILES_${PN} += " ${libdir}/python2.7/*" +DEPENDS += "python-native" + +EXTRA_OECMAKE = " -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DWITH_MAN=OFF \ + ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DWITH_GIR=ON', '-DWITH_GIR=OFF', d)} \ + " +EXTRA_OECMAKE_append_class-native = " -DWITH_GIR=OFF" +EXTRA_OECMAKE_append_class-nativesdk = " -DWITH_GIR=OFF" + +BBCLASSEXTEND = "native" +
Signature · 1 line
2.11.0
PATCH 14/44 dnf: add a recipe
In reply to Alexander KanavinThis is replacing Smart package manager, which is unsupported upstream, and has a growing amount of issues (lack of python 3.x support in particular). We identified dnf as the only feasible replacement.
--- ...Corretly-install-tmpfiles.d-configuration.patch | 21 ++++++++++ ...hardcode-etc-and-systemd-unit-directories.patch | 29 +++++++++++++ ...0001-Do-not-prepend-installroot-to-logdir.patch | 31 ++++++++++++++ .../dnf/dnf/0028-Use-backports.lzma-not-lzma.patch | 30 ++++++++++++++ ...-set-PYTHON_INSTALL_DIR-by-running-python.patch | 27 ++++++++++++ .../dnf/0030-Run-python-scripts-using-env.patch | 48 ++++++++++++++++++++++ meta/recipes-devtools/dnf/dnf_git.bb | 45 ++++++++++++++++++++ 7 files changed, 231 insertions(+) create mode 100644 meta/recipes-devtools/dnf/dnf/0001-Corretly-install-tmpfiles.d-configuration.patch create mode 100644 meta/recipes-devtools/dnf/dnf/0001-Do-not-hardcode-etc-and-systemd-unit-directories.patch create mode 100644 meta/recipes-devtools/dnf/dnf/0001-Do-not-prepend-installroot-to-logdir.patch create mode 100644 meta/recipes-devtools/dnf/dnf/0028-Use-backports.lzma-not-lzma.patch create mode 100644 meta/recipes-devtools/dnf/dnf/0029-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch create mode 100644 meta/recipes-devtools/dnf/dnf/0030-Run-python-scripts-using-env.patch create mode 100644 meta/recipes-devtools/dnf/dnf_git.bb
meta/recipes-devtools/dnf/dnf/0001-Corretly-install-tmpfiles.d-configuration.patch new file +21 -0
@@ -0,0 +1,21 @@ +From 8ce181714640315d2dd37ee794acbb22063cd669 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <[email protected]> +Date: Thu, 26 Jan 2017 16:36:20 +0200 +Subject: [PATCH] Corretly install tmpfiles.d configuration + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin <[email protected]> +--- + etc/tmpfiles.d/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/etc/tmpfiles.d/CMakeLists.txt b/etc/tmpfiles.d/CMakeLists.txt +index f69c773e..3eb6d0e8 100644 +--- a/etc/tmpfiles.d/CMakeLists.txt ++++ b/etc/tmpfiles.d/CMakeLists.txt +@@ -1 +1 @@ +-INSTALL (FILES dnf.conf DESTINATION /usr/lib/tmpfiles.d/) ++INSTALL (FILES dnf.conf DESTINATION ${SYSCONFDIR}/tmpfiles.d/) +-- +2.11.0 +
meta/recipes-devtools/dnf/dnf/0001-Do-not-hardcode-etc-and-systemd-unit-directories.patch new file +29 -0
@@ -0,0 +1,29 @@ +From 4313ced1320594013795f11f6db00381e3f4cc45 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <[email protected]> +Date: Thu, 26 Jan 2017 16:25:47 +0200 +Subject: [PATCH] Do not hardcode /etc and systemd unit directories + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin <[email protected]> +--- + CMakeLists.txt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 6a319935..db20ccd4 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -7,8 +7,8 @@ if (NOT PYTHON_DESIRED) + set (PYTHON_DESIRED "2") + endif() + +-SET( SYSCONFDIR /etc) +-SET( SYSTEMD_DIR /usr/lib/systemd/system) ++SET( SYSCONFDIR ${CMAKE_INSTALL_SYSCONFDIR}) ++SET( SYSTEMD_DIR $ENV{systemd_system_unitdir}) + + if (${PYTHON_DESIRED} STREQUAL "2") + FIND_PACKAGE (PythonInterp REQUIRED) +-- +2.11.0 +
meta/recipes-devtools/dnf/dnf/0001-Do-not-prepend-installroot-to-logdir.patch new file +31 -0
@@ -0,0 +1,31 @@ +From 31653d324cf8c7b1f2f9e49d22676bd2ac546331 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <[email protected]> +Date: Wed, 11 Jan 2017 15:10:13 +0200 +Subject: [PATCH] Do not prepend installroot to logdir. + +This would otherwise write the logs into rootfs/var/log +(whereas we want them in $T), +and will break installation of base-files rpm. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin <[email protected]> +--- + dnf/cli/cli.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/dnf/cli/cli.py b/dnf/cli/cli.py +index b764801a..893f4bda 100644 +--- a/dnf/cli/cli.py ++++ b/dnf/cli/cli.py +@@ -881,7 +881,7 @@ class Cli(object): + subst = conf.substitutions + subst.update_from_etc(conf.installroot) + +- for opt in ('cachedir', 'logdir', 'persistdir'): ++ for opt in ('cachedir', 'persistdir'): + conf.prepend_installroot(opt) + + self.base._logging._setup_from_dnf_conf(conf) +-- +2.11.0 +
meta/recipes-devtools/dnf/dnf/0028-Use-backports.lzma-not-lzma.patch new file +30 -0
@@ -0,0 +1,30 @@ +From 89af5c84d4b920d22ae882fcc5ab71ba09443cea Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <[email protected]> +Date: Fri, 30 Dec 2016 18:28:18 +0200 +Subject: [PATCH 28/30] Use backports.lzma, not lzma + +This is needed when using Python 2.x and should be dropped +after moving to Python 3.x + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin <[email protected]> +--- + dnf/yum/misc.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/dnf/yum/misc.py b/dnf/yum/misc.py +index 441b0148..6b4aea0a 100644 +--- a/dnf/yum/misc.py ++++ b/dnf/yum/misc.py +@@ -37,7 +37,7 @@ import gpgme.editutil + import gzip + import hashlib + import io +-import lzma ++import backports.lzma + import os + import os.path + import pwd +-- +2.11.0 +
meta/recipes-devtools/dnf/dnf/0029-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch new file +27 -0
@@ -0,0 +1,27 @@ +From 3ddaa930cda57a62a2174faebcc87aebc59591d1 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <[email protected]> +Date: Fri, 30 Dec 2016 18:29:07 +0200 +Subject: [PATCH 29/30] Do not set PYTHON_INSTALL_DIR by running python + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin <[email protected]> +--- + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 6a319935..466ca1e6 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -18,7 +18,7 @@ else() + FIND_PACKAGE(PythonInterp 3.0 REQUIRED) + endif() + +-EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from distutils import sysconfig; stdout.write(sysconfig.get_python_lib())" OUTPUT_VARIABLE PYTHON_INSTALL_DIR) ++#EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from distutils import sysconfig; stdout.write(sysconfig.get_python_lib())" OUTPUT_VARIABLE PYTHON_INSTALL_DIR) + EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "import sys; sys.stdout.write('%s.%s' % (sys.version_info.major, sys.version_info.minor))" OUTPUT_VARIABLE PYTHON_MAJOR_DOT_MINOR_VERSION) + MESSAGE(STATUS "Python install dir is ${PYTHON_INSTALL_DIR}") + +-- +2.11.0 +
meta/recipes-devtools/dnf/dnf/0030-Run-python-scripts-using-env.patch new file +48 -0
48 lines not on this page · raw message
meta/recipes-devtools/dnf/dnf_git.bb new file +45 -0
45 lines not on this page · raw message
Signature · 1 line
2.11.0
PATCH 15/44 python-smartpm: remove the recipe
In reply to Alexander Kanavin--- ...m_sys-use-md5sum-instead-of-mtime-as-the-.patch | 38 -- ...art-add-deugging-when-targetpath-is-empty.patch | 47 --- .../smart-add-for-rpm-ignoresize-check.patch | 35 -- .../smart-already-installed-message.patch | 54 --- .../python/python-smartpm/smart-attempt-fix.patch | 158 --------- .../python/python-smartpm/smart-attempt.patch | 185 ---------- ...cache.py-getPackages-matches-name-version.patch | 43 --- .../python-smartpm/smart-channel-remove-all.patch | 33 -- .../python/python-smartpm/smart-channelsdir.patch | 24 -- .../python/python-smartpm/smart-locale.patch | 27 -- .../python/python-smartpm/smart-recommends.patch | 381 --------------------- .../smart-rpm-transaction-failure-check.patch | 57 --- .../smart-set-noprogress-for-pycurl.patch | 20 -- .../smartpm-rpm5-support-check-signatures.patch | 112 ------ meta/recipes-devtools/python/python-smartpm_git.bb | 141 -------- 15 files changed, 1355 deletions(-) delete mode 100644 meta/recipes-devtools/python/python-smartpm/channels-rpm_sys-use-md5sum-instead-of-mtime-as-the-.patch delete mode 100644 meta/recipes-devtools/python/python-smartpm/smart-add-deugging-when-targetpath-is-empty.patch delete mode 100644 meta/recipes-devtools/python/python-smartpm/smart-add-for-rpm-ignoresize-check.patch delete mode 100644 meta/recipes-devtools/python/python-smartpm/smart-already-installed-message.patch delete mode 100644 meta/recipes-devtools/python/python-smartpm/smart-attempt-fix.patch delete mode 100644 meta/recipes-devtools/python/python-smartpm/smart-attempt.patch delete mode 100644 meta/recipes-devtools/python/python-smartpm/smart-cache.py-getPackages-matches-name-version.patch delete mode 100644 meta/recipes-devtools/python/python-smartpm/smart-channel-remove-all.patch delete mode 100644 meta/recipes-devtools/python/python-smartpm/smart-channelsdir.patch delete mode 100644 meta/recipes-devtools/python/python-smartpm/smart-locale.patch delete mode 100644 meta/recipes-devtools/python/python-smartpm/smart-recommends.patch delete mode 100644 meta/recipes-devtools/python/python-smartpm/smart-rpm-transaction-failure-check.patch delete mode 100644 meta/recipes-devtools/python/python-smartpm/smart-set-noprogress-for-pycurl.patch delete mode 100644 meta/recipes-devtools/python/python-smartpm/smartpm-rpm5-support-check-signatures.patch delete mode 100644 meta/recipes-devtools/python/python-smartpm_git.bb
meta/recipes-devtools/python/python-smartpm/channels-rpm_sys-use-md5sum-instead-of-mtime-as-the-.patch deleted +0 -38
@@ -1,38 +0,0 @@ -channels/rpm_sys: use md5sum instead of mtime as the digest - -Use the internal getFileDigest() function (which defaults to md5) instead of -mtime for getting the file digest. On some systems mtime proved to be -unreliable because of delayed update. This caused smart to miss rpm db updates -and thus get its understanding of installed packages out of sync. - -Upstream-Status: Pending - -Signed-off-by: Markus Lehtonen <[email protected]> ---- - smart/channels/rpm_sys.py | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/smart/channels/rpm_sys.py b/smart/channels/rpm_sys.py -index b9fda27..6f1fe94 100644 ---- a/smart/channels/rpm_sys.py -+++ b/smart/channels/rpm_sys.py -@@ -22,6 +22,7 @@ - from smart.backends.rpm.header import RPMDBLoader - from smart.backends.rpm.base import getTS, rpm_join_dbpath - from smart.channel import PackageChannel -+from smart.util.filetools import getFileDigest - from smart import * - import os - -@@ -35,7 +36,7 @@ class RPMSysChannel(PackageChannel): - dbdir = rpm_join_dbpath(sysconf.get("rpm-root", "/"), - sysconf.get("rpm-dbpath", "var/lib/rpm")) - path = os.path.join(dbdir, "Packages") -- digest = os.path.getmtime(path) -+ digest = getFileDigest(path) - if digest == self._digest: - return True - self.removeLoaders() --- -2.6.6 -
meta/recipes-devtools/python/python-smartpm/smart-add-deugging-when-targetpath-is-empty.patch deleted +0 -47
47 lines not on this page · raw message
meta/recipes-devtools/python/python-smartpm/smart-add-for-rpm-ignoresize-check.patch deleted +0 -35
@@ -1,35 +0,0 @@ -python-smartpm: Add checking for "rpm-ignoresize" option - -The do_rootfs takes a very long time when build host has mounted many NFS -devices. syscall lstat() was being called on every filesystem mounted on the -build host during building. -The reason for the lstat() is that rpm is verifying that enough free disk space -is available to do the install. However, since the install is into the target -rootfs it should not matter how much free space there is in the host mounts. -Add checking for "rpm-ignoresize", by it, smart can make whether RPM skip -checking for diskspace when install a rpm package. - -Upstream-Status: Pending - -Signed-off-by: wenlin.kang <[email protected]> -Signed-off-by: Chong Lu <[email protected]> ---- - smart/backends/rpm/pm.py | 4 ++++ - 1 file changed, 4 insertions(+) - -Index: git/smart/backends/rpm/pm.py -=================================================================== ---- git.orig/smart/backends/rpm/pm.py -+++ git/smart/backends/rpm/pm.py -@@ -233,6 +233,11 @@ class RPMPackageManager(PackageManager): - if sysconf.get("rpm-order"): - ts.order() - probfilter = rpm.RPMPROB_FILTER_OLDPACKAGE -+ -+ if sysconf.get("rpm-ignoresize", False): -+ probfilter |= rpm.RPMPROB_FILTER_DISKNODES -+ probfilter |= rpm.RPMPROB_FILTER_DISKSPACE -+ - if force or reinstall: - probfilter |= rpm.RPMPROB_FILTER_REPLACEPKG - probfilter |= rpm.RPMPROB_FILTER_REPLACEOLDFILES
meta/recipes-devtools/python/python-smartpm/smart-already-installed-message.patch deleted +0 -54
54 lines not on this page · raw message
meta/recipes-devtools/python/python-smartpm/smart-attempt-fix.patch deleted +0 -158
158 lines not on this page · raw message
meta/recipes-devtools/python/python-smartpm/smart-attempt.patch deleted +0 -185
185 lines not on this page · raw message
meta/recipes-devtools/python/python-smartpm/smart-cache.py-getPackages-matches-name-version.patch deleted +0 -43
43 lines not on this page · raw message
meta/recipes-devtools/python/python-smartpm/smart-channel-remove-all.patch deleted +0 -33
@@ -1,33 +0,0 @@ -From 6d2363a705697f615d9e5af5d6703b291e618b46 Mon Sep 17 00:00:00 2001 -From: Daniel Klauer <[email protected]> -Date: Thu, 12 May 2016 17:55:01 +0200 -Subject: [PATCH] Fix channel command --remove-all option parsing - -Option.take_action() stores a list of options given for validation later. -It strips leading dashes and turns remaining dashes into underscores. -This list is what ensure_action() will compare its arguments against, -thus we must use underscores here. - -Upstream-Status: Pending - -Signed-off-by: Daniel Klauer <[email protected]> ---- - smart/commands/channel.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/smart/commands/channel.py b/smart/commands/channel.py -index 108f3f1..6234f69 100644 ---- a/smart/commands/channel.py -+++ b/smart/commands/channel.py -@@ -164,7 +164,7 @@ def main(ctrl, opts): - opts.check_args_of_option("edit", 0) - opts.check_args_of_option("enable", -1) - opts.check_args_of_option("disable", -1) -- opts.ensure_action("channel", ["add", "set", "remove", "remove-all", -+ opts.ensure_action("channel", ["add", "set", "remove", "remove_all", - "list", "show", "yaml", "enable", "disable"]) - opts.check_remaining_args() - --- -1.9.1 -
meta/recipes-devtools/python/python-smartpm/smart-channelsdir.patch deleted +0 -24
@@ -1,24 +0,0 @@ -Make CHANNELSDIR in smart empty, since this causes host contamination issues -on some RPM-based hosts on which smart is already installed. - -[YOCTO #3881] - -Upstream-Status: Inappropriate [embedded specific] - -diff --git a/smart/plugins/channelsync.py b/smart/plugins/channelsync.py -index 3ba95ff..646d696 100644 ---- a/smart/plugins/channelsync.py -+++ b/smart/plugins/channelsync.py -@@ -23,7 +23,11 @@ from smart.channel import * - from smart import * - import os - --CHANNELSDIR = "/etc/smart/channels/" -+# For now, we leave the definition of CHANNELSDIR empty. This prevents smart -+# from erroneously consider the build host's channels while setting up its -+# channels [YOCTO #3881]. If this feature will be used in the future, CHANNELSDIR -+# should be set to a proper value. -+CHANNELSDIR = "" - - def syncChannels(channelsdir, force=None): -
meta/recipes-devtools/python/python-smartpm/smart-locale.patch deleted +0 -27
@@ -1,27 +0,0 @@ -rpm or commands run by rpm can use output which isn't strictly acsii such -as quotation characters around expression which are character 0xe2. - -Use utf-8 as an encoding rather than whatever the system suggests to -ensure smart copes with this rather than erroring with unicode errors. - -RP 2016/5/19 -Upstream-Status: Pending - - -Index: git/smart/backends/rpm/pm.py -=================================================================== ---- git.orig/smart/backends/rpm/pm.py -+++ git/smart/backends/rpm/pm.py -@@ -32,11 +32,7 @@ from smart.pm import PackageManager - from smart import sysconf, iface, Error, _ - - --try: -- ENCODING = locale.getpreferredencoding() --except locale.Error: -- ENCODING = "ascii" -- -+ENCODING = "utf-8" - - def get_public_key(header): - return header.sprintf("%|DSAHEADER?{%{DSAHEADER:pgpsig}}:"
meta/recipes-devtools/python/python-smartpm/smart-recommends.patch deleted +0 -381
381 lines not on this page · raw message
meta/recipes-devtools/python/python-smartpm/smart-rpm-transaction-failure-check.patch deleted +0 -57
57 lines not on this page · raw message
meta/recipes-devtools/python/python-smartpm/smart-set-noprogress-for-pycurl.patch deleted +0 -20
@@ -1,20 +0,0 @@ -Set NOPROGRESS for pycurl just as same as default operation in pycurl module itself. -If set NOPROGRESS with 0 for pycurl, it causes dead lock issue of Python GIL when -call smart library by python gui just like pygtk. - -Upstream-Status: Pending - -Signed-off-by: Kai Kang <[email protected]> ---- -diff -u smart-1.4.1/smart.orig/fetcher.py smart-1.4.1/smart/fetcher.py ---- smart-1.4.1/smart.orig/fetcher.py 2014-07-15 16:42:19.240437080 +0800 -+++ smart-1.4.1/smart/fetcher.py 2014-07-15 17:02:37.812470289 +0800 -@@ -1720,7 +1720,7 @@ - handle.setopt(pycurl.OPT_FILETIME, 1) - handle.setopt(pycurl.LOW_SPEED_LIMIT, 1) - handle.setopt(pycurl.LOW_SPEED_TIME, SOCKETTIMEOUT) -- handle.setopt(pycurl.NOPROGRESS, 0) -+ handle.setopt(pycurl.NOPROGRESS, 1) - handle.setopt(pycurl.PROGRESSFUNCTION, progress) - handle.setopt(pycurl.WRITEDATA, local) - handle.setopt(pycurl.FOLLOWLOCATION, 1)
meta/recipes-devtools/python/python-smartpm/smartpm-rpm5-support-check-signatures.patch deleted +0 -112
112 lines not on this page · raw message
meta/recipes-devtools/python/python-smartpm_git.bb deleted +0 -141
141 lines not on this page · raw message
Signature · 1 line
2.11.0
PATCH 16/44 db: remove the 6.x recipe
In reply to Alexander KanavinVersion 6.x of Berkeley DB has been rejected by open source community due to its hostile AGPLv3 license; both Fedora and Debian are sticking with db 5.x - and by extension, all the open source projects are still developed and tested with db 5.x
In oe-core the only thing that was requiring db 6.x was rpm 5.x, and so there's no reason to continue carrying db 6.x in oe-core. If someone needs API features that are only available in db 6.x, it can be re-added to meta-oe.
--- meta/conf/distro/include/default-versions.inc | 3 - ...Makefile-let-libdb-6.0.la-depend-os_map.l.patch | 29 ------ ...akefile-let-libso_target-depend-on-bt_rec.patch | 30 ------ meta/recipes-support/db/db_5.3.28.bb | 1 + meta/recipes-support/db/db_6.0.35.bb | 111 --------------------- 5 files changed, 1 insertion(+), 173 deletions(-) delete mode 100644 meta/recipes-support/db/db/Makefile-let-libdb-6.0.la-depend-os_map.l.patch delete mode 100644 meta/recipes-support/db/db/Makefile-let-libso_target-depend-on-bt_rec.patch delete mode 100644 meta/recipes-support/db/db_6.0.35.bb
meta/conf/distro/include/default-versions.inc +0 -3
@@ -5,6 +5,3 @@ # Force the older version of liberation-fonts until we fix the fontforge issue PREFERRED_VERSION_liberation-fonts ?= "1.04" -# Force db-native's version to keep sync with db while -# 'AGPL-3.0' in ${INCOMPATIBLE_LICENSE} blacklist -PREFERRED_VERSION_db-native = "${@incompatible_license_contains('AGPL-3.0', '5.%', '6.%', d)}"
meta/recipes-support/db/db/Makefile-let-libdb-6.0.la-depend-os_map.l.patch deleted +0 -29
@@ -1,29 +0,0 @@ -From 2902dda6e3f7b2cd5796a96af20deece610e2eb9 Mon Sep 17 00:00:00 2001 -From: Robert Yang <[email protected]> -Date: Mon, 16 Nov 2015 22:20:49 -0800 -Subject: [PATCH] build_unix/Makefile: let libdb-6.0.la depend os_map.lo - -Fixed parallel issue: -libtool: link: `os_map.lo' is not a valid libtool object -Makefile:867: recipe for target 'libdb-6.0.la' failed - -Upstream-Status: Pending - -Signed-off-by: Robert Yang <[email protected]> ---- - dist/Makefile.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: db-6.0.30/dist/Makefile.in -=================================================================== ---- db-6.0.30.orig/dist/Makefile.in -+++ db-6.0.30/dist/Makefile.in -@@ -863,7 +863,7 @@ $(libdb_version): $(C_OBJS) - $(LN) -s $(libdb_version) $(libdb) - - # Shared C library. --$(libso_target): $(C_OBJS) bt_rec@o@ -+$(libso_target): $(C_OBJS) bt_rec@o@ os_map@o@ - $(SOLINK) $(SOFLAGS) $(LDFLAGS) -o $@ $(C_OBJS) \ - $(LIBCSO_LIBS) - $(RM) $(libdb)
meta/recipes-support/db/db/Makefile-let-libso_target-depend-on-bt_rec.patch deleted +0 -30
@@ -1,30 +0,0 @@ -From c640ff9340f358a00835816d0fea03d27a7be978 Mon Sep 17 00:00:00 2001 -From: Robert Yang <[email protected]> -Date: Tue, 31 Mar 2015 00:56:44 -0700 -Subject: [PATCH] Makefile: let libso_target depend on bt_rec - -Fixed parallel issue: -libtool: link: `bt_rec.lo' is not a valid libtool object -Makefile:867: recipe for target 'libdb-6.0.la' failed -make: *** [libdb-6.0.la] Error 1 - -Upstream-Status: Pending - -Signed-off-by: Robert Yang <[email protected]> ---- - Makefile.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: db-6.0.30/dist/Makefile.in -=================================================================== ---- db-6.0.30.orig/dist/Makefile.in -+++ db-6.0.30/dist/Makefile.in -@@ -863,7 +863,7 @@ $(libdb_version): $(C_OBJS) - $(LN) -s $(libdb_version) $(libdb) - - # Shared C library. --$(libso_target): $(C_OBJS) -+$(libso_target): $(C_OBJS) bt_rec@o@ - $(SOLINK) $(SOFLAGS) $(LDFLAGS) -o $@ $(C_OBJS) \ - $(LIBCSO_LIBS) - $(RM) $(libdb)
meta/recipes-support/db/db_5.3.28.bb +1 -0
@@ -16,6 +16,7 @@ VIRTUAL_NAME ?= "virtual/db" RCONFLICTS_${PN} = "db3" PR = "r1" +PE = "1" SRC_URI = "http://download.oracle.com/berkeley-db/db-${PV}.tar.gz" SRC_URI += "file://arm-thumb-mutex_db5.patch \
meta/recipes-support/db/db_6.0.35.bb deleted +0 -111
111 lines not on this page · raw message
Signature · 1 line
2.11.0
PATCH 17/44 package_rpm.bbclass: make architecture-independent .rpm packages "noarch" instead of "all"
In reply to Alexander KanavinToo many places in dnf/rpm4 stack make that assumption; let's not fight against it.
--- meta/classes/package_rpm.bbclass | 4 +++- meta/classes/sstate.bbclass | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-)
meta/classes/package_rpm.bbclass +3 -1
@@ -684,7 +684,9 @@ python do_package_rpm () { rpmbuild = d.getVar('RPMBUILD') targetsys = d.getVar('TARGET_SYS') targetvendor = d.getVar('HOST_VENDOR') - package_arch = (d.getVar('PACKAGE_ARCH') or "").replace("-", "_") + # Too many places in dnf stack assume that arch-independent packages are "noarch". + # Let's not fight against this. + package_arch = (d.getVar('PACKAGE_ARCH') or "").replace("-", "_").replace("all", "noarch") sdkpkgsuffix = (d.getVar('SDKPKGSUFFIX') or "nativesdk").replace("-", "_") if package_arch not in "all any noarch".split() and not package_arch.endswith(sdkpkgsuffix): ml_prefix = (d.getVar('MLPREFIX') or "").replace("-", "_")
meta/classes/sstate.bbclass +1 -1
@@ -25,7 +25,7 @@ PV[vardepvalue] = "${PV}" SSTATE_EXTRAPATH[vardepvalue] = "" # For multilib rpm the allarch packagegroup files can overwrite (in theory they're identical) -SSTATE_DUPWHITELIST = "${DEPLOY_DIR_IMAGE}/ ${DEPLOY_DIR}/licenses/ ${DEPLOY_DIR_RPM}/all/" +SSTATE_DUPWHITELIST = "${DEPLOY_DIR_IMAGE}/ ${DEPLOY_DIR}/licenses/ ${DEPLOY_DIR_RPM}/noarch/" # Avoid docbook/sgml catalog warnings for now SSTATE_DUPWHITELIST += "${STAGING_ETCDIR_NATIVE}/sgml ${STAGING_DATADIR_NATIVE}/sgml" # Archive the sources for many architectures in one deploy folder
Signature · 1 line
2.11.0
PATCH 18/44 package_manager.py: improve the API for insert_feed_uris()
In reply to Alexander KanavinNo need to store the configuration as class members, just pass it directly into the method.
--- meta/lib/oe/package_manager.py | 41 ++++++++++++++++++++++------------------- meta/lib/oe/rootfs.py | 5 ++++- 2 files changed, 26 insertions(+), 20 deletions(-)
meta/lib/oe/package_manager.py +22 -19
@@ -513,9 +513,6 @@ class PackageManager(object, metaclass=ABCMeta): self.d = d self.deploy_dir = None self.deploy_lock = None - self.feed_uris = self.d.getVar('PACKAGE_FEED_URIS') or "" - self.feed_base_paths = self.d.getVar('PACKAGE_FEED_BASE_PATHS') or "" - self.feed_archs = self.d.getVar('PACKAGE_FEED_ARCHS') """ Update the package manager package database.
@@ -555,8 +552,14 @@ class PackageManager(object, metaclass=ABCMeta): def list_installed(self): pass + """ + Add remote package feeds into repository manager configuration. The parameters + for the feeds are set by feed_uris, feed_base_paths and feed_archs. + See http://www.yoctoproject.org/docs/current/ref-manual/ref-manual.html#var-PACKAGE_FEED_URIS + for their description. + """ @abstractmethod - def insert_feeds_uris(self): + def insert_feeds_uris(self, feed_uris, feed_base_paths, feed_archs): pass """
@@ -691,14 +694,14 @@ class RpmPM(PackageManager): self.ml_prefix_list, self.ml_os_list = self.indexer.get_ml_prefix_and_os_list(arch_var, os_var) - def insert_feeds_uris(self): - if self.feed_uris == "": + def insert_feeds_uris(self, feed_uris, feed_base_paths, feed_archs): + if feed_uris == "": return arch_list = [] - if self.feed_archs is not None: + if feed_archs is not None: # User define feed architectures - arch_list = self.feed_archs.split() + arch_list = feed_archs.split() else: # List must be prefered to least preferred order default_platform_extra = list()
@@ -721,7 +724,7 @@ class RpmPM(PackageManager): continue arch_list.append(arch) - feed_uris = self.construct_uris(self.feed_uris.split(), self.feed_base_paths.split()) + feed_uris = self.construct_uris(feed_uris.split(), feed_base_paths.split()) uri_iterator = 0 channel_priority = 10 + 5 * len(feed_uris) * (len(arch_list) if arch_list else 1)
@@ -1707,22 +1710,22 @@ class OpkgPM(OpkgDpkgPM): config_file.write("option info_dir %s\n" % os.path.join(self.d.getVar('OPKGLIBDIR'), 'opkg', 'info')) config_file.write("option status_file %s\n" % os.path.join(self.d.getVar('OPKGLIBDIR'), 'opkg', 'status')) - def insert_feeds_uris(self): - if self.feed_uris == "": + def insert_feeds_uris(self, feed_uris, feed_base_paths, feed_archs): + if feed_uris == "": return rootfs_config = os.path.join('%s/etc/opkg/base-feeds.conf' % self.target_rootfs) - feed_uris = self.construct_uris(self.feed_uris.split(), self.feed_base_paths.split()) - archs = self.pkg_archs.split() if self.feed_archs is None else self.feed_archs.split() + feed_uris = self.construct_uris(feed_uris.split(), feed_base_paths.split()) + archs = self.pkg_archs.split() if feed_archs is None else feed_archs.split() with open(rootfs_config, "w+") as config_file: uri_iterator = 0 for uri in feed_uris: if archs: for arch in archs: - if (self.feed_archs is None) and (not os.path.exists(os.path.join(self.deploy_dir, arch))): + if (feed_archs is None) and (not os.path.exists(os.path.join(self.deploy_dir, arch))): continue bb.note('Adding opkg feed url-%s-%d (%s)' % (arch, uri_iterator, uri))
@@ -2111,23 +2114,23 @@ class DpkgPM(OpkgDpkgPM): if result is not None: bb.fatal(result) - def insert_feeds_uris(self): - if self.feed_uris == "": + def insert_feeds_uris(self, feed_uris, feed_base_paths, feed_archs): + if feed_uris == "": return sources_conf = os.path.join("%s/etc/apt/sources.list" % self.target_rootfs) arch_list = [] - if self.feed_archs is None: + if feed_archs is None: for arch in self.all_arch_list: if not os.path.exists(os.path.join(self.deploy_dir, arch)): continue arch_list.append(arch) else: - arch_list = self.feed_archs.split() + arch_list = feed_archs.split() - feed_uris = self.construct_uris(self.feed_uris.split(), self.feed_base_paths.split()) + feed_uris = self.construct_uris(feed_uris.split(), feed_base_paths.split()) with open(sources_conf, "w+") as sources_file: for uri in feed_uris:
meta/lib/oe/rootfs.py +4 -1
@@ -87,7 +87,10 @@ class Rootfs(object, metaclass=ABCMeta): def _insert_feed_uris(self): if bb.utils.contains("IMAGE_FEATURES", "package-management", True, False, self.d): - self.pm.insert_feeds_uris() + self.pm.insert_feeds_uris(self.d.getVar('PACKAGE_FEED_URIS') or "", + self.d.getVar('PACKAGE_FEED_BASE_PATHS') or "", + self.d.getVar('PACKAGE_FEED_ARCHS')) + @abstractmethod def _handle_intercept_failure(self, failed_script):
Signature · 1 line
2.11.0
PATCH 19/44 package_rpm.bbclass: correctly map RRECOMMENDS and RSUGGESTS to rpm tags
In reply to Alexander KanavinPreviously they were swapped, not sure why. Their meaning, as far as rpm world goes, is different:
- Recommends is a soft dependency and will be installed by default; there is an option not to do that.
- Suggests is a suggestion to be picked up and presented to end user by package management tools; it has no special meaning otherwise.
OE packages use RRECOMMENDS, which should be mapped to Recommends rpm tag, so that the packages will be picked up as dependencies.
--- meta/classes/package_rpm.bbclass | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-)
meta/classes/package_rpm.bbclass +4 -8
@@ -450,10 +450,8 @@ python write_specfile () { if splitrpostrm: print_deps(splitrdepends, "Requires(postun)", spec_preamble_bottom, d) - # Suggests in RPM are like recommends in OE-core! - print_deps(splitrrecommends, "Suggests", spec_preamble_bottom, d) - # While there is no analog for suggests... (So call them recommends for now) - print_deps(splitrsuggests, "Recommends", spec_preamble_bottom, d) + print_deps(splitrrecommends, "Recommends", spec_preamble_bottom, d) + print_deps(splitrsuggests, "Suggests", spec_preamble_bottom, d) print_deps(splitrprovides, "Provides", spec_preamble_bottom, d) print_deps(splitrobsoletes, "Obsoletes", spec_preamble_bottom, d)
@@ -560,10 +558,8 @@ python write_specfile () { if srcrpostrm: print_deps(srcrdepends, "Requires(postun)", spec_preamble_top, d) - # Suggests in RPM are like recommends in OE-core! - print_deps(srcrrecommends, "Suggests", spec_preamble_top, d) - # While there is no analog for suggests... (So call them recommends for now) - print_deps(srcrsuggests, "Recommends", spec_preamble_top, d) + print_deps(srcrrecommends, "Recommends", spec_preamble_top, d) + print_deps(srcrsuggests, "Suggests", spec_preamble_top, d) print_deps(srcrprovides, "Provides", spec_preamble_top, d) print_deps(srcrobsoletes, "Obsoletes", spec_preamble_top, d)
Signature · 1 line
2.11.0
PATCH 20/44 nativesdk-packagegroup-sdk-host: replace smartpm with dnf
In reply to Alexander Kanavin--- meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb | 2 +- meta/recipes-devtools/dnf/dnf_git.bb | 1 - meta/recipes-devtools/libcomps/libcomps_git.bb | 2 +- meta/recipes-devtools/libdnf/libdnf_git.bb | 2 +- meta/recipes-devtools/librepo/librepo_git.bb | 2 +- .../recipes-devtools/python-backports-lzma/python-backports-lzma_git.bb | 2 +- meta/recipes-devtools/python/python-iniparse_0.4.bb | 2 +- meta/recipes-devtools/python/python-pygpgme_0.3.bb | 2 +- meta/recipes-devtools/rpm/rpm_git.bb | 2 +- meta/recipes-gnome/gtk-doc/gtk-doc_1.25.bb | 2 +- meta/recipes-support/gpgme/gpgme_1.8.0.bb | 2 +- meta/recipes-support/libassuan/libassuan_2.4.3.bb | 2 +- meta/recipes-support/libcheck/libcheck_0.10.0.bb | 1 + 13 files changed, 12 insertions(+), 12 deletions(-)
meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb +1 -1
@@ -22,7 +22,7 @@ RDEPENDS_${PN} = "\ nativesdk-automake \ nativesdk-shadow \ nativesdk-makedevs \ - nativesdk-smartpm \ + nativesdk-dnf \ nativesdk-postinst-intercept \ ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'nativesdk-wayland', '', d)} \ "
meta/recipes-devtools/dnf/dnf_git.bb +0 -1
@@ -28,7 +28,6 @@ DEPENDS += "python-backports-lzma" EXTRA_OECMAKE = " -DWITH_MAN=0 -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR}" BBCLASSEXTEND = "native nativesdk" - RDEPENDS_${PN}_class-target += "python-core python-codecs python-netclient python-email python-threading python-distutils librepo python-shell python-subprocess libcomps libdnf python-sqlite3 python-compression python-pygpgme python-backports-lzma python-rpm python-iniparse python-json python-importlib python-curses python-argparse" # Direct dnf-native to read rpm configuration from our sysroot, not the one it was compiled in
meta/recipes-devtools/libcomps/libcomps_git.bb +1 -1
@@ -19,5 +19,5 @@ DEPENDS = "libxml2 expat libcheck" EXTRA_OECMAKE = " -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR}" OECMAKE_SOURCEPATH = "${S}/libcomps" -BBCLASSEXTEND = "native" +BBCLASSEXTEND = "native nativesdk"
meta/recipes-devtools/libdnf/libdnf_git.bb +1 -1
@@ -36,5 +36,5 @@ EXTRA_OECMAKE = " -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DWITH_MAN=OFF EXTRA_OECMAKE_append_class-native = " -DWITH_GIR=OFF" EXTRA_OECMAKE_append_class-nativesdk = " -DWITH_GIR=OFF" -BBCLASSEXTEND = "native" +BBCLASSEXTEND = "native nativesdk"
meta/recipes-devtools/librepo/librepo_git.bb +1 -1
@@ -20,5 +20,5 @@ inherit cmake distutils-base pkgconfig EXTRA_OECMAKE = " -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR}" -BBCLASSEXTEND = "native" +BBCLASSEXTEND = "native nativesdk"
meta/recipes-devtools/python-backports-lzma/python-backports-lzma_git.bb +1 -1
@@ -18,4 +18,4 @@ DEPENDS_append = " xz" RDEPENDS_${PN} += "python-core python-io python-pkgutil" RDEPENDS_${PN}_class-native += "python-core" -BBCLASSEXTEND = "native" +BBCLASSEXTEND = "native nativesdk"
meta/recipes-devtools/python/python-iniparse_0.4.bb +1 -1
@@ -12,6 +12,6 @@ inherit distutils RDEPENDS_${PN} += "python-core" -BBCLASSEXTEND = "native" +BBCLASSEXTEND = "native nativesdk" S = "${WORKDIR}/iniparse-${PV}"
meta/recipes-devtools/python/python-pygpgme_0.3.bb +1 -1
@@ -15,4 +15,4 @@ DEPENDS = "gpgme python" RDEPENDS_${PN} += "python-core" -BBCLASSEXTEND = "native" +BBCLASSEXTEND = "native nativesdk"
meta/recipes-devtools/rpm/rpm_git.bb +1 -1
@@ -60,7 +60,7 @@ EXTRA_OECONF_append_libc-musl = " --disable-nls" # Also disable plugins, so that rpm doesn't attempt to inhibit shutdown via session dbus EXTRA_OECONF_append_class-native = " --sysconfdir=/etc --localstatedir=/var --disable-plugins" -BBCLASSEXTEND = "native" +BBCLASSEXTEND = "native nativesdk" # Direct rpm-native to read configuration from our sysroot, not the one it was compiled in # libmagic also has sysroot path contamination, so override it
meta/recipes-gnome/gtk-doc/gtk-doc_1.25.bb +1 -1
@@ -29,7 +29,7 @@ SRC_URI_append_class-native = " file://pkg-config-native.patch" SRC_URI[archive.md5sum] = "0dc6570953112a464a409fb99258ccbc" SRC_URI[archive.sha256sum] = "1ea46ed400e6501f975acaafea31479cea8f32f911dca4dff036f59e6464fd42" -BBCLASSEXTEND = "native" +BBCLASSEXTEND = "native nativesdk" # Do not check for XML catalogs when building because that # information is not used for anything during build. Recipe
meta/recipes-support/gpgme/gpgme_1.8.0.bb +1 -1
@@ -45,7 +45,7 @@ inherit autotools texinfo binconfig-disabled pkgconfig ${PYTHON_INHERIT} export PKG_CONFIG='pkg-config' -BBCLASSEXTEND = "native" +BBCLASSEXTEND = "native nativesdk" PACKAGES =+ "${PN}-cpp" PACKAGES =. "${@bb.utils.contains('PACKAGECONFIG', 'python2', 'python2-gpg ', '', d)}"
meta/recipes-support/libassuan/libassuan_2.4.3.bb +1 -1
@@ -28,4 +28,4 @@ do_configure_prepend () { rm -f ${S}/m4/*.m4 } -BBCLASSEXTEND = "native" +BBCLASSEXTEND = "native nativesdk"
meta/recipes-support/libcheck/libcheck_0.10.0.bb +1 -0
@@ -20,5 +20,6 @@ CACHED_CONFIGUREVARS += "ac_cv_path_AWK_PATH=${bindir}/gawk" RREPLACES_${PN} = "check (<= 0.9.5)" RDEPENDS_${PN} += "gawk" RDEPENDS_${PN}_class-native = "" +RDEPENDS_${PN}_class-nativesdk = "" BBCLASSEXTEND = "native nativesdk"
Signature · 1 line
2.11.0
PATCH 21/44 rootfs_rpm.bbclass: migrate image creation to dnf
In reply to Alexander KanavinTo properly look at this patch, you probably need a side-by-side diff viewing tool.
--- meta/classes/rootfs_rpm.bbclass | 21 +- meta/lib/oe/package_manager.py | 1192 ++++++++------------------------------- meta/lib/oe/rootfs.py | 18 +- meta/lib/oe/sdk.py | 7 +- 4 files changed, 239 insertions(+), 999 deletions(-)
meta/classes/rootfs_rpm.bbclass +10 -11
@@ -2,20 +2,23 @@ # Creates a root filesystem out of rpm packages # -ROOTFS_PKGMANAGE = "rpm smartpm" +ROOTFS_PKGMANAGE = "rpm dnf" ROOTFS_PKGMANAGE_BOOTSTRAP = "run-postinsts" -# Add 100Meg of extra space for Smart -IMAGE_ROOTFS_EXTRA_SPACE_append = "${@bb.utils.contains("PACKAGE_INSTALL", "smartpm", " + 102400", "" ,d)}" +# dnf is using our custom distutils, and so will fail without these +export STAGING_INCDIR +export STAGING_LIBDIR -# Smart is python based, so be sure python-native is available to us. +# Add 100Meg of extra space for dnf +IMAGE_ROOTFS_EXTRA_SPACE_append = "${@bb.utils.contains("PACKAGE_INSTALL", "dnf", " + 102400", "" ,d)}" + +# Dnf is python based, so be sure python-native is available to us. EXTRANATIVEPATH += "python-native" # opkg is needed for update-alternatives RPMROOTFSDEPENDS = "rpm-native:do_populate_sysroot \ - rpmresolve-native:do_populate_sysroot \ - python-smartpm-native:do_populate_sysroot \ - createrepo-native:do_populate_sysroot \ + dnf-native:do_populate_sysroot \ + createrepo-c-native:do_populate_sysroot \ opkg-native:do_populate_sysroot" do_rootfs[depends] += "${RPMROOTFSDEPENDS}"
@@ -35,7 +38,3 @@ python () { d.setVar('RPM_POSTPROCESS_COMMANDS', '') } -# Smart is python based, so be sure python-native is available to us. -EXTRANATIVEPATH += "python-native" - -rpmlibdir = "/var/lib/rpm"
meta/lib/oe/package_manager.py +221 -971
1,281 lines not on this page · raw message
meta/lib/oe/rootfs.py +4 -14
@@ -431,6 +431,8 @@ class RpmRootfs(Rootfs): bb.note('incremental removed: %s' % ' '.join(pkg_to_remove)) self.pm.remove(pkg_to_remove) + self.pm.autoremove() + def _create(self): pkgs_to_install = self.manifest.parse_initial_manifest() rpm_pre_process_cmds = self.d.getVar('RPM_PREPROCESS_COMMANDS')
@@ -444,8 +446,6 @@ class RpmRootfs(Rootfs): if self.progress_reporter: self.progress_reporter.next_stage() - self.pm.dump_all_available_pkgs() - if self.inc_rpm_image_gen == "1": self._create_incremental(pkgs_to_install)
@@ -480,15 +480,13 @@ class RpmRootfs(Rootfs): if self.progress_reporter: self.progress_reporter.next_stage() - self._setup_dbg_rootfs(['/etc/rpm', '/var/lib/rpm', '/var/lib/smart']) + self._setup_dbg_rootfs(['/etc', '/var/lib/rpm', '/var/cache/dnf', '/var/lib/dnf']) execute_pre_post_process(self.d, rpm_post_process_cmds) if self.inc_rpm_image_gen == "1": self.pm.backup_packaging_data() - self.pm.rpm_setup_smart_target_config() - if self.progress_reporter: self.progress_reporter.next_stage()
@@ -526,15 +524,7 @@ class RpmRootfs(Rootfs): self.pm.save_rpmpostinst(pkg) def _cleanup(self): - # during the execution of postprocess commands, rpm is called several - # times to get the files installed, dependencies, etc. This creates the - # __db.00* (Berkeley DB files that hold locks, rpm specific environment - # settings, etc.), that should not get into the final rootfs - self.pm.unlock_rpm_db() - if os.path.isdir(self.pm.install_dir_path + "/tmp") and not os.listdir(self.pm.install_dir_path + "/tmp"): - bb.utils.remove(self.pm.install_dir_path + "/tmp", True) - if os.path.isdir(self.pm.install_dir_path) and not os.listdir(self.pm.install_dir_path): - bb.utils.remove(self.pm.install_dir_path, True) + pass class DpkgOpkgRootfs(Rootfs): def __init__(self, d, progress_reporter=None, logcatcher=None):
meta/lib/oe/sdk.py +4 -3
@@ -130,7 +130,6 @@ class RpmSdk(Sdk): pm.create_configs() pm.write_index() - pm.dump_all_available_pkgs() pm.update() pkgs = []
@@ -188,7 +187,9 @@ class RpmSdk(Sdk): True).strip('/'), ) self.mkdirhier(native_sysconf_dir) - for f in glob.glob(os.path.join(self.sdk_output, "etc", "*")): + for f in glob.glob(os.path.join(self.sdk_output, "etc", "rpm*")): + self.movefile(f, native_sysconf_dir) + for f in glob.glob(os.path.join(self.sdk_output, "etc", "dnf", "*")): self.movefile(f, native_sysconf_dir) self.remove(os.path.join(self.sdk_output, "etc"), True)
@@ -350,7 +351,7 @@ def sdk_list_installed_packages(d, target, rootfs_dir=None): if img_type == "rpm": arch_var = ["SDK_PACKAGE_ARCHS", None][target is True] os_var = ["SDK_OS", None][target is True] - return RpmPkgsList(d, rootfs_dir, arch_var, os_var).list_pkgs() + return RpmPkgsList(d, rootfs_dir).list_pkgs() elif img_type == "ipk": conf_file_var = ["IPKGCONF_SDK", "IPKGCONF_TARGET"][target is True] return OpkgPkgsList(d, rootfs_dir, d.getVar(conf_file_var)).list_pkgs()
Signature · 1 line
2.11.0
PATCH 22/44 scripts/rpm2cpio.sh: replace 5.x version with 4.x version
In reply to Alexander Kanavin--- scripts/rpm2cpio.sh | 108 ++++++++++++++++++++++++++-------------------------- 1 file changed, 55 insertions(+), 53 deletions(-)
scripts/rpm2cpio.sh +55 -53
@@ -1,53 +1,55 @@ -#!/bin/sh - -# This comes from the RPM5 5.4.0 distribution. - -pkg=$1 -if [ "$pkg" = "" -o ! -e "$pkg" ]; then - echo "no package supplied" 1>&2 - exit 1 -fi - -leadsize=96 -o=`expr $leadsize + 8` -set `od -j $o -N 8 -t u1 $pkg` -il=`expr 256 \* \( 256 \* \( 256 \* $2 + $3 \) + $4 \) + $5` -dl=`expr 256 \* \( 256 \* \( 256 \* $6 + $7 \) + $8 \) + $9` -# echo "sig il: $il dl: $dl" - -sigsize=`expr 8 + 16 \* $il + $dl` -o=`expr $o + $sigsize + \( 8 - \( $sigsize \% 8 \) \) \% 8 + 8` -set `od -j $o -N 8 -t u1 $pkg` -il=`expr 256 \* \( 256 \* \( 256 \* $2 + $3 \) + $4 \) + $5` -dl=`expr 256 \* \( 256 \* \( 256 \* $6 + $7 \) + $8 \) + $9` -# echo "hdr il: $il dl: $dl" - -hdrsize=`expr 8 + 16 \* $il + $dl` -o=`expr $o + $hdrsize` -EXTRACTOR="dd if=$pkg ibs=$o skip=1" - -COMPRESSION=`($EXTRACTOR |file -) 2>/dev/null` -if echo $COMPRESSION |grep -iq gzip; then - DECOMPRESSOR=gunzip -elif echo $COMPRESSION |grep -iq bzip2; then - DECOMPRESSOR=bunzip2 -elif echo $COMPRESSION |grep -iq xz; then - DECOMPRESSOR=unxz -elif echo $COMPRESSION |grep -iq cpio; then - DECOMPRESSOR=cat -else - # Most versions of file don't support LZMA, therefore we assume - # anything not detected is LZMA - DECOMPRESSOR=`which unlzma 2>/dev/null` - case "$DECOMPRESSOR" in - /* ) ;; - * ) DECOMPRESSOR=`which lzmash 2>/dev/null` - case "$DECOMPRESSOR" in - /* ) DECOMPRESSOR="lzmash -d -c" ;; - * ) DECOMPRESSOR=cat ;; - esac - ;; - esac -fi - -$EXTRACTOR 2>/dev/null | $DECOMPRESSOR +#!/bin/sh -efu + +# This file comes from rpm 4.x distribution + +fatal() { + echo "$*" >&2 + exit 1 +} + +pkg="$1" +[ -n "$pkg" -a -e "$pkg" ] || + fatal "No package supplied" + +_dd() { + local o="$1"; shift + dd if="$pkg" skip="$o" iflag=skip_bytes status=none $* +} + +calcsize() { + offset=$(($1 + 8)) + + local i b b0 b1 b2 b3 b4 b5 b6 b7 + + i=0 + while [ $i -lt 8 ]; do + b="$(_dd $(($offset + $i)) bs=1 count=1)" + [ -z "$b" ] && + b="0" || + b="$(exec printf '%u\n' "'$b")" + eval "b$i=\$b" + i=$(($i + 1)) + done + + rsize=$((8 + ((($b0 << 24) + ($b1 << 16) + ($b2 << 8) + $b3) << 4) + ($b4 << 24) + ($b5 << 16) + ($b6 << 8) + $b7)) + offset=$(($offset + $rsize)) +} + +case "$(_dd 0 bs=8 count=1)" in + "$(printf '\355\253\356\333')"*) ;; # '\xed\xab\xee\xdb' + *) fatal "File doesn't look like rpm: $pkg" ;; +esac + +calcsize 96 +sigsize=$rsize + +calcsize $(($offset + (8 - ($sigsize % 8)) % 8)) +hdrsize=$rsize + +case "$(_dd $offset bs=3 count=1)" in + "$(printf '\102\132')"*) _dd $offset | bunzip2 ;; # '\x42\x5a' + "$(printf '\037\213')"*) _dd $offset | gunzip ;; # '\x1f\x8b' + "$(printf '\375\067')"*) _dd $offset | xzcat ;; # '\xfd\x37' + "$(printf '\135\000')"*) _dd $offset | unlzma ;; # '\x5d\x00' + *) fatal "Unrecognized rpm file: $pkg" ;; +esac
Signature · 1 line
2.11.0
PATCH 23/44 scripts/oe-setup-rpmrepo: replace createrepo with createrepo_c
In reply to Alexander Kanavin--- scripts/oe-setup-rpmrepo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
scripts/oe-setup-rpmrepo +1 -1
@@ -89,7 +89,7 @@ if [ ! -d "$RPM_DIR" ]; then exit 1 fi -CREATEREPO=$OECORE_NATIVE_SYSROOT/usr/bin/createrepo +CREATEREPO=$OECORE_NATIVE_SYSROOT/usr/bin/createrepo_c if [ ! -e "$CREATEREPO" ]; then echo "Error: can't find createrepo binary" echo "please run bitbake createrepo-native first"
Signature · 1 line
2.11.0
PATCH 24/44 package_rpm.bbclass: replace createrepo reference with createrepo_c
In reply to Alexander Kanavin--- meta/classes/package_rpm.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
meta/classes/package_rpm.bbclass +1 -1
@@ -763,6 +763,6 @@ do_package_write_rpm[depends] += "${@oe.utils.build_depends_string(d.getVar('PAC addtask package_write_rpm after do_packagedata do_package PACKAGEINDEXDEPS += "rpm-native:do_populate_sysroot" -PACKAGEINDEXDEPS += "createrepo-native:do_populate_sysroot" +PACKAGEINDEXDEPS += "createrepo-c-native:do_populate_sysroot" do_build[recrdeptask] += "do_package_write_rpm"
Signature · 1 line
2.11.0
PATCH 25/44 package_rpm.bbclass: no need to specify the magic file location
In reply to Alexander KanavinIt's handled by the rpm wrapper command, created in rpm recipe.
--- meta/classes/package_rpm.bbclass | 2 -- 1 file changed, 2 deletions(-)
meta/classes/package_rpm.bbclass +0 -2
@@ -693,7 +693,6 @@ python do_package_rpm () { d.setVar('RPM_PKGWRITEDIR', pkgwritedir) bb.debug(1, 'PKGWRITEDIR: %s' % d.getVar('RPM_PKGWRITEDIR')) pkgarch = d.expand('${PACKAGE_ARCH_EXTEND}${HOST_VENDOR}-${HOST_OS}') - magicfile = d.expand('${STAGING_DIR_NATIVE}${datadir_native}/misc/magic.mgc') bb.utils.mkdirhier(pkgwritedir) os.chmod(pkgwritedir, 0o755)
@@ -711,7 +710,6 @@ python do_package_rpm () { cmd = cmd + " --define '__find_provides %{nil}'" cmd = cmd + " --define '_unpackaged_files_terminate_build 0'" cmd = cmd + " --define 'debug_package %{nil}'" - cmd = cmd + " --define '_rpmfc_magic_path " + magicfile + "'" cmd = cmd + " --define '_tmppath " + workdir + "'" if d.getVarFlag('ARCHIVER_MODE', 'srpm') == '1' and bb.data.inherits_class('archiver', d): cmd = cmd + " --define '_sourcedir " + d.getVar('ARCHIVER_OUTDIR') + "'"
Signature · 1 line
2.11.0
PATCH 26/44 testimage.bbclass: fix runtime test for rpm, port smart tests to dnf
In reply to Alexander Kanavin--- meta/classes/testimage.bbclass | 25 ++-- meta/lib/oeqa/oetest.py | 7 -- meta/lib/oeqa/runtime/cases/dnf.py | 111 +++++++++++++++++ meta/lib/oeqa/runtime/cases/parselogs.py | 1 + meta/lib/oeqa/runtime/cases/rpm.py | 21 ++-- meta/lib/oeqa/runtime/cases/smart.py | 196 ------------------------------- 6 files changed, 133 insertions(+), 228 deletions(-) create mode 100644 meta/lib/oeqa/runtime/cases/dnf.py delete mode 100644 meta/lib/oeqa/runtime/cases/smart.py
meta/classes/testimage.bbclass +10 -15
@@ -35,7 +35,7 @@ TEST_NEEDED_PACKAGES_DIR ?= "${WORKDIR}/testimage/packages" TEST_EXTRACTED_DIR ?= "${TEST_NEEDED_PACKAGES_DIR}/extracted" TEST_PACKAGED_DIR ?= "${TEST_NEEDED_PACKAGES_DIR}/packaged" -RPMTESTSUITE = "${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'smart rpm', '', d)}" +RPMTESTSUITE = "${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'dnf rpm', '', d)}" SYSTEMDSUITE = "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" MINTESTSUITE = "ping" NETTESTSUITE = "${MINTESTSUITE} ssh df date scp oe_syslog ${SYSTEMDSUITE}"
@@ -74,12 +74,11 @@ TESTIMAGEDEPENDS = "" TESTIMAGEDEPENDS_qemuall = "qemu-native:do_populate_sysroot qemu-helper-native:do_populate_sysroot" TESTIMAGEDEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'cpio-native:do_populate_sysroot', '', d)}" TESTIMAGEDEPENDS_qemuall += "${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'cpio-native:do_populate_sysroot', '', d)}" -TESTIMAGEDEPENDS_qemuall += "${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'createrepo-native:do_populate_sysroot', '', d)}" -TESTIMAGEDEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'python-smartpm-native:do_populate_sysroot', '', d)}" +TESTIMAGEDEPENDS_qemuall += "${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'createrepo-c-native:do_populate_sysroot', '', d)}" +TESTIMAGEDEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'dnf-native:do_populate_sysroot', '', d)}" TESTIMAGEDEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'ipk', 'opkg-utils-native:do_populate_sysroot', '', d)}" TESTIMAGEDEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'deb', 'apt-native:do_populate_sysroot', '', d)}" -TESTIMAGEDEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'python-smartpm-native:do_populate_sysroot', '', d)}" -TESTIMAGEDEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'createrepo-native:do_populate_sysroot', '', d)}" +TESTIMAGEDEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'createrepo-c-native:do_populate_sysroot', '', d)}" TESTIMAGELOCK = "${TMPDIR}/testimage.lock" TESTIMAGELOCK_qemuall = ""
@@ -120,7 +119,7 @@ python do_testimage() { testimage_sanity(d) if (d.getVar('IMAGE_PKGTYPE') == 'rpm' - and 'smart' in d.getVar('TEST_SUITES')): + and 'dnf' in d.getVar('TEST_SUITES')): create_rpm_index(d) testimage_main(d)
@@ -324,30 +323,26 @@ def create_index(arg): def create_rpm_index(d): # Index RPMs - rpm_createrepo = bb.utils.which(os.getenv('PATH'), "createrepo") + rpm_createrepo = bb.utils.which(os.getenv('PATH'), "createrepo_c") index_cmds = [] archs = (d.getVar('ALL_MULTILIB_PACKAGE_ARCHS') or '').replace('-', '_') for arch in archs.split(): rpm_dir = os.path.join(d.getVar('DEPLOY_DIR_RPM'), arch) - idx_path = os.path.join(d.getVar('WORKDIR'), 'rpm', arch) - db_path = os.path.join(d.getVar('WORKDIR'), 'rpmdb', arch) + idx_path = os.path.join(d.getVar('WORKDIR'), 'oe-testimage-repo', arch) if not os.path.isdir(rpm_dir): continue - if os.path.exists(db_path): - bb.utils.remove(dbpath, True) lockfilename = os.path.join(d.getVar('DEPLOY_DIR_RPM'), 'rpm.lock') lf = bb.utils.lockfile(lockfilename, False) oe.path.copyhardlinktree(rpm_dir, idx_path) # Full indexes overload a 256MB image so reduce the number of rpms - # in the feed. Filter to p* since we use the psplash packages and + # in the feed. Filter to r* since we use the run-postinst packages and # this leaves some allarch and machine arch packages too. - bb.utils.remove(idx_path + "*/[a-oq-z]*.rpm") + bb.utils.remove(idx_path + "*/[a-qs-z]*.rpm") bb.utils.unlockfile(lf) - cmd = '%s --dbpath %s --update -q %s' % (rpm_createrepo, - db_path, idx_path) + cmd = '%s --update -q %s' % (rpm_createrepo, idx_path) # Create repodata result = create_index(cmd)
meta/lib/oeqa/oetest.py +0 -7
@@ -128,13 +128,6 @@ class oeRuntimeTest(oeTest): def tearDownLocal(self): pass - #TODO: use package_manager.py to install packages on any type of image - def install_packages(self, packagelist): - for package in packagelist: - (status, result) = self.target.run("smart install -y "+package) - if status != 0: - return status - def getmodule(pos=2): # stack returns a list of tuples containg frame information # First element of the list the is current frame, caller is 1
meta/lib/oeqa/runtime/cases/dnf.py new file +111 -0
111 lines not on this page · raw message
meta/lib/oeqa/runtime/cases/parselogs.py +1 -0
@@ -48,6 +48,7 @@ common_errors = [ "stmmac_dvr_probe: warning: cannot get CSR clock", "error: couldn\'t mount because of unsupported optional features", "GPT: Use GNU Parted to correct GPT errors", + "Cannot set xattr user.Librepo.DownloadInProgress", ] video_related = [
meta/lib/oeqa/runtime/cases/rpm.py +11 -10
@@ -102,14 +102,15 @@ class RpmInstallRemoveTest(OERuntimeTestCase): @OETestDepends(['rpm.RpmInstallRemoveTest.test_rpm_remove']) def test_check_rpm_install_removal_log_file_size(self): """ - Summary: Check rpm install/removal log file size - Expected: There should be some method to keep rpm log in a small size . + Summary: Check that rpm writes into /var/log/messages + Expected: There should be some RPM prefixed entries in the above file. Product: BSPs Author: Alexandru Georgescu <[email protected]> + Author: Alexander Kanavin <[email protected]> AutomatedBy: Daniel Istrate <[email protected]> """ db_files_cmd = 'ls /var/lib/rpm/__db.*' - get_log_size_cmd = "du /var/lib/rpm/log/log.* | awk '{print $1}'" + check_log_cmd = "grep RPM /var/log/messages | wc -l" # Make sure that some database files are under /var/lib/rpm as '__db.xxx' status, output = self.target.run(db_files_cmd)
@@ -129,13 +130,13 @@ class RpmInstallRemoveTest(OERuntimeTestCase): msg = 'Failed to remove rpm-doc package. Reason: {}'.format(output) self.assertEqual(0, status, msg=msg) - # Get the size of log file - status, output = self.target.run(get_log_size_cmd) + # if using systemd this should ensure all entries are flushed to /var + status, output = self.target.run("journalctl --sync") + # Get the amount of entries in the log file + status, output = self.target.run(check_log_cmd) msg = 'Failed to get the final size of the log file.' self.assertEqual(0, status, msg=msg) - # Compare each log size - for log_file_size in output: - msg = ('Log file size is greater that expected (~10MB), ' - 'found {} bytes'.format(log_file_size)) - self.assertLessEqual(int(log_file_size), 11264, msg=msg) + # Check that there's enough of them + self.assertGreaterEqual(int(output), 80, + 'Cound not find sufficient amount of rpm entries in /var/log/messages, found {} entries'.format(output))
meta/lib/oeqa/runtime/cases/smart.py deleted +0 -196
196 lines not on this page · raw message
Signature · 1 line
2.11.0
PATCH 27/44 package_rpm.bbclass: instruct rpm to not remove the buildroot directory
In reply to Alexander KanavinThis is the ${W}/package directory which may be reused in subsequent builds.
Also clean up various default directories rpm 4 creates.
--- meta/classes/package_rpm.bbclass | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
meta/classes/package_rpm.bbclass +5 -2
@@ -697,7 +697,7 @@ python do_package_rpm () { os.chmod(pkgwritedir, 0o755) cmd = rpmbuild - cmd = cmd + " --nodeps --short-circuit --target " + pkgarch + " --buildroot " + pkgd + cmd = cmd + " --noclean --nodeps --short-circuit --target " + pkgarch + " --buildroot " + pkgd cmd = cmd + " --define '_topdir " + workdir + "' --define '_rpmdir " + pkgwritedir + "'" cmd = cmd + " --define '_builddir " + d.getVar('S') + "'" cmd = cmd + " --define '_build_name_fmt %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm'"
@@ -721,8 +721,11 @@ python do_package_rpm () { bb.build.exec_func('SBUILDSPEC', d) cmd = cmd + " -bb " + outspecfile + # rpm 4 creates various empty directories in _topdir, let's clean them up + cleanupcmd = "rm -rf %s/BUILDROOT %s/SOURCES %s/SPECS %s/SRPMS" % (workdir, workdir, workdir, workdir) + # Build the rpm package! - d.setVar('BUILDSPEC', cmd + "\n") + d.setVar('BUILDSPEC', cmd + "\n" + cleanupcmd + "\n") d.setVarFlag('BUILDSPEC', 'func', '1') bb.build.exec_func('BUILDSPEC', d)
Signature · 1 line
2.11.0
PATCH 28/44 selftest: do not perform a full build in test_continue
In reply to Alexander KanavinThis was fetching and building the toolchain and everything else against empty download dir and sstate cache, and so was enormously slow. The test does not need that, it only checks that one fetch task fails and another succeeds when using bitbake's -k option.
--- meta/lib/oeqa/selftest/bbtests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
meta/lib/oeqa/selftest/bbtests.py +1 -1
@@ -222,7 +222,7 @@ INHERIT_remove = \"report-error\" self.track_for_cleanup(os.path.join(self.builddir, "download-selftest")) self.write_recipeinc('man',"\ndo_fail_task () {\nexit 1 \n}\n\naddtask do_fail_task before do_fetch\n" ) runCmd('bitbake -c cleanall man xcursor-transparent-theme') - result = runCmd('bitbake man xcursor-transparent-theme -k', ignore_status=True) + result = runCmd('bitbake -c unpack -k man xcursor-transparent-theme', ignore_status=True) errorpos = result.output.find('ERROR: Function failed: do_fail_task') manver = re.search("NOTE: recipe xcursor-transparent-theme-(.*?): task do_unpack: Started", result.output) continuepos = result.output.find('NOTE: recipe xcursor-transparent-theme-%s: task do_unpack: Started' % manver.group(1))
Signature · 1 line
2.11.0
PATCH 29/44 selftest: update output checks in incremental image test to match what dnf prints
In reply to Alexander Kanavin--- meta/lib/oeqa/selftest/buildoptions.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
meta/lib/oeqa/selftest/buildoptions.py +2 -2
@@ -22,12 +22,12 @@ class ImageOptionsTests(oeSelfTest): bitbake("core-image-minimal") log_data_file = os.path.join(get_bb_var("WORKDIR", "core-image-minimal"), "temp/log.do_rootfs") log_data_created = ftools.read_file(log_data_file) - incremental_created = re.search("NOTE: load old install solution for incremental install\nNOTE: old install solution not exist\nNOTE: creating new install solution for incremental install(\n.*)*NOTE: Installing the following packages:.*packagegroup-core-ssh-openssh", log_data_created) + incremental_created = re.search("Installing : packagegroup-core-ssh-openssh", log_data_created) self.remove_config('IMAGE_FEATURES += "ssh-server-openssh"') self.assertTrue(incremental_created, msg = "Match failed in:\n%s" % log_data_created) bitbake("core-image-minimal") log_data_removed = ftools.read_file(log_data_file) - incremental_removed = re.search("NOTE: load old install solution for incremental install\nNOTE: creating new install solution for incremental install(\n.*)*NOTE: incremental removed:.*openssh-sshd-.*", log_data_removed) + incremental_removed = re.search("Erasing : packagegroup-core-ssh-openssh", log_data_removed) self.assertTrue(incremental_removed, msg = "Match failed in:\n%s" % log_data_removed) @testcase(286)
Signature · 1 line
2.11.0
PATCH 30/44 byacc: remove the recipe
In reply to Alexander KanavinIt was used only by rpm5 and will be moved to meta-oe
--- meta/recipes-extended/byacc/byacc.inc | 22 --- .../0001-byacc-do-not-reorder-CC-and-CFLAGS.patch | 161 --------------------- meta/recipes-extended/byacc/byacc/byacc-open.patch | 25 ---- meta/recipes-extended/byacc/byacc_20161202.bb | 12 -- .../packagegroup-core-full-cmdline.bb | 1 - 5 files changed, 221 deletions(-) delete mode 100644 meta/recipes-extended/byacc/byacc.inc delete mode 100644 meta/recipes-extended/byacc/byacc/0001-byacc-do-not-reorder-CC-and-CFLAGS.patch delete mode 100644 meta/recipes-extended/byacc/byacc/byacc-open.patch delete mode 100644 meta/recipes-extended/byacc/byacc_20161202.bb
meta/recipes-extended/byacc/byacc.inc deleted +0 -22
@@ -1,22 +0,0 @@ -SUMMARY = "Berkeley LALR Yacc parser generator" -DESCRIPTION = "A parser generator utility that reads a grammar specification from a file and generates an LR(1) \ -parser for it. The parsers consist of a set of LALR(1) parsing tables and a driver routine written in the C \ -programming language." -SECTION = "devel" -LICENSE = "PD" - -SRC_URI = "ftp://invisible-island.net/byacc/byacc-${PV}.tgz \ - file://byacc-open.patch \ - file://0001-byacc-do-not-reorder-CC-and-CFLAGS.patch" - -EXTRA_OECONF += "--program-transform-name='s,^,b,'" - -BBCLASSEXTEND = "native" - -inherit autotools - -do_configure() { - install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S} - install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S} - oe_runconf -}
meta/recipes-extended/byacc/byacc/0001-byacc-do-not-reorder-CC-and-CFLAGS.patch deleted +0 -161
161 lines not on this page · raw message
meta/recipes-extended/byacc/byacc/byacc-open.patch deleted +0 -25
@@ -1,25 +0,0 @@ -Ubuntu defaults to passing _FORTIFY_SOURCE=2 which breaks byacc as it doesn't -pass enough arguments to open(): - - inlined from 'open_tmpfile' at byacc-20150711/main.c:588:5: - /usr/include/x86_64-linux-gnu/bits/fcntl2.h:50:24: error: call to '__open_missing_mode' declared with attribute error: - open with O_CREAT in second argument needs 3 arguments - -Add a mode of 0666 to fix this. - -Upstream-Status: Pending -Signed-off-by: Ross Burton <[email protected]> - -diff --git a/main.c b/main.c -index 620ce3f..82071a4 100644 ---- a/main.c -+++ b/main.c -@@ -526,7 +526,7 @@ my_mkstemp(char *temp) - } - if ((name = tempnam(dname, fname)) != 0) - { -- fd = open(name, O_CREAT | O_EXCL | O_RDWR); -+ fd = open(name, O_CREAT | O_EXCL | O_RDWR, 0666); - strcpy(temp, name); - } - else
meta/recipes-extended/byacc/byacc_20161202.bb deleted +0 -12
@@ -1,12 +0,0 @@ -# Sigh. This is one of those places where everyone licenses it differently. Someone -# even apply UCB to it (Free/Net/OpenBSD). The maintainer states that: -# "I've found no reliable source which states that byacc must bear a UCB copyright." -# Setting to PD as this is what the upstream has it as. - -LICENSE = "PD" -LIC_FILES_CHKSUM = "file://package/debian/copyright;md5=74533d32ffd38bca4cbf1f1305f8bc60" -require byacc.inc - - -SRC_URI[md5sum] = "48ef38447f2cc864c70ef864b26cf817" -SRC_URI[sha256sum] = "30dc58cfcdb708eea7ba022db29b41d2d392f20727491b956954366f2f2117f0"
meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb +0 -1
@@ -110,7 +110,6 @@ RDEPENDS_packagegroup-core-full-cmdline-extended = "\ " RDEPENDS_packagegroup-core-full-cmdline-dev-utils = "\ - byacc \ diffutils \ m4 \ make \
Signature · 1 line
2.11.0
PATCH 31/44 gpg_sign.py: fix signing of rpm files using gpg
In reply to Alexander KanavinThis means
a) calling rpmkeys and rpmsign instead of rpm
b) instructing gpg to run non-interactively; otherwise on my machine it pops up windows requesting a key passphrase
--- meta/lib/oe/gpg_sign.py | 7 ++++--- meta/lib/oeqa/selftest/signing.py | 8 ++++---- 2 files changed, 8 insertions(+), 7 deletions(-)
meta/lib/oe/gpg_sign.py +4 -3
@@ -11,7 +11,7 @@ class LocalSigner(object): bb.utils.which(os.getenv('PATH'), 'gpg') self.gpg_path = d.getVar('GPG_PATH') self.gpg_version = self.get_gpg_version() - self.rpm_bin = bb.utils.which(os.getenv('PATH'), "rpm") + self.rpm_bin = bb.utils.which(os.getenv('PATH'), "rpmsign") def export_pubkey(self, output_file, keyid, armor=True): """Export GPG public key to a file"""
@@ -31,9 +31,10 @@ class LocalSigner(object): """Sign RPM files""" cmd = self.rpm_bin + " --addsign --define '_gpg_name %s' " % keyid - cmd += "--define '_gpg_passphrase %s' " % passphrase + gpg_args = '--batch --passphrase=%s' % passphrase if self.gpg_version > (2,1,): - cmd += "--define '_gpg_sign_cmd_extra_args --pinentry-mode=loopback' " + gpg_args += ' --pinentry-mode=loopback' + cmd += "--define '_gpg_sign_cmd_extra_args %s' " % gpg_args if self.gpg_bin: cmd += "--define '%%__gpg %s' " % self.gpg_bin if self.gpg_path:
meta/lib/oeqa/selftest/signing.py +4 -4
@@ -27,7 +27,7 @@ class Signing(oeSelfTest): cls.pub_key_path = os.path.join(cls.testlayer_path, 'files', 'signing', "key.pub") cls.secret_key_path = os.path.join(cls.testlayer_path, 'files', 'signing', "key.secret") - runCmd('gpg --homedir %s --import %s %s' % (cls.gpg_dir, cls.pub_key_path, cls.secret_key_path)) + runCmd('gpg --batch --homedir %s --import %s %s' % (cls.gpg_dir, cls.pub_key_path, cls.secret_key_path)) @testcase(1362) def test_signing_packages(self):
@@ -76,13 +76,13 @@ class Signing(oeSelfTest): # Use a temporary rpmdb rpmdb = tempfile.mkdtemp(prefix='oeqa-rpmdb') - runCmd('%s/rpm --define "_dbpath %s" --import %s' % + runCmd('%s/rpmkeys --define "_dbpath %s" --import %s' % (staging_bindir_native, rpmdb, self.pub_key_path)) - ret = runCmd('%s/rpm --define "_dbpath %s" --checksig %s' % + ret = runCmd('%s/rpmkeys --define "_dbpath %s" --checksig %s' % (staging_bindir_native, rpmdb, pkg_deploy)) # tmp/deploy/rpm/i586/ed-1.9-r0.i586.rpm: rsa sha1 md5 OK - self.assertIn('rsa sha1 md5 OK', ret.output, 'Package signed incorrectly.') + self.assertIn('rsa sha1 (md5) pgp md5 OK', ret.output, 'Package signed incorrectly.') shutil.rmtree(rpmdb) @testcase(1382)
Signature · 1 line
2.11.0
PATCH 32/44 oe-selftest: no need to parse gpg output to determine the name of the signing key
In reply to Alexander KanavinThe parsing fails on my machine, and we use a key with a hardcoded name, and so can provide it directly.
--- meta/lib/oeqa/selftest/signing.py | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-)
meta/lib/oeqa/selftest/signing.py +1 -7
@@ -103,13 +103,7 @@ class Signing(oeSelfTest): self.add_command_to_tearDown('bitbake -c clean %s' % test_recipe) self.add_command_to_tearDown('rm -rf %s' % sstatedir) - # Determine the pub key signature - ret = runCmd('gpg --homedir %s --list-keys' % self.gpg_dir) - pub_key = re.search(r'^pub\s+\S+/(\S+)\s+', ret.output, re.M) - self.assertIsNotNone(pub_key, 'Failed to determine the public key signature.') - pub_key = pub_key.group(1) - - feature = 'SSTATE_SIG_KEY ?= "%s"\n' % pub_key + feature = 'SSTATE_SIG_KEY ?= "testuser"\n' feature += 'SSTATE_SIG_PASSPHRASE ?= "test123"\n' feature += 'SSTATE_VERIFY_SIG ?= "1"\n' feature += 'GPG_PATH = "%s"\n' % self.gpg_dir
Signature · 1 line
2.11.0
PATCH 33/44 run-postinsts: simplify the logic of whether to install it to images
In reply to Alexander KanavinThe logic is scattered all over the place, but amounts to "install, unless the rootfs is read only". Let's express that directly.
--- meta-selftest/recipes-test/images/oe-selftest-image.bb | 2 +- meta-selftest/recipes-test/images/wic-image-minimal.bb | 2 +- meta/classes/image.bbclass | 2 +- meta/classes/rootfs_deb.bbclass | 1 - meta/classes/rootfs_ipk.bbclass | 1 - meta/classes/rootfs_rpm.bbclass | 1 - meta/lib/oe/manifest.py | 2 +- meta/recipes-core/images/core-image-minimal.bb | 2 +- meta/recipes-devtools/dpkg/dpkg.inc | 2 +- meta/recipes-devtools/opkg/opkg_0.3.4.bb | 2 +- 10 files changed, 7 insertions(+), 10 deletions(-)
meta-selftest/recipes-test/images/oe-selftest-image.bb +1 -1
@@ -1,6 +1,6 @@ SUMMARY = "An image used during oe-selftest tests" -IMAGE_INSTALL = "packagegroup-core-boot ${ROOTFS_PKGMANAGE_BOOTSTRAP} dropbear" +IMAGE_INSTALL = "packagegroup-core-boot dropbear" IMAGE_FEATURES = "debug-tweaks" IMAGE_LINGUAS = " "
meta-selftest/recipes-test/images/wic-image-minimal.bb +1 -1
@@ -2,7 +2,7 @@ SUMMARY = "An example of partitioned image." SRC_URI = "file://${FILE_DIRNAME}/${BPN}.wks" -IMAGE_INSTALL = "packagegroup-core-boot ${ROOTFS_PKGMANAGE_BOOTSTRAP}" +IMAGE_INSTALL = "packagegroup-core-boot" IMAGE_FSTYPES = "wic"
meta/classes/image.bbclass +1 -1
@@ -29,7 +29,7 @@ IMAGE_FEATURES[validitems] += "debug-tweaks read-only-rootfs empty-root-password IMAGE_GEN_DEBUGFS ?= "0" # rootfs bootstrap install -ROOTFS_BOOTSTRAP_INSTALL = "${@bb.utils.contains("IMAGE_FEATURES", "package-management", "", "${ROOTFS_PKGMANAGE_BOOTSTRAP}",d)}" +ROOTFS_BOOTSTRAP_INSTALL = "run-postinsts" # These packages will be removed from a read-only rootfs after all other # packages have been installed
meta/classes/rootfs_deb.bbclass +0 -1
@@ -3,7 +3,6 @@ # ROOTFS_PKGMANAGE = "dpkg apt" -ROOTFS_PKGMANAGE_BOOTSTRAP = "run-postinsts" do_rootfs[depends] += "dpkg-native:do_populate_sysroot apt-native:do_populate_sysroot" do_populate_sdk[depends] += "dpkg-native:do_populate_sysroot apt-native:do_populate_sysroot bzip2-native:do_populate_sysroot"
meta/classes/rootfs_ipk.bbclass +0 -1
@@ -7,7 +7,6 @@ EXTRAOPKGCONFIG ?= "" ROOTFS_PKGMANAGE = "opkg ${EXTRAOPKGCONFIG}" -ROOTFS_PKGMANAGE_BOOTSTRAP = "run-postinsts" do_rootfs[depends] += "opkg-native:do_populate_sysroot opkg-utils-native:do_populate_sysroot" do_populate_sdk[depends] += "opkg-native:do_populate_sysroot opkg-utils-native:do_populate_sysroot"
meta/classes/rootfs_rpm.bbclass +0 -1
@@ -3,7 +3,6 @@ # ROOTFS_PKGMANAGE = "rpm dnf" -ROOTFS_PKGMANAGE_BOOTSTRAP = "run-postinsts" # dnf is using our custom distutils, and so will fail without these export STAGING_INCDIR
meta/lib/oe/manifest.py +1 -1
@@ -104,7 +104,7 @@ class Manifest(object, metaclass=ABCMeta): pkg_list['lgp'] = \ "locale-base-en-us locale-base-en-gb" elif image_rootfs.find("core-image-minimal") > 0: - pkg_list[self.PKG_TYPE_MUST_INSTALL] = "run-postinsts packagegroup-core-boot" + pkg_list[self.PKG_TYPE_MUST_INSTALL] = "packagegroup-core-boot" with open(self.initial_manifest, "w+") as manifest: manifest.write(self.initial_manifest_file_header)
meta/recipes-core/images/core-image-minimal.bb +1 -1
@@ -1,6 +1,6 @@ SUMMARY = "A small image just capable of allowing a device to boot." -IMAGE_INSTALL = "packagegroup-core-boot ${ROOTFS_PKGMANAGE_BOOTSTRAP} ${CORE_IMAGE_EXTRA_INSTALL}" +IMAGE_INSTALL = "packagegroup-core-boot ${CORE_IMAGE_EXTRA_INSTALL}" IMAGE_LINGUAS = " "
meta/recipes-devtools/dpkg/dpkg.inc +1 -1
@@ -4,7 +4,7 @@ SECTION = "base" DEPENDS = "zlib bzip2 perl ncurses" DEPENDS_class-native = "bzip2-replacement-native zlib-native virtual/update-alternatives-native gettext-native perl-native" -RDEPENDS_${PN} = "${VIRTUAL-RUNTIME_update-alternatives} xz run-postinsts perl" +RDEPENDS_${PN} = "${VIRTUAL-RUNTIME_update-alternatives} xz perl" RDEPENDS_${PN}_class-native = "xz-native" UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/d/dpkg/"
meta/recipes-devtools/opkg/opkg_0.3.4.bb +1 -1
@@ -59,7 +59,7 @@ do_install_append () { fi } -RDEPENDS_${PN} = "${VIRTUAL-RUNTIME_update-alternatives} opkg-arch-config run-postinsts libarchive" +RDEPENDS_${PN} = "${VIRTUAL-RUNTIME_update-alternatives} opkg-arch-config libarchive" RDEPENDS_${PN}_class-native = "" RDEPENDS_${PN}_class-nativesdk = "" RREPLACES_${PN} = "opkg-nogpg opkg-collateral"
Signature · 1 line
2.11.0
PATCH 34/44 package_rpm.bbclass: add a /bin/sh Provides for nativesdk- packages
In reply to Alexander Kanavinnativesdk-* rpm packages all require /bin/sh because postinst scriptlets are run with it. We can either teach rpm4 and dnf to ignore that dependency (a lot of non-upstreamable work), or add auto-satisfy the dependency in each package. I've chosen to do the latter.
--- meta/classes/package_rpm.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
meta/classes/package_rpm.bbclass +1 -1
@@ -560,7 +560,7 @@ python write_specfile () { print_deps(srcrrecommends, "Recommends", spec_preamble_top, d) print_deps(srcrsuggests, "Suggests", spec_preamble_top, d) - print_deps(srcrprovides, "Provides", spec_preamble_top, d) + print_deps(srcrprovides + (" /bin/sh" if srcname.startswith("nativesdk-") else ""), "Provides", spec_preamble_top, d) print_deps(srcrobsoletes, "Obsoletes", spec_preamble_top, d) # conflicts can not be in a provide! We will need to filter it.
Signature · 1 line
2.11.0
PATCH 35/44 security_flags.inc: update to reflect smart->dnf transition
In reply to Alexander Kanavin--- meta/conf/distro/include/security_flags.inc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)
meta/conf/distro/include/security_flags.inc +2 -3
@@ -72,14 +72,13 @@ SECURITY_CFLAGS_pn-openssl = "${SECURITY_NO_PIE_CFLAGS}" SECURITY_CFLAGS_pn-opensp = "${SECURITY_NO_PIE_CFLAGS}" SECURITY_CFLAGS_pn-ppp = "${SECURITY_NO_PIE_CFLAGS}" SECURITY_CFLAGS_pn-python = "${SECURITY_NO_PIE_CFLAGS}" +SECURITY_CFLAGS_pn-python-backports-lzma = "${SECURITY_NO_PIE_CFLAGS}" SECURITY_CFLAGS_pn-python-pycurl = "${SECURITY_NO_PIE_CFLAGS}" -SECURITY_CFLAGS_pn-python-smartpm = "${SECURITY_NO_PIE_CFLAGS}" +SECURITY_CFLAGS_pn-python-pygpgme = "${SECURITY_NO_PIE_CFLAGS}" SECURITY_CFLAGS_pn-python-numpy = "${SECURITY_NO_PIE_CFLAGS}" SECURITY_CFLAGS_pn-python3-numpy = "${SECURITY_NO_PIE_CFLAGS}" SECURITY_CFLAGS_pn-python3-pycairo = "${SECURITY_NO_PIE_CFLAGS}" SECURITY_CFLAGS_pn-python3 = "${SECURITY_NO_PIE_CFLAGS}" -# Revert RPM to using internally supported values -SECURITY_CFLAGS_pn-rpm = "${lcl_maybe_fortify} -fstack-protector" SECURITY_CFLAGS_pn-syslinux = "${SECURITY_NO_PIE_CFLAGS}" SECURITY_CFLAGS_pn-slang = "${SECURITY_NO_PIE_CFLAGS}" SECURITY_CFLAGS_pn-source-highlight = "${SECURITY_NO_PIE_CFLAGS}"
Signature · 1 line
2.11.0
PATCH 36/44 package_rpm.bbclass: do not set the OS dynamically when building rpms
In reply to Alexander KanavinPackages need to contain just one value for the os field, otherwise rpm will refuse to install them if they don't match what is in /etc/rpm/platform.
--- meta/classes/package_rpm.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
meta/classes/package_rpm.bbclass +1 -1
@@ -692,7 +692,7 @@ python do_package_rpm () { pkgwritedir = d.expand('${PKGWRITEDIRRPM}/${PACKAGE_ARCH_EXTEND}') d.setVar('RPM_PKGWRITEDIR', pkgwritedir) bb.debug(1, 'PKGWRITEDIR: %s' % d.getVar('RPM_PKGWRITEDIR')) - pkgarch = d.expand('${PACKAGE_ARCH_EXTEND}${HOST_VENDOR}-${HOST_OS}') + pkgarch = d.expand('${PACKAGE_ARCH_EXTEND}${HOST_VENDOR}-linux') bb.utils.mkdirhier(pkgwritedir) os.chmod(pkgwritedir, 0o755)
Signature · 1 line
2.11.0
PATCH 37/44 nspr: do not use shared library symbol resolution with musl
In reply to Alexander KanavinIt breaks rpm 4.x because musl is printing an error message when the symbol is not found, and rpm takes it as an actual error.
--- meta/recipes-support/nspr/nspr_4.13.1.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-support/nspr/nspr_4.13.1.bb +1 -1
@@ -16,7 +16,7 @@ SRC_URI = "http://ftp.mozilla.org/pub/nspr/releases/v${PV}/src/nspr-${PV}.tar.gz CACHED_CONFIGUREVARS_append_libc-musl = " CFLAGS='${CFLAGS} -D_PR_POLL_AVAILABLE \ -D_PR_HAVE_OFF64_T -D_PR_INET6 -D_PR_HAVE_INET_NTOP \ -D_PR_HAVE_GETHOSTBYNAME2 -D_PR_HAVE_GETADDRINFO \ - -D_PR_INET6_PROBE'" + -D_PR_INET6_PROBE -DNO_DLOPEN_NULL'" UPSTREAM_CHECK_URI = "http://ftp.mozilla.org/pub/nspr/releases/" UPSTREAM_CHECK_REGEX = "v(?P<pver>\d+(\.\d+)+)/"
Signature · 1 line
2.11.0
PATCH 38/44 package_rpm.bbclass: do not strip multilib prefixes from package names, do not add multilib prefix to package arch
In reply to Alexander KanavinThis is done for reasons I cannot establish, and greatly complicates the code that installs packages into rootfs.
--- meta/classes/package_rpm.bbclass | 55 ++++++++-------------------------------- 1 file changed, 11 insertions(+), 44 deletions(-)
meta/classes/package_rpm.bbclass +11 -44
@@ -101,27 +101,6 @@ python write_specfile () { os.chown(f, 0, 0) spec_preamble_top.append('Source%s: %s' % (source_number, source)) source_number += 1 - # We need a simple way to remove the MLPREFIX from the package name, - # and dependency information... - def strip_multilib(name, d): - multilibs = d.getVar('MULTILIBS') or "" - for ext in multilibs.split(): - eext = ext.split(':') - if len(eext) > 1 and eext[0] == 'multilib' and name and name.find(eext[1] + '-') >= 0: - name = "".join(name.split(eext[1] + '-')) - return name - - def strip_multilib_deps(deps, d): - depends = bb.utils.explode_dep_versions2(deps or "") - newdeps = {} - for dep in depends: - newdeps[strip_multilib(dep, d)] = depends[dep] - return bb.utils.join_deps(newdeps) - -# ml = d.getVar("MLPREFIX") -# if ml and name and len(ml) != 0 and name.find(ml) == 0: -# return ml.join(name.split(ml, 1)[1:]) -# return name # In RPM, dependencies are of the format: pkg <>= Epoch:Version-Release # This format is similar to OE, however there are restrictions on the
@@ -283,7 +262,7 @@ python write_specfile () { bb.fatal("No OUTSPECFILE") # Construct the SPEC file... - srcname = strip_multilib(d.getVar('PN'), d) + srcname = d.getVar('PN') srcsummary = (d.getVar('SUMMARY') or d.getVar('DESCRIPTION') or ".") srcversion = d.getVar('PKGV').replace('-', '+') srcrelease = d.getVar('PKGR')
@@ -295,7 +274,7 @@ python write_specfile () { srcdescription = d.getVar('DESCRIPTION') or "." srccustomtagschunk = get_package_additional_metadata("rpm", d) - srcdepends = strip_multilib_deps(d.getVar('DEPENDS'), d) + srcdepends = d.getVar('DEPENDS') srcrdepends = [] srcrrecommends = [] srcrsuggests = []
@@ -340,7 +319,7 @@ python write_specfile () { if dirfiles is not None: dirfiles = dirfiles.split() - splitname = strip_multilib(pkgname, d) + splitname = pkgname splitsummary = (localdata.getVar('SUMMARY') or localdata.getVar('DESCRIPTION') or ".") splitversion = (localdata.getVar('PKGV') or "").replace('-', '+')
@@ -361,12 +340,12 @@ python write_specfile () { # Map the dependencies into their final form mapping_rename_hook(localdata) - splitrdepends = strip_multilib_deps(localdata.getVar('RDEPENDS'), d) - splitrrecommends = strip_multilib_deps(localdata.getVar('RRECOMMENDS'), d) - splitrsuggests = strip_multilib_deps(localdata.getVar('RSUGGESTS'), d) - splitrprovides = strip_multilib_deps(localdata.getVar('RPROVIDES'), d) - splitrreplaces = strip_multilib_deps(localdata.getVar('RREPLACES'), d) - splitrconflicts = strip_multilib_deps(localdata.getVar('RCONFLICTS'), d) + splitrdepends = localdata.getVar('RDEPENDS') + splitrrecommends = localdata.getVar('RRECOMMENDS') + splitrsuggests = localdata.getVar('RSUGGESTS') + splitrprovides = localdata.getVar('RPROVIDES') + splitrreplaces = localdata.getVar('RREPLACES') + splitrconflicts = localdata.getVar('RCONFLICTS') splitrobsoletes = [] splitrpreinst = localdata.getVar('pkg_preinst')
@@ -640,14 +619,6 @@ python write_specfile () { write_specfile[vardepsexclude] = "OVERRIDES" python do_package_rpm () { - # We need a simple way to remove the MLPREFIX from the package name, - # and dependency information... - def strip_multilib(name, d): - ml = d.getVar("MLPREFIX") - if ml and name and len(ml) != 0 and name.find(ml) >= 0: - return "".join(name.split(ml)) - return name - workdir = d.getVar('WORKDIR') tmpdir = d.getVar('TMPDIR') pkgd = d.getVar('PKGD')
@@ -665,7 +636,7 @@ python do_package_rpm () { # If the spec file already exist, and has not been stored into # pseudo's files.db, it maybe cause rpmbuild src.rpm fail, # so remove it before doing rpmbuild src.rpm. - srcname = strip_multilib(d.getVar('PN'), d) + srcname = d.getVar('PN') outspecfile = workdir + "/" + srcname + ".spec" if os.path.isfile(outspecfile): os.remove(outspecfile)
@@ -684,11 +655,7 @@ python do_package_rpm () { # Let's not fight against this. package_arch = (d.getVar('PACKAGE_ARCH') or "").replace("-", "_").replace("all", "noarch") sdkpkgsuffix = (d.getVar('SDKPKGSUFFIX') or "nativesdk").replace("-", "_") - if package_arch not in "all any noarch".split() and not package_arch.endswith(sdkpkgsuffix): - ml_prefix = (d.getVar('MLPREFIX') or "").replace("-", "_") - d.setVar('PACKAGE_ARCH_EXTEND', ml_prefix + package_arch) - else: - d.setVar('PACKAGE_ARCH_EXTEND', package_arch) + d.setVar('PACKAGE_ARCH_EXTEND', package_arch) pkgwritedir = d.expand('${PKGWRITEDIRRPM}/${PACKAGE_ARCH_EXTEND}') d.setVar('RPM_PKGWRITEDIR', pkgwritedir) bb.debug(1, 'PKGWRITEDIR: %s' % d.getVar('RPM_PKGWRITEDIR'))
Signature · 1 line
2.11.0
PATCH 39/44 package.bbclass: don't exclude package groups from runtime mapping
In reply to Alexander KanavinThis ensures that remapping happens correctly, particularly
when package groups list noarch packages, and multilib is in use. Previously this was masked by rpm doing *another* layer of remapping on top of this.
--- meta/classes/package.bbclass | 3 --- 1 file changed, 3 deletions(-)
meta/classes/package.bbclass +0 -3
@@ -479,9 +479,6 @@ def get_package_additional_metadata (pkg_type, d): def runtime_mapping_rename (varname, pkg, d): #bb.note("%s before: %s" % (varname, d.getVar(varname))) - if bb.data.inherits_class('packagegroup', d): - return - new_depends = {} deps = bb.utils.explode_dep_versions2(d.getVar(varname) or "") for depend in deps:
Signature · 1 line
2.11.0
PATCH 40/44 glibc: do the multilib_header magic also for bits/long-double.h
In reply to Alexander KanavinOtherwise it will cause conflicts in mutlilib setting, as it varies from one machine to another.
--- meta/recipes-core/glibc/glibc-package.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-core/glibc/glibc-package.inc +1 -1
@@ -82,7 +82,7 @@ do_install_append () { rmdir --ignore-fail-on-non-empty ${D}${libexecdir} fi - oe_multilib_header bits/syscall.h + oe_multilib_header bits/syscall.h bits/long-double.h if [ -f ${D}${bindir}/mtrace ]; then sed -i -e '1s,#!.*perl,#! ${USRBINPATH}/env perl,' -e '2s,exec.*perl,exec ${USRBINPATH}/env perl,' ${D}${bindir}/mtrace
Signature · 1 line
2.11.0
PATCH 41/44 bash: package bashbug separately
In reply to Alexander KanavinIt's a machine-specific script, which is causing conflicts when multiple versions of bash are installed in multilib setting, and it also does not really make sense for embedded systems anyway.
--- meta/recipes-extended/bash/bash.inc | 4 ++++ 1 file changed, 4 insertions(+)
meta/recipes-extended/bash/bash.inc +4 -0
@@ -65,3 +65,7 @@ pkg_postinst_${PN} () { pkg_postrm_${PN} () { printf "$(grep -v "^${base_bindir}/bash$" $D${sysconfdir}/shells)\n" > $D${sysconfdir}/shells } + +PACKAGES += "${PN}-bashbug" +FILES_${PN} = "${bindir}/bash ${base_bindir}/bash.bash" +FILES_${PN}-bashbug = "${bindir}/bashbug"
Signature · 1 line
2.11.0
PATCH 42/44 db: do the multilib_header processing for db.h
In reply to Alexander KanavinAs it varies from one machine to another.
--- meta/recipes-support/db/db_5.3.28.bb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
meta/recipes-support/db/db_5.3.28.bb +3 -1
@@ -28,7 +28,7 @@ SRC_URI[sha256sum] = "e0a992d740709892e81f9d93f06daf305cf73fb81b545afe7247804317 LIC_FILES_CHKSUM = "file://LICENSE;md5=ed1158e31437f4f87cdd4ab2b8613955" -inherit autotools +inherit autotools multilib_header # Put virtual/db in any appropriate provider of a # relational database, use it as a dependency in
@@ -96,6 +96,8 @@ do_install_append() { ln -s db51/db.h ${D}/${includedir}/db.h ln -s db51/db_cxx.h ${D}/${includedir}/db_cxx.h + oe_multilib_header db51/db.h + # The docs end up in /usr/docs - not right. if test -d "${D}/${prefix}/docs" then
Signature · 1 line
2.11.0
PATCH 43/44 base-files: do not write the current date into /etc/issue and /etc/issue.net
In reply to Alexander KanavinThis is causing a problem in multilib where base-files and lib64/32-base-files clash because they may have different dates. Also, if the package is coming from sstate it has an incorrect date anyway.
--- meta/recipes-core/base-files/base-files_3.0.14.bb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
meta/recipes-core/base-files/base-files_3.0.14.bb +3 -2
@@ -145,8 +145,9 @@ do_install_basefilesissue () { printf "${DISTRO_NAME} " >> ${D}${sysconfdir}/issue printf "${DISTRO_NAME} " >> ${D}${sysconfdir}/issue.net if [ -n "${DISTRO_VERSION}" ]; then - printf "${DISTRO_VERSION} " >> ${D}${sysconfdir}/issue - printf "${DISTRO_VERSION} " >> ${D}${sysconfdir}/issue.net + distro_version_nodate=${@'${DISTRO_VERSION}'.replace('snapshot-${DATE}','snapshot').replace('${DATE}','')} + printf "%s " $distro_version_nodate >> ${D}${sysconfdir}/issue + printf "%s " $distro_version_nodate >> ${D}${sysconfdir}/issue.net fi printf "\\\n \\\l\n" >> ${D}${sysconfdir}/issue echo >> ${D}${sysconfdir}/issue
Signature · 1 line
2.11.0
PATCH 44/44 gpgme: fix python module build and installation
In reply to Alexander Kanavin--- ...-Avoid-host-contamination-from-gpg-config.patch | 30 ++++++++++++++++++++++ .../0001-Correctly-install-python-modules.patch | 26 +++++++++++++++++++ meta/recipes-support/gpgme/gpgme_1.8.0.bb | 2 ++ 3 files changed, 58 insertions(+) create mode 100644 meta/recipes-support/gpgme/gpgme/0001-Avoid-host-contamination-from-gpg-config.patch create mode 100644 meta/recipes-support/gpgme/gpgme/0001-Correctly-install-python-modules.patch
meta/recipes-support/gpgme/gpgme/0001-Avoid-host-contamination-from-gpg-config.patch new file +30 -0
@@ -0,0 +1,30 @@ +From 96cfc76def123141d0cecaab857da3880396d5ef Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <[email protected]> +Date: Thu, 9 Mar 2017 22:11:00 +0200 +Subject: [PATCH] Avoid host contamination from gpg-config + +getconfig is calling gpgme-config (from the source tree) and it +gives -L{libdir} (i.e. -L/usr/lib) as the first item for linking. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin <[email protected]> +--- + lang/python/setup.py.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lang/python/setup.py.in b/lang/python/setup.py.in +index 213fe33..22629e2 100755 +--- a/lang/python/setup.py.in ++++ b/lang/python/setup.py.in +@@ -86,7 +86,7 @@ subprocess.check_call([sys.executable, "gpgme-h-clean.py", gpg_error_h], + stdout=open("errors.i", "w")) + + define_macros = [] +-libs = getconfig('libs') ++libs = getconfig('libs')[1:] + + # Define extra_macros for both the SWIG and C code + for k, v in extra_macros.items(): +-- +2.11.0 +
meta/recipes-support/gpgme/gpgme/0001-Correctly-install-python-modules.patch new file +26 -0
@@ -0,0 +1,26 @@ +From 4d714c097e497b63d2e8b22a834c671045e215e9 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <[email protected]> +Date: Thu, 9 Mar 2017 21:34:55 +0200 +Subject: [PATCH] Correctly install python modules + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin <[email protected]> +--- + lang/python/Makefile.am | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/lang/python/Makefile.am b/lang/python/Makefile.am +index e32fd12..5ecf6fb 100644 +--- a/lang/python/Makefile.am ++++ b/lang/python/Makefile.am +@@ -102,6 +102,7 @@ install-exec-local: + for PYTHON in $(PYTHONS); do \ + $$PYTHON setup.py install \ + --prefix $(DESTDIR)$(prefix) \ ++ --install-lib=$(DESTDIR)${pythondir} \ + --record files.txt \ + --verbose ; \ + cat files.txt >> install_files.txt ; \ +-- +2.11.0 +
meta/recipes-support/gpgme/gpgme_1.8.0.bb +2 -0
@@ -13,6 +13,8 @@ UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" SRC_URI = "${GNUPG_MIRROR}/gpgme/${BP}.tar.bz2 \ file://pkgconfig.patch \ file://python-lang-config.patch \ + file://0001-Correctly-install-python-modules.patch \ + file://0001-Avoid-host-contamination-from-gpg-config.patch \ " SRC_URI[md5sum] = "722a4153904b9b5dc15485a22d29263b"
Signature · 1 line
2.11.0
Re: [PATCH 30/44] byacc: remove the recipe
In reply to Alexander Kanavinbyacc, until recently, was required by the LSB / LSB Test Suite.
So I'd rather is be kept in oe-core through the 2.3 release.
--Mark
Quoted 272 lines · Alexander Kanavin
It was used only by rpm5 and will be moved to meta-oe
Signed-off-by Alexander Kanavin <[email protected]>--- meta/recipes-extended/byacc/byacc.inc | 22 --- .../0001-byacc-do-not-reorder-CC-and-CFLAGS.patch | 161 --------------------- meta/recipes-extended/byacc/byacc/byacc-open.patch | 25 ---- meta/recipes-extended/byacc/byacc_20161202.bb | 12 -- .../packagegroup-core-full-cmdline.bb | 1 - 5 files changed, 221 deletions(-) delete mode 100644 meta/recipes-extended/byacc/byacc.inc delete mode 100644 meta/recipes-extended/byacc/byacc/0001-byacc-do-not-reorder-CC-and-CFLAGS.patch delete mode 100644 meta/recipes-extended/byacc/byacc/byacc-open.patch delete mode 100644 meta/recipes-extended/byacc/byacc_20161202.bbmeta/recipes-extended/byacc/byacc.inc deleted +0
-22@@ -1,22 +0,0 @@ -SUMMARY = "Berkeley LALR Yacc parser generator" -DESCRIPTION = "A parser generator utility that reads a grammar specification from a file and generates an LR(1) \ -parser for it. The parsers consist of a set of LALR(1) parsing tables and a driver routine written in the C \ -programming language." -SECTION = "devel" -LICENSE = "PD" - -SRC_URI = "ftp://invisible-island.net/byacc/byacc-${PV}.tgz \ - file://byacc-open.patch \ - file://0001-byacc-do-not-reorder-CC-and-CFLAGS.patch" - -EXTRA_OECONF += "--program-transform-name='s,^,b,'" - -BBCLASSEXTEND = "native" - -inherit autotools - -do_configure() { - install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S} - install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S} - oe_runconf -}meta/recipes-extended/byacc/byacc/0001-byacc-do-not-reorder-CC-and-CFLAGS.patch deleted +0
-161@@ -1,161 +0,0 @@ -Subject: byacc: do not reorder $CC and $CFLAGS - -byacc tries to process $CC and decide which part should belong to CC and which -part should below to CFLAGS and then do reordering. It doesn't make much sense -for OE. And it doesn't do its work correctly. Some options are dropped. - -Delete all these stuff so that we could have all options we need. - -Upstream-Status: Inappropriate [OE Specific] - -Signed-off-by: Chen Qi <[email protected]> ---- - aclocal.m4 | 1 - - configure | 119 ------------------------------------------------------------- - 2 files changed, 120 deletions(-) - -diff --git a/aclocal.m4 b/aclocal.m4 -index 917a848..62ef241 100644 ---- a/aclocal.m4 -+++ b/aclocal.m4 -@@ -1021,7 +1021,6 @@ CF_GCC_VERSION - CF_ACVERSION_CHECK(2.52, - [AC_PROG_CC_STDC], - [CF_ANSI_CC_REQD]) --CF_CC_ENV_FLAGS - ])dnl - dnl --------------------------------------------------------------------------- - dnl CF_PROG_GROFF version: 2 updated: 2015/07/04 11:16:27 -diff --git a/configure b/configure -index 9707e50..4f0497c 100755 ---- a/configure -+++ b/configure -@@ -1946,125 +1946,6 @@ esac - # This should have been defined by AC_PROG_CC - : ${CC:=cc} - --echo "$as_me:1949: checking \$CC variable" >&5 --echo $ECHO_N "checking \$CC variable... $ECHO_C" >&6 --case "$CC" in --(*[\ \ ]-*) -- echo "$as_me:1953: result: broken" >&5 --echo "${ECHO_T}broken" >&6 -- { echo "$as_me:1955: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options" >&5 --echo "$as_me: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options" >&2;} -- # humor him... -- cf_flags=`echo "$CC" | sed -e 's/^.*[ ]\(-[^ ]\)/\1/'` -- CC=`echo "$CC " | sed -e 's/[ ]-[^ ].*$//' -e 's/[ ]*$//'` -- for cf_arg in $cf_flags -- do -- case "x$cf_arg" in -- (x-[IUDfgOW]*) -- --cf_fix_cppflags=no --cf_new_cflags= --cf_new_cppflags= --cf_new_extra_cppflags= -- --for cf_add_cflags in $cf_flags --do --case $cf_fix_cppflags in --(no) -- case $cf_add_cflags in -- (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) -- case $cf_add_cflags in -- (-D*) -- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'` -- -- test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ -- && test -z "${cf_tst_cflags}" \ -- && cf_fix_cppflags=yes -- -- if test $cf_fix_cppflags = yes ; then -- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" -- continue -- elif test "${cf_tst_cflags}" = "\"'" ; then -- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" -- continue -- fi -- ;; -- esac -- case "$CPPFLAGS" in -- (*$cf_add_cflags) -- ;; -- (*) -- case $cf_add_cflags in -- (-D*) -- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` -- --CPPFLAGS=`echo "$CPPFLAGS" | \ -- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ -- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` -- -- ;; -- esac -- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags" -- ;; -- esac -- ;; -- (*) -- cf_new_cflags="$cf_new_cflags $cf_add_cflags" -- ;; -- esac -- ;; --(yes) -- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" -- -- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'` -- -- test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ -- && test -z "${cf_tst_cflags}" \ -- && cf_fix_cppflags=no -- ;; --esac --done -- --if test -n "$cf_new_cflags" ; then -- -- CFLAGS="$CFLAGS $cf_new_cflags" --fi -- --if test -n "$cf_new_cppflags" ; then -- -- CPPFLAGS="$CPPFLAGS $cf_new_cppflags" --fi -- --if test -n "$cf_new_extra_cppflags" ; then -- -- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" --fi -- -- ;; -- (*) -- CC="$CC $cf_arg" -- ;; -- esac -- done -- test -n "$verbose" && echo " resulting CC: '$CC'" 1>&6 -- --echo "${as_me:-configure}:2051: testing resulting CC: '$CC' ..." 1>&5 -- -- test -n "$verbose" && echo " resulting CFLAGS: '$CFLAGS'" 1>&6 -- --echo "${as_me:-configure}:2055: testing resulting CFLAGS: '$CFLAGS' ..." 1>&5 -- -- test -n "$verbose" && echo " resulting CPPFLAGS: '$CPPFLAGS'" 1>&6 -- --echo "${as_me:-configure}:2059: testing resulting CPPFLAGS: '$CPPFLAGS' ..." 1>&5 -- -- ;; --(*) -- echo "$as_me:2063: result: ok" >&5 --echo "${ECHO_T}ok" >&6 -- ;; --esac -- - echo "$as_me:2068: checking whether ${MAKE-make} sets \${MAKE}" >&5 - echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6 - set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'` --- -2.8.3 -meta/recipes-extended/byacc/byacc/byacc-open.patch deleted +0
-25@@ -1,25 +0,0 @@ -Ubuntu defaults to passing _FORTIFY_SOURCE=2 which breaks byacc as it doesn't -pass enough arguments to open(): - - inlined from 'open_tmpfile' at byacc-20150711/main.c:588:5: - /usr/include/x86_64-linux-gnu/bits/fcntl2.h:50:24: error: call to '__open_missing_mode' declared with attribute error: - open with O_CREAT in second argument needs 3 arguments - -Add a mode of 0666 to fix this. - -Upstream-Status: Pending -Signed-off-by: Ross Burton <[email protected]> - -diff --git a/main.c b/main.c -index 620ce3f..82071a4 100644 ---- a/main.c -+++ b/main.c -@@ -526,7 +526,7 @@ my_mkstemp(char *temp) - } - if ((name = tempnam(dname, fname)) != 0) - { -- fd = open(name, O_CREAT | O_EXCL | O_RDWR); -+ fd = open(name, O_CREAT | O_EXCL | O_RDWR, 0666); - strcpy(temp, name); - } - elsemeta/recipes-extended/byacc/byacc_20161202.bb deleted +0
-12@@ -1,12 +0,0 @@ -# Sigh. This is one of those places where everyone licenses it differently. Someone -# even apply UCB to it (Free/Net/OpenBSD). The maintainer states that: -# "I've found no reliable source which states that byacc must bear a UCB copyright." -# Setting to PD as this is what the upstream has it as. - -LICENSE = "PD" -LIC_FILES_CHKSUM = "file://package/debian/copyright;md5=74533d32ffd38bca4cbf1f1305f8bc60" -require byacc.inc - - -SRC_URI[md5sum] = "48ef38447f2cc864c70ef864b26cf817" -SRC_URI[sha256sum] = "30dc58cfcdb708eea7ba022db29b41d2d392f20727491b956954366f2f2117f0"meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb +0
-1@@ -110,7 +110,6 @@ RDEPENDS_packagegroup-core-full-cmdline-extended = "\ " RDEPENDS_packagegroup-core-full-cmdline-dev-utils = "\ - byacc \ diffutils \ m4 \ make \
Re: [PATCH 19/44] package_rpm.bbclass: correctly map RRECOMMENDS and RSUGGESTS to rpm tags
In reply to Alexander KanavinQuoted 2 lines · Alexander Kanavin
Previously they were swapped, not sure why. Their meaning, as far as rpm world goes, is different:
Just an FYI -- In RPM5 (well before rpm4 had support for recommended packages) it was implemented as 'suggests'. I have no idea why.
--Mark
Quoted 45 lines
- Recommends is a soft dependency and will be installed by default; there is an option not to do that.
- Suggests is a suggestion to be picked up and presented to end user by package management tools; it has no special meaning otherwise.
OE packages use RRECOMMENDS, which should be mapped to Recommends rpm tag, so that the packages will be picked up as dependencies.
Signed-off-by Alexander Kanavin <[email protected]>--- meta/classes/package_rpm.bbclass | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-)meta/classes/package_rpm.bbclass +4
-8@@ -450,10 +450,8 @@ python write_specfile () { if splitrpostrm: print_deps(splitrdepends, "Requires(postun)", spec_preamble_bottom, d) - # Suggests in RPM are like recommends in OE-core! - print_deps(splitrrecommends, "Suggests", spec_preamble_bottom, d) - # While there is no analog for suggests... (So call them recommends for now) - print_deps(splitrsuggests, "Recommends", spec_preamble_bottom, d) + print_deps(splitrrecommends, "Recommends", spec_preamble_bottom, d) + print_deps(splitrsuggests, "Suggests", spec_preamble_bottom, d) print_deps(splitrprovides, "Provides", spec_preamble_bottom, d) print_deps(splitrobsoletes, "Obsoletes", spec_preamble_bottom, d)@@ -560,10 +558,8 @@ python write_specfile () { if srcrpostrm: print_deps(srcrdepends, "Requires(postun)", spec_preamble_top, d) - # Suggests in RPM are like recommends in OE-core! - print_deps(srcrrecommends, "Suggests", spec_preamble_top, d) - # While there is no analog for suggests... (So call them recommends for now) - print_deps(srcrsuggests, "Recommends", spec_preamble_top, d) + print_deps(srcrrecommends, "Recommends", spec_preamble_top, d) + print_deps(srcrsuggests, "Suggests", spec_preamble_top, d) print_deps(srcrprovides, "Provides", spec_preamble_top, d) print_deps(srcrobsoletes, "Obsoletes", spec_preamble_top, d)
Re: [PATCH 34/44] package_rpm.bbclass: add a /bin/sh Provides for nativesdk- packages
In reply to Alexander KanavinQuoted 15 lines · Alexander Kanavin
nativesdk-* rpm packages all require
/bin/shbecause postinst scriptlets are run with it. We can either teach rpm4 and dnf to ignore that dependency (a lot of non-upstreamable work), or add auto-satisfy the dependency in each package. I've chosen to do the latter.Signed-off-by Alexander Kanavin <[email protected]>--- meta/classes/package_rpm.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)meta/classes/package_rpm.bbclass +0
-0
meta/classes/package_rpm.bbclass python write_specfile () { · line 564
Quoted 6 lines
meta/classes/package_rpm.bbclass +1
-1@@ -560,7 +560,7 @@ python write_specfile () { print_deps(srcrrecommends, "Recommends", spec_preamble_top, d) print_deps(srcrsuggests, "Suggests", spec_preamble_top, d) - print_deps(srcrprovides, "Provides", spec_preamble_top, d) + print_deps(srcrprovides + (" /bin/sh" if srcname.startswith("nativesdk-") else ""), "Provides", spec_preamble_top, d) print_deps(srcrobsoletes, "Obsoletes", spec_preamble_top, d)
I'm confused as to what this is doing... I see this is only affecting the
virtual 'src package' (or the one built for archiving?)..
But providing /bin/sh as any type of provide seems wrong. Either --nodeps to the rpmbuild or there should be a configuration file that the (host/cross) rpm can use to say "yes I really just have /bin/sh.
(rpm5 has a single file you could put arbitrary file provides into, at one point rpm4 did as well -- but I don't know if it's still there.)
Doing this runs the risk of someone asking for '/bin/sh' and getting a source package (a random one) as part of their build process using the DNF sources option and such. Definitely not what is expected.
Quoted 3 lines
meta/classes/package_rpm.bbclass +0
-0# conflicts can not be in a provide! We will need to filter it.
Re: [PATCH 36/44] package_rpm.bbclass: do not set the OS dynamically when building rpms
In reply to Alexander KanavinQuoted 3 lines · Alexander Kanavin
Packages need to contain just one value for the os field, otherwise rpm will refuse to install them if they don't match what is in
/etc/rpm/platform.
How will this work with nativesdk for things like targeting mingw (windows), darwin, or even alternative OS like Zephyr?
I'm thinking if 'linux-gnu' is invalid, then a simple conversion to 'linux' would be better then hard coding everything to 'linux'.
--Mark
Quoted 19 lines
Signed-off-by Alexander Kanavin <[email protected]>--- meta/classes/package_rpm.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)meta/classes/package_rpm.bbclass +1
-1@@ -692,7 +692,7 @@ python do_package_rpm () { pkgwritedir = d.expand('${PKGWRITEDIRRPM}/${PACKAGE_ARCH_EXTEND}') d.setVar('RPM_PKGWRITEDIR', pkgwritedir) bb.debug(1, 'PKGWRITEDIR: %s' % d.getVar('RPM_PKGWRITEDIR')) - pkgarch = d.expand('${PACKAGE_ARCH_EXTEND}${HOST_VENDOR}-${HOST_OS}') + pkgarch = d.expand('${PACKAGE_ARCH_EXTEND}${HOST_VENDOR}-linux') bb.utils.mkdirhier(pkgwritedir) os.chmod(pkgwritedir, 0o755)
Re: [PATCH 38/44] package_rpm.bbclass: do not strip multilib prefixes from package names, do not add multilib prefix to package arch
In reply to Alexander KanavinQuoted 2 lines · Alexander Kanavin
This is done for reasons I cannot establish, and greatly complicates the code that installs packages into rootfs.
RPM internally resolves ELF dependencies through a resolution system.
If you look at a typical Fedora, SuSe, etc system you will often see:
glibc-x.y.i386.rpm
glibc-x.y.x86-64.rpm
When a package asks for 'glibc', the system will go out and match the one for the arch that is being requested.
This permits you to have an i386 feed for i386 machines and an x86-64 feed that can use both. (This is much less of an issue on x86 these days then it used to be. However, it is still an issue on ARM big/LITTLE and some combination hardware that may have an aarch64 system and an armv7 in the same chassis.)
The typical OE approach is:
glibc-x.y.i386.rpm
and
lib32-glibc-x.y.i386.rpm
glibc-x.y.x86-64.rpm
This means the '32-bit' feeds can not be shared in any way. The system naming is also more confusing to people familiar with other RPM distirbutions, as they are expecting to be able to say 'give me glibc i386' are, and not have to just know it starts with 'lib32-'. (This is because internally to RPM, the arch is treated as part of the naming fields, as long as the contents do not conflict. So you SHOULD be able to have two non-conflicting glibc* packages installed at the same time -- the resolver will decide which ELF file to install.)
This is very different in practice to deb/ipkg naming that is required to be unique.
The other problem this introduces for people trying to use ISP packages and other external (non YP sources) is the naming scheme is suddenly wildly different. So they may ask (depend on) the wrong named packages.
If you do want to remove this, I would really prefer a switch to full OE/YP styling naming -- so those that need to keep 'Red Hat style' can do so.
(If having this code in places cause DNF/RPM4 to break, chances are there is a problem in the configuration or resolving code -- since everything should be automatic.)
--Mark
Quoted 121 lines
Signed-off-by Alexander Kanavin <[email protected]>--- meta/classes/package_rpm.bbclass | 55 ++++++++-------------------------------- 1 file changed, 11 insertions(+), 44 deletions(-)meta/classes/package_rpm.bbclass +11
-44@@ -101,27 +101,6 @@ python write_specfile () { os.chown(f, 0, 0) spec_preamble_top.append('Source%s: %s' % (source_number, source)) source_number += 1 - # We need a simple way to remove the MLPREFIX from the package name, - # and dependency information... - def strip_multilib(name, d): - multilibs = d.getVar('MULTILIBS') or "" - for ext in multilibs.split(): - eext = ext.split(':') - if len(eext) > 1 and eext[0] == 'multilib' and name and name.find(eext[1] + '-') >= 0: - name = "".join(name.split(eext[1] + '-')) - return name - - def strip_multilib_deps(deps, d): - depends = bb.utils.explode_dep_versions2(deps or "") - newdeps = {} - for dep in depends: - newdeps[strip_multilib(dep, d)] = depends[dep] - return bb.utils.join_deps(newdeps) - -# ml = d.getVar("MLPREFIX") -# if ml and name and len(ml) != 0 and name.find(ml) == 0: -# return ml.join(name.split(ml, 1)[1:]) -# return name # In RPM, dependencies are of the format: pkg <>= Epoch:Version-Release # This format is similar to OE, however there are restrictions on the@@ -283,7 +262,7 @@ python write_specfile () { bb.fatal("No OUTSPECFILE") # Construct the SPEC file... - srcname = strip_multilib(d.getVar('PN'), d) + srcname = d.getVar('PN') srcsummary = (d.getVar('SUMMARY') or d.getVar('DESCRIPTION') or ".") srcversion = d.getVar('PKGV').replace('-', '+') srcrelease = d.getVar('PKGR')@@ -295,7 +274,7 @@ python write_specfile () { srcdescription = d.getVar('DESCRIPTION') or "." srccustomtagschunk = get_package_additional_metadata("rpm", d) - srcdepends = strip_multilib_deps(d.getVar('DEPENDS'), d) + srcdepends = d.getVar('DEPENDS') srcrdepends = [] srcrrecommends = [] srcrsuggests = []@@ -340,7 +319,7 @@ python write_specfile () { if dirfiles is not None: dirfiles = dirfiles.split() - splitname = strip_multilib(pkgname, d) + splitname = pkgname splitsummary = (localdata.getVar('SUMMARY') or localdata.getVar('DESCRIPTION') or ".") splitversion = (localdata.getVar('PKGV') or "").replace('-', '+')@@ -361,12 +340,12 @@ python write_specfile () { # Map the dependencies into their final form mapping_rename_hook(localdata) - splitrdepends = strip_multilib_deps(localdata.getVar('RDEPENDS'), d) - splitrrecommends = strip_multilib_deps(localdata.getVar('RRECOMMENDS'), d) - splitrsuggests = strip_multilib_deps(localdata.getVar('RSUGGESTS'), d) - splitrprovides = strip_multilib_deps(localdata.getVar('RPROVIDES'), d) - splitrreplaces = strip_multilib_deps(localdata.getVar('RREPLACES'), d) - splitrconflicts = strip_multilib_deps(localdata.getVar('RCONFLICTS'), d) + splitrdepends = localdata.getVar('RDEPENDS') + splitrrecommends = localdata.getVar('RRECOMMENDS') + splitrsuggests = localdata.getVar('RSUGGESTS') + splitrprovides = localdata.getVar('RPROVIDES') + splitrreplaces = localdata.getVar('RREPLACES') + splitrconflicts = localdata.getVar('RCONFLICTS') splitrobsoletes = [] splitrpreinst = localdata.getVar('pkg_preinst')@@ -640,14 +619,6 @@ python write_specfile () { write_specfile[vardepsexclude] = "OVERRIDES" python do_package_rpm () { - # We need a simple way to remove the MLPREFIX from the package name, - # and dependency information... - def strip_multilib(name, d): - ml = d.getVar("MLPREFIX") - if ml and name and len(ml) != 0 and name.find(ml) >= 0: - return "".join(name.split(ml)) - return name - workdir = d.getVar('WORKDIR') tmpdir = d.getVar('TMPDIR') pkgd = d.getVar('PKGD')@@ -665,7 +636,7 @@ python do_package_rpm () { # If the spec file already exist, and has not been stored into # pseudo's files.db, it maybe cause rpmbuild src.rpm fail, # so remove it before doing rpmbuild src.rpm. - srcname = strip_multilib(d.getVar('PN'), d) + srcname = d.getVar('PN') outspecfile = workdir + "/" + srcname + ".spec" if os.path.isfile(outspecfile): os.remove(outspecfile)@@ -684,11 +655,7 @@ python do_package_rpm () { # Let's not fight against this. package_arch = (d.getVar('PACKAGE_ARCH') or "").replace("-", "_").replace("all", "noarch") sdkpkgsuffix = (d.getVar('SDKPKGSUFFIX') or "nativesdk").replace("-", "_") - if package_arch not in "all any noarch".split() and not package_arch.endswith(sdkpkgsuffix): - ml_prefix = (d.getVar('MLPREFIX') or "").replace("-", "_") - d.setVar('PACKAGE_ARCH_EXTEND', ml_prefix + package_arch) - else: - d.setVar('PACKAGE_ARCH_EXTEND', package_arch) + d.setVar('PACKAGE_ARCH_EXTEND', package_arch) pkgwritedir = d.expand('${PKGWRITEDIRRPM}/${PACKAGE_ARCH_EXTEND}') d.setVar('RPM_PKGWRITEDIR', pkgwritedir) bb.debug(1, 'PKGWRITEDIR: %s' % d.getVar('RPM_PKGWRITEDIR'))
Re: [PATCH 39/44] package.bbclass: don't exclude package groups from runtime mapping
In reply to Alexander KanavinQuoted 3 lines · Alexander Kanavin
This ensures that remapping happens correctly, particularly
when package groups list noarch packages, and multilib is in use. Previously this was masked by rpm doing *another* layer of remapping on top of this.
This change is definitely NOT rpm specific.
I'm not sure I understand either why this line was there or why it was removed.
Looking at the history, there was a lot of work being done in this section about generic package work at the time.
See oe commits:9c826962ec8fa45c2b035427442b90a41517144e
toa0cd18ff5405b63b8296b8ef1fc2a488b906f576
--Mark
Quoted 20 lines
Signed-off-by Alexander Kanavin <[email protected]>--- meta/classes/package.bbclass | 3 --- 1 file changed, 3 deletions(-)meta/classes/package.bbclass +0
-3@@ -479,9 +479,6 @@ def get_package_additional_metadata (pkg_type, d): def runtime_mapping_rename (varname, pkg, d): #bb.note("%s before: %s" % (varname, d.getVar(varname))) - if bb.data.inherits_class('packagegroup', d): - return - new_depends = {} deps = bb.utils.explode_dep_versions2(d.getVar(varname) or "") for depend in deps:
Re: [PATCH 41/44] bash: package bashbug separately
In reply to Alexander KanavinQuoted 3 lines · Alexander Kanavin
It's a machine-specific script, which is causing conflicts when multiple versions of bash are installed in multilib setting, and it also does not really make sense for embedded systems anyway.
Out of curiosity what is machine specific here?
(The bashbug shouldn't be part of the main recipe, no disagreement.) But in the past we had a single bashbug that would not conflict in multilibs -- that must have broken at some point.
--Mark
Quoted 18 lines
Signed-off-by Alexander Kanavin <[email protected]>--- meta/recipes-extended/bash/bash.inc | 4 ++++ 1 file changed, 4 insertions(+)meta/recipes-extended/bash/bash.inc +4
-0@@ -65,3 +65,7 @@ pkg_postinst_${PN} () { pkg_postrm_${PN} () { printf "$(grep -v "^${base_bindir}/bash$" $D${sysconfdir}/shells)\n" > $D${sysconfdir}/shells } + +PACKAGES += "${PN}-bashbug" +FILES_${PN} = "${bindir}/bash ${base_bindir}/bash.bash" +FILES_${PN}-bashbug = "${bindir}/bashbug"
Re: [PATCH 22/44] scripts/rpm2cpio.sh: replace 5.x version with 4.x version
In reply to Alexander KanavinJust an FYI, I was concerned that $(( )) (in the new script) was a bash-ism, but I was able to run the script on an Ubuntu machine using 'dash' as /bin/sh.
--Mark
Quoted 119 lines · Alexander Kanavin
Signed-off-by Alexander Kanavin <[email protected]>--- scripts/rpm2cpio.sh | 108 ++++++++++++++++++++++++++-------------------------- 1 file changed, 55 insertions(+), 53 deletions(-)scripts/rpm2cpio.sh +55
-53@@ -1,53 +1,55 @@ -#!/bin/sh - -# This comes from the RPM5 5.4.0 distribution. - -pkg=$1 -if [ "$pkg" = "" -o ! -e "$pkg" ]; then - echo "no package supplied" 1>&2 - exit 1 -fi - -leadsize=96 -o=`expr $leadsize + 8` -set `od -j $o -N 8 -t u1 $pkg` -il=`expr 256 \* \( 256 \* \( 256 \* $2 + $3 \) + $4 \) + $5` -dl=`expr 256 \* \( 256 \* \( 256 \* $6 + $7 \) + $8 \) + $9` -# echo "sig il: $il dl: $dl" - -sigsize=`expr 8 + 16 \* $il + $dl` -o=`expr $o + $sigsize + \( 8 - \( $sigsize \% 8 \) \) \% 8 + 8` -set `od -j $o -N 8 -t u1 $pkg` -il=`expr 256 \* \( 256 \* \( 256 \* $2 + $3 \) + $4 \) + $5` -dl=`expr 256 \* \( 256 \* \( 256 \* $6 + $7 \) + $8 \) + $9` -# echo "hdr il: $il dl: $dl" - -hdrsize=`expr 8 + 16 \* $il + $dl` -o=`expr $o + $hdrsize` -EXTRACTOR="dd if=$pkg ibs=$o skip=1" - -COMPRESSION=`($EXTRACTOR |file -) 2>/dev/null` -if echo $COMPRESSION |grep -iq gzip; then - DECOMPRESSOR=gunzip -elif echo $COMPRESSION |grep -iq bzip2; then - DECOMPRESSOR=bunzip2 -elif echo $COMPRESSION |grep -iq xz; then - DECOMPRESSOR=unxz -elif echo $COMPRESSION |grep -iq cpio; then - DECOMPRESSOR=cat -else - # Most versions of file don't support LZMA, therefore we assume - # anything not detected is LZMA - DECOMPRESSOR=`which unlzma 2>/dev/null` - case "$DECOMPRESSOR" in - /* ) ;; - * ) DECOMPRESSOR=`which lzmash 2>/dev/null` - case "$DECOMPRESSOR" in - /* ) DECOMPRESSOR="lzmash -d -c" ;; - * ) DECOMPRESSOR=cat ;; - esac - ;; - esac -fi - -$EXTRACTOR 2>/dev/null | $DECOMPRESSOR +#!/bin/sh -efu + +# This file comes from rpm 4.x distribution + +fatal() { + echo "$*" >&2 + exit 1 +} + +pkg="$1" +[ -n "$pkg" -a -e "$pkg" ] || + fatal "No package supplied" + +_dd() { + local o="$1"; shift + dd if="$pkg" skip="$o" iflag=skip_bytes status=none $* +} + +calcsize() { + offset=$(($1 + 8)) + + local i b b0 b1 b2 b3 b4 b5 b6 b7 + + i=0 + while [ $i -lt 8 ]; do + b="$(_dd $(($offset + $i)) bs=1 count=1)" + [ -z "$b" ] && + b="0" || + b="$(exec printf '%u\n' "'$b")" + eval "b$i=\$b" + i=$(($i + 1)) + done + + rsize=$((8 + ((($b0 << 24) + ($b1 << 16) + ($b2 << 8) + $b3) << 4) + ($b4 << 24) + ($b5 << 16) + ($b6 << 8) + $b7)) + offset=$(($offset + $rsize)) +} + +case "$(_dd 0 bs=8 count=1)" in + "$(printf '\355\253\356\333')"*) ;; # '\xed\xab\xee\xdb' + *) fatal "File doesn't look like rpm: $pkg" ;; +esac + +calcsize 96 +sigsize=$rsize + +calcsize $(($offset + (8 - ($sigsize % 8)) % 8)) +hdrsize=$rsize + +case "$(_dd $offset bs=3 count=1)" in + "$(printf '\102\132')"*) _dd $offset | bunzip2 ;; # '\x42\x5a' + "$(printf '\037\213')"*) _dd $offset | gunzip ;; # '\x1f\x8b' + "$(printf '\375\067')"*) _dd $offset | xzcat ;; # '\xfd\x37' + "$(printf '\135\000')"*) _dd $offset | unlzma ;; # '\x5d\x00' + *) fatal "Unrecognized rpm file: $pkg" ;; +esac
Re: [PATCH 43/44] base-files: do not write the current date into /etc/issue and /etc/issue.net
In reply to Alexander KanavinQuoted 30 lines · Alexander Kanavin
This is causing a problem in multilib where base-files and lib64/32- base-files
clash because they may have different dates. Also, if the package is coming
from sstate it has an incorrect date anyway.Signed-off-by Alexander Kanavin <[email protected]>---
meta/recipes-core/base-files/base-files_3.0.14.bb | 5 +++--1 file changed, 3 insertions(+), 2 deletions(-)meta/recipes-core/base-files/base-files_3.0.14.bb +0
-0@@ -145,8 +145,9 @@ do_install_basefilesissue () {printf "${DISTRO_NAME} " >> ${D}${sysconfdir}/issue printf "${DISTRO_NAME} " >> ${D}${sysconfdir}/issue.net
if [ -n "${DISTRO_VERSION}" ]; thenmeta/recipes-core/base-files/base-files_3.0.14.bb +0
-1- printf "${DISTRO_VERSION} " >>${D}${sysconfdir}/issue
meta/recipes-core/base-files/base-files_3.0.14.bb +0
-1- printf "${DISTRO_VERSION} " >>${D}${sysconfdir}/issue.net
meta/recipes-core/base-files/base-files_3.0.14.bb +1
-0+ distro_version_nodate=${@'${DISTRO_VERSION}'.replace('snapshot-${DATE}','snapshot').replace('${DATE}','')}
meta/recipes-core/base-files/base-files_3.0.14.bb +1
-0+ printf "%s " $distro_version_nodate >>${D}${sysconfdir}/issue
meta/recipes-core/base-files/base-files_3.0.14.bb +1
-0+ printf "%s " $distro_version_nodate >>
Quoted 4 lines
${D}${sysconfdir}/issue.net
fi
printf "\\\n \\\l\n" >> ${D}${sysconfdir}/issue echo >> ${D}${sysconfdir}/issue
You probably need a vardepsexclude on DATE here...
Cheers,
Richard
Re: [PATCH 43/44] base-files: do not write the current date into /etc/issue and /etc/issue.net
Quoted 30 lines · Richard Purdie
Quoted 21 lines · Alexander Kanavin
meta/recipes-core/base-files/base-files_3.0.14.bb +0
-0@@ -145,8 +145,9 @@ do_install_basefilesissue () {printf "${DISTRO_NAME} " >> ${D}${sysconfdir}/issue
printf "${DISTRO_NAME} " >> ${D}${sysconfdir}/issue.net
if [ -n "${DISTRO_VERSION}" ]; thenmeta/recipes-core/base-files/base-files_3.0.14.bb +0
-1- printf "${DISTRO_VERSION} " >>${D}${sysconfdir}/issue
meta/recipes-core/base-files/base-files_3.0.14.bb +0
-1- printf "${DISTRO_VERSION} " >>${D}${sysconfdir}/issue.net
meta/recipes-core/base-files/base-files_3.0.14.bb +1
-0+ distro_version_nodate=${@'${DISTRO_VERSION}' .replace('snapshot-${DATE}','snapshot').replace('${DATE}','')}
meta/recipes-core/base-files/base-files_3.0.14.bb +1
-0+ printf "%s " $distro_version_nodate >>${D}${sysconfdir}/issue
meta/recipes-core/base-files/base-files_3.0.14.bb +1
-0+ printf "%s " $distro_version_nodate >>Quoted 4 lines
${D}${sysconfdir}/issue.net
fi
printf "\\\n \\\l\n" >> ${D}${sysconfdir}/issue echo >> ${D}${sysconfdir}/issuehttps://autobuilder.yocto.io/builders/nightly-oe-selftest/builds/213/
steps/Running%20oe-selftest/logs/stdio
Quoted 1 line
You probably need a vardepsexclude on DATE here...
I fixed that and merged this...
Cheers,
Richard
Re: [PATCH 30/44] byacc: remove the recipe
In reply to Mark HatleQuoted 3 lines · Mark Hatle
byacc, until recently, was required by the LSB / LSB Test Suite.
So I'd rather is be kept in oe-core through the 2.3 release.
I couldn't find it in the LSB 5 standard. Is it something from earlier versions?
Alex
Re: [PATCH 30/44] byacc: remove the recipe
Quoted 7 lines · Alexander Kanavin
Quoted 3 lines · Mark Hatle
byacc, until recently, was required by the LSB / LSB Test Suite.
So I'd rather is be kept in oe-core through the 2.3 release.
I couldn't find it in the LSB 5 standard. Is it something from earlier versions?
It is in the instructions for the LSB Test Suite. Byacc was required until fairly recently. From what I've found it was needed up until about September of last year. (There may be people doing CGL certification and such that still need to use older versions of the LSB Test Suite for the time being.)
I have no objections (at this time) to remove it in 2.4, but I think it's too later in 2.3 to remove/move it on someone.
--Mark
Quoted 2 lines
Alex
Re: [PATCH 34/44] package_rpm.bbclass: add a /bin/sh Provides for nativesdk- packages
In reply to Mark HatleQuoted 6 lines · Mark Hatle
Quoted 4 lines · Alexander Kanavin
nativesdk-* rpm packages all require
/bin/shbecause postinst scriptlets are run with it. We can either teach rpm4 and dnf to ignore that dependency (a lot of non-upstreamable work), or add auto-satisfy the dependency in each package. I've chosen to do the latter.
Quoted 8 lines
meta/classes/package_rpm.bbclass python write_specfile () { · line 564
Quoted 5 lines
print_deps(srcrrecommends, "Recommends", spec_preamble_top, d)print_deps(srcrsuggests, "Suggests", spec_preamble_top, d)meta/classes/package_rpm.bbclass +1
-1- print_deps(srcrprovides, "Provides", spec_preamble_top, d) + print_deps(srcrprovides + (" /bin/sh" if srcname.startswith("nativesdk-") else ""), "Provides", spec_preamble_top, d) print_deps(srcrobsoletes, "Obsoletes", spec_preamble_top, d)I'm confused as to what this is doing... I see this is only affecting the
virtual 'src package' (or the one built for archiving?)..
The variable name is misleading. That line up there is printing the Provides list into the top section of the .spec file which is then given to rpm so it can create binary packages.
Quoted 6 lines
But providing
/bin/shas any type of provide seems wrong. Either --nodeps to the rpmbuild or there should be a configuration file that the (host/cross) rpm can use to say "yes I really just have/bin/sh.(rpm5 has a single file you could put arbitrary file provides into, at one point rpm4 did as well -- but I don't know if it's still there.)
I checked - rpm 4 does not have that feature now, or I couldn't find it.
Quoted 3 lines
Doing this runs the risk of someone asking for '
/bin/sh' and getting a source package (a random one) as part of their build process using the DNF sources option and such. Definitely not what is expected.
This only affects nativesdk- packages, which are well isolated from all other packages during installation time. I haven't seen any issues with it either in my local testing or in the autobuilder run. If it pops up somehow, we can do more to isolate the package sets.
Alex
Re: [PATCH 36/44] package_rpm.bbclass: do not set the OS dynamically when building rpms
In reply to Mark HatleQuoted 10 lines · Mark Hatle
Quoted 3 lines · Alexander Kanavin
Packages need to contain just one value for the os field, otherwise rpm will refuse to install them if they don't match what is in
/etc/rpm/platform.How will this work with nativesdk for things like targeting mingw (windows), darwin, or even alternative OS like Zephyr?
I'm thinking if 'linux-gnu' is invalid, then a simple conversion to 'linux' would be better then hard coding everything to 'linux'.
I don't believe that the OS name embedded into packages is actually used anywhere to make decisions about which package to install. It's just that some packages have one value for it, others have another, and rpm 4 does not allow that (rpm 5 does, and so several OS values gets written into /etc). So I bring them all to a common value.
Alex
Re: [PATCH 21/44] rootfs_rpm.bbclass: migrate image creation to dnf
In reply to Alexander KanavinQuoted 3 lines · Alexander Kanavin
+ raise NotImplementedError("Adding remote dnf feeds not yet
supported.")
I think this is a 2.4M4 blocker if the series merges into M3.
Ross
Re: [PATCH 34/44] package_rpm.bbclass: add a /bin/sh Provides for nativesdk- packages
In reply to Alexander KanavinQuoted 20 lines · Alexander Kanavin
Quoted 6 lines · Mark Hatle
Quoted 4 lines · Alexander Kanavin
nativesdk-* rpm packages all require
/bin/shbecause postinst scriptlets are run with it. We can either teach rpm4 and dnf to ignore that dependency (a lot of non-upstreamable work), or add auto-satisfy the dependency in each package. I've chosen to do the latter.Quoted 8 lines
meta/classes/package_rpm.bbclass python write_specfile () { · line 564
Quoted 5 lines
print_deps(srcrrecommends, "Recommends", spec_preamble_top, d)print_deps(srcrsuggests, "Suggests", spec_preamble_top, d)meta/classes/package_rpm.bbclass +1
-1- print_deps(srcrprovides, "Provides", spec_preamble_top, d) + print_deps(srcrprovides + (" /bin/sh" if srcname.startswith("nativesdk-") else ""), "Provides", spec_preamble_top, d) print_deps(srcrobsoletes, "Obsoletes", spec_preamble_top, d)I'm confused as to what this is doing... I see this is only affecting the
virtual 'src package' (or the one built for archiving?)..The variable name is misleading. That line up there is printing the Provides list into the top section of the .spec file which is then given to rpm so it can create binary packages.
Quoted 8 lines
Quoted 6 lines
But providing
/bin/shas any type of provide seems wrong. Either --nodeps to the rpmbuild or there should be a configuration file that the (host/cross) rpm can use to say "yes I really just have/bin/sh.(rpm5 has a single file you could put arbitrary file provides into, at one point rpm4 did as well -- but I don't know if it's still there.)
I checked - rpm 4 does not have that feature now, or I couldn't find it.
We may need to add this feature. It really is useful to deal with situations like this.
Quoted 9 lines
Quoted 3 lines
Doing this runs the risk of someone asking for '
/bin/sh' and getting a source package (a random one) as part of their build process using the DNF sources option and such. Definitely not what is expected.This only affects nativesdk- packages, which are well isolated from all other packages during installation time. I haven't seen any issues with it either in my local testing or in the autobuilder run. If it pops up somehow, we can do more to isolate the package sets.
Thank you. I understand now.
--Mark
Quoted 2 lines
Alex
Re: [PATCH 36/44] package_rpm.bbclass: do not set the OS dynamically when building rpms
In reply to Alexander KanavinQuoted 9 lines · Alexander Kanavin
Quoted 8 lines · Mark Hatle
Quoted 3 lines · Alexander Kanavin
Packages need to contain just one value for the os field, otherwise rpm will refuse to install them if they don't match what is in
/etc/rpm/platform.How will this work with nativesdk for things like targeting mingw (windows), darwin, or even alternative OS like Zephyr?
Quoted 8 lines
Quoted 2 lines
I'm thinking if 'linux-gnu' is invalid, then a simple conversion to 'linux' would be better then hard coding everything to 'linux'.
I don't believe that the OS name embedded into packages is actually used anywhere to make decisions about which package to install. It's just that some packages have one value for it, others have another, and rpm 4 does not allow that (rpm 5 does, and so several OS values gets written into /etc). So I bring them all to a common value.
In the past there was both a (Smart/YUM/DNF) and RPM check for OS to prevent packages for one OS to be installed onto another OS.
While out mingw SDK does not contain RPM (not IMHO should it ever), I'd hate to accidentally try to install one of the mingw packages onto a Linux system.
Darwin (OS X) as well.
This is likely something we need to look into and understand.
--Mark
Quoted 2 lines
Alex
Re: [PATCH 38/44] package_rpm.bbclass: do not strip multilib prefixes from package names, do not add multilib prefix to package arch
In reply to Mark HatleQuoted 6 lines · Mark Hatle
Quoted 2 lines · Alexander Kanavin
This is done for reasons I cannot establish, and greatly complicates the code that installs packages into rootfs.
RPM internally resolves ELF dependencies through a resolution system.
Quoted 7 lines
If you look at a typical Fedora, SuSe, etc system you will often see:
glibc-x.y.i386.rpm
glibc-x.y.x86-64.rpmWhen a package asks for 'glibc', the system will go out and match the one for the arch that is being requested.
I don't know the core reason for it, but it actually does not happen, and I saw it firsthand. When a package needs a library, the resolver will pick the library package with the architecture that has the higher priority in the list of architectures, not the architecture that would match the package correctly.
When using smart, there seems to be a similar issue:
# Pull in multilib requires since rpm may not pull in them # correctly, for example,
# lib32-packagegroup-core-standalone-sdk-target requires # lib32-libc6, but rpm may pull in libc6 rather than lib32-libc6 # since it doesn't know mlprefix (lib32-), bitbake knows it and # can handle it well, find out the RDEPENDS on the chain will # fix the problem. Both do_rootfs and do_populate_sdk have this # issue. # The attempt_only packages don't need this since they are # based on the installed ones. # # Separate pkgs into two lists, one is multilib, the other one # is non-multilib.
... which is then followed by the most hackish, impementrable code that recursively walks RDEPENDS and massages that into a list that is given to smart, effectively subverting smart's own dependency resolution. I do not want to carry this into rpm4/dnf (or even spend time understanding it), and so I dropped both the multilib prefix stripping, and the code that works around it.
By the way, I don't know about Fedora, but SuSE does use -32bit suffixes in package names.
Alex
Re: [PATCH 41/44] bash: package bashbug separately
In reply to Mark HatleQuoted 6 lines · Mark Hatle
Quoted 3 lines · Alexander Kanavin
It's a machine-specific script, which is causing conflicts when multiple versions of bash are installed in multilib setting, and it also does not really make sense for embedded systems anyway.
Out of curiosity what is machine specific here?
tmp/work/i586-poky-linux/bash/4.3.30-r0/packages-split/bash-bashbug/usr/bin/bashbug 2017-03-09 16:03:49.000000000 +0200 renamed from tmp/work/x86_64-pokymllib64-linux/lib64-bash/4.3.30-r0/packages-split/lib64-bash-bashbug/usr/bin/bashbug 2017-03-09 16:10:27.000000000 +0200 +4 -4
@@ -26,14 +26,14 @@ # configuration section: # these variables are filled in by the make target in Makefile # -MACHINE="x86_64" +MACHINE="i586" OS="linux-gnu" -CC="x86_64-pokymllib64-linux-gcc -m64 " -CFLAGS=" -DPROGRAM='bash' -DCONF_HOSTTYPE='x86_64' -DCONF_OSTYPE='linux-gnu' -DCONF_MACHTYPE='x86_64-pokymllib64-linux-gnu' -DCONF_VENDOR='pokymllib64' -DLOCALEDIR='/usr/share/locale' -DPACKAGE='bash' -DSHELL -DHAVE_CONFIG_H -I. -I../bash-4.3.30 -I../bash-4.3.30/include -I../bash-4.3.30/lib -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/home/ak/development/poky/build-multilib/tmp/work/x86_64-pokymllib64-linux/lib64-bash/4.3.30-r0=/usr/src/debug/lib64-bash/4.3.30-r0 -fdebug-prefix-map=/home/ak/development/poky/build-multilib/tmp/work/x86_64-pokymllib64-linux/lib64-bash/4.3.30-r0/recipe-sysroot-native= -fdebug-prefix-map=/home/ak/development/poky/build-multilib/tmp/work/x86_64-pokymllib64-linux/lib64-bash/4.3.30-r0/lib64-recipe-sysroot= -DNON_INTERACTIVE_LOGIN_SHELLS" +CC="i586-poky-linux-gcc -m32 -march=i586 " +CFLAGS=" -DPROGRAM='bash' -DCONF_HOSTTYPE='i586' -DCONF_OSTYPE='linux-gnu' -DCONF_MACHTYPE='i586-poky-linux-gnu' -DCONF_VENDOR='poky' -DLOCALEDIR='/usr/share/locale' -DPACKAGE='bash' -DSHELL -DHAVE_CONFIG_H -I. -I../bash-4.3.30 -I../bash-4.3.30/include -I../bash-4.3.30/lib -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/home/ak/development/poky/build-multilib/tmp/work/i586-poky-linux/bash/4.3.30-r0=/usr/src/debug/bash/4.3.30-r0 -fdebug-prefix-map=/home/ak/development/poky/build-multilib/tmp/work/i586-poky-linux/bash/4.3.30-r0/recipe-sysroot-native= -fdebug-prefix-map=/home/ak/development/poky/build-multilib/tmp/work/i586-poky-linux/bash/4.3.30-r0/recipe-sysroot= -DNON_INTERACTIVE_LOGIN_SHELLS" RELEASE="4.3" PATCHLEVEL="46" RELSTATUS="release" -MACHTYPE="x86_64-pokymllib64-linux-gnu" +MACHTYPE="i586-poky-linux-gnu"
PATH=/bin:/usr/bin:/usr/local/bin:$PATH
export PATH
Alex
Re: [PATCH 21/44] rootfs_rpm.bbclass: migrate image creation to dnf
In reply to Burton, RossQuoted 6 lines · Ross
+ raise NotImplementedError("Adding remote dnf feeds not yet
supported.")I think this is a 2.4M4 blocker if the series merges into M3.
Yes. There is no runtime/selftest test for this, and I didn't want to implement things that are not enabled by default and cannot be automatically tested. I don't want to take the risk of unnoticed regressions in code that was tested only once when it was initially written.
Creating an image from signed rpms is currently not supported for the same reason (but signing rpms in the first place *is* supported, because it actually is tested in oe-selftest, and I can use that to verify that it works and keeps working).
Alex
Re: [PATCH 21/44] rootfs_rpm.bbclass: migrate image creation to dnf
Quoted 15 lines · Alexander Kanavin
Quoted 6 lines · Ross
+ raise NotImplementedError("Adding remote dnf feeds not yet
supported.")I think this is a 2.4M4 blocker if the series merges into M3.
Yes. There is no runtime/selftest test for this, and I didn't want to implement things that are not enabled by default and cannot be automatically tested. I don't want to take the risk of unnoticed regressions in code that was tested only once when it was initially written.
Quoted 4 lines
Creating an image from signed rpms is currently not supported for the same reason (but signing rpms in the first place *is* supported, because it actually is tested in oe-selftest, and I can use that to verify that it works and keeps working).
Forgot to add - I'll try to fix both of these this week, with corresponding tests of course.
Alex
Re: [PATCH 21/44] rootfs_rpm.bbclass: migrate image creation to dnf
Quoted 3 lines · Alexander Kanavin
Forgot to add - I'll try to fix both of these this week, with corresponding tests of course.
Oh, and: Markus Lehtonen is looking into package feed signing, which is a separate thing from rpm signing. Also Fedora does not sign their feeds, and so the feature has apparently bitrotted somewhat and will be more difficult to get working.
Alex
Re: [PATCH 22/44] scripts/rpm2cpio.sh: replace 5.x version with 4.x version
In reply to Mark HatleQuoted 5 lines · Mark Hatle
Just an FYI, I was concerned that $(( )) (in the new script) was a bash-ism,
but I was able to run the script on an Ubuntu machine using 'dash' as/bin/sh.
http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_04
bash adds more operators such as ++, but basic maths is POSIX.
Ross
Quoted 3 lines · Alexander Kanavin
This patchset replaces the outdated, unsupported Smart package manager with DNF package manager (Fedora's successor to yum). This is not a trivial change and there are many consequences:
I've been pondering this for a while, whether it should go into 2.3 or not. For better or worse, I've ended up deciding to push it in.
I'm not 100% sure every piece of this is ready. In particular:
* the /bin/sh nativesdk hack - really need to find a better way of doing that
* the packagegroup change makes me nervous
* the rpm package naming also makes me nervous although I don't mind being different to the rest of the world if that works for us (unlike Mark who has more concern with that)
* I found relocation issues in my own testing
Despite this I merged it on the basis that I'd rather have this in pyro rather than waiting another 6 months to get this in and having to tell people we were changing soon and having to deal with any more smart issues.
This could mean more work in backporting to fix issues in the stable release and point releases but so be it.
Lets hope I've made the right call! :)
Cheers,
Richard
On Tue, Mar 14, 2017 at 12:14 PM, Richard Purdie
<[email protected]> wrote:
...
Quoted 4 lines
Despite this I merged it on the basis that I'd rather have this in pyro rather than waiting another 6 months to get this in and having to tell people we were changing soon and having to deal with any more smart issues.
...
This kind of change should have been merged in November, not less of two months of release. One more time heavy changes been commited late on release.
Signature · 3 lines
Otavio Salvador O.S. Systems http://www.ossystems.com.br http://code.ossystems.com.br Mobile: +55 (53) 9981-7854 Mobile: +1 (347) 903-9750
Quoted 10 lines · Otavio Salvador
On Tue, Mar 14, 2017 at 12:14 PM, Richard Purdie
<[email protected]> wrote:
...Quoted 7 lines
Despite this I merged it on the basis that I'd rather have this in pyro
rather than waiting another 6 months to get this in and having to tell
people we were changing soon and having to deal with any more smart issues.
Quoted 5 lines
...
This kind of change should have been merged in November, not less of two months of release. One more time heavy changes been commited late on release.
In this case the patches have been talked about and in review on the mailing list for months so I really don't think anyone can be surprised. It was also a stated release objective to do something about smart.
Also, nobody replied to the status reports where I discussed merging or not merging either so I could only assume nobody had opinions.
Cheers,
Richard
Quoted 17 lines · Richard Purdie
Quoted 10 lines · Otavio Salvador
On Tue, Mar 14, 2017 at 12:14 PM, Richard Purdie
<[email protected]> wrote:
...Quoted 7 lines
Despite this I merged it on the basis that I'd rather have this in pyro
rather than waiting another 6 months to get this in and having to tell
people we were changing soon and having to deal with any more smart issues.Quoted 5 lines
...
This kind of change should have been merged in November, not less of two months of release. One more time heavy changes been commited late on release.
Quoted 7 lines
In this case the patches have been talked about and in review on the mailing list for months so I really don't think anyone can be surprised. It was also a stated release objective to do something about smart.
Also, nobody replied to the status reports where I discussed merging or not merging either so I could only assume nobody had opinions.
I remember Mark sending a reply with some considerations and to be honest, I did not anticipate it was being considered such late on release.
Signature · 3 lines
Otavio Salvador O.S. Systems http://www.ossystems.com.br http://code.ossystems.com.br Mobile: +55 (53) 9981-7854 Mobile: +1 (347) 903-9750
Quoted 33 lines · Otavio Salvador
Quoted 31 lines · Richard Purdie
Quoted 15 lines · Otavio Salvador
On Tue, Mar 14, 2017 at 12:14 PM, Richard Purdie
<[email protected]> wrote:
...Quoted 11 lines
Despite this I merged it on the basis that I'd rather have this in
pyro
rather than waiting another 6 months to get this in and having to
tell
people we were changing soon and having to deal with any more smart
issues.Quoted 7 lines
...
This kind of change should have been merged in November, not less of
two months of release. One more time heavy changes been commited late
on release.In this case the patches have been talked about and in review on the
mailing list for months so I really don't think anyone can be surprised. It was also a stated release objective to do something about
smart.
Quoted 6 lines
Quoted 3 lines
Also, nobody replied to the status reports where I discussed merging or
not merging either so I could only assume nobody had opinions.I remember Mark sending a reply with some considerations and to be honest, I did not anticipate it was being considered such late on release.
FWIW I do agree it is late in the cycle, almost too late and if things hadn't been delayed for other reasons it wouldn't have made it.
That said, I do believe we'd potentially hurt OE more by waiting given the stage the patchset had got to rather than merging it now and dealing with whatever we need to deal with.
Its a judgement call, I have to make them on a regular basis. Some you never need to notice, some like this one are controversial and can be argued both ways. I can think of at least one in the past that went badly wrong.
So I appreciate the concern and I do have some of my own but I have now made the decision and we'll now get to see how that works out. It wasn't an easy one...
Cheers,
Richard
On Tue, 14 Mar 2017, Richard Purdie wrote:
... snip ...
Quoted 1 line
Lets hope I've made the right call! :)
is there, somewhere, a short writeup/summary on this? i can see
emails to this list back in october of last year, just wondering if there is a wrap-up to this that one can read to pull all the threads together to understand the consequences.
rday
Signature · 7 lines
========================================================================
Robert P. J. Day Ottawa, Ontario, CANADA
http://crashcourse.ca
Twitter: http://twitter.com/rpjday
LinkedIn: http://ca.linkedin.com/in/rpjday
========================================================================Quoted 4 lines · Robert P. J. Day
is there, somewhere, a short writeup/summary on this? i can see
emails to this list back in october of last year, just wondering if there is a wrap-up to this that one can read to pull all the threads together to understand the consequences.
Yes there is. It's in the cover letter of the patchset (look at the latest version, so the information is most up to date). There's also a link there to the more detailed writeup I posted to openembedded-architecture.
Alex