Age | Commit message (Collapse) | Author |
|
|
|
ask just once per-set for exec/unexec.
Todo: forward-deps could be merged, but this might lead to dependency
loops, we have to detect them and act first
Todo: rewrite the other part of forward dependency handling (dep adjustment)
|
|
Add more levels, specifically, lots of info regarding individual files only
visible if -vvvvv.
Make -n display the same stuff as normal (need -n -v to display more stuff).
Introduce -s, "size-only", turns on -n and does skip any extraction.
Sprinkle handlers for SIG_INFO, not really nice yet.
Note that -n is non functional for complex updates, because of caching
issues I have to fix.
|
|
(better synch for packages that start with a huge binary)
|
|
This is more complex and simpler at the same time...
|
|
|
|
|
|
of conflict globally, add it as old handles, and then use it everywhere.
|
|
- match old spec against any of the new packages in the set.
- manage conflicts globally if several newer packages are there.
- remove the limit of 5 conflicting packages, it's no longer really relevant.
|
|
theo suggestion. Also go through the "state" object which simplifies code
a great deal)
|
|
Also: reset lastdisplay on clear, and don't clear twice.
|
|
instead of piping a lot of stuff to STDERR.
Go through state->print for most messages, so they will NOT do weird things
with the progressmeter.
Use a ->say shortcut which does the same thing that perl 5.10 say does...
|
|
actual errors !
|
|
|
|
|
|
It's likely there will be some fallout, but it's getting a bit too large
to keep around.
This does kill a few very old oddities as well.
|
|
|
|
switch the default digest to sha256.
It's been there for a few weeks, all package tools cope with both formats,
now is the time for the switch.
|
|
noticed by djm@
|
|
|
|
|
|
problem noticed by winiger@
|
|
into some directories.
a few minor style tweaks, such as using a nice join(map()) to build some
strings.
|
|
@exec-always @unexec-always
@exec-add @unexec-delete
@exec-update @unexec-update
with the obvious semantics that *update are only run during updates,
and *add/delete are only run during `pure' additions/removals.
This should solve the problem of those packages that `lose' manual
configuration when you update them (e.g., all the mod_xxx apache stuff
and postfix).
caveat: you will need to go through one finaly broken update before the
new stuff kicks in.
|
|
things at once, mostly.
|
|
- do a test to create partial-foo-1.0.1 instead of partial-partial-foo-1.0
when removing partial-foo fails.
- have .libs name generation, e.g., .libs-foo, then .libs1-foo, then .libs2-foo
instead of .libs-.libs-foo.... extend the pkgspec pattern slightly, so
that all these are more or less equivalent for dependencies and conflicts.
With this, we can do practically any scenario of shared libs updates and
downgrades.
|
|
to consider .libs-* as `special case', saving old libraries should do
the right thing in all cases, more or less...
|
|
|
|
moment.
|
|
`prepare_for_deletion' -> move that to Vstat, as it is common code.
Do the splitting of libraries through a deep copy and shallow copy, so that
we keep any State information related to libraries (like special group/owners).
|
|
packing-list, and the new, instead of doing `in-place' edition of the
plist contents.
|
|
|
|
Store shared libraries in a `better' format, which will also us
to report issues more nicely.
|
|
- mark all regexps I can with /o if they can be compiled once.
- turn $o->method() into $o->method
- remove unneeded prototypes
- reduce split /re/ into split "string" where possible.
|
|
|
|
(modes and owners without annotation WILL be refused).
Somewhat pedantic: skip archive entry during extraction of links/symlinks.
Doesn't change a thing, except in the very rare case where a package would
end with a link in the packing-list. Now we're able to detect a premature
end of the tarball.
(okay, it's an obscure bug, I haven't even met it for real. So what ?)
|
|
so loop directly over $set->older for replacements.
|
|
Create a common state class for delete and add, put the progressmeter
creation in there.
neat effect: we don't have a progressmeter, we use a stub class instead
and *never* pull the code in at all.
|
|
|
|
Just do one single try {} catchall {} per-method, as this is enough.
New methods: extract_and_progress, install_and_progress, that catch
interrupts (die) deal with fake, and handle the progress meter.
One single method: mark_progress, can be used for extraction, installation
and deletion.
|
|
|
|
already installed in a hash, and do a shallow copy of the list when
necessary, using make_copy.
This removes a lot of action-at-a-distance in packing-list elements.
|
|
|
|
in the same location.
|
|
from collision with old libs (and the result from figure_out_old_libs says
so), so don't pretend we're doing anything significant with them...
|
|
|
|
handle.
Also kill very old @exec tests.
|
|
|
|
This lets the pkg_add regress pass, finally.
|
|
|