migrating from old repo

main
Matt Compton 3 years ago
commit fd82cbe279

3
.gitignore vendored

@ -0,0 +1,3 @@
*.iso
sysroot/
sysroot.*

@ -0,0 +1,13 @@
# PearISO
Build the (new) Arch-based pear iso.
## Packages:
* `pacman-contrib`
* `archiso`
That's all, I think
## Build ISO:
* `build_iso.sh`
* If you get an error about `/tmp/<something>` running out of space, reboot (to clear tmpfs), then edit the `WORKDIR=...` line to a regular dir name.
* This (could) happen because the script is written to make a temp dir in `/tmp`, which is a virtual FS that lives in RAM.
* If it happens to many people, we can just add a commandline arg to change `WORKDIR`

@ -0,0 +1,25 @@
rm -fv pearos-live-*.iso
"""
fallocate -l800M sysroot.img
loopdev=$(sudo losetup -Pf --show sysroot.img)
sudo mkfs.ext4 ${loopdev}
sysrootwork=$(mktemp -d)
sudo mount ${loopdev} $sysrootwork
sudo pacstrap ${sysrootwork} $(cat sysrootpkgs)
sudo umount ${sysrootwork}
mv sysroot.img pear/airootfs/.
"""
WORKDIR=$(mktemp -d)
# idk if this would've happened automatically?
cp pear/pacman.conf pear/airootfs/etc/.
cp pear/packages.x86_64 pear/airootfs/etc/packages.x86_64
cp /etc/pacman.d/mirrorlist pear/airootfs/etc/pacman.d/.
echo "Built on $(date +"%D @ %T EST")" > pear/airootfs/etc/buildstamp
time sudo ./mkarchiso -v -w $WORKDIR -o . pear
sudo rm -rf $WORKDIR
if [[ "$1" == "docker" ]]; then
cp *.iso /output/.
fi

@ -0,0 +1,18 @@
#!/bin/bash
# This file is run via mkarchiso while chrooted as the new system
echo "We're in the new system. :)"
echo "Performing minor tweaks"
sed -i 's/Arch/PearOS/g' /etc/issue
sed -i 's/Arch/PearOS/g' /etc/arch-release
sed -i 's/Arch/PearOS/g' /etc/os-release
echo "PearLive" > /etc/hostname
#reflector --latest 5 --sort rate --save /etc/pacman.d/mirrorlist
echo "sudo reflector --verbose --latest 5 --sort rate --save /etc/pacman.d/mirrorlist" >> /usr/bin/mirrorsetup
chmod +x /usr/bin/mirrorsetup
# We don't add carly until here so that our packages which change
# /etc/skel have been installed already
/usr/bin/useradd -m carly
/usr/bin/usermod -p $(echo "pear" | openssl passwd -6 -stdin) carly
/usr/bin/usermod -p $(echo "pear" | openssl passwd -6 -stdin) root
/usr/bin/chmod +x /home/carly/.xinitrc
echo "Configured the 'carly' user. Exiting chroot."

@ -0,0 +1,11 @@
#!/bin/bash
echo "inject.sh started."
echo "Chrooting to $1, and running chrooted.sh"
cp chrooted.sh ${1}/.
chmod +x ${1}/chrooted.sh
chroot $1 /bin/bash -c ./chrooted.sh
rm ${1}/chrooted.sh
echo "inject.sh completed."

File diff suppressed because it is too large Load Diff

@ -0,0 +1 @@
Built on 04/17/21 @ 00:24:06 EST

@ -0,0 +1,2 @@
permit persist root
permit persist carly

@ -0,0 +1,70 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run. Advanced users may wish to specify all system modules
# in this array. For instance:
# MODULES=(piix ide_disk reiserfs)
MODULES=()
# BINARIES
# This setting includes any additional binaries a given user may
# wish into the CPIO image. This is run last, so it may be used to
# override the actual binaries included by a given hook
# BINARIES are dependency parsed, so you may safely ignore libraries
BINARIES=()
# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in any way. This is useful for config files.
FILES=()
# HOOKS
# This is the most important setting in this file. The HOOKS control the
# modules and scripts added to the image, and what happens at boot time.
# Order is important, and it is recommended that you do not change the
# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for
# help on a given hook.
# 'base' is _required_ unless you know precisely what you are doing.
# 'udev' is _required_ in order to automatically load modules
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples:
## This setup specifies all modules in the MODULES setting above.
## No raid, lvm2, or encrypted root is needed.
# HOOKS=(base)
#
## This setup will autodetect all modules for your system and should
## work as a sane default
# HOOKS=(base udev autodetect block filesystems)
#
## This setup will generate a 'full' image which supports most systems.
## No autodetection is done.
# HOOKS=(base udev block filesystems)
#
## This setup assembles a pata mdadm array with an encrypted root FS.
## Note: See 'mkinitcpio -H mdadm' for more information on raid devices.
# HOOKS=(base udev block mdadm encrypt filesystems)
#
## This setup loads an lvm2 volume group on a usb device.
# HOOKS=(base udev block lvm2 filesystems)
#
## NOTE: If you have /usr on a separate partition, you MUST include the
# usr, fsck and shutdown hooks.
HOOKS=(base udev modconf archiso block filesystems)
# COMPRESSION
# Use this to compress the initramfs image. By default, gzip compression
# is used. Use 'cat' to create an uncompressed image.
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
#COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"
#COMPRESSION="zstd"
# COMPRESSION_OPTIONS
# Additional options for the compressor
#COMPRESSION_OPTIONS=()

@ -0,0 +1,11 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
# mkinitcpio preset file for the 'linux' package on archiso
PRESETS=('archiso')
ALL_kver='/boot/vmlinuz-linux'
ALL_config='/etc/mkinitcpio.conf'
archiso_image="/boot/initramfs-linux.img"

@ -0,0 +1,51 @@
xorg
xorg-xinit
arch-install-scripts
reflector
pacman-contrib
nano
doas
linux-firmware
plasma
ark
gnome-calendar
cheese
evince
noto-fonts-emoji
nautilus
firefox
gambas3
gpodder
gwenview
kate
kcalc
kmail
knotes
konsole
ktnef
kvantum-qt5
gnome-maps
gnome-software
gnome-software-packagekit-plugin
archlinux-appstream-data
rhythmbox
spectacle
vlc
gnome-todo
epiphany
latte-dock
dolphin
tk
pear-resources
pear-skel
palamares
base
cloud-init
linux
mkinitcpio
mkinitcpio-archiso
openssh
syslinux

@ -0,0 +1,111 @@
#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives
#
# SPDX-License-Identifier: GPL-3.0-or-later
#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir = /
#DBPath = /var/lib/pacman/
#CacheDir = /var/cache/pacman/pkg/
#LogFile = /var/log/pacman.log
#GPGDir = /etc/pacman.d/gnupg/
#HookDir = /etc/pacman.d/hooks/
HoldPkg = pacman glibc
#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
Architecture = auto
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg =
#IgnoreGroup =
#NoUpgrade =
#NoExtract =
# Misc options
#UseSyslog
Color
TotalDownload
ILoveCandy
# We cannot check disk space from within a chroot environment
#CheckSpace
#VerbosePkgLists
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
SigLevel = Never
LocalFileSigLevel = Never
RemoteFileSigLevel = Never
# NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Arch Linux
# packagers with `pacman-key --populate archlinux`.
#
# REPOSITORIES
# - can be defined here or included from another file
# - pacman will search repositories in the order defined here
# - local/custom mirrors can be added here or in separate files
# - repositories listed first will take precedence when packages
# have identical names, regardless of version number
# - URLs will have $repo replaced by the name of the current repo
# - URLs will have $arch replaced by the name of the architecture
#
# Repository entries are of the format:
# [repo-name]
# Server = ServerName
# Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#
# The testing repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.
#[testing]
#Include = /etc/pacman.d/mirrorlist
[pear]
Server = https://repo.xhec.us/pear
SigLevel = Never
[core]
Include = /etc/pacman.d/mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
#[community-testing]
#Include = /etc/pacman.d/mirrorlist
[community]
Include = /etc/pacman.d/mirrorlist
[aur]
Server = https://repo.xhec.us/aur
SigLevel = Never
# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here.
#[multilib-testing]
#Include = /etc/pacman.d/mirrorlist
#[multilib]
#Include = /etc/pacman.d/mirrorlist
# An example of a custom package repository. See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs

@ -0,0 +1,128 @@
################################################################################
################# Arch Linux mirrorlist generated by Reflector #################
################################################################################
# With: reflector -c us --sort age
# When: 2021-04-16 05:00:03 UTC
# From: https://www.archlinux.org/mirrors/status/json/
# Retrieved: 2021-04-16 05:00:03 UTC
# Last Check: 2021-04-16 04:38:40 UTC
Server = http://arch.mirror.square-r00t.net/$repo/os/$arch
Server = https://arch.mirror.square-r00t.net/$repo/os/$arch
Server = rsync://arch.mirror.square-r00t.net/arch/$repo/os/$arch
Server = http://mirror.lty.me/archlinux/$repo/os/$arch
Server = https://arch.mirror.constant.com/$repo/os/$arch
Server = rsync://arch.mirror.constant.com/archlinux/$repo/os/$arch
Server = http://arch.hu.fo/archlinux/$repo/os/$arch
Server = https://arch.hu.fo/archlinux/$repo/os/$arch
Server = rsync://arch.hu.fo/archlinux/$repo/os/$arch
Server = https://america.mirror.pkgbuild.com/$repo/os/$arch
Server = https://mirror.lty.me/archlinux/$repo/os/$arch
Server = rsync://mirror.lty.me/archlinux/$repo/os/$arch
Server = http://arch.mirror.constant.com/$repo/os/$arch
Server = http://arlm.tyzoid.com/$repo/os/$arch
Server = https://arlm.tyzoid.com/$repo/os/$arch
Server = rsync://arlm.tyzoid.com/archlinux/$repo/os/$arch
Server = http://mirror.hackingand.coffee/arch/$repo/os/$arch
Server = https://mirror.hackingand.coffee/arch/$repo/os/$arch
Server = rsync://mirror.hackingand.coffee/arch/$repo/os/$arch
Server = http://archmirror1.octyl.net/$repo/os/$arch
Server = https://archmirror1.octyl.net/$repo/os/$arch
Server = http://mirrors.ocf.berkeley.edu/archlinux/$repo/os/$arch
Server = https://mirrors.ocf.berkeley.edu/archlinux/$repo/os/$arch
Server = rsync://mirrors.ocf.berkeley.edu/archlinux/$repo/os/$arch
Server = https://zxcvfdsa.com/arch/$repo/os/$arch
Server = http://mirrors.rit.edu/archlinux/$repo/os/$arch
Server = https://mirrors.rit.edu/archlinux/$repo/os/$arch
Server = rsync://mirrors.rit.edu/archlinux/$repo/os/$arch
Server = http://mirrors.advancedhosters.com/archlinux/$repo/os/$arch
Server = rsync://mirrors.advancedhosters.com/archlinux/$repo/os/$arch
Server = http://mirror.kaminski.io/archlinux/$repo/os/$arch
Server = https://mirror.kaminski.io/archlinux/$repo/os/$arch
Server = http://mirror.dal10.us.leaseweb.net/archlinux/$repo/os/$arch
Server = http://mirror.sfo12.us.leaseweb.net/archlinux/$repo/os/$arch
Server = https://mirror.dal10.us.leaseweb.net/archlinux/$repo/os/$arch
Server = https://mirror.sfo12.us.leaseweb.net/archlinux/$repo/os/$arch
Server = rsync://mirror.dal10.us.leaseweb.net/archlinux/$repo/os/$arch
Server = rsync://mirror.sfo12.us.leaseweb.net/archlinux/$repo/os/$arch
Server = http://mirrors.acm.wpi.edu/archlinux/$repo/os/$arch
Server = rsync://mirrors.kernel.org/archlinux/$repo/os/$arch
Server = http://mirror.arizona.edu/archlinux/$repo/os/$arch
Server = https://mirror.arizona.edu/archlinux/$repo/os/$arch
Server = rsync://mirror.arizona.edu/archlinux/$repo/os/$arch
Server = http://mirrors.mit.edu/archlinux/$repo/os/$arch
Server = https://mirrors.mit.edu/archlinux/$repo/os/$arch
Server = rsync://mirrors.mit.edu/archlinux/$repo/os/$arch
Server = http://mirror.math.princeton.edu/pub/archlinux/$repo/os/$arch
Server = rsync://mirror.math.princeton.edu/pub/archlinux/$repo/os/$arch
Server = http://repo.ialab.dsu.edu/archlinux/$repo/os/$arch
Server = https://repo.ialab.dsu.edu/archlinux/$repo/os/$arch
Server = http://plug-mirror.rcac.purdue.edu/archlinux/$repo/os/$arch
Server = https://plug-mirror.rcac.purdue.edu/archlinux/$repo/os/$arch
Server = rsync://plug-mirror.rcac.purdue.edu/archlinux/$repo/os/$arch
Server = http://mirror.es.its.nyu.edu/archlinux/$repo/os/$arch
Server = rsync://mirror.es.its.nyu.edu/archlinux/$repo/os/$arch
Server = http://ca.us.mirror.archlinux-br.org/$repo/os/$arch
Server = http://il.us.mirror.archlinux-br.org/$repo/os/$arch
Server = http://iad.mirrors.misaka.one/archlinux/$repo/os/$arch
Server = https://iad.mirrors.misaka.one/archlinux/$repo/os/$arch
Server = rsync://iad.mirrors.misaka.one/archlinux/$repo/os/$arch
Server = http://ftp.sudhip.com/archlinux/$repo/os/$arch
Server = https://ftp.sudhip.com/archlinux/$repo/os/$arch
Server = http://dfw.mirror.rackspace.com/archlinux/$repo/os/$arch
Server = http://iad.mirror.rackspace.com/archlinux/$repo/os/$arch
Server = http://ord.mirror.rackspace.com/archlinux/$repo/os/$arch
Server = https://dfw.mirror.rackspace.com/archlinux/$repo/os/$arch
Server = https://iad.mirror.rackspace.com/archlinux/$repo/os/$arch
Server = https://ord.mirror.rackspace.com/archlinux/$repo/os/$arch
Server = rsync://dfw.mirror.rackspace.com/archlinux/$repo/os/$arch
Server = rsync://iad.mirror.rackspace.com/archlinux/$repo/os/$arch
Server = rsync://ord.mirror.rackspace.com/archlinux/$repo/os/$arch
Server = https://arch.rrig.gs/$repo/os/$arch
Server = rsync://arch.rrig.gs/arch/$repo/os/$arch
Server = http://mirrors.xtom.com/archlinux/$repo/os/$arch
Server = https://mirrors.xtom.com/archlinux/$repo/os/$arch
Server = http://mirrors.cat.pdx.edu/archlinux/$repo/os/$arch
Server = rsync://mirrors.cat.pdx.edu/archlinux/$repo/os/$arch
Server = http://mirror.siena.edu/archlinux/$repo/os/$arch
Server = rsync://mirror.siena.edu/archlinux/$repo/os/$arch
Server = http://mirror.cybersecurity.nmt.edu/archlinux/$repo/os/$arch
Server = https://mirror.cybersecurity.nmt.edu/archlinux/$repo/os/$arch
Server = http://mirror.umd.edu/archlinux/$repo/os/$arch
Server = rsync://mirror.umd.edu/archlinux/$repo/os/$arch
Server = http://archlinux.surlyjake.com/archlinux/$repo/os/$arch
Server = https://archlinux.surlyjake.com/archlinux/$repo/os/$arch
Server = http://mirror.cs.pitt.edu/archlinux/$repo/os/$arch
Server = rsync://mirror.cs.pitt.edu/archlinux/$repo/os/$arch
Server = http://mirror.stephen304.com/archlinux/$repo/os/$arch
Server = https://mirror.stephen304.com/archlinux/$repo/os/$arch
Server = http://mirrors.kernel.org/archlinux/$repo/os/$arch
Server = https://mirrors.kernel.org/archlinux/$repo/os/$arch
Server = http://mirrors.aggregate.org/archlinux/$repo/os/$arch
Server = rsync://mirrors.aggregate.org/archlinux/$repo/os/$arch
Server = http://mirrors.sonic.net/archlinux/$repo/os/$arch
Server = https://mirrors.sonic.net/archlinux/$repo/os/$arch
Server = rsync://mirrors.sonic.net/archlinux/$repo/os/$arch
Server = http://mirror.ette.biz/archlinux/$repo/os/$arch
Server = https://mirror.ette.biz/archlinux/$repo/os/$arch
Server = rsync://mirror.ette.biz/archlinux/$repo/os/$arch
Server = http://mirrors.liquidweb.com/archlinux/$repo/os/$arch
Server = rsync://mirrors.liquidweb.com/archlinux/$repo/os/$arch
Server = http://mirrors.gigenet.com/archlinux/$repo/os/$arch
Server = http://mirror.vtti.vt.edu/archlinux/$repo/os/$arch
Server = http://mirrors.xmission.com/archlinux/$repo/os/$arch
Server = http://repo.miserver.it.umich.edu/archlinux/$repo/os/$arch
Server = http://ftp.osuosl.org/pub/archlinux/$repo/os/$arch
Server = rsync://ftp.osuosl.org/archlinux/$repo/os/$arch
Server = http://mirror.metrocast.net/archlinux/$repo/os/$arch
Server = http://mirror.cs.vt.edu/pub/ArchLinux/$repo/os/$arch
Server = rsync://mirror.cs.vt.edu/archlinux/$repo/os/$arch
Server = http://distro.ibiblio.org/archlinux/$repo/os/$arch
Server = rsync://distro.ibiblio.org/archlinux/$repo/os/$arch
Server = http://mirror.pit.teraswitch.com/archlinux/$repo/os/$arch
Server = https://mirror.pit.teraswitch.com/archlinux/$repo/os/$arch
Server = rsync://mirror.pit.teraswitch.com/archlinux/$repo/os/$arch
Server = http://mirrors.rutgers.edu/archlinux/$repo/os/$arch
Server = https://mirrors.rutgers.edu/archlinux/$repo/os/$arch

@ -0,0 +1 @@
alias sudo="doas"

@ -0,0 +1,15 @@
#
# ~/.bashrc
#
if [ -z "${DISPLAY}" ] && [ "${XDG_VTNR}" -eq 1 ]; then
startx
fi
if [[ ! -f /etc/pacman.d/mirrorlist ]]; then
sudo reflector --verbose --latest 5 --sort rate --save /etc/pacman.d/mirrorlist
fi
# this shit makes tkinter work
xrdb -load /dev/null
xrdb -query

@ -0,0 +1,3 @@
#!/bin/bash
export DESKTOP_SESSION=plasma
exec startplasma-x11

@ -0,0 +1,116 @@
# $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $
# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.
# This sshd was compiled with PATH=/usr/local/sbin:/usr/local/bin:/usr/bin
# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options override the
# default value.
#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
#HostKey /etc/ssh/ssh_host_ed25519_key
# Ciphers and keying
#RekeyLimit default none
# Logging
#SyslogFacility AUTH
#LogLevel INFO
# Authentication:
#LoginGraceTime 2m
PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
#PubkeyAuthentication yes
# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile .ssh/authorized_keys
#AuthorizedPrincipalsFile none
#AuthorizedKeysCommand none
#AuthorizedKeysCommandUser nobody
# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes
# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no
# Change to no to disable s/key passwords
ChallengeResponseAuthentication no
# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no
# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes
#AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
#X11Forwarding no
#X11DisplayOffset 10
#X11UseLocalhost yes
#PermitTTY yes
PrintMotd no # pam does that
#PrintLastLog yes
#TCPKeepAlive yes
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS no
#PidFile /run/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel no
#ChrootDirectory none
#VersionAddendum none
# no default banner path
#Banner none
# override default of no subsystems
Subsystem sftp /usr/lib/ssh/sftp-server
# Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# PermitTTY no
# ForceCommand cvs server

@ -0,0 +1,2 @@
root ALL=(ALL) ALL
carly ALL=(ALL) NOPASSWD: ALL

@ -0,0 +1,10 @@
base
linux
nano
doas
linux-firmware
openssh
man-db
man-pages
texinfo
networkmanager

@ -0,0 +1,13 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
[Match]
Name=en*
Name=eth*
[Network]
DHCP=yes
IPv6PrivacyExtensions=yes
[DHCP]
RouteMetric=512

@ -0,0 +1,11 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
[Unit]
Description=Temporary /etc/pacman.d/gnupg directory
[Mount]
What=tmpfs
Where=/etc/pacman.d/gnupg
Type=tmpfs
Options=mode=0755

@ -0,0 +1,3 @@
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin carly --noclear %I 38400 linux

@ -0,0 +1,20 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
[Unit]
Description=Initializes Pacman keyring
Requires=etc-pacman.d-gnupg.mount
After=etc-pacman.d-gnupg.mount
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/bash -c "echo hi"
ExecStart=/usr/bin/pacman-key --init
ExecStart=/usr/bin/pacman-key --populate archlinux
ExecStart=/usr/bin/reflector --latest 5 --sort rate --save /etc/pacman.d/mirrorlist
ExecStart=/usr/bin/sed -i 's/#Server/Server/g' /etc/pacman.d/mirrorlist
[Install]
WantedBy=multi-user.target

@ -0,0 +1,5 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
[Service]
ExecStart=/usr/lib/systemd/systemd-networkd-wait-online --any

@ -0,0 +1,3 @@
if [ -z "${DISPLAY}" ] && [ "${XDG_VTNR}" -eq 1 ]; then
exec startx
fi

@ -0,0 +1,3 @@
#!/bin/bash
export DESKTOP_SESSION=plasma
exec startplasma-x11

@ -0,0 +1,7 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
title PearOS Live (x86_64, UEFI)
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%

@ -0,0 +1,5 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
timeout 3
default archiso-x86_64-linux.conf

@ -0,0 +1,51 @@
xorg
xorg-xinit
arch-install-scripts
reflector
pacman-contrib
nano
doas
linux-firmware
plasma
ark
gnome-calendar
cheese
evince
noto-fonts-emoji
nautilus
firefox
gambas3
gpodder
gwenview
kate
kcalc
kmail
knotes
konsole
ktnef
kvantum-qt5
gnome-maps
gnome-software
gnome-software-packagekit-plugin
archlinux-appstream-data
rhythmbox
spectacle
vlc
gnome-todo
epiphany
latte-dock
dolphin
tk
pear-resources
pear-skel
palamares
base
cloud-init
linux
mkinitcpio
mkinitcpio-archiso
openssh
syslinux

@ -0,0 +1,111 @@
#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives
#
# SPDX-License-Identifier: GPL-3.0-or-later
#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir = /
#DBPath = /var/lib/pacman/
#CacheDir = /var/cache/pacman/pkg/
#LogFile = /var/log/pacman.log
#GPGDir = /etc/pacman.d/gnupg/
#HookDir = /etc/pacman.d/hooks/
HoldPkg = pacman glibc
#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
Architecture = auto
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg =
#IgnoreGroup =
#NoUpgrade =
#NoExtract =
# Misc options
#UseSyslog
Color
TotalDownload
ILoveCandy
# We cannot check disk space from within a chroot environment
#CheckSpace
#VerbosePkgLists
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
SigLevel = Never
LocalFileSigLevel = Never
RemoteFileSigLevel = Never
# NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Arch Linux
# packagers with `pacman-key --populate archlinux`.
#
# REPOSITORIES
# - can be defined here or included from another file
# - pacman will search repositories in the order defined here
# - local/custom mirrors can be added here or in separate files
# - repositories listed first will take precedence when packages
# have identical names, regardless of version number
# - URLs will have $repo replaced by the name of the current repo
# - URLs will have $arch replaced by the name of the architecture
#
# Repository entries are of the format:
# [repo-name]
# Server = ServerName
# Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#
# The testing repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.
#[testing]
#Include = /etc/pacman.d/mirrorlist
[pear]
Server = https://repo.xhec.us/pear
SigLevel = Never
[core]
Include = /etc/pacman.d/mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
#[community-testing]
#Include = /etc/pacman.d/mirrorlist
[community]
Include = /etc/pacman.d/mirrorlist
[aur]
Server = https://repo.xhec.us/aur
SigLevel = Never
# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here.
#[multilib-testing]
#Include = /etc/pacman.d/mirrorlist
#[multilib]
#Include = /etc/pacman.d/mirrorlist
# An example of a custom package repository. See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs

@ -0,0 +1,15 @@
#!/usr/bin/env bash
# shellcheck disable=SC2034
iso_name="pearos-live"
iso_label="PEAR_$(date +%Y%m)"
iso_publisher="PearOS Linux <https://github.com/phoenix277yt/PearOS-arch>"
iso_application="PearOS Live"
iso_version="$(date +%Y.%m.%d)"
install_dir="arch"
bootmodes=('bios.syslinux.mbr' 'bios.syslinux.eltorito' 'uefi-x64.systemd-boot.esp' 'uefi-x64.systemd-boot.eltorito')
arch="x86_64"
pacman_conf="pacman.conf"
airootfs_image_type="squashfs"
airootfs_image_tool_options=('-comp' 'xz' '-Xbcj' 'x86' '-b' '1M' '-Xdict-size' '1M')
file_permissions=()

@ -0,0 +1,8 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
LABEL arch
MENU LABEL PearOS Live (x86_64, BIOS)
LINUX /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux
INITRD /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux.img
APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%

@ -0,0 +1,11 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
UI menu.c32
MENU TITLE Pear OS
MENU CLEAR
DEFAULT arch
TIMEOUT 30
INCLUDE syslinux-linux.cfg

@ -0,0 +1,2 @@
base
pacman
Loading…
Cancel
Save