Mock Version: 1.4.21 Mock Version: 1.4.21 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target riscv64 --nodeps /builddir/build/SPECS/ocaml-obuild.spec'], chrootPath='/var/lib/mock/f33-build-288944-54223/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'en_US.UTF-8'}shell=Falselogger=timeout=432000uid=987gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target riscv64 --nodeps /builddir/build/SPECS/ocaml-obuild.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'en_US.UTF-8'} and shell False Building target platforms: riscv64 Building for target riscv64 setting SOURCE_DATE_EPOCH=1595894400 Wrote: /builddir/build/SRPMS/ocaml-obuild-0.1.10-6.fc33.src.rpm Child return code was: 0 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bb --target riscv64 --nodeps /builddir/build/SPECS/ocaml-obuild.spec'], chrootPath='/var/lib/mock/f33-build-288944-54223/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'en_US.UTF-8'}shell=Falselogger=timeout=432000uid=987gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -bb --target riscv64 --nodeps /builddir/build/SPECS/ocaml-obuild.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'en_US.UTF-8'} and shell False Building target platforms: riscv64 Building for target riscv64 setting SOURCE_DATE_EPOCH=1595894400 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.hQzbsm + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf obuild-obuild-v0.1.10 + /usr/bin/gzip -dc /builddir/build/SOURCES/ocaml-obuild-0.1.10.tar.gz + /usr/bin/tar -xof - + STATUS=0 + '[' 0 -ne 0 ']' + cd obuild-obuild-v0.1.10 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + RPM_EC=0 ++ jobs -p + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.q065ml + umask 022 + cd /builddir/build/BUILD + cd obuild-obuild-v0.1.10 + ./bootstrap 4.11.0+dev2-2020-04-22 Using compat402.ml COMPILING compat COMPILING fugue File "fugue.ml", line 215, characters 18-36: 215 | let compare = Pervasives.compare ^^^^^^^^^^^^^^^^^^ Alert deprecated: module Stdlib.Pervasives Use Stdlib instead. If you need to stay compatible with OCaml < 4.07, you can use the stdlib-shims library: https://github.com/ocaml/stdlib-shims COMPILING filepath COMPILING filesystem BUILDING library obuild_ext.cmxa COMPILING types COMPILING gconf COMPILING filetype COMPILING dag COMPILING libname COMPILING pp File "pp.ml", line 13, characters 26-42: 13 | let of_string s = match String.lowercase s with ^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.lowercase Use String.lowercase_ascii instead. COMPILING expr File "expr.ml", lines 129-131, characters 20-33: 129 | ....................match (string_split ':' v ~limit:2) with 130 | [ _ ] -> ("", v) 131 | | [ p1; rest] -> (p1, rest)... Warning 8: this pattern-matching is not exhaustive. Here is an example of a case that is not matched: (_::_::_::_|[]) File "expr.ml", lines 132-134, characters 23-35: 132 | .......................match (string_split '-' rest ~limit:2) with 133 | [ _ ] -> (p1, rest, "") 134 | | [ p2 ; p3 ] -> (p1, p2, p3)... Warning 8: this pattern-matching is not exhaustive. Here is an example of a case that is not matched: (_::_::_::_|[]) COMPILING utils File "utils.ml", line 70, characters 23-73: 70 | try let _ = List.find (fun n -> Filesystem.exists (n p)) names in true ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Warning 5: this function application is partial, maybe some arguments are missing. COMPILING modname File "modname.ml", line 22, characters 12-26: 22 | else if Char.uppercase x.[0] <> x.[0] then (raise (InvalidModuleName x)) ^^^^^^^^^^^^^^ Alert deprecated: Stdlib.Char.uppercase Use Char.uppercase_ascii instead. File "modname.ml", line 27, characters 15-34: 27 | let to_dir x = String.uncapitalize x ^^^^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.uncapitalize Use String.uncapitalize_ascii instead. File "modname.ml", line 28, characters 27-46: 28 | let to_x ext modname = fn (String.uncapitalize modname ^ ext) ^^^^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.uncapitalize Use String.uncapitalize_ascii instead. File "modname.ml", line 47, characters 34-51: 47 | let of_directory filename = wrap (String.capitalize (fn_to_string filename)) ^^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.capitalize Use String.capitalize_ascii instead. File "modname.ml", line 49, characters 12-29: 49 | try wrap (String.capitalize (Filename.chop_extension (fn_to_string filename))) ^^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.capitalize Use String.capitalize_ascii instead. COMPILING taskdep COMPILING helper COMPILING dagutils COMPILING process COMPILING findlibConf COMPILING scheduler COMPILING prog COMPILING dependencies COMPILING generators COMPILING hier File "hier.ml", line 88, characters 15-34: 88 | let name = String.uncapitalize modname in ^^^^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.uncapitalize Use String.uncapitalize_ascii instead. File "hier.ml", line 194, characters 28-45: 194 | let m = try Modname.wrap (String.capitalize name) ^^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.capitalize Use String.capitalize_ascii instead. COMPILING meta COMPILING metacache COMPILING target COMPILING dist COMPILING project File "project.ml", line 84, characters 8-24: 84 | match String.lowercase value with ^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.lowercase Use String.lowercase_ascii instead. File "project.ml", line 96, characters 53-70: 96 | let wrap_module_nice s = Hier.make [(Modname.wrap (String.capitalize s))] in ^^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.capitalize Use String.capitalize_ascii instead. File "project.ml", line 105, characters 10-26: 105 | match String.lowercase k with ^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.lowercase Use String.lowercase_ascii instead. File "project.ml", line 207, characters 15-31: 207 | match String.lowercase blockName with ^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.lowercase Use String.lowercase_ascii instead. File "project.ml", line 224, characters 13-29: 224 | (match String.lowercase k with ^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.lowercase Use String.lowercase_ascii instead. File "project.ml", line 255, characters 17-33: 255 | match String.lowercase blockName with ^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.lowercase Use String.lowercase_ascii instead. File "project.ml", line 267, characters 13-29: 267 | (match String.lowercase k with ^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.lowercase Use String.lowercase_ascii instead. File "project.ml", line 386, characters 13-29: 386 | (match String.lowercase k with ^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.lowercase Use String.lowercase_ascii instead. File "project.ml", line 477, characters 15-31: 477 | match String.lowercase blockName with ^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.lowercase Use String.lowercase_ascii instead. File "project.ml", line 488, characters 14-30: 488 | match String.lowercase k with ^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.lowercase Use String.lowercase_ascii instead. COMPILING analyze File "analyze.ml", line 110, characters 23-39: 110 | Hashtbl.add h (String.lowercase k) (default "" v) ^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.lowercase Use String.lowercase_ascii instead. COMPILING configure File "configure.ml", line 34, characters 57-73: 34 | add (sprintf "#define PROJECT_FLAG_%s %d\n" (String.uppercase name) (if v then 1 else 0)) ^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.uppercase Use String.uppercase_ascii instead. COMPILING prepare File "prepare.ml", line 379, characters 10-113: 379 | (match file_entry with Hier.FileEntry _ -> SimpleModule | Hier.GeneratedFileEntry _ -> GeneratedModule) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Warning 8: this pattern-matching is not exhaustive. Here is an example of a case that is not matched: DirectoryEntry _ COMPILING buildprogs COMPILING build COMPILING exception BUILDING library obuild.cmxa COMPILING sdist COMPILING doc COMPILING init File "init.ml", line 98, characters 45-62: 98 | let modules = List.map (fun m -> String.capitalize $ strip_ext ~ext:".ml" m) ^^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.capitalize Use String.capitalize_ascii instead. COMPILING help COMPILING install COMPILING path_generated COMPILING main LINKING obuild.bootstrap Configuring obuild-0.1.9... [ 1 of 57] Compiling Ext.Compat [ 2 of 57] Compiling Ext.Fugue File "ext/fugue.ml", line 215, characters 18-36: 215 | let compare = Pervasives.compare ^^^^^^^^^^^^^^^^^^ Alert deprecated: module Stdlib.Pervasives Use Stdlib instead. If you need to stay compatible with OCaml < 4.07, you can use the stdlib-shims library: https://github.com/ocaml/stdlib-shims [ 3 of 57] Intfing Ext.Filepath [ 4 of 57] Compiling Ext.Filepath [ 5 of 57] Intfing Ext.Filesystem [ 6 of 57] Compiling Ext.Filesystem File "ext/filesystem.ml", lines 18-21, characters 11-58: 18 | ...........match (Unix.lstat fent).Unix.st_kind with 19 | | Unix.S_DIR -> rmdir_recursive (Unix.rmdir) fent 20 | | Unix.S_REG -> Unix.unlink fent 21 | | _ -> raise (UnexpectedFileType fent) Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type Unix.file_kind. [ 7 of 57] Packing Ext [ 8 of 57] Linking library dist/build/lib-obuild.ext/obuild_ext.cmxa [ 8 of 57] Linking library dist/build/lib-obuild.ext/obuild_ext.cmxs [ 8 of 57] Linking library dist/build/lib-obuild.ext/obuild_ext.cma [ 9 of 57] Checking dist/build/lib-obuild.ext [10 of 57] Compiling Obuild.Filetype [11 of 57] Compiling Obuild.Gconf [12 of 57] Compiling Obuild.Pp [13 of 57] Compiling Obuild.Dag File "obuild/pp.ml", line 13, characters 26-42: 13 | let of_string s = match String.lowercase s with ^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.lowercase Use String.lowercase_ascii instead. [14 of 57] Compiling Obuild.Expr [15 of 57] Compiling Obuild.Modname File "obuild/modname.ml", line 22, characters 12-26: 22 | else if Char.uppercase x.[0] <> x.[0] then (raise (InvalidModuleName x)) ^^^^^^^^^^^^^^ Alert deprecated: Stdlib.Char.uppercase Use Char.uppercase_ascii instead. File "obuild/modname.ml", line 27, characters 15-34: 27 | let to_dir x = String.uncapitalize x ^^^^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.uncapitalize Use String.uncapitalize_ascii instead. File "obuild/modname.ml", line 28, characters 27-46: 28 | let to_x ext modname = fn (String.uncapitalize modname ^ ext) ^^^^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.uncapitalize Use String.uncapitalize_ascii instead. File "obuild/modname.ml", line 47, characters 34-51: 47 | let of_directory filename = wrap (String.capitalize (fn_to_string filename)) ^^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.capitalize Use String.capitalize_ascii instead. File "obuild/modname.ml", line 49, characters 12-29: 49 | try wrap (String.capitalize (Filename.chop_extension (fn_to_string filename))) ^^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.capitalize Use String.capitalize_ascii instead. [16 of 57] Compiling Obuild.Types [17 of 57] Compiling Obuild.Taskdep File "obuild/expr.ml", lines 129-131, characters 20-33: 129 | ....................match (string_split ':' v ~limit:2) with 130 | [ _ ] -> ("", v) 131 | | [ p1; rest] -> (p1, rest)... Warning 8: this pattern-matching is not exhaustive. Here is an example of a case that is not matched: (_::_::_::_|[]) File "obuild/expr.ml", lines 132-134, characters 23-35: 132 | .......................match (string_split '-' rest ~limit:2) with 133 | [ _ ] -> (p1, rest, "") 134 | | [ p2 ; p3 ] -> (p1, p2, p3)... Warning 8: this pattern-matching is not exhaustive. Here is an example of a case that is not matched: (_::_::_::_|[]) File "obuild/expr.ml", lines 216-222, characters 8-9: 216 | ........(match r with 217 | | Token.RPAREN :: r -> (Paren e, r) 218 | | Token.OR :: _ | Token.AND :: _ -> 219 | let (e, r) = parse_bin_expr e r in 220 | loop e r 221 | | _ -> raise UnbalancedParenthesis; 222 | ) Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type Token.t. File "obuild/expr.ml", lines 209-231, characters 4-82: 209 | ....match l with 210 | | [] -> raise MalformedExpression 211 | | Token.NOT :: r -> 212 | let (e, r) = parse_sub_expr r in ((Not e), r) 213 | | Token.LPAREN :: r -> ... 228 | | Token.LT :: Token.VER v :: r -> (Lt v, r) 229 | | Token.LE :: Token.VER v :: r -> (Le v, r) 230 | | Token.NE :: Token.VER v :: r -> (Ne v, r) 231 | | z -> raise (UnknownExpression (showList "," Token.to_string z)) Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type Token.t. File "obuild/expr.ml", lines 233-236, characters 4-36: 233 | ....match l with 234 | | Token.OR :: r -> let (e, r) = parse_sub_expr r in ((Or (expr,e)), r) 235 | | Token.AND :: r -> let (e, r) = parse_sub_expr r in ((And (expr,e)), r) 236 | | _ -> raise MalformedExpression Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type Token.t. File "obuild/expr.ml", lines 268-271, characters 2-73: 268 | ..match Token.lexer s with 269 | | [] -> raise ExpressionEmpty 270 | | Token.ID name :: constraints -> (name, (parse_constraints name constraints)) 271 | | x :: _ -> raise (InvalidDependencyName (Token.to_string x)) Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type Token.t. [18 of 57] Compiling Obuild.Libname [19 of 57] Compiling Obuild.Utils [20 of 57] Compiling Obuild.Dagutils File "obuild/utils.ml", line 70, characters 23-73: 70 | try let _ = List.find (fun n -> Filesystem.exists (n p)) names in true ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Warning 5: this function application is partial, maybe some arguments are missing. [21 of 57] Compiling Obuild.Helper [22 of 57] Compiling Obuild.Process [23 of 57] Compiling Obuild.Scheduler File "obuild/process.ml", lines 95-97, characters 2-57: 95 | ..match pstat with 96 | | Unix.WEXITED 0 -> Success (Buffer.contents p.out.buf, Buffer.contents p.err.buf, Unix.gettimeofday () -. p.time) 97 | | _ -> Failure (Buffer.contents p.err.buf) Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type Unix.process_status. [24 of 57] Compiling Obuild.FindlibConf [25 of 57] Compiling Obuild.Prog [26 of 57] Compiling Obuild.Meta [27 of 57] Compiling Obuild.Generators File "obuild/generators.ml", line 55, characters 10-101: 55 | let s = match ext with Filetype.FileOther s -> s | _ -> raise (GeneratorNotFound (fp_to_string fp)) in ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type Filetype.t. [28 of 57] Compiling Obuild.Dependencies File "obuild/meta.ml", lines 129-130, characters 27-67: 129 | ...........................match p with Predicate.Neg n -> not (List.mem n constraints) 130 | | _ -> List.mem p constraints....... Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type Predicate.t. File "obuild/meta.ml", lines 139-140, characters 29-63: 139 | .............................match p with Predicate.Neg n -> not (List.mem n preds) 140 | | _ -> List.mem p preds............... Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type Predicate.t. File "obuild/meta.ml", lines 315-319, characters 28-36: 315 | ............................function 316 | | COMMA :: ID s :: xs -> let (l, r) = parse_predicate xs in ((Predicate.of_string s) :: l, r) 317 | | COMMA :: MINUS :: ID s :: xs -> 318 | let (l, r) = parse_predicate xs in ((Predicate.Neg (Predicate.of_string s)) :: l, r) 319 | | xs -> ([], xs) Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type t. File "obuild/meta.ml", lines 324-327, characters 48-95: 324 | ................................................match xs2 with 325 | | RPAREN :: xs3 -> 326 | ((Predicate.of_string s) :: preds, xs3) 327 | | _ -> raise (MetaParseError (name, ("expecting ')' after " ^ field ^ "'s predicate"))) Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type t. File "obuild/meta.ml", lines 330-333, characters 48-95: 330 | ................................................match xs2 with 331 | | RPAREN :: xs3 -> 332 | ((Predicate.Neg (Predicate.of_string s)) :: preds, xs3) 333 | | _ -> raise (MetaParseError (name, ("expecting ')' after " ^ field ^ "'s predicate"))) Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type t. File "obuild/meta.ml", lines 321-335, characters 40-20: 321 | ........................................function 322 | | LPAREN :: RPAREN :: xs -> ([], xs) 323 | | LPAREN :: ID s :: xs -> 324 | (let (preds, xs2) = parse_predicate xs in match xs2 with 325 | | RPAREN :: xs3 -> ... 332 | ((Predicate.Neg (Predicate.of_string s)) :: preds, xs3) 333 | | _ -> raise (MetaParseError (name, ("expecting ')' after " ^ field ^ "'s predicate"))) 334 | ) 335 | | xs -> ([], xs) Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type t. File "obuild/meta.ml", lines 347-354, characters 8-75: 347 | ........match xs2 with 348 | | PLUSEQ :: S reqs :: xs3 349 | | EQ :: S reqs :: xs3 -> 350 | let deps = List.map (fun r -> Libname.of_string r) 351 | $ (List.filter (fun x -> x <> "") $ string_split_pred (fun c -> List.mem c [',';' ']) reqs) 352 | in 353 | parse pkg_name { acc with Pkg.requires = (preds, (List.rev deps)) :: acc.Pkg.requires } xs3 354 | | _ -> raise (MetaParseError (pkg_name, "parsing requires failed")) Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type t. File "obuild/meta.ml", lines 361-365, characters 8-74: 361 | ........match xs2 with 362 | | EQ :: S v :: xs3 -> 363 | let nacc = { acc with Pkg.warning = acc.Pkg.warning @ [(preds, v)] } in 364 | parse pkg_name nacc xs3 365 | | _ -> raise (MetaParseError (pkg_name, "parsing warning failed")) Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type t. File "obuild/meta.ml", lines 370-377, characters 8-74: 370 | ........match xs2 with 371 | | PLUSEQ :: S v :: xs3 -> 372 | let nacc = { acc with Pkg.append_archives = acc.Pkg.append_archives @ [(preds, v)] } in 373 | parse pkg_name nacc xs3 374 | | EQ :: S v :: xs3 -> 375 | let nacc = { acc with Pkg.archives = acc.Pkg.archives @ [(preds, v)] } in 376 | parse pkg_name nacc xs3 377 | | _ -> raise (MetaParseError (pkg_name, "parsing archive failed")) Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type t. File "obuild/meta.ml", lines 382-389, characters 8-73: 382 | ........match xs2 with 383 | | PLUSEQ :: S v :: xs3 -> 384 | let nacc = { acc with Pkg.append_archives = acc.Pkg.append_archives @ [(preds, v)] } in 385 | parse pkg_name nacc xs3 386 | | EQ :: S v :: xs3 -> 387 | let nacc = { acc with Pkg.archives = acc.Pkg.archives @ [(preds, v)] } in 388 | parse pkg_name nacc xs3 389 | | _ -> raise (MetaParseError (pkg_name, "parsing plugin failed")) Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type t. File "obuild/meta.ml", lines 394-397, characters 8-70: 394 | ........match xs2 with 395 | | EQ :: S v :: xs3 -> 396 | parse pkg_name { acc with Pkg.ppx = Some (preds, v)} xs3 397 | | _ -> raise (MetaParseError (pkg_name, "parsing ppx failed")) Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type t. File "obuild/meta.ml", lines 401-405, characters 8-73: 401 | ........match xs2 with 402 | | PLUSEQ :: S v :: xs3 403 | | EQ :: S v :: xs3 -> 404 | parse pkg_name { acc with Pkg.ppxopt = acc.Pkg.ppxopt @ [(preds, v)]} xs3 405 | | _ -> raise (MetaParseError (pkg_name, "parsing ppxopt failed")) Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type t. File "obuild/meta.ml", lines 410-413, characters 26-57: 410 | ..........................function 411 | | RPAREN::zs -> zs 412 | | _::zs -> consume zs 413 | | [] -> failwith "eof in error context" Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type t. File "obuild/meta.ml", lines 415-417, characters 8-61: 415 | ........match consume xs with 416 | | EQ :: S _ :: xs2 -> parse pkg_name acc xs2 417 | | _ -> failwith "parsing error failed" Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type t. File "obuild/meta.ml", lines 421-424, characters 8-74: 421 | ........match xs2 with 422 | | EQ :: S s :: xs3 -> 423 | parse pkg_name { acc with Pkg.linkopts = ((if preds = [] then None else Some preds), s) :: acc.Pkg.linkopts } xs3 424 | | _ -> failwith "parsing linkopts failed, expecting equal" Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type t. File "obuild/meta.ml", lines 337-429, characters 31-97: 337 | ...............................function 338 | | [] -> (acc, []) 339 | | RPAREN :: xs -> (acc, xs) 340 | | ID "package" :: S name :: LPAREN :: xs -> 341 | (let (pkg, xs2) = parse pkg_name (Pkg.make name) xs in ... 426 | | ID stuff :: EQ :: S stuffVal :: xs -> 427 | parse pkg_name { acc with Pkg.assignment = (stuff, stuffVal) :: acc.Pkg.assignment } xs 428 | | x :: xs -> raise (MetaParseError (pkg_name, ("unknown token '" ^ to_string x ^ "' in meta file\n" ^ 429 | (String.concat " " (List.map to_string xs))))) Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type t. File "obuild/meta.ml", line 5, characters 0-11: 5 | open Helper ^^^^^^^^^^^ Warning 33: unused open Helper. File "obuild/meta.ml", line 6, characters 0-10: 6 | open Gconf ^^^^^^^^^^ Warning 33: unused open Gconf. [29 of 57] Compiling Obuild.Hier [30 of 57] Compiling Obuild.Metacache File "obuild/hier.ml", line 88, characters 15-34: 88 | let name = String.uncapitalize modname in ^^^^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.uncapitalize Use String.uncapitalize_ascii instead. File "obuild/hier.ml", line 194, characters 28-45: 194 | let m = try Modname.wrap (String.capitalize name) ^^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.capitalize Use String.capitalize_ascii instead. File "obuild/hier.ml", line 3, characters 0-10: 3 | open Types ^^^^^^^^^^ Warning 33: unused open Types. [31 of 57] Compiling Obuild.Target File "obuild/metacache.ml", line 1, characters 0-9: 1 | open Meta ^^^^^^^^^ Warning 33: unused open Meta. [32 of 57] Compiling Obuild.Project [33 of 57] Compiling Obuild.Dist File "obuild/project.ml", line 84, characters 8-24: 84 | match String.lowercase value with ^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.lowercase Use String.lowercase_ascii instead. File "obuild/project.ml", line 96, characters 53-70: 96 | let wrap_module_nice s = Hier.make [(Modname.wrap (String.capitalize s))] in ^^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.capitalize Use String.capitalize_ascii instead. File "obuild/project.ml", line 105, characters 10-26: 105 | match String.lowercase k with ^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.lowercase Use String.lowercase_ascii instead. File "obuild/project.ml", line 207, characters 15-31: 207 | match String.lowercase blockName with ^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.lowercase Use String.lowercase_ascii instead. File "obuild/project.ml", line 224, characters 13-29: 224 | (match String.lowercase k with ^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.lowercase Use String.lowercase_ascii instead. File "obuild/project.ml", line 255, characters 17-33: 255 | match String.lowercase blockName with ^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.lowercase Use String.lowercase_ascii instead. File "obuild/project.ml", line 267, characters 13-29: 267 | (match String.lowercase k with ^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.lowercase Use String.lowercase_ascii instead. File "obuild/project.ml", line 386, characters 13-29: 386 | (match String.lowercase k with ^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.lowercase Use String.lowercase_ascii instead. File "obuild/project.ml", line 477, characters 15-31: 477 | match String.lowercase blockName with ^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.lowercase Use String.lowercase_ascii instead. File "obuild/project.ml", line 488, characters 14-30: 488 | match String.lowercase k with ^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.lowercase Use String.lowercase_ascii instead. [34 of 57] Compiling Obuild.Analyze [35 of 57] Compiling Obuild.Configure File "obuild/analyze.ml", lines 59-61, characters 8-31: 59 | ........match name with 60 | | Name.Lib lname -> Some lname 61 | | _ -> None Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type Target.Name.t. File "obuild/analyze.ml", line 110, characters 23-39: 110 | Hashtbl.add h (String.lowercase k) (default "" v) ^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.lowercase Use String.lowercase_ascii instead. File "obuild/analyze.ml", lines 184-191, characters 22-35: 184 | ......................match preds with 185 | | [Meta.Predicate.Toploop] -> () 186 | | _ -> 187 | List.iter (fun reqDep -> 188 | verbose Debug " library %s depends on %s\n" (Libname.to_string dep) (Libname.to_string reqDep); 189 | Dag.addEdge (Dependency dep) (Dependency reqDep) depsDag; 190 | loop reqDep 191 | ) reqDeps Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type Meta.Predicate.t. File "obuild/analyze.ml", lines 208-211, characters 10-11: 208 | ..........(match target.target_name with 209 | | Name.Lib l -> Dag.addNode (Dependency l) depsDag; Dag.addEdge (Dependency l) 210 | | _ -> fun _ _ -> () 211 | ) Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type Target.Name.t. [36 of 57] Compiling Obuild.Prepare File "obuild/configure.ml", line 34, characters 57-73: 34 | add (sprintf "#define PROJECT_FLAG_%s %d\n" (String.uppercase name) (if v then 1 else 0)) ^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.uppercase Use String.uppercase_ascii instead. File "obuild/prepare.ml", lines 168-170, characters 8-32: 168 | ........match node with 169 | | Dependency dep -> Some dep 170 | | _ -> None Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type Analyze.dependency_tag. File "obuild/prepare.ml", lines 218-228, characters 17-15: 218 | .................(match Filetype.of_filepath fp with 219 | | Filetype.FileML -> Some (Modname.of_filename f) 220 | | Filetype.FileMLI -> 221 | if (Filesystem.exists (srcDir ((chop_extension f) <.> "ml"))) then 222 | None ... 225 | | Filetype.FileOther s -> if Generators.is_generator_ext s then Some (Modname.of_filename f) 226 | else None 227 | | _ -> None 228 | ) Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type Filetype.t. File "obuild/prepare.ml", line 379, characters 10-113: 379 | (match file_entry with Hier.FileEntry _ -> SimpleModule | Hier.GeneratedFileEntry _ -> GeneratedModule) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Warning 8: this pattern-matching is not exhaustive. Here is an example of a case that is not matched: DirectoryEntry _ File "obuild/prepare.ml", lines 489-493, characters 10-19: 489 | ..........match r with 490 | | CompileModule _ | CompileDirectory _-> 491 | Dag.addEdge (LinkTarget target) r stepsDag; 492 | Dag.addEdge (CheckTarget target) (LinkTarget target) stepsDag; 493 | | _ -> () Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type compile_step. File "obuild/prepare.ml", lines 552-554, characters 6-18: 552 | ......match Hashtbl.find conf.project_dep_data dep with 553 | | Internal -> true 554 | | _ -> false............ Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type Analyze.dep_type. File "obuild/prepare.ml", line 202, characters 9-16: 202 | let (srcPath,srcDir) = ^^^^^^^ Warning 27: unused variable srcPath. File "obuild/prepare.ml", line 233, characters 13-20: 233 | let (srcPath, srcFile, intfFile) = ^^^^^^^ Warning 27: unused variable srcPath. File "obuild/prepare.ml", line 239, characters 37-41: 239 | | Hier.GeneratedFileEntry (path, file, generated) -> ^^^^ Warning 27: unused variable path. [37 of 57] Compiling Obuild.Buildprogs File "obuild/buildprogs.ml", lines 69-73, characters 14-73: 69 | ..............function 70 | | Filetype.FileML -> ext 71 | | Filetype.FileMLI -> Filetype.FileCMI 72 | | _ -> (* It should not happen *) 73 | if buildMode = ByteCode then Filetype.FileCMO else Filetype.FileCMX Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type Filetype.t. File "obuild/buildprogs.ml", line 66, characters 17-23: 66 | let runOcamlPack srcDir dstDir annotMode buildMode packOpt dest modules = ^^^^^^ Warning 27: unused variable srcDir. [38 of 57] Compiling Obuild.Build File "obuild/build.ml", lines 60-72, characters 45-7: 60 | .............................................( 61 | match srcTy with 62 | | Filetype.FileCMX | Filetype.FileCMO -> 63 | let bml = Filetype.replace_extension bdest Filetype.FileML in 64 | let bmli = Filetype.replace_extension bdest Filetype.FileMLI in ... 69 | "Library changed " ^ fp_to_string changedSrc 70 | | _ -> 71 | "Dependencies changed " ^ fp_to_string changedSrc 72 | ) Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type Filetype.t. File "obuild/build.ml", lines 59-80, characters 4-42: 59 | ....match Filetype.of_filename bdest with 60 | | Filetype.FileCMX | Filetype.FileCMO -> ( 61 | match srcTy with 62 | | Filetype.FileCMX | Filetype.FileCMO -> 63 | let bml = Filetype.replace_extension bdest Filetype.FileML in ... 77 | else if bh = bsrc then ("H file " ^ fn_to_string bsrc ^ " changed") 78 | else ("file changed " ^ fp_to_string changedSrc) 79 | | _ -> 80 | fp_to_string changedSrc ^ " changed" Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type Filetype.t. File "obuild/build.ml", line 89, characters 6-63: 89 | match (t,o) with (ByteCode,WithProf) -> false | _ -> true) all_modes ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type Types.ocaml_compiled_type. File "obuild/build.ml", line 89, characters 6-63: 89 | match (t,o) with (ByteCode,WithProf) -> false | _ -> true) all_modes ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type Types.ocaml_compilation_option. File "obuild/build.ml", lines 150-155, characters 20-21: 150 | ....................match e with 151 | Hier.FileEntry (_, f) -> 152 | if (Filetype.of_filepath f) = Filetype.FileMLI then 153 | Some m 154 | else None 155 | | _ -> None Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type Hier.file_entry. File "obuild/build.ml", lines 349-351, characters 22-24: 349 | ......................match compileOpt with 350 | | WithProf -> Meta.Predicate.Gprof :: preds 351 | | _ -> preds Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type Types.ocaml_compilation_option. File "obuild/build.ml", lines 360-368, characters 13-58: 360 | .............match target.target_name with 361 | | Name.Lib libname -> 362 | if plugin then 363 | cstate.compilation_builddir_ml Normal Libname.to_cmxs compileOpt libname 364 | else 365 | cstate.compilation_builddir_ml Normal Libname.to_cmca compiledType compileOpt libname 366 | | _ -> 367 | let outputName = Utils.to_exe_name compileOpt compiledType (Target.get_target_dest_name target) in 368 | cstate.compilation_builddir_ml Normal outputName Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type Target.Name.t. File "obuild/build.ml", lines 481-483, characters 40-51: 481 | ........................................match task with 482 | | CompileC _ -> raise (CCompilationFailed er) 483 | | _ -> raise (CompilationFailed er) Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type Prepare.compile_step. [39 of 57] Compiling Obuild.Exception [40 of 57] Packing Obuild [41 of 57] Linking library dist/build/lib-obuild/obuild.cmxa [41 of 57] Linking library dist/build/lib-obuild/obuild.cmxs [41 of 57] Linking library dist/build/lib-obuild/obuild.cma [42 of 57] Checking dist/build/lib-obuild [43 of 57] Compiling Assimilate_oasis [44 of 57] Compiling Simple [45 of 57] Compiling Install [46 of 57] Compiling Doc File "src/install.ml", lines 21-24, characters 6-35: 21 | ......match Filetype.of_filepath (build_dir f) with 22 | | Filetype.FileCMX | Filetype.FileCMI | Filetype.FileA | Filetype.FileCMXS 23 | | Filetype.FileCMXA | Filetype.FileCMA | Filetype.FileCMT | Filetype.FileCMTI -> true 24 | | _ -> false. Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type Obuild.Filetype.t. File "src/install.ml", lines 27-29, characters 4-31: 27 | ....match Filetype.of_filepath (build_dir f) with 28 | | Filetype.FileEXE -> true 29 | | _ -> false. Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type Obuild.Filetype.t. File "src/install.ml", lines 43-44, characters 31-76: 43 | ...............................match target.target_name with 44 | | Name.Lib _ -> print_target_files target list_lib_files | _ -> ().............. Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type Obuild.Target.Name.t. File "src/install.ml", lines 47-48, characters 31-76: 47 | ...............................match target.target_name with 48 | | Name.Exe _ -> print_target_files target list_exe_files | _ -> ().............. Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type Obuild.Target.Name.t. [47 of 57] Compiling Sdist File "src/doc.ml", line 15, characters 8-16: 15 | let run projFile = ^^^^^^^^ Warning 27: unused variable projFile. [48 of 57] Compiling Help File "src/sdist.ml", lines 28-30, characters 14-38: 28 | ..............match Filetype.of_filepath fpath with 29 | | Filetype.FileML | Filetype.FileMLI -> Filesystem.copy_to_dir fpath dest 30 | | _ -> () Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type Obuild.Filetype.t. File "src/sdist.ml", lines 36-38, characters 12-21: 36 | ............match Filetype.of_filepath fpath with 37 | | Filetype.FileC | Filetype.FileH -> Filesystem.copy_to_dir fpath dest 38 | | _ -> () Warning 4: this pattern-matching is fragile. It will remain exhaustive when constructors are added to type Obuild.Filetype.t. File "src/sdist.ml", line 9, characters 17-27: 9 | let run projFile isSnapshot = ^^^^^^^^^^ Warning 27: unused variable isSnapshot. [49 of 57] Compiling Path_generated [50 of 57] Compiling Init [51 of 57] Linking executable dist/build/obuild-from-oasis/obuild-from-oasis [52 of 57] Linking executable dist/build/obuild-simple/obuild-simple File "src/init.ml", line 98, characters 45-62: 98 | let modules = List.map (fun m -> String.capitalize $ strip_ext ~ext:".ml" m) ^^^^^^^^^^^^^^^^^ Alert deprecated: Stdlib.String.capitalize Use String.capitalize_ascii instead. [53 of 57] Compiling Main [54 of 57] Checking dist/build/obuild-from-oasis [55 of 57] Linking executable dist/build/obuild/obuild [56 of 57] Checking dist/build/obuild-simple [57 of 57] Checking dist/build/obuild real 2m24.162s user 2m11.675s sys 1m15.304s + RPM_EC=0 ++ jobs -p + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.21Rqym + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/ocaml-obuild-0.1.10-6.fc33.riscv64 '!=' / ']' + rm -rf /builddir/build/BUILDROOT/ocaml-obuild-0.1.10-6.fc33.riscv64 ++ dirname /builddir/build/BUILDROOT/ocaml-obuild-0.1.10-6.fc33.riscv64 + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/ocaml-obuild-0.1.10-6.fc33.riscv64 + cd obuild-obuild-v0.1.10 + mkdir -p /builddir/build/BUILDROOT/ocaml-obuild-0.1.10-6.fc33.riscv64/usr/bin + cp dist/build/obuild/obuild dist/build/obuild-simple/obuild-simple /builddir/build/BUILDROOT/ocaml-obuild-0.1.10-6.fc33.riscv64/usr/bin + mkdir -p /builddir/build/BUILDROOT/ocaml-obuild-0.1.10-6.fc33.riscv64/usr/share/man/man1 + help2man --output /builddir/build/BUILDROOT/ocaml-obuild-0.1.10-6.fc33.riscv64/usr/share/man/man1/obuild.1 --name 'parallel, incremental and declarative build system for OCaml' --help-option '' --no-discard-stderr --no-info dist/build/obuild/obuild + help2man --output /builddir/build/BUILDROOT/ocaml-obuild-0.1.10-6.fc33.riscv64/usr/share/man/man1/obuild-simple.1 --name 'simple package build system for OCaml' --version-string ' ' --no-discard-stderr --no-info dist/build/obuild-simple/obuild-simple + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/redhat/brp-ldconfig + /usr/lib/rpm/brp-compress + /usr/lib/rpm/brp-strip /usr/bin/strip + /usr/lib/rpm/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump + /usr/lib/rpm/redhat/brp-strip-lto /usr/bin/strip + /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/redhat/brp-python-bytecompile '' 1 0 + /usr/lib/rpm/brp-python-hardlink + /usr/lib/rpm/redhat/brp-mangle-shebangs Processing files: ocaml-obuild-0.1.10-6.fc33.riscv64 Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.b0fTYm + umask 022 + cd /builddir/build/BUILD + cd obuild-obuild-v0.1.10 + DOCDIR=/builddir/build/BUILDROOT/ocaml-obuild-0.1.10-6.fc33.riscv64/usr/share/doc/ocaml-obuild + export LC_ALL=C + LC_ALL=C + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/ocaml-obuild-0.1.10-6.fc33.riscv64/usr/share/doc/ocaml-obuild + cp -pr README.md /builddir/build/BUILDROOT/ocaml-obuild-0.1.10-6.fc33.riscv64/usr/share/doc/ocaml-obuild + cp -pr OBUILD_SPEC.md /builddir/build/BUILDROOT/ocaml-obuild-0.1.10-6.fc33.riscv64/usr/share/doc/ocaml-obuild + cp -pr DESIGN.md /builddir/build/BUILDROOT/ocaml-obuild-0.1.10-6.fc33.riscv64/usr/share/doc/ocaml-obuild + RPM_EC=0 ++ jobs -p + exit 0 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.yNQtCo + umask 022 + cd /builddir/build/BUILD + cd obuild-obuild-v0.1.10 + LICENSEDIR=/builddir/build/BUILDROOT/ocaml-obuild-0.1.10-6.fc33.riscv64/usr/share/licenses/ocaml-obuild + export LC_ALL=C + LC_ALL=C + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/ocaml-obuild-0.1.10-6.fc33.riscv64/usr/share/licenses/ocaml-obuild + cp -pr LICENSE /builddir/build/BUILDROOT/ocaml-obuild-0.1.10-6.fc33.riscv64/usr/share/licenses/ocaml-obuild + RPM_EC=0 ++ jobs -p + exit 0 Provides: ocaml-obuild = 0.1.10-6.fc33 ocaml-obuild(riscv-64) = 0.1.10-6.fc33 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: ld-linux-riscv64-lp64d.so.1()(64bit) ld-linux-riscv64-lp64d.so.1(GLIBC_2.27)(64bit) libc.so.6()(64bit) libc.so.6(GLIBC_2.27)(64bit) libc.so.6(GLIBC_2.28)(64bit) libdl.so.2()(64bit) libdl.so.2(GLIBC_2.27)(64bit) libm.so.6()(64bit) libm.so.6(GLIBC_2.27)(64bit) rtld(GNU_HASH) Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/ocaml-obuild-0.1.10-6.fc33.riscv64 Wrote: /builddir/build/RPMS/ocaml-obuild-0.1.10-6.fc33.riscv64.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.cAFnio + umask 022 + cd /builddir/build/BUILD + cd obuild-obuild-v0.1.10 + /usr/bin/rm -rf /builddir/build/BUILDROOT/ocaml-obuild-0.1.10-6.fc33.riscv64 + RPM_EC=0 ++ jobs -p + exit 0 Child return code was: 0