From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id AF5267F3AB for ; Fri, 31 Jan 2020 09:48:48 +0100 (CET) X-IronPort-AV: E=Sophos;i="5.70,385,1574118000"; d="scan'208";a="337614020" Received: from dt-64014.paris.inria.fr (HELO [128.93.64.14]) ([128.93.64.14]) by mail3-relais-sop.national.inria.fr with ESMTP/TLS/AES128-SHA; 31 Jan 2020 09:48:48 +0100 To: caml users Reply-To: "francois.pottier@inria.fr" , caml users From: =?UTF-8?Q?Fran=c3=a7ois_Pottier?= Message-ID: Date: Fri, 31 Jan 2020 09:48:48 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit Subject: [Caml-list] (dune/opam) Proper way of vendoring a library inside an application? Dear fellow OCaml users, I am trying to figure out how to "vendor" (embark) a private copy of a library inside a project. (Concretely, I would like to vendor Fix inside Menhir.) I want this fact to remain invisible, that is, installing Menhir should not result in installing or upgrading the user's public copy of Fix. I have copied the source tree for Fix inside the source tree for Menhir, and added a (vendored_dirs fix) stanza in Menhir's toplevel "dune" file. Compilation works fine, but installation does not seem to work the way I wish: * "dune install" installs Menhir *and Fix*, though I would like it to install Menhir only. * Attempting to pin Menhir using "opam pin" fails because opam cannot find Fix (inded, Fix is not globally installed). I have tried removing (public_name fix) from fix/src/dune, but then the compilation of Menhir fails (Fix cannot be found). I am confused... what's the proper way of embarking a private library inside an application without installing it globally? Thanks! -- François Pottier francois.pottier@inria.fr http://cambium.inria.fr/~fpottier/