pactree: Add "--config" option
[pacman-ng.git] / NEWS
blob4c0b87861e66a17c43cbac3be32c9520f383ffd6
1 VERSION         DESCRIPTION
2 -----------------------------------------------------------------------------
3 4.0.0         - well-integrated and powerful signed packages and databases
4                 support in pacman, the library, and scripts (FS#5331)
5               - over 800 commits to pacman.git since 3.5.4 release
6               - many code cleanup commits across library/binaries/scripts
7               - many performance improvement commits across library/binaries
8               - add new -S --recursive operation to upgrade a full dep chain
9               - report upgrade size on sync operations (FS#12566)
10               - early terminal input is flushed before question prompts
11               - remove duplicate code shared in sync and upgrade operations
12               - remove ShowSize; replaced with VerbosePkgLists (FS#15772)
13               - print callback (warning, error) messages to stderr (FS#25099)
14               - download progress callback has more room for filenames
15               - fix selection entry for long values (FS#25253)
16               - make config parsing two-pass process, enhance error messages
17               - print helpful tips on -Qi <filename> or -S <filename>
18               - replace libfetch with libcurl for backend download library
19                 - timeout when mirror is not responding (FS#15369)
20                 - full HTTPS protocol support (FS#22435)
21                 - support of non-traditional/redirected URLs (FS#22645)
22                 - ensure downloads are only resumed if appropriate (FS#23803)
23               - only remove empty directories if no remaining owner (FS#25141)
24               - better cache directory choosing and honor $TMPDIR (FS#25435)
25               - replaces are parsed as dependency-style strings (FS#23410)
26               - split package verification and load stages
27               - sync database reading refactor for performance
28               - filelists now have a dedicated type with metadata
29               - diskspace check no longer requires iterating package archives
30               - update and add checksum routines from PolarSSL
31               - validate sync database sha256sum if available
32               - correctly parse sizes in database > 2GiB
33               - API: several type renames from pm* to alpm_* prefix
34               - API: several enum constant renames from PM to ALPM_* prefix
35               - API: several types are now public exposed structs
36               - API: handle is no longer a single global variable
37               - API: more changes than can be mentioned here, see README
38               - much improved API documentation for use by Doxygen
39               - pactest: several performance/checking improvements
40               - scripts:
41                 - refactor some common components into shared bash library
42                 - split translations into pacman-scripts catalog (FS#15148)
43               - makepkg:
44                 - allow signing packages after creation
45                 - allow verifying source file signatures (FS#20448)
46                 - support UPX compression of executables (FS#17213)
47                 - allow usage of an alternate build directory (FS#22308)
48                 - cleancache option has been removed; use shell instead
49                 - improved variable sanity checking (FS#16004)
50                 - better handling of package extensions (.tar.Z or invalid)
51                 - allow PKGEXT/SRCEXT environment overrides (FS#19860)
52                 - only check for writable PKGDEST if necessary (FS#24735)
53                 - check_software function exits early if missing req'd binaries
54                 - do source packaging in fakeroot (FS#24330)
55                 - be more POSIX-compatible in use of `ln` (FS#24893)
56                 - handle spaces with filenames in noextract (FS#25100)
57               - pacman-key: new keyring management tool for signed data
58               - pacsort: new utility, sort version numbers as pacman does
59               - pactree: support sync databases with -s option
60               - pkgdelta: add a manpage
61               - repo-add:
62                 - handle and include package signatures in databases
63                 - verify database signature before modification
64                 - sign database after creation/modification
65                 - general script cleanup and bash-ification
66                 - add sha256sums to database (FS#23103)
67               - contrib/bacman: code cleanups and small bug fixes
68               - contrib/bash_completion: updates for new options/commands
69               - contrib/paccache: new, pacman cache cleanup script
70               - contrib/paclist: rewrite using bash
71               - contrib/paclog-pkglist: new, recover from missing local DB
72               - documentation: extensive updates to all manpages
73               - translations: extensive updates, new languages: lt, zh_TW
74 3.5.4         - fix display of lists on non-TTYs and other output fixes
75               - fix group selection entry for large inputs (FS#24253)
76               - fix divide by zero when downloading zero length files
77               - flush terminal input before reading response (FS#20538)
78               - allow files to be replaced by directories (FS#24904)
79               - makepkg: fix filenames with spaces and noextract (FS#25100)
80               - scripts: remove ln -f option for POSIX compliance (FS#24893)
81               - various small documentation updates
82               - minor translation updates: de, fi
83 3.5.3         - segfault when creating lock in non-existent dir (FS#24292)
84               - segfault when uninstalling broken backed-up symlink (FS#24230)
85               - --print should not enable --noconfirm (FS#24287)
86               - fix default path substitution in documentation
87               - makepkg: quote variables that may contain spaces (FS#24002)
88               - makepkg: fix creation of source package with -p (FS#24567)
89               - repo-add: include dotfiles in filelists (FS#24534)
90               - minor translation updates: de, fi, fr, sk, zh_CN
91 3.5.2         - ensure we show correct missing dependency info (FS#23424)
92               - pacman usage/--help updates (FS#23433, FS#23369)
93               - ensure stdout/stderr are flushed before prompts (FS#23492)
94               - compile/portability fixes for FreeBSD platform
95               - extensive documentation updates for alpm.h interfaces
96               - fix several missing pm_errno error code returns
97               - makepkg:
98                 - simplify log redirection and remove sync (FS#23378)
99                 - improve parsing for sanity checks (FS#23524)
100                 - avoid use of `tr` to avoid locale and other issues
101                 - fix GNU-ism in `su` invocation
102               - bacman: update for new local database format (FS#23641)
103               - extensive translation updates and fixes
104 3.5.1         - don't error on unknown pacman.conf directives (FS#23055)
105               - only read arguments from stdin if '-' is provided as target
106               - fix case with ignore handling in argument list (FS#23342)
107               - don't show group selection prompt with -Sp (FS#23340)
108               - restore old --debug/--verbose behavior (FS#23370)
109               - ensure repo DBs are saved with sane umask (FS#23343)
110               - fix segfault when a repo includes deltas entries (FS#23314)
111               - fix potential data corruption issue on sync DB read
112               - get zsh completion in a working state (FS#23322)
113               - makepkg: improve optdepends extraction (FS#23307)
114               - translations:
115                 - de: fix makepkg fatal error (FS#23315)
116                 - sr, sr@latin: new Serbian translation
117                 - various other translation updates
118               - build system: ensure libtool respects LDFLAGS (FS#23325)
119 3.5.0         - sync DBs read directly from the database tarball
120                 (FS#8586, FS#20233)
121               - local DB "depends" file has been merged into the "desc" file
122                 - pacman-db-upgrade script provided to update the local
123                   database format
124               - sync database extension is .db (without compression suffix)
125                 - requires repo-add from pacman-3.4+
126               - package versions can have an 'epoch' value defined that will
127                 overrule any version comparison
128                 - this replaces the use of the "force" option in allowing for
129                   package updates with versions that do not conform to the
130                   default version comparison operations
131                 - package versions have the format [epoch:]pkgver-pkgrel
132               - check available disk space before installing packages (FS#11639)
133                 - enabled by the "CheckSpace" option in pacman.conf
134                 - attempt to stop install if we hit an extraction issue
135                   (FS#7692, FS#22034)
136               - improved interactive selection for groups/provides
137                 (FS#19704, FS#19853)
138               - finer grained control of ignoring dependency resolution
139                 - -Sd to ignore dependency versions only
140                 - -Sdd to ignore all dependency information
141               - clean-up of --help output (FS#19526)
142               - CleanMethod for package cache cleaning can use both
143                 KeepInstalled and KeepCurrent simultaneously
144               - various speed-ups:
145                 - improved internal storage of the package cache
146                 - faster pkgname/depends searches
147               - use OpenSSL crypto functions if available
148               - makepkg:
149                 - add support for running testsuites in a check() function
150                   (FS#15145)
151                   - controlled by BUILDENV option 'check' in makepkg.conf
152                     which may be overridden by --check/--nocheck on the
153                     command-line
154                 - extract any file bsdtar recognizes
155                 - STRIP_DIRS has been removed in favor of stripping all
156                   recognized files
157                 - improve $srcdir/$pkgdir check to reduce false positives
158                 - $pkgname can be used in split package() functions (FS#22174)
159                 - added '!buildflags' option to allow unsetting of CFLAGS,
160                   CXXFLAGS and LDFLAGS
161               - repo-add: added -f/--files to create files database (FS#11302)
162               - pactree: rewritten in C using libalpm
163 3.4.3         - fix attempted double remove of all files issue during upgrades
164               - respect IgnorePkg/IgnoreGroup for group members (FS#19854)
165               - back out epoch changes; 3.5.X will handle them differently
166 3.4.2         - fix progress bar display with empty packages
167               - make pactest testsuite Python 2.7 compatible
168               - write epoch values in preparation for 3.5.X releases
169               - fix null pointer dereference in architecture check (FS#21668)
170               - documentation: remove unnecessary "|| return 1"
171               - contrib/bacman: update package compression selection
172               - contrib/PKGBUILD.vim: add a few more license options
173               - translations: es, kk, sv, pt, ru updated
174 3.4.1         - fix interaction of --needed and multiple repo groups (FS#20221)
175               - bash completion: small fixes to prevent alias problems
176               - rankmirrors: fix bogus/empty variable assignment (FS#19911)
177               - repo-add: ensure bare DB symlinks are relative (FS#20498)
178               - repo-add: fallback to copy if symlink not permitted (FS#19907)
179               - makepkg:
180                 - use absolute path to 'du' to exclude wrapper progs (FS#19932)
181                 - ensure $startdir check doesn't stall indefinitely (FS#19975)
182                 - fix repackaging with multiple passed packages (FS#20272)
183               - translations:
184                 - zh_CN: fix crash when using during install (FS#20188)
185                 - sk: new Slovak translation
186                 - pt: new European Portuguese translation
187                 - other small updates to various translations
188 3.4.0         - new "Architecture" option that will restrict pacman to
189                 installing only packages from the given architecture. Can be
190                 set to "auto" in which case the output of "uname -m" is used
191               - use "$arch" when specifying a mirror url to automatically
192                 select the correct architecture
193               - Installing packages with -U can handle installing
194                 dependencies, conflict resolution and replacing packages
195                 (FS#3492, FS#5798)
196               - can upgrade the system and install a new package using
197                 "pacman -Syu <pkg>" (FS#15581)
198               - new -D/--database operation for modifying package install
199                 reasons (FS#12950)
200               - new --print and --print-format options to output information
201                 in suitable format for wrapper scripts (FS#14208)
202               - only extract new entries when updating a repo database
203               - show "Required by" in -Sii output (FS#16244)
204               - -U and -R options always ask for confirmation
205               - allow -Qo to perform a functional 'which' (FS#8798)
206               - cache cleaning cleans all directories, not just first
207               - cleanupdelta: new utility to help remove unused deltas from
208                 a repo database
209               - bash completion: rewrite for size and performance (FS#16630)
210               - repo-add: handle removing the final package from a repo
211               - rankmirrors: rewrite using bash
212               - vercmp: does not link to libalpm to prevent upgrade issues
213               - makepkg:
214                 - automatically aborts on any errors during packaging
215                 - changelogs are now included via the "changelog" variable
216                 - override pkgver, pkgrel and arch in split packages (FS#15955)
217                 - repackaging without a package() function is deprecated
218                 - stricter syntax checking for backup and optdepends entries
219                 - file stripping options are configurable
220                 - New --pkg flag to allow building specific package(s) from
221                   split PKGBUILDs (FS#15956)
222                 - build() function is now optional (FS#15147)
223                 - warn about reference to build root in a package (FS#14751)
224                 - configure source package destination with SRCPKGDEST
225                 - major internal refactoring of handling tests ("[" to "[[")
226               - contrib/pactree: print reverse dependency tree
227 3.3.3         - correctly check the return code from opendir()
228               - fix possible infinite loop in alpm_list_remove()
229               - makepkg:
230                 - quote arrays to preserve spaces in arrays (FS#16871)
231                 - allow passing arguments with spaces
232                 - adjust preselected option for clearing cache
233               - translations:
234                 - zh_CN: fix positional parameter usage in makepkg (FS#16983)
235                 - el: fix Y/N response translation (FS#16568)
236 3.3.2         - fix infinite filesize download issue (FS#16359)
237               - fix bogus download size on TotalDownload
238               - documentation updates
239               - small translation updates
240               - repo-add: use size of target files and not symlinks
241               - repo-remove: create empty DB when all packages are removed
242 3.3.1         - use full path to ldconfig when calling in chroot
243               - optimize the check for modified databases during sync
244               - ensure installed libfetch is new enough
245               - have -Q ops return 1 when no package matches (FS#15938)
246               - skip SyncFirst dialog if unnecessary (FS#15810)
247               - misc documentation updates (FS#15870, FS#15984)
248               - testdb: be less verbose during checks
249               - existing translation updates
250               - two new translations: Norwegian, Swedish
251               - makepkg:
252                 - add --skipinteg option (FS#15830)
253                 - fix .PKGINFO creation with -R option (FS#15851)
254                 - always keep symlinks to sources when unpacking
255 3.3.0         - xdelta: many fixes and improvements
256                 - new pkgdelta script to create deltas
257                 - repo-add can add both deltas and packages to a database
258               - xz archive format supported for packages and databases
259               - in case of unresolvable packages, pacman now asks
260                 if they should be skipped instead of aborting
261               - -Suu synchronizes all packages with the version from the
262                 repository (including upgrade and downgrade)
263               - replace libdownload dependency by the original libfetch
264               - better support of -q/--quiet flag with -Qo and -Ql
265               - -Sp works without root (FS#8905)
266               - fix a bug where the replacement of a package failed because
267                 of a file conflict, and the package was lost (FS#9088)
268               - improved behavior of HoldPkg option (FS#9173)
269               - allow to ignore a package from a group (FS#12059)
270               - search package groups when searching a db (FS#13099)
271               - asciidoc fixes
272               - documentation updates
273               - repo-add: cleanups, improvements and speedup
274               - makepkg:
275                 - package splitting support! - see PKGBUILD-split.proto
276                 - limit fakeroot usage with addition of package() function
277                 - info is handled like man pages and not other documentation
278                 - configuration option for man/info page directories
279                 - added ability to automatically remove files from package
280                 - configuration option for default LDFLAGS
281                 - specify alternative configuration file with --config flag
282                 - check all integrity checksums provided in PKGBUILD
283                 - fix pkgver/pkgrel updating in SCM packages
284                 - BUILDSCRIPT option removed from makepkg.conf. Now specified
285                   during configure
286                 - enforce no ">" or "<" in provides array
287                 - package compression autodetection
288                 - check PKGBUILD for CRLF line endings
289                 - fix reading PKGBUILD from pipe
290                 - increase compatibility with BSDs & Mac OSX
291               - contrib
292                 - pacdiff - improvements and new -l flag for using locate
293                 - pacscripts - print install scripts for a package
294 3.2.2         - log pacsave warnings to pacman.log (FS#12531)
295               - separate local DB creation and writing (FS#12263)
296               - pacman-optimize: rewrite and refresh (FS#11767)
297               - repo-add: use openssl instead of md5sum
298               - simplify doc building process for ease of development
299               - ensure correct handling of syscall interruptions
300               - readd missing newline on -Qi/-Si output (FS#11331)
301               - fix TotalDownload regression (FS#11339)
302               - makepkg:
303                 - replace getopt with an internal function
304                 - detect incorrect usage of provides (FS#12540)
305                 - fix bash substitution to work in older versions
306                 - fix updating PKGBUILD and simplify logic for SCM packages
307                 - save/restore shell options before/after build() (FS#12344)
308               - documentation updates and asciidoc build fix
309               - existing translation updates
310 3.2.1         - drop special handling of file:// URLs
311               - display optdepends on install and upgrade
312               - fix segfault on x86_64 when using UseSyslog (FS#11096)
313               - fix detection of TotalDownload (FS#11180)
314               - fix "No such file" error during --force installs (FS#11218)
315               - better handling of progressbar when behind a proxy (FS#8725)
316               - repo-add: fix whitespace handling (FS#9171, FS#10630)
317               - repo-add: add optdepends to the sync DB (FS#10630)
318               - makepkg:
319                 - allow specifying a download filename (related to FS#11292)
320                 - fix download functions with weird URLs (FS#11076)
321                 - fix creation of source package with local files (FS#11149)
322                 - fix error when sourcing profile scripts (FS#11179)
323                 - perform case-insensitive checksum comparison (FS#11283)
324               - documentation and help updates (including fix for FS#11203)
325               - new Ukrainian translation
326               - existing translation updates
327 3.2.0         - removed -A/--add option from pacman frontend
328               - added --asexplicit option
329               - new remove option --unneeded
330               - add -Rss option to remove all dependencies
331               - removed useless -e/--dependsonly option
332               - config options are now case sensitive
333               - added CleanMethod option for variety in cache cleaning
334               - new Turkish translation, all others updated and revised
335               - handle multiple groups in -Ss and -Qs operations
336               - allow -q/--quiet option with -o/--own and -g/--groups options
337               - removed hack for packages with unknown installed size
338               - add SyncFirst option to pacman.conf
339               - support installation of versioned deps : pacman -S "dep>=2.0"
340               - add --enable-git-version configure flag to identify
341                 developmental build version
342               - do not duplicate packages in required by list
343               - pacman.static is no longer built
344               - all error messages use pm_fprintf
345               - disable geteuid in cygwin
346               - use off_t type for large file support
347               - add vercmp test script
348               - moved gensync and updatesync to contrib/
349               - rewrote pacsearch script in perl
350               - paclist script to list installed packages from a repo
351               - bacman script to make backup of package from filesystem
352               - combined repo-add and repo-remove into one script
353               - removed --force option from repo-add
354               - add --quiet option to repo-add/repo-remove
355               - update libtool version to 1.5.26
356               - allow disabling of internal download with new configure
357                 flag --disable-internal-download
358               - pactest can now check file permissions
359               - add the possibility to mark the pactests known to fail,
360                 which allows more informative results of make check
361               - libalpm-specific changes:
362                 - use dynamic string allocation in package structure
363                 - new functions for manipulating pmdepend_t objects
364                 - store replaces and force in local database
365                 - moved deptest functionality to backend
366                 - add alpm_checkdbconflicts function
367                 - fix PM_ERR_CONFLICTING_DEPS handling
368                 - cleanup of pmsyncpkg_t
369                 - add alpm_sync_newversion function
370                 - cleanup of alpm_list code
371                 - refactor of download code
372                 - download callback API changes
373                 - removed test_delta_md5sum and test_pkg_md5sum functions
374                 - add _alpm_archive_fgets function to read line-by-line from
375                   an archive
376                 - read .PKGINFO directly from package file with no temp file
377                 - native support for both libdownload and libfetch
378                 - rework delta algorithm (we still need script updates)
379                 - swap parameters of alpm_pkg_find for consistency with
380                   other find functions
381                 - swap parameters of PM_TRANS_CONV_INSTALL_IGNOREPKG to make
382                   more sense
383                 - fix -Rs when removing multiple items in dependency chain
384               - makepkg-specific changes:
385                 - support for resuming source downloads
386                 - added zipman option
387                 - removed -b/--builddeps
388                 - various portability fixes for BSD and Mac OS X
389                 - check for valid options in PKGBUILD
390                 - add --allsource option
391                 - remove deprecated --usesudo option
392                 - handle spaces in build directory
393                 - made keeping docs the default option
394                 - use pacman version dep resolving
395                 - fix regression in library stripping
396                 - make strip paths configurable
397               - MANY other bug fixes and small improvements
398 3.1.4         - various small code cleanups and fixes
399               - small documentation updates
400               - improvements to PKGBUILD.vim
401               - translation updates - ru, zh_CN
402 3.1.3         - major updates to i18n output in frontend (all UTF-8 characters
403                 should now work with varying byte and char widths)
404               - new Simplified Chinese translation
405               - updates to testpkg utility
406               - updates to PKGBUILD.vim
407               - internal updates for translations - use c-format on all
408                 strings, get rid of needless line numbers
409 3.1.2         - updates to proto.install, add ChangeLog.proto (FS#7231)
410               - add 'force' option to packages, and have repo-add respect it
411               - mark gensync and updatesync as deprecated
412               - fix pacman -Qo behavior on symlinks (FS#9473)
413               - fix segfault on a broken symlinks in backup code (FS#9235)
414               - ensure filename is determined correctly for a pkg (FS#9547)
415               - fix conflict progress bar with UTF-8 chars (FS#6437)
416               - fix chk_fileconflicts brokenness, ensure it reads entire list
417               - ensure -Sc operation locks DB, only checks DBs (FS#9609)
418               - minor documentation and message updates
419               - moved some translations to their more generic lang codes
420               - allow scripts to be run without gettext installed
421               - makepkg:
422                 - check to ensure we have non-URL sources (FS#9208)
423                 - ensure we strip binaries in /opt/ dirs (FS#9342)
424                 - check for VCS executable before using (FS#9230)
425                 - set sane umask before source extraction (FS#9242, FS#9362)
426 3.1.1         - fix versioned provisions handling- use '=' instead of ' ' which
427                 differs from original spec but better in long run (FS#9171)
428               - rename query --orphans to --unrequired (FS#9144)
429               - fix segfault when cachedir is unusable (FS#9186)
430               - missing SYMEXPORT on libalpm functions (FS#9155)
431               - notify of package replacements when using --noconfirm (FS#5179)
432               - fix usage of PKGEXT by gensync/updatesync (FS#9190)
433               - ensure correct dir permissions in database (FS#9176)
434               - ensure /tmp is created with correct permissions (FS#9183)
435               - disallow NULL section in parseconfig (reported on forums)
436               - remove Arch-specific pacman.conf and mirrorlist from source
437               - makepkg: --holdver option for devel PKGBUILDs (FS#9194)
438               - documentation updates (FS# 9142, 9146, 9175, 9192, 9204)
439               - many translation updates
440 3.1.0         - paths are now specified as absolute paths (or defaulting to
441                 under the specified root directory)
442               - all paths can be specified in pacman.conf or on command line
443               - updates to pacman clean operation- now cleans uninstalled
444                 packages and old sync DBs (FS#8061)
445               - remove all hardcoded paths and allow them to be set at
446                 configure/build time
447               - single mirrorfile- pacman substitutes the repository name in
448                 mirror file when $repo is found (FS#6389)
449               - New config file options: ShowSize, TotalDownload, IgnoreGroup,
450                 UseDelta
451               - all scripts have been gettext-ized and can be translated
452               - added testdb utility to check pacman DBs for common problems
453               - huge additions to pactest suite
454               - remove -F/--freshen operation
455               - add --ignoregroup option (FS#1592)
456               - --ignore and --ignoregroup accept comma separated lists
457               - add --needed option for --sync
458               - massive optimization and speedup for --owns
459               - add -q/--quiet option for -Ss/-Sl and -Q? output (FS#8470)
460               - add --asdeps option (install reason: dependency) (FS#7193)
461               - replace "Total Package Size" with "Total Download Size"
462                 (FS#4182)
463               - fix -Q options to work on installed packages AND package files
464               - change -Q/--query options to act as filters and increase their
465                 flexibility
466               - -U/-A <url> now downloads to cachedir (FS#6404)
467               - install and build dates are localized
468               - optdepends support
469               - delta support
470               - versioned provisions support
471               - versioned conflicts support
472               - add < and > operators for versioned dependencies and conflicts
473               - bash completion updates
474               - mirrorlist updates
475               - removed ABS script from codebase (now a separate project)
476               - allow multiple pacman cache directories
477               - all manpages are now generated using Asciidoc (FS#7312)
478               - moved parseconfig from backend library to frontend
479               - clean up and refactoring of the ENTIRE codebase
480                 - remove many useless #ifdefs
481                 - split many too-long functions
482                 - portability updates: compiles and passes tests on BSD and
483                   Darwin (switching libdownload->libfetch)
484                 - clean up build process
485                 - use of static code analysis
486                 - memory leak fixes all over the place
487                 - fix overzealous use of macros
488                 - entire codebase builds with -pedantic GCC option
489               - libalpm-specific changes:
490                 - moved location of sync DBs into their own folder to thwart
491                   deletion and remove naming limitations
492                 - REQUIREDBY entries are no longer used in local DB but are
493                   computed on the fly when needed, which should resolve
494                   phantom dependency issues (FS#7639)
495                 - ensure we export everything that should be public
496                 - fix some const correctness issues
497                 - add list tail ptr shortcut to make last element lookups O(1)
498                 - database dates are stored as seconds from epoch
499                 - removed SHA1 support
500                 - drop in new MD5 library
501                 - implement topological sorting for dependencies
502                 - do case sensitive compare in parse_descfile (FS#8081)
503                 - remove hardcoded architectures
504                 - conflicts checking speedups and fixes
505                 - move lockfile location to inside the DB
506                 - remove gettext calls from DEBUG messages
507                 - remove faulty diskspace checking
508                 - move functions out of alpm.c to where they belong
509                 - rewrite of file extraction code (FS#7484)
510               - makepkg-specific changes:
511                 - entire script has been functionalized
512                 - only runs in fakeroot when necessary
513                 - hard linked manpages are now compressed (FS#5392)
514                 - built-in versionpkg support
515                 - arch=('any') support (FS#8153)
516                 - clean up and prettify the output
517                 - replace tar/cpio/unzip with bsdtar (FS#7485)
518                 - add --ignorearch option (FS#7355)
519                 - improved error handling
520                 - downloads straight to $SRCDEST to avoid copies (FS#7271)
521                 - support for multiple download protocols (FS#4404)
522                 - remove --usesudo option, use it by default
523                 - add --asroot option to discourage building as root
524                 - add $srcdir and $pkgdir variables (FS#7278)
525                 - add source package creation option
526               - rankmirrors- allow reading from stdin (FS#8043)
527               - and many other updates: 198 bugs/FRs closed since 3.0.0 release
528               - switch to GIT for source code management
529 3.0.6         - config files updated to reflect current -> core change
530               - fix symlink overwriting issue (FS#7484)
531               - fix config parsing with tr_TR locale (FS#7235)
532               - use AC_SYS_LARGEFILE if available (FS#7578)
533 3.0.5         - add -mtune=generic to default CFLAGS in makepkg.conf
534               - small updates to translations
535               - repo-add: fix conflicts issue for real this time
536               - fix issue with libarchive incorrectly setting permissions
537 3.0.4         - updated translations
538               - repo-add: fix issue where conflicts were not put in database
539 3.0.3         - updated translations
540               - repo-add: fixed a desc file clobbering issue
541 3.0.2         - fix a bug where pre/post_remove scriptlets were not ran
542               - ensure ldconfig is ran in all operations
543               - added a few new translations, updated existing ones
544               - updated mirror lists
545               - makepkg: ensure CFLAGS are exported to build function
546 3.0.1         - fix a locale issue with tr_TR upper/lower-case conversion
547               - allow removal when listing the same package multiple times
548               - fix a repo-add bug that left a .PKGINFO file in the current
549                 directory
550               - proper error messages when we cannot read mtab for freespace
551 3.0.0         - first release based on libalpm backend
552               - added internationalization (gettext) support:
553                 - de, fr, hu, it, pt_BR, en_GB, ru_RU translations
554               - switch to usage of libdownload and libarchive
555               - improved proxy support using libdownload
556               - documentation - man pages updated, new conf manpages added
557               - repository mirror list updates
558               - added support for package changelogs
559               - logging of all install scriptlet messages to pacman.log
560               - orphans search (-Qe) now shows true orphans
561               - new -Qu option - show all packages that can be upgraded
562               - new -Se option - install only dependencies
563               - dependency sorting on install and removal
564               - check for free space before installing packages
565               - prompt to delete corrupted packages
566               - improved backup handling - backup array proactive on upgrade
567               - removed NoUpgrade lines from default pacman.conf
568               - new uncompressed size field, shown on sync upgrade
569               - improved progress and progressbar output
570               - reduced unnecessary calling of ldconfig
571               - selective loading of database to speed up certain operations
572               - debugging output improved with --debug flag
573               - pacman-optimize - now supports DBs on separate filesystem
574               - makepkg and abs now support conf files in home directory
575               - makepkg changes:
576                 - arch field is required
577                 - added -arch suffix to generated package filenames
578                 - new configuration file options format
579                 - changed default configuration
580                 - support alternate integrity checks
581                 - extract files using filetype, not extension
582                 - added noextract array
583                 - new options array format
584                 - new option to log build process
585                 - new --repackage option - repackage pkg/ without building
586                 - user-selectable paths for doc stripping
587                 - configurable source cache location
588                 - dependencies now removed on a build success or failure
589               - abs changes:
590                 - supports both cvsup and csup
591                 - expanded configuration
592                 - added support for testing repository
593               - new helper scripts:
594                 - rankmirrors - shows best available mirrors
595                 - repo-add - adds a package to a repo database file
596                 - repo-remove - removes a package from a repo database file
597               - added pactest testing suite
598               - MANY fixes and small improvements everywhere
599 2.9.8         - Changed behaviour with original=X,current=Y,new=Z scenario
600                 - keep old in place, install new as .pacnew
601               - Search package provides when finding matching targets with -S
602               - Frugalware: added -Qm option to find foreign packages
603               - Frugalware: added DistCC support to makepkg
604               - bugfix: before searching databases for a dependency, make sure
605                 one of the packages in the final list doesn't already provide
606                 that dependency
607               - fix for segfaults that occurred when propagating requiredby
608                 fields to replaced packages where one package depended on
609                 another replaced package
610               - a better fix for pacman-optimize integrity checks
611               - fix for regex searches with -Ss (Miklos Vajna)
612               - added a --noprogressbar for scripts to use
613 2.9.7         - fixed the dupe listings of packages when dealing w/ groups
614               - patches from Miklos Vajna:
615                 - add regexp search support for -Qs and -Ss
616                 - fixed md5sums on x86_64
617                 - add --sudosync to makepkg
618                 - show syntax help if an invalid option is used
619                 - added makepkg option to disable ccache support
620               - changed license field to operate as an array, not a string
621               - added more logic for file conflict checks - if one target
622                 is a file and the other is a directory, then it's a conflict
623               - fixed the integrity check in pacman-optimize
624               - reverted NoUpgrade to old behaviour and instead, added the
625                 NoExtract directive to pacman.conf, which prevents a file
626                 from ever being extracted on to the system
627                  eg, NoExtract = home/httpd/html/index.html
628 2.9.6         - added a pacman-optimize script to try and defragment the DB
629               - modified NoUpgrade behaviour to avoid extracting files
630                 that are missing from the filesystem -- this helps in
631                 situations where the admin does not want the file there, eg,
632                 remove index.html so index.php takes precedence
633               - fixed a bug where files would sometimes go missing if they
634                 moved from one package to another
635               - add db_remove() which is responsible for clearing out stale
636                 hash table entries when packages are removed
637               - added ccache support to makepkg
638               - patch from Aurelien Foret fixes a few memory leaks
639 2.9.5         - bugfix: missing files after re-ordering packages wrt
640                 deps with --upgrade
641               - added "Repository" line to -Si output
642               - patch from Tommi Rantala to fix trim() behaviour with
643                 empty or whitespace-only strings
644               - fixed removal order when using -Rc or -Rs
645 2.9.4         - fixed a bug that was introduced from another bugfix :-/
646 2.9.3         - fixed a couple manpage typos
647               - added --ignore to -S operations, works just like IgnorePkg
648               - respect IgnorePkg list when pulling in dependencies
649               - numerous memleak fixes
650               - some code changes to improve customizability/branding
651               - Makefile fix for nonstandard lib search paths (Kevin Piche)
652               - fixed the leftover directories in /tmp
653               - speed improvement patches from Tommi Rantala
654 2.9.2         - bugfix for 2.9.1
655 2.9.1         - --refresh now only downloads fresh packages lists if they've
656                 been updated (currently only works with FTP)
657 2.9           - Improved -Rs functionality -- pacman now tracks why a package
658                 is installed: explicitly, or as a dependency for another
659                 package.  -Rs will only remove dependencies that were not
660                 explicitly installed.
661               - Added compressed package size to sync DBs -- shows the total
662                 size of packages before downloading
663               - Patch from Tommi Rantala:
664                 - Allow --info and --list together in queries
665               - Patch from Kevin Piche:
666                 - Use list_add_sorted() with -Sg
667               - Patch from Hegedus Marton Csaba:
668                 - Better manpage compression
669               - Added checks for additional hyphens in package versions
670               - mktemp was failing if %pmo_root%/tmp was missing -- fixed
671 2.8.4         - Added updatesync script from Jason Chu
672               - Changed the pacman binary to be dynamically linked
673                 - Included a pacman.static binary as well
674                 - Added fakeroot checks when seeing if we're root
675               - Fixed makepkg to use 'tail -n 1' instead of 'tail -1'
676               - Added patch from Kevin Piche:
677                 - Cleanup db_loadpkgs(), add list_add_sorted()
678               - Fixed a memory leak in db_find_conflicts()
679 2.8.3         - Fixed a little makepkg bug with bash 3.0
680               - Fixed resolvedeps to always prefer literals over provisios
681               - Added --config option to specify an alternate config file
682               - Added "Include" directive to include repositories from
683                 config files (inspired by Michael Baehr's patch)
684               - Added patch from Jason Chu:
685                 - Even smarter file-conflict checking
686 2.8.2         - Fixed a segfault bug in file-conflict checks
687               - Made --noconfirm actually work.  Go me.
688 2.8.1         - Added a HoldPkg option in pacman.conf, for the more
689                 exploratory users who run things like "pacman -R pacman".  It
690                 will ask for confirmation before removing any packages listed
691                 in the HoldPkg list
692               - Added a --noconfirm switch for use with script automation
693               - Modified dependency resolution to prefer packages explicitly
694                 requested on the cmdline instead of those pulled in by
695                 resolvedeps().  Example, if neither "xorg" nor "xfree86" is
696                 installed and "blackbox xfree86" is requested, "xfree86" will
697                 be used instead of "xorg"
698               - Added patch from Jason Chu:
699                 - Smarter file-conflict checking with symlinked paths and
700                   with files that move from one package to another
701 2.8           - Bugfixes:
702                 - FS#861:  file:/// urls not handled properly with XferCommand
703                 - FS#1003: set umask before scriptlet calls
704                 - FS#1027: download problems with http urls using -U/-A
705                 - FS#1044: segfaults when using -Rs
706                 - FS#863:  "missing post_remove" errors with some packages
707                 - FS#875:  detect low disk space properly
708                 - FS#986:  makepkg -e doesn't validate files
709                 - FS#1010: add -j option to makepkg
710                 - FS#1028: make pacman -Sp runnable as non-root
711               - added pre_install and pre_upgrade scriptlet support
712               - added an "Architecture" field in the package meta-data
713               - added patch from Aurelien Foret which improves performance
714                 adding or removing packages
715               - added implementation of GNU's strverscmp function for better
716                 portability
717               - added explicit unlink() calls when --force is used, which
718                 prevents those nasty "Text file busy" errors when you
719                 force-upgrade something like pacman or glibc.
720 2.7.9         - added the "force" option to packages, so --sysupgrade can
721                 downgrade packages when it needs to
722 2.7.8         - added post_remove scriptlet support
723               - added -Qs option (FS#854)
724               - a provisio does not imply conflict, to make a provisio target
725                 conflict with anything else that provides the same thing, you
726                 can now do this by specifying the provisio target as both a
727                 provides and a conflict, eg:
728                    conflicts=('x-server')
729                    provides=('x-server')
730               - cleaned up the download progress bar a bit
731               - added %o parameter to XferCommand so wget can resume properly
732               - fixed a segfault in downloadfiles() (FS#787)
733               - patches from Oliver Burnett-Hall
734                 - gensync uses a better temp dir (FS#774)
735                 - PKGDEST can be set in makepkg.conf (FS#783)
736               - patches from Aurelien Foret
737                 - segfault fix, couple memory leaks
738                 - more sanity checks in "provides" searches
739                 - fixed a little display bug in the progress bar
740                 - made -Qip look like -Qi
741                 - -Sc now removes OLD packages from cache, use -Scc for all
742 2.7.7         - added an XferCommand directive that will make pacman use an
743                 external download utility like wget
744               - added a license field to package meta-data
745               - add url support to -A and -U operations (download packages)
746               - -Ss now searches thru provides fields
747               - added --dbonly option to -R
748 2.7.6         - added --print-uris option
749               - fixed an http download bug (FS#667)
750               - fixed a segfault related to replaces/conflicts handling
751 2.7.5         - "replaces" packages were ignoring IgnorePkg in pacman.conf
752               - fixed another bug in conflict handling
753               - found an out-dated reference to /usr/abs, fixed
754               - added a --recursive option for package removal, which removes
755                 all deps of a target that aren't required by other packages
756 2.7.4         - fixed a bug in conflict handling, where installing a
757                 conflicting package would fail even if the new package
758                 "provided" it
759               - if pacman sees a newer version of itself during an upgrade,
760                 it will ask to install itself first, then be re-run to upgrade
761                 the other packages.
762               - You can now use the --info option with --sync to display an
763                 uninstalled package's dependency info.
764               - Added a sane umask before db writes
765               - buffer overflow fix (FS#442)
766 2.7.3         - makepkg not longer strips files with .exe or .dll extensions
767               - Added Aurelien's patch:
768                 - proxy support (no authentication yet)
769                 - HTTP/1.1 support
770                 - an improved progress bar with transfer rates and ETA
771               - cleaned up warning output a bit
772 2.7.2         - Supressed "No such file" messages during stripping
773               - Removed extra newlines in /var/log/pacman.log
774               - Added a --noextract option to makepkg to skip source extraction
775 2.7.1         - Fixed a couple obscure segfaults
776               - LogFiles were logging incorrect dates - fixed
777               - Cleaned up md5sum output in makepkg -g
778               - Added (optional) colorized output messages to makepkg
779               - Renamed the "stable" repo to "release" in pacman.conf
780               - Renamed the "unofficial" repo to "extra" in pacman.conf
781 2.7           - Added build-time dependencies to makepkg (Jason Chu)
782               - Added md5sum integrity checking to packages in --sync
783                 mode (Aurelien Foret)
784               - Memory leak fixes (Aurelien Foret)
785               - Added CARCH variable to makepkg.conf for use in PKGBUILDs
786               - Added LogFile option for direct-to-file logging
787               - Added -Qii handling to show modified config files
788               - Allow --sync targets to specify an explicit repository to
789                 sync from (eg, pacman -S current/patch)
790 2.6.4         - Altered pacman_upgrade() to allow a package to replace itself
791 2.6.3         - A couple memory fixes in the new replaces code
792 2.6.2         - Fixed a memory cleanup bug
793               - Aurelien's patch:
794                 - FS#159 implemented (for -S and -R)
795                 - fixed a bug with pacman -Sg (pacman was browsing only one
796                   db to get groups)
797                 - fixed a bug with list_merge()
798                 - fixed some MLK (in dumppkg() and with "-Qi --orphans")
799                 - now "pacman -Sg" only displays groups (without content)
800                   whereas "pacman -Sg target1 target2" displays groups
801                   target1 and target2 with content
802 2.6.1         - Added http download support (Aurelien Foret)
803               - Improved makepkg's --builddeps behaviour when called via
804                 makeworld
805               - makepkg's md5 validation now occurs before source extraction
806               - makepkg delays fakeroot entry until after option parsing
807               - Fixed an argument-passing bug in fakeroot
808               - Modified pacman's behaviour wrt provides -- it now allows
809                 multiple packages to be installed, even if they provide the
810                 same thing (they were treated as conflicts before)
811 2.6           - Added group handling, so one can run 'pacman -S kde' and
812                 install all files from the KDE group
813               - Fixed a duplication bug in cascade package removal
814               - Added support for virtual provisions with "provides" tags
815               - When conflicts are encountered, pacman now offers the chance
816                 to remove the conflicting packages (provides or literals)
817               - Added support for renamed/combined packages with a "replaces"
818                 tag
819               - Added --nostrip option to makepkg
820               - Improved --search to list all packages from all repos when
821                 a search term is omitted
822               - Added logging support through syslog()
823               - Added fakeroot support to makepkg (RomanK)
824               - Added MD5sum generation/validation to makepkg (RomanK)
825               - Fixed a progress bar bug (Aurelien Foret)
826               - Sorted makepkg's .FILELISTs (Aurelien Foret)
827               - Targets are now re-ordered w.r.t. dependencies when
828                 using -A/-U
829               - Modified --search to work when called as -Sys
830               - Modified abs to use ABS_ROOT from /etc/abs/abs.conf (Aurelien)
831               - Other bug fixes
832 2.5.1         - Minor bug fixes
833 2.5           - Added an URL tag to package info
834               - Sped up package load times by about 500% by introducing
835                 a .FILELIST into the package
836               - Renamed the install scriptlet from ._install to .INSTALL
837               - Added patch from Aurlien Foret:
838                 - Better lock handling (RW and RO)
839                 - Sorted package order in -Qi's dependency lists
840                 - Added a DBPath option to pacman.conf
841                 - Fixed memory leaks
842                 - Added the --nodeps option to -S
843 2.4.1         - Fixed a bug in makepkg's option parsing
844 2.4           - Added getopt-style options to makeworld
845               - Added -w <destdir> to makepkg
846               - makeworld now properly handles packages with --builddeps
847               - Added patches from Aurelien Foret:
848                 - Cascading package removals. -Rc will remove a package and
849                   all packages that require it
850                 - Support for getopt-style options in makepkg
851                 - the REQUIREDBY field is now updated when a package is
852                   removed with --nodeps, then re-installed.
853                 - Avoids duplicate dependency checks with sync
854                 - Added a "NoPassiveFtp" option in pacman.conf
855                 - Improvements to the --query listings
856 2.3.2         - Added patches from Aurelien Foret:
857                 - FTP resume feature
858                 - removed the hit-^C-and-delete-the-downloading-file safety
859                 - IgnorePkg option in pacman.conf
860                 - FTPAGENT setting in makepkg.conf
861                 - Added --cleancache option to makepkg
862 2.3.1         - Fixed the progress bar overflow
863               - Pacman does not ask "Are you sure" when you use --downloadonly
864               - Switched up a couple makepkg options to be more consistent
865                 with pacman's options
866               - If you ^C out of a file download, the package will now be
867                 removed from the cache directory
868 2.3           - The beginnings of source-side dependency resolution, makepkg
869                 can now either A) download/install missing deps with pacman
870                 -S; or B) find missing deps in the /usr/abs tree and
871                 build/install them.
872               - Added a --nodeps option to makepkg
873               - Improved the --search output
874 2.2           - More bugfixes
875               - Added --downloadonly switch to --sync
876 2.1           - Lots of bugfixes
877               - Added support for multiple repositories
878               - Improved the config file layout
879               - Improved dependency resolution and sorting
880 2.0           - Added dependency functionality
881               - Completely new database format, similar to FreeBSD
882               - Better internal data structures
883               - Merged pacsync functionality into pacman
884               - Now uses libftp for all file retrieval (currently only ftp)
885               - Automatic dependency resolution, a la apt-get
886               - Moved config stuff from /etc/pacsync.conf to /etc/pacman.conf
887               - Much better backup file handling, now uses md5 hashes a la rpm
888 1.23          - Added install/upgrade/remove scripting control
889 1.22          - Some manpage typo fixes
890               - Added --root switch to pacsync
891               - Added --help and ability to specify a PKGBUILD to makepkg
892               - Switched default downloader to snarf
893 1.21          - Added better backup control -- upgrade/add and remove
894                 do different things with the -n switch
895 1.2           - Added wildcard handling
896               - Added man pages for makepkg and pacsync
897               - Added the pacsync utility for remote file fetching/sync
898 1.1           - Fixed some string-handling bugs
899               - Added better handling of configuration files and the like.
900                 If "file" is about to be removed, but it is designated to
901                 backed up, then it will be copied to "file.save"
902               - Changed db_find_conflicts() to ignore directories
903 1.0           - Initial Release
905 vim: set et spell spelllang=en_us: