packages: rpm-build-tools/pldnotify.awk - update from r1.75
glen
glen at pld-linux.org
Sun Jun 28 18:53:02 CEST 2009
Author: glen Date: Sun Jun 28 16:53:02 2009 GMT
Module: packages Tag: HEAD
---- Log message:
- update from r1.75
---- Files affected:
packages/rpm-build-tools:
pldnotify.awk (1.7 -> 1.8)
---- Diffs:
================================================================
Index: packages/rpm-build-tools/pldnotify.awk
diff -u packages/rpm-build-tools/pldnotify.awk:1.7 packages/rpm-build-tools/pldnotify.awk:1.8
--- packages/rpm-build-tools/pldnotify.awk:1.7 Fri Dec 1 14:17:22 2006
+++ packages/rpm-build-tools/pldnotify.awk Sun Jun 28 18:52:57 2009
@@ -1,6 +1,19 @@
#!/bin/awk -f
# $Revision$, $Date$
-# TODO: "SourceXDownload" support (use given URLs if present instead of cut-down SourceX URLs)
+#
+# Copyright (C) 2000-2008 PLD-Team <feedback at pld-linux.org>
+# Authors:
+# Sebastian Zagrodzki <zagrodzki at pld-linux.org>
+# Jacek Konieczny <jajcus at pld-linux.org>
+# Andrzej Krzysztofowicz <ankry at pld-linux.org>
+# Jakub Bogusz <qboosh at pld-linux.org>
+# Elan Ruusamäe <glen at pld-linux.org>
+#
+# See cvs log pldnotify.awk for list of contributors
+#
+# TODO:
+# - "SourceXDownload" support (use given URLs if present instead of cut-down SourceX URLs)
+# - "SourceXActiveFTP" support
function fixedsub(s1,s2,t, ind) {
# substitutes fixed strings (not regexps)
@@ -138,10 +151,31 @@
return 0
}
-function get_links(url, errno,link,oneline,retval,odp,wholeodp,lowerodp,tmpfile) {
+function link_seen(link) {
+ for (seenlink in frameseen) {
+ if (seenlink == link) {
+ if (DEBUG) print "Link: [" link "] seen already, skipping..."
+ return 1
+ }
+ }
+ frameseen[link]=1
+ return 0
+}
+
+function mktemp( _cmd, _tmpfile) {
+ _cmd = "mktemp /tmp/XXXXXX"
+ _cmd | getline _tmpfile
+ close(_cmd)
+ return _tmpfile
+}
+
# get all <A HREF=..> tags from specified URL
- "mktemp /tmp/XXXXXX" | getline tmpfile
- close("mktemp /tmp/XXXXXX")
+function get_links(url,filename, errno,link,oneline,retval,odp,wholeodp,lowerodp,tmpfile,cmd) {
+
+ wholeerr=""
+
+ tmpfile = mktemp()
+ tmpfileerr = mktemp()
if (url ~ /^http:\/\/(download|dl).(sf|sourceforge).net\//) {
gsub("^http://(download|dl).(sf|sourceforge).net/", "", url)
@@ -149,17 +183,44 @@
if (DEBUG) print "sf url, mungled url to: " url
}
+ if (url ~ /^http:\/\/(.*)\.googlecode\.com\/files\//) {
+ gsub("^http://", "", url)
+ gsub("\..*", "", url)
+ url = "http://code.google.com/p/" url "/downloads/list"
+ if (DEBUG) print "googlecode url, mungled url to: " url
+ }
+
+ if (url ~ /^http:\/\/pecl.php.net\/get\//) {
+ gsub("-.*", "", filename)
+ url = "http://pecl.php.net/package/" filename
+ if (DEBUG) print "pecl.php.net url, mungled url to: " url
+ }
+
+ if (url ~ /^(http|ftp):\/\/mysql.*\/Downloads\/MySQL-5.1\//) {
+ url = "http://dev.mysql.com/downloads/mysql/5.1.html#source"
+ if (DEBUG) print "mysql 5.1 url, mungled url to: " url
+ }
+
+
if (DEBUG) print "Retrieving: " url
- errno=system("wget -O - \"" url "\" -t 3 -T 300 --passive-ftp > " tmpfile " 2>/dev/null" )
+ cmd = "wget -nv -O - \"" url "\" -t 2 -T 45 --passive-ftp --no-check-certificate > " tmpfile " 2> " tmpfileerr
+ if (DEBUG) print "Execute: " cmd
+ errno = system(cmd)
if (errno==0) {
while (getline oneline < tmpfile)
wholeodp=(wholeodp " " oneline)
if ( DEBUG ) print "Response: " wholeodp
+ } else {
+ wholeerr = ""
+ while (getline oneline < tmpfileerr)
+ wholeerr=(wholeerr " " oneline)
+ if ( DEBUG ) print "Error Response: " wholeerr
}
- close(tmpfile)
system("rm -f " tmpfile)
+ system("rm -f " tmpfileerr)
+
urldir=url;
sub(/[^\/]+$/,"",urldir)
@@ -178,6 +239,12 @@
newurl=(urldir newurl)
if (DEBUG) print "Frame->: " newurl
}
+
+ if (link_seen(newurl)) {
+ newurl=""
+ continue
+ }
+
retval=(retval " " get_links(newurl))
} else if (lowerodp ~ /href=[ \t]*"[^"]*"/) {
sub(/[hH][rR][eE][fF]=[ \t]*"/,"href=\"",odp)
@@ -185,6 +252,12 @@
link=substr(odp,RSTART,RLENGTH)
odp=substr(odp,1,RSTART) substr(odp,RSTART+RLENGTH)
link=substr(link,7,length(link)-7)
+
+ if (link_seen(link)) {
+ link=""
+ continue
+ }
+
retval=(retval " " link)
if (DEBUG) print "href(\"\"): " link
} else if (lowerodp ~ /href=[ \t]*'[^']*'/) {
@@ -193,6 +266,12 @@
link=substr(odp,RSTART,RLENGTH)
odp=substr(odp,1,RSTART) substr(odp,RSTART+RLENGTH)
link=substr(link,7,length(link)-7)
+
+ if (link_seen(link)) {
+ link=""
+ continue
+ }
+
retval=(retval " " link)
if (DEBUG) print "href(''): " link
} else if (lowerodp ~ /href=[ \t]*[^ \t>]*/) {
@@ -201,6 +280,12 @@
link=substr(odp,RSTART,RLENGTH)
odp=substr(odp,1,RSTART) substr(odp,RSTART+RLENGTH)
link=substr(link,6,length(link)-5)
+
+ if (link_seen(link)) {
+ link=""
+ continue
+ }
+
retval=(retval " " link)
if (DEBUG) print "href(): " link
} else {
@@ -209,7 +294,7 @@
}
}
} else {
- retval=("WGET ERROR: " errno)
+ retval=("WGET ERROR: " errno ": " wholeerr)
}
@@ -299,7 +384,7 @@
references=0
finished=0
oldversion=version
- odp=get_links(newurl)
+ odp=get_links(newurl,filename)
if( odp ~ "ERROR: ") {
print name "(" number ") " odp
} else {
@@ -365,6 +450,9 @@
# this function checks if substitutions were valid, and if true:
# processes each URL and tries to get current file list
for (i in src) {
+ if ( src[i] ~ /%{nil}/ ) {
+ gsub(/\%\{nil\}/, "", src[i])
+ }
if ( src[i] !~ /%{.*}/ && src[i] !~ /%[A-Za-z0-9_]/ ) {
if ( DEBUG ) print "Source: " src[i]
process_source(i,src[i],name,ver)
@@ -393,19 +481,27 @@
FNR==1 {
if ( ARGIND != 1 ) {
+ # clean frameseen for each ARG
+ for (i in frameseen) {
+ delete frameseen[i]
+ }
+ frameseen[0] = 1
+
process_data(NAME,VER,REL,SRC)
NAME="" ; VER="" ; REL=""
for (i in DEFS) delete DEFS[i]
for (i in SRC) delete SRC[i]
}
FNAME=FILENAME
+ DEFS["_alt_kernel"]=""
+ DEFS["20"]="\\ "
}
/^[Uu][Rr][Ll]:/&&(URL=="") { URL=subst_defines($2,DEFS) ; DEFS["url"]=URL }
/^[Nn]ame:/&&(NAME=="") { NAME=subst_defines($2,DEFS) ; DEFS["name"]=NAME }
/^[Vv]ersion:/&&(VER=="") { VER=subst_defines($2,DEFS) ; DEFS["version"]=VER }
/^[Rr]elease:/&&(REL=="") { REL=subst_defines($2,DEFS) ; DEFS["release"]=REL }
-/^[Ss]ource[0-9]*:/ { if (/(ftp|http):\/\//) SRC[FNR]=subst_defines($2,DEFS) }
+/^[Ss]ource[0-9]*:/ { if (/(ftp|http|https):\/\//) SRC[FNR]=subst_defines($2,DEFS) }
/%define/ { DEFS[$2]=subst_defines($3,DEFS) }
END {
================================================================
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/rpm-build-tools/pldnotify.awk?r1=1.7&r2=1.8&f=u
More information about the pld-cvs-commit
mailing list