On Sat, 6 Sep 2003, Olivier Blin wrote:

> >   Hello,
> > 
> > I'm trying to make this famous rpm (kwifimanager) ;)
> 
> Hi,
> 
> Nice try :)
> 
> > I have a little problem with ... libtool: unrecognized option
> > `--tag=CXX'
> 
> Sorry, I can't help here.

IIRC, easiest workaround is:
%define _libtoolize /bin/true

> But i'll say a few things about your spec.
> 
> > Summary:    Software suite to control wireless LAN cards
> > Name:               kwifimanager
> > Version:    1.0.2
> > Release:    1mdk
> > Copyright:  GPL



> > Group:              System
> > Source:     
> > ftp://download.sourceforge.net/pub/sourceforge/kwifimanager/kwifimanager.tar.gz
> > URL:                http://sourceforge.net/projects/kwifimanager
> > Packager:   Florent BERANGER <[EMAIL PROTECTED]>
> 
> You don't need to put a packager tag, rpm will the one in your
> ~/.rpmmacros.
> 
> > BuildRoot:  %{_tmppath}/%{name}-%{version}-%{release}-buildroot
> > Requires:   libkdebase4-devel
> 
> libkdebase4-devel isn't required by the package (end-users don't need
> it), but is required to build the package, so it should be a
> BuildRequires.
> BuildRequires:        libkdebase4-devel

It's better to use API-independant buildrequires, and also where the 
required packages provide sane non-lib-devel virtuals to use them (ie this 
package won't work as intended on 9.1 when kdebase wasn't libified, and 
will take more work on RH etc). Rather use:
BuildRequires:  kdebase-devel

> 
> > %description
> > With the applications in the package you can monitor your wireless
> > LAN cards and modify their configuration. The package contains a
> > stand-alone application, a kicker applet and a control-center module
> > for KDE.
> > 
> > %prep
> > %setup
> > #INSTDIR=`kde-config --prefix`
> > 
> > %build
> > #INSTDIR=`kde-config --prefix`
> > #--prefix=/tmp/kwifimanager/$INSTDIR
> 
> Nice to have dropped this, I saw it in the original spec file ;)
> 
> > %configure
> > %make
> > 
> > %install
> > %makeinstall
> > 
> > %post
> > if [ -d /usr/share/applnk-mdk ]; then ln -s `kde-config 
> > --prefix`/share/applnk/Settings/Network/kwifimanager_kcmodule.desktop 
> > /usr/share/applnk-mdk/Configuration/KDE/Network/kwifimanager_kcmodule
> > .desktop; fi
> 
> Please don't use directly .desktop files in /usr/share/applnk-mdk.
> It would be better to use Mandrake's menu system.
> Here's what I used in one of my packages.
> It's quite easy to understand :)
> 
> mkdir -p $RPM_BUILD_ROOT%{_menudir}
> cat > $RPM_BUILD_ROOT%{_menudir}/%{name} << EOF
> ?package(%{name}): command="%{name}" icon="%{name}.png"
> section="Amusement/Arcade" title="Neverball" longtitle="Tilt the floor
> to roll the ball" needs="x11" EOF

Also, kdedesktop2mdkmenu.pl can be used to convert the original .desktop 
file to a Mandrake menu file. And you should ensure that you have the 3 
icons (%{_iconsdir}/%{name}.png, %{_liconsdir}/%{name.png}, 
%{_miconsdir}/%{name.png}).

> 
> Then add %{_menudir}/%{name} in %files section.

And remember to add %update_menus in %post, and %clean_menus in %postun.

> 
> > %files
> > %{_libdir}/libkwifimanager_kickerapplet.la
> > %{_libdir}/libkwifimanager_kickerapplet.so.1.0.0
> > %{_libdir}/libkwifimanager_kickerapplet.so.1
> > %{_libdir}/libkwifimanager_kickerapplet.so
> > %{_prefix}/share/apps/kicker/applets/kwifimanager_kickerapplet.desktop
> 
> Use %{_datadir} intead of %{_prefix}/share
> 
> > %{_libdir}/libkcm_kwifimanager_kcmodule.la
> 
> Shouldn't this be in a -devel package ?
> 
> > %{_libdir}/libkcm_kwifimanager_kcmodule.so.1.0.0
> > %{_libdir}/libkcm_kwifimanager_kcmodule.so.1
> > %{_libdir}/libkcm_kwifimanager_kcmodule.so
> > %{_prefix}/share/applnk/Settings/Network/kwifimanager_kcmodule.desktop
> > %{_prefix}/share/apps/kwifimanager/locations/DE_BW_Karlsruhe_Universi
> > ty.loc%{_prefix}/share/apps/kwifimanager/locations/NOWHERE.loc
> > %{_bindir}/kwifimanager
> > %{_prefix}/share/applnk/Applications/kwifimanager.desktop
> > %{_prefix}/share/icons/locolor/32x32/apps/kwifimanager.png
> > %{_prefix}/share/icons/locolor/16x16/apps/kwifimanager.png
> > %{_prefix}/share/apps/kwifimanager/pics/ad_hoc.png
> > %{_prefix}/share/apps/kwifimanager/pics/all_alone.png
> > %{_prefix}/share/apps/kwifimanager/pics/ap_connect.png
> > %{_prefix}/share/apps/kwifimanager/pics/excellent.png
> > %{_prefix}/share/apps/kwifimanager/pics/good.png
> > %{_prefix}/share/apps/kwifimanager/pics/marginal.png
> > %{_prefix}/share/apps/kwifimanager/pics/no_card.png
> > %{_prefix}/share/apps/kwifimanager/pics/offline.png
> > %{_prefix}/share/apps/kwifimanager/pics/oor_down.png
> > %{_prefix}/share/apps/kwifimanager/pics/oor_minimum.png

Instead of specifying every file in %_datadir/apps/%name individually, you 
may want to just
%{_datadir}/apps/%{name}

Which will also ensure you own the directory (which you may not as you 
have it now, and is sure to generate you some spam ;-).

Usually, and directory that has the name of the package should be owned by 
the package, and in many cases (except in the case of subpackages owning 
different files) it is safe to just list such directories (and not the 
files in them) in %files.

> > %{_prefix}/share/locale/de/LC_MESSAGES/kwifimanager.mo
> 
> For localized files, use this :
> %lang(de) %{_datadir}/locale/de/LC_MESSAGES/kwifimanager.mo
> 
> > %{_prefix}/share/locale/fr/LC_MESSAGES/kwifimanager.mo
> 
> %lang(fr) %{_datadir}/locale/fr/LC_MESSAGES/kwifimanager.mo
> 
> > %{_prefix}/share/locale/ja/LC_MESSAGES/kwifimanager.mo
> > %{_prefix}/share/locale/it/LC_MESSAGES/kwifimanager.mo
> 
> and so on ...

And once you have about 4 or 5, it's easier to do:

%find_lang %name
in %install, and then instead of 
%files
use
%files -f %name.lang


> 
> > %{_prefix}/share/doc/HTML/en/kwifimanager/index.docbook
> > %{_prefix}/share/doc/HTML/en/kwifimanager/index.cache.bz2
> > 
> > 
> > * Sat Sep 6 2003 Florent BERANGER <[EMAIL PROTECTED]>
> > 1.0.2-1mdk- Specfile adaptations for Mandrake
> > 
> 
> I hope this helps, I'll be glad to upload this on contrib when it's
> fixed.

BTW, a lot of these issues are covered in the Wiki, if some things are not 
covered, or need better explaining, let us know, or make the mods to the 
Wiki.

Maybe on the Wiki, we need a checklist, or list of common mistakes, or 
maybe a list of common tricks/workarounds?

Regards,
Buchan

-- 
|----------------Registered Linux User #182071-----------------|
Buchan Milne                Mechanical Engineer, Network Manager
Cellphone * Work            +27 82 472 2231 * +27 21 8828820x121
Stellenbosch Automotive Engineering         http://www.cae.co.za
GPG Key                   http://ranger.dnsalias.com/bgmilne.asc
1024D/60D204A7 2919 E232 5610 A038 87B1 72D6 AC92 BA50 60D2 04A7
*****************************************************************
Please click on http://www.cae.co.za/disclaimer.htm to read our
e-mail disclaimer or send an e-mail to [EMAIL PROTECTED] for a copy.
*****************************************************************

Reply via email to