All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/6 v4] Uprev RPM to 5.4.9
@ 2012-06-04 17:52 Mark Hatle
  2012-06-04 17:52 ` [PATCH 6/6] rootfs_rpm.bbclass: Update database configuration and initial install Mark Hatle
  0 siblings, 1 reply; 2+ messages in thread
From: Mark Hatle @ 2012-06-04 17:52 UTC (permalink / raw)
  To: openembedded-core

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%)

-- 
1.7.3.4




^ permalink raw reply	[flat|nested] 2+ messages in thread

* [PATCH 6/6] rootfs_rpm.bbclass: Update database configuration and initial install
  2012-06-04 17:52 [PATCH 0/6 v4] Uprev RPM to 5.4.9 Mark Hatle
@ 2012-06-04 17:52 ` Mark Hatle
  0 siblings, 0 replies; 2+ messages in thread
From: Mark Hatle @ 2012-06-04 17:52 UTC (permalink / raw)
  To: openembedded-core

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.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
---
 meta/classes/package_rpm.bbclass |   71 +++++++++++++++++++++++++++++---------
 meta/classes/rootfs_rpm.bbclass  |   31 ----------------
 2 files changed, 54 insertions(+), 48 deletions(-)

diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass
index 097fa12..9f13a07 100644
--- a/meta/classes/package_rpm.bbclass
+++ b/meta/classes/package_rpm.bbclass
@@ -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)"
diff --git a/meta/classes/rootfs_rpm.bbclass b/meta/classes/rootfs_rpm.bbclass
index 703fa15..d227e61 100644
--- a/meta/classes/rootfs_rpm.bbclass
+++ b/meta/classes/rootfs_rpm.bbclass
@@ -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
-- 
1.7.3.4




^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2012-06-04 17:57 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-06-04 17:52 [PATCH 0/6 v4] Uprev RPM to 5.4.9 Mark Hatle
2012-06-04 17:52 ` [PATCH 6/6] rootfs_rpm.bbclass: Update database configuration and initial install Mark Hatle

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.