tdiary 5.6.0 → 5.6.1

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.
@@ -92,11 +92,12 @@ def amazon_detail_html(item)
92
92
  image = amazon_image(item)
93
93
  @conf['amazon.imgsize'] = size_orig
94
94
 
95
+ size = %Q|height="#{h image[:height]}" width="#{h image[:width]}"| if image[:height]
95
96
  url = amazon_url(item)
96
97
  <<-HTML
97
98
  <a class="amazon-detail" href="#{url}"><span class="amazon-detail">
98
99
  <img class="amazon-detail left" src="#{h image[:src]}"
99
- height="#{h image[:height]}" width="#{h image[:width]}"
100
+ #{size}
100
101
  alt="">
101
102
  <span class="amazon-detail-desc">
102
103
  <span class="amazon-title">#{h title}</span><br>
@@ -125,7 +126,7 @@ def amazon_to_html(item, with_image = true, label = nil, pos = 'amazon')
125
126
  unless image[:src] then
126
127
  img = ''
127
128
  else
128
- size = %Q|height="#{h image[:height]}" width="#{h image[:width]}"|
129
+ size = %Q|height="#{h image[:height]}" width="#{h image[:width]}"| if image[:height]
129
130
  img = <<-HTML
130
131
  <img class="#{h pos}" src="#{h image[:src]}"
131
132
  #{size} alt="#{h alt}">
@@ -138,6 +139,18 @@ def amazon_to_html(item, with_image = true, label = nil, pos = 'amazon')
138
139
  %Q|<a href="#{h url}">#{img}#{h label}</a>|
139
140
  end
140
141
 
142
+ # Books Amazon doesn't answer for are asked of a plugin defining amazon_book_item(isbn), like amazon_rakuten.rb.
143
+ def amazon_book_json(item_id)
144
+ return nil unless defined?(amazon_book_item) && /\A(?:\d{9}[\dX]|97[89]\d{10})\z/i =~ item_id
145
+ item = amazon_book_item(item_id)
146
+ {'ItemsResult' => {'Items' => [item]}}.to_json if item
147
+ end
148
+
149
+ def amazon_dp_link(asin, label)
150
+ url = "https://www.amazon.co.jp/dp/#{asin}"
151
+ %Q|<a href="#{h url}">#{h(label || url)}</a>|
152
+ end
153
+
141
154
  def amazon_get(asin, with_image = true, label = nil, pos = 'amazon')
142
155
  asin = asin.to_s.strip.gsub(/-/, '')
143
156
  country, item_id = asin.scan(/\A(..):(.*)/).flatten
@@ -149,16 +162,31 @@ def amazon_get(asin, with_image = true, label = nil, pos = 'amazon')
149
162
  begin
150
163
  cache = "#{@cache_path}/amazon"
151
164
  Dir::mkdir( cache ) unless File::directory?( cache )
165
+ file = "#{cache}/#{country}#{item_id}.json"
152
166
  begin
153
- json = File::read("#{cache}/#{country}#{item_id}.json")
167
+ json = File::read(file)
168
+ raise Errno::ENOENT if json.empty?
154
169
  rescue Errno::ENOENT
155
170
  access_key = @conf['amazon.access_key']
156
171
  secret_key = @conf['amazon.secret_key']
157
- return asin unless access_key && secret_key
158
- partner_tag = @conf['amazon.aid']
159
- paapi = AWS::PAAPI.new(access_key, secret_key, partner_tag)
160
- json = paapi.get_items(item_id, country.to_sym)
161
- File::open("#{cache}/#{country}#{item_id}.json", 'wb'){|f| f.write(json)}
172
+ if access_key && secret_key && !File::exist?(file)
173
+ begin
174
+ partner_tag = @conf['amazon.aid']
175
+ paapi = AWS::PAAPI.new(access_key, secret_key, partner_tag)
176
+ json = paapi.get_items(item_id, country.to_sym)
177
+ rescue Net::HTTPExceptions => e
178
+ # An empty cache records a 403, which PA-API keeps answering, so the item isn't asked about again until the cache is cleared
179
+ File::write(file, '') if e.response.code == '403'
180
+ json = amazon_book_json(item_id)
181
+ raise unless json
182
+ end
183
+ else
184
+ json = amazon_book_json(item_id)
185
+ unless json
186
+ return File::exist?(file) ? amazon_dp_link(asin, label) : asin
187
+ end
188
+ end
189
+ File::open(file, 'wb'){|f| f.write(json)}
162
190
  end
163
191
  item = JSON.parse(json)["ItemsResult"]["Items"][0]
164
192
  if pos == 'detail' then
@@ -185,9 +213,7 @@ def amazon_get(asin, with_image = true, label = nil, pos = 'amazon')
185
213
  message = ''
186
214
  # Handle 429 "Too Many Requests" and 403 "Forbidden"
187
215
  if /^429|^403/ =~ e.message then
188
- url = "https://www.amazon.co.jp/dp/#{h asin}"
189
- label ||= url
190
- message << %Q|<a href="#{h url}">#{h label}</a>|
216
+ message << amazon_dp_link(asin, label)
191
217
  end
192
218
  if @mode == 'preview' then
193
219
  message << %Q|<span class="message">(#{h e.message})</span>|
@@ -0,0 +1,75 @@
1
+ #
2
+ # amazon_rakuten.rb: look books of amazon.rb up in Rakuten Books
3
+ #
4
+ # PA-API refuses Associates accounts that don't meet its eligibility
5
+ # requirements, which leaves amazon.rb without titles and images. With
6
+ # this plugin, books given by ISBN come from Rakuten Books Book Search
7
+ # API instead, and link to Rakuten Books as its terms require.
8
+ #
9
+ # options:
10
+ # @options['rakuten.app_id'] : application ID of Rakuten Web Service
11
+ # @options['rakuten.access_key'] : access key of the application
12
+ # @options['rakuten.affiliate_id'] : Rakuten Affiliate ID for the links (optional)
13
+ #
14
+ # Register the application as an API/backend service allowing the IP
15
+ # address of the server. Rakuten requires the credit this plugin puts in
16
+ # the footer.
17
+ #
18
+ # Copyright (c) 2026 Hiroshi SHIBATA <hsbt@ruby-lang.org>
19
+ # Distributed under the GPL2 or any later version.
20
+ #
21
+ require 'json'
22
+ require 'net/http'
23
+
24
+ def amazon_book_item(isbn)
25
+ app_id = @conf['rakuten.app_id']
26
+ access_key = @conf['rakuten.access_key']
27
+ return nil unless app_id && access_key
28
+
29
+ uri = URI('https://openapi.rakuten.co.jp/services/api/BooksBook/Search/20170404')
30
+ params = {applicationId: app_id, accessKey: access_key, isbn: isbn, outOfStockFlag: 1, formatVersion: 2}
31
+ params[:affiliateId] = @conf['rakuten.affiliate_id'] if @conf['rakuten.affiliate_id']
32
+ uri.query = URI.encode_www_form(params)
33
+ # Rakuten answers 429 to more than one request a second
34
+ sleep 1 if @amazon_rakuten_requested
35
+ @amazon_rakuten_requested = true
36
+ response = Net::HTTP.get_response(uri)
37
+ response.value
38
+ book = JSON.parse(response.body)['Items'][0]
39
+ return nil unless book
40
+
41
+ {
42
+ 'DetailPageURL' => book['affiliateUrl'].to_s.empty? ? book['itemUrl'] : book['affiliateUrl'],
43
+ 'ItemInfo' => {
44
+ 'Title' => {'DisplayValue' => book['title']},
45
+ 'ByLineInfo' => {
46
+ 'Contributors' => [{'Name' => book['author'][%r{[^/]*}]}],
47
+ 'Manufacturer' => {'DisplayValue' => book['publisherName']}
48
+ }
49
+ },
50
+ 'Images' => {
51
+ 'Primary' => {
52
+ 'Small' => {'URL' => book['smallImageUrl']},
53
+ 'Medium' => {'URL' => book['mediumImageUrl']},
54
+ 'Large' => {'URL' => book['largeImageUrl']}
55
+ }
56
+ },
57
+ 'OffersV2' => {
58
+ 'Listings' => [{'Price' => {'Money' => {'DisplayAmount' => "¥#{book['itemPrice'].to_s.gsub(/(\d)(?=(\d{3})+\z)/, '\1,')}"}}}]
59
+ }
60
+ }
61
+ rescue => e
62
+ @logger.error "amazon_rakuten.rb: #{e.message}"
63
+ nil
64
+ end
65
+
66
+ add_footer_proc do
67
+ %Q|<div class="footer"><a href="https://developers.rakuten.com/">Supported by Rakuten Developers</a></div>|
68
+ end
69
+
70
+ # Local Variables:
71
+ # mode: ruby
72
+ # indent-tabs-mode: t
73
+ # tab-width: 3
74
+ # ruby-indent-level: 3
75
+ # End:
data/misc/plugin/draft.rb CHANGED
@@ -1,11 +1,85 @@
1
1
  #
2
2
  # draft.rb: save draft data to Web Storage automatically
3
+ # and keep a copy of them on the server
4
+ #
5
+ # options:
6
+ # @options['draft.sync_interval'] : seconds between uploads to the server (default 300)
3
7
  #
4
8
  # Copyright (c) MATSUOKA Kohei <http://www.machu.jp/>
5
9
  # Distributed under the GPL2 or any later version.
6
10
  #
11
+ require 'json'
12
+
13
+ def draft_max_count
14
+ 10
15
+ end
16
+
17
+ def draft_restore( db )
18
+ %w(drafts deleted).map {|key| JSON.parse( db.get( key ) || '[]' ) }
19
+ end
20
+
21
+ def draft_id?( id )
22
+ id.kind_of?( String ) and /\A[0-9a-z]{1,32}\z/.match?( id )
23
+ end
24
+
25
+ def draft_valid?( item )
26
+ item.kind_of?( Hash ) and
27
+ draft_id?( item['id'] ) and
28
+ item['date'].kind_of?( Integer ) and
29
+ item['value'].kind_of?( String ) and !item['value'].empty?
30
+ end
31
+
32
+ def draft_sync( items )
33
+ transaction( 'draft' ) do |db|
34
+ drafts, deleted = draft_restore( db )
35
+ items.each do |item|
36
+ # a draft submitted as a diary must not come back from another browser
37
+ next if !draft_valid?( item ) or deleted.include?( item['id'] )
38
+ stored = drafts.find {|d| d['id'] == item['id'] }
39
+ if !stored
40
+ drafts << item.slice( 'id', 'date', 'value' )
41
+ elsif stored['date'] < item['date']
42
+ stored.update( item.slice( 'date', 'value' ) )
43
+ end
44
+ end
45
+ db.set( 'drafts', drafts.sort_by {|d| d['date'] }.last( draft_max_count ).to_json )
46
+ end
47
+ end
48
+
49
+ def draft_delete( id )
50
+ transaction( 'draft' ) do |db|
51
+ drafts, deleted = draft_restore( db )
52
+ db.set( 'drafts', drafts.reject {|d| d['id'] == id }.to_json )
53
+ db.set( 'deleted', (deleted - [id] + [id]).last( 100 ).to_json )
54
+ end
55
+ end
56
+
7
57
  if /\A(form|edit|preview|showcomment)\z/ === @mode then
8
58
  enable_js('draft.js')
59
+ server = nil
60
+ transaction( 'draft' ) do |db|
61
+ drafts, deleted = draft_restore( db )
62
+ server = { 'drafts' => drafts, 'deleted' => deleted, 'max' => draft_max_count }
63
+ end
64
+ add_js_setting( '$tDiary.plugin.draft' )
65
+ # keep the drafts from closing the script element
66
+ add_js_setting( '$tDiary.plugin.draft.server', server.to_json.gsub( '<', '\\u003c' ) )
67
+ add_js_setting( '$tDiary.plugin.draft.interval', (@conf['draft.sync_interval'] || 300).to_i )
68
+ end
69
+
70
+ if @mode == 'formplugin' and @cgi.params['plugin_draft_sync'][0] then
71
+ begin
72
+ items = JSON.parse( @cgi.params['plugin_draft_sync'][0] )
73
+ draft_sync( items ) if items.kind_of?( Array )
74
+ rescue JSON::ParserError
75
+ end
76
+ end
77
+
78
+ add_update_proc do
79
+ id = @cgi.params['plugin_draft_id'][0]
80
+ if /\A(append|replace)\z/ =~ @mode and draft_id?( id ) then
81
+ draft_delete( id )
82
+ end
9
83
  end
10
84
 
11
85
  add_edit_proc do
@@ -14,6 +88,7 @@ add_edit_proc do
14
88
  下書き:
15
89
  <select name="drafts"></select>
16
90
  <button type="button" id="draft_load">読み込み</button>
91
+ <input type="hidden" name="plugin_draft_id" value="">
17
92
  </div>
18
93
  EOS
19
94
  end
@@ -27,6 +27,10 @@
27
27
  # URL of the image directory. Default is './images/'.
28
28
  # @options['image.maxwidth']
29
29
  # Max display width of image without specified 'size' parameter.
30
+ # @options['image.resize']
31
+ # Images are shrunk on upload so that the longer side fits in this
32
+ # many pixels. Default is 1600. Exif, including the location, is
33
+ # dropped at the same time (except GIF).
30
34
  #
31
35
  def image_error_num( max ); "You can add images upto #{h max} par a day."; end
32
36
  def image_error_size( max ); "You can add images upto #{h max} bytes par an image."; end
@@ -38,6 +42,7 @@ def image_label_delete; 'Delete checked images'; end
38
42
  def image_label_only_jpeg; 'Only JPEG'; end
39
43
  def image_label_add_image; 'Upload the image'; end
40
44
  def image_label_drop_here; 'Drop files here'; end
45
+ def image_label_upload_failed; 'Could not upload the image'; end
41
46
 
42
47
  # Local Variables:
43
48
  # mode: ruby
@@ -16,6 +16,10 @@ def makerss_conf_html
16
16
  <option value="f"#{' selected' unless @conf['makerss.hidecontent']}>Include</option>
17
17
  <option value="t"#{' selected' if @conf['makerss.hidecontent']}>Hide</option></select>
18
18
  encoded contents of your diary in the feed.
19
+ <li><select name="makerss.hidesubtitle">
20
+ <option value="f"#{' selected' unless @conf['makerss.hidesubtitle']}>Include</option>
21
+ <option value="t"#{' selected' if @conf['makerss.hidesubtitle']}>Hide</option></select>
22
+ subtitles in the encoded contents.
19
23
  <li>Include summary of your contents<select name="makerss.shortdesc">
20
24
  <option value="f"#{' selected' unless @conf['makerss.shortdesc']}>as long as possible</option>
21
25
  <option value="t"#{' selected' if @conf['makerss.shortdesc']}>only some portion</option></select>
data/misc/plugin/image.rb CHANGED
@@ -36,6 +36,9 @@
36
36
  # @options['image.maxwidth']
37
37
  # sizeを指定しなかった場合に指定できる画像の最大表示幅。無指定時はnil
38
38
  # 表示のたびにファイルアクセスが入るので、重くなるかも?
39
+ # @options['image.resize']
40
+ # アップロード時に縮小する画像の長辺のピクセル数。無指定時は1600
41
+ # 縮小と同時に位置情報などのExifも取り除かれます(GIFを除く)。
39
42
  #
40
43
  # ライセンスについて:
41
44
  # Copyright (c) 2002,2003 Daisuke Kato <dai@kato-agri.com>
@@ -55,6 +58,7 @@ unless @resource_loaded then
55
58
  def image_label_only_jpeg; 'JPEGのみ'; end
56
59
  def image_label_add_image; 'この画像をアップロードする'; end
57
60
  def image_label_drop_here; 'ここにファイルをドロップ'; end
61
+ def image_label_upload_failed; '画像をアップロードできませんでした'; end
58
62
  end
59
63
 
60
64
  def image( id, alt = 'image', thumbnail = nil, size = nil, place = 'photo' )
@@ -142,17 +146,22 @@ def image_list( date )
142
146
  list
143
147
  end
144
148
 
145
- if /^(form|edit|formplugin|showcomment)$/ =~ @mode then
149
+ if /^(form|edit|formplugin|showcomment|preview)$/ =~ @mode then
146
150
  enable_js( 'image.js' )
147
151
  add_js_setting( '$tDiary.plugin.image' )
148
152
  add_js_setting( '$tDiary.plugin.image.alt', %Q|'#{image_label_description}'| )
149
153
  add_js_setting( '$tDiary.plugin.image.drop_here', %Q|'#{image_label_drop_here}'| )
154
+ add_js_setting( '$tDiary.plugin.image.failed', %Q|'#{image_label_upload_failed}'| )
155
+ add_js_setting( '$tDiary.plugin.image.date', %Q|'#{@date.strftime( '%Y%m%d' )}'| )
156
+ resize = @options['image.resize'].to_i
157
+ add_js_setting( '$tDiary.plugin.image.resize', resize > 0 ? resize : 1600 )
150
158
  end
151
159
 
152
160
  if /^formplugin$/ =~ @mode then
153
161
  maxnum = @options['image.maxnum'] || 1
154
162
  maxsize = @options['image.maxsize'] || 10000
155
163
 
164
+ @image_added = []
156
165
  begin
157
166
  date = @date.strftime( "%Y%m%d" )
158
167
  images = image_list( date )
@@ -167,7 +176,9 @@ if /^formplugin$/ =~ @mode then
167
176
  rescue NameError
168
177
  size = file.stat.size
169
178
  end
170
- output = "#{@image_dir}/#{date}_#{images.length}.#{extension}"
179
+ number = images.length + @image_added.length
180
+ output = "#{@image_dir}/#{date}_#{number}.#{extension}"
181
+ @image_added << number
171
182
  File::umask( 022 )
172
183
  File::open( output, "wb" ) do |f|
173
184
  f.print file.read
@@ -204,7 +215,7 @@ add_form_proc do |date|
204
215
  images.each_with_index do |img,id|
205
216
  next unless img
206
217
  _, img_w, img_h = image_info(File.join(@image_dir,img))
207
- r << %Q[<td><img id="image-index-#{id}" class="image-img form" src="#{h @image_url}/#{h img}" alt="#{id}" width="#{h( (img_w && img_w > 160) ? 160 : (img_w ? img_w : 160) )}"></td>]
218
+ r << %Q[<td><img id="image-index-#{id}" class="image-img form"#{' data-added="true"' if @image_added&.include?( id )} src="#{h @image_url}/#{h img}" alt="#{id}" width="#{h( (img_w && img_w > 160) ? 160 : (img_w ? img_w : 160) )}"></td>]
208
219
  img_info = ''
209
220
  if img_w && img_h
210
221
  img_info << %Q|<span class="image-width">#{img_w}</span> x <span class="image-height">#{img_h}</span>|
@@ -14,6 +14,9 @@ def makerss_conf_html
14
14
  <li>フィードに本文全体を<select name="makerss.hidecontent">
15
15
  <option value="f"#{' selected' unless @conf['makerss.hidecontent']}>含める</option>
16
16
  <option value="t"#{' selected' if @conf['makerss.hidecontent']}>含めない</option></select></li>
17
+ <li>フィードの本文にサブタイトルを<select name="makerss.hidesubtitle">
18
+ <option value="f"#{' selected' unless @conf['makerss.hidesubtitle']}>含める</option>
19
+ <option value="t"#{' selected' if @conf['makerss.hidesubtitle']}>含めない</option></select></li>
17
20
  <li>フィードに含める説明を<select name="makerss.shortdesc">
18
21
  <option value="f"#{' selected' unless @conf['makerss.shortdesc']}>できるだけ長くする</option>
19
22
  <option value="t"#{' selected' if @conf['makerss.shortdesc']}>最初だけにする</option></select></li>
@@ -4,6 +4,7 @@
4
4
  #
5
5
  # options configurable through settings:
6
6
  # @conf['makerss.hidecontent'] : hide full-text content. default: false
7
+ # @conf['makerss.hidesubtitle'] : hide subtitle in full-text content. default: false
7
8
  # @conf['makerss.shortdesc'] : shorter description. default: false
8
9
  # @conf['makerss.comment_link'] : insert tsukkomi's link. default: false
9
10
  #
@@ -395,7 +396,7 @@ def makerss_body( uri, rdfsec )
395
396
  rdf << %Q|<description>#{h makerss_desc_shorten( desc )}</description>\n|
396
397
  unless @conf['makerss.hidecontent']
397
398
  text = ''
398
- text << '<h3>' + apply_plugin( subtitle.sub( /^(\[([^\]]+)\])+ */, '' ) ).strip + '</h3>' if subtitle and not subtitle.empty?
399
+ text << '<h3>' + apply_plugin( subtitle.sub( /^(\[([^\]]+)\])+ */, '' ) ).strip + '</h3>' if subtitle and not subtitle.empty? and not @conf['makerss.hidesubtitle']
399
400
  text << body_enter
400
401
  text << body
401
402
  text << body_leave
@@ -451,7 +452,7 @@ add_header_proc {
451
452
 
452
453
  add_conf_proc( 'makerss', @makerss_conf_label, 'update' ) do
453
454
  if @mode == 'saveconf' then
454
- %w( hidecontent shortdesc comment_link no_comments).each do |s|
455
+ %w( hidecontent hidesubtitle shortdesc comment_link no_comments).each do |s|
455
456
  item = "makerss.#{s}"
456
457
  @conf[item] = ( 't' == @cgi.params[item][0] )
457
458
  end
@@ -15,6 +15,11 @@ Copyright 2011 (C) TADA Tadashi <t@tdtds.jp>
15
15
  padding: 0px;
16
16
  }
17
17
 
18
+ html {
19
+ -webkit-text-size-adjust: 100%;
20
+ text-size-adjust: 100%;
21
+ }
22
+
18
23
  body {
19
24
  text-align: center;
20
25
  width: 100%;
@@ -107,6 +112,10 @@ div.refererlist {
107
112
  margin: 16px;
108
113
  }
109
114
 
115
+ div.body {
116
+ overflow-wrap: anywhere;
117
+ }
118
+
110
119
  div.section {
111
120
  margin-top: 30px;
112
121
  }
@@ -147,6 +156,7 @@ div.section pre {
147
156
  padding: 8px;
148
157
  background-color: #eee;
149
158
  border-radius: 8px;
159
+ overflow-x: auto;
150
160
  }
151
161
 
152
162
  div.section blockquote {
@@ -210,6 +220,8 @@ div.section img {
210
220
  border-style: solid;
211
221
  border-color: #888;
212
222
  border-width: 1px;
223
+ max-width: 100%;
224
+ height: auto;
213
225
  }
214
226
 
215
227
  div.section img.photo {
@@ -554,7 +566,7 @@ div.search-navi {
554
566
  div.category {
555
567
  text-align: left;
556
568
  margin: 0px auto;
557
- width: 900px;
569
+ max-width: 900px;
558
570
  }
559
571
 
560
572
  div.category ul {
@@ -670,22 +682,37 @@ div.sidebar div.calendar {
670
682
  }
671
683
 
672
684
 
685
+ /*
686
+ stack the sidebar under the main column below the width of div.whole-content
687
+ */
688
+ @media screen and (max-width: 899px) {
689
+ div.main {
690
+ float: none;
691
+ max-width: none;
692
+ }
693
+ }
694
+
673
695
  /*
674
696
  design for smart phones
675
697
  */
676
- @media screen and (max-device-width: 480px) {
698
+ @media screen and (max-width: 480px) {
677
699
  body {
678
700
  box-sizing: border-box;
679
701
  }
680
702
 
681
703
  div.adminmenu {
682
- font-size: x-small;
704
+ font-size: small;
683
705
  margin: 0px;
684
706
  padding-left: 0px;
685
707
  padding-right: 0px;
686
708
  width: 100%;
687
709
  }
688
710
 
711
+ div.adminmenu a {
712
+ display: inline-block;
713
+ padding: 0.5em 0.75em;
714
+ }
715
+
689
716
  h1 {
690
717
  padding-top: 80px;
691
718
  height: 50px;
@@ -742,12 +769,10 @@ div.sidebar div.calendar {
742
769
  width: 100%;
743
770
  }
744
771
 
772
+ input,
773
+ select,
745
774
  textarea {
746
- font-size: 110%;
747
- }
748
-
749
- div.sidebar {
750
- display: none;
775
+ font-size: 16px;
751
776
  }
752
777
  }
753
778
 
@@ -1,18 +1,18 @@
1
1
  current directory: /home/runner/work/tdiary-core/tdiary-core/vendor/bundle/ruby/3.4.0/gems/cgi-0.5.2/ext/cgi/escape
2
- /opt/hostedtoolcache/Ruby/3.4.10/x64/bin/ruby extconf.rb
2
+ /opt/hostedtoolcache/Ruby/3.4.11/x64/bin/ruby extconf.rb
3
3
  creating Makefile
4
4
 
5
5
  current directory: /home/runner/work/tdiary-core/tdiary-core/vendor/bundle/ruby/3.4.0/gems/cgi-0.5.2/ext/cgi/escape
6
- make DESTDIR\= sitearchdir\=./.gem.20260904-2409-m2rodt sitelibdir\=./.gem.20260904-2409-m2rodt clean
6
+ make DESTDIR\= sitearchdir\=./.gem.20261009-2497-urk1av sitelibdir\=./.gem.20261009-2497-urk1av clean
7
7
 
8
8
  current directory: /home/runner/work/tdiary-core/tdiary-core/vendor/bundle/ruby/3.4.0/gems/cgi-0.5.2/ext/cgi/escape
9
- make DESTDIR\= sitearchdir\=./.gem.20260904-2409-m2rodt sitelibdir\=./.gem.20260904-2409-m2rodt
9
+ make DESTDIR\= sitearchdir\=./.gem.20261009-2497-urk1av sitelibdir\=./.gem.20261009-2497-urk1av
10
10
  compiling escape.c
11
11
  linking shared-object cgi/escape.so
12
12
 
13
13
  current directory: /home/runner/work/tdiary-core/tdiary-core/vendor/bundle/ruby/3.4.0/gems/cgi-0.5.2/ext/cgi/escape
14
- make DESTDIR\= sitearchdir\=./.gem.20260904-2409-m2rodt sitelibdir\=./.gem.20260904-2409-m2rodt install
15
- /usr/bin/install -c -m 0755 escape.so ./.gem.20260904-2409-m2rodt/cgi
14
+ make DESTDIR\= sitearchdir\=./.gem.20261009-2497-urk1av sitelibdir\=./.gem.20261009-2497-urk1av install
15
+ /usr/bin/install -c -m 0755 escape.so ./.gem.20261009-2497-urk1av/cgi
16
16
 
17
17
  current directory: /home/runner/work/tdiary-core/tdiary-core/vendor/bundle/ruby/3.4.0/gems/cgi-0.5.2/ext/cgi/escape
18
- make DESTDIR\= sitearchdir\=./.gem.20260904-2409-m2rodt sitelibdir\=./.gem.20260904-2409-m2rodt clean
18
+ make DESTDIR\= sitearchdir\=./.gem.20261009-2497-urk1av sitelibdir\=./.gem.20261009-2497-urk1av clean
@@ -1,15 +1,15 @@
1
1
  current directory: /home/runner/work/tdiary-core/tdiary-core/vendor/bundle/ruby/3.4.0/gems/date-3.5.1/ext/date
2
- /opt/hostedtoolcache/Ruby/3.4.10/x64/bin/ruby extconf.rb
2
+ /opt/hostedtoolcache/Ruby/3.4.11/x64/bin/ruby extconf.rb
3
3
  checking for rb_category_warn()... yes
4
4
  checking for timezone in time.h with -Werror... yes
5
5
  checking for altzone in time.h with -Werror... no
6
6
  creating Makefile
7
7
 
8
8
  current directory: /home/runner/work/tdiary-core/tdiary-core/vendor/bundle/ruby/3.4.0/gems/date-3.5.1/ext/date
9
- make DESTDIR\= sitearchdir\=./.gem.20260904-2409-mbib62 sitelibdir\=./.gem.20260904-2409-mbib62 clean
9
+ make DESTDIR\= sitearchdir\=./.gem.20261009-2497-urkdo3 sitelibdir\=./.gem.20261009-2497-urkdo3 clean
10
10
 
11
11
  current directory: /home/runner/work/tdiary-core/tdiary-core/vendor/bundle/ruby/3.4.0/gems/date-3.5.1/ext/date
12
- make DESTDIR\= sitearchdir\=./.gem.20260904-2409-mbib62 sitelibdir\=./.gem.20260904-2409-mbib62
12
+ make DESTDIR\= sitearchdir\=./.gem.20261009-2497-urkdo3 sitelibdir\=./.gem.20261009-2497-urkdo3
13
13
  compiling date_core.c
14
14
  compiling date_parse.c
15
15
  compiling date_strftime.c
@@ -17,8 +17,8 @@ compiling date_strptime.c
17
17
  linking shared-object date_core.so
18
18
 
19
19
  current directory: /home/runner/work/tdiary-core/tdiary-core/vendor/bundle/ruby/3.4.0/gems/date-3.5.1/ext/date
20
- make DESTDIR\= sitearchdir\=./.gem.20260904-2409-mbib62 sitelibdir\=./.gem.20260904-2409-mbib62 install
21
- /usr/bin/install -c -m 0755 date_core.so ./.gem.20260904-2409-mbib62
20
+ make DESTDIR\= sitearchdir\=./.gem.20261009-2497-urkdo3 sitelibdir\=./.gem.20261009-2497-urkdo3 install
21
+ /usr/bin/install -c -m 0755 date_core.so ./.gem.20261009-2497-urkdo3
22
22
 
23
23
  current directory: /home/runner/work/tdiary-core/tdiary-core/vendor/bundle/ruby/3.4.0/gems/date-3.5.1/ext/date
24
- make DESTDIR\= sitearchdir\=./.gem.20260904-2409-mbib62 sitelibdir\=./.gem.20260904-2409-mbib62 clean
24
+ make DESTDIR\= sitearchdir\=./.gem.20261009-2497-urkdo3 sitelibdir\=./.gem.20261009-2497-urkdo3 clean
@@ -1,6 +1,6 @@
1
1
  have_func: checking for rb_category_warn()... -------------------- yes
2
2
 
3
- LD_LIBRARY_PATH=.:/opt/hostedtoolcache/Ruby/3.4.10/x64/lib ASAN_OPTIONS=detect_leaks=0 "gcc -o conftest -I/opt/hostedtoolcache/Ruby/3.4.10/x64/include/ruby-3.4.0/x86_64-linux -I/opt/hostedtoolcache/Ruby/3.4.10/x64/include/ruby-3.4.0/ruby/backward -I/opt/hostedtoolcache/Ruby/3.4.10/x64/include/ruby-3.4.0 -I. -DENABLE_PATH_CHECK=0 -fstack-protector-strong -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdiv-by-zero -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wwrite-strings -Wold-style-definition -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wmisleading-indentation -Wundef -fPIC conftest.c -L. -L/opt/hostedtoolcache/Ruby/3.4.10/x64/lib -Wl,-rpath,/opt/hostedtoolcache/Ruby/3.4.10/x64/lib -L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,--no-as-needed -Wl,-rpath,/opt/hostedtoolcache/Ruby/3.4.10/x64/lib -L/opt/hostedtoolcache/Ruby/3.4.10/x64/lib -lruby -lm -lpthread -lc"
3
+ LD_LIBRARY_PATH=.:/opt/hostedtoolcache/Ruby/3.4.11/x64/lib ASAN_OPTIONS=detect_leaks=0 "gcc -o conftest -I/opt/hostedtoolcache/Ruby/3.4.11/x64/include/ruby-3.4.0/x86_64-linux -I/opt/hostedtoolcache/Ruby/3.4.11/x64/include/ruby-3.4.0/ruby/backward -I/opt/hostedtoolcache/Ruby/3.4.11/x64/include/ruby-3.4.0 -I. -DENABLE_PATH_CHECK=0 -fstack-protector-strong -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdiv-by-zero -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wwrite-strings -Wold-style-definition -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wmisleading-indentation -Wundef -fPIC conftest.c -L. -L/opt/hostedtoolcache/Ruby/3.4.11/x64/lib -Wl,-rpath,/opt/hostedtoolcache/Ruby/3.4.11/x64/lib -L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,--no-as-needed -Wl,-rpath,/opt/hostedtoolcache/Ruby/3.4.11/x64/lib -L/opt/hostedtoolcache/Ruby/3.4.11/x64/lib -lruby -lm -lpthread -lc"
4
4
  checked program was:
5
5
  /* begin */
6
6
  1: #include "ruby.h"
@@ -11,7 +11,7 @@ checked program was:
11
11
  6: }
12
12
  /* end */
13
13
 
14
- LD_LIBRARY_PATH=.:/opt/hostedtoolcache/Ruby/3.4.10/x64/lib ASAN_OPTIONS=detect_leaks=0 "gcc -o conftest -I/opt/hostedtoolcache/Ruby/3.4.10/x64/include/ruby-3.4.0/x86_64-linux -I/opt/hostedtoolcache/Ruby/3.4.10/x64/include/ruby-3.4.0/ruby/backward -I/opt/hostedtoolcache/Ruby/3.4.10/x64/include/ruby-3.4.0 -I. -DENABLE_PATH_CHECK=0 -fstack-protector-strong -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdiv-by-zero -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wwrite-strings -Wold-style-definition -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wmisleading-indentation -Wundef -fPIC conftest.c -L. -L/opt/hostedtoolcache/Ruby/3.4.10/x64/lib -Wl,-rpath,/opt/hostedtoolcache/Ruby/3.4.10/x64/lib -L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,--no-as-needed -Wl,-rpath,/opt/hostedtoolcache/Ruby/3.4.10/x64/lib -L/opt/hostedtoolcache/Ruby/3.4.10/x64/lib -lruby -lm -lpthread -lc"
14
+ LD_LIBRARY_PATH=.:/opt/hostedtoolcache/Ruby/3.4.11/x64/lib ASAN_OPTIONS=detect_leaks=0 "gcc -o conftest -I/opt/hostedtoolcache/Ruby/3.4.11/x64/include/ruby-3.4.0/x86_64-linux -I/opt/hostedtoolcache/Ruby/3.4.11/x64/include/ruby-3.4.0/ruby/backward -I/opt/hostedtoolcache/Ruby/3.4.11/x64/include/ruby-3.4.0 -I. -DENABLE_PATH_CHECK=0 -fstack-protector-strong -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdiv-by-zero -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wwrite-strings -Wold-style-definition -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wmisleading-indentation -Wundef -fPIC conftest.c -L. -L/opt/hostedtoolcache/Ruby/3.4.11/x64/lib -Wl,-rpath,/opt/hostedtoolcache/Ruby/3.4.11/x64/lib -L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,--no-as-needed -Wl,-rpath,/opt/hostedtoolcache/Ruby/3.4.11/x64/lib -L/opt/hostedtoolcache/Ruby/3.4.11/x64/lib -lruby -lm -lpthread -lc"
15
15
  checked program was:
16
16
  /* begin */
17
17
  1: #include "ruby.h"
@@ -34,7 +34,7 @@ checked program was:
34
34
 
35
35
  have_var: checking for timezone in time.h with -Werror... -------------------- yes
36
36
 
37
- LD_LIBRARY_PATH=.:/opt/hostedtoolcache/Ruby/3.4.10/x64/lib ASAN_OPTIONS=detect_leaks=0 "gcc -I/opt/hostedtoolcache/Ruby/3.4.10/x64/include/ruby-3.4.0/x86_64-linux -I/opt/hostedtoolcache/Ruby/3.4.10/x64/include/ruby-3.4.0/ruby/backward -I/opt/hostedtoolcache/Ruby/3.4.10/x64/include/ruby-3.4.0 -I. -DENABLE_PATH_CHECK=0 -fstack-protector-strong -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdiv-by-zero -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wwrite-strings -Wold-style-definition -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wmisleading-indentation -Wundef -fPIC -Werror -c conftest.c"
37
+ LD_LIBRARY_PATH=.:/opt/hostedtoolcache/Ruby/3.4.11/x64/lib ASAN_OPTIONS=detect_leaks=0 "gcc -I/opt/hostedtoolcache/Ruby/3.4.11/x64/include/ruby-3.4.0/x86_64-linux -I/opt/hostedtoolcache/Ruby/3.4.11/x64/include/ruby-3.4.0/ruby/backward -I/opt/hostedtoolcache/Ruby/3.4.11/x64/include/ruby-3.4.0 -I. -DENABLE_PATH_CHECK=0 -fstack-protector-strong -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdiv-by-zero -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wwrite-strings -Wold-style-definition -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wmisleading-indentation -Wundef -fPIC -Werror -c conftest.c"
38
38
  checked program was:
39
39
  /* begin */
40
40
  1: #include "ruby.h"
@@ -59,7 +59,7 @@ checked program was:
59
59
 
60
60
  have_var: checking for altzone in time.h with -Werror... -------------------- no
61
61
 
62
- LD_LIBRARY_PATH=.:/opt/hostedtoolcache/Ruby/3.4.10/x64/lib ASAN_OPTIONS=detect_leaks=0 "gcc -I/opt/hostedtoolcache/Ruby/3.4.10/x64/include/ruby-3.4.0/x86_64-linux -I/opt/hostedtoolcache/Ruby/3.4.10/x64/include/ruby-3.4.0/ruby/backward -I/opt/hostedtoolcache/Ruby/3.4.10/x64/include/ruby-3.4.0 -I. -DENABLE_PATH_CHECK=0 -fstack-protector-strong -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdiv-by-zero -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wwrite-strings -Wold-style-definition -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wmisleading-indentation -Wundef -fPIC -Werror -c conftest.c"
62
+ LD_LIBRARY_PATH=.:/opt/hostedtoolcache/Ruby/3.4.11/x64/lib ASAN_OPTIONS=detect_leaks=0 "gcc -I/opt/hostedtoolcache/Ruby/3.4.11/x64/include/ruby-3.4.0/x86_64-linux -I/opt/hostedtoolcache/Ruby/3.4.11/x64/include/ruby-3.4.0/ruby/backward -I/opt/hostedtoolcache/Ruby/3.4.11/x64/include/ruby-3.4.0 -I. -DENABLE_PATH_CHECK=0 -fstack-protector-strong -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdiv-by-zero -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wwrite-strings -Wold-style-definition -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wmisleading-indentation -Wundef -fPIC -Werror -c conftest.c"
63
63
  conftest.c: In function ‘t’:
64
64
  conftest.c:16:55: error: ‘altzone’ undeclared (first use in this function)
65
65
  16 | int t(void) { const volatile void *volatile p; p = &(&altzone)[0]; return !p; }
@@ -13,12 +13,12 @@ NULLCMD = :
13
13
  #### Start of system configuration section. ####
14
14
 
15
15
  srcdir = .
16
- topdir = /opt/hostedtoolcache/Ruby/3.4.10/x64/include/ruby-3.4.0
16
+ topdir = /opt/hostedtoolcache/Ruby/3.4.11/x64/include/ruby-3.4.0
17
17
  hdrdir = $(topdir)
18
- arch_hdrdir = /opt/hostedtoolcache/Ruby/3.4.10/x64/include/ruby-3.4.0/x86_64-linux
18
+ arch_hdrdir = /opt/hostedtoolcache/Ruby/3.4.11/x64/include/ruby-3.4.0/x86_64-linux
19
19
  PATH_SEPARATOR = :
20
20
  VPATH = $(srcdir):$(arch_hdrdir)/ruby:$(hdrdir)/ruby
21
- prefix = $(DESTDIR)/opt/hostedtoolcache/Ruby/3.4.10/x64
21
+ prefix = $(DESTDIR)/opt/hostedtoolcache/Ruby/3.4.11/x64
22
22
  rubysitearchprefix = $(rubylibprefix)/$(sitearch)
23
23
  rubyarchprefix = $(rubylibprefix)/$(arch)
24
24
  rubylibprefix = $(libdir)/$(RUBY_BASE_NAME)
@@ -13,12 +13,12 @@ NULLCMD = :
13
13
  #### Start of system configuration section. ####
14
14
 
15
15
  srcdir = .
16
- topdir = /opt/hostedtoolcache/Ruby/3.4.10/x64/include/ruby-3.4.0
16
+ topdir = /opt/hostedtoolcache/Ruby/3.4.11/x64/include/ruby-3.4.0
17
17
  hdrdir = $(topdir)
18
- arch_hdrdir = /opt/hostedtoolcache/Ruby/3.4.10/x64/include/ruby-3.4.0/x86_64-linux
18
+ arch_hdrdir = /opt/hostedtoolcache/Ruby/3.4.11/x64/include/ruby-3.4.0/x86_64-linux
19
19
  PATH_SEPARATOR = :
20
20
  VPATH = $(srcdir):$(arch_hdrdir)/ruby:$(hdrdir)/ruby
21
- prefix = $(DESTDIR)/opt/hostedtoolcache/Ruby/3.4.10/x64
21
+ prefix = $(DESTDIR)/opt/hostedtoolcache/Ruby/3.4.11/x64
22
22
  rubysitearchprefix = $(rubylibprefix)/$(sitearch)
23
23
  rubyarchprefix = $(rubylibprefix)/$(arch)
24
24
  rubylibprefix = $(libdir)/$(RUBY_BASE_NAME)