Bug 488100

Summary: Review Request: firebird - Firebird SQL database management system
Product: [Fedora] Fedora Reporter: MERCIER Jonathan <bioinfornatics>
Component: Package ReviewAssignee: Peter Lemenkov <lemenkov>
Status: CLOSED DUPLICATE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: 10CC: atorkhov, fedora-package-review, hv, itamar, lemenkov, makowski.fedora, notting, pingou, wart, zarko.pintar
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: 2009-05-03 11:55:43 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
new spec file
none
new spec
none
spec with filesystem-subpackage none

Description MERCIER Jonathan 2009-03-02 17:55:09 UTC
hi,
i try to creat a new rpm for the SGBD Firebird. but at aonce is a little hard :~\
here the src.rpm:
 - http://bioinformatiques.free.fr/firebird-2.1.1.17910.0-1.fc10.src.rpm

--------------------------------
|       rpmlint issue           |
--------------------------------
$ rpmlint -i rpmbuild/RPMS/x86_64/firebird-*
firebird.x86_64: W: non-standard-uid /usr/lib64/firebird/examples/empbuild/employee.fdb firebird
A file in this package is owned by a non standard user. Standard users are:
root, bin, daemon, adm, lp, sync, shutdown, halt, mail, news, uucp, operator,
games, gopher, ftp, nobody.

firebird.x86_64: W: non-standard-gid /usr/lib64/firebird/examples/empbuild/employee.fdb firebird
A file in this package is owned by a non standard group. Standard groups are:
root, bin, daemon, sys, adm, tty, disk, lp, mem, kmem, wheel, mail, news,
uucp, man, games, gopher, dip, ftp, lock, nobody, users.

firebird.x86_64: E: non-readable /usr/lib64/firebird/examples/empbuild/employee.fdb 0660
The file can't be read by everybody. If this is expected (for security
reasons), contact your rpmlint distributor to get it added to the list of
exceptions for your distro (or add it to your local configuration if you
installed rpmlint from the source tarball).

firebird.x86_64: W: file-not-utf8 /usr/lib64/firebird/doc/sql.extensions/README.global_temporary_tables
The character encoding of this file is not UTF-8.  Consider converting it in
the specfile's %prep section for example using iconv(1).

firebird.x86_64: W: file-not-utf8 /usr/lib64/firebird/doc/sql.extensions/README.expression_indices
The character encoding of this file is not UTF-8.  Consider converting it in
the specfile's %prep section for example using iconv(1).

firebird.x86_64: W: file-not-utf8 /usr/lib64/firebird/doc/sql.extensions/README.common_table_expressions
The character encoding of this file is not UTF-8.  Consider converting it in
the specfile's %prep section for example using iconv(1).

firebird.x86_64: W: file-not-utf8 /usr/lib64/firebird/doc/README.intl
The character encoding of this file is not UTF-8.  Consider converting it in
the specfile's %prep section for example using iconv(1).

firebird.x86_64: E: no-binary
The package should be of the noarch architecture because it doesn't contain
any binaries.

firebird.x86_64: E: only-non-binary-in-usr-lib
There are only non binary files in /usr/lib so they should be in /usr/share.

firebird-classic.x86_64: W: no-documentation
The package contains no documentation (README, doc, etc). You have to include
documentation files.

firebird-devel.x86_64: W: no-documentation
The package contains no documentation (README, doc, etc). You have to include
documentation files.

firebird-devel.x86_64: W: symlink-should-be-relative /usr/lib64/libfbembed.so /usr/lib64/firebird/lib/libfbembed.so
Absolute symlinks are problematic eg. when working with chroot environments.

firebird-devel.x86_64: W: symlink-should-be-relative /usr/lib64/libfbclient.so /usr/lib64/firebird/lib/libfbclient.so
Absolute symlinks are problematic eg. when working with chroot environments.

firebird-devel.x86_64: E: invalid-soname /usr/lib64/firebird/lib/libib_util.so libib_util.so
The soname of the library is neither of the form lib<libname>.so.<major> or
lib<libname>-<major>.so.

firebird-libfbclient.x86_64: W: no-documentation
The package contains no documentation (README, doc, etc). You have to include
documentation files.

firebird-libfbclient.x86_64: E: postun-without-ldconfig /usr/lib64/firebird/lib/libfbclient.so.2.1.1
This package contains a library and its %postun doesn't call ldconfig.

firebird-libfbclient.x86_64: W: symlink-should-be-relative /usr/lib64/libfbclient.so.2.1.1 /usr/lib64/firebird/lib/libfbclient.so.2.1.1
Absolute symlinks are problematic eg. when working with chroot environments.

firebird-libfbclient.x86_64: W: symlink-should-be-relative /usr/lib64/libfbclient.so.2 /usr/lib64/firebird/lib/libfbclient.so.2
Absolute symlinks are problematic eg. when working with chroot environments.

firebird-libfbclient.x86_64: E: non-empty-%postun /sbin/ldconfig
firebird-libfbembed.x86_64: W: no-documentation
The package contains no documentation (README, doc, etc). You have to include
documentation files.

firebird-libfbembed.x86_64: W: symlink-should-be-relative /usr/lib64/libfbembed.so.2.1 /usr/lib64/firebird/lib/libfbembed.so.2.1
Absolute symlinks are problematic eg. when working with chroot environments.

firebird-libfbembed.x86_64: E: library-without-ldconfig-postin /usr/lib64/firebird/lib/libfbembed.so.2.1.1
This package contains a library and provides no %post scriptlet containing a
call to ldconfig.

firebird-libfbembed.x86_64: E: postun-without-ldconfig /usr/lib64/firebird/lib/libfbembed.so.2.1.1
This package contains a library and its %postun doesn't call ldconfig.

firebird-libfbembed.x86_64: W: symlink-should-be-relative /usr/lib64/libfbembed.so.2.1.1 /usr/lib64/firebird/lib/libfbembed.so.2.1.1
Absolute symlinks are problematic eg. when working with chroot environments.

firebird-libfbembed.x86_64: E: non-empty-%postun /sbin/ldconfig
firebird-server-classic.x86_64: W: no-documentation
The package contains no documentation (README, doc, etc). You have to include
documentation files.

firebird-server-classic.x86_64: W: dangerous-command-in-%post ln
firebird-server-classic.x86_64: W: dangerous-command-in-%preun rm
firebird-server-common.x86_64: W: no-documentation
The package contains no documentation (README, doc, etc). You have to include
documentation files.

firebird-server-common.x86_64: W: non-standard-uid /var/lib/firebird/backup firebird
A file in this package is owned by a non standard user. Standard users are:
root, bin, daemon, adm, lp, sync, shutdown, halt, mail, news, uucp, operator,
games, gopher, ftp, nobody.

firebird-server-common.x86_64: W: non-standard-gid /var/lib/firebird/backup firebird
A file in this package is owned by a non standard group. Standard groups are:
root, bin, daemon, sys, adm, tty, disk, lp, mem, kmem, wheel, mail, news,
uucp, man, games, gopher, dip, ftp, lock, nobody, users.

firebird-server-common.x86_64: E: non-standard-dir-perm /var/lib/firebird/backup 0775
A standard directory should have permission set to 0755. If you get this
message, it means that you have wrong directory permissions in some dirs
included in your package.

firebird-server-common.x86_64: W: non-standard-uid /var/lib/firebird firebird
A file in this package is owned by a non standard user. Standard users are:
root, bin, daemon, adm, lp, sync, shutdown, halt, mail, news, uucp, operator,
games, gopher, ftp, nobody.

firebird-server-common.x86_64: W: non-standard-gid /var/lib/firebird firebird
A file in this package is owned by a non standard group. Standard groups are:
root, bin, daemon, sys, adm, tty, disk, lp, mem, kmem, wheel, mail, news,
uucp, man, games, gopher, dip, ftp, lock, nobody, users.

firebird-server-common.x86_64: E: non-standard-dir-perm /var/lib/firebird 0775
A standard directory should have permission set to 0755. If you get this
message, it means that you have wrong directory permissions in some dirs
included in your package.

firebird-server-common.x86_64: W: dangling-relative-symlink /usr/lib64/firebird/bin/changeDBAPassword.sh ../tools/changeDBAPassword.sh
The relative symbolic link points nowhere.

firebird-server-common.x86_64: E: sourced-script-with-shebang /etc/profile.d/firebird.csh
This text file contains a shebang, but is meant to be sourced, not executed.

firebird-server-common.x86_64: E: executable-sourced-script /etc/profile.d/firebird.csh 0755
This text file has executable bit set, but is meant to be sourced, not
executed.

firebird-server-common.x86_64: W: non-standard-uid /usr/lib64/firebird firebird
A file in this package is owned by a non standard user. Standard users are:
root, bin, daemon, adm, lp, sync, shutdown, halt, mail, news, uucp, operator,
games, gopher, ftp, nobody.

firebird-server-common.x86_64: W: non-standard-gid /usr/lib64/firebird firebird
A file in this package is owned by a non standard group. Standard groups are:
root, bin, daemon, sys, adm, tty, disk, lp, mem, kmem, wheel, mail, news,
uucp, man, games, gopher, dip, ftp, lock, nobody, users.

firebird-server-common.x86_64: E: non-standard-dir-perm /usr/lib64/firebird 0775
A standard directory should have permission set to 0755. If you get this
message, it means that you have wrong directory permissions in some dirs
included in your package.

firebird-server-common.x86_64: W: dangling-relative-symlink /usr/lib64/firebird/bin/gdef ../tools/gdef
The relative symbolic link points nowhere.

firebird-server-common.x86_64: W: non-standard-uid /usr/lib64/firebird/security2.fdb firebird
A file in this package is owned by a non standard user. Standard users are:
root, bin, daemon, adm, lp, sync, shutdown, halt, mail, news, uucp, operator,
games, gopher, ftp, nobody.

firebird-server-common.x86_64: W: non-standard-gid /usr/lib64/firebird/security2.fdb firebird
A file in this package is owned by a non standard group. Standard groups are:
root, bin, daemon, sys, adm, tty, disk, lp, mem, kmem, wheel, mail, news,
uucp, man, games, gopher, dip, ftp, lock, nobody, users.

firebird-server-common.x86_64: E: non-readable /usr/lib64/firebird/security2.fdb 0660
The file can't be read by everybody. If this is expected (for security
reasons), contact your rpmlint distributor to get it added to the list of
exceptions for your distro (or add it to your local configuration if you
installed rpmlint from the source tarball).

firebird-server-common.x86_64: W: non-standard-uid /usr/lib64/firebird/firebird.log firebird
A file in this package is owned by a non standard user. Standard users are:
root, bin, daemon, adm, lp, sync, shutdown, halt, mail, news, uucp, operator,
games, gopher, ftp, nobody.

firebird-server-common.x86_64: W: non-standard-gid /usr/lib64/firebird/firebird.log firebird
A file in this package is owned by a non standard group. Standard groups are:
root, bin, daemon, sys, adm, tty, disk, lp, mem, kmem, wheel, mail, news,
uucp, man, games, gopher, dip, ftp, lock, nobody, users.

firebird-server-common.x86_64: E: non-readable /usr/lib64/firebird/firebird.log 0660
The file can't be read by everybody. If this is expected (for security
reasons), contact your rpmlint distributor to get it added to the list of
exceptions for your distro (or add it to your local configuration if you
installed rpmlint from the source tarball).

firebird-server-common.x86_64: E: zero-length /usr/lib64/firebird/firebird.log
firebird-server-common.x86_64: E: sourced-script-with-shebang /etc/profile.d/firebird.sh
This text file contains a shebang, but is meant to be sourced, not executed.

firebird-server-common.x86_64: E: executable-sourced-script /etc/profile.d/firebird.sh 0755
This text file has executable bit set, but is meant to be sourced, not
executed.

firebird-server-common.x86_64: W: symlink-should-be-relative /etc/firebird/aliases.conf /usr/lib64/firebird/aliases.conf
Absolute symlinks are problematic eg. when working with chroot environments.

firebird-server-common.x86_64: W: symlink-should-be-relative /etc/firebird/firebird.conf /usr/lib64/firebird/firebird.conf
Absolute symlinks are problematic eg. when working with chroot environments.

firebird-server-common.x86_64: W: dangling-relative-symlink /usr/lib64/firebird/bin/gpre ../tools/gpre
The relative symbolic link points nowhere.

firebird-server-common.x86_64: W: dangling-relative-symlink /usr/lib64/firebird/bin/changeRunUser.sh ../tools/changeRunUser.sh
The relative symbolic link points nowhere.

firebird-server-common.x86_64: W: dangling-relative-symlink /usr/lib64/firebird/bin/gsec ../tools/gsec
The relative symbolic link points nowhere.

firebird-server-common.x86_64: W: dangling-relative-symlink /usr/lib64/firebird/bin/restoreRootRunUser.sh ../tools/restoreRootRunUser.sh
The relative symbolic link points nowhere.

firebird-server-common.x86_64: W: obsolete-not-provided firebird-server-superserver
If a package is obsoleted by a compatible replacement, the obsoleted package
should also be provided in order to not cause unnecessary dependency breakage.
If the obsoleting package is not a compatible replacement for the old one,
leave out the Provides.

firebird-server-common.x86_64: E: file-in-usr-marked-as-conffile /usr/lib64/firebird/aliases.conf
A file in /usr is marked as being a configuration file. Store your conf files
in /etc/ instead.

firebird-server-common.x86_64: E: file-in-usr-marked-as-conffile /usr/lib64/firebird/firebird.conf
A file in /usr is marked as being a configuration file. Store your conf files
in /etc/ instead.

firebird-server-common.x86_64: E: file-in-usr-marked-as-conffile /usr/lib64/firebird/intl/fbintl.conf
A file in /usr is marked as being a configuration file. Store your conf files
in /etc/ instead.

firebird-server-common.x86_64: E: file-in-usr-marked-as-conffile /usr/lib64/firebird/security2.fdb
A file in /usr is marked as being a configuration file. Store your conf files
in /etc/ instead.

firebird-server-common.x86_64: W: conffile-without-noreplace-flag /usr/lib64/firebird/security2.fdb
A configuration file is stored in your package without the noreplace flag. A
way to resolve this is to put the following in your SPEC file:
%config(noreplace) /etc/your_config_file_here

firebird-server-common.x86_64: E: non-empty-%postun /sbin/ldconfig
firebird-server-superserver.x86_64: W: no-documentation
The package contains no documentation (README, doc, etc). You have to include
documentation files.

firebird-server-superserver.x86_64: W: non-standard-uid /var/run/firebird firebird
A file in this package is owned by a non standard user. Standard users are:
root, bin, daemon, adm, lp, sync, shutdown, halt, mail, news, uucp, operator,
games, gopher, ftp, nobody.

firebird-server-superserver.x86_64: W: non-standard-gid /var/run/firebird firebird
A file in this package is owned by a non standard group. Standard groups are:
root, bin, daemon, sys, adm, tty, disk, lp, mem, kmem, wheel, mail, news,
uucp, man, games, gopher, dip, ftp, lock, nobody, users.

firebird-server-superserver.x86_64: E: non-standard-dir-perm /var/run/firebird 0775
A standard directory should have permission set to 0755. If you get this
message, it means that you have wrong directory permissions in some dirs
included in your package.

firebird-server-superserver.x86_64: W: dangerous-command-in-%post ln
firebird-server-superserver.x86_64: W: dangerous-command-in-%preun rm
firebird-server-superserver.x86_64: W: service-default-enabled /etc/rc.d/init.d/firebird
The service is enabled by default after "chkconfig --add"; for security
reasons, most services should not be. Use "-" as the default runlevel in the
init script's "chkconfig:" line and/or remove the "Default-Start:" LSB keyword
to fix this if appropriate for this service.

firebird-server-superserver.x86_64: E: subsys-not-used /etc/rc.d/init.d/firebird
While your daemon is running, you have to put a lock file in
/var/lock/subsys/. To see an example, look at this directory on your machine
and examine the corresponding init scripts.

firebird-server-superserver.x86_64: W: incoherent-init-script-name firebird
The init script name should be the same as the package name in lower case, or
one with 'd' appended if it invokes a process by that name.

firebird-superserver.x86_64: W: no-documentation
The package contains no documentation (README, doc, etc). You have to include
documentation files.

firebird-utils-classic.x86_64: W: no-documentation
The package contains no documentation (README, doc, etc). You have to include
documentation files.

firebird-utils-classic.x86_64: W: obsolete-not-provided firebird-client-embedded
If a package is obsoleted by a compatible replacement, the obsoleted package
should also be provided in order to not cause unnecessary dependency breakage.
If the obsoleting package is not a compatible replacement for the old one,
leave out the Provides.

firebird-utils-superserver.x86_64: W: no-documentation
The package contains no documentation (README, doc, etc). You have to include
documentation files.

12 packages and 0 specfiles checked; 26 errors, 51 warnings.

Comment 2 Itamar Reis Peixoto 2009-03-02 20:08:17 UTC
why not postgresql ?

can you explain for me why you want firebird ?

Comment 3 MERCIER Jonathan 2009-03-02 21:00:42 UTC
for the next release: replication solution and it will own all others, that and clustering and/or cluster fs support, etc
upgrade to newest version is easy
1.0 to 1.5
1.0 to 2.0
or other
near it will be better as postgres if project continue

Comment 4 MERCIER Jonathan 2009-03-02 21:16:22 UTC
@ Itamar Reis Peixot: 
http://www.firebirddevelopersday.com.br/fdd/reports/index.html

Comment 5 VAN LANDEGHEM 2009-03-02 21:20:48 UTC
even if Postgresql very good, we use Firebird like many others people in your country http://www.firebirddevelopersday.com.br/fdd/reports/index.html

(In reply to comment #2)
> why not postgresql ?
> 
> can you explain for me why you want firebird ?

Comment 6 MERCIER Jonathan 2009-03-02 22:07:20 UTC
some link:
- http://www.firebirdnews.org/
- http://www.ibphoenix.com/
- http://www.firebirdsql.org/

Comment 7 Itamar Reis Peixoto 2009-03-03 00:08:47 UTC
you need to do a hard work to get your review request approved, I will try to help you.

FIRST ---> 

do you have a fedora account ?

if yes, what's your FAS username ?

if not get one here.

https://admin.fedoraproject.org/accounts/

l@@k --->
https://fedoraproject.org/wiki/Join_the_package_collection_maintainers#Get_a_Fedora_Account

Comment 8 MERCIER Jonathan 2009-03-03 08:49:05 UTC
i have already an account name: bioinfornatics
and i have already submit 4 package: 2 wait the review and 2 in stable repo

thanks for your help

Comment 9 MERCIER Jonathan 2009-03-05 07:24:11 UTC
new spec with one rpmlint error:
firebird.src: W: strange-permission firebird-profile.sh 0755

sorry i didn't aeough time for publish the nex src.rpm i need go to work :p

spec file:
%global fbroot			%{_libdir}/%{name}
%global realname		Firebird
%global realversion		2.1.2.18116-0
%global	realeaseCandidate	RC1

Summary:	Firebird SQL Database, fork of InterBase
Name:		firebird
Version:	2.1.2.18116.0
Release:	2%{?dist}

Group:		Applications/Databases
License:	Intenbase
URL:		http://www.firebirdsql.org/
BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-buildroot

Source0:	http://aleron.dl.sourceforge.net/sourceforge/firebird/%{realname}-%{realversion}.%{realeaseCandidate}.tar.bz2
Source1:	firebird-profile.sh
Source2:	firebird-profile.csh

BuildRequires:	autoconf
BuildRequires:	automake
BuildRequires:	bison
BuildRequires:	libtool
BuildRequires:  ncurses-devel
BuildRequires:  libtermcap-devel

Requires:	%{name}-arch = %{version}
Requires:	grep
Requires:	sed

%description
This is the Firebird SQL Database shared files.


%package	classic
Summary:	Meta-package for Firebird SQL Classic Database (xinetd based)
Group:		Applications/Databases
Provides:	%{name}-arch = %{version}-%{release}
Requires:	%{name}-server-classic = %{version}
Requires:	%{name}-utils-classic = %{version}
Conflicts:	%{name}-superserver


%description	classic
This is a meta-package for easy selecting the Classic arch for Firebird 2


%package	superserver
Summary:	Meta-package for Firebird SQL SuperServer Database (standalone)
Group:		Applications/Databases
Provides:	%{name}-arch = %{version}-%{release}
Requires:	%{name}-server-superserver = %{version}
Requires:	%{name}-utils-superserver = %{version}
Conflicts:	%{name}-classic


%description	superserver
This is a meta-package for easy selecting the SuperServer arch for Firebird 2


%package	devel
Summary:	Development Libraries for Firebird SQL Database
Group:		Development/Databases
Requires:	%{name} = %{version}
Requires:	libfbclient2


%description	devel
Development libraries for firebird.


%package	utils-classic
Summary:	Client programs for Firebird SQL Database
Group:		Applications/Databases
Requires:	%{name}-server-common = %{version}
Provides:	%{name}-utils = %{version}-%{release}
Conflicts:	%{name}-utils-superserver
Obsoletes:	%{name}-client-embedded <= 2.0

%description	utils-classic
Client access tools for firebird.


%package	utils-superserver
Summary:	Client programs for Firebird SQL Database
Group:		Applications/Databases
Requires:	%{name}-server-common = %{version}
Provides:	%{name}-utils = %{version}-%{release}
Conflicts:	%{name}-utils-classic


%description	utils-superserver
Client access tools for firebird.


%package -n libfbclient2
Summary: Multi-threaded, non-local client libraries for Firebird SQL Database
Group: System/Libraries


%description -n libfbclient2
Multi-threaded, non-local client libraries for Firebird SQL Database


%package -n libfbembed2
Summary: Multi-process, non-local client libraries for Firebird SQL Database
Group: System/Libraries


%description -n libfbembed2
Multi-process, non-local client libraries for Firebird SQL Database


%package	server-classic
Summary:	Classic (xinetd) server for Firebird SQL Database
Group:		Applications/Databases
Provides:	firebird-server = %{version}-%{release}
Requires:	xinetd
Requires:	%{name}-server-common = %{version}
Conflicts:	%{name}-server-superserver


%description	server-classic
This is the classic (xinetd) server for the Firebird SQL Database.
It can also be used as an embedded server, when paired with the
client-embedded package.

It does not include any client access tools, nor does it include the
multi-threaded client library. 


%package	server-superserver
Summary:	Superserver (single process) server for Firebird SQL Database
Group:		Applications/Databases
Provides:	firebird-server = %{version}-%{release}
Requires:	%{name}-server-common = %{version}
Conflicts:	%{name}-server-classic


%description	server-superserver
This is the Superserver (single process) for the Firebird SQL Database.

It does not include any client access tools, nor does it include the
multi-threaded client library.


%package		server-common
Summary:		Common files for Firebird SQL Database servers
Group:			Databases
Conflicts:		firebird-server-classic < 2.0
Requires(postun):	/usr/sbin/userdel
Requires(postun):	/usr/sbin/groupdel
Requires(pre):		/usr/sbin/groupadd
Requires(pre):		/usr/sbin/useradd


%description		server-common
This package contains common files between firebird-server-classic and
firebird-server-superserver. You will need this if you want to use either one.


%prep
%setup -q -n %{realname}-%{realversion} 


%build
# Fix permissions
chmod +x ./autogen.sh ./src/misc/writeBuildNum.sh

# <mrl> For reference, the proccess fb_lock_mgr that keeps executing after
# building finish is started at gen/Makefile.codes, line 60 (target
# build_codes) but I can't do nothing for it without major hacking.

# server-classic
NOCONFIGURE=1 ./autogen.sh
%configure --prefix=%{fbroot}
# Can't use %%make as itsparallel build is broken
make
cd gen
./install/makeInstallImage.sh
mv ./buildroot/ buildroot-classic
chmod 644 ./buildroot-classic%{fbroot}/help/help.fdb
mkdir ./buildroot-classic%{fbroot}/tools-classic
for f in changeDBAPassword.sh changeRunUser.sh gdef \
	gpre gsec restoreRootRunUser.sh; do
	mv ./buildroot-classic%{fbroot}/{bin,tools-classic}/$f
	ln -s ../tools/$f ./buildroot-classic%{fbroot}/bin/$f
done
cd ..

# server-superserver
%configure --prefix=%{fbroot} --enable-superserver
# Can't use %%make as itsparallel build is broken
make
cd gen
./install/makeInstallImage.sh
mv ./buildroot/ buildroot-superserver
chmod 644 ./buildroot-superserver%{fbroot}/help/help.fdb
mkdir ./buildroot-superserver%{fbroot}/tools-superserver
for f in changeDBAPassword.sh changeRunUser.sh gdef \
	gpre gsec restoreRootRunUser.sh; do
	mv ./buildroot-superserver%{fbroot}/{bin,tools-superserver}/$f
done
cd ..


%install
[ "%{buildroot}" != "/" ] && rm -rf %{buildroot}
install -d %{buildroot}
cp -a %{_builddir}/%{realname}-%{realversion}/gen/buildroot-superserver/* \
	%{buildroot}
cp -a %{_builddir}/%{realname}-%{realversion}/gen/buildroot-classic/* \
	%{buildroot}

cd %{buildroot}
mkdir -p .%{_sysconfdir}/%{name}
mkdir -p .%{_sysconfdir}/rc.d/init.d/
mkdir -p .%{_sysconfdir}/xinetd.d
mkdir -p .%{_sysconfdir}/profile.d
mkdir -p .%{_var}/run/%{name}
ln -s %{fbroot}/aliases.conf .%{_sysconfdir}/%{name}/
ln -s %{fbroot}/firebird.conf .%{_sysconfdir}/%{name}/
ln -s fbmgr.bin .%{fbroot}/bin/fbmgr
mv .%{fbroot}/misc/%{name}.xinetd .%{_sysconfdir}/xinetd.d/%{name}
mv .%{fbroot}/misc/%{name}.init.d.mandrake .%{_sysconfdir}/rc.d/init.d/%{name}
rm -rf .%{fbroot}/misc
sed "s@%%{fbroot}@%{fbroot}@g" %{SOURCE1} > .%{_sysconfdir}/profile.d/firebird.sh
sed "s@%%{fbroot}@%{fbroot}@g" %{SOURCE2} > .%{_sysconfdir}/profile.d/firebird.csh
touch .%{fbroot}/firebird.log

mkdir -p %{buildroot}%{_var}/lib/firebird/backup


%clean
rm -rf %{buildroot}

%post -n libfbclient2 -p /sbin/ldconfig
%postun -n libfbclient2 -p /sbin/ldconfig
%post -n libfbembed2 -p /sbin/ldconfig
%postun -n libfbembed2 -p /sbin/ldconfig

%post server-classic
if test ! -e %{fbroot}/tools; then
	ln -s %{fbroot}/tools{-classic,}
fi
if /sbin/service xinetd status >& /dev/null; then
	/sbin/service xinetd reload
fi

%preun server-classic
if [ $1 -eq 0 ]; then
	if /sbin/service xinetd status >& /dev/null; then
		/sbin/service xinetd reload
	fi
	if [ "$(readlink %{fbroot}/tools 2> /dev/null)" == "%{fbroot}/tools-classic" ]; then
		rm -f %{fbroot}/tools
	fi
fi


%post server-superserver
if test ! -e %{fbroot}/tools; then
	ln -s %{fbroot}/tools{-superserver,}
fi
if [ $1 -eq 2 ]; then
	if /sbin/service firebird status >& /dev/null; then
		/sbin/service firebird restart
	fi
fi
if [ $1 -eq 1 ]; then
	chkconfig firebird off
fi


%preun server-superserver
if [ $1 -eq 0 ]; then
	if /sbin/service firebird status >& /dev/null; then
		/sbin/service firebird stop
	fi
	chkconfig --del firebird
	if [ "$(readlink %{fbroot}/tools >& /dev/null)" == "%{fbroot}/tools-superserver" ]; then
		rm -f %{fbroot}/tools
	fi
fi


%pre server-common
# Create the firebird group if it doesn't exist
grep -q %{name} /etc/group || /usr/sbin/groupadd -r %{name} || true
grep -q %{name} /etc/passwd || /usr/sbin/useradd -d / -g %{name} -s /sbin/nologin -r %{name} || true

# Add gds_db to /etc/services if needed
FileName=/etc/services
newLine="gds_db 3050/tcp  # Firebird SQL Database Remote Protocol"
oldLine=`grep "^gds_db" $FileName`
if [ -z "$oldLine" ]; then
	echo $newLine >> $FileName
fi


%post server-common -p /sbin/ldconfig
%postun server-common -p /sbin/ldconfig


%files
%defattr(0644,root,root,0755)
%doc %{fbroot}/README
%doc %{fbroot}/WhatsNew
%doc %{fbroot}/doc/
%doc %{fbroot}/examples/
#%doc %{fbroot}/upgrade/
%attr (0660,%{name},%{name}) %{fbroot}/examples/empbuild/employee.fdb


%files classic


%files devel
%defattr(0644,root,root,0755)
%{fbroot}/include/*
%{fbroot}/lib/*.so
%{_includedir}/*
%{_libdir}/*.so


%files utils-classic
%defattr(0755,root,root,0755)
%dir %{fbroot}/tools-classic
%dir %{fbroot}/bin
%{fbroot}/bin/gbak
%{fbroot}/bin/fbsvcmgr
%{fbroot}/tools-classic/gdef
%{fbroot}/bin/gfix
%{fbroot}/tools-classic/gpre
%{fbroot}/bin/gstat
%{fbroot}/bin/isql
%{fbroot}/bin/qli


%files utils-superserver
%defattr(0755,root,root,0755)
%dir %{fbroot}/tools-superserver
%dir %{fbroot}/bin
%{fbroot}/bin/gbak
%{fbroot}/bin/fbsvcmgr
%{fbroot}/tools-superserver/gdef
%{fbroot}/bin/gfix
%{fbroot}/tools-superserver/gpre
%{fbroot}/bin/gstat
%{fbroot}/bin/isql
%{fbroot}/bin/qli


%files -n libfbclient2
%defattr(0644,root,root,0755)
%dir %{fbroot}/lib
%{_libdir}/libfbclient.so.*
%{fbroot}/lib/libfbclient.so.*

%files superserver


%files -n libfbembed2
%defattr(0644,root,root,0755)
%dir %{fbroot}/lib
%{_libdir}/libfbembed.so.*
%{fbroot}/lib/libfbembed.so.*
%{fbroot}/lib/libicudata.so.*
%{fbroot}/lib/libicui18n.so.*
%{fbroot}/lib/libicuuc.so.*


%files server-classic
%defattr(0644,root,root,0755)
%dir %{fbroot}/bin
%dir %{fbroot}/tools-classic
%config(noreplace) %{_sysconfdir}/xinetd.d/%{name}
%defattr(0755,root,root,0755)
%{fbroot}/bin/changeGdsLibraryCompatibleLink.sh
%{fbroot}/bin/fb_inet_server
%{fbroot}/bin/fb_lock_mgr
%{fbroot}/bin/fb_lock_print
%{fbroot}/bin/gds_drop
%{fbroot}/tools-classic/gsec
%{fbroot}/tools-classic/changeDBAPassword.sh
%{fbroot}/tools-classic/changeRunUser.sh
%{fbroot}/tools-classic/restoreRootRunUser.sh


%files server-superserver
%defattr(0644,root,root,0755)
%dir %attr(0775,%{name},%{name}) %{_var}/run/%{name}
%dir %{fbroot}/bin
%dir %{fbroot}/tools-superserver
%{fbroot}/UDF/fbudf.so
%defattr(0755,root,root,0755)
%{_sysconfdir}/rc.d/init.d/%{name}
%{fbroot}/bin/fb_lock_print
%{fbroot}/bin/fbguard
%{fbroot}/bin/fbmgr
%{fbroot}/bin/fbmgr.bin
%{fbroot}/bin/fbserver
%{fbroot}/tools-superserver/gsec
%{fbroot}/tools-superserver/changeDBAPassword.sh
%{fbroot}/tools-superserver/changeRunUser.sh
%{fbroot}/tools-superserver/restoreRootRunUser.sh


%files server-common
%defattr(0644,root,root,0755)
%dir %attr(0775,%{name},%{name}) %{fbroot}
%dir %attr(0775,%{name},%{name}) %{_var}/lib/firebird/backup
%dir %attr(0775,%{name},%{name}) %{_var}/lib/firebird
%dir %{fbroot}/UDF
%dir %{fbroot}/intl
%config %attr (0660,%{name},%{name}) %{fbroot}/security2.fdb
%config(noreplace) %{fbroot}/aliases.conf
%config(noreplace) %{fbroot}/firebird.conf
%config(noreplace) %{fbroot}/intl/fbintl.conf
%{_sysconfdir}/%{name}/aliases.conf
%{_sysconfdir}/%{name}/firebird.conf
%attr(0660,%{name},%{name}) %{fbroot}/firebird.log
%{fbroot}/*.msg
%{fbroot}/help
%{fbroot}/UDF/fbudf.so
%{fbroot}/UDF/fbudf.sql
%{fbroot}/UDF/ib_udf.so
%{fbroot}/UDF/ib_udf.sql
%{fbroot}/UDF/ib_udf2.sql
%{_libdir}/libib_util.so
%defattr(0755,root,root,0755)
%{_sysconfdir}/profile.d/firebird.csh
%{_sysconfdir}/profile.d/firebird.sh
%{fbroot}/intl/fbintl
%{fbroot}/bin/changeDBAPassword.sh
%{fbroot}/bin/changeRunUser.sh
%{fbroot}/bin/createAliasDB.sh
%{fbroot}/bin/fb_config
%{fbroot}/bin/gdef
%{fbroot}/bin/gpre
%{fbroot}/bin/gsec
%{fbroot}/bin/gsplit
%{fbroot}/bin/nbackup
%{fbroot}/bin/restoreRootRunUser.sh


%changelog
* Fri Mar 05 2009  Jonathan MERCIER <bioinfornatics at gmail.com> - 2.1.2.18116-0-2
- update to 2.1.2
- use %%global instead of %%define
- change ${SOURCE1} to %%{SOURCE1}

* Thu Jul 17 2008 Arkady L. Shane <ashejn> 2.1.1.17910.0-1
- update to 2.1.1

* Fri Apr 18 2008 Arkady L. Shane <ashejn> 2.1.0.17798.0-1
- update to 2.1.0

* Thu Sep 27 2007 Arkady L. Shane <ashejn> 2.0.3.12981.1-1
- update to 2.0.3

* Thu Sep 13 2007 Arkady L. Shane <ashejn> 2.0.1.12855.0-1
- initial build for Fedora
- cleanup Mandriva spec

Comment 10 Itamar Reis Peixoto 2009-03-05 11:48:55 UTC
(In reply to comment #9)

please don't paste long lines of text here, this will make hard to read, and the people doesn't have much time available

please use Attachments

Comment 11 MERCIER Jonathan 2009-03-07 23:14:30 UTC
i put here my work, but they are some work to do!

http://bioinformatiques.free.fr/firebird-2.1.2.18116.0-2.fc10.src.rpm

http://bioinformatiques.free.fr/firebird.spec


----------------------------------------------------------
rpmlint issue:

http://bioinformatiques.free.fr/rpmlint_issue

the command:sed 	-e 's/ä/À/g'	-e 's/ê/ê/g'	-i	/path/to/file
do'nt work need use iconv

Comment 12 MERCIER Jonathan 2009-03-08 17:20:46 UTC
this file is not in UTF-8 and iconv, piconv, sed do'nt work !! 
%{buildroot}%{fbroot}/doc/sql.extensions/README.global_temporary_tables
%{buildroot}%{fbroot}/doc/sql.extensions/README.expression_indices
%{buildroot}%{fbroot}/doc/sql.extensions/README.common_table_expressions
%{buildroot}%{fbroot}/doc/README.intl

Comment 13 MERCIER Jonathan 2009-03-14 00:37:53 UTC
hi!
a little problem!

spec file:
http://bioinformatiques.free.fr/firebird.spec

Code:
______________________________________________________________________________

$ rpmbuild -ba firebird.spec
...
...
Traitement des fichiers: firebird-libfbembed2-2.1.2.18116.0-3.fc10
erreur: Fichier non trouvé par la substitution: /home/builder/rpmbuild/BUILDROOT/firebird-2.1.2.18116.0-3.fc10.x86_64/usr/lib64/firebird/lib/libicudata.so.*
erreur: Fichier non trouvé par la substitution: /home/builder/rpmbuild/BUILDROOT/firebird-2.1.2.18116.0-3.fc10.x86_64/usr/lib64/firebird/lib/libicui18n.so.*
erreur: Fichier non trouvé par la substitution: /home/builder/rpmbuild/BUILDROOT/firebird-2.1.2.18116.0-3.fc10.x86_64/usr/lib64/firebird/lib/libicuuc.so.*


Erreur de construction de RPM:
    Fichier non trouvé par la substitution: /home/builder/rpmbuild/BUILDROOT/firebird-2.1.2.18116.0-3.fc10.x86_64/usr/lib64/firebird/lib/libicudata.so.*
    Fichier non trouvé par la substitution: /home/builder/rpmbuild/BUILDROOT/firebird-2.1.2.18116.0-3.fc10.x86_64/usr/lib64/firebird/lib/libicui18n.so.*
    Fichier non trouvé par la substitution: /home/builder/rpmbuild/BUILDROOT/firebird-2.1.2.18116.0-3.fc10.x86_64/usr/lib64/firebird/lib/libicuuc.so.*
________________________________________________________________________________

Comment 14 MERCIER Jonathan 2009-03-14 20:28:10 UTC
src.rpm file :
http://bioinformatiques.free.fr/firebird-2.1.2.18116.0-3.fc10.src.rpm

spec file:
http://bioinformatiques.free.fr/firebird.spec

rpmlint issue:
________________________________________________________________________________  
$ rpmlint rpmbuild/SPECS/firebird.spec
0 packages and 1 specfiles checked; 0 errors, 0 warnings.

$ rpmlint rpmbuild/SRPMS/firebird-2.1.2.18116.0-3.fc10.src.rpm 
1 packages and 0 specfiles checked; 0 errors, 0 warnings.

$ rpmlint rpmbuild/RPMS/x86_64/firebird-2.1.2.18116.0-3.fc10.x86_64.rpm 
firebird.x86_64: W: non-standard-uid /usr/lib64/firebird/examples/empbuild/employee.fdb firebird
firebird.x86_64: W: non-standard-gid /usr/lib64/firebird/examples/empbuild/employee.fdb firebird
firebird.x86_64: E: non-readable /usr/lib64/firebird/examples/empbuild/employee.fdb 0660
firebird.x86_64: E: no-binary
firebird.x86_64: E: only-non-binary-in-usr-lib
1 packages and 0 specfiles checked; 3 errors, 2 warnings.
________________________________________________________________________________

Comment 15 Peter Lemenkov 2009-03-17 06:21:45 UTC
I'll review it.

Comment 16 Pavel Lisý 2009-03-18 11:52:26 UTC
There is error in dependency:

in subpackage firebird-devel is:
Requires:               libfbclient2

but nothing provides it, change it to:
Requires:               %{name}-libfbclient2

Comment 17 Pavel Lisý 2009-03-18 14:00:29 UTC
There is another problem in .spec, 
creation of user  firebird failed

This have to be on one line:
grep -q %{name} /etc/passwd || /usr/sbin/useradd -d / -g %{name} -s
/sbin/nologin -r %{name} || true

Comment 18 Wart 2009-03-18 15:26:09 UTC
(In reply to comment #17)
> There is another problem in .spec, 
> creation of user  firebird failed
> 
> This have to be on one line:
> grep -q %{name} /etc/passwd || /usr/sbin/useradd -d / -g %{name} -s
> /sbin/nologin -r %{name} || true  

Don't assume that all users will be listed in /etc/passwd.  This assumption may be false if the host uses directory services (NIS, LDAP).  Better to use 'getent' instead:

getent passwd %{name} >/dev/null || \
    usr/sbin/useradd -d -g %{name} -s /sbin/nologin -r %{name} || :

Comment 19 Philippe Makowski 2009-03-21 19:03:07 UTC
Created attachment 336173 [details]
new spec file

I made majors changes
please check this new version
if need, the rpms is there :
http://ibphoenix.fr/fichiers/firebird-2.1.1.17910-4.fc10.src.rpm

don't hesitate to contact me, I'm a member of the Firebird admin team
but please use pmakowski AT ibphoenix DOT com

Comment 20 MERCIER Jonathan 2009-03-25 17:49:03 UTC
i have make a rpmlint on firebird-*

rpmlint issue:
_______________________________________________________________________
$ rpmlint rpmbuild/RPMS/x86_64/firebird-*
firebird.x86_64: W: no-documentation
firebird.x86_64: W: incoherent-version-in-changelog 2.1.1.17190.0-4 ['2.1.1.17910-4.fc10', '2.1.1.17910-4']
firebird.x86_64: E: no-binary
firebird-classic.x86_64: W: no-documentation
firebird-devel.x86_64: W: no-documentation
firebird-devel.x86_64: W: symlink-should-be-relative /usr/lib64/libfbembed.so /usr/lib64/firebird/lib/libfbembed.so
firebird-devel.x86_64: W: symlink-should-be-relative /usr/lib64/libfbclient.so /usr/lib64/firebird/lib/libfbclient.so
firebird-devel.x86_64: E: invalid-soname /usr/lib64/firebird/lib/libib_util.so libib_util.so
firebird-libfbclient2.x86_64: W: no-documentation
firebird-libfbclient2.x86_64: W: symlink-should-be-relative /usr/lib64/libfbclient.so.2.1.1 /usr/lib64/firebird/lib/libfbclient.so.2.1.1
firebird-libfbclient2.x86_64: W: symlink-should-be-relative /usr/lib64/libfbclient.so.2 /usr/lib64/firebird/lib/libfbclient.so.2
firebird-libfbembed2.x86_64: W: no-documentation
firebird-libfbembed2.x86_64: W: symlink-should-be-relative /usr/lib64/libfbembed.so.2.1 /usr/lib64/firebird/lib/libfbembed.so.2.1
firebird-libfbembed2.x86_64: W: symlink-should-be-relative /usr/lib64/libfbembed.so.2.1.1 /usr/lib64/firebird/lib/libfbembed.so.2.1.1
firebird-server-classic.x86_64: W: no-documentation
firebird-server-classic.x86_64: W: dangerous-command-in-%post ln
firebird-server-classic.x86_64: W: dangerous-command-in-%preun rm
firebird-server-common.x86_64: W: no-documentation
firebird-server-common.x86_64: W: non-standard-uid /etc/firebird/security2.fdb firebird
firebird-server-common.x86_64: W: non-standard-gid /etc/firebird/security2.fdb firebird
firebird-server-common.x86_64: E: non-readable /etc/firebird/security2.fdb 0660
firebird-server-common.x86_64: W: symlink-should-be-relative /usr/lib64/firebird/intl/fbintl.conf /etc/firebird/fbintl.conf
firebird-server-common.x86_64: W: dangling-relative-symlink /usr/lib64/firebird/bin/changeDBAPassword.sh ../tools/changeDBAPassword.sh
firebird-server-common.x86_64: E: sourced-script-with-shebang /etc/profile.d/firebird.csh
firebird-server-common.x86_64: E: executable-sourced-script /etc/profile.d/firebird.csh 0755
firebird-server-common.x86_64: W: symlink-should-be-relative /usr/lib64/firebird/aliases.conf /etc/firebird/aliases.conf
firebird-server-common.x86_64: W: dangling-relative-symlink /usr/lib64/firebird/bin/gdef ../tools/gdef
firebird-server-common.x86_64: W: symlink-should-be-relative /usr/lib64/firebird/security2.fdb /etc/firebird/security2.fdb
firebird-server-common.x86_64: W: non-standard-uid /var/log/firebird/firebird.log firebird
firebird-server-common.x86_64: W: non-standard-gid /var/log/firebird/firebird.log firebird
firebird-server-common.x86_64: E: zero-length /var/log/firebird/firebird.log
firebird-server-common.x86_64: W: symlink-should-be-relative /usr/lib64/firebird/firebird.log /var/log/firebird/firebird.log
firebird-server-common.x86_64: W: non-standard-uid /usr/share/firebird/data firebird
firebird-server-common.x86_64: W: non-standard-gid /usr/share/firebird/data firebird
firebird-server-common.x86_64: E: sourced-script-with-shebang /etc/profile.d/firebird.sh
firebird-server-common.x86_64: E: executable-sourced-script /etc/profile.d/firebird.sh 0755
firebird-server-common.x86_64: W: non-standard-uid /usr/share/firebird/backup firebird
firebird-server-common.x86_64: W: non-standard-gid /usr/share/firebird/backup firebird
firebird-server-common.x86_64: W: dangling-relative-symlink /usr/lib64/firebird/bin/gpre ../tools/gpre
firebird-server-common.x86_64: W: dangling-relative-symlink /usr/lib64/firebird/bin/changeRunUser.sh ../tools/changeRunUser.sh
firebird-server-common.x86_64: W: dangling-relative-symlink /usr/lib64/firebird/bin/gsec ../tools/gsec
firebird-server-common.x86_64: W: symlink-should-be-relative /usr/lib64/firebird/firebird.conf /etc/firebird/firebird.conf
firebird-server-common.x86_64: W: non-standard-uid /usr/share/firebird firebird
firebird-server-common.x86_64: W: non-standard-gid /usr/share/firebird firebird
firebird-server-common.x86_64: W: dangling-relative-symlink /usr/lib64/firebird/bin/restoreRootRunUser.sh ../tools/restoreRootRunUser.sh
firebird-server-superserver.x86_64: W: no-documentation
firebird-server-superserver.x86_64: W: dangling-relative-symlink /usr/lib64/firebird/bin/fbmgr ./usr/lib64/firebird/bin/fbmgr.bin
firebird-server-superserver.x86_64: W: non-standard-uid /var/run/firebird firebird
firebird-server-superserver.x86_64: W: non-standard-gid /var/run/firebird firebird
firebird-server-superserver.x86_64: W: dangerous-command-in-%post ln
firebird-server-superserver.x86_64: W: dangerous-command-in-%preun rm
firebird-server-superserver.x86_64: W: service-default-enabled /etc/rc.d/init.d/firebird
firebird-server-superserver.x86_64: E: subsys-not-used /etc/rc.d/init.d/firebird
firebird-server-superserver.x86_64: W: incoherent-init-script-name firebird
firebird-superserver.x86_64: W: no-documentation
firebird-utils-classic.x86_64: W: no-documentation
firebird-utils-classic.x86_64: W: obsolete-not-provided firebird-client-embedded
firebird-utils-superserver.x86_64: W: no-documentation
13 packages and 0 specfiles checked; 9 errors, 49 warnings.

Comment 21 MERCIER Jonathan 2009-03-25 17:57:08 UTC
with this source version you need Fix changelog 2.1.1.17190.0 to 2.1.1.17190
they are no minor version as the next source

Comment 22 Philippe Makowski 2009-03-26 10:16:27 UTC
for me all these warning are not important
even Errors are not really errors
and at least there are less errors and warning than with your original proposal ;)

but again, if really it's breaking Fedora rules, don't hesitate to make appropriate changes, in fact as it is now, it is really close to the Debian package.

But I'm not a member of Fedora team, so ...

Please Fedora members,review it.

Comment 23 Itamar Reis Peixoto 2009-03-26 11:06:40 UTC
(In reply to comment #22)
> But I'm not a member of Fedora team, so ...

please join fedora.


> Please Fedora members,review it.  

Peter Lemenkov is alrealy reviewing it, when the package and spec file is in a good shape then it will be approved.

Comment 24 Philippe Makowski 2009-03-26 14:38:12 UTC
(In reply to comment #23)
> (In reply to comment #22)
> > But I'm not a member of Fedora team, so ...
> 
> please join fedora.

;)
If I can find time for it would be a pleasure ...
 
> > Please Fedora members,review it.  
> 
> Peter Lemenkov is alrealy reviewing it, when the package and spec file is in a
> good shape then it will be approved.  
ok
to Peter Lemenkov : again feel free to contact me if any thing need related to Firebird

after that we could package Flamerobin and also the Python driver

Comment 25 Peter Lemenkov 2009-03-28 07:59:07 UTC
Notes:

* These defines seems redundant:

%global realname                Firebird
%global major                   2.1.1.17910
%global minor                   0
%global realversion             %{major}-%{minor}

%realname used only with %realversion, which in turn is the only place where %major and %minor are used.

I suggest you, to replace these macros with single one (say, %tarsourcedir or something similar, which will be more descriptive and clear to others).

* I can't uderstant, why you defined a macro %bindir at line 2. Please add explanation and/or remove it.

* You should explicitly define from which codepage you're converting, while using iconv. E.g.

iconv -f <original codepage> -t utf-8

instead of

iconv -t utf-8 only.

* lines 187,259,260 looks like a leftover.

* line 244 MUST be removed - there is no need in such stupid tests anymore.

* Regarding %fbroot macro. I don't like the idea of installing *-devel files into %libdir.

* I, personally, don't like naming scheme at all. I suspect that adding lib-prefixes and "2" as postfix for library-subpackages  is redundant. Ad one more - why so many servers (classic, super and related subpackages) and related utils-subpackages? However, this may be generally accepted naming scheme among firebird-users, but in any case - please explain it. 


I'll add more notes later.

Comment 26 Peter Lemenkov 2009-03-28 09:23:42 UTC
Issues, found by Pavel Lisý and Wart (see above), are still not addressed.

https://bugzilla.redhat.com/show_bug.cgi?id=488100#c17
https://bugzilla.redhat.com/show_bug.cgi?id=488100#c18

Comment 27 Philippe Makowski 2009-03-28 11:06:34 UTC
(In reply to comment #25)
> * I, personally, don't like naming scheme at all. 
In fact neitheir do I ;) but see below explanations

> I suspect that adding
> lib-prefixes and "2" as postfix for library-subpackages  is redundant. Ad one
> more - why so many servers (classic, super and related subpackages) and related
> utils-subpackages? However, this may be generally accepted naming scheme among
> firebird-users, but in any case - please explain it. 
Firebird exist in to Flavor : 
Classic server and SuperServer cf http://firebirdsql.org/manual/qsg2-classic-or-super.html

Firebird project build the two flavor as two packages
Mandriva, Debian chose the way you see it, on meta package with subpackages.

I'm no against the idea of reworking the naming schema, but do you have some suggestion ?

I will work on others problems, thanks for the report.

Comment 28 Philippe Makowski 2009-03-28 19:23:00 UTC
Created attachment 337120 [details]
new spec

Hi,
here a new spec file, please check it

if need src.rpm is there : http://ibphoenix.fr/fedora/firebird-2.1.1.17910.0-5.fc10.src.rpm

Comment 29 MERCIER Jonathan 2009-04-11 13:51:48 UTC
Someone for review it?

Comment 30 Peter Lemenkov 2009-04-11 14:11:38 UTC
Still here. Sorry for the delay.
I'll review Philippe's new srpm ASAP.

Comment 31 Philippe Makowski 2009-04-12 20:50:31 UTC
(In reply to comment #30)
> Still here. Sorry for the delay.
> I'll review Philippe's new srpm ASAP.  
Thanks
Firebird 2.1.2 is there, so after your review, I'll update it
I also added Flamerobin (Bug 495412)

Comment 32 MERCIER Jonathan 2009-04-12 21:05:43 UTC
great :D

Comment 33 Peter Lemenkov 2009-04-17 08:36:55 UTC
Notes:

- The issue with excessive number of macros still not addressed. I advice you to

   ** completely remove %{major}, %{minor} macros - just use %{version} macro.
   ** remove "%global version %{major}.%{minor}" as well. No need to re-define this macro.
   ** combine %{pkgname} and %{pkgversion} together (since they used only in couple)

In any case, these issues are cosmetic, mostly.

+ The issue with iconv was gone.

- Please, do not use %{?dist}-suffixes in changelog. This also a minor issue.

More nites will be after I rebuild the package in koji.

Comment 34 Peter Lemenkov 2009-04-17 09:27:04 UTC
Sorry for the typo in my previous comment:

s/nites/notes


OK, koji just finished its job - building for ppc64 failed:

http://koji.fedoraproject.org/koji/taskinfo?taskID=1303566
http://koji.fedoraproject.org/koji/taskinfo?taskID=1303570

Is it a known issue?

Comment 35 Philippe Makowski 2009-04-18 08:27:04 UTC
(In reply to comment #33)
>    ** completely remove %{major}, %{minor} macros - just use %{version} macro.
>    ** remove "%global version %{major}.%{minor}" as well. No need to re-define
> this macro.
>    ** combine %{pkgname} and %{pkgversion} together (since they used only in
> couple)
> - Please, do not use %{?dist}-suffixes in changelog. This also a minor issue.
all done, thanks
check here :
http://ibphoenix.fr/fedora/firebird.spec
http://ibphoenix.fr/fedora/firebird-2.1.2.18118.0-1.fc10.src.rpm

Comment 36 Philippe Makowski 2009-04-18 08:39:05 UTC
(In reply to comment #34)
> 
> OK, koji just finished its job - building for ppc64 failed:
> 
> http://koji.fedoraproject.org/koji/taskinfo?taskID=1303566
> http://koji.fedoraproject.org/koji/taskinfo?taskID=1303570
> 
> Is it a known issue?  
Not for what I know, and I don't understand why the build failed looking the build.log
But even Debian (http://packages.debian.org/sid/firebird2.1-server-common) don't build ppc64 ;)


may be we can try with the new one ?

Comment 37 Peter Lemenkov 2009-04-18 11:04:07 UTC
No, it doesn't help too much

http://koji.fedoraproject.org/koji/taskinfo?taskID=1306464

BTW, you, as a fedora developer, can try it by yourself

$ koji list-targets
....
<information about currently available targets>
....
$ koji build --scratch <target's name> <your firebird srpm>

f.e.:

$ koji build --scratch dist-f10 ~/rpmbuild/SRPMS/firebird-2.1.2.18118.0-1.fc10.src.rpm

Comment 38 Peter Lemenkov 2009-04-18 11:07:04 UTC
And again about macros at the top of the spec - you don't need to define name and version. They defined automatically. E.g. you may remove these two lines

%global name    firebird
%global version 2.1.2.18118.0

and you should change this one:

-Version:       %{version}
+Version:       2.1.2.18118.0

Comment 39 Alexey Torkhov 2009-04-18 11:26:47 UTC
(In reply to comment #36)
> (In reply to comment #34)
> > 
> > OK, koji just finished its job - building for ppc64 failed:
> > 
> > http://koji.fedoraproject.org/koji/taskinfo?taskID=1303566
> > http://koji.fedoraproject.org/koji/taskinfo?taskID=1303570
> > 
> > Is it a known issue?  
> Not for what I know, and I don't understand why the build failed looking the
> build.log

Seems that it installed some files that should be under %{_libdir} (/usr/lib64/) to /usr/lib/

Comment 40 Peter Lemenkov 2009-04-18 12:42:38 UTC
Here is a scratchbuild with more detailed output of ./install/makeInstallImage.sh script:

http://koji.fedoraproject.org/koji/taskinfo?taskID=1306559

Comment 41 Alexey Torkhov 2009-04-18 13:37:40 UTC
(In reply to comment #40)
> Here is a scratchbuild with more detailed output of
> ./install/makeInstallImage.sh script:
> 
> http://koji.fedoraproject.org/koji/taskinfo?taskID=1306559  

See, it makes links under gen/buildroot/usr/lib/:
+ for i in 'libfb*.so*'
+ ln -s /usr/lib64/firebird/lib/libfbclient.so /builddir/build/BUILD/Firebird-2.1.2.18118-0/gen/buildroot/usr/lib/libfbclient.so
and so on...

Comment 42 Philippe Makowski 2009-04-18 14:10:15 UTC
> Seems that it installed some files that should be under %{_libdir}
> (/usr/lib64/) to /usr/lib/  
it shouldn't
and I don't understand why
and x86_64 is ok, so why not ppc64

Comment 43 Philippe Makowski 2009-04-18 17:12:47 UTC
Finaly I added ExcludeArch:	ppc64
http://ibphoenix.fr/fedora/firebird.spec
http://ibphoenix.fr/fedora/firebird-2.1.2.18118.0-1.fc10.src.rpm  
upgraded

and here results :
http://koji.fedoraproject.org/koji/taskinfo?taskID=1306893
http://koji.fedoraproject.org/koji/taskinfo?taskID=1306917

for me epel target is enough, no need ppc64

Comment 44 Alexey Torkhov 2009-04-18 17:40:31 UTC
(In reply to comment #42)
> > Seems that it installed some files that should be under %{_libdir}
> > (/usr/lib64/) to /usr/lib/  
> it shouldn't
> and I don't understand why
> and x86_64 is ok, so why not ppc64  

That happens because of self-written target checks in configure that treats ppc and ppc64 targets the same, and also disregards libdir passed as param to configure.

Comment 45 Philippe Makowski 2009-04-18 18:23:39 UTC
(In reply to comment #44)
> That happens because of self-written target checks in configure that treats ppc
> and ppc64 targets the same, and also disregards libdir passed as param to
> configure.  
no sure of that
for what I see in the log target is good after configure task
The Firebird2 package has been configured with the following options:
                   Architecture : ClassicServer
                          Debug : disabled
64 bit I/O for 32-bit platforms : enabled
                    Raw devices : enabled
                   Lock manager : enabled
                   Service name : gds_db
                   Service port : 3050
                   GPRE modules : c_cxx.cpp
                    Install Dir : /usr/lib64/firebird

The Firebird2 package has been configured with the following options:
                   Architecture : SuperServer
                          Debug : disabled
64 bit I/O for 32-bit platforms : enabled
                    Raw devices : enabled
                   Service name : gds_db
                   Service port : 3050
                   GPRE modules : c_cxx.cpp
                    Install Dir : /usr/lib64/firebird

same as for x86_64

Comment 46 Alexey Torkhov 2009-04-18 18:38:34 UTC
(In reply to comment #45)
> (In reply to comment #44)
> > That happens because of self-written target checks in configure that treats ppc
> > and ppc64 targets the same, and also disregards libdir passed as param to
> > configure.  
> no sure of that

Those checks in configure sets libdir to /usr/lib64 only for x86_64*-*-linux*, for all other targets libdir got set to /usr/lib.

Comment 47 Alexey Torkhov 2009-04-18 18:40:06 UTC
(In reply to comment #45)
>                     Install Dir : /usr/lib64/firebird

And this is installdir which is being set from prefix which you don't override.

Comment 48 Philippe Makowski 2009-04-18 19:00:25 UTC
Sorry Alexey, I think I understand now
but if we wanted to solve it, we need to make a patch only for ppc64 plateform
it could be done, but it will take some time

Comment 49 Philippe Makowski 2009-04-18 22:24:52 UTC
Seems that I found the solution for ppc64
All builds are ok

http://koji.fedoraproject.org/koji/taskinfo?taskID=1307088

http://ibphoenix.fr/fedora/firebird.spec
http://ibphoenix.fr/fedora/firebird-2.1.2.18118.0-1.fc10.src.rpm  
upgraded

Comment 50 Zarko (grof) 2009-04-21 10:20:46 UTC
Hello,
I'm working on Flamerobin's review, and I checked Firebird for F11 branch, but builds Fails!

Please, look at my Koji tasks:
http://koji.fedoraproject.org/koji/taskinfo?taskID=1310953
http://koji.fedoraproject.org/koji/taskinfo?taskID=1310951

some troubles with libtoolize, see buildlogs..

Comment 51 Peter Lemenkov 2009-04-21 10:49:40 UTC
Philippe, are you 100% sure, that this move from lib to lib64 doesn't hurt anyone (see line 237 of your spec)? 

Here is a full list of rpmlint messages:

[petro@Sulaco SPECS]$ rpmlint ~/Desktop/firebird-*
firebird.ppc64: W: name-repeated-in-summary Firebird
firebird.ppc64: E: no-binary
firebird.ppc64: W: no-documentation
firebird-classic.ppc64: W: obsolete-not-provided firebird-client-embedded
firebird-classic.ppc64: W: no-documentation
firebird-classic.ppc64: W: dangerous-command-in-%post ln
firebird-classic.ppc64: W: dangerous-command-in-%preun rm
firebird-devel.ppc64: E: invalid-soname /usr/lib64/firebird/lib/libib_util.so libib_util.so
firebird-devel.ppc64: W: no-documentation
firebird-libfbclient.ppc64: W: no-documentation
firebird-libfbembed.ppc64: W: no-documentation
firebird-server-common.ppc64: W: no-documentation
firebird-server-common.ppc64: W: non-standard-uid /etc/firebird/security2.fdb firebird
firebird-server-common.ppc64: W: non-standard-gid /etc/firebird/security2.fdb firebird
firebird-server-common.ppc64: E: non-readable /etc/firebird/security2.fdb 0660
firebird-server-common.ppc64: W: dangling-relative-symlink /usr/lib64/firebird/bin/changeDBAPassword.sh ../tools/changeDBAPassword.sh
firebird-server-common.ppc64: E: sourced-script-with-shebang /etc/profile.d/firebird.csh
firebird-server-common.ppc64: E: executable-sourced-script /etc/profile.d/firebird.csh 0755
firebird-server-common.ppc64: W: dangling-relative-symlink /usr/lib64/firebird/bin/gdef ../tools/gdef
firebird-server-common.ppc64: W: non-standard-uid /var/log/firebird/firebird.log firebird
firebird-server-common.ppc64: W: non-standard-gid /var/log/firebird/firebird.log firebird
firebird-server-common.ppc64: E: zero-length /var/log/firebird/firebird.log
firebird-server-common.ppc64: W: non-standard-uid /usr/share/firebird/data firebird
firebird-server-common.ppc64: W: non-standard-gid /usr/share/firebird/data firebird
firebird-server-common.ppc64: E: sourced-script-with-shebang /etc/profile.d/firebird.sh
firebird-server-common.ppc64: E: executable-sourced-script /etc/profile.d/firebird.sh 0755
firebird-server-common.ppc64: W: non-standard-uid /usr/share/firebird/backup firebird
firebird-server-common.ppc64: W: non-standard-gid /usr/share/firebird/backup firebird
firebird-server-common.ppc64: W: dangling-relative-symlink /usr/lib64/firebird/bin/gpre ../tools/gpre
firebird-server-common.ppc64: W: dangling-relative-symlink /usr/lib64/firebird/bin/changeRunUser.sh ../tools/changeRunUser.sh
firebird-server-common.ppc64: W: dangling-relative-symlink /usr/lib64/firebird/bin/gsec ../tools/gsec
firebird-server-common.ppc64: W: non-standard-uid /usr/share/firebird firebird
firebird-server-common.ppc64: W: non-standard-gid /usr/share/firebird firebird
firebird-server-common.ppc64: W: dangling-relative-symlink /usr/lib64/firebird/bin/restoreRootRunUser.sh ../tools/restoreRootRunUser.sh
firebird-superserver.ppc64: W: no-documentation
firebird-superserver.ppc64: W: dangling-relative-symlink /usr/lib64/firebird/bin/fbmgr ./usr/lib64/firebird/bin/fbmgr.bin
firebird-superserver.ppc64: W: non-standard-uid /var/run/firebird firebird
firebird-superserver.ppc64: W: non-standard-gid /var/run/firebird firebird
firebird-superserver.ppc64: W: dangerous-command-in-%post ln
firebird-superserver.ppc64: W: dangerous-command-in-%preun rm
firebird-superserver.ppc64: E: subsys-not-used /etc/rc.d/init.d/firebird
firebird-superserver.ppc64: W: incoherent-init-script-name firebird
9 packages and 0 specfiles checked; 9 errors, 33 warnings.
[petro@Sulaco SPECS]$

Comment 52 Peter Lemenkov 2009-04-21 11:07:56 UTC
All messages regarding non-standart-[gu]id may be ignored, so here is a final rpmling messages list:

[petro@Sulaco Desktop]$ rpmlint firebird-*|grep -v non-standard
firebird.ppc64: W: name-repeated-in-summary Firebird
firebird.ppc64: E: no-binary
firebird.ppc64: W: no-documentation
firebird-classic.ppc64: W: obsolete-not-provided firebird-client-embedded
firebird-classic.ppc64: W: no-documentation
firebird-classic.ppc64: W: dangerous-command-in-%post ln
firebird-classic.ppc64: W: dangerous-command-in-%preun rm
firebird-devel.ppc64: E: invalid-soname /usr/lib64/firebird/lib/libib_util.so libib_util.so
firebird-devel.ppc64: W: no-documentation
firebird-libfbclient.ppc64: W: no-documentation
firebird-libfbembed.ppc64: W: no-documentation
firebird-server-common.ppc64: W: no-documentation
firebird-server-common.ppc64: E: non-readable /etc/firebird/security2.fdb 0660
firebird-server-common.ppc64: W: dangling-relative-symlink /usr/lib64/firebird/bin/changeDBAPassword.sh ../tools/changeDBAPassword.sh
firebird-server-common.ppc64: E: sourced-script-with-shebang /etc/profile.d/firebird.csh
firebird-server-common.ppc64: E: executable-sourced-script /etc/profile.d/firebird.csh 0755
firebird-server-common.ppc64: W: dangling-relative-symlink /usr/lib64/firebird/bin/gdef ../tools/gdef
firebird-server-common.ppc64: E: zero-length /var/log/firebird/firebird.log
firebird-server-common.ppc64: E: sourced-script-with-shebang /etc/profile.d/firebird.sh
firebird-server-common.ppc64: E: executable-sourced-script /etc/profile.d/firebird.sh 0755
firebird-server-common.ppc64: W: dangling-relative-symlink /usr/lib64/firebird/bin/gpre ../tools/gpre
firebird-server-common.ppc64: W: dangling-relative-symlink /usr/lib64/firebird/bin/changeRunUser.sh ../tools/changeRunUser.sh
firebird-server-common.ppc64: W: dangling-relative-symlink /usr/lib64/firebird/bin/gsec ../tools/gsec
firebird-server-common.ppc64: W: dangling-relative-symlink /usr/lib64/firebird/bin/restoreRootRunUser.sh ../tools/restoreRootRunUser.sh
firebird-superserver.ppc64: W: no-documentation
firebird-superserver.ppc64: W: dangling-relative-symlink /usr/lib64/firebird/bin/fbmgr ./usr/lib64/firebird/bin/fbmgr.bin
firebird-superserver.ppc64: W: dangerous-command-in-%post ln
firebird-superserver.ppc64: W: dangerous-command-in-%preun rm
firebird-superserver.ppc64: E: subsys-not-used /etc/rc.d/init.d/firebird
firebird-superserver.ppc64: W: incoherent-init-script-name firebird
9 packages and 0 specfiles checked; 9 errors, 33 warnings.
[petro@Sulaco Desktop]$

Comment 53 Peter Lemenkov 2009-04-21 11:34:42 UTC
* We may omit messages, regarding relative symlinks (just add a note somewhere in %doc that there may be some issues with chrooting)

* we may ignore messages about no-documentation and about no-binary.

* These messages needs fixing:

firebird-server-common.ppc64: E: sourced-script-with-shebang
firebird-server-common.ppc64: E: executable-sourced-script
firebird-server-common.ppc64: E: sourced-script-with-shebang
firebird-server-common.ppc64: E: executable-sourced-script

Note, that files in /etc/profile.d should be 0644 and shouldn't have "#!/bin/whatever"

* This message "firebird-superserver.ppc64: E: subsys-not-used /etc/rc.d/init.d/firebird" warns you that your init-script ddidn't used /var/lock/subsys - this may be omitted, but more better idea is to fix init-script. All you need is to touch /var/lock/subsys/firebird at start and remove it at stop. See /etc/init.d/rsyslog for example.

* regarding messages about dangerous-command-in- - Im afraid we cannot do much here, so we should omit them too. At least for now. If some issues will occur, then you should solve them as they will go.

* Regarding "firebird.ppc64: W: name-repeated-in-summary Firebird" - easyfix.

* Regarding "firebird-classic.ppc64: W: obsolete-not-provided firebird-client-embedded" - please add "Provides: firebird-client-embedded" also.

* "firebird-superserver.ppc64: W: incoherent-init-script-name firebird" - should be ignored.

* "firebird-devel.ppc64: E: invalid-soname /usr/lib64/firebird/lib/libib_util.so
libib_util.so" - should be ignored

* "firebird-server-common.ppc64: E: zero-length /var/log/firebird/firebird.log" - should be ignored.


Ok, please comment this remaining rpmlint message:

* firebird-server-common.ppc64: E: non-readable /etc/firebird/security2.fdb 0660

And we'll move further.

Comment 54 Peter Lemenkov 2009-04-21 11:39:36 UTC
Thanks, Zarko!
Philippe, please, investigate this issue too:

https://bugzilla.redhat.com/show_bug.cgi?id=488100#c50

Comment 55 Peter Lemenkov 2009-04-21 13:16:40 UTC
Regarding build failure on F-11 - Philippe, please use "autoreconf -vfi" instead of your (probably buggy) handwritten "NOCONFIGURE=1 ./autogen.sh"

See build log with autoreconf:

http://koji.fedoraproject.org/koji/taskinfo?taskID=1311072

Comment 56 Philippe Makowski 2009-04-21 14:44:05 UTC
thanks for all reports, I'll take care of

for :
* firebird-server-common.ppc64: E: non-readable /etc/firebird/security2.fdb
0660

that's a security issue, only firebird may have rights on this file
it is the database where are stored all users (and their passsword) that can connect to Firebird databases.

Comment 57 Philippe Makowski 2009-04-21 17:49:23 UTC
All builds are ok

http://koji.fedoraproject.org/koji/taskinfo?taskID=1311836

http://ibphoenix.fr/fedora/firebird.spec
http://ibphoenix.fr/fedora/firebird-2.1.2.18118.0-2.fc10.src.rpm  
upgraded  

Seems that now rpmlint results are better
I shouldn't trust as much the previous work that was made ;)

Comment 58 Alexey Torkhov 2009-04-21 18:38:39 UTC
To benefit upstream the following bugs may be submitted:

* Bugs in configure. First, ppc64 case should be added to target switch in configure.in (as powerpc64-*-linux* or so). And proper libdir set there.

* Bug in autogen.sh. It relies on libtool message to get location of aclocal.m4. But in this case, in new libtool message that message somehow changed and pattern didn't handle that. Consider using of aclocal for this task (like autoreconf does).

Fixing this bugs upstream will benefit them. But this won't have influnce on review as workarounds were made in spec.

Comment 59 Peter Lemenkov 2009-04-22 04:17:20 UTC
(In reply to comment #57)
> All builds are ok
> 
> http://koji.fedoraproject.org/koji/taskinfo?taskID=1311836
> 
> http://ibphoenix.fr/fedora/firebird.spec
> http://ibphoenix.fr/fedora/firebird-2.1.2.18118.0-2.fc10.src.rpm  
> upgraded  
> 
> Seems that now rpmlint results are better
> I shouldn't trust as much the previous work that was made ;)  

Ok, we almost finished. But few issues still remains:

* Do not use grep while searching for users and grups. Although you're searching for already created user in a correct way, your attempt to check whether or not firebird group exists needs fixing.

See comments from Pavel, https://bugzilla.redhat.com/show_bug.cgi?id=488100#c17 and from Wart, https://bugzilla.redhat.com/show_bug.cgi?id=488100#c18 .

I suggest you to use getent group %{name} instead if grepping /etc/group.

- grep -q %{name} /etc/group || /usr/sbin/groupadd -r %{name} || true
+ getent group %{name} || /usr/sbin/groupadd -r %{name} || true

* I don't fully understand "|| true" at the end of oneliners for safe user/group creation. Are you assuming that there is a chance that user/group creation will fail? Should we simply abort installation in this case?

I'm waiting for scratchbuild at F-10 ( http://koji.fedoraproject.org/koji/taskinfo?taskID=1313853 ), but seems that trick with autoreconf works.

Comment 60 Philippe Makowski 2009-04-22 06:32:16 UTC
sorry I forget this one 

ok 
http://ibphoenix.fr/fedora/firebird.spec
upgraded  

http://ibphoenix.fr/fedora/firebird-2.1.2.18118.0-3.fc10.src.rpm  
available

Comment 61 Philippe Makowski 2009-04-22 08:34:19 UTC
(In reply to comment #58)
> To benefit upstream the following bugs may be submitted:
> 
> * Bugs in configure. First, ppc64 case should be added to target switch in
> configure.in (as powerpc64-*-linux* or so). And proper libdir set there.
> 
noted,
seems that I need to propose a patch for this to Firebird Project

> * Bug in autogen.sh. It relies on libtool message to get location of
> aclocal.m4. But in this case, in new libtool message that message somehow
> changed and pattern didn't handle that. Consider using of aclocal for this task
> (like autoreconf does).
> 
this one is done in the upstream
"according to Alex from Firebird admin team :
in Head autogen.sh have:
echo "Running autoreconf ..."
$AUTORECONF --install --force --verbose || exit 1

And some hacks to work around known bugs in old versions. This is in head. I 
do not backport it to release versions cause there are still troubles with 
some autoconf/libtoolize/automake combinations, but hope to solve and 
backport before 2.1.3."

Comment 62 Peter Lemenkov 2009-04-22 08:49:02 UTC
Before final review, I need to clarify one bureaucratic thing - who will be maintainer of this package - you, Philippe, or initial reporter, Jonathan?

There is an technical issue (another one nail into the bugzilla's coffin) - AFAIK only Jonathan can raise/clear flags in this ticket (because he is an reporter), not you, Philippe.

Comment 63 Philippe Makowski 2009-04-22 09:19:39 UTC
(In reply to comment #62)
> Before final review, I need to clarify one bureaucratic thing - who will be
> maintainer of this package - you, Philippe, or initial reporter, Jonathan?
> 
> There is an technical issue (another one nail into the bugzilla's coffin) -
> AFAIK only Jonathan can raise/clear flags in this ticket (because he is an
> reporter), not you, Philippe.  

As Jonathan wanted, I let him choose
I have no problem to become the maintainer if need.
but in that case, it seems that I needed to be sponsored for what I understand ?

Comment 64 Pavel Lisý 2009-04-22 12:05:31 UTC
Do you think about making packages for epel-4, epel-5 too? 

I've tried rebuilt your latest src.rpm in my mock environment (epel-4, epel-5 for i386 and x86_64) and it was successful.

Can I help with it, I will use it definitely.

Comment 65 Philippe Makowski 2009-04-22 12:28:39 UTC
(In reply to comment #64)
> Do you think about making packages for epel-4, epel-5 too? 
yes of course
 
> Can I help with it, I will use it definitely.  

any help appreciate, I don't know all the details and procedure to make it append

Comment 66 Peter Lemenkov 2009-04-22 12:44:18 UTC
REVIEW:

- rpmlint is not silent:

[petro@host-12-116 Desktop]$ rpmlint  firebird-*
firebird.i386: E: no-binary
firebird.i386: W: no-documentation
firebird-classic.i386: W: no-documentation
firebird-classic.i386: W: dangerous-command-in-%post ln
firebird-classic.i386: W: dangerous-command-in-%preun rm
firebird-devel.i386: E: invalid-soname /usr/lib/firebird/lib/libib_util.so libib_util.so
firebird-devel.i386: W: no-documentation
firebird-libfbclient.i386: W: no-documentation
firebird-libfbembed.i386: W: no-documentation
firebird-server-common.i386: W: no-documentation
firebird-server-common.i386: W: dangling-relative-symlink /usr/lib/firebird/bin/gsec ../tools/gsec
firebird-server-common.i386: W: non-standard-uid /etc/firebird/security2.fdb firebird
firebird-server-common.i386: W: non-standard-gid /etc/firebird/security2.fdb firebird
firebird-server-common.i386: E: non-readable /etc/firebird/security2.fdb 0660
firebird-server-common.i386: W: dangling-relative-symlink /usr/lib/firebird/bin/gpre ../tools/gpre
firebird-server-common.i386: W: dangling-relative-symlink /usr/lib/firebird/bin/changeDBAPassword.sh ../tools/changeDBAPassword.sh
firebird-server-common.i386: W: non-conffile-in-etc /etc/profile.d/firebird.csh
firebird-server-common.i386: W: non-standard-uid /var/log/firebird/firebird.log firebird
firebird-server-common.i386: W: non-standard-gid /var/log/firebird/firebird.log firebird
firebird-server-common.i386: E: zero-length /var/log/firebird/firebird.log
firebird-server-common.i386: W: dangling-relative-symlink /usr/lib/firebird/bin/gdef ../tools/gdef
firebird-server-common.i386: W: dangling-relative-symlink /usr/lib/firebird/bin/changeRunUser.sh ../tools/changeRunUser.sh
firebird-server-common.i386: W: non-standard-uid /usr/share/firebird/data firebird
firebird-server-common.i386: W: non-standard-gid /usr/share/firebird/data firebird
firebird-server-common.i386: W: non-conffile-in-etc /etc/profile.d/firebird.sh
firebird-server-common.i386: W: non-standard-uid /usr/share/firebird/backup firebird
firebird-server-common.i386: W: non-standard-gid /usr/share/firebird/backup firebird
firebird-server-common.i386: W: dangling-relative-symlink /usr/lib/firebird/bin/restoreRootRunUser.sh ../tools/restoreRootRunUser.sh
firebird-server-common.i386: W: non-standard-uid /usr/share/firebird firebird
firebird-server-common.i386: W: non-standard-gid /usr/share/firebird firebird
firebird-superserver.i386: W: no-documentation
firebird-superserver.i386: W: non-standard-uid /var/run/firebird firebird
firebird-superserver.i386: W: non-standard-gid /var/run/firebird firebird
firebird-superserver.i386: W: dangerous-command-in-%post ln
firebird-superserver.i386: W: dangerous-command-in-%preun rm
firebird-superserver.i386: W: incoherent-init-script-name firebird
9 packages and 0 specfiles checked; 4 errors, 32 warnings.
[petro@host-12-116 Desktop]$

I commented almost all of these messages, except two if them, named as "non-conffile-in-etc":

firebird-server-common.i386: W: non-conffile-in-etc /etc/profile.d/firebird.csh
firebird-server-common.i386: W: non-conffile-in-etc /etc/profile.d/firebird.sh

In order to suppress this messages, you should mark these two files as %config:

- %{_sysconfdir}/profile.d/firebird.csh
- %{_sysconfdir}/profile.d/firebird.sh
+ %config %{_sysconfdir}/profile.d/firebird.csh
+ %config %{_sysconfdir}/profile.d/firebird.sh

Easy to fix.

+ The package is named according to the Package Naming Guidelines.
+ The spec file name matches the base package %{name}, in the format %{name}.spec.

+/- The package meets the Packaging Guidelines, except %doc issues (see below).

+ The package is licensed with a Fedora approved license and meets the Licensing Guidelines.
+ The License field in the package spec file matches the actual license.

- The file, containing the text of the license(s) for the package MUST be included in %doc. Also there are other issues with doc-subpackage (see below).

+ The spec file is written in American English.
+ The spec file for the package is legible.
+ The sources used to build the package matches the upstream source, as provided in the spec URL. 

[petro@Sulaco SOURCES]$ md5sum Firebird-2.1.2.18118-0.tar.bz2*
063b3825a06d328f726b733fd74614b1  Firebird-2.1.2.18118-0.tar.bz2
063b3825a06d328f726b733fd74614b1  Firebird-2.1.2.18118-0.tar.bz2.1
[petro@Sulaco SOURCES]$

+ The package successfully compiles and builds into binary rpms on at least one primary architecture.

http://koji.fedoraproject.org/koji/taskinfo?taskID=1314169

+ All build dependencies are listed in BuildRequires.
+ Every sub-package which stores shared library files (not just symlinks) in any of the dynamic linker's default paths, is calling ldconfig in %post and %postun.

+/- A package owns all directories that it creates. Unfortunately, some sub-packages claims ownership of the same directories. For example, libfbclient and libfbembed both have "%dir %{fbroot}/lib". This should be fixed. I advice you to move some or even all common directories to metapackage firebird, which is currently empty.

- The package and its subpackages MUST not list a file more than once in the spec file's %files listings, unfortunately 

%dir %{fbroot}/tools-classic
%dir %{fbroot}/bin

listed twice in %files section of classic sub-package.

+ Permissions on files are set properly.
+ The package has a %clean section, which contains rm -rf %{buildroot} (or $RPM_BUILD_ROOT).
+ The package consistently use macros.
+ The package contains code, or permissable content.

+/- Large documentation files are in a -doc subpackage. But see below notes about %doc

+ Anything, the package includes as %doc, does not affect the runtime of the application.
+ Header files are in a -devel package.
+ No static libraries at all.
+ No pkgconfig(.pc) files.
+ The library files that end in .so (without suffix) are in a -devel package.

- In the vast majority of cases, devel packages must require the base package using a fully versioned dependency: Requires: %{name} = %{version}-%{release}, but firebird-devel requires only %{name} = %{version}. Please fix, or explain.

+ The package does NOT contain any .la libtool archives.
+ Not a GUI application.
+ The package does not own files or directories already owned by other packages. Except issues with sub-packages noted above.
+ At the beginning of %install, each package runs rm -rf %{buildroot} (or $RPM_BUILD_ROOT).
+ All filenames in rpm packages are valid UTF-8.

There is an issue with %doc. Firstly, you must include in every sub-package (except *-devel) doc/license/IDPL.txt and doc/license/README.license.usage.txt. Just add

%doc doc/license/IDPL.txt
%doc doc/license/README.license.usage.txt

Secondly, you shouldn't include %{_defaultdocdir}/%{name}/ and even create it in the %install section. Instead of this just include necessary files right in the %files section. E.g.

- mkdir -p %{buildroot}%{_defaultdocdir}/%{name}
- mv %{buildroot}%{fbroot}/README %{buildroot}%{_defaultdocdir}/%{name}/README
- mv %{buildroot}%{fbroot}/WhatsNew %{buildroot}%{_defaultdocdir}/%{name}/WhatsNew
- mv %{buildroot}%{fbroot}/examples/ %{buildroot}%{_defaultdocdir}/%{name}/examples/
- mv %{buildroot}%{fbroot}/doc/ %{buildroot}%{_defaultdocdir}/%{name}/
...
%files doc
%defattr(0644,root,root,0755)
- %doc %{_defaultdocdir}/%{name}/
+ %doc doc
+ %doc examples

%doc directive, if full path is omitted, looks at your ~/rpmbuild/BUILD/%{pkgname} directory, so feel free to add docs right from there.

Please properly fix oneliner at line 232.

Comment 67 Philippe Makowski 2009-04-22 13:08:06 UTC
(In reply to comment #66)

> There is an issue with %doc. Firstly, you must include in every sub-package
> (except *-devel) doc/license/IDPL.txt and doc/license/README.license.usage.txt.
> Just add
> 
> %doc doc/license/IDPL.txt
> %doc doc/license/README.license.usage.txt

Hum, interesting
it means that one file can be listed more than once ?

Comment 68 Peter Lemenkov 2009-04-22 13:27:46 UTC
(In reply to comment #67)
> (In reply to comment #66)
> > %doc doc/license/IDPL.txt
> > %doc doc/license/README.license.usage.txt
> 
> Hum, interesting
> it means that one file can be listed more than once ?  

Nope. Files listed as %doc are handled slightly different that other files.

For example, if you add the following line

 %doc doc/license/IDPL.txt

into %files section of subpackages "bar1" and "bar2" of package "foo" then rpmbuild will search for ~/rpmbuild/BUILD/%{pkgname}/doc/license/IDPL.txt and will place it as

/usr/share/doc/foo-bar1-%{version}/IDPL.txt

in the subpackage foo-bar1

and as

/usr/share/doc/foo-bar2-%{version}/IDPL.txt

in the subpackage foo-bar2.

These files have different paths, so they are different.

Comment 69 Philippe Makowski 2009-04-22 15:10:59 UTC
just a note, in fact I made serious Q/A test on all that, and found on major issue
a major re work is needed

Comment 70 Peter Lemenkov 2009-04-22 15:49:16 UTC
(In reply to comment #69)
> just a note, in fact I made serious Q/A test on all that, and found on major
> issue
> a major re work is needed  

Good. It's better to find it now, than later :)

Comment 71 MERCIER Jonathan 2009-04-22 22:48:37 UTC
Makowski can be the maintainer

Comment 72 Philippe Makowski 2009-04-23 23:15:18 UTC
Please can you check this :

http://ibphoenix.fr/fedora/firebird.spec
http://ibphoenix.fr/fedora/firebird-2.1.2.18118.0-4.fc10.src.rpm 

Waiting for scratchbuild at F-10 (may be I broke ppc64) :
http://koji.fedoraproject.org/koji/taskinfo?taskID=1318031

There are some rpmlint Errors and Warning I'm not sure


Thanks

Comment 73 Philippe Makowski 2009-04-24 10:41:30 UTC
Found my mistake, I'll post new files in few hours
rpmlint : 9 packages and 0 specfiles checked; 4 errors, 23 warnings.
not so bad ;)

Comment 75 Peter Lemenkov 2009-04-30 09:17:38 UTC
Sorry for the delay. 

Still there are some issues with directories owning:

* devel sub-package should own %{fbroot}/include/
* libfbclient and libfbembed both owns %{fbroot}/lib and they both can be installed.
* server-common sub-package should own %{_localstatedir}/log/%{name}
* server-common sub-package should own %{fbroot}/intl
* server-common sub-package should own %{_sysconfdir}/%{name}

Other things looks sane.

Comment 76 Philippe Makowski 2009-04-30 12:47:27 UTC
(In reply to comment #75)
> * devel sub-package should own %{fbroot}/include/
> * server-common sub-package should own %{_localstatedir}/log/%{name}
> * server-common sub-package should own %{fbroot}/intl
> * server-common sub-package should own %{_sysconfdir}/%{name}
> 
ok easy to fix

but this one :
> * libfbclient and libfbembed both owns %{fbroot}/lib and they both can be
> installed.
I don't know how to fix the fact that both use %{fbroot}/lib

Comment 77 Philippe Makowski 2009-04-30 15:58:49 UTC
One question :
for defaut directory to store data (databases files)
is it better to use
 %{_localstatedir}/lib/%{name}/data/ 
or %{_datadir}/%{name}/data/

with %attr(0770,%{name},%{name})

Comment 79 Peter Lemenkov 2009-05-02 11:08:11 UTC
(In reply to comment #78)
> Please check :
> 
> http://ibphoenix.fr/fedora/firebird.spec
> http://ibphoenix.fr/fedora/firebird-2.1.2.18118.0-5.fc10.src.rpm  

I did - simple removal of directory from one sub-package isn't acceptable. I propose you to create another one sub-package - firebird-filesystem, which will contain all (or almost all) firebird directories and nothing else. All other sub-packages should require this one.

Here is a list of all owned directories, listed in spec.

$ grep ^%dir firebird.spec | sed s/" %attr(.*)"//g|sort
%dir %{fbroot}
%dir %{fbroot}/bin-classic
%dir %{fbroot}/bin-superserver
%dir %{fbroot}/include
%dir %{fbroot}/intl
%dir %{fbroot}/lib
%dir %{fbroot}/UDF-classic
%dir %{fbroot}/UDF-superserver
%dir %{_localstatedir}/lib/%{name}
%dir %{_localstatedir}/lib/%{name}/data
%dir %{_localstatedir}/log/%{name}
%dir %{_sysconfdir}/%{name}
%dir %{_var}/run/%{name}
$

However we should not set all directories ownership to this sub-package. I think that we may limit directory ownership of filesystem-subpackage by %{fbroot} (since every sub-package depends on it) and %{fbroot}/lib (since it doesn't harm anyone).

Comment 80 Philippe Makowski 2009-05-02 13:18:33 UTC
> However we should not set all directories ownership to this sub-package. I
> think that we may limit directory ownership of filesystem-subpackage by
> %{fbroot} (since every sub-package depends on it) and %{fbroot}/lib (since it
> doesn't harm anyone).  

I don't understand what you wanted to solve doing that
In fact %{fbroot}/lib is need for server-common, libfbembed and libfbclient

but ok, let see if you agree with this :

%package		filesystem
Summary:		Filesystem for Firebird SQL RDBMS
Group:			Applications/Databases

%description	filesystem
This is the Firebird SQL Database root file system.

%files	filesystem
%dir %attr(0755,%{name},%{name}) %{fbroot}
%dir %{fbroot}/lib

and add Requires: %{name}-filesystem
to server-common, libfbembed and libfbclient

would it be ok ?

Comment 81 Philippe Makowski 2009-05-02 13:21:44 UTC
Created attachment 342172 [details]
spec with filesystem-subpackage

for checking

Comment 82 Philippe Makowski 2009-05-02 18:53:42 UTC
Finaly I made filesystem-subpackage and move all that was in common into firebird

see: 
http://koji.fedoraproject.org/koji/taskinfo?taskID=1333348

http://ibphoenix.fr/fedora/firebird.spec
http://ibphoenix.fr/fedora/firebird-2.1.2.18118.0-6.fc10.src.rpm

Comment 83 Peter Lemenkov 2009-05-03 10:23:46 UTC
Ok, I don't see other serious issues so far. So, please tell me - who will be a primary maintainer of Firebird? You, Philippe, or Jonathan? Since my fedora account was upgraded recently, I can sponsor you, so this is not a problem.

Comment 84 Philippe Makowski 2009-05-03 11:06:17 UTC
(In reply to comment #83)
> Ok, I don't see other serious issues so far. 
Thanks,
I appreciate your help

> So, please tell me - who will be a
> primary maintainer of Firebird? You, Philippe, or Jonathan? Since my fedora
> account was upgraded recently, I can sponsor you, so this is not a problem.  

since Jonathan said that I can be the one (https://bugzilla.redhat.com/show_bug.cgi?id=488100#c71), I'll be

Comment 85 Peter Lemenkov 2009-05-03 11:26:29 UTC
(In reply to comment #84)
> (In reply to comment #83)
> > Ok, I don't see other serious issues so far. 
> Thanks,
> I appreciate your help
> 
> > So, please tell me - who will be a
> > primary maintainer of Firebird? You, Philippe, or Jonathan? Since my fedora
> > account was upgraded recently, I can sponsor you, so this is not a problem.  
> 
> since Jonathan said that I can be the one
> (https://bugzilla.redhat.com/show_bug.cgi?id=488100#c71), I'll be  

Ok, then you should

* Open another ticket for firebird review
* Mark this one as duplicate of your new ticket.

And then I'll approve it.

You should start with filling this form:

https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora&format=extras-review

Comment 86 Philippe Makowski 2009-05-03 11:43:12 UTC
ok 498790 created

Jonathan, please mark this one (488100) as duplicate of 498790

thanks

Comment 87 Peter Lemenkov 2009-05-03 11:55:43 UTC

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

Comment 88 MERCIER Jonathan 2009-05-04 23:16:31 UTC
sorry for the wait ...