pesarif wrote: >Hi. > >I just read some bits and pieces from an open-book called "Maximum RPM". It >mentions that to build an RPM from .tar.gz source, you need to have a section >called "%files" in the .spec file and that this must list _all_ the files >that will be installed on the user's system. The book is a little dated, so >is this still true? > I don't know much about that book but I have been building my own RPMs for over a year now and I still don't know everything that goes into it. What I did to learn in the beginning was look into the "spec" file of successful custom RPMs (they usually were "mdk" packages). I would compare the spec file from a regular (non-mdk) RPM and a "mdk" RPM. I noticed that besides occasional directory changes, Mandrake uses "bzip" tarballs and not "tar.gz" or "tgz" tarballs. Another change is that Mandrake prefers to "patch" up the current version tarball. As far as your quesion regarding having "%files lists _all_ your files, you are reading too much into this. You know how when you uncompress tarballs and they open up with their own directory with files in each directory? Well that is basically what you are doing, you list these newley created directories for where all the files will be located. I will give you an example: (We will make a package for a file called "IPTalk". We are going to skip down to the %file portion of the package)
%files %defattr (-,root,root) %/usr/bin/iptalk %attr (755,root,root) %/usr/lib/iptalk/* %doc doc/CREDITS NEWS COPYING AUTHORS doc/FAQ README ChangeLog %/usr/share/*/*/* %/usr/share/pixmaps/iptalk.xpm %/usr/share/gnome/apps/Internet/iptalk.desktop %files applet %defattr (-,root,root) %/usr/bin/iptalk %attr (755,root,root) %/usr/bin/iptalk_applet %doc doc/CREDITS NEWS COPYING AUTHORS doc/FAQ README ChangeLog %/usr/lib/iptalk/* %/usr/share/locale/*/*/* %/usr/share/pixmaps/iptalk.xpm %/usr/share/pixmaps/iptalk/* %/usr/share/gnome/apps/Internet/iptalk.desktop %/etc/iptalk/* That is all I had to list for my iptalk (fictional program using gnome gtk). > > >I mean, if I'm compiling something big like KDE (not from SRPMS), it's kind >of impractical to know what all the %files will be. So does anyone have any >ideas on how to approach this problem? Otherwise building RPMs (using >customised source) will be a nightmare :( > See above example. > >Secondly, I noticed in a number of posts that people have mentioned that i686 >(Pentium II) packages will run on a Pentium (i586). If gcc does >processor-specific optimisations (e.g. use of new instructions), then how >could i686 packages possible run on i586? > Generic kernel compile for "i486/i586/i686". Specify for Pentium II or Pentium 4 and then you you will have a program that will more then likely be processor specific, especially if you use your program for multimedia applications. > >Thanks in advance >pesarif > > > >------------------------------------------------------------------------ > >Want to buy your Pack or Services from MandrakeSoft? >Go to http://www.mandrakestore.com >
Want to buy your Pack or Services from MandrakeSoft? Go to http://www.mandrakestore.com
