Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 1361166 - libbson-1.4.0 is available
Summary: libbson-1.4.0 is available
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: libbson
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Petr Pisar
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-07-28 12:26 UTC by Upstream Release Monitoring
Modified: 2016-09-02 06:11 UTC (History)
3 users (show)

Fixed In Version: libbson-1.4.0-1.fc26
Doc Type: Enhancement
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-08-29 11:52:24 UTC


Attachments (Terms of Use)

Description Upstream Release Monitoring 2016-07-28 12:26:11 UTC
Latest upstream release: 1.4.0-beta1
Current version/release in rawhide: 1.3.5-1.fc25
URL: https://github.com/mongodb/libbson

Please consult the package updates policy before you issue an update to a stable branch: https://fedoraproject.org/wiki/Updates_Policy

More information about the service that created this bug can be found at: https://fedoraproject.org/wiki/Upstream_release_monitoring

Please keep in mind that with any upstream change, there may also be packaging changes that need to be made. Specifically, please remember that it is your responsibility to review the new version to ensure that the licensing is still correct and that no non-free or legally problematic items have been added upstream.

Based on the information from anitya:  https://release-monitoring.org/project/9537/

Comment 1 Upstream Release Monitoring 2016-08-11 00:15:47 UTC
Latest upstream release: 1.4.0
Current version/release in rawhide: 1.3.5-1.fc25
URL: https://github.com/mongodb/libbson

Please consult the package updates policy before you issue an update to a stable branch: https://fedoraproject.org/wiki/Updates_Policy

More information about the service that created this bug can be found at: https://fedoraproject.org/wiki/Upstream_release_monitoring

Please keep in mind that with any upstream change, there may also be packaging changes that need to be made. Specifically, please remember that it is your responsibility to review the new version to ensure that the licensing is still correct and that no non-free or legally problematic items have been added upstream.

Based on the information from anitya:  https://release-monitoring.org/project/9537/

Comment 2 Remi Collet 2016-08-11 05:49:42 UTC
FYI, 1.3.5 => 1.4.0 API compzatibility report:
http://rpms.remirepo.net/compat_reports/libbson/1.3.5_to_1.4.0/compat_report.html

Comment 3 Petr Pisar 2016-08-29 08:19:29 UTC
The bson_iter_visit_all() function is not versioned, so it can happen an old client will supply an old bson_visitor_t structure without the visit_unsupported_type field to the new function that accesses the field. Thus the 1.3.5 and 1.4.0 are not ABI compatible. Therefore 1.4.0 will be pushed only into Rawhide.

Comment 4 Petr Pisar 2016-08-29 08:42:17 UTC
Upstream knows the ABI tracking is broken <https://jira.mongodb.org/browse/CDRIVER-1034>.

Comment 5 Petr Pisar 2016-08-29 11:52:24 UTC
I also rebuilt all reverse dependencies.

Comment 6 Remi Collet 2016-09-01 16:22:11 UTC
(In reply to Petr Pisar from comment #3)
> The bson_iter_visit_all() function is not versioned, so it can happen an old
> client will supply an old bson_visitor_t structure without the
> visit_unsupported_type field to the new function that accesses the field.
> Thus the 1.3.5 and 1.4.0 are not ABI compatible. Therefore 1.4.0 will be
> pushed only into Rawhide.

I think the struct size is unchanged.

+ visit_unsupported_type was added
+ padding size was reduce from 9 to 8

So an application build with the old version (and which properly initialize the struct t with zeroes) should work with the new version of the library.


diff -Bb on bson-types.h


@@ -466,18 +501,33 @@
    bool (*visit_minkey)     (const bson_iter_t *iter,
                              const char        *key,
                              void              *data);
+   /* if set, called instead of visit_corrupt when an apparently valid BSON
+    * includes an unrecognized field type (reading future version of BSON) */
+   void (*visit_unsupported_type) (const bson_iter_t *iter,
+                                   const char        *key,
+                                   uint32_t           type_code,
+                                   void              *data);
+#ifdef BSON_EXPERIMENTAL_FEATURES
+   bool (*visit_decimal128)       (const bson_iter_t       *iter,
+                                   const char              *key,
+                                   const bson_decimal128_t *v_decimal128,
+                                   void                    *data);
 
-   void *padding[9];
+   void *padding[7];
+#else
+   void *padding[8];
+#endif
 } bson_visitor_t
 BSON_ALIGNED_END (8);

Comment 7 Petr Pisar 2016-09-02 06:11:53 UTC
Oh yes, that's the reason why the tool says it's compatible. But nothing guarantees an application will zero the "padding" member before passing it to a libbson function. libbson does not provide any bson_visitor_t constructor that would do it automatically and the manual page does not mandate doing so (there is only an example that do so).

There are only three Fedora packages that uses libbson and the only one that defines bson_visitor_t variable is php-pecl-mongodb that fills the end of the structure using "{NULL}". So Fedora packages are should be safe.

If you really need 1.4.0 in older Fedoras, I will put it there, but I wouldn't rather do that.


Note You need to log in before you can comment on or make changes to this bug.