Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fails durring startup "Global symbol "$user" requires explicit package name " #38

Closed
NielsDa opened this issue Oct 16, 2021 · 2 comments

Comments

@NielsDa
Copy link

NielsDa commented Oct 16, 2021

I have just upgraded my version of spampd from 2.53 to 2.61 and it fails during startup.
When i restored /usr/local/sbin/spampd from a 2.53 snapshoot it worked again.
It reports:
”Global symbol "$user" requires explicit package name (did you forget to declare "my $user"?)”

uname -a
FreeBSD mailserver 12.2-RELEASE-p9 FreeBSD 12.2-RELEASE-p9 2ee62d665f0(HEAD) TRUENAS amd64

root@mailserver:~/spampd # cat /etc/passwd | grep spam
spamd:*:58:58:SpamAssassin user:/var/spool/spamd:/usr/sbin/nologin

root@mailserver:~/spampd # pkg info | grep p5
p5-Archive-Zip-1.68 Create, manipulate, read, and write Zip archive files
p5-Authen-NTLM-1.09_1 Perl5 NTLM authentication module
p5-Authen-SASL-2.16_1 Perl5 module for SASL authentication
p5-BerkeleyDB-0.64 Perl5 interface to the Berkeley DB package
p5-CGI-4.53 Handle Common Gateway Interface requests and responses
p5-Clone-0.45 Recursively copy Perl datatypes
p5-Convert-BinHex-1.125 Perl module to extract data from Macintosh BinHex files
p5-Convert-TNEF-0.18_2 Perl module to read TNEF files
p5-Convert-UUlib-1.70,1 Perl5 interface to the uulib library (a.k.a. uudeview/uuenview)
p5-Crypt-OpenSSL-Bignum-0.09 OpenSSL's multiprecision integer arithmetic
p5-Crypt-OpenSSL-RSA-0.32_1 Perl5 module to RSA encode and decode strings using OpenSSL
p5-Crypt-OpenSSL-Random-0.15 Perl5 interface to the OpenSSL pseudo-random number generator
p5-Crypt-SSLeay-0.72_3 Perl5 interface to allow p5-libwww LWP to make https connections
p5-DBD-mysql-4.050_1 MySQL driver for the Perl5 Database Interface (DBI)
p5-DBI-1.643 Perl5 Database Interface, required for DBD::* modules
p5-Digest-HMAC-1.04 Perl5 interface to HMAC Message-Digest Algorithms
p5-Encode-Detect-1.01_1 Encode::Encoding subclass that detects the encoding of data
p5-Encode-Locale-1.05 Determine the locale encoding
p5-Error-0.17029 Error/exception handling in object-oriented programming style
p5-File-Listing-6.14 Parse directory listings
p5-Filter-1.60 Number of source filters for perl5 programs
p5-GSSAPI-0.28_1 Perl extension providing access to the GSSAPIv2 library
p5-HTML-Parser-3.76_1 Perl5 module for parsing HTML documents
p5-HTML-Tagset-3.20_1 Some useful data table in parsing HTML
p5-HTTP-Cookies-6.10 HTTP Cookie jars
p5-HTTP-Date-6.05 Conversion routines for the HTTP protocol date formats
p5-HTTP-Message-6.33 Representation of HTTP style messages
p5-HTTP-Negotiate-6.01_1 Implementation of the HTTP content negotiation algorithm
p5-IO-HTML-1.004 Open an HTML file with automatic charset detection
p5-IO-Multiplex-1.16 Perl module to manage I/O on many file handles
p5-IO-Socket-INET6-2.72_1 Perl module with object interface to AF_INET6 domain sockets
p5-IO-Socket-SSL-2.072 Perl5 interface to SSL sockets
p5-IO-Stringy-2.113 Use IO handles with non-file objects
p5-JSON-2.97.001 Perl extension to convert to JSON (JavaScript Object Notation)
p5-LWP-MediaTypes-6.04 Guess media type for a file or a URL
p5-LWP-Protocol-https-6.10 Provide https support for LWP::UserAgent
p5-MIME-Tools-5.509,2 Set of perl5 modules for MIME
p5-Mail-AuthenticationResults-2.20210915 Object Oriented Authentication-Results Headers
p5-Mail-DKIM-1.20200907 Perl5 module to process and/or create DKIM email
p5-Mail-SPF-2.9.0_5 Object-oriented implementation of Sender Policy Framework
p5-Mail-Tools-2.21 Perl5 modules for dealing with Internet e-mail messages
p5-Mozilla-CA-20211001 Perl extension for Mozilla CA cert bundle in PEM format
p5-Net-CIDR-Lite-0.22 Perl extension for merging IPv4 or IPv6 CIDR addresses
p5-Net-DNS-1.32,1 Perl5 interface to the DNS resolver, and dynamic updates
p5-Net-DNS-Resolver-Mock-1.20200215 Mock a DNS Resolver object for testing
p5-Net-DNS-Resolver-Programmable-0.009 Programmable DNS resolver for off-line testing
p5-Net-HTTP-6.21 Low-level HTTP client
p5-Net-IDN-Encode-2.500 Internationalizing Domain Names in Applications (RFC 3490)
p5-Net-LibIDN-0.12_5 This module provides access to the libidn library
p5-Net-SSLeay-1.90 Perl5 interface to SSL
p5-Net-Server-2.010 Configurable base class for writing internet servers in Perl
p5-NetAddr-IP-4.079 Work with IPv4 and IPv6 addresses and subnets
p5-Parse-Syslog-1.10_2 Perl5 routines that present a simple interface to parse syslog files
p5-Socket6-0.29 IPv6 related part of the C socket.h defines and structure manipulators
p5-Switch-2.17_1 Switch statement for Perl
p5-TimeDate-2.33,1 Perl5 module containing a better/faster date parser for absolute dates
p5-Try-Tiny-0.30 Minimal try/catch with proper localization of $@
p5-URI-5.09 Perl5 interface to Uniform Resource Identifier (URI) references
p5-Unix-Syslog-1.1_1 Perl5 interface to the UNIX syslog(3) calls
p5-WWW-RobotRules-6.02_1 Database of robots.txt-derived permissions
p5-common-sense-3.75 Perl common defaults with lower memory usage
p5-libwww-6.57 Perl5 library for WWW access

spampd_flags="--user=spamd --group=spamd --host 127.0.0.1:10025 --relayhost=127.0.0.1:10026 --dose --tagall --maxsize=100"

version 2.61 (Install via.FreeBSD pkt mgr)
root@mailserver:~/spampd # service spampd start
Starting spampd.
Global symbol "$user" requires explicit package name (did you forget to declare "my $user"?) at /usr/local/sbin/spampd line 473.
BEGIN not safe after errors--compilation aborted at /usr/local/sbin/spampd line 1574.

#version 2.60 (git clone --branch 2.60 https://github.com/mpaperno/spampd.git)
#changed #!/usr/bin/perl → #!/user/local/bin/perl
root@mailserver:~/spampd # service spampd start
Starting spampd.
Name "Data::Dumper::Quotekeys" used only once: possible typo at /usr/local/sbin/spampd line 1428.
Name "Data::Dumper::Bless" used only once: possible typo at /usr/local/sbin/spampd line 1428.
Name "Data::Dumper::Sparseseen" used only once: possible typo at /usr/local/sbin/spampd line 1429.

#version 2.53 (copy of old Install, installed via.FreeBSD pkt mgr)
root@mailserver:/spampd # service spampd start
Starting spampd.
root@mailserver:
/spampd #
works as expected..

@mpaperno
Copy link
Owner

There is no $user variable in the current SpamPD version. The error seems to originate in the patch applied to the FreeBSD port (https://cgit.freebsd.org/ports/tree/mail/spampd/files/patch-spampd.pl?id=8a681529a547c681de95f51107e8b1cc599c79b4). Please try the version from this repo directly (and notify package maintainer of the error), thanks.

@NielsDa
Copy link
Author

NielsDa commented Oct 17, 2021

You are right.
In line 473 this line has been added to the FreeBSD port (there are numinous other changes):
user_dir => (getpwnam($user))[7],

Right now i'm running with your version, the only change i have made is to the shebang in the first line.
I will contact the FreeBSD maintainer.

@NielsDa NielsDa closed this as completed Oct 17, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants