tebako 0.9.2 → 0.10.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
|