forked from devzero2000/RPM5
-
Notifications
You must be signed in to change notification settings - Fork 0
/
NEWS
207 lines (178 loc) · 9.52 KB
/
NEWS
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
NEWS
====
This is a list of the major changes between RPM 4 and RPM 5.
For more details please see the CHANGES file.
New in RPM 5.3
--------------
o New Features:
- All packages produced by rpmbuild now have a DSA pubkey/signature
New in RPM 5.1
--------------
o Major Bufixes:
- .spec: fix PGP clearsign signature() verification by correctly skipping RFC2440 "dash-escapes"
- macro: permit %{lua:...} to recurse.
- macro: fix line-continuation handling in macro definition parsing
- macro: fix macro option/argument parsing (again), this time by using POPT_CONTEXT_POSIXMEHARDER
o New Features:
- "rpmrepo"
- "rpmdigest"
- "rpmgrep"
- "rpmmtree"
- ":sqlescape" for use in SQL statements generated by --qf.
- ":utf8" for use with ":cdata" format
- ":cdata" to permit strings to be included in XML CDATA.
- .spec: verify(N) = E:V-R, verify(*) and verify(/path) runtime dependency probes
- CLI new RPM CLI options --noautoreq/--noautoprov
- CLI: "+N-V-R.A" path-to-repository expansions with -i/-U
- CLI: "-N-V-R.A" erasure args within install/upgrade transactions
- CLI: proof-of-concept "rpmbuild --lsb" implementation
- build: new Autoconf option --with-path-rpmlua and RPM CLI option --rpmlua for configuring RPM Lua init script path
- macro: OSSP uuid support via RPM Lua functions uuid.generate() and uuid.describe()
- macro: new "%{uuid:[<version>[, <ns>, <data>]]}" for generating UUIDs of version 1, 3, 4 or 5
- macro: new %{getenv:<name>} to lookup environment variables
- macro: new %{shrink:<body>} macro for removing leading+trailing and removing intermediate whitespaces
- macro: new RPM Lua function posix.glob(<pattern>)
- macro: new RPM Lua function rpm.realpath(<path>) to complement RPM macro %{realpath:<path>}
- macro: new RPM Lua function rpm.sleep()
- macro: new RPM Lua function rpm.slurp() for slurping in the whole content of a file or an URL
- macro: new RPM Lua function util.textwrap() for auto-wrapping junks of larger text messages
- macro: unconditionally provide RPM Lua functions posix.{setenv,unsetenv}
- rpmdb: new tags ORIGIN{TID,TIME} which record the first INSTALL{TID,TIME} of a package
- rpmlib: function rpmuuidMake() for generating UUIDs of version 1, 3, 4 or 5
- rpmlib: permit opt-in network access using %_rpmgio macro.
- rpmlib: support for CPIO, TAR and AR payloads
- API: RPM 4 compatibility layer <rpm/rpm4compat.h>
- macro: permit %{___NVRA} to parameterize the displayed NVRA while installing.
o Upgrades:
- macro: upgraded from Lua 5.1.2 to 5.1.3
- macro: upgraded RPM Lua extension lrexlib from ancient version 1.1x to version 2.2
- build: upgraded build environment to use GNU libtool 2.2.2
o Incompatibilities:
- rpmdb: use "struct timeval" timestamp for INSTALL{TID,TIME} and ORIGIN{TID,TIME}
o Portability:
- build: QNX platform support
New in RPM 5.0
--------------
o Project Environment:
The official RPM code base was relocated from rpm.org to rpm5.org
and a completely new project environment was established around it,
including anonymous repository browsing access, new mailing lists,
etc.
o Source Tree:
The RPM source tree was cleaned up by pruning many old and obsolete
files, removing dangling symbolic links, relocating sub-directories
and fixing timestamps and other versioning meta-data which got
broken over 10 years of RPM development.
o Build Environment:
The Automake/Autoconf/Libtool-based build environment of RPM was
completely revamped. Especially the Autoconf parts were finally
cleaned up from the ground up, including basing the use of all
third-party libraries on a new sophisticated Autoconf macro
"RPM_CHECK_LIB". As a result most third-party libraries now can be
linked externally, too.
o Development Environment:
For being able to build RPM under arbitrary Unix platforms despite
the fact that RPM needs a larger number of third-party libraries,
the "devtool" environment and its "standalone" script is provided.
This allows RPM developers to build RPM from scratch under arbitrary
Unix platforms in a rather self-contained environment.
o Greatly Improved Portability:
RPM 5 was ported to all major Unix platforms as of 2007, including
BSD, Linux and Solaris flavors. It was successfully built (with the
above "devtool" "standalone") on at least the following particular
Unix platforms (including Mac OS X "Darwin" and Windows "Cygwin"):
ix86-freebsd6.2-gcc4.2.0
ix86-freebsd6.2-gcc4.3.0s20070713
ix86-freebsd6.2-gcc3.4
amd64-freebsd6.2-gcc4.1.2
ix86-freebsd7.0-gcc4.1.2
ia64-freebsd6.2-gcc4.1.2
ix86-fedora7-gcc4.2.0
ix86-fedora7-sunstudio12
ix86-fedora7-icc10.0
ix86-debian3.1-gcc4.1.2
ix86-debian4.0-gcc4.2.0
ix86-rhel4-gcc4.1.2
ix86-solaris9-gcc4.1.2
sparc64-solaris8-gcc4.1.2
sparc64-solaris9-gcc4.1.2
sparc64-solaris10-gcc4.1.2
amd64-solaris10-gcc4.1.2
ppc-macosx10.4-gcc4.0.1
ix86-macosx10.4-gcc4.0.1
ppc-aix5.3-gcc3.3.2
ix86-cygwin_nt5.1-gcc3.4.4
o Mac OS X Cross Development:
RPM 5 can now be built for all recent versions of Mac OS X, with
detection of Python.framework and with Universal Binary support
(both PowerPC and Intel architectures in a single binary file). The
Mac OS X version will install in /usr/local and /var/local. It will
work with the following versions of the OS and/or SDK, using the
above devtool and with the target name quoted below:
Mac OS X 10.x "macosx" - build native version
Mac OS X 10.3 "panther" - PowerPC (MacOSX10.3.9.sdk)
Mac OS X 10.4 "tiger" - PowerPC and Intel (MacOSX10.4u.sdk)
Mac OS X 10.5 "leopard" - PowerPC and Intel (MacOSX10.5.sdk)
o Source Code Cleanups:
The RPM source base was completely cleaned up. As a result RPM now
builds fully warnings-free under all major Unix platforms with GCC.
Additionally, RPM now can be built without problems with the Sun
Studio and Intel C/C++ compilers, too.
o Third-Party Library Upgrades:
RPM now is able to build against the latest versions of all
third-party libraries. Additionally, the internal copies of
third-party libraries were also upgraded to the latest versions,
including Berkeley-DB 4.6.21, Lua 5.1.2, XAR 1.5.2, etc.
o RPM Database:
The RPM database (RPMDB) now out-of-the-box supports both
Berkeley-DB and SQLite. The SQLite support was greatly improved, but
nevertheless inherently still lacks some features of the Berkeley-DB
RPMDB. Nevertheless, one can build RPM with an SQLite-only
RPMDB, too. But this is not officially supported. It is just an
experimental developer feature.
o Compression:
The RPM packages support both Bzip2 and LZMA payloads, in addition
to the default Gzip compression format. Support for LZMA_Alone with
rpmio was added, with the lzma syntax upgraded to newer LZMA Utils.
o "rpmrc" and Platform Detections:
Support for the old "rpmrc" (which was used mainly for architecture
mappings, etc) was completely removed. Everything is now configured
through RPM "macros" only. Additionally, the internal C-based
platform detections were completely removed, too.
o XAR Format Support:
Initial support for the XML Archive (XAR) file format was added
to RPM. The initial implementation establishes a wrapper archive
format for mapping the 4 sections used in *.rpm package file (Lead,
Signature, Header and Payload) to files with the same name in a XAR
archive wrapper. A wrapper archive to carry package sections is
already used by Apple Leopard *.pkg (using XAR) and Debian *.deb
packages (using AR), rpm-5.0 now has a well defined representation
of *.rpm packages in a wrapper archive format. Establishing a direct
mapping between rpm tags and XAR attributes/properties in XML in
order to fully use the extensibility of an XAR archive will be
attempted for RPM 5.1.
o Removed RPMv3 Package Format Support:
The support for the old RPMv3 (LSB) package format was removed to
cleanup and simplify the code base. RPM 5 now supports RPMv4 package
format only.
o Additional Specification Features:
A larger set of additional features or provided for use in package
specifications (.spec): new tag "Class" for quality assurance
based classification, new section "%track" for vcheck(1) based
upstream vendor source version tracking, new section "%sanitycheck"
for sanity checking the run-time of a package by performing
run-time tests, etc. Additionally, RPM can be configured via
macro %{_arbitrary_tags_arbitrary_tags} to support so-called
"arbitrary tags" -- this allows one to attach custom information
with an RPM package. Finally, the macro processor now supports the
"%{@<name>:<separator>}" syntax for expanding all values from the
macro stack of a macro <name> by concatenating the values with
<separator>.
o Additional Command Line Interface (CLI) Features:
The CLI supports additional options, including "-bt" for executing
the new "%track" section (the step logically coming before "-bp"),
"--undefine '<macroname>'" for reversing the effect of "--define
'<macroname> <macrovalue>'", etc.
o Application Programming Interface (API) Changes:
There were various RPM C API changes. See CHANGES file for more
details.