Mon Apr 22 18:28:54 2024 UTC (54d)
Pullup ticket #6846 - requested by bouyer
net/mirror: build fix

Revisions pulled up:
- net/mirror/Makefile                                           1.47
- net/mirror/distinfo                                           1.10-1.11
- net/mirror/patches/patch-ac                                   1.6
- net/mirror/patches/patch-ad                                   1.6
- net/mirror/patches/patch-ae                                   1.8-1.9
- net/mirror/patches/patch-ag                                   1.3
- net/mirror/patches/patch-lsparse.pl                           1.1

---
   Module Name:	pkgsrc
   Committed By:	bouyer
   Date:		Thu Apr 11 10:23:44 UTC 2024

   Modified Files:
   	pkgsrc/net/mirror: Makefile distinfo
   	pkgsrc/net/mirror/patches: patch-ac patch-ad patch-ae patch-ag
   Added Files:
   	pkgsrc/net/mirror/patches: patch-lsparse.pl

   Log Message:
   Fix warning:
   Old package separator "'" deprecated at ...
   Bump PKGREVISION

---
   Module Name:	pkgsrc
   Committed By:	bouyer
   Date:		Thu Apr 11 17:11:01 UTC 2024

   Modified Files:
   	pkgsrc/net/mirror: distinfo
   	pkgsrc/net/mirror/patches: patch-ae

   Log Message:
   Remove $Id: from patch-ae, so that CVS doesn't change it
   Regen distinfo


(bsiegert)
diff -r1.46 -r1.46.14.1 pkgsrc/net/mirror/Makefile
diff -r1.9 -r1.9.20.1 pkgsrc/net/mirror/distinfo
diff -r1.5 -r1.5.102.1 pkgsrc/net/mirror/patches/patch-ac
diff -r1.5 -r1.5.176.1 pkgsrc/net/mirror/patches/patch-ad
diff -r1.7 -r1.7.102.1 pkgsrc/net/mirror/patches/patch-ae
diff -r1.2 -r1.2.102.1 pkgsrc/net/mirror/patches/patch-ag
diff -r0 -r1.1.2.2 pkgsrc/net/mirror/patches/patch-lsparse.pl

cvs diff -r1.46 -r1.46.14.1 pkgsrc/net/mirror/Makefile (expand / switch to context diff)
--- pkgsrc/net/mirror/Makefile 2022/06/28 11:35:02 1.46
+++ pkgsrc/net/mirror/Makefile 2024/04/22 18:28:54 1.46.14.1
@@ -1,7 +1,7 @@
-# $NetBSD: Makefile,v 1.46 2022/06/28 11:35:02 wiz Exp $
+# $NetBSD: Makefile,v 1.46.14.1 2024/04/22 18:28:54 bsiegert Exp $
 
 DISTNAME=	mirror-2.9
-PKGREVISION=	13
+PKGREVISION=	14
 CATEGORIES=	net
 MASTER_SITES=	# ftp://src.doc.ic.ac.uk/computing/archiving/mirror/
 

cvs diff -r1.9 -r1.9.20.1 pkgsrc/net/mirror/distinfo (expand / switch to context diff)
--- pkgsrc/net/mirror/distinfo 2021/10/26 11:06:00 1.9
+++ pkgsrc/net/mirror/distinfo 2024/04/22 18:28:54 1.9.20.1
@@ -1,12 +1,13 @@
-$NetBSD: distinfo,v 1.9 2021/10/26 11:06:00 nia Exp $
+$NetBSD: distinfo,v 1.9.20.1 2024/04/22 18:28:54 bsiegert Exp $
 
 BLAKE2s (mirror-2.9.tar.gz) = 9af6c135528b0a26418a229f6f943f70913a07fef1fffa2954685fa2d17e4bb6
 SHA512 (mirror-2.9.tar.gz) = afed2e62b95d1dd52aac32f3a608c0e08813c78d1bed8f5066bc4d6ac031c05ffeb7c7594a1c565dbf015086d7b3a907f35132ea850a3b93c31377e69dfa0654
 Size (mirror-2.9.tar.gz) = 123194 bytes
 SHA1 (patch-aa) = 04ba59e036a946eeff5c1a8cea08465c21a92dd8
 SHA1 (patch-ab) = 09045d218a86890f95e381f355fa61c3dfc34ef0
-SHA1 (patch-ac) = 816da27263d8883bc073f425d95b593c0a6f5ad2
-SHA1 (patch-ad) = 24b9dd4124756d2c058309e306da0ca022719ac6
-SHA1 (patch-ae) = 2efb5c4cc8f25b897d163e28a908b9745a553229
+SHA1 (patch-ac) = 4f018248392769e4da9e87ec16c509b3ac87d0e0
+SHA1 (patch-ad) = 9cbc9ce613cc0588d22186d542012fb911ab166f
+SHA1 (patch-ae) = 75c1433f01da0a38b7983f04d435fce2bb6cc7f7
 SHA1 (patch-af) = d83755dca89242a6822e5531a481b1735089242a
-SHA1 (patch-ag) = 31574a37bb09587ee7496a98c985865127a2fb0e
+SHA1 (patch-ag) = f402c883c3fe8967f7dc6b847969915ae367f678
+SHA1 (patch-lsparse.pl) = 9048fc10b06616c87fa7eafd64eb098e30ac3b7e

cvs diff -r1.5 -r1.5.102.1 pkgsrc/net/mirror/patches/patch-ac (expand / switch to context diff)
--- pkgsrc/net/mirror/patches/patch-ac 2011/09/12 16:35:43 1.5
+++ pkgsrc/net/mirror/patches/patch-ac 2024/04/22 18:28:54 1.5.102.1
@@ -1,14 +1,33 @@
-$NetBSD: patch-ac,v 1.5 2011/09/12 16:35:43 taca Exp $
+$NetBSD: patch-ac,v 1.5.102.1 2024/04/22 18:28:54 bsiegert Exp $
 
 * Fix path for pkgsrc.
 * Use md5(1) instead of sum(1).
 * Add -f option to compress program.
 * Fix deleting remote directories.
 * Fix display of transfer direction.
+* Fix deprecation warning (change ' to ::) for newer perl
 
---- mirror.pl.orig	1998-06-08 10:55:27.000000000 +0000
-+++ mirror.pl
-@@ -104,7 +104,7 @@ $load_defaults = 1;
+--- mirror.pl.orig	2024-04-11 11:08:05.973997402 +0200
++++ mirror.pl	2024-04-11 11:07:48.794686287 +0200
+@@ -38,7 +38,7 @@
+ # Allow for remote_account pasword.
+ # Only one arg to undef, for early perl5's
+ # Use all capitals for file descriptors.
+-# Use ftp'close not ftp'quit
++# Use ftp::close not ftp::quit
+ # Avoid file renaming under MACos
+ # Corrected file deleting.
+ #
+@@ -51,7 +51,7 @@
+ # Allow strip_cr (from Andrew).
+ # More symlink handling...
+ # Set type for vms correctly.
+-# Changed response from ftp'delete, also corrected path used.
++# Changed response from ftp::delete, also corrected path used.
+ #
+ # Revision 2.4  1994/04/29  20:11:09  lmjm
+ # Use correct variable for hostname
+@@ -104,7 +104,7 @@
  # Try to find the default location of various programs via
  # the users PATH then using $extra_path
  if( ! $on_win ){
@@ -17,7 +36,7 @@
  }
  if( $extra_path ne '' ){
  	$ENV{ 'PATH' } .= $path_sep . $extra_path;
-@@ -159,19 +159,20 @@ if( ! $mail_prog ){
+@@ -159,19 +159,20 @@
  $rm_prog = &find_prog( 'rm' );
  
  # Generate checksums
@@ -42,7 +61,25 @@
  unshift( @INC, $dir );
  
  # Debian GNU/Linux stores mirror.defaults in /etc/mirror
-@@ -1022,7 +1023,7 @@ sub do_mirror
+@@ -259,7 +260,7 @@
+ $default{ 'remote_gpass' } = '';
+ $default{ 'timeout' } = 120;	# timeout ftp requests after this many seconds
+ $default{ 'failed_gets_excl' } = ''; # failed messages to ignore while getting,
+-				# if failed to ftp'get
++				# if failed to ftp::get
+ $default{ 'ftp_port' } = 21;	# port number of remote ftp daemon
+ $default{ 'proxy' } = 0;	# normally use regular ftp
+ $default{ 'proxy_ftp_port' } = 4514; # default from Sun
+@@ -656,7 +657,7 @@
+ 		# THIS DOES NOT YET WORK!!!!!
+ 		$dumped_version = 1;
+ 		warn "Dumping perl\n";
+-		dump parse_args;
++		CORE::dump parse_args;
+ 	}
+ 
+ 	warn "Unknown arg $arg, skipping\n";
+@@ -1022,7 +1023,7 @@
  		&pr_variables( "\n" );
  	}
  	elsif( $package && ! $pretty_print ){
@@ -51,7 +88,177 @@
  			&msg( "package=$package $site:$remote_dir -> $local_dir\n");
  		}
  		else {
-@@ -1807,7 +1808,7 @@ sub get_remote_directory_details
+@@ -1053,10 +1054,10 @@
+ 
+ 	if( $debug ){
+ 		# Keep the ftp debugging lower than the rest.
+-		&ftp'debug( $debug - 1);
++		&ftp::debug( $debug - 1);
+ 	}
+ 	else {
+-		&ftp'debug( $verbose );
++		&ftp::debug( $verbose );
+ 	}
+ 
+ 	if( $recurse_hard ){
+@@ -1069,19 +1070,19 @@
+ 	}
+ 
+ 	if( ! $interactive ){
+-		$ftp'showfd = 'STDOUT';
++		$ftp::showfd = 'STDOUT';
+ 	}
+-	&ftp'set_timeout( $timeout );
+-	&ftp'set_signals( "main'msg" );
++	&ftp::set_timeout( $timeout );
++	&ftp::set_signals( "main'msg" );
+ 
+ 	# set passive ftp mode
+ 	if( $passive_ftp ){
+-		$ftp'use_pasv = 1;
++		$ftp::use_pasv = 1;
+ 	}
+ 
+ 	# Are we using the SOCKS version of perl?
+ 	if( $using_socks ){
+-		$chat'using_socks = 1;
++		$chat::using_socks = 1;
+ 	}
+ 
+ 	# Useful string in prints
+@@ -1216,13 +1217,13 @@
+ 	if( $con == 1 ){
+ 		&msg( "login as $remote_user\n" ) if $debug > 1;
+ 		$curr_remote_user = $remote_user;
+-		if( ! &ftp'login( $remote_user, $remote_password, $remote_account ) ){
++		if( ! &ftp::login( $remote_user, $remote_password, $remote_account ) ){
+ 			&msg( "Cannot login, skipping package\n" );
+ 			&disconnect();
+ 			&msg( "\n" );
+ 			return $exit_status;
+ 		}
+-		$can_restart = (&ftp'restart(0) == 1);
++		$can_restart = (&ftp::restart(0) == 1);
+ 		if( $debug > 1 ){
+ 			&msg( "Can " . ($can_restart ? '' : "not ") . "do restarts\n" );
+ 
+@@ -1233,7 +1234,7 @@
+ 		&msg( "Already connected to site $site\n" ) if $debug;
+ 	}
+ 
+-	if( ! &ftp'type( $text_mode ? 'A' : 'I' ) ){
++	if( ! &ftp::type( $text_mode ? 'A' : 'I' ) ){
+ 		&msg( "Cannot set type\n" );
+ 	}
+ 
+@@ -1244,16 +1245,16 @@
+ 	# setting the namemap functions.
+ 	if( $remote_fs =~ /vms/i ){
+ 		$vms = 1;
+-		&ftp'set_namemap( "main'unix2vms", "main'vms2unix" );
++		&ftp::set_namemap( "main'unix2vms", "main'vms2unix" );
+ 	}
+ 	else {
+ 		$vms = 0;
+ 		# No mapping necessary
+-		&ftp'set_namemap( '' );
++		&ftp::set_namemap( '' );
+ 	}
+ 
+ 	if( ! $get_file || $remote_idle ){
+-		local( @rhelp ) = &ftp'site_commands();
++		local( @rhelp ) = &ftp::site_commands();
+ 		$remote_has_chmod = grep( $_ eq 'CHMOD', @rhelp);
+ 		$remote_has_rename = grep( $_ eq 'RNFR', @rhelp) && grep( $_ eq 'RNTO', @rhelp);
+ 		$remote_has_idle = grep( $_ eq 'IDLE', @rhelp);
+@@ -1264,7 +1265,7 @@
+ 	}
+ 	
+ 	if( $remote_has_idle && $remote_idle ){
+-		if( ! &ftp'quote( "site idle $remote_idle" ) ){
++		if( ! &ftp::quote( "site idle $remote_idle" ) ){
+ 			&msg( "Cannot set remote idle\n" );
+ 		}
+ 		elsif( $debug > 2 ){
+@@ -1273,7 +1274,7 @@
+ 	}
+ 
+ 	if( $remote_group ){
+-		if( ! &ftp'quote( "site group $remote_group" ) ){
++		if( ! &ftp::quote( "site group $remote_group" ) ){
+ 			&msg( "Cannot set remote group\n" );
+ 		}
+ 		elsif( $debug > 2 ){
+@@ -1282,7 +1283,7 @@
+ 	}
+ 	
+ 	if( $remote_gpass ){
+-		if( ! &ftp'quote( "site gpass $remote_gpass" ) ){
++		if( ! &ftp::quote( "site gpass $remote_gpass" ) ){
+ 			&msg( "Cannot set remote gpass\n" );
+ 		}
+ 		elsif( $debug > 2 ){
+@@ -1496,11 +1497,11 @@
+ {
+ 	if( $connected ){
+ 		&msg( "disconnecting from $connected\n" ) if $debug;
+-		if( ! $ftp'fatalerror ){
+-			&ftp'close();
++		if( ! $ftp::fatalerror ){
++			&ftp::close();
+ 		}
+ 		else {
+-			&ftp'service_closed();
++			&ftp::service_closed();
+ 		}
+ 	}
+ 	$connected = '';
+@@ -1524,11 +1525,11 @@
+ 	&disconnect();
+ 
+ 	if( $proxy ){
+-	    $ftp'proxy = $proxy;
+-	    $ftp'proxy_gateway = $proxy_gateway;
+-	    $ftp'proxy_ftp_port = $proxy_ftp_port;
++	    $ftp::proxy = $proxy;
++	    $ftp::proxy_gateway = $proxy_gateway;
++	    $ftp::proxy_ftp_port = $proxy_ftp_port;
+ 	}
+-	$res = &ftp'open( $site, $ftp_port, $retry_call, $attempts );
++	$res = &ftp::open( $site, $ftp_port, $retry_call, $attempts );
+ 	if( $res == 1 ){
+ 		# Connected
+ 		$connected = $site;
+@@ -1544,7 +1545,7 @@
+ 	if( $debug > 2 ){
+ 		&msg( " prodding remote ftpd\n" );
+ 	}
+-	&ftp'pwd();
++	&ftp::pwd();
+ }
+ 
+ # checkout and fixup any regexps.
+@@ -1774,7 +1775,7 @@
+ 	$remote_type[ 0 ] = 0;
+ 	$remote_mode[ 0 ] = 0;
+ 
+-	if( $remote_fs !~ /cms/ && ! &ftp'cwd( $remote_dir ) ){
++	if( $remote_fs !~ /cms/ && ! &ftp::cwd( $remote_dir ) ){
+ 		if( $get_file ){
+ 			# no files to get
+ 			return 0;
+@@ -1783,8 +1784,8 @@
+ 		&msg( "Failed to change to remote directory ($remote_dir) trying to create it\n" );
+ 		&mkdirs( $remote_dir );
+ 
+-		if( ! &ftp'cwd( $remote_dir ) ){
+-			&msg( "Cannot change to remote directory ($remote_dir) because: $ftp'response\n" );
++		if( ! &ftp::cwd( $remote_dir ) ){
++			&msg( "Cannot change to remote directory ($remote_dir) because: $ftp::response\n" );
+ 			return 0;
+ 		}
+ 	}
+@@ -1807,7 +1808,7 @@
    			local( $f );
    			$f = $dirtmp;
  			$f =~ s/($shell_metachars)/\\$1/g;
@@ -60,7 +267,16 @@
    		}
  		if( ! open( DIRTMP, $dirtmp ) ){
  			&msg( "Cannot open $dirtmp\n" );
-@@ -1845,7 +1846,7 @@ sub get_remote_directory_details
+@@ -1827,7 +1828,7 @@
+ 		}
+ 
+ 		&msg( " Getting directory listing from remote file $ls_lR_file\n" ) if $debug;
+-		if( ! &ftp'get( $ls_lR_file, $dirtmp, 0 ) ){
++		if( ! &ftp::get( $ls_lR_file, $dirtmp, 0 ) ){
+ 			&msg( "Cannot get dir listing file\n" );
+ 			return 0;
+ 		}
+@@ -1845,7 +1846,7 @@
    			$f = $dirtmp;
    			$dirtmp =~ s/\.($sys_compress_suffix|$gzip_suffix|$old_gzip_suffix)$//;
    			$udirtmp =~ s/\.($sys_compress_suffix|$gzip_suffix|$ol_gzip_suffix)$//;
@@ -69,7 +285,163 @@
  				&msg( "Cannot uncompress directory listing\n" );
  				return 0;
  			}
-@@ -2760,7 +2761,7 @@ sub transfer_file
+@@ -1860,7 +1861,7 @@
+ 	}
+ 	else {
+ 		$use_ls = 1;
+-		if( ! &ftp'type( 'A' ) ){
++		if( ! &ftp::type( 'A' ) ){
+ 			&msg( "Cannot set type to ascii for dir listing, ignored\n" );
+ 			$type_changed = 0;
+ 		}
+@@ -1869,21 +1870,21 @@
+ 		}
+ 	}
+ 	
+-	$lsparse'fstype = $remote_fs;
+-	$lsparse'name = "$site:$package";
++	$lsparse::fstype = $remote_fs;
++	$lsparse::name = "$site:$package";
+ 	
+ 	if( $use_ls ){
+ 		local( $flags ) = $flags_nonrecursive;
+ 		if( $recursive && ! $recurse_hard ){
+ 			$flags = $flags_recursive;
+ 		}
+-		$lsparse'report_subdirs = (! $recurse_hard && $algorithm == 0);
+-	 	if( !&ftp'dir_open( $flags ) ){
+-			&msg( "Cannot get remote directory listing because: $ftp'response\n" );
++		$lsparse::report_subdirs = (! $recurse_hard && $algorithm == 0);
++	 	if( !&ftp::dir_open( $flags ) ){
++			&msg( "Cannot get remote directory listing because: $ftp::response\n" );
+ 			return 0;
+ 		}
+ 		
+-		$rls = "ftp'NS";
++		$rls = "ftp::NS";
+ 	}
+ 		
+ 	$rcwd = '';
+@@ -1892,8 +1893,8 @@
+ 		# relative to the remote_dir
+ 		$rcwd = $remote_dir;
+ 	}
+-	$dateconv'use_timelocal = $use_timelocal;
+-	if( !&lsparse'reset( $rcwd ) ){
++	$dateconv::use_timelocal = $use_timelocal;
++	if( !&lsparse::reset( $rcwd ) ){
+ 		&msg( "$remote_fs: unknown fstype\n" );
+ 		return 0;
+ 	}
+@@ -1923,7 +1924,7 @@
+ 		# Could optimise this out - but it makes sure that
+ 		# the other end gets a command straight after a possibly
+ 		# long dir listing.
+-		if( ! &ftp'type( $text_mode ? 'A' : 'I' ) ){
++		if( ! &ftp::type( $text_mode ? 'A' : 'I' ) ){
+ 			local( $msg ) = "Cannot reset type after dir listing, ";
+ 			if( $type_changed ){
+ 				# I changed it before - so I must be able to
+@@ -1995,7 +1996,7 @@
+ 	while( 1 ){
+ 		while( !eof( $rls ) ){
+ 			( $path, $size, $time, $type, $mode ) =
+-				&lsparse'line( $rls );
++				&lsparse::line( $rls );
+ 			last if $path eq '';
+ 			if( $ls_fix_mappings ){
+ 				local( $old_path ) = $path;
+@@ -2086,9 +2087,9 @@
+ 		}
+ 
+ 		if( $use_ls ){
+-			if( ! &ftp'dir_close() ){
++			if( ! &ftp::dir_close() ){
+ 				&msg( "Failure at end of remote directory" .
+-				 " ($rdir) because: $ftp'response\n" );
++				 " ($rdir) because: $ftp::response\n" );
+ 				return 0;
+ 			}
+ 		}
+@@ -2098,9 +2099,9 @@
+ 			while( 1 ){
+ 				if( $#dir_list < 0 ){
+ 					# Make sure we end in the right directory.
+-					if( ! &ftp'cwd( $remote_dir ) ){
++					if( ! &ftp::cwd( $remote_dir ) ){
+ 						&msg( "Cannot change to remote directory" .
+-						 " ($rdir) because: $ftp'response\n" );
++						 " ($rdir) because: $ftp::response\n" );
+ 						return 0;
+ 					}
+ 					$done = 1;
+@@ -2111,9 +2112,9 @@
+ 				if( $debug > 2 ){
+ 					print "scanning: $remote_dir / $rcwd\n";
+ 				}
+-				if( ! &ftp'cwd( $rdir ) ){
++				if( ! &ftp::cwd( $rdir ) ){
+ 					&msg( "Cannot change to remote directory" .
+-					 " ($rdir) because: $ftp'response\n" );
++					 " ($rdir) because: $ftp::response\n" );
+ 					next;
+ 				}
+ 				last;
+@@ -2121,12 +2122,12 @@
+ 			if( $done ){
+ 				last;
+ 			}
+-		 	if( !&ftp'dir_open( $flags_nonrecursive ) ){
++		 	if( !&ftp::dir_open( $flags_nonrecursive ) ){
+ 				&msg( "Cannot get remote directory" .
+-				  	" listing because: $ftp'response\n" );
++				  	" listing because: $ftp::response\n" );
+ 				return 0;
+ 			}
+-			&lsparse'reset( $rcwd );
++			&lsparse::reset( $rcwd );
+ 			
+ 			# round the loop again.
+ 			next;
+@@ -2517,7 +2518,7 @@
+ 	
+ 	if( $external_mapping ){
+ 		$old_name = $name;
+-		local( $tmp ) = &extmap'map( $name );
++		local( $tmp ) = &extmap::map( $name );
+ 		if( $tmp ne $old_name ){
+ 			$name = $tmp;
+ 		}
+@@ -2678,11 +2679,11 @@
+ 			&transfer_file( $src_path, $dest_path,
+ 				       $attribs, $remote_time[ $srci ] );
+ 		if( $get_file && $newpath eq '' ){
+-			&msg( $log, "Failed to $XFER file $ftp'response\n" );
+-			if( $ftp'response =~ /timeout|timed out/i ){
++			&msg( $log, "Failed to $XFER file $ftp::response\n" );
++			if( $ftp::response =~ /timeout|timed out/i ){
+ 				$timeouts++;
+ 			}
+-			if( $ftp'fatalerror || $timeouts > $max_timeouts ){
++			if( $ftp::fatalerror || $timeouts > $max_timeouts ){
+ 				&msg( $log, "Fatal error talking to site, skipping rest of transfers\n" );
+ 				&disconnect();
+ 				return;
+@@ -2742,11 +2743,11 @@
+ 	}
+ 	
+ 	if( $vms ){
+-		&ftp'type( ($src_path =~ /$vms_xfer_text/i) ? 'A' : 'I' );
++		&ftp::type( ($src_path =~ /$vms_xfer_text/i) ? 'A' : 'I' );
+ 	}
+ 	
+ 	if( $remote_fs eq 'macos' && ! $get_file ){
+-		&ftp'type( 'A' );
++		&ftp::type( 'A' );
+ 	}
+ 	
+ 	if( ! $get_file ){
+@@ -2760,7 +2761,7 @@
    			local( $f ) = $src_file;
  			$f =~ s/($shell_metachars)/\\$1/g;
    			$comptemp = "$big_temp/.out$$";
@@ -78,7 +450,52 @@
    			$src_file = $comptemp;
  		}
  		
-@@ -2840,10 +2841,10 @@ sub transfer_file
+@@ -2768,15 +2769,15 @@
+ 			$temp = $dest_path;
+ 		}
+ 
+-		if( ! &ftp'put( $src_file, $temp, $restart ) ){
+-			&msg( $log, "Failed to put $src_file: $ftp'response\n" );
++		if( ! &ftp::put( $src_file, $temp, $restart ) ){
++			&msg( $log, "Failed to put $src_file: $ftp::response\n" );
+ 			unlink( $comptemp ) if $comptemp;
+ 			return '';
+ 		}
+ 	
+ 		unlink( $comptemp ) if $comptemp;
+-		if( !$no_rename && ! &ftp'rename( $temp, $dest_path ) ){
+-			&msg( $log, "Failed to remote rename $temp to $dest_path: $ftp'response\n" );
++		if( !$no_rename && ! &ftp::rename( $temp, $dest_path ) ){
++			&msg( $log, "Failed to remote rename $temp to $dest_path: $ftp::response\n" );
+ 			return '';
+ 		}
+ 
+@@ -2800,11 +2801,11 @@
+ 	# it.
+ 
+ 	# Get a file
+-	&ftp'dostrip( $strip_cr );
++	&ftp::dostrip( $strip_cr );
+ 	$start_time = time;
+-	if( ! &ftp'get( $src_path, $temp, $restart ) ){
+-		if( !$failed_gets_excl || $ftp'response !~ /$failed_gets_excl/ ){
+-			&msg( $log, "Failed to get $src_path: $ftp'response\n" );
++	if( ! &ftp::get( $src_path, $temp, $restart ) ){
++		if( !$failed_gets_excl || $ftp::response !~ /$failed_gets_excl/ ){
++			&msg( $log, "Failed to get $src_path: $ftp::response\n" );
+ 		}
+ 
+ 		# Time stamp the temp file to allow for a restart
+@@ -2823,7 +2824,7 @@
+ 
+ 	# delete source file after successful transfer
+ 	if( $delete_source ){
+-		if( &ftp'delete( $src_path ) ){
++		if( &ftp::delete( $src_path ) ){
+ 			&msg( $log, "Deleted remote $src_path\n");
+ 		}
+ 		else {
+@@ -2840,10 +2841,10 @@
    		# Am I doing compress to gzip conversion?
     		if( $compress_conv_patt && $src_path =~ /$compress_conv_patt/ &&
    		    $compress_suffix eq $gzip_suffix ){
@@ -91,7 +508,7 @@
    		}
    		&sys( $comp );
  		$temp =~ s/\\($shell_metachars)/$1/g;
-@@ -3174,9 +3175,9 @@ sub do_delete
+@@ -3174,9 +3175,9 @@
  					&msg( $log, "rmdir $cwd/$del failed: $!\n" );
  			}
  			else {
@@ -99,8 +516,77 @@
 -				&ftp'delete( "$del" ) ||
 -					&msg( $log, "ftp delete DIR $del failed\n" );
 +				&msg( $log, "deldir DIR $del\n" );
-+				&ftp'deldir( "$del" ) ||
++				&ftp::deldir( "$del" ) ||
 +					&msg( $log, "ftp deldir DIR $del failed\n" );
  			}
  		}
  		else {
+@@ -3184,7 +3185,7 @@
+ 				&msg( $log, "NEED TO rmdir $cwd/$del\n" );
+ 			}
+ 			else {
+-				&msg( $log, "NEED TO ftp'deldir $del\n" );
++				&msg( $log, "NEED TO ftp::deldir $del\n" );
+ 			}
+ 		}
+ 		return;
+@@ -3199,7 +3200,7 @@
+ 		}
+ 		else {
+ 			&msg( $log, "delete FILE $del\n" );
+-			&ftp'delete( "$del" ) ||
++			&ftp::delete( "$del" ) ||
+ 				&msg( $log, "ftp delete FILE $del failed\n" );
+ 		}
+ 	}
+@@ -3208,7 +3209,7 @@
+ 			&msg( $log, "NEED TO unlink $cwd/$del\n" );
+ 		}
+ 		else {
+-			&msg( $log, "NEED TO ftp'delete $del\n" );
++			&msg( $log, "NEED TO ftp::delete $del\n" );
+ 		}
+ 	}
+ }
+@@ -3345,12 +3346,12 @@
+ 	}
+ 	else {
+ 		# make a remote directory
+-		$val = &ftp'mkdir( $dir );
++		$val = &ftp::mkdir( $dir );
+ 
+ 		# The mkdir might have failed due to bad mode
+ 		# So try to chmod it anyway
+ 		if( $remote_has_chmod ){
+-			$val = &ftp'chmod( $dir, $mode );
++			$val = &ftp::chmod( $dir, $mode );
+ 		}
+ 	}
+ 
+@@ -3369,14 +3370,14 @@
+ 	}
+ 	else {
+ 		# check if remote directory exists
+-		local($old_dir) = &ftp'pwd();		
++		local($old_dir) = &ftp::pwd();		
+ 		
+-		$val = &ftp'cwd($dir);
++		$val = &ftp::cwd($dir);
+ 
+ 		# If I didn't manage to change dir should be where I was!
+ 		if( $val ){
+ 			# go back to the original directory
+-			&ftp'cwd($old_dir) || die "Cannot cd to original remote directory";
++			&ftp::cwd($old_dir) || die "Cannot cd to original remote directory";
+ 		}
+ 	}
+ 	return $val;
+@@ -3430,7 +3431,7 @@
+ 	else {
+ 		# change the remote file
+ 		if( $remote_has_chmod ){
+-			&ftp'chmod( $path, $mode );
++			&ftp::chmod( $path, $mode );
+ 		}
+ 	}
+ }

cvs diff -r1.5 -r1.5.176.1 pkgsrc/net/mirror/patches/patch-ad (expand / switch to context diff)
--- pkgsrc/net/mirror/patches/patch-ad 1999/12/28 18:15:43 1.5
+++ pkgsrc/net/mirror/patches/patch-ad 2024/04/22 18:28:54 1.5.176.1
@@ -1,9 +1,75 @@
-$NetBSD: patch-ad,v 1.5 1999/12/28 18:15:43 itojun Exp $
+$NetBSD: patch-ad,v 1.5.176.1 2024/04/22 18:28:54 bsiegert Exp $
 
---- lchat.pl.orig	Wed Jun  7 22:19:22 1995
-+++ lchat.pl	Wed May 12 18:10:54 1999
-@@ -79,7 +79,7 @@
+--- lchat.pl.orig	2024-04-11 11:08:05.970309238 +0200
++++ lchat.pl	2024-04-11 11:07:48.798330768 +0200
+@@ -34,7 +34,7 @@
+ # Lots of changes.  See CHANGES since 2.8 file.
+ #
+ # Revision 2.3  1994/02/03  13:45:35  lmjm
+-# Correct chat'read (bfriesen@simple.sat.tx.us)
++# Correct chat::read (bfriesen@simple.sat.tx.us)
+ #
+ # Revision 2.2  1993/12/14  11:09:03  lmjm
+ # Only include sys/socket.ph if not already there.
+@@ -55,7 +55,7 @@
+ 	eval "use Socket";
+ }
+ else {
+-	unless( defined &'PF_INET ){
++	unless( defined &::PF_INET ){
+ 		eval "sub ATT { 0; } sub INTEL { 0; }";
+ 		do 'sys/socket.ph';
+ 	}
+@@ -65,18 +65,18 @@
+ if( $] =~ /^5\.\d+$/ ){
+ 	# Perl 5 has a special way of getting them via the 'use Socket'
+ 	# above.
+-	$main'pf_inet = &Socket'PF_INET;
+-	$main'sock_stream = &Socket'SOCK_STREAM;
++	$main::pf_inet = &Socket::PF_INET;
++	$main::sock_stream = &Socket::SOCK_STREAM;
+ 	local($name, $aliases, $proto) = getprotobyname( 'tcp' );
+-	$main'tcp_proto = $proto;
++	$main::tcp_proto = $proto;
+ }
+-elsif( defined( &'PF_INET ) ){
++elsif( defined( &::PF_INET ) ){
+ 	# Perl 4 needs to have the socket.ph file created when perl was
+ 	# installed.
+-	$main'pf_inet = &'PF_INET;
+-	$main'sock_stream = &'SOCK_STREAM;
++	$main::pf_inet = &::PF_INET;
++	$main::sock_stream = &::SOCK_STREAM;
+ 	local($name, $aliases, $proto) = getprotobyname( 'tcp' );
+-	$main'tcp_proto = $proto;
++	$main::tcp_proto = $proto;
+ }
+ else {
+ 	# Whoever installed perl didn't run h2ph !!!
+@@ -84,9 +84,9 @@
+ 	#  last resort
+ 	# Use hardwired versions
+ 	# but who the heck would change these anyway? (:-)
+-	$main'pf_inet = 2;
+-	$main'sock_stream = 1; # Sigh... On Solaris set this to 2
+-	$main'tcp_proto = 6;
++	$main::pf_inet = 2;
++	$main::sock_stream = 1; # Sigh... On Solaris set this to 2
++	$main::tcp_proto = 6;
+ 	warn "lchat.pl: using hardwired in network constantants";
+ }
  
+@@ -108,7 +108,7 @@
+ }
+ 
+ 
+-## &chat'open_port("server.address",$port_number);
++## &chat::open_port("server.address",$port_number);
+ ## opens a named or numbered TCP server
+ sub open_port { ## public
+ 	local($server, $port) = @_;
+@@ -117,7 +117,7 @@
+ 
  	# We may be multi-homed, start with 0, fixup once connexion is made
  	$thisaddr = "\0\0\0\0" ;
 -	$thisproc = pack($sockaddr, 2, 0, $thisaddr);
@@ -11,16 +77,18 @@
  
  	if ($server =~ /^(\d+)+\.(\d+)\.(\d+)\.(\d+)$/) {
  		$serveraddr = pack('C4', $1, $2, $3, $4);
-@@ -90,7 +90,7 @@
+@@ -128,8 +128,8 @@
  		}
  		$serveraddr = $x[4];
  	}
 -	$serverproc = pack($sockaddr, 2, $port, $serveraddr);
+-	unless (socket(S, $main'pf_inet, $main'sock_stream, $main'tcp_proto)) {
 +	$serverproc = pack_sockaddr_in($port, $serveraddr);
- 	unless (socket(S, $main'pf_inet, $main'sock_stream, $main'tcp_proto)) {
++	unless (socket(S, $main::pf_inet, $main::sock_stream, $main::tcp_proto)) {
  		($!) = ($!, close(S)); # close S while saving $!
  		return undef;
-@@ -99,12 +99,12 @@
+ 	}
+@@ -137,12 +137,12 @@
  	# The SOCKS documentation claims that this bind before the connet
  	# is unnecessary.  Not just, that, but when used with SOCKS,
  	# a connect() must not follow a bind(). -Erez Zadok.
@@ -39,7 +107,7 @@
  	unless (connect(S, $serverproc)) {
  		($!) = ($!, close(S)); # close S while saving $!
  		return undef;
-@@ -114,7 +114,7 @@
+@@ -152,7 +152,7 @@
  # multi-homed, with IP forwarding off, so fix-up.
  	local($fam,$lport);
  	($fam,$lport,$thisaddr) = unpack($sockaddr, getsockname(S));
@@ -48,7 +116,7 @@
  # end of post-connect fixup
  	select((select(S), $| = 1)[0]);
  	return 1;
-@@ -129,7 +129,7 @@
+@@ -167,7 +167,7 @@
  
  	# We may be multi-homed, start with 0, fixup once connexion is made
  	$thisaddr = "\0\0\0\0" ;
@@ -57,7 +125,7 @@
  
  	if ($server =~ /^(\d+)+\.(\d+)\.(\d+)\.(\d+)$/) {
  		$serveraddr = pack('C4', $1, $2, $3, $4);
-@@ -151,7 +151,7 @@
+@@ -189,7 +189,7 @@
  # multi-homed, with IP forwarding off, so fix-up.
  	local($fam,$lport);
  	($fam,$lport,$thisaddr) = unpack($sockaddr, getsockname($newsock));
@@ -66,3 +134,47 @@
  # end of post-connect fixup
  	select((select($newsock), $| = 1)[0]);
  	return 1;
+@@ -197,7 +197,7 @@
+ ##############################################################################
+ 
+ 
+-## $return = &chat'expect($timeout_time,
++## $return = &chat::expect($timeout_time,
+ ## 	$pat1, $body1, $pat2, $body2, ... )
+ ## $timeout_time is the time (either relative to the current time, or
+ ## absolute, ala time(2)) at which a timeout event occurs.
+@@ -293,7 +293,7 @@
+ 		 		select($rmask, undef, undef, $endtime - time);
+ 			if ($nfound) {
+ 				$nread = sysread(S, $thisbuf, 1024);
+-				if( $chat'debug ){
++				if( $chat::debug ){
+ 					print STDERR "sysread $nread ";
+ 					print STDERR ">>$thisbuf<<\n";
+ 				}
+@@ -316,21 +316,21 @@
+ 	& $subname();
+ }
+ 
+-## &chat'print(@data)
++## &chat::print(@data)
+ sub print { ## public
+ 	print S @_;
+-	if( $chat'debug ){
++	if( $chat::debug ){
+ 		print STDERR "printed:";
+ 		print STDERR @_;
+ 	}
+ }
+ 
+-## &chat'close()
++## &chat::close()
+ sub close { ## public
+ 	close(S);
+ }
+ 
+-# &chat'read(*buf, $ntoread )
++# &chat::read(*buf, $ntoread )
+ # blocking read. returns no. of bytes read and puts data in $buf.
+ # If called with ntoread < 0 then just do the accept and return 0.
+ sub read { ## public

cvs diff -r1.7 -r1.7.102.1 pkgsrc/net/mirror/patches/patch-ae (expand / switch to context diff)
--- pkgsrc/net/mirror/patches/patch-ae 2011/09/12 16:35:43 1.7
+++ pkgsrc/net/mirror/patches/patch-ae 2024/04/22 18:28:54 1.7.102.1
@@ -1,12 +1,127 @@
-$NetBSD: patch-ae,v 1.7 2011/09/12 16:35:43 taca Exp $
+$NetBSD: patch-ae,v 1.7.102.1 2024/04/22 18:28:54 bsiegert Exp $
 
 * Enable deleting remote directories.
 * Proper signal handling.
 * Miscellaneous bug fixes.
+* Fix deprecation warning (change ' to ::) for newer perl
 
---- ftp.pl.orig	1998-06-05 09:10:27.000000000 +0000
-+++ ftp.pl
-@@ -233,7 +233,7 @@ sub timed_open
+--- ftp.pl.orig	2024-04-11 11:08:05.969004188 +0200
++++ ftp.pl	2024-04-11 11:07:48.797471889 +0200
+@@ -28,16 +28,16 @@
+ #  $ftp_port = 21;
+ #  $retry_call = 1;
+ #  $attempts = 2;
+-#  if( &ftp'open( $site, $ftp_port, $retry_call, $attempts ) != 1 ){
++#  if( &ftp::open( $site, $ftp_port, $retry_call, $attempts ) != 1 ){
+ #   die "failed to open ftp connection";
+ #  }
+-#  if( ! &ftp'login( $user, $pass ) ){
++#  if( ! &ftp::login( $user, $pass ) ){
+ #   die "failed to login";
+ #  }
+-#  &ftp'type( $text_mode ? 'A' : 'I' );
+-#  if( ! &ftp'get( $remote_filename, $local_filename, 0 ) ){
++#  &ftp::type( $text_mode ? 'A' : 'I' );
++#  if( ! &ftp::get( $remote_filename, $local_filename, 0 ) ){
+ #   die "failed to get file";
+ #  }
+-#  &ftp'close();
++#  &ftp::close();
+ #
+ #
+@@ -94,9 +94,9 @@
+ 
+ # This is a "global" it contains the last response from the remote ftp server
+ # for use in error messages
+-$ftp'response = "";
++$ftp::response = "";
+ 
+-# Also ftp'NS is the socket containing the data coming in from the remote ls
++# Also ftp::NS is the socket containing the data coming in from the remote ls
+ # command.
+ 
+ # The size of block to be read or written when talking to the remote
+@@ -115,12 +115,12 @@
+ $real_site = "";
+ 
+ # "Global" Where error/log reports are sent to
+-$ftp'showfd = 'STDERR';
++$ftp::showfd = 'STDERR';
+ 
+ # Should a 421 be treated as a connection close and return 99 from
+-# ftp'expect.  This is against rfc1123 recommendations but I've found
++# ftp::expect.  This is against rfc1123 recommendations but I've found
+ # it to be a wise default.
+-$ftp'drop_on_421 = 1;
++$ftp::drop_on_421 = 1;
+ 
+ # Name of a function to call on a pathname to map it into a remote
+ # pathname.
+@@ -131,7 +131,7 @@
+ $ftp_show = 0;
+ 
+ # Global set on a error that aborts the connection
+-$ftp'fatalerror = 0;
++$ftp::fatalerror = 0;
+ 
+ # Whether to keep the continuation messages so the user can look at them
+ $keep_continuations = 0;
+@@ -140,7 +140,7 @@
+ $read_in = undef;
+ 
+ # should we use the PASV extension to the ftp protocol?
+-$ftp'use_pasv = 0;    # 0=no (default), 1=yes
++$ftp::use_pasv = 0;    # 0=no (default), 1=yes
+ 
+ # Variable only used if proxying
+ $proxy = $proxy_gateway = $proxy_ftp_port = '';
+@@ -150,30 +150,30 @@
+ # (Normally set elsewhere - this is just a sensible default.)
+ # Is expected to take count and code as arguments and prompt
+ # for the secret key  with 'password:' on stdout and then print the password.
+-$ftp'keygen_prog = '/usr/local/bin/key';
++$ftp::keygen_prog = '/usr/local/bin/key';
+ 
+ # Uncomment to turn on lots of debugging.
+ # &debug( 10 );
+ 
+-# Limit how much data any one ftp'get can pull back
++# Limit how much data any one ftp::get can pull back
+ # Negative values cause the size check to be skipped.
+ $max_get_size = -1;
+ 
+ # Where I am connected to.
+ $connect_site = '';
+ 
+-# &ftp'debug( debugging_level )
++# &ftp::debug( debugging_level )
+ # Turn on debugging ranging from 1 = some to 10 = everything
+-sub ftp'debug
++sub ftp::debug
+ {
+ 	$ftp_show = $_[0];
+ 	if( $ftp_show > 9 ){
+-		$chat'debug = 1;
++		$chat::debug = 1;
+ 	}
+ }
+ 
+-# &ftp'set_timeout( seconds )
+-sub ftp'set_timeout
++# &ftp::set_timeout( seconds )
++sub ftp::set_timeout
+ {
+ 	local( $to ) = @_;
+ 	return if $to == $timeout;
+@@ -226,21 +226,21 @@
+ 			$connect_site = $site;
+ 			$connect_port = $ftp_port;
+ 		}
+-		if( ! &chat'open_port( $connect_site, $connect_port ) ){
++		if( ! &chat::open_port( $connect_site, $connect_port ) ){
+ 			if( $retry_call ){
+ 				print $showfd "Failed to connect\n" if $ftp_show;
+ 				next;
  			}
  			else {
  				print $showfd "proxy connection failed " if $proxy;
@@ -15,22 +130,119 @@
  				return 0;
  			}
  		}
-@@ -270,6 +270,14 @@ sub ftp'set_signals
- 	$SIG{ 'PIPE' } = "ftp'ftp__sighandler";
+ 		$ret = &expect( $timeout,
+ 			2, 1 ); # ready for login to $site
+ 		if( $ret != 1 ){
+-			&chat'close();
++			&chat::close();
+ 			next;
+ 		}
+ 		return 1;
+@@ -264,14 +264,22 @@
  }
  
+ # Setup a signal handler for possible errors.
+-sub ftp'set_signals
++sub ftp::set_signals
+ {
+ 	$ftp_logger = @_;
+-	$SIG{ 'PIPE' } = "ftp'ftp__sighandler";
++	$SIG{ 'PIPE' } = "ftp::ftp__sighandler";
+ }
+ 
+-# &ftp'set_namemap( function to map outgoing name,  function to map incoming )
+-sub ftp'set_namemap
 +# Setup a signal handler for user interrupts.
-+sub ftp'set_user_signals
++sub ftp::set_user_signals
 +{
 + 	$ftp_logger = @_;
-+ 	$SIG{ 'INT' } = "ftp'ftp__sighandler";
++ 	$SIG{ 'INT' } = "ftp::ftp__sighandler";
 +}
 + 
 +
- # &ftp'set_namemap( function to map outgoing name,  function to map incoming )
- sub ftp'set_namemap
++# &ftp::set_namemap( function to map outgoing name,  function to map incoming )
++sub ftp::set_namemap
  {
-@@ -486,7 +494,7 @@ sub pasv
+ 	($mapunixout, $mapunixin) = @_;
+ 	if( $debug ) {
+@@ -280,12 +288,12 @@
+ }
+ 
+ 
+-# &ftp'open( hostname or address,
++# &ftp::open( hostname or address,
+ #            port to use,
+ #            retry on call failure,
+ #	     number of attempts to retry )
+ # returns 1 if connected, 0 otherwise
+-sub ftp'open
++sub ftp::open
+ {
+ 	local( $site, $ftp_port, $retry_call, $attempts ) = @_;
+ 
+@@ -312,9 +320,9 @@
+ 	return $ret;
+ }
+ 
+-# &ftp'login( user, password, account )
++# &ftp::login( user, password, account )
+ # the account part is optional unless the remote service requires one.
+-sub ftp'login
++sub ftp::login
+ {
+ 	local( $remote_user, $remote_password, $remote_account ) = @_;
+         local( $ret );
+@@ -351,11 +359,11 @@
+ 		# check for s/key challenge - eg, [s/key 994 ph29005]
+ 		# If we are talking to skey then use remote_password as the
+ 		# secret to generate a real password
+-		if( $ftp'response =~ m#\[s/key (\d+) (\w+)\]# ){
++		if( $ftp::response =~ m#\[s/key (\d+) (\w+)\]# ){
+ 			local( $count, $code ) = ($1, $2);
+ 
+ 			# TODO: report open failure & remove need for echo
+-			open( SKEY, "echo $remote_password | $ftp'keygen_prog $count $code |" );
++			open( SKEY, "echo $remote_password | $ftp::keygen_prog $count $code |" );
+ 			while( <SKEY> ){
+ 				if( ! /password:/ ){
+ 					chop( $remote_password = $_ );
+@@ -411,21 +419,21 @@
+ sub service_closed
+ {
+ 	$service_open = 0;
+-	&chat'close();
++	&chat::close();
+ }
+ 
+ # Close down the current ftp connecting in an orderly way.
+-sub ftp'close
++sub ftp::close
+ {
+ 	&quit();
+ 	$service_open = 0;
+-	&chat'close();
++	&chat::close();
+ }
+ 
+-# &ftp'cwd( directory )
++# &ftp::cwd( directory )
+ # Change to the given directory
+ # return 1 if successful, 0 otherwise
+-sub ftp'cwd
++sub ftp::cwd
+ {
+ 	local( $dir ) = @_;
+ 	local( $ret );
+@@ -460,7 +468,7 @@
+ sub pasv
+ {
+ 	# At some point I need to close/free S2, no?
+-	unless( socket( S2, $main'pf_inet, $main'sock_stream, $main'tcp_proto ) ){
++	unless( socket( S2, $main::pf_inet, $main::sock_stream, $main::tcp_proto ) ){
+ 		($!) = ($!, close(S2)); # close S2 while saving $!
+ 		return undef;
+ 	}
+@@ -486,7 +494,7 @@
  		return 0;
  	}
  	if( $ret == 1 ) {
@@ -39,7 +251,40 @@
  			$newhost = sprintf( "%d.%d.%d.%d", $1, $2, $3, $4 );
  			$newport = $5 * 256 + $6;
  		}
-@@ -581,6 +589,9 @@ sub ftp'dir_close
+@@ -497,7 +505,7 @@
+ 	}
+ 
+ 	# now need to connect() the new socket
+-	if( ! &chat'open_newport( $newhost, $newport, *S2 ) ){
++	if( ! &chat::open_newport( $newhost, $newport, *S2 ) ){
+ 		if( $retry_call ){
+ 			print $showfd "Failed to connect newport\n" if $ftp_show;
+ 			next;
+@@ -511,12 +519,12 @@
+ }
+ 
+ 
+-# &ftp'dir( remote LIST options )
++# &ftp::dir( remote LIST options )
+ # Start a list going with the given options.
+ # Presuming that the remote deamon uses the ls command to generate the
+ # data to send back then then you can send it some extra options (eg: -lRa)
+ # return 1 if sucessful, 0 otherwise
+-sub ftp'dir_open
++sub ftp::dir_open
+ {
+ 	local( $options ) = @_;
+ 	local( $ret );
+@@ -573,7 +581,7 @@
+ 
+ # Close down reading the result of a remote ls command
+ # return 1 if successful, 0 otherwise
+-sub ftp'dir_close
++sub ftp::dir_close
+ {
+ 	local( $ret );
+ 
+@@ -581,6 +589,9 @@
  		return 0;
  	}
  
@@ -49,7 +294,7 @@
  	# read the close
  	#
  	$ret = &expect($timeout,
-@@ -590,8 +601,6 @@ sub ftp'dir_close
+@@ -590,8 +601,6 @@
  		$ret = 0;
  	}
  
@@ -58,7 +303,41 @@
  
  	if( ! $ret ){
  		return 0;
-@@ -708,6 +717,7 @@ sub ftp'get
+@@ -602,7 +611,7 @@
+ 
+ # Quit from the remote ftp server
+ # return 1 if successful and 0 on failure
+-#  Users should be calling &ftp'close();
++#  Users should be calling &ftp::close();
+ sub quit
+ {
+ 	local( $ret );
+@@ -687,20 +696,20 @@
+ 	return syswrite( NS, $ftpbuf, $ftpbufsize );
+ }
+ 
+-# &ftp'dostrip( true or false )
++# &ftp::dostrip( true or false )
+ # Turn on or off stripping of incoming carriage returns.
+-sub ftp'dostrip
++sub ftp::dostrip
+ {
+ 	($strip_cr ) = @_;
+ }
+ 
+-# &ftp'get( remote file, local file, try restarting where last xfer failed )
++# &ftp::get( remote file, local file, try restarting where last xfer failed )
+ # Get a remote file back into a local file.
+ # If no loc_fname passed then uses rem_fname.
+ # If $restart set and the remote site supports it then restart where
+ # last xfer left off.
+ # returns 1 on success, 0 otherwise
+-sub ftp'get
++sub ftp::get
+ {
+ 	local($rem_fname, $loc_fname, $restart ) = @_;
+ 	local( $ret );
+@@ -708,6 +717,7 @@
  	if( ! $service_open ){
  		return 0;
  	}
@@ -66,8 +345,17 @@
  
  	if( $loc_fname eq "" ){
  		$loc_fname = $rem_fname;
-@@ -917,10 +927,27 @@ sub delete
+@@ -887,7 +897,7 @@
+ 	return $ret;
+ }
  
+-# &ftp'delete( remote filename )
++# &ftp::delete( remote filename )
+ # Delete a file from the remote site.
+ # returns 1 if successful, 0 otherwise
+ sub delete
+@@ -917,15 +927,32 @@
+ 
  sub deldir
  {
 -    local( $fname ) = @_;
@@ -96,4 +384,133 @@
 +	return $ret == 1;
  }
  
- # &ftp'put( local filename, remote filename, restart where left off )
+-# &ftp'put( local filename, remote filename, restart where left off )
++# &ftp::put( local filename, remote filename, restart where left off )
+ # Similar to get but sends file to the remote site.
+-sub ftp'put
++sub ftp::put
+ {
+ 	local( $loc_fname, $rem_fname ) = @_;
+ 	local( $strip_cr );
+@@ -1091,9 +1118,9 @@
+ 	return $ret;
+ }
+ 
+-# &ftp'restart( byte_offset )
++# &ftp::restart( byte_offset )
+ # Restart the next transfer from the given offset
+-sub ftp'restart
++sub ftp::restart
+ {
+ 	local( $restart_point, $ret ) = @_;
+ 
+@@ -1115,7 +1142,7 @@
+ 	return $ret;
+ }
+ 
+-# &ftp'type( 'A' or 'I' )
++# &ftp::type( 'A' or 'I' )
+ # set transfer type to Ascii or Image.
+ sub type
+ {
+@@ -1143,7 +1170,7 @@
+ @site_command_list = ();
+ 
+ # routine to query the remote server for 'SITE' commands supported
+-sub ftp'site_commands
++sub ftp::site_commands
+ {
+ 	local( $ret );
+ 	
+@@ -1183,7 +1210,7 @@
+ }
+ 
+ # return the pwd, or null if we can't get the pwd
+-sub ftp'pwd
++sub ftp::pwd
+ {
+ 	local( $ret, $cwd );
+ 
+@@ -1214,7 +1241,7 @@
+ 	return $cwd;
+ }
+ 
+-# &ftp'mkdir( directory name )
++# &ftp::mkdir( directory name )
+ # Create a directory on the remote site
+ # return 1 for success, 0 otherwise
+ sub mkdir
+@@ -1244,7 +1271,7 @@
+ 	return $ret;
+ }
+ 
+-# &ftp'chmod( pathname, new mode )
++# &ftp::chmod( pathname, new mode )
+ # Change the mode of a file on the remote site.
+ # return 1 for success, 0 for failure
+ sub chmod
+@@ -1274,10 +1301,10 @@
+ 	return $ret;
+ }
+ 
+-# &ftp'rename( old name, new name )
++# &ftp::rename( old name, new name )
+ # Rename a file on the remote site.
+ # returns 1 if successful, 0 otherwise
+-sub ftp'rename
++sub ftp::rename
+ {
+ 	local( $old_name, $new_name ) = @_;
+ 	local( $ret );
+@@ -1325,8 +1352,8 @@
+ }
+ 
+ 
+-# &ftp'quote( site command );
+-sub ftp'quote
++# &ftp::quote( site command );
++sub ftp::quote
+ {
+ 	local( $cmd ) = @_;
+ 	local( $ret );
+@@ -1364,7 +1391,7 @@
+ }
+ 
+ #
+-#  create the list of parameters for chat'expect
++#  create the list of parameters for chat::expect
+ #
+ #  expect( time_out, {value, return value} );
+ #  the last response is stored in $response
+@@ -1427,7 +1454,7 @@
+ 		if( $ftp_show > 9 ){
+ 			&printargs( $time_out, @expect_args );
+ 		}
+-		$ret = &chat'expect( $time_out, @expect_args );
++		$ret = &chat::expect( $time_out, @expect_args );
+ 	}
+ 
+ 	return $ret;
+@@ -1449,10 +1476,10 @@
+ 	
+ 	$sockaddr = 'S n a4 x8';
+ 
+-	($a,$b,$c,$d) = unpack( 'C4', $chat'thisaddr );
+-	$this = $chat'thisproc;
++	($a,$b,$c,$d) = unpack( 'C4', $chat::thisaddr );
++	$this = $chat::thisproc;
+ 	
+-	if( ! socket( S, $main'pf_inet, $main'sock_stream, $main'tcp_proto ) ){
++	if( ! socket( S, $main::pf_inet, $main::sock_stream, $main::tcp_proto ) ){
+ 		warn "socket: $!";
+ 		return 0;
+ 	}
+@@ -1505,7 +1532,7 @@
+ 		print $showfd "---> $sc\n";
+ 	}
+ 	
+-	&chat'print( "$send_cmd\r\n" );
++	&chat::print( "$send_cmd\r\n" );
+ }
+ 
+ sub accept

cvs diff -r1.2 -r1.2.102.1 pkgsrc/net/mirror/patches/patch-ag (expand / switch to context diff)
--- pkgsrc/net/mirror/patches/patch-ag 2011/09/12 16:35:43 1.2
+++ pkgsrc/net/mirror/patches/patch-ag 2024/04/22 18:28:54 1.2.102.1
@@ -1,11 +1,12 @@
-$NetBSD: patch-ag,v 1.2 2011/09/12 16:35:43 taca Exp $
+$NetBSD: patch-ag,v 1.2.102.1 2024/04/22 18:28:54 bsiegert Exp $
 
 * Avoid to use timelocal.pl which cause obsolete warning with perl 5.14.
 * Make sure to use 4-digit year.
+* Fix deprecation warning (change ' to ::) for newer perl
 
---- dateconv.pl.orig	1998-05-29 19:04:32.000000000 +0000
-+++ dateconv.pl
-@@ -47,7 +47,8 @@ sub lstime_to_standard
+--- dateconv.pl.orig	2024-04-11 11:08:05.967542752 +0200
++++ dateconv.pl	2024-04-11 11:07:48.795406481 +0200
+@@ -47,7 +47,8 @@
  }
  
  
@@ -15,7 +16,35 @@
  package dateconv;
  
  # Use timelocal rather than gmtime.
-@@ -149,5 +150,5 @@ sub main'time_to_standard
+@@ -74,7 +75,7 @@
+ # input date and time string from ftp "ls -l", such as Mmm dd yyyy or
+ # Mmm dd HH:MM,
+ # return $time number via gmlocal( $string ).
+-sub main'lstime_to_time
++sub main::lstime_to_time
+ {
+ 	package dateconv;
+ 
+@@ -133,15 +134,15 @@
+ 	$year += 50 if 37 < $year && $year < 70 ;
+ 
+ 	if( $use_timelocal ){
+-		return &'timelocal( $secs, $mins, $hours, $day, $month, $year );
++		return &::timelocal( $secs, $mins, $hours, $day, $month, $year );
+ 	}
+ 	else {
+-		return &'timegm( $secs, $mins, $hours, $day, $month, $year );
++		return &::timegm( $secs, $mins, $hours, $day, $month, $year );
+ 	}
+ }
+ 
+ # input time number, output GMT string as "dd Mmm YY HH:MM"
+-sub main'time_to_standard
++sub main::time_to_standard
+ {
+ 	package dateconv;
+ 
+@@ -149,5 +150,5 @@
  
  	local( $sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst ) =
  		 gmtime( $time );

File Added: pkgsrc/net/mirror/patches/patch-lsparse.pl
$NetBSD: patch-lsparse.pl,v 1.1.2.2 2024/04/22 18:28:54 bsiegert Exp $

* Fix deprecation warning (change ' to ::) for newer perl

--- lsparse.pl.orig	1998-05-29 21:04:23.000000000 +0200
+++ lsparse.pl	2024-04-11 11:07:48.800742520 +0200
@@ -14,7 +14,7 @@
 # This software is provided "as is" without express or implied warranty.
 #
 # Parse "ls -lR" type listings
-# use lsparse'reset( dirname ) repeately
+# use lsparse::reset( dirname ) repeately
 #
 # By Lee McLoughlin <lmjm@icparc.ic.ac.uk>
 #
@@ -61,18 +61,18 @@
 local( $match );
 
 # The filestore type being scanned
-$lsparse'fstype = 'unix';
+$lsparse::fstype = 'unix';
 
 # Keep whatever case is on the remote system.  Otherwise lowercase it.
-$lsparse'vms_keep_case = '';
+$lsparse::vms_keep_case = '';
 
 # A name to report when errors occur
-$lsparse'name = 'unknown';
+$lsparse::name = 'unknown';
 
 # Wether to report subdirs when finding them in a directory
 # or when their details appear.  (If you report early then mirro might
 # recreate locally remote restricted directories.)
-$lsparse'report_subdir = 0;	# Report when finding details.
+$lsparse::report_subdir = 0;	# Report when finding details.
 
 
 # Name of routine to call to parse incoming listing lines
@@ -81,7 +81,7 @@
 # Set the directory that is being scanned and
 # check that the scan routing for this fstype exists
 # returns false if the fstype is unknown.
-sub lsparse'reset
+sub lsparse::reset
 {
 	$here = $currdir = $_[0];
 	$now = time;
@@ -91,17 +91,17 @@
 	$vms_strip =~ s,^/+,,;
 	$vms_strip =~ s,/+$,,;
 
-	$ls_line = "lsparse'line_$fstype";
+	$ls_line = "lsparse::line_$fstype";
 	return( defined( &$ls_line ) );
 }
 
 # See line_unix following routine for call/return details.
 # This calls the filestore specific parser.
-sub lsparse'line
+sub lsparse::line
 {
 	local( $fh ) = @_;
 
-	# ls_line is setup in lsparse'reset to the name of the function
+	# ls_line is setup in lsparse::reset to the name of the function
 	local( $path, $size, $time, $type, $mode ) =
 		eval "&$ls_line( \$fh )";
 
@@ -119,7 +119,7 @@
 # time is a Un*x time value for the file
 # type is "f" for a file, "d" for a directory and
 #         "l linkname" for a symlink
-sub lsparse'line_unix
+sub lsparse::line_unix
 {
 	local( $fh ) = @_;
 	local( $non_crud, $perm_denied );
@@ -132,7 +132,7 @@
 
 	while( <$fh> ){
 		# Store listing
-		print main'STORE $_;
+		print main::STORE $_;
 
 		# Stomp on carriage returns
 		s/\015//g;
@@ -168,7 +168,7 @@
 		if( $perm_denied ){
 			$perm_denied = "";
 			warn "Warning: input corrupted by 'Permission denied'",
-				"errors, about line $. of $lsparse'name\n";
+				"errors, about line $. of $lsparse::name\n";
 			next;
 		}
 		# Not found's are like Permission denied's.  They can start part
@@ -180,7 +180,7 @@
 		if( $not_found ){
 			$not_found = "";
 			warn "Warning: input corrupted by 'not found' errors",
-				" about line $. of $lsparse'name\n";
+				" about line $. of $lsparse::name\n";
 			next;
 		}
 		
@@ -196,7 +196,7 @@
 				next;
 			}
 
-			local( $time ) = &main'lstime_to_time( $lsdate );
+			local( $time ) = &main::lstime_to_time( $lsdate );
 			local( $type ) = '?';
 			local( $mode ) = 0;
 
@@ -316,7 +316,7 @@
 # time is a Un*x time value for the file
 # type is "f" for a file, "d" for a directory and
 #         "l linkname" for a symlink
-sub lsparse'line_dls
+sub lsparse::line_dls
 {
 	local( $fh ) = @_;
 	local( $non_crud, $perm_denied );
@@ -327,7 +327,7 @@
 
 	while( <$fh> ){
 		# Store listing
-		print main'STORE $_;
+		print main::STORE $_;
 
 		# Stomp on carriage returns
 		s/\015//g;
@@ -350,7 +350,7 @@
 			}
 			else {
 				# a file
-				$time = &main'lstime_to_time( $lsdate );
+				$time = &main::lstime_to_time( $lsdate );
 				$type = 'f';
 				$mode = 0444;
 			}
@@ -400,7 +400,7 @@
 # time is a Un*x time value for the file
 # type is "f" for a file, "d" for a directory and
 #         "l linkname" for a symlink
-sub lsparse'line_netware
+sub lsparse::line_netware
 {
 	local( $fh ) = @_;
 
@@ -410,7 +410,7 @@
 
 	while( <$fh> ){
 		# Store listing
-		print main'STORE $_;
+		print main::STORE $_;
 
 		# Stomp on carriage returns
 		s/\015//g;
@@ -435,7 +435,7 @@
 			if( $file eq '.' || $file eq '..' ){
 				next;
 			}
-			local( $time ) = &main'lstime_to_time( $lsdate );
+			local( $time ) = &main::lstime_to_time( $lsdate );
 			local( $type ) = '?';
 			local( $mode ) = 0;
 
@@ -509,7 +509,7 @@
 # time is a Un*x time value for the file
 # type is "f" for a file, "d" for a directory and
 #         "l linkname" for a symlink
-sub lsparse'line_vms
+sub lsparse::line_vms
 {
 	local( $fh ) = @_;
 	local( $non_crud, $perm_denied );
@@ -520,7 +520,7 @@
 
 	while( <$fh> ){
 		# Store listing
-		print main'STORE $_;
+		print main::STORE $_;
 
 		# Stomp on carriage returns
 		s/\015//g;
@@ -543,7 +543,7 @@
 		}
 
 		# Upper case is so ugly
-		if( ! $lsparse'vms_keep_case ){
+		if( ! $lsparse::vms_keep_case ){
 			tr/A-Z/a-z/;
 		}
 
@@ -584,7 +584,7 @@
 		$size = 0;
 		
 		if( $got ){
-			local( $time ) = &main'lstime_to_time( $lsdate );
+			local( $time ) = &main::lstime_to_time( $lsdate );
 			local( $type ) = 'f';
 			local( $mode ) = 0444;
 
@@ -610,7 +610,7 @@
 				$mode = 0555;
 			}
 
-			$lsparse'vers = $vers;
+			$lsparse::vers = $vers;
 
 #print "file=|$file| match=|$match| vms_strip=|$vms_strip|\n";
 			$file =~ s,^,/,;
@@ -653,7 +653,7 @@
 # time is a Un*x time value for the file
 # type is "f" for a file, "d" for a directory and
 #         "l linkname" for a symlink
-sub lsparse'line_dosftp
+sub lsparse::line_dosftp
 {
 	local( $fh ) = @_;
 
@@ -670,7 +670,7 @@
 			$_ = <$fh>;
 
 			# Store listing
-			print main'STORE $_;
+			print main::STORE $_;
 
 			# Ignore the summary at the end and blank lines
 			if( /^\d+ files?\./ || /^\s+$/ ){
@@ -691,7 +691,7 @@
 
 			# TODO: fix hacky 19$yr
 			local( $lsdate ) = "$day-$mon-19$yr $hrs:$min";
-			local( $time ) = &main'lstime_to_time( $lsdate );
+			local( $time ) = &main::lstime_to_time( $lsdate );
 			local( $type ) = '?';
 			local( $mode ) = 0;
 
@@ -736,7 +736,7 @@
 # 03-08-94  07:17AM                 5504 article.xfiles.intro
 # 02-28-94  11:44AM                 3262 article1.gillian.anderson
 
-sub lsparse'line_dosish
+sub lsparse::line_dosish
 {
 	local( $fh ) = @_;
 
@@ -748,7 +748,7 @@
 		$_ = <$fh>;
 
 		# Store listing
-		print main'STORE $_;
+		print main::STORE $_;
 
 		# Ignore blank lines
 		if( /^\s+$/ ){
@@ -775,7 +775,7 @@
 
 			# TODO: fix hacky 19$yr
 			local( $lsdate ) = "$day-$mon-19$yr $hrs:$min";
-			local( $time ) = &main'lstime_to_time( $lsdate );
+			local( $time ) = &main::lstime_to_time( $lsdate );
 			local( $type ) = ($dir_or_size eq '<DIR>' ? 'd' : 'f');
 			local( $mode ) = 0;
 			local( $size ) = 0;
@@ -842,7 +842,7 @@
 # WPKIT1.EXE          960338      06/21/95        17:01
 # CMT.CSV                  0      07/06/95        14:56
 
-sub lsparse'line_supertcp
+sub lsparse::line_supertcp
 {
     local( $fh ) = @_;
 
@@ -860,7 +860,7 @@
 	    $_ = <$fh>;
 
 	    # Store listing
-	    print main'STORE $_;
+	    print main::STORE $_;
 
 	    # Ignore the summary at the end and blank lines
 	    if( /^\d+ files?\./ || /^\s+$/ ){
@@ -885,7 +885,7 @@
 	    $pending = $5;
 
 	    local( $lsdate ) = "$day-$mon-$yr $time";
-	    local( $time ) = &main'lstime_to_time( $lsdate );
+	    local( $time ) = &main::lstime_to_time( $lsdate );
             local( $type ) = '?';
 	    local( $mode ) = 0;
 
@@ -931,7 +931,7 @@
 #               372      A          08-09-95   10:26  Aussie_1.bag
 #            310992                 06-28-94   09:56  INSTALL.EXE
 
-sub lsparse'line_os2
+sub lsparse::line_os2
 {
 	local( $fh ) = @_;
 
@@ -943,7 +943,7 @@
 		$_ = <$fh>;
 
 		# Store listing
-		print main'STORE $_;
+		print main::STORE $_;
 
 		# Ignore blank lines
 		if( /^\s+$/ ){
@@ -971,7 +971,7 @@
 
 			# TODO: fix hacky 19$yr
 			local( $lsdate ) = "$day-$mon-19$yr $hrs:$min";
-			local( $time ) = &main'lstime_to_time( $lsdate );
+			local( $time ) = &main::lstime_to_time( $lsdate );
 			local( $type ) = ($dir eq 'DIR' ? 'd' : 'f');
 			local( $mode ) = 0;
 
@@ -999,7 +999,7 @@
 # time is a Un*x time value for the file
 # type is "f" for a file, "d" for a directory and
 #         "l linkname" for a symlink
-sub lsparse'line_chameleon
+sub lsparse::line_chameleon
 {
     local( $fh ) = @_;
 
@@ -1038,7 +1038,7 @@
 	    $pending = $5;
 
 	    local( $lsdate ) = "$day-$mon-$yr $time";
-	    local( $time ) = &main'lstime_to_time( $lsdate );
+	    local( $time ) = &main::lstime_to_time( $lsdate );
             local( $type ) = '?';
 	    local( $mode ) = 0;
 
@@ -1076,7 +1076,7 @@
 # time is a Un*x time value for the file
 # type is "f" for a file, "d" for a directory and
 #         "l linkname" for a symlink
-sub lsparse'line_macos
+sub lsparse::line_macos
 {
 	local( $fh ) = @_;
 	local( $non_crud, $perm_denied );
@@ -1087,7 +1087,7 @@
 
 	while( <$fh> ){
 		# Store listing
-		print main'STORE $_;
+		print main::STORE $_;
 
 		# Stomp on carriage returns
 		s/\015//g;
@@ -1098,7 +1098,7 @@
 		if( /^([\-rwxd]{10}).*\s(\d+\s+)?(\S+)\s+\d+\s*(\w\w\w\s+\d+\s*(\d+:\d+|\d\d\d\d))\s+(.*)\n/ ){
 			local( $kind, $size, $lsdate, $file ) = ($1, $3, $4, $6);
 			
-			local( $time ) = &main'lstime_to_time( $lsdate );
+			local( $time ) = &main::lstime_to_time( $lsdate );
 			local( $type ) = '?';
 			local( $mode ) = 0;
 
@@ -1126,18 +1126,18 @@
 
 
 # --------------------- parse lsparse log file format
-# lsparse'line_lsparse() is for input in lsparse's internal form,
+# lsparse::line_lsparse() is for input in lsparse's internal form,
 # as it might have been written to a log file during a previous
 # run of a program that uses lsparse.  The format is:
 #     filename size time type mode
 # where size and time are in decimal, mode is in decimal or octal,
 # and type is one or two words.
-sub lsparse'line_lsparse
+sub lsparse::line_lsparse
 {
 	local( $fh ) = @_;
 
-	if( $lsparse'readtime ){
-		alarm( $lsparse'readtime );
+	if( $lsparse::readtime ){
+		alarm( $lsparse::readtime );
 	}
 
 	if( eof( $fh ) ){
@@ -1147,7 +1147,7 @@
 
 	while( <$fh> ){
 		# Store listing
-		print main'STORE $_;
+		print main::STORE $_;
 
 		if( /^(\S+)\s+(\d+)\s+(\d+)\s+((l\s+)?\S+)\s+(\d+)\n$/ ){
 			# looks good.
@@ -1174,12 +1174,12 @@
 # This is the format used at sumex-aim.stanford.edu for the info-mac area.
 # (see info-mac/help/all-files.txt.gz).
 #
-sub lsparse'line_infomac
+sub lsparse::line_infomac
 {
 	local( $fh ) = @_;
 
-	if( $lsparse'readtime ){
-		alarm( $lsparse'readtime );
+	if( $lsparse::readtime ){
+		alarm( $lsparse::readtime );
 	}
 
 	if( eof( $fh ) ){
@@ -1189,13 +1189,13 @@
 
 	while( <$fh> ){
 		# Store listing
-		print main'STORE $_;
+		print main::STORE $_;
 
 		next if /^;/;
 		if( /^([l-].)\s*(\d+)\s*(\w\w\w\s+\d+\s*(\d+:\d+|\d\d\d\d))\s+(.*)\n/ ){
 			local( $kind, $size, $lsdate, $file ) = ($1, $2, $3, $5);
 			
-			local( $time ) = &main'lstime_to_time( $lsdate );
+			local( $time ) = &main::lstime_to_time( $lsdate );
 
 			# This should be a symlink
 			if( $kind =~ /^l/ && $file =~ /(.*) -> (.*)/ ){
@@ -1226,12 +1226,12 @@
 # +i8388621.48638,m848117771,r,s1336,     qmsmac.html
 # +i8388621.88705,m850544954,/,   txt
 #
-sub lsparse'line_eplf
+sub lsparse::line_eplf
 {
 	local( $fh ) = @_;
 
-	if( $lsparse'readtime ){
-		alarm( $lsparse'readtime );
+	if( $lsparse::readtime ){
+		alarm( $lsparse::readtime );
 	}
 
 	if( eof( $fh ) ){
@@ -1243,7 +1243,7 @@
 		s/\015//g;
 
 		# Store listing
-		print main'STORE $_;
+		print main::STORE $_;
 
 # +i8388621.48638,m848117771,r,s1336,     qmsmac.html
 # +i8388621.88705,m850544954,/,   txt
@@ -1272,12 +1272,12 @@
 # --------------------- CTAN files list
 #    22670 Mon Jul 20 12:36:34 1992 pub/tex/biblio/bibtex/contrib/aaai-named.bst
 #
-sub lsparse'line_ctan
+sub lsparse::line_ctan
 {
 	local( $fh ) = @_;
 
-	if( $lsparse'readtime ){
-		alarm( $lsparse'readtime );
+	if( $lsparse::readtime ){
+		alarm( $lsparse::readtime );
 	}
 
 	if( eof( $fh ) ){
@@ -1287,12 +1287,12 @@
 
 	while( <$fh> ){
 		# Store listing
-		print main'STORE $_;
+		print main::STORE $_;
 
 		if( /^\s*(\d+)\s+(\w\w\w\s+\w\w\w\s+\d+\s+\d+:\d+:\d+\s+\d+)\s+(.*)\n/ ){
 			local( $size, $lsdate, $file ) = ($1, $2, $3);
 			
-			local( $time ) = &main'lstime_to_time( $lsdate );
+			local( $time ) = &main::lstime_to_time( $lsdate );
 
 			return( $file, $size, $time, 'f', 0444 );
 		}
@@ -1317,12 +1317,12 @@
 # time is a Un*x time value for the file -- this is good from the m/f
 # type is always "f" for a file
 
-sub lsparse'line_cms
+sub lsparse::line_cms
 {
 	local( $fh ) = @_;
 
-	if( $lsparse'readtime ){
-		alarm( $lsparse'readtime );
+	if( $lsparse::readtime ){
+		alarm( $lsparse::readtime );
 	}
 
 	if( eof( $fh ) ){
@@ -1331,21 +1331,21 @@
 	}
 	while( <$fh> ){
 		# Store listing
-		print main'STORE $_;
+		print main::STORE $_;
 
 		chop;
 		next unless /\d+\/\d+\/\d+\s+\d+:\d+:\d+/;
 		s/^\s+//;
 
 		# Upper case is so ugly
-		if( ! $lsparse'vms_keep_case ){
+		if( ! $lsparse::vms_keep_case ){
 			tr/A-Z/a-z/;
 		}
 
 		local( $fname, $ftype, $fdisk, $rectype, $lrecl, $recs,
 		      $blocks, $ldate, $tod ) = split(/\s+/, $_);
 		return( join('.', ($fname, $ftype, $fdisk)),
-		       $lrecl * $recs, &main'lstime_to_time( "$ldate $tod" ),
+		       $lrecl * $recs, &main::lstime_to_time( "$ldate $tod" ),
 		       'f' );
 	}
 	alarm( 0 );