Bug 435121 - Review Request: dspam - Scalable and open-source content-based spam filter
Summary: Review Request: dspam - Scalable and open-source content-based spam filter
Keywords:
Status: CLOSED DUPLICATE of bug 537587
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
low
medium
Target Milestone: ---
Assignee: Mamoru TASAKA
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2008-02-27 14:42 UTC by Lorenzo Villani
Modified: 2009-11-14 18:56 UTC (History)
7 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2008-05-13 15:36:08 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
rpmlint log of dspam 3.8.0-22 (13.68 KB, text/plain)
2008-04-17 19:07 UTC, Mamoru TASAKA
no flags Details

Description Lorenzo Villani 2008-02-27 14:42:09 UTC
Spec URL: http://rpm.binaryhelix.org/specs/mail/antispam/dspam.spec
SRPM URL: http://rpm.binaryhelix.org/dspam-3.8.0-18.1.src.rpm
Description: DSPAM is a scalable and open-source content-based spam filter designed for multi-user enterprise systems. On a properly configured system, many users experience results between 99.5% - 99.95%, or one error for every 200 to 2000 messages. DSPAM supports many different MTAs and can also be deployed as a stand-alone SMTP appliance. For developers, the DSPAM core engine (libdspam) can be easily incorporated directly into applications for drop-in filtering

First package, needs sponsor.

Comment 1 Jan ONDREJ 2008-03-09 06:38:34 UTC
I can review this package, but I am not a sponsor.

If you really need to be sponsored, please ad an blocker for:
FE-NEEDSPONSOR
as described here:
http://fedoraproject.org/wiki/PackageMaintainers/HowToGetSponsored

Without this it is hard to see your sponsorship to sponsors and other people do
not approve your package, because you need to be sponsored.


Comment 2 Jan ONDREJ 2008-03-09 06:44:54 UTC
Your package do not build in mock. Please fix BuildRequires:

+ autoreconf -fi
/var/tmp/rpm-tmp.56718: line 27: autoreconf: command not found

Also I think, it is not a good idea to get package from other distros. Writing
an clean spec file is better.


Comment 3 Lorenzo Villani 2008-03-09 12:07:22 UTC
Fixed BuildRequires, partly rewrote the init script and removed some unnecessary
files.

Comment 4 Lorenzo Villani 2008-03-09 12:07:57 UTC
SPEC and SRPM URIs are the same, it should now build inside mock

Comment 5 Jan ONDREJ 2008-03-09 12:31:08 UTC
(In reply to comment #4)
> SPEC and SRPM URIs are the same, it should now build inside mock

Still not:

configure.ac:706: warning: AC_PROG_LIBTOOL is m4_require'd but not m4_defun'd
m4/libtool_hack.m4:19: DS_LIBTOOL_RUN_IFELSE is expanded from...
m4/sqlite_drv.m4:153: DS_SQLITE_LIBS is expanded from...
m4/sqlite_drv.m4:306: DS_SQLITE is expanded from...
configure.ac:706: the top level
configure.ac:730: warning: AC_PROG_LIBTOOL is m4_require'd but not m4_defun'd
m4/sqlite3_drv.m4:153: DS_SQLITE3_LIBS is expanded from...
m4/sqlite3_drv.m4:306: DS_SQLITE3 is expanded from...
configure.ac:730: the top level
configure.ac:706: warning: AC_PROG_LIBTOOL is m4_require'd but not m4_defun'd
m4/libtool_hack.m4:19: DS_LIBTOOL_RUN_IFELSE is expanded from...
m4/sqlite_drv.m4:153: DS_SQLITE_LIBS is expanded from...
m4/sqlite_drv.m4:306: DS_SQLITE is expanded from...
configure.ac:706: the top level
configure.ac:730: warning: AC_PROG_LIBTOOL is m4_require'd but not m4_defun'd
m4/sqlite3_drv.m4:153: DS_SQLITE3_LIBS is expanded from...
m4/sqlite3_drv.m4:306: DS_SQLITE3 is expanded from...
configure.ac:730: the top level
configure.ac:706: warning: AC_PROG_LIBTOOL is m4_require'd but not m4_defun'd
m4/libtool_hack.m4:19: DS_LIBTOOL_RUN_IFELSE is expanded from...
m4/sqlite_drv.m4:153: DS_SQLITE_LIBS is expanded from...
m4/sqlite_drv.m4:306: DS_SQLITE is expanded from...
configure.ac:706: the top level
configure.ac:730: warning: AC_PROG_LIBTOOL is m4_require'd but not m4_defun'd
m4/sqlite3_drv.m4:153: DS_SQLITE3_LIBS is expanded from...
m4/sqlite3_drv.m4:306: DS_SQLITE3 is expanded from...
configure.ac:730: the top level
configure.ac:25: error: possibly undefined macro: AC_PROG_LIBTOOL
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
autoreconf: /usr/bin/autoconf failed with exit status: 1

And also other errors from rpmlint:
dspam.src:27: W: prereq-use /usr/sbin/useradd /usr/sbin/groupadd
dspam.src: W: summary-ended-with-dot A server-side statistical anti-spam agent
for Unix email servers.
dspam.src: W: non-standard-group Productivity/Networking/Email/Servers
dspam.src: W: invalid-license GPL

If you really want to be sponsored, please read fedora packaging guidelines and
may be also review guidelines.

My information is just a partial review, because you package still not build in
mock, which is not useable for fedora. I am interested to have dspam in fedora.


Comment 6 Lorenzo Villani 2008-03-09 13:19:30 UTC
I ran a rebuild inside mock and it managed to build the package correctly.. I am
now trying to rebuild the package and looking if the uploaded specfile and
source package are older than the one I have now.

I am really sorry for that.

Comment 7 Jan ONDREJ 2008-03-09 13:50:44 UTC
(In reply to comment #6)
> I ran a rebuild inside mock and it managed to build the package correctly.. I am
> now trying to rebuild the package and looking if the uploaded specfile and
> source package are older than the one I have now.

By default mock cleans his buildroot (and build packages too) before a new
rebuild. If you need my build logs, they are here:
  http://builder.salstar.sk/fedora-8-x86_64/result/

> I am really sorry for that.

OK, no problem. :-)

But again. There are many problems with this package. May be it is better to
write a new one using "rpmdev-newspec dspam" command. It is cleaner and you can
apply fedora packaging guidelines.


Comment 8 Lorenzo Villani 2008-03-09 14:02:31 UTC
I managed to get a clean build with mock (I uploaded the wrong revision of the
SRPM).
I ran rpmlint on the source rpm and it should now give no errors.

Comment 9 Jan ONDREJ 2008-03-09 15:58:08 UTC
(In reply to comment #8)
> I managed to get a clean build with mock (I uploaded the wrong revision of the
> SRPM).

Much better. You can avoid these problem by increasing release version every
time you make an update.

> I ran rpmlint on the source rpm and it should now give no errors.

May be source not. Try to run it on binary rpms too. At least some of them can
be fixed.

This path looks like a non standard path for fedora: /srv/www/webapps

Please add EVR (epoch-version-release) to changelog entries, as described here:
http://fedoraproject.org/wiki/Packaging/Guidelines#head-b7d622f4bb245300199c6a33128acce5fb453213


Comment 10 Lorenzo Villani 2008-03-09 17:56:30 UTC
(In reply to comment #9)

> Much better. You can avoid these problem by increasing release version every
> time you make an update.
I prefer to begin increasing the release version when the package gets into the
repositories

> May be source not. Try to run it on binary rpms too. At least some of them can
> be fixed.
I'm going to fix problems with binary rpms tomorrow

> 
> This path looks like a non standard path for fedora: /srv/www/webapps
Fixed (changed to /var/www/%{name})

> 
> Please add EVR (epoch-version-release) to changelog entries, as described here:
>
http://fedoraproject.org/wiki/Packaging/Guidelines#head-b7d622f4bb245300199c6a33128acce5fb453213
>
Fixed this, too



Comment 11 manuel wolfshant 2008-03-10 01:34:45 UTC
>>You can avoid these problem by increasing release version every time you make
an update.
>I prefer to begin increasing the release version when the package gets into the
repositories

Only that by NOT increasing the release tag each time you submit a new version
of your work for evaluation, you make reviewers life more difficult, as they
will not know if the current revision has been or not modified (compared to the
previous one). Since the absolute value of the release tag has really no meaning
by itself, there is no reason at all to insist in having "-1" for the package
uploaded to CVS.

Comment 12 Lorenzo Villani 2008-03-10 18:22:11 UTC
Spec URL: http://rpm.binaryhelix.org/specs/mail/antispam/dspam.spec
SRPM URL: http://rpm.binaryhelix.org/dspam-3.8.0-19.src.rpm

From the changelog entries:
- Added ldconfig postin/postun scriptlet to packages
- renamed subpackage backend-sqlite3 to backend-sqlite
- fixed CGI path from /srv/www/webapps to /var/www/dspam
- removed %defined makeinstall

Comment 13 Jan ONDREJ 2008-03-10 19:13:58 UTC
403 - Forbidden
for http://rpm.binaryhelix.org/dspam-3.8.0-19.src.rpm
Please fix permissions.

Other comments:
- suggested buildroot value is here:
http://fedoraproject.org/wiki/Packaging/Guidelines#head-b4fdd45fa76cbf54c885ef0836361319ab962473
  please use any higher example
- URL from spec file "Not found!"
- same problem for Source0 !
- prepare buildroot for %install:
http://fedoraproject.org/wiki/Packaging/Guidelines#head-6c809b2e945ca78ae25d040f250be60f73181ef0
- /usr/share/doc/dspam/ is not a path for documentation
I think it is not required to install documentation files, you can include them
in files section also from BUILD directory. Proper path will be automatically
added for packaged files. Leave documentation for subpackages in their own
documentation directories or make a separate -doc subpackage where there is a
lot of docs.
- Libtool archives, foo.la files, should not be included.
http://fedoraproject.org/wiki/Packaging/Guidelines#head-2302ec1e1f44202c9cc4bcce24cb711266557ad7
- please add your name and email in one of suggested format:
http://fedoraproject.org/wiki/Packaging/Guidelines#head-b7d622f4bb245300199c6a33128acce5fb453213

Non blocker suggestion:
- you can use "." at end of sentences in %description (but can't in Summary)

May be an reviewer, which can sponsor you can find more problems. :-)


Comment 14 Lorenzo Villani 2008-03-11 12:54:21 UTC
Spec URL: http://rpm.binaryhelix.org/specs/mail/antispam/dspam.spec
SRPM URL: http://rpm.binaryhelix.org/dspam-3.8.0-20.src.rpm

* Tue Mar 11 2008 Lorenzo Villani <arbiter> - 3.8.0-20
- Fixed buildroot path
- Fixed homepage URL
- Fixed Source0 URL
- Added buildroot preparation in install scriptlet
- Documentation is not explicitly installed anymore
- Removed libtool archives (.la files)
- Fixed earlier changelog entries to match one of the required formats
- Fixed rpaths

Comment 15 Jan ONDREJ 2008-03-11 13:30:47 UTC
- MUST: Packages containing pkgconfig(.pc) files must 'Requires: pkgconfig' (for
directory ownership and usability).
- 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.
See dspam backends, which contains for example libhash_drv.so. You can use
%exclude, if they are not required for package.
- MUST: In the vast majority of cases, devel packages must require the base
package using a fully versioned dependency: Requires: %{name} =
%{version}-%{release} 

- you also shoud add "." at end of description tags :-)

I see no more problems for this package. After fixing these problems, I can
approve your package, but it will be better to wait for an sponsor, if you want
to be sponsored.


Comment 16 Jan ONDREJ 2008-03-11 13:35:47 UTC
I still see rpmlint problems. At least these can be fixed:

- dspam-backend-hash.i386: W: one-line-command-in-%post /sbin/ldconfig
  try to change to something like: %post devel -p /sbin/ldconfig
- dspam-devel.i386: W: symlink-should-be-relative
/usr/share/man/man3/dspam_detach.3.gz /usr/share/man/man3/libdspam.3.gz
many of these messages. Please fix them.
- dspam.i386: E: script-without-shebang /var/www/dspam/cgi-bin/admins
- dspam.i386: W: spurious-executable-perm /usr/share/doc/dspam-3.8.0/qmail.txt
- dspam.i386: W: spurious-executable-perm /usr/share/doc/dspam-3.8.0/pop3filter.txt
- dspam.i386: W: log-files-without-logrotate /var/log/dspam
- dspam.i386: W: no-reload-entry /etc/init.d/dspam

And other similar problems. Please re-run rpmlint after fixes to see, if there
are still problems.


Comment 17 Lorenzo Villani 2008-03-11 17:08:00 UTC
- dspam.i386: W: log-files-without-logrotate /var/log/dspam
Shall I write a logrotate file even if upstream doesn't provide one?

- dspam.i386: E: script-without-shebang /var/www/dspam/cgi-bin/admins
Shall I add shebang even if upstream doesn't provide scripts with it?

- dspam-devel.i386: W: symlink-should-be-relative
/usr/share/man/man3/dspam_detach.3.gz /usr/share/man/man3/libdspam.3.gz
I think this stuff comes from upstream installation scripts/makefiles shall I
fix them? (same applies to spurious-executable-perm errors, I suppose)

Comment 18 Jan ONDREJ 2008-03-11 19:03:50 UTC
(In reply to comment #17)
> - dspam.i386: W: log-files-without-logrotate /var/log/dspam
> Shall I write a logrotate file even if upstream doesn't provide one?

Sure, why not? You also can send it to upstream.
For example you are using and init.d script, which is not included upstream too.
This is same situation, just for another script.

> - dspam.i386: E: script-without-shebang /var/www/dspam/cgi-bin/admins
> Shall I add shebang even if upstream doesn't provide scripts with it?

You have to consider, what happens after adding shebang. If it is ok, you can do
this fix. In this example you have to fix permissions (remove execute
permission) to fix this bug. It looks like it is an configuration file.

May be proper place for configuration files is to place them somewhere in /etc
and make a symlink (relative) from this place to /etc/...

> - dspam-devel.i386: W: symlink-should-be-relative
> /usr/share/man/man3/dspam_detach.3.gz /usr/share/man/man3/libdspam.3.gz
> I think this stuff comes from upstream installation scripts/makefiles shall I
> fix them? (same applies to spurious-executable-perm errors, I suppose)

Yes. You can make a patch for upstream makefile or you can remove them in spec
file a create new ones.

Sometimes it is different for upstream releases to create relative symlinks for
all OS and distributions, so you have to fix this in package release.

And another problem:
  %dir /var/www
is owned by httpd. You can't include conflicting files in package.
Please, check this for other directories too.


Comment 19 Lorenzo Villani 2008-03-13 17:58:07 UTC
Spec URL: http://rpm.binaryhelix.org/specs/mail/antispam/dspam.spec
SRPM URL: http://rpm.binaryhelix.org/dspam-3.8.0-21.src.rpm

Yes, I'm still alive ;-)
There are still problems with spurious executable permissions of some
documentation files. I'm uploading this package to show the progress.

* Thu Mar 13 2008 Lorenzo Villani <arbiter> - 3.8.0-21
- removed /var/www directory ownership
- fixed postin postun one-liners
- added logrotate entry
- as of guidelines, moved /var/www/dspam to /usr/share/dspam
- fixed various spurious executable permissions

Comment 20 Jan ONDREJ 2008-03-15 08:24:23 UTC
Have you tried to install your package? :-)

ERROR: Failed dependencies:
        perl(configure.pl) is needed by dspam-3.8.0-21.i386
        dspam-backend-sqlite3 = 3.8.0 is needed by dspam-devel-3.8.0-21.i386

Why all backends are required to install dspam-devel package?

There is an typo for sqlite backend. You require sqlite3 backend but provides
just sqlite (without number).

Can you move dspam libraries into separate subpackage?


Comment 21 Lorenzo Villani 2008-03-16 09:11:24 UTC
The first dependency is auto-extracted by rpmbuild from CGI-BIN perl scripts, I
don't know how to avoid this, the second missing dependency is a typo, when I
removed the suffix from sqlite packages.

You mean moving them to a -devel package?

Comment 22 Jan ONDREJ 2008-03-16 09:46:42 UTC
(In reply to comment #21)
> The first dependency is auto-extracted by rpmbuild from CGI-BIN perl scripts,
> I don't know how to avoid this,

Without fixing this nobody can approve your package. :(
My own dspam package has an Provides: perl(configure.pl), but I think this is
not acceptable for Fedora.
You have to patch this script to make rpm happy (to do not require this).

> You mean moving them to a -devel package?

No, I think moving to %{name}-lib package.


Comment 23 Jan ONDREJ 2008-03-16 09:56:18 UTC
(In reply to comment #21)
> The first dependency is auto-extracted by rpmbuild from CGI-BIN perl scripts, I
> don't know how to avoid this,

See this:
  http://fedoraproject.org/wiki/Packaging/Perl
There is what you need. :-)


Comment 24 Lorenzo Villani 2008-03-19 17:07:04 UTC
Spec URL: http://rpm.binaryhelix.org/specs/mail/antispam/dspam.spec
SRPM URL: http://rpm.binaryhelix.org/dspam-3.8.0-22.src.rpm

* Wed Mar 19 2008 Lorenzo Villani <arbiter> - 3.8.0-22
- Removed unwanted perl dependencies
- Fixed a typo with backend-sqlite
- Fixed spurious executable permissions on documentation files

Comment 25 Mamoru TASAKA 2008-04-17 19:07:17 UTC
Created attachment 302784 [details]
rpmlint log of dspam 3.8.0-22

Note:
For general packaging guidelines you can refer to
http://fedoraproject.org/wiki/Packaging/Guidelines
http://fedoraproject.org/wiki/Packaging/ReviewGuidelines

Also, you can use rpmlint (in rpmlint package) to detect
some general packaging errors.

First of all:
* backend modules
  - dspam-backend-XXX rpms installs dspam modules (I guess so)
    into %_libdir. This is not desired because
    * The installed modules contain lots of undefined non-week
      symbols (you can check this by
      $ rpmlint dspam-backend-hash , for example) so these binaries
      doesn't seem to be libraries.
      Also the symlink named XXXX.so in %_libdir (not in 
      %_libdir/some_name/ ) should usually be in -devel package.
    * The installed modules have too generic names (like libmysql_drv.so)
      which will easily cause name space conflicts with other
      database-related packages.

    So
    * Please create some package specific directory (like %_libdir/%name)
      and move all modules into the directory.

Then:
* Macros
  - Please use macros properly.
    /usr/sbin -> %_sbindir, /usr/share -> %_datadir, for example

* disttag
  - Please consider to use %?dist tag:
    http://fedoraproject.org/wiki/Packaging/DistTag

* Description
  - Remove author credit from %description

* Inter-subpackages dependency
  - Dependency between subpackages should usually be EVR
(Epoch-Version-Release)
    specific (unless it is virtual Provides/Requires)
    For example dspam-devel must have "dspam = %{version}-%{release}".

* Requires
  - For dspam-devel package, please check the Requires you wrote are 
    really needed.
    As far as I checked all of
----------------------------------------------------------------
Requires:      mysql-devel zlib-devel glibc-devel openldap-devel
postgresql-devel sqlite-devel
Requires:      %{name}-backend-mysql   = %{version}
Requires:      %{name}-backend-pgsql   = %{version}
Requires:      %{name}-backend-sqlite = %{version}
Requires:      %{name}-backend-hash    = %{version}
----------------------------------------------------------------
    is not needed and should be removed.
  - Packages containing pkgconfig .pc file must have "Requires: pkgconfig"

! Note for -devel subpackage
* config.h
  - Installing autotool-generated header file named "config.h" is
    really undesirable and this should be avoided because this will
    easily cause name space conflict.

    * If config.h (and config_shared.h) are not needed, please simply
      remove these
    * If needed, rename these files and fix other header files so
      that #include macro don't cause any errors.
 

* configure option
  - Some configure option seems disabled. Would you explain why?
    For example:
----------------------------------------------------------------
   439	checking whether to enable clamav... 
   440	no
----------------------------------------------------------------

* Initscripts
  http://fedoraproject.org/wiki/Packaging/SysVInitScript
  - initscripts service file must be installed under %_initrddir
    (expanded as /etc/rc.d/init.d) not under /etc/init.d.

  - Installed services must not be enabled by default
    (your installed dspam script has the line
----------------------------------------------------------------
   23  # chkconfig: 345 80 80
----------------------------------------------------------------
     which is not desired)
  - service script should (not must) have "reload" entry
    (for details, please refer to the wiki page above)

* Scriptlets
  - needs fixing. Please refer to
    http://fedoraproject.org/wiki/Packaging/SysVInitScript#InitscriptScriptlets

    http://fedoraproject.org/wiki/Packaging/UsersAndGroups

  ! Please check in what order scriptlets are done: explained on
    "Scriptlet Ordering" of
    http://fedoraproject.org/wiki/Packaging/ScriptletSnippets

* Documents directory
  - You are using two documents directory:
    /usr/share/doc/dspam and /usr/share/doc/dspam-3.8.0. Please unify
    them unless impossible.

* File lists
  - build log shows many files are listed twice:
---------------------------------------------------------------
-  1446  warning: File listed twice: /usr/share/dspam/cgi-bin/admins
  1447	warning: File listed twice: /usr/share/dspam/cgi-bin/default.prefs
  1448	warning: File listed twice: /usr/share/dspam/cgi-bin/rgb.txt
  1449	warning: File listed twice:
/usr/share/dspam/cgi-bin/templates/nav_admin_error.html
  1450	warning: File listed twice:
/usr/share/dspam/cgi-bin/templates/nav_admin_preferences.html
  1451	warning: File listed twice:
/usr/share/dspam/cgi-bin/templates/nav_admin_status.html
  1452	warning: File listed twice:
/usr/share/dspam/cgi-bin/templates/nav_admin_user.html
  1453	warning: File listed twice:
/usr/share/dspam/cgi-bin/templates/nav_alerts.html
  1454	warning: File listed twice:
/usr/share/dspam/cgi-bin/templates/nav_analysis.html
.......
--------------------------------------------------------------
    The %files entry
--------------------------------------------------------------
%files
%{_dspam_webapp}
--------------------------------------------------------------
    means the directory %_dspam_webapp itself and all files/directories/etc
    under %_dspam_webapp.

  - There is unowned directory:
--------------------------------------------------------------
[tasaka1@localhost ~]$ rpm -qf /usr/share/doc/dspam/mysql/
dspam-backend-mysql-3.8.0-22.i386
[tasaka1@localhost ~]$ rpm -qf /usr/share/doc/dspam/	  
file /usr/share/doc/dspam is not owned by any package
--------------------------------------------------------------

* rpmlint message
  - There are many rpmlint warning/errors. Please fix them
    unless you have some reasons which should be ignored.
    You can check what rpmlint means by 
--------------------------------------------------------------
$ rpmlint -I symlink-should-be-relative
--------------------------------------------------------------
    for example.
  ! non-executable-script /usr/share/dspam/cgi-bin/configure.pl
    - non-executable script should not have shebang.

  ! script-without-shebang /usr/share/dspam/htdocs/base.css
    - scripts with executable permission (this file has 0755) should
      have shebang.

Comment 26 Lorenzo Villani 2008-04-19 10:47:24 UTC
i'm working on fixing the numerous packaging issues :)

Comment 27 Lorenzo Villani 2008-04-21 20:35:03 UTC
At the moment, most of the reported issues are fixed. There are still problems
moving modules to %{_libdir}/%{name} but I'm working on it. As soon as I have a
working package with above issues fixed I'll publish it.

Comment 28 Lorenzo Villani 2008-04-22 18:27:51 UTC
Spec URL: http://rpm.binaryhelix.org/specs/mail/antispam/dspam.spec
SRPM URL: http://rpm.binaryhelix.org/dspam-3.8.0-24.fc9.src.rpm

Notes: Most of the reported issues should be fixed now, there are still some
rpmlint warnings and errors to be fixed. 

* Tue Apr 22 2008 Lorenzo Villani <lvillani> - 3.8.0-24
- Fixed macro usage
- Now using dist tag
- Removed credit from description
- Inter package dependencies are now in EVR format
- Removed unneeded requires for dspam-devel
- Removed unneeded config.h and config_shared.h
- Fixed sysvinit script install path
- Service is no longer enabled by default
- Added a reload entry to sysvinit script (at the moment it's just a restart
  alias)
- Fixed various scriptlets
- Fixed module paths
- Do not install CGI scripts anymore, upstream doesn't install it. (considering
  the option to make them available as a separate subpackage)
- Unified documentation directories

Comment 29 Mamoru TASAKA 2008-04-23 18:53:47 UTC
Well, I caught a cold so maybe I am missing something...
however for 3.8.0-24:

* undefined macro
  - %_dspam_webapp seems undefined.

* %post/%postun for subpackages
-----------------------------------------------
%post backend-mysql -p /sbin/ldconfig
%postun backend-mysql -p /sbin/ldconfig
-----------------------------------------------
  - These types of scriptlets are now not needed as
    modules are not installed under default ldconfig search
    paths.

* Library installation directory
  - On the other hand, installing lib%{name}*.so under
    %_libdir/%name is not right as
-----------------------------------------------
[root@localhost ~]# ldd -r /usr/sbin/dspam 2>&1 | grep -v /lib
undefined symbol: __syslog_lock (/usr/sbin/dspam)
undefined symbol: lc    (/usr/sbin/dspam)
undefined symbol: _ds_prepare_path_for  (/usr/sbin/dspam)
......
undefined symbol: dspam_getsource       (/usr/sbin/dspam)
        linux-gate.so.1 =>  (0x00110000)
        libdspam.so.7 => not found
-----------------------------------------------
    I guess -24 is not working for you.

* Unifying documents directory
  - Well, I think unifying documents directory is preferable,
    however your current method is undesirable (actually this
    mistake is not uncommon)

    * First you create the directory
-----------------------------------------------
  1336  + /usr/bin/install -Dd
/var/tmp/dspam-3.8.0-24.fc9-root/usr/share/doc/dspam-3.8.0/pgsql
-----------------------------------------------
      At this stage the directory %buildroot%_defaultrootdir/%name-%version
      exists.

    * Then you move the directory:
-----------------------------------------------
  1338  + /bin/mv /var/tmp/dspam-3.8.0-24.fc9-root/usr/share/doc/dspam
/var/tmp/dspam-3.8.0-24.fc9-root/usr/share/doc/dspam-3.8.0
-----------------------------------------------
      This creates %buildroot%_defaultrootdir/%name-%version/%name and
      moves files under there, which I guess is not what you want.

    * And the problem also occurs at %doc. What %doc actually does is that:
-----------------------------------------------
  1379  Processing files: dspam-3.8.0-24.fc9
  1380  Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.45745
  1381  + umask 022
  1382  + cd /builddir/build/BUILD
  1383  + cd dspam-3.8.0
  1384  + DOCDIR=/var/tmp/dspam-3.8.0-24.fc9-root/usr/share/doc/dspam-3.8.0
  1385  + export DOCDIR
  1386  + rm -rf /var/tmp/dspam-3.8.0-24.fc9-root/usr/share/doc/dspam-3.8.0
  1387  + /bin/mkdir -p /var/tmp/dspam-3.8.0-24.fc9-root/usr/share/doc/dspam-3.8.0
  1388  + cp -pr CHANGELOG
/var/tmp/dspam-3.8.0-24.fc9-root/usr/share/doc/dspam-3.8.0
-----------------------------------------------
      This explains what %doc does, i.e.
      - First %doc _removes_ %buildroot%_defaultdocdir/%name-%version.
        So all files installed under this directory are gone.
      - Then %doc creates %buildroot%_defaultdocdir.

* rpmlint issue
-----------------------------------------------
dspam.src: E: no-cleaning-of-buildroot %clean
dspam.i386: E: shell-syntax-error-in-%preun
dspam-devel.i386: W: symlink-should-be-relative
/usr/share/man/man3/dspam_addattribute.3.gz /usr/share/man/man3/libdspam.3.gz
dspam-devel.i386: W: symlink-should-be-relative
/usr/share/man/man3/dspam_attach.3.gz /usr/share/man/man3/libdspam.3.gz
dspam-devel.i386: W: symlink-should-be-relative
/usr/share/man/man3/dspam_create.3.gz /usr/share/man/man3/libdspam.3.gz
dspam-devel.i386: W: symlink-should-be-relative
/usr/share/man/man3/dspam_destroy.3.gz /usr/share/man/man3/libdspam.3.gz
dspam-devel.i386: W: symlink-should-be-relative
/usr/share/man/man3/dspam_detach.3.gz /usr/share/man/man3/libdspam.3.gz
dspam-devel.i386: W: symlink-should-be-relative
/usr/share/man/man3/dspam_getsource.3.gz /usr/share/man/man3/libdspam.3.gz
dspam-devel.i386: W: symlink-should-be-relative
/usr/share/man/man3/dspam_init.3.gz /usr/share/man/man3/libdspam.3.gz
dspam-devel.i386: W: symlink-should-be-relative
/usr/share/man/man3/dspam_process.3.gz /usr/share/man/man3/libdspam.3.gz
-----------------------------------------------
   Summary:
   - Please add %clean section
   - There is a syntax error in %preun of dspam
-----------------------------------------------
%preun
if [ "$1" = 0 ]; then
   /sbin/service %{name} stop >/dev/null 2>&
                                        ^^^^^
   /sbin/chkconfig --del %{name}
fi
-----------------------------------------------
    - Symlinks should be relative, not absolute.

* %pre script
  - %pre script is missing (needed for registering dspam user/group:
    http://fedoraproject.org/wiki/Packaging/UsersAndGroups )

* Directory ownership issue
-----------------------------------------------
[tasaka1@localhost dspam]$ LANG=C rpm -qf /usr/lib/dspam
file /usr/lib/dspam is not owned by any package
-----------------------------------------------

* %_mandir files attribution
  - Files under %_mandir are automatically marked as %doc.

* %defattr
  - We now recommend %defattr(-,root,root,-)

* autotool-generated header files inclusion
  - As said before, please remove config.h from %_includedir/%name.


Comment 30 Mamoru TASAKA 2008-05-12 15:44:40 UTC
ping?

Comment 31 Lorenzo Villani 2008-05-13 11:29:19 UTC
I can't work on this package anymore, upstream places files all over the places
and I can't afford packaging it. Feel free to reassign or close this request.

Comment 32 Mamoru TASAKA 2008-05-13 15:36:08 UTC
Okay, once closing. If you have enough time to package this again,
feel free to open a new review request again, thanks!

Comment 33 Mamoru TASAKA 2009-11-14 18:56:57 UTC

*** This bug has been marked as a duplicate of bug 537587 ***


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