diff -Naur rpm-5.4.10.orig/macros/mandriva rpm-5.4.10/macros/mandriva --- rpm-5.4.10.orig/macros/mandriva 2013-09-17 17:34:34.805808860 +0400 +++ rpm-5.4.10/macros/mandriva 2013-10-03 17:06:36.947155301 +0400 @@ -32,6 +32,8 @@ # mdvbz#64914 %_rpmgio .ufdio +%__urlgetfile(url, dest) (test -f `basename %1` && mkdir -p `dirname %2` && cp `basename %1` %2) || (wget %1 -O %2 || (rm -f %2 && exit 1)) + # This will die as soon as remaining usage has been phased out... %mkrel(c:) %{-c: 0.%{-c*}.}%{1}%{?subrel:.%subrel} %manbo_mkrel() %mkrel diff -Naur rpm-5.4.10.orig/macros/mandriva.in rpm-5.4.10/macros/mandriva.in --- rpm-5.4.10.orig/macros/mandriva.in 2013-09-17 17:34:34.805808860 +0400 +++ rpm-5.4.10/macros/mandriva.in 2013-10-03 17:33:15.669303875 +0400 @@ -32,6 +32,8 @@ # mdvbz#64914 %_rpmgio .ufdio +%__urlgetfile(url, dest) (test -f `basename %1` && cp `basename %1` %2) || (wget %1 -O %2 || (rm -f %2 && exit 1)) + # This will die as soon as remaining usage has been phased out... %mkrel(c:) %{-c: 0.%{-c*}.}%{1}%{?subrel:.%subrel} %manbo_mkrel() %mkrel diff -Naur rpm-5.4.10.orig/rpmio/url.c rpm-5.4.10/rpmio/url.c --- rpm-5.4.10.orig/rpmio/url.c 2013-09-17 17:34:34.827808860 +0400 +++ rpm-5.4.10/rpmio/url.c 2013-10-03 17:49:34.590394849 +0400 @@ -446,6 +447,7 @@ /*@-observertrans@*/ if (pathp) *pathp = path; + /*@=observertrans@*/ return ut; } @@ -602,6 +604,7 @@ const char * sfuPath = NULL; int urlType = urlPath(url, &sfuPath); char *result; + char *cmd; if (*sfuPath == '\0') return FTPERR_UNKNOWN; @@ -616,17 +619,17 @@ return FTPERR_UNKNOWN; /*@-globs -mods@*/ /* Avoid including everywhere for now */ - if (rpmExpandNumeric("%{?__urlgetfile:1}%{!?__urlgetfile:0}")) { - result = rpmExpand("%{__urlgetfile ", url, " ", dest, "}", NULL); - if (result != NULL && strcmp(result, "OK") == 0) - rc = 0; - else { - rpmlog(RPMLOG_DEBUG, D_("failed to fetch URL %s via external command\n"), url); - rc = FTPERR_UNKNOWN; + cmd = rpmExpand("%{?__urlgetfile:%{__urlgetfile ", url, " ", dest, "}}", NULL); + if (cmd != NULL && cmd[0] != '\0') { + rc = system(cmd); + if ((rc >> 8) != 0) { + rpmlog(RPMLOG_DEBUG, D_("failed to fetch URL %s via external command: %s: %s\n"), url, Fstrerror(sfd)); + rc = FTPERR_UNKNOWN; } - result = _free(result); - goto exit; + cmd = _free(cmd); + goto exit; } + /*@=globs =mods@*/ sfd = Fopen(url, "r.ufdio");