ruby-debian-0.3.8build2/0000755000000000000000000000000011630763370011721 5ustar ruby-debian-0.3.8build2/bin/0000755000000000000000000000000011630763370012471 5ustar ruby-debian-0.3.8build2/bin/dpkg-checkdeps0000644000000000000000000001042311630763370015270 0ustar #!/usr/bin/ruby # # dpkg-checkdeps - utilities to check deb dependency # Copyright (c) 2001 Fumitoshi UKAI # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # $Id: dpkg-checkdeps.rb,v 1.6 2001/05/15 18:16:26 ukai Exp $ # require 'debian' require 'getoptlong' include Debian opts = GetoptLong.new(["--to", "-t", GetoptLong::REQUIRED_ARGUMENT], ["--check", "-c", GetoptLong::NO_ARGUMENT], ["--from", "-f", GetoptLong::REQUIRED_ARGUMENT], ["--arch", "-a", GetoptLong::REQUIRED_ARGUMENT], ["--all", "-A", GetoptLong::NO_ARGUMENT], ["--verbose", "-v", GetoptLong::NO_ARGUMENT], ["--quiet", "-q", GetoptLong::NO_ARGUMENT], ["--help", "-h", GetoptLong::NO_ARGUMENT]) $quiet = false $verbose = false arch = Dpkg.installation_architecture def usage puts "Usage: #{$0} [opts] [{packagename|package}...]" puts " #{$0} [--to ] --from ..." puts " #{$0} [--to ] --from -A" puts " #{$0} [--to ] ..." puts " #{$0} [--to ] --check " end $stdout.sync = true to_packages = nil from_packages = nil check_inset = false begin opts.each {|opt, arg| case opt when "--to" then if to_packages == nil to_packages = Packages.new end arg.gsub!(/\$ARCH/,arch) Dir[arg].each {|p| print "* Loading target #{p}..." if $verbose to_packages += Packages.new(p) print "done\n" if $verbose } when "--from" then if from_packages == nil from_packages = Packages.new end arg.gsub!(/\$ARCH/,arch) Dir[arg].each {|p| print "* Loading source #{p}..." if $verbose from_packages += Packages.new(p) print "done\n" if $verbose } when "--arch" then arch = arg print "* Architecture: #{arch}\n" if $verbose when "--all" then if from_packages == nil $stderr.puts "#{$0}: --all requires --from option" raise GetoptLong::InvalidOption end from_packages.pkgnames {|p| ARGV.push(p) } when "--check" then check_inset = true when "--verbose" then $verbose = true when "--quiet" then $quiet = true when "--help" then usage; exit 0 else raise GetoptLong::InvalidOption end } rescue GetoptLong::InvalidOption usage; exit 1 end if to_packages == nil print "* Loading target (dpkg status)..." if $verbose to_packages = Status.new print "done\n" if $verbose end if check_inset && from_packages == nil from_packages = to_packages end check_packages = to_packages check_debs = [] while arg = ARGV.shift if from_packages == nil deb = DpkgDeb.load(arg) else deb = from_packages[arg] end if deb == nil $stderr.puts "E: Package: #{arg} not found" exit 1 end if deb['architecture'] != arch && deb['architecture'] != 'all' next end check_debs.push(deb) check_packages[deb.package] = deb end unmets = 0 mets = 0 num = 0 if check_inset to_packages.each_package {|deb| print "* Checking #{deb}\n" if $verbose num += 1 safe = true deb.deps('depends').each {|dep| check_debs.each {|cdeb| if dep.include?(cdeb) && ! dep.satisfy?(cdeb) puts "E: #{deb} does not satisfy #{dep} against #{cdeb}" unmets += 1 safe = false end } } if safe mets += 1 end } else check_debs.each {|deb| print "* Checking #{deb}\n" if $verbose num += 1 safe = true deb.unmet(check_packages).each {|u| puts u unmets += 1 safe = false } if safe mets += 1 end } end puts "#{num} packages: #{unmets} unmet in #{num - mets} packages / #{mets} packages ok" unless $quiet exit (unmets == 0 ? 0 : 1) ruby-debian-0.3.8build2/bin/dpkg-ruby0000644000000000000000000000657111630763370014331 0ustar #!/usr/bin/ruby # # dpkg-ruby - ruby script to parse status,available and Packages,Sources # dpkg-awk clone # Copyright (c) 2001 Fumitoshi UKAI # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # $Id: dpkg-ruby,v 1.6 2001/04/20 19:07:00 ukai Exp $ # require 'debian' require 'getoptlong' filename = Debian::Dpkg::STATUS_FILE $debug = 0 sortfield = [] numfield = [] $rec_sep = "" def usage $stderr.puts "#{$0} [opts] 'field:regexp' .. -- 'output_field' .." $stderr.puts " opts: [-f file] [-d nn] [-s sf] [-n nf] [-rs rs]" end opts = GetoptLong.new( ["--file", "-f", GetoptLong::REQUIRED_ARGUMENT], ["--debug", "-d", GetoptLong::OPTIONAL_ARGUMENT], ["--sort", "-s", GetoptLong::REQUIRED_ARGUMENT], ["--numeric_field", "-n", GetoptLong::REQUIRED_ARGUMENT], ["--rec_sep", "--rs", GetoptLong::REQUIRED_ARGUMENT], ["--help", "-h", GetoptLong::NO_ARGUMENT]) opts.ordering = GetoptLong::REQUIRE_ORDER begin opts.each {|opt, arg| case opt when "--file" then filename = arg when "--debug" then if arg $debug = arg else $debug += 1 end when "--sort" then sortfield += arg.split(" ").collect{|a| a.split(",")} sortfield.flatten! when "--numeric_field" then numfield += arg.split(" ").collect{|a| a.split(",")} numfield.flatten! when "--rec_sep" then $rec_sep = arg when "--help" then usage; exit 0 else opts.terminate end } rescue GetoptLong::InvalidOption usage; exit 1 end field = {} $outputfield = [] while arg = ARGV.shift break if arg == "--" unless /^([^:]+):(.*)/ =~ arg $stderr.puts "E: invalid argument #{arg}" exit 1 end field[$1] = Regexp.new($2) end $outputfield = ARGV da = Debian::Archives.load(filename) def output(deb) if $outputfield.empty? deb.fields {|f| puts "#{f.capitalize}: #{deb[f]}" } puts $rec_sep elsif $outputfield[0] == '^' deb.fields {|f| unless $outputfield.find {|of| of.capitalize == f.capitalize } puts "#{f.capitalize}: #{deb[f]}" end } puts $rec_sep else $outputfield.each {|f| puts "#{f.capitalize}: #{deb[f]}" } if $rec_sep != "" || $outputfield.length > 1 puts $rec_sep end end end mp = [] da.each_package {|d| match = true field.each {|f,re| unless re =~ d[f] match = false break end } if match if sortfield.empty? output(d) else mp.push(d) end end } unless sortfield.empty? mp.sort{|a,b| d = 0 sortfield.each{|sf| if numfield.include?(sf) d = a[sf].to_i <=> b[sf].to_i else d = a[sf] <=> b[sf] end if d != 0 break end } d }.each {|d| output(d) } end ruby-debian-0.3.8build2/README0000644000000000000000000000265011630763370012604 0ustar dpkg-ruby - Ruby interface modules for dpkg /usr/bin/dpkg.rb - dpkg like program (under development) /usr/bin/dpkg-ruby - dpkg-awk clone /usr/bin/dpkg-checkdeps.rb - check deb dependency problem See also /usr/share/doc/libdpkg-ruby1.8/examples/ This program provides the following modules/class. (old, to be rewritten) Debian::Dpkg module Dpkg.compare_versions(a,rel,b) Dpkg.architecture Dpkg.gnu_build_architecture Dpkg.installation_architecture Debian::DpkgDeb module DpkgDeb.deb?(file) DpkgDeb.control(file) DpkgDeb.data(file) DpkgDeb.load(file) Debian::Deb class - for *.deb .package -> aString .source -> aString .version -> aString .provides -> array of aString [field] -> aString .unmet(aDebian::Packages) -> array of Debian::Dep::Unmet Debian::Dsc class - for *.dsc .package -> aString .version -> aString .binary -> array of aString [field] -> aString Debian::Archives class - parser of Packages,Sources + (aDebianArchives) -> aDebian::Archives .each {|pkgname, d| block } .each_key {|pkgname| block } Debian::Sources < Debian::Archives - parser of Sources Debian::Packages < Debian::Archives - parser of Packages [pkgname] -> aDebianDeb .provides(pkgname) -> array of aDebian::Deb Debian::Status < Debian::Archives - parser of dpkg status THANKS akira yamada - ruby coding style suggestions $Id: README,v 1.7 2001/04/27 21:42:12 ukai Exp $ ruby-debian-0.3.8build2/debian/0000755000000000000000000000000012320323331013125 5ustar ruby-debian-0.3.8build2/debian/ruby-debian.examples0000644000000000000000000000001311630763370017076 0ustar examples/* ruby-debian-0.3.8build2/debian/manpages0000644000000000000000000000000011630763370014647 0ustar ruby-debian-0.3.8build2/debian/copyright0000644000000000000000000000213311633535712015075 0ustar Format: http://anonscm.debian.org/viewvc/dep/web/deps/dep5.mdwn?revision=174&view=co Files: * Copyright: Copyright (C) 2001 Fumitoshi UKAI Copyright (C) 2009, 2011 Ryan Niebur License: GPL-2+ License: GPL-2+ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . You should have received a copy of the GNU General Public License along with this package; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA . On Debian systems, the full text of the GNU General Public License version 2 can be found in the file `/usr/share/common-licenses/GPL-2'. ruby-debian-0.3.8build2/debian/changelog0000644000000000000000000002305512320323331015004 0ustar ruby-debian (0.3.8build2) trusty; urgency=medium * No-change upload to drop dependencies on ruby1.8. -- Matthias Klose Sun, 06 Apr 2014 21:03:48 +0200 ruby-debian (0.3.8build1) precise; urgency=low * Rebuild against latest libapt. -- Angel Abad Mon, 30 Jan 2012 11:40:06 +0100 ruby-debian (0.3.8) unstable; urgency=low * rename package to ruby-debian for new Ruby library package naming standards * rename git repository and move to collab-maint * convert debian/copyright to DEP5 format - the license text says version 2 or any later version so point to the GPL-2 file instead of the symlink * correct hyphens in man page * remove unused debian/dh_ruby and debian/fixshbang.sh -- Ryan Niebur Tue, 20 Dec 2011 19:29:23 -0800 dpkg-ruby (0.3.7) unstable; urgency=low [ Francesco Poli (t1000) ] * add file name to broken archive exception (Closes: #590146) [ Ryan Niebur ] * close files once they're parsed (Closes: #585448) * Run dh-make-ruby and tweak things: - policy 3.9.2 - move everything into dpkg-ruby package, the rest become transitional - simplified debian/rules -- Ryan Niebur Sun, 04 Sep 2011 14:01:11 -0700 dpkg-ruby (0.3.6+nmu1) unstable; urgency=high * Non-maintainer upload. * Use StringValuePtr instead of the long-deprecated (and removed in ruby 1.9.1) STR2CSTR (closes: #593025). -- Julien Cristau Thu, 26 Aug 2010 17:43:59 +0200 dpkg-ruby (0.3.6) unstable; urgency=low * switch to ruby 1.9.1 (Closes: #565848) -- Ryan Niebur Fri, 29 Jan 2010 23:22:11 -0800 dpkg-ruby (0.3.5) unstable; urgency=low * fix some file leaks (Closes: #564117) -- Ryan Niebur Sat, 09 Jan 2010 04:29:00 -0800 dpkg-ruby (0.3.4) unstable; urgency=low * add myself to d/copyright, thanks to Barry deFreese * move Build-Depends-Indep to Build-Depends (Closes: #563450) -- Ryan Niebur Sun, 03 Jan 2010 12:12:44 -0800 dpkg-ruby (0.3.3) unstable; urgency=low * adopt package (Closes: #532927) * add Vcs-* fields * fix parsing .deb files, thanks to Junichi Uekawa (Closes: #390262) * stop using regexps for lists of packages, that doesn't work for large numbers (Closes: #552125) * rewrite compare_versions to use C bindings to apt-pkg instead of forking a dpkg process. this also makes the package arch:any. (closes: #390332, #432269) * fix README path and move it to libdpkg-ruby1.8 (Closes: 389273) * set Standards-Version to 3.8.3 * clean up a bit, use dh7, etc * add a ruby1.9 package (Closes: #528471) * if running 'tar -t', filter stderr to remove 'Record size = foo blocks' lines -- Ryan Niebur Fri, 01 Jan 2010 21:11:48 -0800 dpkg-ruby (0.3.2) unstable; urgency=low * man/dpkg-checkdeps. fix typo 'packges' closes: Bug#351000 * man/dpkg-ruby.1. fix typos closes: Bug#351001 * man/dpkg.rb.1. fix typo. closes: Bug#351002 * rename programs without .rb suffixes dpkg.rb is shipped as an example only. closes: Bug#220934 * stop building ruby1.6 module closes: Bug#366583 * lib/debian.rb: pkgs_re_escape() fix package names with '+' characters cause errors closes: Bug#366202 * lib/debian.rb: fix wrong instance variable usage debian.rb:712: warning: instance variable @file not initialized closes: Bug#272760 -- Fumitoshi UKAI Fri, 12 May 2006 02:40:56 +0900 dpkg-ruby (0.3.1) unstable; urgency=low * lib/debian.rb: preserve @info['Description'] * fix description. closes: Bug#192815 -- Fumitoshi UKAI Wed, 11 Aug 2004 00:28:35 +0900 dpkg-ruby (0.3.0) unstable; urgency=low * ruby1.8 transision * multi packaged: libdpkg-ruby1.8 and libdpkg-ruby1.6 * lib/debian.rb: define Hash.values_at for ruby1.6 paren for args for ruby1.8 use .class instead of .type for ruby1.8 use Hash.values_at instead of Hash.indexes for ruby1.8 * lib/debian/ar.rb: paren for args for ruby1.8 * lib/debian/utils.rb: waitpid redirect by using IO.reopen instead of assignment to $std* paren for args for ruby1.8 * t: fix test program for both ruby1.6 and ruby1.8 -- Fumitoshi UKAI Wed, 8 Oct 2003 02:10:23 +0900 dpkg-ruby (0.2.4) unstable; urgency=low * Makefile: fix to use $(RUBY) instead of ruby closes: Bug#209156 -- Fumitoshi UKAI Mon, 8 Sep 2003 13:53:33 +0900 dpkg-ruby (0.2.3) unstable; urgency=low * depends on ruby1.6 -- Fumitoshi UKAI Mon, 8 Sep 2003 00:16:03 +0900 dpkg-ruby (0.2.2) unstable; urgency=low * s/ControlError/FieldError/ closes: Bug#165622 -- Fumitoshi UKAI Sat, 26 Oct 2002 03:15:06 +0900 dpkg-ruby (0.2.1) unstable; urgency=low * fix for new ruby 1.6.6 -- Fumitoshi UKAI Sun, 6 Jan 2002 23:42:50 +0900 dpkg-ruby (0.2) unstable; urgency=low * (lib/debian.rb) add Debian::Dep::Term#kind_of? add Debian::Deb#deps(relation_field) * (bin/dpkg-checkdeps.rb) add --check * (man/dpkg-checkdeps.rb.1) add --check -- Fumitoshi UKAI Wed, 16 May 2001 02:41:46 +0900 dpkg-ruby (0.1.1) unstable; urgency=low * fix typo in examples -- Fumitoshi UKAI Thu, 3 May 2001 00:11:16 +0900 dpkg-ruby (0.1) unstable; urgency=low * Initial Release. closes: Bug#94378 -- Fumitoshi UKAI Sun, 29 Apr 2001 01:59:19 +0900 dpkg-ruby (0.0.9.3) unstable; urgency=low * Release Candidate 2 * (lib/debian.rb) Deb.unmet takes relation fields parameter * (bin/dpkg-checkdeps.rb) fix --from wildcard -- Fumitoshi UKAI Sat, 28 Apr 2001 06:41:54 +0900 dpkg-ruby (0.0.9.2) unstable; urgency=low * (bin/dpkg-checkdeps.rb) support wildcard for --to and --from arguments -- Fumitoshi UKAI Sat, 28 Apr 2001 04:33:33 +0900 dpkg-ruby (0.0.9.1) unstable; urgency=low * don't raise exception when E: duplicate package entry * (bin/dpkg-checkdeps.rb) - performance tuning - change -a option for --arch - -A option for --all -- Fumitoshi UKAI Sat, 28 Apr 2001 04:09:01 +0900 dpkg-ruby (0.0.9) unstable; urgency=low * Release Candidate 1 * add dpkg-checkdeps.rb * separate debian/utils.rb (gunzip, tar, [pipeline]) OK (130/130 tests 4563 asserts) -- Fumitoshi UKAI Sat, 28 Apr 2001 01:29:11 +0900 dpkg-ruby (0.0.8.1) unstable; urgency=HIGH * missing install debian/ar.rb -- Fumitoshi UKAI Fri, 27 Apr 2001 12:33:45 +0900 dpkg-ruby (0.0.8) unstable; urgency=low * add Debian::Ar * Debian::DpkgDeb.{pipeline,gunzip,tar} OK (132/132 tests 4564 asserts) -- Fumitoshi UKAI Fri, 27 Apr 2001 05:00:17 +0900 dpkg-ruby (0.0.7) unstable; urgency=low * Debian::DpkgDeb.load * Debian::Deb - filename - control,controlFile,controlData - data,dataFile,dataData - sys_tarfile OK (129/129 tests 4512 asserts) -- Fumitoshi UKAI Tue, 24 Apr 2001 02:30:06 +0900 dpkg-ruby (0.0.6) unstable; urgency=low * module Control -> Field * SELECTION_ID, EFLAG_ID, STATUS_ID -> Debian::Deb * fix dpkg.rb.1 -- Fumitoshi UKAI Mon, 23 Apr 2001 01:43:45 +0900 dpkg-ruby (0.0.5) unstable; urgency=low * (bin/{dpkg-ruby, dpkg.rb}): rescue GetoptLong::InvalidOption * add/cleanup APIs - Debian::Control.maintainer - Debian::Archives.load - Debian::Deb.*? - status, selection test * add dpkg.rb.1 OK (117/117 tests 4472 asserts) -- Fumitoshi UKAI Sun, 22 Apr 2001 04:18:35 +0900 dpkg-ruby (0.0.4.1) unstable; urgency=HIGH * fix broken /usr/bin/dpkg-ruby, /usr/bin/dpkg.rb -- Fumitoshi UKAI Sat, 21 Apr 2001 02:32:38 +0900 dpkg-ruby (0.0.4) unstable; urgency=low * add several APIs - Debian::Dpkg.{status,selections,avail,listfiles,search} - Debian::Deb.files - Debian::Archives.packages - Debian::Status * deleyed parse - make test => OK (OK (98/98 tests 4436 asserts) * add /usr/bin/dpkg.rb -- Fumitoshi UKAI Sat, 21 Apr 2001 01:51:38 +0900 dpkg-ruby (0.0.3) unstable; urgency=low * add test suites using rubyunit - make test => OK (87/87 tests 359 asserts) * fix several bugs found with rubyunit -- Fumitoshi UKAI Fri, 20 Apr 2001 09:29:03 +0900 dpkg-ruby (0.0.2) unstable; urgency=low * (lib/debian.rb) - fix typo in Dpkg.*architecture() - change Dpkg.info -> Dpkg.field - Debian::Control.parse -> parseFields - simplify Debian::Dep.to_s, suggested by akira yamada - use NotImplementedError, suggested by akira yamada - fix '<<', '>>' * fix dependency to ruby version -- Fumitoshi UKAI Thu, 19 Apr 2001 22:35:22 +0900 dpkg-ruby (0.0.1) unstable; urgency=low * apply suggestions from akira yamada - Exception -> StandardError to catch rescue without args - remove Dpkg. prefix in module Dpkg, use module_function * module Debian - all modules, classes are in Debian module, API change * add several method for Debian::Archives: +,-,&,<<,>>, ... * add bin/dpkg-ruby -- dpkg-awk clone * add man/dpkg-ruby.1 * add Debian::Dpkg.*architecture module functions * update examples/* -- Fumitoshi UKAI Thu, 19 Apr 2001 19:25:32 +0900 dpkg-ruby (0.0) unstable; urgency=low * Initial Release. closes: Bug#94378 -- Fumitoshi UKAI Thu, 19 Apr 2001 01:23:25 +0900 ruby-debian-0.3.8build2/debian/ruby-debian.manpages0000644000000000000000000000004511630763370017060 0ustar man/dpkg-checkdeps.1 man/dpkg-ruby.1 ruby-debian-0.3.8build2/debian/compat0000644000000000000000000000000211630763370014341 0ustar 7 ruby-debian-0.3.8build2/debian/control0000644000000000000000000000423511633540566014555 0ustar Source: ruby-debian Section: ruby Priority: optional Maintainer: Ryan Niebur Build-Depends: debhelper (>= 7.0.50~), gem2deb (>= 0.2.7~), libapt-pkg-dev Vcs-Git: git://git.debian.org/collab-maint/ruby-debian.git Vcs-Browser: http://git.debian.org/?p=collab-maint/ruby-debian.git;a=summary Standards-Version: 3.9.2 XS-Ruby-Versions: all Package: ruby-debian Architecture: any XB-Ruby-Versions: ${ruby:Versions} Replaces: libdpkg-ruby (<< 0.3.7~), libdpkg-ruby1.8 (<< 0.3.7~), libdpkg-ruby1.9.1 (<< 0.3.7~), dpkg-ruby (<< 0.3.8~) Breaks: libdpkg-ruby (<< 0.3.7~), libdpkg-ruby1.8 (<< 0.3.7~), libdpkg-ruby1.9.1 (<< 0.3.7~), dpkg-ruby (<< 0.3.8~) Provides: libdpkg-ruby, libdpkg-ruby1.8, libdpkg-ruby1.9.1, dpkg-ruby Depends: ${shlibs:Depends}, ${misc:Depends}, ruby | ruby-interpreter Description: ruby interface for dpkg This package provides Debian::Dpkg and Debian::DpkgDeb modules and Debian::Deb, Debian::Dsc, Debian::Archives, Debian::Sources, Debian::Packages and Debian::Status classes for ruby. . It also provides two scripts, dpkg-ruby (a dpkg-awk clone) and dpkg-checkdeps (a utility to check for deb dependency problems). Package: dpkg-ruby Architecture: all Section: oldlibs Depends: ${misc:Depends}, ruby-debian (>= 0.3.8) Description: Transitional package for ruby-debian This is a transitional package to ease upgrades to the ruby-debian package. It can safely be removed. Package: libdpkg-ruby Section: oldlibs Architecture: all Depends: ${misc:Depends}, ruby-debian (>= 0.3.8) Description: Transitional package for ruby-debian This is a transitional package to ease upgrades to the ruby-debian package. It can safely be removed. Package: libdpkg-ruby1.8 Section: oldlibs Architecture: all Depends: ${misc:Depends}, ruby-debian (>= 0.3.8) Description: Transitional package for ruby-debian This is a transitional package to ease upgrades to the ruby-debian package. It can safely be removed. Package: libdpkg-ruby1.9.1 Section: oldlibs Architecture: all Depends: ${misc:Depends}, ruby-debian (>= 0.3.8) Description: Transitional package for ruby-debian This is a transitional package to ease upgrades to the ruby-debian package. It can safely be removed. ruby-debian-0.3.8build2/debian/dirs0000644000000000000000000000002511630763370014024 0ustar usr/bin usr/lib/ruby ruby-debian-0.3.8build2/debian/rules0000755000000000000000000000070111630763370014221 0ustar #!/usr/bin/make -f #export DH_VERBOSE=1 # # Uncomment to ignore all test failures (but the tests will run anyway) #export DH_RUBY_IGNORE_TESTS=all # # Uncomment to ignore some test failures (but the tests will run anyway). # Valid values: #export DH_RUBY_IGNORE_TESTS=ruby1.8 ruby1.9.1 require-rubygems # # If you need to specify the .gemspec (eg there is more than one) #export DH_RUBY_GEMSPEC=gem.gemspec %: dh $@ --buildsystem=ruby --with ruby ruby-debian-0.3.8build2/debian/source/0000755000000000000000000000000011630763370014443 5ustar ruby-debian-0.3.8build2/debian/source/format0000644000000000000000000000001511630763370015652 0ustar 3.0 (native) ruby-debian-0.3.8build2/debian/ruby-debian.docs0000644000000000000000000000001511630763370016212 0ustar README TODO ruby-debian-0.3.8build2/examples/0000755000000000000000000000000011630763370013537 5ustar ruby-debian-0.3.8build2/examples/unmet_packages.rb0000644000000000000000000000174311630763370017057 0ustar #!/usr/bin/ruby # Copyright (c) Fumitoshi UKAI # GPL2 require 'debian' require 'getoptlong' file='' top='/org/ftp.debian.org/ftp/dists/stable' arch=Debian::Dpkg.installation_architecture opts = GetoptLong.new( ["--file", "-f", GetoptLong::REQUIRED_ARGUMENT], ["--arch", "-a", GetoptLong::REQUIRED_ARGUMENT], ["--top", "-t", GetoptLong::REQUIRED_ARGUMENT], ["--help", "-h", GetoptLong::NO_ARGUMENT]) opts.each {|opt,val| case opt when "--file" then file = val when "--arch" then arch = val when "--top" then top = top else $stderr.puts "usage: $0 [-a arch] [-t top] [-f file]" exit 1 end } packages = Debian::Packages.new Debian::COMPONENT.collect {|c| f = file if file == "" f = "#{top}/#{c}/binary-#{arch}/Packages" end packages += Debian::Packages.new(f) } packages.each_package {|p| puts "#{p}: " + (p.provides ? ("(=>" + p.provides.join(",") + ")") : "") puts p.unmet(packages).each {|u| u.to_s } } ruby-debian-0.3.8build2/examples/dpkg.rb0000644000000000000000000000550311630763370015014 0ustar #!/usr/bin/ruby # # dpkg.rb - ruby script dpkg compatible interfaces # Copyright (c) 2001 Fumitoshi UKAI # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # $Id: dpkg.rb,v 1.5 2001/04/22 16:39:29 ukai Exp $ # require 'debian' require 'getoptlong' include Debian opts = GetoptLong.new( ["--list", "-l", GetoptLong::NO_ARGUMENT], ["--status", "-s", GetoptLong::NO_ARGUMENT], ["--get-selections", GetoptLong::NO_ARGUMENT], ["--print-avail", GetoptLong::NO_ARGUMENT], ["--listfiles", "-L", GetoptLong::NO_ARGUMENT], ["--search", "-S", GetoptLong::NO_ARGUMENT], ["--help", "-h", GetoptLong::NO_ARGUMENT]) opts.ordering = GetoptLong::REQUIRE_ORDER def usage puts "Usage:" puts " #{$0} --list [ ...]" puts " #{$0} --status [ ...]" puts " #{$0} --get-selections [ ...]" puts " #{$0} --print-avail [ ...]" puts " #{$0} --listfiles [ ...]" puts " #{$0} --search [ ...]" puts " #{$0} --help" end func = Proc.new {|args| $stderr.puts "#{$0}: need an action option"} begin opts.each {|opt, arg| case opt when "--list" then func = Proc.new {|args| Dpkg.status(args).each_package {|deb| puts [Deb::SELECTION_ID[deb.selection] + Deb::STATUS_ID[deb.status] + Deb::EFLAG_ID[deb.ok], deb.package, deb.version, deb.description].join(" ") } } when "--status" then func = Proc.new {|args| Dpkg.status(args).each_package {|deb| puts deb.info_s } } when "--get-selections" then func = Proc.new {|args| Dpkg.selections(args).each_package {|deb| puts [deb.package, deb.selection].join("\t") } } when "--print-avail" then func = Proc.new {|args| Dpkg.avail(args).each_package {|deb| puts deb.info_s } } when "--listfiles" then func = Proc.new {|args| Dpkg.listfiles(args).each {|dlist| puts dlist puts } } when "--search" then func = Proc.new {|args| Dpkg.search(args).each {|m| puts "#{m[0]}: #{m[1]}" } } when "--help" then usage; exit 0 else raise GetoptLong::InvalidOption end } rescue GetoptLong::InvalidOption usage; exit 1 end func.call(ARGV) ruby-debian-0.3.8build2/examples/list_packages.rb0000644000000000000000000000157211630763370016702 0ustar #!/usr/bin/ruby # Copyright (c) 2001 Fumitoshi UKAI # GPL2 require 'debian' require 'getoptlong' file='' top='/org/ftp.debian.org/ftp/dists/stable' arch=Debian::Dpkg.installation_architecture opts = GetoptLong.new( ["--file", "-f", GetoptLong::REQUIRED_ARGUMENT], ["--arch", "-a", GetoptLong::REQUIRED_ARGUMENT], ["--top", "-t", GetoptLong::REQUIRED_ARGUMENT], ["--help", "-h", GetoptLong::NO_ARGUMENT]) opts.each {|opt,val| case opt when "--file" then file = val when "--arch" then arch = val when "--top" then top = top else $stderr.puts "usage: $0 [-a arch] [-t top] [-f file]" exit 1 end } packages = Debian::Packages.new Debian::COMPONENT.collect {|c| f = file if file == "" f = "#{top}/#{c}/binary-#{arch}/Packages" end packages += Debian::Packages.new(f) } packages.each_package {|p| puts p } ruby-debian-0.3.8build2/examples/ONE_LINER0000644000000000000000000000240311630763370015033 0ustar # 1 liner collections # Copyright (c) 2001 Fumitoshi UKAI # GPL2 # $Id: ONE_LINER,v 1.8 2001/05/02 15:10:38 ukai Exp $ # # get depends ruby -r debian -e 'puts Debian::Dpkg.field("w3m_0.1.10+0.1.11pre+kokb23-3_i386.deb")["depends"]' # get package providing virtual package in question ruby -r debian -e 'puts Debian::Dpkg.avail.provides["www-browser"]' # get hold packages ruby -r debian -e 'puts Debian::Dpkg.status.packages.find_all {|pkg| pkg.hold? }' # search package containing IPv6 in description from Packages ruby -r debian -e 'puts Debian::Dpkg.avail.packages.find_all {|pkg| /IPv6/ =~ pkg["description"]}' # search binary packages from source package in question ruby -r debian -e 'puts Debian::Dpkg.avail.packages.find_all {|pkg| pkg.source == "migemo" }' # search source package providing the binary in question ruby -r debian -e 'Debian::Sources.new("/org/ftp.jp.debian.org/ftp/debian/dists/stable/main/source/Sources.gz").each_package {|dsc| puts "#{dsc}" if dsc.binary.find {|b| b == "xserver-svga" }}' # count number of package by maintainer ruby -r debian -e 'np = Hash.new(0); nth = 1; Debian::Dpkg.avail.each_package {|deb| np[deb.maintainer] += 1 }; np.sort {|a,b| b[1] <=> a[1]}.each {|n| puts "#{nth}) #{n[0]}: #{n[1]}"; nth += 1 }' ruby-debian-0.3.8build2/lib/0000755000000000000000000000000011630763370012467 5ustar ruby-debian-0.3.8build2/lib/debian/0000755000000000000000000000000011630763370013711 5ustar ruby-debian-0.3.8build2/lib/debian/utils.rb0000644000000000000000000000503511630763370015401 0ustar # # utils.rb - ruby utilities interface for debian.rb (gunzip, tar, ..) # Copyright (c) 2001 Fumitoshi UKAI # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # $Id: utils.rb,v 1.2 2003/10/07 17:07:02 ukai Exp $ # module Debian module Utils GUNZIP = '/bin/gunzip' TAR = '/bin/tar' TAR_EXTRACT = '-x' TAR_LIST = '-t' def Utils.pipeline(io,progs,stderr = false) Signal.trap('CHLD', 'IGNORE') # wr0 -> rd0 [gunzip] wr -> rd rd,wr = IO.pipe rde,wre = IO.pipe pid = fork if pid # parent wr.close wre.close if block_given? return yield(rd, rde) else return rd, rde end else # child rd.close rd0, wr0 = IO.pipe pid2 = fork if pid2 # gunzip wr0.close STDOUT.reopen(wr) STDERR.reopen(wre) if stderr STDIN.reopen(rd0) ENV["LANG"] = "C" ENV["LC_ALL"] = "C" exec(*progs) # XXX: waitpid(pid2?) else rd0.close while ! io.eof? wr0.write(io.read(4096)) end exit 0 end end Process.waitpid(pid, 0) Process.wait end def gunzip(io) Utils.pipeline(io, [GUNZIP]) {|fp,fpe| fpe.close if block_given? return yield(fp) else return fp end } end def tar(io,op,*pat) progs = [TAR, op, '--wildcards', '-f', '-'] if pat[0] progs += ['--to-stdout', *pat] end Utils.pipeline(io,progs,op == "-t") {|fp,fpe| if op == "-t" pid = fork if pid # parent else while !fpe.eof? && str = fpe.readline unless str.match(/^\/bin\/tar: Record size = [0-9]+ blocks$/) STDERR.puts str end end exit end end fpe.close if block_given? return yield(fp) else return fp end } end module_function :gunzip, :tar end end ruby-debian-0.3.8build2/lib/debian/ar.rb0000644000000000000000000001005211630763370014636 0ustar # # ar.rb - ar(1) ruby interface (for debian.rb) # Copyright (c) 2001 Fumitoshi UKAI # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # $Id: ar.rb,v 1.3 2003/10/07 17:07:02 ukai Exp $ # # struct ar_hdr # { # char ar_name[16]; /* Member file name, sometimes / terminated. */ # char ar_date[12]; /* File date, decimal seconds since Epoch. */ # char ar_uid[6], ar_gid[6]; /* User and group IDs, in ASCII decimal. */ # char ar_mode[8]; /* File mode, in ASCII octal. */ # char ar_size[10]; /* File size, in ASCII decimal. */ # char ar_fmag[2]; /* Always contains ARFMAG. */ # }; module Debian class ArError < StandardError; end class Ar ARMAG = "!\n" SARMAG = 8 ARFMAG = "`\n" AR_HDR_SIZE = (16+12+6+6+8+10+2) class ArFile class Stat def initialize(time,uid,gid,mode,size,dev) @time, @uid, @gid, @mode, @size, @dev = time,uid,gid,mode,size,dev end def <=>(s) @time <=> s.atime; end def atime; @time; end def blksize; 0; end def blockdev?; false; end def blocks; 0; end def chardev?; false; end def ctime; @time; end def dev; @dev; end def directory?; false; end def executable?; false; end def executable_real?; false; end def file?; true; end def ftype; 'file'; end def gid; @gid; end def grpowned?; false; end def ino; @dev; end def mode; @mode; end def mtime; @time; end def nlink; 1; end def owned?; false; end def pipe?; false; end def rdev; @dev; end def readable?; true; end def readable_real?; true; end def setgid?; false; end def setuid?; false; end def size; @size; end def size?; @size == 0 ? nil : @size; end def socket?; false; end def sticky?; false; end def symlink?; false; end def uid; @uid; end def writable?; false; end def writable_real?; false; end def zero?; @size == 0; end end def initialize(fp,name,date,uid,gid,mode,size,pos) @fp,@name = fp,name @stat = Stat.new(date,uid,gid,mode,size,pos) @size = size @pos = pos @cur = 0 end attr_reader :name, :size, :pos, :cur, :stat def read(size = -1) if size < 0 size = @size - @cur end if @cur + size > @size size = @size - @cur end @fp.seek(@pos + @cur, IO::SEEK_SET) r = @fp.read(size) @cur += r.size return r end def eof?; @cur == @size; end def rewind; @cur = 0; end end def initialize(file) @fp = File.open(file) magic = @fp.gets unless magic == ARMAG raise ArError, "archive broken: #{file}" end @ofs = [] end def close @fp.close end def list @fp.seek(SARMAG, IO::SEEK_SET) while ! @fp.eof? hdr = @fp.read(AR_HDR_SIZE) name,date,uid,gid,mode,size,fmag = hdr.unpack('a16a12a6a6a8a10a2') unless fmag == ARFMAG raise ArError, "invalid archive field magic #{fmag} @ #{@fp.pos} [#{hdr}]" end name.strip! size = size.to_i @ofs.push(ArFile.new(@fp, name,Time.at(date.to_i), uid.to_i, gid.to_i, mode.oct, size, @fp.pos)) # puts "hdr=[#{hdr}] pos=#{@fp.pos}, size=#{size} #{(size + 1)&~1}" @fp.seek((size + 1)&~1, IO::SEEK_CUR) end @ofs end def each_file if @ofs.empty?; list; end @ofs.each {|file| yield file.name, file } end def open(name) if @ofs.empty?; list; end @ofs.each {|file| if file.name == name if block_given? return yield(file) else return file end end } end end end ruby-debian-0.3.8build2/lib/debian.rb0000644000000000000000000006006011630763370014240 0ustar # # debian.rb - ruby interface for dpkg # Copyright (c) 2001 Fumitoshi UKAI # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # $Id: debian.rb,v 1.33 2003/10/07 17:07:02 ukai Exp $ # require 'debian/ar' require 'debian/utils' require 'debian_version' # ruby1.6 does not have Hash.values_at, but ruby1.8 prefers it unless Hash.new.respond_to? :values_at class Hash alias_method :values_at, :indexes end end module Debian class Error < StandardError; end COMPONENT = ['main', 'contrib', 'non-free'] ################################################################ module Dpkg DPKG = '/usr/bin/dpkg' AVAILABLE_FILE = '/var/lib/dpkg/available' STATUS_FILE = '/var/lib/dpkg/status' PACKAGE_INFO_DIR = '/var/lib/dpkg/info' def status(pkgs=[]) status = Packages.new(STATUS_FILE,pkgs) status += Packages.new(AVAILABLE_FILE,pkgs, ['package','priority','section']) return status end def selections(pkgs=[]) Packages.new(STATUS_FILE,pkgs) end def avail(pkgs=[]) Packages.new(AVAILABLE_FILE,pkgs) end def listfiles(pkgs=[]) Status.new(pkgs).values.collect {|pkg| pkg.data } end def search(pats=[]) pat = Regexp.new("(" + pats.join("|") + ")") r = [] Dir[File.join(PACKAGE_INFO_DIR, "*.list")].each {|fn| pkg = File.basename(fn).gsub(/.list$/,"") File.open(fn) {|f| f.readlines.grep(pat).collect {|l| r.push([pkg, l.chomp]) } } } r end def compare_versions(a, rel, b) return Debian::Version.cmp_version(a, rel, b) end def field(debfile, fld=[]) deb = DpkgDeb.load(debfile) if !fld.empty? flv = [] fld.each {|fl| flv.push(deb[fl]) } flv else return deb end end def architecture() # gcc --print-libgcc-file-name => archtable %x{#{DPKG} --print-architecture}.chomp! end def gnu_build_architecture() # gcc --print-libgcc-file-name => archtable %x{#{DPKG} --print-gnu-build-architecture}.chomp! end def installation_architecture() # dpkg build time configuration? %x{#{DPKG} --print-installation-architecture}.chomp! end module_function :status, :selections, :avail module_function :listfiles, :search module_function :compare_versions, :field module_function :architecture module_function :gnu_build_architecture, :installation_architecture end module DpkgDeb DEBFORMAT_VERSION = "2.0\n" def deb?(debfile) begin f = Debian::Ar.new(debfile) res = (f.open("debian-binary").read == DEBFORMAT_VERSION) f.close return res rescue NameError, Debian::ArError false end end def assert_deb?(debfile) unless deb?(debfile) raise Debian::Error, "`#{debfile}' is not a debian format archive" end end def control(debfile) load(debfile).control end def data(debfile) load(debfile).data end def load(debfile) info = '' ar = Debian::Ar.new(debfile) ar.open('control.tar.gz') {|ctz| Debian::Utils::gunzip(ctz) {|ct| Debian::Utils::tar(ct, Debian::Utils::TAR_EXTRACT, '*/control'){|fp| info = fp.readlines.join("") fp.close } ct.close } } ar.close deb = Deb.new(info) deb.filename = File.expand_path(debfile, Dir.getwd) deb.freeze return deb end module_function :deb?, :assert_deb? module_function :control, :data module_function :load end ################################################################ class FieldError < Error; end module Field def parseFields(c, rf=[], wf=[]) @info_s = c @info = {} @fields = [] cs = c.split("\n") field = '' unless wf.empty? wf += rf end while line = cs.shift line.chomp! if /^\s/ =~ line if field == '' raise Debian::FieldError, "E: invalid format #{line} in #{line}" end if wf.empty? || wf.find {|f| f.capitalize == field } @info[field] += "\n" + line end elsif /(^\S+):\s*(.*)/ =~ line (field = $1).capitalize! if wf.empty? || wf.find {|f| f.capitalize == field } @fields.push(field) if @info[field] raise Debian::FieldError, "E: duplicate control info #{field} in #{line}" end @info[field] = $2.strip end end end rf.each {|f| unless @info[f.capitalize] raise Debian::FieldError, "E: required field #{f} not found in #{c}" end } @package = @info['Package'] @version = @info['Version'] || "" @maintainer = @info['Maintainer'] || "" return @info end def fields if block_given? @fields.each {|f| yield f } else @fields end end def [](field) return @info[field.capitalize]; end def to_s() return "#{@package} #{@version}"; end def === (deb) deb and self.package == deb.package; end def < (deb) self === deb and Dpkg.compare_versions(self.version, '<<', deb.version) end def <= (deb) self === deb and Dpkg.compare_versions(self.version, '<=', deb.version) end def == (deb) self === deb and Dpkg.compare_versions(self.version, '=', deb.version) end def >= (deb) self === deb and Dpkg.compare_versions(self.version, '>=', deb.version) end def > (deb) self === deb and Dpkg.compare_versions(self.version, '>>', deb.version) end attr_reader :info_s, :info, :package, :version, :maintainer end ################################################################ class DepError < Error; end class Dep # Dependency: [| ]* DEP_OPS = ['<<', '<=', '=', '>=', '>>'] DEP_OPS_RE = Regexp.new("([-a-z0-9.+]+)\\s*\\(\\s*(" + DEP_OPS.join("|") + ")\\s*([^)]+)\\)") class Unmet def initialize(dep, deb) # `deb' doesnt satisfy `dep' dependency # deb == nil, then such package not found @package = nil @relation = nil @dep = dep @deb = deb end attr_reader :dep, :deb def package() @package; end def package=(p) if @package raise DepError, "E: trying package override" end @package = p end def relation() @relation; end def relation=(r) if @relation raise DepError, "E: trying relation override" end @relation = r end def to_s s = "" if @package s += "#{@package} " end if @relation s += "#{@relation} " end s += "#{dep} unmet " if @deb s += "#{@deb}" if @deb.package != dep.package s += " (provides #{dep.package})" end else s += "#{dep.package} not found" end return s end def ==(unmet) @package == unmet.package && @relation == unmet.relation && @dep == unmet.dep && @deb == unmet.deb end end class Term # Dependency term: [( )] def initialize(package, op = "", version = "") @package = package @op = op @version = version end attr_reader :package, :op, :version def to_s() s = @package if @op != "" && @version != "" s += " (#{@op} #{@version})" end s end def satisfy?(deb) case @op when "<<" then return deb < self when "<=" then return deb <= self when "=" then return deb == self when ">=" then return deb >= self when ">>" then return deb > self when "" then return true if deb === self deb.provides.each {|pp| return true if pp == @package } return false else raise Debian::DepError, "E: unknown operation #{@op}" end end def unmet(packages) us = [] p = packages.provides(@package) if !p || p.empty? return [Unmet.new(self, nil)] end p.each {|deb| if satisfy?(deb) return [] end u = Unmet.new(self, deb) us.push(u) } return us.flatten.compact end def == (t) @package == t.package && @op == t.op && @version == t.version end end ## Dep::Term def initialize(deps, rel) @deps = [] @rel = rel deps.split("|").each {|dep| dep.strip! # puts DEP_OPS_RE.source if DEP_OPS_RE =~ dep # puts "P:#{$1} R:#{$2} V:#{$3}" @deps.push(Term.new($1,$2,$3)) else # puts "P:#{dep}" @deps.push(Term.new(dep)) end } end def to_s() "#{@rel} " + @deps.join(" | "); end def unmet(packages) us = [] @deps.each {|dep| u = dep.unmet(packages) # if one of dep is satisfied, it's ok. OR relations if u.empty? return [] end us.push(u) } return us end def satisfy?(deb) @deps.each {|dep| if dep.satisfy?(deb) return true end } return false end def include?(deb) @deps.each {|dep| if deb === dep return true end } return false end end ################################################################ class Deb include Field @@reqfields = ['package'].collect {|f| f.capitalize } # 'version', 'maintainer', 'description': -- not used in status if remove # 'section','priority': not used in status in some case # 'architecture': not used in status @@dependency = ['depends', 'recommends', 'suggests', 'pre-depends', 'enhances', 'conflicts', 'replaces'].collect {|f| f.capitalize } # dpkg/lib/parsehelp.c, dpkg/main/enquiry SELECTION_ID = { "unknown" => "u", "install" => "i", "hold" => "h", "deinstall" => "r", "purge" => "p", } EFLAG_ID = { "ok" => " ", "reinstreq" => "R", "hold" => "?", "hold-reinstreq" => "#" } STATUS_ID = { "not-installed" => "n", "unpacked" => "U", "half-configured" => "F", "installed" => "i", "half-installed" => "H", "config-files" => "c", # "postinst-failed" backward compat? # "removal-failed" backward compat? } # XXX: files in maintainer scripts from *.deb def initialize(info_s, fields=[]) parseFields(info_s, @@reqfields, fields) @source = @info['Source'] || @package @provides = [] if @info['Provides'] @provides = @info['Provides'].split(",").each {|p| p.strip! } end @deps = {} # puts "P: #{@package}" @selection,@ok,@status = 'unknown','ok','not-installed' if @info['Status'] @selection,@ok,@status = @info['Status'].split end if @description = @info['Description'] @description = @description.sub(/\n.*/m,"") end @filename = nil @artab = nil @control = [] @data = [] end attr_reader :package, :source, :version, :provides attr_reader :status, :ok, :selection, :description attr_reader :filename, :control, :data def update_deps @@dependency.each {|rel| # puts "D: #{rel} => #{@info[rel]}" next if @deps[rel] if @info[rel] @deps[rel] = [] @info[rel].split(",").each {|deps| deps.strip! # puts "DD: #{deps}" @deps[rel].push(Dep.new(deps, rel)) } end } end private :update_deps def deps(rel) update_deps @deps[rel.capitalize] || [] end # selections def unknown?() @selection == 'unknown'; end def install?() @selection == 'install'; end def hold?() @selection == 'hold'; end def deinstall?() @selection == 'deinstall'; end def remove?() deinstall?; end def purge?() @selection == 'purge'; end # ok? def ok?() @ok == 'ok'; end # status def not_installed?() @status == 'not-installed'; end def purged?() not_installed?; end def unpacked?() @status == 'unpacked'; end def half_configured?() @status == 'half-configured'; end def installed?() @status == 'installed'; end def half_installed?() @status == 'half-installed'; end def config_files?() @status == 'config-files'; end def config_only?() config_files?; end def removed?() config_files? || not_installed?; end def need_fix?() !ok? || !(not_installed?||installed?||config_files?); end def need_action?() !((unknown? && not_installed?) || (install? && installed?) || hold? || (remove? && removed?) || (purge? && purged?)) end def deb_fp(type, op, *pat) unless @filename || @artab raise Debian::Error, "no filename associated" end @artab.open(type) {|ctz| Debian::Utils.gunzip(ctz) {|ct| Debian::Utils.tar(ct, op, *pat) {|fp| if block_given? ct.close retval = yield(fp) fp.close return retval else ct.close return fp end } } } end def control_fp(op, *pat) deb_fp("control.tar.gz", op, *pat) {|fp| if block_given? yield(fp) else fp end } end def data_fp(op, *pat) deb_fp("data.tar.gz", op, *pat) {|fp| if block_given? yield(fp) else fp end } end def filename= (fn) @filename = fn; @artab = Debian::Ar.new(fn) control_fp(Debian::Utils::TAR_LIST) {|fp| fp.each {|line| line.chomp! line.gsub!(/^\.\//, "") unless line.empty? @control.push(line) end } } data_fp(Debian::Utils::TAR_LIST) {|fp| fp.each {|line| @data.push(line.chomp) } } @artab.close freeze end def control= (c); @control = c; end def data= (d); @data = d; end def controlFile(cfile = "control") unless @control.find {|c| c == cfile} raise Debian::Error, "no such cfile #{cfile}" end control_fp(Debian::Utils::TAR_EXTRACT, "*/#{cfile}") {|fp| if block_given? yield(fp) else fp end } end def controlData(cfile = "control") controlFile(cfile) {|fp| fp.readlines.join("") } end def dataFile(fname) if /^\.\// =~ fname pat = fname else fname.gsub!(/^\//, "") pat = "*/#{fname}" end data_fp(Debian::Utils::TAR_EXTRACT, pat) {|fp| if block_given? yield(fp) else fp end } end def dataData(fname) dataFile(fname) {|fp| fp.readlines.join("") } end def sys_tarfile unless @filename || @artab raise Debian::Error, "no filename associated" end @artab.open("data.tar.gz") {|dtz| Debian::Utils.gunzip(dtz) {|dt| if block_given? yield(dt) else dt end } } end def unmet(packages, rels = []) us = [] update_deps # puts "N: #{self} unmet d:#{@deps['Depends']} r:#{@deps['Recommends']} s:#{@deps['Suggests']}" if rels.empty? rels = ['Pre-depends','Depends','Recommends','Suggests','Enhances'] end rels.each {|rel| rel.capitalize! @deps[rel] && @deps[rel].each {|dep| # puts "N: #{self} unmet? #{dep}" us += dep.unmet(packages).collect {|ua| ua.each {|u| u.package = self u.relation = rel } } } } return us end end ################################################################ class Dsc include Field @@reqfields = ['binary', 'version', 'maintainer', 'architecture', 'files' ].collect {|f| f.capitalize } @@dependency = ['build-depends', 'build-depends-indep', 'build-conflicts', 'build-conflicts-indep'].collect {|f| f.capitalize } # XXX: build-dependecy as Deb dependency # Files infomation def initialize(info_s, fields=[]) parseFields(info_s, @@reqfields, fields) # in Sources file, Package: is used # in *.dsc file, Source: is used if @info['Package'] @package = @info['Package'] @source = @info['Package'] end if @info['Source'] @package = @info['Source'] @source = @info['Source'] end @binary = @info['Binary'].split(",").each {|b| b.strip! } @deps = {} end attr_reader :package, :source, :binary, :version def update_deps @@dependency.each {|depf| if @info[depf] @deps[depf] = {} @info[depf].split(",") {|deps| @deps[depf].push(Dep.new(deps)) } end } end private :update_deps end ################################################################ class ArchivesError < Error; end class Archives def Archives.parseAptLine(src) # XXX: support apt line? # deb file:// [ ...] # => /dists///binary-${ARCH}/Packages # deb-src file:// [ ...] # => /dists///source/Sources.gz raise NotImplementedError end def Archives.load(filename,*arg) case File.basename(filename) when /Source(.gz)?/ then Sources.new(filename,*arg) else Packages.new(filename,*arg) end end def Archives.parseArchiveFile(file,&block) if file == "" return {} end if /\.gz$/ =~ file f = IO.popen("gunzip < #{file}") else f = File.open(file) end l = Archives.parse(f,&block) f.close l end def Archives.parse(f,&block) l = {} f.each("\n\n") {|info| d = yield info next unless d if l[d.package] && d < l[d.package] next end l[d.package] = d } l end def initialized() @file = [] @lists = {} end attr_reader :file, :lists def to_s() @file.join("+"); end def add (da) # XXX: self destructive! return unless da @file += da.file @file.compact! da.each {|pkg, d1| self[pkg] = d1 } return self end def + (da) if self.class != da.class raise Debian::ArchiveError, "E: `+' type mismatch #{self.class} != #{da.class}" end nda = self.class.new nda.add(self) nda.add(da) nda end def sub (da) # XXX: self destructive! return unless da @file -= da.file da.each_key {|package| @lists.delete(package) } return self end def - (da) if self.class != da.class raise Debian::ArchiveError, "E: `-' type mismatch #{self.class} != #{da.class}" end nda = self.class.new nda.add(self) # copy nda.sub(da) nda end def intersect(da1, da2) # XXX: self destructive! return unless da2 @file += ["#{da1.file}&#{da2.file}"] @file.compact! da1.each_key {|package| if (da2[package]) d = da1[package] if (da1[package] < da2[package]) d = da2[package] end @lists[package] = d end } return self end def & (da) if self.class != da.class raise Debian::ArchiveError, "E: `-' type mismatch #{self.class} != #{da.class}" end nda = self.class.new nda.intersect(self, da) nda end def <<(deb) nda = self.class.new nda.add(self) return nda unless deb nda[deb.package] = deb nda end def []=(package,deb) # XXX: self destructive! unless d0 = @lists[package] @lists[package] = deb # not found, add new one else if d0 < deb @lists[package] = deb # update new one else d0 # original is the latest version end end end def store(package,deb) self[package] = deb; end def >>(deb) nda = self.class.new nda.add(self) return nda unless deb nda.delete_if {|pkg, d| d == deb } nda end def delete(package) @lists.delete(package); end def delete_if(&block) @lists.delete_if(&block) end def each(&block) @lists.each {|package, deb| yield(package, deb) } end def each_key(&block) @lists.each_key {|package| yield(package) } end def each_value(&block) @lists.each_value {|deb| yield(deb) } end def packages if block_given? each_value {|p| yield p } else @lists.values end end def pkgnames() if block_given? each_key {|p| yield p } else @lists.keys end end def each_package(&block) each_value(&block); end def empty?() @lists.empty?; end def has_key?(pkg) @lists.has_key?(pkg); end def has_value?(deb) @lists.has_value?(deb); end def include?(key) has_key?(key); end def indexes(*arg) @lists.values_at(*arg); end def indices(*arg) @lists.indices(*arg); end def key?(pkg) has_key?(pkg); end def keys() @lists.keys; end def value?(deb) has_value?(deb); end def values() @lists.values; end def length() @lists.length; end def [](package) @lists[package]; end def package(package) @lists[package]; end end ################################################################ class Sources < Archives def initialize(file = "", pkgs = [], fields = []) @lists = Archives.parseArchiveFile(file) {|info| info =~ /(?:Package|Source):\s(.*)$/; if pkgs.empty? || pkgs.include?($1) d = Dsc.new(info,fields) if block_given? yield d end d.freeze end } end end ################################################################ class Packages < Archives def initialize(file = "", pkgs = [], fields = []) @provides = {} @file = [file] @lists = Archives.parseArchiveFile(file) {|info| info =~ /Package:\s(.*)$/; if pkgs.empty? || pkgs.include?($1) d = Deb.new(info,fields) add_provides(d) if block_given? yield d end d.freeze end } end def add_provides(deb) unless @provides[deb.package] @provides[deb.package] = [] end unless @provides[deb.package].include?(deb) @provides[deb.package].push(deb) end if deb.provides deb.provides.each {|p| unless @provides[p] @provides[p] = [] end unless @provides[p].include?(deb) @provides[p].push(deb) end } end deb end def del_provides(deb) return unless deb deb.provides.each {|p| @provides[p].delete(deb) } end private :add_provides, :del_provides def provides(pkg="") if pkg != "" return @provides[pkg] else return @provides end end # overrides, provides management def add(p) # XXX: self destructive! super(p) p.provides.each {|pkg, debs| unless @provides[pkg] @provides[pkg] = [] end @provides[pkg] += debs @provides[pkg].uniq! } self end def +(p) np = self.class.new np.add(self) np.add(p) np end def sub(p) # XXX: self destructive! super(p) p.provides.each {|pkg, debs| if @provides[pkg] @provides[pkg] -= debs end } self end def -(p) np = self.class.new np.add(self) np.sub(p) np end def intersect(p1,p2) # XXX: self destructive! super(p1,p2) @lists.each_value {|deb| add_provides(deb) } self end def & (p) np = self.class.new np.intersect(self, p) np end def <<(deb) np = self.class.new np.add(self) if deb np[deb.package] = deb end np end def []=(package,deb) # XXX: self destructive! d = super(package,deb) add_provides(d) d end def >>(deb) np = self.class.new np.add(self) if np.has_value?(deb) np.delete(deb.package) end np end def delete(package) deb = super(package) del_provides(deb) end end ################################################################ class Status < Packages def initialize(pkgs = [], fields = []) super(Dpkg::STATUS_FILE, pkgs, fields) { |d| if d.status == 'installed' c = ['control'] re = Regexp.new(Regexp.escape(File.join(Dpkg::PACKAGE_INFO_DIR, "#{d.package}."))) Dir[File.join(Dpkg::PACKAGE_INFO_DIR, "#{d.package}.*")].each {|fn| case File.basename(fn) when "#{d.package}.list" then d.data = IO.readlines(fn).collect {|line| line.chomp } else c.push(fn.gsub(re, "")) end } d.control = c end if block_given? yield d end d } end end end ruby-debian-0.3.8build2/TODO0000644000000000000000000000074411630763370012416 0ustar TODO official release performance tuning slow! more/better APIs dpkg-deb APIs conflicts checks cleanup APIs debian.rb -> debian/dpkg.rb ? documentation manual? info? RD? useful samples grep-dctrl.rb ? remove /usr/bin/dpkg dependency compare_versions *architecture remove ar,tar,gunzip dependency gunzip -> libzlib-ruby tar -> ?? test/test suites -> more test support old deb format? $Id: TODO,v 1.11 2001/04/27 21:42:12 ukai Exp $ ruby-debian-0.3.8build2/ext/0000755000000000000000000000000011630763370012521 5ustar ruby-debian-0.3.8build2/ext/debian_version/0000755000000000000000000000000011674247357015522 5ustar ruby-debian-0.3.8build2/ext/debian_version/extconf.rb0000644000000000000000000000015211630763370017501 0ustar require 'mkmf' $LDFLAGS << " -lapt-pkg" dir_config("debian_version") create_makefile("debian_version") ruby-debian-0.3.8build2/ext/debian_version/Version.cpp0000644000000000000000000000271611630763370017647 0ustar #include "ruby.h" #include using namespace std; extern "C" { static VALUE cmp_version(VALUE self, VALUE anObject, VALUE cmpType, VALUE anOtherObject) { int res = debVS.CmpVersion(StringValuePtr(anObject),StringValuePtr(anOtherObject)); char * cmp = StringValuePtr(cmpType); if(!strcmp(cmp, "lt") || !strcmp(cmp, "<") || !strcmp(cmp, "<<")) { if(res < 0) return Qtrue; } else if(!strcmp(cmp, "le") || !strcmp(cmp, "<=")) { if(res <= 0) return Qtrue; } else if(!strcmp(cmp, "eq") || !strcmp(cmp, "=")) { if(res == 0) return Qtrue; } else if(!strcmp(cmp, "ne")) { if(res != 0) return Qtrue; } else if(!strcmp(cmp, "ge") || !strcmp(cmp, ">=")) { if(res >= 0) return Qtrue; } else if(!strcmp(cmp, "gt") || !strcmp(cmp, ">>") || !strcmp(cmp, ">")) { if (res > 0) return Qtrue; } else { rb_raise(rb_eArgError, "cmpType must be one of lt, le, eq, ne, ge, gt, <, <<, <=, =, >=, >>, or >"); } return Qfalse; } void Init_debian_version() { VALUE rb_mDebian = rb_define_module("Debian"); VALUE rb_mDebianVersion = rb_define_module_under(rb_mDebian, "Version"); rb_define_singleton_method(rb_mDebianVersion, "cmp_version", (VALUE (*)(...))cmp_version, 3); } }; ruby-debian-0.3.8build2/Makefile0000644000000000000000000000231311630763370013360 0ustar # # Makefile # SHELL = /bin/sh RUBY = ruby FRUBY = ruby RM = rm #### Start of system configuration section. #### prefix = $(DESTDIR)/usr bindir = $(prefix)/bin libdir = $(prefix)/lib/ruby/$(shell $(RUBY) -rrbconfig -e 'puts Config::CONFIG["ruby_version"]') mandir = $(DESTDIR)/usr/share/man bins = $(wildcard bin/*) libs = $(wildcard lib/*.rb) libs_debian = $(wildcard lib/debian/*.rb) man1 = $(wildcard man/*.1) all: clean: @-(cd t; rm -f test.log) distclean: clean realclean: distclean install: @$(FRUBY) -r ftools -e 'File::makedirs(*ARGV)' $(bindir) @$(FRUBY) -r ftools -e 'File::makedirs(*ARGV)' $(libdir) @for b in $(bins); do \ $(FRUBY) -r ftools -e 'File::install(ARGV[0], ARGV[1], 0755, true)' \ $$b $(bindir); \ done @for rb in $(libs); do \ $(FRUBY) -r ftools -e 'File::install(ARGV[0], ARGV[1], 0644, true)'\ $$rb $(libdir); \ done @mkdir $(libdir)/debian/ @for rb in $(libs_debian); do \ $(FRUBY) -r ftools -e 'File::install(ARGV[0], ARGV[1], 0644, true)'\ $$rb $(libdir)/debian; \ done @mkdir -p $(mandir)/man1 @for m in $(man1); do \ $(FRUBY) -r ftools -e 'File::install(ARGV[0], ARGV[1], 0644, true)' \ $$m $(mandir)/man1; \ done test: @(cd t; $(RUBY) testall.rb -o test.log) ruby-debian-0.3.8build2/t/0000755000000000000000000000000011674247375012176 5ustar ruby-debian-0.3.8build2/t/testdeb.rb0000644000000000000000000001522211630763370014145 0ustar require 'runit/testcase' require 'runit/cui/testrunner' $:.unshift("../lib") require '../lib/debian.rb' class TestDebian__Deb < RUNIT::TestCase def setup @deb = [Debian::Deb.new(IO.readlines("d/w3m_0.2.1-1.f").join("")), Debian::Deb.new(IO.readlines("d/w3m_0.2.1-2.f").join("")), Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-1.f").join("")), Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-2.f").join(""))] end def test_package assert_equals("w3m", @deb[0].package) assert_equals("w3m", @deb[1].package) assert_equals("w3m-ssl", @deb[2].package) assert_equals("w3m-ssl", @deb[3].package) end def test_provides assert_equals(['www-browser'], @deb[0].provides) assert_equals(['www-browser'], @deb[1].provides) assert_equals(['www-browser'], @deb[2].provides) assert_equals(['www-browser'], @deb[3].provides) end def test_source assert_equals("w3m", @deb[0].package) assert_equals("w3m", @deb[1].package) assert_equals("w3m-ssl", @deb[2].package) assert_equals("w3m-ssl", @deb[3].package) end def test_unmet p = Debian::Packages.new("d/w3m_met_list") puts @deb[0].unmet(p) assert_equals([], @deb[0].unmet(p)) end def test_version assert_equals("0.2.1-1", @deb[0].version) assert_equals("0.2.1-2", @deb[1].version) assert_equals("0.2.1-1", @deb[2].version) assert_equals("0.2.1-2", @deb[3].version) end def test_status assert_equals("not-installed", @deb[0].status) end def test_selection assert_equals("unknown", @deb[0].selection) end def test_description assert_equals("WWW browsable pager with excellent tables/frames support", @deb[0].description) end def test_unknown? assert(@deb[0].unknown?) d = Debian::Deb.new([IO.readlines("d/w3m_0.2.1-1.f"), "Status: unknown ok not-installed\n"].join("")) assert(d.unknown?) end def test_install? assert(! @deb[0].installed?) d = Debian::Deb.new([IO.readlines("d/w3m_0.2.1-1.f"), "Status: install ok installed\n"].join("")) assert(d.install?) end def test_hold? assert(! @deb[0].hold?) d = Debian::Deb.new([IO.readlines("d/w3m_0.2.1-1.f"), "Status: hold ok installed\n"].join("")) assert(d.hold?) end def test_deinstall? assert(! @deb[0].deinstall?) d = Debian::Deb.new([IO.readlines("d/w3m_0.2.1-1.f"), "Status: deinstall ok not-installed\n"].join("")) assert(d.deinstall?) end def test_remove? assert(! @deb[0].remove?) d = Debian::Deb.new([IO.readlines("d/w3m_0.2.1-1.f"), "Status: deinstall ok not-installed\n"].join("")) assert(d.remove?) end def test_purge? assert(! @deb[0].purge?) d = Debian::Deb.new([IO.readlines("d/w3m_0.2.1-1.f"), "Status: purge ok not-installed\n"].join("")) assert(d.purge?) end def test_not_installed? assert(@deb[0].not_installed?) d = Debian::Deb.new([IO.readlines("d/w3m_0.2.1-1.f"), "Status: unknown ok not-installed\n"].join("")) assert(d.not_installed?) end def test_purged? assert(@deb[0].purged?) d = Debian::Deb.new([IO.readlines("d/w3m_0.2.1-1.f"), "Status: unknown ok not-installed\n"].join("")) assert(d.purged?) end def test_unpacked? assert(! @deb[0].unpacked?) d = Debian::Deb.new([IO.readlines("d/w3m_0.2.1-1.f"), "Status: install ok unpacked\n"].join("")) assert(d.unpacked?) end def test_half_configured? assert(! @deb[0].half_configured?) d = Debian::Deb.new([IO.readlines("d/w3m_0.2.1-1.f"), "Status: install reinstreq half-configured\n"].join("")) assert(d.half_configured?) end def test_intalled? assert(! @deb[0].installed?) d = Debian::Deb.new([IO.readlines("d/w3m_0.2.1-1.f"), "Status: install ok installed\n"].join("")) assert(d.installed?) end def test_half_installed? assert(! @deb[0].half_installed?) d = Debian::Deb.new([IO.readlines("d/w3m_0.2.1-1.f"), "Status: install reinstreq half-installed\n"].join("")) assert(d.half_installed?) end def test_config_files? assert(! @deb[0].config_files?) d = Debian::Deb.new([IO.readlines("d/w3m_0.2.1-1.f"), "Status: install ok config-files\n"].join("")) assert(d.config_files?) end def test_config_only? assert(! @deb[0].config_only?) d = Debian::Deb.new([IO.readlines("d/w3m_0.2.1-1.f"), "Status: install ok config-files\n"].join("")) assert(d.config_only?) end def test_removed? assert(@deb[0].removed?) d = Debian::Deb.new([IO.readlines("d/w3m_0.2.1-1.f"), "Status: install ok config-files\n"].join("")) assert(d.removed?) end def test_need_fix? assert(! @deb[0].need_fix?) d = Debian::Deb.new([IO.readlines("d/w3m_0.2.1-1.f"), "Status: install reinstreq half-installed\n"].join("")) assert(d.need_fix?) end def test_need_action? assert(! @deb[0].need_action?) d = Debian::Deb.new([IO.readlines("d/w3m_0.2.1-1.f"), "Status: install ok not-installed\n"].join("")) assert(d.need_action?) end def test_ok? assert(@deb[0].ok?) end def check_apt_cache @ruby = Dir["/var/cache/apt/archives/ruby_1.6*.deb"] if @ruby.empty? assert_fail("no ruby package in /var/cache/apt/archives") end end def test_filename=() check_apt_cache @ruby.each {|df| d = Debian::Deb.new(IO.readlines("d/w3m_0.2.1-1.f").join("")) d.filename = df assert_equals(df, d.filename) } end def test_controlFile # tested by controlData? end def test_controlData check_apt_cache @ruby.each {|df| deb = Debian::DpkgDeb.load(df) oc = IO.popen("dpkg -f #{df}") {|fp| fp.readlines.join("")} assert_equals(oc, deb.controlData) om = IO.popen("dpkg -I #{df} md5sums") {|fp| fp.readlines.join("") } assert_equals(om, deb.controlData("md5sums")) } end def test_dataFile # tested by dataData? end def test_dataData check_apt_cache @ruby.each {|df| deb = Debian::DpkgDeb.load(df) oc = IO.popen("dpkg --fsys-tarfile #{df}|tar xfO - '*/copyright'") {|fp| fp.readlines.join("") } assert_equals(oc, deb.dataData('copyright')) } end def test_sys_tarfile check_apt_cache @ruby.each {|df| deb = Debian::DpkgDeb.load(df) os = IO.popen("dpkg --fsys-tarfile #{df}") {|fp| fp.readlines.join("") } ts = deb.sys_tarfile {|fp| fp.readlines.join("") } assert_equals(os, ts) } end # def test_s_new # # end end if $0 == __FILE__ if ARGV.size == 0 suite = TestDebian__Deb.suite else suite = RUNIT::TestSuite.new ARGV.each do |testmethod| suite.add_test(TestDebian__Deb.new(testmethod)) end end RUNIT::CUI::TestRunner.run(suite) end ruby-debian-0.3.8build2/t/teststatus.rb0000644000000000000000000000133011630763370014731 0ustar require 'runit/testcase' require 'runit/cui/testrunner' $:.unshift("../lib") require '../lib/debian.rb' class TestDebian__Status < RUNIT::TestCase def test_s_new s = Debian::Status.new assert((s['dpkg'].data.find {|f| f == "/usr/bin/dpkg" }) != nil) end # # def test_s_parse # assert_fail("untested") # end # # def test_s_parseAptLine # assert_fail("untested") # end # def test_s_parseArchiveFile # assert_fail("untested") # end end if $0 == __FILE__ if ARGV.size == 0 suite = TestDebian__Status.suite else suite = RUNIT::TestSuite.new ARGV.each do |testmethod| suite.add_test(TestDebian__Status.new(testmethod)) end end RUNIT::CUI::TestRunner.run(suite) end ruby-debian-0.3.8build2/t/testdpkgdeb.rb0000644000000000000000000000333711630763370015017 0ustar require 'runit/testcase' require 'runit/cui/testrunner' $:.unshift("../lib") require '../lib/debian.rb' class TestDebian__DpkgDeb < RUNIT::TestCase def setup @ruby = Dir["/var/cache/apt/archives/ruby_1.6*.deb"] if @ruby.empty? assert_fail("no ruby package in /var/cache/apt/archives") end @libs = Dir["/usr/lib/libc.*"] if @libs.empty? assert_fail("no libc in /usr/lib") end end def test_deb? @ruby.each {|deb| assert(Debian::DpkgDeb.deb?(deb)) } @libs.each {|lib| assert(! Debian::DpkgDeb.deb?(lib)) } end def test_assert_deb? @ruby.each {|deb| assert_no_exception(Debian::Error) {Debian::DpkgDeb.assert_deb?(deb)} } @libs.each {|lib| assert_exception(Debian::Error) {! Debian::DpkgDeb.assert_deb?(lib)} } end def test_control ENV["LANG"] = 'C' @ruby.each {|deb| c = [] IO.popen("dpkg -I #{deb}") {|fp| fp.each {|line| line.chomp! if /^\s+\d+\sbytes,\s+\d+\s+lines\s+\*?\s*(\S+).*/ =~ line c.push($1) end } } assert_equals(c.sort, Debian::DpkgDeb.control(deb).sort) } end def test_data @ruby.each {|deb| d = [] IO.popen("dpkg --fsys-tarfile #{deb}|tar tf -") {|fp| fp.each {|line| line.chomp! d.push(line) } } assert_equals(d, Debian::DpkgDeb.data(deb)) } end def test_load @ruby.each {|deb| de = Debian::DpkgDeb.load(deb) assert_equals(deb, de.filename) } end end if $0 == __FILE__ if ARGV.size == 0 suite = TestDebian__DpkgDeb.suite else suite = RUNIT::TestSuite.new ARGV.each do |testmethod| suite.add_test(TestDebian__DpkgDeb.new(testmethod)) end end RUNIT::CUI::TestRunner.run(suite) end ruby-debian-0.3.8build2/t/testpackages.rb0000644000000000000000000000717111630763370015175 0ustar require 'runit/testcase' require 'runit/cui/testrunner' $:.unshift("../lib") require '../lib/debian.rb' class TestDebian__Packages < RUNIT::TestCase def setup @ps = [Debian::Packages.new("d/status"), Debian::Packages.new("d/available"), Debian::Packages.new("d/sid_i386_Packages"), Debian::Packages.new("d/non-US_sid_i386_Packages")] end def test_AND # '&' ps = @ps[0] & @ps[3] assert_equals('w3mmee-ssl', ps['w3mmee-ssl'].package) assert_nil(ps['dpkg-ruby']) assert_equals('dpkg-ruby', @ps[0]['dpkg-ruby'].package) assert_nil(@ps[3]['dpkg-ruby']) assert_equals(@ps[3].provides.keys.sort, ps.provides.keys.sort) end def test_ASET # '[]=' deb = Debian::Deb.new(IO.readlines("d/w3m_0.2.1-2.f").join("")) pr = @ps[3].provides('www-browser').collect {|d| d.package } @ps[3]['w3m'] = deb assert_equals(deb, @ps[3]['w3m']) assert_equals((pr + ['w3m']).sort, @ps[3].provides('www-browser').collect {|d| d.package }.sort) end def test_LSHIFT # '<<' deb = Debian::Deb.new(IO.readlines("d/w3m_0.2.1-2.f").join("")) pr = @ps[3].provides('www-browser').collect {|d| d.package } assert_nil(@ps[3]['w3m']) ps = @ps[3] << nil assert_nil(@ps[3]['w3m']) ps = @ps[3] << deb assert_nil(@ps[3]['w3m']) assert_equals(deb, ps['w3m']) assert_equals((pr + ['w3m']).sort, ps.provides('www-browser').collect {|d| d.package }.sort) end def test_MINUS # '-' ps = @ps[1] - @ps[0] assert_equals('dpkg-ruby', @ps[1]['dpkg-ruby'].package) assert_equals(['donkey', 'fml', 'hex', 'sendmail-wide', 'smtpfeed', 'xfonts-marumoji'], ps.pkgnames.sort) end def test_PLUS # '+' ps = @ps[1] + @ps[0] ps.each {|pkg, deb| assert_equals(deb, @ps[1][pkg]) } assert_equals(ps.provides.keys.sort, @ps[1].provides.keys.sort) end def test_RSHIFT # '>>' deb = Debian::Deb.new(IO.readlines("d/w3m_0.2.1-2.f").join("")) pr = @ps[0].provides('www-browser').collect {|d| d.package } assert_equals('w3m', @ps[0]['w3m'].package) ps = @ps[0] >> nil assert_equals('w3m', ps['w3m'].package) ps = @ps[0] >> deb assert_equals('w3m', @ps[0]['w3m'].package) assert_nil(ps['w3m']) assert_equals((pr - ['w3m']).sort, ps.provides('www-browser').collect {|d| d.package}.sort) end def test_add @ps[0].add(@ps[1]) assert_equals('donkey', @ps[0]['donkey'].package) end def test_delete @ps[3].delete('w3mmee-ssl') assert_nil(@ps[3]['w3mmee-ssl']) @ps[3].delete('w3m-ssl') assert_nil(@ps[3]['w3mmee-ssl']) assert_equals([], @ps[3].provides('www-browser')) end def test_intersect p = Debian::Packages.new p.intersect(@ps[0], @ps[3]) assert_equals('w3m-ssl', p['w3m-ssl'].package) assert_equals('w3mmee-ssl', p['w3mmee-ssl'].package) assert_nil(p['w3m']) end def test_provides assert_equals(['w3m-ssl', 'w3mmee-ssl'], @ps[3].provides('www-browser').collect {|d| d.package }.sort) end def test_sub @ps[1].sub(@ps[0]) assert_equals(['donkey', 'fml', 'hex', 'sendmail-wide', 'smtpfeed', 'xfonts-marumoji'], @ps[1].pkgnames.sort) end # def test_s_new # assert_fail("untested") # end # # def test_s_parse # assert_fail("untested") # end # # def test_s_parseAptLine # assert_fail("untested") # end # def test_s_parseArchiveFile # assert_fail("untested") # end end if $0 == __FILE__ if ARGV.size == 0 suite = TestDebian__Packages.suite else suite = RUNIT::TestSuite.new ARGV.each do |testmethod| suite.add_test(TestDebian__Packages.new(testmethod)) end end RUNIT::CUI::TestRunner.run(suite) end ruby-debian-0.3.8build2/t/testdepterm.rb0000644000000000000000000001057511630763370015061 0ustar require 'runit/testcase' require 'runit/cui/testrunner' $:.unshift("../lib") require '../lib/debian.rb' class TestDebian__Dep__Term < RUNIT::TestCase def setup @dep = [Debian::Dep::Term.new('w3m'), Debian::Dep::Term.new('w3m', '<<', '0.2.1-2'), Debian::Dep::Term.new('w3m', '<=', '0.2.1-2'), Debian::Dep::Term.new('w3m', '=', '0.2.1-2'), Debian::Dep::Term.new('w3m', '>=', '0.2.1-2'), Debian::Dep::Term.new('w3m', '>>', '0.2.1-2'), Debian::Dep::Term.new('w3m', '==', '0.2.1-2'), Debian::Dep::Term.new('www-browser')] end def test_EQUAL # '==' assert_equals(Debian::Dep::Term.new('w3m'), @dep[0]) assert_equals(Debian::Dep::Term.new('w3m', '<<', '0.2.1-2'), @dep[1]) end def test_op assert_equals("", @dep[0].op) assert_equals("<<", @dep[1].op) assert_equals("<=", @dep[2].op) assert_equals("=", @dep[3].op) assert_equals(">=", @dep[4].op) assert_equals(">>", @dep[5].op) end def test_package assert_equals("w3m", @dep[0].package) assert_equals("w3m", @dep[1].package) end def test_satisfy? @deb = [Debian::Deb.new(IO.readlines("d/w3m_0.2.1-1.f").join("")), Debian::Deb.new(IO.readlines("d/w3m_0.2.1-2.f").join("")), Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-1.f").join("")), Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-2.f").join(""))] # w3m assert(@dep[0].satisfy?(@deb[0])) assert(@dep[0].satisfy?(@deb[1])) assert(!(@dep[0].satisfy?(@deb[2]))) assert(!(@dep[0].satisfy?(@deb[3]))) # w3m << 0.2.1-2 assert(@dep[1].satisfy?(@deb[0])) assert(!(@dep[1].satisfy?(@deb[1]))) assert(!(@dep[1].satisfy?(@deb[2]))) assert(!(@dep[1].satisfy?(@deb[3]))) # w3m <= 0.2.1-2 assert(@dep[2].satisfy?(@deb[0])) assert(@dep[2].satisfy?(@deb[1])) assert(!(@dep[2].satisfy?(@deb[2]))) assert(!(@dep[2].satisfy?(@deb[3]))) # w3m = 0.2.1-2 assert(!(@dep[3].satisfy?(@deb[0]))) assert(@dep[3].satisfy?(@deb[1])) assert(!(@dep[3].satisfy?(@deb[2]))) assert(!(@dep[3].satisfy?(@deb[3]))) # w3m >= 0.2.1-2 assert(!(@dep[4].satisfy?(@deb[0]))) assert(@dep[4].satisfy?(@deb[1])) assert(!(@dep[4].satisfy?(@deb[2]))) assert(!(@dep[4].satisfy?(@deb[3]))) # w3m >> 0.2.1-2 assert(!(@dep[5].satisfy?(@deb[0]))) assert(!(@dep[5].satisfy?(@deb[1]))) assert(!(@dep[5].satisfy?(@deb[2]))) assert(!(@dep[5].satisfy?(@deb[3]))) # w3m == 0.2.1-2 assert_exception(Debian::DepError) { @dep[6].satisfy?(@deb[0])} assert_exception(Debian::DepError) { @dep[6].satisfy?(@deb[1])} assert_exception(Debian::DepError) { @dep[6].satisfy?(@deb[2])} assert_exception(Debian::DepError) { @dep[6].satisfy?(@deb[3])} # www-browser (provides test) assert(@dep[7].satisfy?(@deb[0])) assert(@dep[7].satisfy?(@deb[1])) assert(@dep[7].satisfy?(@deb[2])) assert(@dep[7].satisfy?(@deb[3])) end def test_to_s assert_equals("w3m", @dep[0].to_s) assert_equals("w3m (<< 0.2.1-2)", @dep[1].to_s) assert_equals("w3m (<= 0.2.1-2)", @dep[2].to_s) assert_equals("w3m (= 0.2.1-2)", @dep[3].to_s) assert_equals("w3m (>= 0.2.1-2)", @dep[4].to_s) assert_equals("w3m (>> 0.2.1-2)", @dep[5].to_s) end def test_unmet p = Debian::Packages.new("d/w3m_met_list") assert_equals([], @dep[0].unmet(p)) # w3m assert_equals([Debian::Dep::Unmet.new(@dep[1], p['w3m'])], @dep[1].unmet(p)) # w3m << 0.2.1-2 assert_equals([], @dep[2].unmet(p)) # w3m <= 0.2.1-2 assert_equals([], @dep[3].unmet(p)) # w3m = 0.2.1-2 assert_equals([], @dep[4].unmet(p)) # w3m >= 0.2.1-2 assert_equals([Debian::Dep::Unmet.new(@dep[5], p['w3m'])], @dep[5].unmet(p)) # w3m >> 0.2.1-2 assert_equals([], @dep[7].unmet(p)) # www-browser end def test_version assert_equals("", @dep[0].version) assert_equals("0.2.1-2", @dep[1].version) assert_equals("0.2.1-2", @dep[2].version) assert_equals("0.2.1-2", @dep[3].version) assert_equals("0.2.1-2", @dep[4].version) assert_equals("0.2.1-2", @dep[5].version) assert_equals("0.2.1-2", @dep[6].version) end # def test_s_new # # end end if $0 == __FILE__ if ARGV.size == 0 suite = TestDebian__Dep__Term.suite else suite = RUNIT::TestSuite.new ARGV.each do |testmethod| suite.add_test(TestDebian__Dep__Term.new(testmethod)) end end RUNIT::CUI::TestRunner.run(suite) end ruby-debian-0.3.8build2/t/testdpkg.rb0000644000000000000000000001307211630763370014341 0ustar # c2t.rb -na Debian::Dpkg ../lib/debian.rb > testdpkg.rb # require 'runit/testcase' require 'runit/cui/testrunner' $:.unshift("../lib") require '../lib/debian.rb' class TestDebian__Dpkg < RUNIT::TestCase def test_s_architecture arch = %x{dpkg --print-architecture}.chomp! assert_equals(arch, Debian::Dpkg.architecture()) end def test_s_gnu_build_architecture arch = %x{dpkg --print-gnu-build-architecture}.chomp! assert_equals(arch, Debian::Dpkg.gnu_build_architecture()) end def test_s_installation_architecture arch = %x{dpkg --print-installation-architecture}.chomp! assert_equals(arch, Debian::Dpkg.installation_architecture()) end def test_s_compare_versions assert(Debian::Dpkg.compare_versions('1.0','<','1.1')) assert(Debian::Dpkg.compare_versions('1.0','<=','1.1')) assert(Debian::Dpkg.compare_versions('1.0','<=','1.0')) assert(Debian::Dpkg.compare_versions('1.0','=','1.0')) assert(Debian::Dpkg.compare_versions('1.0','>=','1.0')) assert(Debian::Dpkg.compare_versions('1.1','>','1.0')) end def test_s_field ruby = Dir["/var/cache/apt/archives/ruby_1.6*.deb"] if ruby.empty? assert_fail("no ruby package in /var/cache/apt/archives") end ruby.each {|deb| d = Debian::Dpkg.field(deb) assert_equals("ruby", d.package) assert_matches(d.version, /1.6/) assert_equals("akira yamada ", d['maintainer']) assert_equals("interpreters", d['section']) assert_equals("optional", d['priority']) # request field only assert_equals(["ruby"], Debian::Dpkg.field(deb, ["package"])) assert_equals(["akira yamada "], Debian::Dpkg.field(deb, ["maintainer"])) assert_equals(["interpreters"], Debian::Dpkg.field(deb, ["section"])) assert_equals(["optional"], Debian::Dpkg.field(deb, ["priority"])) assert_equals(["ruby","interpreters","optional"], Debian::Dpkg.field(deb, ["package","section","priority"])) } end LIST_SELECTION = Debian::Deb::SELECTION_ID.invert LIST_STATUS = Debian::Deb::STATUS_ID.invert def dpkg_l_parse(line) if /^(.)(.)(.)\s+(\S+)\s+(\S+)\s+(.*)/ =~ line {'selection' => $1, 'status' => $2, 'err?' => $3, 'package' => $4, 'version' => $5, 'description' => $6 } else assert_fail("parse failed dpkg -l #{line}") end end def test_s_status dpkg_l = '' ENV['COLUMNS']="256" IO.popen("dpkg --list dpkg") {|f| f.each {|line| break if /^\+/ =~ line } dpkg_l = dpkg_l_parse(f.readlines[0]) } dpkg_tl = Debian::Dpkg.status(['dpkg']) assert_not_nil(dpkg_tl['dpkg']) assert_equals('dpkg', dpkg_tl['dpkg'].package) assert_equals(LIST_SELECTION[dpkg_l['selection']], dpkg_tl['dpkg'].selection) assert_equals(LIST_STATUS[dpkg_l['status']], dpkg_tl['dpkg'].status) assert_equals(dpkg_l['version'], dpkg_tl['dpkg'].version.slice(0,dpkg_l['version'].length)) assert_equals('Package maintenance system for Debian', dpkg_tl['dpkg'].description.slice(0,'Package maintenance system for Debian'.length)) ol = {} IO.popen("dpkg --list") {|f| f.each {|line| break if /^\+/ =~ line } f.each {|line| l = dpkg_l_parse(line) next if ol.include?(l['package']) ol[l['package']] = l } } tl = Debian::Dpkg.status ol.each {|op,ol| tp = nil dupped = false tl.each_key {|t| if t == op tp = tl[t] break end if t.slice(0,14) == op if tp dupped = true break end tp = tl[t] end } next if dupped assert_not_nil(tp, "#{op}") assert_equals(op, tp.package.slice(0,op.length), "#{op}/#{tp.package}") assert_equals(ol['package'], tp.package.slice(0,ol['package'].length), "#{ol['pacakge']}/#{tp.package}") assert_equals(LIST_SELECTION[ol['selection']], tp.selection, tp.package) assert_equals(LIST_STATUS[ol['status']], tp.status, tp.package) assert_equals(ol['version'], tp.version.gsub(/^\d+:/,"").slice(0,ol['version'].length), tp.package) assert_equals(ol['description'], tp.description.slice(0,ol['description'].length), tp.package) } end def test_s_selections # dpkg --get-selections ... sl = {} IO.popen("dpkg --get-selections") {|f| f.each {|line| p,sel = line.split sl[p] = sel } } tsl = Debian::Dpkg.selections sl.each {|p,sel| assert_equals(sel, tsl[p].selection) } end # def test_s_selections= # # dpkg --set-selections # end def test_s_avail # dpkg --print-avail ... a = IO.popen("dpkg --print-avail w3m") {|f| Debian::Deb.new(f.readlines.join("")) } ta = Debian::Dpkg.avail(['w3m']) assert_equals(a, ta['w3m']) end def test_s_listfiles # dpkg --listfiles ... l = IO.popen("dpkg --listfiles dpkg gzip").readlines("\n\n").collect {|l| l.split("\n") } tl = Debian::Dpkg.listfiles(['dpkg', 'gzip']) assert_equals(l, tl) end def test_s_search # dpkg --search s = IO.popen("dpkg --search dpkg-deb").readlines.collect {|l| l.chomp! /^(\S+):\s*(\S+)/ =~ l [$1, $2] }.sort {|a,b| (a[0] + a[1]) <=> (b[0] + b[1]) } ts = Debian::Dpkg.search(['dpkg-deb']).sort {|a,b| (a[0] + a[1]) <=> (b[0] + b[1]) } assert_equals(s, ts) end # def test_s_audit # # dpkg --audit # end end if $0 == __FILE__ if ARGV.size == 0 suite = TestDebian__Dpkg.suite else suite = RUNIT::TestSuite.new ARGV.each do |testmethod| suite.add_test(TestDebian__Dpkg.new(testmethod)) end end RUNIT::CUI::TestRunner.run(suite) end ruby-debian-0.3.8build2/t/testar.rb0000644000000000000000000000257411630763370014023 0ustar require 'runit/testcase' require 'runit/cui/testrunner' $:.unshift("../lib") require 'debian/ar' class TestDebian__Ar < RUNIT::TestCase def setup @ruby = Dir["/var/cache/apt/archives/ruby_1.6*.deb"] if @ruby.empty? assert_fail("no ruby package in /var/cache/apt/archives") end end def test_list @ruby.each {|deb| assert_equals(['debian-binary','control.tar.gz','data.tar.gz'], Debian::Ar.new(deb).list.collect {|arf| arf.name }) } end def test_each_file @ruby.each {|deb| lists = ['debian-binary','control.tar.gz','data.tar.gz'] Debian::Ar.new(deb).each_file {|name,io| assert_equals(lists[0], name) if name == 'debian-binary' assert_equals("2.0\n", io.read) end assert_equals(0, io.stat.uid) assert_equals(0, io.stat.gid) assert_equals(0100644, io.stat.mode) lists.shift } } end def test_open @ruby.each {|deb| ar = Debian::Ar.new(deb) assert_not_nil(ar.open("debian-binary")) assert_equals("2.0\n", ar.open("debian-binary").read) assert_not_nil(ar.open("control.tar.gz")) assert_not_nil(ar.open("data.tar.gz")) } end end if $0 == __FILE__ if ARGV.size == 0 suite = TestDebian__Ar.suite else suite = RUNIT::TestSuite.new ARGV.each do |testmethod| suite.add_test(TestDebian__Ar.new(testmethod)) end end RUNIT::CUI::TestRunner.run(suite) end ruby-debian-0.3.8build2/t/testdsc.rb0000644000000000000000000000220211630763370014156 0ustar require 'runit/testcase' require 'runit/cui/testrunner' $:.unshift("../lib") require '../lib/debian.rb' class TestDebian__Dsc < RUNIT::TestCase def setup @dsc = [Debian::Dsc.new(IO.readlines("d/w3m_0.2.1-1.dsc").join("")), Debian::Dsc.new(IO.readlines("d/w3m_0.2.1-2.dsc").join("")), Debian::Dsc.new(IO.readlines("d/w3m-ssl_0.2.1-2.dsc").join(""))] end def test_binary assert_equals(["w3m"], @dsc[0].binary) assert_equals(["w3m"], @dsc[1].binary) assert_equals(["w3m-ssl"], @dsc[2].binary) end def test_package assert_equals("w3m", @dsc[0].package) assert_equals("w3m", @dsc[1].package) assert_equals("w3m-ssl", @dsc[2].package) end def test_version assert_equals("0.2.1-1", @dsc[0].version) assert_equals("0.2.1-2", @dsc[1].version) assert_equals("0.2.1-2", @dsc[2].version) end # def test_s_new # # end end if $0 == __FILE__ if ARGV.size == 0 suite = TestDebian__Dsc.suite else suite = RUNIT::TestSuite.new ARGV.each do |testmethod| suite.add_test(TestDebian__Dsc.new(testmethod)) end end RUNIT::CUI::TestRunner.run(suite) end ruby-debian-0.3.8build2/t/testfield.rb0000644000000000000000000001170711630763370014502 0ustar require 'runit/testcase' require 'runit/cui/testrunner' $:.unshift("../lib") require '../lib/debian.rb' class ClassDebianField include Debian::Field def initialize(c, rf=[]) parseFields(c, rf) end end class TestDebian__Field < RUNIT::TestCase def setup @ff = {} Dir["d/*.f"].each {|ff| dc = ClassDebianField.new(IO.readlines(ff).join(""), []) @ff["#{dc['package']}_#{dc['version']}"] = dc } end def test_AREF # '[]' assert_equals("w3m", @ff['w3m_0.2.1-1']['package']) assert_equals("w3m-ssl", @ff['w3m-ssl_0.2.1-1']['package']) assert_equals("0.2.1-1", @ff['w3m_0.2.1-1']['version']) end def test_EQUAL # '==' dc2 = ClassDebianField.new(IO.readlines("d/w3m_0.2.1-1.f").join(""), []) assert(dc2 == @ff['w3m_0.2.1-1']) assert(!(dc2 == @ff['w3m_0.2.1-2'])) assert(!(dc2 == @ff['w3m-ssl_0.2.1-1'])) end def test_GE # '>=' assert(@ff['w3m_0.2.1-2'] >= @ff['w3m_0.2.1-1']) assert(@ff['w3m_0.2.1-1'] >= @ff['w3m_0.2.1-1']) assert(!(@ff['w3m_0.2.1-1'] >= @ff['w3m_0.2.1-2'])) assert(!(@ff['w3m-ssl_0.2.1-2'] >= @ff['w3m_0.2.1-1'])) assert(!(@ff['w3m-ssl_0.2.1-1'] >= @ff['w3m_0.2.1-1'])) assert(!(@ff['w3m-ssl_0.2.1-1'] >= @ff['w3m_0.2.1-2'])) end def test_GT # '>' assert(@ff['w3m_0.2.1-2'] > @ff['w3m_0.2.1-1']) assert(!(@ff['w3m_0.2.1-1'] > @ff['w3m_0.2.1-1'])) assert(!(@ff['w3m_0.2.1-1'] > @ff['w3m_0.2.1-2'])) assert(!(@ff['w3m-ssl_0.2.1-2'] > @ff['w3m_0.2.1-1'])) assert(!(@ff['w3m-ssl_0.2.1-1'] > @ff['w3m_0.2.1-1'])) assert(!(@ff['w3m-ssl_0.2.1-1'] > @ff['w3m_0.2.1-2'])) end def test_LE # '<=' assert(@ff['w3m_0.2.1-1'] <= @ff['w3m_0.2.1-1']) assert(@ff['w3m_0.2.1-1'] <= @ff['w3m_0.2.1-2']) assert(!(@ff['w3m_0.2.1-2'] <= @ff['w3m_0.2.1-1'])) assert(!(@ff['w3m-ssl_0.2.1-2'] <= @ff['w3m_0.2.1-1'])) assert(!(@ff['w3m-ssl_0.2.1-1'] <= @ff['w3m_0.2.1-1'])) assert(!(@ff['w3m-ssl_0.2.1-1'] <= @ff['w3m_0.2.1-2'])) end def test_LT # '<' assert(@ff['w3m_0.2.1-1'] < @ff['w3m_0.2.1-2']) assert(!(@ff['w3m_0.2.1-1'] < @ff['w3m_0.2.1-1'])) assert(!(@ff['w3m_0.2.1-2'] < @ff['w3m_0.2.1-1'])) assert(!(@ff['w3m-ssl_0.2.1-2'] > @ff['w3m_0.2.1-1'])) assert(!(@ff['w3m-ssl_0.2.1-1'] > @ff['w3m_0.2.1-1'])) assert(!(@ff['w3m-ssl_0.2.1-1'] > @ff['w3m_0.2.1-2'])) end def test_VERY_EQUAL # '===' assert(@ff['w3m_0.2.1-1'] === @ff['w3m_0.2.1-1']) assert(@ff['w3m_0.2.1-1'] === @ff['w3m_0.2.1-2']) assert(@ff['w3m_0.2.1-2'] === @ff['w3m_0.2.1-1']) assert(!(@ff['w3m_0.2.1-1'] === @ff['w3m-ssl_0.2.1-1'])) assert(!(@ff['w3m_0.2.1-1'] === @ff['w3m-ssl_0.2.1-2'])) end def test_info_s c = IO.readlines("d/w3m_0.2.1-1.f").join("") assert_equals(c, @ff['w3m_0.2.1-1'].info_s) end def test_fields assert_equals(['Package', 'Version', 'Section', 'Priority', 'Architecture', 'Depends', 'Suggests', 'Provides', 'Installed-size', 'Maintainer', 'Description'], @ff['w3m_0.2.1-1'].fields) end def test_info assert_equals({'Package' => 'w3m', 'Version' => '0.2.1-1', 'Section' => 'text', 'Priority' => 'optional', 'Architecture' => 'i386', 'Depends' => 'libc6 (>= 2.2.1-2), libgc5, libgpmg1 (>= 1.14-16), libncurses5 (>= 5.2.20010310-1)', 'Suggests' => 'w3m-ssl (>= 0.2.1-1), mime-support, menu (>> 1.5), w3m-el', 'Provides' => 'www-browser', 'Installed-size' => '1300', 'Maintainer' => 'Fumitoshi UKAI ', 'Description' => 'WWW browsable pager with excellent tables/frames support w3m is a text-based World Wide Web browser with IPv6 support. It features excellent support for tables and frames. It can be used as a standalone file pager, too. . * You can follow links and/or view images in HTML. * Internet message prewview mode, you can browse HTML mail. * You can follow links in plain text if it includes URL forms. . For more information, see http://ei5nazha.yz.yamagata-u.ac.jp/~aito/w3m/eng/index.html'}, @ff['w3m_0.2.1-1'].info) end def test_package assert_equals('w3m', @ff['w3m_0.2.1-1'].package) assert_equals('w3m-ssl', @ff['w3m-ssl_0.2.1-2'].package) end def test_version assert_equals('0.2.1-1', @ff['w3m_0.2.1-1'].version) assert_equals('0.2.1-2', @ff['w3m-ssl_0.2.1-2'].version) end def test_maintainer assert_equals('Fumitoshi UKAI ', @ff['w3m_0.2.1-1'].maintainer) end # def test_parseFields # how to test? # end def test_to_s assert_equals("w3m 0.2.1-1", @ff['w3m_0.2.1-1'].to_s) assert_equals("w3m 0.2.1-2", @ff['w3m_0.2.1-2'].to_s) assert_equals("w3m-ssl 0.2.1-1", @ff['w3m-ssl_0.2.1-1'].to_s) assert_equals("w3m-ssl 0.2.1-2", @ff['w3m-ssl_0.2.1-2'].to_s) end end if $0 == __FILE__ if ARGV.size == 0 suite = TestDebian__Field.suite else suite = RUNIT::TestSuite.new ARGV.each do |testmethod| suite.add_test(TestDebian__Control.new(testmethod)) end end RUNIT::CUI::TestRunner.run(suite) end ruby-debian-0.3.8build2/t/testall.rb0000644000000000000000000000223311630763370014161 0ustar #!/usr/bin/ruby -- # -*- ruby -*- require 'runit/testsuite' require 'runit/cui/testrunner' require 'getoptlong' $:.unshift("../lib") opts = GetoptLong.new( ['--output', '-o', GetoptLong::REQUIRED_ARGUMENT], ['--quiet', '-q', GetoptLong::NO_ARGUMENT], ['--help', '-h', GetoptLong::NO_ARGUMENT]) outfile = '-' opts.each {|opt, val| case opt when "--output" then $stdout = open(val, "w"); outfile = val when "--quiet" then RUNIT::CUI::TestRunner.quiet_mode = true when "--help" then $stderr.puts "usage: #{$0} [-o file] [-q] [-h]" exit 1 end } Dir["test*.rb"].each {|t| next if t == __FILE__ require t } suite = RUNIT::TestSuite.new ObjectSpace.each_object(Class) {|klass| if klass.ancestors.include?(RUNIT::TestCase) suite.add_test(klass.suite) end } RUNIT::CUI::TestRunner.run(suite) if outfile != '-' $stdout.close IO.readlines(outfile).each {|line| line.chomp! if /^Errors:/ =~ line $stderr.puts "#{line}: See more detail in #{outfile}" elsif /^Failures:/ =~ line $stderr.puts "#{line}: See more detail in #{outfile}" elsif /^OK/ =~ line $stderr.puts "#{line}" end } end ruby-debian-0.3.8build2/t/testarchives.rb0000644000000000000000000001635411630763370015226 0ustar require 'runit/testcase' require 'runit/cui/testrunner' $:.unshift("../lib") require '../lib/debian.rb' class TArchives < Debian::Archives def initialize(f = "") @file = [] @lists = {} if f != "" @file.push(f) @lists = Debian::Archives.parseArchiveFile(f) {|info| Debian::Deb.new(info) } end end end class TestDebian__Archives < RUNIT::TestCase def setup @ar = [TArchives.new("d/status"), TArchives.new("d/available"), TArchives.new("d/sid_i386_Packages"), TArchives.new("d/non-US_sid_i386_Packages")] end def test_AND # '&' ar = @ar[0] & @ar[1] assert_equals('dpkg-ruby', ar['dpkg-ruby'].package) assert_nil(ar['smtpfeed']) assert_nil(@ar[0]['smtpfeed']) assert_equals('smtpfeed', @ar[1]['smtpfeed'].package) end def test_AREF # '[]' assert_equals("dpkg-ruby", @ar[0]['dpkg-ruby'].package) assert_equals("auto-apt", @ar[1]['auto-apt'].package) assert_equals("hotplug", @ar[2]['hotplug'].package) assert_equals("w3mmee-ssl", @ar[3]['w3mmee-ssl'].package) end def test_ASET # '[]=' deb = Debian::Deb.new(IO.readlines("d/w3m_0.2.1-2.f").join("")) @ar[3]['w3m'] = deb assert_equals(deb, @ar[3]['w3m']) end def test_LSHIFT # '<<' deb = Debian::Deb.new(IO.readlines("d/w3m_0.2.1-2.f").join("")) ar = @ar[3] << deb assert_equals(deb, ar['w3m']) assert_nil(@ar[3]['w3m']) ar = @ar[3] << nil assert_nil(ar['w3m']) deb = Debian::Deb.new(IO.readlines("d/w3m_0.2.1-1.f").join("")) ar = @ar[0] << deb assert_equals('0.2.1-2', ar['w3m'].version) end def test_MINUS # '-' ar = @ar[1] - @ar[0] assert_nil(ar['dpkg-ruby']) assert_equals('dpkg-ruby', @ar[1]['dpkg-ruby'].package) assert_equals('dpkg-ruby', @ar[0]['dpkg-ruby'].package) assert_equals('smtpfeed', ar['smtpfeed'].package) end def test_PLUS # '+' ar = @ar[2] + @ar[3] assert_equals('w3mmee-ssl', ar['w3mmee-ssl'].package) assert_nil(@ar[2]['w3mmee-ssl']) end def test_RSHIFT # '>>' deb = Debian::Deb.new(IO.readlines("d/w3m_0.2.1-2.f").join("")) ar = @ar[0] >> deb assert_nil(ar['w3m']) assert_equals('w3m', @ar[0]['w3m'].package) deb = Debian::Deb.new(IO.readlines("d/w3m_0.2.1-1.f").join("")) ar = @ar[0] >> deb assert_equals('w3m', ar['w3m'].package) ar = @ar[0] >> nil assert_equals('w3m', ar['w3m'].package) end def test_add @ar[2].add(@ar[3]) assert_equals('w3mmee-ssl', @ar[2]['w3mmee-ssl'].package) end def test_delete @ar[0].delete('w3m') assert_nil(@ar[0]['w3m']) end def test_delete_if deb = Debian::Deb.new(IO.readlines("d/w3m_0.2.1-1.f").join("")) @ar[0].delete_if {|p,d| d == deb } assert_equals('w3m', @ar[0]['w3m'].package) deb = Debian::Deb.new(IO.readlines("d/w3m_0.2.1-2.f").join("")) @ar[0].delete_if {|p,d| d == deb } assert_nil(@ar[0]['w3m']) end def test_each ps = ['w3mmee-ssl', 'w3m-ssl'] @ar[3].each {|p, d| ps.delete(p)} assert(ps.empty?) end def test_each_key ps = ['w3mmee-ssl', 'w3m-ssl'] @ar[3].each_key {|p| ps.delete(p)} assert(ps.empty?) end def test_each_package ds = [Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-2.f").join(""))] @ar[3].each_package {|d| ds.delete(d)} assert(ds.empty?) end def test_each_value ds = [Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-2.f").join(""))] @ar[3].each_package {|d| ds.delete(d)} assert(ds.empty?) end def test_empty? assert(!@ar[0].empty?) ar = @ar[0] - @ar[0] assert(ar.empty?) end def test_file assert_equals(['d/status'], @ar[0].file) assert_equals(['d/available'], @ar[1].file) assert_equals(['d/sid_i386_Packages'], @ar[2].file) assert_equals(['d/non-US_sid_i386_Packages'], @ar[3].file) assert_equals(['d/status', 'd/available'], (@ar[0] + @ar[1]).file) end def test_has_key? assert(@ar[0].has_key?('dpkg-ruby')) assert(@ar[1].has_key?('auto-apt')) assert(@ar[2].has_key?('hotplug')) assert(@ar[3].has_key?('w3mmee-ssl')) end def test_has_value? deb = Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-2.f").join("")) assert(!@ar[2].has_value?(deb)) assert(@ar[3].has_value?(deb)) deb = Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-1.f").join("")) assert(!(@ar[3].has_value?(deb))) end def test_include? assert(@ar[0].include?('dpkg-ruby')) assert(@ar[1].include?('auto-apt')) assert(@ar[2].include?('hotplug')) assert(@ar[3].include?('w3mmee-ssl')) end def test_indexes deb = Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-2.f").join("")) assert_equals([deb], @ar[3].indexes('w3m-ssl')) end def test_indices deb = Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-2.f").join("")) assert_equals([deb], @ar[3].indexes('w3m-ssl')) end def test_intersect ar = @ar[0].class.new ar.intersect(@ar[0], @ar[1]) assert_equals('dpkg-ruby', ar['dpkg-ruby'].package) assert_nil(ar['smtpfeed']) assert_equals('smtpfeed', @ar[1]['smtpfeed'].package) end def test_key? assert(@ar[0].key?('dpkg-ruby')) assert(@ar[1].key?('auto-apt')) assert(@ar[2].key?('hotplug')) assert(@ar[3].key?('w3mmee-ssl')) end def test_keys ps = ['w3m-ssl', 'w3mmee-ssl'].sort assert_equals(ps, @ar[3].keys.sort) end def test_length assert_equals(18, @ar[0].length) assert_equals(24, @ar[1].length) assert_equals(21, @ar[2].length) assert_equals(2, @ar[3].length) end def test_lists assert_equals(['w3m-ssl', 'w3mmee-ssl'].sort, @ar[3].lists.keys.sort) end def test_package deb = Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-2.f").join("")) assert_nil(@ar[3].package('w3m')) assert_equals(deb, @ar[3].package('w3m-ssl')) end def test_pkgnames assert_equals(['w3m-ssl', 'w3mmee-ssl'].sort, @ar[3].pkgnames.sort) end def test_store deb = Debian::Deb.new(IO.readlines("d/w3m_0.2.1-2.f").join("")) @ar[3].store('w3m', deb) assert_equals(deb, @ar[3]['w3m']) end def test_sub @ar[1].sub(@ar[0]) assert_nil(@ar[1]['dpkg-ruby']) assert_equals('dpkg-ruby', @ar[0]['dpkg-ruby'].package) assert_equals('smtpfeed', @ar[1]['smtpfeed'].package) end def test_to_s assert_equals("d/status", @ar[0].to_s) assert_equals("d/available", @ar[1].to_s) assert_equals("d/sid_i386_Packages", @ar[2].to_s) assert_equals("d/non-US_sid_i386_Packages", @ar[3].to_s) assert_equals("d/status+d/available", (@ar[0]+@ar[1]).to_s) end def test_value? deb = Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-2.f").join("")) assert(!@ar[2].has_value?(deb)) assert(@ar[3].has_value?(deb)) deb = Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-1.f").join("")) assert(!(@ar[3].has_value?(deb))) end def test_values ds = [Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-2.f").join(""))] @ar[3].values.each {|d| ds.delete(d)} assert(ds.empty?) end # def test_s_parse # # end # def test_s_parseAptLine # # end # def test_s_parseArchiveFile # # end end if $0 == __FILE__ if ARGV.size == 0 suite = TestDebian__Archives.suite else suite = RUNIT::TestSuite.new ARGV.each do |testmethod| suite.add_test(TestDebian__Archives.new(testmethod)) end end RUNIT::CUI::TestRunner.run(suite) end ruby-debian-0.3.8build2/t/testsources.rb0000644000000000000000000000145111630763370015075 0ustar require 'runit/testcase' require 'runit/cui/testrunner' $:.unshift("../lib") require '../lib/debian.rb' class TestDebian__Sources < RUNIT::TestCase def setup @ss = [Debian::Sources.new("d/sid_Sources"), Debian::Sources.new("d/non-US_sid_Sources")] end def test_s_new @ss[0].each {|p,s| assert_equals(Debian::Dsc, s.class) } @ss[1].each {|p,s| assert_equals(Debian::Dsc, s.class) } end # def test_s_parse # # end # def test_s_parseAptLine # # end # def test_s_parseArchiveFile # # end end if $0 == __FILE__ if ARGV.size == 0 suite = TestDebian__Sources.suite else suite = RUNIT::TestSuite.new ARGV.each do |testmethod| suite.add_test(TestDebian__Sources.new(testmethod)) end end RUNIT::CUI::TestRunner.run(suite) end ruby-debian-0.3.8build2/t/d/0000755000000000000000000000000011630763370012407 5ustar ruby-debian-0.3.8build2/t/d/w3m_0.2.1-1.dsc0000644000000000000000000000054211630763370014465 0ustar Format: 1.0 Source: w3m Version: 0.2.1-1 Binary: w3m Maintainer: Fumitoshi UKAI Architecture: any Standards-Version: 3.1.1 Build-Depends: libgc5-dev, libncurses5-dev, libgpmg1-dev, debhelper, gawk | awk Files: 76748994920f0f553e240d37cd9498b5 834552 w3m_0.2.1.orig.tar.gz 5818342c9f877712af26c6f1d0d36bdf 23768 w3m_0.2.1-1.diff.gz ruby-debian-0.3.8build2/t/d/w3m-ssl_0.2.1-1.f0000644000000000000000000000157311630763370014745 0ustar Package: w3m-ssl Version: 0.2.1-1 Section: non-US/main Priority: optional Architecture: i386 Depends: libc6 (>= 2.2.1-2), libgc5, libgpmg1 (>= 1.14-16), libncurses5 (>= 5.2.20010310-1), libssl096, w3m Recommends: w3m (= 0.2.1-1) Suggests: mime-support, menu (>> 1.5) Provides: www-browser Installed-Size: 840 Maintainer: Fumitoshi UKAI Description: WWW browsable pager with SSL support w3m is a text-based World Wide Web browser with IPv6 support. It features excellent support for tables and frames. It can be used as a standalone file pager, too. . * You can follow links and/or view images in HTML. * Internet message prewview mode, you can browse HTML mail. * You can follow links in plain text if it includes URL forms. . This package is built with SSL support. . For more information, see http://ei5nazha.yz.yamagata-u.ac.jp/~aito/w3m/eng/index.html ruby-debian-0.3.8build2/t/d/available0000644000000000000000000004312711630763370014261 0ustar Package: dpkg-ruby Priority: optional Section: devel Installed-Size: 112 Maintainer: Fumitoshi UKAI Architecture: all Version: 0.0.1 Depends: ruby Size: 10172 Description: ruby interface for dpkg Contains ruby modules/classes for dpkg, the Debian package management system. Package: fml Priority: extra Section: mail Installed-Size: 4936 Maintainer: Fumitoshi UKAI Architecture: all Version: 3.0+beta.20000106-1 Depends: perl5 | perl5-thread | perl-5.004 | perl-5.005 | perl-5.005-thread | perl, libjcode-perl Recommends: mail-transport-agent, libmd5-perl Suggests: sendmail-wide, smtpfeed, lha, ish Filename: dists/potato/main/binary-i386/mail/fml_3.0+beta.20000106-1.deb Size: 2143076 MD5sum: 52e7d35f6c795018600da3d95c32f6fe Description: Mailing List Server Package FML is a package of mailing list server and utility programs. It consists of perl scripts. It has been developed, tested and advanced in Japan from 1993 to 1999. FML contains . distributer (filter program which passes articles to MTA to deliver) command server for users command interface for general user command interface for remote administration listserv/majordomo style interface (emulation) digest server CUI installer and configuration program other utility programs . FML design policy is based on the degree of freedom, so that I respect "each environment for each man/women". Package: liblingua-romkan-perl Priority: optional Section: utils Installed-Size: 76 Maintainer: Fumitoshi UKAI Architecture: all Source: migemo Version: 0.21-3 Depends: perl Size: 8072 Description: Romaji Kana convertion for perl It provides Lingua::Romkan perl module to make it possible to convert Roman and Kana vice versa in perl script. Package: smtpfeed Priority: extra Section: mail Installed-Size: 179 Maintainer: Fumitoshi UKAI Architecture: i386 Version: 1.02-2 Depends: libc6 (>= 2.1), sysklogd Recommends: sendmail-wide (>= 8.9.3+3.2W), logrotate Filename: dists/potato/main/binary-i386/mail/smtpfeed_1.02-2.deb Size: 78866 MD5sum: 52db36fc26ae5f217bb88b62f22bc256 Description: SMTP feed -- SMTP Fast Exploding External Deliver for Sendmail Smtpfeed is a SMTP delivery agent which is called by sendmail, and it improves required time to complete delivery of copies of a message to recipients of huge number. . Note that smtpfeed still in ALPHA testing release. Package: w3m Priority: optional Section: text Installed-Size: 1300 Maintainer: Fumitoshi UKAI Architecture: i386 Version: 0.2.1-2 Provides: www-browser Depends: libc6 (>= 2.2.2-2), libgc5, libgpmg1 (>= 1.14-16), libncurses5 (>= 5.2.20010310-1) Suggests: w3m-ssl (>= 0.2.1-2), mime-support, menu (>> 1.5), w3m-el Filename: dists/potato/main/binary-i386/text/w3m_0.1.9-5.deb Size: 493792 MD5sum: 95e68eb2c8bc6f45f29c3d03fc6df5eb Description: WWW browsable pager with excellent tables/frames support w3m is a text-based World Wide Web browser with IPv6 support. It features excellent support for tables and frames. It can be used as a standalone file pager, too. . * You can follow links and/or view images in HTML. * Internet message prewview mode, you can browse HTML mail. * You can follow links in plain text if it includes URL forms. . For more information, see http://ei5nazha.yz.yamagata-u.ac.jp/~aito/w3m/eng/index.html Package: mhc Priority: optional Section: misc Installed-Size: 441 Maintainer: Fumitoshi UKAI Architecture: i386 Version: 0.25-9 Depends: libc6 (>= 2.2.1-2), libpisock3, libruby (>= 1.6.2-6), ruby, libnkf-ruby, emacsen, wl (>= 2.4) | wl-beta (>= 2.3) | wanderlust2 (>= 2.2.10) | mew (>= 1:1.94) | gnus Recommends: libgnome-ruby Suggests: ssh Size: 128234 Description: Message Harmonized Calendaring system MHC is designed to help those who receive most appointments via email. Using MHC, you can easily import schedule articles from emails, and convert these appointments from/to PlamOS. . MHC stores schedule articles in the same form of MH; you can manipulate these messages not only by above tools but also by many other MUAs, editors, UNIX commandline tools or your own scripts. . For mhc-mode, you should select mailer-package by mhc-select-mailer-package. . All ruby scripts in mhc requires kconv (in libnkf-ruby). To use /usr/bin/gemcal, you must install libgnome-ruby too. . For more information, you can find at http://www.quickhack.net/mhc/ Package: libmoe1.2 Priority: optional Section: libs Installed-Size: 1451 Maintainer: Fumitoshi UKAI Architecture: i386 Source: libmoe Version: 1.2.2-1 Depends: libc6 (>= 2.2.1) Size: 554496 Description: library to handle multiple octets character encoding scheme libmoe is a collection of routines to handle sequence of characters consisting of multiple octets. The main functionalities are to convert the encoding of a character from ISO 2022 to "fake" UTF-8, and vice versa. Package: libmoe1.3 Priority: optional Section: libs Installed-Size: 1640 Maintainer: Fumitoshi UKAI Architecture: i386 Source: libmoe Version: 1.3.2-2 Depends: libc6 (>= 2.2.1-2) Size: 678200 Description: library to handle multiple octets character encoding scheme libmoe is a collection of routines to handle sequence of characters consisting of multiple octets. The main functionalities are to convert the encoding of a character from ISO 2022 to "fake" UTF-8, and vice versa. Package: mgp Priority: optional Section: x11 Installed-Size: 1404 Maintainer: Fumitoshi UKAI Architecture: i386 Version: 1.07a.20010326-1 Depends: freetype2 (>= 1.3.1), imlib1 (>= 1.9.8.1-2), libc6 (>= 2.2.2-2), libpng2, libungif3g (>= 3.0-2) | giflib3g (>= 3.0-5.2), vflib2 (>= 2.25.1-1), xlibs (>= 4.0.1-11), perl | perl5 Recommends: libjpeg-progs, pnmtopng, netpbm, sharutils Suggests: emacsen-common, gs, tetex-bin, vflib2-misc, watanabe-vfont, asiya24-vfont, gsfonts-x11, ttf-xtt-wadalab-gothic, ttf-xtt-watanabe-mincho, msttcorefonts Filename: dists/potato/main/binary-i386/x11/mgp_1.06a.19991206-2.deb Size: 720778 MD5sum: 71e1de5d59579d69a7137bcc7ad9332b Description: MagicPoint- an X11 based presentation tool MagicPoint is an X11 based presentation tool. It is designed to make simple presentations easy while to make complicated presentations possible. Its presentation file (whose suffix is typically .mgp) is just text so that you can create presentation files quickly with your favorite editor (e.g. Emacs). Package: hex Priority: extra Section: utils Installed-Size: 66 Maintainer: Fumitoshi UKAI Architecture: i386 Version: 204-5 Depends: libc6 (>= 2.1) Filename: dists/potato/main/binary-i386/utils/hex_204-5.deb Size: 27230 MD5sum: ec09cd0b383816e6145fc00d28b56f78 Description: hexadecimal dumping tool for Japanese hexdump program that distinguish Japanese 2bytes code character. Package: w3mmee-ssl Priority: optional Section: non-US/main Installed-Size: 420 Maintainer: Fumitoshi UKAI Architecture: i386 Version: 0.2.1.p18.5-1 Provides: www-browser Depends: libc6 (>= 2.2.2-2), libgc5, libgpmg1 (>= 1.14-16), libmoe1.3, libncurses5 (>= 5.2.20010310-1), libssl0.9.6, w3mmee Recommends: w3mmee (= 0.2.1.p18.5-1) Suggests: mime-support, menu (>> 1.5) Size: 202458 Description: WWW browsable pager with SSL support, MB extension w3mmee is w3m with multibyte encoding extension. This package is built with SSL support. . For more information, see http://ei5nazha.yz.yamagata-u.ac.jp/~aito/w3m/eng/index.html and http://pub.ks-and-ks.ne.jp/prog/w3mmee/ Package: migemo Priority: optional Section: utils Installed-Size: 3056 Maintainer: Fumitoshi UKAI Architecture: all Version: 0.21-3 Depends: emacs20 | emacsen, apel, liblingua-romkan-perl Size: 1273442 Description: Japanese incremental search with Romaji on Emacsen migemo is a tool that supports Japanese incremental search with Romaji. It release you from heavy tasks of Kana Kanji conversion in order to search. This is Emacsen interface, that is wrapper for isearch. http://migemo.namazu.org/ Package: w3m-el Priority: optional Section: web Installed-Size: 532 Maintainer: Fumitoshi UKAI Architecture: all Version: 0.2.150-2 Depends: xemacs21 | emacs20 | emacs21 | mule2, xemacs21-supportbase | emacs20 | emacs21 | apel, xemacs21 | emacs20 | emacs21 | apel, xemacs21-basesupport | emacs20 | emacs21 | mule2, w3m (>= 0.2.1-2) | w3m-ssl (>= 0.2.1-2) Suggests: flim, mew Size: 91478 Description: a simple Emacs interface of w3m This package contains a interface program of w3m, which is a pager with WWW capability. It can be used as lightweight WWW browser on emacsen. This is also known as emacs-w3m. http://namazu.org/~tsuchiya/emacs-w3m/ Package: libmoe-dev Priority: optional Section: devel Installed-Size: 1868 Maintainer: Fumitoshi UKAI Architecture: i386 Source: libmoe Version: 1.3.2-2 Replaces: libiso2mb-dev Depends: libmoe1.3 (= 1.3.2-2), libc6-dev Conflicts: libiso2mb-dev Size: 728366 Description: library to handle multiple octets character encoding scheme (devel files) libmoe is a collection of routines to handle sequence of characters consisting of multiple octets. The main functionalities are to convert the encoding of a character from ISO 2022 to "fake" UTF-8, and vice versa. . This development package contains include files for the interface. It includes also a static lib for particular cases. Package: w3m-ssl Priority: optional Section: non-US/main Installed-Size: 844 Maintainer: Fumitoshi UKAI Architecture: i386 Version: 0.2.1-2 Provides: www-browser Depends: libc6 (>= 2.2.2-2), libgc5, libgpmg1 (>= 1.14-16), libncurses5 (>= 5.2.20010310-1), libssl0.9.6, w3m Recommends: w3m (= 0.2.1-2) Suggests: mime-support, menu (>> 1.5) Size: 347316 Description: WWW browsable pager with SSL support w3m is a text-based World Wide Web browser with IPv6 support. It features excellent support for tables and frames. It can be used as a standalone file pager, too. . * You can follow links and/or view images in HTML. * Internet message prewview mode, you can browse HTML mail. * You can follow links in plain text if it includes URL forms. . This package is built with SSL support. . For more information, see http://ei5nazha.yz.yamagata-u.ac.jp/~aito/w3m/eng/index.html Package: auto-apt Priority: optional Section: admin Installed-Size: 124 Maintainer: Fumitoshi UKAI Architecture: i386 Version: 0.3.11 Depends: libc6 (>= 2.2.1), apt, sudo, perl5 Recommends: wget, dpkg-dev Suggests: x-terminal-emulator, libgtk-perl, build-essential Size: 41898 Description: on demand package installation tool auto-apt checks the file access of programs running within its environments, and if a program tries to access a file known to belong in an uninstalled package, auto-apt will install that package using apt-get. . It also provides simple database to search which package contains a requesting file. Package: hotplug Priority: optional Section: admin Installed-Size: 180 Maintainer: Fumitoshi UKAI Architecture: all Version: 0.0.20010228-3 Replaces: usbmgr Depends: modutils (>= 2.4.2), debconf (>= 0.2.26) Recommends: ifupdown, usbutils, pciutils Conflicts: usbmgr Size: 23728 Description: Linux Hotplug Scripts This package contains the scripts necessary for hotplug Linux support, and lets you plug in new devices and use them immediately. Initially, it includes support for USB and PCI (Cardbus) devices, and can automatically configure network interfaces. Package: xfonts-marumoji Priority: optional Section: x11 Installed-Size: 673 Maintainer: Fumitoshi UKAI Architecture: all Version: 0.2-2 Replaces: xmarufont Depends: xbase-clients (>= 3.3.3.1-5) Suggests: xfs | xserver Conflicts: xmarufont Filename: dists/potato/main/binary-i386/x11/xfonts-marumoji_0.2-2.deb Size: 577128 MD5sum: 23df27b466b96a092d3b9536d61573cb Description: Roundish fonts (marumoji fonts) for X Japanese and ASCII roundish fonts (marumoji in Japanese) for X servers. It provides: maru14: JIS X0208.1983 Roundish Characters (14 dots) maru16: JIS X0208.1983 Roundish Characters (16 dots) 7x14rkmr: JIS X0201.1976 Roman Roundish Characters (14 dots) 7x14maru: ISO8859-1 Roundish Characters (14 dots) Package: donkey Priority: extra Section: net Installed-Size: 47 Maintainer: Fumitoshi UKAI Architecture: i386 Version: 0.5-11 Depends: libc6 (>= 2.1) Filename: dists/potato/main/binary-i386/net/donkey_0.5-11.deb Size: 19630 MD5sum: 423e46df478eac046f19101e2a05773a Description: One Time Password calculator. Donkey is an alternative for S/KEY's "key" command. This means that donkey is also an alternative for "keyinit". Since the entry is printed to stdout (not to /etc/skeykeys), you can easily sent it to remote operator by e-mail (with PGP signature or something). So, it possible to initiate S/KEY without login from the console of the host. Package: xfonts-a12k12 Priority: optional Section: x11 Installed-Size: 192 Maintainer: Fumitoshi UKAI Architecture: all Version: 1-4 Replaces: a12k12 Depends: xutils Suggests: xfs | xserver Conflicts: a12k12, xbase-clients (<< 4.0) Filename: dists/potato/main/binary-i386/x11/xfonts-a12k12_1-2.deb Size: 142872 MD5sum: f0fb62fc81604aee93b3bb6eca4165a7 Description: 12 dot Kanji & ASCII fonts for X This package provides 12dot fonts for Japanese (ASCII and Kana/Kanji) It provides - a12: 12dot ASCII fonts - k12: 12dot Kanji fonts Package: skkinput Priority: optional Section: x11 Installed-Size: 317 Maintainer: Fumitoshi UKAI Architecture: i386 Version: 1:2.03-7 Depends: libc6 (>= 2.2.1), xlibs (>= 4.0.1-11) Recommends: xfonts-cjk Suggests: skkserv, skkdic Filename: dists/potato/main/binary-i386/x11/skkinput_2.03-2.deb Size: 176430 MD5sum: 3df3259bec631d10e0e6e7d47009be2b Description: X input method for Japanese for SKK method. skkinput is application to input Japanese for X application using protocols such as kinput2/XIM/Ximp protocol. skkinput communicates with skkserv using Berkeley Socket. Without skkserv, local dictionary files is used. Package: w3mmee Priority: optional Section: web Installed-Size: 924 Maintainer: Fumitoshi UKAI Architecture: i386 Version: 0.2.1.p18.5-1 Provides: www-browser Depends: libc6 (>= 2.2.2-2), libgc5, libgpmg1 (>= 1.14-16), libmoe1.3, libncurses5 (>= 5.2.20010310-1) Suggests: w3mmee-ssl (>= 0.2.1.p18.5-1), mime-support, menu (>> 1.5) Size: 366898 Description: WWW browsable pager with excellent tables/frames, MB extension w3mmee is w3m with multibyte encoding extension. . For more information, see http://ei5nazha.yz.yamagata-u.ac.jp/~aito/w3m/eng/index.html and http://pub.ks-and-ks.ne.jp/prog/w3mmee/ Package: debian-jp-keyring Priority: optional Section: contrib/misc Installed-Size: 179 Maintainer: Fumitoshi UKAI Architecture: all Version: 2001.03.09 Recommends: gnupg Suggests: gpg-rsa | gpg-rsaref, pgp Size: 144238 Description: PGP and GnuPG keys of Debian JP Developers The Debian JP project wants developers to digitally sign the announcements of their packages with PGP or GnuPG, to protect against forgeries. This is a PGP and GnuPG keyring with keys of Debian JP developers. Package: sendmail-wide Priority: extra Section: mail Installed-Size: 411 Maintainer: Fumitoshi UKAI Architecture: i386 Version: 8.9.3+3.2W-20 Depends: libc6 (>= 2.1.2), libwrap0, sendmail (>= 8.9.3) Suggests: smtpfeed Filename: dists/potato/main/binary-i386/mail/sendmail-wide_8.9.3+3.2W-20.deb Size: 217146 MD5sum: 85077954e1c6f686b054df3cdb4518a9 Description: WIDE patch applied /usr/sbin/sendmail This package replaces /usr/sbin/sendmail with WIDE patch version, which provides some enhancement for the sendmail. Please apply this patch if you want to use "smtpfeed", which is an external SMTP mailer. WIDE patch includes followings patches: LOGWVERSION QUICK_RESPONSE - bounce mail not queued MULTI_MAILER - multiple mailer dispath in rulesetlikke: R$*<@dom>$* $#smtp$@dom$:$1<@dom>$2 $#uucp$@dom$:$1<@dom>$2 CF_ALIASING - alias in ruleset 5 like: R foo-a $# local $@ alias $: foo-a, foo-b DYNAMIC_TOBUF - tobuf[] dynamic allocation MAILER_PREF - mailer preferences CLIENT_SMTP_CONFIG - 3 parameters of client-side SMTP connection FQDN: FQDN used as a hostname with SMTP HELO SrcIPaddr: source IP address for client-side SMTP (12.34.56.78) SrcPort: source port number for client-side SMTP CTE8CHECK - Option CTE8BitChec=[corrent|reject] BOUNCE_REASON - Show reason of permanent fatal errors on each address OO_NULLSENDER - Set NULL sender envelope address for "owner-owner" MF_SEPARATE MASKED_ADDR - matching by masked IP address DEFINE_MAP - Enables "define" map. SPR_CON_CACHE - connection-caching control par mailer basis. FORWARDPROGCTL - privilege control on execution of programs via ~/.forward MAILER_TIMEOUTS - control message timeout per mailer basis. CHECK_WARNING - control whether a queue-warning should be sent or not For more information, see /usr/share/doc/sendmail-wide/00READ_ME.WIDE.gz . Note that original sendmail is diverted to /usr/sbin/sendmail-nowide. . WIDE is project name and stands for `Widely Integrated Distribution Environment'. Research goal of WIDE project is "to establish large-scale distributed computing environment". WIDE Project is working for providing the wide area communication infrastructure with our telecommunication technology and operating system technology, and trying hard to contribute to the people. http://www.wide.ad.jp/ ruby-debian-0.3.8build2/t/d/non-US_sid_Sources0000644000000000000000000000211611630763370016013 0ustar Package: w3m-ssl Binary: w3m-ssl Version: 0.2.1-2 Priority: optional Section: non-US Maintainer: Fumitoshi UKAI Build-Depends: libgc5-dev, libncurses5-dev, libgpmg1-dev, libssl-dev, debhelper, gawk | awk Architecture: any Standards-Version: 3.1.1 Format: 1.0 Directory: pool/non-US/main/w/w3m-ssl Files: fa016adcf912ba888e31aaea4a4aea21 662 w3m-ssl_0.2.1-2.dsc 76748994920f0f553e240d37cd9498b5 834552 w3m-ssl_0.2.1.orig.tar.gz 5423fdf58a02bc0cbbeab04965db51ed 31725 w3m-ssl_0.2.1-2.diff.gz Package: w3mmee-ssl Binary: w3mmee-ssl Version: 0.2.1.p18.5-1 Priority: optional Section: non-US Maintainer: Fumitoshi UKAI Build-Depends: libgc5-dev, libncurses5-dev, libgpmg1-dev, debhelper, gawk | awk, libssl-dev, libmoe-dev (>= 1.3.2), gettext Architecture: any Standards-Version: 3.2.1 Format: 1.0 Directory: pool/non-US/main/w/w3mmee-ssl Files: 5151f6497ab7aea9cfe98594f37f5a81 724 w3mmee-ssl_0.2.1.p18.5-1.dsc 74085a24f99fa3f7e4d3a87301b2b102 1033056 w3mmee-ssl_0.2.1.p18.5.orig.tar.gz ecfcfe2008b8f0d9093e7cdd4dae9c40 8482 w3mmee-ssl_0.2.1.p18.5-1.diff.gz ruby-debian-0.3.8build2/t/d/w3m_0.2.1-1.f0000644000000000000000000000151311630763370014140 0ustar Package: w3m Version: 0.2.1-1 Section: text Priority: optional Architecture: i386 Depends: libc6 (>= 2.2.1-2), libgc5, libgpmg1 (>= 1.14-16), libncurses5 (>= 5.2.20010310-1) Suggests: w3m-ssl (>= 0.2.1-1), mime-support, menu (>> 1.5), w3m-el Provides: www-browser Installed-Size: 1300 Maintainer: Fumitoshi UKAI Description: WWW browsable pager with excellent tables/frames support w3m is a text-based World Wide Web browser with IPv6 support. It features excellent support for tables and frames. It can be used as a standalone file pager, too. . * You can follow links and/or view images in HTML. * Internet message prewview mode, you can browse HTML mail. * You can follow links in plain text if it includes URL forms. . For more information, see http://ei5nazha.yz.yamagata-u.ac.jp/~aito/w3m/eng/index.html ruby-debian-0.3.8build2/t/d/w3m_0.2.1-2.f0000644000000000000000000000151311630763370014141 0ustar Package: w3m Version: 0.2.1-2 Section: text Priority: optional Architecture: i386 Depends: libc6 (>= 2.2.2-2), libgc5, libgpmg1 (>= 1.14-16), libncurses5 (>= 5.2.20010310-1) Suggests: w3m-ssl (>= 0.2.1-2), mime-support, menu (>> 1.5), w3m-el Provides: www-browser Installed-Size: 1300 Maintainer: Fumitoshi UKAI Description: WWW browsable pager with excellent tables/frames support w3m is a text-based World Wide Web browser with IPv6 support. It features excellent support for tables and frames. It can be used as a standalone file pager, too. . * You can follow links and/or view images in HTML. * Internet message prewview mode, you can browse HTML mail. * You can follow links in plain text if it includes URL forms. . For more information, see http://ei5nazha.yz.yamagata-u.ac.jp/~aito/w3m/eng/index.html ruby-debian-0.3.8build2/t/d/sid_Sources0000644000000000000000000002050511630763370014616 0ustar Package: auto-apt Binary: auto-apt Version: 0.3.11 Priority: optional Section: admin Maintainer: Fumitoshi UKAI Build-Depends: binutils, cpio, debhelper, devscripts, libc6-dev Architecture: any Standards-Version: 3.0.1 Format: 1.0 Directory: pool/main/a/auto-apt Files: cd35e8874ff090fcce230ddc7cb4202f 568 auto-apt_0.3.11.dsc 38f4d7bcce9942dcd468969e3be6a15a 515185 auto-apt_0.3.11.tar.gz Package: donkey Binary: donkey Version: 0.5-12 Priority: extra Section: net Maintainer: Fumitoshi UKAI Build-Depends: debhelper Architecture: any Standards-Version: 3.2.1 Format: 1.0 Directory: pool/main/d/donkey Files: ef2fa8314ebb27c15d08568ca52773f1 585 donkey_0.5-12.dsc dd3ebca4504edbcecdde63896d60b7b6 39723 donkey_0.5.orig.tar.gz a256bc75dd84ce2c881aa2b1ec65885d 3674 donkey_0.5-12.diff.gz Package: fml Binary: fml Version: 4.0-4 Priority: extra Section: mail Maintainer: Fumitoshi UKAI Build-Depends: debhelper Architecture: all Standards-Version: 3.0.0 Format: 1.0 Directory: pool/main/f/fml Files: 7ceed4a6a6bf4bda30c5816492630687 574 fml_4.0-4.dsc 7bcae3c4bc4dcce3eff02e16e740b426 2185990 fml_4.0.orig.tar.gz 92828920d332fc20df9ca9e8801de699 13839 fml_4.0-4.diff.gz Package: hex Binary: hex Version: 204-9 Priority: extra Section: utils Maintainer: Fumitoshi UKAI Build-Depends: debhelper, xutils, xlibs-dev Architecture: any Standards-Version: 3.2.1 Format: 1.0 Directory: pool/main/h/hex Files: a218aa10311860286739feafe6617764 591 hex_204-9.dsc 70f6e6048b31abb99159745a82b6931e 11140 hex_204.orig.tar.gz 59a0cc84b9d3b8ef92c87c910f4d3a7d 12606 hex_204-9.diff.gz Package: hotplug Binary: hotplug Version: 0.0.20010228-3 Priority: optional Section: admin Maintainer: Fumitoshi UKAI Build-Depends: debhelper Architecture: all Standards-Version: 3.2.1 Format: 1.0 Directory: pool/main/h/hotplug Files: 569ba18c8d3954b55cef174d006b9ce0 614 hotplug_0.0.20010228-3.dsc 57ba91d4210fadb40a53eeb7de22a652 17746 hotplug_0.0.20010228.orig.tar.gz 295ffb9116e50d56cf7dada0e4041716 6206 hotplug_0.0.20010228-3.diff.gz Package: libiso2mb Binary: libiso2mb-dev, libiso2mb0.8 Version: 0.8.5-1 Priority: optional Section: libs Maintainer: Fumitoshi UKAI Build-Depends: debhelper, perl-5.005 Architecture: any Standards-Version: 3.0.1 Format: 1.0 Directory: dists/woody/main/source/libs Files: fb235dbdf1854687b2f1ce74de028a93 633 libiso2mb_0.8.5-1.dsc ef466ae02f51452bc7d484a352fe5bd2 1265600 libiso2mb_0.8.5.orig.tar.gz a96db44aba47d0b430bfdcde657b3412 6608 libiso2mb_0.8.5-1.diff.gz Package: libmoe Binary: libmoe1.3, libmoe-dev Version: 1.3.2-2 Priority: optional Section: libs Maintainer: Fumitoshi UKAI Build-Depends: debhelper, perl Architecture: any Standards-Version: 3.2.1 Format: 1.0 Directory: pool/main/libm/libmoe Files: 195b647b761c34b688576204424f2413 612 libmoe_1.3.2-2.dsc fda84c91fdfef270643a82c67e7e9f25 1278344 libmoe_1.3.2.orig.tar.gz d968bbb93a900f37f7e07a0dd64afce8 2632 libmoe_1.3.2-2.diff.gz Package: mgp Binary: mgp Version: 1.07a.20010212-3 Priority: optional Section: x11 Maintainer: Fumitoshi UKAI Build-Depends: debhelper, devscripts, xutils, flex, bison, freetype2-dev, vflib2-dev, libpng2-dev, xlibs-dev, awk, sharutils, zlib1g-dev, libungif3g-dev, imlib-dev Architecture: any Standards-Version: 3.1.0 Format: 1.0 Directory: pool/main/m/mgp Files: 18e65f0bd4e810719417ec9ddbca8750 745 mgp_1.07a.20010212-3.dsc 092d205d3096e44dcc04e6b45b1a8f22 813142 mgp_1.07a.20010212.orig.tar.gz 546ba29434a8d882570b0f0a975db6c7 10577 mgp_1.07a.20010212-3.diff.gz Package: mhc Binary: mhc Version: 0.25-9 Priority: optional Section: misc Maintainer: Fumitoshi UKAI Build-Depends: ruby, ruby-dev, libpisock-dev, debhelper Architecture: any Standards-Version: 3.0.1 Format: 1.0 Directory: pool/main/m/mhc Files: 42506e6db4cfd646ca74e04c78fbd79a 606 mhc_0.25-9.dsc 2e318e3805fd5642915d8d5c2345808a 115520 mhc_0.25.orig.tar.gz 0cee3cee8c22e0920901474a0af89762 8633 mhc_0.25-9.diff.gz Package: migemo Binary: liblingua-romkan-perl, migemo Version: 0.21-3 Priority: optional Section: utils Maintainer: Fumitoshi UKAI Build-Depends: debhelper (>> 2.0.0), perl, skkdic, textutils Architecture: all Standards-Version: 3.2.1 Format: 1.0 Directory: pool/main/m/migemo Files: 16b4058791c38e761aa93de4b100ba2d 648 migemo_0.21-3.dsc 2cf7c9f06243da4a8b58ecac12849913 143477 migemo_0.21.orig.tar.gz 57b7f9c5935810feada40a8dbcd0ded7 150449 migemo_0.21-3.diff.gz Package: sendmail-wide Binary: sendmail-wide Version: 8.11.1+3.4W-5.1 Priority: extra Section: mail Maintainer: Fumitoshi UKAI Build-Depends: debhelper (>= 1.1.17), libwrap0-dev, m4, libdb2-dev, libldap2-dev, sfio-dev, libsasl-dev Architecture: any Standards-Version: 3.2.1.0 Format: 1.0 Directory: pool/main/s/sendmail-wide Files: a9fc8b108168208055917ee55aa3e10a 724 sendmail-wide_8.11.1+3.4W-5.1.dsc dc391f6cff86da8076b11a53152240c5 1338017 sendmail-wide_8.11.1+3.4W.orig.tar.gz f761d0ecd65f929f0214afeb397aa489 175618 sendmail-wide_8.11.1+3.4W-5.1.diff.gz Package: skkinput Binary: skkinput Version: 1:2.03-7 Priority: optional Section: x11 Maintainer: Fumitoshi UKAI Build-Depends: debhelper, devscripts, xlibs-dev, xutils Architecture: any Standards-Version: 3.0.1 Format: 1.0 Directory: pool/main/s/skkinput Files: 1f3fde442e9b4c0842da142de15ab618 628 skkinput_2.03-7.dsc 74c08620e8e916a3d56f3bb3e85a5d62 398821 skkinput_2.03.orig.tar.gz 8e249e93628dd5b91c4156c87a51a7b9 9122 skkinput_2.03-7.diff.gz Package: smtpfeed Binary: smtpfeed Version: 1.11-1 Priority: extra Section: mail Maintainer: Fumitoshi UKAI Build-Depends: debhelper Architecture: any Standards-Version: 3.2.1 Format: 1.0 Directory: pool/main/s/smtpfeed Files: 209164c3363b25a6f3b16c17fe8a4acf 595 smtpfeed_1.11-1.dsc 8a56b84c9a74583ae606caf298c543c3 140005 smtpfeed_1.11.orig.tar.gz d2b5ffaad8df4dc6ee6a9b921dfbd5ea 9788 smtpfeed_1.11-1.diff.gz Package: w3m Binary: w3m Version: 0.2.1-2 Priority: optional Section: text Maintainer: Fumitoshi UKAI Build-Depends: libgc5-dev, libncurses5-dev, libgpmg1-dev, debhelper, gawk | awk Architecture: any Standards-Version: 3.1.1 Format: 1.0 Directory: pool/main/w/w3m Files: 49c115c0dc7bb5aebeb14969d69962d3 634 w3m_0.2.1-2.dsc 76748994920f0f553e240d37cd9498b5 834552 w3m_0.2.1.orig.tar.gz 9a4a98cb70ea772a3838f328c22c2037 31739 w3m_0.2.1-2.diff.gz Package: w3m-el Binary: w3m-el Version: 0.2.150-2 Priority: optional Section: web Maintainer: Fumitoshi UKAI Build-Depends: debhelper (>> 2.0.0) Architecture: all Standards-Version: 3.2.1 Format: 1.0 Directory: pool/main/w/w3m-el Files: b032e63432086823a7c94943aae26eef 607 w3m-el_0.2.150-2.dsc ea1ecc0aef0bcb992813a70066ccc8b5 107956 w3m-el_0.2.150.orig.tar.gz b9693ecdac2858aca1992b1ef62348bb 4356 w3m-el_0.2.150-2.diff.gz Package: w3mmee Binary: w3mmee Version: 0.2.1.p18.5-1 Priority: optional Section: web Maintainer: Fumitoshi UKAI Build-Depends: libgc5-dev, libncurses5-dev, libgpmg1-dev, debhelper, gawk | awk, libmoe-dev (>= 1.3.2) , gettext Architecture: any Standards-Version: 3.2.1 Format: 1.0 Directory: pool/main/w/w3mmee Files: 0ba3745e53ae57cadb7b1bd50352b2aa 697 w3mmee_0.2.1.p18.5-1.dsc 74085a24f99fa3f7e4d3a87301b2b102 1033056 w3mmee_0.2.1.p18.5.orig.tar.gz 867c8391daf9a1100311cbbb0001919e 8525 w3mmee_0.2.1.p18.5-1.diff.gz Package: xfonts-a12k12 Binary: xfonts-a12k12 Version: 1-4 Priority: optional Section: x11 Maintainer: Fumitoshi UKAI Build-Depends: xutils | xbase-clients, debhelper Architecture: all Standards-Version: 3.2.1 Format: 1.0 Directory: pool/main/x/xfonts-a12k12 Files: 92401a07d27e3076bdb3f7efc5465651 630 xfonts-a12k12_1-4.dsc 4d912d9b872e9776010eab9f8a7583a8 166916 xfonts-a12k12_1.orig.tar.gz 81fa36f78c2d0a0894bf6143f9bfd8b2 3878 xfonts-a12k12_1-4.diff.gz Package: xfonts-marumoji Binary: xfonts-marumoji Version: 0.2-4 Priority: optional Section: x11 Maintainer: Fumitoshi UKAI Build-Depends: xutils | xbase-clients, debhelper Architecture: all Standards-Version: 3.2.1 Format: 1.0 Directory: pool/main/x/xfonts-marumoji Files: d6ec82736a1a33e32307bbf5466f0990 644 xfonts-marumoji_0.2-4.dsc fcbcaf20ad0f04784c55c156694a4882 655083 xfonts-marumoji_0.2.orig.tar.gz 8ba60d389904cca7347d63bc5aa9e982 3517 xfonts-marumoji_0.2-4.diff.gz ruby-debian-0.3.8build2/t/d/w3m-ssl_0.2.1-2.dsc0000644000000000000000000000057611630763370015274 0ustar Format: 1.0 Source: w3m-ssl Version: 0.2.1-2 Binary: w3m-ssl Maintainer: Fumitoshi UKAI Architecture: any Standards-Version: 3.1.1 Build-Depends: libgc5-dev, libncurses5-dev, libgpmg1-dev, libssl-dev, debhelper, gawk | awk Files: 76748994920f0f553e240d37cd9498b5 834552 w3m-ssl_0.2.1.orig.tar.gz 5423fdf58a02bc0cbbeab04965db51ed 31725 w3m-ssl_0.2.1-2.diff.gz ruby-debian-0.3.8build2/t/d/w3m_met_list0000644000000000000000000000323711630763370014745 0ustar Package: w3m Priority: optional Section: text Maintainer: Fumitoshi UKAI Version: 0.2.1-2 Provides: www-browser Depends: libc6 (>= 2.2.2-2), libgc5, libgpmg1 (>= 1.14-16), libncurses5 (>= 5.2.20010310-1) Suggests: w3m-ssl (>= 0.2.1-2), mime-support, menu (>> 1.5), w3m-el Description: test test Package: libc6 Version: 2.2.2-4 Section: base Priority: required Architecture: i386 Maintainer: foo bar Description: dependency test dependency test Package: libgc5 Version: 1:5.3-2 Section: libs Priority: optional Architecture: i386 Maintainer: foo bar Description: dependency test dependency test Package: libgpmg1 Version: 1.19.3-6 Priority: optional Section: libs Maintainer: foo bar Description: dependency test dependency test Package: libncurses5 Version: 5.2.20010318-1 Priority: required Section: base Source: ncurses Maintainer: foo bar Description: dependency test dependency test Package: w3m-ssl Version: 0.2.1-2 Priority: optional Section: non-US/main Provides: www-browser Maintainer: foo bar Description: suggested suggested Package: mime-support Priority: standard Section: net Maintainer: foo bar Version: 3.10-1 Conffiles: /etc/mime.types 413ba91dc187d2343949b12a3122da3b /etc/mailcap 57a603451802f5bd47e89b2f426077fa /etc/mailcap.order ba07e08a7fe3741d0b8339127963190e Description: suggested suggested Package: menu Priority: optional Section: admin Version: 2.1.5-7 Maintainer: foo bar Description: suggested suggested Package: w3m-el Priority: optional Section: web Installed-Size: 532 Version: 0.2.150-2 Maintainer: foo bar Description: suggested suggested ruby-debian-0.3.8build2/t/d/non-US_sid_i386_Packages0000644000000000000000000000342311630763370016661 0ustar Package: w3m-ssl Priority: optional Section: non-US Installed-Size: 844 Maintainer: Fumitoshi UKAI Architecture: i386 Version: 0.2.1-2 Provides: www-browser Depends: libc6 (>= 2.2.2-2), libgc5, libgpmg1 (>= 1.14-16), libncurses5 (>= 5.2.20010310-1), libssl0.9.6, w3m Recommends: w3m (= 0.2.1-2) Suggests: mime-support, menu (>> 1.5) Filename: pool/non-US/main/w/w3m-ssl/w3m-ssl_0.2.1-2_i386.deb Size: 347316 MD5sum: e97e0a7f84f7a98c12476004c41bba8c Description: WWW browsable pager with SSL support w3m is a text-based World Wide Web browser with IPv6 support. It features excellent support for tables and frames. It can be used as a standalone file pager, too. . * You can follow links and/or view images in HTML. * Internet message prewview mode, you can browse HTML mail. * You can follow links in plain text if it includes URL forms. . This package is built with SSL support. . For more information, see http://ei5nazha.yz.yamagata-u.ac.jp/~aito/w3m/eng/index.html Package: w3mmee-ssl Priority: optional Section: non-US Installed-Size: 420 Maintainer: Fumitoshi UKAI Architecture: i386 Version: 0.2.1.p18.5-1 Provides: www-browser Depends: libc6 (>= 2.2.2-2), libgc5, libgpmg1 (>= 1.14-16), libmoe1.3, libncurses5 (>= 5.2.20010310-1), libssl0.9.6, w3mmee Recommends: w3mmee (= 0.2.1.p18.5-1) Suggests: mime-support, menu (>> 1.5) Filename: pool/non-US/main/w/w3mmee-ssl/w3mmee-ssl_0.2.1.p18.5-1_i386.deb Size: 202458 MD5sum: 809c71653d864904ad721fa9b35de1c3 Description: WWW browsable pager with SSL support, MB extension w3mmee is w3m with multibyte encoding extension. This package is built with SSL support. . For more information, see http://ei5nazha.yz.yamagata-u.ac.jp/~aito/w3m/eng/index.html and http://pub.ks-and-ks.ne.jp/prog/w3mmee/ ruby-debian-0.3.8build2/t/d/w3m_0.2.1-2.dsc0000644000000000000000000000054211630763370014466 0ustar Format: 1.0 Source: w3m Version: 0.2.1-2 Binary: w3m Maintainer: Fumitoshi UKAI Architecture: any Standards-Version: 3.1.1 Build-Depends: libgc5-dev, libncurses5-dev, libgpmg1-dev, debhelper, gawk | awk Files: 76748994920f0f553e240d37cd9498b5 834552 w3m_0.2.1.orig.tar.gz 9a4a98cb70ea772a3838f328c22c2037 31739 w3m_0.2.1-2.diff.gz ruby-debian-0.3.8build2/t/d/sid_i386_Packages0000644000000000000000000004153111630763370015464 0ustar Package: auto-apt Priority: optional Section: admin Installed-Size: 124 Maintainer: Fumitoshi UKAI Architecture: i386 Version: 0.3.11 Depends: libc6 (>= 2.2.1), apt, sudo, perl5 Recommends: wget, dpkg-dev Suggests: x-terminal-emulator, libgtk-perl, build-essential Filename: pool/main/a/auto-apt/auto-apt_0.3.11_i386.deb Size: 41898 MD5sum: 9b37b749e3e32aff70ded4e7d34027da Description: on demand package installation tool auto-apt checks the file access of programs running within its environments, and if a program tries to access a file known to belong in an uninstalled package, auto-apt will install that package using apt-get. . It also provides simple database to search which package contains a requesting file. Package: donkey Priority: extra Section: net Installed-Size: 47 Maintainer: Fumitoshi UKAI Architecture: i386 Version: 0.5-12 Depends: libc6 (>= 2.1.2) Filename: pool/main/d/donkey/donkey_0.5-12_i386.deb Size: 19704 MD5sum: e97055bf00353ded957948e01568e3a1 Description: One Time Password calculator. Donkey is an alternative for S/KEY's "key" command. This means that donkey is also an alternative for "keyinit". Since the entry is printed to stdout (not to /etc/skeykeys), you can easily sent it to remote operator by e-mail (with PGP signature or something). So, it possible to initiate S/KEY without login from the console of the host. Package: fml Priority: extra Section: mail Installed-Size: 10900 Maintainer: Fumitoshi UKAI Architecture: all Version: 4.0-4 Depends: perl, libjcode-perl Recommends: mail-transport-agent, libmd5-perl, sharutils Suggests: postfix | sendmail-wide, postfix | smtpfeed, lha, zip, pgp Filename: pool/main/f/fml/fml_4.0-4_all.deb Size: 2444040 MD5sum: 1a1bb9db1054c8f946ea719cbec8d7e5 Description: Mailing List Server Package FML is a package of mailing list server and utility programs. It consists of perl scripts. It has been developed, tested and advanced in Japan from 1993 to 1999. FML contains . distributer (filter program which passes articles to MTA to deliver) command server for users command interface for general user command interface for remote administration listserv/majordomo style interface (emulation) digest server CUI installer and configuration program other utility programs . FML design policy is based on the degree of freedom, so that I respect "each environment for each man/women". Package: hex Priority: extra Section: utils Installed-Size: 66 Maintainer: Fumitoshi UKAI Architecture: i386 Version: 204-9 Depends: libc6 (>= 2.2.1-2) Filename: pool/main/h/hex/hex_204-9_i386.deb Size: 27772 MD5sum: 8c88bbd8448e5a340b38f6b53d975767 Description: hexadecimal dumping tool for Japanese hexdump program that distinguish Japanese 2bytes code character. Package: hotplug Priority: optional Section: admin Installed-Size: 180 Maintainer: Fumitoshi UKAI Architecture: all Version: 0.0.20010228-3 Replaces: usbmgr Depends: modutils (>= 2.4.2), debconf (>= 0.2.26) Recommends: ifupdown, usbutils, pciutils Conflicts: usbmgr Filename: pool/main/h/hotplug/hotplug_0.0.20010228-3_all.deb Size: 23728 MD5sum: 631f2824b547b607238b693ee8253ca9 Description: Linux Hotplug Scripts This package contains the scripts necessary for hotplug Linux support, and lets you plug in new devices and use them immediately. Initially, it includes support for USB and PCI (Cardbus) devices, and can automatically configure network interfaces. Package: libiso2mb-dev Priority: optional Section: devel Installed-Size: 1791 Maintainer: Fumitoshi UKAI Architecture: i386 Source: libiso2mb Version: 0.8.5-1 Depends: libiso2mb0.8 (= 0.8.5-1), libc6-dev Filename: dists/woody/main/binary-i386/devel/libiso2mb-dev_0.8.5-1.deb Size: 968706 MD5sum: d474ac25c97a6da2d4c6cdba6a343b0d Description: library to handle multiple octets character strings (devel files) libiso2mb is a collection of routines to handle sequence of characters consisting of multiple octets. The main functionalities are to convert the encoding of a character from ISO 2022 to "fake" UTF-8, and vice versa. . This development package contains include files for the interface. It includes also a static lib for particular cases. Package: libiso2mb0.8 Priority: optional Section: libs Installed-Size: 1716 Maintainer: Fumitoshi UKAI Architecture: i386 Source: libiso2mb Version: 0.8.5-1 Depends: libc6 (>= 2.1.2) Filename: dists/woody/main/binary-i386/libs/libiso2mb0.8_0.8.5-1.deb Size: 945216 MD5sum: d486f333a16304a6d80b95d99af09c2a Description: library to handle multiple octets character strings libiso2mb is a collection of routines to handle sequence of characters consisting of multiple octets. The main functionalities are to convert the encoding of a character from ISO 2022 to "fake" UTF-8, and vice versa. Package: liblingua-romkan-perl Priority: optional Section: interpreters Installed-Size: 76 Maintainer: Fumitoshi UKAI Architecture: all Source: migemo Version: 0.21-3 Depends: perl Filename: pool/main/m/migemo/liblingua-romkan-perl_0.21-3_all.deb Size: 8072 MD5sum: 408961d10e1a8c047189a7778fd27b52 Description: Romaji Kana convertion for perl It provides Lingua::Romkan perl module to make it possible to convert Roman and Kana vice versa in perl script. Package: libmoe-dev Priority: optional Section: devel Installed-Size: 1868 Maintainer: Fumitoshi UKAI Architecture: i386 Source: libmoe Version: 1.3.2-2 Replaces: libiso2mb-dev Depends: libmoe1.3 (= 1.3.2-2), libc6-dev Conflicts: libiso2mb-dev Filename: pool/main/libm/libmoe/libmoe-dev_1.3.2-2_i386.deb Size: 728366 MD5sum: 33a295b2371d04abb8896202edb25770 Description: library to handle multiple octets character encoding scheme (devel files) libmoe is a collection of routines to handle sequence of characters consisting of multiple octets. The main functionalities are to convert the encoding of a character from ISO 2022 to "fake" UTF-8, and vice versa. . This development package contains include files for the interface. It includes also a static lib for particular cases. Package: libmoe1.3 Priority: optional Section: libs Installed-Size: 1640 Maintainer: Fumitoshi UKAI Architecture: i386 Source: libmoe Version: 1.3.2-2 Depends: libc6 (>= 2.2.1-2) Filename: pool/main/libm/libmoe/libmoe1.3_1.3.2-2_i386.deb Size: 678200 MD5sum: 5aad7dcfcab74b243d6cada342eaa1dc Description: library to handle multiple octets character encoding scheme libmoe is a collection of routines to handle sequence of characters consisting of multiple octets. The main functionalities are to convert the encoding of a character from ISO 2022 to "fake" UTF-8, and vice versa. Package: mgp Priority: optional Section: x11 Installed-Size: 1186 Maintainer: Fumitoshi UKAI Architecture: i386 Version: 1.07a.20010212-3 Depends: freetype2 (>= 1.3.1), imlib1 (>= 1.9.8-4), libc6 (>= 2.2.1), libpng2, libungif3g (>= 3.0-2) | giflib3g (>= 3.0-5.2), vflib2 (>= 2.25.1-1), xlibs (>= 4.0.1-11), perl | perl5 Recommends: libjpeg-progs, pnmtopng, netpbm, sharutils Suggests: emacsen-common, gs, tetex-bin, vflib2-misc, watanabe-vfont, asiya24-vfont, gsfonts-x11 Filename: pool/main/m/mgp/mgp_1.07a.20010212-3_i386.deb Size: 722428 MD5sum: d1e2689a822c974ac92d39817a8d1e4c Description: MagicPoint- an X11 based presentation tool MagicPoint is an X11 based presentation tool. It is designed to make simple presentations easy while to make complicated presentations possible. Its presentation file (whose suffix is typically .mgp) is just text so that you can create presentation files quickly with your favorite editor (e.g. Emacs). Package: mhc Priority: optional Section: misc Installed-Size: 441 Maintainer: Fumitoshi UKAI Architecture: i386 Version: 0.25-9 Depends: libc6 (>= 2.2.1-2), libpisock3, libruby (>= 1.6.2-6), ruby, libnkf-ruby, emacsen, wl (>= 2.4) | wl-beta (>= 2.3) | wanderlust2 (>= 2.2.10) | mew (>= 1:1.94) | gnus Recommends: libgnome-ruby Suggests: ssh Filename: pool/main/m/mhc/mhc_0.25-9_i386.deb Size: 128234 MD5sum: fdb4f911cfbcaca618736a5c172981fc Description: Message Harmonized Calendaring system MHC is designed to help those who receive most appointments via email. Using MHC, you can easily import schedule articles from emails, and convert these appointments from/to PlamOS. . MHC stores schedule articles in the same form of MH; you can manipulate these messages not only by above tools but also by many other MUAs, editors, UNIX commandline tools or your own scripts. . For mhc-mode, you should select mailer-package by mhc-select-mailer-package. . All ruby scripts in mhc requires kconv (in libnkf-ruby). To use /usr/bin/gemcal, you must install libgnome-ruby too. . For more information, you can find at http://www.quickhack.net/mhc/ Package: migemo Priority: optional Section: utils Installed-Size: 3056 Maintainer: Fumitoshi UKAI Architecture: all Version: 0.21-3 Depends: emacs20 | emacsen, apel, liblingua-romkan-perl Filename: pool/main/m/migemo/migemo_0.21-3_all.deb Size: 1273442 MD5sum: 9effb588600d40f98e70cfae70eafeee Description: Japanese incremental search with Romaji on Emacsen migemo is a tool that supports Japanese incremental search with Romaji. It release you from heavy tasks of Kana Kanji conversion in order to search. This is Emacsen interface, that is wrapper for isearch. http://migemo.namazu.org/ Package: sendmail-wide Priority: extra Section: mail Installed-Size: 1007 Maintainer: Fumitoshi UKAI Architecture: i386 Version: 8.11.1+3.4W-5.1 Depends: libc6 (>= 2.1.97), libdb2, libldap2 (>= 2.0.2-2), libsasl7, libwrap0, sendmail Suggests: smtpfeed Conflicts: sendmail (<< 8.11.1), sendmail (>> 8.11.2) Filename: pool/main/s/sendmail-wide/sendmail-wide_8.11.1+3.4W-5.1_i386.deb Size: 765202 MD5sum: 06c6face98bbd203e290c060c6d06cda Description: WIDE patch applied /usr/sbin/sendmail This package replaces /usr/sbin/sendmail with WIDE patch version, which provides some enhancement for the sendmail. This patch is required to use "smtpfeed", which is an external SMTP mailer. In other words, *you don't need this package for normal use of sendmail*. WIDE patch includes followings patches: QUICK_RESPONSE - bounce mail not queued MULTI_MAILER - multiple mailer dispath in rulesetlikke: R$*<@dom>$* $#smtp$@dom$:$1<@dom>$2 $#uucp$@dom$:$1<@dom>$2 CF_ALIASING - alias in ruleset 5 like: R foo-a $# local $@ alias $: foo-a, foo-b _FFR_DYNAMIC_TOBUF - dynamic allocation to relax tobuf size limitation MAILER_PREF - mailer preferences CLIENT_SMTP_CONFIG - 3 parameters of client-side SMTP connection FQDN: FQDN used as a hostname with SMTP HELO SrcIPaddr: source IP address for client-side SMTP (12.34.56.78) SrcPort: source port number for client-side SMTP CTE8CHECK - Option CTE8BitChec=[corrent|reject] OO_NULLSENDER - Set NULL sender envelope address for "owner-owner" MF_SEPARATE - address will not be unified for mailer flag '^' MASKED_ADDR - matching by masked IP address SPR_CON_CACHE - connection-caching control par mailer basis. FORWARDPROGCTL - privilege control on execution of programs via ~/.forward MAILER_TIMEOUTS - control message timeout per mailer basis. CHECK_WARNING - control whether a queue-warning should be sent or not For more information, see /usr/share/doc/sendmail-wide/00READ_ME.WIDE.gz . Note that original sendmail is diverted to /usr/sbin/sendmail-nowide. . WIDE is project name and stands for `Widely Integrated Distribution Environment'. Research goal of WIDE project is "to establish large-scale distributed computing environment". WIDE Project is working for providing the wide area communication infrastructure with our telecommunication technology and operating system technology, and trying hard to contribute to the people. http://www.wide.ad.jp/ Package: skkinput Priority: optional Section: x11 Installed-Size: 317 Maintainer: Fumitoshi UKAI Architecture: i386 Version: 1:2.03-7 Depends: libc6 (>= 2.2.1), xlibs (>= 4.0.1-11) Recommends: xfonts-cjk Suggests: skkserv, skkdic Filename: pool/main/s/skkinput/skkinput_2.03-7_i386.deb Size: 176430 MD5sum: 99cbe98b241debd724316c0d46d2cd4c Description: X input method for Japanese for SKK method. skkinput is application to input Japanese for X application using protocols such as kinput2/XIM/Ximp protocol. skkinput communicates with skkserv using Berkeley Socket. Without skkserv, local dictionary files is used. Package: smtpfeed Priority: extra Section: mail Installed-Size: 179 Maintainer: Fumitoshi UKAI Architecture: i386 Version: 1.11-1 Depends: libc6 (>= 2.2.1) Recommends: sendmail-wide (>= 8.9.3+3.2W), logrotate Filename: pool/main/s/smtpfeed/smtpfeed_1.11-1_i386.deb Size: 80332 MD5sum: a2501f76c93ab1803d4c534f66c227a2 Description: SMTP feed -- SMTP Fast Exploding External Deliver for Sendmail Smtpfeed is a SMTP delivery agent which is called by sendmail, and it improves required time to complete delivery of copies of a message to recipients of huge number. . Note that smtpfeed still in ALPHA testing release. Package: w3m Priority: optional Section: text Installed-Size: 1300 Maintainer: Fumitoshi UKAI Architecture: i386 Version: 0.2.1-2 Provides: www-browser Depends: libc6 (>= 2.2.2-2), libgc5, libgpmg1 (>= 1.14-16), libncurses5 (>= 5.2.20010310-1) Suggests: w3m-ssl (>= 0.2.1-2), mime-support, menu (>> 1.5), w3m-el Filename: pool/main/w/w3m/w3m_0.2.1-2_i386.deb Size: 493792 MD5sum: 0c96e7d6bed644918f3e147ecb188fcb Description: WWW browsable pager with excellent tables/frames support w3m is a text-based World Wide Web browser with IPv6 support. It features excellent support for tables and frames. It can be used as a standalone file pager, too. . * You can follow links and/or view images in HTML. * Internet message prewview mode, you can browse HTML mail. * You can follow links in plain text if it includes URL forms. . For more information, see http://ei5nazha.yz.yamagata-u.ac.jp/~aito/w3m/eng/index.html Package: w3m-el Priority: optional Section: web Installed-Size: 532 Maintainer: Fumitoshi UKAI Architecture: all Version: 0.2.150-2 Depends: xemacs21|emacs20|emacs21|mule2, xemacs21-supportbase|emacs20|emacs21|apel, xemacs21|emacs20|emacs21|apel, xemacs21-basesupport|emacs20|emacs21|mule2, w3m (>= 0.2.1-2) | w3m-ssl (>= 0.2.1-2) Suggests: flim, mew Filename: pool/main/w/w3m-el/w3m-el_0.2.150-2_all.deb Size: 91478 MD5sum: 60c90422f9f655da429ca521a17fb556 Description: a simple Emacs interface of w3m This package contains a interface program of w3m, which is a pager with WWW capability. It can be used as lightweight WWW browser on emacsen. This is also known as emacs-w3m. http://namazu.org/~tsuchiya/emacs-w3m/ Package: w3mmee Priority: optional Section: web Installed-Size: 924 Maintainer: Fumitoshi UKAI Architecture: i386 Version: 0.2.1.p18.5-1 Provides: www-browser Depends: libc6 (>= 2.2.2-2), libgc5, libgpmg1 (>= 1.14-16), libmoe1.3, libncurses5 (>= 5.2.20010310-1) Suggests: w3mmee-ssl (>= 0.2.1.p18.5-1), mime-support, menu (>> 1.5) Filename: pool/main/w/w3mmee/w3mmee_0.2.1.p18.5-1_i386.deb Size: 366898 MD5sum: 6bc1750a22d3b94d8dfa02475986500d Description: WWW browsable pager with excellent tables/frames, MB extension w3mmee is w3m with multibyte encoding extension. . For more information, see http://ei5nazha.yz.yamagata-u.ac.jp/~aito/w3m/eng/index.html and http://pub.ks-and-ks.ne.jp/prog/w3mmee/ Package: xfonts-a12k12 Priority: optional Section: x11 Installed-Size: 192 Maintainer: Fumitoshi UKAI Architecture: all Version: 1-4 Replaces: a12k12 Depends: xutils Suggests: xfs | xserver Conflicts: a12k12, xbase-clients (<< 4.0) Filename: pool/main/x/xfonts-a12k12/xfonts-a12k12_1-4_all.deb Size: 142872 MD5sum: d31cf1c06e545c5aa3941882ea950058 Description: 12 dot Kanji & ASCII fonts for X This package provides 12dot fonts for Japanese (ASCII and Kana/Kanji) It provides - a12: 12dot ASCII fonts - k12: 12dot Kanji fonts Package: xfonts-marumoji Priority: optional Section: x11 Installed-Size: 673 Maintainer: Fumitoshi UKAI Architecture: all Version: 0.2-4 Replaces: xmarufont Depends: xutils Suggests: xfs | xserver Conflicts: xmarufont, xbase-clients (<< 4.0) Filename: pool/main/x/xfonts-marumoji/xfonts-marumoji_0.2-4_all.deb Size: 577232 MD5sum: 989a65da79d751faebfd431af41e59f5 Description: Roundish fonts (marumoji fonts) for X Japanese and ASCII roundish fonts (marumoji in Japanese) for X servers. It provides: maru14: JIS X0208.1983 Roundish Characters (14 dots) maru16: JIS X0208.1983 Roundish Characters (16 dots) 7x14rkmr: JIS X0201.1976 Roman Roundish Characters (14 dots) 7x14maru: ISO8859-1 Roundish Characters (14 dots) ruby-debian-0.3.8build2/t/d/status0000644000000000000000000002744311630763370013667 0ustar Package: dpkg-ruby Status: install ok installed Priority: optional Section: devel Installed-Size: 112 Maintainer: Fumitoshi UKAI Version: 0.0.1 Depends: ruby Description: ruby interface for dpkg Contains ruby modules/classes for dpkg, the Debian package management system. Package: liblingua-romkan-perl Status: install ok installed Priority: optional Section: utils Installed-Size: 76 Maintainer: Fumitoshi UKAI Source: migemo Version: 0.21-3 Depends: perl Description: Romaji Kana convertion for perl It provides Lingua::Romkan perl module to make it possible to convert Roman and Kana vice versa in perl script. Package: w3m Status: install ok installed Priority: optional Section: text Installed-Size: 1300 Maintainer: Fumitoshi UKAI Version: 0.2.1-2 Provides: www-browser Depends: libc6 (>= 2.2.2-2), libgc5, libgpmg1 (>= 1.14-16), libncurses5 (>= 5.2.20010310-1) Suggests: w3m-ssl (>= 0.2.1-2), mime-support, menu (>> 1.5), w3m-el Description: WWW browsable pager with excellent tables/frames support w3m is a text-based World Wide Web browser with IPv6 support. It features excellent support for tables and frames. It can be used as a standalone file pager, too. . * You can follow links and/or view images in HTML. * Internet message prewview mode, you can browse HTML mail. * You can follow links in plain text if it includes URL forms. . For more information, see http://ei5nazha.yz.yamagata-u.ac.jp/~aito/w3m/eng/index.html Package: mhc Status: install ok installed Priority: optional Section: misc Installed-Size: 441 Maintainer: Fumitoshi UKAI Version: 0.25-9 Depends: libc6 (>= 2.2.1-2), libpisock3, libruby (>= 1.6.2-6), ruby, libnkf-ruby, emacsen, wl (>= 2.4) | wl-beta (>= 2.3) | wanderlust2 (>= 2.2.10) | mew (>= 1:1.94) | gnus Recommends: libgnome-ruby Suggests: ssh Description: Message Harmonized Calendaring system MHC is designed to help those who receive most appointments via email. Using MHC, you can easily import schedule articles from emails, and convert these appointments from/to PlamOS. . MHC stores schedule articles in the same form of MH; you can manipulate these messages not only by above tools but also by many other MUAs, editors, UNIX commandline tools or your own scripts. . For mhc-mode, you should select mailer-package by mhc-select-mailer-package. . All ruby scripts in mhc requires kconv (in libnkf-ruby). To use /usr/bin/gemcal, you must install libgnome-ruby too. . For more information, you can find at http://www.quickhack.net/mhc/ Package: libmoe1.2 Status: install ok installed Priority: optional Section: libs Installed-Size: 1451 Maintainer: Fumitoshi UKAI Source: libmoe Version: 1.2.2-1 Depends: libc6 (>= 2.2.1) Description: library to handle multiple octets character encoding scheme libmoe is a collection of routines to handle sequence of characters consisting of multiple octets. The main functionalities are to convert the encoding of a character from ISO 2022 to "fake" UTF-8, and vice versa. Package: libmoe1.3 Status: install ok installed Priority: optional Section: libs Installed-Size: 1640 Maintainer: Fumitoshi UKAI Source: libmoe Version: 1.3.2-2 Depends: libc6 (>= 2.2.1-2) Description: library to handle multiple octets character encoding scheme libmoe is a collection of routines to handle sequence of characters consisting of multiple octets. The main functionalities are to convert the encoding of a character from ISO 2022 to "fake" UTF-8, and vice versa. Package: mgp Status: install ok installed Priority: optional Section: x11 Installed-Size: 1404 Maintainer: Fumitoshi UKAI Version: 1.07a.20010326-1 Depends: freetype2 (>= 1.3.1), imlib1 (>= 1.9.8.1-2), libc6 (>= 2.2.2-2), libpng2, libungif3g (>= 3.0-2) | giflib3g (>= 3.0-5.2), vflib2 (>= 2.25.1-1), xlibs (>= 4.0.1-11), perl | perl5 Recommends: libjpeg-progs, pnmtopng, netpbm, sharutils Suggests: emacsen-common, gs, tetex-bin, vflib2-misc, watanabe-vfont, asiya24-vfont, gsfonts-x11, ttf-xtt-wadalab-gothic, ttf-xtt-watanabe-mincho, msttcorefonts Description: MagicPoint- an X11 based presentation tool MagicPoint is an X11 based presentation tool. It is designed to make simple presentations easy while to make complicated presentations possible. Its presentation file (whose suffix is typically .mgp) is just text so that you can create presentation files quickly with your favorite editor (e.g. Emacs). Package: w3mmee-ssl Status: install ok installed Priority: optional Section: non-US/main Installed-Size: 420 Maintainer: Fumitoshi UKAI Version: 0.2.1.p18.5-1 Provides: www-browser Depends: libc6 (>= 2.2.2-2), libgc5, libgpmg1 (>= 1.14-16), libmoe1.3, libncurses5 (>= 5.2.20010310-1), libssl0.9.6, w3mmee Recommends: w3mmee (= 0.2.1.p18.5-1) Suggests: mime-support, menu (>> 1.5) Description: WWW browsable pager with SSL support, MB extension w3mmee is w3m with multibyte encoding extension. This package is built with SSL support. . For more information, see http://ei5nazha.yz.yamagata-u.ac.jp/~aito/w3m/eng/index.html and http://pub.ks-and-ks.ne.jp/prog/w3mmee/ Package: migemo Status: install ok installed Priority: optional Section: utils Installed-Size: 3056 Maintainer: Fumitoshi UKAI Version: 0.21-3 Depends: emacs20 | emacsen, apel, liblingua-romkan-perl Description: Japanese incremental search with Romaji on Emacsen migemo is a tool that supports Japanese incremental search with Romaji. It release you from heavy tasks of Kana Kanji conversion in order to search. This is Emacsen interface, that is wrapper for isearch. http://migemo.namazu.org/ Package: w3m-el Status: install ok installed Priority: optional Section: web Installed-Size: 532 Maintainer: Fumitoshi UKAI Version: 0.2.150-2 Depends: xemacs21 | emacs20 | emacs21 | mule2, xemacs21-supportbase | emacs20 | emacs21 | apel, xemacs21 | emacs20 | emacs21 | apel, xemacs21-basesupport | emacs20 | emacs21 | mule2, w3m (>= 0.2.1-2) | w3m-ssl (>= 0.2.1-2) Suggests: flim, mew Description: a simple Emacs interface of w3m This package contains a interface program of w3m, which is a pager with WWW capability. It can be used as lightweight WWW browser on emacsen. This is also known as emacs-w3m. http://namazu.org/~tsuchiya/emacs-w3m/ Package: libmoe-dev Status: install ok installed Priority: optional Section: devel Installed-Size: 1868 Maintainer: Fumitoshi UKAI Source: libmoe Version: 1.3.2-2 Replaces: libiso2mb-dev Depends: libmoe1.3 (= 1.3.2-2), libc6-dev Conflicts: libiso2mb-dev Description: library to handle multiple octets character encoding scheme (devel files) libmoe is a collection of routines to handle sequence of characters consisting of multiple octets. The main functionalities are to convert the encoding of a character from ISO 2022 to "fake" UTF-8, and vice versa. . This development package contains include files for the interface. It includes also a static lib for particular cases. Package: w3m-ssl Status: install ok installed Priority: optional Section: non-US/main Installed-Size: 844 Maintainer: Fumitoshi UKAI Version: 0.2.1-2 Provides: www-browser Depends: libc6 (>= 2.2.2-2), libgc5, libgpmg1 (>= 1.14-16), libncurses5 (>= 5.2.20010310-1), libssl0.9.6, w3m Recommends: w3m (= 0.2.1-2) Suggests: mime-support, menu (>> 1.5) Description: WWW browsable pager with SSL support w3m is a text-based World Wide Web browser with IPv6 support. It features excellent support for tables and frames. It can be used as a standalone file pager, too. . * You can follow links and/or view images in HTML. * Internet message prewview mode, you can browse HTML mail. * You can follow links in plain text if it includes URL forms. . This package is built with SSL support. . For more information, see http://ei5nazha.yz.yamagata-u.ac.jp/~aito/w3m/eng/index.html Package: auto-apt Status: install ok installed Priority: optional Section: admin Installed-Size: 124 Maintainer: Fumitoshi UKAI Version: 0.3.11 Depends: libc6 (>= 2.2.1), apt, sudo, perl5 Recommends: wget, dpkg-dev Suggests: x-terminal-emulator, libgtk-perl, build-essential Conffiles: /etc/auto-apt/paths.list f2d4e8ad4c274982b444832d14805b16 Description: on demand package installation tool auto-apt checks the file access of programs running within its environments, and if a program tries to access a file known to belong in an uninstalled package, auto-apt will install that package using apt-get. . It also provides simple database to search which package contains a requesting file. Package: hotplug Status: install ok installed Priority: optional Section: admin Installed-Size: 180 Maintainer: Fumitoshi UKAI Version: 0.0.20010228-3 Replaces: usbmgr Depends: modutils (>= 2.4.2), debconf (>= 0.2.26) Recommends: ifupdown, usbutils, pciutils Conflicts: usbmgr Conffiles: /etc/hotplug/usb.distmap 1a55651bfb3f39d9c5fecd94088b41a9 /etc/hotplug/usb.handmap 366ada9fe4cd5d95f21c3703830b59f6 /etc/hotplug/usb.usermap a58f71e28d8b5ddb1f81a36c53c02106 /etc/hotplug/hotplug.functions 36a51e6ea9d63b8ff2d418fa65f7039d /etc/hotplug/net.agent 6fa917baef47bf32f3800046d8fcc1e6 /etc/hotplug/pci.agent 07cdd30fbb34482c8ebcf35b7ef638b1 /etc/hotplug/usb.agent 289340696d988eb8a1584209356bbbf9 /etc/hotplug/usb.rc 7fd79955187c5690033861e9894fe6e2 /etc/init.d/hotplug e5f04c793845b9e21b39e227b3f35e51 Description: Linux Hotplug Scripts This package contains the scripts necessary for hotplug Linux support, and lets you plug in new devices and use them immediately. Initially, it includes support for USB and PCI (Cardbus) devices, and can automatically configure network interfaces. Package: xfonts-a12k12 Status: install ok installed Priority: optional Section: x11 Installed-Size: 192 Maintainer: Fumitoshi UKAI Version: 1-4 Replaces: a12k12 Depends: xutils Suggests: xfs | xserver Conflicts: a12k12, xbase-clients (<< 4.0) Conffiles: /etc/X11/fonts/misc/xfonts-a12k12.alias 5568cadd509afe50469df69fd731e479 Description: 12 dot Kanji & ASCII fonts for X This package provides 12dot fonts for Japanese (ASCII and Kana/Kanji) It provides - a12: 12dot ASCII fonts - k12: 12dot Kanji fonts Package: skkinput Status: install ok installed Priority: optional Section: x11 Installed-Size: 317 Maintainer: Fumitoshi UKAI Version: 1:2.03-7 Depends: libc6 (>= 2.2.1), xlibs (>= 4.0.1-11) Recommends: xfonts-cjk Suggests: skkserv, skkdic Description: X input method for Japanese for SKK method. skkinput is application to input Japanese for X application using protocols such as kinput2/XIM/Ximp protocol. skkinput communicates with skkserv using Berkeley Socket. Without skkserv, local dictionary files is used. Package: w3mmee Status: install ok installed Priority: optional Section: web Installed-Size: 924 Maintainer: Fumitoshi UKAI Version: 0.2.1.p18.5-1 Provides: www-browser Depends: libc6 (>= 2.2.2-2), libgc5, libgpmg1 (>= 1.14-16), libmoe1.3, libncurses5 (>= 5.2.20010310-1) Suggests: w3mmee-ssl (>= 0.2.1.p18.5-1), mime-support, menu (>> 1.5) Description: WWW browsable pager with excellent tables/frames, MB extension w3mmee is w3m with multibyte encoding extension. . For more information, see http://ei5nazha.yz.yamagata-u.ac.jp/~aito/w3m/eng/index.html and http://pub.ks-and-ks.ne.jp/prog/w3mmee/ Package: debian-jp-keyring Status: install ok installed Priority: optional Section: contrib/misc Installed-Size: 179 Maintainer: Fumitoshi UKAI Version: 2001.03.09 Recommends: gnupg Suggests: gpg-rsa | gpg-rsaref, pgp Description: PGP and GnuPG keys of Debian JP Developers The Debian JP project wants developers to digitally sign the announcements of their packages with PGP or GnuPG, to protect against forgeries. This is a PGP and GnuPG keyring with keys of Debian JP developers. ruby-debian-0.3.8build2/t/d/w3m-ssl_0.2.1-2.f0000644000000000000000000000157511630763370014750 0ustar Package: w3m-ssl Version: 0.2.1-2 Section: non-US/main Priority: optional Architecture: i386 Depends: libc6 (>= 2.2.2-2), libgc5, libgpmg1 (>= 1.14-16), libncurses5 (>= 5.2.20010310-1), libssl0.9.6, w3m Recommends: w3m (= 0.2.1-2) Suggests: mime-support, menu (>> 1.5) Provides: www-browser Installed-Size: 844 Maintainer: Fumitoshi UKAI Description: WWW browsable pager with SSL support w3m is a text-based World Wide Web browser with IPv6 support. It features excellent support for tables and frames. It can be used as a standalone file pager, too. . * You can follow links and/or view images in HTML. * Internet message prewview mode, you can browse HTML mail. * You can follow links in plain text if it includes URL forms. . This package is built with SSL support. . For more information, see http://ei5nazha.yz.yamagata-u.ac.jp/~aito/w3m/eng/index.html ruby-debian-0.3.8build2/t/testdep.rb0000644000000000000000000000373211630763370014166 0ustar require 'runit/testcase' require 'runit/cui/testrunner' $:.unshift("../lib") require '../lib/debian.rb' class TestDebian__Dep < RUNIT::TestCase def setup @dep = [Debian::Dep.new("w3m", 'Depends'), Debian::Dep.new("w3m | w3m-ssl", 'Depends'), Debian::Dep.new("w3m (>= 0.2.1-2) | w3m-ssl (>= 0.2.1-2)", 'Recommends'), Debian::Dep.new("www-browser", "Suggests")] end def test_satisfy? deb = [Debian::Deb.new(IO.readlines("d/w3m_0.2.1-1.f").join("")), Debian::Deb.new(IO.readlines("d/w3m_0.2.1-2.f").join("")), Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-1.f").join("")), Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-2.f").join(""))] assert(@dep[0].satisfy?(deb[0])) assert(@dep[0].satisfy?(deb[1])) assert(!(@dep[0].satisfy?(deb[2]))) assert(!(@dep[0].satisfy?(deb[3]))) assert(@dep[1].satisfy?(deb[0])) assert(@dep[1].satisfy?(deb[1])) assert(@dep[1].satisfy?(deb[2])) assert(@dep[1].satisfy?(deb[3])) assert(!(@dep[2].satisfy?(deb[0]))) assert(@dep[2].satisfy?(deb[1])) assert(!(@dep[2].satisfy?(deb[2]))) assert(@dep[2].satisfy?(deb[3])) end def test_to_s assert_equals("Depends w3m", @dep[0].to_s) assert_equals("Depends w3m | w3m-ssl", @dep[1].to_s) assert_equals("Recommends w3m (>= 0.2.1-2) | w3m-ssl (>= 0.2.1-2)", @dep[2].to_s) end def test_unmet p = Debian::Packages.new("d/w3m_met_list") assert_equals([], @dep[0].unmet(p)) # w3m assert_equals([], @dep[1].unmet(p)) # w3m | w3m-ssl assert_equals([], @dep[2].unmet(p)) # w3m (>= 0.2.1-2) | w3m-ssl (>= 0.2.1-2) assert_equals([], @dep[3].unmet(p)) # www-browser end # def test_s_new # # end end if $0 == __FILE__ if ARGV.size == 0 suite = TestDebian__Dep.suite else suite = RUNIT::TestSuite.new ARGV.each do |testmethod| suite.add_test(TestDebian__Dep.new(testmethod)) end end RUNIT::CUI::TestRunner.run(suite) end ruby-debian-0.3.8build2/t/testdepunmet.rb0000644000000000000000000000324311630763370015234 0ustar require 'runit/testcase' require 'runit/cui/testrunner' $:.unshift("../lib") require '../lib/debian.rb' class TestDebian__Dep__Unmet < RUNIT::TestCase def setup dep = Debian::Dep::Term.new('w3m') assert_not_nil(dep) deb = Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-1.f").join("")) assert_not_nil(deb) @unmet = Debian::Dep::Unmet.new(dep, deb) end def test_deb deb = Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-1.f").join("")) assert_equals(deb, @unmet.deb) end def test_dep assert_equals(Debian::Dep::Term.new('w3m'), @unmet.dep) end def test_package assert_nil(@unmet.package) end def test_package= @unmet.package = 'w3m-el' assert_equals('w3m-el', @unmet.package) assert_exception(Debian::DepError) { @unmet.package = 'w3m' } end def test_relation assert_nil(@unmet.relation) end def test_relation= @unmet.relation = 'depends' assert_equals('depends', @unmet.relation) assert_exception(Debian::DepError) { @unmet.relation = 'recommends' } end def test_to_s assert_equals('w3m unmet w3m-ssl 0.2.1-1 (provides w3m)', @unmet.to_s) @unmet.package = 'w3m-ssl' assert_equals('w3m-ssl w3m unmet w3m-ssl 0.2.1-1 (provides w3m)', @unmet.to_s) @unmet.relation = 'depends' assert_equals('w3m-ssl depends w3m unmet w3m-ssl 0.2.1-1 (provides w3m)', @unmet.to_s) end # def test_s_new # ??? # end end if $0 == __FILE__ if ARGV.size == 0 suite = TestDebian__Dep__Unmet.suite else suite = RUNIT::TestSuite.new ARGV.each do |testmethod| suite.add_test(TestDebian__Dep__Unmet.new(testmethod)) end end RUNIT::CUI::TestRunner.run(suite) end ruby-debian-0.3.8build2/man/0000755000000000000000000000000011633535255012476 5ustar ruby-debian-0.3.8build2/man/dpkg-checkdeps.10000644000000000000000000000450311633535255015436 0ustar .TH DPKG-CHECKDEPS.RB 1 "Debian Utilities" "DEBIAN" \" -*- nroff -*- .SH NAME dpkg-checkdeps.rb \- Utility to check deb dependency .SH SYNOPSIS \fBdpkg-checkdeps.rb\fP [\fIopts\fP] \fIdebfile\fP ... .br \fBdpkg-checkdeps.rb\fP [\fIopts\fP] \fB\-\-from\fP \fIpackages\fP \fIpkgname\fP... .br \fBdpkg-checkdeps.rb\fP [\fIopts\fP] \fB\-\-from\fP \fB\-\-all\fP .br \fBdpkg-checkdeps.rb\fP [\fIopts\fP] \fB\-\-check\fP \fIpkgname\fP... .br \fIopts\fP: \fB\-\-to\fP \fIpackages\fP \fB\-\-arch\fP \fIarch\fP \fB\-\-verbose\fP \fB\-q\fP .br .SH DESCRIPTION .I dpkg-checkdeps.rb checks deb dependency problems when specified deb packages are installed in the target packages list. .SH OPTIONS .TP .PD 0 .BI \-t " packages-file" .TP .BI \-\-to " packages-file" .PD Specify target \fIpackages-file\fP. If this option is used multiple times, packages lists are appended. If no \fB-t\fP option specified, default is current installed packages list, that is, /var/lib/dpkg/status. .TP .PD 0 .BI \-f " packages-file" .TP .BI \-\-from " packages-file" .PD Specify source \fIpackages-file\fP. If this option is used multiple times, packages lists are appended. If you use this option, you can select packages by \fIpackage-name\fP, or all of them by \fB\-\-all\fP option. .TP .PD 0 .B \-A .TP .B \-\-all .PD Select all packages in source \fIpackages-file\fP. You must use this option with \fB\-\-from\fP option. .TP .PD 0 .BI \-a " arch" .TP .BI \-\-arch " arch" .PD Specify acceptable \fIarch\fP in \fIpackages-file\fP. Default is installation_architecture of dpkg. .TP .PD 0 .B \-c .TP .B \-\-check .PD Check selected packages are satisfied by all packages in target \fIpackages\fP. .TP .PD 0 .B \-v .TP .B \-\-verbose .PD Verbose mode .TP .PD 0 .BI \-h .TP .BI \-\-help .PD Display some help. .SH EXAMPLES % dpkg-checkdeps.rb \-\-arch alpha \ \-\-to '*/binary-$ARCH/Packages' \ \-\-from ../proposed-updates/Packages' \-\-all % dpkg-checkdeps.rb \-\-to '*/binary-$ARCH/Packages' \-\-check libc6 .SH BUGS There are probably tons of bugs in this program. This checks only depends, recommends and suggests, doesn't check pre-depends and conflicts, yet. This program comes with no warranties. If running this program causes fire and brimstone to rain down upon the earth, you will be on our own. .SH AUTHOR Fumitoshi UKAI . ruby-debian-0.3.8build2/man/dpkg-ruby.10000644000000000000000000000463611633535045014472 0ustar .TH DPKG-RUBY 1 "Debian Utilities" "DEBIAN" \" -*- nroff -*- .SH NAME dpkg-ruby \- Utility to read a dpkg style db file, dpkg-awk clone .SH SYNOPSIS \fBdpkg-ruby\fP [\fB(\-f|\-\-file) \fIfilename\fP] [\fB(\-d|\-\-debug) \fI##\fP] [\fB(\-s|\-\-sort) \fIlist\fP] [\fB(\-n|\-\-numeric) \fIlist\fP] [\fB(\-rs|\-\-rec_sep) \fI??\fP] '\fI:\fP' ... \-\- \fI\fP .. .br .SH DESCRIPTION .I dpkg-ruby Parses a dpkg status file(or other similarly formated file) and outputs the resulting records. It can use regex on the field values to limit the returned records, and it can also be told which fields to output. As another option, it can sort the matched fields. .SH OPTIONS .TP .PD 0 .BI \-f " filename" .TP .BI \-\-file " filename" .PD The file to parse. The default is /var/lib/dpkg/status. .TP .PD 0 .BI \-d " [#]" .TP .BI \-\-debug " [#]" .PD Each time this is specified, it increased the debug level. .TP .PD 0 .BI \-s " field(s)" .TP .BI \-\-sort " field(s)" .PD A space or comma separated list of fields to sort on. .TP .PD 0 .BI \-n " field(s)" .TP .BI \-\-numeric " field(s)" .PD A space or comma separated list of fields that should be interpreted as numeric in value. .TP .PD 0 .BI \-rs " ??" .TP .BI \-\-rec_sep " ??" .PD Output this string at the end of each output paragraph. .\" .TP .\" .PD 0 .\" .I -of ?? .\" .TP .\" .I --outform ?? .\" .PD .\" Specify the outform that dpkg-ruby should use. Current .\" formats are normal(the old, tried and true style), and .\" xml. .TP .PD 0 .B \-h .TP .B \-\-help .PD Display some help. .TP .I fieldname The fields from the file, that are matched with the regex given. The \fIfieldname\fPs are case insensitive. .TP .I out_fieldname The fields from the file, that are outputted for each record. If the first field listed is begins with .IR ^ , then the list that follows are fields .I NOT to be outputted. .SH BUGS Be warned that the author has only a shallow understanding of the dpkg packaging system, so there are probably tons of bugs in this program. This program comes with no warranties. If running this program causes fire and brimstone to rain down upon the earth, you will be on our own. This program accesses the dpkg database directly in places, querying for data that cannot be gotten via dpkg. .SH AUTHOR Fumitoshi UKAI . This manual page are based on (or almost copy from :) dpkg-awk(1) manual written by Adam Heath