rpms/fmtools/devel fmlircrc, NONE, 1.1 fmtools.desktop, NONE, 1.1 import.log, NONE, 1.1 radio.gif, NONE, 1.1 radio.png, NONE, 1.1 tkradio, NONE, 1.1 tkradio-mute, NONE, 1.1 tkradio.py, NONE, 1.1 .cvsignore, 1.2, 1.3 fmtools.spec, 1.5, 1.6 sources, 1.2, 1.3
Paulo Roma Cavalcanti
roma at fedoraproject.org
Fri Jan 15 20:00:00 UTC 2010
Author: roma
Update of /cvs/pkgs/rpms/fmtools/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv2840/devel
Modified Files:
.cvsignore fmtools.spec sources
Added Files:
fmlircrc fmtools.desktop import.log radio.gif radio.png
tkradio tkradio-mute tkradio.py
Log Message:
updated to 2.0.1
--- NEW FILE fmlircrc ---
# File: .fmlircrc
# Remote Control: Pixelview PlayTV MPEG2 PV-M4900 FM.RC
# Author: Paulo Roma on 28/12/2009
# Configuration file for fmtools-tkradio.
#
begin
prog = tkradio
button = power
config = quit
end
begin
prog = tkradio
button = ch+
config = next
end
begin
prog = tkradio
button = ch-
config = previous
end
begin
prog = tkradio
button = mute
config = off
end
begin
prog = tkradio
button = rec
config = rec
end
begin
prog = tkradio
button = stop
config = stop
end
begin
prog = tkradio
button = play
config = on
end
begin
prog = tkradio
button = loop
config = loop
end
begin
prog = tkradio
button = vol+
config = volup
end
begin
prog = tkradio
button = vol-
config = voldown
end
begin
prog = tkradio
button = 1
config = 1
end
begin
prog = tkradio
button = 2
config = 2
end
begin
prog = tkradio
button = 3
config = 3
end
begin
prog = tkradio
button = 4
config = 4
end
begin
prog = tkradio
button = 5
config = 5
end
begin
prog = tkradio
button = 6
config = 6
end
begin
prog = tkradio
button = 7
config = 7
end
begin
prog = tkradio
button = 8
config = 8
end
begin
prog = tkradio
button = 9
config = 9
end
begin
prog = tkradio
button = 0
config = 0
end
--- NEW FILE fmtools.desktop ---
[Desktop Entry]
Name=tkradio
Comment=Python/Tk wrapper for fmtools
Exec=tkradio.py
Icon=radio
Terminal=0
Type=Application
StartupNotify=false
StartupWMClass=tkradio
Encoding=UTF-8
Categories=Application;AudioVideo;
--- NEW FILE import.log ---
fmtools-2_0_1-1_fc12:HEAD:fmtools-2.0.1-1.fc12.src.rpm:1263585439
--- NEW FILE tkradio ---
#!/usr/bin/wish
# Matt Willis - simple tk interface to fmtools
# The radio keeps on after leaving.
# -*- tcl -*-
# These are stations in the Rio de Janeiro area. Customize for your own locale.
set stations \
"
MPB 90.3
CBN 92.5
BandNews 94.9
PARADISO 95.7
Nativa 96.5
98FM 98.0
MEC 98.9
JBFM 99.7
O_Dia 100.5
Transamerica 101.3
JovenPan 102.1
Oi 102.9
Antena1 103.7
"
# intial volume
set volume 100
set n [expr [llength $stations]/2]
# default radio station
set radbut 3
# make tuner buttons
frame .labels
for {set i 0} {$i<$n} {incr i 1} {
radiobutton .r$i -value $i -variable radbut \
-text [lindex $stations [expr $i *2]] -command setstation
pack .r$i -anchor w -in .labels
}
# turns the radio on
eval exec fm on
frame .rhs
scale .vol -orient horizontal -from 0 -to 100 -showvalue 0 \
-variable volume -label Volume:
entry .stn -bg black -fg yellow -font "-*-helvetica-*-r-*-*-60-*-*-*-*-*-*-*" \
-width 6 -justify right -state disabled
button .exit -command exit -text exit
pack .vol .stn .exit -in .rhs
pack .labels .rhs -side left
.vol configure -command setvolume
proc setstation {} {
global stations radbut volume
# roma 20091221
# eval exec fm [lindex $stations [expr $radbut*2+1]] $volume
eval exec fm [lindex $stations [expr $radbut*2+1]]
eval exec amixer -q -c 0 set PCM $volume%
.stn configure -state normal
.stn delete 0 end
.stn insert 0 [lindex $stations [expr $radbut*2+1]]
.stn configure -state disabled
}
proc setvolume {sliderval} {
setstation
}
--- NEW FILE tkradio-mute ---
#!/usr/bin/wish
# Matt Willis - simple tk interface to fmtools
# mute button added by James Smith
# The radio is turned off after leaving.
# -*- tcl -*-
# These are stations in the Rio de Janeiro area. Customize for your own locale.
set stations \
"
MPB 90.3
CBN 92.5
BandNews 94.9
PARADISO 95.7
Nativa 96.5
98FM 98.0
MEC 98.9
JBFM 99.7
O_Dia 100.5
Transamerica 101.3
JovenPan 102.1
Oi 102.9
Antena1 103.7
"
# initial volume [0,100]
set volume 100
set n [expr [llength $stations]/2]
# default radio station
set radbut 3
set rvol 100
set state 0
# make tuner buttons
frame .labels
for {set i 0} {$i<$n} {incr i 1} {
radiobutton .r$i -value $i -variable radbut \
-text [lindex $stations [expr $i *2]] -command setstation
pack .r$i -anchor w -in .labels
}
# turns the radio on
eval exec fm on
frame .rhs
scale .vol -orient horizontal -from 0 -to 100 -showvalue 0 \
-variable volume -label Volume:
entry .stn -bg black -fg green -font "-*-helvetica-*-r-*-*-20-*-*-*-*-*-*-*" \
-width 6 -justify right -state disabled
button .exit -command out -text exit
button .mute -command mute -text mute
pack .vol .stn .exit .mute -in .rhs
pack .labels .rhs -side left
.vol configure -command setvolume
proc setstation {} {
global stations radbut volume
# roma 20091221
# eval exec fm [lindex $stations [expr $radbut*2+1]] $volume
eval exec fm [lindex $stations [expr $radbut*2+1]]
eval exec amixer -q -c 0 set PCM $volume%
.stn configure -state normal
.stn delete 0 end
.stn insert 0 [lindex $stations [expr $radbut*2+1]]
.stn configure -state disabled
}
proc setvolume {sliderval} {
setstation
}
proc out {} {
global stations radbut volume
# roma 20070217
# eval exec fm [lindex $stations [expr $radbut*2+1]] 0
eval exec fm off
exit
}
proc mute {} {
global stations radbut volume rvol state
if {$state==0} {
set rvol $volume
# roma 20070217
# eval exec fm [lindex $stations [expr $radbut*2+1]] 0
eval exec fm off
set state 1
.mute config -text unmute
} else {
# eval exec fm [lindex $stations [expr $radbut*2+1]] $volume
eval exec fm on
set state 0
.mute config -text mute
}
}
--- NEW FILE tkradio.py ---
#!/usr/bin/env python
# Paulo Roma - simple tkinter interface for fmtools,
# with lirc and recording support.
# Date: 23/12/2009
# The radio is turned off on exit.
from Tkinter import *
import Tkinter
import os, sys, string
import datetime, time
from threading import Thread
from subprocess import Popen, PIPE
try:
import pylirc
except:
sys.exit ( "pylirc not found: http://pylirc.mccabe.nu/" )
try:
import pynotify
if pynotify.init("tkradio"):
use_notify = True
else:
use_notify = False
print "pynotify module initialization failed"
except:
use_notify = False
print "notify-python not found: http://www.galago-project.org/downloads.php"
# These are stations in the Rio de Janeiro area.
# Customize for your own locale. They can be set
# in file ~/.fmrc or ~/.radiostations:
# station name, frequency and volume.
stations = [["MPB", "90.3 100"],
["CBN", "92.5 100"],
["Band News", "94.9 100"],
["Paradiso", "95.7 100"],
["Tupy", "96.5 100"],
["Beat98 FM", "98.0 100"],
["MEC", "98.9 100"],
["JB FM", "99.7 100"],
["O Dia", "100.5 100"],
["Transamerica", "101.3 100"],
["Mix", "102.1 100"],
["Oi", "102.9 100"],
["Nativa", "103.7 100"]]
radbut = stations[3][1] # default radio frequency
volume = 100 # initial volume [0,100]
state = False # keep track of mutting/unmutting
blocking = 0 # lirc blocking control
tid = 0 # recorder thread id
lid = 0 # loopback process id
fmrec = None # recorder thread variable
irrec = None # lirc thread variable
class IRRec(Thread):
"""Class for interacting with lirc."""
def __init__ (self, lirc_handle):
"""Constructor."""
Thread.__init__ (self)
self.lirc_handle = lirc_handle
self.__on = True
def stop ( self ):
"""Kills this thread."""
self.__on = False
def run(self):
"""Run the thread code."""
code = {"config" : ""}
while ( self.__on ):
# Delay...
time.sleep(1)
s = pylirc.nextcode(1)
while ( s ):
for code in s:
if ( code["config"] == "next" ):
next()
elif ( code["config"] == "previous" ):
previous()
elif ( code["config"] == "off" ):
mute()
elif ( code["config"] == "on" ):
radio ("on")
elif ( code["config"] == "volup" ):
volup ()
elif ( code["config"] == "voldown" ):
voldown()
elif ( code["config"] in "0123456789" ):
time.sleep(1)
b=pylirc.nextcode()
if ( b and b[0] in "0123456789" ):
code["config"] += b[0]
setStation ( int (code["config"]) )
elif ( code["config"] == "rec" ):
rec_on()
elif ( code["config"] == "stop" ):
rec_off()
elif ( code["config"] == "loop" ):
loopon()
elif ( code["config"] == "quit" ):
quit()
else:
# Print all the configs...
print "Command: %s, Repeat: %d" % (code["config"], code["repeat"])
if (not blocking):
s = pylirc.nextcode(1)
else:
s = []
# if we get here, the thread is over, so clean up lirc
pylirc.exit()
class FMRec(Thread):
"""Class for controlling the recording process."""
def __init__ (self):
"""Constructor."""
Thread.__init__ (self)
self.__pid = 0 # arecord process id
self.__on = True # for implementing a thread stop,
# which python does not have
def __del__ (self):
"""Destructor. Stops the recording, before quitting."""
self.stop()
def stop ( self ):
"""Stops the recording, by killing the recorder process."""
global tid
tid = 0
if ( self.__pid ):
os.kill ( self.__pid, 9 )
self.__pid = 0
self.__on = False
def run(self):
"""Start the thread."""
while (self.__on):
if ( not self.__pid ):
data = str(datetime.date.today())
hora = list(time.localtime(time.time()))
hora = str(hora[3])+":"+str(hora[4])+":"+str(hora[5])
rec_file = '/tmp/tkradio-'+fmstations[cur_station][0]+"-"+data+"-"+hora+'.ogg'
arec_param = ['/usr/bin/arecord', '-D', 'default', '-d', '0', '-f', 'cd', '-']
ogge_param = ['/usr/bin/oggenc', '-', '-Q', '-o', rec_file]
if use_notify:
n = pynotify.Notification("tkradio recording on file:", rec_file, "/usr/share/pixmaps/radio.png")
n.show()
p1 = Popen(arec_param, stdout=PIPE)
p2 = Popen(ogge_param, stdin=p1.stdout)
self.__pid = p1.pid
time.sleep(1.0) # Suspend execution for the given number of seconds
# if we get here, the thread is finished
self.stop ()
def radio ( cmd ):
"""Send the given command to the radio."""
os.system("fm "+cmd)
def setCurStation ( frequency ):
"""Update the current station."""
global cur_station
ind = 0
for st in fmstations:
if ( st[1] == frequency ):
cur_station = ind
break
ind += 1
def setstation():
"""Set the station chosen via Radio Button."""
freq = station.get()
changeStation ( freq )
setCurStation ( freq )
def setStation(ind):
"""Set the station to ind."""
if ( ind >= 0 and ind < ns ):
freq = fmstations[ind][1]
changeStation ( freq )
setCurStation ( freq )
def changeStation ( st ):
"""Set the station to the given station."""
radio ( st )
freq.delete(0, END)
freq.insert(0,st.split()[0])
station.set ( st )
def quit():
"""Quit the radio."""
radio ("off")
# kill all threads
if ( fmrec ): fmrec.stop()
if ( irrec ): irrec.stop()
if ( lid ): os.kill ( lid, 9 )
os._exit (0)
def mute():
"""Mute/Unmute the radio."""
global state
if ( not state ):
radio ("off")
state = True
btmute.set ( "On" )
btm.config(state=ACTIVE)
else:
radio ("on")
state = False
btmute.set ( "Off" )
btm.config(state=NORMAL)
def on_move(value=0):
"""Use slider position to set the volume."""
v = scale.get()
os.system("amixer -q -c 0 set PCM "+str(v)+"%")
def volup ():
"""Increases the volume."""
v = scale.get() + 5
if ( v > 100 ): v = 100
scale.set ( v )
os.system("amixer -q -c 0 set PCM "+str(v)+"%")
def voldown():
"""Decreases the volume."""
v = scale.get() - 5
if ( v < 0 ): v = 0
scale.set ( v )
os.system("amixer -q -c 0 set PCM "+str(v)+"%")
def enter ():
"Enter a new frequency."""
f = freq.get()+" "+ str(volume)
changeStation (f)
setCurStation (f)
def readStations ( ):
"""Read the preset station file."""
path = os.environ.get("HOME")
fname = path+"/.radiostations"
if ( not os.path.exists (fname) ):
fname = path+"/.fmrc"
lst = []
if ( os.path.exists (fname) ):
textf = open(fname, 'r')
for line in textf:
l=line.split(None)
st = [l[0].replace("_"," "),l[1]+" "+l[2]]
lst.append ( st )
textf.close()
return lst
def next ():
"Go to the next station."""
global cur_station
cur_station = (cur_station + 1) % ns
changeStation ( fmstations[cur_station][1] )
def previous ():
"Go to the previous station."""
global cur_station
cur_station = (cur_station - 1) % ns
changeStation ( fmstations[cur_station][1] )
def trigger ():
"""Creates a thread for recording."""
global tid, fmrec
if ( not tid ):
fmrec = FMRec ()
fmrec.start()
tid = 1
def loop():
"""Route the capture sources on the sound card back in as PCM audio."""
global lid
if ( loopvar.get() == "ON" ):
if ( not lid ):
arec_param = ['/usr/bin/arecord', '-D', 'default', '-d', '0', '-f', 'cd']
apla_param = ['/usr/bin/aplay', '-f', 'cd', '-D', 'default']
p1 = Popen(arec_param, stdout=PIPE)
p2 = Popen(apla_param, stdin=p1.stdout)
lid = p1.pid
n = pynotify.Notification("tkradio", "Software Loop Back activated",
"/usr/share/pixmaps/radio.png")
n.set_timeout(2000)
n.show()
else:
if ( lid ):
os.kill ( lid, 9 )
lid = 0
def loopon():
"""Toggles the loop variable."""
if ( loopvar.get() == "ON" ):
loopvar.set ("OFF")
else:
loopvar.set ("ON")
loop()
def rec():
"""Record the current station."""
if ( recvar.get() == "ON" ):
rec_on()
else:
rec_off()
def rec_on():
"""Turn the recorder on."""
recvar.set ("ON")
trigger()
def rec_off():
"""Turn the recorder off."""
recvar.set ("OFF")
if ( fmrec ): fmrec.stop()
def mouse_wheel(event):
"""Respond to mouse wheel events."""
if event.num == 5 or event.delta == -120:
voldown ()
if event.num == 4 or event.delta == 120:
volup ()
def str2num(datum):
"""A conversion function that "guesses" the best conversion."""
try:
return int(datum)
except:
try:
return float(datum)
except:
return datum
def main (argv=None):
"""Main program."""
global scale # volume scale
global station # variable for the station radio buttons
global btmute # variable for the text in the mute button
global btm # mute button
global freq # variable for manually entering a frequency
global fmstations # preset fm stations
global cur_station # current station
global ns # number of preset fm stations
global recvar # variable for setting record on/off
global loopvar # variable for setting loopback on/off
global irrec # lirc thread variable
global lid # loopback process id
if argv is None:
argv = sys.argv
pyversion = string.split(sys.version)[0]
print "Python Version: ", pyversion
# check whether tkradio is already running
stat = os.popen ("/bin/ps aux | /bin/grep -E \"python(" + pyversion[0:3] + ")? " + argv[0] + "\"").readline()
cid = os.getpid()
if ( stat ):
pid = stat.split()[1]
if ( cid != int(pid) ):
sys.exit ( "%s is already running: pid = %s" %(argv[0], pid) )
mw = Tk()
# do not resize the radio
mw.resizable(False,False)
station = StringVar()
station.set ( radbut )
btmute = StringVar()
btmute.set ( "Off" )
top = Frame(); top.pack()
bbt = Frame(); bbt.pack()
bot = Frame(); bot.pack()
mw.title ("tkradio")
fmstations = readStations ( )
if ( not fmstations ):
fmstations = stations
ns = len ( fmstations )
cur_station = -1
# make tuner buttons
for st in fmstations:
Radiobutton(bot,text=st[0],value=st[1],variable=station,command=setstation).pack(anchor=W)
scale = Scale(top, from_=0, to=100, orient=HORIZONTAL, command=on_move, bd=0,
sliderlength=10, width=5, showvalue=0)
scale.pack(side='top')
scale.set(volume)
# the current radio frequency
Button(bbt,text="<", command = previous).pack(side="left",anchor=E)
Button(bbt,text="Enter", command = enter).pack(side="left")
Button(bbt,text=">", command = next).pack(side="left",anchor=W)
freq=Entry(top,font="Arial 24",width=5,justify=CENTER)
freq.insert(0,station.get())
freq.pack(side="bottom")
recvar = StringVar() # creates a checkbutton for the alarm state
loopvar = StringVar() # creates a checkbutton for the loopback
recvar.set ( "OFF" )
aid = os.popen ( '/sbin/pidof arecord' ).readline()
aid = aid.replace('\n','')
aid = str2num(aid)
if ( aid ): # is the loop back already on?
loopvar.set ( "ON" )
lid = aid
else:
loopvar.set ( "OFF" )
# create quit and mute buttons
Button(top,text="Exit", command = quit).pack(side="right")
btm=Button(top,text="Off", command = mute, textvariable = btmute)
btm.pack(side="left")
Checkbutton (top, text="Rec", variable=recvar, onvalue="ON", offvalue="OFF", command=rec).pack(side="top",anchor=W)
Checkbutton (top, text="Loop", variable=loopvar, onvalue="ON", offvalue="OFF", command=loop).pack(side="right")
# mouse whell control
mw.bind("<Button-4>", mouse_wheel)
mw.bind("<Button-5>", mouse_wheel)
# turn the radio on
setstation()
radio ("on")
# set an icon for the window
icon_img = PhotoImage(file="/usr/share/fmtools/radio.gif")
mw.tk.call('wm', 'iconphoto', mw._w, icon_img)
lircid = os.popen ( '/sbin/pidof lircd' ).readline()
if ( lircid ): # is lirc running?
# handle lirc events
path = os.environ.get("HOME")
fname = path+"/.fmlircrc"
if ( not os.path.exists (fname) ):
fname = "/usr/share/fmtools/fmlircrc"
lirc_handle = pylirc.init("tkradio", fname, blocking)
if (lirc_handle):
if ( use_notify ):
n = pynotify.Notification("tkradio", "Successfully opened lirc. Handle is "+str(lirc_handle),
"/usr/share/pixmaps/radio.png")
n.set_timeout(2000)
n.show()
irrec = IRRec(lirc_handle)
irrec.start()
top.mainloop()
try:
if __name__=="__main__":
sys.exit(main())
except KeyboardInterrupt,SystemExit:
quit()
Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/fmtools/devel/.cvsignore,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -p -r1.2 -r1.3
--- .cvsignore 24 Sep 2007 20:31:43 -0000 1.2
+++ .cvsignore 15 Jan 2010 19:59:59 -0000 1.3
@@ -1,2 +1,2 @@
fmcontrol.tar.gz
-fmtools-1.0.2.tar.gz
+fmtools-2.0.1.tar.gz
Index: fmtools.spec
===================================================================
RCS file: /cvs/pkgs/rpms/fmtools/devel/fmtools.spec,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -p -r1.5 -r1.6
--- fmtools.spec 24 Jul 2009 22:58:43 -0000 1.5
+++ fmtools.spec 15 Jan 2010 19:59:59 -0000 1.6
@@ -1,71 +1,137 @@
-Summary: Simple Video for Linux radio card programs
-Name: fmtools
-Version: 1.0.2
-Release: 6%{?dist}
-License: GPLv2+
-Group: Applications/Multimedia
-URL: http://www.stanford.edu/~blp/fmtools/
-Source0: http://www.stanford.edu/~blp/%{name}/%{name}-%{version}.tar.gz
-Source1: fmcontrol.tar.gz
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+Summary: Simple Video for Linux radio card programs
+Name: fmtools
+Version: 2.0.1
+Release: 1%{?dist}
+License: GPLv2+
+Group: Applications/Multimedia
+URL: http://www.stanford.edu/~blp/fmtools/
+Source0: http://benpfaff.org/fmtools/%{name}-%{version}.tar.gz
+Source1: fmcontrol.tar.gz
+Source2: http://www.stanford.edu/~blp/fmtools/tkradio
+Source3: http://www.stanford.edu/~blp/fmtools/tkradio-mute
+Source4: fmtools.desktop
+Source5: radio.png
+Source8: radio.gif
+Source6: tkradio.py
+Source7: fmlircrc
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%description
This is a pair of hopefully useful control programs for Video for Linux
-(v4l) radio card drivers. The focus is on control, so you may find these
+(v4l2) radio card drivers. The focus is on control, so you may find these
programs a bit unfriendly. Users are encouraged to investigate the source
and create wrappers or new programs based on this design.
- fm - a simple tuner
- fmscan - a simple band scanner
+fm - a simple tuner
+fmscan - a simple band scanner
-The script fmcontrol is something Adrian Lester put together one evening to
-save from himself having to remember frequencies and volumes when using the fm
-program from fmtools by Russell Kroll.
-
-The script does not support any of fm's command line options with the
-exception of volume.
-
-All that it does is to tune in to a station specified by name at the
-frequency and volume specified in $HOME/.fmrc and $HOME/.radiostations
+%package tkradio
+Summary: Python/Tk wrapper for fmtools
+Group: Applications/Multimedia
+BuildRequires: desktop-file-utils
+Requires: %{name} = %{version}
+Requires: python, python-lirc, notify-python
+Requires: vorbis-tools, tkinter, alsa-utils
+BuildArch: noarch
+
+%description tkradio
+This package provides a GUI for %{name}, with lirc support.
+The stations are read from the same files used by fmcontrol,
+and the lirc configuration file is in $HOME/.fmlircrc
+
+The script fmcontrol.py saves one from remembering frequencies
+and volumes when using the "fm" program from %{name}.
+All that it does is to tune into a station specified by name, at the
+frequency and volume specified in $HOME/.fmrc or $HOME/.radiostations,
or the volume given on the command line.
%prep
-%setup0 -q
-# include fmcontrol script
-tar xzvf %{SOURCE1}
-install -pm 0644 fmcontrol/README README.fmcontrol
-
-# Fix Makefile
-sed -i -e 's|/usr/local/bin|%{_bindir}|' Makefile
-sed -i -e 's|/usr/local/man|%{_mandir}|' Makefile
-sed -i -e 's|-Wall -O2|$(RPM_OPT_FLAGS)|' Makefile
-
-# Remove header
-rm videodev.h
-sed -i.header -e 's|"videodev.h"|<linux/videodev.h>|'g fm.c fmscan.c
-
-# Add shebang to fmcontrol
-sed -i '1i#!/bin/sh' fmcontrol/fmcontrol
+%setup -q -a1
%build
-make %{?_smp_mflags}
+%configure
+make %{_smp_mflags}
%install
-rm -rf $RPM_BUILD_ROOT
-make install DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p"
-install -pm 0755 fmcontrol/fmcontrol $RPM_BUILD_ROOT%{_bindir}
+rm -rf %{buildroot}
+make DESTDIR=%{buildroot} install
+install -pm 0755 %{SOURCE2} %{buildroot}%{_bindir}/tkradio.tcl
+install -pm 0755 %{SOURCE3} %{buildroot}%{_bindir}/tkradio-mute.tcl
+install -pm 0755 %{SOURCE6} %{buildroot}%{_bindir}/tkradio.py
+install -pm 0755 fmcontrol/fmcontrol %{buildroot}%{_bindir}/fmcontrol.py
+install -pm 0644 fmcontrol/README README.fmcontrol
+
+# menu entry
+desktop-file-install \
+ --vendor "" \
+ --dir %{buildroot}%{_datadir}/applications \
+ %{SOURCE4}
+
+install -Dpm 0644 %{SOURCE5} %{buildroot}%{_datadir}/pixmaps/radio.png
+install -Dpm 0644 %{SOURCE7} %{buildroot}%{_datadir}/%{name}/fmlircrc
+install -Dpm 0644 %{SOURCE8} %{buildroot}%{_datadir}/%{name}/radio.gif
%clean
-rm -rf $RPM_BUILD_ROOT
+rm -rf %{buildroot}
-%files
+%files
%defattr(-,root,root,-)
-%doc CHANGES COPYING README README.fmcontrol fmcontrol/dot.*
-%{_bindir}/*
-%{_mandir}/man1/*
+%doc README COPYING
+%{_bindir}/fm
+%{_bindir}/fmscan
+%{_mandir}/man1/fm*.gz
+%files tkradio
+%defattr(-,root,root,-)
+%doc README.fmcontrol fmcontrol/dot.*
+%{_bindir}/tkradio*
+%{_bindir}/fmcontrol.py
+%{_datadir}/applications/fmtools.desktop
+%{_datadir}/pixmaps/radio.png
+%{_datadir}/%{name}/fmlircrc
+%{_datadir}/%{name}/radio.gif
%changelog
+
+* Sat Jan 09 2010 Paulo Roma <roma at lcg.ufrj.br> 2.0.1-1
+- Updated to 2.0.1
+- Removed fmtools.patch
+- Added man pages.
+
+* Thu Jan 07 2010 Paulo Roma <roma at lcg.ufrj.br> 2.0-10
+- Fixed grep expression in tkradio.py
+
+* Sat Jan 02 2010 Paulo Roma <roma at lcg.ufrj.br> 2.0-9
+- Added libnotify support.
+- Addded compression using oggenc.
+- Added window icon.
+
+* Sun Dec 30 2009 Paulo Roma <roma at lcg.ufrj.br> 2.0-8
+- Added recording support.
+
+* Sun Dec 27 2009 Paulo Roma <roma at lcg.ufrj.br> 2.0-7
+- Replaced fmcontrol for fmcontrol.py
+- Moved fmcontrol to tkradio package.
+- Added lirc support.
+
+* Sun Dec 23 2009 Paulo Roma <roma at lcg.ufrj.br> 2.0-5
+- Replaced BR tk for tkinter.
+
+* Sun Dec 23 2009 Paulo Roma <roma at lcg.ufrj.br> 2.0-4
+- Include tkradio.py
+- Fixed fmtools.desktop
+
+* Sun Dec 20 2009 Paulo Roma <roma at lcg.ufrj.br> 2.0-3
+- Packaging tkradio separately.
+
+* Sun Dec 20 2009 Paulo Roma <roma at lcg.ufrj.br> 2.0-2
+- Patched to make it work.
+- Added desktop entry.
+
+* Sun Dec 13 2009 Paulo Roma <roma at lcg.ufrj.br> 2.0-1
+- Initial v4l2 support provided by version 2.0
+- Included tkradio and fmcontrol.
+
* Fri Jul 24 2009 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.0.2-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
@@ -75,7 +141,7 @@ rm -rf $RPM_BUILD_ROOT
* Fri Oct 17 2008 kwizart < kwizart at gmail.com > - 1.0.2-4
- Rebuild for F-10
-* Sat Feb 9 2008 kwizart < kwizart at gmail.com > - 1.0.2-3
+* Sat Feb 09 2008 kwizart < kwizart at gmail.com > - 1.0.2-3
- Rebuild for gcc43
* Fri Sep 21 2007 kwizart <kwizart at gmail.com > - 1.0.2-2
@@ -87,6 +153,5 @@ rm -rf $RPM_BUILD_ROOT
* Sun Aug 26 2007 kwizart <kwizart at gmail.com > - 1.0.2-1
- Update to 1.0.2
-* Mon Sep 4 2006 TC Wan <tcwan at cs.usm.my>
+* Mon Sep 04 2006 TC Wan <tcwan at cs.usm.my>
- Built Version 1.0 for FC 5
-
Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/fmtools/devel/sources,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -p -r1.2 -r1.3
--- sources 24 Sep 2007 20:31:43 -0000 1.2
+++ sources 15 Jan 2010 20:00:00 -0000 1.3
@@ -1,2 +1,2 @@
-fe40296a7515f506c6b46a0ec7f056eb fmcontrol.tar.gz
-4bae0e5feeb8cbf4cfcb950301e9509d fmtools-1.0.2.tar.gz
+8accad958c3f0cd0fb582aad922857aa fmcontrol.tar.gz
+5b48f552180f18d46fe92124b2fcfca0 fmtools-2.0.1.tar.gz
More information about the scm-commits
mailing list