fedora-riscv-kickstarts/fedora-riscv64-developer-f4...

528 lines
9.3 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Kickstart file for Fedora RISC-V (riscv64) Developer F40
#repo --name="koji-override-0" --baseurl=http://fedora.riscv.rocks/repos-dist/f40/latest/riscv64/
#install
text
#reboot
lang en_US.UTF-8
keyboard us
# short hostname still allows DHCP to assign domain name
network --bootproto dhcp --device=link --hostname=fedora-riscv --activate
rootpw --plaintext fedora_rocks!
firewall --enabled --ssh
timezone --utc US/Eastern
selinux --enforcing
services --disabled=lm_sensors,libvirtd
zerombr
clearpart --all --initlabel --disklabel=gpt
part /boot/efi --size=100 --fstype=efi
part /boot --size=1000 --fstype=ext4 --label=boot
part btrfs.007 --size=7000 --fstype=btrfs --grow
btrfs none --label=fedora btrfs.007
btrfs /home --subvol --name=home LABEL=fedora
btrfs / --subvol --name=root LABEL=fedora
bootloader --location=mbr --timeout=1
# Halt the system once configuration has finished.
poweroff
%packages
@core
@buildsys-build
@hardware-support
@rpm-development-tools
@c-development
@development-tools
@anaconda-tools
# GRUB2
grub2-efi-riscv64
grub2-efi-riscv64-modules
efibootmgr
# Add for sd-boot
#systemd-boot-unsigned
#edk2-ext4
kernel
kernel-core
kernel-devel
kernel-modules
kernel-modules-extra
linux-firmware
opensbi-unstable
uboot-tools
uboot-images-riscv64
# Remove this in %post
dracut-config-generic
-dracut-config-rescue
# For user creation and manipulation
shadow-utils
passwd
# Adding kiwi for disk image generation
kiwi-cli
# Install the English locale, but not all the other ones
glibc-langpack-en
-glibc-all-langpacks
glibc-static
lsof
nano
openrdate
chrony
systemd-udev
vim-minimal
neovim
screen
hostname
bind-utils
htop
tmux
strace
pciutils
nfs-utils
ethtool
rsync
hdparm
git
tig
mercurial
breezy
moreutils
rpmdevtools
fedpkg
mailx
mutt
patchutils
ninja-build
cmake
extra-cmake-modules
elfutils
gdisk
util-linux
parted
fpaste
vim-common
hexedit
xxd
hexyl
poke
poke-devel
poke-vim
poke-emacs
koji-builder
mc
evemu
lftp
mtr
traceroute
wget
curl
aria2
incron
emacs
vim
neofetch
#bash-completion
zsh
tcsh
nvme-cli
pv
dtc
axel
bc
bison
elfutils-devel
flex
m4
man-db
net-tools
openssl-devel
perl-devel
perl-generators
pesign
elinks
lynx
entr
cowsay
ack
the_silver_searcher
tldr
ncdu
colordiff
prettyping
qemu-guest-agent
iptables-services
autoconf
autoconf-archive
automake
gettext
nnn
gdb
libtool
texinfo
policycoreutils
policycoreutils-python-utils
setools-console
coreutils
setroubleshoot-server
audit
selinux-policy
selinux-policy-targeted
execstack
stress-ng
realtime-tests
python3-pyelftools
python3-virt-firmware
inxi
# Below packages are needed for creating disk images via koji-builder
livecd-tools
python-imgcreate-sysdeps
python3-imgcreate
python3-pyparted
isomd5sum
python3-isomd5sum
pykickstart
python3-kickstart
python3-ordered-set
appliance-tools
pycdio
qemu-img
nbdkit
nbd
bdsync
# end of creating disk image packages list
dosfstools
btrfs-progs
compsize
e2fsprogs
f2fs-tools
jfsutils
mtd-utils
ntfsprogs
udftools
xfsprogs
kpartx
guestfs-tools
rpkg
binwalk
bloaty
bpftool
kernel-tools
perf
python3-perf
libgpiod
libgpiod-c++
libgpiod-devel
libgpiod-utils
python3-libgpiod
i2c-tools
i2c-tools-perl
libi2c
libi2c-devel
python3-i2c-tools
spi-tools
# Add gcc packages
cpp
gcc
gcc-c++
gcc-gdb-plugin
gcc-gfortran
gcc-plugin-devel
libatomic
libatomic-static
libgcc
libgfortran
libgfortran-static
libgomp
libstdc++
libstdc++-devel
libstdc++-static
pax-utils
gcc-gnat
libgnat
libgnat-devel
libgnat-static
usbutils
haveged
# end of gcc packages
watchdog
# Lets resize / on first boot
#dracut-modules-growroot
dnscrypt-proxy
meson
cloud-utils-growpart
iperf3
sysstat
fio
memtester
fuse-sshfs
zstd
xz
NetworkManager-tui
cheat
ddrescue
glances
python3-psutil
# Add dependencies (BR) for kernel, gcc, gdb, binutils, rpm, util-linux, glibc,
# bash and coreutils
# audit-libs-devel
# bzip2-devel
# dblatex
# dbus-devel
# dejagnu
# docbook5-style-xsl
# dwarves
# expat-devel
# fakechroot
# file-devel
# gd-devel
# gettext-devel
# glibc-all-langpacks
# ima-evm-utils-devel
# isl-devel
# libacl-devel
# libarchive-devel
# libattr-devel
# libbabeltrace-devel
# libcap-devel
# libcap-ng-devel
# libdb-devel
# libpng-devel
# libselinux-devel
# libuser-devel
# libutempter-devel
# libzstd-devel
# lua-devel
# ncurses-devel
# pam-devel
# pcre2-devel
# perl
# popt-devel
# python3-devel
# python3-langtable
# python3-sphinx
# readline-devel
# rpm-devel
# sharutils
# source-highlight-devel
# systemd-devel
# texinfo-tex
# texlive-collection-latex
# texlive-collection-latexrecommended
# zlib-static
# end of dependencies (BR)
dos2unix
fwts
acpica-tools
glib
glib2
dkms
expect
openssl
gnutls-utils
iw
info
jq
sysfsutils
# golang
# golang-bin
bmap-tools
flashrom
# glib-devel
# glib2-devel
# json-c-devel
# libbsd-devel
# libxcb-devel
# zlib-devel
# xxhash-devel
# xz-devel
# mpfr-devel
# libmd-devel
# libjpeg-devel
# libglvnd-devel
# libglvnd-core-devel
# libgcrypt-devel
# libgbm-devel
# kmod-devel
# keyutils-libs-devel
# Judy-devel
# eigen3-devel
# libaio-devel
# xorg-x11-proto-devel
# lksctp-tools-devel
# brotli-devel
# libuv-devel
# libnghttp2-devel
# libicu-devel
# libX11-devel
# libXtst-devel
# libXt-devel
# libXrender-devel
# libXrandr-devel
# libXi-devel
# libXext-devel
# libXau-devel
# cups-devel
# fontconfig-devel
# alsa-lib-devel
# freetype-devel
# libdwarf-devel
# gnulib-devel
koji-builder-plugin-rpmautospec
python3-rpmautospec
rpmautospec
koji-builder-plugins
# rust
# cargo
vmtouch
podman
podmansh
buildah
skopeo
toolbox
crun
libtirpc-devel
# Avoid pulling these packages by default via COMPS
-valgrind
-s390utils
%end
%post
# Disable default repositories (not riscv64 in upstream)
dnf config-manager --set-disabled rawhide updates updates-testing fedora fedora-cisco-openh264
dnf -y remove dracut-config-generic
# systemd on no-SMP boots (i.e. single core) sometimes timeout waiting for storage
# devices. After entering emergency prompt all disk are mounted.
# For more information see:
# https://www.suse.com/support/kb/doc/?id=7018491
# https://www.freedesktop.org/software/systemd/man/systemd.mount.html
# https://github.com/systemd/systemd/issues/3446
# We modify /etc/fstab to give more time for device detection (the problematic part)
# and mounting processes. This should help on systems where boot takes longer.
sed -i 's|noatime|noatime,x-systemd.device-timeout=300s,x-systemd.mount-timeout=300s|g' /etc/fstab
# Create regular user
/usr/sbin/useradd -c "Fedora RISCV User" riscv
echo fedora_rocks! | passwd --stdin riscv
/usr/sbin/usermod -aG wheel riscv
/usr/sbin/usermod -aG mock riscv
# Create Fedora RISC-V repo
cat << EOF > /etc/yum.repos.d/fedora-riscv.repo
[fedora-riscv]
name=Fedora RISC-V
baseurl=http://fedora.riscv.rocks/repos-dist/f40/latest/riscv64/
#baseurl=https://dl.fedoraproject.org/pub/alt/risc-v/repo/fedora/f40/latest/riscv64/
#baseurl=https://mirror.math.princeton.edu/pub/alt/risc-v/repo/fedora/f40/latest/riscv64/
enabled=1
gpgcheck=0
[fedora-riscv-debuginfo]
name=Fedora RISC-V - Debug
baseurl=http://fedora.riscv.rocks/repos-dist/f40/latest/riscv64/debug/
#baseurl=https://dl.fedoraproject.org/pub/alt/risc-v/repo/fedora/f40/latest/riscv64/debug/
#baseurl=https://mirror.math.princeton.edu/pub/alt/risc-v/repo/fedora/f40/latest/riscv64/debug/
enabled=0
gpgcheck=0
[fedora-riscv-source]
name=Fedora RISC-V - Source
baseurl=http://fedora.riscv.rocks/repos-dist/f40/latest/src/
#baseurl=https://dl.fedoraproject.org/pub/alt/risc-v/repo/fedora/f40/latest/src/
#baseurl=https://mirror.math.princeton.edu/pub/alt/risc-v/repo/fedora/f40/latest/src/
enabled=0
gpgcheck=0
EOF
# Create Fedora RISC-V Koji repo
cat << EOF > /etc/yum.repos.d/fedora-riscv-koji.repo
[fedora-riscv-koji]
name=Fedora RISC-V Koji
baseurl=http://fedora.riscv.rocks/repos/f40-build/latest/riscv64/
enabled=0
gpgcheck=0
EOF
# Disable tmpfs for /tmp
# Most boards don't have a lot of RAM.
systemctl mask tmp.mount
# setup login message
cat << EOF | tee /etc/issue /etc/issue.net
Welcome to the Fedora/RISC-V disk image
https://fedoraproject.org/wiki/Architectures/RISC-V
Build date: $(date --utc)
Kernel \r on an \m (\l)
The root password is 'fedora_rocks!'.
root password logins are disabled in SSH starting Fedora 31.
User 'riscv' with password 'fedora_rocks!' in 'wheel' and 'mock' groups
is provided.
To install new packages use 'dnf install ...'
To upgrade disk image use 'dnf upgrade --best'
If DNS isnt working, try editing /etc/yum.repos.d/fedora-riscv.repo.
For updates and latest information read:
https://fedoraproject.org/wiki/Architectures/RISC-V
Fedora/RISC-V
-------------
Koji: http://fedora.riscv.rocks/koji/
SCM: http://fedora.riscv.rocks:3000/
Distribution rep.: http://fedora.riscv.rocks/repos-dist/
Koji internal rep.: http://fedora.riscv.rocks/repos/
EOF
# Remove machine-id on pre generated images
rm -f /etc/machine-id
touch /etc/machine-id
# remove random seed, the newly installed instance should make it's own
rm -f /var/lib/systemd/random-seed
# Note that running rpm recreates the rpm db files which aren't needed or wanted
rm -f /var/lib/rpm/__db*
# Start with a clean dnf history
rm -rf /var/lib/dnf/history.*
# go ahead and pre-make the man -k cache (#455968)
/usr/bin/mandb
# make sure there aren't core files lying around
rm -f /core*
releasever=$(rpm --eval '%{fedora}')
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-primary
echo "Packages within this disk image"
rpm -qa --qf '%{size}\t%{name}-%{version}-%{release}.%{arch}\n' |sort -rn
%end
# EOF