1. 12 Jan, 2022 1 commit
  2. 29 Dec, 2021 2 commits
  3. 06 Dec, 2021 1 commit
  4. 02 Dec, 2021 1 commit
  5. 30 Nov, 2021 2 commits
  6. 23 Sep, 2021 10 commits
  7. 17 Aug, 2021 1 commit
    • Jérome Perrin's avatar
      test: fix tests on python2 · 9c0113de
      Jérome Perrin authored
      1dc49d3e (tests: ignore CryptographyDeprecationWarning on python2, 2021-08-13)
      was wrong, because this warning includes the path of the software, which
      also has a md5sum hash, so the normalization has to be done before the
      md5sum normalization, otherwise this consumes an md5sum and they become
      off by one, with errors like:
      
          Expected:
              package: shared at /shared/package/<MD5SUM:0>
              Uninstalling package.
              Installing package.
              package: Checking whether package is installed at shared path: /shared/package/<MD5SUM:0>
              package: [ENV] FOO = bar
              package: Command 'set -e;./configure --prefix=/shared/package/<MD5SUM:0>"' returned non-zero exit status 127.
              package: Compilation error. The package is left as is at /shared/package/<MD5SUM:0>__compile__ where you can inspect what went wrong.
              A shell script slapos.recipe.build.env.sh has been generated. You can source it in your shell to reproduce build environment.
              /bin/sh: 1: ./configure: not found
              While:
                Installing package.
              Error: System error
          Got:
              package: shared at /shared/package/<MD5SUM:1>
              Uninstalling package.
              Installing package.
              package: Checking whether package is installed at shared path: /shared/package/<MD5SUM:1>
              package: [ENV] FOO = bar
              package: Command 'set -e;./configure --prefix=/shared/package/<MD5SUM:1>"' returned non-zero exit status 127.
              package: Compilation error. The package is left as is at /shared/package/<MD5SUM:1>__compile__ where you can inspect what went wrong.
              A shell script slapos.recipe.build.env.sh has been generated. You can source it in your shell to reproduce build environment.
              <BLANKLINE>
              /bin/sh: 1: ./configure: not found
              While:
                Installing package.
              Error: System error
              <BLANKLINE>
      9c0113de
  8. 13 Aug, 2021 2 commits
  9. 26 Feb, 2021 2 commits
  10. 08 May, 2020 1 commit
  11. 04 May, 2020 1 commit
    • Dmitry Blinov's avatar
      propagate strip_top_level_dir option to slapos.recipe.build:downloadunpacked · f672573a
      Dmitry Blinov authored
      Don't force strip_top_level_dir option to be false when calling for slapos.recipe.build:downloadunpacked - let the user decide.
      
      Effectively adds strip_top_level_dir option to the script which allows for shorter and more consistent paths.
      Also it can help mitigating the variability of path length between archives downloaded for branch, commit hash and release.
      f672573a
  12. 01 May, 2020 1 commit
    • Jérome Perrin's avatar
      tests: cover slapos usage · 2563fc98
      Jérome Perrin authored
      Add some doctests to describe the use cases of shared parts with slapos,
      including the need for our `${:_profile_base_location_}` buildout patch
      and the need to save signature files.
      2563fc98
  13. 26 Apr, 2020 1 commit
  14. 23 Apr, 2020 4 commits
  15. 22 Apr, 2020 5 commits
  16. 15 Apr, 2020 1 commit
  17. 31 Mar, 2020 1 commit
  18. 30 Mar, 2020 1 commit
    • Dmitry Blinov's avatar
      set -e for shell commands · 2f92b674
      Dmitry Blinov authored
      If not set, the commands in the middle of custom configure-command,
      pre-build, post-build etc can fail without resulting in SystemError
      for user and without stopping cmmi process, which thus can formally
      succeed despite being misconfigured or in some cases with the code
      not even built.
      This is because when executing a multiline command, only the exit
      status of the last one actually gets caught by check_call().
      
      Setting -e makes debugging easier by allowing shell to terminate
      mid-way if errors (non-zero exit status) occur.
      
      -e only covers 'simple commands', and does not affect 'if' tests
      and more complex cases where non-zero exit status is expected to
      occur normally.
      Detailed description of -e effects can be seen in the POSIX
      standard:
      
      https://pubs.opengroup.org/onlinepubs/009695399/utilities/set.html
      2f92b674
  19. 12 Dec, 2019 1 commit
  20. 10 Dec, 2019 1 commit
    • Jérome Perrin's avatar
      shared: Fix recovery after an interrupted build · 0bb65331
      Jérome Perrin authored
      When build process is interrupted (like when the buildout process
      terminated by SIGKILL), building with shared leave the system in a state
      that looks like installation succeeded, so next execution will assume
      the part was properly installed.
      
      
      The behavior was something like this:
      
      
          if isSharedPartSignatureOK():
            useThisAlreadyInstalledPart()
          else:
            writeSignatureInSharedPart()
            try:
              build()
            except:
              removeSharedPart()
              raise
      
      
      and when program is terminated during build step, the signature is
      there.
      
      The fix is to write signature later, algorithm becomes:
      
      
          if isSharedPartSignatureOK():
            useThisAlreadyInstalledPart()
          else:
            try:
              build()
            except:
              removeSharedPart()
              raise
            writeSignatureInSharedPart()
      
      /reviewed-on nexedi/slapos.recipe.cmmi!10
      0bb65331