@@ -138,6 +138,7 @@ const run = async () => {
138138"use strict" ;
139139__nccwpck_require__ . r ( __webpack_exports__ ) ;
140140/* harmony export */ __nccwpck_require__ . d ( __webpack_exports__ , {
141+ /* harmony export */ "is2022orLater" : ( ) => ( /* binding */ is2022orLater ) ,
141142/* harmony export */ "version" : ( ) => ( /* binding */ version ) ,
142143/* harmony export */ "download" : ( ) => ( /* binding */ download ) ,
143144/* harmony export */ "ruby" : ( ) => ( /* binding */ ruby ) ,
@@ -166,6 +167,8 @@ const colors = {
166167}
167168const rst = '\x1b[0m'
168169
170+ const is2022orLater = process . env . ImageOS >= 'win22'
171+
169172const version = JSON . parse ( fs . readFileSync ( __nccwpck_require__ . ab + "package.json" , 'utf8' ) ) . version
170173
171174const download = async ( uri , dest , log = true ) => {
@@ -292,7 +295,7 @@ const fs = __nccwpck_require__(747)
292295const core = __nccwpck_require__ ( 948 )
293296
294297// , updateKeyRing
295- const { download, execSync, execSyncQ, grpSt, grpEnd, getInput, win2nix } = __nccwpck_require__ ( 734 )
298+ const { download, execSync, execSyncQ, grpSt, grpEnd, getInput, is2022orLater , win2nix } = __nccwpck_require__ ( 734 )
296299
297300// group start time
298301let msSt
@@ -376,17 +379,20 @@ const openssl = async () => {
376379 // await download(`${uri}.sig`, `${fn}.sig`)
377380
378381 await download ( uri , fn )
382+ checkSpace
379383 execSync ( `pacman.exe -Udd --noconfirm --noprogressbar ${ fn } ` )
380384 grpEnd ( msSt )
381385 mingwPkgs = mingwPkgs . replace ( / \b o p e n s s l \b / gi, '' ) . trim ( )
382- }
386+ } else if ( is2022orLater && ruby . abiVers >= '2.5.0 ' )
387+ mingwPkgs = mingwPkgs . replace ( / \b o p e n s s l \b / gi, '' ) . trim ( )
383388}
384389
385390// Updates MSYS2 MinGW gcc items
386391const updateGCC = async ( ) => {
387392 // TODO: code for installing gcc 9.2.0-1 or 9.1.0-3
388393
389394 msSt = grpSt ( `Upgrading gcc for Ruby ${ ruby . vers } ` )
395+ checkSpace
390396 let gccPkgs = [ '' , 'binutils' , 'crt' , 'dlfcn' , 'headers' , 'libiconv' , 'isl' , 'make' , 'mpc' , 'mpfr' , 'pkgconf' , 'windows-default-manifest' , 'libwinpthread' , 'libyaml' , 'winpthreads' , 'zlib' , 'gcc-libs' , 'gcc' ]
391397 execSync ( `pacman.exe ${ msys2Sync } --nodeps ${ args } ${ gccPkgs . join ( pre ) } ` )
392398 grpEnd ( msSt )
@@ -405,23 +411,32 @@ const installMSYS2 = async () => {
405411 core . info ( 'Installed MSYS2 for Ruby 2.4 and later' )
406412}
407413
414+ let checkSpaceIsDone = false
415+
416+ // disable slow disk space check
417+ const checkSpace = ( ) => {
418+ if ( ! checkSpaceIsDone ) {
419+ execSync ( "sed -i 's/^CheckSpace/#CheckSpace/g' C:/msys64/etc/pacman.conf" )
420+ checkSpaceIsDone = true
421+ }
422+ }
423+
408424// install MinGW packages from mingw input
409425const runMingw = async ( ) => {
410426
411- if ( ruby . abiVers >= '2.4' ) {
412- // disable slow disk space check
413- execSync ( "sed -i 's/^CheckSpace/#CheckSpace/g' C:/msys64/etc/pacman.conf" )
427+ if ( ruby . abiVers >= '2.4' && ! is2022orLater ) {
414428 msSt = grpSt ( `pacman.exe -Sy pacman-mirrors` )
429+ checkSpace
415430 execSync ( `pacman.exe -Sy ${ args } pacman-mirrors` )
416431 grpEnd ( msSt )
417432 }
418433
419434 if ( mingwPkgs . includes ( '_upgrade_' ) ) {
420- if ( ruby . abiVers >= '2.4' ) {
435+ if ( ruby . abiVers >= '2.4' && ! is2022orLater ) {
421436 await updateGCC ( )
422437 msys2Sync = '-S'
423438 }
424- mingwPkgs = mingwPkgs . replace ( / \b _ u p g r a d e _ \b / g , '' ) . trim ( )
439+ mingwPkgs = mingwPkgs . replace ( / \b _ u p g r a d e _ \b / gi , '' ) . trim ( )
425440 }
426441
427442 /* _msvc_ can be used when building mswin Rubies
@@ -432,46 +447,57 @@ const runMingw = async () => {
432447 return
433448 }
434449
435- if ( mingwPkgs !== '' ) {
436- if ( ruby . abiVers >= '2.4.0' ) {
450+ if ( ruby . abiVers >= '2.4.0' ) {
451+ let list = ''
452+ if ( mingwPkgs !== '' ) {
453+ if ( is2022orLater ) {
454+ const preInstalled2022 = / \b ( d l f c n | g m p | l i b f f i | l i b y a m l | r a g e l | r e a d l i n e ) \b / gi
455+ mingwPkgs = mingwPkgs . replace ( preInstalled2022 , '' ) . trim ( )
456+ }
437457 if ( mingwPkgs . includes ( 'openssl' ) ) {
438458 await openssl ( )
439459 }
440460 if ( mingwPkgs !== '' ) {
441461 let pkgs = mingwPkgs . split ( / \s + / )
442462 pkgs . unshift ( '' )
443- let list = pkgs . join ( pre )
444- if ( msys2Pkgs !== '' ) {
445- list += ' ' + msys2Pkgs
446- msys2Pkgs = ''
447- }
448- msSt = grpSt ( `pacman.exe -S ${ list } ` )
449- execSync ( `pacman.exe ${ msys2Sync } ${ args } ${ list } ` )
450- grpEnd ( msSt )
463+ list = pkgs . join ( pre )
451464 }
452- } else {
453- // install old DevKit packages
454- let toInstall = [ ]
455- let pkgs = mingwPkgs . split ( / \s + / )
456- pkgs . forEach ( ( pkg ) => {
457- if ( old_pkgs [ pkg ] ) {
458- toInstall . push ( { pkg : pkg , uri : old_pkgs [ pkg ] } )
459- } else {
460- core . warning ( `Package '${ pkg } ' is not available` )
461- }
462- } )
463- if ( toInstall . length !== 0 ) {
464- const list = toInstall . map ( item => item . pkg ) . join ( ' ' )
465- msSt = grpSt ( `installing MSYS packages: ${ list } ` )
466- for ( const item of toInstall ) {
467- let fn = `${ dlPath } \\${ item . pkg } .tar.lzma`
468- await download ( item . uri , fn )
469- let cmd = `7z x -tlzma ${ fn } -so | 7z x -aoa -si -ttar -o${ dirDK7z } `
470- execSyncQ ( cmd )
471- }
472- grpEnd ( msSt )
465+ }
466+ if ( msys2Pkgs !== '' ) {
467+ if ( is2022orLater ) msys2Pkgs = msys2Pkgs . replace ( / \b b i s o n \b / gi, '' ) . trim ( )
468+ if ( msys2Pkgs !== '' ) {
469+ list += ' ' + msys2Pkgs
470+ msys2Pkgs = ''
473471 }
474472 }
473+ if ( list !== '' ) {
474+ msSt = grpSt ( `pacman.exe -S ${ list } ` )
475+ checkSpace
476+ execSync ( `pacman.exe ${ msys2Sync } ${ args } ${ list } ` )
477+ grpEnd ( msSt )
478+ }
479+ } else if ( mingwPkgs !== '' ) {
480+ // install old DevKit packages
481+ let toInstall = [ ]
482+ let pkgs = mingwPkgs . split ( / \s + / )
483+ pkgs . forEach ( ( pkg ) => {
484+ if ( old_pkgs [ pkg ] ) {
485+ toInstall . push ( { pkg : pkg , uri : old_pkgs [ pkg ] } )
486+ } else {
487+ core . warning ( `Package '${ pkg } ' is not available` )
488+ }
489+ } )
490+ if ( toInstall . length !== 0 ) {
491+ const list = toInstall . map ( item => item . pkg ) . join ( ' ' )
492+ msSt = grpSt ( `installing MSYS packages: ${ list } ` )
493+ for ( const item of toInstall ) {
494+ let fn = `${ dlPath } \\${ item . pkg } .tar.lzma`
495+ await download ( item . uri , fn )
496+ let cmd = `7z x -tlzma ${ fn } -so | 7z x -aoa -si -ttar -o${ dirDK7z } `
497+ execSyncQ ( cmd )
498+ }
499+ grpEnd ( msSt )
500+ }
475501 }
476502}
477503
0 commit comments