diff --git a/src/client/opamAction.ml b/src/client/opamAction.ml index 59629b98307..77e7b6cd626 100644 --- a/src/client/opamAction.ml +++ b/src/client/opamAction.ml @@ -846,7 +846,8 @@ let remove_package_aux | Some build_dir -> build_dir | None -> let dir = OpamPath.Switch.remove root t.switch nv in - if not (OpamFilename.exists_dir dir) then + if not OpamStateConfig.(!r.dryrun) + && not (OpamFilename.exists_dir dir) then OpamFilename.mkdir dir; dir in @@ -907,18 +908,19 @@ let remove_package_aux (* Removes build dir and source cache of package if unneeded *) let cleanup_package_artefacts t nv = - log "Cleaning up artefacts of %a" (slog OpamPackage.to_string) nv; + if OpamStateConfig.(!r.dryrun) then () else + (log "Cleaning up artefacts of %a" (slog OpamPackage.to_string) nv; - let build_dir = OpamPath.Switch.build t.switch_global.root t.switch nv in - if not OpamClientConfig.(!r.keep_build_dir) then OpamFilename.rmdir build_dir; - let remove_dir = OpamPath.Switch.remove t.switch_global.root t.switch nv in - if OpamFilename.exists_dir remove_dir then OpamFilename.rmdir remove_dir; - let dev_dir = OpamSwitchState.source_dir t nv in - if not (OpamPackage.Set.mem nv t.installed) then - (log "Removing the local metadata"; - OpamSwitchAction.remove_metadata t (OpamPackage.Set.singleton nv); - if not (OpamPackage.Set.mem nv t.pinned) then - OpamFilename.rmdir dev_dir) + let build_dir = OpamPath.Switch.build t.switch_global.root t.switch nv in + if not OpamClientConfig.(!r.keep_build_dir) then OpamFilename.rmdir build_dir; + let remove_dir = OpamPath.Switch.remove t.switch_global.root t.switch nv in + if OpamFilename.exists_dir remove_dir then OpamFilename.rmdir remove_dir; + let dev_dir = OpamSwitchState.source_dir t nv in + if not (OpamPackage.Set.mem nv t.installed) then + (log "Removing the local metadata"; + OpamSwitchAction.remove_metadata t (OpamPackage.Set.singleton nv); + if not (OpamPackage.Set.mem nv t.pinned) then + OpamFilename.rmdir dev_dir)) let sources_needed st g = PackageActionGraph.fold_vertex (fun act acc -> diff --git a/src/client/opamClient.ml b/src/client/opamClient.ml index 539759db326..f8126d2397a 100644 --- a/src/client/opamClient.ml +++ b/src/client/opamClient.ml @@ -2427,10 +2427,13 @@ let remove_t ?ask ~autoremove ~force ?(formula=OpamFormula.Empty) atoms t = let nv = OpamPackage.max_version candidates (fst atom) in OpamConsole.note "Forcing removal of (uninstalled) %s" (OpamPackage.to_string nv); - let d = OpamPath.Switch.remove t.switch_global.root t.switch nv in - OpamFilename.rmdir d; - OpamFilename.mkdir d; - OpamProcess.Job.run (OpamAction.remove_package t nv); + if OpamStateConfig.(!r.dryrun) then + OpamProcess.Job.dry_run (OpamAction.remove_package t nv) + else + (let d = OpamPath.Switch.remove t.switch_global.root t.switch nv in + OpamFilename.rmdir d; + OpamFilename.mkdir d; + OpamProcess.Job.run (OpamAction.remove_package t nv)); OpamAction.cleanup_package_artefacts t nv; false with Not_found -> diff --git a/src/client/opamCommands.ml b/src/client/opamCommands.ml index 703e5ab6237..45191efef7b 100644 --- a/src/client/opamCommands.ml +++ b/src/client/opamCommands.ml @@ -3084,21 +3084,22 @@ let switch cli = end; `Ok () | Some `remove, switches -> - OpamGlobalState.with_ `Lock_write @@ fun gt -> - let _gt = - List.fold_left - (fun gt switch -> - let opam_dir = OpamFilename.Op.( - OpamFilename.Dir.of_string switch / OpamSwitch.external_dirname - ) in - if OpamFilename.is_symlink_dir opam_dir then - (OpamFilename.rmdir opam_dir; - gt) - else OpamSwitchCommand.remove gt (OpamSwitch.of_string switch)) - gt - switches - in - `Ok () + if OpamStateConfig.(!r.dryrun) then `Ok () else + OpamGlobalState.with_ `Lock_write @@ fun gt -> + let _gt = + List.fold_left + (fun gt switch -> + let opam_dir = OpamFilename.Op.( + OpamFilename.Dir.of_string switch / OpamSwitch.external_dirname + ) in + if OpamFilename.is_symlink_dir opam_dir then + (OpamFilename.rmdir opam_dir; + gt) + else OpamSwitchCommand.remove gt (OpamSwitch.of_string switch)) + gt + switches + in + `Ok () | Some `reinstall, switch -> let switch = match switch with | [sw] -> OpamSwitch.of_string sw diff --git a/src/client/opamPinCommand.ml b/src/client/opamPinCommand.ml index 4b43a9a6a3d..d0b983243a2 100644 --- a/src/client/opamPinCommand.ml +++ b/src/client/opamPinCommand.ml @@ -66,7 +66,12 @@ exception Fetch_Fail of string let get_source_definition ?version ?subpath ?locked st nv url = let root = st.switch_global.root in - let srcdir = OpamPath.Switch.pinned_package root st.switch nv.name in + let srcdir = + if OpamStateConfig.(!r.dryrun) then + OpamFilename.mk_tmp_dir () + else + OpamPath.Switch.pinned_package root st.switch nv.name + in let fix opam = OpamFile.OPAM.with_url url @@ (match version with @@ -374,7 +379,12 @@ let fetch_all_pins st ?working_dir pins = let command pinned = let { pinned_name = name; pinned_url = url; pinned_subpath = subpath; _ } = pinned in - let srcdir = OpamPath.Switch.pinned_package root st.switch name in + let srcdir = + if OpamStateConfig.(!r.dryrun) then + OpamFilename.mk_tmp_dir () + else + OpamPath.Switch.pinned_package root st.switch name + in let name = OpamPackage.Name.to_string name in OpamProcess.Job.Op.( OpamRepository.pull_tree ~cache_dir ?subpath ?working_dir @@ -620,6 +630,7 @@ and source_pin let opam = copy_files st opam in + if not OpamStateConfig.(!r.dryrun) then OpamFile.OPAM.write_with_preserved_format ?format_from:(OpamPinned.orig_opam_file st name opam) (OpamPath.Switch.Overlay.opam st.switch_global.root st.switch nv.name) @@ -699,11 +710,12 @@ let unpin st names = log "unpin %a" (slog @@ OpamStd.List.concat_map " " OpamPackage.Name.to_string) names; List.fold_left (fun st name -> - OpamFilename.rmdir - (OpamPath.Switch.pinned_package st.switch_global.root st.switch name); - OpamFilename.rmdir - (OpamPath.Switch.Overlay.package - st.switch_global.root st.switch name); + if not OpamStateConfig.(!r.dryrun) then + (OpamFilename.rmdir + (OpamPath.Switch.pinned_package st.switch_global.root st.switch name); + OpamFilename.rmdir + (OpamPath.Switch.Overlay.package + st.switch_global.root st.switch name)); match OpamPinned.package_opt st name with | Some nv -> let pin_str = diff --git a/src/client/opamSolution.ml b/src/client/opamSolution.ml index f616bac3848..b3d78db96f7 100644 --- a/src/client/opamSolution.ml +++ b/src/client/opamSolution.ml @@ -648,7 +648,8 @@ let parallel_apply t try true, OpamPackage.Map.find nv inplace with Not_found -> let dir = OpamPath.Switch.build t.switch_global.root t.switch nv in - if not OpamClientConfig.(!r.reuse_build_dir) then + if not OpamClientConfig.(!r.reuse_build_dir) + && not OpamStateConfig.(!r.dryrun) then OpamFilename.rmdir dir; false, dir in @@ -659,10 +660,12 @@ let parallel_apply t OpamStateConfig.(!r.dev_setup) && found in let source_dir = source_dir nv in - (if OpamFilename.exists_dir source_dir + (if OpamStateConfig.(!r.dryrun) then () else + if OpamFilename.exists_dir source_dir then (if not is_inplace then OpamFilename.copy_dir ~src:source_dir ~dst:build_dir) - else OpamFilename.mkdir build_dir; + else + OpamFilename.mkdir build_dir; OpamAction.prepare_package_source t nv build_dir @@+ function | Some exn -> store_time (); Done (`Exception exn) | None -> @@ -688,7 +691,8 @@ let parallel_apply t store_time (); Done (`Exception exn)) | `Remove nv -> - (if OpamAction.removal_needs_download t nv then + (if not OpamStateConfig.(!r.dryrun) + && OpamAction.removal_needs_download t nv then let d = OpamPath.Switch.remove t.switch_global.root t.switch nv in OpamFilename.rmdir d; let source_dir = source_dir nv in @@ -823,31 +827,32 @@ let parallel_apply t (* 2/ Display errors and finalize *) let save_installed_cache failed = - OpamSwitchState.Installed_cache.save - (OpamPath.Switch.installed_opams_cache t.switch_global.root t.switch) - (OpamPackage.Set.fold (fun nv opams -> - (* NOTE: We need to know whether an action was successful - or not to know which version of the opam file to store - in the case: the previous one if it failed, or the new - one if it succeeded. *) - let pkg_failed = - List.exists (function - | `Fetch ps -> List.for_all (OpamPackage.equal nv) ps - | `Build p | `Change (_, _, p) | `Install p - | `Reinstall p | `Remove p -> OpamPackage.equal nv p) - failed - in - let add_to_opams opam = - let opam = OpamFile.OPAM.with_metadata_dir None opam in - OpamPackage.Map.add nv opam opams - in - if pkg_failed then - match OpamPackage.Map.find_opt nv t.installed_opams with - | None -> opams - | Some opam -> add_to_opams opam - else - add_to_opams (OpamSwitchState.opam t nv)) - t.installed OpamPackage.Map.empty); + if not OpamStateConfig.(!r.dryrun) then + OpamSwitchState.Installed_cache.save + (OpamPath.Switch.installed_opams_cache t.switch_global.root t.switch) + (OpamPackage.Set.fold (fun nv opams -> + (* NOTE: We need to know whether an action was successful + or not to know which version of the opam file to store + in the case: the previous one if it failed, or the new + one if it succeeded. *) + let pkg_failed = + List.exists (function + | `Fetch ps -> List.for_all (OpamPackage.equal nv) ps + | `Build p | `Change (_, _, p) | `Install p + | `Reinstall p | `Remove p -> OpamPackage.equal nv p) + failed + in + let add_to_opams opam = + let opam = OpamFile.OPAM.with_metadata_dir None opam in + OpamPackage.Map.add nv opam opams + in + if pkg_failed then + match OpamPackage.Map.find_opt nv t.installed_opams with + | None -> opams + | Some opam -> add_to_opams opam + else + add_to_opams (OpamSwitchState.opam t nv)) + t.installed OpamPackage.Map.empty); in begin match action_results with | `Exception _ | `Error Aborted -> () diff --git a/src/state/opamSwitchAction.ml b/src/state/opamSwitchAction.ml index 4de422f6eab..3a690010aed 100644 --- a/src/state/opamSwitchAction.ml +++ b/src/state/opamSwitchAction.ml @@ -117,7 +117,8 @@ let add_to_reinstall st ~unpinned_only packages = let reinstall = current_reinstall ++ add_reinst_packages in - if OpamPackage.Set.equal current_reinstall reinstall then () + if OpamStateConfig.(!r.dryrun) + || OpamPackage.Set.equal current_reinstall reinstall then () else if OpamPackage.Set.is_empty reinstall then OpamFilename.remove (OpamFile.filename reinstall_file) else diff --git a/src/state/opamSwitchState.ml b/src/state/opamSwitchState.ml index f17a76eec77..8bb8cb59e46 100644 --- a/src/state/opamSwitchState.ml +++ b/src/state/opamSwitchState.ml @@ -419,7 +419,7 @@ let load lock_kind gt rt switch = let switch_config = {switch_config with invariant = Some invariant; opam_version} in - if lock_kind = `Lock_write then + if lock_kind = `Lock_write && not OpamStateConfig.(!r.dryrun) then OpamFile.Switch_config.write (OpamPath.Switch.switch_config gt.root switch) switch_config; @@ -1285,7 +1285,7 @@ let update_pin nv opam st = { st with sys_packages; available_packages } let do_backup lock st = match lock with - | `Lock_write -> + | `Lock_write when not OpamStateConfig.(!r.dryrun) -> let file = OpamPath.Switch.backup st.switch_global.root st.switch in let previous_selections = selections st in OpamFile.SwitchSelections.write file previous_selections; diff --git a/src/state/opamUpdate.ml b/src/state/opamUpdate.ml index 43efdd590e1..a3293d14900 100644 --- a/src/state/opamUpdate.ml +++ b/src/state/opamUpdate.ml @@ -283,7 +283,24 @@ let pinned_package st ?version ?(autolock=false) ?(working_dir=false) name = Filename.dir_sep ^ OpamFilename.SubPath.to_string sp) subpath)) @@+ fun () -> (* Do the update *) + let srcdir0 = srcdir in + let srcdir, srcdir_find = + if OpamStateConfig.(!r.dryrun) then + let tmpdir = OpamFilename.mk_tmp_dir () in + tmpdir, OpamFilename.SubPath.(tmpdir /? subpath) + else + srcdir, srcdir_find + in fetch_dev_package urlf srcdir ~working_dir ?subpath nv @@+ fun result -> + let result = + match OpamStateConfig.(!r.dryrun), result with + | true, Result () -> + let base f = OpamFilename.Base.of_string (OpamFilename.Dir.to_string f) in + (match OpamRepositoryBackend.get_diff (OpamFilename.Dir.of_string "/") (base srcdir) (base srcdir0) with + | Some _ -> Result () + | None -> Up_to_date ()) + | _, (Result () | Up_to_date () | Not_available _) -> result + in let new_source_opam = OpamPinned.find_opam_file_in_source ?locked name srcdir_find >>= fun (f, lock) -> @@ -332,16 +349,6 @@ let pinned_package st ?version ?(autolock=false) ?(working_dir=false) name = | Some a, Some b -> not (equal_opam a b) in let save_overlay opam = - OpamFilename.mkdir overlay_dir; - let opam_file = OpamPath.Switch.Overlay.opam root st.switch name in - List.iter OpamFilename.remove - OpamPath.Switch.Overlay.([ - OpamFile.filename opam_file; - OpamFile.filename (url root st.switch name); - OpamFile.filename (descr root st.switch name); - ]); - let files_dir = OpamPath.Switch.Overlay.files root st.switch name in - OpamFilename.rmdir files_dir; let opam = OpamFile.OPAM.with_url urlf @@ OpamFile.OPAM.with_name name opam @@ -351,19 +358,30 @@ let pinned_package st ?version ?(autolock=false) ?(working_dir=false) name = then OpamFile.OPAM.with_version version opam else opam in - List.iter (fun (rel_file, content, hash) -> - match content with - | Some (lazy content) when OpamHash.check_string content hash -> - OpamFilename.write (OpamFilename.create files_dir rel_file) content - | None | Some _ -> - OpamConsole.warning "Ignoring file %s with invalid hash" - (OpamFilename.Base.to_string rel_file)) - (OpamFile.OPAM.get_extra_files - ~get_repo_files:(OpamRepositoryState.get_repo_files st.switch_repos) - opam); - OpamFile.OPAM.write opam_file - (OpamFile.OPAM.with_extra_files_opt None opam); - opam + if OpamStateConfig.(!r.dryrun) then opam else + (OpamFilename.mkdir overlay_dir; + let opam_file = OpamPath.Switch.Overlay.opam root st.switch name in + List.iter OpamFilename.remove + OpamPath.Switch.Overlay.([ + OpamFile.filename opam_file; + OpamFile.filename (url root st.switch name); + OpamFile.filename (descr root st.switch name); + ]); + let files_dir = OpamPath.Switch.Overlay.files root st.switch name in + OpamFilename.rmdir files_dir; + List.iter (fun (rel_file, content, hash) -> + match content with + | Some (lazy content) when OpamHash.check_string content hash -> + OpamFilename.write (OpamFilename.create files_dir rel_file) content + | None | Some _ -> + OpamConsole.warning "Ignoring file %s with invalid hash" + (OpamFilename.Base.to_string rel_file)) + (OpamFile.OPAM.get_extra_files + ~get_repo_files:(OpamRepositoryState.get_repo_files st.switch_repos) + opam); + OpamFile.OPAM.write opam_file + (OpamFile.OPAM.with_extra_files_opt None opam); + opam) in match result, new_source_opam with | Result _, Some new_opam diff --git a/tests/reftests/dot-install.test b/tests/reftests/dot-install.test index ac0310cc329..0141ead53c8 100644 --- a/tests/reftests/dot-install.test +++ b/tests/reftests/dot-install.test @@ -66,7 +66,7 @@ bonjour saluton ### OPAMYES=1 ### opam switch create inst --empty -### OPAMPRECISETRACKING=1 OPAMDEBUGSECTIONS="TRACK ACTION" OPAMDEBUG=-1 +### OPAMPRECISETRACKING=1 OPAMDEBUGSECTIONS="TRACK ACTION" OPAMDEBUG=-2 ### opam install nodot The following actions will be performed: === install 1 package @@ -75,6 +75,7 @@ The following actions will be performed: <><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> ACTION download_package: nodot.~dev ACTION prepare_package_source: nodot.~dev at ${BASEDIR}/OPAM/inst/.opam-switch/build/nodot.~dev +TRACK before install: 16 elements scanned in 0.000s ACTION Installing nodot.~dev. ACTION creating ${BASEDIR}/OPAM/inst/share/nodot @@ -100,6 +101,7 @@ The following actions will be performed: <><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> ACTION download_package: dot.~dev ACTION prepare_package_source: dot.~dev at ${BASEDIR}/OPAM/inst/.opam-switch/build/dot.~dev +TRACK before install: 1 elements scanned in 0.000s ACTION Installing dot.~dev. ACTION creating ${BASEDIR}/OPAM/inst/share/dot @@ -127,10 +129,10 @@ ACTION download_package: dot.~dev ACTION prepare_package_source: dot.~dev at ${BASEDIR}/OPAM/inst/.opam-switch/build/dot.~dev ACTION Removing dot.~dev -> removed dot.~dev +TRACK before install: 3 elements scanned in 0.000s Installing dot.~dev. -TRACK after install: 0 elements, 0 added, scanned in 0.000s +TRACK after install: 3 elements, 0 added, scanned in 0.000s -> installed dot.~dev -ACTION Cleaning up artefacts of dot.~dev Done. ### ocaml cat.ml inst dot ==> dot installed file @@ -167,8 +169,6 @@ The following actions will be simulated: <><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> ACTION Removing dot.~dev -> removed dot.~dev -ACTION Cleaning up artefacts of dot.~dev -ACTION Removing the local metadata Done. ### ocaml cat.ml inst dot ==> dot installed file @@ -195,8 +195,9 @@ The following actions will be simulated: <><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> ACTION download_package: dot.~dev ACTION prepare_package_source: dot.~dev at ${BASEDIR}/OPAM/inst/.opam-switch/build/dot.~dev +TRACK before install: 1 elements scanned in 0.000s Installing dot.~dev. -TRACK after install: 0 elements, 0 added, scanned in 0.000s +TRACK after install: 1 elements, 0 added, scanned in 0.000s -> installed dot.~dev Done. ### ocaml cat.ml inst dot diff --git a/tests/reftests/dryrun.test b/tests/reftests/dryrun.test new file mode 100644 index 00000000000..34156c24bc9 --- /dev/null +++ b/tests/reftests/dryrun.test @@ -0,0 +1,1480 @@ +N0REP0 +### ::: Setup +### OPAMYES=1 +### OPAMDEBUGSECTIONS="SYSTEM FILE(config) FILE(repos-config) FILE(repo) FILE(switch-config) FILE(switch-state) FILE(opam) FILE(environment) FILE(package-ve" +### rm -rf OPAM +### +default-invariant: ["foo"] +default-compiler: ["foo"] +### opam init --config opamrc --bypass-check -na --bare ./REPO +Configuring from ${BASEDIR}/opamrc and then from built-in defaults. + +<><> Fetching repository information ><><><><><><><><><><><><><><><><><><><><><> +[default] Initialised +### +opam-version: "2.0" +build: [ "touch" name ] +install: [ "cp" name "%{lib}%/" ] +remove: [ "rm" name "%{lib}%/" ] +### +opam-version: "2.0" +build: [ "touch" "bar" ] +install: [ "cp" "bar" "%{lib}%/" ] +remove: [ "true" ] +### +n=$1 +v=$2 +arch=$3 +basedir=$(printf '%s' "$BASEDIR" | sed 's/\\/\\\\/g') +cat << EOF >> REPO/packages/$n/$n.$v/opam +url { + src:"file://$basedir/$arch" + checksum: "md5=$(openssl md5 $arch | cut -f2 -d' ')" + } +EOF +### +case "$1" in + init) + cp -R OPAM initial + ;; + unpack) + rm -rf OPAM + cp -R initial OPAM + rm -rf nip + rm -rf REPO/packages/nip + ;; + *) + echo "init or unpack" + exit 2 + ;; +esac +### +rm -rf previous +cp -R OPAM previous +rm -rf previous-local +opamd="$1"/_opam +if test -d $opamd; then + cp -R $opamd previous-local +fi +### +.git +log +### +set -u +previous=$1 +current=$2 +drcode=0 +# If pathes are long, there is a diff between OSes +for d in $previous $current; do + if test -f $d/config; then + sed -i.bak 's/: /:\n /' $d/config + rm -f $d/config.bak + fi +done +diff --exclude-from="x-diff" -r $previous $current || drcode=$? +find $previous -name .git | cut -f 2- -d '/' | sort > gitprevious +find $current -name .git | cut -f 2- -d '/' | sort > gitcurrent +gitDiff=$(diff gitprevious gitcurrent) +gdrcode=$? +if [ "$gdrcode" -ne 0 ]; then + echo "diff gitPrevious gitCurrent" + echo "$gitDiff" +fi +test "$(( $drcode + $gdrcode ))" -eq 0 +### +sh post-check.sh previous OPAM +### +set -u +opamd="$1"/_opam +if test -d previous-local; then + if test -d $opamd; then + sh post-check.sh previous-local $opamd + else + echo "Local switch disappeared *woosh*" + find previous-local | sort + exit 3 + fi +else + if test -d $opamd; then + echo "No previous local switch, current contains:" + find $opamd | sort + exit 2 + fi +fi +### sh initial.sh init +### ::: Tests +### :I: Switch +### :I:1: Switch creation +### :I:1:a: Global switch creation +### sh pre.sh +### OPAMVERBOSE=2 OPAMDEBUG=-5 opam switch create dr --dry-run foo | sed-cmd touch cp +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/lock (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/config.lock (none => write) +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +FILE(repos-config) Read ${BASEDIR}/OPAM/repo/repos-config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (read => none) + +<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><><><> +Switch invariant: ["foo"] + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +Processing 2/3: [foo: touch foo] ++ touch "foo" (CWD=${BASEDIR}/OPAM/dr/.opam-switch/build/foo.1) +-> compiled foo.1 +Processing 3/3: [foo: cp foo] ++ cp "foo" "${BASEDIR}/OPAM/dr/lib/" (CWD=${BASEDIR}/OPAM/dr/.opam-switch/build/foo.1) +Installing foo.1. +-> installed foo.1 +Done. +SYSTEM LOCK ${BASEDIR}/OPAM/config.lock (write => none) +SYSTEM LOCK (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/lock (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/config.lock (none => none) +### sh post.sh +### :I:1:b: Local switch creation +### sh initial.sh unpack +### opam switch create dr foo + +<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><><><> +Switch invariant: ["foo"] + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +-> installed foo.1 +Done. +### sh pre.sh +### OPAMVERBOSE=2 OPAMDEBUG=-5 opam switch create ./nip --dry-run | sed-cmd touch cp +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/lock (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/config.lock (none => write) +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +FILE(repos-config) Read ${BASEDIR}/OPAM/repo/repos-config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (read => none) + +<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><><><> +Switch invariant: ["foo"] + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +Processing 2/3: [foo: touch foo] ++ touch "foo" (CWD=${BASEDIR}/nip/_opam/.opam-switch/build/foo.1) +-> compiled foo.1 +Processing 3/3: [foo: cp foo] ++ cp "foo" "${BASEDIR}/nip/_opam/lib/" (CWD=${BASEDIR}/nip/_opam/.opam-switch/build/foo.1) +Installing foo.1. +-> installed foo.1 +Done. +SYSTEM LOCK ${BASEDIR}/OPAM/config.lock (write => none) +SYSTEM LOCK (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/lock (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/config.lock (none => none) +### sh post.sh +### sh post-local.sh nip +### :I:1:c: Local switch creation with package +### sh initial.sh unpack +### +opam-version: "2.0" +### +tauto +### opam switch create dr foo + +<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><><><> +Switch invariant: ["foo"] + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +-> installed foo.1 +Done. +### sh pre.sh +### OPAMVERBOSE=2 OPAMDEBUG=-5 opam switch create ./nip --dry-run +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/lock (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/config.lock (none => write) +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +FILE(repos-config) Read ${BASEDIR}/OPAM/repo/repos-config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (read => none) +FILE(opam) Read ${BASEDIR}/nip/nip.opam in 0.000s + +<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><><><> +Switch invariant: ["foo"] +The following actions will be simulated: +=== install 1 package + - install nip dev (pinned) + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +Installing nip.dev. +-> installed nip.dev +Done. +SYSTEM LOCK ${BASEDIR}/OPAM/config.lock (write => none) +SYSTEM LOCK (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/lock (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/config.lock (none => none) +### sh post.sh +### sh post-local.sh nip +### :I:1:d: Local switch creation with deps only +### sh initial.sh unpack +### +opam-version: "2.0" +depends: "bar" +### +tauto +### opam switch create dr foo + +<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><><><> +Switch invariant: ["foo"] + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +-> installed foo.1 +Done. +### sh pre.sh +### OPAMVERBOSE=2 OPAMDEBUG=-5 opam switch create ./nip --deps-only --dry-run | sed-cmd touch cp +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/lock (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/config.lock (none => write) +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +FILE(repos-config) Read ${BASEDIR}/OPAM/repo/repos-config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (read => none) +FILE(opam) Read ${BASEDIR}/nip/nip.opam in 0.000s + +<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><><><> +Switch invariant: ["foo"] +The following actions will be simulated: +=== install 1 package + - install bar 1 [required by nip] + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +Processing 2/3: [bar: touch bar] ++ touch "bar" (CWD=${BASEDIR}/nip/_opam/.opam-switch/build/bar.1) +-> compiled bar.1 +Processing 3/3: [bar: cp bar] ++ cp "bar" "${BASEDIR}/nip/_opam/lib/" (CWD=${BASEDIR}/nip/_opam/.opam-switch/build/bar.1) +Installing bar.1. +-> installed bar.1 +Done. +SYSTEM LOCK ${BASEDIR}/OPAM/config.lock (write => none) +SYSTEM LOCK (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/lock (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/config.lock (none => none) +### sh post.sh +### sh post-local.sh nip +### :I:2: Switch removal +### :I:2:a: Global switch removal +### sh initial.sh unpack +### +tauto +### opam switch create dr foo + +<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><><><> +Switch invariant: ["foo"] + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +-> installed foo.1 +Done. +### sh pre.sh +### OPAMVERBOSE=2 OPAMDEBUG=-5 opam switch remove dr --dry-run | unordered + +### sh post.sh +### :I:2:b: Local switch removal +### sh initial.sh unpack +### +tauto +### opam switch create ./nip + +<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><><><> +Switch invariant: ["foo"] + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +-> installed foo.1 +Done. +### sh pre.sh nip +### OPAMVERBOSE=2 OPAMDEBUG=-5 OPAMDEBUGSECTIONS="" opam switch remove ./nip --dry-run | unordered +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +CLI Parsing CLI version 2.6 +### sh post.sh +### sh post-local.sh nip +### :II: Package installation +### sh initial.sh unpack +### opam switch create dr foo + +<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><><><> +Switch invariant: ["foo"] + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +-> installed foo.1 +Done. +### sh pre.sh +### OPAMVERBOSE=2 OPAMDEBUG=-5 opam install bar --dry-run | sed-cmd touch cp +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/lock (none => read) +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +FILE(repos-config) Read ${BASEDIR}/OPAM/repo/repos-config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (read => none) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (none => write) +FILE(switch-config) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-config in 0.000s +FILE(switch-state) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-state in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (read => none) +The following actions will be simulated: +=== install 1 package + - install bar 1 + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +Processing 2/3: [bar: touch bar] ++ touch "bar" (CWD=${BASEDIR}/OPAM/dr/.opam-switch/build/bar.1) +-> compiled bar.1 +Processing 3/3: [bar: cp bar] ++ cp "bar" "${BASEDIR}/OPAM/dr/lib/" (CWD=${BASEDIR}/OPAM/dr/.opam-switch/build/bar.1) +Installing bar.1. +-> installed bar.1 +Done. +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (write => none) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/lock (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/config.lock (none => none) +### sh post.sh +### :III: Package removal +### sh initial.sh unpack +### opam switch create dr foo + +<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><><><> +Switch invariant: ["foo"] + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +-> installed foo.1 +Done. +### opam install bar +The following actions will be performed: +=== install 1 package + - install bar 1 + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +-> installed bar.1 +Done. +### sh pre.sh +### OPAMVERBOSE=2 OPAMDEBUG=-5 opam remove bar --dry-run | sed-cmd true +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/lock (none => read) +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +FILE(repos-config) Read ${BASEDIR}/OPAM/repo/repos-config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (read => none) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (none => write) +FILE(switch-config) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-config in 0.000s +FILE(switch-state) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-state in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (read => none) +The following actions will be simulated: +=== remove 1 package + - remove bar 1 + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +Processing 2/2: [bar: true] ++ true (CWD=${BASEDIR}/OPAM/dr/.opam-switch/remove/bar.1) +-> removed bar.1 +Done. +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (write => none) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/lock (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/config.lock (none => none) +### sh post.sh +### :III:a: Package removal --force +### sh initial.sh unpack +### opam switch create dr --empty +### opam install foo +The following actions will be performed: +=== install 1 package + - install foo 1 + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +-> installed foo.1 +Done. +### sh pre.sh +### OPAMVERBOSE=2 OPAMDEBUG=-5 opam remove bar --force --dry-run | sed-cmd true +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/lock (none => read) +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +FILE(repos-config) Read ${BASEDIR}/OPAM/repo/repos-config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (read => none) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (none => write) +FILE(switch-config) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-config in 0.000s +FILE(switch-state) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-state in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (read => none) +[NOTE] Forcing removal of (uninstalled) bar.1 +-> removed bar.1 +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (write => none) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/lock (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/config.lock (none => none) +### sh post.sh +### :IV: Package reinstall +### sh initial.sh unpack +### opam switch create dr foo + +<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><><><> +Switch invariant: ["foo"] + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +-> installed foo.1 +Done. +### opam install bar +The following actions will be performed: +=== install 1 package + - install bar 1 + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +-> installed bar.1 +Done. +### sh pre.sh +### OPAMVERBOSE=2 OPAMDEBUG=-5 opam reinstall bar --dry-run | sed-cmd touch true cp +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/lock (none => read) +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +FILE(repos-config) Read ${BASEDIR}/OPAM/repo/repos-config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (read => none) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (none => write) +FILE(switch-config) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-config in 0.000s +FILE(switch-state) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-state in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (read => none) +The following actions will be simulated: +=== recompile 1 package + - recompile bar 1 + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +Processing 2/4: [bar: touch bar] ++ touch "bar" (CWD=${BASEDIR}/OPAM/dr/.opam-switch/build/bar.1) +-> compiled bar.1 +Processing 3/4: [bar: true] ++ true (CWD=${BASEDIR}/OPAM/dr/.opam-switch/remove/bar.1) +-> removed bar.1 +Processing 4/4: [bar: cp bar] ++ cp "bar" "${BASEDIR}/OPAM/dr/lib/" (CWD=${BASEDIR}/OPAM/dr/.opam-switch/build/bar.1) +Installing bar.1. +-> installed bar.1 +Done. +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (write => none) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/lock (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/config.lock (none => none) +### sh post.sh +### :V: Update +### sh initial.sh unpack +### sh pre.sh +### OPAMVERBOSE=2 OPAMDEBUG=-5 opam update --dry-run +opam: unknown option '--dry-run'. +Usage: opam update [OPTION]… [NAMES]… +Try 'opam update --help' or 'opam --help' for more information. +# Return code 2 # +### sh post.sh +### :VI: Upgrade +### sh initial.sh unpack +### +opam-version: "2.0" +build: [ "touch" "bar" ] +install: [ "cp" "bar" "%{lib}%/" ] +### opam switch create dr foo + +<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><><><> +Switch invariant: ["foo"] + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +-> installed foo.1 +Done. +### opam install bar.1 +The following actions will be performed: +=== install 1 package + - install bar 1 + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +-> installed bar.1 +Done. +### sh pre.sh +### OPAMVERBOSE=2 OPAMDEBUG=-5 opam upgrade --dry-run | sed-cmd touch true cp +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/lock (none => read) +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +FILE(repos-config) Read ${BASEDIR}/OPAM/repo/repos-config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (read => none) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (none => write) +FILE(switch-config) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-config in 0.000s +FILE(switch-state) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-state in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (read => none) +The following actions will be simulated: +=== upgrade 1 package + - upgrade bar 1 to 2 + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +Processing 3/5: [bar: touch bar] ++ touch "bar" (CWD=${BASEDIR}/OPAM/dr/.opam-switch/build/bar.2) +-> compiled bar.2 +Processing 4/5: [bar: true] ++ true (CWD=${BASEDIR}/OPAM/dr/.opam-switch/remove/bar.1) +-> removed bar.1 +Processing 5/5: [bar: cp bar] ++ cp "bar" "${BASEDIR}/OPAM/dr/lib/" (CWD=${BASEDIR}/OPAM/dr/.opam-switch/build/bar.2) +Installing bar.2. +-> installed bar.2 +Done. +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (write => none) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/lock (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/config.lock (none => none) +### sh post.sh +### :VII: Pinning +### :VII:1: Pinning with no action +### sh initial.sh unpack +### +opam-version: "2.0" +### +tauto +### opam switch create dr foo + +<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><><><> +Switch invariant: ["foo"] + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +-> installed foo.1 +Done. +### sh pre.sh +### OPAMVERBOSE=2 OPAMDEBUG=-5 opam pin ./nip --no-action --dry-run | sed-cmd rsync | grep -v '- ./' +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +FILE(opam) Read ${BASEDIR}/nip/nip.opam in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/lock (none => read) +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +FILE(repos-config) Read ${BASEDIR}/OPAM/repo/repos-config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (read => none) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (none => write) +FILE(switch-config) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-config in 0.000s +FILE(switch-state) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-state in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (read => none) +SYSTEM mkdir ${OPAMTMP} +SYSTEM mkdir ${OPAMTMP} +Processing 1/1: [nip: rsync] ++ rsync "-rLptgoDvc" "--exclude" ".git" "--exclude" "_darcs" "--exclude" ".hg" "--exclude" ".#*" "--exclude" "_opam*" "--exclude" "_build" "--delete" "--delete-excluded" "${BASEDIR}/nip/" "${OPAMTMP}" +- a-file +- nip.opam +- +SYSTEM rmdir ${OPAMTMP} +[NOTE] Package nip does not exist in opam repositories registered in the current switch. +SYSTEM rmdir ${BASEDIR}/OPAM/dr/.opam-switch/overlay/nip +nip is now pinned to file://${BASEDIR}/nip (version dev) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (write => none) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/lock (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/config.lock (none => none) +### sh post.sh +### :VII:2: Pinning directory with opam file +### :VII:2:a: Pinning directory with opam file, no vcs +### sh initial.sh unpack +### +opam-version: "2.0" +### +tauto +### opam switch create dr foo + +<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><><><> +Switch invariant: ["foo"] + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +-> installed foo.1 +Done. +### sh pre.sh +### OPAMVERBOSE=2 OPAMDEBUG=-5 opam pin ./nip --dry-run | sed-cmd rsync | grep -v '- ./' +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +FILE(opam) Read ${BASEDIR}/nip/nip.opam in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/lock (none => read) +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +FILE(repos-config) Read ${BASEDIR}/OPAM/repo/repos-config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (read => none) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (none => write) +FILE(switch-config) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-config in 0.000s +FILE(switch-state) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-state in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (read => none) +SYSTEM mkdir ${OPAMTMP} +SYSTEM mkdir ${OPAMTMP} +Processing 1/1: [nip: rsync] ++ rsync "-rLptgoDvc" "--exclude" ".git" "--exclude" "_darcs" "--exclude" ".hg" "--exclude" ".#*" "--exclude" "_opam*" "--exclude" "_build" "--delete" "--delete-excluded" "${BASEDIR}/nip/" "${OPAMTMP}" +- a-file +- nip.opam +- +SYSTEM rmdir ${OPAMTMP} +[NOTE] Package nip does not exist in opam repositories registered in the current switch. +SYSTEM rmdir ${BASEDIR}/OPAM/dr/.opam-switch/overlay/nip +nip is now pinned to file://${BASEDIR}/nip (version dev) + +The following actions will be simulated: +=== install 1 package + - install nip dev (pinned) + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +Installing nip.dev. +-> installed nip.dev +Done. +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (write => none) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/lock (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/config.lock (none => none) +### sh post.sh +### :VII:2:b: Pinning directory with opam file, vcs +### sh initial.sh unpack +### +opam-version: "2.0" +### +tauto +### git -C nip init -q --initial-branch=master +### git -C nip config core.autocrlf false +### git -C nip add -A +### git -C nip commit -qm init' +### opam switch create dr foo + +<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><><><> +Switch invariant: ["foo"] + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +-> installed foo.1 +Done. +### sh pre.sh +### OPAMVERBOSE=2 OPAMDEBUG=-5 opam pin ./nip --dry-run | sed-cmd git | grep -v "HEAD is now" | grep -v "(mkdir|copy|copydir|rm) .*\\.git." ++ git "symbolic-ref" "--quiet" "--short" "HEAD" (CWD=${BASEDIR}/nip) +- master +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +FILE(opam) Read ${BASEDIR}/nip/nip.opam in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/lock (none => read) +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +FILE(repos-config) Read ${BASEDIR}/OPAM/repo/repos-config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (read => none) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (none => write) +FILE(switch-config) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-config in 0.000s +FILE(switch-state) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-state in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (read => none) +SYSTEM mkdir ${OPAMTMP} +SYSTEM mkdir ${OPAMTMP} +Processing 1/1: [nip: git] ++ git "init" (CWD=${OPAMTMP}) +- Initialized empty Git repository in ${OPAMTMP}/.git/ ++ git "config" "--local" "fetch.prune" "false" (CWD=${OPAMTMP}) ++ git "config" "--local" "diff.noprefix" "false" (CWD=${OPAMTMP}) ++ git "config" "--local" "core.autocrlf" "false" (CWD=${OPAMTMP}) ++ git "config" "--local" "core.eol" "lf" (CWD=${OPAMTMP}) ++ git "config" "--local" "color.ui" "false" (CWD=${OPAMTMP}) ++ git "remote" "add" "origin" "file://${BASEDIR}/nip" (CWD=${OPAMTMP}) ++ git "remote" "set-url" "origin" "file://${BASEDIR}/nip" (CWD=${OPAMTMP}) ++ git "fetch" "-q" "file://${BASEDIR}/nip" "--update-shallow" "+master:refs/remotes/opam-ref-master" (CWD=${OPAMTMP}) ++ git "reset" "--hard" "refs/remotes/opam-ref-master" "--" (CWD=${OPAMTMP}) ++ git "clean" "-fdx" (CWD=${OPAMTMP}) +SYSTEM rmdir ${OPAMTMP} +[NOTE] Package nip does not exist in opam repositories registered in the current switch. +SYSTEM rmdir ${BASEDIR}/OPAM/dr/.opam-switch/overlay/nip +nip is now pinned to git+file://${BASEDIR}/nip#master (version dev) + +The following actions will be simulated: +=== install 1 package + - install nip dev (pinned) + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +Installing nip.dev. +-> installed nip.dev +Done. +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (write => none) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/lock (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/config.lock (none => none) +### sh post.sh +### :VII:3: Pinning directory with no opam file, no vcs +### sh initial.sh unpack +### +opam-version: "2.0" +### +tauto +### opam switch create dr foo + +<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><><><> +Switch invariant: ["foo"] + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +-> installed foo.1 +Done. +### sh pre.sh +### OPAMVERBOSE=2 OPAMDEBUG=-5 opam pin nip ./nip --dry-run | sed-cmd rsync | grep -v '- ./' +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/lock (none => read) +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +FILE(repos-config) Read ${BASEDIR}/OPAM/repo/repos-config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (read => none) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (none => write) +FILE(switch-config) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-config in 0.000s +FILE(switch-state) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-state in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (read => none) +SYSTEM mkdir ${OPAMTMP} +SYSTEM mkdir ${OPAMTMP} +[nip.1: rsync] ++ rsync "-rLptgoDvc" "--exclude" ".git" "--exclude" "_darcs" "--exclude" ".hg" "--exclude" ".#*" "--exclude" "_opam*" "--exclude" "_build" "--delete" "--delete-excluded" "${BASEDIR}/nip/" "${OPAMTMP}" +- a-file +- +SYSTEM rmdir ${OPAMTMP} +[nip.1] synchronised (file://${BASEDIR}/nip) +SYSTEM rmdir ${BASEDIR}/OPAM/dr/.opam-switch/overlay/nip +nip is now pinned to file://${BASEDIR}/nip (version 1) + +The following actions will be simulated: +=== install 1 package + - install nip 1 (pinned) + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +Installing nip.1. +-> installed nip.1 +Done. +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (write => none) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/lock (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/config.lock (none => none) +### sh post.sh +### :VII:4: Version pinning +### sh initial.sh unpack +### +opam-version: "2.0" +### +tauto +### tar czf nip.tgz -C nip nip.opam a-file +### +opam-version: "2.0" +### sh add-url.sh nip 1 nip.tgz +### opam update + +<><> Updating package repositories ><><><><><><><><><><><><><><><><><><><><><><> +[default] synchronised from file://${BASEDIR}/REPO +Now run 'opam upgrade' to apply any package updates. +### opam switch create dr foo + +<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><><><> +Switch invariant: ["foo"] + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +-> installed foo.1 +Done. +### sh pre.sh +### OPAMVERBOSE=2 OPAMDEBUG=-5 opam pin nip 1 --dry-run | sed-cmd rsync +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/lock (none => read) +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +FILE(repos-config) Read ${BASEDIR}/OPAM/repo/repos-config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (read => none) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (none => write) +FILE(switch-config) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-config in 0.000s +FILE(switch-state) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-state in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (read => none) +nip is now pinned to version 1 + +The following actions will be simulated: +=== install 1 package + - install nip 1 (pinned) + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +Installing nip.1. +-> installed nip.1 +Done. +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (write => none) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/lock (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/config.lock (none => none) +### sh post.sh +### :VII:5: Pinning with pin-depends +### sh initial.sh unpack +### +opam-version: "2.0" +### +opam-version: "2.0" +depends: "nip-d" +### +basedir=$(printf '%s' "$BASEDIR" | sed 's/\\/\\\\/g') +cat << EOF >> nip/nip.opam +pin-depends: [ "nip-d.1" "file://${basedir}/nip-d" ] +EOF +### sh add-pin-depend.sh +### +tauto +### opam switch create dr foo + +<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><><><> +Switch invariant: ["foo"] + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +-> installed foo.1 +Done. +### sh pre.sh +### OPAMVERBOSE=2 OPAMDEBUG=-5 opam pin ./nip --dry-run | sed-cmd rsync | grep -v '- ./' +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +FILE(opam) Read ${BASEDIR}/nip/nip.opam in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/lock (none => read) +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +FILE(repos-config) Read ${BASEDIR}/OPAM/repo/repos-config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (read => none) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (none => write) +FILE(switch-config) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-config in 0.000s +FILE(switch-state) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-state in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (read => none) +SYSTEM mkdir ${OPAMTMP} +SYSTEM mkdir ${OPAMTMP} +Processing 1/1: [nip: rsync] ++ rsync "-rLptgoDvc" "--exclude" ".git" "--exclude" "_darcs" "--exclude" ".hg" "--exclude" ".#*" "--exclude" "_opam*" "--exclude" "_build" "--delete" "--delete-excluded" "${BASEDIR}/nip/" "${OPAMTMP}" +- a-file +- nip.opam +- +SYSTEM rmdir ${OPAMTMP} +[NOTE] Package nip does not exist in opam repositories registered in the current switch. +The following additional pinnings are required by nip.dev: + - nip-d.1 at file://${BASEDIR}/nip-d +Pin and install them? [Y/n] y +SYSTEM mkdir ${OPAMTMP} +SYSTEM mkdir ${OPAMTMP} +Processing 1/1: [nip-d: rsync] ++ rsync "-rLptgoDvc" "--exclude" ".git" "--exclude" "_darcs" "--exclude" ".hg" "--exclude" ".#*" "--exclude" "_opam*" "--exclude" "_build" "--delete" "--delete-excluded" "${BASEDIR}/nip-d/" "${OPAMTMP}" +- nip-d.opam +- +SYSTEM rmdir ${OPAMTMP} +[NOTE] Package nip-d does not exist in opam repositories registered in the current switch. +SYSTEM mkdir ${OPAMTMP} +SYSTEM mkdir ${OPAMTMP} +[nip-d.1: rsync] ++ rsync "-rLptgoDvc" "--exclude" ".git" "--exclude" "_darcs" "--exclude" ".hg" "--exclude" ".#*" "--exclude" "_opam*" "--exclude" "_build" "--delete" "--delete-excluded" "${BASEDIR}/nip-d/" "${OPAMTMP}" +- nip-d.opam +- +SYSTEM rmdir ${OPAMTMP} +[nip-d.1] synchronised (file://${BASEDIR}/nip-d) +FILE(opam) Read ${OPAMTMP}/nip-d.opam in 0.000s +SYSTEM rmdir ${BASEDIR}/OPAM/dr/.opam-switch/overlay/nip-d +nip-d is now pinned to file://${BASEDIR}/nip-d (version 1) +SYSTEM rmdir ${BASEDIR}/OPAM/dr/.opam-switch/overlay/nip +nip is now pinned to file://${BASEDIR}/nip (version dev) + +The following actions will be simulated: +=== install 2 packages + - install nip dev (pinned) + - install nip-d 1 (pinned) + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +Installing nip-d.1. +-> installed nip-d.1 +Installing nip.dev. +-> installed nip.dev +Done. +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (write => none) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/lock (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/config.lock (none => none) +### sh post.sh +### :VII:6: Install a pinned package with working-dir that have changes +### sh initial.sh unpack +### +opam-version: "2.0" +### +tauto +### git -C nip init -q --initial-branch=master +### git -C nip config core.autocrlf false +### git -C nip add -A +### git -C nip commit -qm init' +### opam switch create dr foo + +<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><><><> +Switch invariant: ["foo"] + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +-> installed foo.1 +Done. +### opam pin ./nip +[NOTE] Package nip does not exist in opam repositories registered in the current switch. +nip is now pinned to git+file://${BASEDIR}/nip#master (version dev) + +The following actions will be performed: +=== install 1 package + - install nip dev (pinned) + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +-> retrieved nip.dev (no changes) +-> installed nip.dev +Done. +### +otuat +### sh pre.sh +### OPAMVERBOSE=2 OPAMDEBUG=-5 opam install nip --working-dir --dry-run | sed-cmd git rsync | grep -v "(mkdir|copy|copydir|rm) .*\\.git." | 'rsync-files[^ "]*' -> 'rsync-files-xxx' | grep -v "HEAD is now" | unordered +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/lock (none => read) +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +FILE(repos-config) Read ${BASEDIR}/OPAM/repo/repos-config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (read => none) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (none => write) +FILE(switch-config) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-config in 0.000s +FILE(switch-state) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-state in 0.000s +FILE(opam) Read ${BASEDIR}/OPAM/dr/.opam-switch/overlay/nip/opam in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (read => none) + +<><> Synchronising pinned packages ><><><><><><><><><><><><><><><><><><><><><><> +FILE(opam) Read ${BASEDIR}/OPAM/dr/.opam-switch/overlay/nip/opam in 0.000s +FILE(opam) Read ${BASEDIR}/OPAM/dr/.opam-switch/sources/nip/nip.opam in 0.000s +SYSTEM mkdir ${OPAMTMP} +SYSTEM mkdir ${OPAMTMP} +Processing 1/1: [nip.dev: git] ++ git "init" (CWD=${OPAMTMP}) +- Initialized empty Git repository in ${OPAMTMP}/.git/ ++ git "config" "--local" "fetch.prune" "false" (CWD=${OPAMTMP}) ++ git "config" "--local" "diff.noprefix" "false" (CWD=${OPAMTMP}) ++ git "config" "--local" "core.autocrlf" "false" (CWD=${OPAMTMP}) ++ git "config" "--local" "core.eol" "lf" (CWD=${OPAMTMP}) ++ git "config" "--local" "color.ui" "false" (CWD=${OPAMTMP}) ++ git "remote" "add" "origin" "file://${BASEDIR}/nip" (CWD=${OPAMTMP}) ++ git "remote" "set-url" "origin" "file://${BASEDIR}/nip" (CWD=${OPAMTMP}) ++ git "fetch" "-q" "file://${BASEDIR}/nip" "--update-shallow" "+master:refs/remotes/opam-ref-master" (CWD=${OPAMTMP}) ++ git "reset" "--hard" "refs/remotes/opam-ref-master" "--" (CWD=${OPAMTMP}) ++ git "clean" "-fdx" (CWD=${OPAMTMP}) ++ rsync "-rLptgoDvc" "--files-from" "${BASEDIR}/OPAM/log/rsync-files-xxx" "--exclude" ".git" "--exclude" "_darcs" "--exclude" ".hg" "--exclude" ".#*" "--exclude" "_opam*" "--exclude" "_build" "--delete" "--delete-excluded" "${BASEDIR}/nip/" "${OPAMTMP}" +- another-file +- +SYSTEM rm ${BASEDIR}/OPAM/log/rsync-files-xxx +SYSTEM rmdir ${OPAMTMP} +[nip.dev] synchronised (git+file://${BASEDIR}/nip#master) +SYSTEM read /${OPAMTMP}/nip.opam +SYSTEM read /${BASEDIR}/OPAM/dr/.opam-switch/sources/nip/nip.opam +SYSTEM read /${OPAMTMP}/another-file +SYSTEM read /${OPAMTMP}/a-file +SYSTEM read /${BASEDIR}/OPAM/dr/.opam-switch/sources/nip/a-file +SYSTEM write ${BASEDIR}/OPAM/log/patch-xxx + +The following actions will be simulated: +=== recompile 1 package + - recompile nip dev (pinned) + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +-> removed nip.dev +Installing nip.dev. +-> installed nip.dev +Done. +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (write => none) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/lock (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/config.lock (none => none) +### sh post.sh +### :VII:7: Pin removal +### sh initial.sh unpack +### +opam-version: "2.0" +### +tauto +### opam switch create dr foo + +<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><><><> +Switch invariant: ["foo"] + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +-> installed foo.1 +Done. +### opam pin ./nip +[NOTE] Package nip does not exist in opam repositories registered in the current switch. +nip is now pinned to file://${BASEDIR}/nip (version dev) + +The following actions will be performed: +=== install 1 package + - install nip dev (pinned) + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +-> retrieved nip.dev (file://${BASEDIR}/nip) +-> installed nip.dev +Done. +### sh pre.sh +### OPAMVERBOSE=2 OPAMDEBUG=-5 opam pin remove ./nip --dry-run | unordered +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/lock (none => read) +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +FILE(repos-config) Read ${BASEDIR}/OPAM/repo/repos-config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (read => none) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (none => write) +FILE(switch-config) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-config in 0.000s +FILE(switch-state) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-state in 0.000s +FILE(opam) Read ${BASEDIR}/OPAM/dr/.opam-switch/overlay/nip/opam in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (read => none) +Ok, nip is no longer pinned to file://${BASEDIR}/nip (version dev) +The following actions will be simulated: +=== remove 1 package + - remove nip dev + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +-> removed nip.dev +Done. +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (write => none) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/lock (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/config.lock (none => none) +### sh post.sh +### :VII:8: Pin triggered by install +### sh initial.sh unpack +### +opam-version: "2.0" +### +tauto +### opam switch create dr foo + +<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><><><> +Switch invariant: ["foo"] + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +-> installed foo.1 +Done. +### sh pre.sh +### OPAMVERBOSE=2 OPAMDEBUG=-5 opam install ./nip --dry-run +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/lock (none => read) +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +FILE(repos-config) Read ${BASEDIR}/OPAM/repo/repos-config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (read => none) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (none => write) +FILE(switch-config) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-config in 0.000s +FILE(switch-state) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-state in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (read => none) +FILE(opam) Read ${BASEDIR}/nip/nip.opam in 0.000s +The following actions will be simulated: +=== install 1 package + - install nip dev (pinned) + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +Installing nip.dev. +-> installed nip.dev +Done. +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (write => none) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/lock (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/config.lock (none => none) +### sh post.sh +### :VII:9: Install local package with deps-only +### sh initial.sh unpack +### +opam-version: "2.0" +depends: "bar" +### +tauto +### opam switch create dr foo + +<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><><><> +Switch invariant: ["foo"] + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +-> installed foo.1 +Done. +### sh pre.sh +### OPAMVERBOSE=2 OPAMDEBUG=-5 opam install ./nip --deps-only --dry-run | sed-cmd touch cp +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/lock (none => read) +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +FILE(repos-config) Read ${BASEDIR}/OPAM/repo/repos-config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (read => none) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (none => write) +FILE(switch-config) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-config in 0.000s +FILE(switch-state) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-state in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (read => none) +FILE(opam) Read ${BASEDIR}/nip/nip.opam in 0.000s +The following actions will be simulated: +=== install 1 package + - install bar 1 [required by nip] + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +Processing 2/3: [bar: touch bar] ++ touch "bar" (CWD=${BASEDIR}/OPAM/dr/.opam-switch/build/bar.1) +-> compiled bar.1 +Processing 3/3: [bar: cp bar] ++ cp "bar" "${BASEDIR}/OPAM/dr/lib/" (CWD=${BASEDIR}/OPAM/dr/.opam-switch/build/bar.1) +Installing bar.1. +-> installed bar.1 +Done. +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (write => none) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/lock (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/config.lock (none => none) +### sh post.sh +### :VII:10: Update of pin source triggered by install command +### :VII:10:a: Update of pin source triggered by install command, with changes +### :VII:10:a:1: Update of path-pin source triggered by install command, with changes +### sh initial.sh unpack +### +opam-version: "2.0" +build: [ "touch" "a-file" ] +### +tauto +### opam switch create dr foo + +<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><><><> +Switch invariant: ["foo"] + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +-> installed foo.1 +Done. +### opam pin ./nip +[NOTE] Package nip does not exist in opam repositories registered in the current switch. +nip is now pinned to file://${BASEDIR}/nip (version dev) + +The following actions will be performed: +=== install 1 package + - install nip dev (pinned) + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +-> retrieved nip.dev (file://${BASEDIR}/nip) +-> installed nip.dev +Done. +### +opam-version: "2.0" +build: [ "touch" "a-file-snd" ] +depends: "bar" +### +tautond +### sh pre.sh +### OPAMVERBOSE=2 OPAMDEBUG=-5 opam install nip --dry-run | sed-cmd rsync touch cp | grep -v '- ./' | unordered +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/lock (none => read) +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +FILE(repos-config) Read ${BASEDIR}/OPAM/repo/repos-config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (read => none) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (none => write) +FILE(switch-config) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-config in 0.000s +FILE(switch-state) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-state in 0.000s +FILE(opam) Read ${BASEDIR}/OPAM/dr/.opam-switch/overlay/nip/opam in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (read => none) + +<><> Synchronising pinned packages ><><><><><><><><><><><><><><><><><><><><><><> +FILE(opam) Read ${BASEDIR}/OPAM/dr/.opam-switch/overlay/nip/opam in 0.000s +FILE(opam) Read ${BASEDIR}/OPAM/dr/.opam-switch/sources/nip/nip.opam in 0.000s +SYSTEM mkdir ${OPAMTMP} +SYSTEM mkdir ${OPAMTMP} +Processing 1/1: [nip.dev: rsync] ++ rsync "-rLptgoDvc" "--exclude" ".git" "--exclude" "_darcs" "--exclude" ".hg" "--exclude" ".#*" "--exclude" "_opam*" "--exclude" "_build" "--delete" "--delete-excluded" "${BASEDIR}/nip/" "${OPAMTMP}" +- a-file +- a-file-snd +- nip.opam +- +SYSTEM rmdir ${OPAMTMP} +[nip.dev] synchronised (file://${BASEDIR}/nip) +SYSTEM read /${OPAMTMP}/nip.opam +SYSTEM read /${BASEDIR}/OPAM/dr/.opam-switch/sources/nip/nip.opam +SYSTEM read /${OPAMTMP}/a-file-snd +SYSTEM read /${OPAMTMP}/a-file +SYSTEM read /${BASEDIR}/OPAM/dr/.opam-switch/sources/nip/a-file +SYSTEM write ${BASEDIR}/OPAM/log/patch-xxx +[nip] Installing new package description from upstream file://${BASEDIR}/nip + +The following actions will be simulated: +=== recompile 1 package + - recompile nip dev (pinned) +=== install 1 package + - install bar 1 [required by nip] + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +Processing 3/7: [bar: touch bar] ++ touch "bar" (CWD=${BASEDIR}/OPAM/dr/.opam-switch/build/bar.1) +-> compiled bar.1 +-> removed nip.dev +Processing 5/7: [bar: cp bar] ++ cp "bar" "${BASEDIR}/OPAM/dr/lib/" (CWD=${BASEDIR}/OPAM/dr/.opam-switch/build/bar.1) +Installing bar.1. +-> installed bar.1 +Processing 6/7: [nip: touch a-file-snd] ++ touch "a-file-snd" (CWD=${BASEDIR}/OPAM/dr/.opam-switch/build/nip.dev) +-> compiled nip.dev +Installing nip.dev. +-> installed nip.dev +Done. +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (write => none) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/lock (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/config.lock (none => none) +### sh post.sh +### opam upgrade | unordered +Already up-to-date. +Nothing to do. +### :VII:10:a:2: Update of git-pin source triggered by install command, with changes +### sh initial.sh unpack +### +opam-version: "2.0" +build: [ "touch" "a-file" ] +### +tauto +### git -C nip init -q --initial-branch=master +### git -C nip config core.autocrlf false +### git -C nip add -A +### git -C nip commit -qm init' +### opam switch create dr foo + +<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><><><> +Switch invariant: ["foo"] + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +-> installed foo.1 +Done. +### opam pin ./nip +[NOTE] Package nip does not exist in opam repositories registered in the current switch. +nip is now pinned to git+file://${BASEDIR}/nip#master (version dev) + +The following actions will be performed: +=== install 1 package + - install nip dev (pinned) + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +-> retrieved nip.dev (no changes) +-> installed nip.dev +Done. +### +opam-version: "2.0" +build: [ "touch" "a-file-snd" ] +depends: "bar" +### +tautond +### git -C nip add -A +### git -C nip commit -qm 'update' +### sh pre.sh +### OPAMVERBOSE=2 OPAMDEBUG=-5 opam install nip --dry-run | sed-cmd git touch cp | grep -v '- ./' | grep -v "HEAD is now" | grep -v "(mkdir|copy|copydir|rm) .*\\.git." | unordered +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/lock (none => read) +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +FILE(repos-config) Read ${BASEDIR}/OPAM/repo/repos-config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (read => none) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (none => write) +FILE(switch-config) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-config in 0.000s +FILE(switch-state) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-state in 0.000s +FILE(opam) Read ${BASEDIR}/OPAM/dr/.opam-switch/overlay/nip/opam in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (read => none) + +<><> Synchronising pinned packages ><><><><><><><><><><><><><><><><><><><><><><> +FILE(opam) Read ${BASEDIR}/OPAM/dr/.opam-switch/overlay/nip/opam in 0.000s +FILE(opam) Read ${BASEDIR}/OPAM/dr/.opam-switch/sources/nip/nip.opam in 0.000s +Processing 1/1: ++ git "symbolic-ref" "--quiet" "--short" "HEAD" (CWD=${BASEDIR}/nip) +- master ++ git "diff" "--no-ext-diff" "--quiet" "HEAD" (CWD=${BASEDIR}/nip) ++ git "ls-files" "--others" "--exclude-standard" (CWD=${BASEDIR}/nip) +SYSTEM mkdir ${OPAMTMP} +SYSTEM mkdir ${OPAMTMP} +Processing 1/1: [nip.dev: git] ++ git "init" (CWD=${OPAMTMP}) +- Initialized empty Git repository in ${OPAMTMP}/.git/ ++ git "config" "--local" "fetch.prune" "false" (CWD=${OPAMTMP}) ++ git "config" "--local" "diff.noprefix" "false" (CWD=${OPAMTMP}) ++ git "config" "--local" "core.autocrlf" "false" (CWD=${OPAMTMP}) ++ git "config" "--local" "core.eol" "lf" (CWD=${OPAMTMP}) ++ git "config" "--local" "color.ui" "false" (CWD=${OPAMTMP}) ++ git "remote" "add" "origin" "file://${BASEDIR}/nip" (CWD=${OPAMTMP}) ++ git "remote" "set-url" "origin" "file://${BASEDIR}/nip" (CWD=${OPAMTMP}) ++ git "fetch" "-q" "file://${BASEDIR}/nip" "--update-shallow" "+master:refs/remotes/opam-ref-master" (CWD=${OPAMTMP}) ++ git "reset" "--hard" "refs/remotes/opam-ref-master" "--" (CWD=${OPAMTMP}) ++ git "clean" "-fdx" (CWD=${OPAMTMP}) +SYSTEM rmdir ${OPAMTMP} +[nip.dev] synchronised (git+file://${BASEDIR}/nip#master) +SYSTEM read /${OPAMTMP}/nip.opam +SYSTEM read /${BASEDIR}/OPAM/dr/.opam-switch/sources/nip/nip.opam +SYSTEM read /${OPAMTMP}/a-file-snd +SYSTEM read /${OPAMTMP}/a-file +SYSTEM read /${BASEDIR}/OPAM/dr/.opam-switch/sources/nip/a-file +SYSTEM write ${BASEDIR}/OPAM/log/patch-xxx +[nip] Installing new package description from upstream git+file://${BASEDIR}/nip#master + +The following actions will be simulated: +=== recompile 1 package + - recompile nip dev (pinned) +=== install 1 package + - install bar 1 [required by nip] + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +Processing 3/7: [bar: touch bar] ++ touch "bar" (CWD=${BASEDIR}/OPAM/dr/.opam-switch/build/bar.1) +-> compiled bar.1 +-> removed nip.dev +Processing 5/7: [bar: cp bar] ++ cp "bar" "${BASEDIR}/OPAM/dr/lib/" (CWD=${BASEDIR}/OPAM/dr/.opam-switch/build/bar.1) +Installing bar.1. +-> installed bar.1 +Processing 6/7: [nip: touch a-file-snd] ++ touch "a-file-snd" (CWD=${BASEDIR}/OPAM/dr/.opam-switch/build/nip.dev) +-> compiled nip.dev +Installing nip.dev. +-> installed nip.dev +Done. +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (write => none) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/lock (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/config.lock (none => none) +### sh post.sh +### opam upgrade | unordered +Already up-to-date. +Nothing to do. +### :VII:10:b: Update of pin source triggered by install command, with no changes +### :VII:10:b:1: Update of path-pin source triggered by install command, with no changes +### sh initial.sh unpack +### +opam-version: "2.0" +build: [ "touch" "a-file" ] +### +tauto +### opam switch create dr foo + +<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><><><> +Switch invariant: ["foo"] + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +-> installed foo.1 +Done. +### opam pin ./nip +[NOTE] Package nip does not exist in opam repositories registered in the current switch. +nip is now pinned to file://${BASEDIR}/nip (version dev) + +The following actions will be performed: +=== install 1 package + - install nip dev (pinned) + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +-> retrieved nip.dev (file://${BASEDIR}/nip) +-> installed nip.dev +Done. +### sh pre.sh +### OPAMVERBOSE=2 OPAMDEBUG=-5 opam install nip --dry-run | sed-cmd rsync | grep -v '- ./' +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/lock (none => read) +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +FILE(repos-config) Read ${BASEDIR}/OPAM/repo/repos-config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (read => none) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (none => write) +FILE(switch-config) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-config in 0.000s +FILE(switch-state) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-state in 0.000s +FILE(opam) Read ${BASEDIR}/OPAM/dr/.opam-switch/overlay/nip/opam in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (read => none) + +<><> Synchronising pinned packages ><><><><><><><><><><><><><><><><><><><><><><> +FILE(opam) Read ${BASEDIR}/OPAM/dr/.opam-switch/overlay/nip/opam in 0.000s +FILE(opam) Read ${BASEDIR}/OPAM/dr/.opam-switch/sources/nip/nip.opam in 0.000s +SYSTEM mkdir ${OPAMTMP} +SYSTEM mkdir ${OPAMTMP} +Processing 1/1: [nip.dev: rsync] ++ rsync "-rLptgoDvc" "--exclude" ".git" "--exclude" "_darcs" "--exclude" ".hg" "--exclude" ".#*" "--exclude" "_opam*" "--exclude" "_build" "--delete" "--delete-excluded" "${BASEDIR}/nip/" "${OPAMTMP}" +- a-file +- nip.opam +- +SYSTEM rmdir ${OPAMTMP} +[nip.dev] synchronised (file://${BASEDIR}/nip) +SYSTEM read /${OPAMTMP}/nip.opam +SYSTEM read /${BASEDIR}/OPAM/dr/.opam-switch/sources/nip/nip.opam +SYSTEM read /${OPAMTMP}/a-file +SYSTEM read /${BASEDIR}/OPAM/dr/.opam-switch/sources/nip/a-file + +[NOTE] Package nip is already installed (current version is dev). +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (write => none) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/lock (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/config.lock (none => none) +### sh post.sh +### opam upgrade | unordered +Already up-to-date. +Nothing to do. +### :VII:10:b:2: Update of git-pin source triggered by install command, with no changes +### sh initial.sh unpack +### +opam-version: "2.0" +build: [ "touch" "a-file" ] +### +tauto +### git -C nip init -q --initial-branch=master +### git -C nip config core.autocrlf false +### git -C nip add -A +### git -C nip commit -qm init' +### opam switch create dr foo + +<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><><><> +Switch invariant: ["foo"] + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +-> installed foo.1 +Done. +### opam pin ./nip +[NOTE] Package nip does not exist in opam repositories registered in the current switch. +nip is now pinned to git+file://${BASEDIR}/nip#master (version dev) + +The following actions will be performed: +=== install 1 package + - install nip dev (pinned) + +<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> +-> retrieved nip.dev (no changes) +-> installed nip.dev +Done. +### sh pre.sh +### OPAMVERBOSE=2 OPAMDEBUG=-5 opam install nip --dry-run | sed-cmd git | grep -v '- ./' | grep -v "HEAD is now" +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/lock (none => read) +FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s +FILE(repos-config) Read ${BASEDIR}/OPAM/repo/repos-config in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/state-magicv.cache (read => none) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (none => write) +FILE(switch-config) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-config in 0.000s +FILE(switch-state) Read ${BASEDIR}/OPAM/dr/.opam-switch/switch-state in 0.000s +FILE(opam) Read ${BASEDIR}/OPAM/dr/.opam-switch/overlay/nip/opam in 0.000s +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (none => read) +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/packages/cache (read => none) + +<><> Synchronising pinned packages ><><><><><><><><><><><><><><><><><><><><><><> +FILE(opam) Read ${BASEDIR}/OPAM/dr/.opam-switch/overlay/nip/opam in 0.000s +FILE(opam) Read ${BASEDIR}/OPAM/dr/.opam-switch/sources/nip/nip.opam in 0.000s +Processing 1/1: ++ git "symbolic-ref" "--quiet" "--short" "HEAD" (CWD=${BASEDIR}/nip) +- master ++ git "diff" "--no-ext-diff" "--quiet" "HEAD" (CWD=${BASEDIR}/nip) ++ git "ls-files" "--others" "--exclude-standard" (CWD=${BASEDIR}/nip) +SYSTEM mkdir ${OPAMTMP} +SYSTEM mkdir ${OPAMTMP} +Processing 1/1: [nip.dev: git] ++ git "init" (CWD=${OPAMTMP}) +- Initialized empty Git repository in ${OPAMTMP}/.git/ ++ git "config" "--local" "fetch.prune" "false" (CWD=${OPAMTMP}) ++ git "config" "--local" "diff.noprefix" "false" (CWD=${OPAMTMP}) ++ git "config" "--local" "core.autocrlf" "false" (CWD=${OPAMTMP}) ++ git "config" "--local" "core.eol" "lf" (CWD=${OPAMTMP}) ++ git "config" "--local" "color.ui" "false" (CWD=${OPAMTMP}) ++ git "remote" "add" "origin" "file://${BASEDIR}/nip" (CWD=${OPAMTMP}) ++ git "remote" "set-url" "origin" "file://${BASEDIR}/nip" (CWD=${OPAMTMP}) ++ git "fetch" "-q" "file://${BASEDIR}/nip" "--update-shallow" "+master:refs/remotes/opam-ref-master" (CWD=${OPAMTMP}) ++ git "reset" "--hard" "refs/remotes/opam-ref-master" "--" (CWD=${OPAMTMP}) ++ git "clean" "-fdx" (CWD=${OPAMTMP}) +SYSTEM rmdir ${OPAMTMP} +[nip.dev] synchronised (git+file://${BASEDIR}/nip#master) +SYSTEM read /${OPAMTMP}/nip.opam +SYSTEM read /${BASEDIR}/OPAM/dr/.opam-switch/sources/nip/nip.opam +SYSTEM read /${OPAMTMP}/a-file +SYSTEM read /${BASEDIR}/OPAM/dr/.opam-switch/sources/nip/a-file + +[NOTE] Package nip is already installed (current version is dev). +SYSTEM LOCK ${BASEDIR}/OPAM/dr/.opam-switch/lock (write => none) +SYSTEM LOCK ${BASEDIR}/OPAM/repo/lock (none => none) +SYSTEM LOCK ${BASEDIR}/OPAM/config.lock (none => none) +### sh post.sh +### opam upgrade | unordered +Already up-to-date. +Nothing to do. diff --git a/tests/reftests/dune.inc b/tests/reftests/dune.inc index c7e2640d96d..f7841ea2573 100644 --- a/tests/reftests/dune.inc +++ b/tests/reftests/dune.inc @@ -566,6 +566,27 @@ %{targets} (run ./run.exe %{exe:../../src/client/opamMain.exe.exe} %{dep:download.test} %{read-lines:testing-env})))) +(rule + (alias reftest-dryrun) + (enabled_if (and (or (<> %{env:TESTALL=1} 0) (= %{env:TESTN0REP0=0} 1)))) + (action + (diff dryrun.test dryrun.out))) + +(alias + (name reftest) + (enabled_if (and (or (<> %{env:TESTALL=1} 0) (= %{env:TESTN0REP0=0} 1)))) + (deps (alias reftest-dryrun))) + +(rule + (targets dryrun.out) + (deps root-N0REP0) + (enabled_if (and (or (<> %{env:TESTALL=1} 0) (= %{env:TESTN0REP0=0} 1)))) + (package opam) + (action + (with-stdout-to + %{targets} + (run ./run.exe %{exe:../../src/client/opamMain.exe.exe} %{dep:dryrun.test} %{read-lines:testing-env})))) + (rule (alias reftest-effectively-equal) (enabled_if (and (or (<> %{env:TESTALL=1} 0) (= %{env:TESTN0REP0=0} 1))))