Skip to content
Snippets Groups Projects
  1. Sep 21, 2023
  2. Aug 03, 2023
  3. Aug 02, 2023
  4. Jul 28, 2023
  5. Jul 18, 2023
  6. Jun 08, 2023
  7. Jun 05, 2023
    • Feodor Alexandrov's avatar
      fix: name collision between tarantool and openssl libcrypto · 28a278f4
      Feodor Alexandrov authored and Yaroslav Dynnikov's avatar Yaroslav Dynnikov committed
      This commit reverts "build: fix libcrypto renaming" (9485e9c1). The fix
      proposed in that commit actually broke the whole build instead of fixing
      re-build. Since there are two `libcrypto.a` (tarantool one and symlinked
      openssl), the linker sometimes loads the same library twice (`-lcrypto` and
      `-lcrypto-ssl`).
      
      This patch provides another solution - tarantool lib is renamed so now
      `-lcrypto` uniquely corresponds to openssl and
      `-ltcrypto` to the tarantool library.
      28a278f4
  8. Jun 01, 2023
    • Yaroslav Dynnikov's avatar
      build: fix libcrypto renaming · 9485e9c1
      Yaroslav Dynnikov authored
      Renaming libcrypto breaks the rebuid. Repro:
      
      ```bash
      cargo build -vv
      rm -rf target/debug/picodata-*
      cargo build -vv
      ```
      
      It results in
      
      ```
      [build.rs:204] running ["cmake" "--build" "target/debug/build/tarantool-sys/tarantool-prefix/src/tarantool-build"]
      gmake[2]: *** No rule to make target 'target/debug/build/tarantool-sys/openssl-prefix/lib/libcrypto.a', needed by 'src/tarantool'.  Stop.
      ```
      
      Instead of renaming this patch makes a symlink.
      9485e9c1
  9. May 04, 2023
    • Denis Smirnov's avatar
      feat: add distributed SQL support · a1ed2657
      Denis Smirnov authored
      
      Current commit introduces distributed SQL in picodata (we use
      'sbroad' library). Now it is possible to execute cluster-wide
      SQL with 'pico.sql([[query]], {params})' lua method.
      
      Current limitations:
      1. DDL is still not implemented in picodata, so space sharding
         is mocked by '_pico_space' space (we'll remove it later).
      2. We still have duplicating symbols of the Tarantool module in
         sbroad and in picodata rlibs.
      3. We need to reuse piocdata's sharding functions and handle the
         case when different spaces in the query have different sharding
         functions.
      
      Co-authored-by: Georgy Moshkin's avatarGeorgy Moshkin <gmoshkin@picodata.io>
      Verified
      a1ed2657
  10. Apr 19, 2023
  11. Apr 14, 2023
  12. Apr 06, 2023
  13. Mar 29, 2023
  14. Mar 27, 2023
    • Denis Smirnov's avatar
      fix: supress dead code stripping in the linker on macos · 0d3abdc5
      Denis Smirnov authored and Yaroslav Dynnikov's avatar Yaroslav Dynnikov committed
      We don't want to strip unused symbols from the static libraries on
      the linking stage. This leads to problems with tarantool's crypto
      module. Some symbols ("crypto_EVP_get_digestbyname" for example)
      were used only by the ffi calls inside `crypto.lua` file. So the
      linker stripped these symbols as it was not able to find their
      usage in the rest of the C code. This produced SIGABRT on the
      picodata startup when tarantool_lua_init() initialized the crypto
      module.
      0d3abdc5
    • Denis Smirnov's avatar
      fix(build): symbol not found on macos · 43866593
      Denis Smirnov authored and Yaroslav Dynnikov's avatar Yaroslav Dynnikov committed
      An attempt to start picodata on macos returns an error:
      symbol not found in flat namespace '_res_9_getservers'
      
      The reason is that macos executables require libresolv.dylib to
      use resolv.h.
      43866593
  15. Feb 10, 2023
    • Yaroslav Dynnikov's avatar
      build: fix packpack · 685d676c
      Yaroslav Dynnikov authored and Alexey Protsenko's avatar Alexey Protsenko committed
      The build process was refactored recently in b9aeab59 and it broke the
      packaging in a tricky way.
      
      Packpack wraps the whole build process in a Makefile which exports its
      own `MAKEFLAGS` environment variable:
      
      ```
      MAKEFLAGS="w -j -- BUILDDIR=/build"
      ```
      
      The `cmake` crate used to override it with `CARGO_MAKEFLAGS` provided by
      cargo. But after we've replaced it with `std::process::Command`, the
      `BUILDDIR` setting has made its way to the `icu` build, which suddenly
      clashed one of internal `make` variables and wrote there resource files.
      As a result, the `icu` build started to fail with the error:
      
      ```
      icupkg: unable to open input file
      "/build/usr/src/debug/picodata-22.11.0.158/
         /target/debug/build/tarantool-sys/icu-prefix/src/icu-build/
         /data/out/build/icudt62l/af.res"
      ```
      
      while all resources were copied directly to `/build/af.res`.
      
      This patch repeats the behavior of the `cmake` crate.
      
      It also makes logging more verbose and aligns the output. Replacing
      `eprintln` with `println` is necessary since `make` and `cmake` both
      write the logs to the `stdout`.
      685d676c
  16. Feb 01, 2023
  17. Jan 31, 2023
  18. Jan 27, 2023
  19. Dec 23, 2022
  20. Dec 22, 2022
  21. Nov 23, 2022
  22. Nov 08, 2022
  23. Sep 22, 2022
  24. Jul 18, 2022
  25. Jul 06, 2022
    • Yaroslav Dynnikov's avatar
      fix: eliminate git from build deps · 46b3a99f
      Yaroslav Dynnikov authored
      It's impossible to build picodata with packpack - it removes the `.git`
      directory from the build environment. The git is only necessary for
      applying tarantool patches, but `patch -p1` can be used for that
      instead.
      46b3a99f
  26. Jun 02, 2022
  27. May 30, 2022
    • Georgy Moshkin's avatar
      fix(build): fix build fail on rust 1.61 · 5157ab95
      Georgy Moshkin authored and Georgy Moshkin's avatar Georgy Moshkin committed
      since 1.61 rust has added a `whole-archive` modifier for link targets
      which is unset by default.
      
      Previously to this version this was probably undefined behavior, because
      the linking would work fine when building an executable (like picodata)
      but would fail with undefined symbols when building a static library.
      
      But now with the advent of this option, we can probably refactor
      picodata into a library which can be useful for testing, i.e. we can
      exclude testing stuff from the binary but still have a test binary with
      all the necessary runtime symbols.
      
      Closes #81
      5157ab95
  28. Apr 29, 2022
  29. Mar 11, 2022
  30. Mar 10, 2022
  31. Mar 09, 2022
Loading