Skip to content

Conversation

nobu
Copy link
Member

@nobu nobu commented May 3, 2024

Fix #53.

Memo of Procedure

  1. Cloned a new repository and filtered following files using git-filter-repo.

    ext/win32/resolv/extconf.rb
    ext/win32/resolv/resolv.c
    glob:ext/*/lib/win32/resolv*.rb
    .git-blame-ignore-revs
    ext/win32/lib/==>ext/win32/resolv/lib/
    
  2. Reset .git-blame-ignore-revs to truncate unrelated commits in the filtered repository.

  3. Cherry-picked from the filtered repository into ruby/resolv clone.

  4. Rewrite the last hash in .git-blame-ignore-revs.

unak and others added 27 commits May 6, 2024 21:45
* lib/resolv.rb: support Win32 platforms.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4135 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
  fixed: [ruby-list:40058], [ruby-dev:27479]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9455 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/dl/win32/*: new. [ruby-dev:32387]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14093 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
  [ruby-dev:29945], [ruby-dev:34095]

* lib/win32/registry.rb (Win32::Registry.expand_environ): try upcased
  name too for cygwin.  [ruby-dev:29945]

* lib/win32/resolv.rb (Win32::Resolv.get_hosts_path): use expand_path.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15823 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
  win32/resolv to use Win32::Resolv.  [ruby-dev:34138]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15869 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
  of Win32API.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22724 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/dl/lib/dl/func.rb: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22727 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28951 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/dl/win32/extconf.rb: check fiddle.  often case dl compiled prior
  to fiddle, so this change is no meaning.  in most cases, simply
  fiddle/win32 overwrite dl/win32.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38294 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/win32: move from ext/dl and ext/fiddle.  since ext/extmk.rb
  builds extensions in alphabetical order, compiled?('fiddle') under
  ext/dl makes no sense.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41936 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
g -L frozen_string_literal ext/**/*.rb|xargs ruby -Ka -e'ARGV.each{|fn|puts
fn;open(fn,"r+"){|f|s=f.read.sub(/\A(#!.*\n)?(#.*coding.*\n)?/,"\\&#
frozen_string_literal: false\n");f.rewind;f.write s}}'

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53143 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/win32/lib/win32/resolv9x.rb: split code for Windows 9x from
  resolv.rb.  now it is rarely used.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53826 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/win32/lib/win32/{resolv,resolv9x}.rb: get rid of
  ruby-mode.el of Emacs 24.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53828 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/win32/lib/win32/resolv.rb: check pointer size first, NT if
  it is larger than 4 as Windows 9X are 32-bit mode only.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53829 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/win32/lib/win32/resolv.rb: invert the condition to return
  immediately in the future.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53830 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/win32/lib/Win32API.rb (Win32API#initialize): Cygwin
  2.5.2-1 (perhaps) seems to no longer append ".dll" suffix
  implicitly.
* ext/win32/lib/win32/resolv.rb (Win32::Resolv): ditto.  Fix the
  error reported by yamataka AT u08.itscom.net in
  [ruby-list:50339], and pointed out and patched by cerberus AT
  m3.kcn.ne.jp in [ruby-list:50341].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55507 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/win32/resolv/resolv.c (get_dns_server_list): [Win32] get DNS
  servers only for connected network devices by GetNetworkParams
  API.  [Bug #12604]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55781 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/win32/resolv/resolv.c (Init_resolv): remove dead code.
  [Bug #12604]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55783 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/win32/resolv/resolv.c: needs windows.h for iphlpapi.h on
  cygwin.  [ruby-core:76791] [Bug #12663]
* ext/win32/resolv/resolv.c (w32error_make_error): use
  Win32::Resolv::Error, an alias of Win32::Registry::Error.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55849 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/win32/resolv/resolv.c: needs windows.h for iphlpapi.h on
  cygwin.  [ruby-core:76791] [Bug #12663]

* ext/win32/resolv/resolv.c (w32error_make_error): use
  Win32::Resolv::Error, an alias of Win32::Registry::Error.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55852 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/win32/lib/win32/resolv.rb (Win32::Resolv::SZ): an ad hoc
  workaround for broken registry.  SearchList and other registry
  values must be REG_SZ, or Windows ignores anything in those
  values otherwise.  [ruby-dev:49924] [Bug #13081]
  rubygems/rubygems#1700

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57265 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/win32/lib/win32/resolv9x.rb (WsControl): fix missing close
  parenthesis at r22724.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57629 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/win32/lib/win32/resolv.rb: call rb_w32_osid instead of
  direct GetVersionExA API.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61895 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
for [Misc #18891]

It is a file that could be used with `git config blame.ignoreRevsFile`.
The file name `.git-blame-ignore-revs` is natively supported by GitHub,
so you don't need anything else to make it work on GitHub.
https://docs.github.com/en/repositories/working-with-files/using-files/viewing-a-file#ignore-commits-in-the-blame-view

However, for your local git repository use, if you configure `blame.ignoreRevsFile`
globally, git expects you to have the file in every git repository you
use, which is nearly impossible.

So, for your local development, you're supposed to use this file with:

```
git config --local blame.ignoreRevsFile .git-blame-ignore-revs
```
@hsbt
Copy link
Member

hsbt commented May 7, 2024

👍

@nobu We need to update resolv.gemspec with spec.extensions for mswin platform.

@hsbt hsbt merged commit b25c63c into master May 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Should win32/resolv be included here?
5 participants