Borrow some code from fonts-rpm-macros, to drop a dependant code to generate srpm
This commit is contained in:
		
							parent
							
								
									d8db67095e
								
							
						
					
					
						commit
						7aea53ad43
					
				| @ -514,8 +514,106 @@ local function genfcconf(table) | ||||
|     _fcconfbuild = (_fcconfbuild ~= '' and _fcconfbuild .. "\n" or '') .. "cat<<_EOL_>" .. table.fcconf .. "\\\n" .. xml .. "\n_EOL_\\" | ||||
| end | ||||
| 
 | ||||
| -- Borrowed from fonts-rpm-macros | ||||
| -- koji doesn't sasisfy BR during generating srpm yet. | ||||
| -- We can't add a dependant code to fonts-rpm-macros at this stage. | ||||
| 
 | ||||
| -- https://github.com/rpm-software-management/rpm/issues/566 | ||||
| -- Reformat a text intended to be used used in a package description, removing | ||||
| -- rpm macro generation artefacts. | ||||
| -- – remove leading and ending empty lines | ||||
| -- – trim intermediary empty lines to a single line | ||||
| -- – fold on spaces | ||||
| -- Should really be a %%{wordwrap:…} verb | ||||
| local function wordwrap(text) | ||||
|   text = rpm.expand(text .. "\n") | ||||
|   text = string.gsub(text, "\t",              "  ") | ||||
|   text = string.gsub(text, "\r",              "\n") | ||||
|   text = string.gsub(text, " +\n",            "\n") | ||||
|   text = string.gsub(text, "\n+\n",           "\n\n") | ||||
|   text = string.gsub(text, "^\n",             "") | ||||
|   text = string.gsub(text, "\n( *)[-*—][  ]+", "\n%1– ") | ||||
|   output = "" | ||||
|   for line in string.gmatch(text, "[^\n]*\n") do | ||||
|     local pos = 0 | ||||
|     local advance = "" | ||||
|     for word in string.gmatch(line, "%s*[^%s]*\n?") do | ||||
|       local wl, bad = utf8.len(word) | ||||
|       if not wl then | ||||
|         print("%{warn:Invalid UTF-8 sequence detected in:}" .. | ||||
|               "%{warn:" .. word .. "}" .. | ||||
|               "%{warn:It may produce unexpected results.}") | ||||
|         wl = bad | ||||
|       end | ||||
|       if (pos == 0) then | ||||
|         advance, n = string.gsub(word, "^(%s*– ).*", "%1") | ||||
|         if (n == 0) then | ||||
|           advance = string.gsub(word, "^(%s*).*", "%1") | ||||
|         end | ||||
|         advance = string.gsub(advance, "– ", "  ") | ||||
|         pos = pos + wl | ||||
|       elseif  (pos + wl  < 81) or | ||||
|              ((pos + wl == 81) and string.match(word, "\n$")) then | ||||
|         pos = pos + wl | ||||
|       else | ||||
|         word = advance .. string.gsub(word, "^%s*", "") | ||||
|         output = output .. "\n" | ||||
|         pos = utf8.len(word) | ||||
|       end | ||||
|       output = output .. word | ||||
|       if pos > 80 then | ||||
|         pos = 0 | ||||
|         if not string.match(word, "\n$") then | ||||
|           output = output .. "\n" | ||||
|         end | ||||
|       end | ||||
|     end | ||||
|   end | ||||
|   output = string.gsub(output, "\n*$", "\n") | ||||
|   return output | ||||
| end | ||||
| 
 | ||||
| -- Reformat some text into something that can be included in an AppStream | ||||
| -- XML description | ||||
| local function txt2xml(text) | ||||
|   local        text = wordwrap(text) | ||||
|   local      output = "" | ||||
|   local     oldtag  = nil | ||||
|   local oldadvance  = nil | ||||
|   local      newtag = nil | ||||
|   text = string.gsub(text, "^\n*", "") | ||||
|   text = string.gsub(text, "\n*$", "\n") | ||||
|   for line in string.gmatch(text, "[^\n]*\n") do | ||||
|     local change = true | ||||
|     local advance, n = string.gsub(line, "^(%s*– ).*", "%1") | ||||
|     if (n == 1) then | ||||
|       newtag = "li" | ||||
|     else | ||||
|       advance = string.gsub(line, "^(%s*).*", "%1") | ||||
|       if (line == "\n") then | ||||
|         newtag = nil | ||||
|       elseif (advance ~= oldadvance) then | ||||
|         newtag = "p" | ||||
|       else | ||||
|         change = false | ||||
|       end | ||||
|     end | ||||
|     local result = "" | ||||
|     if change then | ||||
|       result     = string.gsub(line, "^" .. advance, switchtag(oldtag,newtag)) | ||||
|       oldtag     = newtag | ||||
|       oldadvance = string.gsub(advance, "– ", "  ") | ||||
|     else | ||||
|       result = string.gsub(line, "^" .. advance, " ") | ||||
|     end | ||||
|     result = string.gsub(result, "\n$", "") | ||||
|     output = output .. result | ||||
|   end | ||||
|   output = output .. closetag(oldtag, nil) | ||||
|   return output | ||||
| end | ||||
| 
 | ||||
| local function genmetainfo(table) | ||||
|     local fonts = require "fedora.rpm.fonts" | ||||
|     local xmlfontname = '$(cmd=$(for f in %{buildroot}' .. table.filename .. '; do fc-scan "$f" -f "echo \\\\\"    <font>%{fullname[0]}</font>\\\\\";"; done); if test x"$cmd" != x; then echo "echo \\\\\"  <provides>\\\\\"; $cmd echo \\\\\"  </provides>\\\\\""|sh; fi|grep -v "font></font")' | ||||
|     local xmlfontlang = '$(cmd=$(for f in %{buildroot}' .. table.filename .. '; do fc-scan "$f" -f "%{[]lang{echo \\\\\"    <lang>%{lang}</lang>\\\\\";}}"; done); if test x"$cmd" != x; then echo "echo \\\\\"  <languages>\\\\\"; ($cmd)|sort -u; echo \\\\\"  </languages>\\\\\""|sh; fi)' | ||||
|     local xml = [[ | ||||
| @ -528,7 +626,7 @@ local function genmetainfo(table) | ||||
|   <name>Noto ]] .. table.family .. [[</name>\ | ||||
|   <summary><![CDATA[Noto ]] .. table.summary .. [[\]\]></summary>\ | ||||
|   <description>\ | ||||
| ]] .. fonts.txt2xml(table.description) .. "\\\n" .. [[ | ||||
| ]] .. txt2xml(table.description) .. "\\\n" .. [[ | ||||
|   </description>\ | ||||
|   <updatecontact>]] .. rpm.expand("%{fontcontact}") .. [[</updatecontact>\ | ||||
|   <url type=\"homepage\">]] .. rpm.expand("%{url}") .. [[</url>\ | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user