--- build.xml.orig	2026-03-17 23:20:36 UTC
+++ build.xml
@@ -32,6 +32,7 @@ -->
     <property file="build.properties.default" />
     <property file="${user.home}/.ant/build.properties"/>
     <property name="debuglevel" value="source,lines,vars"/>
+    <property name="pycmd" value="python"/>
 
     <!-- default version and SCM information -->
     <property name="base.version" value="4.1.11"/>
@@ -93,7 +94,7 @@ -->
     <condition property="version" value="${base.version}">
       <isset property="release"/>
     </condition>
-    <property name="version" value="${base.version}-SNAPSHOT"/>
+    <property name="version" value="${base.version}"/>
     <property name="version.properties.dir"
               value="${build.src.resources}/org/apache/cassandra/config/" />
     <property name="final.name" value="${ant.project.name}-${version}"/>
@@ -350,6 +351,24 @@ -->
             <exclude name="**/ant-*.jar"/>
         </fileset>
     </path>
+    <path id="cassandra.classpath.staged">
+        <file file="${build.dir}/${final.name}.jar"/> <!-- we need the jar for tests and benchmarks (multi-version jar) -->
+        <fileset dir="${stagedlib}">
+            <include name="**/*.jar" />
+        </fileset>
+        <fileset dir="${build.dir.lib}">
+            <include name="**/assertj-core-3.15.0.jar" />
+            <include name="**/byteman*.jar" />
+            <include name="**/commons-lang-2.4.jar" />
+            <include name="**/commons-collections-3.2.1.jar" />
+            <include name="**/ohc-core-0.5.1.jar" />
+            <include name="**/ohc-core-j8-0.5.1.jar" />
+        </fileset>
+        <fileset dir="${test.lib}/jars">
+            <include name="**/*.jar" />
+            <exclude name="**/ant-*.jar"/>
+        </fileset>
+    </path>
 
   <macrodef name="create-javadoc">
     <attribute name="destdir"/>
@@ -501,6 +520,8 @@ -->
     <target name="gen-doc" description="Generate documentation" depends="gen-asciidoc,generate-cql-html" unless="ant.gen-doc.skip">
         <exec executable="make" osfamily="unix" dir="${doc.dir}">
             <arg value="html"/>
+            <arg value="PYTHON_CMD=${pycmd}"/>
+            <arg value="PYTHON_VER=${pyver}"/>
         </exec>
     </target>
 
@@ -965,7 +986,7 @@ -->
     <!--
         The build target builds all the .class files
     -->
-    <target name="build" depends="resolver-retrieve-build,build-project,checkstyle" description="Compile Cassandra classes"/>
+    <target name="build" depends="resolver-retrieve-build,build-project" description="Compile Cassandra classes"/>
     <target name="_build_unsafe" depends="resolver-retrieve-build,build-project" description="Compile Cassandra classes without checks"/>
     <target name="codecoverage" depends="jacoco-run,jacoco-report" description="Create code coverage report"/>
 
@@ -986,7 +1007,7 @@ -->
         </javac>
     </target>
 
-    <target depends="init,gen-cql3-grammar,generate-cql-html,generate-jflex-java,rat-check"
+    <target depends="init,gen-cql3-grammar,generate-cql-html,generate-jflex-java"
             name="build-project">
         <echo message="${ant.project.name}: ${ant.file}"/>
         <!-- Order matters! -->
@@ -1339,6 +1360,89 @@ -->
       </copy>
     </target>
 
+    <!-- FreeBSD for staging -->
+    <target name="freebsd-stage" depends="jar"
+            description="Create Cassandra directory structure for staging">
+      <mkdir dir="${dist.dir}"/>
+      <copy todir="${dist.dir}/lib">
+        <fileset dir="${build.lib}">
+          <exclude name="sigar*.jar"/>
+          <exclude name="sigar-bin/*"/>
+          <exclude name="snappy*.jar"/>
+          <exclude name="netty-all*.jar"/>
+          <exclude name="ohc*.jar"/>
+          <exclude name="licenses/snappy*.txt"/>
+          <exclude name="licenses/netty-all*.txt"/>
+          <exclude name="licenses/ohc*.txt"/>
+        </fileset>
+        <fileset dir="${build.dir}">
+          <include name="${final.name}.jar" />
+        </fileset>
+      </copy>
+      <copy todir="${dist.dir}/bin">
+        <fileset dir="bin">
+	  <exclude name="*.bat" />
+	  <exclude name="*.ps1" />
+	  <exclude name="*.orig" />
+	</fileset>
+      </copy>
+      <copy todir="${dist.dir}/conf">
+        <fileset dir="conf">
+          <exclude name="*.ps1" />
+	  <exclude name="*.orig" />
+        </fileset>
+      </copy>
+      <copy todir="${dist.dir}/pylib">
+        <fileset dir="pylib">
+          <include name="**" />
+          <exclude name="**/*.pyc" />
+          <exclude name="Dockerfile.ubuntu.*" />
+          <exclude name="cqlshlib/test/**" />
+          <exclude name="cassandra-cqlsh-tests.sh" />
+        </fileset>
+      </copy>
+      <copy todir="${dist.dir}/">
+        <fileset dir="${basedir}">
+          <include name="*.txt" />
+        </fileset>
+      </copy>
+      <copy todir="${dist.dir}/tools/bin">
+        <fileset dir="${basedir}/tools/bin">
+          <exclude name="*.bat" />
+          <exclude name="*.ps1" />
+	  <exclude name="*.orig" />
+        </fileset>
+      </copy>
+      <copy todir="${dist.dir}/tools/">
+        <fileset dir="${basedir}/tools/">
+            <include name="*.yaml"/>
+	</fileset>
+      </copy>
+      <copy todir="${dist.dir}/tools/lib">
+        <fileset dir="${build.dir}/tools/lib/">
+            <include name="*.jar" />
+        </fileset>
+      </copy>
+    </target>
+
+    <target name="freebsd-stage-doc" depends="freebsd-stage,javadoc,gen-doc"
+            description="Create Cassandra directory structure for staging, including docs">
+      <copy todir="${dist.dir}/javadoc">
+        <fileset dir="${javadoc.dir}"/>
+      </copy>
+      <copy todir="${dist.dir}/doc">
+        <fileset dir="doc">
+          <include name="cql3/CQL.html" />
+          <include name="cql3/CQL.css" />
+          <include name="SASI.md" />
+        </fileset>
+      </copy>
+      <copy todir="${dist.dir}/doc/html">
+        <fileset dir="doc" />
+        <globmapper from="build/html/*" to="*"/>
+      </copy>
+    </target>
+    
     <!-- creates release tarballs -->
     <target name="artifacts" depends="_artifacts-init,gen-doc,sources-jar"
             description="Create Cassandra release artifacts">
@@ -1621,7 +1725,7 @@ -->
           <pathelement location="${stress.build.classes}"/>
           <pathelement location="${fqltool.build.classes}"/>
           <pathelement location="${test.classes}"/>
-          <path refid="cassandra.classpath.test" />
+          <path refid="cassandra.classpath.staged" />
           <pathelement location="${stress.test.classes}"/>
           <pathelement location="${fqltool.test.classes}"/>
           <pathelement location="${test.conf}"/>
@@ -2302,7 +2406,7 @@ -->
   </target>
 
   <!-- ECJ 4.6.1 in standalone mode does not work with JPMS, so we skip this target for Java 11 -->
-  <target name="eclipse-warnings" depends="build, _assert_rat_output" description="Run eclipse compiler code analysis" if="java.version.8">
+  <target name="eclipse-warnings" depends="build" description="Run eclipse compiler code analysis" if="java.version.8">
         <property name="ecj.log.dir" value="${build.dir}/ecj" />
         <property name="ecj.warnings.file" value="${ecj.log.dir}/eclipse_compiler_checks.txt"/>
         <mkdir  dir="${ecj.log.dir}" />
