Skip to content

drop SMB support - #22652

Closed
bagder wants to merge 2 commits into
masterfrom
bagder/rm-smb
Closed

bagder wants to merge 2 commits into
masterfrom
bagder/rm-smb

Conversation

@bagder

@bagder bagder commented Aug 24, 2026

Copy link
Copy Markdown
Member

For 8.23.0

@bagder bagder added feature-window A merge of this requires an open feature window SMB labels Aug 24, 2026
@github-actions github-actions Bot added cmdline tool tests CI Continuous Integration labels Aug 24, 2026
@bagder
bagder requested a lite review from Copilot August 24, 2026 07:46
Comment thread .github/workflows/linux.yml
Comment thread .circleci/config.yml Outdated

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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.h and 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.

Comment thread .circleci/config.yml Outdated
Comment thread lib/protocol.c Outdated
@bagder
bagder marked this pull request as ready for review August 24, 2026 07:57
@hasselmm

Copy link
Copy Markdown

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?

@bagder

bagder commented Aug 24, 2026

Copy link
Copy Markdown
Member Author

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 DEPRECATE.md file for just as long.

This PR is just the last step in a long walk.

Comment thread .circleci/config.yml Outdated
@bagder

This comment was marked as outdated.

bagder added a commit that referenced this pull request Aug 24, 2026
bagder added a commit that referenced this pull request Sep 8, 2026
@bagder bagder closed this in 7bbaf2f Sep 12, 2026
@bagder
bagder deleted the bagder/rm-smb branch September 12, 2026 13:59
vszakats added a commit that referenced this pull request Sep 12, 2026
vszakats added a commit that referenced this pull request Sep 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI Continuous Integration cmdline tool feature-window A merge of this requires an open feature window SMB tests

Development

Successfully merging this pull request may close these issues.

4 participants