Spec URL: https://fedorapeople.org/~bex/DayJournal/DayJournal.spec SRPM URL: https://fedorapeople.org/~bex/DayJournal/DayJournal-23.0.6-1.fc24.src.rpm Fedora Account System Username: bex This SRPM is built in COPR at: https://copr.fedorainfracloud.org/coprs/bex/DayJournal/ A scratch build has been done in koji at: https://koji.fedoraproject.org/koji/taskinfo?taskID=17157888 I am a first-time packager and need a sponsor. I am not the upstream developer, but the upstream is aware this is being submitted for Fedora. Description: DayJournal is a minimalist digital journal that lets the content you create outlast DayJournal itself. * Future proofs your journal entries by saving them as plain text and organizing them as you go. This means you can read or create entries when you don’t have DayJournal. * Automatically saves as you write. * Easily sync journals with cloud storage services because you choose where your journal folder is. * Add pictures to your journal entries. * Manage multiple journals. * Keyboard shortcuts make it easy to navigate through entries. * Create a journal archive file, an HTML page that looks great when printed so you can keep a physical journal too. * Add to your journal from anywhere with Blip Journal for Android. DayJournal can automatically import entries synced to Dropbox from Blip Journal. On iOS? Now DayJournal can automatically import entries synced to Dropbox from the Day One app as well. Simply put, DayJournal is the simple digital journal that finally does it right.
Additional note re: rpmlint output: $ rpmlint DayJournal.spec results_DayJournal/23.0.6/1.fc24/DayJournal-23.0.6-1.fc24.src.rpm results_DayJournal/23.0.6/1.fc24/DayJournal-23.0.6-1.fc24.x86_64.rpm DayJournal.src: W: spelling-error %description -l en_US iOS -> OS, SOS, DOS DayJournal.x86_64: W: spelling-error %description -l en_US iOS -> OS, SOS, DOS DayJournal.x86_64: W: no-documentation DayJournal.x86_64: W: no-manual-page-for-binary dayjournal 2 packages and 1 specfiles checked; 0 errors, 4 warnings. iOS is a valid spelling The software has no documentation or manpage at this time.
Hey Brian, 1. I would recommend to change name of package to something in lower-case (https://fedoraproject.org/wiki/Packaging:Naming#General_Naming) 2. Missing BuildRequires: gcc (all BuildRequires must be specified) 3. Since upstream uses pkg-config to find dependencies (PKG_CHECK_MODULES(DAYJOURNAL, gee-0.8 [gtk+-3.0 libnotify appindicator3-0.1 gio-2.0 gdk-3.0 gtk+-3.0 glib-2.0])), it's worth to change style of BuildRequires: pkgconfig(gtk+-3.0) pkgconfig(libnotify) ... and remaining ones 4. if you will rename package to dayjornal, then you can drop "-n ..." part in %autosetup -n dayjournal-%{version} 5. cp %{SOURCE1} . doesn't preserve timestamps (you can add `-a` to cp invocation) 6. make %{?_smp_mflags} -> %make_build (this is preferred because of some switches in parallel building inside RPM) 7. install -m 644 -D dayjournal.desktop %{buildroot}/usr/share/applications/dayjournal.desktop 7.1. Add `-p` to preserve timestamps 7.2. Use %{name} instead of dayjornal if you will rename it 7.3. replace /usr/share with %{_datadir} 8. %make_install install-exec, is it really needed to specify install-exec? 9. /usr/share/icons/hicolor/48x48/apps/dayjournal-icon.png 9.1. same to replace /usr/share with %{_datadir} 9.2. I think having "-icon" is pointless 10. You should run desktop-file-validate against desktop file in %check section 11. License is GPLv3+, not GPLv3 Unfortunately I can't sponsor you, so you have to find it yourself. But I'm happy to help you to make package ready for inclusion!
I will sponsor you if Igor is okay with doing the review.
Hi Igor, Thank you for the feedback. It is extremely valuable. > 1. I would recommend to change name of package to something in lower-case (https://fedoraproject.org/wiki/Packaging:Naming#General_Naming) Ahh. I read "should" as meaning that projects that have formally upcased names can have upcased packages. This change will definitely make other lines easier. > 2. Missing BuildRequires: gcc (all BuildRequires must be specified) Ok. I has thought that allowing it to be brought in implicitly because vala needs it was enough. I'll fix this. > 3. Since upstream uses pkg-config to find dependencies (PKG_CHECK_MODULES(DAYJOURNAL, gee-0.8 > [gtk+-3.0 libnotify appindicator3-0.1 gio-2.0 gdk-3.0 gtk+-3.0 glib-2.0])), it's worth to change style of BuildRequires: > pkgconfig(gtk+-3.0) > pkgconfig(libnotify) > ... > and remaining ones This also makes sense. If anyone comes after me and reads this, I think this requirement is documented here: https://fedoraproject.org/wiki/Packaging:Guidelines#BuildRequires_based_on_pkg-config > 4. if you will rename package to dayjornal, then you can drop "-n ..." part in %autosetup -n dayjournal-%{version} > 5. cp %{SOURCE1} . doesn't preserve timestamps (you can add `-a` to cp invocation) > 6. make %{?_smp_mflags} -> %make_build (this is preferred because of some switches in parallel building inside RPM) done. I was able to eliminate the copies, see %install > 7. install -m 644 -D dayjournal.desktop %{buildroot}/usr/share/applications/dayjournal.desktop > 7.1. Add `-p` to preserve timestamps > 7.2. Use %{name} instead of dayjornal if you will rename it > 7.3. replace /usr/share with %{_datadir} I missed %{_datadir} in my reading. I should have searched more. > 8. %make_install install-exec, is it really needed to specify install-exec? In this case, I think so. The install will, by default, install bunch of zero-byte "documentation" files. The patch I wrote eliminates those from the build at the install-exec level. > 9. /usr/share/icons/hicolor/48x48/apps/dayjournal-icon.png > 9.1. same to replace /usr/share with %{_datadir} > 9.2. I think having "-icon" is pointless I updated to use the macro, however the icon was not getting picked up unless named -icon. I am not sure why. > 10. You should run desktop-file-validate against desktop file in %check section Based on my read of https://fedoraproject.org/wiki/Packaging:Guidelines#Desktop_files I am wondering if using desktop-file-install in %install isn't better. Let me know. > 11. License is GPLv3+, not GPLv3 fixed. The spec file and SRPM have been uploaded to the same urls. The COPR has been updated as well.
Another update: 1. I fixed the icon file name 2. Also, the upstream finally put the .desktop and icon somewhere we can reference so I fixed that. 3. I am providing name corrected urls based on the new name: Spec URL: https://fedorapeople.org/~bex/DayJournal/dayjournal.spec SRPM URL: https://fedorapeople.org/~bex/DayJournal/dayjournal-23.0.6-1.fc24.src.rpm COPR is also updated. Thank you.
(In reply to Brian Exelbierd from comment #5) > Another update: > > 1. I fixed the icon file name > 2. Also, the upstream finally put the .desktop and icon somewhere we can > reference so I fixed that. > 3. I am providing name corrected urls based on the new name: > > Spec URL: https://fedorapeople.org/~bex/DayJournal/dayjournal.spec > > SRPM URL: > https://fedorapeople.org/~bex/DayJournal/dayjournal-23.0.6-1.fc24.src.rpm > > COPR is also updated. > > Thank you. Please remove the configure.patch you have that removes appindicator support. There are desktops in Fedora (notably GNOME and Plasma) that do actually support this, and we do have the library in our repositories.
(In reply to Neal Gompa from comment #6) > Please remove the configure.patch you have that removes appindicator > support. There are desktops in Fedora (notably GNOME and Plasma) that do > actually support this, and we do have the library in our repositories. Thank you for catching this. I somehow overlooked this library when doing my initial pre-RPM builds and never checked again. I have updated the uploads and the COPR is rebuilding at this moment.
I've realized I've made an error in my documentation fix patch - I will work on fixing this fix. The short version is that my fix stops the zero-byte files from being installed, but also halts the appropriate files INSTALL and COPYING which I have, upon further re-reading, realized should be installed. This will also fix the install-exec comment above. I'll update this ticket when I work out a solution. The INSTALL file is truly just a stock autoconf INSTALL file, but the COPYING file is the license file and that should be installed, aiui.
> * Fri Dec 30 2016 bex - 23.0.6-1 Changelog is in the wrong format. Author format is "Name <email>".
(In reply to Brian Exelbierd from comment #8) > > This will also fix the install-exec comment above. I'll update this ticket > when I work out a solution. The INSTALL file is truly just a stock autoconf > INSTALL file, but the COPYING file is the license file and that should be > installed, aiui. Don't worry about it, as RPM can install them for you using the %doc and %license stanzas in the file list. They grab it from the source tarball and install to the correct locations for you.
(In reply to Neal Gompa from comment #10) > (In reply to Brian Exelbierd from comment #8) > > > > This will also fix the install-exec comment above. I'll update this ticket > > when I work out a solution. The INSTALL file is truly just a stock autoconf > > INSTALL file, but the COPYING file is the license file and that should be > > installed, aiui. > > Don't worry about it, as RPM can install them for you using the %doc and > %license stanzas in the file list. They grab it from the source tarball and > install to the correct locations for you. I didn't notice this behaviour of %doc. I will use it. %license is not installing the license file. Do I need something other than: %files %license COPYING
(In reply to Brian Exelbierd from comment #11) > (In reply to Neal Gompa from comment #10) > > (In reply to Brian Exelbierd from comment #8) > > > > > > This will also fix the install-exec comment above. I'll update this ticket > > > when I work out a solution. The INSTALL file is truly just a stock autoconf > > > INSTALL file, but the COPYING file is the license file and that should be > > > installed, aiui. > > > > Don't worry about it, as RPM can install them for you using the %doc and > > %license stanzas in the file list. They grab it from the source tarball and > > install to the correct locations for you. > > I didn't notice this behaviour of %doc. I will use it. > > %license is not installing the license file. Do I need something other than: > > %files > %license COPYING Problem fixed. It turns out that %license puts the files in a different location. I found this note that shows it: https://fedorahosted.org/fpc/ticket/411#comment:8
File uploads have been updated with all of the latest suggestions and feedback. COPR has been rebuilt. Thank you. Spec URL: https://fedorapeople.org/~bex/DayJournal/dayjournal.spec SRPM URL: https://fedorapeople.org/~bex/DayJournal/dayjournal-23.0.6-1.fc24.src.rpm
> %doc INSTALL This file is useless, as the package is being installed via RPM, so normal install instructions do not apply.
(In reply to Neal Gompa from comment #14) > > %doc INSTALL > > This file is useless, as the package is being installed via RPM, so normal > install instructions do not apply. I agree with the value of the file. I didn't see guidelines on what documentation we could avoid installing and what we had to install. I also noticed several other INSTALL files of the same type in my /usr/share/doc directory tree. I've reposted this without this doc.
Could you also add an AppData file so that things like Plasma Discover and GNOME Software can index the application? See https://fedoraproject.org/wiki/Packaging:AppData for more details.
An appdata.xml file has been added. I am confirming one component (metadata licensing) with the upstream. I have uploaded a new srpm and spec to my fedorapeople space and started a new COPR build.
Any additional feedback?
(In reply to Brian Exelbierd from comment #18) > Any additional feedback? Yes. Please do AppData validation and desktop file validation in the %check section. See https://fedoraproject.org/wiki/How_to_create_an_RPM_package#.25check_section and
This has been updated to move the check from %install to %check
Package Review ============== Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated ===== 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. [x]: 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)", "FSF All Permissive", "GPL (v2 or later)", "GPL (v3 or later)", "Unknown or generated". 29 files have unknown license. Detailed output of licensecheck in /home/makerpm/1409884-dayjournal/licensecheck.txt [x]: License file installed when any subpackage combination is installed. [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. [-]: 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]: gtk-update-icon-cache is invoked in %postun and %posttrans if package contains icons. Note: icons in dayjournal [x]: Useful -debuginfo package or justification otherwise. [x]: Package is not known to require an ExcludeArch tag. [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 must own all directories that it creates. [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]: 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]: Large documentation must go in a -doc subpackage. Large could be size (~1MB) or number of files. Note: Documentation size is 0 bytes in 0 files. [x]: Packages must not store files under /srv, /opt or /usr/local ===== SHOULD items ===== Generic: [x]: 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 dayjournal-debuginfo [x]: 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. [x]: 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]: 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: [x]: Rpmlint is run on debuginfo package(s). Note: No rpmlint messages. [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. [x]: Spec file according to URL is the same as in SRPM. Rpmlint ------- Checking: dayjournal-23.0.6-1.fc26.x86_64.rpm dayjournal-debuginfo-23.0.6-1.fc26.x86_64.rpm dayjournal-23.0.6-1.fc26.src.rpm dayjournal.x86_64: W: spelling-error %description -l en_US iOS -> OS, SOS, DOS dayjournal.x86_64: W: no-documentation dayjournal.x86_64: W: no-manual-page-for-binary dayjournal dayjournal.src: W: spelling-error %description -l en_US iOS -> OS, SOS, DOS 3 packages and 0 specfiles checked; 0 errors, 4 warnings. Rpmlint (debuginfo) ------------------- Checking: dayjournal-debuginfo-23.0.6-1.fc26.x86_64.rpm 1 packages and 0 specfiles checked; 0 errors, 0 warnings. Rpmlint (installed packages) ---------------------------- sh: /usr/bin/python: No such file or directory dayjournal.x86_64: W: spelling-error %description -l en_US iOS -> OS, SOS, DOS dayjournal.x86_64: W: no-documentation dayjournal.x86_64: W: no-manual-page-for-binary dayjournal 2 packages and 0 specfiles checked; 0 errors, 3 warnings. Requires -------- dayjournal (rpmlib, GLIBC filtered): /bin/sh libappindicator3.so.1()(64bit) libatk-1.0.so.0()(64bit) libc.so.6()(64bit) libcairo-gobject.so.2()(64bit) libcairo.so.2()(64bit) libdbusmenu-glib.so.4()(64bit) libgdk-3.so.0()(64bit) libgdk_pixbuf-2.0.so.0()(64bit) 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) libnotify.so.4()(64bit) libpango-1.0.so.0()(64bit) libpangocairo-1.0.so.0()(64bit) rtld(GNU_HASH) dayjournal-debuginfo (rpmlib, GLIBC filtered): Provides -------- dayjournal: appdata() appdata(dayjournal.appdata.xml) application() application(dayjournal.desktop) dayjournal dayjournal(x86-64) dayjournal-debuginfo: dayjournal-debuginfo dayjournal-debuginfo(x86-64) Source checksums ---------------- https://raw.githubusercontent.com/thejambi/DayJournal/d9999552462718596a85af313a3156b37ea39c43/deb_help/dayjournal.png : CHECKSUM(SHA256) this package : 901d182afa6c838077cb163edb80d1e76e23f3bdd9f436797d82a7f7560ac664 CHECKSUM(SHA256) upstream package : 901d182afa6c838077cb163edb80d1e76e23f3bdd9f436797d82a7f7560ac664 https://launchpad.net/~thejambi/+archive/ubuntu/thejambi/+files/dayjournal_23.0.6.orig.tar.gz : CHECKSUM(SHA256) this package : 92a1f3a167a2ea038716ec8b1fc4a2920fff8185e1fd1b3b36ae020ada3d690d CHECKSUM(SHA256) upstream package : 92a1f3a167a2ea038716ec8b1fc4a2920fff8185e1fd1b3b36ae020ada3d690d https://raw.githubusercontent.com/thejambi/DayJournal/d9999552462718596a85af313a3156b37ea39c43/deb_help/dayjournal.desktop : CHECKSUM(SHA256) this package : 1c2e09afd5fc1c6b5ac4b1fd807b1827462a89d824f0c09f5689b8a81dee294a CHECKSUM(SHA256) upstream package : 1c2e09afd5fc1c6b5ac4b1fd807b1827462a89d824f0c09f5689b8a81dee294a Generated by fedora-review 0.6.1 (f03e4e7) last change: 2016-05-02 Command line :/bin/fedora-review -b 1409884 -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
The package looks good to me now. PACKAGE APPROVED. Good luck!
I am sponsoring you into the packagers group.
You should now be free to import dayjournal into Fedora. Congratulations!
Package request has been approved: https://admin.fedoraproject.org/pkgdb/package/rpms/dayjournal
dayjournal-23.0.6-1.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2017-19667c7540
dayjournal-23.0.6-1.fc25 has been submitted as an update to Fedora 25. https://bodhi.fedoraproject.org/updates/FEDORA-2017-4ad8a1bcc8
dayjournal-23.0.6-1.el7 has been submitted as an update to Fedora EPEL 7. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2017-a15061e4e9
dayjournal-23.0.6-1.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-2017-19667c7540
dayjournal-23.0.6-1.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-2017-a15061e4e9
dayjournal-23.0.6-1.fc25 has been pushed to the Fedora 25 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-2017-4ad8a1bcc8
dayjournal-23.0.6-1.fc25 has been pushed to the Fedora 25 stable repository. If problems still persist, please make note of it in this bug report.
dayjournal-23.0.6-1.fc24 has been pushed to the Fedora 24 stable repository. If problems still persist, please make note of it in this bug report.
dayjournal-23.0.6-1.el7 has been pushed to the Fedora EPEL 7 stable repository. If problems still persist, please make note of it in this bug report.