AUR ocaml4-findlib and ocaml4-ocamlbuild share some files

Installing one prevents from installing the other, is this ok?

$ pamac build ocaml4-ocamlbuild
Preparing...
Cloning ocaml4-ocamlbuild build files...
Generating ocaml4-ocamlbuild information...
Checking ocaml4-ocamlbuild dependencies...
Resolving dependencies...
Checking inter-conflicts...

To build (1):
  ocaml4-ocamlbuild  0.14.2-3    AUR


Edit build files : [e] 
Apply transaction ? [e/y/N] y

==== AUTHENTICATING FOR org.manjaro.pamac.commit ====
Authentication is required to install, update, or remove packages
Authenticating as: dme
Password: 
==== AUTHENTICATION COMPLETE ====

Building ocaml4-ocamlbuild...
==> Making package: ocaml4-ocamlbuild 0.14.2-3
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Found ocamlbuild-0.14.2.tar.gz
==> Validating source files with b2sums...
    ocamlbuild-0.14.2.tar.gz ... Passed
==> Removing existing $srcdir/ directory...
==> Extracting sources...
  -> Extracting ocamlbuild-0.14.2.tar.gz with bsdtar
==> Removing existing $pkgdir/ directory...
==> Starting build()...
make -f configure.make Makefile.config
make[1]: Entering directory '/var/tmp/pamac-build-dme/ocaml4-ocamlbuild/src/ocamlbuild-0.14.2'
(echo "# This file was generated from configure.make"; \
echo ;\
echo "OCAML_PREFIX=/usr"; \
echo "OCAML_BINDIR=/usr/bin"; \
echo "OCAML_LIBDIR=/usr/lib/ocaml"; \
echo "OCAML_MANDIR=/usr/share/man"; \
echo ;\
echo "EXT_OBJ=.o"; \
echo "EXT_ASM=.s"; \
echo "EXT_LIB=.a"; \
echo "EXT_DLL=.so"; \
echo "EXE="; \
echo ;\
echo "OCAML_NATIVE=true"; \
echo "OCAML_NATIVE_TOOLS=true"; \
echo "NATDYNLINK=true"; \
echo "SUPPORT_SHARED_LIBRARIES=true"; \
echo ;\
echo "PREFIX=/usr"; \
echo "BINDIR=/usr/bin"; \
echo "LIBDIR=/usr/lib/ocaml"; \
echo "MANDIR=/usr/share/man"; \
) > Makefile.config
make[1]: Leaving directory '/var/tmp/pamac-build-dme/ocaml4-ocamlbuild/src/ocamlbuild-0.14.2'
make -f configure.make all
make[1]: Entering directory '/var/tmp/pamac-build-dme/ocaml4-ocamlbuild/src/ocamlbuild-0.14.2'
(echo "(* This file was generated from ../configure.make *)"; \
echo ;\
echo 'let bindir = "/usr/bin"'; \
echo 'let libdir = "/usr/lib/ocaml"'; \
echo 'let ocaml_libdir = "/usr/lib/ocaml"'; \
echo 'let libdir_abs = "/usr/lib/ocaml"'; \
echo 'let ocaml_native = true'; \
echo 'let ocaml_native_tools = true'; \
echo 'let supports_shared_libraries = true';\
echo 'let a = "a"'; \
echo 'let o = "o"'; \
echo 'let so = "so"'; \
echo 'let ext_dll = ".so"'; \
echo 'let exe = ""'; \
echo 'let version = "0.14.2"'; \
) > src/ocamlbuild_config.ml
make[1]: Leaving directory '/var/tmp/pamac-build-dme/ocaml4-ocamlbuild/src/ocamlbuild-0.14.2'
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/const.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/loc.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/loc.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/discard_printf.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/discard_printf.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/signatures.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/my_std.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/my_std.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/my_unix.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/my_unix.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/tags.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/tags.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/display.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/display.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/log.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/log.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/shell.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/shell.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/bool.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/bool.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/glob_ast.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/glob_ast.ml
ocamllex.opt src/glob_lexer.mll
55 states, 419 transitions, table size 2006 bytes
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/glob_lexer.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/glob_lexer.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/glob.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/glob.ml
ocamllex.opt src/lexers.mll
251 states, 1051 transitions, table size 5710 bytes
4334 additional bytes used for bindings
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/lexers.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/lexers.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/param_tags.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/param_tags.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/command.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/command.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/ocamlbuild_config.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/ocamlbuild_where.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/ocamlbuild_where.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/slurp.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/slurp.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/options.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/options.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/pathname.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/pathname.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/configuration.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/configuration.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/flags.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/flags.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/hygiene.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/hygiene.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/digest_cache.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/digest_cache.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/resource.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/resource.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/rule.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/rule.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/solver.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/solver.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/report.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/report.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/tools.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/tools.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/fda.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/fda.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/findlib.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/findlib.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/ocaml_arch.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/ocaml_arch.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/ocaml_utils.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/ocaml_utils.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/ocaml_dependencies.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/ocaml_dependencies.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/ocaml_compiler.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/ocaml_compiler.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/ocaml_tools.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/ocaml_tools.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/ocaml_specific.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/ocaml_specific.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/exit_codes.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/exit_codes.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/plugin.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/plugin.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/hooks.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/hooks.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/main.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/main.ml
mkdir -p tmp
ocamlc.opt -pack src/const.cmo src/loc.cmo src/discard_printf.cmo src/signatures.cmi src/my_std.cmo src/my_unix.cmo src/tags.cmo src/display.cmo src/log.cmo src/shell.cmo src/bool.cmo src/glob_ast.cmo src/glob_lexer.cmo src/glob.cmo src/lexers.cmo src/param_tags.cmo src/command.cmo src/ocamlbuild_config.cmo src/ocamlbuild_where.cmo src/slurp.cmo src/options.cmo src/pathname.cmo src/configuration.cmo src/flags.cmo src/hygiene.cmo src/digest_cache.cmo src/resource.cmo src/rule.cmo src/solver.cmo src/report.cmo src/tools.cmo src/fda.cmo src/findlib.cmo src/ocaml_arch.cmo src/ocaml_utils.cmo src/ocaml_dependencies.cmo src/ocaml_compiler.cmo src/ocaml_tools.cmo src/ocaml_specific.cmo src/exit_codes.cmo src/plugin.cmo src/hooks.cmo src/main.cmo -o tmp/ocamlbuild_pack.cmo
mv tmp/ocamlbuild_pack.cmi src/ocamlbuild_pack.cmi
mv tmp/ocamlbuild_pack.cmo src/ocamlbuild_pack.cmo
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c plugin-lib/ocamlbuild_plugin.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c plugin-lib/ocamlbuild_plugin.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c plugin-lib/ocamlbuild_executor.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c plugin-lib/ocamlbuild_executor.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c plugin-lib/ocamlbuild_unix_plugin.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c plugin-lib/ocamlbuild_unix_plugin.ml
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c bin/ocamlbuild.mli
ocamlc.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c bin/ocamlbuild.ml
ocamlc.opt -I +unix -I src -o ocamlbuild.byte unix.cma src/ocamlbuild_pack.cmo plugin-lib/ocamlbuild_plugin.cmo plugin-lib/ocamlbuild_executor.cmo plugin-lib/ocamlbuild_unix_plugin.cmo bin/ocamlbuild.cmo
ocamlc.opt -a -o plugin-lib/ocamlbuildlib.cma src/ocamlbuild_pack.cmo plugin-lib/ocamlbuild_plugin.cmo plugin-lib/ocamlbuild_executor.cmo plugin-lib/ocamlbuild_unix_plugin.cmo
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/const.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/loc.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/discard_printf.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/my_std.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/my_unix.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/tags.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/display.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/log.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/shell.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/bool.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/glob_ast.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/glob_lexer.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/glob.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/lexers.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/param_tags.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/command.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/ocamlbuild_config.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/ocamlbuild_where.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/slurp.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/options.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/pathname.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/configuration.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/flags.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/hygiene.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/digest_cache.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/resource.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/rule.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/solver.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/report.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/tools.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/fda.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/findlib.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/ocaml_arch.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/ocaml_utils.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/ocaml_dependencies.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/ocaml_compiler.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/ocaml_tools.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/ocaml_specific.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/exit_codes.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/plugin.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/hooks.ml
ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c src/main.ml
mkdir -p tmp
ocamlopt.opt -pack src/const.cmx src/loc.cmx src/discard_printf.cmx src/signatures.cmi src/my_std.cmx src/my_unix.cmx src/tags.cmx src/display.cmx src/log.cmx src/shell.cmx src/bool.cmx src/glob_ast.cmx src/glob_lexer.cmx src/glob.cmx src/lexers.cmx src/param_tags.cmx src/command.cmx src/ocamlbuild_config.cmx src/ocamlbuild_where.cmx src/slurp.cmx src/options.cmx src/pathname.cmx src/configuration.cmx src/flags.cmx src/hygiene.cmx src/digest_cache.cmx src/resource.cmx src/rule.cmx src/solver.cmx src/report.cmx src/tools.cmx src/fda.cmx src/findlib.cmx src/ocaml_arch.cmx src/ocaml_utils.cmx src/ocaml_dependencies.cmx src/ocaml_compiler.cmx src/ocaml_tools.cmx src/ocaml_specific.cmx src/exit_codes.cmx src/plugin.cmx src/hooks.cmx src/main.cmx -o tmp/ocamlbuild_pack.cmx
mv tmp/ocamlbuild_pack.cmx src/ocamlbuild_pack.cmx
mv tmp/ocamlbuild_pack.o src/ocamlbuild_pack.o
ocamlopt.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c plugin-lib/ocamlbuild_plugin.ml
ocamlopt.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c plugin-lib/ocamlbuild_executor.ml
ocamlopt.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c plugin-lib/ocamlbuild_unix_plugin.ml
ocamlopt.opt -w +L -w +R -w +Z -I src -I plugin-lib -I bin -I +unix -safe-string -bin-annot -strict-sequence -c bin/ocamlbuild.ml
ocamlopt.opt -I +unix -I src -o ocamlbuild.native unix.cmxa src/ocamlbuild_pack.cmx plugin-lib/ocamlbuild_plugin.cmx plugin-lib/ocamlbuild_executor.cmx plugin-lib/ocamlbuild_unix_plugin.cmx bin/ocamlbuild.cmx
ocamlopt.opt -a -o plugin-lib/ocamlbuildlib.cmxa src/ocamlbuild_pack.cmx plugin-lib/ocamlbuild_plugin.cmx plugin-lib/ocamlbuild_executor.cmx plugin-lib/ocamlbuild_unix_plugin.cmx
ocamlc.opt src/ocamlbuild_pack.cmo -I src man/options_man.ml -o man/options_man.byte
./man/options_man.byte > man/ocamlbuild.options.1
cat man/ocamlbuild.header.1 man/ocamlbuild.options.1 man/ocamlbuild.footer.1 > man/ocamlbuild.1
==> Entering fakeroot environment...
==> Starting package()...
if test -d /usr/lib/ocaml/ocamlbuild; then\
  >&2 echo "ERROR: Preinstalled ocamlbuild detected at"\
       "/usr/lib/ocaml/ocamlbuild";\
  >&2 echo "Installation aborted; if you want to bypass this"\
        "safety check, pass CHECK_IF_PREINSTALLED=false to make";\
  exit 2;\
fi
ERROR: Preinstalled ocamlbuild detected at /usr/lib/ocaml/ocamlbuild
Installation aborted; if you want to bypass this safety check, pass CHECK_IF_PREINSTALLED=false to make
make: *** [Makefile:410: check-if-preinstalled] Error 2
==> ERROR: A failure occurred in package().
    Aborting...

$ pacman -Qo /usr/lib/ocaml/ocamlbuild
/usr/lib/ocaml/ocamlbuild/ is owned by ocaml4-findlib 1.9.6-3

It is perhaps not “ok”, but both are AUR packages.
Those are at the end of the day your responsibility - or you can notify the packager.

AUR (en) - ocaml4-findlib

AUR (en) - ocaml4-ocamlbuild

2 Likes

If somebody else can reproduce this issue would be helpful, in case it’s a bug in my system.

My system is on stable branch.
(did this in a VM - Xfce4, if that is of interest)
I did not have any of this installed before - it was just a test.

I just did:
sudo pacman -Syu
to make sure the system is up to date

then:
yay -S ocaml4-ocamlbuild
(no issues)

then:
yay -S ocaml4-findlib

that last step fails, but the install error is a different one - but it was built without issue
it fails because the file
/usr/lib/ocaml/ocamlbuild/META
is already present from installing ocaml4-ocamlbuild

It is not identical to the one going to be installed, but looks functionally identical.
(You are the expert on judging whether that is truly the case - compare them.
I have zero clue about ocaml …)

so, I moved it out of the way:
sudo mv /usr/lib/ocaml/ocamlbuild/META /home/me

and then
yay -S ocaml4-findlib
finishes without error.

Click the line or the arrow to expand.

here are the two files for comparison:
cat META_1
# Specification for the "ocamlbuild" library
requires = "unix"
version = "0.14.2"
description = "ocamlbuild support library"
archive(byte) = "ocamlbuildlib.cma"
archive(native) = "ocamlbuildlib.cmxa"
cat META_2
# Specification for the "ocamlbuild" library
requires = "unix"
version = "[distributed with Ocaml]"
description = "ocamlbuild support library"
directory= "^ocamlbuild"
archive(byte) = "ocamlbuildlib.cma"
archive(native) = "ocamlbuildlib.cmxa"

If it does not need to be version 4, the more recent versions of ocaml are in the repo, as you probably know.

HTH

You are not supposed to manually delete any file because now is missing from the other package. If there’s a new version of ocaml it wasn’t upgraded automatically for me, maybe because I’m specifying the version?

I temporarily removed that one file to allow the install procedure of the other to succeed.
To be more precise and as I said:
I did not remove it, I simply moved it so that the other could take it’s place.
This can be reversed since both files are still there.
I have included both versions in my previous post for comparison - they seem to be functionally the same.

Of course it is not lege artis or how things should be done - but I was interested in making it work.

The packager is the same for both of these - ask him how to deal with it, ask him to adapt the PKGBUILD.

I’m of the opinion that either one of these /usr/lib/ocaml/ocamlbuild/META files will work.
But I don’t know.
That’s not my expertise.



re your actual request:
I did try to reproduce your issue - and couldn’t.
Instead I discovered this one …

Best of luck!



ps:

You had installed version 4 from AUR.
This will never be replaced by version 5 which is in the repos.

If you don’t need version 4 specifically, just remove the AUR versions and install from the normal repos.

Arch Linux - Package Search

You’d obviously save the time to have to compile the things and it will, presumably, just work.

I’m pretty sure it was installed as a dependency for another package, and the other package doesn’t acknowledge it and doesn’t switch automatically to ocaml5.

Only you can know that.
If you don’t care about the version - or if you don’t even know why it is even there … just remove.
Or try to remove and discover that way what requires it.

That is the problem with AUR packages - you need to have an eye on those yourself.
They may become obsolete or need to be recompiled after updates to the base system.

They may have been the cutting edge at one time in the past, the latest and greatest …
but eventually the repo will catch up and make them first unnecessary and even incompatible.

1 Like

Custom packages is not built as a dependency for repo packages.

So if it has been pulled as a dependency it is a custom build as well.

Although any custom script on AUR must meet the guidelines - there is nothing to prevent the same file being a part of multiple depending packages.

Have you tried this?
Hopefully it won’t cause too much “Trouble with Tribbles*”.

Sorry, couldn’t resist the reference, don’t think I’m the first one either.

1 Like

pacman is not able to handle it by itself:

$ sudo pacman -S ocaml
resolving dependencies...
looking for conflicting packages...
:: ocaml-5.2.0-1 and ocaml4-4.14.2-2 are in conflict. Remove ocaml4? [y/N] y
error: failed to prepare transaction (could not satisfy dependencies)
:: removing ocaml4 breaks dependency 'ocaml4' required by ocaml4-camlp-streams
:: removing ocaml4 breaks dependency 'ocaml4' required by ocaml4-camlp4
:: removing ocaml4 breaks dependency 'ocaml4' required by ocaml4-compiler-libs
:: removing ocaml4 breaks dependency 'ocaml4' required by ocaml4-findlib
:: removing ocaml4 breaks dependency 'ocaml4' required by ocaml4-num
:: removing ocaml4 breaks dependency 'ocaml4' required by ocaml4-ocamlbuild

Manually does the job:

$ sudo pacman -Rdd ocaml4-camlp-streams ocaml4-camlp4 ocaml4-compiler-libs ocaml4-findlib ocaml4-num ocaml4-ocamlbuild

Packages (6) ocaml4-camlp-streams-5.0.1-2  ocaml4-camlp4-4.14+1-3  ocaml4-compiler-libs-4.14.2-2  ocaml4-findlib-1.9.6-3  ocaml4-num-1.4-4  ocaml4-ocamlbuild-0.14.2-3

Total Removed Size:  318.14 MiB

:: Do you want to remove these packages? [Y/n] 
:: Processing package changes...
(1/6) removing ocaml4-camlp-streams                                                                                                           [#######################################################################################] 100%
(2/6) removing ocaml4-camlp4                                                                                                                  [#######################################################################################] 100%
(3/6) removing ocaml4-compiler-libs                                                                                                           [#######################################################################################] 100%
(4/6) removing ocaml4-findlib                                                                                                                 [#######################################################################################] 100%
(5/6) removing ocaml4-num                                                                                                                     [#######################################################################################] 100%
(6/6) removing ocaml4-ocamlbuild                                                                                                              [#######################################################################################] 100%
:: Running post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...
$ sudo pacman -S ocaml
resolving dependencies...
looking for conflicting packages...
:: ocaml-5.2.0-1 and ocaml4-4.14.2-2 are in conflict. Remove ocaml4? [y/N] y

Packages (2) ocaml4-4.14.2-2 [removal]  ocaml-5.2.0-1

Total Download Size:     29.93 MiB
Total Installed Size:   135.97 MiB
Net Upgrade Size:      -140.99 MiB

:: Proceed with installation? [Y/n] 
:: Retrieving packages...
 ocaml-5.2.0-1-x86_64                                                                                              29.9 MiB   340 KiB/s 01:30 [#######################################################################################] 100%
(1/1) checking keys in keyring                                                                                                                [#######################################################################################] 100%
(1/1) checking package integrity                                                                                                              [#######################################################################################] 100%
(1/1) loading package files                                                                                                                   [#######################################################################################] 100%
(1/1) checking for file conflicts                                                                                                             [#######################################################################################] 100%
(2/2) checking available disk space                                                                                                           [#######################################################################################] 100%
:: Processing package changes...
(1/1) removing ocaml4                                                                                                                         [#######################################################################################] 100%
(1/1) installing ocaml                                                                                                                        [#######################################################################################] 100%
Optional dependencies for ocaml
    ncurses: advanced ncurses features [installed]
    tk: advanced tk features [installed]
:: Running post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...

not with what you told it to do (via the command you gave …)

remove all the stuff:
pacman -Rns ocmlXYZ...xyz

it will (try to) recursively remove your AUR packages and everything depending on them with it.

you will see what is about to happen if you say “yes”.
you can cancel if you are unsure …

But:

you seem to have managed to remove it anyway

good

and now?

any issues?

…

the package that required ocaml may still be there after what you did

Is it still working?
Do you know what/which it is?


RISC OS is indeed very, very different to Unix/Linux.

Try to detach from what you might have learned how an OS behaves from Risc OS.
Unix is just different.
not better, not worse, just different

You can just remove ocaml4 , that will remove all except for ocaml4-lablgtk2 (maybe will be fixed in the future) since all the others depends on ocaml4

the package that required ocaml may still be there after what you did

Is it still working?
Do you know what/which it is?

Likely it is mldonkey, which don’t need ocaml4 at runtime

1 Like

Uninstalling ocaml4 doesn’t remove any other package, either they are not recognized as dependencies or it’s not checked for some reason:

$ sudo pacman -Rdd ocaml4

Packages (1) ocaml4-4.14.2-2

Total Removed Size:  276.98 MiB

:: Do you want to remove these packages? [Y/n] 
:: Processing package changes...
(1/1) removing ocaml4                                         [####################################################] 100%
:: Running post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...
$ pacman -Qs ocaml
local/dune 3.16.0-1
    A composable build system for OCaml (formerly jbuilder)
local/ocaml4-camlp-streams 5.0.1-2
    The Stream and Genlex libraries for use with Camlp4 and Camlp5.
local/ocaml4-camlp4 4.14+1-3
    Caml preprocessor and pretty-printer
local/ocaml4-compiler-libs 4.14.2-2
    Several modules used internally by the OCaml compiler
local/ocaml4-findlib 1.9.6-3
    OCaml package manager
local/ocaml4-lablgtk2 2.18.12-3
    An Objective Caml interface to gtk2
local/ocaml4-num 1.4-4
    Library for arbitrary-precision integer and rational arithmetic that used to be part of the OCaml core distribution
local/ocaml4-ocamlbuild 0.14.2-3
    Build tool, that has built-in rules for building OCaml library and programs

After removing all *ocaml4* except local/dune, it probably was mldonkey which installed them, they are still required to build:

$ paru -S mldonkey
:: Resolving dependencies...
:: There are 3 providers available for mldonkey:
:: Repository AUR:
    1) mldonkey  2) mldonkey-ed2kad-daemon-git  3) mldonkey-git  
Enter a number (default=1): 
:: Calculating conflicts...
:: Calculating inner conflicts...

Aur (5) ocaml4-4.14.2-2  ocaml4-camlp4-4.14+1-3  ocaml4-lablgtk2-2.18.12-3  ocaml4-num-1.4-4  mldonkey-3.2.1-2
Aur Make (4) ocaml4-ocamlbuild-0.14.2-3  ocaml4-4.14.2-2 (ocaml4-compiler-libs)  ocaml4-findlib-1.9.6-3  ocaml4-camlp-streams-5.0.1-2

:: Proceed to review? [Y/n]:

mldonkey-git also requires them.

As I demonstrated, the compilation works and ocaml gets installed with one minor flaw which is easily circumvented.
Or adapt one of the the PKGBUILD’s so that that doesn’t happen …
@Lolix might know how - it seems he is the maintainer of the AUR packages himself

But all that is not even needed:

have a look at the the first comment on the AUR page for mldonkey.
… a link to a prebuilt version which you can download and install using
sudo pacman -U the_downloaded_file

No need to have ocaml in this case - it is just needed during build time, not for using the resulting mldonkey

That command skips all dependency checks.

 -d, --nodeps
           Skips dependency version checks. Package names are still checked. Normally, pacman will always check a package’s dependency fields to ensure that all dependencies are installed and there are no package conflicts in the system. Specify this option twice to skip
           all dependency checks.

It is not checked because you are using dd options

Looking at AUR (en) - ocaml4 you can what need it as depends

Yes, they are required at build time

That demonstrates that copy & paste commands is not always a good idea.

1 Like

Yeah, it certainly helps if you understand what you’re copy/pasting before running it.

I’m going back quite a few years, but it used to be fairly common to find posts telling people to run sudo rm -r / as a “joke” all over the internet. It was the linux version of “you’re too stupid to own a computer”.

They eventually changed rm to check if it was being run on / and give a warning, but it doesn’t apply to /*, etc.