1. 03 Mar, 2021 3 commits
    • Kirill Smelkov's avatar
      X stack/erp5 += WCFS service (draft) · 29cb6bb1
      Kirill Smelkov authored
      This complements 7f877621 (Move wendelin.core from Wendelin to ERP5) for
      wendelin.core 2 which introduces new filesystem server component that serves
      in-ZODB arrays data as OS files for Zopes to memory-map.
      
      - WCFS is by default disabled in ERP5 - we do not want to load every
        ERP5 user with it in the early days of wendelin.core 2.
      - WCFS is by default enabled in Wendelin and SlapOS Master.
      - There is a duplication for instance-erp5.cfg.in in between stack/erp5/
        and software/slapos-master/ . It was negotiated with VIFIB developers
        to go this way instead of first deduplicating instance-erp5.cfg.in
        copying that was started in 87d13789 (slapos-master: Copy files from
        erp5 stack for local changes).
      29cb6bb1
    • Kirill Smelkov's avatar
      X wendelin.core: Switch to using wendelin.core 2 draft · f5f017e9
      Kirill Smelkov authored
      kirr/wendelin.core@t is current WC2 draft.
      f5f017e9
    • Kirill Smelkov's avatar
      X ZODB: switch to kirr/ZODB.git · 0a9f7cd6
      Kirill Smelkov authored
      Because currently 4.4.5-9-g8e7eab330 is present only in that repository.
      See nexedi/ZODB!1
      0a9f7cd6
  2. 02 Mar, 2021 19 commits
    • Kirill Smelkov's avatar
      ZEO4: Pick up patches needed by Wendelin.core 2 · 99bb368c
      Kirill Smelkov authored
      We need nexedi/ZEO@f2fae122 and nexedi/ZEO@7c104297
      
      Those are small low-risk patches that are all backports of upstream ZEO
      master. Upstream declared ZEO4 "dead" and does not want to apply any
      patch to 4 branch, so we have to maintain them on our side.
      
      The patches are required for wendelin.core 2 to work correctly because
      without them ZEO does not provide full information about committed
      objects on invalidation, and so WCFS will provide corrupt file data
      because it will miss to know that some part of a file was changed.
      99bb368c
    • Kirill Smelkov's avatar
      ZODB4: Backport the way MVCC is handled from ZODB5 · bd79c641
      Kirill Smelkov authored
      Wendelin.core 2 needs this.
      See nexedi/ZODB!1 for details.
      bd79c641
    • Kirill Smelkov's avatar
      component/ZODB · 67d8797c
      Kirill Smelkov authored
      - factor bits that constitute ZODB stack into component/ZODB;
      - add support for testing ZODB on Nexedi testing infrastructure;
      
      This are preparatory steps to integrate
      nexedi/ZODB!1.
      
      Please see details in the individual commits.
      
      /cc @nexedi
      /proposed-for-review-on: nexedi/slapos!867
      67d8797c
    • Kirill Smelkov's avatar
      ZODB: Add testing support · d451de4f
      Kirill Smelkov authored
      Organize testing of ZODB 3/4/5 on Nexedi testing infrastructure.
      
      ZODB is core component that we rely on everywhere, and given that this days
      upstream is not very active, and we are going to add our own patches to ZODB,
      we should add automatic testing to make sure that our ZODB is in good shape.
      d451de4f
    • Kirill Smelkov's avatar
      ZODB: Switch persistent to git checkout · c4d69762
      Kirill Smelkov authored
      We'll need persistent as git checkout in the next patch when organizing testing
      of ZODB stack, because persistent tests want to discover in-tree files that are
      not present in persistent egg when it is installed in non-development mode:
      
      https://erp5.nexedi.net/test_result_module/20201123-3F859E35/7
      (look for "AssertionError: could not find my setup.py")
      
      https://github.com/zopefoundation/persistent/blob/4.6.4-0-g7ed95cf/persistent/tests/test_docs.py#L37-L43
      c4d69762
    • Kirill Smelkov's avatar
      ZODB3: Switch transaction 1.1.1 -> 1.6.1 · 9150cd7c
      Kirill Smelkov authored
      NEO/ZODB3 was using transaction 1.1.1, but ZODB3 was fixed to follow transaction 1.6.1 in 2016:
      
      https://github.com/zopefoundation/ZODB/commit/d8409616
      
      Actually ZODB3 tests fail with transaction 1.1.1
      
      https://erp5.nexedi.net/test_result_module/20201123-60855473/6
      9150cd7c
    • Kirill Smelkov's avatar
      ZODB: Factor it to separate component · dfca7776
      Kirill Smelkov authored
      Factor-out things that provide components for ZODB stack from software/neoppod/
      into component/ZODB/. We switch ZODB 3/4/5 to git checkouts, but used revisions
      correspond to ZODB versions we were using before, so this should be a
      non-functional change.
      
      We need ZODB to be git checkouts for better control, because we'll want to add
      our own patches to ZODB4, for example nexedi/ZODB!1.
      
      If that change will be done, it will be done as a separate step.
      
      We will also need git checkouts to add testing support for ZODB, so that we
      could setup automatic testing for this essential-to-Nexedi component on our own
      testing infrastructure.
      dfca7776
    • Kirill Smelkov's avatar
      ZEO5 no longer requires msgpack < 0.6 starting from ZEO 5.2.2 · c84f8f74
      Kirill Smelkov authored
      https://github.com/zopefoundation/ZEO/commit/503dccb1
      
      We upgraded ZEO5 to 5.2.2 in commit 34ebf8b5 (ZEO5: v↑ (5.2.0 -> 5.2.2)), and
      so now it works with msgpack 0.6.2 provided by stack/slapos.cfg.
      c84f8f74
    • Kirill Smelkov's avatar
      wendelin.core: Add support for wendelin.core 2 build · 3cfa3508
      Kirill Smelkov authored
      The component remains on wendelin.core 1, but the build environment is
      adjusted so that both (any of) wendelin.core 1 or wendelin.core 2 could
      be built:
      
      - Add zodbtools that wendelin.core 2 requires,
      - Add Go and zlib to gowork that are neede to build WCFS.
      3cfa3508
    • Kirill Smelkov's avatar
      neotest: Rework to use Go modules · 44faa493
      Kirill Smelkov authored
      GOPATH is going to go away in Go 1.17 and most of in-tree SlapOS things are
      already built using modules - including upcoming wendelin.core 2 that also
      builds/uses NEO/go. This way maintaining GOPATH-based approach becomes just
      unneccesary burden (modulo development, where it is still needed sometime
      unfortunately https://github.com/golang/go/issues/37755#issuecomment-771927771)
      44faa493
    • Kirill Smelkov's avatar
      neotest: Don't pin wendelin.core · 9fdabc46
      Kirill Smelkov authored
      What was "latest" in 2018 is outdated by now.
      -> Just use the versions that is provided by component/wendelin.core that neotest extends from.
      9fdabc46
    • Kirill Smelkov's avatar
      golang: Go modules support; Prepare to deprecate GOPATH · f8831b62
      Kirill Smelkov authored
      Add support for using Go modules to golang/gowork infrastructure:
      
      - Users can now request to install a module via gowork:install as. e.g.
        in the following example:
      
              [gowork]
              install =
                  lab.nexedi.com/kirr/neo/go/...@v0.0.0-20210103165133-f3effa6c535f
                  golang.org/x/tools/gopls@v0.4.3
                  ${helloweb:location}/go:./...
      
        The first two request to install programs from an external module at particular
        revision/version. The latter requests to install programs from locally
        cloned/checked-out module source.
      
        The documentation now talks only about programs, because "package
        installation" became unnecessary long time ago as Go toolchain uses
        right packages and recompiles things as needed automatically since
        introduction of the Go build cache in go 1.10.
      
      - The change comes accompanied by corresponding helloweb change that
        reworks it to a) become a module itself, and b) to use other modules -
        that are not explicitly cloned by buildout - so that we can be sure
        that module way of fetching/building things actually works.
      
        kirr/helloweb@a7c788ae
      
      - Non-module way - e.g. build via GOPATH - is still supported (because
        e.g. software/gitlab still uses it), but not explicitly documented and 
        scheduled to be deprecated and removed. The reason for this is that
        upstream Go is going to remove support for GOPATH and leave only
        module-based approach in Go1.17
      
        https://github.com/golang/go/issues/37755#issuecomment-771879911
      
      /cc @jerome, @luke, @tomo, @alain.takoudjou
      /reviewed-on !924
      f8831b62
    • Kirill Smelkov's avatar
      golang: Go modules support; Prepare to deprecate GOPATH · 73ff1a8d
      Kirill Smelkov authored
      Add support for using Go modules to golang/gowork infrastructure:
      
      - Users can now request to install a module via gowork:install as. e.g.
        in the following example:
      
      	[gowork]
      	install =
      	    lab.nexedi.com/kirr/neo/go/...@v0.0.0-20210103165133-f3effa6c535f
      	    golang.org/x/tools/gopls@v0.4.3
      	    ${helloweb:location}/go:./...
      
        The first two request to install programs from an external module at particular
        revision/version. The latter requests to install programs from locally
        cloned/checked-out module source.
      
        The documentation now talks only about programs, because "package
        installation" became unnecessary long time ago as Go toolchain uses
        right packages and recompiles things as needed automatically since
        introduction of the Go build cache in go 1.10.
      
      - The change comes accompanied by corresponding helloweb change that
        reworks it to a) become a module itself, and b) to use other modules -
        that are not explicitly cloned by buildout - so that we can be sure
        that module way of fetching/building things actually works.
      
        kirr/helloweb@a7c788ae
      
      - Non-module way - e.g. build via GOPATH - is still supported (because
        e.g. software/gitlab still uses it), but not explicitly documented and
        scheduled to be deprecated and removed. The reason for this is that
        upstream Go is going to remove support for GOPATH and leave only
        module-based approach in Go1.17
      
        https://github.com/golang/go/issues/37755#issuecomment-771879911
      73ff1a8d
    • Kirill Smelkov's avatar
      golang: Make gowork.install optional · 0f72fe8c
      Kirill Smelkov authored
      Some software releases - e.g. wendelin.core - only use ${go:exe} and
      does not put anything into ${gowork:install}.
      0f72fe8c
    • Kirill Smelkov's avatar
      golang: Rework [gowork] documentation a bit · e2a4b391
      Kirill Smelkov authored
      Put emphasis on that gowork defines Go workspace and explain first
      settings that are related to that definition. Only after that say how to
      use gowork.install. The reason for this is that gowork.install will
      become optional in the next patch.
      e2a4b391
    • Kirill Smelkov's avatar
      helloweb: Drop gowork.cfg · 9ea7e5df
      Kirill Smelkov authored
      gowork.cfg idea is to specify a GOPATH snapshot with a list of
      repositories and their revisions. GOPATH way of building things is going
      to go away and we'll soon switch default mode to build go things to do
      so via Go modules.
      
      Refactor helloweb a bit before doing that as a preparatory step.
      9ea7e5df
    • Vincent Pelletier's avatar
      software-slapos-sr-testing: Extend stack/caucase . · 75c59ea6
      Vincent Pelletier authored
      This allows factorising its version pins.
      75c59ea6
    • Vincent Pelletier's avatar
      stack/caucase: Update egg pins for caucase 0.9.9 release. · f59a9efe
      Vincent Pelletier authored
      Update PEM to the latest available version.
      f59a9efe
    • Jérome Perrin's avatar
      stack/nodejs: add yarn · cb334146
      Jérome Perrin authored
      Instead of having softwares install yarn, unify this in nodejs stack.
      
      Yarn usage is similar to nodejs usage, if a specific version is needed,
      software should use macro to expose which yarn version to use, example:
      
          [yarn]
          <= yarn-1.17.3
      
      Then sections can use yarn by having ${yarn:location}/bin/ in their path.
      
      yarn will use the default [nodejs], so to another nodejs version, the same
      pattern can be used:
      
          [nodejs]
          <= nodejs-10.6.0
      cb334146
  3. 01 Mar, 2021 8 commits
    • Thomas Gambier's avatar
      component/gmp: version up and disable assembly · 9e4711b8
      Thomas Gambier authored
      Since gmp is used by nft and nft is used by firewalld which is included
      in slapos-node package, we need to have support for all CPU (disable-assembly).
      Otherwise, you can see this kind of errors in dmesg:
      
      firewalld[16932] trap invalid opcode ip:7f5f26ad61fb sp:7fff95cf7480 error:0 in libgmp.so.10.3.1[7f5f26ac7000+51000]
      
      Note that --host=none-pc-linux-gnu is needed to enable the shared libraries.
      9e4711b8
    • Thomas Gambier's avatar
      9f7db538
    • Thomas Gambier's avatar
      component/slapos: remove cliff version pin · a715cf4a
      Thomas Gambier authored
      We need the newest version anyway and it does not trigger a problem in OBS
      a715cf4a
    • Xavier Thompson's avatar
      software/theia: Select free ports automatically · eb5d675c
      Xavier Thompson authored
      Changes:
      - Add comments and reorganise instance.cfg.in for clarity
      - Select free ports instead of hardcoded ports
      - Upgrade to slapos.core 1.6.5 to prefix forwarded requests
      
      This makes it possible to recursively nest theias into theias.
      
      See merge request !919
      eb5d675c
    • Vincent Pelletier's avatar
      cf47beb9
    • Kirill Smelkov's avatar
      golang: Break future gowork ⇄ go-git-package cycle · e11efc27
      Kirill Smelkov authored
      Consider a Go package that is defined via go-git-package, for example
      
          [helloweb]
          <= go-git-package
          go.importpath = lab.nexedi.com/nexedi/helloweb
          repository    = https://lab.nexedi.com/nexedi/helloweb.git
      
      Currently, since go-git-package references ${gowork:src}, it creates
      helloweb -> gowork dependency. gowork, in turn, depends on
      gowork.goinstall, which gets list of things to install from ${gowork:install}.
      
      Currently we put only plain strings into ${gowork.install}, e.g.
      
          [gowork]
          install =
             lab.nexedi.com/nexedi/helloweb/go/...
      
      but for Go modules support and for properly expressing what depends on what,
      we'll want in the next patch to be able to specify something like
      
          [gowork]
          install =
             ${helloweb:location}/go:./...
      
      which will create helloweb ⇄ gowork cycle.
      
      Unfortunately buildout does not detect nor report an error for such cycles, and
      simply processes parts in an order, which leads to situation where e.g.
      helloweb was not yet cloned, but gowork.goinstall tries to `go install` it and
      complains "no such helloweb directory".
      
      -> Fix it by leaving gowork to use by component/golang/ users, and putting
      settings about where gowork directories is into underlying gowork.dir section.
      e11efc27
    • Vincent Pelletier's avatar
      software/html5as: Fix md5sum. · db640aa7
      Vincent Pelletier authored
      Not sure which commit broke it, but this diff is now polluting my commits.
      db640aa7
    • Kirill Smelkov's avatar
      golang: Prepare for future GOPATH removal · 8eac67a5
      Kirill Smelkov authored
      GOPATH is going to be removed in Go1.17 (see e.g. https://github.com/golang/go/issues/37755#issuecomment-771879911).
      
      -> Prevent programs suddenly become installed into $HOME/go/bin instead of
      gowork/bin, and mod cache to become something like $HOME/go/... instead of
      being kept under gowork/
      
      No change in behaviour for Go ≤ 1.16
      8eac67a5
  4. 26 Feb, 2021 8 commits
  5. 25 Feb, 2021 2 commits