No creo que nadie en el foro lo haga, pero dejo la solución que a mi personalmente me ha funcionado.
“Podría faltar algún rpm adicional, pero es la maquina en la que suelo compilar y ya tengo rpm instalados con anterioridad”
compilando rufus con mingw
en mi caso tengo instalados [sudo zypper in automake mingw64-binutils mingw64-binutils-devel mingw64-cpp mingw64-cross-binutils mingw64-cross-binutils-utils mingw64-cross-cmake mingw64-cross-cpp mingw64-cross-gcc mingw64-cross-gcc-c++ mingw64-cross-gcc-fortran mingw64-cross-gcc-objc mingw64-cross-pkgconf mingw64-filesystem mingw64-gcc mingw64-gcc-c++ mingw64-headers mingw64-libgcc_s_seh1 mingw64-libgmp10 mingw64-libmpc3 mingw64-libmpfr4 mingw64-libstdc+±gdb-printer mingw64-libwinpthread1 mingw64-libz mingw64-runtime mingw64-winpthreads-devel]
bajamos el archivo zip de https://github.com/pbatard/rufus/archive/refs/heads/master.zip
lo descomprimimos y generamos una carpeta adicional llamada m4 que necesitaremos adicionalmente
el programa viene por defecto con aclocal-1.14 y en TW tenemos aclocal-1.17
así que indicamos que use este último con autoreconf -fi
ejecutamos ./configure --host=x86_64-w64-mingw32
./configure --host=x86_64-w64-mingw32
configure: loading site script /usr/share/site/x86_64-pc-linux-gnu
checking for a BSD-compatible install… /usr/bin/install -c
checking whether sleep supports fractional seconds… yes
checking filesystem timestamp resolution… 0.01
checking whether build environment is sane… yes
checking for a race-free mkdir -p… /usr/bin/mkdir -p
checking for gawk… gawk
checking whether make sets $(MAKE)… yes
checking whether make supports nested variables… yes
checking xargs -n works… yes
checking for gcc… gcc
checking whether the C compiler works… yes
checking for C compiler default output file name… a.out
checking for suffix of executables…
checking whether we are cross compiling… no
checking for suffix of object files… o
checking whether the compiler supports GNU C… yes
checking whether gcc accepts -g… yes
checking for gcc option to enable C11 features… none needed
checking whether gcc understands -c and -o together… yes
checking for ar… ar
checking for ranlib… ranlib
checking for a sed that does not truncate output… /usr/bin/sed
checking for rm… /usr/bin/rm
checking for dlltool… no
checking for strip… strip
checking for windres… no
checking for inline… inline
enabling Large File Support (ISO support)
checking that generated files are newer than configure… done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating .mingw/Makefile
config.status: creating src/Makefile
config.status: creating src/bled/Makefile
config.status: creating src/ext2fs/Makefile
config.status: creating src/libcdio/iso9660/Makefile
config.status: creating src/libcdio/udf/Makefile
config.status: creating src/libcdio/driver/Makefile
config.status: creating res/loc/Makefile
config.status: creating src/ms-sys/Makefile
config.status: creating src/syslinux/libfat/Makefile
config.status: creating src/syslinux/libinstaller/Makefile
config.status: creating src/syslinux/win/Makefile
si hacemos make y nos da el siguiente fallo
make[2]: se entra en el directorio ‘/home/soyasi2/rufus/src’
CC rufus-cpu.o
cpu.c:27:10: fatal error: x86Intrin.h: No such file or directory
27 | #include <x86Intrin.h>
| ^~~~~~~~~~~~~
compilation terminated.
ir al archivo src/cpu.h abrirlo
y cambiar <x86Intrin.h> por <immintrin.h>, ya que <immintrin.h> incluye un rango más amplio de intrínsecos para x86.
Vuelvo a ejecutar autoreconf -fi
vuelvo a ejecutar
./configure --host=x86_64-w64-mingw32
configure: loading site script /usr/share/site/x86_64-pc-linux-gnu
checking for a BSD-compatible install… /usr/bin/install -c
checking whether sleep supports fractional seconds… yes
checking filesystem timestamp resolution… 0.01
checking whether build environment is sane… yes
checking for x86_64-w64-mingw32-strip… x86_64-w64-mingw32-strip
checking for a race-free mkdir -p… /usr/bin/mkdir -p
checking for gawk… gawk
checking whether make sets $(MAKE)… yes
checking whether make supports nested variables… yes
checking xargs -n works… yes
checking for x86_64-w64-mingw32-gcc… x86_64-w64-mingw32-gcc
checking whether the C compiler works… yes
checking for C compiler default output file name… a.exe
checking for suffix of executables… .exe
checking whether we are cross compiling… yes
checking for suffix of object files… o
checking whether the compiler supports GNU C… yes
checking whether x86_64-w64-mingw32-gcc accepts -g… yes
checking for x86_64-w64-mingw32-gcc option to enable C11 features… none needed
checking whether x86_64-w64-mingw32-gcc understands -c and -o together… yes
checking for x86_64-w64-mingw32-ar… x86_64-w64-mingw32-ar
checking for x86_64-w64-mingw32-ranlib… x86_64-w64-mingw32-ranlib
checking for a sed that does not truncate output… /usr/bin/sed
checking for rm… /usr/bin/rm
checking for x86_64-w64-mingw32-dlltool… x86_64-w64-mingw32-dlltool
checking for x86_64-w64-mingw32-strip… (cached) x86_64-w64-mingw32-strip
checking for x86_64-w64-mingw32-windres… x86_64-w64-mingw32-windres
checking for inline… inline
enabling Large File Support (ISO support)
checking that generated files are newer than configure… done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating .mingw/Makefile
config.status: creating src/Makefile
config.status: creating src/bled/Makefile
config.status: creating src/ext2fs/Makefile
config.status: creating src/libcdio/iso9660/Makefile
config.status: creating src/libcdio/udf/Makefile
config.status: creating src/libcdio/driver/Makefile
config.status: creating res/loc/Makefile
config.status: creating src/ms-sys/Makefile
config.status: creating src/syslinux/libfat/Makefile
config.status: creating src/syslinux/libinstaller/Makefile
config.status: creating src/syslinux/win/Makefile
hago make
make
Making all in src
make[1]: se entra en el directorio ‘/home/soyasi2/rufus2/rufus-master/src’
Making all in …/.mingw
make[2]: se entra en el directorio ‘/home/soyasi2/rufus2/rufus-master/.mingw’
SED dwmapi.def
LIB dwmapi-delaylib.lib
SED version.def
LIB version-delaylib.lib
SED virtdisk.def
LIB virtdisk-delaylib.lib
SED wininet.def
LIB wininet-delaylib.lib
SED wintrust.def
LIB wintrust-delaylib.lib
rm version.def64 wintrust.def64 dwmapi.def64 wininet.def64 virtdisk.def64
make[2]: se sale del directorio ‘/home/soyasi2/rufus2/rufus-master/.mingw’
Making all in bled
make[2]: se entra en el directorio ‘/home/soyasi2/rufus2/rufus-master/src/bled’
CC libbled_a-bled.o
CC libbled_a-crc32.o
CC libbled_a-data_align.o
CC libbled_a-data_extract_all.o
CC libbled_a-data_skip.o
CC libbled_a-decompress_bunzip2.o
CC libbled_a-decompress_gunzip.o
CC libbled_a-decompress_uncompress.o
CC libbled_a-decompress_unlzma.o
CC libbled_a-decompress_unxz.o
CC libbled_a-decompress_unzip.o
CC libbled_a-decompress_unzstd.o
CC libbled_a-decompress_vtsi.o
CC libbled_a-filter_accept_all.o
CC libbled_a-filter_accept_list.o
CC libbled_a-filter_accept_reject_list.o
CC libbled_a-find_list_entry.o
CC libbled_a-fse_decompress.o
CC libbled_a-header_list.o
CC libbled_a-header_skip.o
CC libbled_a-header_verbose_list.o
CC libbled_a-huf_decompress.o
CC libbled_a-init_handle.o
CC libbled_a-open_transformer.o
CC libbled_a-seek_by_jump.o
CC libbled_a-seek_by_read.o
CC libbled_a-xz_dec_bcj.o
CC libbled_a-xz_dec_lzma2.o
CC libbled_a-xz_dec_stream.o
CC libbled_a-xxhash.o
CC libbled_a-zstd_common.o
CC libbled_a-zstd_decompress.o
CC libbled_a-zstd_decompress_block.o
CC libbled_a-zstd_ddict.o
CC libbled_a-zstd_entropy_common.o
CC libbled_a-zstd_error_private.o
AR libbled.a
make[2]: se sale del directorio ‘/home/soyasi2/rufus2/rufus-master/src/bled’
Making all in ext2fs
make[2]: se entra en el directorio ‘/home/soyasi2/rufus2/rufus-master/src/ext2fs’
CC libext2fs_a-alloc.o
CC libext2fs_a-alloc_sb.o
CC libext2fs_a-alloc_stats.o
CC libext2fs_a-alloc_tables.o
CC libext2fs_a-badblocks.o
CC libext2fs_a-bb_inode.o
CC libext2fs_a-bitmaps.o
CC libext2fs_a-bitops.o
CC libext2fs_a-blkmap64_ba.o
CC libext2fs_a-blkmap64_rb.o
CC libext2fs_a-blknum.o
CC libext2fs_a-block.o
CC libext2fs_a-bmap.o
CC libext2fs_a-closefs.o
CC libext2fs_a-crc16.o
CC libext2fs_a-crc32c.o
CC libext2fs_a-csum.o
CC libext2fs_a-dirblock.o
CC libext2fs_a-dirhash.o
CC libext2fs_a-dir_iterate.o
CC libext2fs_a-extent.o
CC libext2fs_a-ext_attr.o
CC libext2fs_a-fallocate.o
CC libext2fs_a-fileio.o
CC libext2fs_a-freefs.o
CC libext2fs_a-gen_bitmap.o
CC libext2fs_a-gen_bitmap64.o
CC libext2fs_a-get_num_dirs.o
CC libext2fs_a-hashmap.o
CC libext2fs_a-i_block.o
CC libext2fs_a-ind_block.o
CC libext2fs_a-initialize.o
CC libext2fs_a-inline.o
CC libext2fs_a-inline_data.o
CC libext2fs_a-inode.o
CC libext2fs_a-io_manager.o
CC libext2fs_a-link.o
CC libext2fs_a-lookup.o
CC libext2fs_a-mkdir.o
CC libext2fs_a-mkjournal.o
CC libext2fs_a-namei.o
CC libext2fs_a-mmp.o
CC libext2fs_a-newdir.o
CC libext2fs_a-nt_io.o
CC libext2fs_a-openfs.o
CC libext2fs_a-punch.o
CC libext2fs_a-rbtree.o
CC libext2fs_a-read_bb.o
CC libext2fs_a-rw_bitmaps.o
CC libext2fs_a-sha512.o
CC libext2fs_a-symlink.o
CC libext2fs_a-valid_blk.o
AR libext2fs.a
make[2]: se sale del directorio ‘/home/soyasi2/rufus2/rufus-master/src/ext2fs’
Making all in ms-sys
make[2]: se entra en el directorio ‘/home/soyasi2/rufus2/rufus-master/src/ms-sys’
CC libmssys_a-fat12.o
CC libmssys_a-fat16.o
CC libmssys_a-fat32.o
CC libmssys_a-ntfs.o
CC libmssys_a-partition_info.o
CC libmssys_a-br.o
CC libmssys_a-file.o
AR libmssys.a
make[2]: se sale del directorio ‘/home/soyasi2/rufus2/rufus-master/src/ms-sys’
Making all in syslinux/libfat
make[2]: se entra en el directorio ‘/home/soyasi2/rufus2/rufus-master/src/syslinux/libfat’
CC libfat_a-cache.o
CC libfat_a-fatchain.o
CC libfat_a-open.o
CC libfat_a-searchdir.o
CC libfat_a-dumpdir.o
AR libfat.a
make[2]: se sale del directorio ‘/home/soyasi2/rufus2/rufus-master/src/syslinux/libfat’
Making all in syslinux/libinstaller
make[2]: se entra en el directorio ‘/home/soyasi2/rufus2/rufus-master/src/syslinux/libinstaller’
CC libinstaller_a-fs.o
CC libinstaller_a-setadv.o
CC libinstaller_a-syslxmod.o
AR libinstaller.a
make[2]: se sale del directorio ‘/home/soyasi2/rufus2/rufus-master/src/syslinux/libinstaller’
Making all in syslinux/win
make[2]: se entra en el directorio ‘/home/soyasi2/rufus2/rufus-master/src/syslinux/win’
CC libwin_a-ntfssect.o
AR libwin.a
make[2]: se sale del directorio ‘/home/soyasi2/rufus2/rufus-master/src/syslinux/win’
Making all in libcdio/iso9660
make[2]: se entra en el directorio ‘/home/soyasi2/rufus2/rufus-master/src/libcdio/iso9660’
CC libiso9660_a-iso9660.o
CC libiso9660_a-iso9660_fs.o
CC libiso9660_a-rock.o
CC libiso9660_a-xa.o
AR libiso9660.a
make[2]: se sale del directorio ‘/home/soyasi2/rufus2/rufus-master/src/libcdio/iso9660’
Making all in libcdio/udf
make[2]: se entra en el directorio ‘/home/soyasi2/rufus2/rufus-master/src/libcdio/udf’
CC libudf_a-udf.o
CC libudf_a-udf_file.o
CC libudf_a-udf_fs.o
CC libudf_a-udf_time.o
CC libudf_a-filemode.o
AR libudf.a
make[2]: se sale del directorio ‘/home/soyasi2/rufus2/rufus-master/src/libcdio/udf’
Making all in libcdio/driver
make[2]: se entra en el directorio ‘/home/soyasi2/rufus2/rufus-master/src/libcdio/driver’
CC libdriver_a-disc.o
CC libdriver_a-ds.o
CC libdriver_a-logging.o
CC libdriver_a-memory.o
CC libdriver_a-read.o
CC libdriver_a-sector.o
CC libdriver_a-track.o
CC libdriver_a-util.o
CC libdriver_a-_cdio_stdio.o
CC libdriver_a-_cdio_stream.o
CC libdriver_a-utf8.o
AR libdriver.a
make[2]: se sale del directorio ‘/home/soyasi2/rufus2/rufus-master/src/libcdio/driver’
Making all in …/res/loc
make[2]: se entra en el directorio ‘/home/soyasi2/rufus2/rufus-master/res/loc’
SED rufus.loc
make all-am
make[3]: se entra en el directorio ‘/home/soyasi2/rufus2/rufus-master/res/loc’
make[3]: No se hace nada para ‘all-am’.
make[3]: se sale del directorio ‘/home/soyasi2/rufus2/rufus-master/res/loc’
make[2]: se sale del directorio ‘/home/soyasi2/rufus2/rufus-master/res/loc’
make[2]: se entra en el directorio ‘/home/soyasi2/rufus2/rufus-master/src’
CC rufus-badblocks.o
CC rufus-cpu.o
CC rufus-dev.o
CC rufus-dos.o
CC rufus-dos_locale.o
CC rufus-drive.o
CC rufus-format.o
CC rufus-format_ext.o
CC rufus-format_fat32.o
CC rufus-hash.o
CC rufus-icon.o
CC rufus-iso.o
CC rufus-localization.o
CC rufus-net.o
CC rufus-parser.o
CC rufus-pki.o
CC rufus-process.o
CC rufus-re.o
CC rufus-rufus.o
CC rufus-smart.o
CC rufus-stdfn.o
CC rufus-stdio.o
CC rufus-stdlg.o
CC rufus-syslinux.o
CC rufus-ui.o
CC rufus-vhd.o
CC rufus-wue.o
RC rufus_rc.o
CCLD rufus.exe
make[2]: se sale del directorio ‘/home/soyasi2/rufus2/rufus-master/src’
make[1]: se sale del directorio ‘/home/soyasi2/rufus2/rufus-master/src’
make[1]: se entra en el directorio ‘/home/soyasi2/rufus2/rufus-master’
make[1]: No se hace nada para ‘all-am’.
make[1]: se sale del directorio ‘/home/soyasi2/rufus2/rufus-master’
y ya tenemos listo el archivo rufus.exe en mi caso en el directorio /home/soyasi2/rufus2/rufus-master/src/rufus.exe listo para usarse en windows o con wine rufus.exe.
rufus. exe 7,6 MiB (8.005.613)
Espero que alguien encuentre interesante la solución.
Saludos foreros