Compare commits
97 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
5aa73fb1af | |
|
|
bc5a770d3f | |
|
|
a3bfaccea1 | |
|
|
f02e73e522 | |
|
|
56dc040397 | |
|
|
8678d5f4b5 | |
|
|
b588256382 | |
|
|
81dfba7480 | |
|
|
e552cf09c6 | |
|
|
f43da7b5cf | |
|
|
82555a7ec4 | |
|
|
8db5cb64a2 | |
|
|
c405536126 | |
|
|
9774c4dd1b | |
|
|
7b243f9781 | |
|
|
ecdfe750c8 | |
|
|
103e1eeb13 | |
|
|
ece2224e18 | |
|
|
0010fcde7e | |
|
|
a45ff59376 | |
|
|
2c2e73992f | |
|
|
9e41cd8253 | |
|
|
31c1e64cec | |
|
|
fcc1c91b2b | |
|
|
32afaf7f89 | |
|
|
7bca13b9a6 | |
|
|
5f0ccd3362 | |
|
|
b6569a3d0b | |
|
|
89c08c297a | |
|
|
98cd8e51b4 | |
|
|
7709174535 | |
|
|
73d605d9ad | |
|
|
72de891a3d | |
|
|
05af29f8d1 | |
|
|
93cbaf8c67 | |
|
|
8be589217e | |
|
|
5a06b74174 | |
|
|
6edbe53252 | |
|
|
1257303ef3 | |
|
|
e365ab8859 | |
|
|
41f195da50 | |
|
|
809dc08543 | |
|
|
5e288baafe | |
|
|
0548b30e81 | |
|
|
8852a1062d | |
|
|
95656a4eff | |
|
|
afe634c46a | |
|
|
0d9256ee6a | |
|
|
e38da35316 | |
|
|
0e4c7bf8a3 | |
|
|
8432a942e9 | |
|
|
c7055b1ad1 | |
|
|
4f813d4e87 | |
|
|
a5e44dcc89 | |
|
|
d27460d958 | |
|
|
33cf295438 | |
|
|
ab98b4b526 | |
|
|
d877af9e8b | |
|
|
718a39ccc3 | |
|
|
05df6761f5 | |
|
|
81f424db2f | |
|
|
4cbed3fa34 | |
|
|
76e0c973c0 | |
|
|
e84f3852f0 | |
|
|
ca41faea5b | |
|
|
b137deed92 | |
|
|
cb7ecf8b96 | |
|
|
9cb6a19582 | |
|
|
52c9f07ff4 | |
|
|
abcc1a888d | |
|
|
77907d4abe | |
|
|
32f35a745d | |
|
|
bfba8e64fe | |
|
|
6df62e20b2 | |
|
|
78661a48f9 | |
|
|
d775cf882f | |
|
|
6b463c19c5 | |
|
|
ef233a3d45 | |
|
|
d65b4213dc | |
|
|
1b09965e05 | |
|
|
6669a3cb04 | |
|
|
4e28ff7530 | |
|
|
91058aaafc | |
|
|
c186696b93 | |
|
|
0cb17f9c67 | |
|
|
9d0477876d | |
|
|
da623a0390 | |
|
|
22f2493769 | |
|
|
1e76881664 | |
|
|
af5288c7af | |
|
|
15c130f76a | |
|
|
7cd51df455 | |
|
|
a396c0f5d0 | |
|
|
868d1aac34 | |
|
|
3149f63a99 | |
|
|
edb710c1b3 | |
|
|
5a090f6ac4 |
4
README
|
|
@ -43,6 +43,10 @@ Note:
|
|||
- it will create ISO and TAR files for you in /tmp
|
||||
- make sure you have enough free space in /tmp to handle it
|
||||
|
||||
* If you want to use the Live Kit on a USB you have to either
|
||||
- use Windows to execute the bootinst.bat file in the $NAME/boot folder
|
||||
- or use Linux to execute the shellscript bootinst.sh in the $NAME/boot folder.
|
||||
|
||||
* You will need the following packages to be installed:
|
||||
- squashfs-tools
|
||||
- genisoimage or mkisofs
|
||||
|
|
|
|||
|
|
@ -0,0 +1,10 @@
|
|||
\l
|
||||
_ ____ _____
|
||||
| | / __ \\ / ____|
|
||||
__| |_ __ __ _| | | | (___
|
||||
/ _` | '_ \\ / _` | | | |\\___ \\
|
||||
| (_| | | | | (_| | |__| |____) |
|
||||
\\__,_|_| |_|\\__,_|\\____/|_____/
|
||||
|
||||
powered by Briq
|
||||
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
#!/bin/bash
|
||||
# Author: Tomas M. <http://www.slax.org/>
|
||||
|
||||
usage()
|
||||
{
|
||||
echo ""
|
||||
echo "Convert directory to .sb compressed module"
|
||||
echo "Usage: $0 [source_directory.sb] [[target_file.sb]]"
|
||||
echo " If source_directory does not have .sb suffix and it is not 'squashfs-root',"
|
||||
echo " then the source_directory itself is included in the module and"
|
||||
echo " then the target_file.sb parameter is required."
|
||||
echo " If target_file.sb is not specified, the source_directory is erased"
|
||||
echo " and replaced by the newly generated module file."
|
||||
}
|
||||
|
||||
P1="$(readlink -f "$1")"
|
||||
P2="$(readlink -f "$2")"
|
||||
|
||||
if [ "$P1" = "$P2" ]; then
|
||||
P2=""
|
||||
fi
|
||||
|
||||
SB=$(echo "$P1" | grep -o "[.]sb/*\$")
|
||||
if [ "$(echo "$P1" | grep -o "/squashfs-root/*\$")" != "" ]; then
|
||||
SB="true"
|
||||
fi
|
||||
|
||||
if [ "$SB" = "" ]; then
|
||||
KEEP="-keep-as-directory"
|
||||
if [ "$P2" = "" ]; then
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
KEEP=""
|
||||
fi
|
||||
|
||||
if [ ! -d "$P1" ]; then
|
||||
echo "Not a directory: $P1" >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
|
||||
if [ "$P2" = "" ]; then
|
||||
TARGET="$P1".sb
|
||||
while [ -e "$TARGET" ]; do TARGET="$TARGET"x; done
|
||||
mksquashfs "$P1" "$TARGET" -comp xz -b 1024K -always-use-fragments $KEEP >/dev/null || exit 3
|
||||
umount "$P1" 2>/dev/null
|
||||
rm -Rf "$P1"
|
||||
mv "$TARGET" "$P1"
|
||||
else
|
||||
if [ -e "$P2" ]; then
|
||||
echo "Target exists: $P2" >&2
|
||||
exit 4
|
||||
fi
|
||||
|
||||
mksquashfs "$P1" "$P2" -comp xz -b 1024K -always-use-fragments $KEEP >/dev/null
|
||||
fi
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
#! /bin/bash --
|
||||
|
||||
# Aggrega file di pacchetti installati o aggiornati con Pacman
|
||||
# dall'ultimo avvio di una distribuzione linux-live
|
||||
# (cfr. https://www.linux-live.org/ ) senza persistenza attivata,
|
||||
# creando un unico bundle .sb
|
||||
# I file vengono letti dalla directory changes e da essa filtrati solo
|
||||
# quelli appartenenti ai pacchetti di pacman.
|
||||
#
|
||||
# Autore: Guido Longoni <guidolongoni@gmail.com>
|
||||
|
||||
IFS=$'\n'
|
||||
OUTLST="/tmp/added_files_$$.lst"
|
||||
CACHEDIR=$(sed -n -e '/^[[:space:]]*CacheDir/s|^[^=]*=[[:space:]]*||gp' -e 's|[[:space:]]*$||g' /etc/pacman.conf | head -n1)
|
||||
OUTDIR="/tmp/sb_$$"
|
||||
OUTFILE="$OUTDIR".sb
|
||||
CHGDIR=$(realpath $(mount | sed -n -e '/squashfs/s|.* on \([^ ]*\)/.*|\1|gp' | head -n1)/../changes)
|
||||
|
||||
mkdir -p '/tmp'
|
||||
mkdir -p "$OUTDIR"
|
||||
rm -rf "$OUTLST"
|
||||
touch "$OUTLST"
|
||||
for i in $(find "$CACHEDIR" -iname '*.pkg.tar.xz'); do
|
||||
tar t -f $i >> "$OUTLST" 2>/dev/null
|
||||
done
|
||||
sort -u "$OUTLST" | grep -v '^\.' > "$OUTLST".tmp
|
||||
mv "$OUTLST".tmp "$OUTLST"
|
||||
rsync -av --old-d --files-from="$OUTLST" "$CHGDIR" "$OUTDIR"
|
||||
dir2sb "$OUTDIR" "$OUTFILE"
|
||||
rm -rf "$OUTDIR"
|
||||
rm -rf "$OUTLST"
|
||||
|
||||
|
|
@ -8,15 +8,23 @@ LIVE=/run/initramfs
|
|||
FTPROOT=/var/state/dnsmasq/root
|
||||
|
||||
# find out our own IP address. If more interfaces are available, use the first one
|
||||
IP="$(ls -1 /sys/class/net | egrep -v '^lo$' | sort | head -n 1 | xargs -r ifconfig | fgrep "inet " | tr -s " " | cut -d " " -f 3)"
|
||||
IP="$(hostname -I | cut -d " " -f 1)"
|
||||
GW=$(ip route show | grep default | grep -o "via.*" | head -n 1 | cut -d " " -f 2)
|
||||
|
||||
# if no IP is assigned to this computer, setup private address randomly
|
||||
if [ "$IP" = "" ]; then
|
||||
killall dhcpcd 2>/dev/null
|
||||
killall dhclient 2>/dev/null
|
||||
IP="10."$(($RANDOM/130+1))"."$(($RANDOM/130+1))".1"
|
||||
ifconfig $(ls -1 /sys/class/net | egrep -v '^lo$' | sort | head -n 1) $IP netmask 255.255.255.0
|
||||
fi
|
||||
|
||||
# if gateway is not recognized, lets make our IP a gateway and enable forwarding
|
||||
if [ "$GW" = "" ]; then
|
||||
GW="$IP"
|
||||
echo 1 > /proc/sys/net/ipv4/conf/all/forwarding
|
||||
echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
|
||||
fi
|
||||
|
||||
echo Starting PXE server on $IP ...
|
||||
|
||||
# calculate C class range
|
||||
|
|
@ -71,6 +79,7 @@ APPEND initrd=/initrfs.img load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 $(ca
|
|||
# start the DHCP server and TFTP server
|
||||
dnsmasq --enable-tftp --tftp-root=/var/state/dnsmasq/root \
|
||||
--dhcp-boot=pxelinux.0,"$IP",$IP \
|
||||
--dhcp-option=3,$GW \
|
||||
--dhcp-range=$RANGE.2,$RANGE.250,infinite --log-dhcp
|
||||
|
||||
# start HTTP server at port 7529 (that are the numbers you type on your phone to write 'slax')
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
#!/bin/bash
|
||||
# Author: Tomas M. <http://www.slax.org/>
|
||||
|
||||
if [ ! -e "$1" ]; then
|
||||
echo
|
||||
echo "Erase module directory created by sb2dir"
|
||||
echo "Usage: $0 [source_directory.sb]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -d "$1" ]; then
|
||||
echo "Directory does not exist: $1" >&2
|
||||
exit
|
||||
fi
|
||||
|
||||
umount "$1" 2>/dev/null
|
||||
rm -Rf "$1"
|
||||
|
|
@ -40,7 +40,7 @@ done
|
|||
|
||||
cd $CWD
|
||||
|
||||
mksquashfs $TMP "$1" -comp xz -b 512k -noappend
|
||||
mksquashfs $TMP "$1" -comp xz -b 1024K -always-use-fragments -noappend
|
||||
|
||||
umount $TMP
|
||||
rmdir $TMP
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
#!/bin/bash
|
||||
|
||||
if [ "$1" = "rm" ]; then
|
||||
shift
|
||||
rmsbdir "$@"
|
||||
exit $?
|
||||
fi
|
||||
|
||||
if [ "$1" = "rmdir" ]; then
|
||||
shift
|
||||
rmsbdir "$@"
|
||||
exit $?
|
||||
fi
|
||||
|
||||
if [ "$1" = "conv" ]; then
|
||||
shift
|
||||
fi
|
||||
|
||||
if [ ! -r "$1" ]; then
|
||||
echo File not found "$1"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -d "$1" ]; then
|
||||
dir2sb "$@"
|
||||
exit $?
|
||||
fi
|
||||
|
||||
sb2dir "$@"
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
#!/bin/bash
|
||||
# Author: Tomas M. <http://www.slax.org/>
|
||||
|
||||
if [ ! -e "$1" ]; then
|
||||
echo
|
||||
echo "Convert .sb compressed module into directory with the same name"
|
||||
echo "Usage: $0 [source_file.sb] [[optional output_directory]]"
|
||||
echo " If the output_directory is specified, it must exist"
|
||||
echo " If the output_directory is not specified, the name source_file.sb"
|
||||
echo " is used and the directory is overmounted with tmpfs"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -r "$1" ]; then
|
||||
echo "File does not exist: $1" >&2
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ "$2" = "" ]; then
|
||||
SOURCE="$1".x
|
||||
while [ -e "$SOURCE" ]; do SOURCE="$SOURCE"x; done
|
||||
mv "$1" "$SOURCE" || exit
|
||||
mkdir "$1"
|
||||
mount -t tmpfs tmpfs "$1"
|
||||
unsquashfs -f -dest "$1" "$SOURCE" >/dev/null || exit
|
||||
rm "$SOURCE"
|
||||
else
|
||||
if [ ! -d "$2" ]; then
|
||||
echo "Directory does not exist: $2" >&2
|
||||
exit
|
||||
fi
|
||||
unsquashfs -f -dest "$2" "$1" >/dev/null
|
||||
fi
|
||||
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
|
||||
LIVE=/run/initramfs/memory
|
||||
RAMSTORE=$LIVE/modules
|
||||
|
||||
# Print error message and exit
|
||||
# $1 = error message
|
||||
|
|
@ -19,26 +20,6 @@ die()
|
|||
}
|
||||
|
||||
|
||||
# returns writable directory outside of AUFS root
|
||||
# where Slax Bundle can be safely stored
|
||||
#
|
||||
get_bundle_storage_dir()
|
||||
{
|
||||
local TGT
|
||||
|
||||
TGT=$LIVE/data/slax/modules
|
||||
|
||||
mkdir -p $TGT 2>/dev/null
|
||||
touch $TGT/.empty 2>/dev/null && rm $TGT/.empty 2>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
TGT=$LIVE/modules
|
||||
mkdir -p $TGT
|
||||
fi
|
||||
|
||||
echo $TGT
|
||||
}
|
||||
|
||||
|
||||
print_branches()
|
||||
{
|
||||
local SI BUNDLE LOOP CWD
|
||||
|
|
@ -70,24 +51,20 @@ activate()
|
|||
|
||||
# check if file exists
|
||||
if [ ! -r "$SB" ]; then
|
||||
usage "file not found $SB"
|
||||
usage
|
||||
die "file not found $SB"
|
||||
fi
|
||||
|
||||
# copy the module to storage dir so it can be activated from there
|
||||
TGT="$(get_bundle_storage_dir)"
|
||||
|
||||
if [ -r $TGT/$BAS ]; then
|
||||
die "File exists: $TGT/$BAS"
|
||||
# check if the file is part of aufs union, if yes we need to copy it outside
|
||||
if df "$SB" | cut -d " " -f 1 | grep -q aufs; then
|
||||
TGT="$RAMSTORE"
|
||||
mkdir -p "$TGT"
|
||||
if [ -r $TGT/$BAS ]; then die "File exists: $TGT/$BAS"; fi
|
||||
cp -n "$SB" "$TGT/$BAS"
|
||||
if [ $? -ne 0 ]; then die "Error copying file to $TGT/$BAS. Not enough free RAM or disk space?"; fi
|
||||
SB="$TGT/$BAS"
|
||||
fi
|
||||
|
||||
cp -n "$SB" "$TGT/$BAS"
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
die "Error copying file to $TGT/$BAS. Not enough space?"
|
||||
fi
|
||||
|
||||
SB="$TGT/$BAS"
|
||||
|
||||
# check if this particular file is already activated
|
||||
if print_branches | cut -f 2 | fgrep -q "$SB"; then
|
||||
exit
|
||||
|
|
@ -161,16 +138,26 @@ deactivate()
|
|||
# free the loop device manually since umount fails to do that if the bundle was activated on boot
|
||||
losetup -d "$LOOP" 2>/dev/null
|
||||
|
||||
# remove the .sb file, but keep it if deactivate was issued on full sb real path
|
||||
if [ "$(realpath "$1")" != "$(realpath "$LOOPFILE")" ]; then
|
||||
rm -f "$LOOPFILE" 2>/dev/null
|
||||
if echo "$LOOPFILE" | grep -q $RAMSTORE; then
|
||||
rm -f $LOOPFILE
|
||||
fi
|
||||
|
||||
echo "Slax Bundle deactivated: $SB"
|
||||
}
|
||||
|
||||
|
||||
usage()
|
||||
{
|
||||
echo "Usage: $0 [ activate | deactivate | list ] [ file.sb ]" >&2
|
||||
if [ "$1" != "" ]; then
|
||||
echo "$1" >&2
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
if [ "$1" = "" ]; then
|
||||
die "Usage: $0 [ activate | deactivate | list ] [ file.sb ]"
|
||||
usage
|
||||
die
|
||||
fi
|
||||
|
||||
if [ "$1" = "activate" ]; then
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
[Unit]
|
||||
Description=X-Window
|
||||
After=systemd-user-sessions.service
|
||||
|
||||
[Service]
|
||||
ExecStart=/bin/su --login -c /usr/bin/startx
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
SIGNAL=~/.fehbg
|
||||
rm -f $SIGNAL
|
||||
|
||||
OUTPUT=$(xrandr 2>/dev/null | grep 'connected' | cut -d " " -f 1)
|
||||
MODE=$1
|
||||
|
||||
xrandr --output $OUTPUT --mode $MODE
|
||||
|
||||
while [ -e $SIGNAL ]; do
|
||||
sleep 0.1
|
||||
done
|
||||
|
||||
killall -SIGUSR1 compton
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
cat ~/.gtk-bookmarks | fgrep -v ///media/ | fgrep -v "file:/// /" | egrep -v '^$' > ~/.gtk-bookmarks.tmp 2>/dev/null
|
||||
ls -1 /media | while read LINE; do
|
||||
echo "file:///media/$LINE $LINE" >> ~/.gtk-bookmarks.tmp
|
||||
done
|
||||
|
||||
echo "file:/// /" >> ~/.gtk-bookmarks.tmp # add root at the end
|
||||
|
||||
mv -f ~/.gtk-bookmarks.tmp ~/.gtk-bookmarks
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
if [ "$2" = "" ]; then
|
||||
echo "Usage: $0 [source_directory] [target_file.sb] [ -d ]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
if [ ! -d "$1" ]; then
|
||||
echo "Not a directory: $1"
|
||||
exit 2
|
||||
fi
|
||||
|
||||
if [ -e "$2" ]; then
|
||||
echo "Target exists: $2"
|
||||
exit 3
|
||||
fi
|
||||
|
||||
if [ "$3" = "-d" ]; then
|
||||
KEEP="-keep-as-directory"
|
||||
else
|
||||
KEEP=""
|
||||
fi
|
||||
|
||||
mksquashfs "$1" "$2" -comp xz -b 512K $KEEP
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
#!/bin/bash
|
||||
# convert .sb compressed Slax Bundle file into directory tree
|
||||
# Author: Tomas M. <http://www.slax.org/>
|
||||
#
|
||||
|
||||
if [ ! -d "$2" ]; then
|
||||
echo
|
||||
echo "Convert .sb compressed module into directory tree"
|
||||
echo "usage: $0 source_file.sb existing_output_directory"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
unsquashfs -f -dest "$2" "$1" >/dev/null
|
||||
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
|
|
@ -29,14 +29,14 @@ MENU TABMSG [F1] help [Ta
|
|||
LABEL default
|
||||
MENU LABEL Run Slax (Persistent changes)
|
||||
KERNEL /slax/boot/vmlinuz
|
||||
APPEND vga=normal initrd=/slax/boot/initrfs.img load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 slax.flags=perch,automount
|
||||
APPEND vga=normal initrd=/slax/boot/initrfs.img load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 consoleblank=0 slax.flags=perch,automount
|
||||
|
||||
LABEL perch
|
||||
MENU LABEL Run Slax (Fresh start)
|
||||
KERNEL /slax/boot/vmlinuz
|
||||
APPEND vga=normal initrd=/slax/boot/initrfs.img load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 slax.flags=automount
|
||||
APPEND vga=normal initrd=/slax/boot/initrfs.img load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 consoleblank=0 slax.flags=automount
|
||||
|
||||
LABEL toram
|
||||
MENU LABEL Run Slax (Copy to RAM)
|
||||
KERNEL /slax/boot/vmlinuz
|
||||
APPEND vga=normal initrd=/slax/boot/initrfs.img load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 slax.flags=toram
|
||||
APPEND vga=normal initrd=/slax/boot/initrfs.img load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 consoleblank=0 slax.flags=toram
|
||||
|
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 6.3 KiB |
|
|
@ -0,0 +1,34 @@
|
|||
#!/bin/bash
|
||||
|
||||
THIS=$(dirname $(readlink -f $0))
|
||||
|
||||
sed -i -r 's/^LIVEKITNAME.*/LIVEKITNAME="slax"/' $THIS/../../config
|
||||
sed -i -r 's/^NETWORK.*/NETWORK=true/' $THIS/../../config
|
||||
|
||||
. ./copy
|
||||
. ./install
|
||||
. ./cleanup
|
||||
. ./copy
|
||||
|
||||
# now run build script
|
||||
SKIPINITRFS=true
|
||||
cd ../../
|
||||
. ./build
|
||||
|
||||
# setup initrd now, to include aufs
|
||||
apt-get update
|
||||
apt-get install aufs-dkms linux-headers-$(uname -r) --yes
|
||||
|
||||
cd initramfs
|
||||
. ./initramfs_create
|
||||
|
||||
# unpack the sb archive and add aufs modules to /lib/modules
|
||||
cd $LIVEKITDATA/$LIVEKITNAME
|
||||
unsquashfs 01-core.$BEXT
|
||||
cp -a /$LMK/kernel/fs/aufs squashfs-root/$LMK/kernel/fs
|
||||
rm -f 01-core.$BEXT
|
||||
mksquashfs squashfs-root 01-core.$BEXT -comp xz -b 1024K -always-use-fragments || exit
|
||||
rm -Rf squashfs-root
|
||||
|
||||
mv -f $INITRAMFS.img $LIVEKITDATA/$LIVEKITNAME/boot/initrfs.img
|
||||
cp -vf $THIS/bootfiles/* $LIVEKITDATA/$LIVEKITNAME/boot/
|
||||
|
|
@ -0,0 +1,91 @@
|
|||
#!/bin/bash
|
||||
|
||||
rm -f /etc/fstab
|
||||
rm -f /etc/mtab
|
||||
rm -f /etc/apt/sources.list~
|
||||
rm -Rf /etc/systemd/system/timers.target.wants
|
||||
rm -f /etc/systemd/system/multi-user.target.wants/ssh.service
|
||||
rm -f /etc/systemd/system/multi-user.target.wants/dnsmasq.service
|
||||
|
||||
rm -f /etc/ssh/ssh_host*
|
||||
|
||||
rm -f /var/backups/*
|
||||
rm -f /var/cache/ldconfig/*
|
||||
rm -f /var/cache/debconf/*
|
||||
rm -f /var/cache/fontconfig/*
|
||||
rm -f /var/lib/apt/extended_states
|
||||
rm -f /var/lib/systemd/random-seed
|
||||
rm -f /var/lib/apt/lists/deb.*
|
||||
rm -Rf /root/.local/share/mc
|
||||
rm -Rf /root/.cache
|
||||
rm -f /root/.wget-hsts
|
||||
|
||||
rm -f /var/lib/dpkg/*-old
|
||||
rm -f /var/log/*
|
||||
rm -f /var/log/*/*
|
||||
rm -f /var/log/*/*/*
|
||||
rm -f /var/cache/apt/archives/*.deb
|
||||
rm -f /var/cache/apt/*.bin
|
||||
rm -f /var/cache/debconf/*-old
|
||||
rm -f /var/lib/dhcp/dhclient.leases
|
||||
rm -f /root/.bash_history
|
||||
rm -f /root/.wget-hsts
|
||||
rm -Rf /usr/share/doc/*
|
||||
rm -Rf /usr/share/info/*
|
||||
rm -f /usr/share/images/fluxbox/debian-squared.jpg
|
||||
rm -Rf /usr/share/fluxbox/nls/??*
|
||||
rm -Rf /usr/share/gnome/help
|
||||
|
||||
rm -Rf /usr/share/locale/??
|
||||
rm -Rf /usr/share/locale/??_*
|
||||
rm -Rf /usr/share/locale/??@*
|
||||
rm -Rf /usr/share/locale/???
|
||||
rm -Rf /usr/share/i18n/locales/*_*
|
||||
rm -Rf /usr/share/man/??
|
||||
rm -Rf /usr/share/man/*_*
|
||||
|
||||
rm -Rf /usr/share/icons/elementaryXubuntu-dark
|
||||
rm -Rf /usr/share/icons/gnome/256x256
|
||||
|
||||
rm /usr/share/applications/compton.desktop
|
||||
rm /usr/share/applications/debian-uxterm.desktop
|
||||
rm /usr/share/applications/debian-xterm.desktop
|
||||
rm /usr/share/applications/htop.desktop
|
||||
rm /usr/share/applications/mc.desktop
|
||||
rm /usr/share/applications/mcedit.desktop
|
||||
rm /usr/share/applications/pcmanfm-desktop-pref.desktop
|
||||
rm /usr/share/applications/python2.7.desktop
|
||||
rm /usr/share/applications/python3.7.desktop
|
||||
rm /usr/share/applications/vim.desktop
|
||||
|
||||
|
||||
|
||||
# Unzip gzipped files (man pages), so LZMA can compress 2times better.
|
||||
# First we fix symlinks, then uncompress files
|
||||
# $1 = search directory
|
||||
uncompress_files()
|
||||
{
|
||||
local LINK LINE
|
||||
|
||||
find "$1" -type l -name "*.gz" | while read LINE; do
|
||||
LINK="$(readlink "$LINE" | sed -r 's/.gz$//')"
|
||||
FILE="$(echo "$LINE" | sed -r 's/.gz$//')"
|
||||
ln -sfn "$LINK" "$FILE"
|
||||
rm -f "$LINE"
|
||||
done
|
||||
find "$1" -type f -name "*.gz" | xargs -r gunzip
|
||||
}
|
||||
|
||||
uncompress_files /etc/alternatives
|
||||
uncompress_files /usr/share/man
|
||||
|
||||
# remove broken links
|
||||
# $1 = search directory
|
||||
remove_broken_links()
|
||||
{
|
||||
find "$1" -type l -exec test ! -e {} \; -print | xargs rm -vf
|
||||
}
|
||||
|
||||
remove_broken_links /etc/alternatives
|
||||
remove_broken_links /usr/share/man
|
||||
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
#!/bin/bash
|
||||
|
||||
CURRENT="$(ls -1 /boot)"
|
||||
|
||||
apt-get update
|
||||
apt-get dist-upgrade --yes
|
||||
|
||||
NEW="$(ls -1 /boot)"
|
||||
|
||||
if [ "$CURRENT" != "$NEW" ]; then
|
||||
echo "It looks like your kernel has been upgraded."
|
||||
echo "You should reboot and restart the build process."
|
||||
exit
|
||||
fi
|
||||
|
||||
# if kernel was upgraded, you may need to reboot
|
||||
apt-get install --yes --no-install-recommends mc squashfs-tools genisoimage zip unzip psmisc net-tools \
|
||||
alsa-utils man less xz-utils ca-certificates openssl acpid acpi-support-base powermgmt-base bzip2 gpart \
|
||||
hdparm sdparm mdadm smartmontools dosfstools lsof htop gddrescue rsync netcat ssh gpm wireless-tools \
|
||||
ntfs-3g rfkill file dnsmasq ntpdate dvd+rw-tools usb-modeswitch pm-utils wget
|
||||
|
||||
ln -sf bash /bin/sh
|
||||
|
||||
apt-get remove --yes vim* grub* debconf-i18n installation-report
|
||||
|
||||
CWD="$(pwd)"
|
||||
cd /tmp
|
||||
apt-get download acpi-support
|
||||
dpkg -x acpi-support*.deb /tmp/acpisupport
|
||||
cd /tmp/acpisupport
|
||||
cp -aR * /
|
||||
cd "$CWD"
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
#!/bin/bash
|
||||
|
||||
apt-get update
|
||||
apt-get install --yes --no-install-recommends \
|
||||
apt update
|
||||
apt install --yes --no-install-recommends \
|
||||
firmware-linux-free \
|
||||
firmware-linux-nonfree \
|
||||
firmware-atheros \
|
||||
|
|
@ -13,7 +13,8 @@ apt-get install --yes --no-install-recommends \
|
|||
firmware-cavium \
|
||||
firmware-ipw2x00 \
|
||||
firmware-libertas \
|
||||
firmware-ti-connectivity
|
||||
firmware-ti-connectivity \
|
||||
firmware-b43-installer
|
||||
|
||||
. ../../cleanup
|
||||
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
apt-get update
|
||||
apt-get install --yes --no-install-recommends \
|
||||
xserver-xorg \
|
||||
xserver-xorg xserver-xorg-video-all xserver-xorg-video-intel \
|
||||
xinit \
|
||||
xterm \
|
||||
blackbox \
|
||||
|
|
@ -15,6 +15,9 @@ apt-get install --yes --no-install-recommends \
|
|||
libgl1-mesa-dri \
|
||||
libglu1-mesa
|
||||
|
||||
# Set setuid bit on xorg binary, so it can be started by guest user
|
||||
chmod u+s /usr/lib/xorg/Xorg
|
||||
|
||||
# use only white cursors. There were some troubles if the other cursors
|
||||
# was left behind, installing gtk apps reverted the cursor from white to gray,
|
||||
# so we're going to nuke it to leave only Snow cursors active.
|
||||
|
|
@ -36,3 +39,4 @@ update-alternatives --set x-terminal-emulator /usr/bin/xterm
|
|||
. /tmp/cleanup
|
||||
|
||||
savechanges /02-xorg.sb
|
||||
|
||||
|
|
@ -26,3 +26,5 @@ Xft.hinting: true
|
|||
Xft.hintstyle: hintfull
|
||||
Xft.lcdfilter: lcdlegacy
|
||||
Xft.rgba: rgb
|
||||
|
||||
XTerm*selectToClipboard: true
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
[Unit]
|
||||
Description=X-Window
|
||||
ConditionKernelCommandLine=!text
|
||||
After=systemd-user-sessions.service
|
||||
|
||||
[Service]
|
||||
ExecStart=/bin/su --login -c "/usr/bin/startx -- :0 vt7 -ac -nolisten tcp"
|
||||
|
|
@ -64,10 +64,10 @@ cp debian/$NAME/usr/bin/fluxbox /squashfs-root/usr/bin
|
|||
|
||||
|
||||
# add xlunch from sources
|
||||
wget -O /tmp/xlunch.tar.gz https://github.com/Tomas-M/xlunch/archive/v3.2.13.tar.gz
|
||||
wget -O /tmp/xlunch.tar.gz https://github.com/Tomas-M/xlunch/archive/v4.5.3.tar.gz
|
||||
cd /tmp
|
||||
tar -xf xlunch.tar.gz
|
||||
cd xlunch-3.2.13
|
||||
cd xlunch-4.5.3
|
||||
make
|
||||
cp xlunch /squashfs-root/usr/bin
|
||||
cp extra/gentriesquick /squashfs-root/usr/bin/xlunch_genquick
|
||||
|
|
@ -28,6 +28,10 @@ done
|
|||
xsetroot -solid '#111111'
|
||||
xsetroot -xcf /usr/share/icons/breeze_cursors/cursors/watch 37
|
||||
|
||||
# disable screen blanking
|
||||
xset s off
|
||||
xset -dpms
|
||||
|
||||
# volume icon in system tray. Can fail if no soundcard is detected
|
||||
volumeicon &
|
||||
|
||||
|
|
@ -68,7 +72,12 @@ rm -f $SIGNAL2 2>/dev/null
|
|||
sleep 0.1
|
||||
done
|
||||
touch $SIGNAL2
|
||||
exec compton --sw-opti -e 0.9 --fade-exclude 'role*="fluxbox-toolbar"' --opacity-rule '70:role*="fluxbox-toolbar"' --no-fading-destroyed-argb -D 5 -c -f -l -2 -t -2 -r 0 -o 1 -z --shadow-exclude 'bounding_shaped'
|
||||
|
||||
(sleep 1; (echo; sleep 10; echo :quit) | xlunch --window --xposition 20 --yposition -30 \
|
||||
--width 195 --height 53 --noscroll --noprompt --backgroundcolor ffffff00 \
|
||||
--multiple --desktop --button "/usr/share/fluxbox/styles/Slax/pixmaps/start-here.png;;0,0;fbappselect" & ) &
|
||||
|
||||
exec compton --sw-opti -e 0.9 --shadow-exclude 'class_g="xlunch-windowed"' --fade-exclude 'role*="fluxbox-toolbar"' --opacity-rule '70:role*="fluxbox-toolbar"' --no-fading-destroyed-argb -D 5 -c -f -l -2 -t -2 -r 0 -o 1 -z --shadow-exclude 'bounding_shaped'
|
||||
) &
|
||||
|
||||
# We want to run systrayicon only after the volumeicon is started
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
#!/bin/bash
|
||||
|
||||
COMMAND=$(
|
||||
xlunch_genquick 64 | \
|
||||
xlunch --scroll --border 7% --sideborder 10% --borderratio 100 --sideborderratio 50 \
|
||||
xlunch_genquick 64 --desktop | \
|
||||
xlunch --border 7% --sideborder 10% --borderratio 100 --sideborderratio 50 \
|
||||
--background /usr/share/wallpapers/slax_wallpaper.jpg --font DejaVuSans/11 \
|
||||
--voidclickterminate --iconpadding 40 --textpadding 10 \
|
||||
--paddingswap --leastmargin 6 --hidemissing --iconsize 64 \
|
||||
--leastmargin 6 --hidemissing --iconsize 64 \
|
||||
--highlight /usr/share/icons/hicolor/128x128/apps/xlunch_highlight.png \
|
||||
--outputonly
|
||||
)
|
||||
|
|
@ -16,6 +16,12 @@ fi
|
|||
|
||||
fbstartupnotify
|
||||
|
||||
# if command is a .desktop file, parse it
|
||||
if [[ "$COMMAND" =~ \.desktop ]]; then
|
||||
NoTerm="$(cat "$COMMAND" | grep Terminal\\s*= | grep -i "Terminal\\s*=\\s*false")"
|
||||
COMMAND="$(cat "$COMMAND" | grep Exec\\s*= | head -n 1 | sed -r s/.*=// | sed -r "s/%[^%]+//g")"
|
||||
fi
|
||||
|
||||
cmd="$(echo $COMMAND | sed -r "s/\\s.*//")"
|
||||
whi="$(which $cmd | head -n 1)"
|
||||
Xdep=$(ldd $whi | grep libX11)
|
||||
|
|
@ -26,7 +32,7 @@ if [ "$Ndep" != "" -o "$cmd" = "man" -o "$cmd" = "mc" ]; then
|
|||
WAIT=""
|
||||
fi
|
||||
|
||||
if [ "$Xdep" = "" -a "$cmd" != "chromium" -a "$cmd" != "wicd-manager" -a "$cmd" != "fbliveapp" ]; then
|
||||
if [ "$Xdep" = "" -a "$cmd" != "chromium" -a "$cmd" != "wicd-manager" -a "$cmd" != "fbliveapp" -a "$NoTerm" = "" ]; then
|
||||
exec xterm -ls -e bash --login -c -- "echo $USER@$HOSTNAME:$PWD# '$COMMAND'; $COMMAND; $WAIT"
|
||||
else
|
||||
exec $COMMAND
|
||||
|
|
@ -0,0 +1,83 @@
|
|||
#!/bin/bash
|
||||
|
||||
if [ "$1" = "votecoin" ]; then
|
||||
NAME="VoteCoin Wallet"
|
||||
ABOUT="VoteCoin Wallet is a crypto currency wallet,
|
||||
forked from ZCash, which itslef forked from Bitcoin.
|
||||
It supports fully anonymous transactions and voting.
|
||||
Receive free 10 VOT coins for installing the wallet.
|
||||
In the future, VoteCoin will be used for decision
|
||||
funding in Slax."
|
||||
TMP="/tmp/votecoin.tar.gz"
|
||||
EXECUTABLE="/opt/VoteCoin Wallet-linux-x64/VoteCoin Wallet"
|
||||
INSTALL="wget -O $TMP 'https://votecoin.site/download.php?os=linux' && tar -xf $TMP -C /opt && rm -f $TMP && apt install --yes libxss1 libgconf-2-4 libnss3"
|
||||
POSTINSTALL=""
|
||||
ONLY64=true
|
||||
fi
|
||||
|
||||
if [ "$1" = "vlc" ]; then
|
||||
NAME="VLC Video Player"
|
||||
ABOUT="VLC Video Player is a free and open source multimedia player
|
||||
and framework that plays most multimedia files as well as DVDs,
|
||||
Audio CDs, CVDs, and various streaming protocols."
|
||||
EXECUTABLE="/usr/bin/vlc"
|
||||
INSTALL="apt install --yes vlc"
|
||||
POSTINSTALL="rm /usr/share/applications/vlc.desktop; mkdir /home/guest/.config/vlc; echo '[qt4]
|
||||
qt-privacy-ask=0' > /home/guest/.config/vlc/vlcrc;"
|
||||
GUEST=true
|
||||
fi
|
||||
|
||||
if [ "$1" = "chromium" ]; then
|
||||
NAME="Chromium Web Browser"
|
||||
ABOUT="Chromium is a free and open source version of
|
||||
the famous Chrome browser, developed by Google."
|
||||
EXECUTABLE="/usr/bin/chromium"
|
||||
INSTALL="apt install --yes chromium chromium-sandbox"
|
||||
POSTINSTALL="rm -f /usr/share/applications/chromium.desktop"
|
||||
GUEST=true
|
||||
fi
|
||||
|
||||
shift
|
||||
|
||||
# ------------------------------------------------
|
||||
# do not touch anything below this line
|
||||
# ------------------------------------------------
|
||||
|
||||
if [ "$ABOUT" != "" ]; then
|
||||
ABOUT="$ABOUT
|
||||
|
||||
"
|
||||
fi
|
||||
|
||||
|
||||
if [ "$EXECUTABLE" = "" ]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
|
||||
if [ ! -f "$EXECUTABLE" ]; then
|
||||
|
||||
if [ $(uname -m) != 'x86_64' -a "$ONLY64" = "true" ]; then
|
||||
gtkdialog -i /usr/share/icons/gnome/16x16/status/dialog-warning.png -t Error -m "$NAME only works in 64bit version of Slax" -y OK
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if gtkdialog -i /usr/share/icons/gnome/16x16/status/dialog-question.png -t Question -m "$ABOUT$NAME is not yet installed.
|
||||
Do you like to download and install it now?" -y Yes -n No; then
|
||||
xterm -ls -e bash --login -c -- "$INSTALL; $POSTINSTALL"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
if [ -f "$EXECUTABLE" ]; then
|
||||
|
||||
fbstartupnotify
|
||||
|
||||
if [ "$GUEST" = "true" -a "$EUID" -eq 0 ]; then
|
||||
xhost + >/dev/null 2>/dev/null
|
||||
exec su -c "$EXECUTABLE "$@"" guest
|
||||
fi
|
||||
|
||||
exec "$EXECUTABLE" "$@"
|
||||
|
||||
fi
|
||||
|
|
@ -4,7 +4,7 @@ COMMAND=$(
|
|||
xlunch --input /etc/xlunch/logout.dsv --noprompt --border auto --sideborder auto --columns 3 --rows 1 \
|
||||
--background /usr/share/wallpapers/slax_wallpaper.jpg --font DejaVuSans/11 \
|
||||
--voidclickterminate --iconpadding 30 --textpadding 10 \
|
||||
--paddingswap --leastmargin 10 --hidemissing --iconsize 128 \
|
||||
--leastmargin 10 --hidemissing --iconsize 128 \
|
||||
--highlight /usr/share/icons/hicolor/128x128/apps/xlunch_highlight.png \
|
||||
--outputonly
|
||||
)
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
#!/bin/bash
|
||||
|
||||
SIGNAL=~/.fehbg
|
||||
rm -f $SIGNAL
|
||||
|
||||
OUTPUT=$(xrandr 2>/dev/null | grep -iv disconnected | grep -i 'connected' | head -n 1 | cut -d " " -f 1)
|
||||
MODE=$1
|
||||
|
||||
xrandr --output $OUTPUT --mode $MODE -s $MODE
|
||||
|
||||
while [ -e $SIGNAL ]; do
|
||||
sleep 0.1
|
||||
done
|
||||
|
||||
sleep 1
|
||||
|
||||
killall -SIGUSR1 compton
|
||||
|
Before Width: | Height: | Size: 197 B After Width: | Height: | Size: 197 B |
|
Before Width: | Height: | Size: 197 B After Width: | Height: | Size: 197 B |
|
Before Width: | Height: | Size: 196 B After Width: | Height: | Size: 196 B |
|
Before Width: | Height: | Size: 171 B After Width: | Height: | Size: 171 B |
|
Before Width: | Height: | Size: 175 B After Width: | Height: | Size: 175 B |
|
Before Width: | Height: | Size: 171 B After Width: | Height: | Size: 171 B |
|
Before Width: | Height: | Size: 152 B After Width: | Height: | Size: 152 B |
|
Before Width: | Height: | Size: 152 B After Width: | Height: | Size: 152 B |
|
Before Width: | Height: | Size: 152 B After Width: | Height: | Size: 152 B |
|
After Width: | Height: | Size: 8.1 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 543 B After Width: | Height: | Size: 543 B |
|
Before Width: | Height: | Size: 141 B After Width: | Height: | Size: 141 B |