Skip to content

V3.0.2 upgrade deps #4991

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 17 commits into
base: v3.0
Choose a base branch
from
Draft

V3.0.2 upgrade deps #4991

wants to merge 17 commits into from

Conversation

mirostauder
Copy link
Collaborator

@mirostauder mirostauder commented Jun 13, 2025

merge of proposed deps upgrades for v3.0.2

v3.0 upgrade libmicrohttpd to v1.0.1 #4971
v3.0 upgrade sqlite3 to v3.50.0 #4972
v3.0 upgrade curl to v8.14.0 #4973 + cherry-pick 1b19bd2 from #4990
v3.0 upgrade nlohmann json to v3.12.0 #4974
v3.0 upgrade nlohmann json to v3.12.0 cherry-pick 1797faf 992e2c2 from #4990
v3.0 add abseil 20250512 cherry-pick dc6beb7 4271b02 from #4990

@mirostauder mirostauder self-assigned this Jun 13, 2025
Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Summary of Changes

Hello @mirostauder, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request focuses on upgrading several core dependencies to their latest versions as part of preparations for the v3.0.2 release. The changes involve updating version references, adjusting the build process in the Makefile to accommodate the new versions, and modifying existing patches to apply correctly against the updated dependency source code.

Highlights

  • Dependency Upgrades: Upgraded several key dependencies including curl (8.4.0 -> 8.14.0), libmicrohttpd (0.9.77 -> 1.0.1), nlohmann/json (3.11.2 -> 3.12.0), and sqlite3 (3.43.2 -> 3.50.0).
  • Build System Updates: Modified the deps/Makefile to correctly handle the new dependency versions, including adjusting symlink creation commands (ln -fs to ln -fsT) and updating patch application commands for sqlite3.
  • Patch File Adjustments: Updated existing patch files for sqlite3 (from_unixtime.patch, sqlite3_pass_exts.patch, throw.patch) to align with the source code structure of the new sqlite3 version (3.50.0).
  • JSON Library ABI Changes: Updated the nlohmann/json header to reflect the new version and include ABI tag changes related to diagnostic positions.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist is currently in preview and may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments to provide feedback.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configureGemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request focuses on upgrading several key dependencies, including curl, libmicrohttpd, nlohmann/json, and SQLite. The Makefile changes to use symbolic links for dependency directories are a good step towards a more robust build process.

My primary concern revolves around the removal of a patch (sqlite3.c-multiplication-overflow.patch) that was previously applied to SQLite. It's crucial to confirm that the underlying issue is addressed in the newer SQLite version to prevent potential regressions.

There's also a modification in another SQLite patch (throw.patch) related to the toupper declaration, which might warrant a quick review to ensure it achieves the intended cross-compiler compatibility without side effects.

The updates to nlohmann/json and other libraries appear to be standard version bumps and are generally positive, assuming they've been tested for compatibility with the project.

////////////////////////////////////////////////////////////////////////////////

// ctype.h
-extern int toupper (int __c) __THROW;
+extern int toupper (int __c);
+//extern int toupper (int __c) __THROW;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The modification to the toupper declaration has changed. Previously, the patch seemed to remove __THROW. Now, it comments out a line that includes __THROW.

Original (presumably in sqlite3.c): extern int toupper (int __c) __THROW;
Old patch effect: extern int toupper (int __c);
New patch effect: //extern int toupper (int __c) __THROW; (if the original line is still present)

This change effectively comments out the __THROW declaration if it exists, which might be intended for broader compiler compatibility by relying on system headers or a less strict declaration. Please ensure this aligns with the intended behavior for toupper across all supported compilers and that it doesn't inadvertently hide a necessary declaration or introduce other issues. If the goal is simply to remove __THROW, ensuring the line is fully removed or conditionally compiled might be cleaner than commenting it out via a patch.

@mirostauder mirostauder linked an issue Jun 18, 2025 that may be closed by this pull request
18 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Evaluate upgrade of dependencies Evaluate upgrade of curl Evaluate upgrade of libmicrohttpd Upgrade SQLite3 to the latest
2 participants