OpenAtomFoundation / pikiwidb

a high-performance, large-capacity, multi-tenant, data-persistent, strong data consistency based on raft, Redis-compatible elastic KV data storage system based on RocksDB
BSD 3-Clause "New" or "Revised" License
195 stars 62 forks source link

feat: Support compile on Rocky Linux #417

Closed Iam-WenYi closed 3 weeks ago

Iam-WenYi commented 1 month ago

fix #407

完成针对于 Rocky Linux/Fedora Linux/CentOS 的移植工作,统一了编译的路径,同时删除了哈希验证(目前cmake文件的哈希设置是有问题的,每一次都会全部重新下载,因此删除)。

同时加入设置 git 使用 HTTP 1.1 的内容,规避 error: RPC failed; curl 92 HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1) 错误。

Screenshot from 2024-08-14 17-26-28 (在 Fedora Linux 上面的编译截图,顺利通过)

Summary by CodeRabbit

Summary by CodeRabbit

coderabbitai[bot] commented 1 month ago

Walkthrough

此次更新改善了PikiwiDB项目的CMake配置,主要集中在安装目录的灵活性和外部项目的管理上。引入了GNUInstallDirs模块以增强跨平台兼容性,并对多个外部库的安装路径进行了优化。这些变化提升了构建系统的灵活性和可维护性,使其更易于使用和更新。

Changes

文件 更改摘要
CMakeLists.txt 引入GNUInstallDirs,改进安装目录配置,优化库链接方式,更新输出目录设置,清理依赖。
cmake/*.cmake 多个文件添加-DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR},移除URL_HASH,提高外部项目安装的灵活性与可配置性。

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant BuildSystem
    participant ExternalLibrary

    User->>BuildSystem: 触发构建
    BuildSystem->>ExternalLibrary: 拉取外部库
    ExternalLibrary->>BuildSystem: 返回库文件
    BuildSystem->>User: 提供构建完成消息

兔兔欢欢跃,
CMake新气象,
路径灵活转,
安装更简单。
兔子欢呼声,
构建真好玩! 🐰✨


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share - [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai) - [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai) - [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai) - [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)
Tips ### Chat There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai): - Review comments: Directly reply to a review comment made by CodeRabbit. Example: - `I pushed a fix in commit .` - `Generate unit testing code for this file.` - `Open a follow-up GitHub issue for this discussion.` - Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples: - `@coderabbitai generate unit testing code for this file.` - `@coderabbitai modularize this function.` - PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples: - `@coderabbitai generate interesting stats about this repository and render them as a table.` - `@coderabbitai show all the console.log statements in this repository.` - `@coderabbitai read src/utils.ts and generate unit testing code.` - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.` - `@coderabbitai help me debug CodeRabbit configuration file.` Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. ### CodeRabbit Commands (invoked as PR comments) - `@coderabbitai pause` to pause the reviews on a PR. - `@coderabbitai resume` to resume the paused reviews. - `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository. - `@coderabbitai full review` to do a full review from scratch and review all the files again. - `@coderabbitai summary` to regenerate the summary of the PR. - `@coderabbitai resolve` resolve all the CodeRabbit review comments. - `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository. - `@coderabbitai help` to get help. Additionally, you can add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed. ### CodeRabbit Configuration File (`.coderabbit.yaml`) - You can programmatically configure CodeRabbit by adding a `.coderabbit.yaml` file to the root of your repository. - Please see the [configuration documentation](https://docs.coderabbit.ai/guides/configure-coderabbit) for more information. - If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: `# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json` ### Documentation and Community - Visit our [Documentation](https://coderabbit.ai/docs) for detailed information on how to use CodeRabbit. - Join our [Discord Community](https://discord.com/invite/GsXnASn26c) to get help, request features, and share feedback. - Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.
lqxhub commented 1 month ago

为什么把 ExternalProject_Add URL_HASH 都删掉了

Iam-WenYi commented 1 month ago

为什么把 ExternalProject_Add URL_HASH 都删掉了

因为在测试的时候发现,很多 URL HASH 所填写的内容是错误的,导致每一次都需要重新下载,所以直接删除了

Issues-translate-bot commented 1 month ago

Bot detected the issue body's language is not English, translate it automatically.


Why were ExternalProject_Add URL_HASH deleted?

Because during the test, it was found that the contents filled in many URL HASH were wrong, which required re-downloading every time, so I deleted them directly.

lqxhub commented 4 weeks ago

为什么把 ExternalProject_Add URL_HASH 都删掉了

因为在测试的时候发现,很多 URL HASH 所填写的内容是错误的,导致每一次都需要重新下载,所以直接删除了

https://cmake.org/cmake/help/latest/module/ExternalProject.html image

如果没有指定 hash 值 每次都会去下载, 我记得如果 填的hash值有问题, 会提示下载错误, 不能编译的, 如果是我填的, 这些值是我手动下载压缩文件后 , 用命令计算的, 应该不会有错