[packages/cld2] - new; part of build fixes taken from cyrus
qboosh
qboosh at pld-linux.org
Fri Jul 17 17:37:34 CEST 2026
commit cf2543ca9ae6fad8f8dd70c18baa73c1f7ae6c34
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date: Fri Jul 17 17:37:31 2026 +0200
- new; part of build fixes taken from cyrus
cld2-build-cyrus.patch | 149 +++++++++++++++++++++++++++++++++++++++++++++++++
cld2-install.patch | 53 ++++++++++++++++++
cld2.spec | 76 +++++++++++++++++++++++++
3 files changed, 278 insertions(+)
---
diff --git a/cld2.spec b/cld2.spec
new file mode 100644
index 0000000..298a5af
--- /dev/null
+++ b/cld2.spec
@@ -0,0 +1,76 @@
+Summary: Compact Language Detector 2
+Summary(pl.UTF-8): Biblioteka wykrywania języka Compact Language Detector 2
+Name: cld2
+Version: 0
+%define gitref b56fa78a2fe44ac2851bae5bf4f4693a0644da7b
+%define snap 20150821
+%define rel 1
+Release: 0.%{snap}.%{rel}
+License: Apache v2.0
+Group: Libraries
+Source0: https://github.com/CLD2Owners/cld2/archive/%{gitref}/%{name}-%{snap}.tar.gz
+# Source0-md5: 6a23d18bd8fbf50d5d85374888ee000b
+# from https://github.com/cyrusimap/cld2
+Patch0: %{name}-build-cyrus.patch
+Patch1: %{name}-install.patch
+URL: https://github.com/CLD2Owners/cld2
+BuildRequires: libstdc++-devel
+BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%description
+CLD2 probabilistically detects over 80 languages in Unicode UTF-8
+text, either plain text or HTML/XML.
+
+%description -l pl.UTF-8
+CLD2 wykrywa probabilistycznie ponad 80 języków w tekście unikodowym
+UTF-8, zarówno czystym, jak i HTML/XML.
+
+%package devel
+Summary: Header files for CLD2 library
+Summary(pl.UTF-8): Pliki nagłówkowe biblioteki CLD2
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+Requires: libstdc++-devel
+
+%description devel
+Header files for CLD2 library.
+
+%description devel -l pl.UTF-8
+Pliki nagłówkowe biblioteki CLD2.
+
+%prep
+%setup -q -n %{name}-%{gitref}
+%patch -P0 -p1
+%patch -P1 -p1
+
+%build
+cd internal
+CFLAGS="%{rpmcflags}" \
+CPPFLAGS="%{rpmcppflags}" \
+CXXFLAGS="%{rpmcxxflags} -std=c++98" \
+./compile_libs.sh
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+DESTDIR=$RPM_BUILD_ROOT \
+./install.sh \
+ --prefix=%{_prefix} \
+ --libdir=%{_libdir}
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post -p /sbin/ldconfig
+%postun -p /sbin/ldconfig
+
+%files
+%defattr(644,root,root,755)
+%doc README.md
+%{_libdir}/libcld2.so
+%{_libdir}/libcld2_full.so
+
+%files devel
+%defattr(644,root,root,755)
+%{_includedir}/cld2
+%{_pkgconfigdir}/cld2.pc
diff --git a/cld2-build-cyrus.patch b/cld2-build-cyrus.patch
new file mode 100644
index 0000000..671c2a7
--- /dev/null
+++ b/cld2-build-cyrus.patch
@@ -0,0 +1,149 @@
+From e8318941ac320ab8c019dfa52b0401ec3d3bccb2 Mon Sep 17 00:00:00 2001
+From: Robert Stepanek <rsto at paranoia.at>
+Date: Wed, 20 Feb 2019 11:33:04 +0100
+Subject: [PATCH] Add build scripts and adapt public headers for use outside
+ build path
+
+---
+ build.sh | 14 +++++++++++
+ install.sh | 50 +++++++++++++++++++++++++++++++++++++++
+ public/compact_lang_det.h | 4 ++--
+ 3 files changed, 66 insertions(+), 2 deletions(-)
+ create mode 100755 build.sh
+ create mode 100755 install.sh
+
+diff --git a/build.sh b/build.sh
+new file mode 100755
+index 0000000..0548805
+--- /dev/null
++++ b/build.sh
+@@ -0,0 +1,14 @@
++#!/bin/sh
++
++set -e
++
++echo "Cleaning build artefacts"
++rm -f public/cld2
++ln -s ../internal public/cld2
++cd internal
++./clean.sh
++
++echo -n "Running build script "
++CPPFLAGS="-std=c++98" ./compile_libs.sh
++cd ..
++rm public/cld2
+diff --git a/install.sh b/install.sh
+new file mode 100755
+index 0000000..75f9ff4
+--- /dev/null
++++ b/install.sh
+@@ -0,0 +1,50 @@
++#!/bin/sh
++
++set -e
++
++# Parse command line options
++while [ $# -gt 0 ]; do
++ case "$1" in
++ --prefix=*)
++ PREFIX="${1#*=}"
++ ;;
++ *)
++ printf "Unknown argument: $1\n"
++ printf "Allowed arguments:\n"
++ printf "\t--prefix=DIR install CLD2 to directory DIR\n"
++ exit 1
++ esac
++ shift
++done
++if [ "x$PREFIX" = "x" ]; then
++ PREFIX=/usr/local/cyruslibs
++fi
++echo "Using $PREFIX as installation directory"
++
++CLD2_INCLUDE_BASE=$PREFIX/include
++CLD2_INCLUDE_PATH=$CLD2_INCLUDE_BASE/cld2
++CLD2_LIB_PATH=$PREFIX/lib
++CLD2_PKGCONFIG_PATH=$CLD2_LIB_PATH/pkgconfig
++
++echo "Installing headers to $CLD2_INCLUDE_PATH"
++mkdir -p $CLD2_INCLUDE_PATH
++cp public/*.h internal/integral_types.h internal/lang_script.h internal/generated_language.h internal/generated_ulscript.h $CLD2_INCLUDE_PATH
++
++echo "Installing libraries to $CLD2_LIB_PATH (you probably want to run ldconfig)"
++mkdir -p $CLD2_LIB_PATH
++cp internal/libcld2_full.so $CLD2_LIB_PATH
++
++echo "Installing pkg-config configuration to $CLD2_PKGCONFIG_PATH"
++cat << EOF > cld2.pc
++libdir=$CLD2_LIB_PATH
++includedir=$CLD2_INCLUDE_PATH
++
++Name: cld2
++Description: Compact Language Detector 2
++URL: https://github.com/CLD2Owners/cld2
++Version: 2
++Libs: -L$CLD2_LIB_PATH -lcld2_full
++Cflags: -I$CLD2_INCLUDE_BASE
++EOF
++mkdir -p $CLD2_PKGCONFIG_PATH
++cp cld2.pc $CLD2_PKGCONFIG_PATH
+diff --git a/public/compact_lang_det.h b/public/compact_lang_det.h
+index 4a6f366..a1d0da9 100644
+--- a/public/compact_lang_det.h
++++ b/public/compact_lang_det.h
+@@ -64,8 +64,8 @@
+
+ #include <stdint.h>
+ #include <vector>
+-#include "../internal/integral_types.h" // For uint8 etc.
+-#include "../internal/lang_script.h" // For Language
++#include "cld2/integral_types.h" // For uint8 etc.
++#include "cld2/lang_script.h" // For Language
+
+ namespace CLD2 {
+
+From 074b451c85dc6a97930273147695abb735a1626a Mon Sep 17 00:00:00 2001
+From: Robert Stepanek <rsto at paranoia.at>
+Date: Wed, 5 Aug 2020 17:22:42 +0200
+Subject: [PATCH] Revert header directory structure to original layout
+
+CLD2 packages on a couple of Linux distributions use the
+original layout, and we want to be compatible with them.
+---
+ install.sh | 6 ++++--
+ public/compact_lang_det.h | 4 ++--
+ 2 files changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/install.sh b/install.sh
+index 75f9ff4..ca23361 100755
+--- a/install.sh
++++ b/install.sh
+@@ -27,8 +27,10 @@ CLD2_LIB_PATH=$PREFIX/lib
+ CLD2_PKGCONFIG_PATH=$CLD2_LIB_PATH/pkgconfig
+
+ echo "Installing headers to $CLD2_INCLUDE_PATH"
+-mkdir -p $CLD2_INCLUDE_PATH
+-cp public/*.h internal/integral_types.h internal/lang_script.h internal/generated_language.h internal/generated_ulscript.h $CLD2_INCLUDE_PATH
++mkdir -p $CLD2_INCLUDE_PATH/public
++mkdir -p $CLD2_INCLUDE_PATH/internal
++cp public/*.h $CLD2_INCLUDE_PATH/public
++cp internal/integral_types.h internal/lang_script.h internal/generated_language.h internal/generated_ulscript.h $CLD2_INCLUDE_PATH/internal
+
+ echo "Installing libraries to $CLD2_LIB_PATH (you probably want to run ldconfig)"
+ mkdir -p $CLD2_LIB_PATH
+diff --git a/public/compact_lang_det.h b/public/compact_lang_det.h
+index a1d0da9..4a6f366 100644
+--- a/public/compact_lang_det.h
++++ b/public/compact_lang_det.h
+@@ -64,8 +64,8 @@
+
+ #include <stdint.h>
+ #include <vector>
+-#include "cld2/integral_types.h" // For uint8 etc.
+-#include "cld2/lang_script.h" // For Language
++#include "../internal/integral_types.h" // For uint8 etc.
++#include "../internal/lang_script.h" // For Language
+
+ namespace CLD2 {
+
diff --git a/cld2-install.patch b/cld2-install.patch
new file mode 100644
index 0000000..706de46
--- /dev/null
+++ b/cld2-install.patch
@@ -0,0 +1,53 @@
+--- cld2-b56fa78a2fe44ac2851bae5bf4f4693a0644da7b/install.sh.orig 2026-07-16 06:15:15.409443251 +0200
++++ cld2-b56fa78a2fe44ac2851bae5bf4f4693a0644da7b/install.sh 2026-07-16 06:28:23.918514864 +0200
+@@ -8,6 +8,9 @@ while [ $# -gt 0 ]; do
+ --prefix=*)
+ PREFIX="${1#*=}"
+ ;;
++ --libdir=*)
++ LIBDIR="${1#*=}"
++ ;;
+ *)
+ printf "Unknown argument: $1\n"
+ printf "Allowed arguments:\n"
+@@ -19,22 +22,25 @@ done
+ if [ "x$PREFIX" = "x" ]; then
+ PREFIX=/usr/local/cyruslibs
+ fi
++if [ "x$LIBDIR" = "x" ]; then
++ LIBDIR=${PREFIX}/lib
++fi
+ echo "Using $PREFIX as installation directory"
+
+ CLD2_INCLUDE_BASE=$PREFIX/include
+ CLD2_INCLUDE_PATH=$CLD2_INCLUDE_BASE/cld2
+-CLD2_LIB_PATH=$PREFIX/lib
++CLD2_LIB_PATH=$LIBDIR
+ CLD2_PKGCONFIG_PATH=$CLD2_LIB_PATH/pkgconfig
+
+ echo "Installing headers to $CLD2_INCLUDE_PATH"
+-mkdir -p $CLD2_INCLUDE_PATH/public
+-mkdir -p $CLD2_INCLUDE_PATH/internal
+-cp public/*.h $CLD2_INCLUDE_PATH/public
+-cp internal/integral_types.h internal/lang_script.h internal/generated_language.h internal/generated_ulscript.h $CLD2_INCLUDE_PATH/internal
++mkdir -p $DESTDIR$CLD2_INCLUDE_PATH/public
++mkdir -p $DESTDIR$CLD2_INCLUDE_PATH/internal
++cp -p public/*.h $DESTDIR$CLD2_INCLUDE_PATH/public
++cp -p internal/integral_types.h internal/lang_script.h internal/generated_language.h internal/generated_ulscript.h $DESTDIR$CLD2_INCLUDE_PATH/internal
+
+ echo "Installing libraries to $CLD2_LIB_PATH (you probably want to run ldconfig)"
+-mkdir -p $CLD2_LIB_PATH
+-cp internal/libcld2_full.so $CLD2_LIB_PATH
++mkdir -p $DESTDIR$CLD2_LIB_PATH
++cp -p internal/libcld2.so internal/libcld2_full.so $DESTDIR$CLD2_LIB_PATH
+
+ echo "Installing pkg-config configuration to $CLD2_PKGCONFIG_PATH"
+ cat << EOF > cld2.pc
+@@ -48,5 +54,5 @@ Version: 2
+ Libs: -L$CLD2_LIB_PATH -lcld2_full
+ Cflags: -I$CLD2_INCLUDE_BASE
+ EOF
+-mkdir -p $CLD2_PKGCONFIG_PATH
+-cp cld2.pc $CLD2_PKGCONFIG_PATH
++mkdir -p $DESTDIR$CLD2_PKGCONFIG_PATH
++cp -p cld2.pc $DESTDIR$CLD2_PKGCONFIG_PATH
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/cld2.git/commitdiff/cf2543ca9ae6fad8f8dd70c18baa73c1f7ae6c34
More information about the pld-cvs-commit
mailing list