FreeTDS
Stefan Sonnenberg-Carstens
ssc at coolspot.de
Mon Dec 20 11:51:22 UTC 2004
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.
>
>
>
More information about the fedora-devel-list
mailing list