kisslinux / kiss

KISS Linux - Package Manager
https://kisslinux.github.io
MIT License
464 stars 62 forks source link

extracting from source packages in kiss (~lines 166-200) #68

Closed scsijon closed 4 years ago

scsijon commented 4 years ago

Looking at your code in kiss, I wonder if it wouldn't be more effective to use something like uextract to split out the source package to workable code.

To quote the author 'SFR' :"In order to ease unpacking of various archive formats, I forged One Script to Rule Them All (well, at least most of them Wink ). "

Especially since uextract can work with command lines the likes of >

uextract -o /root/somedir archive.tar.gz arch2.7z somepkg.rpm

UExtract will automatically make use of the following tools, when available:

7z
aescrypt
ar
arj
avconv/ffmpeg
balz
base64
bbb
blkar
bcrypt
brotli
b(un)zip2
c1541
ccrypt
cpio
cryptsetup
dar
ddjvu
dpkg-deb
dzip
exploderpm
extract_chmLib
extract-ikconfig
fdisk
flzp
fossil
fp8
fusecompress_offline
gdisk
gifsicle
gostcrypt
gpg/gpg2
gs
g(un)zip
kgb
ha
hexbin
icotool
innoextract
lbrate
lepton
lha
lizard
losetup
lpaq1
lpaq8
lr(un)zip
lz4
lz4jsoncat
lzfse
lzip
msgunfmt
nanozip
nomarch
nulib
paq8l
paq8n
paq8o
pdfdetach
pdfimages
pdftocairo
pdftohtml
pdftotext
php
poweriso
qemu-nbd
quad
ripmime
rpm2cpio
r(un)zip
scrypt
snzip
sqlite3
steghide
swfextract
tar
tnef
tor
tosz
truecrypt
unace
unalz
(un)arc
(un)asd
(un)compress
uncpk
undms
unegg
(un)freeze
(un)lzma
(un)lzop
unlzx
unp64
unpack200
(un)rar
unsquashfs
(un)xz
unzip
upx
uudecode
veracrypt
wvunpack
xar
xcur2png
xxdecode
zimdump
zoo
zpaq
zstd
zxing
zzip

Supported, though not extensively tested at this point, formats/extensions are:

.?? .2fs .3fs .3gp .4fs .7z .7z.001 .7zip .a .a[0-9][0-9] .a2theme .ace .acp .adz .aes .ai .alz .amf .ani .apk .aplp .app .appimage .apz .ar .arc .arj .Arch00 .arduboy .ark .asc .asd .au .avastsounds .avi .azw2 .b64 .baklz4 .balz .bau .bbb .bdoc .bfe .bgz .bin .blend .bmp .bmz .br .bxy .bz .bz2 .bzip .bzip2 .cab .capx .cb7 .cba .cbr .cbt .cbz .cdmtz .cdmz .cfs .cgz .chm .chrt .cld .cpgz .cpio .cpio.7z .cpio.br .cpio.bz .cpio.bz2 .cpio.bzip .cpio.bzip2 .cpio.f .cpio.gz .cpio.gzip .cpio.lrz .cpio.lz .cpio.lz4 .cpio.lzma .cpio.lzo .cpio.xz .cpio.z .cpio.zip .cpio.zst .cpk .cpl .cpt .cramfs .crf .crx .ctb .ctx .ctz .cur .cvd .cxarchive .d64 .d81 .daa .dar .dat .dazip .db .db3 .dbk .deb .depot.gz .dia .disk .divx .djvu .dll .dmg .dms .docx .dotx .dsk .dsl .dz .ear .eaz .ecs .ecsbx .efossil .eftx .egg .emerald .eml .emz .eopkg .epk .epub .esriaddin .exe .ext2 .ext3 .ext4 .f .f3d .f3z .fat .fb2k-component .fcstd .flac .flf .flp .flv .flzp .fossil .fp8 .fsl .fwp .fzbz .fzpz .fzz .g3x .gadget .gc .gem .gg .gif .gifar .gmz .gnumeric .gnutar .goomod .gpg .gps .graphmlz .gst .gszip .gtar .gtp .gz .gz2 .gzi .gzip .ha .hc .hfs .hfv .hid .hme .hmxz .hqx .htmlz .htz .hwp .i5z .iar .icl .ico .igz .ima .img .imz .ip .ipa .ipcc .ipg .ipk .ipsw .iso .ita .itz .iwd .ja .jar .jgz .jic .jpeg .jpg .jsonlz4 .kfo .kgb .kmz .kpr .ksf .ksp .kwd .lbr .lca .lemon .lep .lha .libzip .little .liz .lnx .love .lpaq1 .lpaq8 .lpk .lpkg .lrz .lxf .lz .lz4 .lza .lzfse .lzh .lzm .lzma .lzo .lzx .maff .mar .mbox .mbz .mcgame .mct .mcworld .mdf .mds .mdz .mdzip .mga .mht .mhtml .mim .mime .mkv .mmip .mo .mov .mozlz4 .mp3 .mp4 .mpeg .mpg .mpk .mpkg .mpz .mpzip .mscz .msg .msi .msp .msu .mxl .mzp .mzz .nbf .nbm .ndr .nex .nfl .ngr .nif .nlr .nrg .nsis .ntfs .nth .nupkg .nz .oar .obt .odb .odc .odf .odg .odi .odm .odp .ods .odt .oex .ogg .ogv .ogz .onepkg .opk .orb .otg .oth .otp .ots .ott .ova .ovp .oxt .p2s .p2a.backup .pack .package .pak .paq8l .paq8n .paq8o .par .pat .pax .pbi .pbp .pcv .pdf .pet .pfs .pgp .phar .pigm .pigs .pisi .piz .pk3 .pk4 .pkg .pmlz .png .potx .pptx .prg .psz .pup .pvga .pxz .qch .qcow .qcow2 .qcow2c .qpk .qpr .qtz .quad .quiz .r[0-9] .r[0-9][0-9] .rar .rar5 .ReaperThemeZip .rmskin .rp9 .rpm .rsn .rub .run .rz .s3z .safariextz .sam .sar .sb .sbx .scm .scr .sdi .sdk .sdz .sfe .sfg .sfs .sfx .sh2 .sh3d .sh3f .sh3t .shar .shk .shr .sifz .sle .slm .slp .smzip .snap .snappy .snz .sob .sox .spack .spk .spm .sqf .sqfs .sqlar .sqlite .sqlite3 .sqsh .squashfs .srm .stc .std .sti .stpZ .studyarch .stw .styx .sublime-package .sue .svgz .swf .swm .sxc .sxd .sxg .sxi .sxm .sxw .sys .sz .tar .tar.7z .tar.br .tar.bz .tar.bz2 .tar.bzip .tar.bzip2 .tardist .tar.f .tar.gz .tar.gz2 .tar.gzip .tar.lrz .tar.lz .tar.lz4 .tar.lzma .tar.lzo .tar.md5 .tar.xz .tarz .tar.z .tar.zip .tar.zst .taz .tazpkg .tb2 .tbz .tbz2 .tc .tce .tcel .tcem .tcx .tcz .tg .tgz .themepack .thm .thmx .tlrz .tlz .tlz4 .tlzma .tnef .tor .tpkg .tpxz .ts .tsk .twz .twzip .txz .tz .tzma .tzo .tzst .u .u3p .uax .udeb .udf .unitypackage .upx .usfs .ustar .utz .uu .uue .vbox-extpack .vc .vdi .vfd .vgz .vhd .vmdk .vmg .vob .vpk .wa .wal .war .wav .wba .wbm .webm .webz .wgt .wgz .whl .widget .wim .wlz .wma .wmd .wmga .wmv .wmz .wot .wrz .wsp .wsz .wv .x3d .xap .xapk .xar .xbps .xcfbz2 .xcfgz .xjt .xjtbz2 .xjtgz .xlam .xlsm .xlsx .xltx .xmcdz .xmz .xo .xpi .xrns .xsn .xwp .xx .xxe .xz .xzm .Z .z .z[0-9][0-9] .zab .zabw .zad .zds .zfsendtotarget .zi .zi .zim .zip .zipx .zl .zlib .zm9 .zoo .zpaq .zpi .zst .ztd .zxp .zz

and there is a simple drag-n-drop gui also available when a window system is running.

There's an equivelent called "packit" to go the other way.

We use it extensively in puppylinux.

UExtract contains the following translations:

This is our link, http://www.murga-linux.com/puppy/viewtopic.php?t=87864

We do have other ways of unpacking multiple sources by using case statements, but this is the easiest to use nowadays,

just a thought

dylanaraps commented 4 years ago

The package manager only automatically extracts `tar archives. Other archive formats can be handled by the build script. I don't think this is needed. :+1: