Bug 1534446 - Review Request: timeshift - System restore tool for Linux
Summary: Review Request: timeshift - System restore tool for Linux
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Robert-André Mauchin
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Keywords:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-01-15 09:39 UTC by srakitnican
Modified: 2018-02-13 15:58 UTC (History)
4 users (show)

(edit)
Clone Of:
(edit)
Last Closed: 2018-02-06 10:49:44 UTC
zebob.m: fedora-review+


Attachments (Terms of Use)

Description srakitnican 2018-01-15 09:39:23 UTC
Spec URL: https://copr-be.cloud.fedoraproject.org/results/srakitnican/default/fedora-rawhide-x86_64/00701388-timeshift/timeshift.spec
SRPM URL: https://copr-be.cloud.fedoraproject.org/results/srakitnican/default/fedora-rawhide-x86_64/00701388-timeshift/timeshift-18.1-1.fc28.src.rpm

Description: 
TimeShift for Linux is a application that provides functionality similar to
the System Restore feature in Windows and the Time Machine tool in Mac OS.
TimeShift protects your system by taking incremental snapshots of the file
system at regular intervals. These snapshots can be restored later to bring
your system to the exact state it was in at the time when the snapshot was
taken.

Snapshots are taken using rsync and hard-links. Common files are shared between
snapshots which saves disk space. Each snapshot is a full system backup that
can be browsed with a file manager.

Fedora Account System Username: srakitnican

Builds can be found in Copr: https://copr.fedorainfracloud.org/coprs/srakitnican/default/builds/

Comment 1 Robert-André Mauchin 2018-01-15 17:50:45 UTC
 - I don't think it's necessary to add Debian packaging files, remove %license debian/copyright

 - Add a "Requires:       hicolor-icon-theme" to own the icons directories

 - Add a "Requires:       polkit" to own /usr/share/polkit-1 and 
/usr/share/polkit-1/actions

 - Add a "Requires:       cronie" to own /etc/cron.d

 - Add "%config(noreplace)" for this file unless you don't expect it to be modified by the user:

timeshift.x86_64: W: conffile-without-noreplace-flag /etc/default/timeshift.json


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.
[x]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "GPL (v2 or later)", "GPL (v3 or later)", "Unknown or
     generated". 138 files have unknown license. Detailed output of
     licensecheck in /home/bob/packaging/review/timeshift/review-
     timeshift/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[!]: Package must own all directories that it creates.
     Note: Directories without known owners: /usr/share/polkit-1,
     /etc/cron.d, /usr/share/polkit-1/actions
[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.
[-]: %config files are marked noreplace or the reason is justified.
     Note: No (noreplace) in %config /etc/default/timeshift.json
[-]: 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.
[-]: 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.
[-]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 20480 bytes in 2 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 requires other packages for directories it uses.
[x]: Package does not own files or directories owned by other packages.
[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]: No %config files under /usr.
[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:
[-]: 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).
[?]: 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.
[-]: 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]: Fully versioned dependency in subpackages if applicable.
[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:
[-]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
     Note: Arch-ed rpms have a total of 1617920 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: timeshift-18.1-1.fc28.x86_64.rpm
          timeshift-debuginfo-18.1-1.fc28.x86_64.rpm
          timeshift-debugsource-18.1-1.fc28.x86_64.rpm
          timeshift-18.1-1.fc28.src.rpm
timeshift.x86_64: W: only-non-binary-in-usr-lib
timeshift.x86_64: W: conffile-without-noreplace-flag /etc/default/timeshift.json
timeshift.x86_64: W: no-manual-page-for-binary timeshift
timeshift.x86_64: W: no-manual-page-for-binary timeshift-gtk
timeshift.x86_64: W: no-manual-page-for-binary timeshift-launcher
timeshift-debugsource.x86_64: W: no-documentation
timeshift.src: W: spelling-error %description -l en_US rsync -> sync, r sync
4 packages and 0 specfiles checked; 0 errors, 7 warnings.

Comment 2 srakitnican 2018-01-15 19:16:26 UTC
Thank you for your review!

(In reply to Robert-André Mauchin from comment #1)
>  - I don't think it's necessary to add Debian packaging files, remove
> %license debian/copyright

I am confused about that one, I've added this file because it is the only text that describes the actual license used (GPLv2+). COPYING and LICENSE.md contains license text for GPLv3 and LGPLv3 respectively. I am not an expert, but I think there is quiet a difference between the two, and I would say there is at least some difference between GPLv2 and GPLv3.
 
>  - Add a "Requires:       hicolor-icon-theme" to own the icons directories
> 
>  - Add a "Requires:       polkit" to own /usr/share/polkit-1 and 
> /usr/share/polkit-1/actions
> 
>  - Add a "Requires:       cronie" to own /etc/cron.d
> 
>  - Add "%config(noreplace)" for this file unless you don't expect it to be
> modified by the user:
> 
> timeshift.x86_64: W: conffile-without-noreplace-flag
> /etc/default/timeshift.json

I don't think this file is supposed to be modified by user since the program creates and maintaines /etc/timeshift.json.

Comment 3 Robert-André Mauchin 2018-01-15 19:34:24 UTC
(In reply to srakitnican from comment #2)
> 
> I am confused about that one, I've added this file because it is the only
> text that describes the actual license used (GPLv2+). COPYING and LICENSE.md
> contains license text for GPLv3 and LGPLv3 respectively. I am not an expert,
> but I think there is quiet a difference between the two, and I would say
> there is at least some difference between GPLv2 and GPLv3.

Nothing indicates that this app is GPLv2+. License: should be GPLv3+ or LGPLv3+ and you should include both  COPYING and LICENSE.md in %license.

Comment 4 srakitnican 2018-01-15 19:39:34 UTC
(In reply to Robert-André Mauchin from comment #3)
> (In reply to srakitnican from comment #2)
> > 
> > I am confused about that one, I've added this file because it is the only
> > text that describes the actual license used (GPLv2+). COPYING and LICENSE.md
> > contains license text for GPLv3 and LGPLv3 respectively. I am not an expert,
> > but I think there is quiet a difference between the two, and I would say
> > there is at least some difference between GPLv2 and GPLv3.
> 
> Nothing indicates that this app is GPLv2+. License: should be GPLv3+ or
> LGPLv3+ and you should include both  COPYING and LICENSE.md in %license.

Well, *.vala files contains header that specifies that is GPLv2+. no?

For example:

/*
 * DeleteWindow.vala
 *
 * Copyright 2012-17 Tony George <teejeetech@gmail.com>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 * MA 02110-1301, USA.
 *
 *
 */

Comment 5 Robert-André Mauchin 2018-01-15 19:58:53 UTC
>or
> * (at your option) any later version

Timeshift author choose the later version.

Comment 6 srakitnican 2018-01-25 08:44:43 UTC
Spec URL: https://copr-be.cloud.fedoraproject.org/results/srakitnican/default/fedora-rawhide-x86_64/00705513-timeshift/timeshift.spec
SRPM URL: https://copr-be.cloud.fedoraproject.org/results/srakitnican/default/fedora-rawhide-x86_64/00705513-timeshift/timeshift-18.1.1-1.fc28.src.rpm

Updated from timeshift-18.1-1 to timeshift-18.1.1-1

* Added runtime dependencies for cron, icons and polkit
* Changed license to GPLv3+ or LGPLv3+
* Removed brackets around make_build and make_install
* Use %autosetup instead of %setup

Comment 7 Robert-André Mauchin 2018-01-25 11:38:42 UTC
 - I missed something:

%{_datadir}/appdata/*.appdata.xml

   New guidelines say Appdata files must be installed in %{_datadir}/metainfo/ See https://fedoraproject.org/wiki/Packaging:AppData

Also the appdata file must be validated with appstream-util. See https://fedoraproject.org/wiki/Packaging:AppData#app-data-validate_usage

Comment 8 srakitnican 2018-01-25 11:48:13 UTC
Hmm, metainfo is for add-on packages or "components". It should not be present ordinarily if application does not provide one. Appdata is used to describe the application itself. Or am I missing something.

I will add validation for the appdata, forgot to do that.

Comment 9 srakitnican 2018-01-25 14:16:32 UTC
After looking more carefully it was indeed changed [1]. Since upstream is installing this file, I am wondering how this should be approached. Should I suggest upstream to change it e.g. is this implemented anywhere yet, or there are still some places where it is expected to be in /usr/share/appdata.

[1] https://fedoraproject.org/w/index.php?title=Packaging%3AAppData&type=revision&diff=501456&oldid=486600

The last comment from the following issue implies that it doesn't work on previous Fedora releases. Nothing mentioned in the Guidelines about that.
https://pagure.io/packaging-committee/issue/704#comment-486000

Any suggestions welcome.

Comment 10 Robert-André Mauchin 2018-01-25 15:30:49 UTC
>_is this implemented anywhere yet, or there are still some places where it is expected to be in /usr/share/appdata.

I don't know to be honest.

The guidelines always reflect what should be done for Rawhide, not previous release.

You could move the file in install to but it in the right location. You could also notify upstream that %{_datadir}/appdata is a legacy location as explained by https://freedesktop.org/software/appstream/docs/chap-Metadata.html

Comment 12 Robert-André Mauchin 2018-01-25 19:32:32 UTC
Package is approved.

Comment 13 Gwyn Ciesla 2018-01-26 15:32:43 UTC
(fedrepo-req-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/timeshift

Comment 14 Fedora Update System 2018-01-26 22:42:14 UTC
timeshift-18.1.1-2.fc27 has been submitted as an update to Fedora 27. https://bodhi.fedoraproject.org/updates/FEDORA-2018-e8ccaa9e31

Comment 15 Fedora Update System 2018-01-26 22:42:52 UTC
timeshift-18.1.1-2.fc26 has been submitted as an update to Fedora 26. https://bodhi.fedoraproject.org/updates/FEDORA-2018-d465f39a50

Comment 16 Fedora Update System 2018-01-26 22:43:28 UTC
timeshift-18.1.1-2.el7 has been submitted as an update to Fedora EPEL 7. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2018-c4a955e60b

Comment 17 Björn 'besser82' Esser 2018-01-28 19:29:05 UTC
This package does not follow the packaging guidelines, as it does NOT apply the systems LDFLAGS properly!  I've fixed that in dist-git [1] and triggered a rebuild for all distros.


[1]  https://src.fedoraproject.org/rpms/timeshift/c/483bd66

Comment 18 Fedora Update System 2018-01-28 20:38:43 UTC
timeshift-18.1.1-4.fc27 has been submitted as an update to Fedora 27. https://bodhi.fedoraproject.org/updates/FEDORA-2018-132058f52d

Comment 19 Fedora Update System 2018-01-28 20:39:18 UTC
timeshift-18.1.1-4.fc26 has been submitted as an update to Fedora 26. https://bodhi.fedoraproject.org/updates/FEDORA-2018-f67cb13026

Comment 20 Fedora Update System 2018-01-28 20:39:41 UTC
timeshift-18.1.1-4.el7 has been submitted as an update to Fedora EPEL 7. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2018-2034535a48

Comment 21 Fedora Update System 2018-01-28 22:10:02 UTC
timeshift-18.1.1-2.el7 has been pushed to the Fedora EPEL 7 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-EPEL-2018-c4a955e60b

Comment 22 Fedora Update System 2018-01-28 22:34:41 UTC
timeshift-18.1.1-2.fc26 has been pushed to the Fedora 26 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-2018-d465f39a50

Comment 23 Fedora Update System 2018-01-28 23:04:24 UTC
timeshift-18.1.1-2.fc27 has been pushed to the Fedora 27 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-2018-e8ccaa9e31

Comment 24 Fedora Update System 2018-01-29 18:44:08 UTC
timeshift-18.1.1-4.el7 has been pushed to the Fedora EPEL 7 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-EPEL-2018-2034535a48

Comment 25 Fedora Update System 2018-01-29 19:09:02 UTC
timeshift-18.1.1-4.fc27 has been pushed to the Fedora 27 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-2018-132058f52d

Comment 26 Fedora Update System 2018-01-29 19:14:15 UTC
timeshift-18.1.1-4.fc26 has been pushed to the Fedora 26 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-2018-f67cb13026

Comment 27 Fedora Update System 2018-02-06 10:49:44 UTC
timeshift-18.1.1-4.fc26 has been pushed to the Fedora 26 stable repository. If problems still persist, please make note of it in this bug report.

Comment 28 Fedora Update System 2018-02-06 15:30:19 UTC
timeshift-18.1.1-4.fc27 has been pushed to the Fedora 27 stable repository. If problems still persist, please make note of it in this bug report.

Comment 29 Fedora Update System 2018-02-13 15:58:15 UTC
timeshift-18.1.1-4.el7 has been pushed to the Fedora EPEL 7 stable repository. If problems still persist, please make note of it in this bug report.


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