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

Base class package "Class::Singleton" is empty #434

Closed
salaun-urennes1 opened this issue Oct 11, 2018 · 7 comments
Closed

Base class package "Class::Singleton" is empty #434

salaun-urennes1 opened this issue Oct 11, 2018 · 7 comments
Labels
Milestone

Comments

@salaun-urennes1
Copy link
Collaborator

Version

6.2.36

Installation method

from sources

Actual behavior

The make command fails because the "Class::Singleton" CPAN module is required; see the output of the make below. This module is not provided by default on CentOS 7.5.

Expected behavior

The documentation https://sympa-community.github.io/manual/install/install-sympa-distribution-source.html should mention this requirement.

Additional information

$ make
Making all in src
make[1] : on entre dans le répertoire « /usr/local/sympa/src/sympa-6.2.36/src »
Making all in bin
make[2] : on entre dans le répertoire « /usr/local/sympa/src/sympa-6.2.36/src/bin »
GEN arc2webarc.pl
GEN sympa_test_ldap.pl
GEN p12topem.pl
GEN init_comment.pl
GEN testlogs.pl
GEN mod2html.pl
GEN tpl2tt2.pl
GEN sympa_soap_client.pl
GEN upgrade_bulk_spool.pl
GEN upgrade_send_spool.pl
GEN upgrade_shared_repository.pl
GEN upgrade_sympa_password.pl
GEN mod2html.1
GEN sympa_test_ldap.1
GEN upgrade_bulk_spool.1
GEN upgrade_send_spool.1
GEN upgrade_shared_repository.1
GEN upgrade_sympa_password.1
make[2] : on quitte le répertoire « /usr/local/sympa/src/sympa-6.2.36/src/bin »
Making all in cgi
make[2] : on entre dans le répertoire « /usr/local/sympa/src/sympa-6.2.36/src/cgi »
CC wwsympa_wrapper_fcgi-wwsympa-wrapper.fcgi.o
CCLD wwsympa-wrapper.fcgi
CC sympa_soap_server_wrapper_fcgi-sympa_soap_server-wrapper.fcgi.o
CCLD sympa_soap_server-wrapper.fcgi
GEN wwsympa.fcgi
GEN sympa_soap_server.fcgi
GEN wwsympa.8
GEN sympa_soap_server.8
make[2] : on quitte le répertoire « /usr/local/sympa/src/sympa-6.2.36/src/cgi »
Making all in etc
make[2] : on entre dans le répertoire « /usr/local/sympa/src/sympa-6.2.36/src/etc »
Making all in script
make[3] : on entre dans le répertoire « /usr/local/sympa/src/sympa-6.2.36/src/etc/script »
GEN sympasoap.service
GEN wwsympa.service
GEN sympa-tmpfiles.conf
GEN sympa-archive.service
GEN sympa-bounce.service
GEN sympa-outgoing.service
GEN sympa-task.service
GEN sympa.service
make[3] : on quitte le répertoire « /usr/local/sympa/src/sympa-6.2.36/src/etc/script »
make[3] : on entre dans le répertoire « /usr/local/sympa/src/sympa-6.2.36/src/etc »
make[3]: Rien à faire pour « all-am ».
make[3] : on quitte le répertoire « /usr/local/sympa/src/sympa-6.2.36/src/etc »
make[2] : on quitte le répertoire « /usr/local/sympa/src/sympa-6.2.36/src/etc »
Making all in lib
make[2] : on entre dans le répertoire « /usr/local/sympa/src/sympa-6.2.36/src/lib »
GEN Sympa/Constants.pm
make[2] : on quitte le répertoire « /usr/local/sympa/src/sympa-6.2.36/src/lib »
Making all in libexec
make[2] : on entre dans le répertoire « /usr/local/sympa/src/sympa-6.2.36/src/libexec »
CC queue-queue.o
CCLD queue
CC bouncequeue-bouncequeue.o
CCLD bouncequeue
CC familyqueue-familyqueue.o
CCLD familyqueue
CC sympa_newaliases_wrapper-sympa_newaliases-wrapper.o
CCLD sympa_newaliases-wrapper
GEN alias_manager.pl
GEN ldap_alias_manager.pl
GEN mysql_alias_manager.pl
GEN alias_manager.8
make[2] : on quitte le répertoire « /usr/local/sympa/src/sympa-6.2.36/src/libexec »
Making all in sbin
make[2] : on entre dans le répertoire « /usr/local/sympa/src/sympa-6.2.36/src/sbin »
GEN archived.pl
GEN bounced.pl
GEN bulk.pl
GEN sympa.pl
GEN sympa_automatic.pl
GEN sympa_msg.pl
GEN sympa_newaliases.pl
GEN sympa_wizard.pl
GEN task_manager.pl
GEN sympa.1
GEN sympa_newaliases.1
GEN sympa_wizard.1
GEN archived.8
GEN bounced.8
GEN bulk.8
GEN sympa_automatic.8
GEN sympa_msg.8
GEN task_manager.8
make[2] : on quitte le répertoire « /usr/local/sympa/src/sympa-6.2.36/src/sbin »
make[2] : on entre dans le répertoire « /usr/local/sympa/src/sympa-6.2.36/src »
make[2]: Rien à faire pour « all-am ».
make[2] : on quitte le répertoire « /usr/local/sympa/src/sympa-6.2.36/src »
make[1] : on quitte le répertoire « /usr/local/sympa/src/sympa-6.2.36/src »
Making all in default
make[1] : on entre dans le répertoire « /usr/local/sympa/src/sympa-6.2.36/default »
GEN list_aliases.tt2
make[1] : on quitte le répertoire « /usr/local/sympa/src/sympa-6.2.36/default »
Making all in doc
make[1] : on entre dans le répertoire « /usr/local/sympa/src/sympa-6.2.36/doc »
GEN sympa_toc.1
GEN auth.conf.5
GEN automatic_lists_description.conf.5
GEN charset.conf.5
GEN crawlers_detection.conf.5
GEN edit_list.conf.5
GEN ldap_alias_manager.conf.5
GEN list_config.5
Base class package "Class::Singleton" is empty.
(Perhaps you need to 'use' the module which defines that package first,
or make that module available in @inc (@inc contains: ../src/lib /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .).
at ../src/lib/Sympa/Language.pm line 32.
BEGIN failed--compilation aborted at ../src/lib/Sympa/Language.pm line 32.
Compilation failed in require at ../src/lib/Sympa/ListOpt.pm line 33.
BEGIN failed--compilation aborted at ../src/lib/Sympa/ListOpt.pm line 33.
Compilation failed in require at ./list_config.podpl line 10.
BEGIN failed--compilation aborted at ./list_config.podpl line 10.
make[1]: *** [list_config.5] Erreur 255
make[1] : on quitte le répertoire « /usr/local/sympa/src/sympa-6.2.36/doc »
make: *** [all-recursive] Erreur 1

@ikedas
Copy link
Member

ikedas commented Oct 12, 2018

Hi @salaun-urennes1,
The PR above may avoid dependency to Class-Singleton during make.
Could you please check if it works as expected?

@xavierba
Copy link
Contributor

xavierba commented Oct 12, 2018

This perl module is available in CentOS 7:

# yum provides 'perl(Class::Singleton)'
perl-Class-Singleton-1.4-14.el7.noarch : Implementation of a "Singleton" class
Repo        : base
Matched from:
Provides    : perl(Class::Singleton) = 1.4

On a side note, all modules needed for Sympa which are not available in CentOS are available in EPEL, I've been doing my best to get them in.
Also, there should be no need to build sympa from sources on Fedora or CentOS, I'm maintaining a COPR repo for it and plan to submit it to Fedora/EPEL.
https://copr.fedorainfracloud.org/coprs/xavierb/sympa/
Sorry for the shameless unsolicited spam :-)

@ikedas
Copy link
Member

ikedas commented Oct 12, 2018

This perl module is available in CentOS 7:

Yes, but Salaun is installing from source. According to procedure, dependent modules have not been installed.

@ikedas ikedas added the bug label Oct 13, 2018
@ikedas ikedas added this to the 6.2.38 milestone Oct 13, 2018
@salaun-urennes1
Copy link
Collaborator Author

You're right, Soji, execution of make happens before sympa_wizard.pl takes care of missing CPAN module installation; that's the problem I had.

@ikedas I try to build from #437 but autoconf fails with the error below. What is the trick to run autoconf?

$ autoconf 
configure.ac:29: error: possibly undefined macro: AM_INIT_AUTOMAKE
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
configure.ac:31: error: possibly undefined macro: AM_PO_SUBDIRS
configure.ac:248: error: possibly undefined macro: AM_CONDITIONAL
configure.ac:353: error: possibly undefined macro: AM_PROG_CC_C_O

@ikedas
Copy link
Member

ikedas commented Oct 15, 2018

@salaun-urennes1, I forgot to explain: As Makefile.am has been changed, you have to recreate makefiles. autoreconf -i may do the work.
(However, you may also need installing gettext-dev or such.)

@salaun-urennes1
Copy link
Collaborator Author

I had to install additional packages : yum install gettext-common-devel automake autoconf
After that autoreconf -i went well and configure an make too.

From my point of view, your PR fixes the issue; thanks

ikedas added a commit that referenced this issue Oct 15, 2018
External module required during `make` #434
@ikedas
Copy link
Member

ikedas commented Oct 15, 2018

I merged the PR. If you don't find any problem, please close this issue.
Thanks for reporting bug!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants