-
Notifications
You must be signed in to change notification settings - Fork 4
/
VENDOR
625 lines (560 loc) · 36.2 KB
/
VENDOR
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
VENDOR CHANGES
==============
APPLICATION RULES
-----------------
The rpm5.org code base to a very restricted and limited scope contains
some RPM changes from third-party distribution vendors. A vendor patch
*might* be accepted for inclusion into the rpm5.org code base if it at
least follows the following rules *and* is accepted after a detailed
review by JBJ:
1. RULE:
at least one representative of a vendor has to be part of the
official rpm5.org developer team. Additionally, the vendor and its
representative is explicitly listed below.
2. RULE:
all source code changes have to be really surgically and
minimally touching the rpm5.org code base only (no large code
block reorderings, no accidential whitespace changes, etc).
Additionally, all changes have to be *entirely* wrapped with "#if
defined(RPM_VENDOR_<name-id>) /* <change-id> */... #endif" where
<name-id> and <change-id> are explicitly listed in this document
below under "Name" and "Change".
VENDOR REGISTRY
---------------
o Name: OPENPKG
Vendor: OpenPKG <http://openpkg.org/>
Representative: Ralf S. Engelschall <[email protected]> <[email protected]>
Application: RPM-based Unix software distribution (> 1100 packages),
Characteristic: cross-platform multiple-instance use of RPM
________________________________________________________________________
Change: no-hard-coded-ugid
Purpose: do not make hard-coded assumptions about any uid/gid
Reason: OpenPKG can safely rely on the /etc/passwd and /etc/group
lookups for all uid/gid and has no need to assume
that for instance GID 0 is "root". Actually, such
an assumption is a portability problem as GID 0
under e.g. BSD is named "wheel" and not "root",
etc. As a result, things like "rpm -V" would report
wrong information, etc.
________________________________________________________________________
Change: splitted-source-directory
Purpose: support so-called "splitted source directories", i.e.,
source files (listed on SourceX and PatchX headers)
can be placed into %{_specdir} in addition to
%{_sourcedir}.
Reason: OpenPKG ultra-strictly separates sources files into
two classes: external ones -- those which are
referenced with fully-qualified URLs and can be
(re-)fetched from the Internet -- and internal
ones -- those which are references as plain files
and which are kept in the local version control
system (VCS). As in OpenPKG the .spec file is just
one of those "internal" files, they are all stored
under %{_specdir} while %{_sourcedir} is used
for everything which is downloaded from external
sources (in OpenPKG even an automated process).
Hint: The even better solution would be to introduce
%{_sourcedir_external} and %{_sourcedir_internal}
and support this throughout RPM.
(afb) rpm4darwin also separated these two, but
kept the internal in SOURCES and added a new
directory DISTFILES for holding the external...
The external ones were automatically fetched
from a central repository over HTTP if missing.
(http://prdownloads.sourceforge.net/rpm4darwin/)
This can still be done in RPM, by setting the
two macros: %{_Rsourcedir} and %{_Rpatchdir}
________________________________________________________________________
Change: explicit-platform
Purpose: Allow the platform identification be set explicitly only.
Reason: As OpenPKG is a cross-platform distribution,
the "platform" had to be determined by GNU shtool's
"shtool platform" script since many years. The
result is stored into the "platform" file which
RPM internally reads in. This way the platform is
explicitly set and no other implicit sets wished.
________________________________________________________________________
Change: no-deps-on-building-srpms
Purpose: Do not perform any dependency checking on building SRPMs.
Reason: We never found any reason why this is of any benefit for
just rolling a source RPM package.
Hint: (jbj) There is a benefit if you want digest(...) and/or
signature(...) verification of build elements before
inclusion in *.src.rpm.
(rse) Yes, This is something we really want, OTOH
we really do NEVER want to have to install all
BuildPreReq _packages_ just to roll a SRPM. OTOH
"-bs --nodeps" then also skipps the wished checks.
Hmmm... we would need to replace the boolean
"noDeps" with DEPS_NONE, DEPS_INTEGRITY and
DEPS_ALL. DEPS_NONE is the old "noDeps = 1",
DEPS_ALL is the old "noDeps = 1" and DEPS_INTEGRITY
is new and would lead to the checking of only
those BuildRequires/BuildPreReqs which ensure the
integrity of the rolled SRPMS (currently AFAIK
"digest(...)", "signature(...)", "gnupg(...)", etc)
and especially skip the dependencies to installed
packages. Or even better: make DEPS_XXX bits of a
bitmask and allow one to assemble what one really
wished to be checked.
________________________________________________________________________
Change: always-remove-tempfiles
Purpose: Unconditionally remove temporary files ("rpm-tmp.XXXXX")
which were generated for the executed scripts.
Reason: In OpenPKG we run the scripts in debug mode ("set -x")
anyway, so we never need to see the whole generated
script -- not even if it breaks. Instead we would
just have temporary files staying around forever.
________________________________________________________________________
Change: no-default-doc-files
Purpose: Do not declare some files as %doc by default.
Reason: In OpenPKG we want to be explicit in the declaration
of %doc files and do it entirely from a package
%files section only. No magic in the code wished.
________________________________________________________________________
Change: still-support-section-clean
Purpose: allow us to still use %clean section
Reason: for temporary backward compatibility only
________________________________________________________________________
Change: always-backup-on-patching
Purpose: always create backup files on patching files via %patch
Reason: In OpenPKG we maintain our patches via "rpm -bp" plus
subsequent "svs" commands, so we always want that
backup files are created.
Hint: We could explicitly specify -b all the time, too.
________________________________________________________________________
Change: bdb-no-partial-locking
Purpose: Perform full instead of partial record locking.
Reason: At least Solaris may reject (see its fcntl(2) manpage)
the (partial) locking, because BDB mmap(2)'ed the file
________________________________________________________________________
Change: bdb-bugfix-fcntl-usage
Purpose: Fix the usage of fcntl(2)
Reason: POSIX/SUSv3 clearly expresses that fcntl(2)
returns "value other than -1" on success, so check
for equality to -1 instead of non-equality to 0.
In practice this does not harm on most platforms,
because they fortunately (by conincidence and
common practice) return 0.
________________________________________________________________________
Change: bdb-use-odirect-on-freebsd-only
Purpose: Use O_DIRECT on FreeBSD only
Reason: The O_DIRECT feature is fully broken under at least Linux
2.2 and 2.4. It is sometimes accepted by open(2)
without error and later causes a write(2) to fail
with EINVAL -- all depending on the underlying
filesystem (usually works on tmpfs and fails on
ext3). Sometimes it also causes open(2) to fail
with EINVAL. In general, it does especially no
"graceful degradation" and so is useless for use on
mostly all platforms except for those where we know
it works (currently FreeBSD only). Interestingly,
RPM works on RedHat, just because RedHat's "kernel"
package contains a patch which masks out O_DIRECT
usage... ;-)
Hint: O_DIRECT is very b0rken on linux. OTOH using vmalloc to
get page aligned buffer for I/O is merely obscure, easily
doable. Likely should be sent to Oracle.
________________________________________________________________________
Change: no-owner-group-on-srpm-install
Purpose: Do not set owner/group on installation/unpacking of SRPM
Reason: In OpenPKG it is not wished that file owner/group are
set on files during installation of _source_ RPMs.
Instead, the current run-time owner/group should
be used, because most of the time the owner/group
in the source RPM (which is the owner/group of the
files as staying on the package author system) is
not existing on the target system anyway.
________________________________________________________________________
Change: switch-from-susr-to-musr-on-srpm-install
Purpose: If running as the OpenPKG "susr", do not unpack source
RPM packages with "susr" file ownerships. Instead
unpack with "musr" file ownerships.
Reason: The OpenPKG Set-UID wrapper switches from "musr" to
"susr" on "openpkg rpm -Uvh *.src.rpm". As a result
the installed files could be never removed again by
"musr". It is more consistent to always unpack as
"musr" if possible.
________________________________________________________________________
Change: adjust-verbose-listing
Purpose: In verbose file listing output, give the owner and group
fields more width and at the same time reduce the
fields more nlink and size to typical sizes within
fields more OpenPKG.
Reason: Just cosmetics to improve output.
________________________________________________________________________
Change: larger-utsname
Purpose: Increase size of "struct utsname"
Reason: OpenPKG requires more space for storage
________________________________________________________________________
Change: platform-major-minor-only
Purpose: Reduce the platform version to major and minor version numbers only.
Reason: Experience shows that more is never reasonable in practice.
________________________________________________________________________
Change: allow-excludedocs-default
Purpose: Do not override the %{_excludedocs} macro.
Reason: The "%_excludedocs" macro is intended to set the
_default_ if both --excludedocs and --includedocs
are not specified and it is evaluated already
before. So, do not override it here again, because
it would not allow us to make "%_excludedocs 1" the
default.
________________________________________________________________________
Change: bdb-allow-zero-sized-files
Purpose: Make sure RPM passes DB_CREATE to Berkeley-DB also
if file exists, but is (still) zero-sized.
Reason: In OpenPKG all database files are pre-created
to fixate permissions.
Hint: This might be obsolete soon as we now create real
BDB files instead of empty files.
________________________________________________________________________
Change: no-architecture-expose
Purpose: Do not expose the architecture in outputs.
Reason: This is too less information, as in OpenPKG the
"platform" is described by the
architecture+operating-system combination. But
as the whole "platform" information is actually
overkill, just revert to the RPM 4 behaviour and do
not expose any such information at all
________________________________________________________________________
Change: auto-remove-source-directories
Purpose: Automatically remove source directories if they are empty.
Reason: In OpenPKG we use per-package %{_sourcedir} and
%{_specdir} definitions (macros have trailing
".../%{name}"). On removal of source(s) and .spec
file, this per-package directory would be kept
(usually <prefix>/RPM/SRC/<name>/), because RPM
does not know about this OpenPKG convention. So,
let RPM try(!) to remove the two directories (if
they are empty) and just ignore removal failures
(if they are still not empty).
________________________________________________________________________
Change: expand-macrosfile-macro
Purpose: Provide special pseudo-macro %{macrosfile}
Reason: In order to support local .rpmmacros (those
which stay directly inside a development area)
which redefine %{_specdir}/%{_sourcedir}/etc to
point to local directories, it is necessary to be
able to override those macros with absolute paths
relative to the .rpmmacros file itself. For this
it is necessary that one can expand a macro which
results in the pathname of the .rpmmacros file
itself. Together with %{dirname:...} and other
macro constructs this way one can allow arbitrarily
relocatable development environments.
________________________________________________________________________
Change: wildcard-matching-arbitrary-tagnames
Purpose: Allow wildcards in %{_arbitrary_tags}
Reason: In order to support e.g. "%_arbitrary_tags My*"
for custom but clearly distinguishable user
headers, the matching of tagnames is done via a
slower but more flexible linear search based on
fnmatch(3) instead of a binary search based on
strcasecmp(3).
________________________________________________________________________
Change: no-auto-verbose-increase-for-track-and-fetch
Purpose: Do not enforce --verbose on -bt/-bf
Reason: RPM always enforces --verbose for all build commands
and this way renders the use of %{verbose:...}
useless for all types of build scripts. For all
other scripts this is already strange since years
(although at the other hand one usually always
wants "set -x" for the scripts by default and then
better be able to check for a --quiet option via
macros), but for %track we really want to control
verbosity explicitly. Similar to "-bf", where one
should be able to control verbosity manually.
________________________________________________________________________
Change: make-class-available-as-macro
Purpose: Do not treat "Class" tag as a fully arbitrary tag.
Reason: In OpenPKG some .spec processing depends on the
macro %{class} to be filled from the value of the
"Class" tag, hence make sure it is not treated fully
arbitrary (or else the macro would be not available).
Hint: As %_arbitrary_tags restricts the allowed tags anyway,
best would be to export also arbitrary tags as macros!
________________________________________________________________________
Change: rpm-lua-extensions-based-on-rpm-lib-functionality
Purpose: Adds RPM Lua extensions based on "lib" functionality
Reason: The RPM Lua implementation is part of "rpmio". Hence
it cannot use RPM "lib" functionality without
breaking the RPM library dependency hierarchy.
Nevertheless it is very useful to have RPM "lib"
functionality in RPM Lua. The lib/rpmluaext.[ch]
provides this now. It attaches additional
functionality into the RPM Lua scope from within
RPM "lib". Currently it mainly provides the
following essential methods: rpm.digest() for
calculating a message digest, rpm.signature() to
check the public key signature on a clearsigned
file or a file and its detached signature, and
rpm.query() to query the RPMDB similar to "rpm -q
--qf '[...]' [-a] [...]" directly from within Lua.
________________________________________________________________________
Change: backward-compat-rpmtag-sourcepackage
Purpose: Still mark SRPMS with RPMTAG_SOURCEPACKAGE
Reason: For backward compatibility with RPM < 4.4.6
(remember: OpenPKG used RPM 4.2.1 until 2008) let
RPM 5 still mark SRPMS with RPMTAG_SOURCEPACKAGE.
This especially allows OpenPKG to smoothly upgrade
the "openpkg" package (which contains RPM) from the
RPM 4 to the RPM 5 world order. Without this the
upgrade procedure would involve manual "rpm2cpio"
plus "rpm -bb" operations.
________________________________________________________________________
Change: integrity-checking
Purpose: RPM integrity checking framework
Reason: [see scripts/integrity.txt for detailed documentation]
________________________________________________________________________
Change: use-bsdtar-for-zip-files
Purpose: Use bsdtar(1) for unpacking ZIP format files.
Reason: OpenPKG uses bsdtar(1) to unpack ZIP format files to
avoid having to bundle the less portable unzip(1)
into the bootstrap package.
Hint: If RPM would use "%__unzip -qq" instead of "%{__unzip} -qq"
one could also use plain macros in OpenPKG to
convert the call to unzip(1) to bsdtar(1). But I
don't wanted to change RPM here as all other macros
are also just for the expansion of the command and
not for the complete command argument line.
________________________________________________________________________
Change: extension-based-compression-detection
Purpose: Prefer file extension for detecting file compression.
Reason: RPM tries to detect file compression by inspecting
"magic" bytes at the front of a file. This works
for formats with known "magic" bytes just fine,
but fails horribly for formats like LZMA where no
such "magic" bytes exist. As a result RPM 5 this
way too often thinks .tar files are LZMA compressed
and stumbles over this during build-time. For
OpenPKG we prefer to first use file extension
based determination (if someone is mis-names
his distribution files we have to take action
anyway) and fall back to "magic" byte based
determination only if no well known extension is
found. Additionally, detecting LZMA we want to do
via file extension only.
________________________________________________________________________
Change: regular-ordered-sources
Purpose: Internally regularily order the source files.
Reason: RPM internally traverses over the list of source files
(SourceX and PatchX tags in *.spec file) multiple
times and also looks up sources by number. For all
this the fact that RPM keeps the source files in a
_reverse ordered_ linked list is never a problem.
But OpenPKG performs user-visible actions, like
the auto-fetching of still missing source files,
and here the processing in reverse order is very
confusing to the user. Hence, order the sources
files in regular order (the order the tags occur in
the *.spec file).
________________________________________________________________________
Change: always-strict-posix-option-parsing
Purpose: Always use strict POSIX-style option parsing.
Reason: OpenPKG wants RPM to always(!) use the
POPT_CONTEXT_POSIXMEHARDER flag to (again)
correctly parse macro arguments *without*
option/argument permutations now that we are using
POPT instead of getopt(3)!
Broken behavior without POPT_CONTEXT_POSIXMEHARDER:
$ rpm --define '%foo() <%*>' --eval '%{foo bar %(echo -n "quux") baz}'
error: Unknown option in macro foo(): -n: unknown option
<%*>
Fixed behavior with POPT_CONTEXT_POSIXMEHARDER:
$ rpm --define '%foo() <%*>' --eval '%{foo bar %(echo -n "quux") baz}'
<bar quux baz>
The explicit use of the POSIX "+" option is a
now implemented possibility, but for backward
compatibility OpenPKG wants that existing macros
are not broken.
________________________________________________________________________
Change: always-skip-proc-filesystem
Purpose: Always skip the /proc filesystem
Reason: OpenPKG never does anything with the virtual filesystem
/proc which exists on some platforms. Sometimes
(e.g. in a FreeBSD Jail) the problem even exists
that RPM discovers that /proc might be available
(because the FreeBSD host leaks this information
to the Jail) but /proc cannot be actually accessed
from within the Jail. As a result, RPM complains
with "error: failed to stat /proc: No such file
or directory" all the time.. As OpenPKG never
fiddles around with /proc from within RPM, in this
particular vendor environment /proc safely can be
just ignored.
________________________________________________________________________
Change: stick-with-rpm-file-sanity-checking
Purpose: Use file sanity checking code of RPM instead of POPT
Reason: POPT >= 1.15 contains the poptSaneFile() function which
is equivalent to rpmSecuritySaneFile(). And POPT >=
1.15 also contains a poptReadConfigFiles() which
returns POPT_ERROR_BADCONFIG in case poptSaneFile()
says a file is not sane. This is all fine from a
raw sanity checking point of view. Unfortunately,
in the error reporting it is absolutely vital to
know _WHICH_ file is considered insecure. Until
POPT provides an error reporting callback or other
means for RPM to provide again reasonable warning
messages, we stick with the RPM sanity checking
code. So, this is not because OpenPKG is using
POPT < 1.15, but because we need proper warning
messages!
________________________________________________________________________
o Name: FEDORA
Vendor: Fedora Project <http://fedoraproject.org/>
Representative: Robert Scheck <[email protected]> <[email protected]>
Application: RPM-based Linux software distribution (> 7000 packages)
Characteristic: Optional replacement of RPM 4 with RPM 5 for users
________________________________________________________________________
Change: backward-compat-rpmtag-sourcepackage
Purpose: Still mark SRPMS with RPMTAG_SOURCEPACKAGE
Reason: For backward compatibility with RPM < 4.4.6 for all the
Fedora releases which are using RPM 4. RPM 5 will still
mark SRPMS with the RPMTAG_SOURCEPACKAGE. This especially
allows to switch between RPM 4 and 5 on Fedora. Without
this the mixture would involve manual "rpm2cpio" plus the
"rpm -bb" operation.
________________________________________________________________________
Change: extension-based-compression-detection
Purpose: Prefer file extension for detecting file compression.
Reason: RPM tries to detect file compression by inspecting
"magic" bytes at the front of a file. This works for
formats with known "magic" bytes just fine, but fails
horribly for formats like LZMA where no such "magic"
bytes exist. For Fedora we prefer to first use file
extension based determination (if someone is mis-names
his distribution files we have to take action anyway)
and fall back to "magic" byte based determination only
if no well known extension is found. Additionally,
detecting LZMA we want to do via file extension only.
________________________________________________________________________
o Name: MANDRIVA
Vendor: Mandriva Linux <http://wiki.mandriva.com/>
Representative: Per Øyvind Karlsen <[email protected]>
Application: RPM-based Linux software distribution (> 10000 packages)
Characteristic: Optional replacement of RPM 4 with RPM 5 for users
________________________________________________________________________
Change: old-comparision-behaviour
Purpose: Keep old behaviour of comparision.
Reason: Since release tags like 0.beta1.1 etc. are very common in
Mandriva, new comparision behaviour will result in
comparision of these packages' EVR to be incorrect, with
newer treated as older and vice versa.
________________________________________________________________________
Change: backward-compat-rpmtag-sourcepackage
Purpose: Still mark SRPMS with RPMTAG_SOURCEPACKAGE
Reason: For backward compatibility with RPM < 4.4.6 for all the
Mandriva releases which are using RPM 4. RPM 5 will still
mark SRPMS with the RPMTAG_SOURCEPACKAGE. This especially
allows to switch between RPM 4 and 5 on Mandriva. Without
this the mixture would involve manual "rpm2cpio" plus the
"rpm -bb" operation.
________________________________________________________________________
Change: no-owner-group-on-srpm-install
Purpose: Do not set owner/group on installation/unpacking of SRPM
Reason: In Mandriva it is not wished that file owner/group are
set on files during installation of _source_ RPMs.
Instead, the current run-time owner/group should
be used, because most of the time the owner/group
in the source RPM (which is the owner/group of the
files as staying on the package author system) is
not existing on the target system anyway.
________________________________________________________________________
Change: no-deps-on-building-srpms
Purpose: Do not perform any dependency checking on building SRPMs.
Reason: Don't really need this as 'digest(...)' and friends hasn't
been put to use (so far), making this just annoying.
________________________________________________________________________
Change: extension-based-compression-detection
Purpose: Prefer file extension for detecting file compression.
Reason: RPM tries to detect file compression by inspecting
"magic" bytes at the front of a file. This works for
formats with known "magic" bytes just fine, but fails
horribly for formats like LZMA where no such "magic"
bytes exist. For Mandriva we prefer to first use file
extension based determination (if someone is mis-names
his distribution files we have to take action anyway)
and fall back to "magic" byte based determination only
if no well known extension is found. Additionally,
detecting LZMA we want to do via file extension only.
________________________________________________________________________
Change: optional-dirname-and-symlink-deps
Purpose: Optional dependencies on symlinks and parent directories.
Reason: Mandriva doesn't store file lists in it's standard
synthesis metadata, resulting in any dependencies on these
not met during installation fail. Also always enforcing
these dependencies on third party packages which rarely
complies with distro policies, is of varying quality wrt.
quality and what not will also often lead to these having
files in directories not owned etc. Also in the case of
usage on systems not primarily using rpm, this will
~always be an issue.
________________________________________________________________________
Change: loop-detection-optional-loglevel
Purpose: Report dependency loops at optional log level
Reason: Mandriva has many dependency loops by intentetion,
especially due to it's library package policies.
For now we want to be able to not display these as errors,
but rather as debug-level messages by default, or at any
other log level defined by %_loop_detection_loglevel.
________________________________________________________________________
Change: dont-filter-install-file-conflicts
Purpose: Always treat file conflicts during install as errors.
Reason: Mandriva takes a more stricter approach on allowing
file conflicts with policies requiring such cases to
be explicitly dealt with on packaging side rather than
relying on best effort. Several different versions
of package with same name or file names are therefore
not allowed when doing install ('rpm -i') of packages.
________________________________________________________________________
o Name: WINDRIVER
Vendor: Wind River <http://windriver.com/>
Representative: Jeff Johnson <[email protected]>
Application: Wind River Linux
Characteristic: cross-packaging build system
________________________________________________________________________
Change: rpm-python-archscore.patch
Purpose: Use %{_host_vendor} and %{_host_os} for platform.
Reason: Different conventions for retrofitting platform string.
________________________________________________________________________
Change: rpm-white-color-upgrade.patch
Purpose: Color affinity while upgrading on multilib platforms.
Reason: When performing an upgrade, if we are capable of
installing multiple colors (elf32/elf64), we need to
verify that a white (color 0) package should be upgraded.
The upgrade rules are:
If the package is white, and is noarch, it can always
be upgraded.
If the package is white, and not noarch, we only
upgrade if the arch is the same (or in the compatible
list).
Compatible arch's are stored in: _<arch>_compat_arch
Example of x86_32 and i686:
_i686_compat_arch i686 x86_32
_x86_32_compat_arch i686 x86_32
Order does not mean anything in this list.. one is not
"more compatible" then another.
________________________________________________________________________
Change: wrs-rpm-variants.patch
Purpose: Permit configurable arch strings.
Reason: Allow additional architectures to be added via a
"_known_arch" list. This is useful to allow for new
variants w/o having to modify RPM each time.
________________________________________________________________________
o Name: PLD
Vendor: PLD <http://pld-linux.org/>
Representative: Jeff Johnson <[email protected]>
Application: PLD Linux
Characteristic: productive anarchy
________________________________________________________________________
Change: rpm-epoch0
Purpose: Explictly add Epoch: 0 in all packages.
Reason: Avoids compatibility issues with ancient versions of RPM
________________________________________________________________________
Change: rpm-notsc
Purpose: Don't use rdtsc instruction for timing.
Reason: Avoids compatibility issues with i386 processors.
________________________________________________________________________
Change: rpm-popt-aliases
Purpose: Add --downgrade and --norepackage options.
Reason: Cosmetic configuration sugary sweetness.