Bug 1187084 - Review Request: electrum - a lightweight Bitcoin client
Summary: Review Request: electrum - a lightweight Bitcoin client
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: gil cattaneo
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 1187082 1279104
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-01-29 10:26 UTC by Samuel Gyger
Modified: 2018-01-08 12:58 UTC (History)
12 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-11-20 20:00:44 UTC
Type: ---
Embargoed:
puntogil: fedora-review+


Attachments (Terms of Use)

Description Samuel Gyger 2015-01-29 10:26:24 UTC
Spec URL: http://people.ee.ethz.ch/~gygers/rpms/electrum.spec
SRPM URL: http://people.ee.ethz.ch/~gygers/rpms/electrum-1.9.8-1.fc21.src.rpm
Description: A lightweight bitcoin client that uses external servers to do the heavy lifting of the bitcoin protocol.
Fedora Account System Username:gyger

Koji Build: http://koji.fedoraproject.org/koji/taskinfo?taskID=8764068
Copr Repository: https://copr.fedoraproject.org/coprs/gyger/electrum/

I'm quite new (2nd package) and I need a sponsor.

Comment 1 Pranav Kant 2015-02-06 21:00:51 UTC
This is an unofficial review only.

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

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

Issues:
=======
- Package contains BR: python2-devel or python3-devel
  Your package contains only python-devel. If you need both python2, python3,
  you need to add both of these as separate BRs, otherwise only add one of these.
- Package uses either %{buildroot} or $RPM_BUILD_ROOT
  Please don't use a mixture of macro style and variable style. Keep it
  consistent throughout the spec file.
  See: http://fedoraproject.org/wiki/Packaging/Guidelines#macros
- Package installs a %{name}.desktop using desktop-file-install or desktop-
  file-validate if there is such a file.
  Your package includes electrum.desktop file but doesn't use
  desktop-file-install to install this desktop file. Also add a BR:
  desktop-file-utils for this.
  See: http://fedoraproject.org/wiki/Packaging:Guidelines#desktop-file-install_usage
- update-desktop-database is invoked in %post and %postun if package contains
  desktop file(s) with a MimeType: entry.
  Since, this package involves a desktop file, you probably need to add these
  sections.
  See: http://fedoraproject.org/wiki/Packaging:ScriptletSnippets#desktop-
  database
- Use %license and move LICENSE file from %doc to %license.
  See :
  http://fedoraproject.org/wiki/Changes/Use_license_macro_in_RPMs_for_packages_in_Cloud_Image
- You need to change %{__python} macro to specifically %{__python2} or 3 in your
  spec file. Unversioned python macros are deprecated.
- Use versioned python_sitelib in %files instead of unversioned
%{__python_sitelib}
- Your package doesn't include the *.egg-info in %files.
- Binary eggs must be removed in %prep probably.


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

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.
     Licenses found:
     "Apache (v2.0)", "GPL (v3 or later)", "Unknown or generated", "MIT/X11
     (BSD like)", "BSD (2 clause)", "*No copyright* MIT/X11 (BSD like)". 44
     files have unknown license.
     Please make sure that you mention all of these licenses in License field in
     spec file or put an *effective* license in that field.
[?]: Package requires other packages for directories it uses.
     Note: No known owner of /usr/share/locale/ar_SA/LC_MESSAGES,
     /usr/share/locale/eo_UY/LC_MESSAGES, /usr/share/locale/ky_KG,
     /usr/share/locale/eo_UY, /usr/share/locale/ky_KG/LC_MESSAGES,
     /usr/share/locale/ar_SA
[?]: Package must own all directories that it creates.
     Note: Directories without known owners:
     /usr/share/locale/eo_UY/LC_MESSAGES, /usr/share/locale/eo_UY,
     /usr/share/locale/ar_SA, /usr/share/locale/ky_KG,
     /usr/share/locale/ky_KG/LC_MESSAGES, /usr/share/locale/ar_SA/LC_MESSAGES
[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]: The spec file handles locales properly.
[!]: Package consistently uses macros (instead of hard-coded directory names).
     You use macros at most of the places but there is still some scope. You can
     use %{name} when installing binaries and other files in %{datadir}.
[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.
[?]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[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.
     This doesn't have large documentation.
[x]: Packages must not store files under /srv, /opt or /usr/local
[x]: Package complies to the Packaging Guidelines
[x]: Package successfully compiles and builds into binary rpms on at least one
     supported primary architecture.
[x]: Rpmlint is run on all rpms the build produces.
     Note: No rpmlint messages.
[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 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 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.

Python:
[!]: Binary eggs must be removed in %prep
     Probably you need to do rm -rf %{name}.egg-info. I am not sure about this.  
[?]: Python eggs must not download any dependencies during the build process.
[?]: A package which is used by another package via an egg interface should
     provide egg info.
[x]: Package meets the Packaging Guidelines::Python

===== 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]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[!]: Patches link to upstream bugs/comments/lists or are otherwise justified.
[?]: 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.
[x]: %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]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

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

Generic:
[x]: Rpmlint is run on all installed packages.
     See: http://fedoraproject.org/wiki/Packaging/Guidelines#rpmlint
[-]: Large data in /usr/share should live in a noarch subpackage if package is
     arched.
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: electrum-1.9.8-1.fc21.noarch.rpm
          electrum-1.9.8-1.fc21.src.rpm
2 packages and 0 specfiles checked; 0 errors, 0 warnings.


Requires
--------
electrum (rpmlib, GLIBC filtered):
    /usr/bin/python
    PyQt4
    python
    python(abi)
    python-ecdsa
    python-slowaes



Provides
--------
electrum:
    application()
    application(electrum.desktop)
    electrum
    mimehandler(x-scheme-handler/bitcoin)



Source checksums
----------------
https://download.electrum.org/Electrum-1.9.8.tar.gz :
  CHECKSUM(SHA256) this package     : 8fc144a32013e4a747fea27fff981762a6b9e14cde9ffb405c4c721975d846ff
  CHECKSUM(SHA256) upstream package : 8fc144a32013e4a747fea27fff981762a6b9e14cde9ffb405c4c721975d846ff

Comment 2 Samuel Gyger 2015-02-07 21:07:21 UTC
New Files are uploaded:
Spec URL: http://people.ee.ethz.ch/~gygers/rpms/electrum.spec
SRPM URL: http://people.ee.ethz.ch/~gygers/rpms/electrum-1.9.8-2.fc21.src.rpm

Koji Build: http://koji.fedoraproject.org/koji/taskinfo?taskID=8860395
Copr Repository: https://copr.fedoraproject.org/coprs/gyger/electrum/

Fixed Bugs: all but the following.
 - Package owns all the folders from the languages. Not sure what to do there. Added gettext as a builddependency, but it's not realy used as .mo files are released in the package and not build. What is the solution there?

 - License: I remove the distributed third party libraries from the source folder in the %prep section. A lot of files have no license header, but they are all set to be GPLv3 by the author of the files.
 
 - Egg-info not specifically listed as it says here (https://fedoraproject.org/wiki/Packaging:Python_Eggs#Providing_Egg_Metadata_Using_Setuptools), that the %{python2_sitelib}/* captures also .egg-info

Comment 3 Samuel Gyger 2015-02-07 21:29:17 UTC
Sorry, forgot one RPM_BUILDROOT variable, here an updated build, everything else same as before.

Spec URL: http://people.ee.ethz.ch/~gygers/rpms/electrum.spec
SRPM URL: http://people.ee.ethz.ch/~gygers/rpms/electrum-1.9.8-3.fc21.src.rpm

Koji: http://koji.fedoraproject.org/koji/taskinfo?taskID=8860814

Comment 4 Christopher Meng 2015-02-11 06:24:50 UTC
I'm afraid Fedora doesn't accept it, asking legal.

Comment 5 Samuel Gyger 2015-03-10 21:38:28 UTC
Any update on that?

Comment 6 Tom "spot" Callaway 2015-09-11 14:54:05 UTC
There should no longer be any legal issue with FOSS bitcoin implementations. Lifting FE-Legal.

Comment 7 Carl van Tonder 2015-10-29 06:43:07 UTC
Uploaded electrum-2.5.1-1.fc23.src.rpm to COPR if that's of help to anyone:

https://copr.fedoraproject.org/coprs/seeitcoming/electrum/

i.e. Samuel's .spec file seems to work fine for later versions.

Comment 8 Piotr Popieluch 2015-11-05 07:36:13 UTC
Any progress on this?

Samuel are you still interested in packaging/maintaining this?

Comment 9 Samuel Gyger 2015-11-05 07:56:46 UTC
Yes, definitely, but there was no response for a long time, so I didn't invest more time. If there is a chance to get it into Fedora now, I'll package the new versions and update the SPEC files.

Comment 10 Piotr Popieluch 2015-11-05 09:44:57 UTC
Nice, Do you still need a sponsor?
 I can review this package but cant's sponsor you.

Comment 11 Upstream Release Monitoring 2015-11-07 21:15:30 UTC
gyger's scratch build of electrum-2.5.2-1.fc21.src.rpm for f21 completed http://koji.fedoraproject.org/koji/taskinfo?taskID=11745928

Comment 12 Samuel Gyger 2015-11-07 21:39:16 UTC
I need a sponsor.

So I updated the SPEC file and also create a SRPM file, hosted under the 
following links.

SPEC: http://people.ee.ethz.ch/~gygers/rpms/electrum.spec
SRPMS: http://people.ee.ethz.ch/~gygers/rpms/electrum-2.5.2-1.fc21.src.rpm

Koji Builds are here: 
http://koji.fedoraproject.org/koji/taskinfo?taskID=11745928 (F21)
http://koji.fedoraproject.org/koji/taskinfo?taskID=11745974 (F22)

The copr repository is also updated.

Comment 13 Samuel Gyger 2016-04-26 22:05:29 UTC
And the last package for this new effort to get electrum into fedora. Sorry for the delay as I was stuck on fedora 21 for quite a while, but a new computer, enough power for virtualization got me running on packaging this stuff again.

Here the updated files with your inputs included.

Spec URL: http://people.ee.ethz.ch/~gygers/rpms/electrum.spec
SRPM URL: http://people.ee.ethz.ch/~gygers/rpms/electrum-2.6.4-2.fc23.src.rpm
Description: A lightweight bitcoin client that uses external servers to do the heavy lifting of the bitcoin protocol.
Fedora Account System Username:gyger

I need a sponsor too.

Koji: http://koji.fedoraproject.org/koji/taskinfo?taskID=13815905 (F23)

And also my copr repository runs the newest files now.
https://copr.fedorainfracloud.org/coprs/gyger/electrum

Comment 14 Jonny Heggheim 2016-11-09 16:23:20 UTC
What is the status of this package? Do you mind I take over and become the maintainer?

Comment 15 Samuel Gyger 2016-11-09 20:08:14 UTC
Feel free, you can take my work, Public Domain, no limits from me. Thanks for stepping up to the task.

Cheers

Comment 16 Jonny Heggheim 2016-11-09 22:14:00 UTC
(In reply to Samuel Gyger from comment #15)
> Feel free, you can take my work, Public Domain, no limits from me. Thanks
> for stepping up to the task.
> 
> Cheers

Great! Thanks for your work, my SPEC files are based on your contributions.

Comment 17 Jonny Heggheim 2016-11-09 22:23:05 UTC
New version based on the work of Samuel Gyger:

Spec URL: https://jonny.fedorapeople.org/electrum/electrum.spec
SRPM URL: https://jonny.fedorapeople.org/electrum/electrum-2.7.12-1.fc25.src.rpm
Description: A lightweight bitcoin client that uses external servers to do the heavy lifting of the bitcoin protocol.
Fedora Account System Username: jonny
Koji build: http://koji.fedoraproject.org/koji/taskinfo?taskID=16378467

Comment 18 Jonny Heggheim 2016-11-09 22:24:51 UTC
Not sure how to package the locale files, now their are in: /usr/lib/python2.7/site-packages/electrum/locale, but I assume the best place would be /usr/share/locale/.

This would require changes to Electrum:
Electrum-2.7.12/lib/i18n.py:
> import gettext, os
> 
> LOCALE_DIR = os.path.join(os.path.dirname(__file__), 'locale')
> language = gettext.translation('electrum', LOCALE_DIR, fallback = True)

Do you think it is worth the effort to patch this file and install the translations in /usr/share/locale/? Or should we work with upstream to have a better solution?

Comment 19 Samuel Gyger 2016-11-12 11:57:53 UTC
If this is how it should be, than I think working with upstream is the way to go. The author is very responsive, at least in my experience.

I don't know how locales for python packages are handled.

Comment 20 Jonny Heggheim 2016-11-13 13:20:31 UTC
(In reply to Samuel Gyger from comment #19)
> If this is how it should be, than I think working with upstream is the way
> to go. The author is very responsive, at least in my experience.

I just sent him an email and asked if we could find a solution.

Btw, Debian stores the locales in /usr/lib/python2.7/dist-packages/electrum/locale for their Electrum package

Comment 21 gil cattaneo 2016-11-13 21:42:15 UTC
I will review when python-pbkdf2 will be available in rawhide

Comment 22 gil cattaneo 2016-11-13 21:44:44 UTC
(In reply to gil cattaneo from comment #21)
> I will review when python-pbkdf2 will be available in rawhide
Seem unavailable also python-slowaes

Comment 23 Jonny Heggheim 2016-11-13 21:58:34 UTC
(In reply to gil cattaneo from comment #22)
> (In reply to gil cattaneo from comment #21)
> > I will review when python-pbkdf2 will be available in rawhide
> Seem unavailable also python-slowaes

Great, both have been requested in the package database, I will let you know when they are in rawhide.

Comment 24 Jonny Heggheim 2016-11-14 00:03:07 UTC
Updated SPEC file.

Spec URL: https://jonny.fedorapeople.org/electrum/electrum.spec
SRPM URL: https://jonny.fedorapeople.org/electrum/electrum-2.7.12-2.fc25.src.rpm
Description: A lightweight bitcoin client that uses external servers to do the heavy lifting of the bitcoin protocol.
Fedora Account System Username: jonny
Koji build: http://koji.fedoraproject.org/koji/taskinfo?taskID=16440972

Changelog
* Sun Nov 13 2016 Jonny Heggheim <jonnyheggheim> - 2.7.12-2
- Added weak dependency on zbar-pygtk

Comment 25 gil cattaneo 2016-11-14 17:38:32 UTC
Package Review
==============

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



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

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: "MIT/X11 (BSD like)", "BSD (2 clause)", "*No copyright* MIT/X11
     (BSD like)", "Unknown or generated". 107 files have unknown license.
     Detailed output of licensecheck in
     /home/gil/1187084-electrum/licensecheck.txt

BSD (2 clause)
--------------
Electrum-2.7.12/lib/socks.py

Unknown or generated
--------------------
Electrum-2.7.12/gui/kivy/i18n.py
Electrum-2.7.12/gui/kivy/main_window.py
Electrum-2.7.12/gui/kivy/nfc_scanner/scanner_android.py
Electrum-2.7.12/gui/kivy/nfc_scanner/scanner_dummy.py
Electrum-2.7.12/gui/kivy/uix/combobox.py
Electrum-2.7.12/gui/kivy/uix/context_menu.py
Electrum-2.7.12/gui/kivy/uix/dialogs/amount_dialog.py
Electrum-2.7.12/gui/kivy/uix/dialogs/bump_fee_dialog.py
Electrum-2.7.12/gui/kivy/uix/dialogs/checkbox_dialog.py
Electrum-2.7.12/gui/kivy/uix/dialogs/choice_dialog.py
Electrum-2.7.12/gui/kivy/uix/dialogs/fee_dialog.py
Electrum-2.7.12/gui/kivy/uix/dialogs/fx_dialog.py
Electrum-2.7.12/gui/kivy/uix/dialogs/installwizard.py
Electrum-2.7.12/gui/kivy/uix/dialogs/label_dialog.py
Electrum-2.7.12/gui/kivy/uix/dialogs/nfc_transaction.py
Electrum-2.7.12/gui/kivy/uix/dialogs/password_dialog.py
Electrum-2.7.12/gui/kivy/uix/dialogs/qr_dialog.py
Electrum-2.7.12/gui/kivy/uix/dialogs/qr_scanner.py
Electrum-2.7.12/gui/kivy/uix/dialogs/question.py
Electrum-2.7.12/gui/kivy/uix/dialogs/seed_options.py
Electrum-2.7.12/gui/kivy/uix/dialogs/settings.py
Electrum-2.7.12/gui/kivy/uix/dialogs/tx_dialog.py
Electrum-2.7.12/gui/kivy/uix/dialogs/wallets.py
Electrum-2.7.12/gui/kivy/uix/drawer.py
Electrum-2.7.12/gui/kivy/uix/gridview.py
Electrum-2.7.12/gui/kivy/uix/menus.py
Electrum-2.7.12/gui/kivy/uix/qrcodewidget.py
Electrum-2.7.12/gui/kivy/uix/screens.py
Electrum-2.7.12/gui/qt/amountedit.py
Electrum-2.7.12/gui/qt/console.py
Electrum-2.7.12/gui/qt/icons_rc.py
Electrum-2.7.12/gui/qt/installwizard.py
Electrum-2.7.12/gui/qt/qrcodewidget.py
Electrum-2.7.12/gui/qt/qrtextedit.py
Electrum-2.7.12/gui/qt/util.py
Electrum-2.7.12/gui/stdio.py
Electrum-2.7.12/gui/text.py
Electrum-2.7.12/lib/msqr.py
Electrum-2.7.12/lib/paymentrequest_pb2.py
Electrum-2.7.12/lib/simple_config.py
Electrum-2.7.12/lib/tests/test_account.py
Electrum-2.7.12/lib/tests/test_bitcoin.py
Electrum-2.7.12/lib/tests/test_interface.py
Electrum-2.7.12/lib/tests/test_mnemonic.py
Electrum-2.7.12/lib/tests/test_simple_config.py
Electrum-2.7.12/lib/tests/test_transaction.py
Electrum-2.7.12/lib/tests/test_util.py
Electrum-2.7.12/lib/tests/test_wallet.py
Electrum-2.7.12/lib/version.py
Electrum-2.7.12/plugins/audio_modem/qt.py
Electrum-2.7.12/plugins/exchange_rate/exchange_rate.py
Electrum-2.7.12/plugins/exchange_rate/kivy.py
Electrum-2.7.12/plugins/exchange_rate/qt.py
Electrum-2.7.12/plugins/keepkey/client.py
Electrum-2.7.12/plugins/keepkey/cmdline.py
Electrum-2.7.12/plugins/keepkey/keepkey.py
Electrum-2.7.12/plugins/keepkey/qt.py
Electrum-2.7.12/plugins/labels/kivy.py
Electrum-2.7.12/plugins/labels/labels.py
Electrum-2.7.12/plugins/labels/qt.py
Electrum-2.7.12/plugins/ledger/cmdline.py
Electrum-2.7.12/plugins/ledger/ledger.py
Electrum-2.7.12/plugins/ledger/qt.py
Electrum-2.7.12/plugins/plot/qt.py
Electrum-2.7.12/plugins/trezor/client.py
Electrum-2.7.12/plugins/trezor/clientbase.py
Electrum-2.7.12/plugins/trezor/cmdline.py
Electrum-2.7.12/plugins/trezor/plugin.py
Electrum-2.7.12/plugins/trezor/qt.py
Electrum-2.7.12/plugins/trezor/qt_generic.py
Electrum-2.7.12/plugins/trezor/trezor.py
Electrum-2.7.12/plugins/trustedcoin/cmdline.py
Electrum-2.7.12/plugins/virtualkeyboard/qt.py
Electrum-2.7.12/scripts/bip70
Electrum-2.7.12/scripts/block_headers
Electrum-2.7.12/scripts/estimate_fee
Electrum-2.7.12/scripts/get_chunk
Electrum-2.7.12/scripts/get_donation_address
Electrum-2.7.12/scripts/get_history
Electrum-2.7.12/scripts/peers
Electrum-2.7.12/scripts/servers
Electrum-2.7.12/scripts/txradar
Electrum-2.7.12/scripts/util.py
Electrum-2.7.12/scripts/watch_address
Electrum-2.7.12/setup-release.py



[?]: Package requires other packages for directories it uses.
     Note: No known owner of /usr/share/locale/hy_AM,
     /usr/share/locale/eo_UY, /usr/share/locale/ky_KG/LC_MESSAGES,
     /usr/share/locale/ar_SA/LC_MESSAGES,
     /usr/share/locale/eo_UY/LC_MESSAGES, /usr/share/locale/ar_SA,
     /usr/share/locale/ky_KG, /usr/share/locale/hy_AM/LC_MESSAGES
[?]: Package must own all directories that it creates.
     Note: Directories without known owners:
     /usr/share/locale/eo_UY/LC_MESSAGES, /usr/share/locale/hy_AM,
     /usr/share/locale/eo_UY, /usr/share/locale/ar_SA,
     /usr/share/locale/ky_KG, /usr/share/locale/ky_KG/LC_MESSAGES,
     /usr/share/locale/ar_SA/LC_MESSAGES,
     /usr/share/locale/hy_AM/LC_MESSAGES
[x]: Package contains no bundled libraries without FPC exception.
[?]: 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.
[?]: 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.
[-]: 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 electrum
[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 40960 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 %license.
[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 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

Python:
[x]: Python eggs must not download any dependencies during the build
     process.
[?]: A package which is used by another package via an egg interface should
     provide egg info.
[x]: Package meets the Packaging Guidelines::Python
[x]: Package contains BR: python2-devel or python3-devel
[x]: Binary eggs must be removed in %prep

===== 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]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[-]: 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]: Sources can be downloaded from URI in Source: tag
[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).


Rpmlint
-------
Checking: electrum-2.7.12-2.fc26.noarch.rpm
          electrum-2.7.12-2.fc26.src.rpm
electrum.noarch: W: no-manual-page-for-binary electrum
electrum.src:38: W: setup-not-quiet
2 packages and 0 specfiles checked; 0 errors, 2 warnings.




Rpmlint (installed packages)
----------------------------
electrum.noarch: W: no-manual-page-for-binary electrum
1 packages and 0 specfiles checked; 0 errors, 1 warnings.



Diff spec file in url and in SRPM
---------------------------------
--- /home/gil/1187084-electrum/srpm/electrum.spec	2016-11-14 18:06:42.939626718 +0100
+++ /home/gil/1187084-electrum/srpm-unpacked/electrum.spec	2016-11-14 00:52:40.000000000 +0100
@@ -1,5 +1,5 @@
 Name:           electrum
 Version:        2.7.12
-Release:        1%{?dist}
+Release:        2%{?dist}
 Summary:        A lightweight Bitcoin Client
 
@@ -7,4 +7,5 @@
 URL:            https://electrum.org/
 Source0:        https://download.electrum.org/%{version}/Electrum-%{version}.tar.gz
+Patch0:         zbar-installation-instructions.patch
 BuildArch:      noarch
 
@@ -25,4 +26,6 @@
 Requires:       PyQt4
 
+Suggests:       zbar-pygtk
+
 %description
 Electrum is an easy to use Bitcoin client. It protects you from losing
@@ -33,5 +36,6 @@
 
 %prep
-%setup -q -n Electrum-%{version}
+%setup -n Electrum-%{version}
+%patch0
 rm -rf Electrum.egg-info
 rm -rf packages
@@ -42,4 +46,6 @@
 
 %install
+install -d %{buildroot}/usr/share/locale
+mv lib/locale %{buildroot}/usr/share
 %{py2_install}
 
@@ -82,4 +88,7 @@
 
 %changelog
+* Sun Nov 13 2016 Jonny Heggheim <jonnyheggheim> - 2.7.12-2
+- Added weak dependency on zbar-pygtk
+
 * Wed Nov 09 2016 Jonny Heggheim <jonnyheggheim> - 2.7.12-1
 - new version


Requires
--------
electrum (rpmlib, GLIBC filtered):
    /bin/sh
    /usr/bin/python2
    PyQt4
    protobuf-python
    python(abi)
    python-dns
    python-ecdsa
    python-jsonrpclib
    python-pbkdf2
    python-qrcode
    python-requests
    python-slowaes
    python2



Provides
--------
electrum:
    application()
    application(electrum.desktop)
    electrum
    mimehandler(x-scheme-handler/bitcoin)
    python2.7dist(electrum)
    python2dist(electrum)



Source checksums
----------------
https://download.electrum.org/2.7.12/Electrum-2.7.12.tar.gz :
  CHECKSUM(SHA256) this package     : 3644274231326cc6b13a25703ebe6ec22bbbce7832a86d75abc745040475ad6f
  CHECKSUM(SHA256) upstream package : 3644274231326cc6b13a25703ebe6ec22bbbce7832a86d75abc745040475ad6f


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

Built with local dependencies:
    ~/deps/python2-pbkdf2-1.3-5.fc26.noarch.rpm
    ~/deps/python2-slowaes-0.1a1-6.fc26.noarch.rpm

Comment 26 gil cattaneo 2016-11-14 17:42:47 UTC
Issues:

[?]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "MIT/X11 (BSD like)", "BSD (2 clause)", "*No copyright* MIT/X11
     (BSD like)", "Unknown or generated". 107 files have unknown license.
     Detailed output of licensecheck in
     /home/gil/1187084-electrum/licensecheck.txt

BSD (2 clause)
--------------
Electrum-2.7.12/lib/socks.py

The following source files are without license headers.

Unknown or generated
--------------------
Electrum-2.7.12/gui/kivy/i18n.py
Electrum-2.7.12/gui/kivy/main_window.py
Electrum-2.7.12/gui/kivy/nfc_scanner/scanner_android.py
Electrum-2.7.12/gui/kivy/nfc_scanner/scanner_dummy.py
Electrum-2.7.12/gui/kivy/uix/combobox.py
Electrum-2.7.12/gui/kivy/uix/context_menu.py
Electrum-2.7.12/gui/kivy/uix/dialogs/amount_dialog.py
Electrum-2.7.12/gui/kivy/uix/dialogs/bump_fee_dialog.py
Electrum-2.7.12/gui/kivy/uix/dialogs/checkbox_dialog.py
Electrum-2.7.12/gui/kivy/uix/dialogs/choice_dialog.py
Electrum-2.7.12/gui/kivy/uix/dialogs/fee_dialog.py
Electrum-2.7.12/gui/kivy/uix/dialogs/fx_dialog.py
Electrum-2.7.12/gui/kivy/uix/dialogs/installwizard.py
Electrum-2.7.12/gui/kivy/uix/dialogs/label_dialog.py
Electrum-2.7.12/gui/kivy/uix/dialogs/nfc_transaction.py
Electrum-2.7.12/gui/kivy/uix/dialogs/password_dialog.py
Electrum-2.7.12/gui/kivy/uix/dialogs/qr_dialog.py
Electrum-2.7.12/gui/kivy/uix/dialogs/qr_scanner.py
Electrum-2.7.12/gui/kivy/uix/dialogs/question.py
Electrum-2.7.12/gui/kivy/uix/dialogs/seed_options.py
Electrum-2.7.12/gui/kivy/uix/dialogs/settings.py
Electrum-2.7.12/gui/kivy/uix/dialogs/tx_dialog.py
Electrum-2.7.12/gui/kivy/uix/dialogs/wallets.py
Electrum-2.7.12/gui/kivy/uix/drawer.py
Electrum-2.7.12/gui/kivy/uix/gridview.py
Electrum-2.7.12/gui/kivy/uix/menus.py
Electrum-2.7.12/gui/kivy/uix/qrcodewidget.py
Electrum-2.7.12/gui/kivy/uix/screens.py
Electrum-2.7.12/gui/qt/amountedit.py
Electrum-2.7.12/gui/qt/console.py
Electrum-2.7.12/gui/qt/icons_rc.py
Electrum-2.7.12/gui/qt/installwizard.py
Electrum-2.7.12/gui/qt/qrcodewidget.py
Electrum-2.7.12/gui/qt/qrtextedit.py
Electrum-2.7.12/gui/qt/util.py
Electrum-2.7.12/gui/stdio.py
Electrum-2.7.12/gui/text.py
Electrum-2.7.12/lib/msqr.py
Electrum-2.7.12/lib/paymentrequest_pb2.py
Electrum-2.7.12/lib/simple_config.py
Electrum-2.7.12/lib/tests/test_account.py
Electrum-2.7.12/lib/tests/test_bitcoin.py
Electrum-2.7.12/lib/tests/test_interface.py
Electrum-2.7.12/lib/tests/test_mnemonic.py
Electrum-2.7.12/lib/tests/test_simple_config.py
Electrum-2.7.12/lib/tests/test_transaction.py
Electrum-2.7.12/lib/tests/test_util.py
Electrum-2.7.12/lib/tests/test_wallet.py
Electrum-2.7.12/lib/version.py
Electrum-2.7.12/plugins/audio_modem/qt.py
Electrum-2.7.12/plugins/exchange_rate/exchange_rate.py
Electrum-2.7.12/plugins/exchange_rate/kivy.py
Electrum-2.7.12/plugins/exchange_rate/qt.py
Electrum-2.7.12/plugins/keepkey/client.py
Electrum-2.7.12/plugins/keepkey/cmdline.py
Electrum-2.7.12/plugins/keepkey/keepkey.py
Electrum-2.7.12/plugins/keepkey/qt.py
Electrum-2.7.12/plugins/labels/kivy.py
Electrum-2.7.12/plugins/labels/labels.py
Electrum-2.7.12/plugins/labels/qt.py
Electrum-2.7.12/plugins/ledger/cmdline.py
Electrum-2.7.12/plugins/ledger/ledger.py
Electrum-2.7.12/plugins/ledger/qt.py
Electrum-2.7.12/plugins/plot/qt.py
Electrum-2.7.12/plugins/trezor/client.py
Electrum-2.7.12/plugins/trezor/clientbase.py
Electrum-2.7.12/plugins/trezor/cmdline.py
Electrum-2.7.12/plugins/trezor/plugin.py
Electrum-2.7.12/plugins/trezor/qt.py
Electrum-2.7.12/plugins/trezor/qt_generic.py
Electrum-2.7.12/plugins/trezor/trezor.py
Electrum-2.7.12/plugins/trustedcoin/cmdline.py
Electrum-2.7.12/plugins/virtualkeyboard/qt.py
Electrum-2.7.12/scripts/bip70
Electrum-2.7.12/scripts/block_headers
Electrum-2.7.12/scripts/estimate_fee
Electrum-2.7.12/scripts/get_chunk
Electrum-2.7.12/scripts/get_donation_address
Electrum-2.7.12/scripts/get_history
Electrum-2.7.12/scripts/peers
Electrum-2.7.12/scripts/servers
Electrum-2.7.12/scripts/txradar
Electrum-2.7.12/scripts/util.py
Electrum-2.7.12/scripts/watch_address
Electrum-2.7.12/setup-release.py

Please, ask to upstream to confirm the licensing of code and/or content/s,
and to add license headers
https://fedoraproject.org/wiki/Packaging:LicensingGuidelines?rd=Packaging/LicensingGuidelines#License_Clarification

Non blocking issues:
[!]: 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).

Comment 27 Jonny Heggheim 2016-11-15 20:56:54 UTC
(In reply to gil cattaneo from comment #26)
> Please, ask to upstream to confirm the licensing of code and/or content/s,
> and to add license headers

https://github.com/spesmilo/electrum/issues/2041

Comment 28 gil cattaneo 2016-11-15 21:16:29 UTC
(In reply to Jonny Heggheim from comment #27)
> (In reply to gil cattaneo from comment #26)
> > Please, ask to upstream to confirm the licensing of code and/or content/s,
> > and to add license headers

Approved, maybe we could wait the upstream reply @

> https://github.com/spesmilo/electrum/issues/2041

Comment 29 Jonny Heggheim 2016-11-15 22:05:44 UTC
(In reply to gil cattaneo from comment #28)
> Approved, maybe we could wait the upstream reply @

Thanks, I will wait for reply from upstream

Comment 30 Jonny Heggheim 2016-11-18 21:41:03 UTC
Have not heard anything from upstream, I updated the license to MIT and BSD.

Comment 31 Gwyn Ciesla 2016-11-18 22:24:58 UTC
Package request has been approved: https://admin.fedoraproject.org/pkgdb/package/rpms/electrum

Comment 32 Samuel Gyger 2016-11-19 07:30:50 UTC
@Jonny Heggheim:
Thank you for taking over and making this happen so fast. Appreciate this.

Comment 33 Jonny Heggheim 2016-11-20 20:00:17 UTC
(In reply to Samuel Gyger from comment #32)
> Thank you for taking over and making this happen so fast. Appreciate this.

You're welcome!


It would be great if more users could test the build on Fedora 25:
> sudo dnf install electrum --enablerepo=updates-testing

And provided feedback on bodhi: https://bodhi.fedoraproject.org/updates/FEDORA-2016-e5dbc775ab

Comment 34 Jonny Heggheim 2018-01-08 12:58:08 UTC
It would be great if someone could test https://bodhi.fedoraproject.org/updates/FEDORA-2018-4978426286

This is a urgent security update.


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