Repository navigation
drop SMB support - #22652
drop SMB support#22652bagder wants to merge 2 commits into
Conversation
There was a problem hiding this comment.
Pull request overview
This pull request removes SMB/SMBS protocol support across curl/libcurl for the 8.23.0 cycle, including the SMB protocol implementation, scheme registration, test infrastructure, build options, and related documentation references.
Changes:
- Remove SMB/SMBS from libcurl’s supported protocol list and scheme dispatch (including deleting
lib/smb.c/lib/smb.hand associated build plumbing). - Remove SMB test server and SMB-specific test cases/variables from the test suite and CI configurations.
- Update documentation to no longer advertise SMB/SMBS support and to record the removal in protocol/history docs.
Reviewed changes
Copilot reviewed 52 out of 52 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/unit/unit1627.c | Removes SMB/SMBS from the unit test list of recognized schemes. |
| tests/smbserver.py | Deletes the SMB test server implementation (impacket-based). |
| tests/servers.pm | Removes SMB server start/verify logic and SMB-related variables. |
| tests/serverhelp.pm | Removes SMB/SMBS from the supported-protocol validation regex. |
| tests/requirements.txt | Removes the impacket dependency previously used for SMB testing. |
| tests/Makefile.am | Stops distributing SMB server script and SMB test requirements. |
| tests/data/test1850 | Deletes an SMB test case. |
| tests/data/test1451 | Deletes an SMB test case. |
| tests/data/Makefile.am | Removes the deleted SMB tests from the test data list. |
| scripts/schemetable.c | Removes smb/smbs from the scheme table generator inputs. |
| scripts/cd2nroff | Removes SMB/SMBS from the known protocol list for docs tooling. |
| RELEASE-NOTES | Removes SMB from “planned upcoming removals” (now completed). |
| README.md | Removes SMB/SMBS from the protocol list in the project overview. |
| projects/OS400/README.OS400 | Removes SMB from the OS/400 protocol list. |
| lib/version.c | Removes SMB/SMBS from the runtime-supported protocol string list. |
| lib/urldata.h | Drops the SMB header include. |
| lib/smb.h | Deletes the SMB protocol header. |
| lib/smb.c | Deletes the SMB protocol implementation. |
| lib/protocol.h | Removes SMB ports/family macros and scheme extern declarations. |
| lib/protocol.c | Removes SMB/SMBS scheme entries and reworks scheme hash table. |
| lib/Makefile.inc | Removes SMB sources from the autotools build file lists. |
| lib/curl_config-cmake.h.in | Removes the CMake config define for CURL_ENABLE_SMB. |
| docs/URL-SYNTAX.md | Removes SMB/SMBS from supported schemes and SMB URL syntax section. |
| docs/TODO.md | Removes SMB test-server TODO entry. |
| docs/tests/TEST-SUITE.md | Updates test suite requirements to drop SMB/impacket prerequisites. |
| docs/tests/FILEFORMAT.md | Removes SMB server and SMB port substitution variables from docs. |
| docs/MANUAL.md | Removes SMB usage examples and SMB upload section. |
| docs/libcurl/symbols-in-versions | Marks SMB/SMBS protocol bits as ending in 8.23.0 in this listing. |
| docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS.md | Removes SMB/SMBS from documented protocol bit lists. |
| docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS_STR.md | Removes SMB/SMBS from protocol string lists; adds removal history note. |
| docs/libcurl/opts/CURLOPT_PROTOCOLS.md | Removes SMB/SMBS from documented protocol bit lists. |
| docs/libcurl/opts/CURLOPT_PROTOCOLS_STR.md | Removes SMB/SMBS from protocol string lists; adds removal history note. |
| docs/libcurl/opts/CURLOPT_FILETIME.md | Removes SMB from the list of protocols supporting filetime. |
| docs/libcurl/opts/CURLOPT_DEFAULT_PROTOCOL.md | Removes SMB/SMBS from the allowable default protocol list. |
| docs/libcurl/opts/CURLINFO_PROTOCOL.md | Removes SMB/SMBS from the documented possible return values list. |
| docs/INSTALL-CMAKE.md | Removes CURL_ENABLE_SMB from documented CMake options. |
| docs/HISTORY.md | Records SMB support removal in the 2026 history section. |
| docs/FEATURES.md | Removes SMB feature section. |
| docs/FAQ.md | Removes SMB/SMBS from the protocol list in the FAQ introduction. |
| docs/CURL-DISABLE.md | Removes CURL_ENABLE_SMB documentation entry. |
| docs/cmdline-opts/_PROTOCOLS.md | Removes SMB(S) protocol description. |
| docs/cmdline-opts/_DESCRIPTION.md | Removes SMB/SMBS from the overall supported-protocol description. |
| configure.ac | Removes the --enable-smb/--disable-smb configure option and protocol enable logic. |
| CMakeLists.txt | Removes the CURL_ENABLE_SMB option and SMB/SMBS feature toggles. |
| .github/workflows/windows.yml | Removes SMB-related test prereq installation in Windows CI. |
| .github/workflows/macos.yml | Removes SMB-related test prereq installation in macOS CI. |
| .github/workflows/linux.yml | Removes --enable-smb/--disable-smb usage in Linux CI configure matrices and SMB prereqs. |
| .github/workflows/http3-linux.yml | Removes SMB prereq installation step. |
| .github/workflows/checksrc.yml | Stops installing the removed tests/requirements.txt. |
| .github/scripts/pyspelling.words | Removes lowercase smb/smbs from spelling allowlist. |
| .github/labeler.yml | Removes SMB label auto-assignment rules. |
| .circleci/config.yml | Updates Python dependency install command after removing SMB test requirements. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
Just came around because I saw your announcement on Mastodon and wondered about the rationale for this change. Could not find anything in this pull request or its commits. Isn't this a bit short for a project claiming high coding standards? |
|
This removal has been discussed and mentioned for 6 months on the mailing list(s), in release announcements and in release videos. The deprecated status and planned removal has been documented in the This PR is just the last step in a long walk. |
This comment was marked as outdated.
This comment was marked as outdated.
0ba67ee to
8a6ca86
Compare
Closes #22652
8a6ca86 to
6b6d9cf
Compare
For 8.23.0