3
# Download updated flashplugins from Macromedia website.
5
# (C) 2002 Takuo KITAME <kitame@debian.org>
6
# You may freely distribute this file under the terms of the GNU General
7
# Public License, version 2 or later.
9
# $Id: update-flashplugin,v 1.1 2003/03/07 07:45:25 takuo Exp $
16
require '/etc/update-flashplugin.conf'
18
module UpdateFlashPlugin
19
include UpdateFlashPluginConf
22
attr_accessor :del, :local, :dir, :force, :check_only, :need_update
23
attr_accessor :proxy, :no_proxy, :quiet
29
@tar_sum = " 3de1fafb338dd82f1de596e8a3b31344"
30
@instdir = "/usr/lib/flashplugin-nonfree"
32
"libflashplayer.so" => "48b908ecac3b305d4eae6a66ae3fb4dd",
33
"flashplayer.xpt" => "a81fd3b03b8c6d6e5a14298110718d3f"
35
@linkdir = [ "/usr/lib/mozilla/plugins",
36
"/usr/lib/mozilla-snapshot/plugins",
37
"/usr/lib/mozilla-firebird/plugins",
38
"/usr/lib/mozilla-firefox/plugins"
47
@mirrors = UpdateFlashPlugin::SITES
51
print *str unless @quiet
55
if File.exist?(@instdir) && ! File.directory?(@instdir)
56
$stderr.print "E: File is not directory: #{@instdir}.\n"
59
elsif ! File.exist?(@instdir)
62
print "Checking md5sum...\n"
64
if ! File.exist?("#{@instdir}/#{f}")
65
_print "#{@instdir}/#{f} doesn't exist. Update\n"
68
if MD5.new(File.open("#{@instdir}/#{f}", 'r').binmode.read).hexdigest != s
69
_print "#{@instdir}/#{f} is outdated (didn't match md5sum). Update.\n"
73
_print "flashplugins don't need updating.\n "
77
def tempdir(tmpdir = "/tmp", base = "", max = 100)
81
tmpname = sprintf('%s/%s%d.%d', tmpdir, base, $$, n)
82
unless File.exist?(tmpname)
87
raise "cannot generate tempdir `%s'" % tmpname if n >= max
96
return true if @proxy_uri
97
if !@no_proxy && (@proxy || ENV["http_proxy"])
98
proxy_str = @proxy || ENV["http_proxy"] || nil
100
uri = URI::parse(ENV["http_proxy"])
101
@proxy_user = ["#{uri.userinfo}"].pack('m').strip
112
# http://macromedia.mplug.org/tarball/debian/install_flash_player_7_linux.tar.gz
116
fp = open("#{@tmpdir}/install_flash_player_7_linux.tar.gz", "w+")
118
path = @mirrors[host]
120
header['Proxy-Authorization'] = "Basic " + @proxy_user if @proxy_user
121
http = Net::HTTP::new(host, 80,
122
@proxy_uri.host, @proxy_uri.port)
124
http = Net::HTTP::new(host)
127
r = http.head("#{path}install_flash_player_7_linux.tar.gz", header)
128
rescue Errno::ECONNREFUSED
129
$stderr.print "E: Connection was refused: #{host}\n"
132
rescue Errno::EHOSTUNREACH
133
$stderr.print "E: No route to host: #{host}\n"
137
$stderr.print "E: Connection has been timed out: #{host}\n"
141
$stderr.print "E: Unknown HTTP error: #{host}\n"
149
t = r['content-length'].to_i
151
http.get("#{path}install_flash_player_7_linux.tar.gz", header) { |d|
153
p = sprintf("%.0f", c.to_f / t.to_f * 100)
154
_print "getting install_flash_player_7_linux.tar.gz [", c, "/", t, " (", p, "%)]\r"
164
file = @dir + "/install_flash_player_7_linux.tar.gz"
165
if !File.exist?(file)
166
$stderr.print "E: File: #{file} does not exist.\n"
170
if MD5.new(File.open("#{file}", 'r').binmode.read).hexdigest != @tar_sum
171
$stderr.print "E: md5sum of #{file} does not match with #{@tar_sum}.\n"
175
_print "use existing file: #{file}\n"
177
file = "install_flash_player_7_linux.tar.gz"
179
system("tar -xzf #{file} install_flash_player_7_linux/libflashplayer.so")
180
system("tar -xzf #{file} install_flash_player_7_linux/flashplayer.xpt")
185
_print "Removing old plugin files, and creating symlinks to new.\n"
189
File.delete("#{d}/#{f}") if File.exist?("#{d}/#{f}")
190
File.symlink("#{@instdir}/#{f}", "#{d}/#{f}")
196
_print "Removing plugin files and symlinks...\n"
199
File.delete("#{d}/#{f}") if File.exist?("#{d}/#{f}")
201
File.delete("#{@instdir}/#{f}") if File.exist?("#{@instdir}/#{f}")
203
File.delete("#{@instdir}/version") if File.exist?("#{@instdir}/version")
204
Dir.delete(@instdir) if File.exist?(@instdir)
208
Dir.chdir("#{@tmpdir}/install_flash_player_7_linux")
209
File.makedirs(@instdir)
210
File.install("libflashplayer.so", "#{@instdir}/libflashplayer.so")
211
File.install("flashplayer.xpt", "#{@instdir}/flashplayer.xpt")
216
_print "Updating flashplugin...\n"
217
tempdir("/tmp","flashupdater",100)
218
get_file( host ) unless @local
229
file = @instdir + "/version"
230
fp = File.open(file, "w+")
231
fp.print @version, "\n"
232
fp.print @tar_sum, "\n"
237
file = @instdir + "/version"
239
fp = File.open(file, "r")
240
@version = fp.gets.chomp
241
@tar_sum = fp.gets.chomp
244
@version = "not installed"
249
# check http://macromedia.mplug.org/tarball/debian/gpg-md5sums.txt
250
_print "Checking new upstream release...\n"
256
@mirrors.each { | host, path |
263
header['Proxy-Authorization'] = "Basic " + @proxy_user if @proxy_user
264
http = Net::HTTP::new(host, 80,
265
@proxy_uri.host, @proxy_uri.port)
267
http = Net::HTTP::new(host)
269
_print "I: checking http://#{host}#{path}...\n"
271
r , body = http.get("#{path}gpg-md5sums.txt", header)
273
if /^flash-plugin ([\d\.]*)$/ =~ l
276
elsif /^([0-9a-z]{32})\s+install_flash_player_7_linux.tar.gz$/ =~ l
282
rescue Errno::ECONNREFUSED
283
$stderr.print "E: Connection was refused: #{host}\n"
286
rescue Errno::EHOSTUNREACH
287
$stderr.print "E: No route to host: #{host}\n"
291
$stderr.print "E: Connection has been timed out: #{host}\n"
295
$stderr.print "E: Unknown HTTP error: #{host}\n"
301
$stderr.print "E: All failed.\n"
305
if version && @version != version
306
print "New version #{version} is detected (current: #{@version})\n"
310
_print "Do without \"-c\" option to upgrade.\n"
315
_print "No new version is detected. (#{version} = #{@version})\n"
320
def clean_tmp(error = false)
322
File.delete("#{@tmpdir}/install_flash_player_7_linux/#{f}") if File.exist?("#{@tmpdir}/install_flash_player_7_linux/#{f}")
325
if error and File.exist?("#{@tmpdir}/install_flash_player_7_linux.tar.gz")
326
File.delete("#{@tmpdir}/install_flash_player_7_linux.tar.gz")
331
File.delete("#{@dir}/install_flash_player_7_linux.tar.gz") if
332
File.exist?("#{@dir}/install_flash_player_7_linux.tar.gz")
334
File.delete("#{@tmpdir}/install_flash_player_7_linux.tar.gz") if
335
File.exist?("#{@tmpdir}/install_flash_player_7_linux.tar.gz")
338
if ! @local and ! error
339
_print "install_flash_player_7_linux.tar.gz was saved into #{@tmpdir}\n"
343
Dir.delete("#{@tmpdir}/install_flash_player_7_linux") if
344
File.exist?("#{@tmpdir}/install_flash_player_7_linux") &&
345
File.directory?("#{@tmpdir}/install_flash_player_7_linux")
346
Dir.delete(@tmpdir) if
347
File.exist?(@tmpdir) &&
348
File.directory?(@tmpdir) && (@del || @local)
357
print "You are not root.\n"
363
['--uninstall', '-u', GetoptLong::NO_ARGUMENT],
364
['--local-file', '-l', GetoptLong::REQUIRED_ARGUMENT],
365
['--proxy', '-p', GetoptLong::REQUIRED_ARGUMENT],
366
['--no-proxy', '-P', GetoptLong::NO_ARGUMENT],
367
['--delete-after', '-d', GetoptLong::NO_ARGUMENT],
368
['--force-update', '-f', GetoptLong::NO_ARGUMENT],
369
['--check-update', '-c', GetoptLong::NO_ARGUMENT],
370
['--quiet', '-q', GetoptLong::NO_ARGUMENT],
371
['--help', '-h', GetoptLong::NO_ARGUMENT]
372
# not implemented yet
373
# ['--create-symlink', '-c', GetoptLong::NO_ARGUMENT],
374
# ['--remove-symlink', '-r', GetoptLong::NO_ARGUMENT],
379
f = UpdateFlashPlugin::FlashUpdater.new()
382
opt.each_option { |name, arg|
383
f.del = true if name == "--delete-after"
384
if name == "--local-file"
388
f.force = true if name == "--force-update"
389
f.quiet = true if name == "--quiet"
390
f.proxy = arg if name == "--proxy"
391
f.no_proxy = true if name == "--no-proxy"
392
uninstall = true if name == "--uninstall"
393
help = true if name == "--help"
394
f.check_only = true if name == "--check-update"
402
usage: update-flashplugin [options]
404
--uninstall, -u -- uninstall
405
--local-file, -l <directory> -- use local file
406
--proxy, -p <http_proxy> -- use specified proxy
407
--no-proxy, -P -- don't use proxy
408
--delete-after, -d -- delete archive after install
409
--force-update, -f -- force update
410
--check-update, -c -- only check new version
411
--quiet, -q -- be quiet
412
--help, -h -- print this
414
see also update-flashplugin(8)
425
host = f.check_update
427
if ( f.force || f.need_update ) && ! f.check_only
429
if File.exist?("/usr/sbin/update-mozilla-chrome")
430
system("/usr/sbin/update-mozilla-chrome")
432
if File.exist?("/usr/sbin/update-mozilla-snapshot-chrome")
433
system("/usr/sbin/update-mozilla-snapshot-chrome")
435
if File.exist?("/usr/sbin/update-mozilla-firebird-chrome")
436
system("/usr/sbin/update-mozilla-firebird-chrome")
438
if File.exist?("/usr/sbin/update-mozilla-firefox-chrome")
439
system("/usr/sbin/update-mozilla-firefox-chrome")