Bug 8636

Summary: Some dependencies are not listed by the installer
Product: Koha Reporter: Jared Camins-Esakov <jcamins>
Component: Architecture, internals, and plumbingAssignee: Jared Camins-Esakov <jcamins>
Status: CLOSED FIXED QA Contact: Jonathan Druart <jonathan.druart>
Severity: critical    
Priority: P3 CC: chris, jonathan.druart, mtj, mtompset, paul.poulain, robin, veron
Version: 3.10   
Hardware: All   
OS: All   
Change sponsored?: --- Patch complexity: ---
Documentation contact: Documentation submission:
Text to go in the release notes:
Version(s) released in:
Attachments: Bug 8636: Add missing dependencies
[SIGNED-OFF] Bug 8636: Add missing dependencies
Bug 8636: Add missing dependencies
[3.8.x] Bug 8636 missing dependencies
Bug 8636: Add dependency on Test::Deep
Bug 8636: Add dependency on Test::Deep
Bug 8636 - add Moose dependency to the dependencies
Bug 8636 - add Moose dependency to the dependencies
Bug 8636 - add Moose dependency to the dependencies
Bug 8636: add dependency on File::Slurp

Description Jared Camins-Esakov 2012-08-13 22:13:48 UTC

    
Comment 1 Jared Camins-Esakov 2012-08-13 22:19:17 UTC Comment hidden (obsolete)
Comment 2 Marc Véron 2012-08-14 08:55:27 UTC Comment hidden (obsolete)
Comment 3 Jonathan Druart 2012-08-14 09:38:08 UTC
Jared,
Are you sure we want Test::YAML::Valid as required? If it is just for tests, it seems it is optional.
Comment 4 Jared Camins-Esakov 2012-08-14 10:52:52 UTC
(In reply to comment #3)
> Jared,
> Are you sure we want Test::YAML::Valid as required? If it is just for tests,
> it seems it is optional.

You are correct, it probably does not need to be required.
Comment 5 Jonathan Druart 2012-08-22 09:51:03 UTC Comment hidden (obsolete)
Comment 6 Jonathan Druart 2012-08-22 10:13:44 UTC
Jared, Could you confirm that the last patch is good for you ?
Then I will mark it as passed QA.
Comment 7 Jared Camins-Esakov 2012-08-22 11:46:23 UTC
(In reply to comment #6)
> Jared, Could you confirm that the last patch is good for you ?
> Then I will mark it as passed QA.

Looks good to me.
Comment 8 Jonathan Druart 2012-08-22 12:20:27 UTC
Add 2 not required missing dependencies:
Cache::Memcached::Fast
Test::YAML::Valid

Marked as Passed QA.
Comment 9 Paul Poulain 2012-08-29 13:05:53 UTC
Patch pushed. (Not sure it's required for 3.8)
Comment 10 Chris Cormack 2012-08-29 20:48:59 UTC
Half is, Test::YAML::Valid is needed in 3.8.x but not Cache::Memcached::Fast

(3.8.4 use Cache::Memcached). Which reminds me, if 3.10 is switching we should remove that unneeded dependency.

Ill rework this patch to just add the dependency on Test::YAML::Valid and push that.
Comment 11 Chris Cormack 2012-08-29 20:54:15 UTC Comment hidden (obsolete)
Comment 12 Chris Cormack 2012-08-29 20:54:42 UTC
Pushed to 3.8.x will be in 3.8.5
Comment 13 Jared Camins-Esakov 2012-10-11 00:49:35 UTC Comment hidden (obsolete)
Comment 14 Chris Cormack 2012-10-11 01:17:04 UTC
Before patch

                                              Installed         Required          Module is
Module Name                                   Version           Version            Required
--------------------------------------------------------------------------------------------
AnyEvent                                      0 *               5.0                     No
AnyEvent::HTTP                                0 *               2.13                    No
CHI                                           0 *               0.36                    No
CHI::Driver::Memcached                        0 *               0.12                    No
Time::Progress                                0 *               1.7                     No

--------------------------------------------------------------------------------------------
Total modules reported: 5                      * Module is missing or requires an upgrade.

After patch


                                              Installed         Required          Module is
Module Name                                   Version           Version            Required
--------------------------------------------------------------------------------------------
AnyEvent                                      0 *               5.0                     No
AnyEvent::HTTP                                0 *               2.13                    No
CHI                                           0 *               0.36                    No
CHI::Driver::Memcached                        0 *               0.12                    No
Test::Deep                                    0 *               0.106                   No
Time::Progress                                0 *               1.7                     No

--------------------------------------------------------------------------------------------
Total modules reported: 6                      * Module is missing or requires an upgrade.


Works as advertised
Comment 15 Chris Cormack 2012-10-11 01:17:25 UTC Comment hidden (obsolete)
Comment 16 Paul Poulain 2012-10-12 09:55:10 UTC
Comment on attachment 12766 [details] [review]
Bug 8636: Add dependency on Test::Deep

This patch has been pushed
Comment 17 Mark Tompsett 2012-10-13 12:27:11 UTC
Fresh git install. Did the normal dselect steps. Made sure all the required items were installed. This left:

$ ./koha_perl_deps.pl -m -u

                                              Installed         Required          Module is
Module Name                                   Version           Version            Required
--------------------------------------------------------------------------------------------
AnyEvent                                      0 *               5.0                     No
AnyEvent::HTTP                                0 *               2.13                    No
Cache::Memcached::Fast                        0 *               0.17                    No
DBD::Mock                                     0 *               1.39                    No
Data::Pagination                              0 *               0.44                    No
Data::Paginator                               0 *               0.04                    No
Test::Deep                                    0 *               0.106                   No
Test::Warn                                    0 *               0.21                    No
Test::YAML::Valid                             0 *               0.04                    No

--------------------------------------------------------------------------------------------
Total modules reported: 9                      * Module is missing or requires an upgrade.

However, upon attempting to 'make test'. The tests failed because Cache::Memcached::Fast and DBD::Mock were not installed. Once installed the 'make test' passed.
Comment 18 Robin Sheat 2012-10-24 04:14:38 UTC
Here's another one:

#   Failed test 'use Koha::SearchEngine;'
#   at t/00-load.t line 48.
#     Tried to use 'Koha::SearchEngine'.
#     Error:  Can't locate Moose.pm in @INC
Comment 19 Robin Sheat 2012-10-24 05:36:37 UTC Comment hidden (obsolete)
Comment 20 Jonathan Druart 2012-10-24 07:15:57 UTC
(In reply to comment #19)
> Koha::SearchEngine requires moose, but it wasn't declared as a
> dependency.


Hi Robin,

Currently Solr is optionnal. So I think Moose could be mark as not required.

Moreover the patch adds some lines in debian/control. I think it would be a different patch, don't you think ?
Comment 21 Robin Sheat 2012-10-24 07:52:56 UTC
Well, the tests don't pass without it, so if it's optional they will have to be fixed. The changes to debian/control are somewhat related to this. Basically it's the updated dependencies across the whole lot.
Comment 22 Chris Cormack 2012-10-24 07:55:34 UTC
Without this being fixed packages can not be built from master. This plus bug 8890 and bug 3652 really really should be in master before the 3.10 release.
Comment 23 Jonathan Druart 2012-10-24 13:58:27 UTC
(In reply to comment #21)
> Well, the tests don't pass without it, so if it's optional they will have to
> be fixed. The changes to debian/control are somewhat related to this.
> Basically it's the updated dependencies across the whole lot.

I don't understand if you are waiting for something from me :)
Setting the dependance as "not required" isn't the good way?
Which test doesn't pass ?
Comment 24 Mark Tompsett 2012-10-24 15:36:57 UTC
I just did a fresh git install again under Ubuntu.
Here's the output of my tests. libmoose-perl somehow got installed as part of the dselect, because I didn't expressly install it -- though, libmoosex-storage-perl and libmoosex-types-perl are in the install_misc/ubuntu.packages file used for the dselect. And they are not listed in the install_misc/debian.packages file.

t/00-load.t ......................... 126/?
#   Failed test 'use Koha::Cache::Memcached;'
Bailout called.  Further testing stopped:  ***** PROBLEMS LOADING FILE 'Koha::Cache::Memcached'
#   at t/00-load.t line 47.
#     Tried to use 'Koha::Cache::Memcached'.
#     Error:  Can't locate Cache/Memcached/Fast.pm in @INC (@INC contains: /home/mtompset/kohaclone/blib/PERL_MODULE_DIR /home/mtompset/kohaclone/blib/arch /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at /home/mtompset/kohaclone/blib/PERL_MODULE_DIR/Koha/Cache/Memcached.pm line 23.
# BEGIN failed--compilation aborted at /home/mtompset/kohaclone/blib/PERL_MODULE_DIR/Koha/Cache/Memcached.pm line 23.
# Compilation failed in require at (eval 1319) line 2.
# BEGIN failed--compilation aborted at (eval 1319) line 2.
# Tests were run but no plan was declared and done_testing() was not seen.
FAILED--Further testing stopped: ***** PROBLEMS LOADING FILE 'Koha::Cache::Memcached'
make: *** [test_dynamic] Error 255


t/Barcodes_ValueBuilder.t ........... 1/10 install_driver(Mock) failed: Can't locate DBD/Mock.pm in @INC (@INC contains: /home/mtompset/kohaclone/blib/PERL_MODULE_DIR /home/mtompset/kohaclone/blib/arch /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at (eval 27) line 3.
Perhaps the DBD::Mock perl module hasn't been fully installed,
or perhaps the capitalisation of 'Mock' isn't right.
Available drivers: DBM, ExampleP, File, Gofer, Proxy, SQLite2, Sponge, mysql.
 at t/Barcodes_ValueBuilder.t line 15

t/Images.t .......................... 1/7 install_driver(Mock) failed: Can't locate DBD/Mock.pm in @INC (@INC contains: /home/mtompset/kohaclone/blib/PERL_MODULE_DIR /home/mtompset/kohaclone/blib/arch /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at (eval 27) line 3.
Perhaps the DBD::Mock perl module hasn't been fully installed,
or perhaps the capitalisation of 'Mock' isn't right.
Available drivers: DBM, ExampleP, File, Gofer, Proxy, SQLite2, Sponge, mysql.
 at t/Images.t line 18

t/ItemType.t ........................ 1/15 install_driver(Mock) failed: Can't locate DBD/Mock.pm in @INC (@INC contains: /home/mtompset/kohaclone/blib/PERL_MODULE_DIR /home/mtompset/kohaclone/blib/arch /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at (eval 27) line 3.
Perhaps the DBD::Mock perl module hasn't been fully installed,
or perhaps the capitalisation of 'Mock' isn't right.
Available drivers: DBM, ExampleP, File, Gofer, Proxy, SQLite2, Sponge, mysql.
 at t/ItemType.t line 19

t/Letters.t ......................... 1/2 install_driver(Mock) failed: Can't locate DBD/Mock.pm in @INC (@INC contains: /home/mtompset/kohaclone/blib/PERL_MODULE_DIR /home/mtompset/kohaclone/blib/arch /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at (eval 989) line 3.
Perhaps the DBD::Mock perl module hasn't been fully installed,
or perhaps the capitalisation of 'Mock' isn't right.
Available drivers: DBM, ExampleP, File, Gofer, Proxy, SQLite2, Sponge, mysql.
 at t/Letters.t line 19

t/Matcher.t ......................... 1/10 install_driver(Mock) failed: Can't locate DBD/Mock.pm in @INC (@INC contains: /home/mtompset/kohaclone/blib/PERL_MODULE_DIR /home/mtompset/kohaclone/blib/arch /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at (eval 27) line 3.
Perhaps the DBD::Mock perl module hasn't been fully installed,
or perhaps the capitalisation of 'Mock' isn't right.
Available drivers: DBM, ExampleP, File, Gofer, Proxy, SQLite2, Sponge, mysql.
 at t/Matcher.t line 18

t/Members_AttributeTypes.t .......... 1/9 install_driver(Mock) failed: Can't locate DBD/Mock.pm in @INC (@INC contains: /home/mtompset/kohaclone/blib/PERL_MODULE_DIR /home/mtompset/kohaclone/blib/arch /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at (eval 27) line 3.
Perhaps the DBD::Mock perl module hasn't been fully installed,
or perhaps the capitalisation of 'Mock' isn't right.
Available drivers: DBM, ExampleP, File, Gofer, Proxy, SQLite2, Sponge, mysql.
 at t/Members_AttributeTypes.t line 18

t/SocialData.t ...................... 1/5 install_driver(Mock) failed: Can't locate DBD/Mock.pm in @INC (@INC contains: /home/mtompset/kohaclone/blib/PERL_MODULE_DIR /home/mtompset/kohaclone/blib/arch /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at (eval 959) line 3.
Perhaps the DBD::Mock perl module hasn't been fully installed,
or perhaps the capitalisation of 'Mock' isn't right.
Available drivers: DBM, ExampleP, File, Gofer, Proxy, SQLite2, Sponge, mysql.
 at t/SocialData.t line 18
Comment 25 Robin Sheat 2012-10-25 02:05:34 UTC
Sorry, I was answering yesterday from my phone, so wasn't as clear as I should have been.

Anyway, we can make Moose optional, however it is needed for a "make test" to pass. I'm not sure what the preferred approach is here, but I can make it optional no problem. The packages will still pick it up in this case (long-term todo: have them put the optional ones into the "recommended" part of the debian/control file.)

Will modify my patch to do this.

mtompset: almost all your errors are due to missing libdbd-mock-perl, which is only needed for testing. Add that and most things should go away.
Comment 26 Robin Sheat 2012-10-25 02:10:28 UTC Comment hidden (obsolete)
Comment 27 Robin Sheat 2012-10-25 02:11:17 UTC
I think it was the 00-load test when it hit Koha::SearchEngine that failed, btw.
Comment 28 Robin Sheat 2012-10-25 03:19:46 UTC
FYI, the patch here is right now the only one remaining to allow the packages to build in a clean (pbuilder) environment.
Comment 29 Jonathan Druart 2012-10-25 08:09:05 UTC
I would like to test this patch but I don't know how.

If I execute prove on the t directory, I get: "All tests successful."

Moreover I think that 00-load.t does not take care of the Koha/SearchEngine directory (cf line 47: return if $m =~ /Koha::SearchEngine::/; # Koha::SearchEngine::* are experimental).
Comment 30 Jared Camins-Esakov 2012-11-01 01:26:08 UTC Comment hidden (obsolete)
Comment 31 Jared Camins-Esakov 2012-11-01 01:29:22 UTC
Note, however, that the package dependencies for 3.10 are available for Squeeze only for i386 at this time.
Comment 32 Robin Sheat 2012-11-01 01:39:55 UTC
This only applies to XS packages, everything pure-perl ends up in the amd64 part as well.
Comment 33 Jared Camins-Esakov 2012-11-01 02:07:39 UTC
(In reply to comment #32)
> This only applies to XS packages, everything pure-perl ends up in the amd64
> part as well.

And we now have the one XS package for AMD64, too.
Comment 34 Mason James 2012-11-01 07:03:30 UTC
(In reply to comment #30)
> Created attachment 13164 [details] [review]
> Bug 8636 - add Moose dependency to the dependencies
> Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>


patch looks good, passing QA...

$ koha-qa.pl -c 1 

testing 1 commit(s) (applied to commit ea9e867)
 * 4f83dd3 Bug 8636 - add Moose dependency to the dependencies
      C4/Installer/PerlDependencies.pm
      debian/control

* C4/Installer/PerlDependencies.pm                                         OK
Comment 35 Jared Camins-Esakov 2012-11-01 14:35:43 UTC
This patch has been pushed to master and is suitable for backporting to 3.10.
Comment 36 Jared Camins-Esakov 2012-11-01 15:57:25 UTC
Created attachment 13177 [details] [review]
Bug 8636: add dependency on File::Slurp

The command line scripts misc/migration_tools/koha-svc.pl and
misc/load_testing/benchmark_webservices.pl require the File::Slurp
Perl library.
Comment 37 Paul Poulain 2012-11-01 21:35:55 UTC
Patch (adding Moose) pushed to branch 3.10.x
Comment 38 Chris Cormack 2013-04-21 11:05:56 UTC
Released in 3.10.0