pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/math



Module Name:    pkgsrc
Committed By:   adam
Date:           Tue Jun 13 17:36:58 UTC 2023

Modified Files:
        pkgsrc/math: Makefile
Added Files:
        pkgsrc/math/py-xgboost: DESCR Makefile PLIST distinfo
        pkgsrc/math/py-xgboost/patches: patch-xgboost_dmlc-core_CMakeLists.txt
            patch-xgboost_include_xgboost_collective_socket.h
            patch-xgboost_libpath.py

Log Message:
py-xgboost: added version 1.7.5

XGBoost is an optimized distributed gradient boosting library designed to be
highly efficient, flexible and portable. It implements machine learning
algorithms under the Gradient Boosting framework. XGBoost provides a parallel
tree boosting (also known as GBDT, GBM) that solve many data science problems
in a fast and accurate way. The same code runs on major distributed environment
(Kubernetes, Hadoop, SGE, Dask, Spark, PySpark) and can solve problems beyond
billions of examples.


To generate a diff of this commit:
cvs rdiff -u -r1.565 -r1.566 pkgsrc/math/Makefile
cvs rdiff -u -r0 -r1.1 pkgsrc/math/py-xgboost/DESCR \
    pkgsrc/math/py-xgboost/Makefile pkgsrc/math/py-xgboost/PLIST \
    pkgsrc/math/py-xgboost/distinfo
cvs rdiff -u -r0 -r1.1 \
    pkgsrc/math/py-xgboost/patches/patch-xgboost_dmlc-core_CMakeLists.txt \
    pkgsrc/math/py-xgboost/patches/patch-xgboost_include_xgboost_collective_socket.h \
    pkgsrc/math/py-xgboost/patches/patch-xgboost_libpath.py

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/math/Makefile
diff -u pkgsrc/math/Makefile:1.565 pkgsrc/math/Makefile:1.566
--- pkgsrc/math/Makefile:1.565  Sun Jun 11 02:56:46 2023
+++ pkgsrc/math/Makefile        Tue Jun 13 17:36:58 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.565 2023/06/11 02:56:46 mef Exp $
+# $NetBSD: Makefile,v 1.566 2023/06/13 17:36:58 adam Exp $
 
 COMMENT=       Mathematics
 
@@ -432,6 +432,7 @@ SUBDIR+=    py-tables
 SUBDIR+=       py-tensorboard
 SUBDIR+=       py-uncertainties
 SUBDIR+=       py-xarray
+SUBDIR+=       py-xgboost
 SUBDIR+=       py-z3
 SUBDIR+=       qalculate
 SUBDIR+=       qalculate-gtk

Added files:

Index: pkgsrc/math/py-xgboost/DESCR
diff -u /dev/null pkgsrc/math/py-xgboost/DESCR:1.1
--- /dev/null   Tue Jun 13 17:36:58 2023
+++ pkgsrc/math/py-xgboost/DESCR        Tue Jun 13 17:36:58 2023
@@ -0,0 +1,7 @@
+XGBoost is an optimized distributed gradient boosting library designed to be
+highly efficient, flexible and portable. It implements machine learning
+algorithms under the Gradient Boosting framework. XGBoost provides a parallel
+tree boosting (also known as GBDT, GBM) that solve many data science problems
+in a fast and accurate way. The same code runs on major distributed environment
+(Kubernetes, Hadoop, SGE, Dask, Spark, PySpark) and can solve problems beyond
+billions of examples.
Index: pkgsrc/math/py-xgboost/Makefile
diff -u /dev/null pkgsrc/math/py-xgboost/Makefile:1.1
--- /dev/null   Tue Jun 13 17:36:58 2023
+++ pkgsrc/math/py-xgboost/Makefile     Tue Jun 13 17:36:58 2023
@@ -0,0 +1,37 @@
+# $NetBSD: Makefile,v 1.1 2023/06/13 17:36:58 adam Exp $
+
+DISTNAME=      xgboost-1.7.5
+PKGNAME=       ${PYPKGPREFIX}-${DISTNAME}
+CATEGORIES=    math python
+MASTER_SITES=  ${MASTER_SITE_PYPI:=x/xgboost/}
+
+MAINTAINER=    pkgsrc-users%NetBSD.org@localhost
+HOMEPAGE=      https://github.com/dmlc/xgboost
+COMMENT=       XGBoost Python Package
+LICENSE=       apache-2.0
+
+DEPENDS+=      ${PYPKGPREFIX}-scipy-[0-9]*:../../math/py-scipy
+
+USE_LANGUAGES+=        c gnu++17
+USE_TOOLS+=    cmake ninja
+
+REPLACE_PYTHON+=       xgboost/dmlc-core/tracker/dmlc-submit
+REPLACE_PYTHON+=       xgboost/dmlc-core/tracker/dmlc_tracker/launcher.py
+REPLACE_SH+=           xgboost/dmlc-core/tracker/yarn/build.sh
+
+PYTHON_VERSIONS_INCOMPATIBLE=  27 37 # py-scipy
+
+pre-configure:
+       ${RM} ${WRKSRC}/xgboost/include/xgboost/collective/socket.h.orig
+
+.include "../../mk/bsd.prefs.mk"
+.if ${OPSYS} == "Darwin"
+post-install:
+       install_name_tool -id ${PREFIX}/${PYSITELIB}/xgboost/lib/libxgboost.dylib \
+       ${DESTDIR}${PREFIX}/${PYSITELIB}/xgboost/lib/libxgboost.dylib
+.endif
+
+.include "../../math/py-numpy/buildlink3.mk"
+.include "../../lang/python/application.mk"
+.include "../../lang/python/egg.mk"
+.include "../../mk/bsd.pkg.mk"
Index: pkgsrc/math/py-xgboost/PLIST
diff -u /dev/null pkgsrc/math/py-xgboost/PLIST:1.1
--- /dev/null   Tue Jun 13 17:36:58 2023
+++ pkgsrc/math/py-xgboost/PLIST        Tue Jun 13 17:36:58 2023
@@ -0,0 +1,487 @@
+@comment $NetBSD: PLIST,v 1.1 2023/06/13 17:36:58 adam Exp $
+${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
+${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
+${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt
+${PYSITELIB}/${EGG_INFODIR}/not-zip-safe
+${PYSITELIB}/${EGG_INFODIR}/requires.txt
+${PYSITELIB}/${EGG_INFODIR}/top_level.txt
+${PYSITELIB}/xgboost/CMakeLists.txt
+${PYSITELIB}/xgboost/LICENSE
+${PYSITELIB}/xgboost/VERSION
+${PYSITELIB}/xgboost/__init__.py
+${PYSITELIB}/xgboost/__init__.pyc
+${PYSITELIB}/xgboost/__init__.pyo
+${PYSITELIB}/xgboost/_typing.py
+${PYSITELIB}/xgboost/_typing.pyc
+${PYSITELIB}/xgboost/_typing.pyo
+${PYSITELIB}/xgboost/callback.py
+${PYSITELIB}/xgboost/callback.pyc
+${PYSITELIB}/xgboost/callback.pyo
+${PYSITELIB}/xgboost/cmake/Doc.cmake
+${PYSITELIB}/xgboost/cmake/FindPrefetchIntrinsics.cmake
+${PYSITELIB}/xgboost/cmake/Python_version.in
+${PYSITELIB}/xgboost/cmake/Utils.cmake
+${PYSITELIB}/xgboost/cmake/Version.cmake
+${PYSITELIB}/xgboost/cmake/modules/FindNVML.cmake
+${PYSITELIB}/xgboost/cmake/modules/FindNVTX.cmake
+${PYSITELIB}/xgboost/cmake/modules/FindNccl.cmake
+${PYSITELIB}/xgboost/cmake/version_config.h.in
+${PYSITELIB}/xgboost/cmake/xgboost-config.cmake.in
+${PYSITELIB}/xgboost/cmake/xgboost.pc.in
+${PYSITELIB}/xgboost/collective.py
+${PYSITELIB}/xgboost/collective.pyc
+${PYSITELIB}/xgboost/collective.pyo
+${PYSITELIB}/xgboost/compat.py
+${PYSITELIB}/xgboost/compat.pyc
+${PYSITELIB}/xgboost/compat.pyo
+${PYSITELIB}/xgboost/config.py
+${PYSITELIB}/xgboost/config.pyc
+${PYSITELIB}/xgboost/config.pyo
+${PYSITELIB}/xgboost/core.py
+${PYSITELIB}/xgboost/core.pyc
+${PYSITELIB}/xgboost/core.pyo
+${PYSITELIB}/xgboost/dask.py
+${PYSITELIB}/xgboost/dask.pyc
+${PYSITELIB}/xgboost/dask.pyo
+${PYSITELIB}/xgboost/data.py
+${PYSITELIB}/xgboost/data.pyc
+${PYSITELIB}/xgboost/data.pyo
+${PYSITELIB}/xgboost/dmlc-core/CMakeLists.txt
+${PYSITELIB}/xgboost/dmlc-core/cmake/Modules/FindHDFS.cmake
+${PYSITELIB}/xgboost/dmlc-core/cmake/Utils.cmake
+${PYSITELIB}/xgboost/dmlc-core/cmake/build_config.h.in
+${PYSITELIB}/xgboost/dmlc-core/cmake/dmlc-config.cmake.in
+${PYSITELIB}/xgboost/dmlc-core/include/dmlc/any.h
+${PYSITELIB}/xgboost/dmlc-core/include/dmlc/array_view.h
+${PYSITELIB}/xgboost/dmlc-core/include/dmlc/base.h
+${PYSITELIB}/xgboost/dmlc-core/include/dmlc/blockingconcurrentqueue.h
+${PYSITELIB}/xgboost/dmlc-core/include/dmlc/build_config_default.h
+${PYSITELIB}/xgboost/dmlc-core/include/dmlc/common.h
+${PYSITELIB}/xgboost/dmlc-core/include/dmlc/concurrency.h
+${PYSITELIB}/xgboost/dmlc-core/include/dmlc/concurrentqueue.h
+${PYSITELIB}/xgboost/dmlc-core/include/dmlc/config.h
+${PYSITELIB}/xgboost/dmlc-core/include/dmlc/data.h
+${PYSITELIB}/xgboost/dmlc-core/include/dmlc/endian.h
+${PYSITELIB}/xgboost/dmlc-core/include/dmlc/filesystem.h
+${PYSITELIB}/xgboost/dmlc-core/include/dmlc/input_split_shuffle.h
+${PYSITELIB}/xgboost/dmlc-core/include/dmlc/io.h
+${PYSITELIB}/xgboost/dmlc-core/include/dmlc/json.h
+${PYSITELIB}/xgboost/dmlc-core/include/dmlc/logging.h
+${PYSITELIB}/xgboost/dmlc-core/include/dmlc/lua.h
+${PYSITELIB}/xgboost/dmlc-core/include/dmlc/memory.h
+${PYSITELIB}/xgboost/dmlc-core/include/dmlc/memory_io.h
+${PYSITELIB}/xgboost/dmlc-core/include/dmlc/omp.h
+${PYSITELIB}/xgboost/dmlc-core/include/dmlc/optional.h
+${PYSITELIB}/xgboost/dmlc-core/include/dmlc/parameter.h
+${PYSITELIB}/xgboost/dmlc-core/include/dmlc/recordio.h
+${PYSITELIB}/xgboost/dmlc-core/include/dmlc/registry.h
+${PYSITELIB}/xgboost/dmlc-core/include/dmlc/serializer.h
+${PYSITELIB}/xgboost/dmlc-core/include/dmlc/strtonum.h
+${PYSITELIB}/xgboost/dmlc-core/include/dmlc/thread_group.h
+${PYSITELIB}/xgboost/dmlc-core/include/dmlc/thread_local.h
+${PYSITELIB}/xgboost/dmlc-core/include/dmlc/threadediter.h
+${PYSITELIB}/xgboost/dmlc-core/include/dmlc/timer.h
+${PYSITELIB}/xgboost/dmlc-core/include/dmlc/type_traits.h
+${PYSITELIB}/xgboost/dmlc-core/make/config.mk
+${PYSITELIB}/xgboost/dmlc-core/make/dmlc.mk
+${PYSITELIB}/xgboost/dmlc-core/src/config.cc
+${PYSITELIB}/xgboost/dmlc-core/src/data.cc
+${PYSITELIB}/xgboost/dmlc-core/src/data/basic_row_iter.h
+${PYSITELIB}/xgboost/dmlc-core/src/data/csv_parser.h
+${PYSITELIB}/xgboost/dmlc-core/src/data/disk_row_iter.h
+${PYSITELIB}/xgboost/dmlc-core/src/data/libfm_parser.h
+${PYSITELIB}/xgboost/dmlc-core/src/data/libsvm_parser.h
+${PYSITELIB}/xgboost/dmlc-core/src/data/parquet_parser.h
+${PYSITELIB}/xgboost/dmlc-core/src/data/parser.h
+${PYSITELIB}/xgboost/dmlc-core/src/data/row_block.h
+${PYSITELIB}/xgboost/dmlc-core/src/data/text_parser.h
+${PYSITELIB}/xgboost/dmlc-core/src/io.cc
+${PYSITELIB}/xgboost/dmlc-core/src/io/azure_filesys.cc
+${PYSITELIB}/xgboost/dmlc-core/src/io/azure_filesys.h
+${PYSITELIB}/xgboost/dmlc-core/src/io/cached_input_split.h
+${PYSITELIB}/xgboost/dmlc-core/src/io/filesys.cc
+${PYSITELIB}/xgboost/dmlc-core/src/io/hdfs_filesys.cc
+${PYSITELIB}/xgboost/dmlc-core/src/io/hdfs_filesys.h
+${PYSITELIB}/xgboost/dmlc-core/src/io/indexed_recordio_split.cc
+${PYSITELIB}/xgboost/dmlc-core/src/io/indexed_recordio_split.h
+${PYSITELIB}/xgboost/dmlc-core/src/io/input_split_base.cc
+${PYSITELIB}/xgboost/dmlc-core/src/io/input_split_base.h
+${PYSITELIB}/xgboost/dmlc-core/src/io/line_split.cc
+${PYSITELIB}/xgboost/dmlc-core/src/io/line_split.h
+${PYSITELIB}/xgboost/dmlc-core/src/io/local_filesys.cc
+${PYSITELIB}/xgboost/dmlc-core/src/io/local_filesys.h
+${PYSITELIB}/xgboost/dmlc-core/src/io/recordio_split.cc
+${PYSITELIB}/xgboost/dmlc-core/src/io/recordio_split.h
+${PYSITELIB}/xgboost/dmlc-core/src/io/s3_filesys.cc
+${PYSITELIB}/xgboost/dmlc-core/src/io/s3_filesys.h
+${PYSITELIB}/xgboost/dmlc-core/src/io/single_file_split.h
+${PYSITELIB}/xgboost/dmlc-core/src/io/single_threaded_input_split.h
+${PYSITELIB}/xgboost/dmlc-core/src/io/threaded_input_split.h
+${PYSITELIB}/xgboost/dmlc-core/src/io/uri_spec.h
+${PYSITELIB}/xgboost/dmlc-core/src/recordio.cc
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc-submit
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/__init__.py
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/__init__.pyc
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/__init__.pyo
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/kubernetes.py
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/kubernetes.pyc
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/kubernetes.pyo
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/launcher.py
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/launcher.pyc
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/launcher.pyo
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/local.py
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/local.pyc
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/local.pyo
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/mesos.py
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/mesos.pyc
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/mesos.pyo
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/mpi.py
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/mpi.pyc
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/mpi.pyo
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/opts.py
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/opts.pyc
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/opts.pyo
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/sge.py
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/sge.pyc
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/sge.pyo
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/slurm.py
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/slurm.pyc
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/slurm.pyo
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/ssh.py
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/ssh.pyc
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/ssh.pyo
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/submit.py
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/submit.pyc
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/submit.pyo
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/tracker.py
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/tracker.pyc
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/tracker.pyo
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/util.py
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/util.pyc
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/util.pyo
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/yarn.py
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/yarn.pyc
+${PYSITELIB}/xgboost/dmlc-core/tracker/dmlc_tracker/yarn.pyo
+${PYSITELIB}/xgboost/dmlc-core/tracker/yarn/build.bat
+${PYSITELIB}/xgboost/dmlc-core/tracker/yarn/build.sh
+${PYSITELIB}/xgboost/dmlc-core/tracker/yarn/pom.xml
+${PYSITELIB}/xgboost/dmlc-core/tracker/yarn/src/main/java/org/apache/hadoop/yarn/dmlc/ApplicationMaster.java
+${PYSITELIB}/xgboost/dmlc-core/tracker/yarn/src/main/java/org/apache/hadoop/yarn/dmlc/Client.java
+${PYSITELIB}/xgboost/dmlc-core/tracker/yarn/src/main/java/org/apache/hadoop/yarn/dmlc/TaskRecord.java
+${PYSITELIB}/xgboost/dmlc-core/windows/dmlc.sln
+${PYSITELIB}/xgboost/dmlc-core/windows/dmlc/dmlc.vcxproj
+${PYSITELIB}/xgboost/federated.py
+${PYSITELIB}/xgboost/federated.pyc
+${PYSITELIB}/xgboost/federated.pyo
+${PYSITELIB}/xgboost/gputreeshap/GPUTreeShap/gpu_treeshap.h
+${PYSITELIB}/xgboost/gputreeshap/benchmark/benchmark.py
+${PYSITELIB}/xgboost/gputreeshap/benchmark/benchmark.pyc
+${PYSITELIB}/xgboost/gputreeshap/benchmark/benchmark.pyo
+${PYSITELIB}/xgboost/gputreeshap/benchmark/format_results.py
+${PYSITELIB}/xgboost/gputreeshap/benchmark/format_results.pyc
+${PYSITELIB}/xgboost/gputreeshap/benchmark/format_results.pyo
+${PYSITELIB}/xgboost/include/xgboost/base.h
+${PYSITELIB}/xgboost/include/xgboost/c_api.h
+${PYSITELIB}/xgboost/include/xgboost/collective/socket.h
+${PYSITELIB}/xgboost/include/xgboost/data.h
+${PYSITELIB}/xgboost/include/xgboost/feature_map.h
+${PYSITELIB}/xgboost/include/xgboost/gbm.h
+${PYSITELIB}/xgboost/include/xgboost/generic_parameters.h
+${PYSITELIB}/xgboost/include/xgboost/global_config.h
+${PYSITELIB}/xgboost/include/xgboost/host_device_vector.h
+${PYSITELIB}/xgboost/include/xgboost/intrusive_ptr.h
+${PYSITELIB}/xgboost/include/xgboost/json.h
+${PYSITELIB}/xgboost/include/xgboost/json_io.h
+${PYSITELIB}/xgboost/include/xgboost/learner.h
+${PYSITELIB}/xgboost/include/xgboost/linalg.h
+${PYSITELIB}/xgboost/include/xgboost/linear_updater.h
+${PYSITELIB}/xgboost/include/xgboost/logging.h
+${PYSITELIB}/xgboost/include/xgboost/metric.h
+${PYSITELIB}/xgboost/include/xgboost/model.h
+${PYSITELIB}/xgboost/include/xgboost/objective.h
+${PYSITELIB}/xgboost/include/xgboost/parameter.h
+${PYSITELIB}/xgboost/include/xgboost/predictor.h
+${PYSITELIB}/xgboost/include/xgboost/span.h
+${PYSITELIB}/xgboost/include/xgboost/string_view.h
+${PYSITELIB}/xgboost/include/xgboost/task.h
+${PYSITELIB}/xgboost/include/xgboost/tree_model.h
+${PYSITELIB}/xgboost/include/xgboost/tree_updater.h
+${PYSITELIB}/xgboost/include/xgboost/version_config.h
+${PYSITELIB}/xgboost/lib/libxgboost.so
+${PYSITELIB}/xgboost/libpath.py
+${PYSITELIB}/xgboost/libpath.pyc
+${PYSITELIB}/xgboost/libpath.pyo
+${PYSITELIB}/xgboost/plotting.py
+${PYSITELIB}/xgboost/plotting.pyc
+${PYSITELIB}/xgboost/plotting.pyo
+${PYSITELIB}/xgboost/plugin/CMakeLists.txt
+${PYSITELIB}/xgboost/plugin/README.md
+${PYSITELIB}/xgboost/plugin/dense_parser/dense_libsvm.cc
+${PYSITELIB}/xgboost/plugin/example/README.md
+${PYSITELIB}/xgboost/plugin/example/custom_obj.cc
+${PYSITELIB}/xgboost/plugin/federated/CMakeLists.txt
+${PYSITELIB}/xgboost/plugin/federated/README.md
+${PYSITELIB}/xgboost/plugin/federated/federated.proto
+${PYSITELIB}/xgboost/plugin/federated/federated_client.h
+${PYSITELIB}/xgboost/plugin/federated/federated_communicator.h
+${PYSITELIB}/xgboost/plugin/federated/federated_server.cc
+${PYSITELIB}/xgboost/plugin/federated/federated_server.h
+${PYSITELIB}/xgboost/plugin/updater_gpu/README.md
+${PYSITELIB}/xgboost/plugin/updater_oneapi/README.md
+${PYSITELIB}/xgboost/plugin/updater_oneapi/predictor_oneapi.cc
+${PYSITELIB}/xgboost/plugin/updater_oneapi/regression_loss_oneapi.h
+${PYSITELIB}/xgboost/plugin/updater_oneapi/regression_obj_oneapi.cc
+${PYSITELIB}/xgboost/py.typed
+${PYSITELIB}/xgboost/rabit.py
+${PYSITELIB}/xgboost/rabit.pyc
+${PYSITELIB}/xgboost/rabit.pyo
+${PYSITELIB}/xgboost/rabit/CMakeLists.txt
+${PYSITELIB}/xgboost/rabit/include/rabit/base.h
+${PYSITELIB}/xgboost/rabit/include/rabit/c_api.h
+${PYSITELIB}/xgboost/rabit/include/rabit/internal/engine.h
+${PYSITELIB}/xgboost/rabit/include/rabit/internal/io.h
+${PYSITELIB}/xgboost/rabit/include/rabit/internal/rabit-inl.h
+${PYSITELIB}/xgboost/rabit/include/rabit/internal/socket.h
+${PYSITELIB}/xgboost/rabit/include/rabit/internal/utils.h
+${PYSITELIB}/xgboost/rabit/include/rabit/rabit.h
+${PYSITELIB}/xgboost/rabit/include/rabit/serializable.h
+${PYSITELIB}/xgboost/rabit/src/allreduce_base.cc
+${PYSITELIB}/xgboost/rabit/src/allreduce_base.h
+${PYSITELIB}/xgboost/rabit/src/allreduce_mock.h
+${PYSITELIB}/xgboost/rabit/src/engine.cc
+${PYSITELIB}/xgboost/rabit/src/engine_mock.cc
+${PYSITELIB}/xgboost/rabit/src/engine_mpi.cc
+${PYSITELIB}/xgboost/rabit/src/rabit_c_api.cc
+${PYSITELIB}/xgboost/sklearn.py
+${PYSITELIB}/xgboost/sklearn.pyc
+${PYSITELIB}/xgboost/sklearn.pyo
+${PYSITELIB}/xgboost/spark/__init__.py
+${PYSITELIB}/xgboost/spark/__init__.pyc
+${PYSITELIB}/xgboost/spark/__init__.pyo
+${PYSITELIB}/xgboost/spark/core.py
+${PYSITELIB}/xgboost/spark/core.pyc
+${PYSITELIB}/xgboost/spark/core.pyo
+${PYSITELIB}/xgboost/spark/data.py
+${PYSITELIB}/xgboost/spark/data.pyc
+${PYSITELIB}/xgboost/spark/data.pyo
+${PYSITELIB}/xgboost/spark/estimator.py
+${PYSITELIB}/xgboost/spark/estimator.pyc
+${PYSITELIB}/xgboost/spark/estimator.pyo
+${PYSITELIB}/xgboost/spark/model.py
+${PYSITELIB}/xgboost/spark/model.pyc
+${PYSITELIB}/xgboost/spark/model.pyo
+${PYSITELIB}/xgboost/spark/params.py
+${PYSITELIB}/xgboost/spark/params.pyc
+${PYSITELIB}/xgboost/spark/params.pyo
+${PYSITELIB}/xgboost/spark/utils.py
+${PYSITELIB}/xgboost/spark/utils.pyc
+${PYSITELIB}/xgboost/spark/utils.pyo
+${PYSITELIB}/xgboost/src/CMakeLists.txt
+${PYSITELIB}/xgboost/src/c_api/c_api.cc
+${PYSITELIB}/xgboost/src/c_api/c_api.cu
+${PYSITELIB}/xgboost/src/c_api/c_api_error.cc
+${PYSITELIB}/xgboost/src/c_api/c_api_error.h
+${PYSITELIB}/xgboost/src/c_api/c_api_utils.h
+${PYSITELIB}/xgboost/src/cli_main.cc
+${PYSITELIB}/xgboost/src/collective/communicator-inl.h
+${PYSITELIB}/xgboost/src/collective/communicator.cc
+${PYSITELIB}/xgboost/src/collective/communicator.cu
+${PYSITELIB}/xgboost/src/collective/communicator.h
+${PYSITELIB}/xgboost/src/collective/device_communicator.cuh
+${PYSITELIB}/xgboost/src/collective/device_communicator_adapter.cuh
+${PYSITELIB}/xgboost/src/collective/nccl_device_communicator.cuh
+${PYSITELIB}/xgboost/src/collective/noop_communicator.h
+${PYSITELIB}/xgboost/src/collective/rabit_communicator.h
+${PYSITELIB}/xgboost/src/collective/socket.cc
+${PYSITELIB}/xgboost/src/common/algorithm.cuh
+${PYSITELIB}/xgboost/src/common/algorithm.h
+${PYSITELIB}/xgboost/src/common/base64.h
+${PYSITELIB}/xgboost/src/common/bitfield.h
+${PYSITELIB}/xgboost/src/common/categorical.h
+${PYSITELIB}/xgboost/src/common/charconv.cc
+${PYSITELIB}/xgboost/src/common/charconv.h
+${PYSITELIB}/xgboost/src/common/column_matrix.cc
+${PYSITELIB}/xgboost/src/common/column_matrix.h
+${PYSITELIB}/xgboost/src/common/common.cc
+${PYSITELIB}/xgboost/src/common/common.cu
+${PYSITELIB}/xgboost/src/common/common.h
+${PYSITELIB}/xgboost/src/common/compressed_iterator.h
+${PYSITELIB}/xgboost/src/common/config.h
+${PYSITELIB}/xgboost/src/common/cuda_pinned_allocator.h
+${PYSITELIB}/xgboost/src/common/device_helpers.cuh
+${PYSITELIB}/xgboost/src/common/group_data.h
+${PYSITELIB}/xgboost/src/common/hist_util.cc
+${PYSITELIB}/xgboost/src/common/hist_util.cu
+${PYSITELIB}/xgboost/src/common/hist_util.cuh
+${PYSITELIB}/xgboost/src/common/hist_util.h
+${PYSITELIB}/xgboost/src/common/host_device_vector.cc
+${PYSITELIB}/xgboost/src/common/host_device_vector.cu
+${PYSITELIB}/xgboost/src/common/io.cc
+${PYSITELIB}/xgboost/src/common/io.h
+${PYSITELIB}/xgboost/src/common/json.cc
+${PYSITELIB}/xgboost/src/common/linalg_op.cuh
+${PYSITELIB}/xgboost/src/common/linalg_op.h
+${PYSITELIB}/xgboost/src/common/math.h
+${PYSITELIB}/xgboost/src/common/numeric.cc
+${PYSITELIB}/xgboost/src/common/numeric.cu
+${PYSITELIB}/xgboost/src/common/numeric.h
+${PYSITELIB}/xgboost/src/common/observer.h
+${PYSITELIB}/xgboost/src/common/partition_builder.h
+${PYSITELIB}/xgboost/src/common/probability_distribution.h
+${PYSITELIB}/xgboost/src/common/pseudo_huber.cc
+${PYSITELIB}/xgboost/src/common/pseudo_huber.h
+${PYSITELIB}/xgboost/src/common/quantile.cc
+${PYSITELIB}/xgboost/src/common/quantile.cu
+${PYSITELIB}/xgboost/src/common/quantile.cuh
+${PYSITELIB}/xgboost/src/common/quantile.h
+${PYSITELIB}/xgboost/src/common/random.cc
+${PYSITELIB}/xgboost/src/common/random.h
+${PYSITELIB}/xgboost/src/common/ranking_utils.cuh
+${PYSITELIB}/xgboost/src/common/row_set.h
+${PYSITELIB}/xgboost/src/common/stats.cu
+${PYSITELIB}/xgboost/src/common/stats.cuh
+${PYSITELIB}/xgboost/src/common/stats.h
+${PYSITELIB}/xgboost/src/common/survival_util.cc
+${PYSITELIB}/xgboost/src/common/survival_util.h
+${PYSITELIB}/xgboost/src/common/threading_utils.cc
+${PYSITELIB}/xgboost/src/common/threading_utils.h
+${PYSITELIB}/xgboost/src/common/timer.cc
+${PYSITELIB}/xgboost/src/common/timer.h
+${PYSITELIB}/xgboost/src/common/transform.h
+${PYSITELIB}/xgboost/src/common/version.cc
+${PYSITELIB}/xgboost/src/common/version.h
+${PYSITELIB}/xgboost/src/data/adapter.h
+${PYSITELIB}/xgboost/src/data/array_interface.cu
+${PYSITELIB}/xgboost/src/data/array_interface.h
+${PYSITELIB}/xgboost/src/data/arrow-cdi.h
+${PYSITELIB}/xgboost/src/data/data.cc
+${PYSITELIB}/xgboost/src/data/data.cu
+${PYSITELIB}/xgboost/src/data/device_adapter.cuh
+${PYSITELIB}/xgboost/src/data/ellpack_page.cc
+${PYSITELIB}/xgboost/src/data/ellpack_page.cu
+${PYSITELIB}/xgboost/src/data/ellpack_page.cuh
+${PYSITELIB}/xgboost/src/data/ellpack_page_raw_format.cu
+${PYSITELIB}/xgboost/src/data/ellpack_page_source.cu
+${PYSITELIB}/xgboost/src/data/ellpack_page_source.h
+${PYSITELIB}/xgboost/src/data/file_iterator.h
+${PYSITELIB}/xgboost/src/data/gradient_index.cc
+${PYSITELIB}/xgboost/src/data/gradient_index.cu
+${PYSITELIB}/xgboost/src/data/gradient_index.h
+${PYSITELIB}/xgboost/src/data/gradient_index_format.cc
+${PYSITELIB}/xgboost/src/data/gradient_index_page_source.cc
+${PYSITELIB}/xgboost/src/data/gradient_index_page_source.h
+${PYSITELIB}/xgboost/src/data/histogram_cut_format.h
+${PYSITELIB}/xgboost/src/data/iterative_dmatrix.cc
+${PYSITELIB}/xgboost/src/data/iterative_dmatrix.cu
+${PYSITELIB}/xgboost/src/data/iterative_dmatrix.h
+${PYSITELIB}/xgboost/src/data/proxy_dmatrix.cc
+${PYSITELIB}/xgboost/src/data/proxy_dmatrix.cu
+${PYSITELIB}/xgboost/src/data/proxy_dmatrix.cuh
+${PYSITELIB}/xgboost/src/data/proxy_dmatrix.h
+${PYSITELIB}/xgboost/src/data/simple_batch_iterator.h
+${PYSITELIB}/xgboost/src/data/simple_dmatrix.cc
+${PYSITELIB}/xgboost/src/data/simple_dmatrix.cu
+${PYSITELIB}/xgboost/src/data/simple_dmatrix.cuh
+${PYSITELIB}/xgboost/src/data/simple_dmatrix.h
+${PYSITELIB}/xgboost/src/data/sparse_page_dmatrix.cc
+${PYSITELIB}/xgboost/src/data/sparse_page_dmatrix.cu
+${PYSITELIB}/xgboost/src/data/sparse_page_dmatrix.h
+${PYSITELIB}/xgboost/src/data/sparse_page_raw_format.cc
+${PYSITELIB}/xgboost/src/data/sparse_page_source.cu
+${PYSITELIB}/xgboost/src/data/sparse_page_source.h
+${PYSITELIB}/xgboost/src/data/sparse_page_writer.h
+${PYSITELIB}/xgboost/src/data/validation.h
+${PYSITELIB}/xgboost/src/gbm/gblinear.cc
+${PYSITELIB}/xgboost/src/gbm/gblinear_model.cc
+${PYSITELIB}/xgboost/src/gbm/gblinear_model.h
+${PYSITELIB}/xgboost/src/gbm/gbm.cc
+${PYSITELIB}/xgboost/src/gbm/gbtree.cc
+${PYSITELIB}/xgboost/src/gbm/gbtree.cu
+${PYSITELIB}/xgboost/src/gbm/gbtree.h
+${PYSITELIB}/xgboost/src/gbm/gbtree_model.cc
+${PYSITELIB}/xgboost/src/gbm/gbtree_model.h
+${PYSITELIB}/xgboost/src/global_config.cc
+${PYSITELIB}/xgboost/src/learner.cc
+${PYSITELIB}/xgboost/src/linear/coordinate_common.h
+${PYSITELIB}/xgboost/src/linear/linear_updater.cc
+${PYSITELIB}/xgboost/src/linear/param.h
+${PYSITELIB}/xgboost/src/linear/updater_coordinate.cc
+${PYSITELIB}/xgboost/src/linear/updater_gpu_coordinate.cu
+${PYSITELIB}/xgboost/src/linear/updater_shotgun.cc
+${PYSITELIB}/xgboost/src/logging.cc
+${PYSITELIB}/xgboost/src/metric/auc.cc
+${PYSITELIB}/xgboost/src/metric/auc.cu
+${PYSITELIB}/xgboost/src/metric/auc.h
+${PYSITELIB}/xgboost/src/metric/elementwise_metric.cc
+${PYSITELIB}/xgboost/src/metric/elementwise_metric.cu
+${PYSITELIB}/xgboost/src/metric/metric.cc
+${PYSITELIB}/xgboost/src/metric/metric_common.h
+${PYSITELIB}/xgboost/src/metric/multiclass_metric.cc
+${PYSITELIB}/xgboost/src/metric/multiclass_metric.cu
+${PYSITELIB}/xgboost/src/metric/rank_metric.cc
+${PYSITELIB}/xgboost/src/metric/rank_metric.cu
+${PYSITELIB}/xgboost/src/metric/survival_metric.cc
+${PYSITELIB}/xgboost/src/metric/survival_metric.cu
+${PYSITELIB}/xgboost/src/objective/adaptive.cc
+${PYSITELIB}/xgboost/src/objective/adaptive.cu
+${PYSITELIB}/xgboost/src/objective/adaptive.h
+${PYSITELIB}/xgboost/src/objective/aft_obj.cc
+${PYSITELIB}/xgboost/src/objective/aft_obj.cu
+${PYSITELIB}/xgboost/src/objective/hinge.cc
+${PYSITELIB}/xgboost/src/objective/hinge.cu
+${PYSITELIB}/xgboost/src/objective/multiclass_obj.cc
+${PYSITELIB}/xgboost/src/objective/multiclass_obj.cu
+${PYSITELIB}/xgboost/src/objective/objective.cc
+${PYSITELIB}/xgboost/src/objective/rank_obj.cc
+${PYSITELIB}/xgboost/src/objective/rank_obj.cu
+${PYSITELIB}/xgboost/src/objective/regression_loss.h
+${PYSITELIB}/xgboost/src/objective/regression_obj.cc
+${PYSITELIB}/xgboost/src/objective/regression_obj.cu
+${PYSITELIB}/xgboost/src/predictor/cpu_predictor.cc
+${PYSITELIB}/xgboost/src/predictor/gpu_predictor.cu
+${PYSITELIB}/xgboost/src/predictor/predict_fn.h
+${PYSITELIB}/xgboost/src/predictor/predictor.cc
+${PYSITELIB}/xgboost/src/tree/common_row_partitioner.h
+${PYSITELIB}/xgboost/src/tree/constraints.cc
+${PYSITELIB}/xgboost/src/tree/constraints.cu
+${PYSITELIB}/xgboost/src/tree/constraints.cuh
+${PYSITELIB}/xgboost/src/tree/constraints.h
+${PYSITELIB}/xgboost/src/tree/driver.h
+${PYSITELIB}/xgboost/src/tree/gpu_hist/evaluate_splits.cu
+${PYSITELIB}/xgboost/src/tree/gpu_hist/evaluate_splits.cuh
+${PYSITELIB}/xgboost/src/tree/gpu_hist/evaluator.cu
+${PYSITELIB}/xgboost/src/tree/gpu_hist/expand_entry.cuh
+${PYSITELIB}/xgboost/src/tree/gpu_hist/feature_groups.cu
+${PYSITELIB}/xgboost/src/tree/gpu_hist/feature_groups.cuh
+${PYSITELIB}/xgboost/src/tree/gpu_hist/gradient_based_sampler.cu
+${PYSITELIB}/xgboost/src/tree/gpu_hist/gradient_based_sampler.cuh
+${PYSITELIB}/xgboost/src/tree/gpu_hist/histogram.cu
+${PYSITELIB}/xgboost/src/tree/gpu_hist/histogram.cuh
+${PYSITELIB}/xgboost/src/tree/gpu_hist/row_partitioner.cu
+${PYSITELIB}/xgboost/src/tree/gpu_hist/row_partitioner.cuh
+${PYSITELIB}/xgboost/src/tree/hist/evaluate_splits.h
+${PYSITELIB}/xgboost/src/tree/hist/expand_entry.h
+${PYSITELIB}/xgboost/src/tree/hist/histogram.h
+${PYSITELIB}/xgboost/src/tree/param.cc
+${PYSITELIB}/xgboost/src/tree/param.h
+${PYSITELIB}/xgboost/src/tree/split_evaluator.h
+${PYSITELIB}/xgboost/src/tree/tree_model.cc
+${PYSITELIB}/xgboost/src/tree/tree_updater.cc
+${PYSITELIB}/xgboost/src/tree/updater_approx.cc
+${PYSITELIB}/xgboost/src/tree/updater_colmaker.cc
+${PYSITELIB}/xgboost/src/tree/updater_gpu_common.cuh
+${PYSITELIB}/xgboost/src/tree/updater_gpu_hist.cu
+${PYSITELIB}/xgboost/src/tree/updater_prune.cc
+${PYSITELIB}/xgboost/src/tree/updater_quantile_hist.cc
+${PYSITELIB}/xgboost/src/tree/updater_quantile_hist.h
+${PYSITELIB}/xgboost/src/tree/updater_refresh.cc
+${PYSITELIB}/xgboost/src/tree/updater_sync.cc
+${PYSITELIB}/xgboost/testing.py
+${PYSITELIB}/xgboost/testing.pyc
+${PYSITELIB}/xgboost/testing.pyo
+${PYSITELIB}/xgboost/tracker.py
+${PYSITELIB}/xgboost/tracker.pyc
+${PYSITELIB}/xgboost/tracker.pyo
+${PYSITELIB}/xgboost/training.py
+${PYSITELIB}/xgboost/training.pyc
+${PYSITELIB}/xgboost/training.pyo
Index: pkgsrc/math/py-xgboost/distinfo
diff -u /dev/null pkgsrc/math/py-xgboost/distinfo:1.1
--- /dev/null   Tue Jun 13 17:36:58 2023
+++ pkgsrc/math/py-xgboost/distinfo     Tue Jun 13 17:36:58 2023
@@ -0,0 +1,8 @@
+$NetBSD: distinfo,v 1.1 2023/06/13 17:36:58 adam Exp $
+
+BLAKE2s (xgboost-1.7.5.tar.gz) = 2d15184249862c0f41a5d072d1274ad4d317f03d706a634296e7dd9d6a47cba5
+SHA512 (xgboost-1.7.5.tar.gz) = 655060371060ba48da0675d24d41f3437bba937988dba1c388e73ab2db7642fd0e8b00ec5f6fa0d9d3ce20ac1c253ae798bc6034695449c8924373e6c84735c2
+Size (xgboost-1.7.5.tar.gz) = 849023 bytes
+SHA1 (patch-xgboost_dmlc-core_CMakeLists.txt) = 39432a69b84b177ab3bb882b960d9141f92771bd
+SHA1 (patch-xgboost_include_xgboost_collective_socket.h) = 0afa5538ae7b415af2e6901c995a84fa5539f86b
+SHA1 (patch-xgboost_libpath.py) = f9e2dbad7cf1831354f1174a939878b758eba57d

Index: pkgsrc/math/py-xgboost/patches/patch-xgboost_dmlc-core_CMakeLists.txt
diff -u /dev/null pkgsrc/math/py-xgboost/patches/patch-xgboost_dmlc-core_CMakeLists.txt:1.1
--- /dev/null   Tue Jun 13 17:36:58 2023
+++ pkgsrc/math/py-xgboost/patches/patch-xgboost_dmlc-core_CMakeLists.txt       Tue Jun 13 17:36:58 2023
@@ -0,0 +1,15 @@
+$NetBSD: patch-xgboost_dmlc-core_CMakeLists.txt,v 1.1 2023/06/13 17:36:58 adam Exp $
+
+Fix build.
+
+--- xgboost/dmlc-core/CMakeLists.txt.orig      2023-02-27 12:24:23.000000000 +0000
++++ xgboost/dmlc-core/CMakeLists.txt
+@@ -185,8 +185,6 @@ target_include_directories(dmlc PUBLIC
+   $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+   $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include>
+   $<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>)
+-target_compile_definitions(dmlc PRIVATE -D_XOPEN_SOURCE=700
+-  -D_POSIX_SOURCE -D_POSIX_C_SOURCE=200809L -D_DARWIN_C_SOURCE)
+ # Older stdc++ enable c++11 items
+ target_compile_definitions(dmlc PUBLIC -D__USE_XOPEN2K8)
+ # DMLC_CORE_USE_CMAKE macro constant indicates the use of CMake
Index: pkgsrc/math/py-xgboost/patches/patch-xgboost_include_xgboost_collective_socket.h
diff -u /dev/null pkgsrc/math/py-xgboost/patches/patch-xgboost_include_xgboost_collective_socket.h:1.1
--- /dev/null   Tue Jun 13 17:36:58 2023
+++ pkgsrc/math/py-xgboost/patches/patch-xgboost_include_xgboost_collective_socket.h    Tue Jun 13 17:36:58 2023
@@ -0,0 +1,24 @@
+$NetBSD: patch-xgboost_include_xgboost_collective_socket.h,v 1.1 2023/06/13 17:36:58 adam Exp $
+
+NetBSD doesn't provide SO_DOMAIN socket option.
+
+--- xgboost/include/xgboost/collective/socket.h.orig   2023-06-13 16:57:30.244346651 +0000
++++ xgboost/include/xgboost/collective/socket.h
+@@ -250,7 +250,7 @@ class TCPSocket {
+   HandleT handle_{InvalidSocket()};
+   // There's reliable no way to extract domain from a socket without first binding that
+   // socket on macos.
+-#if defined(__APPLE__)
++#if defined(__APPLE__) || defined(__NetBSD__)
+   SockDomain domain_{SockDomain::kV4};
+ #endif
+ 
+@@ -284,7 +284,7 @@ class TCPSocket {
+         getsockopt(handle_, SOL_SOCKET, SO_PROTOCOL_INFO, reinterpret_cast<char *>(&info), &len),
+         0);
+     return ret_iafamily(info.iAddressFamily);
+-#elif defined(__APPLE__)
++#elif defined(__APPLE__) || defined(__NetBSD__)
+     return domain_;
+ #elif defined(__unix__)
+ #ifndef __PASE__
Index: pkgsrc/math/py-xgboost/patches/patch-xgboost_libpath.py
diff -u /dev/null pkgsrc/math/py-xgboost/patches/patch-xgboost_libpath.py:1.1
--- /dev/null   Tue Jun 13 17:36:58 2023
+++ pkgsrc/math/py-xgboost/patches/patch-xgboost_libpath.py     Tue Jun 13 17:36:58 2023
@@ -0,0 +1,21 @@
+$NetBSD: patch-xgboost_libpath.py,v 1.1 2023/06/13 17:36:58 adam Exp $
+
+Default to libxgboost.so when looking for dynamic library.
+
+--- xgboost/libpath.py.orig    2023-06-13 17:27:59.000000000 +0000
++++ xgboost/libpath.py
+@@ -43,13 +43,11 @@ def find_lib_path() -> List[str]:
+             # directory here
+             dll_path.append(os.path.join(curr_path, './windows/Release/'))
+         dll_path = [os.path.join(p, 'xgboost.dll') for p in dll_path]
+-    elif sys.platform.startswith(('linux', 'freebsd', 'emscripten')):
+-        dll_path = [os.path.join(p, 'libxgboost.so') for p in dll_path]
+     elif sys.platform == 'darwin':
+         dll_path = [os.path.join(p, 'libxgboost.dylib') for p in dll_path]
+     elif sys.platform == 'cygwin':
+         dll_path = [os.path.join(p, 'cygxgboost.dll') for p in dll_path]
+-    if platform.system() == 'OS400':
++    else:
+         dll_path = [os.path.join(p, 'libxgboost.so') for p in dll_path]
+ 
+     lib_path = [p for p in dll_path if os.path.exists(p) and os.path.isfile(p)]



Home | Main Index | Thread Index | Old Index