summaryrefslogtreecommitdiff
path: root/lib/reltool/src/reltool_target.erl
diff options
context:
space:
mode:
Diffstat (limited to 'lib/reltool/src/reltool_target.erl')
-rw-r--r--lib/reltool/src/reltool_target.erl119
1 files changed, 16 insertions, 103 deletions
diff --git a/lib/reltool/src/reltool_target.erl b/lib/reltool/src/reltool_target.erl
index 1a0f868be8..561f67c31b 100644
--- a/lib/reltool/src/reltool_target.erl
+++ b/lib/reltool/src/reltool_target.erl
@@ -1,7 +1,7 @@
%%
%% %CopyrightBegin%
%%
-%% Copyright Ericsson AB 2009-2021. All Rights Reserved.
+%% Copyright Ericsson AB 2009-2023. All Rights Reserved.
%%
%% Licensed under the Apache License, Version 2.0 (the "License");
%% you may not use this file except in compliance with the License.
@@ -81,9 +81,6 @@ do_gen_config(#sys{root_dir = RootDir,
excl_sys_filters = ExclSysFiles,
incl_app_filters = InclAppFiles,
excl_app_filters = ExclAppFiles,
- incl_archive_filters = InclArchiveDirs,
- excl_archive_filters = ExclArchiveDirs,
- archive_opts = ArchiveOpts,
relocatable = Relocatable,
rel_app_type = RelAppType,
embedded_app_type = InclAppType,
@@ -133,9 +130,6 @@ do_gen_config(#sys{root_dir = RootDir,
emit(excl_sys_filters, X(ExclSysFiles), reltool_utils:choose_default(excl_sys_filters, Profile, InclDefs), InclDefs) ++
emit(incl_app_filters, X(InclAppFiles), reltool_utils:choose_default(incl_app_filters, Profile, InclDefs), InclDefs) ++
emit(excl_app_filters, X(ExclAppFiles), reltool_utils:choose_default(excl_app_filters, Profile, InclDefs), InclDefs) ++
- emit(incl_archive_filters, X(InclArchiveDirs), ?DEFAULT_INCL_ARCHIVE_FILTERS, InclDefs) ++
- emit(excl_archive_filters, X(ExclArchiveDirs), ?DEFAULT_EXCL_ARCHIVE_FILTERS, InclDefs) ++
- emit(archive_opts, ArchiveOpts, ?DEFAULT_ARCHIVE_OPTS, InclDefs) ++
emit(rel_app_type, RelAppType, ?DEFAULT_REL_APP_TYPE, InclDefs) ++
emit(embedded_app_type, InclAppType, reltool_utils:choose_default(embedded_app_type, Profile, InclDefs), InclDefs) ++
emit(app_file, AppFile, ?DEFAULT_APP_FILE, InclDefs) ++
@@ -147,9 +141,6 @@ do_gen_config(#app{name = Name,
app_file = AppFile,
incl_app_filters = InclAppFiles,
excl_app_filters = ExclAppFiles,
- incl_archive_filters = InclArchiveDirs,
- excl_archive_filters = ExclArchiveDirs,
- archive_opts = ArchiveOpts,
use_selected_vsn = UseSelected,
vsn = Vsn,
active_dir = ActiveDir,
@@ -164,9 +155,6 @@ do_gen_config(#app{name = Name,
emit(app_file, AppFile, undefined, InclDefs),
emit(incl_app_filters, InclAppFiles, undefined, InclDefs),
emit(excl_app_filters, ExclAppFiles, undefined, InclDefs),
- emit(incl_archive_filters, InclArchiveDirs, undefined, InclDefs),
- emit(excl_archive_filters, ExclArchiveDirs, undefined, InclDefs),
- emit(archive_opts, ArchiveOpts, undefined, InclDefs),
if
IsIncl, InclDefs -> [{vsn, Vsn}, {lib_dir, ActiveDir}];
UseSelected =:= vsn -> [{vsn, Vsn}];
@@ -1075,12 +1063,14 @@ check_apps([Mandatory | Names], Apps) ->
check_apps([], _) ->
ok.
-spec_app(#app{name = Name,
+spec_app(#app{label = Label,
+ name = Name,
mods = Mods,
active_dir = SourceDir,
incl_app_filters = AppInclRegexps,
excl_app_filters = AppExclRegexps} = App,
- #sys{incl_app_filters = SysInclRegexps,
+ #sys{root_dir = RootDir,
+ incl_app_filters = SysInclRegexps,
excl_app_filters = SysExclRegexps,
debug_info = SysDebugInfo} = Sys) ->
%% List files recursively
@@ -1104,47 +1094,7 @@ spec_app(#app{name = Name,
ExclRegexps = reltool_utils:default_val(AppExclRegexps, SysExclRegexps),
AppFiles3 = filter_spec(AppFiles2, InclRegexps, ExclRegexps),
- %% Regular top directory and/or archive
- spec_archive(App, Sys, AppFiles3).
-
-spec_archive(#app{label = Label,
- active_dir = SourceDir,
- incl_archive_filters = AppInclArchiveDirs,
- excl_archive_filters = AppExclArchiveDirs,
- archive_opts = AppArchiveOpts},
- #sys{root_dir = RootDir,
- incl_archive_filters = SysInclArchiveDirs,
- excl_archive_filters = SysExclArchiveDirs,
- archive_opts = SysArchiveOpts},
- Files) ->
- InclArchiveDirs =
- reltool_utils:default_val(AppInclArchiveDirs, SysInclArchiveDirs),
- ExclArchiveDirs =
- reltool_utils:default_val(AppExclArchiveDirs, SysExclArchiveDirs),
- ArchiveOpts =
- reltool_utils:default_val(AppArchiveOpts, SysArchiveOpts),
- Match = fun(F) -> match(element(2, F), InclArchiveDirs, ExclArchiveDirs) end,
- case lists:filter(Match, Files) of
- [] ->
- %% Nothing to archive
- [spec_create_dir(RootDir, SourceDir, Label, Files)];
- ArchiveFiles ->
- OptDir =
- case Files -- ArchiveFiles of
- [] ->
- [];
- ExternalFiles ->
- [spec_create_dir(RootDir,
- SourceDir,
- Label,
- ExternalFiles)]
- end,
- ArchiveOpts =
- reltool_utils:default_val(AppArchiveOpts, SysArchiveOpts),
- ArchiveDir =
- spec_create_dir(RootDir, SourceDir, Label, ArchiveFiles),
- [{archive, Label ++ ".ez", ArchiveOpts, [ArchiveDir]} | OptDir]
- end.
+ [spec_create_dir(RootDir, SourceDir, Label, AppFiles3)].
spec_dir(Dir) ->
Base = filename:basename(Dir),
@@ -1172,7 +1122,9 @@ spec_mod(Mod, DebugInfo) ->
keep ->
{copy_file, File};
strip ->
- {strip_beam, File}
+ {strip_beam, File, []};
+ ChunkIds ->
+ {strip_beam, File, ChunkIds}
end.
spec_app_file(#app{name = Name,
@@ -1277,27 +1229,6 @@ do_eval_spec({create_dir, Dir, OldDir, Files},
TargetDir2 = filename:join([TargetDir, Dir]),
reltool_utils:create_dir(TargetDir2),
do_eval_spec(Files, SourceDir2, SourceDir2, TargetDir2);
-do_eval_spec({archive, Archive, Options, Files},
- OrigSourceDir,
- SourceDir,
- TargetDir) ->
- TmpSpec = {create_dir, "tmp", Files},
- TmpDir = filename:join([TargetDir, "tmp"]),
- reltool_utils:create_dir(TmpDir),
- do_eval_spec(Files, OrigSourceDir, SourceDir, TmpDir),
-
- ArchiveFile = filename:join([TargetDir, Archive]),
- Files2 = [element(2, F) || F <- Files],
- Res = zip:create(ArchiveFile, Files2, [{cwd, TmpDir} | Options]),
-
- cleanup_spec(TmpSpec, TargetDir),
- case Res of
- {ok, _} ->
- ok;
- {error, Reason} ->
- reltool_utils:throw_error("create archive ~ts failed: ~tp",
- [ArchiveFile, Reason])
- end;
do_eval_spec({copy_file, File}, _OrigSourceDir, SourceDir, TargetDir) ->
SourceFile = filename:join([SourceDir, File]),
TargetFile = filename:join([TargetDir, File]),
@@ -1315,11 +1246,14 @@ do_eval_spec({write_file, File, Bin},
TargetDir) ->
TargetFile = filename:join([TargetDir, File]),
reltool_utils:write_file(TargetFile, Bin);
-do_eval_spec({strip_beam, File}, _OrigSourceDir, SourceDir, TargetDir) ->
+do_eval_spec({strip_beam, File, ChunkIds},
+ _OrigSourceDir,
+ SourceDir,
+ TargetDir) ->
SourceFile = filename:join([SourceDir, File]),
TargetFile = filename:join([TargetDir, File]),
BeamBin = reltool_utils:read_file(SourceFile),
- {ok, {_, BeamBin2}} = beam_lib:strip(BeamBin),
+ {ok, {_, BeamBin2}} = beam_lib:strip(BeamBin, ChunkIds),
reltool_utils:write_file(TargetFile, BeamBin2).
cleanup_spec(List, TargetDir) when is_list(List) ->
@@ -1334,12 +1268,6 @@ cleanup_spec({create_dir, Dir, _OldDir, Files}, TargetDir) ->
TargetDir2 = filename:join([TargetDir, Dir]),
cleanup_spec(Files, TargetDir2),
file:del_dir(TargetDir2);
-cleanup_spec({archive, Archive, _Options, Files}, TargetDir) ->
- TargetFile = filename:join([TargetDir, Archive]),
- file:delete(TargetFile),
- TmpDir = filename:join([TargetDir, "tmp"]),
- cleanup_spec(Files, TmpDir),
- file:del_dir(TmpDir);
cleanup_spec({copy_file, File}, TargetDir) ->
TargetFile = filename:join([TargetDir, File]),
file:delete(TargetFile);
@@ -1349,7 +1277,7 @@ cleanup_spec({copy_file, NewFile, _OldFile}, TargetDir) ->
cleanup_spec({write_file, File, _}, TargetDir) ->
TargetFile = filename:join([TargetDir, File]),
file:delete(TargetFile);
-cleanup_spec({strip_beam, File}, TargetDir) ->
+cleanup_spec({strip_beam, File, _ChunkIds}, TargetDir) ->
TargetFile = filename:join([TargetDir, File]),
file:delete(TargetFile).
@@ -1392,21 +1320,6 @@ do_filter_spec(Path,
Files2 when is_list(Files2) ->
{true, {create_dir, NewDir, OldDir, Files2}}
end;
-do_filter_spec(Path,
- {archive, Archive, Options, Files},
- InclRegexps,
- ExclRegexps) ->
- case do_filter_spec(Path, Files, InclRegexps, ExclRegexps) of
- [] ->
- case match(Path, InclRegexps, ExclRegexps) of
- true ->
- {true, {archive, Archive, Options, []}};
- false ->
- false
- end;
- Files2 when is_list(Files2) ->
- {true, {archive, Archive, Options, Files2}}
- end;
do_filter_spec(Path, {copy_file, File}, InclRegexps, ExclRegexps) ->
Path2 = opt_join(Path, File),
match(Path2, InclRegexps, ExclRegexps);
@@ -1419,7 +1332,7 @@ do_filter_spec(Path,
do_filter_spec(Path, {write_file, File, _}, InclRegexps, ExclRegexps) ->
Path2 = opt_join(Path, File),
match(Path2, InclRegexps, ExclRegexps);
-do_filter_spec(Path, {strip_beam, File}, InclRegexps, ExclRegexps) ->
+do_filter_spec(Path, {strip_beam, File, _ChunkIds}, InclRegexps, ExclRegexps) ->
Path2 = opt_join(Path, File),
match(Path2, InclRegexps, ExclRegexps).