2 -----------------------------------------------------------------------------
3 3.1.0 - paths are now specified as absolute paths (or defaulting to
4 under the specified root directory)
5 - all paths can be specified in pacman.conf or on command line
6 - updates to pacman clean operation- now cleans uninstalled
7 packages and old sync DBs (FS#8061)
8 - remove all hardcoded paths and allow them to be set at
10 - single mirrorfile- pacman substitutes the repository name in
11 mirror file when $repo is found (FS#6389)
12 - New config file options: ShowSize, TotalDownload, IgnoreGroup,
14 - all scripts have been gettext-ized and can be translated
15 - added testdb utility to check pacman DBs for common problems
16 - huge additions to pactest suite
17 - remove -F/--freshen operation
18 - add --ignoregroup option (FS#1592)
19 - --ignore and --ignoregroup accept comma separated lists
20 - add --needed option for --sync
21 - massive optimization and speedup for --owns
22 - add -q/--quiet option for -Ss/-Sl and -Q? output (FS#8470)
23 - add --asdeps option (install reason: dependency) (FS#7193)
24 - replace "Total Package Size" with "Total Download Size"
26 - fix -Q options to work on installed packages AND package files
27 - change -Q/--query options to act as filters and increase their
29 - -U/-A <url> now downloads to cachedir (FS#6404)
30 - install and build dates are localized
33 - versioned provisions support
34 - bash completion updates
36 - allow multiple pacman cache directories
37 - all manpages are now generated using Asciidoc (FS#7312)
38 - moved parseconfig from backend library to frontend
39 - clean up and refactoring of the ENTIRE codebase
40 - remove many useless #ifdefs
41 - split many too-long functions
42 - portability updates: compiles and passes tests on BSD and
43 Darwin (switching libdownload->libfetch)
44 - clean up build process
45 - use of static code analysis
46 - memory leak fixes all over the place
47 - fix overzealous use of macros
48 - entire codebase builds with -pedantic GCC option
49 - allow abs to not be included (FS#7319)
50 - libalpm-specific changes:
51 - moved location of sync DBs into their own folder to thwart
52 deletion and remove naming limitations
53 - REQUIREDBY entries are no longer used in local DB but are
54 computed on the fly when needed, which should resolve
55 phantom dependency issues (FS#7639)
56 - ensure we export everything that should be public
57 - fix some const correctness issues
58 - add list tail ptr shortcut to make last element lookups O(1)
59 - database dates are stored as seconds from epoch
60 - removed SHA1 support
61 - drop in new MD5 library
62 - implement topological sorting for dependencies
63 - do case sensitive compare in parse_descfile (FS#8081)
64 - remove hardcoded architectures
65 - conflicts checking speedups and fixes
66 - move lockfile location to inside the DB
67 - remove gettext calls from DEBUG messages
68 - remove faulty diskspace checking
69 - move functions out of alpm.c to where they belong
70 - rewrite of file extraction code (FS#7484)
71 - makepkg-specific changes:
72 - entire script has been functionalized
73 - only runs in fakeroot when necessary
74 - hard linked manpages are now compressed (FS#5392)
75 - built-in versionpkg support
76 - arch=('any') support (FS#8153)
77 - clean up and prettify the output
78 - replace tar/cpio/unzip with bsdtar (FS#7485)
79 - add --ignorearch option (FS#7355)
80 - improved error handling
81 - downloads straight to $SRCDEST to avoid copies (FS#7271)
82 - support for multiple download protocols (FS#4404)
83 - remove --usesudo option, use it by default
84 - add --asroot option to discourage building as root
85 - add $srcdir and $pkgdir variables (FS#7278)
86 - add source package creation option
87 - rankmirrors- allow reading from stdin (FS#8043)
88 - and many other updates: 198 bugs/FRs closed since 3.0.0 release
89 - switch to GIT for source code management
90 3.0.6 - config files updated to reflect current -> core change
91 - fix symlink overwriting issue (FS#7484)
92 - fix config parsing with tr_TR locale (FS#7235)
93 - use AC_SYS_LARGEFILE if available (FS#7578)
94 3.0.5 - add -mtune=generic to default CFLAGS in makepkg.conf
95 - small updates to translations
96 - repo-add: fix conflicts issue for real this time
97 - fix issue with libarchive incorrectly setting permissions
98 3.0.4 - updated translations
99 - repo-add: fix issue where conflicts were not put in database
100 3.0.3 - updated translations
101 - repo-add: fixed a desc file clobbering issue
102 3.0.2 - fix a bug where pre/post_remove scriptlets were not ran
103 - ensure ldconfig is ran in all operations
104 - added a few new translations, updated existing ones
105 - updated mirror lists
106 - makepkg: ensure CFLAGS are exported to build function
107 3.0.1 - fix a locale issue with tr_TR upper/lower-case conversion
108 - allow removal when listing the same package multiple times
109 - fix a repo-add bug that left a .PKGINFO file in the current
111 - proper error messages when we cannot read mtab for freespace
112 3.0.0 - first release based on libalpm backend
113 - added internationalization (gettext) support:
114 - de, fr, hu, it, pt_BR, en_GB, ru_RU translations
115 - switch to usage of libdownload and libarchive
116 - improved proxy support using libdownload
117 - documentation - man pages updated, new conf manpages added
118 - repository mirror list updates
119 - added support for package changelogs
120 - logging of all install scriptlet messages to pacman.log
121 - orphans search (-Qe) now shows true orphans
122 - new -Qu option - show all packages that can be upgraded
123 - new -Se option - install only dependencies
124 - dependency sorting on install and removal
125 - check for free space before installing packages
126 - prompt to delete corrupted packages
127 - improved backup handling - backup array proactive on upgrade
128 - removed NoUpgrade lines from default pacman.conf
129 - new uncompressed size field, shown on sync upgrade
130 - improved progress and progressbar output
131 - reduced unnecessary calling of ldconfig
132 - selective loading of database to speed up certain operations
133 - debugging output improved with --debug flag
134 - pacman-optimize - now supports DBs on separate filesystem
135 - makepkg and abs now support conf files in home directory
137 - arch field is required
138 - added -arch suffix to generated package filenames
139 - new configuration file options format
140 - changed default configuration
141 - support alternate integrity checks
142 - extract files using filetype, not extension
143 - added noextract array
144 - new options array format
145 - new option to log build process
146 - new --repackage option - repackage pkg/ without building
147 - user-selectable paths for doc stripping
148 - configurable source cache location
149 - dependencies now removed on a build success or failure
151 - supports both cvsup and csup
152 - expanded configuration
153 - added support for testing repository
154 - new helper scripts:
155 - rankmirrors - shows best available mirrors
156 - repo-add - adds a package to a repo database file
157 - repo-remove - removes a package from a repo database file
158 - added pactest testing suite
159 - MANY fixes and small improvements everywhere
160 2.9.8 - Changed behaviour with original=X,current=Y,new=Z scenario
161 - keep old in place, install new as .pacnew
162 - Search package provides when finding matching targets with -S
163 - Frugalware: added -Qm option to find foreign packages
164 - Frugalware: added DistCC support to makepkg
165 - bugfix: before searching databases for a dependency, make sure
166 one of the packages in the final list doesn't already provide
168 - fix for segfaults that occurred when propagating requiredby
169 fields to replaced packages where one package depended on
170 another replaced package
171 - a better fix for pacman-optimize integrity checks
172 - fix for regex searches with -Ss (Miklos Vajna)
173 - added a --noprogressbar for scripts to use
174 2.9.7 - fixed the dupe listings of packages when dealing w/ groups
175 - patches from Miklos Vajna:
176 - add regexp search support for -Qs and -Ss
177 - fixed md5sums on x86_64
178 - add --sudosync to makepkg
179 - show syntax help if an invalid option is used
180 - added makepkg option to disable ccache support
181 - changed license field to operate as an array, not a string
182 - added more logic for file conflict checks - if one target
183 is a file and the other is a directory, then it's a conflict
184 - fixed the integrity check in pacman-optimize
185 - reverted NoUpgrade to old behaviour and instead, added the
186 NoExtract directive to pacman.conf, which prevents a file
187 from ever being extracted on to the system
188 eg, NoExtract = home/httpd/html/index.html
189 2.9.6 - added a pacman-optimize script to try and defragment the DB
190 - modified NoUpgrade behaviour to avoid extracting files
191 that are missing from the filesystem -- this helps in
192 situations where the admin does not want the file there, eg,
193 remove index.html so index.php takes precedence
194 - fixed a bug where files would sometimes go missing if they
195 moved from one package to another
196 - add db_remove() which is responsible for clearing out stale
197 hash table entries when packages are removed
198 - added ccache support to makepkg
199 - patch from Aurelien Foret fixes a few memory leaks
200 2.9.5 - bugfix: missing files after re-ordering packages wrt
202 - added "Repository" line to -Si output
203 - patch from Tommi Rantala to fix trim() behaviour with
204 empty or whitespace-only strings
205 - fixed removal order when using -Rc or -Rs
206 2.9.4 - fixed a bug that was introduced from another bugfix :-/
207 2.9.3 - fixed a couple manpage typos
208 - added --ignore to -S operations, works just like IgnorePkg
209 - respect IgnorePkg list when pulling in dependencies
210 - numerous memleak fixes
211 - some code changes to improve customizability/branding
212 - Makefile fix for nonstandard lib search paths (Kevin Piche)
213 - fixed the leftover directories in /tmp
214 - speed improvement patches from Tommi Rantala
215 2.9.2 - bugfix for 2.9.1
216 2.9.1 - --refresh now only downloads fresh packages lists if they've
217 been updated (currently only works with FTP)
218 2.9 - Improved -Rs functionality -- pacman now tracks why a package
219 is installed: explicitly, or as a dependency for another
220 package. -Rs will only remove dependencies that were not
221 explicitly installed.
222 - Added compressed package size to sync DBs -- shows the total
223 size of packages before downloading
224 - Patch from Tommi Rantala:
225 - Allow --info and --list together in queries
226 - Patch from Kevin Piche:
227 - Use list_add_sorted() with -Sg
228 - Patch from Hegedus Marton Csaba:
229 - Better manpage compression
230 - Added checks for additional hyphens in package versions
231 - mktemp was failing if %pmo_root%/tmp was missing -- fixed
232 2.8.4 - Added updatesync script from Jason Chu
233 - Changed the pacman binary to be dynamically linked
234 - Included a pacman.static binary as well
235 - Added fakeroot checks when seeing if we're root
236 - Fixed makepkg to use 'tail -n 1' instead of 'tail -1'
237 - Added patch from Kevin Piche:
238 - Cleanup db_loadpkgs(), add list_add_sorted()
239 - Fixed a memory leak in db_find_conflicts()
240 2.8.3 - Fixed a little makepkg bug with bash 3.0
241 - Fixed resolvedeps to always prefer literals over provisios
242 - Added --config option to specify an alternate config file
243 - Added "Include" directive to include repositories from
244 config files (inspired by Michael Baehr's patch)
245 - Added patch from Jason Chu:
246 - Even smarter file-conflict checking
247 2.8.2 - Fixed a segfault bug in file-conflict checks
248 - Made --noconfirm actually work. Go me.
249 2.8.1 - Added a HoldPkg option in pacman.conf, for the more
250 exploratory users who run things like "pacman -R pacman". It
251 will ask for confirmation before removing any packages listed
253 - Added a --noconfirm switch for use with script automation
254 - Modified dependency resolution to prefer packages explicitly
255 requested on the cmdline instead of those pulled in by
256 resolvedeps(). Example, if neither "xorg" nor "xfree86" is
257 installed and "blackbox xfree86" is requested, "xfree86" will
258 be used instead of "xorg"
259 - Added patch from Jason Chu:
260 - Smarter file-conflict checking with symlinked paths and
261 with files that move from one package to another
263 - FS#861: file:/// urls not handled properly with XferCommand
264 - FS#1003: set umask before scriptlet calls
265 - FS#1027: download problems with http urls using -U/-A
266 - FS#1044: segfaults when using -Rs
267 - FS#863: "missing post_remove" errors with some packages
268 - FS#875: detect low disk space properly
269 - FS#986: makepkg -e doesn't validate files
270 - FS#1010: add -j option to makepkg
271 - FS#1028: make pacman -Sp runnable as non-root
272 - added pre_install and pre_upgrade scriptlet support
273 - added an "Architecture" field in the package meta-data
274 - added patch from Aurelien Foret which improves performance
275 adding or removing packages
276 - added implementation of GNU's strverscmp function for better
278 - added explicit unlink() calls when --force is used, which
279 prevents those nasty "Text file busy" errors when you
280 force-upgrade something like pacman or glibc.
281 2.7.9 - added the "force" option to packages, so --sysupgrade can
282 downgrade packages when it needs to
283 2.7.8 - added post_remove scriptlet support
284 - added -Qs option (FS#854)
285 - a provisio does not imply conflict, to make a provisio target
286 conflict with anything else that provides the same thing, you
287 can now do this by specifying the provisio target as both a
288 provides and a conflict, eg:
289 conflicts=('x-server')
290 provides=('x-server')
291 - cleaned up the download progress bar a bit
292 - added %o parameter to XferCommand so wget can resume properly
293 - fixed a segfault in downloadfiles() (FS#787)
294 - patches from Oliver Burnett-Hall
295 - gensync uses a better temp dir (FS#774)
296 - PKGDEST can be set in makepkg.conf (FS#783)
297 - patches from Aurelien Foret
298 - segfault fix, couple memory leaks
299 - more sanity checks in "provides" searches
300 - fixed a little display bug in the progress bar
301 - made -Qip look like -Qi
302 - -Sc now removes OLD packages from cache, use -Scc for all
303 2.7.7 - added an XferCommand directive that will make pacman use an
304 external download utility like wget
305 - added a license field to package meta-data
306 - add url support to -A and -U operations (download packages)
307 - -Ss now searches thru provides fields
308 - added --dbonly option to -R
309 2.7.6 - added --print-uris option
310 - fixed an http download bug (FS#667)
311 - fixed a segfault related to replaces/conflicts handling
312 2.7.5 - "replaces" packages were ignoring IgnorePkg in pacman.conf
313 - fixed another bug in conflict handling
314 - found an out-dated reference to /usr/abs, fixed
315 - added a --recursive option for package removal, which removes
316 all deps of a target that aren't required by other packages
317 2.7.4 - fixed a bug in conflict handling, where installing a
318 conflicting package would fail even if the new package
320 - if pacman sees a newer version of itself during an upgrade,
321 it will ask to install itself first, then be re-run to upgrade
323 - You can now use the --info option with --sync to display an
324 uninstalled package's dependency info.
325 - Added a sane umask before db writes
326 - buffer overflow fix (FS#442)
327 2.7.3 - makepkg not longer strips files with .exe or .dll extensions
328 - Added Aurelien's patch:
329 - proxy support (no authentication yet)
331 - an improved progress bar with transfer rates and ETA
332 - cleaned up warning output a bit
333 2.7.2 - Supressed "No such file" messages during stripping
334 - Removed extra newlines in /var/log/pacman.log
335 - Added a --noextract option to makepkg to skip source extraction
336 2.7.1 - Fixed a couple obscure segfaults
337 - LogFiles were logging incorrect dates - fixed
338 - Cleaned up md5sum output in makepkg -g
339 - Added (optional) colorized output messages to makepkg
340 - Renamed the "stable" repo to "release" in pacman.conf
341 - Renamed the "unofficial" repo to "extra" in pacman.conf
342 2.7 - Added build-time dependencies to makepkg (Jason Chu)
343 - Added md5sum integrity checking to packages in --sync
344 mode (Aurelien Foret)
345 - Memory leak fixes (Aurelien Foret)
346 - Added CARCH variable to makepkg.conf for use in PKGBUILDs
347 - Added LogFile option for direct-to-file logging
348 - Added -Qii handling to show modified config files
349 - Allow --sync targets to specify an explicit repository to
350 sync from (eg, pacman -S current/patch)
351 2.6.4 - Altered pacman_upgrade() to allow a package to replace itself
352 2.6.3 - A couple memory fixes in the new replaces code
353 2.6.2 - Fixed a memory cleanup bug
355 - FS#159 implemented (for -S and -R)
356 - fixed a bug with pacman -Sg (pacman was browsing only one
358 - fixed a bug with list_merge()
359 - fixed some MLK (in dumppkg() and with "-Qi --orphans")
360 - now "pacman -Sg" only displays groups (without content)
361 whereas "pacman -Sg target1 target2" displays groups
362 target1 and target2 with content
363 2.6.1 - Added http download support (Aurelien Foret)
364 - Improved makepkg's --builddeps behaviour when called via
366 - makepkg's md5 validation now occurs before source extraction
367 - makepkg delays fakeroot entry until after option parsing
368 - Fixed an argument-passing bug in fakeroot
369 - Modified pacman's behaviour wrt provides -- it now allows
370 multiple packages to be installed, even if they provide the
371 same thing (they were treated as conflicts before)
372 2.6 - Added group handling, so one can run 'pacman -S kde' and
373 install all files from the KDE group
374 - Fixed a duplication bug in cascade package removal
375 - Added support for virtual provisions with "provides" tags
376 - When conflicts are encountered, pacman now offers the chance
377 to remove the conflicting packages (provides or literals)
378 - Added support for renamed/combined packages with a "replaces"
380 - Added --nostrip option to makepkg
381 - Improved --search to list all packages from all repos when
382 a search term is omitted
383 - Added logging support through syslog()
384 - Added fakeroot support to makepkg (RomanK)
385 - Added MD5sum generation/validation to makepkg (RomanK)
386 - Fixed a progress bar bug (Aurelien Foret)
387 - Sorted makepkg's .FILELISTs (Aurelien Foret)
388 - Targets are now re-ordered w.r.t. dependencies when
390 - Modified --search to work when called as -Sys
391 - Modified abs to use ABS_ROOT from /etc/abs/abs.conf (Aurelien)
393 2.5.1 - Minor bug fixes
394 2.5 - Added an URL tag to package info
395 - Sped up package load times by about 500% by introducing
396 a .FILELIST into the package
397 - Renamed the install scriptlet from ._install to .INSTALL
398 - Added patch from Aurlien Foret:
399 - Better lock handling (RW and RO)
400 - Sorted package order in -Qi's dependency lists
401 - Added a DBPath option to pacman.conf
403 - Added the --nodeps option to -S
404 2.4.1 - Fixed a bug in makepkg's option parsing
405 2.4 - Added getopt-style options to makeworld
406 - Added -w <destdir> to makepkg
407 - makeworld now properly handles packages with --builddeps
408 - Added patches from Aurelien Foret:
409 - Cascading package removals. -Rc will remove a package and
410 all packages that require it
411 - Support for getopt-style options in makepkg
412 - the REQUIREDBY field is now updated when a package is
413 removed with --nodeps, then re-installed.
414 - Avoids duplicate dependency checks with sync
415 - Added a "NoPassiveFtp" option in pacman.conf
416 - Improvements to the --query listings
417 2.3.2 - Added patches from Aurelien Foret:
419 - removed the hit-^C-and-delete-the-downloading-file safety
420 - IgnorePkg option in pacman.conf
421 - FTPAGENT setting in makepkg.conf
422 - Added --cleancache option to makepkg
423 2.3.1 - Fixed the progress bar overflow
424 - Pacman does not ask "Are you sure" when you use --downloadonly
425 - Switched up a couple makepkg options to be more consistent
426 with pacman's options
427 - If you ^C out of a file download, the package will now be
428 removed from the cache directory
429 2.3 - The beginnings of source-side dependency resolution, makepkg
430 can now either A) download/install missing deps with pacman
431 -S; or B) find missing deps in the /usr/abs tree and
433 - Added a --nodeps option to makepkg
434 - Improved the --search output
436 - Added --downloadonly switch to --sync
437 2.1 - Lots of bugfixes
438 - Added support for multiple respositories
439 - Improved the config file layout
440 - Improved dependency resolution and sorting
441 2.0 - Added dependency functionality
442 - Completely new database format, similar to FreeBSD
443 - Better internal data structures
444 - Merged pacsync functionality into pacman
445 - Now uses libftp for all file retrieval (currently only ftp)
446 - Automatic dependency resolution, a la apt-get
447 - Moved config stuff from /etc/pacsync.conf to /etc/pacman.conf
448 - Much better backup file handling, now uses md5 hashes a la rpm
449 1.23 - Added install/upgrade/remove scripting control
450 1.22 - Some manpage typo fixes
451 - Added --root switch to pacsync
452 - Added --help and ability to specify a PKGBUILD to makepkg
453 - Switched default downloader to snarf
454 1.21 - Added better backup control -- upgrade/add and remove
455 do different things with the -n switch
456 1.2 - Added wildcard handling
457 - Added man pages for makepkg and pacsync
458 - Added the pacsync utility for remote file fetching/sync
459 1.1 - Fixed some string-handling bugs
460 - Added better handling of configuration files and the like.
461 If "file" is about to be removed, but it is designated to
462 backed up, then it will be copied to "file.save"
463 - Changed db_find_conflicts() to ignore directories
464 1.0 - Initial Release