Bug 1582861 - Review Request: vkd3d - D3D12 to Vulkan translation library
Summary: Review Request: vkd3d - D3D12 to Vulkan translation library
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
Target Milestone: ---
Assignee: Neal Gompa
QA Contact: Fedora Extras Quality Assurance
Depends On:
Blocks: 1582695
TreeView+ depends on / blocked
Reported: 2018-05-27 14:38 UTC by Michael Cronenworth
Modified: 2018-05-30 14:04 UTC (History)
4 users (show)

Fixed In Version: vkd3d-1.0-1.fc29
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Last Closed: 2018-05-30 14:04:41 UTC
ngompa13: fedora-review+

Attachments (Terms of Use)

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.


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:


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

mainly used as library: use

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


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.

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