Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-fasttext for openSUSE:Factory
checked in at 2024-10-12 13:24:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-fasttext (Old)
and /work/SRC/openSUSE:Factory/.python-fasttext.new.19354 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-fasttext"
Sat Oct 12 13:24:38 2024 rev:5 rq:1207017 version:0.9.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-fasttext/python-fasttext.changes
2023-04-22 22:01:58.817761650 +0200
+++
/work/SRC/openSUSE:Factory/.python-fasttext.new.19354/python-fasttext.changes
2024-10-12 13:24:41.225694312 +0200
@@ -1,0 +2,12 @@
+Thu Oct 10 05:20:36 UTC 2024 - Jiri Slaby <[email protected]>
+
+- switch to cmake + ninja
+ * the former builds a proper lib
+- package the shared library, fasttext binary and -devel properly
+ (create new %package's for those)
+- add patches to fit our needs:
+ * no-static-lib.patch
+ * proper-lib-dir.patch
+ * py-link-against-shared.patch
+
+-------------------------------------------------------------------
New:
----
no-static-lib.patch
proper-lib-dir.patch
py-link-against-shared.patch
BETA DEBUG BEGIN:
New:- add patches to fit our needs:
* no-static-lib.patch
* proper-lib-dir.patch
New: * no-static-lib.patch
* proper-lib-dir.patch
* py-link-against-shared.patch
New: * proper-lib-dir.patch
* py-link-against-shared.patch
BETA DEBUG END:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-fasttext.spec ++++++
--- /var/tmp/diff_new_pack.A8mQBQ/_old 2024-10-12 13:24:43.769799750 +0200
+++ /var/tmp/diff_new_pack.A8mQBQ/_new 2024-10-12 13:24:43.781800247 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-fasttext
#
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,8 +16,8 @@
#
-%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define modname fastText
+%define sover 0
# Using annotation futures and dataclasses
%define skip_python36 1
%{?sle15_python_module_pythons}
@@ -30,12 +30,17 @@
Source:
https://github.com/facebookresearch/%{modname}/archive/refs/tags/v%{version}.tar.gz#/%{modname}-%{version}.tar.gz
Patch0: reproducible.patch
Patch1: gcc13-fix.patch
+Patch2: no-static-lib.patch
+Patch3: proper-lib-dir.patch
+Patch4: py-link-against-shared.patch
BuildRequires: %{python_module devel}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module pybind11-devel}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module wheel}
+BuildRequires: cmake
BuildRequires: gcc-c++
+BuildRequires: ninja
BuildRequires: python-rpm-macros
# SECTION test requirements
BuildRequires: %{python_module numpy}
@@ -43,17 +48,44 @@
BuildRequires: %{python_module setuptools >= 0.7.0}
# /SECTION
BuildRequires: fdupes
+Requires: fasttext
Requires: python-numpy
Requires: python-pybind11 >= 2.2
Requires: python-setuptools >= 0.7.0
-Requires(post): update-alternatives
-Requires(postun):update-alternatives
%python_subpackages
%description
fastText is a library for efficient learning of word
representations and sentence classification.
+%package -n fasttext
+Summary: Fast text representation and classification
+
+%description -n fasttext
+fastText is a library for efficient learning of word
+representations and sentence classification.
+
+This package provides the fasttext binary.
+
+%package -n fasttext-devel
+Summary: Development files for fasttext
+Requires: libfasttext%{sover}
+
+%description -n fasttext-devel
+fastText is a library for efficient learning of word
+representations and sentence classification.
+
+This package provides the fasttext library development files.
+
+%package -n libfasttext%{sover}
+Summary: Library for fast text representation and classification
+
+%description -n libfasttext%{sover}
+fastText is a library for efficient learning of word
+representations and sentence classification.
+
+This package provides the fasttext library.
+
%prep
%autosetup -p1 -n %{modname}-%{version}
@@ -61,34 +93,45 @@
python/fasttext_module/fasttext/util/util.py
%build
-export CXXFLAGS="%{optflags}" CFLAGS="%{optflags}"
-%make_build
+pushd .
+%define __builddir build-cmake
+%define __builder ninja
+%cmake
+%cmake_build
+popd
+export LDFLAGS=-L%{__builddir}
%pyproject_wheel
%install
+%cmake_install
%pyproject_install
%{python_expand :
-install -Dpm 0755 fasttext %{buildroot}%{_bindir}/fasttext
-%python_clone -a %{buildroot}%{_bindir}/fasttext
%fdupes %{buildroot}%{$python_sitearch}
}
%check
# Tests require 300+MB test data
-%post
-%python_install_alternative fasttext
-
-%postun
-%python_uninstall_alternative fasttext
+%ldconfig_scriptlets -n libfasttext%{sover}
%files %{python_files}
-%doc README.md docs/
%license LICENSE
-# fasttext.pc.in
-%python_alternative %{_bindir}/fasttext
%{python_sitearch}/fasttext
%{python_sitearch}/fasttext-%{version}*-info
%{python_sitearch}/fasttext_pybind.*.so
+%files -n fasttext
+%doc README.md docs/
+%license LICENSE
+%{_bindir}/fasttext
+
+%files -n fasttext-devel
+%dir %{_includedir}/fasttext
+%{_includedir}/fasttext/*.h
+%{_libdir}/libfasttext.so
+%{_libdir}/pkgconfig/fasttext.pc
+
+%files -n libfasttext%{sover}
+%{_libdir}/libfasttext.so.%{sover}
+
++++++ no-static-lib.patch ++++++
From: Jiri Slaby <[email protected]>
Subject: [PATCH] no static lib
Patch-mainline: no
We do not want those. Link against shared instead.
---
CMakeLists.txt | 11 +----------
1 file changed, 1 insertion(+), 10 deletions(-)
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -57,22 +57,13 @@ if (NOT MSVC)
endif()
add_library(fasttext-shared SHARED ${SOURCE_FILES} ${HEADER_FILES})
-add_library(fasttext-static STATIC ${SOURCE_FILES} ${HEADER_FILES})
-add_library(fasttext-static_pic STATIC ${SOURCE_FILES} ${HEADER_FILES})
set_target_properties(fasttext-shared PROPERTIES OUTPUT_NAME fasttext
SOVERSION "${fasttext_VERSION_MAJOR}")
-set_target_properties(fasttext-static PROPERTIES OUTPUT_NAME fasttext)
-set_target_properties(fasttext-static_pic PROPERTIES OUTPUT_NAME fasttext_pic
- POSITION_INDEPENDENT_CODE True)
add_executable(fasttext-bin src/main.cc)
-target_link_libraries(fasttext-bin pthread fasttext-static)
+target_link_libraries(fasttext-bin pthread fasttext-shared)
set_target_properties(fasttext-bin PROPERTIES PUBLIC_HEADER "${HEADER_FILES}"
OUTPUT_NAME fasttext)
install (TARGETS fasttext-shared
LIBRARY DESTINATION lib)
-install (TARGETS fasttext-static
- ARCHIVE DESTINATION lib)
-install (TARGETS fasttext-static_pic
- ARCHIVE DESTINATION lib)
install (TARGETS fasttext-bin
RUNTIME DESTINATION bin
PUBLIC_HEADER DESTINATION include/fasttext)
++++++ proper-lib-dir.patch ++++++
From: Jiri Slaby <[email protected]>
Subject: [PATCH] proper lib dir
Patch-mainline: no
Do not install to /usr/lib. Use CMAKE_INSTALL_LIBDIR instead (lib64 on
64bit).
Actually use CMAKE_INSTALL_* everywhere.
---
CMakeLists.txt | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -63,7 +63,7 @@ add_executable(fasttext-bin src/main.cc)
target_link_libraries(fasttext-bin pthread fasttext-shared)
set_target_properties(fasttext-bin PROPERTIES PUBLIC_HEADER "${HEADER_FILES}"
OUTPUT_NAME fasttext)
install (TARGETS fasttext-shared
- LIBRARY DESTINATION lib)
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
install (TARGETS fasttext-bin
- RUNTIME DESTINATION bin
- PUBLIC_HEADER DESTINATION include/fasttext)
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/fasttext)
++++++ py-link-against-shared.patch ++++++
From: Jiri Slaby <[email protected]>
Subject: [PATCH] py: link against shared
Patch-mainline: no
Link the python bindings to the now present libfasttext.so. It reduces
the duplication as well as the compilation time.
---
setup.py | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
--- a/setup.py
+++ b/setup.py
@@ -54,19 +54,13 @@ else:
del sys.argv[coverage_index]
coverage = True
-fasttext_src_files = map(str, os.listdir(FASTTEXT_SRC))
-fasttext_src_cc = list(filter(lambda x: x.endswith('.cc'), fasttext_src_files))
-
-fasttext_src_cc = list(
- map(lambda x: str(os.path.join(FASTTEXT_SRC, x)), fasttext_src_cc)
-)
-
ext_modules = [
Extension(
str('fasttext_pybind'),
[
str('python/fasttext_module/fasttext/pybind/fasttext_pybind.cc'),
- ] + fasttext_src_cc,
+ ],
+ libraries=[str('fasttext')],
include_dirs=[
# Path to pybind11 headers
get_pybind_include(),