summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.ac34
-rw-r--r--lib/libalpm/alpm.c6
-rw-r--r--lib/libalpm/dload.c6
-rw-r--r--lib/libalpm/error.c4
4 files changed, 24 insertions, 26 deletions
diff --git a/configure.ac b/configure.ac
index e0aafba6..4341f1f5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -94,9 +94,9 @@ AC_ARG_WITH(openssl,
[], [with_openssl=check])
# Help line for libfetch
-AC_ARG_ENABLE(internal-download,
- AS_HELP_STRING([--disable-internal-download], [do not build with libfetch support]),
- [internaldownload=$enableval], [internaldownload=yes])
+AC_ARG_WITH(fetch,
+ AS_HELP_STRING([--with-fetch], [use libfetch as an internal downloader]),
+ [], [with_fetch=check])
# Help line for documentation
AC_ARG_ENABLE(doc,
@@ -150,21 +150,20 @@ AM_CONDITIONAL([HAVE_LIBSSL], [test "x$ac_cv_lib_ssl_MD5_Final" = "xyes"])
# Enable or disable usage of libfetch
AC_MSG_CHECKING(whether to link with libfetch)
-if test "x$internaldownload" = "xyes" ; then
- AC_MSG_RESULT(yes)
- AC_DEFINE([INTERNAL_DOWNLOAD], , [Use internal download library])
- # Check for a download library if it was actually requested
+AS_IF([test "x$with_fetch" = "xyes"],
+ [AC_MSG_RESULT(yes)
AC_CHECK_LIB([fetch], [fetchParseURL], ,
- AC_MSG_ERROR([libfetch is needed to compile with internal download support]), [-lcrypto -ldl] )
- # Check if libfetch supports conditional GET
- # (version >=2.21, struct url has member last_modified)
- AC_CHECK_MEMBER(struct url.last_modified, ,
- AC_MSG_ERROR([libfetch must be version 2.21 or greater]),
- [#include <fetch.h>] )
-else
- AC_MSG_RESULT(no)
-fi
-AM_CONDITIONAL(INTERNAL_DOWNLOAD, test "x$internaldownload" = "xyes")
+ [if test "x$with_fetch" != "xcheck"; then
+ AC_MSG_FAILURE([--with-fetch was given, but -lfetch was not found])
+ fi],
+ [-lcrypto -ldl])
+ # Check if libfetch supports connnection caching which we use
+ AC_CHECK_DECL(fetchConnectionCacheInit, ,
+ AC_MSG_ERROR([libfetch must be version 2.28 or greater]),
+ [#include <fetch.h>])
+ ],
+ AC_MSG_RESULT(no))
+AM_CONDITIONAL([HAVE_LIBFETCH], [test "x$ac_cv_lib_fetch_fetchParseURL" = "xyes"])
# Checks for header files.
AC_CHECK_HEADERS([fcntl.h glob.h libintl.h limits.h locale.h string.h strings.h sys/ioctl.h sys/param.h sys/statvfs.h sys/syslimits.h sys/time.h syslog.h wchar.h])
@@ -406,7 +405,6 @@ ${PACKAGE_NAME}:
Compilation options:
Run make in doc/ dir : ${wantdoc} ${asciidoc}
- Use download library : ${internaldownload}
Doxygen support : ${usedoxygen}
debug support : ${debug}
"
diff --git a/lib/libalpm/alpm.c b/lib/libalpm/alpm.c
index 7bcfc8f1..6f4f4a4c 100644
--- a/lib/libalpm/alpm.c
+++ b/lib/libalpm/alpm.c
@@ -24,7 +24,7 @@
#include "config.h"
/* connection caching setup */
-#if defined(INTERNAL_DOWNLOAD)
+#ifdef HAVE_FETCH
#include <fetch.h>
#endif
@@ -59,7 +59,7 @@ int SYMEXPORT alpm_initialize(void)
bindtextdomain("libalpm", LOCALEDIR);
#endif
-#ifdef INTERNAL_DOWNLOAD
+#ifdef HAVE_FETCH
fetchConnectionCacheInit(5, 1);
#endif
@@ -82,7 +82,7 @@ int SYMEXPORT alpm_release(void)
_alpm_handle_free(handle);
handle = NULL;
-#ifdef INTERNAL_DOWNLOAD
+#ifdef HAVE_FETCH
fetchConnectionCacheClose();
#endif
diff --git a/lib/libalpm/dload.c b/lib/libalpm/dload.c
index 3185d2aa..32096e24 100644
--- a/lib/libalpm/dload.c
+++ b/lib/libalpm/dload.c
@@ -38,7 +38,7 @@
#include <sys/param.h> /* MAXHOSTNAMELEN */
#endif
-#if defined(INTERNAL_DOWNLOAD)
+#ifdef HAVE_FETCH
#include <fetch.h>
#endif
@@ -58,7 +58,7 @@ static char *get_filename(const char *url) {
return(filename);
}
-#if defined(INTERNAL_DOWNLOAD)
+#ifdef HAVE_FETCH
static char *get_destfile(const char *path, const char *filename) {
char *destfile;
/* len = localpath len + filename len + null */
@@ -338,7 +338,7 @@ cleanup:
static int download(const char *url, const char *localpath,
int force) {
if(handle->fetchcb == NULL) {
-#if defined(INTERNAL_DOWNLOAD)
+#ifdef HAVE_FETCH
return(download_internal(url, localpath, force));
#else
RET_ERR(PM_ERR_EXTERNAL_DOWNLOAD, -1);
diff --git a/lib/libalpm/error.c b/lib/libalpm/error.c
index 8d8d0458..b64ee67c 100644
--- a/lib/libalpm/error.c
+++ b/lib/libalpm/error.c
@@ -31,7 +31,7 @@
#include <sys/param.h> /* MAXHOSTNAMELEN */
#endif
-#if defined(INTERNAL_DOWNLOAD)
+#ifdef HAVE_FETCH
#include <fetch.h> /* fetchLastErrString */
#endif
@@ -145,7 +145,7 @@ const char SYMEXPORT *alpm_strerror(int err)
* error string instead. */
return _("libarchive error");
case PM_ERR_LIBFETCH:
-#if defined(INTERNAL_DOWNLOAD)
+#ifdef HAVE_FETCH
return fetchLastErrString;
#else
/* obviously shouldn't get here... */