1 Commits

Author SHA1 Message Date
everest
a94ed2f723 Delete glacier-install.sh 2022-03-09 01:31:27 +00:00
12 changed files with 5 additions and 532 deletions

View File

@@ -1,3 +1,6 @@
# glacier3
# Glacier
Glacier is the package manager developed for Everest Linux. It automatically fetches a tarball, unzips it, and compiles it.
Glacier3 is a testing ground for the upcoming Glacier rewrite
For Glacier to work properly, it needs the following directories to be made:
`/usr/local/lib/glacier/packages`

6
TODO
View File

@@ -1,6 +0,0 @@
### TODO LIST ###
#- fix messages not printing (ASAP)
#- fix archives not downloading
# /usr/bin/gscripts: line 37: /nano.tar.gz: No such file or directory
#- Colors not printing

View File

@@ -1,24 +0,0 @@
#!/bin/sh
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
printf " [ * ] Installation Script must be run as root.\n"
exit 0
fi
# Create directories
mkdir /etc/glacier
mkdir /etc/glacier/pkginfo
mkdir /var/log/glacier
mkdir /var/cache/glacier
# Install Scripts
cd ../src
chmod +x *
cp glacier /usr/bin/glacier
cp glacier.conf /etc/glacier.conf
cp glacier_release /etc/glacier/glacier_release
cp gscripts /usr/bin/gscripts
cp messages /etc/glacier/messages
cp hooks /etc/glacier/hooks
printf "done\n"

View File

@@ -1,9 +0,0 @@
=== Executables ===
/usr/bin/glacier
/usr/bin/gscripts
=== Settings/Other files ===
/etc/glacier/glacier_release
/etc/glacier/hooks
/etc/glacier.conf
/etc/make.conf

View File

@@ -1,289 +0,0 @@
#!/bin/sh
# Glacier - A simple package management system written in POSIX sh
# Copyright (C) 2022 Everest Linux Development Group
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
# Preloading
/usr/bin/gscripts preload
source $(pwd)/messages # this is here for the sole purpose of testing
source /etc/glacier/messages
input = ${2}
# Main Script
while [[ $# -gt 0 ]]; do
case $1 in
-h|--help)
printf "$blue [ * ] Glacier - Manage packages on the system [ * ] $reset\n"
printf "$blue=== Information ====================================================================================$reset\n"
printf "$ glacier {-h --help} show this message and exit\n"
printf "$ glacier {--version} display the current Glacier version and exit\n"
printf "$blue=== Package Operations =============================================================================$reset\n"
printf "# glacier {install -f} install a package to the system\n"
printf "# glacier {update -u} update an installed package\n"
printf "# glacier {remove -x} remove an installed package\n"
printf "$ glacier {query -q} query the information of an installed package\n"
printf "# glacier {cache -c} cache a package from the repositories\n"
printf "# glacier {cache-install -ci} install a cached package\n"
printf "# glacier {cache-clear -cc} clear the package cache\n"
printf "$blue=== Debugging ======================================================================================$reset\n"
printf "$ glacier {--showDebugInfo} show debugging info\n"
printf "$blue=== Licensing ======================================================================================$reset\n"
printf "This program is freely distributable under the terms of the\n"
printf "GNU General Public License version 3 or later.\n"
printf "You should have recieved a copy of the GNU General Public License\n"
printf "along with this program. If not, see <https://www.gnu.org/licenses/>.\n"
printf "$blue======================================================================================================\n"
exit 0
;;
--version)
printf "$blue Glacier v$GLACIER_RELEASE $reset\n"
exit 0
;;
install|-f)
# Require script to be run as root
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
echo $GLACIER_ERROR_NO_ROOT
exit 1
fi
echo $GLACIER_STATUS_INSTALLING
/usr/bin/gscripts download
if [ "$?" != "0" ]; then
echo $GLACIER_ERROR_DOES_NOT_EXIST
exit 1
fi
echo $GLACIER_STATUS_INTEGRITY_CHECK
mkdir $2 && mv $2.tar.gz $2 && cd $2
/usr/bin/gscripts integrity-check
if [ "$?" != "0" ]; then
exit 1
fi
echo $GLACIER_STATUS_UNPACKING
tar -xvf $2.tar.gz
if [ "$?" != "0" ]; then
echo $GLACIER_ERROR_CANNOT_UNPACK
exit 1
fi
chmod +x INSTALL.sh
chmod +x $2.ts.sh
echo $GLACIER_STATUS_EXECUTING
./INSTALL.sh
if [ "$?" != "0" ]; then
echo $GLACIER_ERROR_INSTRUCTIONS_CANNOT_EXECUTE
exit 1
fi
./$2.ts.sh
/usr/bin/gscripts post-install
echo $GLACIER_SUCCESS
exit 0
;;
update|-u)
# Require script to be run as root
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
echo $GLACIER_ERROR_NO_ROOT
exit 1
fi
echo $GLACIER_STATUS_UPDATING
/usr/bin/gscripts download
if [ "$?" != "0" ]; then
echo $GLACIER_ERROR_DOES_NOT_EXIST
exit 1
fi
echo $GLACIER_STATUS_INTEGRITY_CHECK
mkdir $2 && mv $2.tar.gz $2 && cd $2
/usr/bin/gscripts integrity-check
if [ "$?" != "0" ]; then
exit 1
fi
echo $GLACIER_STATUS_UNPACKING
tar -xvf $2.tar.gz
if [ "$?" != "0" ]; then
echo $GLACIER_ERROR_CANNOT_UNPACK
exit 1
fi
chmod +x UPDATE.sh
chmod +x $2.ts.sh
echo $GLACIER_STATUS_EXECUTING
./UPDATE.sh
if [ "$?" != "0" ]; then
echo $GLACIER_ERROR_INSTRUCTIONS_CANNOT_EXECUTE
exit 1
fi
./$2.ts.sh
/usr/bin/gscripts post-install
echo $GLACIER_SUCCESS
exit 0
;;
remove|-x)
# Require script to be run as root
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
echo $GLACIER_ERROR_NO_ROOT
exit 1
fi
echo $GLACIER_STATUS_REMOVING
/usr/bin/gscripts download
if [ "$?" != "0" ]; then
echo $GLACIER_ERROR_DOES_NOT_EXIST
exit 1
fi
echo $GLACIER_STATUS_INTEGRITY_CHECK
mkdir $2 && mv $2.tar.gz $2 && cd $2
/usr/bin/gscripts integrity-check
if [ "$?" != "0" ]; then
exit 1
fi
echo $GLACIER_STATUS_UNPACKING
tar -xvf $2.tar.gz
if [ "$?" != "0" ]; then
echo $GLACIER_ERROR_CANNOT_UNPACK
exit 1
fi
chmod +x REMOVE.sh
chmod +x $2.ts.sh
echo $GLACIER_STATUS_EXECUTING
./REMOVE.sh
if [ "$?" != "0" ]; then
echo $GLACIER_ERROR_INSTRUCTIONS_CANNOT_EXECUTE
exit 1
fi
./$2.ts.sh
/usr/bin/gscripts post-install
echo $GLACIER_SUCCESS
exit 0
;;
query|-q)
cat /etc/glacier/pkginfo/$2-pkginfo.json
cat /var/log/glacier/$2.timestamp
if [ "$?" != "0" ]; then
echo $GLACIER_ERROR_NOT_INSTALLED
exit 1
fi
exit 0
;;
cache|-c)
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
echo $GLACIER_ERROR_NO_ROOT
exit 1
fi
echo $GLACIER_STATUS_CACHING
/usr/bin/gscripts download
if [ "$?" != "0" ]; then
echo $GLACIER_ERROR_DOES_NOT_EXIST
exit 1
fi
echo $GLACIER_STATUS_INTEGRITY_CHECK
mv $2.tar.gz /var/cache/glacier && cd /var/cache/glacier
/usr/bin/gscripts integrity-check
if [ "$?" != "0" ]; then
exit 1
fi
echo $GLACIER_SUCCESS
exit 0
;;
cache-install|-ci)
if [[ $(usr/bin/id -u) -ne 0 ]]; then
echo $GLACIER_ERROR_NO_ROOT
exit 1
fi
echo $GLACIER_STATUS_INSTALLING
cd /var/cache/glacier && cp $2.tar.gz /tmp && cd /tmp
if [ "$?" != "0" ]; then
echo $GLACIER_ERROR_NOT_IN_CACHE
exit 1
fi
echo $GLACIER_STATUS_UNPACKING
mkdir $2 && mv $2.tar.gz $2 && cd $2
tar -xvf $2.tar.gz
if [ "$?" != "0" ]; then
echo $GLACIER_ERROR_CANNOT_UNPACK
exit 1
fi
echo $GLACIER_STATUS_EXECUTING
chmod +x INSTALL.sh
chmod +x $2.ts.sh
./INSTALL.sh
if [ "$!" != "0" ]; then
echo $GLACIER_ERROR_INSTRUCTIONS_CANNOT_EXECUTE
exit 1
fi
./$2.ts.sh
/usr/bin/gscripts post-install
echo $GLACIER_SUCCESS
exit 0
;;
cache-clear|-cc)
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
echo $GLACIER_ERROR_NO_ROOT
exit 1
fi
echo $GLACIER_STATUS_CLEARING
cd /var/cache/glacier && rm -rf *
echo $GLACIER_SUCCESS
exit 0
;;
--showDebugInfo)
printf "$blue Glacier v$GLACIER_RELEASE $reset\n"
printf ">> Checking for a viable download backend...\n"
whereis wget
whereis curl
whereis aria2c
printf ">> Checking which download backend is in use...\n"
echo $GLACIER_DOWNLOAD_BACKEND
printf ">> Checking if all Glacier directories and files are present...\n"
ls /etc | grep glacier
ls /etc/glacier
whereis make.conf
printf ">> If any files are missing, especially make.conf, Glacier will behave abnormally.\n"
printf ">> Checking if unicode symbols and colors display properly...\n"
printf "(NOTE): If you use a custom colorscheme, colors may vary.\n"
printf " For instance, the Dracula colorscheme turns blue into purple.\n"
printf "$check\n"
printf "$error\n"
printf "$warning\n"
printf "$question\n"
printf "$red Red.$reset\n"
printf "$green Green.$reset\n"
printf "$yellow Yellow.$reset\n"
printf "$blue Blue.$reset\n"
printf ">> Checking repositories...\n"
echo $GREPO1
echo $GREPO2
echo $GREPO3
echo $GREPO4
echo $GREPO5
echo $GREPO6
echo $GREPO7
echo $GREPO8
printf ">> Debug information has been gathered.\n"
printf ">> Run 'glacier --showDebugInfo > glacier.debug' to save this information to a file.\n"
exit 0
;;
-*|--*)
echo $GLACIER_ERROR_NO_SUCH_OPTION
exit 1
;;
*)
echo $GLACIER_ERROR_NO_SUCH_OPTION
exit 1
;;
esac
done
echo $GLACIER_ERROR_NO_SUCH_OPTION
exit 1

View File

@@ -1,63 +0,0 @@
#
# /etc/glacier.conf
# The settings stored in this file will be loaded when Glacier is called
# For more information on each of these options, see https://git.everest
#
# Repositories Glacier will use
#[world]
export GREPO1="https://git.everestlinux.org/EverestLinux/glacier-pkgs/raw/branch/main/world" # System Software
#[galaxy]
export GREPO2="https://git.everestlinux.org/EverestLinux/glacier-pkgs/raw/branch/main/galaxy" # GPL Only Software
#[universe]
export GREPO3="https://git.everestlinux.org/EverestLinux/glacier-pkgs/raw/branch/main/universe" # All Open Source Software
#[multiverse]
#export GREPO4=https://git.everestlinux.org/EverestLinux/glacier-pkgs/raw/branch/main/multiverse # Proprietary Software
#[world-testing]
#export GREPO5=https://git.everestlinux.org/EverestLinux/glacier-pkgs/raw/branch/main/world-testing
#[galaxy-testing]
#export GREPO6=https://git.everestlinux.org/EverestLinux/glacier-pkgs/raw/branch/main/galaxy-testing
#[universe-testing]
#export GREPO7=https://git.everestlinux.org/EverestLinux/glacier-pkgs/raw/branch/main/universe-testing
#[multiverse-testing]
#export GREPO8=https://git.everestlinux.org/EverestLinux/glacier-pkgs/raw/branch/main/multiverse-testing
# Checksum locations
export WORLD_SUM="https://git.everestlinux.org/EverestLinux/glacier-pkgs/src/branch/main/world"
export GALAXY_SUM="https://git.everestlinux.org/EverestLinux/glacier-pkgs/src/branch/main/galaxy"
export UNIEVRSE_SUM="https://git.everestlinux.org/EverestLinux/glacier-pkgs/src/branch/main/universe"
export MULTIVERSE_SUM="https://git.everestlinux.org/EverestLinux/glacier-pkgs/src/branch/main/multiverse"
export WORLD_TESTING_SUM="https://git.everestlinux.org/EverestLinux/glacier-pkgs/src/branch/main/world-testing"
export GALAXY_TESTING_SUM="https://git.everestlinux.org/EverestLinux/glacier-pkgs/src/branch/main/galaxy-testing"
export UNIVERSE_TESTING_SUM="https://git.everestlinux.org/EverestLinux/glacier-pkgs/src/branch/main/universe-testing"
export MULTIVERSE_TESTING_SUM="https://git.everestlinux.org/EverestLinux/glacier-pkgs/src/branch/main/multiverse-testing"
# Define colors and unicode symbols to be used
export red="\033[1;31m"
export green="\033[1;32m"
export yellow="\033[1;33m"
export blue="\033[1;34m"
export reset="\033[m"
export check="\xE2\x9C\x93"
export error="\xE2\x9C\x95"
export warning="\x21"
export question="\x3F"
# Which backend Glacier will use to download files
# Selecting more than one backend will cause breakage
export GLACIER_DOWNLOAD_BACKEND="wget --quiet --show-progress"
#export GLACIER_DOWNLOAD_BACKEND="curl --output $input.tar.gz"
#export GLACIER_DOWNLOAD_BACKEND="aria2c"
#
# end /etc/glacier.conf
#

View File

@@ -1,3 +0,0 @@
#!/bin/sh
export GLACIER_RELEASE="3.0.0 "

View File

@@ -1,58 +0,0 @@
#!/bin/sh
# gscripts - Scripts for Glacier operations
source /etc/glacier.conf
while [[ $# -gt 0 ]]; do
case $1 in
help)
printf "gscripts - backend for many Glacier functionalities since v3\n"
printf "gscripts {help} show this message\n"
printf "gscripts {integrity-check} verify package integrity\n"
printf "gscripts {download} download a package\n"
printf "gscripts {post-install} run post installation cleanup hooks\n"
printf "\n"
printf "this program can be distributed under the terms of the GNU General\n"
printf "Public License version 3 or higher\n"
exit 0
;;
preload)
/etc/glacier/hooks
if [ "$?" != "0" ]; then
exit 1
fi
exit 0
;;
integrity-check)
$GLACIER_DOWNLOAD_BACKEND $WORLD_SUM/$input.checksum || $GLACIER_DOWNLOAD_BACKEND $GALAXY_SUM/$input.checksum || $GLACIER_DOWNLOAD_BACKEND $UNIVERSE_SUM/$input.checksum || $GLACIER_DOWNLOAD_BACKEND $MULTIVERSE_SUM/$input.checksum || $GLACIER_DOWNLOAD_BACKEND $WORLD_TESTING_SUM/$input.checksum || $GLACIER_DOWNLOAD_BACKEND $GALAXY_TESTING_SUM/$input.checksum || $GLACIER_DOWNLOAD_BACKEND $UNIVERSE_TESTING_SUM/$input.checksum || $GLACIER_DOWNLOAD_BACKEND $MULTIVERSE_TESTING_SUM/$input.checksum
exit 0
LOCAL_SUM=$(sha256sum $input.tar.gz)
if [ $input.checksum = $LOCAL_SUM ]; then
printf "$green [ $check ]$reset Integrity check passed.\n"
rm $input.checksum
exit 0
else
printf "$red [ $error ]$reset Integrity check failed.\n"
rm $input.checksum
exit 1
fi
;;
download)
$GLACIER_DOWNLOAD_BACKEND $GREPO1/$input.tar.gz || $GLACIER_DOWNLOAD_BACKEND $GREPO2/$input.tar.gz || $GLACIER_DOWNLOAD_BACKEND $GREPO3/$input.tar.gz || $GLACIER_DOWNLOAD_BACKEND $GREPO4/$input.tar.gz || $GLACIER_DOWNLOAD_BACKEND $GREPO5/$input.tar.gz || $GLACIER_DOWNLOAD_BACKEND $GREPO6/$input.tar.gz || $GLACIER_DOWNLOAD_BACKEND $GREPO7/$input.tar.gz || $GLACIER_DOWNLOAD_BACKEND $GREPO8/$input.tar.gz
exit 0
;;
post-install)
mv -vf -- $input-pkginfo.json /etc/glacier/pkginfo || printf "error in subprocess /usr/bin/gscripts: could not stat $input-pkginfo.json\n" && exit 1
cd ..
rm -rf $input || printf "error in subprocess /usr/bin/gscripts: could not remove package source\n" && exit 1
;;
-*|--*)
printf "gscripts - no valid option was passed, see 'help' for details\n"
exit 1
;;
esac
done
printf "gscripts - no option was passed, see 'help' for details\n"

View File

@@ -1,6 +0,0 @@
#!/bin/sh
# Glacier Preloading Hooks
source /etc/make.conf
source /etc/glacier.conf
source /etc/glacier/glacier_release

View File

@@ -1,8 +0,0 @@
#!/bin/sh
# This file is meant to maintain legacy support.
printf "This package uses the legacy hooks file (/etc/glacier/hooks.sh).\n"
printf ">>> This is not an error. <<< There is no manual intervention needed.\n"
printf "If you are the maintainer of this package, please update your usrbuild.sh, usrupdate.sh, and usrremove.sh accordingly.\n"
source /etc/glacier/hooks && /etc/glacier/hooks

View File

@@ -1,40 +0,0 @@
#
# make.conf - optimizations and flags for make
#
# Number of parallel makejobs. Change this number to your CPUs cores + threads.
# Example: 6 cores + 6 threads = 12
MAKEFLAGS="-j1"
# Build and compile flags for C and C++ programs.
# Disable these if packages are breaking.
# Using too many optimizations may break packages.
CFLAGS="-02"
CXXFLAGS="${CFLAGS}"
# Flag which treats all warnings as errors.
# Not recommended, as many packages with large codebases will refuse to compile.
#CFLAGS="-Werror"
# Prefix for installed packages. Most packages will follow this.
# Some packages may have their own prefix. For instance, appimages will install to /usr/share/appimages, and be symlinked to /bin.
PREFIX="/usr"
#PREFIX="/usr/local"
# CPU architecture. Most users will use x86_64.
# This setting should manually set itself. If it doesn't, set it manually.
# Note that some packages will not compile for other architectures.
# Example: ARCH="x86_64"
ARCH="${MACHTYPE}"
# Triplet for the target system.
# This should only be used if cross compiling.
# For reference, Everest's triplet is x86_64-linux-musl.
#TARGET="x86_64-linux-musl"
#TARGET="x86_64-pc-linux-gnu"
#TARGET="i386-linux-musl"
#TARGET="i386-pc-linux-gnu"
#
# end make.conf
#

View File

@@ -1,24 +0,0 @@
#!/bin/sh
# Glacier messages storage
source /etc/glacier.conf
# Errors
export GLACIER_ERROR_NO_ROOT=$(printf "$red [ $error ]$reset Please run Glacier as root.\n")
export GLACIER_ERROR_DOES_NOT_EXIST=$(printf "$red [ $error ]$reset Package $input either does not exist, or is in a repository that is not enabled.\n")
export GLACIER_ERROR_CANNOT_UNPACK=$(printf "$red [ $error ]$reset Package archive cannot be unpacked.\n")
export GLACIER_ERROR_INSTRUCTIONS_CANNOT_EXECUTE=$(printf "$red [ $error ]$reset Instructions were either unable to execute, or encountered an error while executing.\n")
export GLACIER_ERROR_NO_SUCH_OPTION=$(printf "$red [ $error ]$reset Unknown option, see 'glacier -h' for usage.\n")
# Status
export GLACIER_STATUS_INSTALLING=$(printf "$blue [ i ]$reset Installing $input...\n")
export GLACIER_STATUS_UPDATING=$(printf "$blue [ i ]$reset Updating $input...\n")
export GLACIER_STATUS_REMOVING=$(printf "$blue [ i ]$reset Removing $input...\n")
export GLACIER_STATUS_CACHING=$(printf "$blue [ i ]$reset Caching $input...\n")
export GLACIER_STATUS_UNPACKING=$(printf "$blue [ i ]$reset Unpacking $input.tar.gz...\n")
export GLACIER_STATUS_INTEGRITY_CHECK=$(printf "$blue [ i ]$reset Verifying integrity of package...\n")
export GLACIER_STATUS_EXECUTING=$(printf "$blue [ i ]$reset Executing instructions...\n")
export GLACIER_WHICH_PKG=$(printf "$blue [ $question ]$reset Enter package name: ")
# Success
export GLACIER_SUCCESS=$(printf "$green [ $check ]$reset Operation finished successfully.\n")