Bug 2163708 - Review Request: libunistring1.0 - Compatibility version of GNU Unicode string library
Summary: Review Request: libunistring1.0 - Compatibility version of GNU Unicode string...
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Nobody's working on this, feel free to take it
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2023-01-24 10:33 UTC by Daiki Ueno
Modified: 2023-01-25 02:36 UTC (History)
2 users (show)

Fixed In Version: libunistring1.0-1.0-1.fc38
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2023-01-25 02:36:39 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Daiki Ueno 2023-01-24 10:33:19 UTC
Spec file: https://ueno.fedorapeople.org/libunistring1.0/libunistring1.0.spec
SRPM: https://ueno.fedorapeople.org/libunistring1.0/libunistring1.0-1.0-1.fc37.src.rpm
Description:
This portable C library implements Unicode string types in three flavours:
(UTF-8, UTF-16, UTF-32), together with functions for character processing
(names, classifications, properties) and functions for string processing
(iteration, formatted output, width, word breaks, line breaks, normalization,
case folding and regular expressions). This version of libunistring package
contains only the library from the 1.0 version and is provided for compatibility
with previous versions.

See also:
https://pagure.io/releng/issue/11175

Comment 1 Miro Hrončok 2023-01-24 12:25:40 UTC
A diff from libunistring witch my inlined comments.

--- libunistring.spec	2023-01-24 13:14:10.423026317 +0100
+++ libunistring1.0.spec	2023-01-24 13:14:07.795011951 +0100
@@ -1,11 +1,13 @@
+%bcond_with devel
+

I suppose a disabled devel bcond makes sense if we want people to be able to install the lib but not compile against it. +1

 # This spec file has been automatically updated
-Version:	1.1
-Release: %{?autorelease}%{!?autorelease:1%{?dist}}
-Name: libunistring
-Summary: GNU Unicode string library
+Version:	1.0
+Release: 1%{?dist}

I'd keep using %autorelease here as well, but not a big deal.

+Name: libunistring1.0
+Summary: Compatibility version of GNU Unicode string library

Ack.

Please also add: Conflicts: libunistring < 1.1 (as the libunistring package has overlapping files in that version).

 License: GPLv2+ or LGPLv3+

New packages MUST use SPDX license identifiers, please update both packages while doing so.

 URL: https://www.gnu.org/software/libunistring/
-Source0: https://ftp.gnu.org/gnu/libunistring/%{name}-%{version}.tar.xz
+Source0: https://ftp.gnu.org/gnu/libunistring/libunistring-%{version}.tar.xz

Ack.

 BuildRequires: gcc
 BuildRequires: make
 Provides: bundled(gnulib)

Consider providing deprecated() here as well.

@@ -15,17 +17,23 @@
 (UTF-8, UTF-16, UTF-32), together with functions for character processing
 (names, classifications, properties) and functions for string processing
 (iteration, formatted output, width, word breaks, line breaks, normalization,
-case folding and regular expressions).
+case folding and regular expressions). This version of libunistring package
+contains only the library from the 1.0 version and is provided for compatibility
+with previous versions.

I am not a native speaker but the sentence sounds weird to me, how about:

This package contains the libunistring library version 1.0 and is intended for compatibility reasons only.
Users are advised to update to a newer version of libunistring.

 
+%if %{with devel}
 %package devel
 Summary: GNU Unicode string library - development files
 Requires: %{name}%{?_isa} = %{version}-%{release}
+Conflicts: libunistring-devel
+Provides: deprecated()
 
 %description devel
 Development files for programs using libunistring.
+%endif


Please update the summary and description of the devel package (just in case it will need to be enabled).

 %prep
-%autosetup
+%autosetup -n libunistring-%{version}

Ack.

 %build
 %configure --disable-static --disable-rpath
@@ -41,8 +49,9 @@
 %files
 %license COPYING COPYING.LIB
 %doc AUTHORS NEWS README
-%{_libdir}/%{name}.so.5*
+%{_libdir}/%{name}.so.*

I'd hardcode the old version here, to be safe.

+%if %{with devel}
 %files devel
 %doc HACKING DEPENDENCIES THANKS ChangeLog
 %doc __doc/*
@@ -50,8 +59,11 @@
 %{_libdir}/%{name}.so
 %{_includedir}/unistring
 %{_includedir}/*.h
+%endif
 
 %ldconfig_scriptlets

This could possibly be removed, but no big deal.

 %changelog
-%autochangelog
+* Tue Jan 24 2023 Daiki Ueno <dueno> - 1.0-1
+- Create compat package for libunistring 1.1 ABI bump
+

What about:

- Initial compatibility package with libunistring 1.0


------------------


Note that compatibility packages don't need a formal review, so treat my comments as recommendations/suggestions and feel free to request the repo:

  fedpkg request-repo libunistring1.0 --exception (--no-initial-commit)

Use --no-initial-commit if you want to push the git history of https://src.fedoraproject.org/rpms/libunistring/tree/f37

Comment 2 Daiki Ueno 2023-01-24 13:09:34 UTC
Thanks Miro, I've incorporated the suggested changes and confirmed it builds in mock. Will request a repo soon.

Comment 3 Daiki Ueno 2023-01-25 02:36:39 UTC
The package has been built in rawhide.


Note You need to log in before you can comment on or make changes to this bug.