Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

opam install . --with-test sandboxing issue #4153

Closed
argent-smith opened this issue Apr 22, 2020 · 5 comments
Closed

opam install . --with-test sandboxing issue #4153

argent-smith opened this issue Apr 22, 2020 · 5 comments

Comments

@argent-smith
Copy link

argent-smith commented Apr 22, 2020

Hi. I'm trying to build/install my package locally with opam install . --with-test. The build fails with the following message:

#=== ERROR while compiling rpiterm.v0.2.7 =====================================#
# context     2.0.7 | macos/x86_64 | ocaml-base-compiler.4.09.1 | pinned(git+file:///Users/paul/Development/own/rpiterm#master#1c43d07d)
# path        ~/Development/own/rpiterm/_opam/.opam-switch/build/rpiterm.v0.2.7
# command     ~/.opam/opam-init/hooks/sandbox.sh build dune runtest
# exit-code   1
# env-file    ~/.opam/log/rpiterm-47042-78e2f1.env
# output-file ~/.opam/log/rpiterm-47042-78e2f1.out
### output ###
# Error: Error: mkdir: _build: Operation not permitted

opam config report:

# opam config report
# opam-version      2.0.7
# self-upgrade      no
# system            arch=x86_64 os=macos os-distribution=homebrew os-version=10.14.6
# solver            builtin-mccs+glpk
# install-criteria  -removed,-count[version-lag,request],-count[version-lag,changed],-changed
# upgrade-criteria  -removed,-count[version-lag,solution],-new
# jobs              11
# repositories      1 (http) (default repo at 8fb98114)
# pinned            2 (git)
# current-switch    /Users/paul/Development/own/rpiterm
[WARNING] PATH contains '.' : this is a likely cause of trouble.

Also, I noted that each opam env command adds '.' to the path:

~/Development/own/opam_docker/x86_64 · (master)
⟩ opam env | grep " PATH"
set -gx PATH ':/Users/paul/.opam/default/bin' '.' '/usr/local/texlive/2019/bin/x86_64-darwin' '/Users/paul/bin' '/Users/paul/Library/Python/3.7/bin' '/Users/paul/.rbenv/shims' '/Users/paul/.cargo/bin' '/usr/local/bin' '/usr/bin' '/bin' '/usr/sbin' '/sbin' '/usr/local/MacGPG2/bin' '/Library/TeX/texbin' '/Applications/Wireshark.app/Contents/MacOS' '/usr/local/go/bin' '/Users/paul/go/bin' '/usr/local/sbin';

~/Development/own/opam_docker/x86_64 · (master)
⟩ opam env | grep " PATH"
set -gx PATH ':/Users/paul/.opam/default/bin' '.' '.' '/usr/local/texlive/2019/bin/x86_64-darwin' '/Users/paul/bin' '/Users/paul/Library/Python/3.7/bin' '/Users/paul/.rbenv/shims' '/Users/paul/.cargo/bin' '/usr/local/bin' '/usr/bin' '/bin' '/usr/sbin' '/sbin' '/usr/local/MacGPG2/bin' '/Library/TeX/texbin' '/Applications/Wireshark.app/Contents/MacOS' '/usr/local/go/bin' '/Users/paul/go/bin' '/usr/local/sbin';

~/Development/own/opam_docker/x86_64 · (master)
⟩ opam env | grep " PATH"
set -gx PATH ':/Users/paul/.opam/default/bin' '.' '.' '.' '/usr/local/texlive/2019/bin/x86_64-darwin' '/Users/paul/bin' '/Users/paul/Library/Python/3.7/bin' '/Users/paul/.rbenv/shims' '/Users/paul/.cargo/bin' '/usr/local/bin' '/usr/bin' '/bin' '/usr/sbin' '/sbin' '/usr/local/MacGPG2/bin' '/Library/TeX/texbin' '/Applications/Wireshark.app/Contents/MacOS' '/usr/local/go/bin' '/Users/paul/go/bin' '/usr/local/sbin';

~/Development/own/opam_docker/x86_64 · (master)
⟩ opam env | grep " PATH"
set -gx PATH ':/Users/paul/.opam/default/bin' '.' '.' '.' '.' '/usr/local/texlive/2019/bin/x86_64-darwin' '/Users/paul/bin' '/Users/paul/Library/Python/3.7/bin' '/Users/paul/.rbenv/shims' '/Users/paul/.cargo/bin' '/usr/local/bin' '/usr/bin' '/bin' '/usr/sbin' '/sbin' '/usr/local/MacGPG2/bin' '/Library/TeX/texbin' '/Applications/Wireshark.app/Contents/MacOS' '/usr/local/go/bin' '/Users/paul/go/bin' '/usr/local/sbin';

One detail: I use fish shell. The path stays sane in bash, for example.

Thanks in advance, Pavel.

@rjbou
Copy link
Collaborator

rjbou commented Apr 23, 2020

Let's try to figure out what is happening...
Can you share the output of the install command on verbose mode -vv & debug --debug

For fish path, did you had this dot in your path previously ? what version of fish do you use ?

@argent-smith
Copy link
Author

Here's verbose install:

bash-3.2$ opam install . --deps-only --with-test -y
[NOTE] Ignoring uncommitted changes in /Users/paul/Development/own/rpiterm (`--working-dir' not active).
[rpiterm.v0.2.7] no changes from git+file:///Users/paul/Development/own/rpiterm#master
Nothing to do.
bash-3.2$ opam install . --with-test -y -vv --debug
00:00.002  GSTATE                 LOAD-GLOBAL-STATE @ /Users/paul/.opam
00:00.003  RSTATE                 LOAD-REPOSITORY-STATE @ /Users/paul/.opam
00:00.091  RSTATE                 Loaded /Users/paul/.opam/repo/state.cache in 0.088s
00:00.128  RSTATE                 Cache found
00:00.128  STATE                  LOAD-SWITCH-STATE @ /Users/paul/Development/own/rpiterm
00:00.185  STATE                  Detected changed packages (marked for reinstall): {}
00:00.189  STATE                  Switch state loaded in 0.061s
00:00.189  FILE(switch-state)     Wrote /Users/paul/Development/own/rpiterm/_opam/.opam-switch/backup/state-20200423163240.export in 0.000s
+ /usr/local/bin/git "symbolic-ref" "--quiet" "--short" "HEAD"
- master
00:00.200  AUXCMD                 autopin: { rpiterm => git+file:///Users/paul/Development/own/rpiterm#master }
00:00.200  COMMAND                unpin
00:00.200  UPDATE                 update-dev-packages
00:00.200  PARALLEL               Iterate over 1 task(s) with 3 process(es)
00:00.200  PARALLEL               Starting job 0 (worker 1/3): 0
00:00.200  UPDATE                 update-dev-package rpiterm.v0.2.7
00:00.200  UPDATE                 update-pinned-package rpiterm
00:00.210  PARALLEL               Next task in job 0: /usr/local/bin/git symbolic-ref --quiet --short HEAD
Processing  1/1:
+ /usr/local/bin/git "symbolic-ref" "--quiet" "--short" "HEAD"
- master
00:00.220  PARALLEL               Collected task for job 0 (ret:0)
00:00.224  PARALLEL               Next task in job 0: /usr/local/bin/git diff --no-ext-diff --quiet
+ /usr/local/bin/git "diff" "--no-ext-diff" "--quiet"
00:00.230  PARALLEL               Collected task for job 0 (ret:1)
[NOTE] Ignoring uncommitted changes in /Users/paul/Development/own/rpiterm (`--working-dir' not active).
00:00.230  UPDATE                 updating git+file:///Users/paul/Development/own/rpiterm#master
00:00.238  PARALLEL               Next task in job 0: /usr/local/bin/git remote set-url origin file:///Users/paul/Development/own/rpiterm
Processing  1/1: [rpiterm.v0.2.7: git]
+ /usr/local/bin/git "remote" "set-url" "origin" "file:///Users/paul/Development/own/rpiterm" (CWD=/Users/paul/Development/own/rpiterm/_opam/.opam-switch/sources/rpiterm)
00:00.244  PARALLEL               Collected task for job 0 (ret:0)
00:00.251  PARALLEL               Next task in job 0: /usr/local/bin/git fetch -q file:///Users/paul/Development/own/rpiterm --update-shallow +master:refs/remotes/opam-ref-master
+ /usr/local/bin/git "fetch" "-q" "file:///Users/paul/Development/own/rpiterm" "--update-shallow" "+master:refs/remotes/opam-ref-master" (CWD=/Users/paul/Development/own/rpiterm/_opam/.opam-switch/sources/rpiterm)
00:00.283  PARALLEL               Collected task for job 0 (ret:0)
00:00.290  PARALLEL               Next task in job 0: /usr/local/bin/git diff --no-ext-diff --quiet refs/remotes/opam-ref-master --
+ /usr/local/bin/git "diff" "--no-ext-diff" "--quiet" "refs/remotes/opam-ref-master" "--" (CWD=/Users/paul/Development/own/rpiterm/_opam/.opam-switch/sources/rpiterm)
00:00.297  PARALLEL               Collected task for job 0 (ret:0)
[rpiterm.v0.2.7] no changes from git+file:///Users/paul/Development/own/rpiterm#master
00:00.301  PARALLEL               Job 0 finished
00:00.301  SWACT                  add-to-reinstall unpinned_only:false packages:{}
00:00.390  CLIENT                 INSTALL rpiterm
+ /usr/bin/sw_vers "-productVersion"
- 10.14.6
00:00.595  SYSTEM                 [log-69470-6d07ae] (in 0.016s) sw_vers -productVersion
+ /usr/local/bin/ocamlc "-vnum"
- 4.09.0
00:00.621  SYSTEM                 [log-69470-c61e7b] (in 0.012s) ocamlc -vnum
00:00.745  CLIENT                 Orphans: (changes: { rpiterm.v0.2.7 }, transitive: false) -> full {}, versions {}
00:01.011  SOLVER                 resolve request=install:(rpiterm (= v0.2.7)) remove:() upgrade:()
00:01.755  SOLVER                 Load cudf universe (depopts:false, build:true, post:true)
00:01.835  CUDF                   resolve request=install:(rpiterm (= 1)) remove:() upgrade:()
00:01.835  SOLVER                 Calling solver builtin-mccs+glpk with criteria -removed,-count[version-lag,request],-count[version-lag,changed],-changed
00:02.045  CUDF                   Solver call done in 0.210
00:02.106  SOLVER                 Load cudf universe (depopts:true, build:false, post:false)
00:02.205  SOLVER                 Load cudf universe (depopts:true, build:true, post:false)
00:02.310  CUDF                   graph_of_actions root_actions={  - ∗ rpiterm (= 1) }
00:02.319  SOLUTION               apply
The following actions will be performed:
  ∗ install rpiterm v0.2.7*
00:02.320  SOLUTION               parallel_apply
00:02.320  PARALLEL               Iterate over 1 task(s) with 3 process(es)
00:02.320  PARALLEL               Starting job 0 (worker 1/3): 0
00:02.320  ACTION                 download_package: rpiterm.v0.2.7
00:02.321  PARALLEL               Job 0 finished

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><>  🐫
00:02.321  PARALLEL               Iterate over 2 task(s) with 11 process(es)
00:02.321  PARALLEL               Starting job 341929040 (worker 1/11): λ rpiterm.v0.2.7
00:02.321  SYSTEM                 rmdir /Users/paul/Development/own/rpiterm/_opam/.opam-switch/build/rpiterm.v0.2.7
00:02.358  SYSTEM                 [log-69470-ad8886] (in 0.037s) cp -PRp /Users/paul/Development/own/rpiterm/_opam/.opam-switch/sources/rpiterm /Users/paul/Development/own/rpiterm/_opam/.opam-switch/build/rpiterm.v0.2.7
00:02.358  ACTION                 prepare_package_source: rpiterm.v0.2.7 at /Users/paul/Development/own/rpiterm/_opam/.opam-switch/build/rpiterm.v0.2.7
00:02.369  PARALLEL               Next task in job 341929040: /Users/paul/.opam/opam-init/hooks/sandbox.sh build dune subst
Processing  1/2: [rpiterm: dune subst]
+ /Users/paul/.opam/opam-init/hooks/sandbox.sh "build" "dune" "subst" (CWD=/Users/paul/Development/own/rpiterm/_opam/.opam-switch/build/rpiterm.v0.2.7)
00:02.419  PARALLEL               Collected task for job 341929040 (ret:0)
00:02.434  PARALLEL               Next task in job 341929040: /Users/paul/.opam/opam-init/hooks/sandbox.sh build dune build -p rpiterm -j 11
Processing  1/2: [rpiterm: dune build]
+ /Users/paul/.opam/opam-init/hooks/sandbox.sh "build" "dune" "build" "-p" "rpiterm" "-j" "11" (CWD=/Users/paul/Development/own/rpiterm/_opam/.opam-switch/build/rpiterm.v0.2.7)
00:04.120  PARALLEL               Collected task for job 341929040 (ret:0)
00:04.134  PARALLEL               Next task in job 341929040: /Users/paul/.opam/opam-init/hooks/sandbox.sh build dune runtest
Processing  1/2: [rpiterm: dune runtest]
+ /Users/paul/.opam/opam-init/hooks/sandbox.sh "build" "dune" "runtest" (CWD=/Users/paul/Development/own/rpiterm/_opam/.opam-switch/build/rpiterm.v0.2.7)
- Error: Error: mkdir: _build: Operation not permitted
00:04.160  PARALLEL               Collected task for job 341929040 (ret:1)
[ERROR] The compilation of rpiterm failed at "/Users/paul/.opam/opam-init/hooks/sandbox.sh build dune runtest".
00:04.161  PARALLEL               Job 341929040 finished
00:04.161  PARALLEL               Starting job 10598660 (worker 1/11): ∗ rpiterm.v0.2.7
00:04.161  PARALLEL               Job 10598660 finished

#=== ERROR while compiling rpiterm.v0.2.7 =====================================#
# context     2.0.7 | macos/x86_64 | ocaml-base-compiler.4.09.1 | pinned(git+file:///Users/paul/Development/own/rpiterm#master#1c43d07d)
# path        ~/Development/own/rpiterm/_opam/.opam-switch/build/rpiterm.v0.2.7
# command     ~/.opam/opam-init/hooks/sandbox.sh build dune runtest
# exit-code   1
# env-file    ~/.opam/log/rpiterm-69470-335865.env
# output-file ~/.opam/log/rpiterm-69470-335865.out
### output ###
# Error: Error: mkdir: _build: Operation not permitted



<><> Error report <><><><><><><><><><><><><><><><><><><><><><><><><><><><><>  🐫
┌─ The following actions failed
│ λ build rpiterm v0.2.7
└─
╶─ No changes have been performed
00:04.162  ENV                    Environment is up-to-date
00:04.166  SYSTEM                 rm /Users/paul/Development/own/rpiterm/_opam/.opam-switch/backup/state-20200423163240.export
'opam install . --with-test -y -vv --debug' failed.

@argent-smith
Copy link
Author

For fish path, did you had this dot in your path previously? what version of fish do you use?

No, it only starts appearing after opam init.

~
⟩ fish --version
fish, version 3.1.0

@rjbou
Copy link
Collaborator

rjbou commented Apr 23, 2020

It's not a sandbox issue, but opam file one. You need to add "-p" name to your dune test command.

For fish, I tried with 3.1.0, I can't reproduce. You can try to manually remove the dots...

@argent-smith
Copy link
Author

On OPAM/Dune: thnx, it solved the problem. On fish: I'll research it a bit more and file another issue if needed. Thanks for your time!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants