Bug 1582861

Summary: Review Request: vkd3d - D3D12 to Vulkan translation library
Product: [Fedora] Fedora Reporter: Michael Cronenworth <mike>
Component: Package ReviewAssignee: Neal Gompa <ngompa13>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: decathorpe, ngompa13, package-review, zebob.m
Target Milestone: ---Flags: ngompa13: fedora-review+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: vkd3d-1.0-1.fc29 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-05-30 14:04:41 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1582695    

Description Michael Cronenworth 2018-05-27 14:38:23 UTC
Spec URL: http://michael.cronenworth.com/RPMS/vkd3d.spec
SRPM URL: http://michael.cronenworth.com/RPMS/vkd3d-1.0-1.fc28.src.rpm
Description: D3D12 to Vulkan translation library
Fedora Account System Username: mooninite

Comment 1 Neal Gompa 2018-05-27 15:08:46 UTC
Taking this review.

Comment 2 Robert-André Mauchin 🐧 2018-05-27 15:44:27 UTC
Quick notes: 

 - package seems to be LGPLv2+ licensed: https://source.winehq.org/git/vkd3d.git/blob/020c119e2da0786d8be0615cff961c190b00d62d:/LICENSE

 - devel should require the main package and libs-devel should require libs

Comment 3 Neal Gompa 2018-05-27 16:20:12 UTC
The naming of the packages is somewhat misleading.

For example, I expect that if there's vkd3d and vkd3d-libs, that only the latter has libraries. The splits for devel are equally odd.

From what I can tell in the source tree, it can actually produce binaries, but the Makefile.am is currently set to not install any produced programs. That's perfectly fine, of course.

A suggestion: Produce the following subpackage layout:

* libvkd3d - main libvkd3d library
* libvkd3d-devel - devel content associated with it
* libvkd3d-utils - utility library for libvkd3d
* libvkd3d-utils-devel - devel content associated with it

libvkd3d-utils would "Requires: libvkd3d%{?_isa} = %{version}-%{release}"
libvkd3d-utils-devel would "Requires: libvkd3d-devel%{?_isa} = %{version}-%{release}"

And as Robert-André Mauchin said, libvkd3d-devel should require libvkd3d and libvkd3d-utils-devel should require libvkd3d-utils in a similar manner.

Comment 4 Michael Cronenworth 2018-05-27 17:04:42 UTC
I'm following Debian's naming of this package.

https://ftp-master.debian.org/new/vkd3d_1.0-1.html

As far as "vkd3d-libs" vs "libvkd3d" is there a specific Fedora policy to name it one way or the other? Example: krb5 uses "krb5-libs", dbus uses "dbus-libs", openssl uses... "openssl-libs".

Comment 5 Fabio Valentini 2018-05-27 17:22:47 UTC
Actually, there is such a (recently revised) policy:

https://fedoraproject.org/wiki/Packaging:Guidelines#Libraries_and_Applications

Comment 6 Neal Gompa 2018-05-27 17:56:08 UTC
An example of following the (newer) policy is pkgconf: https://src.fedoraproject.org/rpms/pkgconf/blob/master/f/pkgconf.spec

Comment 7 Fabio Valentini 2018-05-27 17:59:59 UTC
Well, that's exactly not what we discussed when updating the Packaging Guidelines. The current recommendation is:

mainly used as application: use
vkd3d
vkd3d-libs

mainly used as library: use
libvkd3d
libvkd3d-utils

Comment 8 Neal Gompa 2018-05-27 19:34:22 UTC
> mainly used as application: use
> vkd3d
> vkd3d-libs

IIRC, it's permitted to use the naming convention in pkgconf too.

Mir would be an example of one that does the "-libs" stuff instead: https://src.fedoraproject.org/rpms/mir/blob/master/f/mir.spec

Comment 9 Michael Cronenworth 2018-05-29 17:35:22 UTC
(In reply to Fabio Valentini from comment #5)
> Actually, there is such a (recently revised) policy:
> 
> https://fedoraproject.org/wiki/Packaging:
> Guidelines#Libraries_and_Applications

Thanks, this was the answer I was looking for.

New Spec: http://michael.cronenworth.com/RPMS/vkd3d.spec
New SRPM: http://michael.cronenworth.com/RPMS/vkd3d-1.0-2.fc28.src.rpm

Comment 10 Neal Gompa 2018-05-30 00:56:48 UTC
> make %{?_smp_mflags}

Please consider using "%make_build" instead.

> #Remove static libraries
> rm -f %{buildroot}%{_libdir}/libvkd3d.{a,la}
> rm -f %{buildroot}%{_libdir}/libvkd3d-utils.{a,la}

Consider using the following instead:

""""
# Remove libtool archives
find %{buildroot} -name '*.la' -delete

# Remove static libraries
find %{buildroot} -name '*.a' -delete
""""

Comment 12 Neal Gompa 2018-05-30 01:58:25 UTC
Please remove the empty %files section, as `vkd3d` is not a metapackage or anything.

Comment 14 Neal Gompa 2018-05-30 11:19:39 UTC
Review notes:

* Package is named correctly
* Package follows guidelines for libraries
* Package builds and installs correctly
* No errors of note from rpmlint or fedora-review

PACKAGE APPROVED.

Comment 15 Gwyn Ciesla 2018-05-30 13:32:07 UTC
(fedrepo-req-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/vkd3d

Comment 16 Michael Cronenworth 2018-05-30 14:04:41 UTC
Package imported and built for Rawhide. Thanks.