LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   how do u get autoslack working (https://www.linuxquestions.org/questions/slackware-14/how-do-u-get-autoslack-working-53470/)

matjazk 04-04-2003 08:21 PM

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.

ppfundst 07-07-2003 07:23 AM

Same problem!
 
Has anybody the answer? I am having the same problem with Slackware 9.

I am sorry, I am no PERL expert!

Thanks.

FlowingSnake 08-25-2003 07:39 AM

Ok, someone must know this one! As I to am having the smae prob, with Autoslack 1.7 on Slackware 9.......? help

ngrnn 10-12-2003 10:24 AM

Commenting line 442 and the next one (in Cam.pm file) should help. At least this helped me.

phdye 11-25-2003 03:58 PM

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------------------------------

phdye 11-25-2003 04:58 PM

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.