David Walluck a écrit :

> Hi. Where can I find the latest requirements for Mandrake RPM spec files,
> or are these internal documents only? For example, how do I add a menu
> entry, is %{_prefix} and %{_tmppath} now required?

this  are internal documents !  i attach some files which can help you find
your way
in building Mandrake packages ;-)

>
> Also, I think I saw Network/IRC as a new group? irssi isn't in this group,
> and the version is quite old.

what version of irssi ?? the one  i uploaded is in Networking/IRC . Anyway ,
i check and
fix this !


--
                                  /\
 ------------------------------^^/°°\^^--------------------------
| Daouda LO                        email:[EMAIL PROTECTED] |
| MandrakeSoft SA                                                |
| working on KDE-Gnome interoperability.                         |
 ----------------------------------------------------------------


System/Servers: cleanfeed
System/Servers: mcserv
System/Servers: ucd-snmp
System/Servers: xntp3
System/Servers: portmap
System/Servers: auth_ldap
System/Servers: at
System/Servers: sympa
System/Servers: sendmail
System/Servers: sendmail-doc
System/Servers: apache
System/Servers: mod_perl
System/Servers: mod_php3
System/Servers: mod_php3-imap
System/Servers: mod_php3-manual
System/Servers: mod_php3-pgsql
System/Servers: apache-suexec
System/Servers: anacron
System/Servers: anonftp
System/Servers: apmd
System/Servers: bind
System/Servers: finger
System/Servers: nscd
System/Servers: gpm
System/Servers: imap
System/Servers: inn
System/Servers: intimed
System/Servers: mars-nwe
System/Servers: openldap
System/Servers: pidentd
System/Servers: rsh
System/Servers: rwall
System/Servers: samba
System/Servers: samba-common
System/Servers: squid
System/Servers: telnet-server
System/Servers: tftp
System/Servers: rdate
System/Servers: vnc-server
System/Servers: ypserv
System/Servers: vixie-cron
System/Servers: wu-ftpd
System/Servers: ypbind
System/Servers: dhcpcd
System/Servers: dhcp
System/Servers: esound
System/Servers: gated
System/Servers: ppp
System/Servers: routed
System/Servers: bootparamd
System/Servers: lpr
System/Servers: postfix
System/Servers: tcp_wrappers
System/Servers: timed
System/Kernel and hardware: ipchains
System/Kernel and hardware: irda-utils
System/Kernel and hardware: sane
System/Kernel and hardware: ext2ed
System/Kernel and hardware: mkbootdisk
System/Kernel and hardware: mkinitrd
System/Kernel and hardware: genromfs
System/Kernel and hardware: hdparm
System/Kernel and hardware: am-utils
System/Kernel and hardware: usbview
System/Kernel and hardware: raidtools
System/Kernel and hardware: fdutils
System/Kernel and hardware: fbset
System/Kernel and hardware: autofs
System/Kernel and hardware: dev
System/Kernel and hardware: isdn4net
System/Kernel and hardware: eject
System/Kernel and hardware: gatos
System/Kernel and hardware: bdflush
System/Kernel and hardware: imwheel
System/Kernel and hardware: e2fsprogs
System/Kernel and hardware: bonnie
System/Kernel and hardware: bdflush-lowmem
System/Kernel and hardware: awesfx
System/Kernel and hardware: MAKEDEV
System/Kernel and hardware: grub
System/Kernel and hardware: lilo
System/Kernel and hardware: chos
System/Kernel and hardware: sysklogd
System/Kernel and hardware: modutils
System/Kernel and hardware: adjtimex
System/Kernel and hardware: kernel
System/Kernel and hardware: kernel-fb
System/Kernel and hardware: kernel-ibcs
System/Kernel and hardware: kernel-linus
System/Kernel and hardware: kernel-pcmcia-cs
System/Kernel and hardware: kernel-secure
System/Kernel and hardware: kernel-smp
System/Kernel and hardware: kernel-utils
System/Kernel and hardware: pciutils
System/Libraries: Glide_V2
System/Libraries: Glide_V3
System/Libraries: pwdb
System/Libraries: pam
System/Libraries: pam_ldap
System/Libraries: popt
System/Libraries: Mesa
System/Libraries: Mesa-demos
System/Libraries: newt
System/Libraries: utempter
System/Libraries: MySQL_GPL-shared-libs
System/Libraries: mpeg_lib
System/Libraries: dialog
System/Libraries: nss_ldap
System/Libraries: ncurses
System/Libraries: termcap
System/Libraries: ORBit
System/Libraries: aalib
System/Libraries: audiofile
System/Libraries: gtkglarea
System/Libraries: gdbm
System/Libraries: bonobo
System/Libraries: cracklib
System/Libraries: cracklib-dicts
System/Libraries: detect
System/Libraries: blt
System/Libraries: fnlib
System/Libraries: freetype
System/Libraries: fribidi
System/Libraries: gd
System/Libraries: gd-utils
System/Libraries: gdk-pixbuf
System/Libraries: glib
System/Libraries: glibc
System/Libraries: gmp
System/Libraries: gsl
System/Libraries: gtk+
System/Libraries: gtk-engines
System/Libraries: imlib
System/Libraries: imlib-cfgeditor
System/Libraries: libtermcap
System/Libraries: libtiff
System/Libraries: libtool
System/Libraries: libungif
System/Libraries: libungif-progs
System/Libraries: libunicode
System/Libraries: libxml
System/Libraries: readline
System/Libraries: slang
System/Libraries: svgalib
System/Libraries: tix
System/Libraries: tk
System/Libraries: expect
System/Libraries: itcl
System/Libraries: tcl
System/Libraries: tclx
System/Libraries: xpm
System/Libraries: qt2
System/Libraries: qt-qgl
System/Libraries: qt-qimgio
System/Libraries: qt
System/Libraries: zlib
System/Libraries: pythonlib
System/Libraries: t1lib
System/Libraries: compat-glibc
System/Libraries: compat-libs
System/Libraries: gcc-libgcj
System/Libraries: gettext
System/Libraries: gimp-libgimp
System/Libraries: gnome-libs
System/Libraries: gnome-objc
System/Libraries: gnome-print
System/Libraries: kdelibs
System/Libraries: kdesupport
System/Libraries: libc
System/Libraries: libelf
System/Libraries: libghttp
System/Libraries: libglade
System/Libraries: libgr
System/Libraries: libgr-progs
System/Libraries: libgtop
System/Libraries: libjpeg
System/Libraries: libmikmod
System/Libraries: libnet
System/Libraries: libpcap
System/Libraries: libpng
System/Libraries: libPropList
System/Libraries: libsafe
System/Libraries: libstdc++
System/Libraries: libstdc++-compat
System/Libraries: libtabe
System/Libraries: Xaw3d
System/XFree86: xinitrc
System/XFree86: X11R6-contrib
System/XFree86: XFree86
System/XFree86: XFree86-3dfx
System/XFree86: XFree86-3DLabs
System/XFree86: XFree86-8514
System/XFree86: XFree86-AGX
System/XFree86: XFree86-cyrillic-fonts
System/XFree86: XFree86-devel
System/XFree86: XFree86-FBDev
System/XFree86: XFree86-I128
System/XFree86: XFree86-libs
System/XFree86: XFree86-Mach32
System/XFree86: XFree86-Mach64
System/XFree86: XFree86-Mach8
System/XFree86: XFree86-Mono
System/XFree86: XFree86-P9000
System/XFree86: XFree86-Rage128
System/XFree86: XFree86-S3
System/XFree86: XFree86-S3V
System/XFree86: XFree86-SVGA
System/XFree86: XFree86-VGA16
System/XFree86: XFree86-W32
System/XFree86: XFree86-xfs
System/XFree86: XFree86-Xnest
System/XFree86: XFree86-Xvfb
System/XFree86: xinput
System/Fonts/True type: fonts-ttf-big5
System/Fonts/True type: fonts-ttf-decoratives
System/Fonts/True type: fonts-ttf-gb2312
System/Fonts/True type: fonts-ttf-japanese
System/Fonts/True type: fonts-ttf-korean
System/Fonts/True type: fonts-ttf-west_european
System/Fonts/Type1: urw-fonts
System/Fonts/Type1: XFree86-ISO8859-2-Type1-fonts
System/Fonts/Type1: ghostscript-fonts
System/Fonts/X11 bitmap: XFree86-ISO8859-2-100dpi-fonts
System/Fonts/X11 bitmap: XFree86-ISO8859-2
System/Fonts/X11 bitmap: XFree86-ISO8859-2-75dpi-fonts
System/Fonts/X11 bitmap: XFree86-ISO8859-9-100dpi-fonts
System/Fonts/X11 bitmap: XFree86-75dpi-fonts
System/Fonts/X11 bitmap: XFree86-100dpi-fonts
System/Fonts/X11 bitmap: XFree86-ISO8859-9
System/Fonts/X11 bitmap: XFree86-ISO8859-9-75dpi-fonts
System/Base: filesystem
System/Base: mingetty
System/Base: getty_ps
System/Base: man
System/Base: info
System/Base: indexhtml
System/Base: rootfiles
System/Base: shadow-utils
System/Base: sh-utils
System/Base: util-linux
System/Base: mount
System/Base: msec
System/Base: etcskel
System/Base: basesystem
System/Base: ldconfig
System/Base: ld.so
System/Base: initscripts
System/Base: netkit-base
System/Base: passwd
System/Configuration/Hardware: kapm
System/Configuration/Hardware: lothar
System/Configuration/Hardware: lothar-etherconfig
System/Configuration/Hardware: lothar-soundconfig
System/Configuration/Hardware: XFree86-XF86Setup
System/Configuration/Hardware: kudzu
System/Configuration/Hardware: kdpms
System/Configuration/Hardware: isapnptools
System/Configuration/Hardware: setserial
System/Configuration/Hardware: mouseconfig
System/Configuration/Hardware: kvideogen
System/Configuration/Hardware: Xconfigurator
System/Configuration/Hardware: kcmclock
System/Configuration/Hardware: sndconfig
System/Configuration/Packaging: grpmi
System/Configuration/Packaging: gurpmi
System/Configuration/Packaging: kpackage
System/Configuration/Packaging: MandrakeUpdate
System/Configuration/Packaging: rpmtools
System/Configuration/Packaging: urpmi
System/Configuration/Packaging: rpm
System/Configuration/Packaging: rpmdrake
System/Configuration/Packaging: gnorpm
System/Configuration/Networking: mailcap
System/Configuration/Networking: pws
System/Configuration/Networking: net-tools
System/Configuration/Networking: usernet
System/Configuration/Networking: pump
System/Configuration/Networking: yp-tools
System/Configuration/Networking: netcfg
System/Configuration/Networking: gfcc
System/Configuration/Networking: fetchmailconf
System/Configuration/Networking: ipxutils
System/Configuration/Networking: dhcp-client
System/Configuration/Networking: sendmail-cf
System/Configuration/Networking: isdn4k-utils
System/Configuration/Networking: caching-nameserver
System/Configuration/Networking: authconfig
System/Configuration/Networking: shapecfg
System/Configuration/Networking: losetup
System/Configuration/Printing: mpage
System/Configuration/Printing: ppa
System/Configuration/Printing: rhs-printfilters
System/Configuration/Printing: printtool
System/Configuration/Printing: tunelp
System/Configuration/Boot and Init: SysVinit
System/Configuration/Boot and Init: linux_logo
System/Configuration/Boot and Init: ntsysv
System/Configuration/Boot and Init: chos-vchos
System/Configuration/Boot and Init: chkconfig
System/Configuration/Boot and Init: chkfontpath
System/Configuration/Boot and Init: klilo
System/Configuration/Boot and Init: tksysv
System/Configuration/Boot and Init: rhmask
System/Configuration/Other: quota
System/Configuration/Other: usermode
System/Configuration/Other: gnome-admin
System/Configuration/Other: gnome-linuxconf
System/Configuration/Other: xtoolwait
System/Configuration/Other: drakxtools
System/Configuration/Other: numlock
System/Configuration/Other: control-panel
System/Configuration/Other: crontabs
System/Configuration/Other: mandrake_desk
System/Configuration/Other: mandrake-release
System/Configuration/Other: linuxconf
System/Configuration/Other: kdeadmin
System/Configuration/Other: DrakConf
System/Configuration/Other: kbdconfig
System/Configuration/Other: kcmkdesu
System/Configuration/Other: setup
System/Configuration/Other: setuptool
System/Configuration/Other: timeconfig
System/Configuration/Other: timetool
System/Internationalization: hxa+cv
System/Internationalization: kinput2-wnn4
System/Internationalization: ami
System/Internationalization: ami-gnome
System/Internationalization: Wnn
System/Internationalization: gscript
System/Internationalization: ispell-ca
System/Internationalization: ispell-cs
System/Internationalization: ispell-da
System/Internationalization: ispell-de
System/Internationalization: ispell-el
System/Internationalization: ispell-en
System/Internationalization: ispell-eo
System/Internationalization: ispell-es
System/Internationalization: ispell-fi
System/Internationalization: ispell-fr
System/Internationalization: ispell-id
System/Internationalization: ispell-it
System/Internationalization: ispell-nl
System/Internationalization: ispell-no
System/Internationalization: ispell-pl
System/Internationalization: ispell-pt
System/Internationalization: ispell-pt_BR
System/Internationalization: ispell-ro
System/Internationalization: ispell-ru
System/Internationalization: ispell-sl
System/Internationalization: ispell-sv
System/Internationalization: mandrake_doc-de
System/Internationalization: mandrake_doc-en
System/Internationalization: mandrake_doc-es
System/Internationalization: mandrake_doc-fr
System/Internationalization: mandrake_doc-it
System/Internationalization: mandrake_doc-ru
System/Internationalization: man-pages
System/Internationalization: man-pages-cs
System/Internationalization: man-pages-de
System/Internationalization: man-pages-es
System/Internationalization: man-pages-fr
System/Internationalization: man-pages-hu
System/Internationalization: man-pages-id
System/Internationalization: man-pages-it
System/Internationalization: man-pages-ja
System/Internationalization: man-pages-ko
System/Internationalization: man-pages-pl
System/Internationalization: man-pages-ru
System/Internationalization: locales
System/Internationalization: locales-af
System/Internationalization: locales-ar
System/Internationalization: locales-bg
System/Internationalization: locales-br
System/Internationalization: locales-ca
System/Internationalization: locales-cs
System/Internationalization: locales-cy
System/Internationalization: locales-da
System/Internationalization: locales-de
System/Internationalization: locales-el
System/Internationalization: locales-en
System/Internationalization: locales-eo
System/Internationalization: locales-es
System/Internationalization: locales-et
System/Internationalization: locales-eu
System/Internationalization: locales-fi
System/Internationalization: locales-fo
System/Internationalization: locales-fr
System/Internationalization: locales-ga
System/Internationalization: locales-gl
System/Internationalization: locales-he
System/Internationalization: locales-hr
System/Internationalization: locales-hu
System/Internationalization: locales-hy
System/Internationalization: locales-id
System/Internationalization: locales-is
System/Internationalization: locales-it
System/Internationalization: locales-ja
System/Internationalization: locales-ka
System/Internationalization: locales-kl
System/Internationalization: locales-ko
System/Internationalization: locales-lo
System/Internationalization: locales-lt
System/Internationalization: locales-lv
System/Internationalization: locales-nl
System/Internationalization: locales-no
System/Internationalization: locales-oc
System/Internationalization: locales-pl
System/Internationalization: locales-pt
System/Internationalization: locales-ro
System/Internationalization: locales-ru
System/Internationalization: locales-sk
System/Internationalization: locales-sl
System/Internationalization: locales-sr
System/Internationalization: locales-sv
System/Internationalization: locales-th
System/Internationalization: locales-tr
System/Internationalization: locales-uk
System/Internationalization: locales-vi
System/Internationalization: locales-wa
System/Internationalization: locales-zh
System/Internationalization: acon
System/Internationalization: xcin
System/Internationalization: kon2
Development/Kernel: lkmpg
Development/Kernel: strace
Development/Kernel: kernel-doc
Development/Kernel: kernel-headers
Development/Kernel: kernel-source
Development/Databases: perl-Data-ShowTable
Development/Databases: perl-DBI
Development/Databases: perl-Mysql
Development/Databases: postgresql-devel
Development/Databases: gdbm-devel
Development/Databases: postgresql-jdbc
Development/Databases: postgresql-perl
Development/Databases: postgresql-python
Development/Databases: postgresql-tcl
Development/Perl: perl
Development/Perl: perl-base
Development/Perl: perl-Digest-MD5
Development/Perl: perlftlib
Development/Perl: perl-HTML-Parser
Development/Perl: perl-IO-stringy
Development/Perl: perl-libnet
Development/Perl: perl-libwww-perl
Development/Perl: perl-MailTools
Development/Perl: perl-MD5
Development/Perl: perl-MIME-Base64
Development/Perl: perl-MIME-tools
Development/Perl: perl-MPEG-MP3Info
Development/Perl: perl-Msgcat
Development/Perl: perl-Parse-RecDescent
Development/Perl: perl-PDL
Development/Perl: perl-Term-Readline-Gnu
Development/Perl: perl-URI
Development/Python: python
Development/Python: python-docs
Development/Python: python-imaging
Development/Python: python-devel
Development/Python: tkinter
Development/C: indent
Development/C: ibtk
Development/C: SDL
Development/C: egcs-cpp
Development/C: cdecl
Development/C: gcc
Development/C: gcc-cpp
Development/C: rpm-devel
Development/C: aalib-devel
Development/C: sane-devel
Development/C: SDL-devel
Development/C: slang-devel
Development/C: xmms-devel
Development/C: xdelta-devel
Development/C: xpm-devel
Development/C: zlib-devel
Development/C: apmd-devel
Development/C: audiofile-devel
Development/C: bind-devel
Development/C: cdrecord-devel
Development/C: detect-devel
Development/C: e2fsprogs-devel
Development/C: esound-devel
Development/C: faces-devel
Development/C: fnlib-devel
Development/C: freetype-devel
Development/C: gd-devel
Development/C: gimp-devel
Development/C: glibc-devel
Development/C: glibc-profile
Development/C: glib-devel
Development/C: sox-devel
Development/C: svgalib-devel
Development/C: t1lib-devel
Development/C: ucd-snmp-devel
Development/C: Wnn-devel
Development/C: Xaw3d-devel
Development/C: gmp-devel
Development/C: gpm-devel
Development/C: guile-devel
Development/C: ImageMagick-devel
Development/C: imap-devel
Development/C: kudzu-devel
Development/C: libghttp-devel
Development/C: libgr-devel
Development/C: libjpeg-devel
Development/C: libmikmod-devel
Development/C: libpng-devel
Development/C: libtermcap-devel
Development/C: libtiff-devel
Development/C: libungif-devel
Development/C: libxml-devel
Development/C: linuxconf-devel
Development/C: Mesa-devel
Development/C: MySQL_GPL-devel
Development/C: ncurses-devel
Development/C: newt-devel
Development/C: openldap-devel
Development/C: pciutils-devel
Development/C: pilot-link-devel
Development/C: readline-devel
Development/C: apache-devel
Development/C++: egcs-c++
Development/C++: gcc-c++
Development/C++: libstdc++-devel
Development/Java: guavac
Development/Java: jikes
Development/Java: kaffe
Development/Java: gcc-java
Development/GNOME and GTK+: gnome-guile
Development/GNOME and GTK+: pygnome
Development/GNOME and GTK+: pygtk
Development/GNOME and GTK+: pygtk-glarea
Development/GNOME and GTK+: pygtk-libglade
Development/GNOME and GTK+: glade
Development/GNOME and GTK+: perl-GTK
Development/GNOME and GTK+: perl-GTK-gnome
Development/GNOME and GTK+: ORBit-devel
Development/GNOME and GTK+: gtk+-devel
Development/GNOME and GTK+: gtkglarea-devel
Development/GNOME and GTK+: bonobo-devel
Development/GNOME and GTK+: gnome-core-devel
Development/GNOME and GTK+: gnome-games-devel
Development/GNOME and GTK+: gnome-guile-devel
Development/GNOME and GTK+: gnome-libs-devel
Development/GNOME and GTK+: gnome-objc-devel
Development/GNOME and GTK+: gnome-pim-devel
Development/GNOME and GTK+: gnome-print-devel
Development/GNOME and GTK+: control-center-devel
Development/GNOME and GTK+: libglade-devel
Development/GNOME and GTK+: libgtop-devel
Development/GNOME and GTK+: rep
Development/GNOME and GTK+: librep
Development/KDE and QT: kdbg
Development/KDE and QT: kdelibs-devel
Development/KDE and QT: kdevelop
Development/KDE and QT: qt2-devel
Development/KDE and QT: qt-devel
Development/Other: gperf
Development/Other: cdialog
Development/Other: memprof
Development/Other: m4
Development/Other: ltrace
Development/Other: make
Development/Other: umb-scheme
Development/Other: xlispstat
Development/Other: guile
Development/Other: xxgdb
Development/Other: pmake
Development/Other: pmake-customs
Development/Other: rcs
Development/Other: flex
Development/Other: bison
Development/Other: ElectricFence
Development/Other: egcs-objc
Development/Other: egcs-g77
Development/Other: egcs
Development/Other: cproto
Development/Other: ctags
Development/Other: cvs
Development/Other: cervisia
Development/Other: byacc
Development/Other: binutils
Development/Other: bin86
Development/Other: rpmlint
Development/Other: automake
Development/Other: autoconf
Development/Other: gcc-objc
Development/Other: p2c-devel
Development/Other: p2c
Development/Other: gcc-chill
Development/Other: gcc-colorgcc
Development/Other: gcc-fr
Development/Other: gcc-g77
Development/Other: gdb
Sciences/Chemistry: kmol
Sciences/Mathematics: bc
Sciences/Mathematics: mxp
Sciences/Other: gnuplot
Communications: pilot-link
Communications: statserial
Communications: isicom
Communications: mgetty
Communications: mgetty-contrib
Communications: mgetty-sendfax
Communications: mgetty-viewfax
Communications: mgetty-voice
Communications: ksendfax
Communications: efax
Communications: dip
Communications: lrzsz
Communications: minicom
Databases: postgresql
Databases: postgresql-odbc
Databases: postgresql-server
Databases: postgresql-test
Databases: MySQL_GPL
Databases: MySQL_GPL-bench
Databases: MySQL_GPL-client
Databases: MySQL_GPL-resolveip
Editors: hexedit
Editors: yudit
Editors: jed
Editors: jed-common
Editors: jed-xjed
Editors: xemacs
Editors: xemacs-el
Editors: xemacs-extras
Editors: xemacs-info
Editors: xemacs-mule
Editors: xemacs-X11
Editors: emacs
Editors: emacs-el
Editors: emacs-leim
Editors: emacs-nox
Editors: emacs-X11
Editors: joe
Editors: sed
Editors: vim-common
Editors: vim-enhanced
Editors: vim-minimal
Editors: vim-X11
Editors: gedit
Editors: GXedit
Emulators: BasiliskII
Emulators: BasiliskII-sheepnet
Emulators: dosemu
Emulators: dosemu-freedos
Emulators: wine
Emulators: wine-debug
Emulators: xdosemu
Games/Arcade: sdlbomber
Games/Arcade: xbill
Games/Arcade: kpacman
Games/Arcade: ktron
Games/Arcade: trojka
Games/Arcade: xboing
Games/Arcade: xjewel
Games/Arcade: xkobo
Games/Arcade: xpilot
Games/Arcade: xsoldier
Games/Arcade: xtrojka
Games/Arcade: cxhextris
Games/Boards: gnome-chess
Games/Boards: xgammon
Games/Boards: xboard
Games/Boards: gnuchess
Games/Cards: xpat2
Games/Puzzles: krubik
Games/Puzzles: xpuzzles
Games/Puzzles: kslide
Games/Strategy: freeciv
Games/Strategy: kjumpingcube
Games/Other: kfun21
Games/Other: gnome-games
Games/Other: kdegames
Toys: xfishtank
Toys: kfortune
Toys: fortune-mod
Toys: kmag
Toys: ical
Toys: kreglo
Toys: kweather
Toys: kteatime
Toys: vigmeup
Toys: xdaliclock
Toys: xearth
Archiving/Compression: zip
Archiving/Compression: gzip
Archiving/Compression: lha
Archiving/Compression: ncompress
Archiving/Compression: unarj
Archiving/Compression: unzip
Archiving/Compression: bzip2
Archiving/Cd burning: mkisofs
Archiving/Cd burning: kover
Archiving/Cd burning: gnome-toaster
Archiving/Cd burning: cdrecord
Archiving/Cd burning: xcdroast
Archiving/Backup: rmt
Archiving/Backup: mt-st
Archiving/Backup: sharutils
Archiving/Backup: cpio
Archiving/Backup: taper
Archiving/Backup: tar
Archiving/Backup: dump
Archiving/Other: gtkzip
Monitoring: lslk
Monitoring: lsof
Monitoring: rwho
Monitoring: rusers
Monitoring: procinfo
Monitoring: kmemmon
Monitoring: kisdnload
Monitoring: arpwatch
Monitoring: gtop
Monitoring: kimon
Monitoring: knetload
Monitoring: ktimemon
Monitoring: psmisc
Monitoring: procps
Monitoring: procps-X11
Monitoring: psacct
Monitoring: swatch
Monitoring: tcpdump
Monitoring: time
Monitoring: xosview
Monitoring: xsysinfo
Monitoring: xcpustate
Monitoring: xtraceroute
Monitoring: traceroute
Sound: multimedia
Sound: kdemultimedia
Sound: gnome-audio
Sound: gnome-audio-extra
Sound: thud
Sound: space_sounds
Sound: mikmod
Sound: cdp
Sound: cdrecord-cdda2wav
Sound: cdparanoia
Sound: grip
Sound: bladeenc
Sound: TiMidity++
Sound: timidity-instruments
Sound: eMusic
Sound: kmodbox
Sound: kmp3
Sound: kmp3te
Sound: kmpg
Sound: aumix
Sound: playmidi
Sound: playmidi-X11
Sound: mpg123
Sound: xmms
Sound: xmms-esd
Sound: xmms-gnome
Sound: xmms-mesa
Sound: xmms-mikmod
Sound: xmms-skins
Sound: sox
Graphics: zgv
Graphics: gqview
Graphics: gphoto
Graphics: qcad
Graphics: xwpick
Graphics: ImageMagick
Graphics: ee
Graphics: gimp
Graphics: gimp-data-extras
Graphics: giftrans
Graphics: kdegraphics
Graphics: killustrator
Graphics: kshow
Graphics: kuickshow
Graphics: xpaint
Graphics: xv
Graphics: xmorph
Graphics: xloadimage
Graphics: xfig
Graphics: transfig
Graphics: sketch
Video: nist
Video: aktion
Video: xmovie
Video: xanim
Networking/File transfer: rdist
Networking/File transfer: uucp
Networking/File transfer: ncftp
Networking/File transfer: wget
Networking/File transfer: fmirror
Networking/File transfer: ftp
Networking/File transfer: gftp
Networking/File transfer: lftp
Networking/File transfer: mirrordir
Networking/File transfer: rsync
Networking/IRC: BitchX
Networking/IRC: eggdrop
Networking/IRC: irssi
Networking/IRC: xchat
Networking/ICQ: gnomeicu
Networking/ICQ: licq
Networking/ICQ: licq-data
Networking/Chat: ytalk
Networking/Chat: talk
Networking/Chat: gaim
Networking/News: xrn
Networking/News: inews
Networking/News: tin
Networking/News: trn
Networking/News: slrn
Networking/News: slrn-pull
Networking/Mail: xmailbox
Networking/Mail: faces
Networking/Mail: faces-xface
Networking/Mail: pine
Networking/Mail: comsat
Networking/Mail: elm
Networking/Mail: exmh
Networking/Mail: fetchmail
Networking/Mail: mailx
Networking/Mail: metamail
Networking/Mail: mutt
Networking/Mail: urlview
Networking/Mail: nmh
Networking/Mail: procmail
Networking/WWW: flash
Networking/WWW: npxanim
Networking/WWW: lynx
Networking/WWW: netscape-castellano
Networking/WWW: netscape-common
Networking/WWW: netscape-communicator
Networking/WWW: netscape-francais
Networking/WWW: netscape-navigator
Networking/WWW: netscape-walon
Networking/Remote access: kvncviewer
Networking/Remote access: vnc
Networking/Remote access: vnc-doc
Networking/Remote access: vnc-java
Networking/Remote access: vnc-SVGALIB
Networking/Remote access: ktelnet
Networking/Remote access: telnet
Networking/Other: fwhois
Networking/Other: macutils
Networking/Other: pptp-adsl-fr
Networking/Other: pptp-client
Networking/Other: sliplogin
Networking/Other: nfs-utils
Networking/Other: nfs-utils-clients
Networking/Other: gnomba
Networking/Other: samba-client
Networking/Other: ucd-snmp-utils
Networking/Other: kdenetwork
Networking/Other: bind-utils
Networking/Other: ncpfs
Networking/Other: nc
Office: gaddr
Office: gnome-pim
Office: units
Office: gnumeric
Office: mswordview
Office: cbb
Office: abisuite
Office: klyx
Office: korganizer
Publishing: stylesheets
Publishing: docbook
Publishing: sgml-common
Publishing: sgml-tools
Publishing: ghostscript
Publishing: ghostscript-Both
Publishing: ghostscript-PrintOnly
Publishing: ghostscript-SVGALIB
Publishing: ghostscript-X
Publishing: gv
Publishing: jade
Publishing: jadetex
Publishing: xpdf
Publishing: tetex
Publishing: tetex-afm
Publishing: tetex-dvilj
Publishing: tetex-dvips
Publishing: tetex-latex
Publishing: tetex-xdvi
Publishing: texinfo
Publishing: psutils
Terminals: open
Terminals: SVGATextMode
Terminals: console-tools
Terminals: rxvt
Terminals: rxvt-CLE
Terminals: screen
Terminals: x3270
Terminals: Eterm
Terminals: kterm
Terminals: vlock
Shells: pdksh
Shells: sash
Shells: ash
Shells: zsh
Shells: tcsh
Shells: bash1
Shells: bash
Shells: bash-doc
File tools: xfm
File tools: xplorer
File tools: git
File tools: kfsstatus
File tools: mkxauth
File tools: mktemp
File tools: stat
File tools: symlinks
File tools: slocate
File tools: logrotate
File tools: tmpwatch
File tools: file
File tools: fileutils
File tools: findutils
File tools: xdelta
File tools: mc
File tools: kless
File tools: less
File tools: grep
File tools: rgrep
File tools: tree
File tools: which
File tools: sfm
File tools: kdiskcat
File tools: kfilecoder
File tools: kruiser
File tools: dosfstools
File tools: mtools
Text tools: ed
Text tools: gawk
Text tools: mawk
Text tools: gawk-doc
Text tools: lout
Text tools: lout-doc
Text tools: groff
Text tools: groff-gxditview
Text tools: ispell
Text tools: words
Text tools: patch
Text tools: recode
Text tools: kdiff
Text tools: diffutils
Text tools: diffstat
Text tools: enscript
Text tools: textutils
Graphical desktop/GNOME: gdm
Graphical desktop/GNOME: gnome-media
Graphical desktop/GNOME: gnome-tiles
Graphical desktop/GNOME: gnome-utils
Graphical desktop/GNOME: g-print
Graphical desktop/GNOME: gsu
Graphical desktop/GNOME: gnome-core
Graphical desktop/GNOME: switchdesk-gnome
Graphical desktop/GNOME: gmc
Graphical desktop/GNOME: control-center
Graphical desktop/Icewm: iceconf
Graphical desktop/Icewm: icewm
Graphical desktop/Icewm: icewm-light
Graphical desktop/FVWM based: AnotherLevel
Graphical desktop/FVWM based: fvwm
Graphical desktop/FVWM based: fvwm2
Graphical desktop/FVWM based: fvwm2-icons
Graphical desktop/KDE: kcmlaptop
Graphical desktop/KDE: kvoice
Graphical desktop/KDE: khotkeys
Graphical desktop/KDE: knewmail
Graphical desktop/KDE: kpilot
Graphical desktop/KDE: kpppload
Graphical desktop/KDE: ktail
Graphical desktop/KDE: kgoodstuff
Graphical desktop/KDE: kvoicecontrol
Graphical desktop/KDE: kde-doc-translation-fr
Graphical desktop/KDE: kdesu
Graphical desktop/KDE: kde-themes
Graphical desktop/KDE: kdeutils
Graphical desktop/KDE: kdetoys
Graphical desktop/KDE: kdebase
Graphical desktop/KDE: switchdesk-kde
Graphical desktop/Window Maker: WindowMaker
Graphical desktop/Window Maker: wmakerconf
Graphical desktop/Window Maker: WMRack
Graphical desktop/Window Maker: wmnet
Graphical desktop/Enlightenment: ethemes
Graphical desktop/Enlightenment: enlightenment
Graphical desktop/Enlightenment: enlightenment-conf
Graphical desktop/Enlightenment: Epplets
Graphical desktop/Other: helptool
Graphical desktop/Other: switchdesk
Graphical desktop/Other: xbanner
Graphical desktop/Other: AfterStep
Graphical desktop/Other: blackbox
Graphical desktop/Other: xfce
Graphical desktop/Other: xscreensaver
Graphical desktop/Other: xscreensaver-gl
Graphical desktop/Other: xlockmore
Graphical desktop/Other: wmconfig
Graphical desktop/Other: desktopcfg
Books/Faqs: faq
Books/Computer books: lame
Books/Computer books: sag
Books/Computer books: nag
Books/Computer books: lpg
This "package" is inspired by the install-fvwm2-menu from the debian fvwm2,
but it tries to provide a somewhat more general interface for
menu-building. With the update-menus command from this package,
(and the /usr/lib/menu/$package files),
no package needs to be modified for every X window manager again,
and it provides a unified interface for both text- and X-oriented
programmes.

Note that substantial changes took place with the menu-1.0 release.
This README describes menu-1.0, most notable changes are listed in
README.changes, and README.pre1 is the old README (please don't use
it!). 

************************
*It works like this:

Each package includes a file in /usr/lib/menu/package-name. In this
file, it will have one line per menu-entry, like this (from
/usr/lib/menu/xbase):

?package(xbase):command="/usr/bin/X11/xedit" icon="none" needs="X11" \
                section="Apps/Editors" title="Xedit"
   
This describes the type of interface the package needs (X11),
the menu section the menu entry should be in, possibly
an icon, the menu text, and the command that should be executed.

Whenever root runs update-menus, it will check all new or
changed menufiles in /etc/menu and /usr/lib/menu,
and run the installation scripts display managers like fvwm2
should provide in /etc/menu-methods on them.

The menu package itself provides a set of default menu files,
for people to get the idea, and to speed things up a bit
(These files should be incorporated into the package).

************************
* (User-) Configuring the menu's

A user can specify her/his own menu entries in the ~/.menu directory.
The files can have any name you want, and should start with either:
  ?package(installed-package):
or, if it's something that isn't "debian-officially" installed, with
  ?package(local.mystuff):
(any "package" that starts with "local." is considered installed).

If your using old format menuentryfiles should have names of 
installed packages, or "local.name", as update-menus assumes any 
Any "package" that starts with "local." is considered installed.
  (due to a bug in menu-1.3 this didn't work then).
  

If a user wants to have his own menu-methods, s/he should create a
~/.menu-methods directory, and put all scripts s/he wants to be run
in there (if ~/.menu-methods exists, /etc/menu-methods will not be
searched when a user runs update-menus).

A system administrator should place system-wide menuentries in /etc/menu, 
(not in /usr/lib/menu/package, those will be overridden after an upgrade 
of package).

************************
* Specifying "No-menu-entry"

If a user wants to remove an entry from the system menu (in /etc/menu),
then this will do the trick:
  echo -n  > ~/.menu/package
The zero-size file will tell update-menus that the corresponding
package should not have any menu-entries listed.

************************
* What should the each package do to use this:

-Include a conffile file in /usr/lib/menu/$package.
 The name of the file should be $package, with $package the
 package name of the binary package the menufile will be distributed
 in. (in the case of single source packages that build many binary packages).
 This file should contain, for each programme it likes to make
 available in a menu:
?package(gnuplot):\           specifies what packages need to be installed
   needs=text\                what kind of terminal this command expects
\                               needs=X11: if this programme only runs on X11
                                needs=text:if it only runs on text terminals;
                                            (the window manager should spawn 
                                            an xterm or rxvt in this case)
                                needs=vc  :runs only at Linux console.
                                needs=wm  :this starts another windowmanager
   section=Apps/Math\         in what section should this menuentry be
   title="Gnuplot"\           The tile of the menuentry (make it short please)
   command="/usr/bin/gnuplot" the command to run.

 A programme like gnuplot should NOT have an extra entry for
 needs=X11 because it will then be next to impossible to configure the
 window mangers to spawn rxvt instead of the default xterm.

 If, on the other hand, if a programme can both run like a real
 X application, and on a terminal (like emacs), then two
 entries should be listed (otherwise, emacs will also be run in
 an xterm).

-In your postinst and postrm script, add a line like:
  if test -x /usr/bin/update-menus; then update-menus; fi

-Do not make your package depend on the menu package.

************************
* The mandatory layout of the menu :

- Configuration
  - Hardware
  - Packaging
  - Networking
  - Printing
  - Boot and Init
  - Other
- Applications
  - Development
    - Interpreters
    - Code generators
    - Development environments
    - Tools
  - Sciences
    - Astronomy 
    - Biology 
    - Chemistry
    - Computer science
    - Geosciences 
    - Mathematics
    - Physics
    - Other    
  - Communications
  - Editors
  - Emulators
  - Archiving
     - Compression
     - Cd burning
     - Backup
     - Other
  - Monitoring
  - Publishing
  - Terminals
  - Shells
  - File tools
  - Text tools
- Documentation
- Office
- Networking
  - File transfer
  - IRC
  - ICQ
  - Chat
  - News
  - Mail
  - WWW
  - Remote access
  - Other
- Amusement
  - Adventure
  - Arcade
  - Boards
  - Cards
  - Puzzles
  - Sports
  - Strategy
  - Other
  - Toys
- Multimedia
  - Sound
  - Graphics
  - Video


This menu is genereated specifically by each windowmanager,
to provide specific wm related functions (restart, etc.) :

- Session...
  - Windowmanagers...
  - Restart session
  - Exit session

   
************************
* What should each menu-manager (fvwm*, twm, pdmenu, ...) do?

Provide a configfile-script in /etc/menu-methods that can read 
the menu-files. This script will be executed by update-menus
with the to be installed menu-entries passed to the script via
stdin.

The scripts in /etc/menu-methods should be configfiles, if the user
can tune the behaviour in the script (as is the case in the scripts
provided in this package in /usr/doc/menu/examples/$wm).

Run update-menus (if it exists) in the postinst, and remove the
execute bit from the /etc/menu-methods in the postrm when called
with remove. 
Example bash post{rm,inst} script:

#postrm:
 #!/bin/sh
 set -e
 inst=/etc/menu-methods/twm  #or fvwm, ... whatever manager you're installing

 case "$1" in
     remove)
         chmod a-x $inst
     ;;
     purge)
         #remove the files that install-fvwmgenmenu creates:
         rm /etc/X11/twm/{system.twmrc,menus.dat,menudefs.hook}
         #maybe also rm $inst, if dpkg doesn't do that itself.
     ;;
     upgrade);;
     *)
         echo "postrm called with unknown argument \`$1'" >&2
         exit 0
     ;;
 esac

#postinst:
 #!/bin/sh
 set -e
 inst=/etc/menu-methods/pdmenu #or fvwm, ... whatever manager you're installing
 if [ -x /usr/bin/update-menus ] ; then 
   if [ -f $inst ]; then
       chmod a+x $inst
       update-menus; 
   fi  
 fi

The menu package should not include any installer scripts for
window managers (that's the job of the packages that install the
window managers), but I do provide scripts for nearly all
debian window managers in /usr/doc/menu/examples. See the readme
on how to activate them. For an example, see the latest fvwm95 package
(or olvwm).


************************
* What does update-menus do?


On startup, update-menus does:
 check file /var/run/update-menus.pid, and the pid in it -- if
    there's an update-menus process with that pid, kill it.
 if /var/lib/dpkg/lock exists, 
   fork to background, and return control to dpkg.
   in background process:
     Every approx second check for /var/lib/dpkg/lock
       repeat until it's gone.
   
  when the lockfile has disappeared (or never has been), start
  the "normal" update-menus:

  1 sets a variable $dirs to 
         dirs="/etc/menu /usr/lib/menu /usr/lib/menu/default"
      (and if a user runs runs it, it will add ~/.menu to the front
      of that list)
  2 it reads the list of installed packages.
  3 for d in $dirs; do
     - read files in $d
     - check if corresponding package is installed, and, is listed
       in the $d/.updated-menus file, checking the mod time in 
       $d/.updated-menus.
       Depending on that information, either put the menufile $file in the
       the install-menu-list, or the menuentry in the $remove-entries,
       and do put the entries in the  already-correctly-installed-list
  4 after going through all dirs, do
      for method in `ls /etc/menu-methods`; do
        $cat install-menu-list | method -f --stdin 
      done

Ad step 3+4
  - The $d/.updated-menus file lists not only the files in that directory
    and it's mod-time (to check for changes), it also lists
    the known menu-managers (i.e., the output of `ls /etc/menu-methods`)
    at the time of the last installation. Based on this information,
    steps 3+4 are changed a bit, to update/remove new/old menu-managers.
Ad step 1+2+3+4
  although I've used a sh-like syntax here, it's written in C++.

Ad step 4
  Here there's a hack for backwards compatibility with the old
  install-fvwmgenmenu: if the script in /etc/menu-methods doesn't
  start with "#!/usr/sbin/install-menu", the old dataformat will be sent
  to the script.

************************
* The /usr/sbin/install-menu programme

The files /etc/menu-methods/fvwm* are "executable" config files
that begin with
 #!/usr/sbin/install-menu
and thus start that programme, handing it the configuration file for the
specific wm in argv[1]. This configuration consists of:
 - the compatibility mode ("menu-1").
 - where the various files should be stored/read.
 - what "needs" are supported, and what wrapper files should
   be used for each "type".
See /usr/doc/menu/examples/ for some more comments.

Options to install-fvwmgenmenu:
  -v              be verbose
  -d              Produce loads of debugging output

The -f and --stdin "options" exist because old versions used to
have cache files and other complicated stuff. This didn't result
in any speedups, and did complicate stuff. So we (Joey and I) decided
to make -f and --stdin options that are always on (and can thus be
ignored).

Some window managers  don't support the m4 or cpp
preprocessing, and cannot read the menudefs.hook file
from their system.*rc configfile. To still be able to use them,
install-fvwmgenmenu will copy the file $path/$examplercfile to
$path/$rcfile (with $path, $examplercfile and $rcfile defined 
in the install-fvwmgenmenu config file), and replace all 
occurrences of "install-menu-defs" with the $genmenu
file it just generated. Although this approach looks quite 
clumsy, it does allow for one $path/$examplercfile on the system,
(The m4/cpp approach puts a "include(/etc/X11/*/menudefs.hook)"
in the system.*rc file, so users will never load their menudefs.hook
file).
To activate the file-copying in this way, simply define
the $examplercfile and $rcfile variables in the install-fvwmgenmenu
configuration file (/etc/menu-methods/fvwm*), and make sure
there is a $path/$examplercfile ($path being either $rootprefix, or
$userprefix)


If you are wringing a menu-method, you can use the following to
debug it somewhat easier:
  - use the "cat" menu-method in /usr/doc/menu/examples/cat to
    create a list of menuentries in /tmp/menu-stdin
    (put it in ~/.menu-methods, and run update-menus), and then
  - you can run just your menu-method with (if it's called wm):
     ./wm -v < /tmp/menu-stdin
    (-v for verbose, use -d for debugging, you'll get loads of output).


************************
* install-menu config script definitions:
*

the menu-methods in /etc/menu-methods/* are basically made up of
a lot of section=string definitions, explaining install-menu
how to generate a "system.$wmrc" script. This way you can tune
the look of generated "system.$wmrc" to your needs.

In the following, something like 
  treewalk="c(m)"
means that the treewalk variable by default has the value "c(m)".

For examples of what these scripts can look like, see /usr/doc/menu/examples.

compat="menu-1"
  Should always be "menu-1".
  Please, make this the first non-comment line in the script.

supported
endsupported
  Between the supported and endsupported keywords you define what
  "needs" are supported by this window manager. So, the following
  is for a wm that supports both needs=x11 and needs=text:
  Example:

    supported
      x11=" ShowEntry("title=\"" $title "\", command=\"" $command "\"")
      text=" ShowEntry("title=\"" $title "\", command=\""\
               "xterm -T " $title " -e " $command "\"")
    endsupported

  For the variable substitution (and functions, not shown above),
  see the next paragraph.
  In the above example, you'll notice that for the menuentries that
  "need=text", an xterm is spawned for the command to run in.
  Also, as x11 is higher up in the supported list than text, a package that
  supplies both a "needs=x11" and a "needs=text" entry will have the
  needs=x11 entry installed, in favour of the needs=text entry.
  You can continue lines on the next line with a \, but do make sure
  you don't add any spaces after the \.

startmenu=""
endmenu=""
submenutitle=""
  These define what to print for the beginning/end of a menu, and
  how to the print a menuentry that pops up another menuentry.
  They are substituted the same way as the "supported" stuff is
  (see next paragraph).

treewalk="c(m)"
  This string defines in what order to dump the $startmenu, $endmenu,
  and $submenutitle (and it's children). Each char in the string
  refers to :
    c  : dump children of menu.
    m  : dump this menu's $submenutitles
    (  : dump $startmenu
    )  : dump $endmenu
    M  : dump all $submenutitles of this menu and this menu's children.    
  The default is "c(m)". For olvwm, one needs: "(M)"

genmenu=""
  The menufile to generate (usually something like system."$wm"rc).
  The file itself may depend on the level or title that is currently
  being work on, like 
    genmenu="/subdir/" replacewith($section," ","_") "/rc.menu"
  (Substitution works just like the supported stuff, see above).
  Note that the files made this way are truncated upon
  opening, so if you have a genmenu like the example above, then
  your endmenu= will override the startmenu stuff (but you probably
  only need one of the two anyway).

rootsection="/Debian"
  the prefix every $section variable gets.

prerun=""
postrun=""
  The commands to run before resp. after the actual generation of the
  menudefs.hook (genmenu) file. Commands will be executed by sh.
  example: 
    prerun="rm -rf " prefix() "/*"
    postrun="killall -USR1 fvwm2"
  (Substitution works just like the supported stuff, see above).

preoutput="#Automatically generated file. Do not edit (see /usr/doc/menu/html)\n\n"
postoutput=""
  Text to put at the beginning resp. end of the generated file ($genmenu).

command=""
  A command to run instead of install-menus. This command will receive
  the menuentries install-menus would have received on stdin.

hotkeyexclude=""
  Keys not to use for hotkey generation. You can use the same 
  variables and functions here as in for example the startmenu
  sections.
  Example:
    hotkeyexclude="q" $section

hotkeycase="insensitive"
  can be either "insensitive" or "sensitive". Determines
  whether the hotkeys can be of mixed case (fvwm2 reads
  the hotkeys case-insensitive, pdmenu case-sensitive).
  In case of the titles "Xa" and "xb", hotkey will generate
  "X" and "b", whereas sensitive would generate "X" and "x"

rcfile=""
  If the window manager doesn't support an "include filename" or
  "read(filename)" statement in it's config file, you can rename
  the wm's config file to system."$wm"rc-menu, and insert
  a "install-menu-defs" line (without the quotes, or whitespace around
  it, and "install-menu-defs" must be the only thing on the line)
  in the system."$wm"rc-menu file. This will then get replaced
  by the $genmenu file that was just created (see also $examplercfile).
  
examplercfile=""
  if needed (see rcfile), this is the system.rc"$wm"-menu file.
  In that case, make rcfile=system.rc"$wm".

rootprefix=""
  The prefix to use when running as root (applies to $genmenu, $rcfile,
  $examplercfile  and other old cache files)

userprefix=""
  see rootprefix, but when running as user.



************************
* variables and functions in the install-menu scripts.

The supported "needs" definitions and "startmenu=", "endmenu="
and "submenutitle=" are interpreted as follows:

**

String constants:
  Anything matching  with \"[^\"]*\" is interpreted as a string, and
  is written verbatim to the output file.
  Stuff like \n, \t, ... will be substituted for their C expansions 
  (But not \0xx).

**

Variables:
  Anything matching $[a-z,A-Z,_]* is interpreted as a variable, and
  the corresponding definition from the menuentry is substituted. So,
  for a menuentry.
  
  Special variables:
    The following variables are treated in a special way by install-menus,
    either because they are used for other purposes too, or because they
    are modified by install-menus (the ones with a "!" are modified
    by install-menus).
    
    needs:   used to determine whether the window manager supports this
             menuentry.
    command: If this is undefined, this menuentry is taken as defining
             a submenu. (this way you can specify icons of submenus).
    title!:  Used for sorting (see section).
             For submenuentries (those with empty command), this
             is initialised to the last part of the section.
             Please, keep the title short (two words at maximum).
             The title is for people who already know what programme
             they want to start. See "longtitle" and "description" below
             for longer descriptions.
    sort:    used for sorting (see section).
    section!:Used to determine the section of the menuentry.
             The menuentries that have a empty $command, have their
             $section changed to modify the current level.           
             The menuentries that have a non-empty $command have their
             $section modified to $section/$title, or $section/$sort:$title
             if $sort is defined. The menuentries within one section
             are sorted according to $section.
    hotkey!: Modified to reflect what install-menus thinks is the
             most suitable hotkey for this menuentry. The hotkey=
             in the menuentry file is taken as a suggestion, that could
             be overwritten if there is another entry with the same hotkey=.
             To suggest two possible hotkeys for an entry use
             hotkey="ab", with "a" being the most preferred hotkey.

  Suggested variables:
    The following aren't special for install-menus, but it's nice 
    (read: essential) to use the same variables for the same things.
    So, I'll suggest some here. If you want to invent new ones, please
    do so and mail them to me so that I can include them here.

    icon:    The location of the iconfile for this menuentry.
             If you don't have an iconfile, just leave out the icon=
             in the menuentry.
    longtitle: For people that like descriptive titles (about one line)
             It is probably best to include this in your menuentries,
             while the window-managers don't (by default) put it in the
             menus. That way, people who want descriptive titles can
             turn them on, but others don't need to use them.
    description:An even longer description (about 5 lines).
             For example, a description of the documentation in
             the dwww generated html pages.
   

**

Functions:
  Anything matching [a-z,A-Z,_] is taken as a function (and an error
  is generated if the function doesn't exist). The arguments of the
  functions can be other functions, string constants or variables.
  
  prefix()
     returns the current prefix dir: either $rootprefix, or
     $HOME/$userprefix, depending on who runs install-menu

  ifroot($rootarg, $userarg)
     if(getuid()==0) print $rootarg, else print $userarg

  print($arg)    
     Same as just $arg; if $arg is empty, generate an error.

  esc($arg1,$arg2)
     Print $arg1, but escape all occurrences of characters in $arg2
     with a \. (thus, if arg1="hello", arg2="lo", print "he\l\l\o").

  escwith($arg1, $arg2, $arg3)
     Same as esc, but use $arg3 as escape sequence.

  escfirst($arg1, $arg2, $arg3)
     Same as escwith, but only escapes thirst occurrence of $arg2.

  tolower($arg)
  toupper($arg)
     Returns the argument set in lowercases resp uppercases. 

  replacewith($s, $replace, $with)
     Search s for occurrences of characters from string replace, and
     replace them by the corresponding character in $with.
     Example:
      replacewith_string("hello $world, %dir", "$% ", "123")
      returns:   "hello31world,32dir"

  ifempty($arg1, $arg2)
     If $arg1 is empty, print $arg2, otherwise print nothing.
     For compatibility, the string "none" is seen as empty.

  ifnempty($arg1, $arg2)     
     If $arg1 is not empty, print $arg2.
     For compatibility, the string "none" is seen as empty.

  ifelse($arg1,$arg2)
     If $arg1 is non-empty, print $arg1, otherwise $arg2.
     For compatibility, the string "none" is seen as empty.

  ifeq($arg1, $arg2, $arg3)
     If ($arg1==$arg2) then print $arg3
  ifneq($arg1, $arg2, $arg3)
     If ($arg1!=$arg2) then print $arg3
  ifeqelse($arg1, $arg2, $arg3, $arg4)
     If ($arg1==$arg2) then print $arg3 else print $arg4

  cond_surr($arg1, $arg2, $arg3)
     If $arg1 is non-empty print $arg2$arg1$arg3, otherwise print nothing.
     For compatibility, $arg1="none" is interpreted as empty.

  iffile($arg1, $arg2)
     If file $arg1 exists, and can be opened for reading by whoever
     started the current process, return $arg2, otherwise return nothing.
  
  parent($arg)
     for arg a "directory", return parent directory:
     parent("/Debian/Apps/Editors") = "/Debian/Apps".

  basename($arg)
     return the last part of the parent directory:
     basename("/Debian/Apps/Editors") = "Apps".


**

String constants, variables and functions can be concatenated 
by placing them after each other with a space in between, like

"hello" $ifelse($comma, $comma, "sorry" $period " no comma def") " world"
  
**

User-defined functions (or rather, macros):

You can define your own function, by typing (outside "supported" scope):

  function myfunc($var1, $var2) = "this is my function, var1=" $var1 ", title= "$title

Note that this example uses a variable "title" that it expects to be defined.
This is true if it is called from the "startmenu", "endmenu", "submenutitle", 
a supported definition.

************************
* Icons
*

Please, make sure the icons you specify are always available on the system.
So, if you want to have an icon with your menuentry, the preferred method
is to supply the icon with that package. Also, to prevent the distribution
of icons files to turn too much into a mess, please put all icon
files in /usr/X11R6/include/X11/{bitmap,pixmap}.


Debian package maintainers should ensure that any icons they include that
are used with the debian menus conform to the following:

  1. They should be in xpm format.
  2. They may be no larger than 32x32 pixels, although smaller sizes are ok.
  3. They should use only the 24 colors present in cmap.xpm, which comes with
     this package.
  4. The background area of the icon should be transparent, if possible.

If you have Imagemagick installed, you can make your icons meet requirements
1, 2, and 3 with the following command, but you will need to edit the icon
afterward to clean it up and make the background transparent:

       # mogrify -format xpm -geometry 32x32 -map cmap.xpm <filenames>


If you, as a system administrator, don't like the icons in the menu's, simply
remove the $%{icon} from the files in /etc/menu-methods/$wm, and 
type "update-menus"


If you want to specify an icon for a submenu (for example, the Editors 
submenu), just use the same syntax but leave the command empty:

  X11 Apps menu/apps /usr/X11R6/include/X11/pixmap/icon.xpm "Editors"

As there probably isn't one right package to include the submenu icons,
I guess (as Joey suggested) the menu package is the only right place
to have these menu's (Otherwise, problems arise when two packages
supply different icons for the same submenu, and we can never be sure
the icon files are available).


************************
* Taskbar/Titlebar (fvwm*)
*

The problem with the stuff in the taskbar is that all items are
displayed all of the time. So, if 200 debian packages all were to
register a button, the buttons would quickly fill the screen, making
the exercise useless. The few applications that are considered important
enough to be listed in the taskbar usually vary widely on each system,
making it impossible to select a ``happy few'' apps that are allowed
there on every debian system. If you want your fvwm2 to have a few
buttons, you can install files for those packages in /etc/menu/$package,
containing both the normal menu entries, and a line like
  button Games/Puzzles  xpuzzles/xmball   path-to-pixmap.xpm "Xmball"  
/usr/games/xmball

Then, do the following:
cd /etc/menu-methods/
cp fvwm2 fvwm2button
vi fvwm2button
#and remove all the "supported" entries, adding the one below. For the rest,
leave everything the same except those listed below.

supported 
  button="+ Style \"" $title "\" TitleIcon" $icon " Exec "  $command "\n"
endsupported
startmenu:   "AddToTitlebar \n"
endmenu:     "\n"
submenutitle:""
mainmenu:
genmenu:   "buttondefs.hook"

Reply via email to