forked from pool/python-fasttext
Accepting request 1206651 from home:jirislaby:branches:devel:languages:python
- 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 OBS-URL: https://build.opensuse.org/request/show/1206651 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-fasttext?expand=0&rev=11
This commit is contained in:
35
no-static-lib.patch
Normal file
35
no-static-lib.patch
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
From: Jiri Slaby <jslaby@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)
|
25
proper-lib-dir.patch
Normal file
25
proper-lib-dir.patch
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
From: Jiri Slaby <jslaby@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)
|
34
py-link-against-shared.patch
Normal file
34
py-link-against-shared.patch
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
From: Jiri Slaby <jslaby@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(),
|
@@ -1,3 +1,15 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Oct 10 05:20:36 UTC 2024 - Jiri Slaby <jslaby@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
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Apr 21 12:24:59 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
Fri Apr 21 12:24:59 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||||||
|
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package python-fasttext
|
# 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
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# 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 modname fastText
|
||||||
|
%define sover 0
|
||||||
# Using annotation futures and dataclasses
|
# Using annotation futures and dataclasses
|
||||||
%define skip_python36 1
|
%define skip_python36 1
|
||||||
%{?sle15_python_module_pythons}
|
%{?sle15_python_module_pythons}
|
||||||
@@ -30,12 +30,17 @@ URL: https://github.com/facebookresearch/fastText
|
|||||||
Source: https://github.com/facebookresearch/%{modname}/archive/refs/tags/v%{version}.tar.gz#/%{modname}-%{version}.tar.gz
|
Source: https://github.com/facebookresearch/%{modname}/archive/refs/tags/v%{version}.tar.gz#/%{modname}-%{version}.tar.gz
|
||||||
Patch0: reproducible.patch
|
Patch0: reproducible.patch
|
||||||
Patch1: gcc13-fix.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 devel}
|
||||||
BuildRequires: %{python_module pip}
|
BuildRequires: %{python_module pip}
|
||||||
BuildRequires: %{python_module pybind11-devel}
|
BuildRequires: %{python_module pybind11-devel}
|
||||||
BuildRequires: %{python_module setuptools}
|
BuildRequires: %{python_module setuptools}
|
||||||
BuildRequires: %{python_module wheel}
|
BuildRequires: %{python_module wheel}
|
||||||
|
BuildRequires: cmake
|
||||||
BuildRequires: gcc-c++
|
BuildRequires: gcc-c++
|
||||||
|
BuildRequires: ninja
|
||||||
BuildRequires: python-rpm-macros
|
BuildRequires: python-rpm-macros
|
||||||
# SECTION test requirements
|
# SECTION test requirements
|
||||||
BuildRequires: %{python_module numpy}
|
BuildRequires: %{python_module numpy}
|
||||||
@@ -43,17 +48,44 @@ BuildRequires: %{python_module pybind11 >= 2.2}
|
|||||||
BuildRequires: %{python_module setuptools >= 0.7.0}
|
BuildRequires: %{python_module setuptools >= 0.7.0}
|
||||||
# /SECTION
|
# /SECTION
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
|
Requires: fasttext
|
||||||
Requires: python-numpy
|
Requires: python-numpy
|
||||||
Requires: python-pybind11 >= 2.2
|
Requires: python-pybind11 >= 2.2
|
||||||
Requires: python-setuptools >= 0.7.0
|
Requires: python-setuptools >= 0.7.0
|
||||||
Requires(post): update-alternatives
|
|
||||||
Requires(postun):update-alternatives
|
|
||||||
%python_subpackages
|
%python_subpackages
|
||||||
|
|
||||||
%description
|
%description
|
||||||
fastText is a library for efficient learning of word
|
fastText is a library for efficient learning of word
|
||||||
representations and sentence classification.
|
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
|
%prep
|
||||||
%autosetup -p1 -n %{modname}-%{version}
|
%autosetup -p1 -n %{modname}-%{version}
|
||||||
|
|
||||||
@@ -61,35 +93,46 @@ sed -Ei "1{/^#!\/usr\/bin\/env python/d}" \
|
|||||||
python/fasttext_module/fasttext/util/util.py
|
python/fasttext_module/fasttext/util/util.py
|
||||||
|
|
||||||
%build
|
%build
|
||||||
export CXXFLAGS="%{optflags}" CFLAGS="%{optflags}"
|
pushd .
|
||||||
%make_build
|
%define __builddir build-cmake
|
||||||
|
%define __builder ninja
|
||||||
|
%cmake
|
||||||
|
%cmake_build
|
||||||
|
popd
|
||||||
|
|
||||||
|
export LDFLAGS=-L%{__builddir}
|
||||||
%pyproject_wheel
|
%pyproject_wheel
|
||||||
|
|
||||||
%install
|
%install
|
||||||
|
%cmake_install
|
||||||
%pyproject_install
|
%pyproject_install
|
||||||
%{python_expand :
|
%{python_expand :
|
||||||
install -Dpm 0755 fasttext %{buildroot}%{_bindir}/fasttext
|
|
||||||
%python_clone -a %{buildroot}%{_bindir}/fasttext
|
|
||||||
%fdupes %{buildroot}%{$python_sitearch}
|
%fdupes %{buildroot}%{$python_sitearch}
|
||||||
}
|
}
|
||||||
|
|
||||||
%check
|
%check
|
||||||
# Tests require 300+MB test data
|
# Tests require 300+MB test data
|
||||||
|
|
||||||
%post
|
%ldconfig_scriptlets -n libfasttext%{sover}
|
||||||
%python_install_alternative fasttext
|
|
||||||
|
|
||||||
%postun
|
|
||||||
%python_uninstall_alternative fasttext
|
|
||||||
|
|
||||||
%files %{python_files}
|
%files %{python_files}
|
||||||
%doc README.md docs/
|
|
||||||
%license LICENSE
|
%license LICENSE
|
||||||
# fasttext.pc.in
|
|
||||||
%python_alternative %{_bindir}/fasttext
|
|
||||||
%{python_sitearch}/fasttext
|
%{python_sitearch}/fasttext
|
||||||
%{python_sitearch}/fasttext-%{version}*-info
|
%{python_sitearch}/fasttext-%{version}*-info
|
||||||
%{python_sitearch}/fasttext_pybind.*.so
|
%{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}
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
Reference in New Issue
Block a user