1. 21 Aug, 2018 1 commit
    • Jérome Perrin's avatar
      Use separate part for each perl package · 1171acb4
      Jérome Perrin authored
      Rework perl installation to install each package in a separate directory.
      
      Each package install a `perl` interpreter for each package, which is implemented a shell wrapper setting `$PERL5LIB` with the path of this package and its dependencies.
      
      To install a perl package, use `perl-CPAN-package` macro, like in this example for a fictional `XXX::YYY` package:
      
      ```
      [perl-XXX-YYY]
      <= perl-CPAN-package
      module = XXX/XXX-YYY
      version = 1.2.3
      md5sum = ab68b329da9893e34099c7d8ad5cb9c940cd123
      ```
      
      This will download package from https://www.cpan.org/modules/by-module/XXX/XXX-YYY-1.2.3.tar.gz and install using the usual `perl Makefile.PL && make && make install` sequence.
      
      To install package with dependencies, use the `inc=` argument, like in this example for  another fictional package `XXX::ZZZ` package that would depend on `XXX::YYY` and `XXX::ABC` :
      
      ```
      [perl-XXX-ZZZ]
      <= perl-CPAN-package
      module = XXX/XXX-ZZZ
      version = 1.2.3
      md5sum = 401b30e3b8b5d629635a5c613cdb7919
      
      inc = ${perl-XXX-YYY:site_perl}:${perl-XXX-ABC:site_perl}
      ```
      
      The full list of options is described in the [macro](https://lab.nexedi.com/nexedi/slapos/blob/a5bec95c/component/perl/buildout.cfg#L31-65).
      
      
      That macro creates an interpreter for each package, but sometimes we need to create an interpreter with multiple packages. The `perl-wrapper` macro is available for this. It also accepts a `inc=` argument in the same format. Because this wrapper is implemented using `-I` argument, it is also suitable for scrips running in perl [taint mode](https://perldoc.perl.org/perlsec.html#Taint-mode-and-%40INC), like the w3-validator we are using.
      
      All perl components and perl usages have been updated to this new infrastructure.
      
      Some (apparently) unmaintained components were using an obsolete `slapos.recipe.build:cpan` recipe. They were used only in mioga2 from unstable, so I moved them inline in mioga2 software.
      
      /reviewed-on nexedi/slapos!341
      1171acb4
  2. 20 Aug, 2018 9 commits
  3. 17 Aug, 2018 3 commits
  4. 14 Aug, 2018 1 commit
  5. 13 Aug, 2018 1 commit
  6. 10 Aug, 2018 3 commits
  7. 09 Aug, 2018 4 commits
  8. 08 Aug, 2018 5 commits
  9. 07 Aug, 2018 1 commit
  10. 06 Aug, 2018 1 commit
  11. 03 Aug, 2018 2 commits
  12. 31 Jul, 2018 9 commits