-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
Merge SPL #7556
Merge SPL #7556
Conversation
Codecov Report
@@ Coverage Diff @@
## master #7556 +/- ##
==========================================
+ Coverage 77.61% 77.73% +0.12%
==========================================
Files 336 362 +26
Lines 107608 110287 +2679
==========================================
+ Hits 83522 85737 +2215
- Misses 24086 24550 +464
Continue to review full report at Codecov.
|
Are the licensing issues expected? |
@fling- I will probably get complaints from armchair experts after sys-fs/zfs-kmod is marked as both GPL and CDDL after this gets merged, but otherwise, no. Those complaints on sys-fs/zfs were the reason why I got the rc files relicensed under the BSD license several years ago. :/ |
@fling- to be clear there is no licensing change. The SPL is still GPL licensed, it's only being relocated. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I looked at the changes to existing .c/.h files and they all looked reasonable. I assume that _BOOT
was never used on Linux. Out of curiosity, how did you determine which header files were needed? Did you get compilation errors, or are most of the #include
changes just code cleanup?
#else | ||
#include <strings.h> | ||
#endif | ||
#include <sys/strings.h> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks like we aren't really "determining" anything anymore.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Indeed. I'll drop the comment when I'm here.
@ahrens thanks for taking a look. The issues with the headers were the result of me not bringing over all the headers from the SPL. There were quite a few which were entirely empty, or contained only a single |
e2cea1d
to
cd73aef
Compare
@behlendorf are there any files in particular you want us to review? |
@tonyhutter I belive the most helpful thing would be if you could test the PR locally in your environment and make sure everything works as expected. The buildbot does provide a substanable amount of build/test coverage but there's still value in manually kicking the tires so to speak. |
Merge a minimal version of the zfsonlinux/spl repository in to the zfsonlinux/zfs repository. Care was taken to prevent file conflicts when merging and to preserve the spl repository history. The spl kernel module remains under the GPL license as documented by the additional THIRDPARTYLICENSE.gplv2 file. Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Minimal changes required to integrate the SPL sources in to the ZFS repository build infrastructure. Build system and packaging: * Renamed SPL_* autoconf m4 macros to ZFS_*. * Removed redundant SPL_* autoconf m4 macros. * Updated the RPM spec files to remove SPL package dependency. * The zfs package obsoletes the spl package, and the zfs-kmod package obsoletes the spl-kmod package. * The zfs-kmod-devel* packages were updated to add compatibility symlinks under /usr/src/spl-x.y.z until all dependent packages can be updated. They will be removed in a future release. * Updated copy-builtin script for in-kernel builds. * Updated DKMS package to include the spl.ko. * Updated stale AUTHORS file to include all contributors. * Updated stale COPYRIGHT and included the SPL as an exception. Required code changes: * Removed redundant HAVE_SPL macro. * Removed _BOOT from nvpairs since it doesn't apply for Linux. * Initial header cleanup (removal of empty headers, refactoring). * Remove SPL repository clone/build from zimport.sh. * Use of DEFINE_RATELIMIT_STATE and DEFINE_SPINLOCK removed due to build issues when forcing C99 compilation. * Replaced legacy ACCESS_ONCE with READ_ONCE. * Include needed headers for `current` and `EXPORT_SYMBOL`. Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> TEST_ZIMPORT_SKIP="yes" Build-ZFS: yes Build-SPL: no
cd73aef
to
79e5b00
Compare
Kmem tracking still works (mem leaks added for testing):
|
This seems to have broken the gentoo 9999 ebuilds. I assume spl-9999 has to go away.
Calculating dependencies *** Resuming merge...
|
@drescherjm that's going to be a question for how @ryao want's to handle this. |
I expected that.. |
@drescherjm @behlendorf It is fixed. Rebuilding sys-fs/zfs-kmod-9999 will now uninstall sys-kernel/spl. I am leaving sys-kernel/spl-9999 around for the time being. It is still useful if anyone wants to use it to build an old version by specifying the commit, but I plan to remove it when 0.8.0 is released. |
Thanks. I am testing now. |
Description
This PR merges the zfsonlinux/spl repository in to the zfsonlinux/zfs respository and consists of two parts.
In the first part a merge-spl branch is created in the spl repository. The purpose of this branch is to slightly reorganize the spl source in order to allow it to merge cleanly with the zfs repository. Files which are no longer needed were removed and the rest were moved to non-conflicting locations. This branch was then merged in to the zfs repository to preserve the entire commit history.
The second portion of this PR makes the required changes to integrate the relocated spl kernel module in to the zfs repositories build system. After this point the master branch and 0.8.x and newer releases will not depend on an external spl repository.
NOTE: This PR has been squashed for the purposes of automated testing. The merge-spl branch which preserves all the history, but is otherwise identical, will be used for the real merge.
Motivation and Context
Having the spl source code split for the zfs source code is an unnecessary complication for developers, packagers, and end users. Bringing them together eliminates an entire class of issue which can result when using mismatched versions.
How Has This Been Tested?
Locally built and tested the following:
Pending results of the buildbot to indentify any missing build system issues.
Types of changes
Checklist:
Signed-off-by
.