Date: Thu, 3 Apr 2003 01:45:10 -0800 (PST) From: Andy Sparrow <spadger@best.com> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/50558: xscreensaver-getimage-file has a problem with -STABLE Perl Message-ID: <20030403094510.A240A2B1@CRWdog.demon.co.uk> Resent-Message-ID: <200304030950.h339oCW8075298@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 50558 >Category: ports >Synopsis: xscreensaver-getimage-file has a problem with -STABLE Perl >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Thu Apr 03 01:50:11 PST 2003 >Closed-Date: >Last-Modified: >Originator: Andy Sparrow >Release: FreeBSD 4.8-RC i386 >Organization: Not Much. >Environment: System: FreeBSD tureg.geek4food.org 4.8-RC FreeBSD 4.8-RC #120: Mon Mar 31 07:04:42 PST 2003 root@tureg.geek4food.org:/usr/src/sys/compile/tureg i386 I'm running XFree86 4.3, and all ports were updated (recursively) via portupgrade after the buildworld. Everything else on the system seem to work. >Description: Any xscreensaver-4.08 module that attempts to load images uses 'xscreensaver-getimage-file', a Perl script. This now errors on a recent -STABLE, with the system Perl: xscreensaver-getimage-file "mode" is not defined in %Fcntl::EXPORT_TAGS at /usr/libdata/perl/5.00503/Exporter.pm line 67 Exporter::export('Fcntl', 'main', ':mode') called at /usr/libdata/perl/5.00503/Exporter.pm line 182 Exporter::import('Fcntl', ':mode') called at /usr/X11R6/bin/xscreensaver-getimage-file line 47 main::BEGIN() called at /usr/X11R6/bin/xscreensaver-getimage-file line 49 eval {...} called at /usr/X11R6/bin/xscreensaver-getimage-file line 49 Uncaught exception from user code: Can't continue after import errors at /usr/X11R6/bin/xscreensaver-getimage-file line 47 BEGIN failed--compilation aborted at /usr/X11R6/bin/xscreensaver-getimage-file line 49. Here's the appropriate code section (with comments): require 5; use diagnostics; use strict; use POSIX; use Fcntl; # Apparently the "old way" to get S_ISLNK and friends is to do this: # use POSIX ':fcntl_h'; # But apparently the "new way" is to do this: # # use Fcntl ':mode'; # # but of course that will generate an error on "old" (pre-5.6?) Perl versions. # So we do it like this instead: # BEGIN { if (! defined(&S_ISLNK)) { # perhaps defined by "POSIX"? require Fcntl; import Fcntl ':mode'; # if not, look for it in "Fcntl". } } >How-To-Repeat: Run any xscreensaver module that loads/manipulates images on a recent -STABLE, or run the xscreensaver-getimage-file Perl script directly. >Fix: Not obvious to me, sorry. >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030403094510.A240A2B1>