tebako 0.9.3 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.clang-format +4 -4
- data/Brewfile +23 -23
- data/CMakeLists.txt +15 -103
- data/README.adoc +1189 -1186
- data/common.env +1 -1
- data/exe/tebako-packager +1 -25
- data/lib/tebako/build_helpers.rb +0 -39
- data/lib/tebako/cache_manager.rb +112 -0
- data/lib/tebako/cli.rb +27 -18
- data/lib/tebako/cli_helpers.rb +26 -222
- data/lib/tebako/codegen.rb +154 -0
- data/lib/tebako/deploy_helper.rb +6 -34
- data/lib/tebako/error.rb +8 -1
- data/lib/tebako/options_manager.rb +237 -0
- data/lib/tebako/packager.rb +12 -6
- data/lib/tebako/{cli_rubies.rb → ruby_version.rb} +57 -23
- data/lib/tebako/scenario_manager.rb +119 -0
- data/lib/tebako/stripper.rb +13 -13
- data/lib/tebako/version.rb +1 -1
- data/src/tebako-main.cpp +5 -6
- metadata +10 -8
- data/resources/tebako-fs.cpp.in +0 -40
- data/resources/tebako-version.h.in +0 -37
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3673be08addf6a4b0dffb509d247cfe167d6de7f8948d612c91624bb2415f850
|
4
|
+
data.tar.gz: 9aab2d7554a9a124a4d23fed253fcd4046a0021bff79b6ba148622d97db7776f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0b4939849fe0053753fb847977eca8097978579a7c9c00c25db3536de46bd5387b768729646b12044629ee7bb1aded3076739c201b6e2ebf70f8cd90b3a9ad7b
|
7
|
+
data.tar.gz: 75b96fac44a38fafee73c8eba4f951f15d3b566ca979c1681be5610919602f9f7678b1878ac26847c9d5587ce47866c6f9a8a915d530e695db7c07e8dfe567f9
|
data/.clang-format
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
BasedOnStyle: Chromium
|
2
|
-
BreakBeforeBraces: Stroustrup
|
3
|
-
SortIncludes: Never
|
4
|
-
ColumnLimit: 120
|
1
|
+
BasedOnStyle: Chromium
|
2
|
+
BreakBeforeBraces: Stroustrup
|
3
|
+
SortIncludes: Never
|
4
|
+
ColumnLimit: 120
|
data/Brewfile
CHANGED
@@ -1,23 +1,23 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
brew "zlib"
|
4
|
-
brew "ncurses"
|
5
|
-
brew "libevent"
|
6
|
-
brew "libsodium"
|
7
|
-
brew "lz4"
|
8
|
-
brew "xz"
|
9
|
-
brew "gdbm"
|
10
|
-
brew "pkg-config"
|
11
|
-
brew "libyaml"
|
12
|
-
brew "curl"
|
13
|
-
brew "bison"
|
14
|
-
brew "flex"
|
15
|
-
brew "binutils"
|
16
|
-
brew "libffi"
|
17
|
-
brew "double-conversion"
|
18
|
-
brew "boost"
|
19
|
-
brew "jemalloc"
|
20
|
-
brew "fmt"
|
21
|
-
brew "glog"
|
22
|
-
brew "gnu-sed"
|
23
|
-
brew "bash"
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
brew "zlib"
|
4
|
+
brew "ncurses"
|
5
|
+
brew "libevent"
|
6
|
+
brew "libsodium"
|
7
|
+
brew "lz4"
|
8
|
+
brew "xz"
|
9
|
+
brew "gdbm"
|
10
|
+
brew "pkg-config"
|
11
|
+
brew "libyaml"
|
12
|
+
brew "curl"
|
13
|
+
brew "bison"
|
14
|
+
brew "flex"
|
15
|
+
brew "binutils"
|
16
|
+
brew "libffi"
|
17
|
+
brew "double-conversion"
|
18
|
+
brew "boost"
|
19
|
+
brew "jemalloc"
|
20
|
+
brew "fmt"
|
21
|
+
brew "glog"
|
22
|
+
brew "gnu-sed"
|
23
|
+
brew "bash"
|
data/CMakeLists.txt
CHANGED
@@ -53,40 +53,12 @@ if(NOT LOG_LEVEL)
|
|
53
53
|
endif()
|
54
54
|
|
55
55
|
if (NOT ${SETUP_MODE})
|
56
|
-
message("Running tebako press script")
|
57
|
-
|
58
|
-
if ("-${ROOT}" STREQUAL "-")
|
59
|
-
message(FATAL_ERROR "Project ROOT is not specified.")
|
60
|
-
endif()
|
61
|
-
|
62
|
-
if ("-${ENTRANCE}" STREQUAL "-")
|
63
|
-
message(FATAL_ERROR "Project ENTRANCE is not specified.")
|
64
|
-
endif()
|
56
|
+
message(STATUS "Running tebako press script")
|
65
57
|
|
66
58
|
if ("-${PCKG}" STREQUAL "-")
|
67
59
|
message(FATAL_ERROR "Project OUTPUT PACKAGE is not specified.")
|
68
60
|
endif()
|
69
61
|
|
70
|
-
cmake_path(SET FS_ENTRANCE NORMALIZE ${ENTRANCE})
|
71
|
-
|
72
|
-
cmake_path(IS_RELATIVE ROOT IS_RT_RELATIVE)
|
73
|
-
if(${IS_RT_RELATIVE})
|
74
|
-
message(FATAL_ERROR "Path to root shall be absolute. Relative path '${FS_ROOT}' is not allowed.")
|
75
|
-
else()
|
76
|
-
cmake_path(SET FS_ROOT NORMALIZE ${ROOT})
|
77
|
-
endif()
|
78
|
-
|
79
|
-
cmake_path(IS_ABSOLUTE FS_ENTRANCE IS_EN_ABSOLUTE)
|
80
|
-
if(${IS_EN_ABSOLUTE})
|
81
|
-
cmake_path(IS_PREFIX FS_ROOT ${FS_ENTRANCE} IS_FS_EN_PREFIX)
|
82
|
-
if(NOT ${IS_FS_EN_PREFIX})
|
83
|
-
message(FATAL_ERROR "Entry point ${FS_ENTRANCE} is not in the project root ${FS_ROOT}")
|
84
|
-
endif(NOT ${IS_FS_EN_PREFIX})
|
85
|
-
set(FS_ENTR_TMP ${FS_ENTRANCE})
|
86
|
-
cmake_path(RELATIVE_PATH FS_ENTRANCE BASE_DIRECTORY ${FS_ROOT})
|
87
|
-
message("Absolute path to entry point '${FS_ENTR_TMP}' will be reduced '${FS_ENTRANCE}' relative to '${FS_ROOT}'")
|
88
|
-
endif(${IS_EN_ABSOLUTE})
|
89
|
-
|
90
62
|
cmake_path(IS_RELATIVE PCKG IS_PK_RELATIVE)
|
91
63
|
if(${IS_PK_RELATIVE})
|
92
64
|
message(FATAL_ERROR "Path to output package shall be absolute. Relative path '${PCKG}' is not allowed.")
|
@@ -94,7 +66,7 @@ if (NOT ${SETUP_MODE})
|
|
94
66
|
cmake_path(SET APP_NAME NORMALIZE ${PCKG})
|
95
67
|
endif()
|
96
68
|
|
97
|
-
message("
|
69
|
+
message("Running tebako press script")
|
98
70
|
else()
|
99
71
|
message("Running tebako setup script")
|
100
72
|
endif()
|
@@ -209,7 +181,7 @@ string(CONCAT RUBY_API_VER ${RUBY_VER_BASE} ".0")
|
|
209
181
|
# list(GET LIBDWARFS_WR_VER_COMPONENTS 2 LIBDWARFS_WR_VER_PATCH)
|
210
182
|
# set (LIBDWARFS_WR_VER_M ${LIBDWARFS_WR_VER_MAJOR}.${LIBDWARFS_WR_VER_MINOR}.${LIBDWARFS_WR_VER_PATCH})
|
211
183
|
#else(DWARFS_PRELOAD)
|
212
|
-
def_ext_prj_g(DWARFS_WR "v0.
|
184
|
+
def_ext_prj_g(DWARFS_WR "v0.8.3")
|
213
185
|
#endif(DWARFS_PRELOAD)
|
214
186
|
|
215
187
|
def_ext_prj_g(PATCHELF "65e14792061c298f1d2bc44becd48a10cbf0bc81")
|
@@ -254,15 +226,6 @@ else(${IS_MSYS})
|
|
254
226
|
set(FS_MOUNT_POINT "/__tebako_memfs__")
|
255
227
|
endif(${IS_MSYS})
|
256
228
|
|
257
|
-
if(PACKAGE_NEEDS_CWD)
|
258
|
-
set(NEEDS_CWD true)
|
259
|
-
set(PACKAGE_CWD_FULL ${FS_MOUNT_POINT}/${PACKAGE_CWD})
|
260
|
-
else(PACKAGE_NEEDS_CWD)
|
261
|
-
set(NEEDS_CWD false)
|
262
|
-
set(PACKAGE_CWD "")
|
263
|
-
set(PACKAGE_CWD_FULL "")
|
264
|
-
endif(PACKAGE_NEEDS_CWD)
|
265
|
-
|
266
229
|
message(STATUS "DATA_SRC_DIR: ${DATA_SRC_DIR}")
|
267
230
|
message(STATUS "DATA_PRE_DIR: ${DATA_PRE_DIR}")
|
268
231
|
message(STATUS "DATA_BIN_DIR: ${DATA_BIN_DIR}")
|
@@ -417,6 +380,7 @@ ExternalProject_Add(${RUBY_PRJ}
|
|
417
380
|
COMMAND ruby ${EXE}/tebako-packager pass1a ${RUBY_SOURCE_DIR}
|
418
381
|
BUILD_COMMAND make -j${NCORES}
|
419
382
|
INSTALL_COMMAND make install -j${NCORES}
|
383
|
+
COMMAND ${GNU_BASH} -c "chmod +x ${DEPS_BIN_DIR}/mkdwarfs${EXE_SUFFIX}"
|
420
384
|
COMMAND ${GNU_BASH} -c "ruby ${EXE}/tebako-packager pass2 ${OSTYPE_TXT} ${RUBY_SOURCE_DIR} ${DEPS_LIB_DIR} ${DATA_SRC_DIR} ${RUBY_STASH_DIR} ${RUBY_VER}"
|
421
385
|
)
|
422
386
|
|
@@ -442,76 +406,24 @@ else (${SETUP_MODE})
|
|
442
406
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
443
407
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
444
408
|
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
list(LENGTH GEMFILES GFLENGTH)
|
451
|
-
list(LENGTH GEMS GLENGTH)
|
452
|
-
|
453
|
-
if(GSLENGTH GREATER 0)
|
454
|
-
if(GSLENGTH GREATER 1)
|
455
|
-
message(FATAL_ERROR "Multiple gemspecs detected in ${FS_ROOT}")
|
456
|
-
else(GSLENGTH GREATER 1)
|
457
|
-
if(GFLENGTH GREATER 0)
|
458
|
-
# Found xxx.gemspec and Gemfile
|
459
|
-
set(FS_ENTRY_POINT "/bin/${FS_ENTRANCE}")
|
460
|
-
else(GFLENGTH GREATER 0)
|
461
|
-
# Found xxx.gemspec but no Gemfile
|
462
|
-
set(FS_ENTRY_POINT "/bin/${FS_ENTRANCE}")
|
463
|
-
endif(GFLENGTH GREATER 0)
|
464
|
-
endif(GSLENGTH GREATER 1)
|
465
|
-
elseif(GFLENGTH GREATER 0)
|
466
|
-
# Found Gemfile but no gemspec
|
467
|
-
set(FS_ENTRY_POINT "/local/${FS_ENTRANCE}")
|
468
|
-
elseif(GLENGTH GREATER 0)
|
469
|
-
# xxx.gem, no gemspec, no gemfile
|
470
|
-
if(GLENGTH GREATER 1)
|
471
|
-
message(FATAL_ERROR "Multiple gems detected in ${FS_ROOT}")
|
472
|
-
else(GLENGTH GREATER 1)
|
473
|
-
set(FS_ENTRY_POINT "/bin/${FS_ENTRANCE}")
|
474
|
-
endif(GLENGTH GREATER 1)
|
475
|
-
else()
|
476
|
-
# No gem, no gemspec, no gemfile
|
477
|
-
# Simple ruby script
|
478
|
-
set(FS_ENTRY_POINT "/local/${FS_ENTRANCE}")
|
479
|
-
endif()
|
480
|
-
|
481
|
-
add_custom_target(source_filesystem
|
482
|
-
COMMAND ruby ${EXE}/tebako-packager deploy ${OSTYPE_TXT} ${RUBY_SOURCE_DIR} ${RUBY_STASH_DIR}
|
483
|
-
${DATA_SRC_DIR} ${DATA_PRE_DIR} ${DATA_BIN_DIR}
|
484
|
-
${FS_ROOT} ${FS_ENTRANCE} ${FS_MOUNT_POINT} ${APP_NAME} ${RUBY_VER}
|
485
|
-
${PACKAGE_CWD}
|
486
|
-
DEPENDS ${RUBY_PRJ}
|
487
|
-
)
|
409
|
+
add_custom_target(packaged_filesystem
|
410
|
+
COMMAND ruby ${DEPS_BIN_DIR}/deploy.rb
|
411
|
+
DEPENDS ${RUBY_PRJ}
|
412
|
+
BYPRODUCTS ${DATA_BIN_FILE}
|
413
|
+
)
|
488
414
|
|
489
415
|
# ...................................................................
|
490
416
|
# Packaged filesystem
|
491
417
|
|
492
|
-
|
493
|
-
${DATA_RES_DIR}/tebako-version.h.in
|
494
|
-
${DEPS_INCLUDE_DIR}/tebako/tebako-version.h
|
495
|
-
@ONLY
|
496
|
-
)
|
497
|
-
|
498
|
-
configure_file(
|
499
|
-
${DATA_RES_DIR}/tebako-fs.cpp.in
|
500
|
-
${DEPS_SRC_DIR}/tebako/tebako-fs.cpp
|
501
|
-
@ONLY
|
502
|
-
)
|
503
|
-
|
504
|
-
add_custom_target(packaged_filesystem
|
505
|
-
COMMAND ${GNU_BASH} -c "chmod +x ${DEPS_BIN_DIR}/mkdwarfs${EXE_SUFFIX}"
|
418
|
+
#add_custom_target(packaged_filesystem
|
506
419
|
# No progress below is critical since in reporting mode mkdwarfs tries to work directly with terminal
|
507
420
|
# and it creates issues for stderr redirects (&2 > 1) used by Ninja and our test srcipts
|
508
421
|
# It may be fixable bit is very difficult to reproduce in test environment
|
509
|
-
|
510
|
-
|
511
|
-
|
512
|
-
|
513
|
-
|
514
|
-
)
|
422
|
+
# COMMAND ${DEPS_BIN_DIR}/mkdwarfs -o ${DATA_BIN_FILE} -i ${DATA_SRC_DIR} --no-progress
|
423
|
+
# #COMMAND ${CMAKE_COMMAND} -E touch ${DEPS_SRC_DIR}/tebako/tebako-fs.cpp
|
424
|
+
# DEPENDS setup source_filesystem
|
425
|
+
# VERBATIM
|
426
|
+
#)
|
515
427
|
|
516
428
|
set(CMAKE_CXX_FLAGS "${RUBY_C_FLAGS}")
|
517
429
|
|