<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 21:18:20 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>[CDRIVER-3534] Vendor kms-message</title>
                <link>https://jira.mongodb.org/browse/CDRIVER-3534</link>
                <project id="10030" key="CDRIVER">C Driver</project>
                    <description>&lt;p&gt;To support the MONGODB-AWS authentication mechanism, the driver will need to make signed AWS requests. The &lt;a href=&quot;https://github.com/mongodb/libmongocrypt/tree/master/kms-message&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;kms-message library&lt;/a&gt; does exactly that.&lt;/p&gt;

&lt;p&gt;Here is a rough sketch of what I had in mind. Feel free to amend as needed.&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Put kms-message into src/libmongoc/kms-message (as a sibling directory of zlib-1.2.11)&lt;/li&gt;
	&lt;li&gt;Do not use or alter the CMakeLists.txt (or any files) within kms-message, so we can copy over kms-message again in future. Instead, have src/libmongoc/CMakeLists.txt responsible for adding kms-message files to dist.&lt;/li&gt;
	&lt;li&gt;Similar to zlib, add the sources for kms-message in src/libmongoc/CMakeLists.txt. Do not define KMS_MSG_EXPORT, as we should not be exporting kms-message symbols.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also to consider. If it seems a lot cleaner, we could move both zlib-1.2.11 and kms-message into a subdirectory named &quot;vendor&quot;.&lt;/p&gt;

&lt;p&gt;We don&apos;t need rigorous testing (if anything, maybe just check calling a kms function from libmongoc as a one-off test). The implementation of &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-3424&quot; title=&quot;Support for allowDiskUse on find operations&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-3424&quot;&gt;&lt;del&gt;CDRIVER-3424&lt;/del&gt;&lt;/a&gt; will test by virtue of using kms-message.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1143471">CDRIVER-3534</key>
            <summary>Vendor kms-message</summary>
                <type id="3" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14718&amp;avatarType=issuetype">Task</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="13201">Fixed</resolution>
                                        <assignee username="roberto.sanchez@mongodb.com">Roberto Sanchez</assignee>
                                    <reporter username="kevin.albertson@mongodb.com">Kevin Albertson</reporter>
                        <labels>
                    </labels>
                <created>Tue, 11 Feb 2020 18:51:01 +0000</created>
                <updated>Sat, 28 Oct 2023 11:28:55 +0000</updated>
                            <resolved>Mon, 24 Feb 2020 15:34:32 +0000</resolved>
                                                    <fixVersion>1.17.0-beta</fixVersion>
                    <fixVersion>1.17.0</fixVersion>
                                    <component>libmongoc</component>
                                        <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="2887820" author="xgen-internal-githook" created="Fri, 21 Feb 2020 01:51:04 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Kevin Albertson&apos;, &apos;username&apos;: &apos;kevinAlbs&apos;, &apos;email&apos;: &apos;kevin.albertson@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-3534&quot; title=&quot;Vendor kms-message&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-3534&quot;&gt;&lt;del&gt;CDRIVER-3534&lt;/del&gt;&lt;/a&gt; tweak kms-message vendoring&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;simplify vendoring by pulling in sources instead of linking against&lt;br/&gt;
static libkms_message/object library&lt;/li&gt;
	&lt;li&gt;pull in fix duplicate symbol error with bson_port.h&lt;/li&gt;
	&lt;li&gt;replace cmake directive LESS_EQUAL with wider supported LESS&lt;/li&gt;
	&lt;li&gt;fix compile on Windows by defining KMS_MSG_STATIC&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/f7ad605eb58dd3baaaf4241fb027f31315270ccf&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/f7ad605eb58dd3baaaf4241fb027f31315270ccf&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="2885449" author="xgen-internal-githook" created="Wed, 19 Feb 2020 20:20:25 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;kevinAlbs&apos;, &apos;name&apos;: &apos;Kevin Albertson&apos;, &apos;email&apos;: &apos;kevin.albertson@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-3534&quot; title=&quot;Vendor kms-message&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-3534&quot;&gt;&lt;del&gt;CDRIVER-3534&lt;/del&gt;&lt;/a&gt; build kms-message with -fPIC&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/98728780788c288ef643534e016ceb137998eefa&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/98728780788c288ef643534e016ceb137998eefa&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2883584" author="xgen-internal-githook" created="Wed, 19 Feb 2020 00:36:15 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;rcsanchez97&apos;, &apos;name&apos;: &apos;Roberto C. S&#225;nchez&apos;, &apos;email&apos;: &apos;roberto@connexer.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-3534&quot; title=&quot;Vendor kms-message&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-3534&quot;&gt;&lt;del&gt;CDRIVER-3534&lt;/del&gt;&lt;/a&gt; vendor kms-message library&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/489cdf4283ae4040f3cf87adc4350714e951595f&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/489cdf4283ae4040f3cf87adc4350714e951595f&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2874330" author="kevin.albertson" created="Wed, 12 Feb 2020 17:11:22 +0000"  >&lt;p&gt;In deciding on vendoring kms-message, &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=roberto.sanchez&quot; class=&quot;user-hover&quot; rel=&quot;roberto.sanchez&quot;&gt;roberto.sanchez&lt;/a&gt; and I discussed these options.&lt;/p&gt;

&lt;p&gt;1. vendor kms-message&lt;br/&gt;
2. require C driver consumers to first obtain and at least partially build libmongocrypt, and have libmongoc link against libkms_message.&lt;br/&gt;
3. reference kms-message as a Git submodule&lt;br/&gt;
4. split kms-message into a separate library&lt;/p&gt;

&lt;p&gt;(2) seems like it may be an unreasonable ask of users. It would require users to first obtain libbson, build libmongocrypt (which is only required for Client Side Field Level Encryption &lt;em&gt;not&lt;/em&gt; authenticating with MONGODB-AWS), then link against libkms_message built from that project.&lt;br/&gt;
(3) seemed viable, and that it might produce less churn when updating kms-message. But we&apos;ve historically decided against using a git submodule to utilize libbson (see &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-2416&quot; title=&quot;Merge libbson repository into mongo-c-driver&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-2416&quot;&gt;&lt;del&gt;CDRIVER-2416&lt;/del&gt;&lt;/a&gt;). Though the relationship between libmongoc and kms-message would be simpler than the relationship between libmongoc and libbson, there&apos;s still the issue that kms-message is nested inside libmongocrypt. The submodule approach would not allow for KMS support in Debian builds and probably not in Fedora builds either.&lt;br/&gt;
(4) could pave the way for offering kms-message as its own package. But this would increase maintenance burden. Though kms-message seems like a generically useful library, aside from libmongoc and libmongocrypt there&apos;s no reason to expose it further currently.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="988513">CDRIVER-3423</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|hwdwnr:</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>