Uprev RPM to 5.4.9
v4 cover Uprev RPM to 5.4.9
Only 6/6 is new in this version. RPM 5.4.9 appears to be more demanding for both the DB_CONFIG file and empty manifest files. The new patch resolves this issue by ensuring that the DB_CONFIG is always generated, and empty manifest files do not get installed.
Patches 1-5 are identical to the v3 versions.
v3 messages follows:
Rebase of the v2 changes.
Re-disabled the "test" chunk.. this should resolve the hang problem a few people have observed.
v2 message follows:
Berkley DB also gets upreved, and a new package ossp-uuid gets added to the system.
This was -heavily- tested with and without zypper on IA, and PPC.
In addition a minor performance enhancement with a query operation was added.
The uprev also adds the capability of using PACKAGECONFIG settings to tailor the behavior of RPM.
V2 changes:
Fix a problem with libuuid.so from util-linux would sometimes be linked into the binary.
Also force libzypp, sat-solver and zypper to refresh via a PR bump.
*** BLURB HERE ***
The following changes since commit e3113827810e98eb1b012f0b280fb917199704c1:
webkit-gtk: Use glib as unicode backend to avoid browser crash (2012-05-30 17:37:58 +0100)
are available in the git repository at:
git://git.pokylinux.org/poky-contrib mhatle/rpm
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=mhatle/rpm
Mark Hatle (6):
rpm: Upgrade RPM to 5.4.8 (db to 5.3.15)
rpm: Upgrade RPM to 5.4.9
ossp-uuid: Add oss-uuid package and RPM 5.4.9 integration
package_rpm: Add capability to directly query packageorigin
rpm: Bump PR numbers on componets that require RPM rootfs_rpm.bbclass: Update database configuration and initial install
meta/classes/package_rpm.bbclass | 85 +++-
meta/classes/rootfs_rpm.bbclass | 29 --
.../ossp-uuid/0001-Change-library-name.patch | 112 +++++
...erve-m-option-status-in-v-option-handling.patch | 55 +++
.../ossp-uuid/0003-Fix-whatis-entries.patch | 51 +++
.../ossp-uuid/0004-fix-data-uuid-from-string.patch | 36 ++
.../ossp-uuid/ossp-uuid/uuid-libtool.patch | 24 +
.../ossp-uuid/ossp-uuid/uuid-nostrip.patch | 16 +
meta/recipes-devtools/ossp-uuid/ossp-uuid_1.6.2.bb | 58 +++
.../rpm/rpm/fix_for_automake_1.11.2.patch | 54 ---
.../rpm/rpm/fprint-pointer-fix.patch | 35 --
.../rpm/rpm/remove-compiled-tests.patch | 443 --------------------
meta/recipes-devtools/rpm/rpm/rpm-autoconf.patch | 22 -
meta/recipes-devtools/rpm/rpm/rpm-autogen.patch | 41 +--
meta/recipes-devtools/rpm/rpm/rpm-db-reduce.patch | 16 +-
.../recipes-devtools/rpm/rpm/rpm-log-auto-rm.patch | 12 +-
meta/recipes-devtools/rpm/rpm/rpm-lua.patch | 29 ++
.../rpm/rpm/rpm-no-perl-urpm.patch | 43 ++
meta/recipes-devtools/rpm/rpm/rpm-nofsync.patch | 36 --
meta/recipes-devtools/rpm/rpm/rpm-ossp-uuid.patch | 20 +
.../rpm/rpm/rpm-packageorigin.patch | 23 +
.../rpm/rpm/rpm-scriptletexechelper.patch | 33 +-
meta/recipes-devtools/rpm/rpm/rpmdeps-oecore.patch | 26 +-
.../rpm/{rpm_5.4.0.bb => rpm_5.4.9.bb} | 158 ++++----
.../libzypp/libzypp/libzypp-rpm549.patch | 28 ++
meta/recipes-extended/libzypp/libzypp_git.bb | 3 +-
meta/recipes-extended/sat-solver/sat-solver_git.bb | 2 +-
meta/recipes-extended/zypper/zypper_git.bb | 2 +-
.../db/{db_5.1.19.bb => db_5.3.15.bb} | 8 +-
29 files changed, 692 insertions(+), 808 deletions(-)
create mode 100644 meta/recipes-devtools/ossp-uuid/ossp-uuid/0001-Change-library-name.patch
create mode 100644 meta/recipes-devtools/ossp-uuid/ossp-uuid/0002-uuid-preserve-m-option-status-in-v-option-handling.patch
create mode 100644 meta/recipes-devtools/ossp-uuid/ossp-uuid/0003-Fix-whatis-entries.patch
create mode 100644 meta/recipes-devtools/ossp-uuid/ossp-uuid/0004-fix-data-uuid-from-string.patch
create mode 100644 meta/recipes-devtools/ossp-uuid/ossp-uuid/uuid-libtool.patch
create mode 100644 meta/recipes-devtools/ossp-uuid/ossp-uuid/uuid-nostrip.patch
create mode 100644 meta/recipes-devtools/ossp-uuid/ossp-uuid_1.6.2.bb
delete mode 100644 meta/recipes-devtools/rpm/rpm/fix_for_automake_1.11.2.patch
delete mode 100644 meta/recipes-devtools/rpm/rpm/fprint-pointer-fix.patch
delete mode 100644 meta/recipes-devtools/rpm/rpm/remove-compiled-tests.patch
delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-autoconf.patch
create mode 100644 meta/recipes-devtools/rpm/rpm/rpm-lua.patch
create mode 100644 meta/recipes-devtools/rpm/rpm/rpm-no-perl-urpm.patch
delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-nofsync.patch
create mode 100644 meta/recipes-devtools/rpm/rpm/rpm-ossp-uuid.patch
create mode 100644 meta/recipes-devtools/rpm/rpm/rpm-packageorigin.patch
rename meta/recipes-devtools/rpm/{rpm_5.4.0.bb => rpm_5.4.9.bb} (76%)
create mode 100644 meta/recipes-extended/libzypp/libzypp/libzypp-rpm549.patch
rename meta/recipes-support/db/{db_5.1.19.bb => db_5.3.15.bb} (93%)Signature · 1 line
1.7.3.4
PATCH v4 6/6 rootfs_rpm.bbclass: Update database configuration and initial install
Move the creation of the database configuration files to just before we perform the install actions. This ensures they will exist even in SDK or other non-target filesystem images.
Also check the initial install actually has something to install, otherwise this can lead to a failure case.
--- meta/classes/package_rpm.bbclass | 71 +++++++++++++++++++++++++++++--------- meta/classes/rootfs_rpm.bbclass | 31 ---------------- 2 files changed, 54 insertions(+), 48 deletions(-)
meta/classes/package_rpm.bbclass +54 -17
@@ -182,6 +182,7 @@ rpm_update_pkg () { # been run by now, so don't have to run them(preun, postun, etc.) when # erase the pkg if [ -s ${target_rootfs}/install/remove.manifest ]; then + echo "# Removal manifest padding...." >> ${target_rootfs}/install/remove.manifest rpm_common_comand --noscripts --nodeps \ -e `cat ${target_rootfs}/install/remove.manifest` fi
@@ -454,6 +455,38 @@ EOF chmod 0755 ${WORKDIR}/scriptlet_wrapper + # Configure RPM... we enforce these settings! + mkdir -p ${target_rootfs}${rpmlibdir} + mkdir -p ${target_rootfs}${rpmlibdir}/log + # After change the __db.* cache size, log file will not be generated automatically, + # that will raise some warnings, so touch a bare log for rpm write into it. + touch ${target_rootfs}${rpmlibdir}/log/log.0000000001 + cat > ${target_rootfs}${rpmlibdir}/DB_CONFIG << EOF +# ================ Environment +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 + +# ================ Logging + +# ================ Memory Pool +set_cachesize 0 1048576 0 +set_mp_mmapsize 268435456 + +# ================ Locking +set_lk_max_locks 16384 +set_lk_max_lockers 16384 +set_lk_max_objects 16384 +mutex_set_max 163840 + +# ================ Replication +EOF + # RPM is special. It can't handle dependencies and preinstall scripts correctly. Its # probably a feature. The only way to convince rpm to actually run the preinstall scripts # for base-passwd and shadow first before installing packages that depend on these packages
@@ -461,33 +494,37 @@ EOF if [ "${INC_RPM_IMAGE_GEN}" = "1" -a -f "$pre_btmanifest" ]; then echo "Skipping pre install due to exisitng image" else - echo "# Initial Install manifest" > ${target_rootfs}/install/initial_install.manifest + rm -f ${target_rootfs}/install/initial_install.manifest echo "Installing base dependencies first (base-passwd, base-files and shadow) since rpm is special" grep /base-passwd-[0-9] ${target_rootfs}/install/total_solution.manifest >> ${target_rootfs}/install/initial_install.manifest || true grep /base-files-[0-9] ${target_rootfs}/install/total_solution.manifest >> ${target_rootfs}/install/initial_install.manifest || true grep /shadow-[0-9] ${target_rootfs}/install/total_solution.manifest >> ${target_rootfs}/install/initial_install.manifest || true - # Generate an install solution by doing a --justdb install, then recreate it with - # an actual package install! - mkdir -p ${target_rootfs}/initial + if [ -s ${target_rootfs}/install/initial_install.manifest ]; then + echo "# Initial Install manifest padding..." >> ${target_rootfs}/install/initial_install.manifest - ${RPM} --predefine "_rpmds_sysinfo_path ${target_rootfs}/etc/rpm/sysinfo" \ - --predefine "_rpmrc_platform_path ${target_rootfs}/etc/rpm/platform" \ - -D "_dbpath ${target_rootfs}/initial" -D "`cat ${confbase}.macro`" \ - -D "__dbi_txn create nofsync" \ - -U --justdb --noscripts --notriggers --noparentdirs --nolinktos --ignoresize \ - ${target_rootfs}/install/initial_install.manifest + # Generate an install solution by doing a --justdb install, then recreate it with + # an actual package install! + mkdir -p ${target_rootfs}/initial - ${RPM} -D "_dbpath ${target_rootfs}/initial" -qa --qf "%{packageorigin}\n" \ - -D "__dbi_txn create nofsync private" \ - > ${target_rootfs}/install/initial_solution.manifest + ${RPM} --predefine "_rpmds_sysinfo_path ${target_rootfs}/etc/rpm/sysinfo" \ + --predefine "_rpmrc_platform_path ${target_rootfs}/etc/rpm/platform" \ + -D "_dbpath ${target_rootfs}/initial" -D "`cat ${confbase}.macro`" \ + -D "__dbi_txn create nofsync" \ + -U --justdb --noscripts --notriggers --noparentdirs --nolinktos --ignoresize \ + ${target_rootfs}/install/initial_install.manifest - rpm_update_pkg ${target_rootfs}/install/initial_solution.manifest + ${RPM} -D "_dbpath ${target_rootfs}/initial" -qa --qf "%{packageorigin}\n" \ + -D "__dbi_txn create nofsync private" \ + > ${target_rootfs}/install/initial_solution.manifest + + rpm_update_pkg ${target_rootfs}/install/initial_solution.manifest - grep -Fv -f ${target_rootfs}/install/initial_solution.manifest ${target_rootfs}/install/total_solution.manifest > ${target_rootfs}/install/total_solution.manifest.new - mv ${target_rootfs}/install/total_solution.manifest.new ${target_rootfs}/install/total_solution.manifest + grep -Fv -f ${target_rootfs}/install/initial_solution.manifest ${target_rootfs}/install/total_solution.manifest > ${target_rootfs}/install/total_solution.manifest.new + mv ${target_rootfs}/install/total_solution.manifest.new ${target_rootfs}/install/total_solution.manifest - rm -rf ${target_rootfs}/initial + rm -rf ${target_rootfs}/initial + fi fi echo "Installing main solution manifest (${target_rootfs}/install/total_solution.manifest)"
meta/classes/rootfs_rpm.bbclass +0 -31
@@ -59,37 +59,6 @@ fakeroot rootfs_rpm_do_rootfs () { # Setup base system configuration mkdir -p ${INSTALL_ROOTFS_RPM}/etc/rpm/ - mkdir -p ${INSTALL_ROOTFS_RPM}${rpmlibdir} - mkdir -p ${INSTALL_ROOTFS_RPM}${rpmlibdir}/log - # After change the __db.* cache size, log file will not be generated automatically, - # that will raise some warnings, so touch a bare log for rpm write into it. - touch ${INSTALL_ROOTFS_RPM}${rpmlibdir}/log/log.0000000001 - cat > ${INSTALL_ROOTFS_RPM}${rpmlibdir}/DB_CONFIG << EOF -# ================ Environment -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 - -# ================ Logging - -# ================ Memory Pool -set_cachesize 0 1048576 0 -set_mp_mmapsize 268435456 - -# ================ Locking -set_lk_max_locks 16384 -set_lk_max_lockers 16384 -set_lk_max_objects 16384 -mutex_set_max 163840 - -# ================ Replication -EOF - # List must be prefered to least preferred order INSTALL_PLATFORM_EXTRA_RPM="" for each_arch in ${MULTILIB_PACKAGE_ARCHS} ${PACKAGE_ARCHS}; do
Signature · 1 line
1.7.3.4