Bug 1059708 - Review Request: phodav - a WebDAV server using libsoup
Summary: Review Request: phodav - a WebDAV server using libsoup
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Michael S.
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-01-30 12:51 UTC by Marc-Andre Lureau
Modified: 2014-04-24 07:38 UTC (History)
2 users (show)

Fixed In Version: phodav-0.4-1.fc20
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-04-24 07:38:55 UTC
Type: ---
Embargoed:
misc: fedora-review+
gwync: fedora-cvs+


Attachments (Terms of Use)

Description Marc-Andre Lureau 2014-01-30 12:51:06 UTC
Spec URL: http://elmarco.fedorapeople.org/phodav.spec
SRPM URL: http://elmarco.fedorapeople.org/phodav-0.1-1.fc20.src.rpm
Description: a WebDAV server using libsoup 
Fedora Account System Username: elmarco

Comment 1 Marc-Andre Lureau 2014-01-30 12:51:35 UTC
elmarco@anakao:~/pkg/phodav (master #%)$ rpmlint phodav.spec /home/elmarco/rpmbuild/RPMS/x86_64/phodav-*
phodav.x86_64: W: spelling-error Summary(en_US) libsoup -> lib soup, lib-soup, libelous
phodav.x86_64: W: spelling-error %description -l en_US phởdav 
phodav.x86_64: W: spelling-error %description -l en_US libsoup -> lib soup, lib-soup, libelous
phodav.x86_64: W: no-manual-page-for-binary chezdav
phodav-chezdav.x86_64: W: spelling-error %description -l en_US virtio -> virtuoso
phodav-chezdav.x86_64: W: no-manual-page-for-binary chezdav
phodav-spice.x86_64: W: spelling-error %description -l en_US virtio -> virtuoso
phodav-spice.x86_64: W: no-documentation
phodav-spice.x86_64: W: no-manual-page-for-binary spice-webdavd
4 packages and 1 specfiles checked; 0 errors, 9 warnings.

Comment 2 Michael S. 2014-01-30 19:40:13 UTC
Mhh, it doesn't build on F20 :
checking whether NLS is requested... yes
./configure: line 12254: intltool-update: command not found
checking for intltool >= 0.40.0...  found
configure: error: Your intltool is too old.  You need intltool 0.40.0 or later.
erreur : Mauvais statut de sortie pour /var/tmp/rpm-tmp.MgeUdM (%build)
    Mauvais statut de sortie pour /var/tmp/rpm-tmp.MgeUdM (%build)
Erreur de construction de RPM :

Seems to be missing a BR, like intltool

Comment 3 Michael S. 2014-01-30 19:46:38 UTC
Also : 
- BuildRoot is no longer needed
- %clean
rm -rf %{buildroot} , the rm at start of install and %defattr are also uneeded for newer fedora

- chezdav and the spice subpackage do have the same summary

- there is no service file, while this is a daemon

- the spice subpackage should have the lciense in %doc as well, since it can be install without pulling chezdav

Comment 4 Marc-Andre Lureau 2014-02-05 15:21:57 UTC
(In reply to Michael Scherer from comment #3)
> Also : 
> - BuildRoot is no longer needed
> - %clean
> rm -rf %{buildroot} , the rm at start of install and %defattr are also
> uneeded for newer fedora
> 
> - chezdav and the spice subpackage do have the same summary

ok

> - there is no service file, while this is a daemon

added, but for some reasons, the daemon is not enabled automatically (although it seems to work for vdagent), I am trying to figure out...

> - the spice subpackage should have the lciense in %doc as well, since it can
> be install without pulling chezdav


ok

See last update
Spec URL: http://elmarco.fedorapeople.org/phodav.spec

elmarco@anakao:~/pkg/phodav (master #%)$ rpmlint phodav.spec ~/rpmbuild/RPMS/x86_64/phodav-*
phodav-chezdav.x86_64: W: spelling-error %description -l en_US mDNS -> mans, mdse
phodav-spice.x86_64: W: spelling-error %description -l en_US virtio -> virtuoso
phodav-spice.x86_64: W: only-non-binary-in-usr-lib
phodav-spice.x86_64: W: no-manual-page-for-binary spice-webdavd
3 packages and 1 specfiles checked; 0 errors, 4 warnings.

Comment 5 Michael S. 2014-02-05 15:29:00 UTC
Why does the %post speak ofspice-vdagentd.service while the %files speak of %{_unitdir}/spice-webdavd.service ?

Also, why do you need a target for systemd ?

Comment 6 Marc-Andre Lureau 2014-03-03 19:00:13 UTC
Hi Michael,

I updated the spec, a copr build is also available here:
https://copr.fedoraproject.org/coprs/elmarco/phodav/

thanks!

Comment 7 Marc-Andre Lureau 2014-03-07 15:08:19 UTC
hey hi hey ho

Comment 8 Christopher Meng 2014-03-08 08:49:57 UTC
1. Where did your source come from?

2. Have you read this carefully?

https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Systemd

Comment 9 Marc-Andre Lureau 2014-04-01 15:16:59 UTC
(In reply to Christopher Meng from comment #8)
> 1. Where did your source come from?

From https://download.gnome.org/sources/phodav/
(I am upstream dev/maintainer)

> 2. Have you read this carefully?
> 
> https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Systemd

No, what should I know?

Comment 10 Marc-Andre Lureau 2014-04-01 15:20:07 UTC
Package updated with 0.3 release, now upstream provides a public library.

http://elmarco.fedorapeople.org/phodav-0.3-1.fc20.src.rpm

copr fails temporarily with rawhide, but f20 packages are ok:
http://copr-be.cloud.fedoraproject.org/results/elmarco/phodav/fedora-20-x86_64/phodav-0.3-1.fc20/

Comment 11 Michael S. 2014-04-06 12:00:56 UTC
Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed


- License should be installed if I do "yum install chezdav", which is not
the case 
- There is unowned directory, see the report ( /usr/include/libphodav-1.0 )
- Spec file in the srpm and on the web differn which confuse Fedora review, please
upgrade the file ( and the url of the tarball still speak of 0.1 despites being 
0.3 ).
- why is spice-webdavd is restarted by default ?
- chezdav is not working :
$ type chezdav
chezdav is /usr/bin/chezdav
$ chezdav     
/usr/bin/chezdav: error: `/usr/bin/.libs/chezdav' does not exist
This script is just a wrapper for chezdav.
See the libtool documentation for more information.

===== MUST items =====

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[x]: Header files in -devel subpackage, if present.
[x]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.
[x]: Development (unversioned) .so files in -devel subpackage, if present.

Generic:
[x]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses found:
     "LGPL (v2.1 or later)", "LGPL", "GPL (v2 or later)", "Unknown or
     generated". 1 files have unknown license. Detailed output of licensecheck
     in /home/misc/checkout/git/FedoraReview/1059708-phodav/licensecheck.txt
[!]: License file installed when any subpackage combination is installed.
[!]: Package requires other packages for directories it uses.
     Note: No known owner of /usr/include/libphodav-1.0, /usr/share/gtk-
     doc/html/phodav
[!]: Package must own all directories that it creates.
     Note: Directories without known owners: /usr/include/libphodav-1.0,
     /usr/share/gtk-doc, /usr/share/gtk-doc/html, /usr/share/gtk-
     doc/html/phodav
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.
[x]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[x]: The spec file handles locales properly.
[x]: Package consistently uses macros (instead of hard-coded directory names).
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[x]: Package contains systemd file(s) if in need.
[x]: Useful -debuginfo package or justification otherwise.
[x]: Package is not known to require an ExcludeArch tag.
[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 61440 bytes in 4 files.
[x]: Package complies to the Packaging Guidelines
[x]: Package successfully compiles and builds into binary rpms on at least one
     supported primary architecture.
[x]: Package installs properly.
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: If (and only if) the source package includes the text of the license(s)
     in its own file, then that file, containing the text of the license(s)
     for the package is included in %doc.
[x]: Package does not own files or directories owned by other packages.
[x]: All build dependencies are listed in BuildRequires, except for any that
     are listed in the exceptions section of Packaging Guidelines.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package use %makeinstall only when make install' ' DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package do not use a name that already exist
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as provided
     in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local

===== SHOULD items =====

Generic:
[-]: If the source package does not include license text(s) as a separate file
     from upstream, the packager SHOULD query upstream to include it.
[x]: Final provides and requires are sane (see attachments).
[x]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in
     libphodav-1.0 , libphodav-1.0-devel , chezdav , spice-webdavd
[!]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: Scriptlets must be sane, if used.
[-]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[-]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed files.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[x]: Reviewer should test that the package builds in mock.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: Dist tag is present (not strictly required in GL).
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Uses parallel make %{?_smp_mflags} macro.
[x]: The placement of pkgconfig(.pc) files are correct.
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

===== EXTRA items =====

Generic:
[!]: Spec file according to URL is the same as in SRPM.
     Note: Spec file as given by url is not the same as in SRPM (see attached
     diff).
     See: (this test has no URL)
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Large data in /usr/share should live in a noarch subpackage if package is
     arched.


Rpmlint
-------
Checking: libphodav-1.0-0.3-1.fc20.x86_64.rpm
          libphodav-1.0-devel-0.3-1.fc20.x86_64.rpm
          chezdav-0.3-1.fc20.x86_64.rpm
          spice-webdavd-0.3-1.fc20.x86_64.rpm
          phodav-0.3-1.fc20.src.rpm
libphodav-1.0.x86_64: W: spelling-error %description -l en_US phởdav 
libphodav-1.0.x86_64: W: spelling-error %description -l en_US libsoup -> lib soup, lib-soup, libelous
chezdav.x86_64: W: spelling-error %description -l en_US mDNS -> mans, mdse
spice-webdavd.x86_64: W: spelling-error %description -l en_US virtio -> virtuoso
spice-webdavd.x86_64: W: only-non-binary-in-usr-lib
spice-webdavd.x86_64: W: no-manual-page-for-binary spice-webdavd
phodav.src: W: spelling-error Summary(en_US) libsoup -> lib soup, lib-soup, libelous
phodav.src: W: spelling-error %description -l en_US phởdav 
phodav.src: W: spelling-error %description -l en_US libsoup -> lib soup, lib-soup, libelous
phodav.src: W: invalid-url Source0: http://download.gnome.org/sources/phodav/0.1/phodav-0.3.tar.xz HTTP Error 404: Not Found
5 packages and 0 specfiles checked; 0 errors, 10 warnings.




Rpmlint (installed packages)
----------------------------
# rpmlint libphodav-1.0 spice-webdavd chezdav libphodav-1.0-devel
libphodav-1.0.x86_64: W: spelling-error %description -l en_US phởdav 
libphodav-1.0.x86_64: W: spelling-error %description -l en_US libsoup -> lib soup, lib-soup, libelous
libphodav-1.0.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libphodav-1.0.so.0.0.0 /lib64/libpthread.so.0
spice-webdavd.x86_64: W: spelling-error %description -l en_US virtio -> virtuoso
spice-webdavd.x86_64: W: only-non-binary-in-usr-lib
spice-webdavd.x86_64: W: no-manual-page-for-binary spice-webdavd
chezdav.x86_64: W: spelling-error %description -l en_US mDNS -> mans, mdse
4 packages and 0 specfiles checked; 0 errors, 7 warnings.
# echo 'rpmlint-done:'



Requires
--------
libphodav-1.0 (rpmlib, GLIBC filtered):
    /sbin/ldconfig
    libc.so.6()(64bit)
    libgio-2.0.so.0()(64bit)
    libglib-2.0.so.0()(64bit)
    libgobject-2.0.so.0()(64bit)
    libpthread.so.0()(64bit)
    libsoup-2.4.so.1()(64bit)
    libxml2.so.2()(64bit)
    libxml2.so.2(LIBXML2_2.4.30)(64bit)
    libxml2.so.2(LIBXML2_2.6.0)(64bit)
    rtld(GNU_HASH)

spice-webdavd (rpmlib, GLIBC filtered):
    /bin/sh
    libavahi-client.so.3()(64bit)
    libavahi-common.so.3()(64bit)
    libavahi-gobject.so.0()(64bit)
    libc.so.6()(64bit)
    libgio-2.0.so.0()(64bit)
    libglib-2.0.so.0()(64bit)
    libgobject-2.0.so.0()(64bit)
    libpthread.so.0()(64bit)
    rtld(GNU_HASH)
    systemd-units

chezdav (rpmlib, GLIBC filtered):
    /bin/sh

libphodav-1.0-devel (rpmlib, GLIBC filtered):
    /usr/bin/pkg-config
    libphodav-1.0(x86-64)
    libphodav-1.0.so.0()(64bit)
    pkgconfig(libsoup-2.4)



Provides
--------
libphodav-1.0:
    libphodav-1.0
    libphodav-1.0(x86-64)
    libphodav-1.0.so.0()(64bit)
    libphodav-1.0.so.0(LIBPHODAV1_0.0)(64bit)

spice-webdavd:
    spice-webdavd
    spice-webdavd(x86-64)

chezdav:
    chezdav
    chezdav(x86-64)

libphodav-1.0-devel:
    libphodav-1.0-devel
    libphodav-1.0-devel(x86-64)
    pkgconfig(libphodav-1.0)



Source checksums
----------------
http://download.gnome.org/sources/phodav/0.3/phodav-0.3.tar.xz :
  CHECKSUM(SHA256) this package     : e3df952653dd4cee4eeb3021992e983d63a55bdcd2900040f8fdbeddedc90924
  CHECKSUM(SHA256) upstream package : e3df952653dd4cee4eeb3021992e983d63a55bdcd2900040f8fdbeddedc90924


Generated by fedora-review 0.4.0 (cf29f98) last change: 2013-02-08
Command line :./try-fedora-review -b 1059708
Buildroot used: fedora-20-x86_64
Active plugins: Generic, Shell-api, C/C++
Disabled plugins: Java, Python, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP, Ruby
Disabled flags: EXARCH, EPEL5, BATCH, DISTTAG

Comment 12 Marc-Andre Lureau 2014-04-06 20:45:19 UTC
(In reply to Michael Scherer from comment #11)
> Package Review
> ==============
> 
> Legend:
> [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
> [ ] = Manual review needed
> 
> 
> - License should be installed if I do "yum install chezdav", which is not
> the case 
> - There is unowned directory, see the report ( /usr/include/libphodav-1.0 )

I added 
%dir %{_includedir}/libphodav-1.0/


> - Spec file in the srpm and on the web differn which confuse Fedora review,
> please
> upgrade the file ( and the url of the tarball still speak of 0.1 despites
> being 
> 0.3 ).

Yeah, I updated only the spec when I saw the URL was outdated.

> - why is spice-webdavd is restarted by default ?

The daemon exits whenever a client is disconnected. It must be restarted after.

> - chezdav is not working :
> $ type chezdav
> chezdav is /usr/bin/chezdav
> $ chezdav     
> /usr/bin/chezdav: error: `/usr/bin/.libs/chezdav' does not exist
> This script is just a wrapper for chezdav.
> See the libtool documentation for more information.
> 

Most of those errors come from the disable-fast-install flag, which screwed up relinking and dependency generation. Now fixed in 0.3.1

http://elmarco.fedorapeople.org/phodav-0.3.1-1.fc20.src.rpm

Comment 13 Michael S. 2014-04-07 22:24:27 UTC
> The daemon exits whenever a client is disconnected. It must be restarted after.

then i guess it would be a perfect candidate for socket-activation. I will take a look and maybe submit a patch.

Comment 14 Marc-Andre Lureau 2014-04-07 22:58:03 UTC
(In reply to Michael Scherer from comment #13)
> > The daemon exits whenever a client is disconnected. It must be restarted after.
> 
> then i guess it would be a perfect candidate for socket-activation. I will
> take a look and maybe submit a patch.

I guess that could work. But don't forget it also has a virtio port dependency. I wonder if systemd supports this complex condition. Could we leave that for a future update?

Comment 15 Marc-Andre Lureau 2014-04-08 10:02:04 UTC
and it should also be announced over avahi

Comment 16 Michael S. 2014-04-09 21:52:01 UTC
Yup, it can be done later, we can discuss that IRL next time. I will try to check the package before next week, but it should be quite quick and just a formality.

Comment 17 Michael S. 2014-04-13 09:21:04 UTC
The issue with chezdav not distributing license still stand. ( i, please add the license in %doc ). I am doing a scratch build to test it.

Comment 18 Michael S. 2014-04-13 11:01:24 UTC
And chezdav is working ( or at least, not crashing ).

Comment 19 Marc-Andre Lureau 2014-04-14 08:00:33 UTC
(In reply to Michael Scherer from comment #17)
> The issue with chezdav not distributing license still stand. ( i, please add
> the license in %doc ). I am doing a scratch build to test it.

but the license is distributed in libphodav dependency, that's not enough? anyway, spec updated: http://elmarco.fedorapeople.org/phodav.spec

Comment 20 Michael S. 2014-04-14 22:15:45 UTC
Indeed, didn't see it. So that close the latest issue, so approved.

Comment 21 Marc-Andre Lureau 2014-04-15 08:23:21 UTC
New Package SCM Request
=======================
Package Name: phodav
Short Description: A WebDAV server using libsoup
Owners: elmarco
Branches: f20 el6 epel7

Comment 22 Gwyn Ciesla 2014-04-15 11:51:54 UTC
Git done (by process-git-requests).

Comment 23 Fedora Update System 2014-04-15 16:07:17 UTC
phodav-0.4-1.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/phodav-0.4-1.fc20

Comment 24 Fedora Update System 2014-04-16 09:26:49 UTC
phodav-0.4-1.fc20 has been pushed to the Fedora 20 testing repository.

Comment 25 Fedora Update System 2014-04-24 07:38:55 UTC
phodav-0.4-1.fc20 has been pushed to the Fedora 20 stable repository.


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