* Moved entirely to alpm_pkg_get_* accessors, to read data on demand
* Mostly removed the INFRQ_ parameters from outside the be_files backend (making
the backend more extensible in the long run)
* packages created from _alpm_db_scan now have the db and origin set (making
accessors actually work for these packages)
* removed _alpm_db_ensure_pkgcache
* totally revamped the _alpm_checkconflicts function, making it cleaner and
easier to read (and thus fix in the long run) - maintainable code ftw
NOTE: feel free to rename the functions... I couldn't think of anything better
* removed an extra loop in sync.c:find_replacements - no sense in looping over
an entire DB while strcmp'ing the name, when we have get_pkgfromcache
Other:
* package struct "license" -> "licenses"
* Created _alpm_sync_find (duplicate code in some places, find_pkginsync
* Minor const correctness changes along the way
* fixed a couple extra '/' pathing issues (non-issues really)
* removed a duplicate pkg_cmp function
allows for the same bit operators to be used across the board on pkg_get
operations.
* Changed name of INFRQ_NONE -> INFRQ_BASE to more clearly reflect what it
does (loads pkg name and version).
* Added a few missing things on package functions, such as SYMEXPORT and
ALPM_LOG_FUNC.
* Slight updates to pmenv to print 'pass' and 'fail' instead of 'passed' and
'failed'. Keeps output a bit more concise.
* Fixed a doxygen comment spelling error. :P
* Added some provision switching hackery. This could probably use some
refactoring,.. it solves the following case:
pkg1 and pkg2 provide 'foo' and are both installed
pkg3 depends on 'foo' and so lists 'pkg1' in the REQUIREDBY db section
pkg1 is upgraded and no longer provides 'foo'
** This code ensures that the REQUIREDBY of pkg3 is updated to require pkg2
now instead of pkg1
about bigger DB changes later, but lets not screw anything up for release.
* Removed some weird uses of "not ... ==" usage in pactest- correct me if I'm
wrong, but isn't "!=" a lot more clean and concise?
* Print description of failed tests in the pactest summary. This could get
dirty with a lot of failed tests though, so watch out.
for and is a dependency of another package. (upgrade057)
* Removed man2html stuff from doc/Makefile.am.
* Patch: improved depends checking in _alpm_checkdeps
Nagy Gabor <ngaba@petra.hos.u-szeged.hu>
* Slight revisions to pmrule.py to allow for a PKG_PROVIDES test.
* Very quick updates to the pactest README.
* Added rules to some of the newer upgrade tests. Note: upgrade055 now fails
due to requiredby entries not being written packages that are dependencies
in a provides role.
* Unified some functions names "package" -> "pkg" for consistency
* Removed the goofy 'faketarget' stuff used for dep testing
* Renamed alpm_pkg_isin -> alpm_pkg_find
* Renamed alpm_db_readpkg -> alpm_db_get_pkg
Giovanni Scafora <linuxmania@gmail.com>
* added '-fstack-protector' flag to debug compile, to catch any buffer
overflows we may have in stack variables.
* Updated all of the language files, as the POT file was updated. NOTE FOR
TRANSLATORS, try to base your next contribution off of these, notice how
some msgids and messages have been wrapped to the next line- it makes it
easier to read anyway.
* More Makefile.am/configure.ac updates. 'make dist' and 'make distclean' now
work properly, with only one caveat- the automatic testing in distclean
doesn't do so hot as it is compiled with a default configure, which includes
the fakeroot-proof code (which does not cooperate with pactest).
* Added a Makefile.am for the pactest directory.
* Fixed conflict checking. I had mistakenly assumed that the transaction
packages were of type 'pmsyncpkg_t', but that is not the case. Reverted back
to pmpkg_t's and fixed some checking a bit.
* pactest results: PASSED = 71 (100.00%)
* Fixed a segfault in the conflict checking code
* Added an automatic failure in the case of -A/-U for a replacement of an
existing package. This requires a large amount of work and is postponed for
now. Example:
If ncmpc is installed, pacman -U /path/to/ncmpc-svn.pkg.tar.gz will fail
with and appropriate error message
properly
* Error when re-reading the DB for replacements, wrong info level
* Removed an duplicate debug message "checking for package replacements"
* Check ignorepkg for REAL upgrades...
* Properly check the NOSAVE flag
* some unlink_file (remove.c) cleanup
* fix indent level on handle.c
* Force libalpm paths to end with a '/' char
* Fixed 'target' looping in conflict.c (pmsyncpkg_t, not pmpkg_t)
* Added some debug output to cache and db scanning
** All pactest tests succeed again, yay **
from one package to another seemlessly (knock on wood). This is implemented
through the use of two skip lists in the trans struct- skip_add and
skip_remove, which replace the former trans->skiplist.
* Removed an unnecessary function parameter, added a necessary one.
* If a package has no backup files, print '(none)' under the heading so it is
more obvious.
* Updated my TODO list.
- the code should be clearer, more organized, commented, and have worthwhile
variable names now
- proactive backup=()s now work. That is, adding a file to a backup array
does what it should on the upgrade to that package, no longer forcing you to
wait a full upgrade cycle for it to take effect
* ldconfig was being run twice on an upgrade operation - fixed
* fixed another pm_fprintf/printf output corruption with the progress bars
* refactored some duplicate code for adjusting 'requiredby' lists
* Added config.rpath to .cvsignore
* Updated pot translation templates
* Located culprit of progress bar moving when unicode characters are used,
added a TODO note about it
* Removed '(target)' string from the sync.c error message, just like we did
from add.c yesterday
* Updated my TODO
unbelievable amount of strcmp() calls (25 million) due to the list searching.
This has been reimplemented with a set-intersection scheme, due to the fact
that file lists are always ordered. - NEEDS TESTING
* Minor clean up, "globalized" the str_cmp helper to match the alpm comparison
signature, so we can use it elsewhere.
descriptions, nor do we actually build them with the newest makepkg. The actual
implementation in here seems like it could be done better, and it soaks a large
amount of CPU time according to profilers.
from the PKGINFO, and size is the stat() size of the archive
* Removed the useless 'output' param from package.c:parse_descfile
* Installation progress
- Call progress callback once at 0% for initialization
- 'needdisp' was useless
- alpm_list_count is called an excessive amount in these nested loops. Now we
only call it once per iteration
- Use the compressed sizes for PROGRESS calcs as uncompressed (isize) is not
exact (it is missing metadata sizes), and thus produces > 100% numbers
* Cleanup up some error enum values
* Revamped the 'pmserver_t' functionality. Less allocation,
removed a param and cleaned up some duplicate URL parsing
* Makefile targets to rebuild po files now work - use 'make update-po' in
the po directories.
* Added two new translation templates as requested on the ML- 'it' and
'pt_BR'.
This commit might be a bit big for the mailing list to like on the commit
message. :)
packages to be upgraded in a -Su operation. Much of the code is duplicated from
sync.c.
TODO: move the implementation to upgrades.c, and reimplement the sync_sysupgrade
function in terms of this:
trans->packages = alpm_get_upgrades();
operations (now aborts on a corrupt archive)
* Fixed the pm_fprintf newline error that was plaguing us. It seems a line
resetting 'neednl' was removed a while back (by me). This causes all the
output errors we've been seeing
* scan loops no longer abort on corrupt entries
* reloading a cache package (and discovering it corrupt) no longer prints 2 messages
and uses the pre-build "remove from package cache" function
NOTE: The TODOs in there are important for later w.r.t. cleaning up corrupt DB
entries but there are some logical complexities with doing so, so I'm holding
off for now.
* The --debug params were goofy. New setup allows --debug without params,
--debug=<level> where level 1=debug output, 2=debug and download output,
3=debug, download, and function tracing output. This seems more sane to me.
* Removed PM_LOG_FLOW1 and PM_LOG_FLOW2. They were just confusing. When adding
new functions, it is near impossible to determin if your output should be
"flow1" or "flow2" without tracking all the way up the call chain. Rarely
would one ever say "ok, lets just show "flow2" output. These have both been
replaced with PM_LOG_DEBUG
* Removed the need for the root parameter on alpm_initialize. it is now
defaulted to PM_ROOT just like dbpath and cachedir. This allows alpm to be
initialized BEFORE option parsing in the front end, saving us some duplicate
variables in the frontend.
* Cleaned up front end variables due to early alpm_initialize call.
* Fix up add.c a bit better than it was in regards to FS #3492.
* Optimized the sqrt call in dependency cycle checking to a single call.
* Removal of an outdated comment.
* alpm_list_is_in --> alpm_list_find
* alpm_list_is_strin --> alpm_list_find_str
* Flip parameters of both functions to be inline with rest of alpm_list.
First commit, woohoo.
* Added alpm_list_remove_node for single list node removal
* Proper error checking/output for failed db_read/db_write (missing files)
* Invalid packages (missing files) are now removed from the package cache
* -Qs and -Ss output now look the same
* config.rpath causes errors on one machine I had, so I added it to CVS
* Fixed a "clobbered memory" issue when installing groups - only the outer list
should be free'd, not the contained data
optimizations in order to make the code much more readable and
type-checkable. Every enum in the library now has it's own type that
should be used instead of the generic 'unsigned char'. In addition,
several #define statements dealing with constants were converted to
enums.
Signed-off-by: Dan McGee <dpmcgee@gmail.com>
* Fixed -Ss output so as not to call alpm_list_getdata with a NULl list
* Added a NULL check in alpm_list_getdata
* Fixed alpm_list_add_sorted to properly handle a new / beginning insertions