[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#990696: unblock: netselect/0.3.ds1-29



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package netselect

[ Reason ]

Netselect-apt is not able to properly parse the URLs in the mirror list
available in the Debian website. This version fixes the bug in parsing which
makes it work again.

[ Impact ]
If the unblock is not implemented users will not be able to use netselect-apt

[ Tests ]
I have run manually tests in my unstable system to confi

[ Risks ]
The change is very simple. This is a package which is used by a small number of
users. 

[ Checklist ]
  [x] all changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in testing

unblock netselect/0.3.ds1-29

-- System Information:
Debian Release: bullseye/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: i386 (i686)

Kernel: Linux 5.10.0-1-686-pae (SMP w/4 CPU threads)
Locale: LANG=es_ES.UTF-8, LC_CTYPE=es_ES.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
diff -Nru netselect-0.3.ds1/debian/changelog netselect-0.3.ds1/debian/changelog
--- netselect-0.3.ds1/debian/changelog	2021-07-05 00:14:53.000000000 +0200
+++ netselect-0.3.ds1/debian/changelog	2021-07-04 23:04:35.000000000 +0200
@@ -1,3 +1,14 @@
+netselect (0.3.ds1-29) unstable; urgency=high
+
+  * netselect-apt:
+    - Fix bug that makes it output some hosts with negative value (Closes: 920907)
+    - Fix bug in the Pelr parsing which prevented it from processing properly
+      the mirrors listed in the Debian website (Closes: 989674)
+  * debian/control: Move curl to depends as it is required by netselect-apt
+   (Closes: 788793)
+
+ -- Javier Fernández-Sanguino Peña <jfs@debian.org>  Sun, 04 Jul 2021 23:04:35 +0200
+
 netselect (0.3.ds1-28) unstable; urgency=medium
 
   * Use debhelper files properly to relocation binaries and
diff -Nru netselect-0.3.ds1/debian/control netselect-0.3.ds1/debian/control
--- netselect-0.3.ds1/debian/control	2021-07-05 00:14:53.000000000 +0200
+++ netselect-0.3.ds1/debian/control	2021-07-04 23:04:35.000000000 +0200
@@ -22,8 +22,7 @@
 
 Package: netselect-apt
 Architecture: all
-Depends: wget, netselect (>= 0.3.ds1-17), ${misc:Depends}
-Recommends: curl
+Depends: wget, netselect (>= 0.3.ds1-17), curl, ${misc:Depends}
 Enhances: apt
 Suggests: dpkg-dev
 Description: speed tester for choosing a fast Debian mirror
diff -Nru netselect-0.3.ds1/netselect-apt netselect-0.3.ds1/netselect-apt
--- netselect-0.3.ds1/netselect-apt	2021-07-05 00:14:53.000000000 +0200
+++ netselect-0.3.ds1/netselect-apt	2021-07-04 23:04:35.000000000 +0200
@@ -35,7 +35,7 @@
 # Default distribution
 distro="stable"
 # Default protocol
-protocol="HTTP"
+protocol="http"
 # Number of fastest hosts that will be validated
 test_hosts="10"
 # URL where the mirror list is retrieved from 
@@ -120,7 +120,7 @@
 
     # Second test: do we have the test file we are looking for?
     [ -n "$DEBUG" ] && log "DEBUG: Checking if the file '$test_file' is available in site"
-    temp=`tempfile`
+    temp=`mktemp`
     [ ! -e "$temp" ] && return 0 # Return without error if we cannot create
                                  # a temporary file
     curl -m 2 -q -s "$host/$test_file"  >$temp 2>&1
@@ -156,12 +156,14 @@
 	SEARCH="$1"
 	PROTO="$2"
         hosts=$(cat "$infile" \
-		| perl -n -e '
+               | perl -n -e '
+                        use warnings;
+                        use strict;
 			$/="<br><br>";
-                        $country_name  = ".*";
-                        $country_iso  = "..";
-                        $country = "'"$country"'";
-                        $my_country = 1;
+                        my $country_name  = ".*";
+                        my $country_iso  = "..";
+                        my $country = "'"$country"'";
+                        my $my_country = 1;
                         if ( $country ne "" ) {
                           $my_country = 0;
                           if ( $country =~ /^\w{2}$/ ) {
@@ -184,7 +186,7 @@
 				next if $_ !~ /Site:/;
 				if( ( /Includes architectures:.+'"$arch"'.+/i ||
 						$_ !~ /Includes architectures:/ ) &&
-						m@<br>'"$SEARCH"':.*<a.*?href="('"$PROTO"'://.*?)">@i && $my_country == 1
+                                               m@'"$SEARCH"':.*<a.*?href="('"$PROTO"'://.*?)">@i && $my_country == 1
 					){
 					print("$1\n");
 				}}')
@@ -197,7 +199,7 @@
 	corruptedhosts=$(echo "$out" | egrep '^ *-')
 	if [ $? -eq 0 ]; then
 		log "Detected corrupt scores from bug in netselect: $corruptedhosts"
-		out=$(echo "$out" | sed -e '/^-/d')
+		out=$(echo "$out" | sed -e '/^ *-/d')
 	fi
 
 
@@ -262,7 +264,7 @@
 	log "   -i, --infile INFILE    Use INFILE as the input file (temp file)"
 	log "   -o, --outfile OUTFILE  Use OUTFILE as the output file (sources.list)"
 	log "   -n, --nonfree          Use also non-free packages in OUTFILE (no)"
-	log "   -f, --ftp              Use FTP as the protocol for OUTFILE (HTTP)"
+	log "   -f, --ftp              Use FTP as the protocol for OUTFILE (http)"
 	log "   -t, --tests #          Number of hosts to test ($test_hosts)"
 	log "   -c, --country COUNTRY  Restrict search to servers in that country"
 	log "   -d, --debug            Enable debugging"
@@ -302,7 +304,7 @@
 		-n|--nonfree) want_nonfree=1; shift ;;
 		-c|--country) country=$2; shift 2 ;;
 		-t|--tests) test_hosts=$2; shift 2 ;;
-		-f|--ftp) protocol="FTP"; shift ;;
+		-f|--ftp) protocol="ftp"; shift ;;
 		-d|--debug) DEBUG=1; shift ;;
 		-h|--help) usage; exit 0;;
 		--) shift; break;;
@@ -366,7 +368,9 @@
 if [ -n "$country" ]; then
     log "(will filter only for mirrors in country $country)"
 fi
-hosts_netselect=$(run_netselect "Packages over $protocol" $protocol)
+# Convert Search string to uppercase as it is used in the website
+search_string="Packages over ${protocol^^}"
+hosts_netselect=$(run_netselect "$search_string" $protocol)
 netselect_rv=$?
 if [ $netselect_rv -eq 0 ] ; then
         if [ ! -z "$hosts_netselect" ] ; then

Reply to: