Tue, 29 Mar 2011 19:46:35 +0200
Correct and introduce slightly needed logic, leading to better reliability:
Update bash(1) patch logic, correct several buildconf make location
errors, correct failed bash(1) configure invocation, enable perl(1) to
build with unpathed make(1), patch rpm(1) to correctly link with
internal libdb(3), and lastly unsuscessfully try to reorganize rpm patch
hunks.
michael@13 | 1 | ## |
michael@13 | 2 | ## rpm.patch.bugfix -- Annotated OpenPKG RPM Patch file |
michael@13 | 3 | ## Copyright (c) 2000-2007 OpenPKG Foundation e.V. <http://openpkg.net/> |
michael@13 | 4 | ## Copyright (c) 2000-2007 Ralf S. Engelschall <http://engelschall.com/> |
michael@13 | 5 | ## |
michael@13 | 6 | ## This file assembles changes to existing RPM source files between |
michael@13 | 7 | ## the original RedHat RPM and the OpenPKG RPM variant. It can be |
michael@13 | 8 | ## automatically applied to a vanilla RedHat RPM source tree with the |
michael@13 | 9 | ## 'patch' tool to upgrade those files. Each patch snippet is annotated |
michael@13 | 10 | ## with a short description. |
michael@13 | 11 | ## |
michael@13 | 12 | ## Created on: 13-Sep-2006 |
michael@13 | 13 | ## |
michael@13 | 14 | ## ATTENTION: THIS PATCH FILE WAS AUTO-GENERATED FROM AN OPENPKG |
michael@13 | 15 | ## RPM CVS REPOSITORY, HENCE DO NOT EDIT THIS FILE. |
michael@13 | 16 | ## |
michael@13 | 17 | |
michael@13 | 18 | +--------------------------------------------------------------------------- |
michael@13 | 19 | | %setup and %patch macros are treated very special internally, but |
michael@13 | 20 | | make sure they at least optically can be used like any other macro |
michael@13 | 21 | | and especially can have leading whitespaces. |
michael@13 | 22 | +--------------------------------------------------------------------------- |
michael@13 | 23 | Index: build/parsePrep.c |
michael@13 | 24 | --- build/parsePrep.c 7 Aug 2002 14:20:45 -0000 1.1.1.10 |
michael@13 | 25 | +++ build/parsePrep.c 6 Jun 2005 15:53:04 -0000 1.4 |
michael@333 | 26 | @@ -584,12 +584,15 @@ |
michael@13 | 27 | saveLines = splitString(getStringBuf(sb), strlen(getStringBuf(sb)), '\n'); |
michael@13 | 28 | /*@-usereleased@*/ |
michael@13 | 29 | for (lines = saveLines; *lines; lines++) { |
michael@13 | 30 | + char *cp; |
michael@13 | 31 | + for (cp = *lines; *cp == ' ' || *cp == '\t'; cp++) |
michael@13 | 32 | + ; |
michael@13 | 33 | res = 0; |
michael@13 | 34 | /*@-boundsread@*/ |
michael@13 | 35 | - if (! strncmp(*lines, "%setup", sizeof("%setup")-1)) { |
michael@13 | 36 | - res = doSetupMacro(spec, *lines); |
michael@13 | 37 | - } else if (! strncmp(*lines, "%patch", sizeof("%patch")-1)) { |
michael@13 | 38 | - res = doPatchMacro(spec, *lines); |
michael@13 | 39 | + if (! strncmp(cp, "%setup", sizeof("%setup")-1)) { |
michael@13 | 40 | + res = doSetupMacro(spec, cp); |
michael@13 | 41 | + } else if (! strncmp(cp, "%patch", sizeof("%patch")-1)) { |
michael@13 | 42 | + res = doPatchMacro(spec, cp); |
michael@13 | 43 | } else { |
michael@13 | 44 | appendLineStringBuf(spec->prep, *lines); |
michael@13 | 45 | } |
michael@13 | 46 | |
michael@13 | 47 | +--------------------------------------------------------------------------- |
michael@13 | 48 | | Do not pick of the vendor BeeCrypt package on RedHat Linux. |
michael@13 | 49 | +--------------------------------------------------------------------------- |
michael@13 | 50 | Index: configure.ac |
michael@13 | 51 | --- configure.ac 2 Jul 2003 19:20:52 -0000 1.1.1.4 |
michael@13 | 52 | +++ configure.ac 13 Sep 2006 13:38:23 -0000 |
michael@333 | 53 | @@ -416,7 +416,7 @@ |
michael@13 | 54 | AC_CHECK_HEADER([beecrypt/beecrypt.h], [ |
michael@13 | 55 | AC_CHECK_LIB(beecrypt, mpfprintln, [ |
michael@13 | 56 | AC_DEFINE(HAVE_LIBBEECRYPT, 1, [Define to 1 if you have the `beecrypt' library (-lbeecrypt).]) |
michael@13 | 57 | - WITH_BEECRYPT_INCLUDE="-I/usr/include/beecrypt" |
michael@13 | 58 | + WITH_BEECRYPT_INCLUDE="" |
michael@13 | 59 | WITH_BEECRYPT_LIB="-lbeecrypt" |
michael@13 | 60 | ]) |
michael@13 | 61 | ], [ |
michael@13 | 62 | |
michael@13 | 63 | +--------------------------------------------------------------------------- |
michael@13 | 64 | | Remove access to not-existing beecrypt/ subdirectory |
michael@13 | 65 | | to avoid the configure script to break building. |
michael@13 | 66 | +--------------------------------------------------------------------------- |
michael@13 | 67 | Index: configure.ac |
michael@13 | 68 | --- configure.ac 2 Jul 2003 19:20:52 -0000 1.1.1.4 |
michael@13 | 69 | +++ configure.ac 13 Sep 2006 13:38:26 -0000 |
michael@333 | 70 | @@ -1274,7 +1274,6 @@ |
michael@13 | 71 | python/rpmdb/Makefile |
michael@13 | 72 | python/test/Makefile |
michael@13 | 73 | ], [ echo timestamp > popt/stamp-h.in |
michael@13 | 74 | - echo timestamp > beecrypt/stamp-h.in |
michael@13 | 75 | echo timestamp > stamp-h.in |
michael@13 | 76 | ] |
michael@13 | 77 | ) |
michael@13 | 78 | |
michael@13 | 79 | +--------------------------------------------------------------------------- |
michael@13 | 80 | | Fix filedescriptor leakage. |
michael@13 | 81 | +--------------------------------------------------------------------------- |
michael@13 | 82 | Index: lib/psm.c |
michael@13 | 83 | --- lib/psm.c 5 Jun 2003 12:43:18 -0000 1.1.1.6 |
michael@13 | 84 | +++ lib/psm.c 13 Sep 2006 13:38:27 -0000 |
michael@333 | 85 | @@ -940,6 +940,8 @@ |
michael@13 | 86 | if (sfdno > STDERR_FILENO) { |
michael@13 | 87 | xx = Fclose (scriptFd); |
michael@13 | 88 | } |
michael@13 | 89 | + } else { |
michael@13 | 90 | + xx = Fclose(out); |
michael@13 | 91 | } |
michael@13 | 92 | |
michael@13 | 93 | { const char *ipath = rpmExpand("PATH=%{_install_script_path}", NULL); |
michael@13 | 94 | |
michael@13 | 95 | +--------------------------------------------------------------------------- |
michael@13 | 96 | | Fix trigger argument passing. For more details see RPM BugDB under: |
michael@13 | 97 | | http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100509 |
michael@13 | 98 | +--------------------------------------------------------------------------- |
michael@13 | 99 | Index: lib/psm.c |
michael@13 | 100 | --- lib/psm.c 5 Jun 2003 12:43:18 -0000 1.1.1.6 |
michael@13 | 101 | +++ lib/psm.c 13 Sep 2006 13:38:29 -0000 |
michael@333 | 102 | @@ -1106,11 +1108,13 @@ |
michael@13 | 103 | const char ** triggerProgs; |
michael@13 | 104 | int_32 * triggerIndices; |
michael@13 | 105 | const char * sourceName; |
michael@13 | 106 | + const char * triggerName; |
michael@13 | 107 | rpmRC rc = RPMRC_OK; |
michael@13 | 108 | int xx; |
michael@13 | 109 | int i; |
michael@13 | 110 | |
michael@13 | 111 | xx = headerNVR(sourceH, &sourceName, NULL, NULL); |
michael@13 | 112 | + xx = headerNVR(triggeredH, &triggerName, NULL, NULL); |
michael@13 | 113 | |
michael@13 | 114 | trigger = rpmdsInit(rpmdsNew(triggeredH, RPMTAG_TRIGGERNAME, scareMem)); |
michael@13 | 115 | if (trigger == NULL) |
michael@333 | 116 | @@ -1149,7 +1153,7 @@ |
michael@13 | 117 | { int arg1; |
michael@13 | 118 | int index; |
michael@13 | 119 | |
michael@13 | 120 | - arg1 = rpmdbCountPackages(rpmtsGetRdb(ts), Name); |
michael@13 | 121 | + arg1 = rpmdbCountPackages(rpmtsGetRdb(ts), triggerName); |
michael@13 | 122 | if (arg1 < 0) { |
michael@13 | 123 | /* XXX W2DO? fails as "execution of script failed" */ |
michael@13 | 124 | rc = RPMRC_FAIL; |
michael@13 | 125 | |
michael@13 | 126 | +--------------------------------------------------------------------------- |
michael@13 | 127 | | Make sure RPM does not try to set file owner/group on files during |
michael@13 | 128 | | installation of _source_ RPMs. Instead, let it use the current |
michael@13 | 129 | | run-time owner/group, because most of the time the owner/group in |
michael@13 | 130 | | the source RPM (which is the owner/group of the files as staying on |
michael@13 | 131 | | the package author system) is not existing on the target system, of |
michael@13 | 132 | | course. |
michael@13 | 133 | +--------------------------------------------------------------------------- |
michael@13 | 134 | Index: lib/psm.c |
michael@13 | 135 | --- lib/psm.c 5 Jun 2003 12:43:18 -0000 1.1.1.6 |
michael@13 | 136 | +++ lib/psm.c 13 Sep 2006 13:38:32 -0000 |
michael@333 | 137 | @@ -1710,6 +1714,7 @@ |
michael@13 | 138 | |
michael@13 | 139 | uid = fi->uid; |
michael@13 | 140 | gid = fi->gid; |
michael@13 | 141 | + if (!headerIsEntry(fi->h, RPMTAG_SOURCEPACKAGE)) { |
michael@13 | 142 | if (fi->fuser && unameToUid(fi->fuser[i], &uid)) { |
michael@13 | 143 | rpmMessage(RPMMESS_WARNING, |
michael@13 | 144 | _("user %s does not exist - using root\n"), |
michael@333 | 145 | @@ -1727,6 +1732,7 @@ |
michael@13 | 146 | /* XXX this diddles header memory. */ |
michael@13 | 147 | fi->fmodes[i] &= ~S_ISGID; /* turn off the sgid bit */ |
michael@13 | 148 | } |
michael@13 | 149 | + } |
michael@13 | 150 | if (fi->fuids) fi->fuids[i] = uid; |
michael@13 | 151 | if (fi->fgids) fi->fgids[i] = gid; |
michael@13 | 152 | } |
michael@13 | 153 | |
michael@13 | 154 | +--------------------------------------------------------------------------- |
michael@13 | 155 | | Fix --justdb operation by consistently use the same rootDir checks |
michael@13 | 156 | | RPM uses everywhere else, too. |
michael@13 | 157 | +--------------------------------------------------------------------------- |
michael@13 | 158 | Index: lib/psm.c |
michael@13 | 159 | --- lib/psm.c 5 Jun 2003 12:43:18 -0000 1.1.1.6 |
michael@13 | 160 | +++ lib/psm.c 13 Sep 2006 13:38:33 -0000 |
michael@333 | 161 | @@ -2027,7 +2033,8 @@ |
michael@13 | 162 | case PSM_CHROOT_IN: |
michael@13 | 163 | { const char * rootDir = rpmtsRootDir(ts); |
michael@13 | 164 | /* Change root directory if requested and not already done. */ |
michael@13 | 165 | - if (rootDir != NULL && !rpmtsChrootDone(ts) && !psm->chrootDone) { |
michael@13 | 166 | + if (rootDir != NULL && !(rootDir[0] == '/' && rootDir[1] == '\0') |
michael@13 | 167 | + && !rpmtsChrootDone(ts) && !psm->chrootDone) { |
michael@13 | 168 | static int _loaded = 0; |
michael@13 | 169 | |
michael@13 | 170 | /* |
michael@13 | 171 | |
michael@13 | 172 | +--------------------------------------------------------------------------- |
michael@13 | 173 | | First, remove incorrectly introduced buffer assignment. Second, fix |
michael@13 | 174 | | second and subsequent "%{foo -x}" constructs for non-Linux systems |
michael@13 | 175 | | (without resetting the option index only the first construct would |
michael@13 | 176 | | work). Third, bugfix the handling of macros inside macro arguments |
michael@13 | 177 | | as in "%{foo bar%{quux}baz}": RPM correctly determined the pointer |
michael@13 | 178 | | to the terminating second closing brace, but instead of passing |
michael@13 | 179 | | this pointer to the subroutine which handles the macro argument |
michael@13 | 180 | | construction, it passed the underlying character. This in turn |
michael@13 | 181 | | obviously leaded to an incorrect determination of the argument end |
michael@13 | 182 | | (it then though the first closing brace is the end). We fix this by |
michael@13 | 183 | | passing the pointer and not the underlying character. |
michael@13 | 184 | +--------------------------------------------------------------------------- |
michael@13 | 185 | Index: rpmio/macro.c |
michael@13 | 186 | --- rpmio/macro.c 15 May 2003 13:42:01 -0000 1.1.1.7 |
michael@13 | 187 | +++ rpmio/macro.c 22 Jan 2004 21:42:32 -0000 1.2 |
michael@333 | 188 | @@ -879,7 +879,7 @@ |
michael@13 | 189 | */ |
michael@13 | 190 | /*@-bounds@*/ |
michael@13 | 191 | /*@dependent@*/ static const char * |
michael@13 | 192 | -grabArgs(MacroBuf mb, const MacroEntry me, /*@returned@*/ const char * se, char lastc) |
michael@13 | 193 | +grabArgs(MacroBuf mb, const MacroEntry me, /*@returned@*/ const char * se, char *lastc) |
michael@13 | 194 | /*@globals rpmGlobalMacroContext @*/ |
michael@13 | 195 | /*@modifies mb, rpmGlobalMacroContext @*/ |
michael@13 | 196 | { |
michael@333 | 197 | @@ -900,7 +900,7 @@ |
michael@13 | 198 | |
michael@13 | 199 | /* Copy args into buf until lastc */ |
michael@13 | 200 | *be++ = ' '; |
michael@13 | 201 | - while ((c = *se++) != '\0' && c != lastc) { |
michael@13 | 202 | + while ((c = *se++) != '\0' && (se-1) != lastc) { |
michael@13 | 203 | /*@-globs@*/ |
michael@13 | 204 | if (!isblank(c)) { |
michael@13 | 205 | *be++ = c; |
michael@333 | 206 | @@ -968,6 +968,8 @@ |
michael@13 | 207 | /*@-mods@*/ |
michael@13 | 208 | optind = 0; /* XXX but posix != glibc */ |
michael@13 | 209 | /*@=mods@*/ |
michael@13 | 210 | +#else |
michael@13 | 211 | + optind = 1; |
michael@13 | 212 | #endif |
michael@13 | 213 | |
michael@13 | 214 | opts = me->opts; |
michael@333 | 215 | @@ -1168,7 +1170,7 @@ |
michael@13 | 216 | int c; |
michael@13 | 217 | int rc = 0; |
michael@13 | 218 | int negate; |
michael@13 | 219 | - char grab; |
michael@13 | 220 | + char *grab; |
michael@13 | 221 | int chkexist; |
michael@13 | 222 | |
michael@13 | 223 | if (++mb->depth > max_macro_depth) { |
michael@333 | 224 | @@ -1202,7 +1204,7 @@ |
michael@13 | 225 | if (mb->depth > 1) /* XXX full expansion for outermost level */ |
michael@13 | 226 | t = mb->t; /* save expansion pointer for printExpand */ |
michael@13 | 227 | negate = 0; |
michael@13 | 228 | - grab = '\0'; |
michael@13 | 229 | + grab = NULL; |
michael@13 | 230 | chkexist = 0; |
michael@13 | 231 | switch ((c = *s)) { |
michael@13 | 232 | default: /* %name substitution */ |
michael@333 | 233 | @@ -1237,7 +1239,8 @@ |
michael@13 | 234 | /* For "%name " macros ... */ |
michael@13 | 235 | /*@-globs@*/ |
michael@13 | 236 | if ((c = *fe) && isblank(c)) |
michael@13 | 237 | - grab = '\n'; |
michael@13 | 238 | + if ((grab = strchr(fe,'\n')) == NULL) |
michael@13 | 239 | + grab = strchr(fe, '\0'); |
michael@13 | 240 | /*@=globs@*/ |
michael@13 | 241 | /*@switchbreak@*/ break; |
michael@13 | 242 | case '(': /* %(...) shell escape */ |
michael@333 | 243 | @@ -1284,7 +1287,7 @@ |
michael@13 | 244 | ge = se - 1; |
michael@13 | 245 | /*@innerbreak@*/ break; |
michael@13 | 246 | case ' ': |
michael@13 | 247 | - grab = se[-1]; |
michael@13 | 248 | + grab = se-1; |
michael@13 | 249 | /*@innerbreak@*/ break; |
michael@13 | 250 | default: |
michael@13 | 251 | /*@innerbreak@*/ break; |
michael@333 | 252 | @@ -1438,7 +1441,7 @@ |
michael@13 | 253 | |
michael@13 | 254 | /* Setup args for "%name " macros with opts */ |
michael@13 | 255 | if (me && me->opts != NULL) { |
michael@13 | 256 | - if (grab != '\0') { |
michael@13 | 257 | + if (grab != NULL) { |
michael@13 | 258 | se = grabArgs(mb, me, fe, grab); |
michael@13 | 259 | } else { |
michael@13 | 260 | addMacro(mb->mc, "**", NULL, "", mb->depth); |
michael@13 | 261 | |
michael@13 | 262 | +--------------------------------------------------------------------------- |
michael@13 | 263 | | Backported RPM vendor patch: |
michael@13 | 264 | | "fix: packages w/o file colors segfault" |
michael@13 | 265 | | (cvs diff -r2.41.2.6 -r2.41.2.7 lib/rpmfi.c) |
michael@13 | 266 | +--------------------------------------------------------------------------- |
michael@13 | 267 | Index: lib/rpmfi.c |
michael@13 | 268 | --- lib/rpmfi.c 17 Jul 2003 22:44:28 -0000 1.1.1.3 |
michael@13 | 269 | +++ lib/rpmfi.c 22 Jan 2004 21:42:24 -0000 1.2 |
michael@13 | 270 | @@ -866,6 +866,7 @@ |
michael@13 | 271 | *fn = '\0'; |
michael@13 | 272 | fnlen = stpcpy( stpcpy(fn, dirNames[dirIndexes[i]]), baseNames[i]) - fn; |
michael@13 | 273 | |
michael@13 | 274 | +if (fColors != NULL) |
michael@13 | 275 | dColors[dirIndexes[i]] |= fColors[i]; |
michael@13 | 276 | /* |
michael@13 | 277 | * See if this file path needs relocating. |
michael@13 | 278 | |
michael@13 | 279 | +--------------------------------------------------------------------------- |
michael@13 | 280 | | The "%_excludedocs" macro is intended to set the _default_ if |
michael@13 | 281 | | both --excludedocs and --includedocs are not specified and it is |
michael@13 | 282 | | evaluated already before. So, do not override it here again, because |
michael@13 | 283 | | it would not allow us to make "%_excludedocs 1" the default. |
michael@13 | 284 | +--------------------------------------------------------------------------- |
michael@13 | 285 | Index: lib/transaction.c |
michael@13 | 286 | --- lib/transaction.c 15 Jul 2003 15:15:47 -0000 1.1.1.15 |
michael@13 | 287 | +++ lib/transaction.c 22 Jan 2004 21:42:26 -0000 1.2 |
michael@13 | 288 | @@ -702,8 +702,10 @@ |
michael@13 | 289 | int dc; |
michael@13 | 290 | int i, j; |
michael@13 | 291 | |
michael@13 | 292 | +#if 0 |
michael@13 | 293 | if (!noDocs) |
michael@13 | 294 | noDocs = rpmExpandNumeric("%{_excludedocs}"); |
michael@13 | 295 | +#endif |
michael@13 | 296 | |
michael@13 | 297 | { const char *tmpPath = rpmExpand("%{_netsharedpath}", NULL); |
michael@13 | 298 | /*@-branchstate@*/ |
michael@13 | 299 | |
michael@13 | 300 | +--------------------------------------------------------------------------- |
michael@13 | 301 | | Bugfix: POSIX/SUSv3 clearly expresses that fcntl(2) returns "value |
michael@13 | 302 | | other than -1" on success, so check for equality to -1 instead of |
michael@13 | 303 | | non-equality to 0. In practice this does not harm on most platforms, |
michael@13 | 304 | | because they fortunately (by conincidence and common practice) |
michael@13 | 305 | | return 0. |
michael@13 | 306 | | Additionally, at least Solaris may reject (see fcntl(2) manpage) the |
michael@13 | 307 | | (partial) locking, because DB mmap(2)'ed the file (or vice versa). |
michael@13 | 308 | | The workaround is to lock the entire(!) file. |
michael@13 | 309 | +--------------------------------------------------------------------------- |
michael@13 | 310 | Index: db/mutex/mut_fcntl.c |
michael@13 | 311 | --- db/mutex/mut_fcntl.c 18 Jan 2003 14:05:03 -0000 1.1.1.5 |
michael@13 | 312 | +++ db/mutex/mut_fcntl.c 22 Jan 2004 21:42:18 -0000 1.2 |
michael@13 | 313 | @@ -84,8 +84,13 @@ |
michael@13 | 314 | |
michael@13 | 315 | /* Initialize the lock. */ |
michael@13 | 316 | k_lock.l_whence = SEEK_SET; |
michael@13 | 317 | +#if 0 |
michael@13 | 318 | k_lock.l_start = mutexp->off; |
michael@13 | 319 | k_lock.l_len = 1; |
michael@13 | 320 | +#else |
michael@13 | 321 | + k_lock.l_start = 0; |
michael@13 | 322 | + k_lock.l_len = 0; |
michael@13 | 323 | +#endif |
michael@13 | 324 | |
michael@13 | 325 | for (locked = waited = 0;;) { |
michael@13 | 326 | /* |
michael@13 | 327 | @@ -101,7 +106,7 @@ |
michael@13 | 328 | |
michael@13 | 329 | /* Acquire an exclusive kernel lock. */ |
michael@13 | 330 | k_lock.l_type = F_WRLCK; |
michael@13 | 331 | - if (fcntl(dbenv->lockfhp->fd, F_SETLKW, &k_lock)) |
michael@13 | 332 | + if (fcntl(dbenv->lockfhp->fd, F_SETLKW, &k_lock) == -1) |
michael@13 | 333 | return (__os_get_errno()); |
michael@13 | 334 | |
michael@13 | 335 | /* If the resource is still available, it's ours. */ |
michael@13 | 336 | @@ -112,7 +117,7 @@ |
michael@13 | 337 | |
michael@13 | 338 | /* Release the kernel lock. */ |
michael@13 | 339 | k_lock.l_type = F_UNLCK; |
michael@13 | 340 | - if (fcntl(dbenv->lockfhp->fd, F_SETLK, &k_lock)) |
michael@13 | 341 | + if (fcntl(dbenv->lockfhp->fd, F_SETLK, &k_lock) == -1) |
michael@13 | 342 | return (__os_get_errno()); |
michael@13 | 343 | |
michael@13 | 344 | /* |
michael@13 | 345 | |
michael@13 | 346 | +--------------------------------------------------------------------------- |
michael@13 | 347 | | The O_DIRECT feature is fully broken under at least Linux 2.2 and |
michael@13 | 348 | | 2.4. It is sometimes accepted by open(2) without error and later |
michael@13 | 349 | | causes a write(2) to fail with EINVAL -- all depending on the |
michael@13 | 350 | | underlying filesystem (usually works on tmpfs and fails on ext3). |
michael@13 | 351 | | Sometimes it also causes open(2) to fail with EINVAL. In general, |
michael@13 | 352 | | it does especially no "graceful degradation" and so is useless for |
michael@13 | 353 | | use mostly all platforms except for those where we know it works |
michael@13 | 354 | | (currently FreeBSD only). Interestingly, RPM works on RedHat, just |
michael@13 | 355 | | because RedHat's "kernel" package contains a patch which masks out |
michael@13 | 356 | | O_DIRECT usage... ;-) |
michael@13 | 357 | +--------------------------------------------------------------------------- |
michael@13 | 358 | Index: db/os/os_open.c |
michael@13 | 359 | --- db/os/os_open.c 18 Jan 2003 14:05:03 -0000 1.1.1.5 |
michael@13 | 360 | +++ db/os/os_open.c 22 Jan 2004 21:42:19 -0000 1.2 |
michael@13 | 361 | @@ -93,7 +93,7 @@ |
michael@13 | 362 | if (LF_ISSET(DB_OSO_TRUNC)) |
michael@13 | 363 | oflags |= O_TRUNC; |
michael@13 | 364 | |
michael@13 | 365 | -#ifdef HAVE_O_DIRECT |
michael@13 | 366 | +#if defined(HAVE_O_DIRECT) && defined(__FreeBSD__) |
michael@13 | 367 | if (LF_ISSET(DB_OSO_DIRECT)) |
michael@13 | 368 | oflags |= O_DIRECT; |
michael@13 | 369 | #endif |