From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by c5ff346549e7 (Postfix) with ESMTP id 6E50F5D5 for ; Fri, 31 Jan 2020 08:49:00 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.70,385,1574118000"; d="scan'208";a="433842359" Received: from sympa.inria.fr ([193.51.193.213]) by mail2-relais-roc.national.inria.fr with ESMTP; 31 Jan 2020 09:48:58 +0100 Received: by sympa.inria.fr (Postfix, from userid 20132) id 319237F3DA; Fri, 31 Jan 2020 09:48:58 +0100 (CET) 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? X-Loop: caml-list@inria.fr X-Sequence: 17974 Errors-to: caml-list-owner@inria.fr Precedence: list Precedence: bulk Sender: caml-list-request@inria.fr X-no-archive: yes List-Id: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: 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/