[Bug 1826439] Review Request: libvma - LD_PRELOAD-able library with standard BSD sockets API

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



https://bugzilla.redhat.com/show_bug.cgi?id=1826439



--- Comment #22 from igor.ivanov.va@xxxxxxxxx ---
Hi Michal,

I have updated libvma.spec to meet most of your requirements and added
additional patch as
https://raw.githubusercontent.com/igor-ivanov/libvma/pr/fedora-package/fedora/0002-Update-systemctl-files.patch

For others please look at my comments inline.

Thanks,
Igor

(In reply to Michal Schmidt from comment #21)
> Hi Igor,
> I have not added you to the packagers group yet. I have some questions and
> comments about the package.
> 
> libvma.spec:
> > BuildRequires: libibverbs-devel
> > BuildRequires: rdma-core-devel
> 

Done

> These days, libibverbs-devel is provided by rdma-core-devel.
> 
> > BuildRequires: libnl3-devel
> 
> Your config/m4/nl.m4 uses PKG_CHECK_MODULES, so you should BR
> pkgconfig(libnl-route-3.0) instead.
> https://docs.fedoraproject.org/en-US/packaging-guidelines/
> PkgConfigBuildRequires/
> 

Done

> > %build
> > export revision=%{use_rel}
> 
> This seems unnecessary. I did not find anything referencing the "revision"
> environment variable in your build system.
> 

It is used during configure to set VMA_SVN_REVISION.

> > %install
> > %{make_build} DESTDIR=${RPM_BUILD_ROOT} install
> 
> You should use %{make_install} instead.
> 

Corrected but following rules as
https://docs.fedoraproject.org/en-US/packaging-guidelines/#_why_the_makeinstall_macro_should_not_be_used
permit original usage.

> > %files
> > %{_libdir}/%{name}.so*
> 
> So the package contains something like this:
> libvma.so -> libvma.so.9.1.0
> libvma.so.9 -> libvma.so.9.1.0
> libvma.so.9.1.0
> 
> Since libvma.so is to be used only for LD_PRELOAD and no program should be
> linked against it (and have DT_NEEDED for it),:
>  1. is there a point in versioning the library?
>  2. does it have to be installed in the linker's default path? Would it make
> more sense to have it as %{_libdir}/libvma/libvma.so ?
> 

livma has own extra api with vma_extra.h header file and admits direct linkage.

> 
> Do you actually use configure_options for anything? I don't think it's
> common for Fedora packages to have macros like that "just in case". 
> 

This option is used to provide flexibility in final binary libvma version.
For example: this option can be used to enable tso support (--enable-tso) that
increases throughput
but not ready to be included by default.

> use_rel - This is fascinating. The macro not only determines the value of
> the Release tag, it also influences the build where its value gets used for
> version compatibility checks and encoded in version strings. To me the
> mechanism seems needlessly complicated and I fail to see the benefit of it.
> Also, are you aware that sometimes automatic scripts (e.g. release
> engineering mass rebuilds) bump the Release fields in Fedora spec files?
> Normally in RPM, Version is the upstream version and Release serves
> packaging needs.
> 

I removed it
but it is used in pair with configure_options to differentiate packages for the
customers on our side.

> 30-libvma-limits.conf:
> > # Default limits that are needed for proper work of libvma
> > # Read more about this topic in the VMA's User Manual
> 
> Can you point me to where in the manual is this discussed?
> 
> > *             -   memlock        unlimited
> > *          soft   memlock        unlimited
> > *          hard   memlock        unlimited
> 
> Does having the package installed give every user on the system the
> permission to mlock unlimited amounts of RAM? Is that really necessary?
> Could it be at least limited to a user group?
> 

There is such recommendation at
https://docs.mellanox.com/display/VMAv902/VMA+Installation+Options that forces
to
https://github.com/Mellanox/libvma/wiki/VMA-over-RHEL-7.x-with-inbox-driver#4-common-configurations


> vma.service:
> > [Unit]
> > Description=VMA Daemon. Version: 9.1.0-0
> 
> Please consider dropping the version from the Description. No other service
> has that. 
> 

Done

> > After=network.target syslog.target
> 
> syslog.target became irrelevant and was removed in 2013. Please remove that
> dependency. I am aware some packages still have that, but it's just
> cargo-cult now. 
> 
> > Requires=network.target
> 
> This does not make sense for your daemon. See man systemd.special(7) about
> the intended use of network.target.
> 

Done

> > [Service]
> > Type=forking
> > Restart=on-failure
> > ExecStart=/usr/sbin/vma start
> > ExecStop=/usr/sbin/vma stop
> 
> /usr/sbin/vma is a SysV initscript. That's terrible.
> Why not start the deamon binary directly?:
> ExecStart=/usr/sbin/vmad
> (And maybe set KillSignal if needed.)
> 

It does support of some systems easier for us. 

> > ExecReload=/usr/sbin/vma restart
> 
> You must not fake the reload operation with restart. If the service cannot
> do a reload, just do not define ExecReload. 
> 
> > RestartForceExitStatus=1 SIGTERM
> 
> It's unusual to need to use this setting. There may be a good reason for it,
> but please double check.

SIGTERM is generated by kill utility by default. So it is used to restart vmad
in this case too.


-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are always notified about changes to this product and component
_______________________________________________
package-review mailing list -- package-review@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to package-review-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/package-review@xxxxxxxxxxxxxxxxxxxxxxx




[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite Conditions]     [KDE Users]

  Powered by Linux