FreeTDS

Stefan Sonnenberg-Carstens ssc at coolspot.de
Mon Dec 20 10:06:59 UTC 2004


Michael Schwendt wrote:

>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.
>
>  
>
Thanks for your reply.
I'll upload changed files as soon as I got them ready.

Cheers,
Stefan




More information about the fedora-devel-list mailing list