rubygems-update 4.0.20 → 4.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1c5b9e451752787719ea243e41b423937313b296fe80fcdb9e2278c47bce0311
4
- data.tar.gz: 40407c5dda968a596b10a34cfe59e6884ed03a2224c43934aaf1b2dc86c7d0f3
3
+ metadata.gz: d2ba10366f24f2128455224d595b4f144427d183daa7e729fa030baa5145abdf
4
+ data.tar.gz: 4e918f6f931c6979330094869a027604f951c0848a66e2677e2fdd5fec8e6453
5
5
  SHA512:
6
- metadata.gz: a98a6944def23e28a4f45a8be9d1d7fa36b488cf1add3e542ffae3ca9ace3adfde5499ddd36a0e1a15ad0baf363ab05509d4bcfd7d714d4209c6fcba1dc2a6b2
7
- data.tar.gz: 5f399d26a853785b4ead62f67c12f84f7225af52cb700fb39fd50e8895e481d91c667b51d9b2c8df925f3c46477044d9704039c86a67bcdaeaff80c529f97f64
6
+ metadata.gz: f4a911ffd341da70726247e72f242d4c9f8eb2ca4dfe366b0b60628e26f497505ad1e497516c4e1d472a04fd19bf5d67a8a83ad38f9a89b48bf8eca82df077c6
7
+ data.tar.gz: 02f63cf60c57dfceb1e49ef7997273d23ffe449de39ade9c2b85f81803e1ed5e092d99fc98569943d8b9c794a60360f9ff3027dda3a055ecc8f78dd380446421
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 4.0.21 / 2026-09-16
4
+
5
+ ### Enhancements:
6
+
7
+ * Stop vendoring resolv for two regexps. Pull request [#9877](https://github.com/ruby/rubygems/pull/9877) by Hiroshi SHIBATA
8
+ * Normalize absolute symlink targets during gem extraction. Pull request [#9860](https://github.com/ruby/rubygems/pull/9860) by Hiroshi SHIBATA
9
+ * Installs bundler 4.0.21 as a default gem.
10
+
3
11
  ## 4.0.20 / 2026-09-02
4
12
 
5
13
  ### Enhancements:
data/Manifest.txt CHANGED
@@ -578,8 +578,6 @@ lib/rubygems/vendor/optparse/lib/optparse/shellwords.rb
578
578
  lib/rubygems/vendor/optparse/lib/optparse/time.rb
579
579
  lib/rubygems/vendor/optparse/lib/optparse/uri.rb
580
580
  lib/rubygems/vendor/optparse/lib/optparse/version.rb
581
- lib/rubygems/vendor/resolv/COPYING
582
- lib/rubygems/vendor/resolv/lib/resolv.rb
583
581
  lib/rubygems/vendor/securerandom/COPYING
584
582
  lib/rubygems/vendor/securerandom/lib/securerandom.rb
585
583
  lib/rubygems/vendor/timeout/COPYING
data/bundler/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## 4.0.21 / 2026-09-16
4
+
5
+ ### Enhancements:
6
+
7
+ * Don't update bundler to a prerelease unless asked for one. Pull request [#9869](https://github.com/ruby/rubygems/pull/9869) by Hiroshi SHIBATA
8
+ * Reject Bundler redirects that downgrade https to http. Pull request [#9859](https://github.com/ruby/rubygems/pull/9859) by Hiroshi SHIBATA
9
+
10
+ ### Bug fixes:
11
+
12
+ * Support `safe.bareRepository=explicit` in git sources. Pull request [#9876](https://github.com/ruby/rubygems/pull/9876) by Hiroshi SHIBATA
13
+ * Stop resolving locally for empty CHECKSUMS entries. Pull request [#9862](https://github.com/ruby/rubygems/pull/9862) by Hiroshi SHIBATA
14
+ * Expand the git source gemspec path before the chdir. Pull request [#9845](https://github.com/ruby/rubygems/pull/9845) by Hiroshi SHIBATA
15
+
3
16
  ## 4.0.20 / 2026-09-02
4
17
 
5
18
  ### Enhancements:
@@ -24,7 +24,7 @@ Gem::Specification.new do |s|
24
24
 
25
25
  s.metadata = {
26
26
  "bug_tracker_uri" => "https://github.com/ruby/rubygems/issues?q=is%3Aopen+is%3Aissue+label%3ABundler",
27
- "changelog_uri" => "https://github.com/ruby/rubygems/blob/master/CHANGELOG-bundler.md",
27
+ "changelog_uri" => "https://github.com/ruby/rubygems/blob/master/CHANGELOG.md",
28
28
  "homepage_uri" => "https://bundler.io/",
29
29
  "source_code_uri" => "https://github.com/ruby/rubygems",
30
30
  }
@@ -4,8 +4,8 @@ module Bundler
4
4
  # Represents metadata from when the Bundler gem was built.
5
5
  module BuildMetadata
6
6
  # begin ivars
7
- @built_at = "2026-09-02".freeze
8
- @git_commit_sha = "7f2502dc32b".freeze
7
+ @built_at = "2026-09-16".freeze
8
+ @git_commit_sha = "a15d54ed692".freeze
9
9
  # end ivars
10
10
 
11
11
  # A hash representation of the build metadata.
@@ -13,7 +13,7 @@ module Bundler
13
13
 
14
14
  update_bundler = options[:bundler]
15
15
 
16
- Bundler.self_manager.update_bundler_and_restart_with_it_if_needed(update_bundler) if update_bundler
16
+ Bundler.self_manager.update_bundler_and_restart_with_it_if_needed(update_bundler, pre: options[:pre]) if update_bundler
17
17
 
18
18
  Plugin.gemfile_install(Bundler.default_gemfile) if Bundler.settings[:plugins]
19
19
 
@@ -317,7 +317,7 @@ module Bundler
317
317
  method_option "source", type: :array, banner: "Update a specific source (and all gems associated with it)"
318
318
  method_option "force", type: :boolean, aliases: "--redownload", banner: "Force reinstalling every gem, even if already installed"
319
319
  method_option "ruby", type: :boolean, banner: "Update ruby specified in Gemfile.lock"
320
- method_option "bundler", type: :string, lazy_default: "> 0.a", banner: "Update the locked version of bundler"
320
+ method_option "bundler", type: :string, lazy_default: ">= #{Bundler::VERSION}", banner: "Update the locked version of bundler"
321
321
  method_option "patch", type: :boolean, banner: "Prefer updating only to next patch version"
322
322
  method_option "minor", type: :boolean, banner: "Prefer updating only to next minor version"
323
323
  method_option "major", type: :boolean, banner: "Prefer updating to next major version (default)"
@@ -642,7 +642,7 @@ module Bundler
642
642
  method_option "pre", type: :boolean, banner: "If updating, always choose the highest allowed version, regardless of prerelease status"
643
643
  method_option "strict", type: :boolean, banner: "If updating, do not allow any gem to be updated past latest --patch | --minor | --major"
644
644
  method_option "conservative", type: :boolean, banner: "If updating, use bundle install conservative update behavior and do not allow shared dependencies to be updated"
645
- method_option "bundler", type: :string, lazy_default: "> 0.a", banner: "Update the locked version of bundler"
645
+ method_option "bundler", type: :string, lazy_default: ">= #{Bundler::VERSION}", banner: "Update the locked version of bundler"
646
646
  method_option "cooldown", type: :numeric, banner: "Only consider gem versions published at least N days ago. Use 0 to disable."
647
647
  def lock
648
648
  require_relative "cli/lock"
@@ -192,7 +192,7 @@ module Bundler
192
192
 
193
193
  sources.cached!
194
194
 
195
- if options[:add_checksums] || (!options[:local] && install_needed?)
195
+ if options[:add_checksums] || (!options[:local] && (install_needed? || @locked_spec_with_empty_checksums))
196
196
  sources.remote!
197
197
  true
198
198
  else
@@ -639,7 +639,7 @@ module Bundler
639
639
  @missing_lockfile_dep ||
640
640
  @unlocking_bundler ||
641
641
  @locked_spec_with_missing_checksums ||
642
- @locked_spec_with_empty_checksums ||
642
+ empty_checksums_actionable? ||
643
643
  @locked_spec_with_missing_deps ||
644
644
  @locked_spec_with_invalid_deps
645
645
  end
@@ -648,6 +648,16 @@ module Bundler
648
648
  unlocking? || something_changed?
649
649
  end
650
650
 
651
+ # Only a remote fetch can fill an empty CHECKSUMS entry, so it justifies a
652
+ # resolution only when one is coming. Resolving locally for it would repeat
653
+ # on every `Bundler.setup` without changing the lockfile. Frozen mode still
654
+ # has to refuse the entry.
655
+ def empty_checksums_actionable?
656
+ return false unless @locked_spec_with_empty_checksums
657
+
658
+ Bundler.frozen_bundle? || !sources.local_mode?
659
+ end
660
+
651
661
  def should_add_extra_platforms?
652
662
  !lockfile_exists? && Bundler::MatchPlatform.generic_local_platform_is_ruby? && !Bundler.settings[:force_ruby_platform]
653
663
  end
@@ -46,6 +46,11 @@ module Bundler
46
46
  response
47
47
  when Gem::Net::HTTPRedirection
48
48
  new_uri = Gem::URI.parse(response["location"])
49
+ # Following a downgrade would put the credentials this request carries
50
+ # on a plaintext connection, so refuse it like Gem::RemoteFetcher does.
51
+ if https?(uri) && !https?(new_uri)
52
+ raise HTTPError, "Redirecting to a non-https URI is not allowed: #{URICredentialsFilter.credential_filtered_uri(new_uri)}"
53
+ end
49
54
  if new_uri.host == uri.host
50
55
  new_uri.user = uri.user
51
56
  new_uri.password = uri.password
@@ -105,6 +110,10 @@ module Bundler
105
110
 
106
111
  private
107
112
 
113
+ def https?(uri)
114
+ uri.scheme&.casecmp("https")&.zero?
115
+ end
116
+
108
117
  def validate_uri_scheme!(uri)
109
118
  return if /\Ahttps?\z/.match?(uri.scheme)
110
119
  raise InvalidOption,
@@ -13,7 +13,7 @@ Lock the gems specified in Gemfile\.
13
13
  Ignores the existing lockfile\. Resolve then updates lockfile\. Taking a list of gems or updating all gems if no list is given\.
14
14
  .TP
15
15
  \fB\-\-bundler[=BUNDLER]\fR
16
- Update the locked version of bundler to the given version or the latest version if no version is given\.
16
+ Update the locked version of bundler\. BUNDLER can be a version such as \fB4\.0\.20\fR, or a requirement such as \fB"> 0\.a"\fR\. With no argument, update to the latest released version, which never selects a prerelease\.
17
17
  .TP
18
18
  \fB\-\-local\fR
19
19
  Do not attempt to connect to \fBrubygems\.org\fR\. Instead, Bundler will use the gems already present in Rubygems' cache or in \fBvendor/cache\fR\. Note that if a appropriate platform\-specific gem exists on \fBrubygems\.org\fR it will not be found\.
@@ -33,8 +33,9 @@ Lock the gems specified in Gemfile.
33
33
  of gems or updating all gems if no list is given.
34
34
 
35
35
  * `--bundler[=BUNDLER]`:
36
- Update the locked version of bundler to the given version or the latest
37
- version if no version is given.
36
+ Update the locked version of bundler. BUNDLER can be a version such as
37
+ `4.0.20`, or a requirement such as `"> 0.a"`. With no argument, update to the
38
+ latest released version, which never selects a prerelease.
38
39
 
39
40
  * `--local`:
40
41
  Do not attempt to connect to `rubygems.org`. Instead, Bundler will use the
@@ -27,7 +27,7 @@ Do not attempt to fetch gems remotely and use the gem cache instead\.
27
27
  Update the locked version of Ruby to the current version of Ruby\.
28
28
  .TP
29
29
  \fB\-\-bundler[=BUNDLER]\fR
30
- Update the locked version of bundler to the invoked bundler version\.
30
+ Update the locked version of bundler\. BUNDLER can be a version such as \fB4\.0\.20\fR, or a requirement such as \fB"> 0\.a"\fR\. With no argument, update to the latest released version, which never selects a prerelease\.
31
31
  .TP
32
32
  \fB\-\-force\fR, \fB\-\-redownload\fR
33
33
  Force reinstalling every gem, even if already installed\.
@@ -53,7 +53,9 @@ gem.
53
53
  Update the locked version of Ruby to the current version of Ruby.
54
54
 
55
55
  * `--bundler[=BUNDLER]`:
56
- Update the locked version of bundler to the invoked bundler version.
56
+ Update the locked version of bundler. BUNDLER can be a version such as
57
+ `4.0.20`, or a requirement such as `"> 0.a"`. With no argument, update to the
58
+ latest released version, which never selects a prerelease.
57
59
 
58
60
  * `--force`, `--redownload`:
59
61
  Force reinstalling every gem, even if already installed.
@@ -30,8 +30,8 @@ module Bundler
30
30
  install_and_restart_with(restart_version)
31
31
  end
32
32
 
33
- def update_bundler_and_restart_with_it_if_needed(target)
34
- spec = resolve_update_version_from(target)
33
+ def update_bundler_and_restart_with_it_if_needed(target, pre: false)
34
+ spec = resolve_update_version_from(target, pre: pre)
35
35
  return unless spec
36
36
 
37
37
  version = spec.version
@@ -108,9 +108,9 @@ module Bundler
108
108
  lockfile_version
109
109
  end
110
110
 
111
- def resolve_update_version_from(target)
111
+ def resolve_update_version_from(target, pre: false)
112
112
  requirement = Gem::Requirement.new(target)
113
- update_candidate = find_latest_matching_spec(requirement)
113
+ update_candidate = find_latest_matching_spec(requirement, pre: pre)
114
114
 
115
115
  if update_candidate.nil?
116
116
  raise InvalidOption, "The `bundle update --bundler` target version (#{target}) does not exist"
@@ -137,18 +137,24 @@ module Bundler
137
137
  end
138
138
  end
139
139
 
140
- def find_latest_matching_spec(requirement)
140
+ def find_latest_matching_spec(requirement, pre: false)
141
141
  Bundler.configure
142
- local_result = find_latest_matching_spec_from_collection(local_specs, requirement)
142
+ # A bare `bundle update --bundler` must stay on releases, like `gem update
143
+ # --system`, so only `--pre` or a prerelease requirement opts into one.
144
+ allow_prerelease = pre || requirement.prerelease?
145
+
146
+ local_result = find_latest_matching_spec_from_collection(local_specs, requirement, allow_prerelease)
143
147
  return local_result if local_result && requirement.specific?
144
148
 
145
- remote_result = find_latest_matching_spec_from_collection(remote_specs, requirement)
149
+ remote_result = find_latest_matching_spec_from_collection(remote_specs, requirement, allow_prerelease)
146
150
  return remote_result if local_result.nil?
147
151
 
148
- [local_result, remote_result].max
152
+ [local_result, remote_result].compact.max
149
153
  end
150
154
 
151
- def find_latest_matching_spec_from_collection(specs, requirement)
155
+ def find_latest_matching_spec_from_collection(specs, requirement, allow_prerelease)
156
+ specs = specs.reject {|spec| spec.version.prerelease? } unless allow_prerelease
157
+
152
158
  specs.sort.reverse_each.find {|spec| requirement.satisfied_by?(spec.version) }
153
159
  end
154
160
 
@@ -507,7 +507,15 @@ module Bundler
507
507
 
508
508
  return ["git", *opts, *cmd] unless dir
509
509
 
510
- ["git", "-C", dir.to_s, *opts, *cmd]
510
+ # With safe.bareRepository=explicit, git refuses to discover a bare
511
+ # repository from -C, so the cache clone is named with --git-dir.
512
+ # Working trees, like a local override, still go through -C.
513
+ location = bare_repo?(dir) ? "--git-dir" : "-C"
514
+ ["git", location, dir.to_s, *opts, *cmd]
515
+ end
516
+
517
+ def bare_repo?(dir)
518
+ File.exist?(File.join(dir, "objects")) && File.exist?(File.join(dir, "HEAD"))
511
519
  end
512
520
 
513
521
  def extra_clone_args
@@ -423,10 +423,12 @@ module Bundler
423
423
  def validate_spec(_spec); end
424
424
 
425
425
  def load_gemspec(file)
426
- dirname = Pathname.new(file).dirname
427
- SharedHelpers.chdir(dirname.to_s) do
428
- stub = Gem::StubSpecification.gemspec_stub(file, install_path.parent, install_path.parent)
429
- stub.full_gem_path = dirname.expand_path(root).to_s
426
+ # Expand the path before the chdir below, since resolving it inside the
427
+ # block would base it on the gemspec directory instead of `root`.
428
+ gemspec_path = Pathname.new(file).expand_path(root)
429
+ SharedHelpers.chdir(gemspec_path.dirname.to_s) do
430
+ stub = Gem::StubSpecification.gemspec_stub(gemspec_path.to_s, install_path.parent, install_path.parent)
431
+ stub.full_gem_path = gemspec_path.dirname.to_s
430
432
  StubSpecification.from_stub(stub)
431
433
  end
432
434
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: false
2
2
 
3
3
  module Bundler
4
- VERSION = "4.0.20".freeze
4
+ VERSION = "4.0.21".freeze
5
5
 
6
6
  def self.bundler_major_version
7
7
  @bundler_major_version ||= gem_version.segments.first
@@ -429,7 +429,7 @@ EOM
429
429
 
430
430
  if entry.symlink?
431
431
  link_target = entry.header.linkname
432
- real_destination = link_target.start_with?("/") ? link_target : File.expand_path(link_target, File.dirname(destination))
432
+ real_destination = File.expand_path(link_target, File.dirname(destination))
433
433
 
434
434
  raise Gem::Package::SymlinkError.new(full_name, real_destination, destination_dir) unless
435
435
  normalize_path(real_destination).start_with? normalize_path(destination_dir + "/")
@@ -22,7 +22,6 @@
22
22
 
23
23
  require_relative '../../../net-protocol/lib/net/protocol'
24
24
  require_relative '../../../uri/lib/uri'
25
- require_relative '../../../resolv/lib/resolv'
26
25
  autoload :OpenSSL, 'openssl'
27
26
 
28
27
  module Gem::Net #:nodoc:
@@ -1531,6 +1530,29 @@ module Gem::Net #:nodoc:
1531
1530
 
1532
1531
  SSL_IVNAMES = SSL_ATTRIBUTES.map { |a| "@#{a}".to_sym }.freeze # :nodoc:
1533
1532
 
1533
+ # Resolv::IPv4::Regex and Resolv::IPv6::Regex, copied from resolv 0.7.1 rather
1534
+ # than required, so that net/http does not load a DNS resolver just to keep an
1535
+ # IP address literal out of the Server Name Indication.
1536
+ # https://github.com/ruby/resolv/blob/v0.7.1/lib/resolv.rb
1537
+ ipv4_octet = /0|1(?:[0-9][0-9]?)?|2(?:[0-4][0-9]?|5[0-5]?|[6-9])?|[3-9][0-9]?/
1538
+ hex16 = /[0-9A-Fa-f]{1,4}/
1539
+ hex16_group = /(?:#{hex16}(?::#{hex16})*)?/
1540
+ dotted_quad = /\d+\.\d+\.\d+\.\d+/
1541
+ zone_id = /%[-0-9A-Za-z._~]+/
1542
+
1543
+ IPV4_ADDRESS = /\A(?:#{ipv4_octet})\.(?:#{ipv4_octet})\.(?:#{ipv4_octet})\.(?:#{ipv4_octet})\z/ # :nodoc:
1544
+
1545
+ IPV6_ADDRESS = /\A(?:
1546
+ (?:#{hex16}:){7}#{hex16} # a:b:c:d:e:f:g:h
1547
+ | #{hex16_group}::#{hex16_group} # a::b
1548
+ | (?:#{hex16}:){6}#{dotted_quad} # a:b:c:d:e:f:w.x.y.z
1549
+ | #{hex16_group}::(?:#{hex16}:)*#{dotted_quad} # a::b:w.x.y.z
1550
+ | [Ff][Ee]80(?::#{hex16}){7}#{zone_id} # fe80:b:c:d:e:f:g:h%em1
1551
+ | [Ff][Ee]80:(?:#{hex16_group}::#{hex16_group}|:#{hex16_group})?:#{hex16}#{zone_id} # fe80::b%em1
1552
+ )\z/x # :nodoc:
1553
+
1554
+ private_constant :IPV4_ADDRESS, :IPV6_ADDRESS
1555
+
1534
1556
  # Sets or returns the path to a CA certification file in PEM format.
1535
1557
  attr_accessor :ca_file
1536
1558
 
@@ -1714,7 +1736,7 @@ module Gem::Net #:nodoc:
1714
1736
 
1715
1737
  # Server Name Indication (SNI) RFC 3546/6066
1716
1738
  case @address
1717
- when Gem::Resolv::IPv4::Regex, Gem::Resolv::IPv6::Regex
1739
+ when IPV4_ADDRESS, IPV6_ADDRESS
1718
1740
  # don't set SNI, as IP addresses in SNI is not valid
1719
1741
  # per RFC 6066, section 3.
1720
1742
 
data/lib/rubygems.rb CHANGED
@@ -9,7 +9,7 @@
9
9
  require "rbconfig"
10
10
 
11
11
  module Gem
12
- VERSION = "4.0.20"
12
+ VERSION = "4.0.21"
13
13
  end
14
14
 
15
15
  require_relative "rubygems/defaults"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubygems-update
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.20
4
+ version: 4.0.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jim Weirich
@@ -661,8 +661,6 @@ files:
661
661
  - lib/rubygems/vendor/optparse/lib/optparse/time.rb
662
662
  - lib/rubygems/vendor/optparse/lib/optparse/uri.rb
663
663
  - lib/rubygems/vendor/optparse/lib/optparse/version.rb
664
- - lib/rubygems/vendor/resolv/COPYING
665
- - lib/rubygems/vendor/resolv/lib/resolv.rb
666
664
  - lib/rubygems/vendor/securerandom/COPYING
667
665
  - lib/rubygems/vendor/securerandom/lib/securerandom.rb
668
666
  - lib/rubygems/vendor/timeout/COPYING
@@ -1,56 +0,0 @@
1
- Ruby is copyrighted free software by Yukihiro Matsumoto <matz@netlab.jp>.
2
- You can redistribute it and/or modify it under either the terms of the
3
- 2-clause BSDL (see the file BSDL), or the conditions below:
4
-
5
- 1. You may make and give away verbatim copies of the source form of the
6
- software without restriction, provided that you duplicate all of the
7
- original copyright notices and associated disclaimers.
8
-
9
- 2. You may modify your copy of the software in any way, provided that
10
- you do at least ONE of the following:
11
-
12
- a. place your modifications in the Public Domain or otherwise
13
- make them Freely Available, such as by posting said
14
- modifications to Usenet or an equivalent medium, or by allowing
15
- the author to include your modifications in the software.
16
-
17
- b. use the modified software only within your corporation or
18
- organization.
19
-
20
- c. give non-standard binaries non-standard names, with
21
- instructions on where to get the original software distribution.
22
-
23
- d. make other distribution arrangements with the author.
24
-
25
- 3. You may distribute the software in object code or binary form,
26
- provided that you do at least ONE of the following:
27
-
28
- a. distribute the binaries and library files of the software,
29
- together with instructions (in the manual page or equivalent)
30
- on where to get the original distribution.
31
-
32
- b. accompany the distribution with the machine-readable source of
33
- the software.
34
-
35
- c. give non-standard binaries non-standard names, with
36
- instructions on where to get the original software distribution.
37
-
38
- d. make other distribution arrangements with the author.
39
-
40
- 4. You may modify and include the part of the software into any other
41
- software (possibly commercial). But some files in the distribution
42
- are not written by the author, so that they are not under these terms.
43
-
44
- For the list of those files and their copying conditions, see the
45
- file LEGAL.
46
-
47
- 5. The scripts and library files supplied as input to or produced as
48
- output from the software do not automatically fall under the
49
- copyright of the software, but belong to whomever generated them,
50
- and may be sold commercially, and may be aggregated with this
51
- software.
52
-
53
- 6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
54
- IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
55
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
56
- PURPOSE.