+
+function rss_upgrade(name, ver, url, regex, cmd, nver) {
+ regex = "s/.*<title>" regex "<\/title>.*/\\1/p"
+ cmd = "wget -t 2 -T 45 -q -O - " url " | sed -nre '" regex "' | head -n1"
+
+ d("rss_upgrade_cmd: " cmd)
+ cmd | getline nver
+ close(cmd)
+
+ if (compare_ver(ver, nver)) {
+ print name " [OLD] " ver " [NEW] " nver
+ } else {
+ print name " seems ok: " ver
+ }
+}
+
+# check for ZF upgrade from rss
+function zf_upgrade(name, ver) {
+ rss_upgrade(name, ver, \
+ "http://devzone.zend.com/tag/Zend_Framework_Management/format/rss2.0", \
+ "Zend Framework ([^\\s]+) Released" \
+ );
+}
+
+function hudson_upgrade(name, ver) {
+ rss_upgrade(name, ver, \
+ "https://hudson.dev.java.net/servlets/ProjectRSS?type=news", \
+ "Hudson ([0-9.]+) released" \
+ );
+}
+
+# upgrade check for pear package using PEAR CLI
+function pear_upgrade(name, ver, pname, pearcmd, nver) {
+ pname = name;
+ sub(/^php-pear-/, "", pname);
+
+ pearcmd = "pear remote-info " pname " | awk '/^Latest/{print $NF}'"
+ d("pearcmd: " pearcmd)
+ pearcmd | getline nver
+ close(pearcmd)
+
+ if (compare_ver(ver, nver)) {
+ print name " [OLD] " ver " [NEW] " nver
+ } else {
+ print name " seems ok: " ver
+ }
+
+ return
+}
+
+function vim_upgrade(name, ver, mver, nver, vimcmd) {
+ # %patchset_source -f ftp://ftp.vim.org/pub/editors/vim/patches/7.2/7.2.%03g 1 %{patchlevel}
+ mver = substr(ver, 0, 4)
+ vimcmd = "wget -q -O - ftp://ftp.vim.org/pub/editors/vim/patches/"mver"/MD5SUMS|grep -vF .gz|tail -n1|awk '{print $2}'"
+ d("vimcmd: " vimcmd)
+ vimcmd | getline nver
+ close(vimcmd)
+
+ if (compare_ver(ver, nver)) {
+ print name " [OLD] " ver " [NEW] " nver
+ } else {
+ print name " seems ok: " ver
+ }
+}
+
+function process_data(name, ver, rel, src) {
+ if (name ~ /^php-pear-/) {
+ return pear_upgrade(name, ver);
+ }
+ if (name == "ZendFramework") {
+ return zf_upgrade(name, ver);
+ }
+ if (name == "hudson") {
+ return hudson_upgrade(name, ver);
+ }
+ if (name == "vim") {
+ return vim_upgrade(name, ver);
+ }
+ if (name == "xulrunner") {
+ ver = subst_defines(DEFS["firefox_ver"], DEFS)
+ d("package xulrunner, change version to firefox ["ver"]")
+ }
+