From: Henrik Carlqvist on
Mike Jones <Not(a)Arizona.Bay> wrote:
> Reqest to Slackware installation media developers:
>
> Can we (extra pretty) PLEASE have Nano on the install disks?

In case you wont get your request fulfilled and still feel the need for
these or other applications it might be useful to know that it is rather
easy to customize the installation disk.

I have written a Makefile to build my own installation disks with custom
contents:

-8<---------------------------------------------
PACKAGE_DIRS = $(shell find ../slackware/ \( -type d -o -type l \) \
-exec basename {} \;| \
grep -v slackware | grep -v PACKAGES.TXT )
KERNELS = $(shell find kernels/ \( -type d -o -type l \) \
-exec basename {} \;| \
grep -v kernels | sort | xargs echo )
BZIMAGES = $(KERNELS:%=kernels/%/bzImage)

KERNEL_VERSION = 2.6.24.5

LINUX_SRC = kernel_and_patches/linux-$(KERNEL_VERSION).tar.gz
PATCHES = $(wildcard kernel_and_patches/*.patch)

PKG_BUILD_DIR = /var/tmp/henca/tmp/pkg_build
KERNEL_BUILD_DIR = /var/tmp/kernel_build/linux-$(KERNEL_VERSION)

..INTERMEDIATE: $(KERNEL_BUILD_DIR) $(PKG_BUILD_DIR)

KERNEL_PATCH_PKG_DIR = slackware/kernel-upgrades

PREV_PATCH_NR = $(shell ((ls $(KERNEL_PATCH_PKG_DIR)/*.tgz 2> /dev/null || \
echo 1) | \
sed -e 's/.tgz//' | \
awk 'BEGIN {FS="-"} ; {print $$NF}' | sort | tail -1))

PATCH_NR = $(strip $(shell (ls $(KERNEL_PATCH_PKG_DIR)/*.tgz 2> /dev/null || \
echo 0) | \
sed -e 's/.tgz//' | \
awk 'BEGIN {FS="-"} ; {print $$NF}' | sort | tail -1 | \
xargs echo 1+ | bc ))
PREV_PATCH_PKG_FILE= kernel-patches-$(KERNEL_VERSION)-i486-$(PREV_PATCH_NR).tgz
KERNEL_PATCH_PKG_FILE = kernel-patches-$(KERNEL_VERSION)-i486-$(PATCH_NR).tgz
PREV_PATCH_PKG = $(KERNEL_PATCH_PKG_DIR)/$(PREV_PATCH_PKG_FILE)
KERNEL_PATCH_PKG= $(shell pwd)/$(KERNEL_PATCH_PKG_DIR)/$(KERNEL_PATCH_PKG_FILE)

# Clean up kernel build directory
all: /var/tmp/dvd_install.iso
$(RM) -r $(KERNEL_BUILD_DIR) $(PKG_BUILD_DIR)

# Only one kernel can be built at a time
..NOTPARALLEL:

/var/tmp/dvd_install.iso: nfs_install.iso isolinux/setpkg.nfs \
$(wildcard slackware/*/*) \
$(PREV_PATCH_PKG)
cd isolinux && ln -sf setpkg.dvd setpkg && cd ..
mkisofs -o $@ \
-R -J -V "My Slamd121 Install `date +%y%m%d`" \
-hide-rr-moved -f\
-v -d -N -no-emul-boot -boot-load-size 4 -boot-info-table \
-sort isolinux/iso.sort \
-b isolinux/isolinux.bin \
-c isolinux/isolinux.boot \
-x initrd_src \
-A "My Slamd121 Install DVD" .
echo $@ created

nfs_install.iso: isolinux/isolinux.cfg \
isolinux/message.txt \
isolinux/initrd.img \
isolinux/setpkg.nfs \
$(wildcard isolinux/*.img isolinux/*.dsk)
cd isolinux && ln -sf setpkg.nfs setpkg && cd ..
mkisofs -o $@ \
-R -J -V "My Slamd121 NFS Install `date +%y%m%d`" \
-hide-rr-moved -f\
-v -d -N -no-emul-boot -boot-load-size 4 -boot-info-table \
-sort isolinux/iso.sort \
-b isolinux/isolinux.bin \
-c isolinux/isolinux.boot \
-x slackware \
-x nfs_install.iso \
-x initrd_src \
-A "My Slamd121 NFS Install CD" .

isolinux/isolinux.cfg: isolinux/isolinux.cfg.start isolinux/message.txt
cp $@.start $@
for KERNEL in $(KERNELS); do \
echo "label $$KERNEL" >> $@; \
echo "kernel /kernels/$$KERNEL/bzImage" >> $@; \
echo -n "append initrd=initrd.img load_ramdisk=1 " >> $@; \
echo "prompt_ramdisk=0 rw SLACK_KERNEL=$$KERNEL" >> $@; \
done

isolinux/message.txt: isolinux/message.txt.start $(BZIMAGES)
cp $@.start $@
echo $(KERNELS) | fold -s >> $@

isolinux/initrd.img: initrd_src $(shell find initrd_src -type d -o -type f )
cd $< && find . | cpio -o -H newc | gzip > ../$@

initrd_src:
ifeq ($(shell whoami),root)
mkdir $@ && cd $@ && gzip -d < ../isolinux/initrd.img | cpio -i
else
@echo Run \"make initrd_src\" as root! && false
endif
slack_dirs:
find slackware -type l -exec $(RM) {} \;
cd slackware && \
ln -s $(foreach DIR, $(PACKAGE_DIRS), ../../slackware/$(DIR)) .

kernels/%/bzImage: $(KERNEL_BUILD_DIR) kernels/%/config
echo Compiling $@
cp $(@D)/config $</.config
cd $< && make bzImage
$(RM) $(@D)/System.map.gz
cp $</arch/x86_64/boot/bzImage $@
cp $</System.map $(@D)
gzip -9 $(@D)/System.map

$(KERNEL_BUILD_DIR): $(LINUX_SRC) $(wildcard kernels/*/config) $(PATCHES)
mkdir -p $(@D)
cat $< | (cd $(@D) && tar -xzvf -)
$(foreach PATCH, $(PATCHES), \
cat $(PATCH) | (cd $@ && patch -p1) &&) true;

$(PREV_PATCH_PKG): $(BZIMAGES)
( echo " Patched kernel" && echo && \
tail -9 kernel_and_patches/patches.txt | \
awk '{$$1=""; print $$0}' && printf "\n\n\n\n\n\n\n\n\n\n" ) | \
sed -e 's/^/kernel-patches:/' | head -11 > \
$(KERNEL_PATCH_PKG:%.tgz=%.txt)
mkdir -p $(PKG_BUILD_DIR)/install/new_kernels
cp -rp $(KERNELS:%=kernels/%) $(PKG_BUILD_DIR)/install/new_kernels
cp kernel_and_patches/doinst.sh $(PKG_BUILD_DIR)/install
cd $(PKG_BUILD_DIR) && /sbin/makepkg -c n $(KERNEL_PATCH_PKG)
-8<---------------------------------------------

The rule to look at above is the rule for isolinux/initrd.img which takes
the contents of initrd_src and creates your new initrd.img. If you have
a working nano in the directory tree of initrd_src you will get nano on
the installation disk.

If initrd_src doesn't already exist it is created by unpacking the
contents of your current isolinux/initrd.img. This unpacking with cpio has
to be done as root to keep ownership of files in the directory tree, all
the other targets can be built as a normal user.

The Makefile above does a lot more than just creating a custom initrd.img,
it also patches and builds kernels with different configurations and
creates a install DVD image as well as a smaller CD image used for NFS
installs. Your imagination is the only limit on how Slackware can be
customized.

regards Henrik
--
The address in the header is only to prevent spam. My real address is:
hc3(at)poolhem.se Examples of addresses which go to spammers:
root(a)localhost postmaster(a)localhost

From: Grant on
On Wed, 25 Nov 2009 11:11:21 GMT, Mike Jones <Not(a)Arizona.Bay> wrote:

>
>
>Reqest to Slackware installation media developers:
>
>Can we (extra pretty) PLEASE have Nano on the install disks?

Use vi, it's on any unix or unix-like OS -- worth knowing vi for that
reason alone.
>
>Midnight Commander would be nice too, and there is plenty of room on the
>DVD for these distinctly useful tools.

Why? It's a clone of an old messy-dos tool.

Grant.
--
http://bugsplatter.id.au
From: Dan C on
On Wed, 25 Nov 2009 20:11:43 +0000, Mike Jones wrote:

> Responding to boltar2003:
>
>> On Wed, 25 Nov 2009 16:15:27 GMT
>> Mike Jones <Not(a)Arizona.Bay> wrote:
>>>For the record, vi isn't so much an editor as an ingenious puzzle game.
>>>Not the kind of thing you want to find is your only option when
>>>attempting a repair hack from the install bootdisk.
>>
>> Anyone who can repair a system from the bootdisk system is probably
>> more than capable of using vi. Yes its rubbish but vi is the de facto
>> standard unix text editor and you must assume that one day it might be
>> your only option and hence you should learn it.
>>
>> B2003
>
>
> I can also slam my hand in a car door repeatedly, but there are better
> ways to close a car door too. :\

Poor logic, and poor analogy.

> I found much better tools than the overly-incantational vi (and clones),
> and Nano is streets ahead as a lightweight intuitive "pick it up and use
> it" terminal tool. This is why I consider it to be the best fallback
> editor over some other stuff that just soaks up too much brainspace when
> you're trying to figure out what went wrong with something else.

Did you miss the part about 'vi' being the de facto standard unix text
editor, which will nearly always be available on any *nix system? Not
knowing how to use it does yourself a disservice. What will you do if
someday you are called upon to fix/edit a real Unix system?

It's no harder to use than anything else, once you spend an hour or two
learning it. You probably spent more time on learning your newsreader,
or email client. Why not learn an editor in the same fashion?


--
"Ubuntu" -- an African word, meaning "Slackware is too hard for me".
"Bother!" said Pooh, as he wiped the vomit from his chin.
Usenet Improvement Project: http://twovoyagers.com/improve-usenet.org/
From: Keith Keller on
On 2009-11-25, Keith Keller <kkeller-usenet(a)wombat.san-francisco.ca.us> wrote:
>
> You might ask if SlackBuilds will support a build script (or better
> still, you can provide one).

Ah, I misunderstood the question, sorry. You'd need to build your own
install image, not just a slackbuild. In this case, I think building a
custom image is documented on the Slackware DVD, but I could be wrong
about that.

--keith



--
kkeller-usenet(a)wombat.san-francisco.ca.us
(try just my userid to email me)
AOLSFAQ=http://www.therockgarden.ca/aolsfaq.txt
see X- headers for PGP signature information

From: Grant on
On Wed, 25 Nov 2009 21:23:26 +0000 (UTC), Frank Boehm <fraboehm(a)gmx.de> wrote:

>Mike Jones <Not(a)arizona.bay> wrote:
>
>> If you're going to have obscure stuff like joe and jove in the default
>> install, the Nano should be in there too, to be fair about it.
>
>hey, nothing obscure here, I like joe,
>wordstar and TurboPascal key movement is deeply ingrained in me for
^^^^^^^^--> my left hand still hates wordstar cursor movement ;)
>decades

Grant.
--
http://bugsplatter.id.au