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 <jsl...@suse.cz>
+
+- 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 <jsl...@suse.cz>
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 <jsl...@suse.cz>
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 <jsl...@suse.cz>
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(),

Reply via email to