Spec URL: http://mariobl.fedorapeople.org/Review/SPECS/kbarcode.spec SRPM URL: http://mariobl.fedorapeople.org/Review/SRPMS/kbarcode-3.0.0b3-1.fc19.src.rpm Description: KBarcode is a barcode and label printing application for Linux and KDE 4. It can be used to print every thing from simple business cards up to complex labels with several barcodes (e.g. article descriptions). KBarcode comes with an easy to use WYSIWYG label designer, a setup wizard, batch import of labels (directly from the delivery note), thousands of predefined labels, database management tools and translations in many languages. Even printing more than 10.000 labels in one go is no problem for KBarcode. Additionally it is a simply xbarcode replacement for the creation of barcodes. All major types of barcodes like EAN, UPC, CODE39 and ISBN are supported. Fedora Account System Username: mariobl I'm not sure about the versioning. The current version is 3.0.0b2, the following one will be 3.0.0. Do we get a proper upgrade path this way?
* Wed Aug 28 2013 Mario Blättermann <mariobl> - 3.0.0b3-2 - Subpackage for GNU barcode support The GNU barcode package is no build requirement, that's why I've added it as an extra runtime dependency through a supackage. Note, Kbarcode works without that, but it is better than the built-in PostScript barcode creator. Besides that, KBarcode can use the PDF417 library for generating barcodes. It needs to be packaged (currently available from RPMsphere), I'll have a look at it and submit a new review request soon. New files: Spec URL: http://mariobl.fedorapeople.org/Review/SPECS/kbarcode.spec SRPM URL: http://mariobl.fedorapeople.org/Review/SRPMS/kbarcode-3.0.0b3-2.fc19.src.rpm
(In reply to Mario Blättermann from comment #1) > Besides that, KBarcode can use the PDF417 library for generating barcodes. > It needs to be packaged (currently available from RPMsphere), I'll have a > look at it and submit a new review request soon. The latest release of PDF417lib was more than eight years ago [1], probably not worth to package it. [1] https://sourceforge.net/projects/pdf417lib/files/pdf417lib/0.91/
After some discussion with the upstream maintainer, there are extra build requirements needed: * Sun Sep 01 2013 Mario Blättermann <mariobl> - 3.0.0b3-3 - Added barcode-devel and kdesdk-scripts to BuildRequires New files: Spec URL: http://mariobl.fedorapeople.org/Review/SPECS/kbarcode.spec SRPM URL: http://mariobl.fedorapeople.org/Review/SRPMS/kbarcode-3.0.0b3-3.fc19.src.rpm
I've just detected a bundled library. The libpostscriptbarcode library is not yet in Fedora, that's why I filed a new review request (bug #1003280). Once that review is done, I will remove the bundled files and provide new spec and srpm.
If you want, we can go on with this review.
(In reply to Antonio Trande from comment #5) > If you want, we can go on with this review. Yes, I would want, but... There's a problem with the bundled postscriptbarcode. Well, I've packaged that recently and it is now available from the stable repos, but I have still to figure out how to proceed here. Kbarcode needs to be patched so that it uses the system version of postscriptbarcode instead of the bundled one. I've asked the upstream developer, but haven't got an answer yet. There were no recognizable Git commits there last months. Besides that, I still think about to drop the -gnubarcode subpackage. Not sure if it makes sense.
Regarding the postscriptbarcode implementation, maybe I could a subpackage named postscriptbarcode-kbarcode which creates a symlink from the postscript file to the appropriate folder in kbarcode. To make it work, I have to remove the bundled file from kbarcode after installation. Kbarcode will also work without the file, but it would be better to require postscriptbarcode anyway.
I've removed barcode.ps and replaced it with a symlink from the postscriptbarcode package. Moreover, I've dropped the -gnubarcode subpackage again because it doesn't make much sense. Spec URL: http://mariobl.fedorapeople.org/Review/SPECS/kbarcode.spec SRPM URL: http://mariobl.fedorapeople.org/Review/SRPMS/kbarcode-3.0.0b3-4.fc19.src.rpm
(In reply to Mario Blättermann from comment #8) > I've removed barcode.ps and replaced it with a symlink from the > postscriptbarcode package. Moreover, I've dropped the -gnubarcode subpackage > again because it doesn't make much sense. > > Spec URL: http://mariobl.fedorapeople.org/Review/SPECS/kbarcode.spec > SRPM URL: > http://mariobl.fedorapeople.org/Review/SRPMS/kbarcode-3.0.0b3-4.fc19.src.rpm The link to the SRPM is wrong. :)
Spec URL: http://mariobl.fedorapeople.org/Review/SPECS/kbarcode.spec SRPM URL: http://mariobl.fedorapeople.org/Review/SRPMS/kbarcode-3.0.0b3-4.fc20.src.rpm Sorry, this is a thing which comes from drag-and-drop without having a look at the result :(
- Compiler works on files with different licenses; in particular src/barkode.cpp file is licensed with a LGPLv2+, all the others with a GPLv2+. This is a "Mixed Source Licensing Scenario" http://fedoraproject.org/wiki/Packaging:LicensingGuidelines#Mixed_Source_Licensing_Scenario - %build does not honor applicable compiler flags - Don't mix the buildroot tags (${RPM_BUILD_ROOT}/%{buildroot}) - Also fix these lines %{buildroot}/%{_datadir}/kde4/apps/%{name}/barcode.ps %{buildroot}/%{_datadir}/kde4/apps/%{name}/barcode.ps ${RPM_BUILD_ROOT}/%{_datadir}/applications/kde4/%{name}.desktop there are extra slashes. Package Review ============== Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated [ ] = Manual review needed ===== 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: "GPL (v2 or later)", "LGPL (v2 or later) (with incorrect FSF address)", "Unknown or generated". 8 files have unknown license. Detailed output of licensecheck in /home/sagitter/1001799-kbarcode/licensecheck.txt [!]: %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]: 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 kbarcode [x]: gtk-update-icon-cache is invoked in %postun and %posttrans if package contains icons. Note: icons in kbarcode [x]: Useful -debuginfo package or justification otherwise. [x]: Package is not known to require an ExcludeArch tag. [x]: Large documentation must go in a -doc subpackage. Large could be size (~1MB) or number of files. Note: Documentation size is 30720 bytes in 4 files. [!]: 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 %doc. [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]: 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]: 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. [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. [-]: 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]: Uses parallel make %{?_smp_mflags} macro. [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. 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: kbarcode-3.0.0b3-4.fc21.x86_64.rpm kbarcode-3.0.0b3-4.fc21.src.rpm kbarcode.x86_64: W: spelling-error Summary(en_US) barcode -> bar code, bar-code, barcarole kbarcode.x86_64: W: spelling-error %description -l en_US barcode -> bar code, bar-code, barcarole kbarcode.x86_64: W: spelling-error %description -l en_US barcodes -> bar codes, bar-codes, barcaroles kbarcode.x86_64: W: spelling-error %description -l en_US xbarcode -> barcarole kbarcode.x86_64: W: dangling-symlink /usr/share/kde4/apps/kbarcode/barcode.ps /usr/share/postscriptbarcode.barcode.ps kbarcode.x86_64: E: incorrect-fsf-address /usr/share/doc/kbarcode/COPYING kbarcode.x86_64: W: no-manual-page-for-binary kbarcode kbarcode.src: W: spelling-error Summary(en_US) barcode -> bar code, bar-code, barcarole kbarcode.src: W: spelling-error %description -l en_US barcode -> bar code, bar-code, barcarole kbarcode.src: W: spelling-error %description -l en_US barcodes -> bar codes, bar-codes, barcaroles kbarcode.src: W: spelling-error %description -l en_US xbarcode -> barcarole 2 packages and 0 specfiles checked; 1 errors, 10 warnings. Rpmlint (installed packages) ---------------------------- # rpmlint kbarcode kbarcode.x86_64: W: spelling-error Summary(en_US) barcode -> bar code, bar-code, barcarole kbarcode.x86_64: W: spelling-error %description -l en_US barcode -> bar code, bar-code, barcarole kbarcode.x86_64: W: spelling-error %description -l en_US barcodes -> bar codes, bar-codes, barcaroles kbarcode.x86_64: W: spelling-error %description -l en_US xbarcode -> barcarole kbarcode.x86_64: W: dangling-symlink /usr/share/kde4/apps/kbarcode/barcode.ps /usr/share/postscriptbarcode.barcode.ps kbarcode.x86_64: E: incorrect-fsf-address /usr/share/doc/kbarcode/COPYING kbarcode.x86_64: W: no-manual-page-for-binary kbarcode 1 packages and 0 specfiles checked; 1 errors, 6 warnings. # echo 'rpmlint-done:' Requires -------- kbarcode (rpmlib, GLIBC filtered): /bin/sh libQtCore.so.4()(64bit) libQtDBus.so.4()(64bit) libQtGui.so.4()(64bit) libQtNetwork.so.4()(64bit) libQtSql.so.4()(64bit) libQtSvg.so.4()(64bit) libQtXml.so.4()(64bit) libakonadi-contact.so.4()(64bit) libakonadi-kde.so.4()(64bit) libc.so.6()(64bit) libgcc_s.so.1()(64bit) libgcc_s.so.1(GCC_3.0)(64bit) libkabc.so.4()(64bit) libkcalcore.so.4()(64bit) libkdecore.so.5()(64bit) libkdeui.so.5()(64bit) libkio.so.5()(64bit) libkjs.so.4()(64bit) libkjsapi.so.4()(64bit) libkmime.so.4()(64bit) libkpimutils.so.4()(64bit) libkresources.so.4()(64bit) libm.so.6()(64bit) libnepomukcore.so.4()(64bit) libpcre.so.1()(64bit) libphonon.so.4()(64bit) libpthread.so.0()(64bit) libsoprano.so.4()(64bit) libstdc++.so.6()(64bit) libstdc++.so.6(CXXABI_1.3)(64bit) postscriptbarcode rtld(GNU_HASH) Provides -------- kbarcode: application() application(kde4/kbarcode.desktop) kbarcode kbarcode(x86-64) mimehandler(application/kbarcode-label) Source checksums ---------------- http://downloads.sourceforge.net/kbarcode/Development/kbarcode_3.0.0b3.tar.gz : CHECKSUM(SHA256) this package : 9a7c2ad278ef0637b4be771fde0abe2fd7512ea9d644c615a845d0835266474f CHECKSUM(SHA256) upstream package : 9a7c2ad278ef0637b4be771fde0abe2fd7512ea9d644c615a845d0835266474f Generated by fedora-review 0.5.1 (bb9bf27) last change: 2013-12-13 Command line :/usr/bin/fedora-review -m fedora-rawhide-x86_64 -b 1001799 Buildroot used: fedora-rawhide-x86_64 Active plugins: Generic, Shell-api, C/C++ Disabled plugins: Java, Python, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP, Ruby Disabled flags: BATCH, EPEL5, EXARCH, DISTTAG
(In reply to Antonio Trande from comment #11) > - Compiler works on files with different licenses; in particular > src/barkode.cpp file is licensed with a LGPLv2+, all the others with a > GPLv2+. > This is a "Mixed Source Licensing Scenario" > http://fedoraproject.org/wiki/Packaging: > LicensingGuidelines#Mixed_Source_Licensing_Scenario > > - %build does not honor applicable compiler flags > What do you mean? The %cmake_kde4 macro is the usual way for KDE software. It expands to: $ rpm --eval %cmake_kde4 QTDIR="/usr/lib64/qt4" ; export QTDIR ; PATH="/usr/lib64/qt4/bin:$PATH" ; export PATH ; CFLAGS="${CFLAGS:--O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic}" ; export CFLAGS ; CXXFLAGS="${CXXFLAGS:--O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic}" ; export CXXFLAGS ; FFLAGS="${FFLAGS:--O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -I/usr/lib64/gfortran/modules}" ; export FFLAGS ; LDFLAGS="${LDFLAGS:--Wl,-z,relro }" ; export LDFLAGS ; /usr/bin/cmake \ -DBUILD_SHARED_LIBS:BOOL=ON \ -DCMAKE_BUILD_TYPE=release \ -DCMAKE_INSTALL_PREFIX:PATH=/usr \ -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ -DDATA_INSTALL_DIR:PATH=/usr/share/kde4/apps \ -DINCLUDE_INSTALL_DIR:PATH=/usr/include/kde4 \ -DLIB_INSTALL_DIR:PATH=/usr/lib64 \ -DKDE4_BUILD_TESTS:BOOL=OFF \ %if "lib64" == "lib64" -DLIB_SUFFIX=64 \ %endif -DLIBEXEC_INSTALL_DIR:PATH=/usr/libexec/kde4 \ -DSYSCONF_INSTALL_DIR:PATH=/etc > - Don't mix the buildroot tags (${RPM_BUILD_ROOT}/%{buildroot}) > OK, now I'm using %{buildroot} only. > - Also fix these lines > %{buildroot}/%{_datadir}/kde4/apps/%{name}/barcode.ps > %{buildroot}/%{_datadir}/kde4/apps/%{name}/barcode.ps > ${RPM_BUILD_ROOT}/%{_datadir}/applications/kde4/%{name}.desktop > > there are extra slashes. Removed. Moreover, I've moved the "b3" tag to "Release:" according to the special guidelines for pre-release packages. See https://lists.fedoraproject.org/pipermail/packaging/2013-November/009824.html. New files: Spec URL: http://mariobl.fedorapeople.org/Review/SPECS/kbarcode.spec SRPM URL: http://mariobl.fedorapeople.org/Review/SRPMS/kbarcode-3.0.0-0.1.b3.fc20.src.rpm
(In reply to Mario Blättermann from comment #12) > (In reply to Antonio Trande from comment #11) > > - Compiler works on files with different licenses; in particular > > src/barkode.cpp file is licensed with a LGPLv2+, all the others with a > > GPLv2+. > > This is a "Mixed Source Licensing Scenario" > > http://fedoraproject.org/wiki/Packaging: > > LicensingGuidelines#Mixed_Source_Licensing_Scenario > > > > - %build does not honor applicable compiler flags > > > What do you mean? The %cmake_kde4 macro is the usual way for KDE software. > It expands to: > > $ rpm --eval %cmake_kde4 > > QTDIR="/usr/lib64/qt4" ; export QTDIR ; > PATH="/usr/lib64/qt4/bin:$PATH" ; export PATH ; > CFLAGS="${CFLAGS:--O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions > -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches > -m64 -mtune=generic}" ; export CFLAGS ; > CXXFLAGS="${CXXFLAGS:--O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 > -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 > -grecord-gcc-switches -m64 -mtune=generic}" ; export CXXFLAGS ; > FFLAGS="${FFLAGS:--O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions > -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches > -m64 -mtune=generic -I/usr/lib64/gfortran/modules}" ; export FFLAGS ; > LDFLAGS="${LDFLAGS:--Wl,-z,relro }" ; export LDFLAGS ; > /usr/bin/cmake \ > -DBUILD_SHARED_LIBS:BOOL=ON \ > -DCMAKE_BUILD_TYPE=release \ > -DCMAKE_INSTALL_PREFIX:PATH=/usr \ > -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ > -DDATA_INSTALL_DIR:PATH=/usr/share/kde4/apps \ > -DINCLUDE_INSTALL_DIR:PATH=/usr/include/kde4 \ > -DLIB_INSTALL_DIR:PATH=/usr/lib64 \ > -DKDE4_BUILD_TESTS:BOOL=OFF \ > %if "lib64" == "lib64" > -DLIB_SUFFIX=64 \ > %endif > -DLIBEXEC_INSTALL_DIR:PATH=/usr/libexec/kde4 \ > -DSYSCONF_INSTALL_DIR:PATH=/etc > You're right but they are not utilized as build.log shows: ... [ 10%] Building CXX object src/CMakeFiles/kbarcode.dir/barkodeengine.o cd /builddir/build/BUILD/kbarcode/x86_64-redhat-linux-gnu/src && /usr/lib64/ccache/c++ -DKDE4_CMAKE_TOPLEVEL_DIR_LENGTH=21 -DKDE_DEPRECATED_WARNINGS -DQT_NO_CAST_TO_ASCII -DQT_NO_STL -D_BSD_SOURCE -D_REENTRANT -D_XOPEN_SOURCE=500 -g -Wall -O2 -DNDEBUG -DQT_NO_DEBUG -I/builddir/build/BUILD/kbarcode/x86_64-redhat-linux-gnu/src -I/builddir/build/BUILD/kbarcode/src -I/builddir/build/BUILD/kbarcode -I/builddir/build/BUILD/kbarcode/src/dialogs -I/usr/include/kde4 -I/usr/include/kde4/KDE -I/usr/include/KDE -I/usr/include/phonon -I/usr/include/QtXmlPatterns -I/usr/include/QtXml -I/usr/include/QtWebKit -I/usr/include/QtUiTools -I/usr/include/QtTest -I/usr/include/QtSvg -I/usr/include/QtSql -I/usr/include/QtScriptTools -I/usr/include/QtScript -I/usr/include/QtOpenGL -I/usr/include/QtNetwork -I/usr/include/QtMultimedia -I/usr/include/QtHelp -I/usr/include/QtDesigner -I/usr/include/QtDeclarative -I/usr/include/QtDBus -I/usr/include/Qt3Support -I/usr/include/QtGui -I/usr/include/QtCore -I/usr/include/Qt -I/usr/lib64/qt4/mkspecs/default -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/kbarcode.dir/barkodeengine.o -c /builddir/build/BUILD/kbarcode/src/barkodeengine.cpp /usr/bin/cmake -E cmake_progress_report /builddir/build/BUILD/kbarcode/x86_64-redhat-linux-gnu/CMakeFiles 7 ...
Looks like upstream's CMakeLists.txt is processing the compiler flags incorrectly (replacing instead of appending them) and will need to be patched.
Mario, any news ?
(In reply to Antonio Trande from comment #15) > Mario, any news ? No news for the time being. But nice from you to remember me. Just for the record: There were no valuable activities in upstream for almost half a year, and I consider the project at least as stalled. Moreover, I was planning to replace Glabels with Kbarcode on my system, but this wouldn't happen in the current state. So I'm no longer motivated to continue working on this package. Feel free to pick it up if you're interested in, or someone else. I'll close it now.