<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 09:09:04 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[MONGOCRYPT-600] Cannot install mongodb-client-encryption npm dependency on Alpine</title>
                <link>https://jira.mongodb.org/browse/MONGOCRYPT-600</link>
                <project id="17481" key="MONGOCRYPT">Libmongocrypt</project>
                    <description>&lt;p&gt;How to reproduce: on clean Alpine Edge x86_64 system, install `nodejs`, `npm`, `python3`, `gcc`, `g++`, `make` and `krb5-dev` packages (all are needed to build other mongodb node packages, and at least some of them needed to build `mongodb-client-encryption`).&lt;/p&gt;

&lt;p&gt;Then, in a fresh clean directory, do `npm init` and `npm add mongodb-client-encryption`.&lt;/p&gt;

&lt;p&gt;Expected result: everything installs without any errors.&lt;/p&gt;

&lt;p&gt;Actual result:&lt;/p&gt;

&lt;p&gt;```&lt;/p&gt;

&lt;p&gt;mongo-scratchpad:~/projects/tmp-mongo$ npm add mongodb-client-encryption&lt;br/&gt;
npm ERR! code 1&lt;br/&gt;
npm ERR! path /home/inga/projects/tmp-mongo/node_modules/mongodb-client-encryption&lt;br/&gt;
npm ERR! command failed&lt;br/&gt;
npm ERR! command sh -c prebuild-install --runtime napi --tag-prefix node-v || node-gyp rebuild&lt;br/&gt;
npm ERR! make: Entering directory &apos;/home/inga/projects/tmp-mongo/node_modules/mongodb-client-encryption/build&apos;&lt;br/&gt;
npm ERR! &#160; CXX(target) Release/obj.target/mongocrypt/addon/mongocrypt.o&lt;br/&gt;
npm ERR! make: Leaving directory &apos;/home/inga/projects/tmp-mongo/node_modules/mongodb-client-encryption/build&apos;&lt;br/&gt;
npm ERR! prebuild-install warn install No prebuilt binaries found (target=4 runtime=napi arch=x64 libc=musl platform=linux)&lt;br/&gt;
npm ERR! gyp info it worked if it ends with ok&lt;br/&gt;
npm ERR! gyp info using node-gyp@9.4.0&lt;br/&gt;
npm ERR! gyp info using node@18.18.2 | linux | x64&lt;br/&gt;
npm ERR! gyp info find Python using Python version 3.11.6 found at &quot;/usr/bin/python3&quot;&lt;br/&gt;
npm ERR! gyp info spawn /usr/bin/python3&lt;br/&gt;
npm ERR! gyp info spawn args [&lt;br/&gt;
npm ERR! gyp info spawn args &#160; &apos;/usr/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py&apos;,&lt;br/&gt;
npm ERR! gyp info spawn args &#160; &apos;binding.gyp&apos;,&lt;br/&gt;
npm ERR! gyp info spawn args &#160; &apos;-f&apos;,&lt;br/&gt;
npm ERR! gyp info spawn args &#160; &apos;make&apos;,&lt;br/&gt;
npm ERR! gyp info spawn args &#160; &apos;-I&apos;,&lt;br/&gt;
npm ERR! gyp info spawn args &#160; &apos;/home/inga/projects/tmp-mongo/node_modules/mongodb-client-encryption/build/config.gypi&apos;,&lt;br/&gt;
npm ERR! gyp info spawn args &#160; &apos;-I&apos;,&lt;br/&gt;
npm ERR! gyp info spawn args &#160; &apos;/usr/lib/node_modules/npm/node_modules/node-gyp/addon.gypi&apos;,&lt;br/&gt;
npm ERR! gyp info spawn args &#160; &apos;-I&apos;,&lt;br/&gt;
npm ERR! gyp info spawn args &#160; &apos;/home/inga/.cache/node-gyp/18.18.2/include/node/common.gypi&apos;,&lt;br/&gt;
npm ERR! gyp info spawn args &#160; &apos;-Dlibrary=shared_library&apos;,&lt;br/&gt;
npm ERR! gyp info spawn args &#160; &apos;-Dvisibility=default&apos;,&lt;br/&gt;
npm ERR! gyp info spawn args &#160; &apos;-Dnode_root_dir=/home/inga/.cache/node-gyp/18.18.2&apos;,&lt;br/&gt;
npm ERR! gyp info spawn args &#160; &apos;-Dnode_gyp_dir=/usr/lib/node_modules/npm/node_modules/node-gyp&apos;,&lt;br/&gt;
npm ERR! gyp info spawn args &#160; &apos;-Dnode_lib_file=/home/inga/.cache/node-gyp/18.18.2/&amp;lt;(target_arch)/node.lib&apos;,&lt;br/&gt;
npm ERR! gyp info spawn args &#160; &apos;-Dmodule_root_dir=/home/inga/projects/tmp-mongo/node_modules/mongodb-client-encryption&apos;,&lt;br/&gt;
npm ERR! gyp info spawn args &#160; &apos;-Dnode_engine=v8&apos;,&lt;br/&gt;
npm ERR! gyp info spawn args &#160; &apos;--depth=.&apos;,&lt;br/&gt;
npm ERR! gyp info spawn args &#160; &apos;--no-parallel&apos;,&lt;br/&gt;
npm ERR! gyp info spawn args &#160; &apos;--generator-output&apos;,&lt;br/&gt;
npm ERR! gyp info spawn args &#160; &apos;build&apos;,&lt;br/&gt;
npm ERR! gyp info spawn args &#160; &apos;-Goutput_dir=.&apos;&lt;br/&gt;
npm ERR! gyp info spawn args ]&lt;br/&gt;
npm ERR! gyp info spawn make&lt;br/&gt;
npm ERR! gyp info spawn args [ &apos;BUILDTYPE=Release&apos;, &apos;-C&apos;, &apos;build&apos; ]&lt;br/&gt;
npm ERR! In file included from ../addon/mongocrypt.cc:1:&lt;br/&gt;
npm ERR! ../addon/mongocrypt.h:16:10: fatal error: mongocrypt/mongocrypt.h: No such file or directory&lt;br/&gt;
npm ERR! &#160; &#160;16 | #include &amp;lt;mongocrypt/mongocrypt.h&amp;gt;&lt;br/&gt;
npm ERR! &#160; &#160; &#160; | &#160; &#160; &#160; &#160; &#160;^~~~~~~~~~~~~~~~~~~~~~~~~&lt;br/&gt;
npm ERR! compilation terminated.&lt;br/&gt;
npm ERR! make: *** &lt;span class=&quot;error&quot;&gt;&amp;#91;mongocrypt.target.mk:109: Release/obj.target/mongocrypt/addon/mongocrypt.o&amp;#93;&lt;/span&gt; Error 1&lt;br/&gt;
npm ERR! gyp ERR! build error&#160;&lt;br/&gt;
npm ERR! gyp ERR! stack Error: `make` failed with exit code: 2&lt;br/&gt;
npm ERR! gyp ERR! stack &#160; &#160; at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:203:23)&lt;br/&gt;
npm ERR! gyp ERR! stack &#160; &#160; at ChildProcess.emit (node:events:517:28)&lt;br/&gt;
npm ERR! gyp ERR! stack &#160; &#160; at ChildProcess._handle.onexit (node:internal/child_process:292:12)&lt;br/&gt;
npm ERR! gyp ERR! System Linux 6.1.57-0-lts&lt;br/&gt;
npm ERR! gyp ERR! command &quot;/usr/bin/node&quot; &quot;/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js&quot; &quot;rebuild&quot;&lt;br/&gt;
npm ERR! gyp ERR! cwd /home/inga/projects/tmp-mongo/node_modules/mongodb-client-encryption&lt;br/&gt;
npm ERR! gyp ERR! node -v v18.18.2&lt;br/&gt;
npm ERR! gyp ERR! node-gyp -v v9.4.0&lt;br/&gt;
npm ERR! gyp ERR! not ok&lt;/p&gt;

&lt;p&gt;```&lt;/p&gt;

&lt;p&gt;System info:&lt;/p&gt;

&lt;p&gt;```&lt;/p&gt;

&lt;p&gt;mongo-scratchpad:~/projects/tmp-mongo$ uname -a&lt;br/&gt;
Linux mongo-scratchpad 6.1.57-0-lts #1-Alpine SMP PREEMPT_DYNAMIC Wed, 11 Oct 2023 15:33:17 +0000 x86_64 Linux&lt;br/&gt;
mongo-scratchpad:~/projects/tmp-mongo$ node --version&lt;br/&gt;
v18.18.2&lt;br/&gt;
mongo-scratchpad:~/projects/tmp-mongo$ npm --version&lt;br/&gt;
10.2.0&lt;/p&gt;

&lt;p&gt;```&lt;/p&gt;

&lt;p&gt;&amp;#8212;&lt;/p&gt;

&lt;p&gt;Additional notes: in `node_modules/mongodb-client-encryption/addon`, `mongocrypt.cc` does `#include &quot;mongocrypt.h&quot;`; `mongocrypt.h` does `#include &amp;lt;mongocrypt/mongocrypt.h&amp;gt;`. There is no `mongocrypt/mongocrypt.h` on my system. Perhaps I should install `libmongocrypt` dev package somehow first, but package readme &lt;a href=&quot;https://www.npmjs.com/package/mongodb-client-encryption&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://www.npmjs.com/package/mongodb-client-encryption&lt;/a&gt; does not mention any prerequisites, and there are no `&lt;b&gt;mongocrypt&lt;/b&gt;` files in any packages in Alpine repository.&lt;/p&gt;

&lt;p&gt;Trying to find online how to install libmongocrypt produces the link to &lt;a href=&quot;https://www.mongodb.com/docs/manual/core/queryable-encryption/reference/libmongocrypt/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://www.mongodb.com/docs/manual/core/queryable-encryption/reference/libmongocrypt/&lt;/a&gt; , but this makes it seem that Alpine is not supported by libmongocrypt. Yet the npm package readme does not mention that.&lt;/p&gt;

&lt;p&gt;The npm package readme does mention that for development (not for ordinary use) one is supposed to run the following command: `bash ./etc/build-static.sh`. Yet there is no `etc` directory in npm package; and in `node-v6.0.0` branch of `libmongocrypt` github repository, there is no `build-static.sh` in `etc` directory.&lt;/p&gt;</description>
                <environment></environment>
        <key id="2477987">MONGOCRYPT-600</key>
            <summary>Cannot install mongodb-client-encryption npm dependency on Alpine</summary>
                <type id="1" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14703&amp;avatarType=issuetype">Bug</type>
                                            <priority id="10300" iconUrl="https://jira.mongodb.org/images/icons/priorities/medium.svg">Unknown</priority>
                        <status id="10033" iconUrl="https://jira.mongodb.org/images/icons/statuses/information.png" description="Status for tickets that need to be escalated and unblocked on our team.">Blocked</status>
                    <statusCategory id="4" key="indeterminate" colorName="inprogress"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="inga.lovinde@outlook.com">Inga L</reporter>
                        <labels>
                    </labels>
                <created>Wed, 18 Oct 2023 17:46:55 +0000</created>
                <updated>Fri, 8 Dec 2023 17:51:31 +0000</updated>
                                                                            <component>Node bindings</component>
                                        <votes>1</votes>
                                    <watches>7</watches>
                                                                                                                <comments>
                            <comment id="5936592" author="JIRAUSER1275824" created="Fri, 8 Dec 2023 17:51:31 +0000"  >&lt;p&gt;Created a related ticket: &lt;a href=&quot;https://jira.mongodb.org/browse/MONGOCRYPT-609&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;https://jira.mongodb.org/browse/MONGOCRYPT-609&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5934489" author="JIRAUSER1275824" created="Thu, 7 Dec 2023 22:29:19 +0000"  >&lt;p&gt;I&apos;m getting identical behaviour attempting to deploy an encryption-enabled node client to my Amazon Linux 2023 EC2 instance at the `npm i mongodb-client-encryption` step.&lt;/p&gt;

&lt;p&gt;Now I&apos;m attempting to install the `libmongocrypt` library on my instance in order to provide the header file indicated in the error but, as stated by the OP regarding Alpine Linux, the &lt;a href=&quot;#install-libmongocrypt&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;MongoDB docs that describe how to do so&lt;/a&gt;] do not provide the repository source URL and data to add to the `yum` repo sources list for Amazon Linux 2023, only Amazon Linux 2013.3 and AL2. The existing S3 bucket (&lt;a href=&quot;https://libmongocrypt.s3.amazonaws.com/)&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://libmongocrypt.s3.amazonaws.com/)&lt;/a&gt; only contains debian packages, no RPMs.&lt;/p&gt;

&lt;p&gt;It does look like it&apos;s gotten closer to being added as part of &lt;a href=&quot;https://jira.mongodb.org/browse/MONGOCRYPT-580&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;MONGOCRYPT-580&lt;/a&gt;, however. Maybe it just hasn&apos;t been packaged and upload to S3, but I cannot find a JIRA ticket related to this.&lt;/p&gt;

&lt;p&gt;As the OP mentions too, there is no `etc` folder nor bash script available to run that comes from the `mongodb-client-encryption`.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="5833295" author="JIRAUSER1275518" created="Mon, 30 Oct 2023 19:14:52 +0000"  >&lt;p&gt;Also related: &lt;a href=&quot;https://jira.mongodb.org/browse/COMPASS-7358&quot; title=&quot;[Developer experience] CONTRIBUTING.md does not mention prerequisites; &amp;quot;Getting started&amp;quot; steps are incomplete and cannot be executed&quot; class=&quot;issue-link&quot; data-issue-key=&quot;COMPASS-7358&quot;&gt;&lt;del&gt;COMPASS-7358&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;(The reason I ran into this issue was not because I wanted to use explicit encryption on Alpine, but because I tried to set up a Compass dev environment.)&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                        <issuelink>
            <issuekey id="2008300">MONGOCRYPT-416</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="2520216">MONGOCRYPT-609</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                            <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i2ek4k:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>