User Feedback :: Errors unpacking/repacking .tar.gz
I've tried a couple of times to modify *.tar.gz files using emelFM in order to remove or add files to the archive.
When I do this with the backup.tar.gz file or with dsl extensions I get error messages on boot/on loading the extension.
emelFM does not give an error on re-packing the *.tar.gz file - is there something I'm missing?
It's most likely the fact that you are creating a plain old archive that will clobber system files when installed. MyDSL extensions and the backup archve are indeed tar.gz files, but they are built in such a way that the files inside have specific permissions and ownership, and do not contain existing directories (or any directories, unless necessary). It's likely that you are breaking them by using emelfm to repack them.
Repacking a .dsl extension or backup.tar.gz in emelfm will add non-empty ("clobber") directories like:
./
./usr/
./usr/bin/
./usr/bin/aoss
./usr/include/
./usr/include/alsa-oss_1.0.9rc4.dsl.info
./usr/include/oss-redir.h
./usr/lib/
./usr/lib/libalsatoss.a
./usr/lib/libalsatoss.la
./usr/lib/libalsatoss.so.0.0.0
./usr/lib/libalsatoss.so.0
./usr/lib/libaoss.a
These will break your system on installation.
These can be removed by hand or (easier) with my little declobber script.
Unfortunately there are a few clobbering extensions in the repo. declobber can be run on a dir full of extensions using a wildcard argument.
dsl2unc will remove self-clobberers as a side effect but declobber also checks whether empty dirs are on the system (and if they are base or added dirs if a legacy livecd boot).
An easy way to repack extensions are emelfm buttons like those posted by (Clacker? CBagger?) eg:
dsl contents
tar -ztf %f >dirlist
dsl unpack
tar -zxpvf %f
dsl repack (select dirlist)
tar -T %f -cpf- | gzip -9 >%{Name:}
Repack as root to presere perms.
If packing an extension some other way eg from dirs, add the --no-recursion option to tar to prevent it adding clobber dirs (what's missing from emelfm).
If packing an extension on a system/user other than dsl, add the --numeric-owner option to tar.
EDIT: Wouldn't ya know it! I'm busy writing a reply an' MikShaw beats me to it!
Thanks - in fact I'd done this in emelFM/DSL-N and forgotten about it.
Tested by removing the example configs in /home/dsl in XFree86.dsl and works fine.
original here.