summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/rpm
diff options
context:
space:
mode:
authorMark Hatle <mark.hatle@windriver.com>2011-02-15 22:43:42 -0600
committerSaul Wold <sgw@linux.intel.com>2011-02-16 07:34:51 -0800
commit4ac789b9588ff8d2abaf4c3893c10bc6369baeee (patch)
tree6ff2b7fac0576307d7a83d148ef3abbaa8f0852a /meta/recipes-devtools/rpm
parentca649ef8253cbf69062322b5bdee4123ee4c4eca (diff)
downloadpoky-4ac789b9588ff8d2abaf4c3893c10bc6369baeee.tar.gz
rpm: Avoid fsync when writing files
By default RPM strives for the safest possible file creation and enforces fsync on each file. This changes that default by backporting the fsync disabled from the latest CVS snapshot. This will cut a few minutes off the rootfs generation using RPM. Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Diffstat (limited to 'meta/recipes-devtools/rpm')
-rw-r--r--meta/recipes-devtools/rpm/rpm/rpm-nofsync.patch34
-rw-r--r--meta/recipes-devtools/rpm/rpm_5.4.0.bb1
2 files changed, 35 insertions, 0 deletions
diff --git a/meta/recipes-devtools/rpm/rpm/rpm-nofsync.patch b/meta/recipes-devtools/rpm/rpm/rpm-nofsync.patch
new file mode 100644
index 0000000000..33039ad990
--- /dev/null
+++ b/meta/recipes-devtools/rpm/rpm/rpm-nofsync.patch
@@ -0,0 +1,34 @@
1Backport from RPM 5.4.1 CVS, disabled fsync.
2
3Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
4
5diff -ur rpm-5.4.0.orig/CHANGES rpm-5.4.0/CHANGES
6--- rpm-5.4.0.orig/CHANGES 2010-12-29 07:51:38.000000000 -0600
7+++ rpm-5.4.0/CHANGES 2011-02-15 20:54:27.021926840 -0600
8@@ -1,4 +1,5 @@
9 5.4.0 -> 5.4.1:
10+ - jbj: remove fsync(2) after file install, its intolerably slow.
11
12 5.3.7 -> 5.4.0:
13 - jbj: remove markReplacedFiles.
14diff -ur rpm-5.4.0.orig/lib/fsm.c rpm-5.4.0/lib/fsm.c
15--- rpm-5.4.0.orig/lib/fsm.c 2009-12-10 12:52:18.000000000 -0600
16+++ rpm-5.4.0/lib/fsm.c 2011-02-15 20:55:04.372938221 -0600
17@@ -1017,7 +1017,17 @@
18 (void) fsmNext(fsm, IOSM_NOTIFY);
19 }
20
21+#ifdef DYING
22+/* Measurements from installing kernel-source package:
23+ * +fsync
24+ * total: 1 0.000000 MB 640.854524 secs
25+ * +fdatasync
26+ * total: 1 0.000000 MB 419.983200 secs
27+ * w/o fsync/fdsatasync:
28+ * total: 1 0.000000 MB 12.492918 secs
29+ */
30 xx = fsync(Fileno(fsm->wfd));
31+#endif
32
33 if (st->st_size > 0 && (fsm->fdigest || fsm->digest)) {
34 void * digest = NULL;
diff --git a/meta/recipes-devtools/rpm/rpm_5.4.0.bb b/meta/recipes-devtools/rpm/rpm_5.4.0.bb
index 93951d2c61..45dd4e1ee2 100644
--- a/meta/recipes-devtools/rpm/rpm_5.4.0.bb
+++ b/meta/recipes-devtools/rpm/rpm_5.4.0.bb
@@ -54,6 +54,7 @@ SRC_URI = "http://www.rpm5.org/files/rpm/rpm-5.4/rpm-5.4.0-0.20101229.src.rpm;ex
54 file://header-include-fix.patch \ 54 file://header-include-fix.patch \
55 file://rpm-platform.patch \ 55 file://rpm-platform.patch \
56 file://rpm-showrc.patch \ 56 file://rpm-showrc.patch \
57 file://rpm-nofsync.patch \
57 " 58 "
58 59
59# file://hdraddorappend.patch \ 60# file://hdraddorappend.patch \