Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F131541219
D4780.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
7 KB
Referenced Files
None
Subscribers
None
D4780.diff
View Options
Index: head/ports-mgmt/portscout/Makefile
===================================================================
--- head/ports-mgmt/portscout/Makefile
+++ head/ports-mgmt/portscout/Makefile
@@ -3,7 +3,7 @@
PORTNAME= portscout
PORTVERSION= 0.8.1
-PORTREVISION= 4
+PORTREVISION= 5
CATEGORIES= ports-mgmt
MASTER_SITES= http://mirror.inerd.com/FreeBSD/distfiles/${PORTNAME}/ \
http://www.atarininja.org/~wxs/distfiles/ \
Index: head/ports-mgmt/portscout/files/patch-Portscout_SiteHandler_GitHub.pm
===================================================================
--- head/ports-mgmt/portscout/files/patch-Portscout_SiteHandler_GitHub.pm
+++ head/ports-mgmt/portscout/files/patch-Portscout_SiteHandler_GitHub.pm
@@ -1,4 +1,4 @@
---- Portscout/SiteHandler/GitHub.pm.orig 2015-10-25 05:00:48 UTC
+--- Portscout/SiteHandler/GitHub.pm.orig 2016-01-04 10:46:49 UTC
+++ Portscout/SiteHandler/GitHub.pm
@@ -97,7 +97,9 @@ sub GetFiles
my ($url, $port, $files) = @_;
@@ -18,9 +18,21 @@
-
+ # Add GitHub Client ID & Secret if they are set in settings
+ # https://developer.github.com/v3/#authentication
-+ if ($settings{github_client_id} && $settings{github_client_id}) {
++ if ($settings{github_client_id} && $settings{github_client_secret}) {
+ $query = $query . "?client_id=$settings{github_client_id}&client_secret=$settings{github_client_secret}";
+ }
_debug("GET $query");
$ua = LWP::UserAgent->new;
$ua->agent(USER_AGENT);
+@@ -120,6 +126,11 @@ sub GetFiles
+ _debug('GET failed: ' . $response->status_line);
+ # Project didn't do any releases, so let's try tags instead.
+ $query = 'https://api.github.com/repos/' . $projname . '/tags';
++ # Add GitHub Client ID & Secret if they are set in settings
++ # https://developer.github.com/v3/#authentication
++ if ($settings{github_client_id} && $settings{github_client_secret}) {
++ $query = $query . "?client_id=$settings{github_client_id}&client_secret=$settings{github_client_secret}";
++ }
+ _debug("GET $query");
+ $ua = LWP::UserAgent->new;
+ $ua->agent(USER_AGENT);
Index: head/ports-mgmt/portscout/files/patch-portscout.pl
===================================================================
--- head/ports-mgmt/portscout/files/patch-portscout.pl
+++ head/ports-mgmt/portscout/files/patch-portscout.pl
@@ -1,4 +1,4 @@
---- portscout.pl.orig 2015-10-25 05:00:48 UTC
+--- portscout.pl.orig 2016-01-04 10:46:49 UTC
+++ portscout.pl
@@ -463,7 +463,7 @@ sub VersionCheck
@@ -53,3 +53,165 @@
}
last if ($new_found);
+@@ -867,7 +876,10 @@ sub FindNewestFile
+
+ foreach my $file (@$files)
+ {
+- my $poss_path;
++ my ($poss_path, $github);
++
++ print "FindNewest: Checking $file ... against port DISTFILES. \n"
++ if ($settings{debug});
+
+ if ($file =~ /^(.*)\/(.*?)$/) {
+ # Files from SiteHandlers can come with paths
+@@ -888,6 +900,9 @@ sub FindNewestFile
+
+ my $skip = 0;
+
++ print "FindNewest: Checking DISTFILE ... $distfile (ver: $v, sufx: $s)\n"
++ if ($settings{debug});
++
+ if ($poss_path) {
+ # Do a full-URL comparison for $old_found
+ # if we're dealing with paths too.
+@@ -908,14 +923,20 @@ sub FindNewestFile
+ } else {
+ if ($file eq $distfile) {
+ $old_found = 1;
++ print "FindNewest: File matches existing port DISTFILE. Old found. \n"
++ if ($settings{debug});
+ next;
+ }
+ }
+
++ $github = 1 if ($site->clone =~ /^https?:\/\/([^\/.]+\.)?github\.com\/(.*?)\/tar.gz/);
++
+ # Skip beta versions if requested
+
+ if ($port->{skipbeta}) {
+ if (isbeta($file) && !isbeta($distfile)) {
++ print "FindNewest: File is beta, skipbeta is defined. Skipping ...\n"
++ if ($settings{debug});
+ next;
+ }
+ }
+@@ -940,31 +961,64 @@ sub FindNewestFile
+
+ # Possible candidate - extract version
+
+- if ($file =~ /^($distfile)$/ && $2)
++ #warn "distfile = $distfile 2 = $2";
++ if (($file =~ /^($distfile)$/ && $2) or $github)
+ {
+- my $version = $2;
+- my $new_v = lc $version;
++ my ($version, $new_v, $matchver);
+
+- # Catch a few missed cases
++ unless ($github) {
++ $version = $2;
++ $new_v = lc $version;
+
+- $new_v =~ s/(?:$ext_regex)$//;
++ # Catch a few missed cases
++ $new_v =~ s/(?:$ext_regex)$//;
+
+- # Version is much longer than original - skip it
++ # Version is much longer than original - skip it
++ next if (length $new_v > (12 + length $old_v));
+
+- next if (length $new_v > (12 + length $old_v));
++ # New version is in date format (or contains a date-like
++ # string) - old one is not. Probably best to ignore.
+
+- # New version is in date format (or contains a date-like
+- # string) - old one is not. Probably best to ignore.
++ next if (
++ $new_v =~ /$date_regex/i &&
++ $old_v !~ /$date_regex/i
++ );
+
+- next if (
+- $new_v =~ /$date_regex/i &&
+- $old_v !~ /$date_regex/i
+- );
++ # Skip a few strange version format change cases
++ # (formatted -> "just a number")
++ next if ($new_v !~ /\./ && $old_v =~ /\./);
++ } else {
++ # Github is "special" since the actual URI we get back from the
++ # handler isn't the same as what is actually being retrieved.
++ # So fall back on comparing tags instead.
+
+- # Skip a few strange version format change cases
+- # (formatted -> "just a number")
++ $new_v = $file;
++ $version = lc $new_v;
+
+- next if ($new_v !~ /\./ && $old_v =~ /\./);
++ # Only match version-esque looking strings from the tag
++ # because portscout currently only uses/stores a normalized
++ # 'ver', not PORTVERSION or DISTVERSION{FULL} so we have nothing
++ # canonical to compare agains. Currently the match is for digits
++ # with any non-digit separators, without non-digit prefixes and
++ # suffixes. This is likely the best we can get for now, without
++ # introducing false positives.
++
++ ($matchver) = ($version =~ m/((?:\d+.)*\d+)/);
++
++ print "FindNewestFile::Github: Input: $file Matchver: $matchver \n"
++ if ($settings{debug});
++
++ # Replace non-digit separators of digits with dots.
++
++ $matchver =~ s/[^\d+]/\./g;
++
++ if (defined($matchver)) {
++ $new_v = $matchver;
++ }
++
++ print "FindNewestFile::Github: Matchver: $matchver Normalized: $new_v \n"
++ if ($settings{debug});
++ }
+
+ # Skip any specific versions if requested
+
+@@ -973,6 +1027,8 @@ sub FindNewestFile
+
+ foreach (split (/\s+/, $port->{skipversions})) {
+ if ($new_v eq $_) {
++ print "FindNewest: skipversions is defined. Matched $_. Skipping...\n"
++ if ($settings{debug});
+ $skip = 1;
+ last;
+ }
+@@ -981,7 +1037,7 @@ sub FindNewestFile
+ next if ($skip);
+ }
+
+- unless ($settings{sillystrings_enable}) {
++ unless ($settings{sillystrings_enable} or $github) {
+ if ($new_v =~ /[-_.]([A-Za-z]+[A-Za-z_-]{2,})$/) {
+ my $str = $1;
+ next if (
+@@ -1026,12 +1082,19 @@ sub FindNewestFile
+
+ # Test our new version string
+
++ print "FindNewest: Comparing Old ($old_v) vs New ($new_v) version strings... \n"
++ if ($settings{debug});
++
+ if ($new_v eq $old_v)
+ {
++ print "FindNewest: Old ($old_v) == New ($new_v). Old found.\n"
++ if ($settings{debug});
+ $old_found = 1;
+ }
+ elsif (vercompare($new_v, $old_v))
+ {
++ print "FindNewest: Old ($old_v) < New ($new_v). New found.\n"
++ if ($settings{debug});
+ $new_found = 1;
+
+ # Keep going until we find the newest version
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Oct 10, 2:25 AM (22 h, 14 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
23514448
Default Alt Text
D4780.diff (7 KB)
Attached To
Mode
D4780: ports-mgmt/portscout: Make GitHub ports work, fix bugs
Attached
Detach File
Event Timeline
Log In to Comment