Bug 741129 - Review Request: OpenStego - Free Steganography solution
Review Request: OpenStego - Free Steganography solution
Status: CLOSED ERRATA
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
unspecified Severity medium
: ---
: ---
Assigned To: Martin Gieseking
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2011-09-25 15:24 EDT by Matthieu Saulnier
Modified: 2012-07-24 20:50 EDT (History)
6 users (show)

See Also:
Fixed In Version: OpenStego-0.5.2-6.1.fc15
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2011-12-11 16:54:51 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
martin.gieseking: fedora‑review+


Attachments (Terms of Use)

  None (edit)
Description Matthieu Saulnier 2011-09-25 15:24:52 EDT
Spec URL: http://pingou.fedorapeople.org/RPMs/openstego.spec
SRPM URL: http://pingou.fedorapeople.org/RPMs/openstego-0.5.2-1.fc15.src.rpm
Description:
Openstego is a steganography program that is able to hide data in various
kinds of image- and audio-files. The color- respectively sample-frequencies
are not changed thus making the embedding resistant against first-order
statistical tests. Features of Openstego include compression and encryption
of embedded data, embedding of a check-sum to verify the integrity of the
extracted data and support for jpg, bmp, wave and audio files.

Hello,
this is my third package, but I need a sponsor.
I don't have any fedorapeople, and I thank pingou for hosting my files.
Comment 1 Mohamed El Morabity 2011-09-25 17:03:31 EDT
Just a few comments:
- your package provides a single JAR file, you *don't* have to create a dedicated directory for it in %{_javadir}:
   http://fedoraproject.org/wiki/Packaging:Java#Installation_directory
By the way, you'll fix so the %{_javadir}/%{name}/ directory which is not owned by your package.

- you should probably name your icon « %{name}.svg » instead of « stenago.svg », this may be more coherent.

- the Ant build file provides a Javadoc target (ant doc); you *must* build it and provide it in a separate package:
   http://fedoraproject.org/wiki/Packaging:Java#Javadoc_installation

- did you try to run the executable script generated by %jpackage_script? I really don't think so, because the Main class you provided to %jpackage_script (com.sun.msv.driver.textui.Driver) has *nothing* to do with openstengo. It *can't* work!
You can get the Main class by opening the generated jar file and read the MANIFEST.MF file. By the way, the generic script openstengo.sh file sets memory options that can be good to reuse in %jpackage_script (second argument of the macro).

- about these lines:
   #delete file for Windows :
   rm -f %{buildroot}/openstego.bat
I suppose you try to delete the BAT file in the sources. The %{buildroot} is *not* the source tree. This command does nothing (see silent -f option). If you want to delete a file in the sources, you'd better do it in %prep, which is run in the source tree, as for the %build/%install targets. By the way, this step is useless since this script has no impact in the build, you should ignore it.
Comment 2 Matthieu Saulnier 2011-10-04 09:48:26 EDT
(In reply to comment #1)
Hello

> Just a few comments:
> - your package provides a single JAR file, you *don't* have to create a
> dedicated directory for it in %{_javadir}:
>    http://fedoraproject.org/wiki/Packaging:Java#Installation_directory
> By the way, you'll fix so the %{_javadir}/%{name}/ directory which is not owned
> by your package.
Done

> 
> - you should probably name your icon « %{name}.svg » instead of « stenago.svg
> », this may be more coherent.
Done

> 
> - the Ant build file provides a Javadoc target (ant doc); you *must* build it
> and provide it in a separate package:
>    http://fedoraproject.org/wiki/Packaging:Java#Javadoc_installation
Done

> 
> - did you try to run the executable script generated by %jpackage_script? I
> really don't think so, because the Main class you provided to %jpackage_script
> (com.sun.msv.driver.textui.Driver) has *nothing* to do with openstengo. It
> *can't* work!
> You can get the Main class by opening the generated jar file and read the
> MANIFEST.MF file. By the way, the generic script openstengo.sh file sets memory
> options that can be good to reuse in %jpackage_script (second argument of the
> macro).
Done

> 
> - about these lines:
>    #delete file for Windows :
>    rm -f %{buildroot}/openstego.bat
> I suppose you try to delete the BAT file in the sources. The %{buildroot} is
> *not* the source tree. This command does nothing (see silent -f option). If you
> want to delete a file in the sources, you'd better do it in %prep, which is run
> in the source tree, as for the %build/%install targets. By the way, this step
> is useless since this script has no impact in the build, you should ignore it.
Done
Comment 3 Matthieu Saulnier 2011-11-04 18:17:14 EDT
Oups, I've forgotten urls files...

Spec URL: http://pingou.fedorapeople.org/RPMs/openstego.spec
SRPM URL: http://pingou.fedorapeople.org/RPMs/openstego-0.5.2-3.fc15.src.rpm
Comment 4 Martin Gieseking 2011-11-05 10:39:22 EDT
The package looks almost fine. There are only a few things that have to be fixed:

- Remove the trailing asterisk from %{_javadocdir}/%{name}/* for proper 
  directory ownership. 

- Add the LICENSE file to the javadoc package, too (with %doc).

- Drop the Encoding entry from the .desktop file, and append a semicolon to 
  "Categories=System".

  $ desktop-file-validate openstego.desktop 
  openstego.desktop: warning: key "Encoding" in group "Desktop Entry" is 
  deprecated
  openstego.desktop: error: value "System" for string list key "Categories" 
  in group "Desktop Entry" does not have a semicolon (';') as trailing 
  character

- As you probably don't want to build this package for EPEL < 6, drop the 
  BuildRoot field and the %defattr lines.


$ rpmlint /var/lib/mock/fedora-15-x86_64/result/*.rpm
openstego.noarch: W: spelling-error %description -l en_US steganography -> stenography, stenographer, oceanography
openstego.noarch: W: spelling-error %description -l en_US jpg -> jog, jg, pg
openstego.noarch: W: spelling-error %description -l en_US bmp -> mp, bump, imp
openstego.noarch: W: no-manual-page-for-binary openstego
openstego.src: W: spelling-error %description -l en_US steganography -> stenography, stenographer, oceanography
openstego.src: W: spelling-error %description -l en_US jpg -> jog, jg, pg
openstego.src: W: spelling-error %description -l en_US bmp -> mp, bump, imp
openstego.src:80: W: macro-in-%changelog %{_javadir}
openstego.src:81: W: macro-in-%changelog %{name}
openstego.src:82: W: macro-in-%changelog %jpackage_script
3 packages and 0 specfiles checked; 0 errors, 10 warnings.

---------------------------------
key:

[+] OK
[.] OK, not applicable
[X] needs work
---------------------------------

[+] MUST: The package must be named according to the Package Naming Guidelines.
[+] MUST: The spec file name must match the base package %{name}.
[+] MUST: The package must meet the Packaging Guidelines.
[+] MUST: The package must be licensed with a Fedora approved license.
    - GPLv2 according to README

[+] MUST: The License field in the package spec file must match the actual license.
[X] MUST: The file containing the text of the license(s) for the package must be included in %doc.
    - add the LICENSE file to the javadoc package, too

[+] MUST: The spec file must be written in American English.
[+] MUST: The spec file for the package MUST be legible.
[+] MUST: The sources used to build the package must match the upstream source.
    $ md5sum openstego-src-0.5.2.zip*
    2c5576c3129ed36b22251c3db97fe85d  openstego-src-0.5.2.zip
    2c5576c3129ed36b22251c3db97fe85d  openstego-src-0.5.2.zip.upstream

[+] MUST: The package MUST successfully compile and build into binary rpms on at least one primary architecture.
[.] MUST: If the package does not successfully compile, build or work on an architecture, ...
[+] MUST: All build dependencies must be listed in BuildRequires.
[.] MUST: When compiling C, C++, or Fortran files, %{optflags} must be applied.
[.] MUST: The spec file MUST handle locales properly.
[.] MUST: If a package installs files below %{_datadir}/icons, the icon cache must be updated.
[.] MUST: Packages storing shared library files (not just symlinks) must call ldconfig in %post and %postun.
[.] MUST: Packages must NOT bundle copies of system libraries.
[.] MUST: If the package is designed to be relocatable, ...
[X] MUST: A package must own all directories that it creates. 
    %{_javadocdir}/%{name}/ is unowned

[+] MUST: A Fedora package must not list a file more than once in %files.
[+] MUST: Permissions on files must be set properly.
[+] MUST: Each package must consistently use macros.
[+] MUST: The package must contain code, or permissable content.
[.] MUST: Large documentation files must go in a -doc subpackage.
[.] MUST: Files in %doc must not affect the runtime of the application.
[.] MUST: Header files must be in a -devel package.
[.] MUST: Static libraries must be in a -static package.
[.] MUST: If a package contains library files with a suffix (e.g. libfoo.so.1.1), then library files that end in .so (without suffix) must go in a -devel package.
[.] MUST: devel packages must require the base package using a fully versioned dependency.
[+] MUST: Packages must NOT contain any .la libtool archives.
[+] MUST: Packages containing GUI applications must include a %{name}.desktop file. 
[+] MUST: .desktop files must be properly installed with desktop-file-install in the %install section. 
[+] MUST: Packages must not own files or directories already owned by other packages.
[+] MUST: All filenames in rpm packages must be valid UTF-8.
[+] MUST: Java packages must BR java-devel and jpackage-utils.
[+] MUST: Java packages must require java and jpackage-utils.
[+] MUST: Bundled binary files (.class, .jar) must be removed in %prep.


EPEL <= 5 only:
[+] MUST: The spec file must contain a valid BuildRoot field.
[X] MUST: At the beginning of %install, each package MUST run rm -rf %{buildroot}.
[X] MUST: Each package must have a %clean section, which contains rm -rf %{buildroot}.
[.] MUST: Packages containing pkgconfig(.pc) files must 'Requires: pkgconfig'


[+] SHOULD: If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it.
[+] SHOULD: Timestamps of files should be preserved.
[+] SHOULD: The reviewer should test that the package builds in mock.
[+] SHOULD: The package should compile and build into binary rpms on all supported architectures.
[+] SHOULD: The reviewer should test that the package functions as described.
[.] SHOULD: If scriptlets are used, those scriptlets must be sane.
[.] SHOULD: Usually, subpackages other than devel should require the base package using a fully versioned dependency.
[.] SHOULD: pkgconfig(.pc) files should be placed in a -devel pkg.
[.] SHOULD: If the package has file dependencies outside of /etc, /bin, /sbin, /usr/bin, or /usr/sbin consider requiring the package which provides the file instead of the file itself.
[.] SHOULD: Your package should contain man pages for binaries/scripts.
[+] SHOULD: Java applications SHOULD provide a wrapper script in %{_bindir}.
Comment 5 Matthieu Saulnier 2011-11-05 16:27:58 EDT
(In reply to comment #4)
> - Remove the trailing asterisk from %{_javadocdir}/%{name}/* for proper 
>   directory ownership. 
Removed

> - Add the LICENSE file to the javadoc package, too (with %doc).
Added

> - Drop the Encoding entry from the .desktop file, and append a semicolon to 
>   "Categories=System".
Done

>   $ desktop-file-validate openstego.desktop 
>   openstego.desktop: warning: key "Encoding" in group "Desktop Entry" is 
>   deprecated
>   openstego.desktop: error: value "System" for string list key "Categories" 
>   in group "Desktop Entry" does not have a semicolon (';') as trailing 
>   character
Thanks for this command. I'll use it always now.

> - As you probably don't want to build this package for EPEL < 6, drop the 
>   BuildRoot field and the %defattr lines.
Done

Spec URL: http://fantom.fedorapeople.org/openstego.spec
SRPM URL: http://fantom.fedorapeople.org/openstego-0.5.2-4.fc15.src.rpm
Comment 6 Martin Gieseking 2011-11-06 14:30:19 EST
OK, looks good now. There's still a %defattr line present in %files javadoc -- remove it before you check in the package. Also, please be a bit more specific in the %changelog. At least blocker items, e.g. fixing directory ownerships or desktop file errors should be listed. Nonetheless, this package is ready now. ;)

----------------
Package APPROVED
----------------
Comment 7 Matthieu Saulnier 2011-11-06 16:10:58 EST
(In reply to comment #6)
> OK, looks good now. There's still a %defattr line present in %files javadoc --
> remove it before you check in the package. Also, please be a bit more specific
> in the %changelog. At least blocker items, e.g. fixing directory ownerships or
> desktop file errors should be listed. Nonetheless, this package is ready now.
> ;)
Done

Spec URL: http://fantom.fedorapeople.org/openstego.spec
SRPM URL: http://fantom.fedorapeople.org/openstego-0.5.2-5.fc15.src.rpm

New Package SCM Request
=======================
Package Name: openstego
Short Description: Free Steganography solution
Owners: fantom
Branches: f15 f16 el6
InitialCC:
Comment 8 Matthieu Saulnier 2011-11-06 16:22:34 EST
Apologizes, openstego =! OpenStego
So I'm fixing here

New Package SCM Request
=======================
Package Name: OpenStego
Short Description: Free Steganography solution
Owners: fantom
Branches: f15 f16 el6
InitialCC:
Comment 9 Gwyn Ciesla 2011-11-06 17:13:26 EST
Git done (by process-git-requests).
Comment 10 Fedora Update System 2011-12-01 16:16:41 EST
OpenStego-0.5.2-6.1.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/OpenStego-0.5.2-6.1.fc16
Comment 11 Fedora Update System 2011-12-01 16:17:56 EST
OpenStego-0.5.2-6.1.fc15 has been submitted as an update for Fedora 15.
https://admin.fedoraproject.org/updates/OpenStego-0.5.2-6.1.fc15
Comment 12 Fedora Update System 2011-12-03 21:26:48 EST
OpenStego-0.5.2-6.1.fc16 has been pushed to the Fedora 16 testing repository.
Comment 13 Fedora Update System 2011-12-11 16:54:51 EST
OpenStego-0.5.2-6.1.fc16 has been pushed to the Fedora 16 stable repository.
Comment 14 Fedora Update System 2011-12-11 16:56:20 EST
OpenStego-0.5.2-6.1.fc15 has been pushed to the Fedora 15 stable repository.
Comment 15 Matthieu Saulnier 2012-07-24 16:54:14 EDT
Package Change Request
======================
Please remove OpenStego from EL6 branch.

Reason: FTBFS
Comment 16 Gwyn Ciesla 2012-07-24 20:50:56 EDT
This isn't done via SCM requests, just commit a dead.package file and Retire the branch in pkgdb.u

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