Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.

Bug 1340269

Summary: Review Request: keepassx0 - Cross-platform password manager
Product: [Fedora] Fedora Reporter: Gwyn Ciesla <gwync>
Component: Package ReviewAssignee: Stephen Gallagher <sgallagh>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: germano.massullo, gwync, jwakely, package-review, panemade, sgallagh
Target Milestone: ---Flags: sgallagh: fedora-review+
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-06-16 13:41:40 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Gwyn Ciesla 2016-05-26 22:07:45 UTC
Description:
KeePassX is an application for people with extremly high demands on secure
personal data management.
KeePassX saves many different information e.g. user names, passwords, urls,
attachemts and comments in one single database. For a better management
user-defined titles and icons can be specified for each single entry.
Furthermore the entries are sorted in groups, which are customizable as well.
The integrated search function allows to search in a single group or the
complete database.
KeePassX offers a little utility for secure password generation. The password
generator is very customizable, fast and easy to use. Especially someone who
generates passwords frequently will appreciate this feature.
The complete database is always encrypted either with AES (alias Rijndael) or
Twofish encryption algorithm using a 256 bit key. Therefore the saved
information can be considered as quite safe. KeePassX uses a database format
that is compatible with KeePass Password Safe for MS Windows.

This is the 0.x branch.


SRPM: https://fedorapeople.org/~limb/review/keepassx0/keepassx0-0.4.4-1.fc25.src.rpm
SPEC: https://fedorapeople.org/~limb/review/keepassx0/keepassx0.spec

Comment 1 Benjamin Lefoul 2016-05-31 10:11:35 UTC
Why are there so many forks of keypass?

- We already have the keypass and keypassx packages.

- I sometimes hear of keepass2...

- Keepassx2 was just approved: https://bugzilla.redhat.com/show_bug.cgi?id=1326875

- Now keepassx0? And no Keepassx1?

This is all very confusing and some explanation could be refreshing...

Comment 2 Stephen Gallagher 2016-05-31 14:30:04 UTC
Benjamin, the short answer is that a mistake was made and people were accidentally forced to upgrade to the 2.x version which upgraded their database, but then downgraded again leading to their database being unusable. So we worked up a way to avoid this going forward which necessitated carrying both versions in the Fedora collection.

See https://fedorahosted.org/fesco/ticket/1569 for more detail than you could possibly want.

Jon, I'll get started on this review right now. Sorry for the delay: holidays.

Comment 3 Stephen Gallagher 2016-05-31 14:53:44 UTC
tl;dr: A few minor issues.



Package Review
==============

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


Issues:
=======
- 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 %license.
  Note: License file license.html is not marked as %license
  See:
  http://fedoraproject.org/wiki/Packaging/LicensingGuidelines#License_Text

- The source tarball location is incorrect. It should be:
  https://www.keepassx.org/releases/0.4.4/keepassx-0.4.4.tar.gz

- The package includes sources licensed with BSD (3 clause).


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

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[x]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.

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.
[!]: 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) (with incorrect FSF address)", "GPL (v2)
     (with incorrect FSF address)", "Unknown or generated", "GPL (v2 or
     later) (with incorrect FSF address)", "BSD (3 clause)", "GPL (v2 or
     later)", "GPL (v2)". 18 files have unknown license. Detailed output of
     licensecheck in /dev/shm/1340269-keepassx0/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[x]: Package must own all directories that it creates.
     Note: Directories without known owners: /usr/share/mime,
     /usr/share/mimelnk/application, /usr/share/mimelnk,
     /usr/share/mime/packages
[x]: Package does not own files or directories owned by other packages.
     Note: Dirs in package are owned also by:
     /usr/share/keepassx/i18n(keepassx), /usr/share/keepassx(keepassx),
     /usr/share/keepassx/icons(keepassx)
[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.
[-]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[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.
[x]: 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.
[-]: Package contains systemd file(s) if in need.
[x]: update-desktop-database is invoked in %post and %postun if package
     contains desktop file(s) with a MimeType: entry.
     Note: desktop file(s) with MimeType entry in keepassx0
[x]: gtk-update-icon-cache is invoked in %postun and %posttrans if package
     contains icons.
     Note: icons in keepassx0
[x]: Useful -debuginfo package or justification otherwise.
[x]: Package is not known to require an ExcludeArch tag.
[-]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 20480 bytes in 1 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]: Package requires other packages for directories it uses.
[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 contains desktop file if it is a GUI application.
[x]: Package installs a %{name}.desktop using desktop-file-install or
     desktop-file-validate if there is such a file.
[x]: Dist tag is present.
[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 does not use a name that already exists.
[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:
[!]: Sources can be downloaded from URI in Source: tag
     Note: Could not download Source0:
     http://download.sf.net/keepassx/keepassx-0.4.4.tar.gz
     See: http://fedoraproject.org/wiki/Packaging:Guidelines#Tags
[x]: update-mime-database is invoked in %post and %postun if package stores
     mime configuration in /usr/share/mime/packages.
     Note: mimeinfo files in: keepassx0
     See:
     http://fedoraproject.org/wiki/Packaging:ScriptletSnippets#mimeinfo
[-]: 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).
[-]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in
     keepassx0-debuginfo
[?]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: Patches link to upstream bugs/comments/lists or are otherwise
     justified.
[-]: SourceX tarball generation or download is documented.
     Note: Package contains tarball without URL, check comments
[-]: 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]: 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]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Uses parallel make %{?_smp_mflags} macro.
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

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

Generic:
[-]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
     Note: Arch-ed rpms have a total of 1986560 bytes in /usr/share
[x]: Rpmlint is run on debuginfo package(s).
     Note: There are rpmlint messages (see attachment).
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: keepassx0-0.4.4-1.fc25.x86_64.rpm
          keepassx0-debuginfo-0.4.4-1.fc25.x86_64.rpm
          keepassx0-0.4.4-1.fc25.src.rpm
keepassx0.x86_64: W: spelling-error %description -l en_US extremly -> extremely, extreme
keepassx0.x86_64: W: spelling-error %description -l en_US urls -> curls, purls, hurls
keepassx0.x86_64: W: spelling-error %description -l en_US attachemts -> attachments, attache, schemata
keepassx0.x86_64: W: spelling-error %description -l en_US customizable -> customization
keepassx0.x86_64: W: obsolete-not-provided keepassx
keepassx0.x86_64: W: no-manual-page-for-binary keepassx0
keepassx0.x86_64: W: desktopfile-without-binary /usr/share/applications/keepassx0.desktop keepassx
keepassx0-debuginfo.x86_64: E: debuginfo-without-sources
keepassx0.src: W: spelling-error %description -l en_US extremly -> extremely, extreme
keepassx0.src: W: spelling-error %description -l en_US urls -> curls, purls, hurls
keepassx0.src: W: spelling-error %description -l en_US attachemts -> attachments, attache, schemata
keepassx0.src: W: spelling-error %description -l en_US customizable -> customization
keepassx0.src: W: invalid-url Source0: http://download.sf.net/keepassx/keepassx-0.4.4.tar.gz HTTP Error 404: Not Found
3 packages and 0 specfiles checked; 1 errors, 12 warnings.




Rpmlint (debuginfo)
-------------------
Checking: keepassx0-debuginfo-0.4.4-1.fc25.x86_64.rpm
keepassx0-debuginfo.x86_64: E: debuginfo-without-sources
1 packages and 0 specfiles checked; 1 errors, 0 warnings.





Rpmlint (installed packages)
----------------------------
sh: /usr/bin/python: No such file or directory
keepassx0.x86_64: W: spelling-error %description -l en_US extremly -> extremely, extreme
keepassx0.x86_64: W: spelling-error %description -l en_US urls -> curls, purls, hurls
keepassx0.x86_64: W: spelling-error %description -l en_US attachemts -> attachments, attache, schemata
keepassx0.x86_64: W: spelling-error %description -l en_US customizable -> customization
keepassx0.x86_64: W: obsolete-not-provided keepassx
keepassx0.x86_64: W: no-manual-page-for-binary keepassx0
keepassx0.x86_64: W: desktopfile-without-binary /usr/share/applications/keepassx0.desktop keepassx
keepassx0-debuginfo.x86_64: E: debuginfo-without-sources
2 packages and 0 specfiles checked; 1 errors, 7 warnings.



Requires
--------
keepassx0 (rpmlib, GLIBC filtered):
    /bin/sh
    hicolor-icon-theme
    libQtCore.so.4()(64bit)
    libQtGui.so.4()(64bit)
    libQtXml.so.4()(64bit)
    libX11.so.6()(64bit)
    libXtst.so.6()(64bit)
    libc.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libm.so.6()(64bit)
    libpthread.so.0()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.8)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    rtld(GNU_HASH)

keepassx0-debuginfo (rpmlib, GLIBC filtered):



Provides
--------
keepassx0:
    application()
    application(keepassx0.desktop)
    keepassx0
    keepassx0(x86-64)
    mimehandler(application/x-keepass)

keepassx0-debuginfo:
    keepassx0-debuginfo
    keepassx0-debuginfo(x86-64)



Generated by fedora-review 0.6.1 (f03e4e7) last change: 2016-05-02
Command line :/usr/bin/fedora-review -b 1340269 -m fedora-rawhide-x86_64
Buildroot used: fedora-rawhide-x86_64
Active plugins: Generic, Shell-api, C/C++
Disabled plugins: Java, Python, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP
Disabled flags: EXARCH, DISTTAG, EPEL5, BATCH, EPEL6

Comment 4 Parag AN(पराग) 2016-06-03 16:56:17 UTC
Okay In case if this helps, as per commented in FESCo ticket, submitting an updated package here.

SRPM: https://pnemade.fedorapeople.org/fedora-work/keepassx0-0.4.4-2.fc24.src.rpm
SPEC: https://pnemade.fedorapeople.org/fedora-work/keepassx0.spec

Comment 5 Stephen Gallagher 2016-06-03 17:34:50 UTC
(In reply to Parag AN(पराग) from comment #4)
> Okay In case if this helps, as per commented in FESCo ticket, submitting an
> updated package here.
> 
> SRPM:
> https://pnemade.fedorapeople.org/fedora-work/keepassx0-0.4.4-2.fc24.src.rpm
> SPEC: https://pnemade.fedorapeople.org/fedora-work/keepassx0.spec

I should have been more clear: it contains sources licensed with BSD 3-clause *in addition* to the GPLv2+ licensed files. According to https://fedoraproject.org/wiki/Packaging:LicensingGuidelines?#Multiple_Licensing_Scenarios this needs to be:

```
# The entire source code is GPLv2+ except crypto/ which is BSD 3-clause
License: GPLv2+ and BSD
```

Comment 6 Parag AN(पराग) 2016-06-04 05:09:41 UTC
I have tried to self-review this package and come up with following changes now
- Fix Exec key in desktop file to keepassx0
- Add license breakup
- Fix some English words spelling in %%description
- Honor the compiler flags
- Remove Obsolete Group tag

Also, I kept license tag just as "GPLv2 and BSD" as there is only one file in GPLv2+ licensed.

SRPM: https://pnemade.fedorapeople.org/fedora-work/keepassx0-0.4.4-3.fc24.src.rpm
SPEC: https://pnemade.fedorapeople.org/fedora-work/keepassx0.spec

Comment 7 Stephen Gallagher 2016-06-07 12:36:07 UTC
Package approved. Thanks, Parag!

Comment 8 Parag AN(पराग) 2016-06-09 04:01:06 UTC
I thought limb will request SCM admin and get this package built in Fedora but that has not happened. Let me request this package in pkgdb now. 

Note though I will be getting maintainership here by requesting this package, I will orphan or pass ownership to limb or anyone else interested once upgrade issue is fixed.

Comment 9 Gwyn Ciesla 2016-06-09 13:20:01 UTC
Package request has been approved: https://admin.fedoraproject.org/pkgdb/package/rpms/keepassx0

Comment 10 Gwyn Ciesla 2016-06-09 13:53:52 UTC
Parag, can you approve the f23 branch request please?

Comment 11 Fedora Update System 2016-06-09 14:07:01 UTC
keepassx0-0.4.4-3.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2016-f1da178e94

Comment 12 Parag AN(पराग) 2016-06-09 14:17:14 UTC
Thanks Jon for building this package for f24+ branches. I have approved f23 branch request.

Comment 13 Gwyn Ciesla 2016-06-09 14:23:14 UTC
Thank you!

Comment 14 Fedora Update System 2016-06-09 14:36:58 UTC
keepassx0-0.4.4-3.fc23 has been submitted as an update to Fedora 23. https://bodhi.fedoraproject.org/updates/FEDORA-2016-fcd957ca82

Comment 15 Fedora Update System 2016-06-09 16:55:15 UTC
keepassx0-0.4.4-3.fc24 has been pushed to the Fedora 24 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-f1da178e94

Comment 16 Fedora Update System 2016-06-10 03:56:36 UTC
keepassx0-0.4.4-3.fc23 has been pushed to the Fedora 23 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-fcd957ca82

Comment 17 Jonathan Wakely 2016-06-10 08:58:37 UTC
keypassx upstream refers to the 0.4.4 branch as "keepass 1", see e.g. the menu option "Import KeePass 1 database" and https://www.keepassx.org/faq/#q_2

Wouldn't 'keepassx1' be a better name for the binary?

Comment 18 Jonathan Wakely 2016-06-10 08:59:30 UTC
Not a big deal though, I can definitely live with keepassx0, thanks for resolving the situation nicely.

Comment 19 Gwyn Ciesla 2016-06-10 14:53:32 UTC
Thanks.  See https://bugzilla.redhat.com/show_bug.cgi?id=1338054#c13

Comment 20 Fedora Update System 2016-06-14 15:02:21 UTC
keepassx0-0.4.4-4.fc23 keepassx-2.0.2-3.fc23 has been submitted as an update to Fedora 23. https://bodhi.fedoraproject.org/updates/FEDORA-2016-df0dfd42ce

Comment 21 Fedora Update System 2016-06-15 17:27:40 UTC
keepassx-2.0.2-3.fc23, keepassx0-0.4.4-4.fc23 has been pushed to the Fedora 23 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-df0dfd42ce

Comment 22 Fedora Update System 2016-06-16 13:40:55 UTC
keepassx0-0.4.4-3.fc24 has been pushed to the Fedora 24 stable repository. If problems still persist, please make note of it in this bug report.

Comment 23 Fedora Update System 2016-06-23 04:53:26 UTC
keepassx-2.0.2-3.fc23, keepassx0-0.4.4-4.fc23 has been pushed to the Fedora 23 stable repository. If problems still persist, please make note of it in this bug report.