how do u get autoslack working
OK so after trying to get all the dependencies ironed out I finally managed to install autoslack. The think is though the only thing i get is an error:
Can't use string ("STDOUT") as a symbol ref while "strict refs" in use at /usr/lib/perl5/5.8.0/Term/Cap.pm line 442. Can someone please explain to me what I am doing wrong. I tried installing 1.7 which I think is the newest one. Thanks for any help. |
Same problem!
Has anybody the answer? I am having the same problem with Slackware 9.
I am sorry, I am no PERL expert! Thanks. |
Ok, someone must know this one! As I to am having the smae prob, with Autoslack 1.7 on Slackware 9.......? help
|
Commenting line 442 and the next one (in Cam.pm file) should help. At least this helped me.
|
Here is a patch that fixes the problem in the autoslack perl script. Autoslack is calling Tputs() to clear the screen. STDOUT should have been *STDOUT. In general when there is a problem in a widely distributed and mature perl module, it is the caller that is in error rather than the module itself. I wouldn't suggest completely breaking Term/Cap.pm due to a typo in a single program ;)
It still doesn't do anything for me though. It can't download CHECKSUMS.md5 from ftp.slackware.com. I'll take a look at that when I get another free moment. Happy hacking ! Philip ------------------------------cut-here------------------------------ *** autoslack.original Tue Nov 25 21:29:38 2003 --- autoslack Tue Nov 25 21:30:05 2003 *************** *** 105,109 **** $terminal = Term::Cap->Tgetent( {OSPEED=>$OSPEED} ); ! $clear = $terminal->Tputs( 'cl', 1, STDOUT ); # get terminal dimensions --- 105,109 ---- $terminal = Term::Cap->Tgetent( {OSPEED=>$OSPEED} ); ! $clear = $terminal->Tputs( 'cl', 1, *STDOUT ); # get terminal dimensions ------------------------------cut-here------------------------------ |
autoslack - the complete patch
Here is the complete patch. It looks like the author did a last minute string replace which changed all occurances of slackware to slakware. As you might imagine, such made it rather difficult to locate things on the server.
sed s/slakware/slackware/g < old > new Fixed it easily enough. I've emailed this to David Cantrell as well. Have a happy Thanksgiving ! Philip phdye@acm.org ------------------------------cut-here------------------------------ *** autoslack.original Tue Nov 25 21:29:38 2003 --- autoslack Tue Nov 25 21:55:08 2003 *************** *** 104,110 **** }; $terminal = Term::Cap->Tgetent( {OSPEED=>$OSPEED} ); ! $clear = $terminal->Tputs( 'cl', 1, STDOUT ); # get terminal dimensions ( $wchar, $hchar, $wpixels, $hpixels ) = GetTerminalSize(); --- 104,110 ---- }; $terminal = Term::Cap->Tgetent( {OSPEED=>$OSPEED} ); ! $clear = $terminal->Tputs( 'cl', 1, *STDOUT ); # get terminal dimensions ( $wchar, $hchar, $wpixels, $hpixels ) = GetTerminalSize(); *************** *** 736,744 **** my $nodis; # make sure we have the new files ! if( ! -T "$conf{SPOOLDIR}/CHECKSUMS.md5-slakware" ) { ! print( "\nERROR: Missing /slakware CHECKSUMS.md5 file.\n" ); my $miss = 1; } if( ! -T "$conf{SPOOLDIR}/CHECKSUMS.md5-contrib" && $opt{contrib} == 1 ) --- 736,744 ---- my $nodis; # make sure we have the new files ! if( ! -T "$conf{SPOOLDIR}/CHECKSUMS.md5-slackware" ) { ! print( "\nERROR: Missing /slackware CHECKSUMS.md5 file.\n" ); my $miss = 1; } if( ! -T "$conf{SPOOLDIR}/CHECKSUMS.md5-contrib" && $opt{contrib} == 1 ) *************** *** 814,820 **** ### # readsums( $path ) ! # Reads the CHECKSUMS.md5-{slakware,contrib} files from the specified path # and dumps them into a hash. The hash is returned. ### sub readsums --- 814,820 ---- ### # readsums( $path ) ! # Reads the CHECKSUMS.md5-{slackware,contrib} files from the specified path # and dumps them into a hash. The hash is returned. ### sub readsums *************** *** 825,835 **** # we only track contrib if the user wants to if( $opt{contrib} == 1 ) { ! @sf = qw(slakware contrib); } else { ! @sf = qw(slakware); } # read in the files into a hash --- 825,835 ---- # we only track contrib if the user wants to if( $opt{contrib} == 1 ) { ! @sf = qw(slackware contrib); } else { ! @sf = qw(slackware); } # read in the files into a hash *************** *** 1114,1120 **** else { my $series = $path; ! $series =~ s/slakware\///g; $path = "$path/disk$series"; } --- 1114,1120 ---- else { my $series = $path; ! $series =~ s/slackware\///g; $path = "$path/disk$series"; } *************** *** 1122,1130 **** push( @descval, $path ); # get the md5sum for the description file ! if( $path =~ /slakware\// ) { ! open( IN, "$conf{SPOOLDIR}/CHECKSUMS.md5-slakware" ); my $tmppath = substr( $path, 9 ); while( <IN> ) --- 1122,1130 ---- push( @descval, $path ); # get the md5sum for the description file ! if( $path =~ /slackware\// ) { ! open( IN, "$conf{SPOOLDIR}/CHECKSUMS.md5-slackware" ); my $tmppath = substr( $path, 9 ); while( <IN> ) *************** *** 1313,1321 **** { # we're looking a package from the distribution, get the series dir my $tmpstr = $d_file; ! $tmpstr =~ s/slakware\///g; $tmpstr = substr( $tmpstr, 0, index($tmpstr, '/') ); ! $d_path = "/slakware/$tmpstr/"; # set the description file to use $d_desc = "disk$tmpstr"; --- 1313,1321 ---- { # we're looking a package from the distribution, get the series dir my $tmpstr = $d_file; ! $tmpstr =~ s/slackware\///g; $tmpstr = substr( $tmpstr, 0, index($tmpstr, '/') ); ! $d_path = "/slackware/$tmpstr/"; # set the description file to use $d_desc = "disk$tmpstr"; *************** *** 1572,1582 **** # Don't track contrib unless the user tells us to if( $opt{contrib} == 1 ) { ! @sf = qw(slakware contrib); } else { ! @sf = qw(slakware); } # use the package basename --- 1572,1582 ---- # Don't track contrib unless the user tells us to if( $opt{contrib} == 1 ) { ! @sf = qw(slackware contrib); } else { ! @sf = qw(slackware); } # use the package basename *************** *** 1639,1649 **** # don't track contrib unless we're told to if( $opt{contrib} == 1 ) { ! @sf = qw(slakware contrib); } else { ! @sf = qw(slakware); } # we just want to use the short name --- 1639,1649 ---- # don't track contrib unless we're told to if( $opt{contrib} == 1 ) { ! @sf = qw(slackware contrib); } else { ! @sf = qw(slackware); } # we just want to use the short name *************** *** 1860,1867 **** if( $opt{nfs} == 1 ) { print( "Copying the latest CHECKSUMS.md5 files from $conf{NFSSERVER}...\n" ); ! copy( "$conf{MOUNTPOINT}/slakware/CHECKSUMS.md5", ! "$conf{SPOOLDIR}/CHECKSUMS.md5-slakware"); if( $opt{contrib} == 1 ) { --- 1860,1867 ---- if( $opt{nfs} == 1 ) { print( "Copying the latest CHECKSUMS.md5 files from $conf{NFSSERVER}...\n" ); ! copy( "$conf{MOUNTPOINT}/slackware/CHECKSUMS.md5", ! "$conf{SPOOLDIR}/CHECKSUMS.md5-slackware"); if( $opt{contrib} == 1 ) { *************** *** 1872,1880 **** else { print( "Fetching the latest CHECKSUMS.md5 files from $conf{SERVER}...\n" ); ! fetch( '/slakware', 'CHECKSUMS.md5' ); move( "$conf{SPOOLDIR}/CHECKSUMS.md5", ! "$conf{SPOOLDIR}/CHECKSUMS.md5-slakware" ); if( $opt{contrib} == 1 ) { --- 1872,1880 ---- else { print( "Fetching the latest CHECKSUMS.md5 files from $conf{SERVER}...\n" ); ! fetch( '/slackware', 'CHECKSUMS.md5' ); move( "$conf{SPOOLDIR}/CHECKSUMS.md5", ! "$conf{SPOOLDIR}/CHECKSUMS.md5-slackware" ); if( $opt{contrib} == 1 ) { ------------------------------cut-here------------------------------ |
All times are GMT -5. The time now is 02:00 AM. |