Re: FreeTDS

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



You said that FC3 "comes" with unixODBC.
In fact, I did a clean install, and it does not.
I was in the need to install it manually.


Michael Schwendt schrieb:

On Fri, 17 Dec 2004 20:33:00 +0100, Stefan Sonnenberg-Carstens wrote:



I got rpms compiled under FC3.
They are available under

http://www.coolspot.de/fedora-devel/

Test them, please.



The src.rpm fails to build on FC3. Try to clean up your installation to find missing build dependencies:

 http://fedoraproject.org/wiki/HOWTOFindMissingBuildRequires


Other packaging mistakes after a brief look. In random order:

* Main package must not contain files %_libdir/*.so
  All these belong into the -devel package. Same applies to the
  -unixodbc sub package. It must not include %_libdir/*.so either.
  These files are needed at build-time only.


* rpmlint reports a few relevant things:

E: freetds summary-too-long FreeTDS is a free re-implementation of the TDS (Tabular DataStream) protocol that is used by Sybase and Microsoft for their database products.

=> better:  A free re-implementation of the TDS protocol

Everything longer than ~70 characters ought to be put into the
package description.


W: freetds no-url-tag

=> You've put that into "Vendor:" field instead. Change that into
   "URL: http://www.freetds.org"; -- the vendor is the package vendor
   and usually will be substituted by a build system automatically.


E: freetds no-signature

=> minor issue for a test package - you didn't sign it with
   your GPG key


W: freetds strange-permission freetds.spec 0664

=> also unimportant, but a user who would extract the file into
   /tmp would end up with a group-writable file


W: freetds obsolete-tag Copyright

=> should be "License: LGPL" not "Copyright: LGPL"




%define	name	freetds
%define	version	0.62.4

Name: %{name} Version: %{version}


That construct is redundant. The %name and %version macros are defined by "Name:" and "Version:" already.




%package devel Requires: freetds = %{version}



Better would be:

 Requires: freetds = %{version}-%release

Why? Imagine you apply a patch which patches the header files or other
files in the -devel package or which fixes a bug in the main package.
You want main package release and -devel package release to stay in
sync. "yum update freetds-devel" should pull in the updated "freetds"
main package, too.




%post /sbin/ldconfig


Better:

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

Why? It adds an automatic dependency on /sbin/ldconfig and updates the
run-time linker cache also after package un-installation, when the
freetds libraries are gone. Your %post script would be executed in
/bin/sh.




%configure --with-tdsver=4.2 --prefix=/usr --with-unixodbc=/usr/ --sysconfdir=%{_sysconfdir}



The %configure macro sets --prefix=%_prefix and --syconfdir=%_sysconfdir already. You can trim the line a bit. :)




%doc AUTHORS BUGS COPYING ChangeLog INSTALL NEWS README TODO


COPYING is GPL, which is not what's specified in "License:" field. File COPYING.LIB would be the LGPL and should be included. The INSTALL file contains generic instructions, which are irrelevant to the package user.




%{_libdir}/libct.so*



Files with such non-unique names will likely cause conflicts in %_libdir in the future, when more and more packages share that directory and more projects use similar short names. This topic will come back in the near future as it will be necessary more often to install such libraries into %_libdir/%name/ and add that path to the run-time linker's search path list.

Same with regard to some of the header names in %_includedir:



-rw-r--r-- root root 3036 /usr/include/bkpublic.h
-rw-r--r-- root root 22514 /usr/include/cspublic.h
-rw-r--r-- root root 1251 /usr/include/cstypes.h
-rw-r--r-- root root 4492 /usr/include/ctpublic.h
-rw-r--r-- root root 2207 /usr/include/dblib.h
-rw-r--r-- root root 1096 /usr/include/sqldb.h
-rw-r--r-- root root 1119 /usr/include/sqlfront.h






%package unixodbc
Requires: freetds = %{version}, unixODBC >= 2.2.9



Fedora Core 3 includes unixODBC 2.2.9, the dependency on libodbcinst.so.1 is automatic, so the explicit dependency on a package called unixODBC doesn't add any value. Be careful with "explicit Requires". If Fedora Core 4 moved libodbcinst.so.1 into a package with a different name, this dependency would break.

With regard to the freetds dependency, same as above.





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux