]> git.pld-linux.org Git - packages/rpm-build-tools.git/blobdiff - pldnotify.awk
pldnotify: first check releases from release-monitoring.org
[packages/rpm-build-tools.git] / pldnotify.awk
index 4438f60aea991dd4172e633725e067888712b1eb..2215b674b947dd5ba89c0b0ad65e9ee826ec7cc3 100755 (executable)
@@ -25,6 +25,7 @@
 # - pear (php-pear-PEAR) for php-pear package updates
 # - npm for nodejs packages
 # - gem (ruby-rubygems) for ruby/rubygem packages
+# - node to parse json from release-monitoring.org
 # 
 # Additionally "mirrors" file in current dir, controls local mirrors you prefer
 
@@ -239,85 +240,86 @@ function get_links(url,filename,   errno,link,oneline,retval,odp,wholeodp,lowero
                gsub("^http://(download|downloads|dl)\.(sf|sourceforge)\.net/", "", newurl)
                gsub("^project/", "", newurl)
                gsub("/.*", "", newurl)
-               newurl = sf_url(newurl)
-               if (newurl ~ /^http/) {
-                       url = newurl
-                       d("sf url, mungled url to: " url)
-               }
+               url = "http://sourceforge.net/projects/" newurl "/rss?path=/"
+               d("sf url, mangled url to: " url)
 
        } else if (url ~ /^http:\/\/(.*)\.googlecode\.com\/files\//) {
                gsub("^http://", "", url)
                gsub("\..*", "", url)
                url = "http://code.google.com/p/" url "/downloads/list"
-               d("googlecode url, mungled url to: " url)
+               d("googlecode url, mangled url to: " url)
 
        } else if (url ~ /^http:\/\/pecl.php.net\/get\//) {
                gsub("-.*", "", filename)
                url = "http://pecl.php.net/package/" filename
-               d("pecl.php.net url, mungled url to: " url)
+               d("pecl.php.net url, mangled url to: " url)
 
-       } else if (url ~ /^(http|ftp):\/\/mysql.*\/Downloads\/MySQL-5.1\//) {
-               url = "http://dev.mysql.com/downloads/mysql/5.1.html#source"
-               d("mysql 5.1 url, mungled url to: " url)
+       } else if (url ~/http:\/\/cdn.mysql.com\//) {
+               gsub("http:\/\/cdn.mysql.com\/", "", url)
+               url = "http://vesta.informatik.rwth-aachen.de/mysql/" url
+               d("mysql CDN, mangled url to: " url)
 
        } else if (url ~ /^(http|https):\/\/launchpad\.net\/(.*)\//) {
                gsub("^(http|https):\/\/launchpad\.net\/", "", url)
                gsub("\/.*/", "", url)
                url = "https://code.launchpad.net/" url "/+download"
-               d("main launchpad url, mungled url to: " url)
+               d("main launchpad url, mangled url to: " url)
 
        } else if (url ~ /^(http|https):\/\/edge\.launchpad\.net\/(.*)\//) {
                gsub("^(http|https):\/\/edge\.launchpad\.net\/", "", url)
                gsub("\/.*/", "", url)
                url = "https://edge.launchpad.net/" url "/+download"
-               d("edge launchpad url, mungled url to: " url)
+               d("edge launchpad url, mangled url to: " url)
 
        } else if (url ~ /^(http|https):\/\/github.com\/.*\/(.*)\/tarball\//) {
                gsub("\/tarball\/.*", "/downloads", url)
-               d("github tarball url, mungled url to: " url)
+               d("github tarball url, mangled url to: " url)
 
        } else if (url ~ /^(http|https):\/\/github.com\/.*\/(.*)\/archive\//) {
                gsub("\/archive\/.*", "/tags", url)
-               d("github archive url, mungled url to: " url)
+               d("github archive url, mangled url to: " url)
 
        } else if (url ~ /^(http|https):\/\/bitbucket.org\/.*\/get\/.*/) {
                # https://bitbucket.org/logilab/pylint/get/tip.tar.bz2 -> https://bitbucket.org/logilab/pylint/downloads
                gsub("\/get\/.*", "/downloads", url)
-               d("github bitbucket url, mungled url to: " url)
+               d("github bitbucket url, mangled url to: " url)
 
        } else if (url ~ /^(http|https):\/\/cgit\..*\/(.*)\/snapshot\//) {
                gsub("\/snapshot\/.*", "/", url)
-               d("cgit snapshot tarball url, mungled url to: " url)
+               d("cgit snapshot tarball url, mangled url to: " url)
 
        } else if (url ~ /^(http|https):\/\/www2\.aquamaniac\.de\/sites\/download\//) {
                url = "http://www2.aquamaniac.de/sites/download/packages.php"
-               d("aquamaniac.de tarball url, mungled url to: " url)
+               d("aquamaniac.de tarball url, mangled url to: " url)
 
        } else if (url ~ /^(http|https):\/\/www.process-one.net\/downloads\/ejabberd\//) {
                url = "http://www.process-one.net/en/ejabberd/archive/"
-               d("ejabberd tarball url, mungled url to: " url)
+               d("ejabberd tarball url, mangled url to: " url)
 
        } else if (url ~ /^(http|https):\/\/llvm.org\/releases\//) {
                url = "http://llvm.org/releases/download.html"
-               d("llvm tarball url, mungled url to: " url)
+               d("llvm tarball url, mangled url to: " url)
 
        } else if (url ~ /^(http|https):\/\/download\.owncloud\.org\/community\//) {
                url = "http://owncloud.org/changelog/"
-               d("owncloud tarball url, mungled url to: " url)
+               d("owncloud tarball url, mangled url to: " url)
 
        } else if (url ~ /^(http|https):\/\/hackage\.haskell\.org\/packages\/archive\//) {
                gsub("\/packages\/archive","/package",url)
-               d("hackage haskell tarball url, mungled url to: " url)
+               d("hackage haskell tarball url, mangled url to: " url)
 
        } else if (url ~ /^http:\/\/www.taskwarrior.org\/download\//) {
                url = "http://taskwarrior.org/projects/taskwarrior/wiki/Download"
-               d("taskwarrior tarball url, mungled url to: " url)
+               d("taskwarrior tarball url, mangled url to: " url)
        } else if (url ~/^http:\/\/www.rarlab.com\/rar\// && filename ~ /^unrarsrc/) {
                url = "http://www.rarlab.com/rar_add.htm"
-               d("unrar tarball url, mungled url to: " url)
+               d("unrar tarball url, mangled url to: " url)
        } else if (url ~/^http:\/\/www.rarlab.com\/rar\//) {
                url = "http://www.rarlab.com/download.htm"
-               d("rar tarball url, mungled url to: " url)
+               d("rar tarball url, mangled url to: " url)
+       } else if (url ~/^(http|https):\/\/pypi.python.org\/packages\/source\/.*/) {
+               gsub("/packages/source/[a-zA-Z0-9]/", "/pypi/", url)
+               d("pypi.python.org url, mangled url to: " url)
        }
 
        d("Retrieving: " url)
@@ -371,10 +373,7 @@ if (USE_PERL) {
                d("href(): " link)
        }
        close(cmd)
-       system("rm -f " tmpfile)
 
-       d("Returning: [" retval "]")
-       return retval
 }
 
        wholeodp = ""
@@ -588,11 +587,11 @@ function process_source(number, lurl, name, version) {
 
                        d("Found link: " addr)
 
-                       # github has very different tarball links that clash with this safe check
-                       if (!(newurl ~/^(http|https):\/\/github.com\/.*\/tarball/)) {
-                               if (addr ~ "[-_.0-9A-Za-z~]" filenameexp) {
-                                       continue
-                               }
+                       # Try not to treat foobar or foo-bar as (possibly newer) version of bar
+                       # (practical cases: KXL, lineakconfig, mhash...)
+                       # but don't skip cases where name is like "/some/link/0.12.2.tar.gz"
+                       if ((addr ~ "[-_.0-9A-Za-z~]" filenameexp) && addr !~ "[-_.0-9A-Za-z~]/" filenameexp)  {
+                               continue
                        }
 
                        if (addr ~ filenameexp) {
@@ -625,20 +624,6 @@ function process_source(number, lurl, name, version) {
        }
 }
 
-function sf_url(sf_project) {
-       sf_url_new = ""
-       sf_idurl="http://sourceforge.net/api/project/name/" sf_project "/json"
-       cmd = "wget -t 2 -T 45 -q -O - " sf_idurl " |  awk -F: '/\"id\":/ { gsub(\",\", \"\", $2); print $2 } '"
-       d("sf_url_cmd: " cmd)
-       cmd | getline sf_id
-       d("sf_url_id: " sf_id)
-       if (sf_id ~ /^[0-9]+$/) {
-               sf_url_new = "http://sourceforge.net/api/file/index/project-id/" sf_id "/mtime/desc/limit/20/rss"
-               d("sf_url_new: " sf_url_new)
-       }
-       return sf_url_new
-}
-
 function rss_upgrade(name, ver, url, regex, cmd) {
        regex = "s/.*<title>" regex "<\/title>.*/\\1/p"
        cmd = "wget -t 2 -T 45 -q -O - " url " | sed -nre '" regex "' | head -n1"
@@ -714,7 +699,7 @@ function rubygem_upgrade(name, ver,   cmd, pkg) {
                gsub(/^ruby-/, "", pkg);
        }
 
-       cmd = "gem list --remote '^" pkg "$' | awk '/" pkg "/ {v=$2; sub(/\(/, \"\", v); print v}'"
+       cmd = "gem list --remote '^" pkg "$' | awk '/" pkg "/ {v=$2; sub(/\(/, \"\", v); sub(/\)$/, \"\", v); print v}'"
        d("RUBYGEM " name " (as " pkg ") " ver ": " cmd);
        cmd | getline ver
 
@@ -746,6 +731,17 @@ function jenkins_upgrade(name, ver, urls,  url, i, c, chunks, nver) {
        }
 }
 
+# check for update from release-monitoring.org
+function rmo_check(name,    sourceurl, cmd) {
+       sourceurl = "https://release-monitoring.org/api/project/pld-linux/" name
+       cmd = "echo 'var data='$(curl -s " sourceurl ")';process.stdout.write(data.version)' | node"
+       d("rmo: " cmd);
+       cmd | getline ver
+       close(cmd)
+
+       return ver
+}
+
 function process_data(name, ver, rel,     src, nver, i) {
        if (name ~ /^php-pear-/) {
                nver = pear_upgrade(name, ver);
@@ -765,6 +761,8 @@ function process_data(name, ver, rel,     src, nver, i) {
                nver = rubygem_upgrade(name, ver);
        } else if (name ~ "jenkins") {
                nver = jenkins_upgrade(name, ver, src);
+       } else if (name) {
+               nver = rmo_check(name);
        }
 
        if (nver) {
@@ -797,6 +795,9 @@ function process_data(name, ver, rel,     src, nver, i) {
 }
 
 BEGIN {
+       # use perl links extraction by default
+       USE_PERL = 1
+
        # if you want to use DEBUG, run script with "-v DEBUG=1"
        # or uncomment the line below
        # DEBUG = 1
This page took 0.039655 seconds and 4 git commands to generate.