1. 16 Jan, 2020 2 commits
    • Jérome Perrin's avatar
      component/golang: set gcc's path in workspace's PATH · 15dcf6a3
      Jérome Perrin authored
      It seems some programs can only be built by the same gcc than the one used to
      build golang itself.
      
      For example, when system gcc is gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516,
      grafana-server fail to build with:
      
          /data/slappart11_testnode/cqg/inst/test0-0/tmp/shared/golang1.12/fbee59cfb3c995382cf70d409615aa54/pkg/tool/linux_amd64/link: running gcc failed: exit status 1
          /usr/bin/ld: /tmp/go-link-305363633/000000.o: unable to initialize decompress status for section .debug_info
          /usr/bin/ld: /tmp/go-link-305363633/000000.o: unable to initialize decompress status for section .debug_info
          /usr/bin/ld: /tmp/go-link-305363633/000000.o: unable to initialize decompress status for section .debug_info
          /usr/bin/ld: /tmp/go-link-305363633/000000.o: unable to initialize decompress status for section .debug_info
          /tmp/go-link-305363633/000000.o: file not recognized: File format not recognized
          collect2: error: ld returned 1 exit status
      
      Also generally, if we don't trust system gcc to build golang, we cannot trust
      it to build golang programs.
      15dcf6a3
    • Jérome Perrin's avatar
      Add some missing rpaths · e5aa01b7
      Jérome Perrin authored
      Now that we check that we don't link with system libraries ( slapos.core!172 ) we discovered missing rpaths in our executables.
      
      /reviewed-on !682
      e5aa01b7
  2. 15 Jan, 2020 6 commits
  3. 14 Jan, 2020 6 commits
    • Jérome Perrin's avatar
      Fix collective.recipe.shelloutput running "too early" · 3ba2ca38
      Jérome Perrin authored
      Our software using sshd were sometimes failing in tests, because the way they publish key fingerprint was racy.
      
      It is based on `collective.recipe.shelloutput`, which as we can see in the [recipe code](https://github.com/collective/collective.recipe.shelloutput/blob/78e15c19/collective/recipe/shelloutput/__init__.py) operates on `__init__`.
      
      We are using `collective.recipe.shelloutput` to capture the output of `ssh-keygen -lf $KEY` and this must run after the file `$KEY` is generated ( it is generated by another `plone.recipe.command` version). We were trying to run the `collective.recipe.shelloutput` after the `plone.recipe.command`, but that was incorrect anyway, because `collective.recipe.shelloutput` reads the file at `__init__` step, where `plone.recipe.command` creates the file at `install` step.
      As we could see in test suite, it was sometimes working, when `slapos node instance` ran only once, but it sometimes  working, when `slapos node instance` ran more than once, for example because a promise failed and `slapos node instance` was retried.
      
      Since `collective.recipe.shelloutput` does not take into account the exit code of the command but simply capture with `"Error ..."` whatever the command might output on stderr, we add another step checking that the captured output  is not `"Error ..."` and if it is cause a buildout error so that `slapos node instance` is retried and then succeed.
      
      What should happen now is:
       1. `collective.recipe.shelloutput` reads the key fingerprint, the file is not present so it captures `"Error ..."``
       2. a `plone.recipe.command` creates the key
       3. another `plone.recipe.command` checks that the captured fingerprint is not `"Error ..."` it fails
       4. buildout restarts
       5. `collective.recipe.shelloutput` reads key fingerprint correctly.
      
      Slaprunner has been heavily modified, because it was using a `sshkeys_authority` which was incompatible with this as it uses symlinks for keys. Since we don't know what is the purpose of `sshkeys_authority`, we rewrote that software to use simple commands instead of that "ssh keys authority".
      
      /reviewed-on nexedi/slapos!681
      3ba2ca38
    • Romain Courteaud's avatar
      2331b9d7
    • Romain Courteaud's avatar
      software/backupserver: first test · bb3ae5be
      Romain Courteaud authored
      bb3ae5be
    • Romain Courteaud's avatar
      2608cb7b
    • Romain Courteaud's avatar
      component/xwd: missing rpath · 2f1f4781
      Romain Courteaud authored
      2f1f4781
    • Romain Courteaud's avatar
      component/tomcat: version 7.0.99 · 75d73e97
      Romain Courteaud authored
      75d73e97
  4. 13 Jan, 2020 5 commits
  5. 07 Jan, 2020 1 commit
  6. 06 Jan, 2020 1 commit
    • Jérome Perrin's avatar
      component/qemu-kvm: add missing extends · 23c32192
      Jérome Perrin authored
      Now that component/glib/buildout.cfg is no longer included by pkgconfig,
      qemu no longer build with:
      
          While:
      	Installing.
      	Getting section template.
      	Initializing section template.
      	Getting section template-nbd.
      	Initializing section template-nbd.
      	Getting section kvm.
      	Initializing section kvm.
      	Getting option kvm:configure-options.
      	Getting section glib.
      	Error: The referenced section, 'glib', was not defined.
      
      Also explictly add pcre to prevent same problem later.
      23c32192
  7. 03 Jan, 2020 2 commits
    • Julien Muchembled's avatar
    • Julien Muchembled's avatar
      fixup! glib: put the expected python in $PATH · 77d9f997
      Julien Muchembled authored
      The OS may not have Python (slapos-node package does not depend
      on any version of Python). Another possible issue was found on Suse:
      
        make[3]: Entering directory '.../parts/glib__compile__/glib-2.56.4/gio'
          GEN      gdbus-daemon-generated.c
        Traceback (most recent call last):
          File "./gdbus-2.0/codegen/gdbus-codegen.in", line 53, in <module>
            from codegen import codegen_main
          File ".../parts/glib__compile__/glib-2.56.4/gio/gdbus-2.0/codegen/codegen_main.py", line 30, in <module>
            from . import parser
          File ".../parts/glib__compile__/glib-2.56.4/gio/gdbus-2.0/codegen/parser.py", line 23, in <module>
            import xml.parsers.expat
        ImportError: No module named xml.parsers.expat
      77d9f997
  8. 02 Jan, 2020 4 commits
  9. 31 Dec, 2019 1 commit
  10. 30 Dec, 2019 1 commit
    • Łukasz Nowak's avatar
      caddy-frontend: Set open files soft limit · 324c08d0
      Łukasz Nowak authored
      Caddy by itself does not raise soft limit of open files, so it has to be set
      by the wrapper.
      
      As slapos.cookbook:wrapper can't be used for such case, the
      slapos.recipe.template:jinja2 recipe inline style is used to have full
      control over the created wrapper.
      
      /reviewed-on !678
      324c08d0
  11. 27 Dec, 2019 2 commits
  12. 25 Dec, 2019 1 commit
  13. 24 Dec, 2019 2 commits
  14. 23 Dec, 2019 1 commit
  15. 18 Dec, 2019 5 commits
    • Jérome Perrin's avatar
      glib: put the expected python in $PATH · 6acdc8ca
      Jérome Perrin authored
      On testnodes, python can be too long for linux shebang (#!) line.
      
      We had for example:
          
          /srv/slapgrid/slappart15/srv/testnode/cqc/inst/test0-0/tmp/shared/python2.7/338ccc0e387d64185920266f8a97c87b/bin/python2.7
        
      
      that is 123 characters long.
      
      With this, the generated glib-genmarshall script will have:
          
          #!/usr/bin/env  /srv/slapgrid/slappart15/srv/testnode/cqc/inst/test0-0/tmp/shared/python2.7/338ccc0e387d64185920266f8a97c87b/bin/python2.7
      
      which exceeds the linux kernel limit.
      
      Instead, we generate scripts that will use
          
          #!/usr/bin/env python
      
      and it will be the caller responsibility to set $PATH to use the expected python.
      
      
      This fixes the issues we had on SlapOS.SoftwareReleases.IntegrationTest tests since we updated glib to 2.56.4 in a7a86db9
      
      /reviewed-on nexedi/slapos!670
      6acdc8ca
    • Łukasz Nowak's avatar
      monitor: Edge testing of urls · 6f167c3c
      Łukasz Nowak authored
      Provides a way to monitor edge PoP by using surykatka tool with
      monitoring promises added in slapos.toolbox 1.101
      6f167c3c
    • Łukasz Nowak's avatar
      monitor: Edge testing of urls · 6e65bb9d
      Łukasz Nowak authored
      Adds edgetest and edgebot software types, where edgetest is a software type
      to request by user and requests by itself edgebot, which does the monitoring
      work.
      
      Based on Rafael Monnerat <rafael@nexedi.com>
      6e65bb9d
    • Łukasz Nowak's avatar
      slapos.toolbox: Version up (0.101) · a796981d
      Łukasz Nowak authored
      Provides check_surykatka_json promise plugin.
      a796981d
    • Łukasz Nowak's avatar
      component/surykatka: Host checking tool · c684f028
      Łukasz Nowak authored
      python3 with venv to provide pip, which uses requirements file to install
      stabilised set of distributions.
      c684f028