On 29/03/2009, at 5:34 AM, Dan McGee wrote:
On Fri, Feb 20, 2009 at 2:31 AM, Sebastian Nowicki
<[email protected]> wrote:
This allows a frontend to define its own download algorithm so that
the
libfetch dependency can be omitted without using an external
process. The
callback will be used if it is defined, otherwise the internal method
(libfetch) is used, if available.
The external download method was moved to pacman and is set as the
fetch
callback, if the command is defined in the configuration file. As a
result,
alpm_option_get_xfercommand() and alpm_option_set_xfercommand()
have been
removed.
Signed-off-by: Sebastian Nowicki <[email protected]>
cc1: warnings being treated as errors
dload.c: In function ‘download’:
dload.c:274: error: passing argument 4 of ‘handle->fetchcb’ makes
pointer from integer without a cast
(you used mtimeold twice)
handle.c: In function ‘_alpm_handle_free’:
handle.c:81: error: ‘pmhandle_t’ has no member named ‘xfercommand’
handle.c:81: error: ‘pmhandle_t’ has no member named ‘xfercommand’
(just kill the line)
In file included from pacman.c:52:
conf.h:26:1: error: "PATH_MAX" redefined
In file included from /usr/include/bits/local_lim.h:39,
from /usr/include/bits/posix1_lim.h:153,
from /usr/include/limits.h:145,
from
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.3.3/include-fixed/limits.h:
122,
from
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.3.3/include-fixed/
syslimits.h:7,
from
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.3.3/include-fixed/limits.h:11,
from pacman.c:30:
/usr/include/linux/limits.h:12:1: error: this is the location of the
previous definition
Don't mess with that path_max #ifdef junk- although it does look like
we interchange <sys/syslimits.h> and <limits.h> to get the definition
of PATH_MAX. Which one is correct?
Do you guys compile these patches first? :P
I compiled it and tested. I must have not compiled with --enable-debug
or something. Perhaps my last change broke it (I might have forgotten
to test, oops), which is more likely. Sorry either way.
I'm assuming the below code didn't really change from what was in the
backend- can you verify this, or point out what you did modify?
For the most part, yes. I did "inline" some functions, which were
static. There might have been other minor changes.
Quickly looking over the log, I changed this:
filename = get_filename(url);
if(!filename) {
RET_ERR(PM_ERR_EXTERNAL_DOWNLOAD, -1);
}
destfile = get_destfile(localpath, filename);
tempfile = get_tempfile(localpath, filename);
To this:
filename = strrchr(url, '/');
if(!filename) {
return -1;
} else {
filename++; /* omit leading slash */
}
len = strlen(localpath) + strlen(filename) + 1;
destfile = calloc(len, sizeof(*destfile));
snprintf(destfile, len, "%s%s", localpath, filename);
len += 5; /* ".part" */
tempfile = calloc(len, sizeof(*tempfile));
snprintf(tempfile, len, "%s.part", destfile);
I'll fix the patch up tomorrow.
_______________________________________________
pacman-dev mailing list
[email protected]
http://www.archlinux.org/mailman/listinfo/pacman-dev