Bug 201149 (Cherokee)

Summary: Review Request: <Cherokee> Flexible WebServer
Product: [Fedora] Fedora Reporter: Manuel Arostegui Ramirez <manuel>
Component: Package ReviewAssignee: Nobody's working on this, feel free to take it <nobody>
Status: CLOSED NOTABUG QA Contact: Fedora Package Reviews List <fedora-package-review>
Severity: medium Docs Contact:
Priority: medium    
Version: 5CC: fedora-package-review, jpmahowald, kevin, opensource, s.adam
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-06-08 23:56:32 EDT Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Bug Depends On:    
Bug Blocks: 201449    
Attachments:
Description Flags
New SRPM made after John Patrick told me some errors on my spec file
none
New spec file for Cherokee none

Description Manuel Arostegui Ramirez 2006-08-03 04:21:17 EDT
Spec URL: http://manuel.todo-linux.com/cherokee.spec
SRPM URL: http://manuel.todo-linux.com/cherokee-0.5.4-1.src.rpm
Description: Cherokee is a very fast, flexible and easy to configure Web Server. It supports the widespread technologies nowadays: FastCGI, SCGI, PHP, CGI, TLS and SSL encrypted connections, Virtual hosts, Authentication, on the fly encoding, Apache compatible log files, and much more.
Comment 1 Bill Nottingham 2006-08-03 09:00:50 EDT
This isn't really going into Core at this point; we have apache for now. Moving
to Extras Review.
Comment 2 John Mahowald 2006-08-14 17:22:44 EDT
Build failed:

checking for bison... no
checking for byacc... no
configure: error: Bison is required to build Cherokee
error: Bad exit status from /var/tmp/rpm-tmp.21464 (%build)


You will need to add a BuildRequires for this, bison-devel I think.

Also, please add a %changelog section to document changes between releases.

Delete the gzip line in %prep, the %setup macro handles that.

Delete the Autoreqprov:    on line, automatic dependencies are already on.

If you must manually export CFLAGS use  CFLAGS="$RPM_OPT_FLAGS"
Comment 3 Manuel Arostegui Ramirez 2006-08-14 17:44:09 EDT
(In reply to comment #2)
> Build failed:
> 
> checking for bison... no
> checking for byacc... no
> configure: error: Bison is required to build Cherokee
> error: Bad exit status from /var/tmp/rpm-tmp.21464 (%build)
> 
> 
> You will need to add a BuildRequires for this, bison-devel I think.
> 
> Also, please add a %changelog section to document changes between releases.
> 
> Delete the gzip line in %prep, the %setup macro handles that.
> 
> Delete the Autoreqprov:    on line, automatic dependencies are already on.
> 
> If you must manually export CFLAGS use  CFLAGS="$RPM_OPT_FLAGS"

Done.
Bison-devel is not necesary at all, just bison.

Thanks John
Comment 4 Manuel Arostegui Ramirez 2006-08-15 05:47:07 EDT
I've corrected two oversight on the spec file, for instance, I forgot ":" after
BuildRequires.

Comment 5 Manuel Arostegui Ramirez 2006-08-16 02:59:37 EDT
Created attachment 134280 [details]
New SRPM made after John Patrick told me some errors on my spec file
Comment 6 Manuel Arostegui Ramirez 2006-08-16 03:00:20 EDT
Created attachment 134281 [details]
New spec file for Cherokee
Comment 7 Manuel Arostegui Ramirez 2006-08-16 03:01:52 EDT
Comment on attachment 134281 [details]
New spec file for Cherokee

# Cherokee
# 2006 Alvaro Lopez Ortega

Name:		cherokee
Version:	0.5.4
Release:	1
License:	GPL
BuildRoot:	%{_tmppath}/%{name}-%{version}-build
Docdir: 	%{_datadir}/doc
Source: 	%{name}-%{version}.tar.gz
Summary:	Flexible and Fast web server
Group:		Productivity/Networking/Web/Servers
URL:		http://www.0x50.org
BuildRequires:	bison


%description
Cherokee is a very fast, flexible and easy to configure Web Server.
It supports the widespread technologies nowadays: FastCGI, SCGI, PHP,
CGI, TLS and SSL encrypted connections, Virtual hosts, Authentication,
on the fly encoding, Apache compatible log files, and much more.


%prep
%setup -q


%build
CFLAGS="$RPM_OPT_FLAGS" 		\
./configure --prefix=%{_prefix} 	\
	    --sysconfdir=%{_sysconfdir} \
	    --mandir=%{_mandir} 	\
	    --sbindir=%{_sbindir}	\
		  --with-wwwroot=/home/httpd/ \
	    --enable-pthreads
make CFLAGS="-O0 -g3"

%install

make install DESTDIR=$RPM_BUILD_ROOT
#rm $RPM_BUILD_ROOT/etc/cherokee/sites-enabled/default

%clean
rm -rf $RPM_BUILD_ROOT

%post
/sbin/ldconfig
ln -s %{_sysconfdir}/cherokee/sites-available/default \
      %{_sysconfdir}/cherokee/sites-enabled/default
mkdir -p /home/httpd

%postun
/sbin/ldconfig

%files
%{_mandir}/*
%{_bindir}/*
%{_libdir}/*
%{_datadir}/*
%{_sbindir}/*
%{_includedir}/*
%{_sysconfdir}/*
/home/httpd/*

%changelog
Comment 8 Ralf Corsepius 2006-08-16 03:11:48 EDT
(In reply to comment #7)
>
> CFLAGS="$RPM_OPT_FLAGS" 		\
> ./configure --prefix=%{_prefix} 	\
> 	    --sysconfdir=%{_sysconfdir} \
> 	    --mandir=%{_mandir} 	\
> 	    --sbindir=%{_sbindir}	\
> 		  --with-wwwroot=/home/httpd/ \
> 	    --enable-pthreads
Any particular reason for not using %configure?

Also, here you are not passing --includedir, nevertheless you are using it in
%files.

> make CFLAGS="-O0 -g3"
Why this? Above you are exporting CFLAGS="$RPM_OPT_FLAGS", here you are
overriding it with something compatible again?
Comment 9 Ralf Corsepius 2006-08-16 03:12:47 EDT
Typo: s/compatible/incompatible
Comment 10 Manuel Arostegui Ramirez 2006-08-16 03:45:58 EDT
(In reply to comment #8)
> (In reply to comment #7)
> >
> > CFLAGS="$RPM_OPT_FLAGS" 		\
> > ./configure --prefix=%{_prefix} 	\
> > 	    --sysconfdir=%{_sysconfdir} \
> > 	    --mandir=%{_mandir} 	\
> > 	    --sbindir=%{_sbindir}	\
> > 		  --with-wwwroot=/home/httpd/ \
> > 	    --enable-pthreads
> Any particular reason for not using %configure?
> 
> Also, here you are not passing --includedir, nevertheless you are using it in
> %files.
> 
> > make CFLAGS="-O0 -g3"
> Why this? Above you are exporting CFLAGS="$RPM_OPT_FLAGS", here you are
> overriding it with something compatible again?
> 


You're right, I've corrected it, here the spec file after those new points of view.

Thank you very much, Ralf.

%prep
%setup -q


%build
CFLAGS="$RPM_OPT_FLAGS"                 \
%configure --prefix=%{_prefix}         \
            --sysconfdir=%{_sysconfdir} \
            --mandir=%{_mandir}         \
            --sbindir=%{_sbindir}       \
                  --with-wwwroot=/home/httpd/ \
            --enable-pthreads
#make CFLAGS="-O0 -g3"

%install

make install DESTDIR=$RPM_BUILD_ROOT
#rm $RPM_BUILD_ROOT/etc/cherokee/sites-enabled/default

%clean
rm -rf $RPM_BUILD_ROOT

%post
/sbin/ldconfig
ln -s %{_sysconfdir}/cherokee/sites-available/default \
      %{_sysconfdir}/cherokee/sites-enabled/default
mkdir -p /home/httpd

%postun
/sbin/ldconfig

%files
%{_mandir}/*
%{_bindir}/*
%{_libdir}/*
%{_datadir}/*
%{_sbindir}/*
%{_includedir}/*
%{_sysconfdir}/*
/home/httpd/*

%changelog
*2006-08-16 Manuel Arostegui Ramirez <manuel@todo-linux.com>
-Misc changes on spec file in order to make it much more polished. Thanks John
and Ralf
Comment 11 John Mahowald 2006-09-02 14:35:51 EDT
Which is the most recent spec and/or srpm? As a reviewer I much prefer a full
spec or srpm to download either an updated attachment or external URL. Your
comment has make CFLAGS="-O0 -g3" commented out but the attached srpm does not.
If at all possible I don't want to have to apply spec patches before reviewing.

Why do you redefine Docdir? If it is a legacy from the existing spec you should
be able to remove it.

Please make Source0 point to a URL where the tarball can be downloaded.

Build fails in %prep at the gzip line: "gzip: %SOURCE.gz: No such file or
directory" 
%setup macro makes the gzip line after it redundant anyway, the setup macro
should decompress sources. (At least it does when your source has the Source0 tag.)

Comment 12 Manuel Arostegui Ramirez 2006-09-02 14:57:02 EDT
(In reply to comment #11)
> Which is the most recent spec and/or srpm? As a reviewer I much prefer a full
> spec or srpm to download either an updated attachment or external URL. 

The latest spec file is here:

http://manuel.todo-linux.com/cherokee/spec/cherokee.spec
And SRPM is also at:
http://manuel.todo-linux.com/cherokee/srpm/cherokee-0.5.4-22.1.src.rpm 

>Your comment has make CFLAGS="-O0 -g3" commented out but the attached srpm does
not.

You're right. After some talkings with other cherokee developers, we would like
to use CFLAGS, because we think that it's a good idea to compile Cherokee with
debug info.
So I have delete the comment therefore, make CFLAGS is alive again.
> If at all possible I don't want to have to apply spec patches before >reviewing.

Roger.

> 
> Why do you redefine Docdir? If it is a legacy from the existing spec you should
> be able to remove it.

Ok I'm going to remove it.

> 
> Please make Source0 point to a URL where the tarball can be downloaded.
> 
Done

Thank you very much John. I tought that this ticket would die because of that,
I've been working with this spec and no new versions have been uploaded to my
server. Hope we can work hard to be successful with this package. 
Comment 13 John Mahowald 2006-09-10 11:12:46 EDT
The spec file srpm seems to be different than that link. Oh well, I built
cherokee-0.5.4-22.1.src.rpm and:

- It does not build. Missing flex.
- When it does build the configure summary shows it missing tls and openssl. I
think those would be useful.
To fix these add a BuildRequires: flex openssl-devel gnutls-devel pkgconfig

- Your files section is missing a defattr line.
- Package owns some standard already existing directories and should not, like
/usr/share/doc /usr/share/man.  This is a result of the * wildcard
%{_datadir}/*. Explicitly list what's under %_datadir.

- The cherokee package contains development files like headers and static files,
pkgconfig file, aclocal macros, and unversioned .so files. Split these off into
a devel subpackage.
- Contains .la files. Remove these if possible.

- Missing a %changelog section. Please create one and make a new entry and
increase the version or release every time you make a spec change.

Does it have an init script that could be dropped in /etc/init.d ?
Comment 14 Stewart Adam 2006-09-21 17:37:46 EDT
(I'm not a reviewer but just helping out)
One of the Fedora Extras guidelines and requirements is to run rpmlint on each
package - I ran it on your SRPM and it produced:
*** output: ***
W: cherokee non-standard-group Productivity/Networking/Web/Servers
The value of the Group tag in the package is not valid.  Valid groups are:
"Amusements/Games", "Amusements/Graphics", "Applications/Archiving",
"Applications/Communications", "Applications/Databases",
"Applications/Editors", "Applications/Emulators", "Applications/Engineering",
"Applications/File", "Applications/Internet", "Applications/Multimedia",
"Applications/Productivity", "Applications/Publishing", "Applications/System",
"Applications/Text", "Development/Debug", "Development/Debuggers",
"Development/Languages", "Development/Libraries", "Development/System",
"Development/Tools", "Documentation", "System Environment/Base", "System
Environment/Daemons", "System Environment/Kernel", "System
Environment/Libraries", "System Environment/Shells", "User
Interface/Desktops", "User Interface/X", "User Interface/X Hardware Support".

E: cherokee no-changelogname-tag
There is no %changelog tag in your spec file. To insert it, just insert a
'%changelog' in your spec file and rebuild it.

E: cherokee unknown-key GPG#6b9d6523
The package was signed, but with an unknown key.
See the rpm --import option for more information.

E: cherokee no-cleaning-of-buildroot
You should clean $RPM_BUILD_ROOT in the %clean section and just after the
beginning of %install section. Use "rm -Rf $RPM_BUILD_ROOT".
*** end output ****
Don't worry about the GPG warning, it's just because it's signed with a key
rpmlint doesn't know.

I don't think you need to worry about the invalid group, although I would make
it one of the 'standard' ones just for the sake of getting rid of the warning.

The E:'s you should look into, especially the changelog. Another requirement is
to have a changelog entry for each release you push, so that's a good one to
have! Even if all it says is something like "initial build", that's OK. As long
as there's an entry for each version you make.
Comment 15 Till Maas 2006-09-21 18:45:45 EDT
I just took a look into http://manuel.todo-linux.com/cherokee/spec/cherokee.spec
and there is a lot that should be fixed. Please read
http://fedoraproject.org/wiki/Packaging/Guidelines

%configure already sets these options:
--prefix=%{_prefix}         \
            --sysconfdir=%{_sysconfdir} \
            --mandir=%{_mandir}         \
            --sbindir=%{_sbindir}       \
So they are not needed here. (see rpm --eval "%configure")
%configure also sets CFLAGS="$RPM_OPT_FLAGS"
So you should set CFLAGS="-O0 -g3" before the invocation of %configure to make
sure that $RPM_OPT_FLAGS are honourd. Do you really need debug level 3 and no
optimization?

Why are these commands in %post?
ln -s %{_sysconfdir}/cherokee/sites-available/default \
      %{_sysconfdir}/cherokee/sites-enabled/default
mkdir -p /home/httpd

The COPYING file is missing

There is an unneeded Source:, since there is already Source0:

Why is there still a Docdir Tag?

Why don't you use %{?dist} in the release?

The %changelog is still empty.




Comment 16 Kevin Fenzi 2007-06-01 23:34:58 EDT
Hey Manuel: Do you still wish to submit this package for review?

If so, could you look at addressing the points in comments 13, 14, 15 and
uploading a current spec and src.rpm? 

If I don't hear from you in a week I will go ahead and close this request out. 
Comment 17 Kevin Fenzi 2007-06-08 23:56:32 EDT
Manuel: I am going to close this now. 

If you want to continue this submission feel free to re-open this request, or
file a new one.