Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

Fedora 8 RPM files

2007-12-06
2012-10-30
  • David McKeon
    David McKeon
    2007-12-06

    Well I used the spec file that was posted earlier in the forums here, and heavily altered it to make it all happy on Fedora 8. I have the binaries and src file on my blog. If someone could download it and help me fix the issues, I already see that the icon is not showing up in the menu, just the entry under menu->interent->mumble. Give it a second for kde to update the thing after the rpm install. Instructions for the yum packages are on the blog. The rpm's can be found HERE: http://bonzoli.com/?m=200712

     
    • David McKeon
      David McKeon
      2007-12-14

      "%{buildroot}%{_initrddir}/murmur" is a mock up of the file system built in /var/tmp/buildxxxx directory.
      The default path will be /etc/rc.d/init.d the /murmur renames it to murmur. It works fine and is tested.

      I didn't get a chance to remake the init script but I did fix the package as asked.
      * Thu Dec 13 2007 David McKeon <mckeond2003 :at: yahoo . com> 1.1.1-5
      Added the cgi-scripts to /var/www/cgi-bin/murmur
      Created a README.fedora to assist in the setup and install of fedora specific items.
      Removed the manual pages from the doc settings
      Turned on dbus in the default config, this has on and off had issues starting with the murmur start script
      Configured and checked logrotate will not remove file, but copy and empty it, so file pointer still works.
      Fixed the preuninstall of mumble libs, when removing murmur server.
      Removed custom overlay script from package
      Named package for now to mumble-server-murmur for the murmur binaries
      Added perl package requirements for the cgi-bin scripts
      Removed preun that removed the overlay libs when removing murmur only.

      I did have an issues starting murmur with dbus on. Hopefully I have fixed it, there is an issue with the cgi-bin script though. If I do not do the:

      dbus-launch --sh-syntax > ~/.dbus.sh
      source ~/.dbus.sh

      commands, it will fail as root. I would have to set this up for the apache user and run it as apache?
      Is there some way around this?

      I didn't see any other plans for another speech engine, and espeak didn't work with pulseaudio out of the box on fedora8 when I tested. I thought festival was easier to understand listening to some voice clips by both in English.

      I changed the murmur packages to mumble-server-murmur-1.1.1 Until 1.1.2 comes out at which point I'll see about renaming it so both packages are differently named, as it is, if you do a yum update mumble* you would get both of them installed fine, if you rename it to murmur and mumble. The user would have to know a lot more about the connection if they are just browsing packages in yumex or yum.

      I didn't change the init script yet, to busy to test it correctly atm, it does work in its current state. I'll fix it this weekend. I'm posting build 5 now.

      I did have an issue originally compiling the overlay, that extra compile was a fix. It appears to be working correctly now, and I do not know what caused it to Not work all the time. If I see it again I'll track it down and do a bug report.

      I added all the perl packages in fedora that appeared in the perl cgi scripts, I'm not sure if the carpa for netbus is in there, but it appeared to work. Normally if the package is not in there, it pukes up front. Its probably usable. I did not have time to test more atm.

      Thanks again for all the assistance.

       
      • PI've said it before, and I'm now saying it again; please use scripts/murmur.ini.system as /etc/murmur.ini
        The one you're currently installing is a mix between a system and a $HOME install.

        If you fix the .ini file and make sure your init-script really starts the daemon as the user 'murmur', the system dbus should work fine. The ~/.dbus.sh tricks are for $HOME installs by regular users.

        I actually agree with you that festival is easier to understand; I'm just mentioning that Ubuntu is transitioning to espeak. You might want to check which one is the "default" speech engine for FC8.

        You most likely want to rename the web-scripts so they end in .cgi instead of .pl when you install them.

        No, your %preun STILL has a rm for libmumble. There's no need.

         
    • David McKeon
      David McKeon
      2007-12-07

      I updated the rpms to 1.1.1-2, I did a lot of additions to it.
      Added Dependency on openssl,
      Added pre and post for server install.
      Added init.d startup
      Added /var/lib/murmur/murmur.sqlite.db setup
      Added /etc/murmur.ini
      Added murmur start stop script, works but needs more work for the other distros
      Added overlay_gl files
      fixed libmumble.so links in /usr/lib
      fixed should be more safe when doing -U upgrade
      Added some novell dependency checks, might be usable now on suse, but will have to test the server start stop script.

      There is a side effect though, its going to say can not find dependency

      error: Failed dependencies:
      libc.so.6(GLIBC_PRIVATE) is needed by mumble-server-1.1.1-2.i386

      Which is actually not true, since everything needed is in the package. I have to research RPM lib functions and try to clear that up later. just install rpm -ihv –nodeps <rpmname>

      It will go in fine, and work fine.

      The murmur.ini is in /etc and the murmur database is now in /var/lib/murmur by default.

      I believe the missing lib.c is actually in the package, but I'm not copying the libmumble.XXX files, I'm linking back to the 1.1.1 file as a post ln command in the rpm. So the package program, rpm, thinks its not there and is missing. I'll work on fixing it this weekend. It does appear to work fine as a package though.

       
    • David McKeon
      David McKeon
      2007-12-08

      Fixed the RPMs up quite a bit. Added a lot of parts and fixed some issues. Its about as complete as it can be at this point.

      Rebuilt, this rpm should be about as complete as I can make it. I might tidy up the startscript a bit later, but the functional parts are all here, logs, rotation of logs, services, ini changes, new start/stop script, and I’ve fixed all the package errors I was experiencing. It was quite fun being my first full rpm build of this size. I signed it with my gpg key, rpm -k should verify it, or -qip.

      I’ve tested it -ihv to install and -e to remove it appears to work correctly. It will not delete the murmur database, or the murmur.ini files if you remove it.

      Changes:

      • Fri Dec 7 2007 1.1.1-3
        Moved murmur.log to /var/log owned by murmur:murmur
        Added logrotate.d config for murmur server
        Added rpm “Signed by”, to make it easier to use.
        Fixed the library symbols issue with AutoReqProv: no
        Added /etc/services update "murmur 64738/tcp/udp"
        Fixed some library issues, and rights issues.

      http://bonzoli.com/files/mumble/mumble-1.1.1-3.src.rpm
      http://bonzoli.com/files/mumble/mumble-1.1.1-3.i386.rpm
      http://bonzoli.com/files/mumble/mumble-devel-1.1.1-3.i386.rpm
      http://bonzoli.com/files/mumble/mumble-server-1.1.1-3.i386.rpm

      I've also linked them off the http://bonzoli.com website.

      Enjoy.

       
      • Please have a look at https://bugzilla.redhat.com/show_bug.cgi?id=294001 and read through the comments; you seem to have repeated the same mistakes made there ;)

        I also strongly recommend that you follow the directory layout and user naming used in the Ubuntu build; as far as I know they are perfectly legal under FC8 and they are also the "official" ones. If all distros use the same layout and user naming, it will be much easier to create third party packages for web administration etc.

        Actually, you most likely want to join forces with the others who are building FC8 packages so the package will get included in the official repositories.

         
    • David McKeon
      David McKeon
      2007-12-11

      The usernames you are using in the murmur.init are -Murmur- not -murmur-, there are no users starting with capital letters on any fedora installs I've seen, so I changed the user to -murmur- on the fedora install.
      From deb install:
      USER=Murmur
      GROUP=Murmur

      The murmur.init does not work on Fedora since the
      . /lib/init/vars.sh
      does not exist by default on a fedora 8 server.
      . /etc/init.d/functions
      is the function library for Redhat/Fedora server init scripts.

      LSB, or the method on Novell/Suse uses
      . /lib/lsb/init-functions

      Which does exist, but has a more limited set of start/stop/status functions.

      Which makes trying to do a default start stop script confusing. I'm working on an all-in-one init script once I get my other qemu-kvm versions of linux up and running I'll test and finish it for them. I'm using your format for everything for locations.

      I was unsure how to change the logfile and DB destinations from the command line. I didn't find it in the deb init script in the tar.gz file. So I altered the ini file as it installs to reflect proper placing on a redhat/fedora server. They are the same as you have in the start script, but by default there was no way to make sure that it happens without those alterations that I saw.

      Things changed in the INI file are:
      default murmur.sqlite.db goes in /var/lib/murmur
      PID file goes in /var/run/murmur
      murmur.ini file goes in /etc

      Added the file:
      (murmur)logrotatefile in /etc/logrotate.d/ which I created

       
      • Ok, here we go.

        As said in the thread I linked to, having a -devel package is bogus. You still have one. You have some of the same issues as pointed out in that thread; please read it so I don't have to repeat myself? ;)

        Here's the additional stuff I found:

        If possible, rename the mumble-server package to murmur; it's consistent with the naming on Ubuntu and Win32.

        There's a murmur.ini.system in the tarball, which comes with all the paths set correctly.
        You most likely want to place the log in /var/log/murmur/murmur.log, to ensure the daemon can write to it even if the logrotate hasn't been run.

        The logrotate, modified mumble-overlay and init-script are all missing from the source RPM.

        You are installing mumble.xpm twice.

        You have %doc man/* for both packages, which means both packages place the man pages in /usr/share/doc
        For murmur, the perl scripts and the init file are installed as %doc; they aren't documentation, they are scripts.

        The config should be installed as /etc/murmur.ini, from the scripts/murmur.ini.system

        The %post and %preun which deal with symlinking can be removed; The library will be libmumble.so.1.1.1 and there should be no links to it.

        Using murmur.ini.system lets you remove the current sed-things in %postin; currently, what exactly happens if another user does
        ln -s /etc/passwd /tmp/murmur.ini
        before you do the install?

        %post for server shouldn't touch the libraries, and they shouldn't even be in that package; it's purely a clientside library.

        The %preun for server has the same symlink redirection problem as %postin. Unless you really need the entry in /etc/services, I'd recommend against installing it at all.

        Is /var/run a tmpfs on FC8? If so, you don't need to mkdir at install time.

        Ok, that should be enough to start with :) Good luck.

         
    • David McKeon
      David McKeon
      2007-12-12

      As said in the thread I linked to, having a -devel package is bogus. You still have one. You have some of the same issues as pointed out in that thread; please read it so I don't have to repeat myself? ;)

      Devel package build is removed.

      Here's the additional stuff I found:

      If possible, rename the mumble-server package to murmur; it's consistent with the naming on Ubuntu and Win32.

      mumble-server is now mumble-murmur, I am not sure if thats what you were thinking it would be.
      Perhaps we could go with mumble-server-murmur? I will look for a directive that can change the name independent of the mumble naming. The other option is another spec file.

      There's a murmur.ini.system in the tarball, which comes with all the paths set correctly.

      You most likely want to place the log in /var/log/murmur/murmur.log, to ensure the daemon can write to it even if the logrotate hasn't been run.

      I've moved the log from /var/log to /var/log/murmur and chowned the directory.
      Updated the logrotate config to reflect the new location /var/log/murmur/murmur.log.

      The logrotate, modified mumble-overlay and init-script are all missing from the source RPM.

      Yes, I did not put them in as Sources list that is fixed.
      murmur.init.fedora is the name of the init script. I can clean out all the case statement stuff if that seems simpler them making a universal script for init.

      You are installing mumble.xpm twice.

      It only installs once, since the files list is whats in the package. I have removed it, it didn't need to be there.

      You have %doc man/* for both packages, which means both packages place the man pages in /usr/share/doc

      For murmur, the perl scripts and the init file are installed as %doc; they aren't documentation, they are scripts.

      The config should be installed as /etc/murmur.ini, from the scripts/murmur.ini.system

      murmur.ini.fedora now exists in the source.
      Did you want me to remove this from doc also?
      Changed rights on it to 640 since it has the ability to contain a server password
      chowned it murmur:murmur

      The %post and %preun which deal with symlinking can be removed; The library will be libmumble.so.1.1.1 and there should be no links to it.

      They are removed, only libmumble.so.1.1.1. The still show up when you make build the package in the release directory, which is confusing. output:
      ls -ltr ../BUILD/mumble-1.1.1/release/
      total 21272
      -rw-r--r-- 1 root root 567150 2007-12-11 21:30 libspeex.a
      -rwxrwxr-x 1 root root 15840711 2007-12-11 21:32 mumble
      -rwxrwxr-x 1 root root 5306366 2007-12-11 21:33 murmurd
      -rwxrwxr-x 1 root root 22795 2007-12-11 21:33 libmumble.so.1.1.1
      lrwxrwxrwx 1 root root 18 2007-12-11 21:33 libmumble.so.1.1 -> libmumble.so.1.1.1
      lrwxrwxrwx 1 root root 18 2007-12-11 21:33 libmumble.so.1 -> libmumble.so.1.1.1
      lrwxrwxrwx 1 root root 18 2007-12-11 21:33 libmumble.so -> libmumble.so.1.1.1

      Using murmur.ini.system lets you remove the current sed-things in %postin; currently, what exactly happens if another user does

      ln -s /etc/passwd /tmp/murmur.ini

      before you do the install?

      What would be more fun would be link every binary on your system to /tmp/Flash[a-Z][a-Z][a-Z][a-Z][a-Z] at random. or orbits-username.
      If your pointing out that a rpm install can be used to backdoor the system, or mess with an install, the answer is yes, very few of them would survive if someone knew they were going to be installed, had access and intent to mess with the package.
      That goes for just about every package manager I've ever seen on a unix server.

      I've created a murmur.ini.fedora and put it in the source list for the package. This ini sets path for the log file, and sets up the location of the db file.

      post for server shouldn't touch the libraries, and they shouldn't even be in that package; it's purely a clientside library.

      The %preun for server has the same symlink redirection problem as %postin.

      Unless you really need the entry in /etc/services, I'd recommend against installing it at all.

      The relinking of the libs is removed.

      I'm leaving the services in, it helps with using firewall checks and netstat -a checks.
      netstat -a|grep murmur
      tcp 0 0 :murmur :* LISTEN

      If all you see is 30+ port numbers with Q's full, it takes longer to figure out whats going on if there is an issue.

      Is /var/run a tmpfs on FC8? If so, you don't need to mkdir at install time.

      I do not see it as a tmpfs, looks like a directory under /
      [root@dave-linux SOURCES]# df -a
      Filesystem 1K-blocks Used Available Use% Mounted on
      /dev/mapper/VolGroup00-LogVol00
      3967680 1010340 2752540 27% /
      proc 0 0 0 - /proc
      sysfs 0 0 0 - /sys
      devpts 0 0 0 - /dev/pts
      /dev/mapper/VolGroup00-LogVol02
      9903432 5818180 3574072 62% /usr
      /dev/mapper/VolGroup00-LogVol01
      99190192 53791464 40278728 58% /home
      /dev/sda2 101105 18884 77000 20% /boot
      tmpfs 1037628 740 1036888 1% /dev/shm
      /dev/mapper/datavg02-lvdata2
      239452736 222284564 5004692 98% /data2
      /dev/mapper/data1vg-data1lv
      479937288 439748396 15809500 97% /data1
      /dev/sda1 51199120 50174020 1025100 98% /mnt/ntfs
      /dev/sde1 488384000 336682264 151701736 69% /mnt/USBdrive
      none 0 0 0 - /proc/sys/fs/binfmt_misc
      sunrpc 0 0 0 - /var/lib/nfs/rpc_pipefs
      /dev/mapper/_dev_sdb1
      307663800 255230944 36804424 88% /data3
      This is what I'm seeing.

      Do you want me to include the ~/.festivalrc file and require aplay be installed? Otherwise the /dev/dsp lock on festival keeps the text-to-speech from working.

      Thanks for the input, I appreciate the time and help. The new files are at http://www.bonzoli.com/files/

      Sources should all be in there now.

       
      • No, I was thinking of calling the package just "murmur", without mumble in the name at all. If this is not possible, just stick with mumble-server.

        I was serious about using murmur.ini.system for the /etc/murmur.ini file. It sets up dbus by default, and contains the additional fields used when the CGIs are installed system wide.

        BTW, from 1.1.2 onwards, the user will be named 'murmur' for all distros, so you don't need a fedora-specific murmur.conf. 1.1.2 is still a few weeks away though, so keep it for now.

        Have you checked if the logrotate works? Murmur doesn't reopen it's logfile at any point, so I'm guessing any log entries written after the log is "rotated" are simply lost. I'll add a signal-to-reopen for 1.1.2

        If fedora is missing start_stop_deamon as well as the log_daemon_msg_ functions in the init scripts, it's probably cleaner to just fork it as you mention.

        Mumble binaries are GPL only. Compiling it includes GPL software, so it's GPL by default.

        Using %provides is probably a good way to have mumble-server work as just 'murmur', but it shouldn't %provide mumble. It's just the server.

        Is there a reason you explicitly 'cd overlay_gl; blah blah'? overlay_gl should be iterated automatically when you just qmake main.pro. If this isn't the case, let me know as that would be a bug.

        cp /usr/src/redhat/SOURCES/mumble-overlay scripts/mumble-overlay
        .. But there's no mumble-overlay included in the source RPM. Why do you need to change it?

        %__install -D -m0755 scripts/murmur.init.fedora "%{buildroot}%{_initrddir}/murmur"
        I could be wrong, but doesn't this install the script as murmur.init.fedora and not murmur.init?

        Both packages still mark manpages with %doc. manpages aren't text documentation, they are manpages :) Installing them in /usr/share/man is all that's needed. They aren't readable as textpages and hence do not belong in /usr/share/doc
        You might want to %doc README.Linux for Mumble.

        For murmur, murmur.ini shouldn't be %doc; it's a config file. Only textfiles describing the package should be %doc.

        Your %preun still does a rm -rf for the library links.

        If it's possible, put the cgi-scripts (murmur.pl and weblist.pl) in /var/www/cgi-bin/murmur/ (correct path on RHEL5, don't know if it's the same on FC8) named as murmur.cgi and weblist.cgi, add the perl modules they use as dependencies and add an entry to /etc/httpd/conf.d/ if required (but try to avoid it).
        With that in place, the murmur package should install a system-wide murmur that "just works" out of the box, complete with user registration.

        About festival.. You can't very well install ~/.festivalrc in the package (what if the user already has one?), but it could be an idea to create a short document called "README.TextToSpeech.Fedora" and install that with %doc. Anyway, that's just a bandaid solution; the proper solution is to contact the maintainer of festival in FC and have him/her change the default to use aplay or padsp.
        Ubuntu is changing it's default TTS engine to be espeak -- do you know if there are similar plans in FC?