New Upstream Snapshot - ruby-xdg

Ready changes

Summary

Merged new upstream version: 2.2.3+git20121212.1.36b4708 (was: 2.2.3).

Resulting package

Built on 2023-01-20T03:54 (took 5m30s)

The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:

apt install -t fresh-snapshots ruby-xdg

Lintian Result

Diff

diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..5f199fa
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,11 @@
+---
+script: "bundle exec qed"
+rvm:
+  - 1.8.7
+  - 1.9.2
+  - 1.9.3
+  - rbx-2.0
+  - jruby
+  - ree
+
+
diff --git a/Assembly b/Assembly
new file mode 100644
index 0000000..6c9509a
--- /dev/null
+++ b/Assembly
@@ -0,0 +1,39 @@
+---
+email:
+  mailto: 
+    - ruby-talk@ruby-lang.org
+    - rubyworks-mailinglist@googlegroups.com
+
+qed:
+  files: demo
+
+qedoc:
+  files: demo
+  title: XDG Demonstrations
+  output: DEMO.md
+
+gem:
+  active: true
+
+github:
+  gh_pages: web
+
+yard:
+  active: true
+
+dnote:
+  output: log/notes.html  
+  
+vclog:
+  output:
+    - log/history.html
+    - log/changes.html
+
+
+# boy is this outdated ;)
+#rubyforge:
+#  service  : Rubyforge
+#  unixname : xdg
+#  groupid  : 7077
+#  active   : false
+
diff --git a/Gemfile b/Gemfile
new file mode 100644
index 0000000..e45e65f
--- /dev/null
+++ b/Gemfile
@@ -0,0 +1,2 @@
+source :rubygems
+gemspec
diff --git a/HISTORY.md b/HISTORY.md
index 26944b0..c3b25b4 100644
--- a/HISTORY.md
+++ b/HISTORY.md
@@ -1,5 +1,13 @@
 # RELEASE HISTORY
 
+## 2.2.4 / ?
+
+
+Changes:
+
+* Add dynamic index metadata lookup via constants.
+
+
 ## 2.2.3 / 2012-12-13
 
 This release switches to RbConfig instead of Config, which Ruby
diff --git a/Index.yml b/Index.yml
new file mode 100644
index 0000000..162ef2a
--- /dev/null
+++ b/Index.yml
@@ -0,0 +1,41 @@
+---
+name:
+  xdg
+
+version:
+  2.2.3
+
+title:
+  XDG
+
+summary:
+  XDG provides an interface for using XDG directory standard.
+
+description:
+  XDG provides a module for supporting the XDG Base Directory Standard.
+  See http://standards.freedesktop.org/basedir-spec/basedir-spec-0.6.html
+
+organization: Rubyworks
+
+authors:
+  - Trans <transfire@gmail.com>
+
+requirements:
+  - detroit (build)
+  - qed     (test)
+  - ae      (test)
+
+repositories:
+  upstream: git://github.com/rubyworks/xdg.git
+
+resources:
+  home: http://rubyworks.github.com/xdg
+  code: http://github.com/rubyworks/xdg
+  mail: http://groups.goole.com/rubyworks-mailinglist
+
+created:
+   2008-09-27
+
+copyrights:
+  - (c) 2008 Rubyworks (BSD-2-Clause)
+
diff --git a/MANIFEST b/MANIFEST
new file mode 100644
index 0000000..1e6ea67
--- /dev/null
+++ b/MANIFEST
@@ -0,0 +1,34 @@
+#!mast .index .yardopts bin data demo lib man share spec test [A-Z][A-Z]*.*
+.index
+.yardopts
+demo/01_base_dir.md
+demo/02_base_dir_extended.md
+demo/03_base_dir_mixin.md
+demo/applique/ae.rb
+demo/applique/fakeroot.rb
+demo/applique/xdg.rb
+demo/fixtures/fakeroot/.cache/DUMMY.txt
+demo/fixtures/fakeroot/etc/xdg/bar.config
+demo/fixtures/fakeroot/home/.cache/foo.cache
+demo/fixtures/fakeroot/home/.config/foo.config
+demo/fixtures/fakeroot/home/.local/share/foo.dat
+demo/fixtures/fakeroot/home/joe/foo.txt
+demo/fixtures/fakeroot/usr/share/bar.dat
+lib/xdg/base_dir/extended.rb
+lib/xdg/base_dir/global_variables.rb
+lib/xdg/base_dir/legacy.rb
+lib/xdg/base_dir/mixin.rb
+lib/xdg/base_dir.rb
+lib/xdg/version.rb
+lib/xdg.rb
+test/fakeroot/.cache/DUMMY.txt
+test/fakeroot/etc/xdg/bar.config
+test/fakeroot/home/.cache/foo.cache
+test/fakeroot/home/.config/foo.config
+test/fakeroot/home/.local/share/foo.dat
+test/fakeroot/usr/share/bar.dat
+test/test_xdg_legacy.rb
+LICENSE.txt
+HISTORY.md
+README.md
+DEMO.md
diff --git a/Rakefile b/Rakefile
new file mode 100644
index 0000000..ca25246
--- /dev/null
+++ b/Rakefile
@@ -0,0 +1,41 @@
+#!/usr/bin/env ruby
+
+require 'rake/testtask'
+
+#
+def command?(command)
+  system("type #{command} > /dev/null 2>&1")
+end
+
+#
+# Tests
+#
+
+task :default => [:qed, :test]
+
+if command? :turn
+  desc "Run tests"
+  task :test do
+    suffix = "-n #{ENV['TEST']}" if ENV['TEST']
+    sh "turn -Ilib:. test/*.rb #{suffix}"
+  end
+else
+  Rake::TestTask.new do |t|
+    t.libs << 'lib'
+    t.libs << '.'
+    t.pattern = 'test/test_*.rb'
+    t.verbose = false
+  end
+end
+
+if command? :qed
+  desc "run qed tests"
+  task :qed do
+    sh "qed -Ilib qed/"
+  end
+else
+  task :qed do
+    $stderr.puts "WARNING: install qed gem to run qed tests"
+  end
+end
+
diff --git a/debian/changelog b/debian/changelog
index b02a9e2..c09263b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-ruby-xdg (2.2.3-2) UNRELEASED; urgency=medium
+ruby-xdg (2.2.3+git20121212.1.36b4708-1) UNRELEASED; urgency=medium
 
   [ Utkarsh Gupta ]
   * Add salsa-ci.yml
@@ -10,8 +10,9 @@ ruby-xdg (2.2.3-2) UNRELEASED; urgency=medium
   * Apply multi-arch hints.
     + ruby-xdg: Add :any qualifier for ruby dependency.
   * Bump debhelper from old 12 to 13.
+  * New upstream snapshot.
 
- -- Utkarsh Gupta <guptautkarsh2102@gmail.com>  Tue, 13 Aug 2019 08:17:58 +0530
+ -- Utkarsh Gupta <guptautkarsh2102@gmail.com>  Fri, 20 Jan 2023 03:50:49 -0000
 
 ruby-xdg (2.2.3-1) unstable; urgency=medium
 
diff --git a/lib/xdg.rb b/lib/xdg.rb
index 03aabf5..0dd778c 100644
--- a/lib/xdg.rb
+++ b/lib/xdg.rb
@@ -25,12 +25,12 @@
 #
 module XDG
   if RUBY_VERSION > '1.9'
-    require_relative 'xdg/version'
+    require_relative 'xdg/index'
     require_relative 'xdg/base_dir'
     require_relative 'xdg/base_dir/extended'
     require_relative 'xdg/base_dir/mixin'
   else
-    require 'xdg/version'
+    require 'xdg/index'
     require 'xdg/base_dir'
     require 'xdg/base_dir/extended'
     require 'xdg/base_dir/mixin'
diff --git a/lib/xdg.yml b/lib/xdg.yml
new file mode 120000
index 0000000..f018114
--- /dev/null
+++ b/lib/xdg.yml
@@ -0,0 +1 @@
+../.index
\ No newline at end of file
diff --git a/lib/xdg/index.rb b/lib/xdg/index.rb
new file mode 100644
index 0000000..ab2e22a
--- /dev/null
+++ b/lib/xdg/index.rb
@@ -0,0 +1,22 @@
+module XDG
+
+  #
+  # Access metadata via constants.
+  #
+  def self.const_missing(const_name)
+    name = const_name.to_s.downcase
+    index.key?(name) ? index[name] : super(const_name)
+  end
+
+  #
+  # Access to index data.
+  #
+  def self.index
+    @index ||= (
+      require 'yaml'
+      file = File.join(File.dirname(__FILE__) + '/../xdg.yml')
+      YAML.load_file(file)
+    )
+  end
+
+end
diff --git a/lib/xdg/version.rb b/lib/xdg/version.rb
deleted file mode 100644
index 3e1ba35..0000000
--- a/lib/xdg/version.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-module XDG
-  VERSION = '2.2.3'
-end
diff --git a/work/deprecated/meta/authors b/work/deprecated/meta/authors
new file mode 100644
index 0000000..d16e896
--- /dev/null
+++ b/work/deprecated/meta/authors
@@ -0,0 +1 @@
+Thomas Sawyer
diff --git a/work/deprecated/meta/collection b/work/deprecated/meta/collection
new file mode 100644
index 0000000..5568880
--- /dev/null
+++ b/work/deprecated/meta/collection
@@ -0,0 +1 @@
+rubyworks
diff --git a/work/deprecated/meta/contact b/work/deprecated/meta/contact
new file mode 100644
index 0000000..13351e7
--- /dev/null
+++ b/work/deprecated/meta/contact
@@ -0,0 +1 @@
+rubyworks-mailinglist@googlegroups.com
diff --git a/work/deprecated/meta/description b/work/deprecated/meta/description
new file mode 100644
index 0000000..1adc3b3
--- /dev/null
+++ b/work/deprecated/meta/description
@@ -0,0 +1,2 @@
+XDG provides a module for supporting the XDG Base Directory Standard.
+See: http://standards.freedesktop.org/basedir-spec/basedir-spec-0.6.html
diff --git a/work/deprecated/meta/homepage b/work/deprecated/meta/homepage
new file mode 100644
index 0000000..d4f89a3
--- /dev/null
+++ b/work/deprecated/meta/homepage
@@ -0,0 +1 @@
+http://xdg.rubyforge.org
diff --git a/work/deprecated/meta/name b/work/deprecated/meta/name
new file mode 100644
index 0000000..4c794ea
--- /dev/null
+++ b/work/deprecated/meta/name
@@ -0,0 +1 @@
+xdg
diff --git a/work/deprecated/meta/repository b/work/deprecated/meta/repository
new file mode 100644
index 0000000..6043b96
--- /dev/null
+++ b/work/deprecated/meta/repository
@@ -0,0 +1 @@
+http://github.com/rubyworks/xdg.git
diff --git a/work/deprecated/meta/summary b/work/deprecated/meta/summary
new file mode 100644
index 0000000..67b43a2
--- /dev/null
+++ b/work/deprecated/meta/summary
@@ -0,0 +1 @@
+XDG provides an interface for using XDG directory standard.
diff --git a/work/deprecated/meta/title b/work/deprecated/meta/title
new file mode 100644
index 0000000..71be3bd
--- /dev/null
+++ b/work/deprecated/meta/title
@@ -0,0 +1 @@
+XDG
diff --git a/work/deprecated/meta/version b/work/deprecated/meta/version
new file mode 100644
index 0000000..3eefcb9
--- /dev/null
+++ b/work/deprecated/meta/version
@@ -0,0 +1 @@
+1.0.0
diff --git a/xdg.gemspec b/xdg.gemspec
index dadc54d..bd3af44 100644
--- a/xdg.gemspec
+++ b/xdg.gemspec
@@ -1,42 +1,306 @@
-#########################################################
-# This file has been automatically generated by gem2tgz #
-#########################################################
-# -*- encoding: utf-8 -*-
-# stub: xdg 2.2.3 ruby lib
-
-Gem::Specification.new do |s|
-  s.name = "xdg".freeze
-  s.version = "2.2.3"
-
-  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
-  s.require_paths = ["lib".freeze]
-  s.authors = ["Trans".freeze]
-  s.date = "2012-12-12"
-  s.description = "XDG provides a module for supporting the XDG Base Directory Standard. See http://standards.freedesktop.org/basedir-spec/basedir-spec-0.6.html".freeze
-  s.email = ["transfire@gmail.com".freeze]
-  s.extra_rdoc_files = ["DEMO.md".freeze, "HISTORY.md".freeze, "LICENSE.txt".freeze, "README.md".freeze]
-  s.files = [".index".freeze, ".yardopts".freeze, "DEMO.md".freeze, "HISTORY.md".freeze, "LICENSE.txt".freeze, "README.md".freeze, "demo/01_base_dir.md".freeze, "demo/02_base_dir_extended.md".freeze, "demo/03_base_dir_mixin.md".freeze, "demo/applique/ae.rb".freeze, "demo/applique/fakeroot.rb".freeze, "demo/applique/xdg.rb".freeze, "demo/fixtures/fakeroot/.cache/DUMMY.txt".freeze, "demo/fixtures/fakeroot/etc/xdg/bar.config".freeze, "demo/fixtures/fakeroot/home/.cache/foo.cache".freeze, "demo/fixtures/fakeroot/home/.config/foo.config".freeze, "demo/fixtures/fakeroot/home/.local/share/foo.dat".freeze, "demo/fixtures/fakeroot/home/joe/foo.txt".freeze, "demo/fixtures/fakeroot/usr/share/bar.dat".freeze, "lib/xdg.rb".freeze, "lib/xdg/base_dir.rb".freeze, "lib/xdg/base_dir/extended.rb".freeze, "lib/xdg/base_dir/global_variables.rb".freeze, "lib/xdg/base_dir/legacy.rb".freeze, "lib/xdg/base_dir/mixin.rb".freeze, "lib/xdg/version.rb".freeze, "test/fakeroot/.cache/DUMMY.txt".freeze, "test/fakeroot/etc/xdg/bar.config".freeze, "test/fakeroot/home/.cache/foo.cache".freeze, "test/fakeroot/home/.config/foo.config".freeze, "test/fakeroot/home/.local/share/foo.dat".freeze, "test/fakeroot/usr/share/bar.dat".freeze, "test/test_xdg_legacy.rb".freeze]
-  s.homepage = "http://rubyworks.github.com/xdg".freeze
-  s.licenses = ["BSD-2-Clause".freeze]
-  s.rubygems_version = "2.7.6".freeze
-  s.summary = "XDG provides an interface for using XDG directory standard.".freeze
-  s.test_files = ["test/test_xdg_legacy.rb".freeze]
-
-  if s.respond_to? :specification_version then
-    s.specification_version = 3
-
-    if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
-      s.add_development_dependency(%q<ae>.freeze, [">= 0"])
-      s.add_development_dependency(%q<detroit>.freeze, [">= 0"])
-      s.add_development_dependency(%q<qed>.freeze, [">= 0"])
-    else
-      s.add_dependency(%q<ae>.freeze, [">= 0"])
-      s.add_dependency(%q<detroit>.freeze, [">= 0"])
-      s.add_dependency(%q<qed>.freeze, [">= 0"])
-    end
-  else
-    s.add_dependency(%q<ae>.freeze, [">= 0"])
-    s.add_dependency(%q<detroit>.freeze, [">= 0"])
-    s.add_dependency(%q<qed>.freeze, [">= 0"])
+# encoding: utf-8
+
+require 'yaml'
+require 'pathname'
+
+module Indexer
+
+  # Convert index data into a gemspec.
+  #
+  # Notes:
+  #   * Assumes all executables are in bin/.
+  #   * Does not yet handle default_executable setting.
+  #   * Does not yet handle platform setting.
+  #   * Does not yet handle required_ruby_version.
+  #   * Support for rdoc entries is weak.
+  #
+  class GemspecExporter
+
+    # File globs to include in package --unless a manifest file exists.
+    FILES = ".index .yardopts alt bin data demo ext features lib man spec test try* [A-Z]*.*" unless defined?(FILES)
+
+    # File globs to omit from FILES.
+    OMIT = "Config.rb" unless defined?(OMIT)
+
+    # Standard file patterns.
+    PATTERNS = {
+      :root => '{.index,Gemfile}',
+      :bin  => 'bin/*',
+      :lib  => 'lib/{**/}*', #.rb',
+      :ext  => 'ext/{**/}extconf.rb',
+      :doc  => '*.{txt,rdoc,md,markdown,tt,textile}',
+      :test => '{test,spec}/{**/}*.rb'
+    } unless defined?(PATTERNS)
+
+    # For which revision of indexer spec is this converter intended?
+    REVISION = 2013 unless defined?(REVISION)
+
+    #
+    def self.gemspec
+      new.to_gemspec
+    end
+
+    #
+    attr :metadata
+
+    #
+    def initialize(metadata=nil)
+      @root_check = false
+
+      if metadata
+        root_dir = metadata.delete(:root)
+        if root_dir
+          @root = root_dir
+          @root_check = true
+        end
+        metadata = nil if metadata.empty?
+      end
+
+      @metadata = metadata || YAML.load_file(root + '.index')
+
+      if @metadata['revision'].to_i != REVISION
+        warn "This gemspec exporter was not designed for this revision of index metadata."
+      end
+    end
+
+    #
+    def has_root?
+      root ? true : false
+    end
+
+    #
+    def root
+      return @root if @root || @root_check
+      @root_check = true
+      @root = find_root
+    end
+
+    #
+    def manifest
+      return nil unless root
+      @manifest ||= Dir.glob(root + 'manifest{,.txt}', File::FNM_CASEFOLD).first
+    end
+
+    #
+    def scm
+      return nil unless root
+      @scm ||= %w{git hg}.find{ |m| (root + ".#{m}").directory? }.to_sym
+    end
+
+    #
+    def files
+      return [] unless root
+      @files ||= \
+        if manifest
+          File.readlines(manifest).
+            map{ |line| line.strip }.
+            reject{ |line| line.empty? || line[0,1] == '#' }
+        else
+          list = []
+          Dir.chdir(root) do
+            FILES.split(/\s+/).each do |pattern|
+              list.concat(glob(pattern))
+            end
+            OMIT.split(/\s+/).each do |pattern|
+              list = list - glob(pattern)
+            end
+          end
+          list
+        end.select{ |path| File.file?(path) }.uniq
+    end
+
+    #
+    def glob_files(pattern)
+      return [] unless root
+      Dir.chdir(root) do
+        Dir.glob(pattern).select do |path|
+          File.file?(path) && files.include?(path)
+        end
+      end
+    end
+
+    def patterns
+      PATTERNS
+    end
+
+    def executables
+      @executables ||= \
+        glob_files(patterns[:bin]).map do |path|
+          File.basename(path)
+        end
+    end
+
+    def extensions
+      @extensions ||= \
+        glob_files(patterns[:ext]).map do |path|
+          File.basename(path)
+        end
+    end
+
+    def name
+      metadata['name'] || metadata['title'].downcase.gsub(/\W+/,'_')
+    end
+
+    def homepage
+      page = (
+        metadata['resources'].find{ |r| r['type'] =~ /^home/i } ||
+        metadata['resources'].find{ |r| r['name'] =~ /^home/i } ||
+        metadata['resources'].find{ |r| r['name'] =~ /^web/i }
+      )
+      page ? page['uri'] : false
+    end
+
+    def licenses
+      metadata['copyrights'].map{ |c| c['license'] }.compact
+    end
+
+    def require_paths
+      metadata['load_path'] || ['lib']
+    end
+
+    #
+    # Convert to gemnspec.
+    #
+    def to_gemspec
+      if has_root?
+        Gem::Specification.new do |gemspec|
+          to_gemspec_data(gemspec)
+          to_gemspec_paths(gemspec)
+        end
+      else
+        Gem::Specification.new do |gemspec|
+          to_gemspec_data(gemspec)
+          to_gemspec_paths(gemspec)
+        end
+      end
+    end
+
+    #
+    # Convert pure data settings.
+    #
+    def to_gemspec_data(gemspec)
+      gemspec.name        = name
+      gemspec.version     = metadata['version']
+      gemspec.summary     = metadata['summary']
+      gemspec.description = metadata['description']
+
+      metadata['authors'].each do |author|
+        gemspec.authors << author['name']
+
+        if author.has_key?('email')
+          if gemspec.email
+            gemspec.email << author['email']
+          else
+            gemspec.email = [author['email']]
+          end
+        end
+      end
+
+      gemspec.licenses = licenses
+
+      requirements = metadata['requirements'] || []
+      requirements.each do |req|
+        next if req['optional']
+        next if req['external']
+
+        name    = req['name']
+        groups  = req['groups'] || []
+
+        version = gemify_version(req['version'])
+
+        if groups.empty? or groups.include?('runtime')
+          # populate runtime dependencies  
+          if gemspec.respond_to?(:add_runtime_dependency)
+            gemspec.add_runtime_dependency(name,*version)
+          else
+            gemspec.add_dependency(name,*version)
+          end
+        else
+          # populate development dependencies
+          if gemspec.respond_to?(:add_development_dependency)
+            gemspec.add_development_dependency(name,*version)
+          else
+            gemspec.add_dependency(name,*version)
+          end
+        end
+      end
+
+      # convert external dependencies into gemspec requirements
+      requirements.each do |req|
+        next unless req['external']
+        gemspec.requirements << ("%s-%s" % req.values_at('name', 'version'))
+      end
+
+      gemspec.homepage = homepage
+      gemspec.require_paths = require_paths
+      gemspec.post_install_message = metadata['install_message']
+    end
+
+    #
+    # Set gemspec settings that require a root directory path.
+    #
+    def to_gemspec_paths(gemspec)
+      gemspec.files       = files
+      gemspec.extensions  = extensions
+      gemspec.executables = executables
+
+      if Gem::VERSION < '1.7.'
+        gemspec.default_executable = gemspec.executables.first
+      end
+
+      gemspec.test_files = glob_files(patterns[:test])
+
+      unless gemspec.files.include?('.document')
+        gemspec.extra_rdoc_files = glob_files(patterns[:doc])
+      end
+    end
+
+    #
+    # Return a copy of this file. This is used to generate a local
+    # .gemspec file that can automatically read the index file.
+    #
+    def self.source_code
+      File.read(__FILE__)
+    end
+
+  private
+
+    def find_root
+      root_files = patterns[:root]
+      if Dir.glob(root_files).first
+        Pathname.new(Dir.pwd)
+      elsif Dir.glob("../#{root_files}").first
+        Pathname.new(Dir.pwd).parent
+      else
+        #raise "Can't find root of project containing `#{root_files}'."
+        warn "Can't find root of project containing `#{root_files}'."
+        nil
+      end
+    end
+
+    def glob(pattern)
+      if File.directory?(pattern)
+        Dir.glob(File.join(pattern, '**', '*'))
+      else
+        Dir.glob(pattern)
+      end
+    end
+
+    def gemify_version(version)
+      case version
+      when /^(.*?)\+$/
+        ">= #{$1}"
+      when /^(.*?)\-$/
+        "< #{$1}"
+      when /^(.*?)\~$/
+        "~> #{$1}"
+      else
+        version
+      end
+    end
+
   end
+
 end
+
+Indexer::GemspecExporter.gemspec
\ No newline at end of file

Debdiff

[The following lists of changes regard files as different if they have different names, permissions or owners.]

Files in second set of .debs but not in first

-rw-r--r--  root/root   /usr/lib/ruby/vendor_ruby/xdg.yml
-rw-r--r--  root/root   /usr/lib/ruby/vendor_ruby/xdg/index.rb

Files in first set of .debs but not in second

-rw-r--r--  root/root   /usr/lib/ruby/vendor_ruby/xdg/version.rb

Control files: lines which differ (wdiff format)

  • Ruby-Versions: all

More details

Full run details