Bug 2193124

Summary: Review Request: cronopete - A backup utility for Linux.
Product: [Fedora] Fedora Reporter: Lumír Balhar <lbalhar>
Component: Package ReviewAssignee: Nobody's working on this, feel free to take it <nobody>
Status: NEW --- QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: mhroncok, package-review, topazus
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
URL: https://www.rastersoft.com/programas/cronopete.html
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
The .spec file difference from Copr build 5872945 to 6163609 none

Description Lumír Balhar 2023-05-04 11:55:31 UTC
Spec URL: https://lbalhar.fedorapeople.org/cronopete.spec
SRPM URL: https://lbalhar.fedorapeople.org/cronopete-4.15.1-1.fc37.src.rpm
Description: Cronopete is a backup utility for Linux, modeled after Apple's Time
Machine. It aims to simplify the creation of periodic backups.
Fedora Account System Username: lbalhar

I did a build for all supported Fedoras in COPR and it works fine for me: https://copr.fedorainfracloud.org/coprs/lbalhar/cronopete/

Comment 1 Fedora Review Service 2023-05-04 12:11:26 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/5872945
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2193124-cronopete/fedora-rawhide-x86_64/05872945-cronopete/fedora-review/review.txt

Please take a look if any issues were found.

---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 2 Miro Hrončok 2023-05-04 12:57:39 UTC
> Package installs a %{name}.desktop using desktop-file-install or desktop-file-validate if there is such a file.

Seems like %make_install installs %{_sysconfdir}/xdg/autostart/%{name}.desktop, so add desktop-file-validate to %check. See https://docs.fedoraproject.org/en-US/packaging-guidelines/#_desktop_file_install_usage


cronopete.src: W: no-url-tag
cronopete.x86_64: W: no-url-tag

Add URL: to spec.

cronopete.src: W: summary-ended-with-dot A backup utility for Linux.
cronopete.x86_64: W: summary-ended-with-dot A backup utility for Linux.

Remove the dot.

cronopete.x86_64: E: devel-dependency glibc-devel

Why is this Required by a  backup utility?

cronopete.x86_64: E: explicit-lib-dependency glib2
cronopete.x86_64: E: explicit-lib-dependency libappindicator-gtk3
cronopete.x86_64: E: explicit-lib-dependency libdbusmenu
cronopete.x86_64: E: explicit-lib-dependency libgee
cronopete.x86_64: E: explicit-lib-dependency libnotify
cronopete.x86_64: E: explicit-lib-dependency libudisks2

The package requires:

cronopete (rpmlib, GLIBC filtered):
    /bin/sh
    /usr/bin/sh
    atk
    cairo-gobject
    gdk-pixbuf2
    glib2
    glibc-devel
    gtk3
    libappindicator-gtk3
    libappindicator3.so.1()(64bit)
    libatk-1.0.so.0()(64bit)
    libc.so.6()(64bit)
    libcairo-gobject.so.2()(64bit)
    libcairo.so.2()(64bit)
    libdbusmenu
    libdbusmenu-glib.so.4()(64bit)
    libgdk-3.so.0()(64bit)
    libgdk_pixbuf-2.0.so.0()(64bit)
    libgee
    libgee-0.8.so.2()(64bit)
    libgio-2.0.so.0()(64bit)
    libglib-2.0.so.0()(64bit)
    libgobject-2.0.so.0()(64bit)
    libgtk-3.so.0()(64bit)
    libharfbuzz.so.0()(64bit)
    libnotify
    libnotify.so.4()(64bit)
    libpango-1.0.so.0()(64bit)
    libpangocairo-1.0.so.0()(64bit)
    libudisks2
    libudisks2.so.0()(64bit)
    libz.so.1()(64bit)
    pango
    rsync
    rtld(GNU_HASH)

So the manual Requires that are covered by the automatic one need to be removed. See https://docs.fedoraproject.org/en-US/packaging-guidelines/#_explicit_requires

cronopete.x86_64: W: file-not-in-%lang /usr/share/locale/cs/LC_MESSAGES/cronopete.mo
cronopete.x86_64: W: file-not-in-%lang /usr/share/locale/de/LC_MESSAGES/cronopete.mo
cronopete.x86_64: W: file-not-in-%lang /usr/share/locale/es/LC_MESSAGES/cronopete.mo
cronopete.x86_64: W: file-not-in-%lang /usr/share/locale/fr/LC_MESSAGES/cronopete.mo
cronopete.x86_64: W: file-not-in-%lang /usr/share/locale/gl/LC_MESSAGES/cronopete.mo
cronopete.x86_64: W: file-not-in-%lang /usr/share/locale/pt_BR/LC_MESSAGES/cronopete.mo
cronopete.x86_64: W: file-not-in-%lang /usr/share/locale/ru/LC_MESSAGES/cronopete.mo

See https://docs.fedoraproject.org/en-US/packaging-guidelines/#handling_locale_files

cronopete.x86_64: W: files-duplicate /usr/share/icons/hicolor/scalable/status/cronopete-arrow-1-white-symbolic.svg /usr/share/icons/hicolor/scalable/apps/cronopete-arrow-1-white.svg
cronopete.x86_64: W: files-duplicate /usr/share/icons/hicolor/scalable/status/cronopete-arrow-2-white-symbolic.svg /usr/share/icons/hicolor/scalable/apps/cronopete-arrow-2-white.svg
cronopete.x86_64: W: files-duplicate /usr/share/icons/hicolor/scalable/status/cronopete-arrow-3-white-symbolic.svg /usr/share/icons/hicolor/scalable/apps/cronopete-arrow-3-white.svg
cronopete.x86_64: W: files-duplicate /usr/share/icons/hicolor/scalable/status/cronopete-arrow-4-white-symbolic.svg /usr/share/icons/hicolor/scalable/apps/cronopete-arrow-4-white.svg

Consider linking those, but it's not required.

cronopete.x86_64: W: no-manual-page-for-binary cronopete
cronopete.x86_64: W: no-manual-page-for-binary cronopete_preferences.sh
cronopete.x86_64: W: no-manual-page-for-binary cronopete_restore.sh

Meh.

cronopete.x86_64: W: non-conffile-in-etc /etc/xdg/autostart/cronopete.desktop

Mark this file as %config(norepalce). See https://docs.fedoraproject.org/en-US/packaging-guidelines/#_configuration_files


cronopete.x86_64: W: position-independent-executable-suggested /usr/bin/cronopete
cronopete.x86_64: W: unstripped-binary-or-object /usr/bin/cronopete
cronopete.x86_64: W: unused-direct-shlib-dependency /usr/bin/cronopete /lib64/libatk-1.0.so.0
cronopete.x86_64: W: unused-direct-shlib-dependency /usr/bin/cronopete /lib64/libdbusmenu-glib.so.4
cronopete.x86_64: W: unused-direct-shlib-dependency /usr/bin/cronopete /lib64/libharfbuzz.so.0
cronopete.x86_64: W: unused-direct-shlib-dependency /usr/bin/cronopete /lib64/libudisks2.so.0
cronopete.x86_64: W: unused-direct-shlib-dependency /usr/bin/cronopete /lib64/libz.so.1

This indicates Feora build flags were not used, or prebuilt content was shipped. Investigate the cmake things and try to figure out how to pass in the standard flags from Fedora. Drop %global debug_package %{nil}

Comment 3 Felix Wang 2023-05-05 06:15:59 UTC
You can avoid explicitly defined build dir with `cmake -B build`, as the %cmake macro already set the default build directory of redhat-linux-build, like
```
%cmake -DCMAKE_EXE_LINKER_FLAGS="%{optflags} -fPIE" -DGSETTINGS_COMPILE=OFF -DICON_UPDATE=OFF -DUSE_APPINDICATOR=ON
%cmake_build

%install
%cmake_install
```

Comment 4 Lumír Balhar 2023-07-12 06:40:05 UTC
Spec URL: https://lbalhar.fedorapeople.org/cronopete.spec
SRPM URL: https://lbalhar.fedorapeople.org/cronopete-4.15.1-1.fc38.src.rpm

Next iteration. Feel free to ignore it. I'm gonna try to fix all issues reported by the automatic review first.

Comment 5 Fedora Review Service 2023-07-12 06:45:18 UTC
Created attachment 1975283 [details]
The .spec file difference from Copr build 5872945 to 6163609

Comment 6 Fedora Review Service 2023-07-12 06:45:20 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/6163609
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2193124-cronopete/fedora-rawhide-x86_64/06163609-cronopete/fedora-review/review.txt

Please take a look if any issues were found.

---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 7 Lumír Balhar 2023-07-12 11:24:12 UTC
All right, I'm lost.

1. I cannot drop debug_package because there are no debug source files generated by the build and the RPM build fails.
2. I don't know how to fix the problem with unstripped binary or object:

cronopete.x86_64: W: unstripped-binary-or-object /usr/bin/cronopete
cronopete.x86_64: W: position-independent-executable-suggested /usr/bin/cronopete

Everything else is either ignorable (man pages), already fixed, or easy-to-fix (files-duplicate).

Comment 8 Miro Hrončok 2023-07-12 12:12:01 UTC
no debug source files generated by the build and unstripped-binary-or-object usually mean the build does not honor the build flags from the environment. For example, the cmake files might override the flags completely by their own.


From the build log:


cd /builddir/build/BUILD/cronopete-4.15.1/redhat-linux-build/src && /usr/bin/gcc -DGETTEXT_PACKAGE=\"cronopete\" -I/builddir/build/BUILD/cronopete-4.15.1/redhat-linux-build/src -DUSE_APPINDICATOR  -DNDEBUG   -I/usr/include/libappindicator3-0.1 -I/usr/include/gee-0.8 -I/usr/include/udisks2 -I/usr/include/libdbusmenu-glib-0.4 -I/usr/include/pango-1.0 -I/usr/include/gtk-3.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/atk-1.0 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/cloudproviders -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/blkid -I/usr/include/gio-unix-2.0 -I/usr/include/libmount -I/usr/include/libxml2 -I/usr/include/pixman-1 -I/usr/include/fribidi -I/usr/include/sysprof-4 -pthread -I/usr/include/libpng16 -MD -MT src/CMakeFiles/cronopete.dir/Config.c.o -MF CMakeFiles/cronopete.dir/Config.c.o.d -o CMakeFiles/cronopete.dir/Config.c.o -c /builddir/build/BUILD/cronopete-4.15.1/redhat-linux-build/src/Config.c


There's not even -O2 in there.