1. 31 Aug, 2018 1 commit
    • Jérome Perrin's avatar
      test/*/utils.py: use same code everywhere · dc62d8e4
      Jérome Perrin authored
      In preparation for moving this to a better place, use the same code in
      all the places where this code was duplicated.
      
      Reconcile all implementations, document a little bit more the methods
      and the future plans.
      dc62d8e4
  2. 29 Aug, 2018 10 commits
  3. 28 Aug, 2018 3 commits
  4. 27 Aug, 2018 4 commits
  5. 23 Aug, 2018 1 commit
  6. 22 Aug, 2018 2 commits
  7. 21 Aug, 2018 4 commits
    • Jérome Perrin's avatar
      fixup! component/perl: Infrastructure for CPAN packages in inpendent parts · 235c3bca
      Jérome Perrin authored
      This usage of textwrap.dedent *sometimes* does not work and sometimes
      create files with indentation, so we don't have "#!/bin/sh" as first
      line but "    #!/bin/sh"
      
      Use a "safer" version that should work in all cases.
      235c3bca
    • Jérome Perrin's avatar
      fixup! component/*: use specific perl · 8227e655
      Jérome Perrin authored
      perl path does not need extra /bin
      8227e655
    • Romain Courteaud's avatar
    • 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 !341
      1171acb4
  8. 20 Aug, 2018 9 commits
  9. 17 Aug, 2018 3 commits
  10. 14 Aug, 2018 1 commit
  11. 13 Aug, 2018 1 commit
  12. 10 Aug, 2018 1 commit