add configs to peppermint concept builds

This commit is contained in:
Manuel 2023-01-19 11:05:14 -01:00
parent 9050497140
commit e581984cdf
686 changed files with 55549 additions and 6342 deletions

View File

@ -7,28 +7,28 @@
### ## # Set build working variables HERE # ## ###
PREFIX=PepOS # Sets a unique final name of the ISO and checksum so <HouseKeeping> only removes 2 files .
SUFFIX=i386 # Also used by <HouseKeeping>. And to distinguish between amd64 and x86 or devuan and ubuntu .
SUFFIX=amd64 # Also used by <HouseKeeping>. And to distinguish between amd64 and x86 or devuan and ubuntu .
BUILD=nightly # Sets which pepbld.sh to use and the location in /var/www/html/[release|rc|testing|nightly|unstable]
##################################################
### ## # Make NO Edits Below This Line !! # ## ###
##################################################
[ $TODAY ! = " " ] || TODAY=$(date -u +"%Y-%m-%d") # If MasterBuilder.sh is used IT will set the date. If not used, we set it here.
TODAY=$(date -u +"%Y-%m-%d") && export TODAY # If MasterBuilder.sh is used IT will set the date. If not used, we set it here.
FileName=${PREFIX}-${SUFFIX}-${TODAY}-${BUILD} # This will give a uniquely named and dated ISO and checksum for <HouseKeeping>.
LOCATION=/var/www/html/${BUILD} # Tells <HouseKeeping> and the script which 2 files to remove and where to put them.
LogDir=/var/log/Live-Build # This folder contains a log for the last $[PREFIX]-$[SUFFIX] build.
#WorkingDir=~/pep_builder/${PREFIX}${SUFFIX} # * If we change servers or locations T*H*I*S line is the O*N*L*Y line to change. *
WorkingDir=~/pep_builder/PepX686Configs # * If we change servers or locations T*H*I*S line is the O*N*L*Y line to change. *
LOCATION="/var/www/html/${BUILD}" # Tells <HouseKeeping> and the script which 2 files to remove and where to put them.
LogDir="/var/log/Live-Build" # This folder contains a log for the last $[PREFIX]-$[SUFFIX] build.
WorkingDir=~/pep_builder/PepOSx86_64 # * If we change servers or locations T*H*I*S line is the O*N*L*Y line to change. *
OutFile="/tmp/${PREFIX}${SUFFIX}.out"
LogFile="${LogDir}/${PREFIX}-${SUFFIX}-${BUILD}.log"
_cache="./cache"
_break=0 ; _wait=30 # Time (in seconds) to wait
# Sunday 27 March, 2022
# The first night testing automated update . RepoUpdater
cd ${WorkingDir} && ./RepoUpdater | tee /tmp/${PREFIX}${SUFFIX}.out
cd ${WorkingDir}
./RepoUpdater | tee ${OutFile}
# Run the build script - expect 50 minutes, allow 60.
./PepBld-${BUILD}.sh 2>&1 | tee --append /tmp/${PREFIX}${SUFFIX}.out
./PepBld-${BUILD}.sh 2>&1 | tee --append ${OutFile}
# Timing matters, don't destroy the old one without a replacement.
# Check for the ISO to appear and wait for things to settle.
@ -38,8 +38,6 @@ until [ -e fusato/*.iso ]
done
if [ ${_break} -lt ${_wait} ] ; then
### 10 June, 2022 - After 17 June, this comment and the following line can be removed
echo -e "\n\tISO appeared after $_break seconds.\n" | tee --append /tmp/${PREFIX}${SUFFIX}.out
mv fusato/*.iso fusato/${FileName}.iso
@ -55,22 +53,40 @@ sha512sum ${FileName}.iso >> ${FileName}-sha512.checksum
# Remove the previous files in ${LOCATION} .
rm -f ${LOCATION}/${PREFIX}-${SUFFIX}*.iso
rm -f ${LOCATION}/${PREFIX}-${SUFFIX}*-sha512.checksum
#rm -f ${LOCATION}/${PREFIX}-${SUFFIX}*.torrent
# This is where we can create the .torrent file.
#mv $(FileName}* ${LOCATION}/
mv ${FileName}.iso ${LOCATION}/${FileName}.iso
mv ${FileName}-sha512.checksum ${LOCATION}/${FileName}-sha512.checksum
#mv ${FileName}.torrent ${LOCATION}/${FileName}.torrent
# touch -t ${_stamp} ${LOCATION} ${LOCATION}/${FileName}*
touch ${LOCATION}/${FileName}*
# Update netinstall-packages.yaml
diff chroot/etc/calamares/modules/netinstall-packages.yaml ../pepcal/calamares/modules/netinstall-packages.yaml || (
cp chroot/etc/calamares/modules/netinstall-packages.yaml ../pepcal/calamares/modules/
git add ../pepcal/calamares/modules/netinstall-packages.yaml
git commit -m "Automated update to file, after build completed." ; git push )
lb clean &
# Move the log file to the log directory.
[ ! -e ${LogDir} ] && mkdir -p ${LogDir}
mv /tmp/${PREFIX}${SUFFIX}.out ${LogDir}/${PREFIX}-${SUFFIX}-${BUILD}.log
mv ${OutFile} ${LogFile}
# Remove old packages from the cache directory
for i in $(grep "Del " ${LogFile} | sort -u | cut -f2,3 -d" " | tr " " "_" | tr ":" "*" | tr "+" "*" )
do for j in $_cache/packages.*/${i}*.deb
do [ -e $j ] && rm $j
done
done
### </HouseKeeping>
else echo -e "\n\tAfter $_break seconds, ISO never appeared.\n" | tee --append /tmp/${PREFIX}${SUFFIX}.out
mv /tmp/${PREFIX}${SUFFIX}.out ${LogDir}/${PREFIX}-${SUFFIX}-${BUILD}.log
else echo -e "\n\tAfter $_break seconds, ISO never appeared.\n" | tee --append ${OutFile}
mv ${OutFile} ${LogFile}
fi

View File

@ -7,27 +7,30 @@
### ## # Set build working variables HERE # ## ###
PREFIX=PeppermintOS # Sets a unique final name of the ISO and checksum so <HouseKeeping> only removes 2 files .
SUFFIX=i386 # Also used by <HouseKeeping>. And to distinguish between amd64 and x86 or devuan and ubuntu .
SUFFIX=amd64 # Also used by <HouseKeeping>. And to distinguish between amd64 and x86 or devuan and ubuntu .
BUILD=release # Sets which pepbld.sh to use and the location in /var/www/html/[release|rc|testing|nightly|unstable]
##################################################
### ## # Make NO Edits Below This Line !! # ## ###
##################################################
[ $TODAY ! = " " ] || TODAY=$(date -u +"%Y-%m-%d") # If MasterBuilder.sh is used IT will set the date. If not used, we set it here.
TODAY=$(date -u +"%Y-%m-%d") && export TODAY # If MasterBuilder.sh is used IT will set the date. If not used, we set it here.
FileName="${PREFIX}-${SUFFIX}" # This will give a uniquely named and dated ISO and checksum for <HouseKeeping>.
LOCATION=/var/www/html/${BUILD} # Tells <HouseKeeping> and the script which 2 files to remove and where to put them.
LogDir=/var/log/Live-Build # This folder contains a log for the last $[PREFIX]-$[SUFFIX] build.
WorkDir=~/pep_builder/PepDistroConfigs/PepOSx86_32 # * If we change servers or locations T*H*I*S line is the O*N*L*Y line to change. *
WorkingDir=~/pep_builder/PepDistroConfigs/PepOSx86_64 # * If we change servers or locations T*H*I*S line is the O*N*L*Y line to change. *
OutFile="/tmp/${PREFIX}${SUFFIX}.out"
LogFile="${LogDir}/${PREFIX}-${SUFFIX}-${BUILD}.log"
_cache="./cache"
_break=0 ; _wait=30 # Time (in seconds) to wait
cd ${WorkDir}/../
./RepoUpdater | tee /tmp/${FileName}.out
./RepoUpdater -c -a PepOSx86_32 | tee -a /tmp/${FileName}.out
cd ${WorkDir}
cd ${WorkingDir}/../
./RepoUpdater | tee ${OutFile}
./RepoUpdater -c -a PepOSx86_64 | tee -a ${OutFile}
cd ${WorkingDir}
# Run the build script - expect 50 minutes, allow 60.
./pepbld.sh 2>&1 | tee -a /tmp/${FileName}.out
./pepbld.sh 2>&1 | tee -a ${OutFile}
# Timing matters, don't destroy the old one without a replacement.
@ -38,8 +41,6 @@ until [ -e fusato/*.iso ]
done
if [ ${_break} -lt ${_wait} ] ; then
### 10 June, 2022 - After 17 June, this comment and the following line can be removed
echo -e "\n\tISO appeared after $_break seconds.\n" | tee --append /tmp/${FileName}.out
mv fusato/*.iso fusato/${FileName}.iso
@ -55,10 +56,14 @@ sha512sum ${FileName}.iso >> ${FileName}-sha512.checksum
# Remove the previous files in ${LOCATION} .
rm -f ${LOCATION}/${FileName}*.iso
rm -f ${LOCATION}/${FileName}*-sha512.checksum
#rm -f ${LOCATION}/${FileName}*.torrent
# This is where we can create the .torrent file.
#mv $(FileName}* ${LOCATION}/
mv ${FileName}.iso ${LOCATION}/${FileName}.iso
mv ${FileName}-sha512.checksum ${LOCATION}/${FileName}-sha512.checksum
#mv ${FileName}.torrent ${LOCATION}/${FileName}.torrent
# touch -t ${_stamp} ${LOCATION} ${LOCATION}/${FileName}*
touch ${LOCATION}/${FileName}*
@ -67,10 +72,18 @@ lb clean &
# Move the log file to the log directory.
[ ! -e ${LogDir} ] && mkdir -p ${LogDir}
mv /tmp/${FileName}.out ${LogDir}/${FileName}-${BUILD}.log
mv ${OutFile} ${LogFile}
# Remove old packages from the cache directory
for i in $(grep "Del " ${LogFile} | sort -u | cut -f2,3 -d" " | tr " " "_" | tr ":" "*" | tr "+" "*" )
do for j in $_cache/packages.*/${i}*.deb
do [ -e $j ] && rm $j
done
done
### </HouseKeeping>
else echo -e "\n\tAfter $_break seconds, ISO never appeared.\n" | tee --append /tmp/${FileName}.out
mv /tmp/${FileName}.out ${LogDir}/${FileName}-${BUILD}.log
else echo -e "\n\tAfter $_break seconds, ISO never appeared.\n" | tee --append ${OutFile}
mv ${OutFile} ${LogFile}
fi

74
BldHelper-skinny.sh Executable file
View File

@ -0,0 +1,74 @@
#!/bin/bash
# BldHelper-skinny.sh
### ## # Set build working variables HERE # ## ###
PREFIX=PepOS # Sets a unique final name of the ISO and checksum so <HouseKeeping> only removes 2 files .
SUFFIX=amd64 # Also used by <HouseKeeping>. And to distinguish between amd64 and x86 or devuan and ubuntu .
BUILD=skinny # Sets which pepbld.sh to use and the location in /var/www/html/[release|rc|testing|nightly|unstable]
### ## # Make NO Edits Below This Line !! # ## ###
[ $TODAY ! = " " ] || TODAY=$(date -u +"%Y-%m-%d") # If MasterBuilder.sh is used IT will set the date. If not used, we set it here.
FileName=${PREFIX}-${SUFFIX}-${TODAY}-${BUILD} # This will give a uniquely named and dated ISO and checksum for <HouseKeeping>.
LOCATION=/var/www/html/${BUILD} # Tells <HouseKeeping> and the script which 2 files to remove and where to put them.
LogDir=/var/log/Live-Build # This folder contains a log for the last $[PREFIX]-$[SUFFIX] build.
WorkingDir=~/pep_builder/PepOSx86_64 # * If we change servers or locations T*H*I*S line is the O*N*L*Y line to change. *
#WorkingDir=/root/pep_builder/KSTestRepo
# Move into the builder directory.
# Make sure the local repos are up to date.
cd /root/pep_builder
cd ./PepProPixMaps && git pull
cd ../PepProTools && git pull
cd ${WorkingDir} && git pull
# Run the build script - expect 50 minutes, allow 60.
./PepBld-${BUILD}.sh 2>&1 | tee /tmp/${FileName}.log
# Timing matters, don't destroy the old one without a replacement.
# Check for the ISO to appear and wait for things to settle.
until [ -e fusato/*.iso ]
do sleep 2 # Waiting for ISO image
done
cd fusato
mv *.iso ../${FileName}.iso
lb clean &
cd ../
# Define a 2GiB partition, at offset 4194304, in the ISO's 4th entry of the MBR .
dd bs=1 count=16 seek=494 conv=notrunc if=peploadersplash/P4-2GB-MBR.hex of=${FileName}.iso
# Make the checksum file.
sha512sum ${FileName}.iso > ${FileName}-sha512.checksum
### <HouseKeeping>
# Remove the previous files in ${LOCATION} .
rm -f ${LOCATION}/${PREFIX}-${SUFFIX}*.iso
rm -f ${LOCATION}/${PREFIX}-${SUFFIX}*-sha512.checksum
# Move the log file to the log directory.
[ ! -e ${LogDir} ] && mkdir -p ${LogDir}
mv /tmp/${FileName}.log ${LogDir}/${PREFIX}-${SUFFIX}-${BUILD}.log
# Set the timestamps to the ISO's internal before moving them to the DL directory.
# _stamp=$(hexdump -C -s 33598 -n 12 ${FileName}.iso | head -1 | cut -f2 -d"|" )
[ ! -e ${LOCATION} ] && mkdir -p ${LOCATION}
#mv $(FileName}* ${LOCATION}/
mv ${FileName}.iso ${LOCATION}/${FileName}.iso
mv ${FileName}-sha512.checksum ${LOCATION}/${FileName}-sha512.checksum
# touch -t ${_stamp} ${LOCATION} ${LOCATION}/${FileName}*
touch ${LOCATION}/${FileName}*
### </HouseKeeping>
# This will "flush" our variables without handing any back to MasterBuilder.sh .
# exit # But NOT `return`.

View File

@ -1,12 +1,10 @@
#!/bin/bash
# This script is meant to be run on the build server and expects to find and update itself from adjacent repos.
# From PepDistroConfigs, these repos are ../PepProPixMaps & ../PepProTools and are vital to having a working build.
##BldHelper-testing.sh
### ## # Set build working variables HERE # ## ###
PREFIX=PepOS # Sets a unique final name of the ISO and checksum so <HouseKeeping> only removes 2 files .
SUFFIX=i386 # Also used by <HouseKeeping>. And to distinguish between amd64 and x86 or devuan and ubuntu .
SUFFIX=amd64 # Also used by <HouseKeeping>. And to distinguish between amd64 and x86 or devuan and ubuntu .
BUILD=testing # Sets which pepbld.sh to use and the location in /var/www/html/[release|rc|testing|nightly|unstable]
##################################################
@ -18,38 +16,35 @@ FileName=${PREFIX}-${SUFFIX}-${TODAY}-${BUILD} # This will give a uniquely name
LOCATION=/var/www/html/${BUILD} # Tells <HouseKeeping> and the script which 2 files to remove and where to put them.
LogDir=/var/log/Live-Build # This folder contains a log for the last $[PREFIX]-$[SUFFIX] build.
#WorkingDir=~/pep_builder/${PREFIX}${SUFFIX} # * If we change servers or locations T*H*I*S line is the O*N*L*Y line to change. *
WorkingDir=~/pep_builder/PepX686Configs # * If we change servers or locations T*H*I*S line is the O*N*L*Y line to change. *
WorkingDir=~/pep_builder/PepOSx86_64 # * If we change servers or locations T*H*I*S line is the O*N*L*Y line to change. *
# Sunday 27 March, 2022
# The first night testing RepoUpdater (GReaper LOL, get some sleep)
cd ${WorkingDir} && . RepoUpdater | tee /tmp/${PREFIX}${SUFFIX}.out
#### This section is marked for removal
## Move into the builder directory.
## Make sure the local repos are up to date.
#cd ~/pep_builder
#cd ./PepProPixMaps && git pull
#cd ../PepProTools && git pull
#cd ${WorkingDir} && git pull
# Move into the builder directory.
# Make sure the local repos are up to date.
cd ~/pep_builder
cd ./PepProPixMaps && git pull --ff-only
cd ../PepProTools && git pull --ff-only
cd ${WorkingDir} && git pull --ff-only
# Run the build script - expect 50 minutes, allow 60.
./PepBld-${BUILD}.sh 2>&1 | tee --append /tmp/${PREFIX}${SUFFIX}.out
# Timing matters, don't destroy the old one without a replacement.
# Check for the ISO to appear and wait for things to settle.
until [ -e fusato/*.iso ]
do sleep 2 # Waiting for ISO image
done # && sync fusato/*.iso || sync fusato/*.iso
done
mv fusato/*.iso ./${FileName}.iso
cd fusato
mv *.iso ../${FileName}.iso
lb clean &
cd ../
# Define a 2GiB partition, at offset 4194304, in the ISO's 4th entry of the MBR .
dd bs=1 count=16 seek=494 conv=notrunc if=peploadersplash/P4-2GB-MBR.hex of=${FileName}.iso
# Make the checksum file.
echo "# PeppermintOS ${TODAY}" > ${FileName}-sha512.checksum
sha512sum ${FileName}.iso >> ${FileName}-sha512.checksum
sha512sum ${FileName}.iso > ${FileName}-sha512.checksum
### <HouseKeeping>
# Remove the previous files in ${LOCATION} .

72
BldHelper-unstable.sh Executable file
View File

@ -0,0 +1,72 @@
#!/bin/bash
# BldHelper-unstable.sh
### ## # Set build working variables HERE # ## ###
PREFIX=PepOS # Sets a unique final name of the ISO and checksum so <HouseKeeping> only removes 2 files .
SUFFIX=amd64 # Also used by <HouseKeeping>. And to distinguish between amd64 and x86 or devuan and ubuntu .
BUILD=unstable # Sets which pepbld.sh to use and the location in /var/www/html/[release|rc|testing|nightly|unstable]
### ## # Make NO Edits Below This Line !! # ## ###
[ $TODAY ! = " " ] || TODAY=$(date -u +"%Y-%m-%d") # If MasterBuilder.sh is used IT will set the date. If not used, we set it here.
FileName=${PREFIX}-${SUFFIX}-${TODAY}-${BUILD} # This will give a uniquely named and dated ISO and checksum for <HouseKeeping>.
LOCATION=/var/www/html/${BUILD} # Tells <HouseKeeping> and the script which 2 files to remove and where to put them.
LogDir=/var/log/Live-Build # This folder contains a log for the last $[PREFIX]-$[SUFFIX] build.
WorkingDir=~/pep_builder/PepOSx86_64 # * If we change servers or locations T*H*I*S line is the O*N*L*Y line to change. *
# Move into the builder directory.
# Make sure the local repos are up to date.
cd /root/pep_builder
cd ./PepProPixMaps && git pull
cd ../PepProTools && git pull
cd ${WorkingDir} && git pull
# Run the build script - expect 50 minutes, allow 60.
./PepBld-${BUILD}.sh 2>&1 | tee /tmp/${FileName}.log
# Timing matters, don't destroy the old one without a replacement.
# Check for the ISO to appear and wait for things to settle.
until [ -e fusato/*.iso ]
do sleep 2 # Waiting for ISO image
done
cd fusato
mv *.iso ../${FileName}.iso
lb clean &
cd ../
# Define a 2GiB partition, at offset 4194304, in the ISO's 4th entry of the MBR .
dd bs=1 count=16 seek=494 conv=notrunc if=peploadersplash/P4-2GB-MBR.hex of=${FileName}.iso
# Make the checksum file.
sha512sum ${FileName}.iso > ${FileName}-sha512.checksum
### <HouseKeeping>
# Remove the previous files in ${LOCATION} .
rm -f ${LOCATION}/${PREFIX}-${SUFFIX}*.iso
rm -f ${LOCATION}/${PREFIX}-${SUFFIX}*-sha512.checksum
# Move the log file to the log directory.
[ ! -e ${LogDir} ] && mkdir -p ${LogDir}
mv /tmp/${FileName}.log ${LogDir}/${PREFIX}-${SUFFIX}-${BUILD}.log
# Set the timestamps to the ISO's internal before moving them to the DL directory.
# _stamp=$(hexdump -C -s 33598 -n 12 ${FileName}.iso | head -1 | cut -f2 -d"|" )
#mv $(FileName}* ${LOCATION}/
mv ${FileName}.iso ${LOCATION}/${FileName}.iso
mv ${FileName}-sha512.checksum ${LOCATION}/${FileName}-sha512.checksum
# touch -t ${_stamp} ${LOCATION} ${LOCATION}/${FileName}*
touch ${LOCATION}/${FileName}*
### </HouseKeeping>
# This will "flush" our variables without handing any back to MasterBuilder.sh .
# exit # But NOT `return`.

677
LICENSE
View File

@ -1,117 +1,674 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
Preamble
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
The precise terms and conditions for copying, distribution and modification follow.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
The precise terms and conditions for copying, distribution and
modification follow.
0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".
TERMS AND CONDITIONS
Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.
0. Definitions.
1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.
"This License" refers to version 3 of the GNU General Public License.
You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
A "covered work" means either the unmodified Program or a work based
on the Program.
c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
1. Source Code.
3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.
The Corresponding Source for a work in source code form is that
same work.
4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
2. Basic Permissions.
5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.
4. Conveying Verbatim Copies.
9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.
5. Conveying Modified Source Versions.
NO WARRANTY
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
END OF TERMS AND CONDITIONS
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
How to Apply These Terms to Your New Programs
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.
6. Conveying Non-Source Forms.
one line to give the program's name and an idea of what it does. Copyright (C) yyyy name of author
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
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 2 of the License, or (at your option) any later version.
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
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.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Also add information on how to contact you by electronic and paper mail.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
If the program is interactive, make it output a short notice like this when it starts in an interactive mode:
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names:
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
signature of Ty Coon, 1 April 1989 Ty Coon, President of Vice
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
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/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<https://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<https://www.gnu.org/licenses/why-not-lgpl.html>.

15
Notas
View File

@ -1,15 +0,0 @@
23-4-2022
Iniciado o trabalho para preparar o lançamento
adicionei as mudanças necessarias para adicionar o repositorio deb-multimedia
e actualizei a versao do calamares para 3.2.55 e adicionei as dependencias para que possa
funcionar com os sistemas de ficheiros f2fs e xfs alem de alteraçoens menores
agora falta trabalhar no modulos do calamares net install quando tiver o script que o
Kswoodsman escreveu para adicionar discriçoens nos pacotes
01-03-2022
primeiro commit das alteraçoens no grub
para adicionar o suporte de idiomas no arranque em modo live
20-02-2022
Acabei de configurar o net install no calamares.
Agora falta testar para ver se esta tudo ok

836
Notes
View File

@ -1,67 +1,797 @@
#### Commit Date 15-02-2022
2022-02-15 AM by KsWoodsMan
Initial commit and basic housekeeping done to continue work on PeppermintOS-32bit
This is using the contributions from manuelrosa from within the PeppermintOS forum community.
The base files from the Developement repo and any local files from my system were synced to this new repo.
This also includes the build scripts and framework to create ISOs using Debian for 32Bit builds.
This file to be used as a work journal and should include basic notes for additions, changes and creative thoughts.
The idea is simple. Keep it neat and orderly. Be as expessive as you choose but remember to add the date to keep time lines intact.
2022-02-15 PM by KsWoodsMan
Basic steps were taken to get things started.
Minor edits may still be needed in some config files to show this is for the 32bit build(s).
Essentially, this commit turns the majority of the developement over to key members from the PeppermintOS community.
Minor changes may occasionally be required, by myself, to keep this repo syncable using scripted updaters.
The idea behind this is to retain conformity, not to stifle innovation.
I will try to be available to answer any questions.
This is a volunteer project we do in our spare time when time is available.
We all have a life to retain our sanity and outside jobs required pay the bills.
None of us are going to always be available at the same time. But I'll respond as soon as I see new messages.
With the current Dev-Ops, by using CI/CD, this removes the rush and pressure associated with deadlines and a strict release cycle.
This is supposed to be fun for all of us. Let's make the most of it.
Thanks ! - KsWoodsMan
2022-02-17 by KsWoodsMan
Seeing good progress to developement here, a "Nightly" build has been added in addition to the current Testing builds.
2022-02-18 by KsWoodsMan
Additional repos were added to Peppermint_OS . These include Pep_Pro_PixMaps and Pep_Dev_Tools as well as renaming Pep_Hub to Pep_Pro_Tools.
These will be used as common files to be sure apps in /opt/pypep have the most current set of icons available while building ISOs.
Updated BldHelper-*.sh scripts used by the server for automated builds.
The PepBld-i686-*.sh files will need 3 lines edited or removed / moved to a new area at the end of the build script(s) to find these current files.
2022-02-19 by KsWoodsMan
In the 3 external repos used for commin files, the underscores ( _ ) were removed from their names.
The BldHelper scripts wered edited to reflect the new change.
Be sure to adjust any local git directories for this change as well as changing the PepBld scripts to relect the new changes.
Proposed adjustment to the version od calaraes being used was accepted with enthusiasm giving many additional option during the OS install.
Also, Net Install options were considered and agree to ne an upcoming "feature add".
2022-04-10 AM by KsWoodsMan
Been a month and been plenty busy.
The RepoUpdater is behaving well. It is at a stable state and has been production ready.
Manuel has brought in installing additional packages during the OS install.
Progress there has been steady with quite a bit to show for it.
I've created a script to build the modules from a formatted list.
It reads the list line by line testing for conditions to apply to its output.
I've given it a little but of error checking so it doesn't do screwy things when ran on a autogenerated file it has made.
It's "hacky" and may lack finese but it's working. And makes fully flesh out modules usable in calamares.
Our package lists are rather large. They can stand to be trimmed and re-organized.
2022-03-12 PM by KsWoodsMan
Still working on the repo updater.
Parts of it might best partly broken out so local builds benefit from the updating as well.
Having pepbld.sh run the updater means their repo is updated with each build.
Having the build server run each of the parts also means the developers repos could be updated nightly.
It could also mean their core files used for the release builds would be changed , daily.
For testing purposes, we still have our nightly and testing builds that can be completely unique.
2022-03-11 PM by KsWoodsMan
Working on the updater has presented several glitches in the way I was comsidering its implementation.
As the team grows and tasks/responsibilities are reallocated I've been trying to keep additional repos "aligned" to a single core repo.
The inherent problem is that there hasn't been an actual "base repo" where all of the files that make Peppermint what it is are located.
The KSTestRepo has been developement repo where these common files were located.
With only a single architecture build , this hasn't been a problem.
Keeping Devuan builds in mind, the changes being made had extra builds in mind.
Quickly adding the x86_32 builds has shown areas I hadn't considered.
I need to move away from the common files being located in the amd64 build and have a "core files" repo where we all go to get and update the common files.
This will work _much_ better at keeping the small differences from influencing the production repo.
If it's found that any of the common files breaks something in different builds, that file can be "ignored" when updating common files.
There needs to be a "first person" approach where a developer can keep their build files intact as they work on their differences.
The biggest difference are currently in peploadersplash, pepcal/calamares/modules and peppackages.
These will be the files getting updated in the unique builds in the production repo.
The other differences are in the build scripts in the root of the repo directory.
Select files , intended for the release , will also be included in the unique build directories inside PepDistroConfigs.
Then a "second person" approach to maintain the common files used by the developers for their repo.
This way there can be a "core team" for this one repo.
This will keep changes in the x86_64 builds from breaking things in the x86_32 and Devuan builds and the reverse since individual changes won't show up in the core repo.
The production repo will also need to be updated from the common or "core repo"
For a "third person" , they won't have to get all several repos to make any of the ISOs.
Cloning PepDistroConfigs will provide a central place to build any of the ISOs we've released.
At the time of a release , PepDistroConfigs will be updated with the most recent files from the outside repos and each of the unique builds.
Reducing the complexity for both the devs and end users is paramount.
Whatever goes into place must be easily repeatable for the each of the developers, as well as anyone giving it a try from the repo.
Not everoyne will have cloned the repo to ${HOME}/pep_builder, so the scripts for the updater need to be relative to the current directory.
When adding a "core repo" and to reduce some of the confusion, the build repo I've been working in could be renamed to PepOSx86_64 or similar.
To follow the same naming convention the PepI686Configs and PepDevuanConfigs could be renamed to PepOSx86_32 and PepOSDevuan respectively.
Then the directories going into PepDistroConfigs (PepOSx86_32, PepOSx86_64 & PepOSDevuan) will make more sense and won't seem disjointed.
We will all have to be in unison about this change. In the long run it will help immensely keeping things aligned in the release builds.
Check with the other devs to see how they are about renaming their repo.
External Repos Sattelite/Build Repositories ||| Build Server
o->--> PepOSx86_32 >--------->--------o->-- nightly
PepProPixMaps >--o | |
| +->--> PepOSx86_64 >------->------o-> | >-- nightly
PepProtools >----+ | | |
| +->--> PepOSDevuan >----->----o-> | | >-- nightly
PepUpdater >-----+ | | | |
| +->--(FutureBuilds)>--->--o-> | | | >-- nightly
o---<----<---o | | | | |
| | | | | |
CoreFiles >--->---o-->--o | | | |
\
`----->-------------->----- PepDistroConfigs
\
`---->-- Release ISO's
2022-03-01 PM by KsWoodsMan
My last 10 days have been quiet here. I've been working in several areas at once.
1) Combining the new x86_32 build into what is existing in the production repo at PepDistroConfigs .
2) Working on implementing the package additions from the x86_32 builds into the x86_64 builds.
3) Working on scripting to build an effective list , with full descriptions , from the .yaml files provided.
4) Adding in the source file, for the .yaml script, whether to certain packages are installed , by default , and allow the enduser to unselect them, if desired.
5) For offline installs, working out which additional packages will be installed by default and adding them and their dependencies to ./pool on the ISO.
6) To get our sources.list in the live-session and available to the installer.
7) Yet another full re-write of the autoupdater to take in fine grained differences between the 2 separate builds incorporating them into the Production Repo.
8) To keep the auto-updater from interferring with the builds, I'm considering implementing it in the BldHelper-*.sh script for the final build.
This way when a new release is cut it will pull from the adjacent repos, updating itself and push the changes for the new release to the public repo.
8) Continuing to keep the new Devuan builds in mind using free time and breaks to search for instances where they are using Live-Build instead of the Devuan SDK
Though nothing is wrong with the std SDK it doesn't fit well with the current toolset.
9) Working towards a distro update so people that have installed from earlier versions can bring their installs up-to-date with the most recent release.
Keeping in mind that some users may have modified their system as they make it their own, not breaking these systems and not causing data loss.
10) Scripting the "changing of the ISOs" so this doesn't have to be babysat or manually tended to. After a release ISO gets cut it updates the SF and GitHub locations.
11) Looking at the multi language support for the x86_32 builds to also incorporate this into the x86_64 builds and later into the Devuan builds.
12) And then there is _always_ the additional time given to questions and comments in the forums.
* come back and add the updates to each of these, in footnoted form, in this same section or follow up reffering back to this entry.
2022-02-21 PM by KsWoodsMan
More housekeeping was done removing unwanted packages , as voiced from within the community.
Starting to add the newer contributed version of calamares.
Notice was given to look over the driver modules carefully as there will be diffences between architectures.
Some minor additions/changers were made in the adjacent x86_32 repo to take in the common files for the distro specific apps.
This should make templating for the Devuan builds easier. As well as good pointers for use in the auto updater.
This might be where my previous idea of having "skinny trees" will work.
To have a directory for each build inside PepDistroConfigs.
In each of the mini repos is the files specific to that build.
Along side those build specific files/directories are symlinks pointing back to the main repo in the parent directory, for common files.
As well as a symlink in the "skinny repo" pointing to fusato in the parent directory.
During the weekly updates to the main repo the contents of ../PepProPixMaps and ../PepProTools will get copied into place in PepDistroConfigs/PepProPixMaps and PepDistroConfigs/PepProTools.
This way all work submitted to the 2 previously mentioned repos prior a few minutes before build time will be included in the release build.
And due to the relative nature of symlinks, while the build is running in fusato and goes back to the source directory, it will find either the symlinks pointing to the common directories in the parent
or it will find it's uniquie directories and files required to buld an ISO in it's mini-repo directory.
I don't even think any tweaking of the "pepbld.sh" files will be required. They can go into the repective mini repo, unchanged.
The get the unique builds to run from the parent repo, create a script in the parent directory of PepDistroConfigs for each of the builds. Call it Build-amd64-ISO.sh or Build-i686-ISO or Build-Devuan-ISO ... you get the picture. ;)
This script makes sure a build directory exists or will create it for a first time build. It can also take care of renaming the ISO , much like is done in the BldHelper scripts meant for the build server.
The script will cd to the mini-repo and start a build from there. All of the symlinks to requred directories (in the parent) will be in place and the unique files for it's build will be in the mini-repo.
Each build maintainer has their own repo.
Each of the unique builds are separated by as much as is required.
Since the Main repo gets updated on a regular schedule anyone accessing the repo can get this one repo and be able to build any of our ISO's being offered.
There shouldn't be any confusion over missing files or a need to pull in adjacent repos.
Everything will be in one easy place to find and can start their build immediately.
If the builds can't share "fusato" build directories
Each build repo needs to follow some predfined templating in the layout, to match their counterparts,
"Smart" & "Pretty". I like it. Now to start implementing it.
2022-02-21 AM by KsWoodsMan
Still more HouseKeeping done. This includes removing peptools in favor of the adjacent PepProTools repo holding distro specific apps.
Getting ready for a transition to a newer and more capable version of the calamares installer.
I'll be working this into the testing builds then nightly and finally to the release builds.
Having the builds all separated will take some "creativity" to mesh them all into the main repo.
LOL - "The more creatively you try to tweak things the creatively they can break."
I think it is doable. It will require a much finer grained updater than initially expected.
Until the batch updater is fully functional, there will be some minor difference made in the build server's crontab for the release build.
Still more HouseKeeping in this repo. More of the x86 files found and removed.
Noticed dissimularities between the directions the builds may be taking.
Some may be good across the board.
Not wanting to stray to far from what I know of as the core principles I'll hesitate to include all of them, till we are all in agreement.
2022-02-20 by KsWoodsMan
Added 3 additional packages to the nightly build. These include gufw, mugshot and simple-scan. Dropping qt5ct from the testing builds as it no longer seems warranted.
A GUI interface for iptables seems reasonable and mugshot doesn't take much space to appease some crowds.
And then simple-scan that I'd forgotten to include/test with a network scanner during the final testing phases.
After making a new repo to accomodate the 686-pae builds much HouseKeeping was needed in this directory.
Separating the builds allows me to more fully focus on dev of the amd64 version and the upcoming Devuan version.
2022-02-19 by KsWoodsMan
In the 3 external repos used for common files, the underscores ( _ ) were removed from their names.
The BldHelper scripts wered edited to reflect the new change.
Be sure to adjust any local git directories for this change as well as changing the PepBld scripts to relect the new changes.
Proposed adjustment to the version od calaraes being used was accepted with enthusiasm giving many additional option during the OS install.
Also, Net Install options were considered and agree to ne an upcoming "feature add".
2022-02-18 by KsWoodsMan
Additional repos were added to Peppermint_OS . These include Pep_Pro_PixMaps and Pep_Dev_Tools as well as renaming Pep_Hub to Pep_Pro_Tools.
These will be used as common files to be sure apps in /opt/pypep have the most current set of icons available while building ISOs.
Updated BldHelper-*.sh scripts used by the server for automated builds.
The PepBld-i686-*.sh files will need 3 lines edited or removed / moved to a new area at the end of the build script(s) to find these current files.
2022-02-13
In the forum, at https://forum.peppermintos.com/index.php/topic,11171.msg107269.html ,
ManuelRosa has expressed enough interest in a 32-bit version to have gone to the trouble of posting the required edits for the build.
All the required information was in one place. It was well presented and easy to follw (: nicely done ! :) KUDOs !!!
This looks like a good thing, for some. Be sure to watch this thread for involvement and acceptance.
Being a "community driven project" , I see no reason, at this point, not to give it firm consideration.
Some of the web reviews I've heard of, have seemed disappointed saying "They aren't going to offer 'this'."
That I know of, there hasn't been a conscious decision made NOT to include this.
The first thoughts were to get the amd64 version out *first*, then follow it with additional builds.
2022-02-12 AM
Just finished getting the Snap Store in hub to work. I hope.
Fixed the old error in hub.py involving btnspm/lblspm to btnsnst/lblsnst .
Added ssst to run an installer after snapd is recognized as installed when the hub starts.
Added a symlink in pephooks/normal/0600-... from snap to /usr/bin/snap-store.
Added a test for /snap/bin to exist. this shows up after `sudo snap install snap-store && snap-store` is run/
Added more to that , if not exist then install it using snap.
This is after countless fresh installs because purging snapd wasn't sufficient at removing everything.
Logged into the build server to build a new release ISO which includes current fixes in the new Peppermint Hub.
I did mention the existance of the replacement for Release 2022-02-11 that fixes the PepHub troubles.
A new peppackages.py is in the works. So It's unclear to me if the current revision will be updated immediately so the hub still works after snapd is installed
or if the current release will be skipped waiting for the newer peppackackages.py .
I REALLY need to get the proceedure from G how to update the release files at GitHub and SF .
Having this info, I could script it into a cron job on the DO server.
Checked persistence with a /home partition. It added 10 seconds to boot-up. OK not bad, it's a really slow USB 2 drive.
the last test, adding /opt to persistence was painful. Check later if this has improved.
Then try it with the slow USB for full persistence. Comparing that to Pep-10 on the ame USB and with a USB-3 drive with far better specs.
noon: I checked into the build server to see why a new build hadn't happened for the testing build.
Something in the build caused it to crash but not sure at what point. The following build overwrote the tmp logfile.
Fix this in the housekeeping portion of the BuildHelpers so even if the build exits early the logs still get moved out of the way for the next build.
PM: Added a comment in the checksum file of the release ISO showing the DOB of the ISO.
This should make it easier to verify that a newer ISO is available to devs and end-users.
Not sure how well it is going to work out trying to also check pre-dev repos for new files to include those files in the Dev Repo.
This seems better placed with the author/maintainer there. When they are ready for files to end up in the Production repo it would seem more natural to have the author push them to the De-Repo.
Then when edits are found to be needed , in the Dev repo , for the editor to push those changes from the dev repo back to the Pre-Dev as well.
This would to help keep old errors from being reintroduced.
Directly mentioning certain files, in the dev repo, have changed Has Not been effective at keeping previous errors from being re-introduced from pre-dev.
Otherwise, The auto-updater will probably have to be rewritten to use rsync to scan raw files in the online repo.
Instead of the much simpler method of looking for local changes between the Dev repo (KSTestRepo) and the Production repo at PepDistroConfigs.
There were times weeks went by that finished files were sitting in a pre-dev repo and not pushed to the production or dev repo.
Some of the finished files might have been pushed to the production repo as well.
Previously, this has caused much confusion of what was or wasn't a final version/revision.
Also several setbacks occured , having the final version was in production repo, but never showing up in Developement for testing by others.
Also, Never having gone through the dev repo, no review was ever done on them.
Because these final versions never appeared in the dev repo (as expected) they were re-written with older versions or not included.
This may stem from my not having worked in the same shop as other dev's and not being fully aware of the S.O.P. in use by them.
I do think it is prudent, making for a smoother workflow, for the _author_ or _maintainer_ of cetain files/dirs to move their changes from pre-dev to the dev Repo.
If edits in the *Dev Repo* happen _and_ a pre-dev repo exists where the originals reside, then it also makes sense for the edits to pushed to where the pre-dev work exists.
This way, the orginal author sees and gets the newest edited files when they renew local copies by pulling from the pre-dev repo.
2022-02-11
Pulled down the web copy to try and burned a fresh one from testing.
The release was looking good till someone said the SnapStore in the hub wasn't working, again.
He gave an example of the error pointing to line 233. YUP ! an old error keeps finding it's way back into that file.
After snapd is installed in the system the hub looks at it differently and calls another app than the original.
Thats fine except the new action isn't defined and nothing is written there for it.
Wrote a how-to for setting the pinning as expected with unstable only available when explicitly called upon.
What took 20 minutes in some web shows takes less than 2 minutes and BANG ! its done and working completely as expected.
Figured out that LUKS encryption DOESNT work for the / partition, during an install.
It wasn't spelled out exactly.
That fact was merrily danced around with "can be used to encrypt /home or swap partitions and LVM's, except for boot.
Just because / wasn't mentioned ... was and should be No indicator it works on / . OK issue closed.
Workarounds are available but not using or during a normal install. Sheesh !
Added an extra line to BldHelper-release.sh to add the date of the released ISO in the checksum.
It wasn't much and adds 37 bytes to the file size taking the checksum from 153 bytes to 190 bytes.
2022-02-10
In the testing builds - I changed a variable for the repo from bullseye to stable.
The build went through as hoped. Boots and all works correctly as it should .
Changed the sources.list and 99pin-unstable to relect testing (50) unstable (10).
I do get a warning about apt expected bullseye-updates but got back stable-updates.
Everything other than that notification works. pinning, updates, installls ...
Very useable.
Added bluez and bluez-firmware to improve functionality for BT users.
RWC has mentioned inputattatch for Iphone devices. It doesn't look big or have large dependencies. OK
Gearing up for the next release. Still working on the robo-updater. Parts are working correctly.
Went a week without incremental updates to the Production repo handled it in record time compared to the same, by hand, a little each night.
The build scripts in the Dev repo are going to HAVE to be manually updated. not much getting around that.
Once the RU can spot a difference it will move the Dev file to Production. But moving changes from the testing to nightly to the release builds hasn't proven to be scriptable.
The pinning is absolutely correct.
Been waiting for edits to the hub and actions source file to come in. Life gets in the way sometimes and wasn't back till hours after they arrived.
No time to review or test, they were pushed through.
Found a build log from the Debian XFCE4 project, takes some 'gleaning' to pull info from it but seems we are on similar track.
Theirs seems to be using 'make' where ours uses shell scripting. Potato Patoto .
Not as bad as finding Qt options for calamares from a hexdump of the binary .
2022-02-08
The misconfigured pinning has been resolved by adding a colon (:) as needed in the correct location.
For the LUKS issue . I'll be pulling down a src copy to read, looking for comments there from the author.
Looking forward to seeing a few extra additions to the welcome screen.
A couple of touch ups there should have 3 search engines added in the "Links" area at the bottom.
Also backgrounding the web apps keeps from blocking the other apps available on the welcome page.
Listening to and watching the reviews from the initial release gives insight to where their eyes fall, what they are seeing/looking for and where.
They are familiar with the XFCE4 desktop already and looking for new baubbles, gadgets, gizmos and shiny things there.
Otherwise their over-all attention seems lost quickly, not taking time to do much more than "kick the tires". CI|CD we'll stay in the forefront for delivery there.
Now that the overall pace has slowed, dig deeper into the back-logs.
We have tons of X-apps installed that aren't showing up in the menus.
Yeah, ok , they aren't the prettiest (xcalc) but they _are_ there and available but gone unnoticed and are the basis for better looking apps.
maybe do something like - for i in $(busybox --list); do [ -x $(which $i) ] && ls -l $(which $i) || echo "The app $i is not in our path." ; done
Submitted a newer peppackages for review with 3 addditional files to include DDG, Yandex and Metager search engines at the bottom.
I didn't have any 20x20 pngs for the icons for them. And mentioned this.
The changes are minor but stop the app from blocking new instances of the additional features.
Blocking them doesn't stop them from being activated. they all go into a queue causing them to act similar to pop-ups coming from nowhere.
In the older version this is demonstrated by starting one app then trying to oppen different apps.
repetive clicking any of the buttons causes that one to restart or others to restart over and over.
2022-02-07
Lasts nights build to test encryped install runs through without errors.
Reboots are as normal , using UEFI , grub config has the calls to load crypto modules, they are present.
The decryption password is asked by grub on boot, boot process starts and times out trying to access the root partition.
The partition can be accessed from another installed OS as well as from the live-session.
It's not errors with the encryption nor the password. The problem is in the initramfs.
Been thinking about stream lining parts of the build by adding 2 more directories AFTER the 2022-02-10 build.
These 2 directories, pepnightly and peptesting, will have pep* sudirectories containing files unique from the release.
2022-02-06
Referring back to 2022-02-03 unstable has been commented out of /usr/sbin/sources-final.
Pinning in /etc/apt/preferences.d.99pin-unstable has been commented out of the PepBld-*.sh scripts.
A bonafide concern has came in about installing with encryption. Basically "Not Working" is accurate.
Grub is asking for a boot password. Good so far.
Grub menu Selection comes up as expected. But the boot process stops while trying to decrypt the partition.
Drops to a root initramfs prompt.
Looking for missing depenencies points to cryptsetup-initramfs & cryptsetup not being in the initrd.
https://live-team.pages.debian.net/live-manual/html/live-manual/customizing-run-time-behaviours.en.html#588
echo "cryptsetup" > config/package-lists/encryption.list.chroot
2022-02-07 Looking at previous L-B log files, cryptsetup and cryptsetup-initramfs are and have been getting into the build.
but don't seem to be appearing in the initrd for use during booting.
I may hove to extensively go through build logs as well as debug files for the installer to see where they're getting dropped.
2022-02-06 AM
It's coming to notice that some of apps expected to be current in the stable repo are not getting updated.
FF-esr seems to be high on the list for some.
With reports of ver. 91 being in old-stable but not stable sounds like it was removed by Debian or in the middle of a "re-fit". Just our luck.
From the installed OS, Look into how pinning in being handled for this.
It seems odd that the Live-session isn't behaving here as expected. But then they _are_ 2 different animals.
Noticed also was the lack of SPM in the hub. Odd that it was seemingly defined and expected to be there.
A quick fix there should have the button location brought out to the GUI.
Installing to an encrypted partition has not gone as well as expected for those that use it.
Seems as though either a depenency is missing from the live session , not being installed , or it is removed during the install.
2022-02-05 Ks
With the release behind us , I want to spend a bit of time to "soften" the wording in the boot config filies.
Change "Recovery" to "Direct Boot" and have seperate menues for sda sdb nvme01 mmc0 and mmc1.
Then trim the padding from the file(s) as most is now unwarranted
2022-02-06 PM Also to add a timeout before booting to a default.
Devuan is next up on the list. Coming in at the tail of the Pep-amd64 project I didn't have much time to really take in the entire process.
Thankfully we managed and What is there , none of us should feel as though any part of it requires defending.
Having some, recently invited, fresh eyes on the project should help things.
There will always be someones pet app that didn't go in the build.
It's expected to happen. Yes, Peppermint has changed.
Otherwise it would have been Pep-10 Re-respin.
We brought some of the classic looks and brought with us new innovation.
2022-02-04 Ks
Adding an ampersand (&) to the end of nearly all of the commands in the welcome window allows more than one child window to be opened.
example:
def rls ():
# pwel.destroy()
os.system('python3 /opt/pypep/release.py &')
The exceptions to this is for peppackages.py and for hub.py .
These 2 apps import singleton to allow only a single instance.
Without the "&" the hub and the the others will block the other apps, til the first one is closed.
With the "&" it will allow multiple instances of each (except hub.py and peppackages.py) and also no longer blocks the other apps from starting right away.
Also, an error message that python3 was anable to raise the window for hub.py and another error for peppackages.py .
Second of notice was , adding "&" to the pks command breaks some retries opening peppackages.py .
Logging out and back in corrects this, temporaily. This app is now "stand alone" with python3 in the bang-line.
More trial and error testing this without "python3" folowing pkexec is warranted.
Mentions have been made about MeWe not getting attention in the Welcome screen.
Another "nice feature" in the bottom row would be to have one to open a WebSearch to metager.org or duckduckgo.com.
Really cool would be if it had an address bar.
This would allow users to use the agnostic browser to find and DL their browser of choice, not in the debian repos.
22-02-03 Ks
Had a ZDNET article pointed out about a "serious security vunerability" using pkexec .
After aplying their recommended patch, this broke more than it fixed as the set UID bit for root is REQUIRED.
This patch was immediately removed.
Unpinned the stable repo from 900 to match Security and Bullseye-Updates at 500 .
Left unstable pinned to low priority (10)
Added --security true \ to the testing builds. This should keep things curent as well as allow Debian to manage taking care of the pwnkit for pkexec.
--backports true \ was also a recent addition, for Nvidia drivers.
2022-02-02 Ks
We released to the public. Not the frantic Grand Re-Opening I'd expected. But, it is building.
At least the pirates aren't killing the tourists and the Dinosaurs aren't eating them either. yay.
2022-02-01 Ks
With no clear route back to the Welcome window, with the exception of pge, "pwel.destroy()" has been commented out from welcome*.py.
This keeps the Welcome Window alive as the parent process.
The exception to this was for the pge command which does allow the parent to close , in favor of the Extras.
Closing these with the button, instead of using the window manager decorations, allows these to return to the main_loop.
Check also if the min, resize & maximize window decoration does the same.
2022-02-06 PM Closing the task by using the window decorations does NOT allow pge.py to return to the Welcome screen.
2021-01-02
Plenty to update but not sure where to start.
Calamares - To me, the look has improved considereably. Still a few places to change.
- font brightness +/- depending on the background intensity.
- buttons to resize and change their color (on hover).
- width of some dropdowns should be decreased.
- color change in the backgrond for tool tips.
- tweak the size and aspect ratio for the slides to better match that area.
- darken or lighten the intensity of some "icons" GPT/MBR in partittion selection, "About" and "Finished"
32) This really should have been started as a Journaled Log with dates and times.
Then add to the journal references to the section here more as a ToDo at the top and a DoneList towards the bottom.
A full rewrite here is in order. The journal should contain the thoughts and actions for the day , referencing entries for when the thought began.
For completness, retain this original Notes file which began in early to mid-November of 2021 and move forward to a journal style log.
31) This seems like as good of a time and place to start a bulleted list of minor things in the glib-2.0 directory.
Things more associated with "the feel", as opposed to "the look". Small item I have been working towards as this has progressed.
- set peplive password to "blank" - # This must be rooted out in a live-boot or live-config setting, found on the ISO but inserted during builds.
- keyboard numlock = on - Done
- remember numlock state = true - Done
- remember session = false - Done
- Alps touchpad edgescroll = true - w.i.p .... look in /usr/share/glib2.0 for these in gsettings.
- Alps touchpad taps = true - w.i.p .... my laptop has this issue ~/.config/xfce4/xfconf/xfce-perchan*/pointers.xml
- Synaptic touchpad edgescroll = true - w.i.p .... look in /usr/share/glib2.0 for these in gsettings.
- Synaptic touchpad taps = true - w.i.p .... Dustins laptop has this issue ~/.config/xfce4/xfconf/xfce-perchan*/pointers.xml
- touchpad 2 fingered scroll = true - Done
- nemo right clicks to open terminal - Done * This setting changes during OS install. Continue to rely on a symlink for this.
- thunar open maximized = false - Done
- thunar on open dimensions = 724x400 - Done
- firmware-ralink for my MT7601U wireless - # Misconfigred RTL8188CE module, breaks WiFi till RTL8198uu module is unloaded.
- firmware-mediatek for my RTL8188CE - # Not finding the correct module and uses module RTL8198uu instead.
- firmware-iwlwifi for intel wirelesscards - Done
-
-
-
- - - - - - -
30) In an attempt to speed up the build process and lower the bandwidth used, I have been (mostly) able to take care of stale mountpoints in the chroot(s).
Leaving the ./fusato/cache directory in place and deleteing ALL other files and directories around it lowers local BW usage by 300 GB/mo .
This also reduces the time required, during builds, to fetch 800+MB of .deb packages.
On my slow connection this saves me 30 - 45 minutes for each build.
Builds are disk intensive. Compared to using a spinning disk, using a SSD drive would cut local build times to under 30 minutes.
29) During a build ,`lb`creates and uses mountpoints in the chroot(s) in fusato.
If a build fails it leaves these set and causes problems that have plagued the build process, producing inconsistent ISO's in the process.
The command `lb clean` probably takes care of these as well as removing old files from the last build.
Piping the output of
`mount` => `tac` => `grep "${PWD}/fusato/chroot"` => `cut -f3 -d" "` => `umount`
takes care of unmounting them is the opposite order as when they were mounted by a previouly failed build.
Starting a build with "--clean \" may also do something after the obvious files and directories are revoved.
This means, after a failed build (locally or on the remote server) no more manual intervention for this before the next build starts.
28) New Years Day 2022 - I found/made time to start working ahead a little bit.
I Started woring (locally) on a separate build that doesn't rely on "--apt-recommends true".
And I thought I was having a hard time getting things right for online/offline grub and grub-efi installs.
It is progressing. I've gotten ahead of myself trying to build the live session without having the bootstrap setup correctly.
By not having the bootsrap built correctly, with `live-boot` included, `lb` isn't creating any user accounts to log in to, effectively.
I can still get into the bootstrap with "init=/bin/sh" in the boot configs for the ISO .
Jan 13, 2022 , I added live-boot to the unstable build to see if this creates a user account used to log into the live-session. - Nope
27) While on the welcome window , be sure to check whether the manual one won't open while the auto version is running and vise-versa.
While both can be opened at the same time, it is unlikely to happen.
Changes made to welcome.py and welcome_man.py causes welcome.py close with the PepGetExtras (pge) and reopens welcome_man.py .
26) The startup Welcome Window still "destroys" itself when anything there is activated.
The devs know and anyone familiar with the OS will find the one in Favorites.
New users won't know how to get it back. This will be a "point of frustration" for them and something for the YT naysayers to pick apart.
25) The Debian update from 12-18-21 has introduced a few unforeseen things.
First it was the kernel version change which was found the same day when the ISO's failed to boot.
Then, while trying to install FF the install would hang with only minor warnings being shown.
This is on "the mends" with a temporary solution going into place and a direction in mind to keep this showing up again.
Possibly adding FF-ESR as a second choice to FF but then Where do you start and when do you stop ... ?
**** Looks like the fix, for now, was to bring the FF-unstable install out to a terminal window to interact with the user.
I need to revist redirecting the IO for terminal apps to VT's. Ahhh the "Good ol' Days" from WirelessKs.net with apps displaying on 30 VT's.
Getting the I/O from `dialog` to show and respond in the output box INSIDE the installer window would look cleaner.
Look into seeing where the display box is getting redirected from.
* It is a "pipe" where the `stdout` is piped out but nothing to redirect `stdin` back to there.
All of the tty's, except where a normal user is logged in, are owned by root and only read permissions are given to members of the "tty" group.
The code in peppackages.py mentions tkinter-terminal. If this terminal opens a tty in /dev/pts/* instead of piping the output to it, run APT in it.
Other wise it might take some creativity to open a terminal in a diffent desktop,
then to use redirects such as `htop > /dev/pts/0 < /dev/pts/0 & ` . Can the same be done for `APT` ?
This should cause apt to write to AND read from the tty opened by tkinter-terminal. Will apt use it for a fallback to interact with the user ?
* How do I efffectively communicate this to the devs working in that area ?!
Backing up to FF-ESR solved this. Later, I'll still have a go looking into tkinter-terminal. redirects to/from the OS Might be useful at somepoint.
24) Had a snafu collision between ICE working and wrestling a workaround for the snapstore into this.
It seems resolved. Further testing is required. the fix was put in ./pephooks/0600-*symlinks*
Jan 13, 2022; Ice is working and no negative reports about the snap store. No news is good news.
23) It is also time to start thinking about automating the process of updating files from the dev repo to the production repo.
This shouldn't be that hard to implement. This is just up `rsyns`'s alley.
Check to be cure the creation times are intact when using `git`.
This is to see if ctime is when they appear locally or at the time they were created on the remote users system.
As long as no one creates files in the production area, automation here should succeed.
Tommy mentioned automated code checking tools to go into the dev directory. Should be doable.
22) With automated builds running smoothly for the last month, we hit a snag while trying to run them with the time overlapped.
The first build to start failed while waiting for an ISO to show up. the second build finished (roughly) on time.
It is time to implement a locking file and detection. So if a build does run over the expected time the next build won't destroy it.
This will tell subsequent instances to pause and wait for the first one to finish before continueing.
Jan 13, 2022; this still needs done. And will be even more necessary when we add extra flavors.
21) Earlier it struck me, Now that the base is stable and working, developing for this would go a lot faster if ....
I were to install the OS to a decent drive IN the machine I'm working from. This way, I am right there IN the OS.
OhMeeGawd ! How did I not see it sooner !
Install the OS with a home part on the disk - WITHOUT my current home partition attatched.
During the install create a normal user account.
Copy the requred files from the old $HOME_PART to their/my new ${HOME} and Presto !!!
Normal cavaets apply regarding protecting the home partition. Take great care not to wipe that out, Keep Back Ups !!!
*** Now that persistence is working with our ISO, This just got even easier.
20) Current discussions were on the topic of "Which default browser to use".
It's been handed down that - NO Web Broweser will be installed."
This is on the premise of "browser choice is a matter of choice left up to user (person in the seat)."
OK. Seems harsh. But, "not my baby". I'm in the delivery department not the conception department.
*** Tommy has something is the works that is looking EXTREMELY promising for use in place of an "x-www-browser".
I seen the current results. I'm thoroughly impressed. Pointing /etc/alternative/x-www-browser at it negates the need for a named browser.
It's resizable, has an address bar, goes forwards and backwards, will DL files, plays YT video and sound is working.
Getting it to accept a URL from a command line and possibly the window size on open makes this a drop in replacement.
19) My testing builds on the build server are running again.
Or so I'll find out tonight. Dec 5, 2021
It might not have needed the PATH variable set.
Having it set for `cron` won't hurt though.
18) We started with '--hdd-label "Peppermint" \' in the config portion.
We are building an ISO not a HDD image. This isn't PenDriveLinux.*
This was removed and commented out in my script, with a note.
That I can tell, Removing it hasn't seemed to affect anything.
I see no changes usings `strings -td $the_file.iso` .
* (PenDriveLinux - Hmmmm Ideas ! A working full featured desktop in under 500 MB.)
17) After setting the config vaiable "--apt-recommends true" to "false", one of the hooks scripts spit an error.
( See #29 ) Not just an error. ANY errors in the hook scripts causes the build to fail abruptly, leaving stale mountpoints in the chroot.
The error was a missing directory (or variable) where, I guess, files were to be written to (or used) during the rest of the build.
This was bad-Bad-BAD. The build crashed at 9 minutes into the run, each time.
Reading the local file /usr/lib/live/build/config has been a both a great help to trim and to break local builds.
Also, because --apt-recommends was set to 'false' `sudo wasn't installed which called some thing in 0520 and 0540 hooks to fail.
`live-build` runs as root and has no need for `sudo`. Without the --apt-recommends auto installing the kitchen sink,
the trimmed versions will need extras listed explicitly. - Choices -
Also in hooks/normal/0540- there is some odd bit there about adding a $Desktop in /root and setting the icon for the root user.
16) The pepbld-log.out shows needless time spent running 'zsync' on the ISO.
By adding "--zsync false \" in the config portion of pepbld.sh this should stop.
Its removal has shaved the local build time to 1 hour 15 minutes. (note to self - install that SSD in place of the Sandisk USB for dev desktop)
Further time saving was found by offloading the logfilie to /tmp to stop blocking R/W's for the build.
This helped locally. Not much I can do in the remote serever.
Jan 5, 2022; Another big improvement was to do writes in ./fusato to a disk on a seperate channel from where reads are done.
More gains found again by deleting ./fusato/cache/bootstrap as well as everything else in fusato EXCEPT ./fusato/cache .
This is where the .deb packages are held , as well as the InRelease and Packages.gz files for the local repository.
ALSO I unpacked the Nov 11, 2021 tarfile, from before the Debian version change in Dec, and ran a new build from there with the old packages.
As hoped, Live-Build recognized the old files and only DL'ed the files that have changed in Bullseye.
Even better was that Live-Build took care of removing old packages after the new ones were in place. Win - Win !!!
Local build times are now under 38 minutes for a 1.5 GB ISO. What HAVE I done with that SSD ?
Hmmmm , USB-3 Raid-0 is do-able and should hit the upper limit of the host transfer speeds.
15) Ran into a problem with running `./pepbld.sh` as a cronjob.
It seems the output of `lb` might need to be attatched to a terminal to run correctly. Heh ! tee to the rescue.
cronjob: runs a helper scrip and the helper pipes the outputs to a file.
`tee` couldn't care less that `stdout` gets blackholed or gets written to /dev/null.
Sending the output to /dev/null seems better than it showing up in /dev/console.
From ${working_directory}, I'll try changing the pepbld.sh line to "`./pepbld.sh | tee ../pepbld-log.out >/dev/null`"
This way the logfile will show up outside ./pepdistroconfigs in KSTestRepo .
Cronjobs run with the power of the user but not with their full environment.
We haven't been setting the PATH variable in the scripts (early on I wondered why not).
The scripts have been getting called from the CLI using `sudo`, using this does set our PATH.
But since we are calling sudo in the crobjob the script errors/exits the first time it encounters a command NOT in the cron user's path.
*** The addition of "PATH="/sbin:/usr/sbin:/usr/local/sbin:$PATH" on the line immediately following #!/bin/bash will make the scrips more portable.
14) I must have missed a memo that the ISO is getting trimmed and shrunk to about 1GB, or less.
The idea for this seem to be partly due to "choice" the end user has the "choice" to add what they want.
The end user might know what choices are available. Seemingly , more than Half of windows users cant find the Control Panel.
A new user or windows convert is likely to give up and go elsewhere since they won't know what choices are available.
They won't know that synaptic is a package manager or even how to use a CLI text editor, much less able to run `sudo apt install`.
Maybe I'm missing something That perhaps there is the plab(???) of a sleek racer inmind for one set of ISOs.
And another ISO to appeal to the new enthusiasts. Pep 10 was done very nicely with just 1.6GB. Even At 1.4 it doesn't seem lacking.
13) I been noting the location of lint files not needed by the Live-Session or the installed OS.
Getting these cleaned up, before final release, will help to trim the iso size.
*** This requires a or a few 'hook' called in ./config/hooks(/live and-or /normal) to run during the install - for each flavor.
This '095X-lint-removal-hook' needs written to be portable. So each of the builder scripts can re-use it.
Something along the lines of `for $file in \ list-by_path \; do [ -e $file ] && rm -rf $file; done` .
If it exists, whether it is a directory or a file, it gets removed and moves on with no errors to cause the build to fail.
This is a clean-up only. Not to be used for trimming particular flavours.
Additions should be done by listing key additions in the builder scripts.
12) An added benefit to the seperate trees is `cron` can call MasterBuilder.sh in the root of the worling directory.
From there , MasterBuilder.sh sequentially call each of the ./Builders/${FLAVOUR}.sh scripts for each build.
The ./MasterBuilder.sh take care of the house keeping deleting the old files, before renaming and putting new ones into place in /var/www/html/*/* .
**** This is all worked out. By using a BuildHelper-*.sh and a PepBld-*.sh for each build, pepbld.sh is only used for the weekly builds.
This does require a symlink from PepBld-release.sh => pepbld.sh. And keeping 2-3 more (PepBld-*.sh) files similar to pepbld.sh.
BUT this preserves the beauty of the C.D. nature. Each build has a unique build script from the release version(s).
After daily or weekly modifications are found to work well, then pepbld.sh can be edited to incorporate the changes.
This is exactly like having 4 repos all rolled into just one.
***This should roll together PERFECTLY when we start an x86 or Devuan build. All that's needed is another unique PepBld-*.sh and BuildHelper-*.sh.
From there one more line in the crontab and we are building a new "flavor" or set of flavors.
11) Been working on shifting from all the files spread out flat to organizing them in an actual tree.
A quick edit of the pepbld-orig.sh script gave me what I needed for mine.
I'll probably write a script to read pepbld.sh in the other repos that will write a script for their files.
The idea behind this is to have a common tree of things like wallpapers, icons and default config files.
THEN have several skinny trees with the specifics for a certain type or flavour of Peppermint.
Some discussion has gone on about doing more than an amd64 and x86 Debian distro.
This will allow the team to _more_easily_ support additions of Devuan and possibly ubuntu.
Another benefit is, the possibility of an easier model for rolling releases of each flavour.
A single change in the common or parent tree will immediately show up in the others as well.
Each of the build scripts will have it's own list of packages to be installed.
The common tree can be used to pick from various files & folders or backgrounds for a full, sleek or stripped model.
***Actually, the current method is just as modular and pluggable. Changing the format only means less typing for one build.
The only real benefit is it is already in a tree format.
Each of the different builds/flavors can have their own "skinny tree" with their specific config files that can be copied in place overwriting files in the main tree.
**** In the long run, having the files spead out is more like picking files off of a shelf , all in one store.
Rather than going to several orchards for a piece of fruit. The build scripts will detail what goes into each recipe.
10) The files /isolinux/live.cfg and /boot/grub/grub.cfg are close. They get the job done and look good during boot-up..
With more than just /dev/sd[a-z] now, might include /dev/nvme0[1-9] and /dev/mmc?? , each in sub-menus.
***Closer inspection of the sys/isolinux.cfg files shows a stdmenu.cfg where I should be sourcing the recovery options.
Lets get this written up, included with the builds and then sourced from stdmenu.cfg with the others.
Then go back to /boot/brub/grub.cfg to do the same. :) Modules, not monoliths. ( see #11 )
9) I have a bash_aliases file in ./pepaliases that will get trimmed. Most people in the seat won't need/use/know what is in there.
They might use linux for years ... and never know ~/.bash_aliases exists. :D
Noticed that the line for bash_aliases was segregated from the others.
It goes from being a visible file in our folders to being a hidden file in the live-session/OS .
Consider trimming the one for release further now that there is also a larger list of applets in the -nightly and -testing builds.
Cavy was informed of the dangerous applet in the testing build used to quickly recreate the partitions needed for the Dev Desktop for my local builds.
I have warned others to stick with the release and nightly builds. * We'll see how well they listen. *
8) I feel pretty confident the snapshot from Main on 11-27-21 is going to work. I went through it by hand.
There were only a few permissions that required changing. Most notably was 'install-peppermint' being copied to /usr/bin and some of the .desktop files. .
**** Created a pair of tools to recursively look for and report directories and files set incorrectly.
Keeping in mind that some .desktop files require being +x , images and config files do not.
Still seeing a few trickle into our folders that need tweaking. Nothing to worry about, for now.
7) Reverting again to a newer tarfile used for successful builds, dated 27, November 2021.
A serious snafu happened when I "off-handedly" changed the permissions of files in pepdistroconfig then sent them upstream.
This is the reason for reverting again, using `git reset SomeLongStringFoundInTheLogs` would have saved time.
I'll have to unlearn old habits as I get more familiar with `git` and working in a larger collaboration than just me & myself.
**** Git-Foo is getting stronger. `git diff ${file_name}` is a _blessing_ to review changes before a commit/push .
6) I have been able to get Offline installs working by sending a list (one package per line) to installer.list.binary.
This is the location used by Live-Build to create /pool and /dists on the ISO for offline installs.
This list needs to include grub2-common, shim-signed and shim-unsigned needs to be here as well. ... will fill this in later.
In the chroot section - I have efibootmgr. The pkg grub-common is pulled in and grub2-common is in /pool .
In the installer is - grub-common, grub2-common, grub-efi-amd64, grub-efi-amd64-bin, grub-efi-amd64-signed, grub-efi-ia32-bin,
grub-pc-bin, libefiboot1, libefivar1, mokutil, shim-helpers-amd64-signed, shim-signed, shim-signed-common, shim-unsigned & ucf .
The packages grub-efi and grub-pc are conflicting and have been removed from the installer section to be saved in /pool .
****See notes in section 5 about using `grub-cloud-amd64` and `grub-legacy`.
And the sources.list, for the live-session <== THIS was where the problem began, again. And buggy bios in a test machine. See 5 above.
5) After more that a week solid of trying to find the problem with grub on bare-metal and neglecting all else I am giving up.
I'm reverting to the tarfile used for successful build downloaded from Codeberg dated 14, November 2021.
This doesn't have the styling and improvements from @grafiksinc and @jonesy. But clamares is installing grub correctly.
**** Jan 12, 2022; Off and on for the last 2.5 months, `grub` has been the bain of my existance.
This was FINALLY cured by COMPLETELY removeing all instances of grub* from the packages list.
Using `grub-cloud-amd64` in the installer lists was an *O*M*G* breath of fresh air and burden removed.
When it comes time to start an x86/i686 build, Debian also provides the `grub-legacy` package` , just for this.
**** And now it isn't pulling in grub-pc or grub common for the offline installer. Just include the dependencies and co-depends for grub-cloud-amd64
I went back to re re-edit all of the build scripts for the full list of dependencies of grub-cloud-amd64 in the installer sections.
ALSO - Note that BFI'ing a sources.list into the builds breaks things. It requires finesse. (BFI = Brute Force)
* It wasn't broken anymore. Stop trying to fix or improve this section. Months of grief could have been better spent elsewhere.
- "Grub-common breaks grub-cloud-amd64". Something from '--apt-recommends true' is pulling grub-common in, as it's installed in the chroot.
- I feel somebody's pain as they were going through this before now.
- As it turns out, it is a compatability problem with the machine I was testing offline installs on.
### This whole setcion needs a rewrite. The problems I was having were more to do with the buggy BIOS than with the current builds.
4) Found a new problem no Pep testers found or commented on.
During "Install Alongside", Indecisively selecting the partition to use crashes the installer on the fourth click.
No warnings are given , no errors to the screen or to the install log. Maybe in /root/.config/calamares/session.log .
"... don't use this option." ???!!!??? Maybe not, but it _needs_ tested .... Check the Debian USB for the same bug.
3) During the install, Calamares is expecting `smartctl` to be in its path. It isn't in the binary.
I'm not certain (yet) whether it needs to be installed in the live-session or the chroot.
It's not fatal, the installer logs mildly complain about it not being there.
Add it to the installed packages in the binary to see.
Added it to the list in chroot.list.packages .
2) Doing an install with `toram` crashes with an "out of space" screen error at about 86% completed.
Further looking in the log shows /dev/shm is mounted to /dev/sdb1 (the ISO).
***This is supposed to be a tmpfs.***
1) **Why, oh Why** does the "Install Alongside" option rearrange the partitions order ?
The graphical depiction is correct but they are labeled out of order in the GPT.
This is going to break something for (OCD) people expecting the GPT tables to be in order.
I came in late for the testing phase. I started in UEFI beta. Check this behaviour using MBR in a Legacy install.
*** Let It Go ! ***
####################################
*) Persistence is still on a back burner as we work through Offline UEFI installs and the others take care of styling and Pepperminting.
Using ${HOME} persistence seems better currently. But ANY persistence causes the installer to fail at unpacking /live/filesystem.squashfs .
*** A thought came to mind to have a symlink from the location the installer expects it to be
pointing to the mounted FS. A regular mount , while in live session , should cover it up. This can go in configs/hooks/normal/0900-OS-LintRemoval
Nope Persistence is working now , as expected by removing stale files being maintained in peploadersplash.
*** I think I can close this one. But not the "toram" boot option. Review line 2 of this paragragh for checking persistence still.
The persistent partition is getting mounted 2x to the same directory. This is still better than when we were re-using the old EFI files in /peploadersplash/boot/efi .
Using persitence as an overlay to / was horribly slow.
Having ONLY /home mounted there was quite usable.
Adding /opt to the partition, with /home, to be able to install "foreign" applications (google-chrome) was not "great".
Manually unmounting the second instance where the persistence partition holds both /home and /opt makes this much easier to use.
Still not great , but 'marginally' acceptable. though not ready for prime-time.
I did add a few bits to the testing build.
Just after the ISO is created and before the sha512 checksum gets written, I have added a 4rd partition , outside of the ISO .
Normal tools don't allow this. But then `dd` wouldn't ordinarily be used as a partitioning tool either.
Says the one guy that uses "Disk-Destroyer" to edit boot files on a USB or ISO image.
./pephooks/540.... :
*** Skip to last paragraph ***
<strike>
I'm thinking, for calamares installer, these debs only need to be available for install
Their location would be in ${binary}/pool/main/[e,g,l,m,s]
_In Debian_, The Packages files that point to them are in the binary, in /live/filesystem.squashfs .
./var/lib/apt/lists/local-mirror.cdbuilder.debian.org_debian_dists_bullseye_contrib_binary-amd64_Packages
./var/lib/apt/lists/local-mirror.cdbuilder.debian.org_debian_dists_bullseye_main_binary-amd64_Packages
./var/lib/apt/lists/local-mirror.cdbuilder.debian.org_debian_dists_bullseye_non-free_binary-amd64_Packages
In Pep11 , these files are
./var/lib/apt/lists/deb.debian.org_debian_dists_bullseye-updates_main_binary-amd64_Packages
./var/lib/apt/lists/deb.debian.org_debian_dists_bullseye_contrib_binary-amd64_Packages
./var/lib/apt/lists/deb.debian.org_debian_dists_bullseye_main_binary-amd64_Packages
./var/lib/apt/lists/deb.debian.org_debian_dists_bullseye_non-free_binary-amd64_Packages
notice the difference between lists/local-mirror.cdbuilder and lists/deb.debian.org
I'll make a list of the packages ( ! installed to the squashfs) for Pep11 CORE and Pep11 FULL to populate these.
This should also let us have the dependency package from Sid needed for _____(?)_____
It would go in the binary at /pool/main/unstable instead of /pool/main/bullseye
In Debian the corresponding entry is - Filename: pool/main/u/util-linux/...... It is local.
EUREKA !!! We should just need to create the directory ./pepdistroconfigs/pepbinarypool .
Then set about populationg it with packages we want for the UEFI install and both CORE and FULL.
Then `Live-Build` should take care of making ${binary}/pool the local repository for calamares installer.
To test this I am going to grab /pool/* from the debian disk, insert it to the new ./pepbinarypool dir
and add a line in pepbld.sh to copy the contents correctly into the $fusato/binary/pool tree.
</strike>
<strike>
Our Live-Build and the subsequent binary does NOT know to do anything with these files.
The debian binary does NOT list these as a location to use.
*BUT* during the process of the Live-Session booting, it has a routine that DOES know.
Until this is found (look in their hooks & initrd) we'll just grab their file from in the Live-Session at /apt/sources.d/Debian*.list
It is only a single line, pointing to /pool, that we can append to /apt/etc/sources.list .
*** It's created in Debians sources-media module. *** Is ours different ? or not used ?
The directory ./peploadersplash/pool/main already exists.
Adding ./pepbinarypool is redundant on my part.
Edit my entry in ./pepbld.sh to include what was there waiting for me.
We already have "pool" in place , just need to use it.
<s>For offline, Find and use the hook "sources-media" and the related hooks correctly. </s>
</strike>
***
What IS waiting for us is the inclusion of a 'new line' deliminated list at installer.list.binary to be used by `lb`, not " " deliminated.
Later I did figure out that it could be a space deliminated list. I'd made 2 changes at the same time and accounted success to both.
That's ok though. a new-line seperated list is much easier to read and keep track of during edits or visually scanning for typos.
Live-Build uses installer.list.binary to create /pool and /dists in the ISO and calamares uses these files for Offline installs.
Between this and the inclusion of 'grub-pc' to packages.list.binary file this was the key to getting Offline UEFI installs working.
**** This is where I took out everything including all grub and grub related entries in both this list and the packages list, replacing them all with "grub-cloud-amd64" in JUST the installer list.
..... and now it isn't pulling in grub-pc or grub common for the offline installer.
I went back to re re-edit all of the build scripts for the full list of dependencies of grub-cloud-amd64 in the installer sections.
Using grub-cloud-amd64 does NOT work as expected. The calamares package lists grub-common as a dependency.
The package grub-common breaks the meta-package grub-cloud-amd64.
It mght be possible to use grub-cloud-amd64 in the packages list THEN drop in the calamares.deb so the dependency on grub-common is already met by grub-cloud-amd64.
This could open up the posibility of not needing separate ISO's for x86 and amd64 builds.
The combined ISO would be larger than either current ISO. But , because of so many shared files it wouldn't be 2x the size.
Or will `lb` spit out 2 ISO's and take 2X as long ?
If it didn't take 2X as long AND it successfully created 2 ISO's .... I haven't taken this into account during future proofing my server scripts.
no defined area
##############################
Check this during the Pep11 installer run, from inside the CHROOT .
From the "Packages" file describing the package efibootmgr:
"Note: efibootmgr requires that the kernel module efivars be loaded prior to use. 'modprobe efivars' should do the trick if it does not automatically load"
*** It's mounted correctly in the live-session as well as in the CHROOT. ****
This is for later.
###############################
Still not sure why persistence with Pep11 gets such a kick in the head.
The filesystems are getting mounted 2X instead of just once.
When doing an install with `toram`, /dev/shm gets mounted to the Read ONLY ISOfs at /dev/sdb1.
This is why the installer "runs out of space", exiting early when running `mkinitfs` .
This is supposed to be a tmpfs with RW.
*** slight mentions of this bug in other groups points to the problem as having "findiso=" in the boot config entry for the "toram" option.
One other thing slips my memory - review conversations with @cavy to jog my memory. It was the lint files.
Missing files in the lint removal section causes builds to fail at 9 minutes in.
Around 2022-01-07 I added error checking for in the script for these files.
I also added a commented list of files NOT to remove and adding to the list.
Removal of some files has had unexpected consequences in unexpected places.
Cavy's working knowledge of the GUI and retention of various information has been extremely valuable.
Having him on the team has been an asset I would dearly miss were his skillsets not been available.
The CLI might not be where he shines, yet mine are not remarkable in the GUI.
We have managed well together and the results are quite favorable. ++

View File

@ -3,61 +3,45 @@ PATH="/sbin:/usr/sbin:/usr/local/sbin:$PATH"
# Set the working folder variable
uchinanchu="$(pwd)"
[ "$TODAY" ] || TODAY=$(date -u +"%Y-%m-%d")
# This cleanup might be better served in the BldHelper*.sh script.
# Create the build folder, move into it removing stale mountpoints and files there.
[ -e fusato ] && [ ! -d fusato ] && rm -f fusato || [ ! -e fusato ] && mkdir fusato
cd fusato
# Within the build, can be layered mounts inside multiple chroots.
umount $(mount | grep "${PWD}/chroot" | tac | cut -f3 -d" ") 2>/dev/null
for i in ./* ./.build ./cache/bootstrap ; do [ $i = ./cache ] && continue || rm -rf $i ; done
for i in ./* ./.build ; do [ $i = ./cache ] && continue || rm -rf $i ; done
# Set of the structure to be used for the ISO and Live system.
# See /usr/lib/live/build/config for a full list of examples.
# Up above is the manual description of what options I used so far.
lb config noauto \
--clean \
--color \
--quiet \
--archive-areas "main contrib non-free" \
--architectures amd64 \
--apt-recommends true \
--binary-images iso-hybrid \
--cache false \
--mode debian \
--firmware-binary true \
--firmware-chroot true \
--distribution chimaera \
--initsystem sysvinit \
--memtest memtest86+ \
--mirror-bootstrap https://dev.beard.ly/devuan \
--parent-mirror-bootstrap https://dev.beard.ly/devuan \
--parent-mirror-chroot https://dev.beard.ly/devuan \
--parent-mirror-chroot-security https://dev.beard.ly/devuan \
--parent-mirror-binary https://ddev.beard.ly/devuan \
--parent-mirror-binary-security https://dev.beard.ly/devuan \
--mirror-chroot https://dev.beard.ly/devuan \
--mirror-chroot-security https://dev.beard.ly/devuan \
--firmware-binary true \
--firmware-chroot true \
--iso-application "PeppermintOS" \
--iso-preparer "PeppermintOS-https://peppermintos.com/" \
--iso-publisher "Peppermint OS Team" \
--iso-volume "PeppermintOS" \
--image-name "PepOS" \
--linux-flavours amd64 \
--security true \
--updates true \
--backports true \
--win32-loader false \
--checksums sha512 \
--zsync false \
lb config \
--clean \
--color \
--quiet \
--archive-areas "main contrib non-free" \
--architectures amd64 \
--apt-recommends true \
--backports false \
--binary-images iso-hybrid \
--cache true \
--checksums sha512 \
--distribution testing \
--firmware-binary true \
--firmware-chroot true \
--image-name "PepOS" \
--iso-application "PeppermintOS" \
--iso-preparer "PeppermintOS-https://peppermintos.com/" \
--iso-publisher "Peppermint OS Team" \
--iso-volume "${TODAY} 1" \
--linux-flavours amd64 \
--mode debian \
--security true \
--updates true \
--win32-loader false \
--zsync false \
# Trying to get LUKS encrypted installs working on / partition
echo -e "cryptsetup \ncryptsetup-initramfs" > $uchinanchu/fusato/config/package-lists/encryption.list.chroot
# Install the XFCE Desktop
mkdir -p $uchinanchu/fusato/config/package-lists/
@ -65,26 +49,44 @@ echo xfce4 > $uchinanchu/fusato/config/package-lists/desktop.list.chroot
# Install software
echo "# Install software to the squashfs for calamares to unpack to the OS.
adwaita-icon-theme
peppermint-keyring
nala
ca-certificates
arc-theme
yaru-theme-gtk
yaru-theme-icon
yaru-theme-sound
orchis-gtk-theme
mint-y-icons
pepermint-wallpapers
alsa-utils
arandr
arc-theme
bluez
bluez-firmware
calamares-settings-debian
calamares
curl
cups
curl
dconf-editor
dkms
dbus-x11
efibootmgr
firmware-linux
firmware-linux-nonfree
firmware-misc-nonfree
firmware-realtek
firmware-atheros
firmware-bnx2
firmware-bnx2x
firmware-brcm80211
firmware-intelwimax
firmware-iwlwifi
firmware-libertas
firmware-netxen
firmware-zd1211
firmware-ralink
fonts-cantarell
fonts-liberation
gdebi
gir1.2-webkit2-4.0
git
gparted
gnome-disk-utility
gnome-system-tools
@ -92,26 +94,31 @@ grub-pc
gvfs-backends
inputattach
inxi
locales
locales
menulibre
nala
nemo
neofetch
network-manager-gnome
ntp
nvidia-detect
os-prober
pulseaudio-module-bluetooth
python3-pip
python3-tk
python3-bs4
python3-requests
python3-ttkthemes
python3-pyqt5
python3-pyqt5.qtsvg
python3-pyqt5.qtwebkit
python3-pyqt5.qtwebengine
python3-pyqt5.qtwebengine
python3-pil.imagetk
python3-apt
smbclient
samba
screenfetch
simple-scan
smartmontools
smbclient
sqlite3
synaptic
system-config-printer
@ -123,21 +130,34 @@ xfce4-taskmanager
xfce4-terminal
xfce4-screenshooter
xfce4-whiskermenu-plugin
xfce4-docklike-plugin
xfce4-notes-plugin
xfce4-panel-profiles
xfce4-peppermintmenu-plugin
xfdashboard
xfce4-time-out-plugin
orage
thunar-archive-plugin
baobab
yad
wireless-tools
wget
alsa-utils
f2fs-tools
xfsprogs
lightdm
lightdm-gtk-greeter
plymouth
wget
f2fs-tools
xfsprogs
slick-greeter
lightdm-settings
fonts-ubuntu
fonts-ubuntu-console
apt-config-auto-update
package-update-indicator
unattended-upgrades
zenity
" > $uchinanchu/fusato/config/package-lists/packages.list.chroot
# Packages to be stored in /pool but not installed in the OS .
echo "# These packages are available to the installer and for offline use.
echo "# These packages are available to the installer, for offline use.
efibootmgr
grub-common
grub2-common
@ -145,6 +165,7 @@ grub-efi
grub-efi-amd64
grub-efi-amd64-bin
grub-efi-amd64-signed
grub-efi-ia32-bin
libefiboot1
libefivar1
mokutil
@ -169,14 +190,13 @@ mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/themes
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/peppermint
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/pixmaps
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/plymouth
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/ice/locale
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/xfce4/helpers
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/polkit-1/actions
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/fonts/pepconf
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/bin
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/local/bin
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/sbin
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/lib/live/config
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/lib/peppermint/ice
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/apt
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/apt/preferences.d
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/apt/sources.list.d
@ -194,8 +214,7 @@ mkdir -p $uchinanchu/fusato/config/includes.chroot/opt/pypep
mkdir -p $uchinanchu/fusato/config/includes.chroot/opt/pypep/dbpep
mkdir -p $uchinanchu/fusato/config/includes.chroot/opt/startpep
mkdir -p $uchinanchu/fusato/config/includes.chroot/opt/pepconf
mkdir -p $uchinanchu/fusato/config/packages.chroot
mkdir -p $uchinanchu/fusato/config/includes.chroot/boot/grub
mkdir -p $uchinanchu/fusato/config/archives
#mkdir -p $uchinanchu/fusato/config/hooks/live
mkdir -p $uchinanchu/fusato/config/hooks/normal
@ -205,13 +224,16 @@ mkdir -p $uchinanchu/fusato/config/packages.chroot
# Copy single files to the chroot
cp $uchinanchu/pepaliases/bash_aliases $uchinanchu/fusato/config/includes.chroot/etc/skel/.bash_aliases
cp $uchinanchu/pepcal/adddesktopicon/add-calamares-desktop-icon $uchinanchu/fusato/config/includes.chroot/usr/bin
cp $uchinanchu/pepcal/calamares/netinstall-* $uchinanchu/fusato/config/includes.chroot/etc/calamares
cp $uchinanchu/pepcal/calamares/settings.conf $uchinanchu/fusato/config/includes.chroot/etc/calamares
cp $uchinanchu/pepcal/install-peppermint $uchinanchu/fusato/config/includes.chroot/usr/bin
cp $uchinanchu/pepcal/sources-final $uchinanchu/fusato/config/includes.chroot/usr/sbin
#cp $uchinanchu/pepcal/install-peppermint $uchinanchu/fusato/config/includes.chroot/usr/bin
#cp $uchinanchu/pepcal/sources-final $uchinanchu/fusato/config/includes.chroot/usr/sbin
cp $uchinanchu/peplightdm/lightdm.conf $uchinanchu/fusato/config/includes.chroot/etc/lightdm
cp $uchinanchu/peplightdm/lightdm-gtk-greeter.conf $uchinanchu/fusato/config/includes.chroot/etc/lightdm
cp $uchinanchu/pepplymouth/plymouthd.conf $uchinanchu/fusato/config/includes.chroot/etc/plymouth
cp $uchinanchu/peplightdm/slick-greeter.conf $uchinanchu/fusato/config/includes.chroot/etc/lightdm
#cp $uchinanchu/pepplymouth/plymouthd.conf $uchinanchu/fusato/config/includes.chroot/etc/plymouth
cp $uchinanchu/pepsources/sources.list $uchinanchu/fusato/config/includes.chroot/opt/pepconf
cp $uchinanchu/../MakePackageLists.sh $uchinanchu/fusato/config/includes.chroot/usr/local/bin
cp $uchinanchu/PepProTools/xDaily $uchinanchu/fusato/config/includes.chroot/usr/local/bin
cp $uchinanchu/PepProTools/Welcome_auto.desktop $uchinanchu/fusato/config/includes.chroot/etc/skel/.config/autostart
@ -220,18 +242,18 @@ cp $uchinanchu/pepapplication/* $uchinanchu/fusato/config/includes.chroot/usr/s
cp $uchinanchu/pepdeffileman/xfce4/* $uchinanchu/fusato/config/includes.chroot/etc/xdg/xfce4
cp $uchinanchu/pepdeffileman/helpers/* $uchinanchu/fusato/config/includes.chroot/usr/share/xfce4/helpers
cp $uchinanchu/pepfont/* $uchinanchu/fusato/config/includes.chroot/usr/share/fonts/pepconf
cp $uchinanchu/pepgrub/* $uchinanchu/fusato/config/includes.chroot/etc/default
cp $uchinanchu/pepgrub/grub $uchinanchu/fusato/config/includes.chroot/etc/default
cp $uchinanchu/pephooks/live/* $uchinanchu/fusato/config/includes.chroot/usr/lib/live/config
cp $uchinanchu/pephooks/normal/* $uchinanchu/fusato/config/hooks/normal
cp $uchinanchu/pepissue/* $uchinanchu/fusato/config/includes.bootstrap/etc
cp $uchinanchu/pepissue/* $uchinanchu/fusato/config/includes.chroot/etc
cp $uchinanchu/pepissue/* $uchinanchu/fusato/config/includes.chroot/opt/pepconf
cp $uchinanchu/peprepos/* $uchinanchu/fusato/config/archives
cp $uchinanchu/peposrelease/* $uchinanchu/fusato/config/includes.chroot/opt/pepconf
cp $uchinanchu/peposrelease/* $uchinanchu/fusato/config/includes.chroot/usr/lib
cp $uchinanchu/peppackages/ca-certificates*.deb $uchinanchu/fusato/config/packages.chroot
#cp $uchinanchu/peppackages/* $uchinanchu/fusato/config/packages.chroot
#cp $uchinanchu/peppinunstable/* $uchinanchu/fusato/config/includes.chroot/etc/apt/preferences.d
#cp $uchinanchu/peppackages/calamares_3.2.57*amd64.deb $uchinanchu/fusato/config/packages.chroot
#cp $uchinanchu/peppackages/calamares-settings-debian_11.0.5-2_all.deb $uchinanchu/fusato/config/packages.chroot
#cp $uchinanchu/peppackages/deb-multimedia*.deb $uchinanchu/fusato/config/packages.chroot
cp $uchinanchu/peppinunstable/* $uchinanchu/fusato/config/includes.chroot/etc/apt/preferences.d
cp $uchinanchu/peppolkit/* $uchinanchu/fusato/config/includes.chroot/usr/share/polkit-1/actions
cp $uchinanchu/pepstartpage/* $uchinanchu/fusato/config/includes.chroot/opt/startpep
cp $uchinanchu/pepdb/* $uchinanchu/fusato/config/includes.chroot/opt/pypep/dbpep
@ -241,39 +263,49 @@ cp $uchinanchu/PepProPixMaps/* $uchinanchu/fusato/config/includes.chroot/usr/sha
cp $uchinanchu/PepProTools/* $uchinanchu/fusato/config/includes.chroot/opt/pypep
# Copy recursive files and sub-directories, containing symlinks.
cp -dr $uchinanchu/pepicons/Numix $uchinanchu/fusato/config/includes.chroot/usr/share/icons
cp -dr $uchinanchu/pepicons/Pepirus $uchinanchu/fusato/config/includes.chroot/usr/share/icons
cp -dr $uchinanchu/pepicons/Pepirus-Dark $uchinanchu/fusato/config/includes.chroot/usr/share/icons
cp -dr $uchinanchu/peptheme/Arc-Red $uchinanchu/fusato/config/includes.chroot/usr/share/themes
cp -dr $uchinanchu/peptheme/Arc-Green $uchinanchu/fusato/config/includes.chroot/usr/share/themes
cp -dr $uchinanchu/peptheme/Arc-Blue $uchinanchu/fusato/config/includes.chroot/usr/share/themes
cp -dr $uchinanchu/peptheme/Arc-Green-Dark $uchinanchu/fusato/config/includes.chroot/usr/share/themes
cp -dr $uchinanchu/peptheme/Arc-Teal-Dark $uchinanchu/fusato/config/includes.chroot/usr/share/themes
cp -dr $uchinanchu/peptheme/Arc-Red-Dark $uchinanchu/fusato/config/includes.chroot/usr/share/themes
cp -dr $uchinanchu/peptheme/Peppermint-10-Red-Dark $uchinanchu/fusato/config/includes.chroot/usr/share/themes
#cp -dr $uchinanchu/pepicons/Numix $uchinanchu/fusato/config/includes.chroot/usr/share/icons
#cp -dr $uchinanchu/pepicons/Pepirus $uchinanchu/fusato/config/includes.chroot/usr/share/icons
#cp -dr $uchinanchu/pepicons/Pepirus-Dark $uchinanchu/fusato/config/includes.chroot/usr/share/icons
#cp -dr $uchinanchu/peptheme/Arc-Red $uchinanchu/fusato/config/includes.chroot/usr/share/themes
#cp -dr $uchinanchu/peptheme/Arc-Green $uchinanchu/fusato/config/includes.chroot/usr/share/themes
#cp -dr $uchinanchu/peptheme/Arc-Blue $uchinanchu/fusato/config/includes.chroot/usr/share/themes
#cp -dr $uchinanchu/peptheme/Arc-Green-Dark $uchinanchu/fusato/config/includes.chroot/usr/share/themes
#cp -dr $uchinanchu/peptheme/Arc-Teal-Dark $uchinanchu/fusato/config/includes.chroot/usr/share/themes
#cp -dr $uchinanchu/peptheme/Arc-Red-Dark $uchinanchu/fusato/config/includes.chroot/usr/share/themes
#cp -dr $uchinanchu/peptheme/Peppermint-10-Red-Dark $uchinanchu/fusato/config/includes.chroot/usr/share/themes
cp -r $uchinanchu/pepcal/calamares/branding $uchinanchu/fusato/config/includes.chroot/etc/calamares
cp -r $uchinanchu/pepcal/calamares/modules $uchinanchu/fusato/config/includes.chroot/etc/calamares
cp -r $uchinanchu/pepdesktopbase/desktop-base $uchinanchu/fusato/config/includes.chroot/usr/share/
#cp -r $uchinanchu/pepdesktopbase/desktop-base $uchinanchu/fusato/config/includes.chroot/usr/share/
cp -r $uchinanchu/peploadersplash/boot $uchinanchu/fusato/config/includes.binary
cp -r $uchinanchu/peploadersplash/isolinux $uchinanchu/fusato/config/includes.binary
cp -r $uchinanchu/pepmenu/menus $uchinanchu/fusato/config/includes.chroot/etc/skel/.config
cp -r $uchinanchu/pepnemo/nemo $uchinanchu/fusato/config/includes.chroot/etc/skel/.config
cp -r $uchinanchu/pepplymouth/plymouth $uchinanchu/fusato/config/includes.chroot/usr/share/
#cp -r $uchinanchu/pepplymouth/plymouth $uchinanchu/fusato/config/includes.chroot/usr/share/
cp -r $uchinanchu/pepxfce/xfce4 $uchinanchu/fusato/config/includes.chroot/etc/skel/.config
cp -r $uchinanchu/pepxfce/Thunar $uchinanchu/fusato/config/includes.chroot/etc/skel/.config
cp -r $uchinanchu/pepxfce/package-update-indicator $uchinanchu/fusato/config/includes.chroot/etc/skel/.config
cp -r $uchinanchu/pepgrub/themes $uchinanchu/fusato/config/includes.chroot/boot/grub
# Place files unique to Testing builds here.
# Resolves Synaptics issue. Might be better in a conf hook.
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/distro-info
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/python-apt/templates
cp -s $uchinanchu/pepinfo/* $uchinanchu/fusato/config/includes.chroot/usr/share/python-apt/templates
ln -s Devuan.info $uchinanchu/fusato/config/includes.chroot/usr/share/python-apt/templates/Peppermint.info
ln -s Devuan.mirrors $uchinanchu/fusato/config/includes.chroot/usr/share/python-apt/templates/Peppermint.mirrors
ln -s devuan.csv $uchinanchu/fusato/config/includes.chroot/usr/share/distro-info/peppermint.csv
cp $uchinanchu/pepaliases/bash_aliases $uchinanchu/fusato/config/includes.chroot/etc/skel/.bash_aliases
ln -s Debian.info $uchinanchu/fusato/config/includes.chroot/usr/share/python-apt/templates/Peppermint.info
ln -s Debian.mirrors $uchinanchu/fusato/config/includes.chroot/usr/share/python-apt/templates/Peppermint.mirrors
ln -s debian.csv $uchinanchu/fusato/config/includes.chroot/usr/share/distro-info/peppermint.csv
# Place files unique to Nightly builds here.
cp $uchinanchu/pepnightly/pepaliases/bash_aliases $uchinanchu/fusato/config/includes.chroot/etc/skel/.bash_aliases
cp $uchinanchu/pepnightly/pepapplication/* $uchinanchu/fusato/config/includes.chroot/usr/share/applications
#cp $uchinanchu/pepnightly/pepcal/calamares/branding/peppermint/stylesheet.qss
cp $uchinanchu/pepnightly/pepcal/install-peppermint $uchinanchu/fusato/config/includes.chroot/usr/bin
cp $uchinanchu/pepnightly/pepcal/sources-final $uchinanchu/fusato/config/includes.chroot/usr/sbin
cp $uchinanchu/pepnightly/pepmultimedia/* $uchinanchu/fusato/config/archives
cp $uchinanchu/pepnightly/pepgksudo/* $uchinanchu/fusato/config/includes.chroot/usr/local/bin
cp -r $uchinanchu/pepnightly/peploadersplash/boot $uchinanchu/fusato/config/includes.binary
cp -r $uchinanchu/pepnightly/peploadersplash/isolinux $uchinanchu/fusato/config/includes.binary
# Build the ISO #
lb build noauto #--debug --verbose
lb build #--debug --verbose

262
PepBld-skinny.sh Executable file
View File

@ -0,0 +1,262 @@
#!/bin/bash
PATH="/sbin:/usr/sbin:/usr/local/sbin:$PATH"
# Set the working folder variable
uchinanchu="$(pwd)"
# Create the build folder, move into it and remove unneeded files there.
[ -e fusato ] && [ ! -d fusato ] && rm -f fusato && mkdir fusato || mkdir fusato
cd fusato
umount -v $(mount | grep "${PWD}/chroot" | tac | cut -f3 -d" ") 2>/dev/null
for i in ./* ./.build ./cache/bootstrap ./cache/contents.chroot ; do [ $i = ./cache ] && continue || rm -rf $i ; done
# Set of the structure to be used for the ISO and Live system.
# See /usr/lib/live/build/config for a full list of examples.
# Up above is the manual description of what options I used so far.
lb config \
--clean \
--color \
--quiet \
--archive-areas "main contrib non-free" \
--architectures amd64 \
--apt-recommends false \
--backports true \
--binary-images iso-hybrid \
--cache true \
--mode debian \
--distribution bullseye \
--firmware-binary true \
--firmware-chroot true \
--iso-application "PeppermintOS" \
--iso-preparer "PeppermintOS-https://peppermintos.com/" \
--iso-publisher "Peppermint OS Team" \
--iso-volume "PeppermintOS" \
--image-name "PepOS" \
--linux-flavours amd64 \
--security true \
--updates true \
--win32-loader false \
--checksums sha512 \
--zsync false \
# Install the XFCE Desktop
mkdir -p ./config/package-lists/
echo xfce4 > ./config/package-lists/desktop.list.chroot
# Install software
echo "# Install software to the squashfs for calamares to unpack to the OS.
arandr
arc-theme
calamares-settings-debian
calamares
curl
dbus-x11
dconf-gsettings-backend
desktop-base
dkms
dosfstools
e2fsprogs
exfat-fuse
exfat-utils
exo-utils
firmware-linux
firmware-linux-free
firmware-linux-nonfree
firmware-misc-nonfree
gir1.2-webkit2-4.0
gparted
gnome-disk-utility
grub-pc
host
initramfs-tools
lightdm
lightdm-gtk-greeter
live-boot
live-config
locales
locales-all
menulibre
mokutil
mtools
neofetch
network-manager-gnome
ntfs-3g
ntp
os-prober
pavucontrol
pulseaudio
pulseaudio-module-zeroconf
plymouth
plymouth-label
plymouth-themes
python3-apt
python3-bs4
python3-pip
python3-pyqt5.qtsvg
python3-pyqt5.qtwebengine
python3-pyqt5.qtwebkit
python3-requests
python3-tk
python3-ttkthemes
rsync
screenfetch
sqlite3
sudo
synaptic
user-setup
xdg-user-dirs
xfce4
xfce4-battery-plugin
xfce4-clipman-plugin
xfce4-notifyd
xfce4-power-manager
xfce4-power-manager-plugins
xfce4-taskmanager
xfce4-terminal
xfce4-screenshooter
xfce4-whiskermenu-plugin
yad
wireless-tools
wget
xauth
xinit
xorg
f2fs-tools
xfsprogs
" > ./config/package-lists/packages.list.chroot
# Get packages used ONLY by the live-session, to be stored in /pool by `lb`.
echo "# Packages required only by the live session.
efibootmgr
grub-common
grub2-common
grub-efi
grub-efi-amd64
grub-efi-amd64-bin
grub-efi-amd64-signed
grub-efi-ia32-bin
libefiboot1
libefivar1
mokutil
os-prober
shim-helpers-amd64-signed
shim-signed
shim-signed-common
shim-unsigned
" > ./config/package-lists/installer.list.binary
# Setup the build directory structures
#mkdir -p ./config/hooks/live
mkdir -p ./config/hooks/normal
mkdir -p ./config/packages.chroot
mkdir -p ./config/includes.binary
mkdir -p ./config/includes.bootstrap/etc
mkdir -p ./config/includes.chroot/etc/apt
mkdir -p ./config/includes.chroot/etc/apt/preferences.d
mkdir -p ./config/includes.chroot/etc/calamares
mkdir -p ./config/includes.chroot/etc/default
mkdir -p ./config/includes.chroot/etc/lightdm
mkdir -p ./config/includes.chroot/etc/live/config.conf.d
mkdir -p ./config/includes.chroot/etc/skel/.config/autostart
mkdir -p ./config/includes.chroot/etc/skel/.local/share
mkdir -p ./config/includes.chroot/etc/skel/Desktop
mkdir -p ./config/includes.chroot/etc/xdg/xfce4
mkdir -p ./config/includes.chroot/opt/pepconf
mkdir -p ./config/includes.chroot/opt/pypep/dbpep
mkdir -p ./config/includes.chroot/opt/startpep
mkdir -p ./config/includes.chroot/usr/bin
mkdir -p ./config/includes.chroot/usr/sbin
mkdir -p ./config/includes.chroot/usr/lib/live/config
#mkdir -p ./config/includes.chroot/usr/lib/peppermint/ice
mkdir -p ./config/includes.chroot/usr/share/applications
mkdir -p ./config/includes.chroot/usr/share/backgrounds
mkdir -p ./config/includes.chroot/usr/share/desktop-base
mkdir -p ./config/includes.chroot/usr/share/fonts/pepconf
mkdir -p ./config/includes.chroot/usr/share/icons/default
#mkdir -p ./config/includes.chroot/usr/share/ice/locale
mkdir -p ./config/includes.chroot/usr/share/peppermint
mkdir -p ./config/includes.chroot/usr/share/pixmaps
mkdir -p ./config/includes.chroot/usr/share/plymouth
mkdir -p ./config/includes.chroot/usr/share/polkit-1/actions
mkdir -p ./config/includes.chroot/usr/share/themes
mkdir -p ./config/includes.chroot/usr/share/xfce4/helpers
# Copy Multiple files to the bootstrap
cp $uchinanchu/pepissue/* ./config/includes.bootstrap/etc/
# Copy Single files to the chroot
cp $uchinanchu/pepaliases/bash_aliases ./config/includes.chroot/etc/skel/.bash_aliases
cp $uchinanchu/pepapplication/Install-peppermint.desktop ./config/includes.chroot/etc/skel/Desktop
cp $uchinanchu/pepcal/adddesktopicon/add-calamares-desktop-icon ./config/includes.chroot/usr/bin
cp $uchinanchu/pepcal/calamares_*_amd64.deb ./config/packages.chroot
cp $uchinanchu/pepcal/calamares/netinstall-* ./config/includes.chroot/etc/calamares
cp $uchinanchu/pepcal/calamares/settings.conf ./config/includes.chroot/etc/calamares
cp $uchinanchu/pepcal/install-peppermint ./config/includes.chroot/usr/bin
cp $uchinanchu/pepcal/sources-final ./config/includes.chroot/usr/sbin
cp $uchinanchu/pepdb/welval.db ./config/includes.chroot/opt/pypep/dbpep
cp $uchinanchu/peplightdm/lightdm.conf ./config/includes.chroot/etc/lightdm
cp $uchinanchu/peplightdm/lightdm-gtk-greeter.conf ./config/includes.chroot/etc/lightdm
cp $uchinanchu/../MakePackageLists.sh ./config/includes.chroot/usr/local/bin
# Copy Multiple files to the chroot
cp $uchinanchu/pepapplication/* ./config/includes.chroot/usr/share/applications
cp $uchinanchu/pepdeffileman/xfce4/* ./config/includes.chroot/etc/xdg/xfce4
cp $uchinanchu/pepdeffileman/helpers/* ./config/includes.chroot/usr/share/xfce4/helpers
cp $uchinanchu/pepfont/* ./config/includes.chroot/usr/share/fonts/pepconf
cp $uchinanchu/pepgrub/* ./config/includes.chroot/etc/default
cp $uchinanchu/pepissue/* ./config/includes.chroot/etc
cp $uchinanchu/pepissue/* ./config/includes.chroot/opt/pepconf
cp $uchinanchu/peppinunstable/* ./config/includes.chroot/etc/apt/preferences.d
cp $uchinanchu/peposrelease/* ./config/includes.chroot/usr/lib
cp $uchinanchu/peposrelease/* ./config/includes.chroot/opt/pepconf
cp $uchinanchu/peppackages/* ./config/packages.chroot
cp $uchinanchu/peppolkit/* ./config/includes.chroot/usr/share/polkit-1/actions
cp $uchinanchu/pepsources/* ./config/includes.chroot/etc/apt
cp $uchinanchu/pepsources/* ./config/includes.chroot/opt
cp $uchinanchu/pepuserconfig/* ./config/includes.chroot/etc/live/config.conf.d
cp $uchinanchu/pephooks/live/0030-user-setup ./config/includes.chroot/usr/lib/live/config
cp $uchinanchu/pephooks/normal/* ./config/hooks/normal
cp $uchinanchu/PepProPixMaps/* ./config/includes.chroot/usr/share/pixmaps
cp $uchinanchu/PepProTools/Welcome_auto.desktop ./config/includes.chroot/etc/skel/.config/autostart
cp $uchinanchu/PepProTools/* ./config/includes.chroot/opt/pypep
# Copy sub-directories and files recursively
cp -dr $uchinanchu/pepicons/Numix ./config/includes.chroot/usr/share/icons
cp -dr $uchinanchu/pepicons/Pepirus ./config/includes.chroot/usr/share/icons
cp -dr $uchinanchu/pepicons/Pepirus-Dark ./config/includes.chroot/usr/share/icons
cp -dr $uchinanchu/peptheme/Peppermint-10-Red-Dark ./config/includes.chroot/usr/share/themes
cp -r $uchinanchu/pepcal/calamares/branding ./config/includes.chroot/etc/calamares
cp -r $uchinanchu/pepcal/calamares/modules ./config/includes.chroot/etc/calamares
cp -r $uchinanchu/pepdesktopbase/desktop-base ./config/includes.chroot/usr/share/
cp -r $uchinanchu/pepnemo/nemo ./config/includes.chroot/etc/skel/.config
cp -r $uchinanchu/pepmenu/menus ./config/includes.chroot/etc/skel/.config
cp -r $uchinanchu/pepplymouth/plymouth ./config/includes.chroot/usr/share/
cp -r $uchinanchu/pepxfce/xfce4 ./config/includes.chroot/etc/skel/.config
# Copy files for the skinny build from here
cp $uchinanchu/pepunstable/pepcal/calamares/settings.conf ./config/includes.chroot/etc/calamares
cp $uchinanchu/pepunstable/pepcal/calamares/modules/* ./config/includes.chroot/etc/calamares
cp $uchinanchu/pepunstable/pepwallpaper/* ./config/includes.chroot/usr/share/backgrounds
cp -r $uchinanchu/pepunstable/peploadersplash/boot ./config/includes.binary
cp -r $uchinanchu/pepunstable/peploadersplash/isolinux ./config/includes.binary
# Build the ISO #
lb build #--debug --verbose

View File

@ -1,275 +0,0 @@
#!/bin/bash
PATH="/sbin:/usr/sbin:/usr/local/sbin:$PATH"
# Set the working folder variable
uchinanchu="$(pwd)"
# This cleanup might be better served in the BldHelper*.sh script.
# Create the build folder, move into it removing stale mountpoints and files there.
[ -e fusato ] && [ ! -d fusato ] && rm -f fusato || [ ! -e fusato ] && mkdir fusato
cd fusato
# Within the build, can be layered mounts inside multiple chroots.
umount $(mount | grep "${PWD}/chroot" | tac | cut -f3 -d" ") 2>/dev/null
for i in ./* ./.build ./cache/bootstrap ; do [ $i = ./cache ] && continue || rm -rf $i ; done
# Set of the structure to be used for the ISO and Live system.
# See /usr/lib/live/build/config for a full list of examples.
# Up above is the manual description of what options I used so far.
lb config noauto \
--clean \
--color \
--quiet \
--archive-areas "main contrib non-free" \
--architectures i686 \
--apt-recommends true \
--binary-images iso-hybrid \
--cache false \
--mode debian \
--firmware-binary true \
--firmware-chroot true \
--distribution chimaera \
--initsystem sysvinit \
--memtest memtest86+ \
--mirror-bootstrap http://deb.devuan.org/merged \
--parent-mirror-bootstrap http://deb.devuan.org/merged \
--parent-mirror-chroot http://deb.devuan.org/merged \
--parent-mirror-chroot-security http://deb.devuan.org/merged \
--parent-mirror-binary http://deb.devuan.org/merged \
--parent-mirror-binary-security http://deb.devuan.org/merged \
--mirror-chroot http://deb.devuan.org/merged \
--mirror-chroot-security http://deb.devuan.org/merged \
--firmware-binary true \
--firmware-chroot true \
--iso-application "PeppermintOS" \
--iso-preparer "PeppermintOS-https://peppermintos.com/" \
--iso-publisher "Peppermint OS Team" \
--iso-volume "PeppermintOS" \
--image-name "PepOS" \
--linux-flavours 686-pae \
--security true \
--updates true \
--backports true \
--win32-loader false \
--checksums sha512 \
--zsync false \
# Trying to get LUKS encrypted installs working on / partition
echo -e "cryptsetup \ncryptsetup-initramfs" > $uchinanchu/fusato/config/package-lists/encryption.list.chroot
# Install the XFCE Desktop
mkdir -p $uchinanchu/fusato/config/package-lists/
echo xfce4 > $uchinanchu/fusato/config/package-lists/desktop.list.chroot
# Install software
echo "# Install software to the squashfs for calamares to unpack to the OS.
adwaita-icon-theme
arandr
arc-theme
bluez
bluez-firmware
calamares-settings-debian
calamares
curl
cups
dconf-editor
dkms
dbus-x11
efibootmgr
fonts-cantarell
fonts-liberation
gdebi
gir1.2-webkit2-4.0
gparted
gnome-disk-utility
gnome-system-tools
grub-pc
gvfs-backends
inputattach
inxi
locales
menulibre
nemo
neofetch
network-manager-gnome
ntp
os-prober
python3-pip
python3-tk
python3-bs4
python3-requests
python3-ttkthemes
python3-pyqt5.qtsvg
python3-pyqt5.qtwebkit
python3-pyqt5.qtwebengine
python3-apt
smbclient
samba
screenfetch
smartmontools
sqlite3
synaptic
system-config-printer
mousepad
xfce4-battery-plugin
xfce4-clipman-plugin
xfce4-power-manager
xfce4-taskmanager
xfce4-terminal
xfce4-screenshooter
xfce4-whiskermenu-plugin
yad
wireless-tools
wget
alsa-utils
f2fs-tools
xfsprogs
lightdm
lightdm-gtk-greeter
plymouth
" > $uchinanchu/fusato/config/package-lists/packages.list.chroot
# Packages to be stored in /pool but not installed in the OS .
echo "# These packages are available to the installer, for offline use.
efibootmgr
grub-common
grub2-common
grub-efi
grub-efi-ia32
grub-efi-ia32-bin
grub-efi-ia32-signed
libefiboot1
libefivar1
mokutil
os-prober
shim-helpers-i386-signed
shim-signed
shim-signed-common
shim-unsigned
" > $uchinanchu/fusato/config/package-lists/installer.list.binary
# Setup the chroot structure
mkdir -p $uchinanchu/fusato/config/includes.binary
mkdir -p $uchinanchu/fusato/config/includes.bootstrap/etc/apt
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/applications
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/backgrounds
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/desktop-base
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/icons/default
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/themes
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/peppermint
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/pixmaps
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/plymouth
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/ice/locale
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/xfce4/helpers
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/polkit-1/actions
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/fonts/pepconf
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/bin
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/sbin
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/lib/live/config
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/lib/peppermint/ice
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/apt
#mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/apt/preferences.d
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/apt/sources.list.d
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/calamares
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/default
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/lightdm
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/live/config.conf.d
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/skel/.config/autostart
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/skel/.local/share
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/skel/Desktop
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/xdg/xfce4
mkdir -p $uchinanchu/fusato/config/includes.chroot/opt
mkdir -p $uchinanchu/fusato/config/includes.chroot/opt/pypep
mkdir -p $uchinanchu/fusato/config/includes.chroot/opt/pypep/dbpep
mkdir -p $uchinanchu/fusato/config/includes.chroot/opt/startpep
mkdir -p $uchinanchu/fusato/config/includes.chroot/opt/pepconf
mkdir -p $uchinanchu/fusato/config/archives
#mkdir -p $uchinanchu/fusato/config/hooks/live
mkdir -p $uchinanchu/fusato/config/hooks/normal
mkdir -p $uchinanchu/fusato/config/packages.chroot
# Copy common Production files from outside this repo to this build
cp ../../PepProPixMaps/* $uchinanchu/fusato/config/includes.chroot/usr/share/pixmaps
cp ../../PepProTools/Welcome_auto.desktop $uchinanchu/fusato/config/includes.chroot/etc/skel/.config/autostart
cp ../../PepProTools/* $uchinanchu/fusato/config/includes.chroot/opt/pypep
# Copy Configs to the chroot
cp $uchinanchu/pepcal/adddesktopicon/add-calamares-desktop-icon $uchinanchu/fusato/config/includes.chroot/usr/bin
cp $uchinanchu/pepcal/calamares/settings.conf $uchinanchu/fusato/config/includes.chroot/etc/calamares
cp $uchinanchu/pepcal/install-peppermint $uchinanchu/fusato/config/includes.chroot/usr/bin
cp $uchinanchu/pepcal/sources-final $uchinanchu/fusato/config/includes.chroot/usr/sbin
cp $uchinanchu/peplightdm/lightdm.conf $uchinanchu/fusato/config/includes.chroot/etc/lightdm
cp $uchinanchu/peplightdm/lightdm-gtk-greeter.conf $uchinanchu/fusato/config/includes.chroot/etc/lightdm
cp $uchinanchu/pepapplication/* $uchinanchu/fusato/config/includes.chroot/usr/share/applications
cp $uchinanchu/pepdeffileman/xfce4/* $uchinanchu/fusato/config/includes.chroot/etc/xdg/xfce4
cp $uchinanchu/pepdeffileman/helpers/* $uchinanchu/fusato/config/includes.chroot/usr/share/xfce4/helpers
cp $uchinanchu/pepfont/* $uchinanchu/fusato/config/includes.chroot/usr/share/fonts/pepconf
cp $uchinanchu/pepgrub/* $uchinanchu/fusato/config/includes.chroot/etc/default
cp $uchinanchu/pephooks/live/* $uchinanchu/fusato/config/includes.chroot/usr/lib/live/config
cp $uchinanchu/pephooks/normal/* $uchinanchu/fusato/config/hooks/normal
cp $uchinanchu/peppackages/* $uchinanchu/fusato/config/packages.chroot
cp $uchinanchu/pepissue/* $uchinanchu/fusato/config/includes.bootstrap/etc
cp $uchinanchu/pepissue/* $uchinanchu/fusato/config/includes.chroot/etc
cp $uchinanchu/pepissue/* $uchinanchu/fusato/config/includes.chroot/opt/pepconf
cp $uchinanchu/peposrelease/* $uchinanchu/fusato/config/includes.chroot/opt/pepconf
cp $uchinanchu/peposrelease/* $uchinanchu/fusato/config/includes.chroot/usr/lib
#cp $uchinanchu/peppinunstable/* $uchinanchu/fusato/config/includes.chroot/etc/apt/preferences.d
cp $uchinanchu/peppolkit/* $uchinanchu/fusato/config/includes.chroot/usr/share/polkit-1/actions
cp $uchinanchu/pepsources/* $uchinanchu/fusato/config/includes.chroot/opt
cp $uchinanchu/pepstartpage/* $uchinanchu/fusato/config/includes.chroot/opt/startpep
cp $uchinanchu/pepdb/* $uchinanchu/fusato/config/includes.chroot/opt/pypep/dbpep
cp $uchinanchu/pepuserconfig/* $uchinanchu/fusato/config/includes.chroot/etc/live/config.conf.d
cp $uchinanchu/pepwallpaper/* $uchinanchu/fusato/config/includes.chroot/usr/share/backgrounds
cp $uchinanchu/pepsources/sources.list $uchinanchu/fusato/config/includes.chroot/opt
# Copy recursive files and sub-directories
cp -dr $uchinanchu/pepicons/Numix $uchinanchu/fusato/config/includes.chroot/usr/share/icons
cp -dr $uchinanchu/pepicons/Pepirus $uchinanchu/fusato/config/includes.chroot/usr/share/icons
cp -dr $uchinanchu/pepicons/Pepirus-Dark $uchinanchu/fusato/config/includes.chroot/usr/share/icons
cp -dr $uchinanchu/peptheme/Arc-Red $uchinanchu/fusato/config/includes.chroot/usr/share/themes
cp -dr $uchinanchu/peptheme/Arc-Green $uchinanchu/fusato/config/includes.chroot/usr/share/themes
cp -dr $uchinanchu/peptheme/Arc-Blue $uchinanchu/fusato/config/includes.chroot/usr/share/themes
cp -dr $uchinanchu/peptheme/Arc-Green-Dark $uchinanchu/fusato/config/includes.chroot/usr/share/themes
cp -dr $uchinanchu/peptheme/Arc-Teal-Dark $uchinanchu/fusato/config/includes.chroot/usr/share/themes
cp -dr $uchinanchu/peptheme/Arc-Red-Dark $uchinanchu/fusato/config/includes.chroot/usr/share/themes
cp -dr $uchinanchu/peptheme/Peppermint-10-Red-Dark $uchinanchu/fusato/config/includes.chroot/usr/share/themes
cp -r $uchinanchu/pepmultimedia/* $uchinanchu/fusato/config/archives
cp -r $uchinanchu/pepcal/calamares/branding $uchinanchu/fusato/config/includes.chroot/etc/calamares
cp -r $uchinanchu/pepcal/calamares/modules $uchinanchu/fusato/config/includes.chroot/etc/calamares
cp -r $uchinanchu/pepdesktopbase/desktop-base $uchinanchu/fusato/config/includes.chroot/usr/share/
cp -r $uchinanchu/peploadersplash/boot $uchinanchu/fusato/config/includes.binary
cp -r $uchinanchu/peploadersplash/isolinux $uchinanchu/fusato/config/includes.binary
cp -r $uchinanchu/pepmenu/menus $uchinanchu/fusato/config/includes.chroot/etc/skel/.config
cp -r $uchinanchu/pepnemo/nemo $uchinanchu/fusato/config/includes.chroot/etc/skel/.config
cp -r $uchinanchu/pepplymouth/plymouth $uchinanchu/fusato/config/includes.chroot/usr/share/
cp -r $uchinanchu/pepxfce/* $uchinanchu/fusato/config/includes.chroot/etc/skel/.config
# Place files unique to Testing builds here.
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/distro-info
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/python-apt/templates
cp -s $uchinanchu/pepinfo/* $uchinanchu/fusato/config/includes.chroot/usr/share/python-apt/templates
ln -s Devuan.info $uchinanchu/fusato/config/includes.chroot/usr/share/python-apt/templates/Peppermint.info
ln -s Devuan.mirrors $uchinanchu/fusato/config/includes.chroot/usr/share/python-apt/templates/Peppermint.mirrors
ln -s devuan.csv $uchinanchu/fusato/config/includes.chroot/usr/share/distro-info/peppermint.csv
cp $uchinanchu/pepaliases/bash_aliases $uchinanchu/fusato/config/includes.chroot/etc/skel/.bash_aliases
# Build the ISO #
lb build noauto #--debug --verbose

View File

@ -5,83 +5,88 @@ PATH="/sbin:/usr/sbin:/usr/local/sbin:$PATH"
uchinanchu="$(pwd)"
# This cleanup might be better served in the BldHelper*.sh script.
# Create the build folder, move into it removing stale mountpoints and files there.
[ -e fusato ] && [ ! -d fusato ] && rm -f fusato || [ ! -e fusato ] && mkdir fusato
cd fusato
# This cleanup might be better served in the BldHelper*.sh script.
# Within the build, can be layered mounts inside multiple chroots.
umount $(mount | grep "${PWD}/chroot" | tac | cut -f3 -d" ") 2>/dev/null
#for i in ./* ./.build ./cache/bootstrap ; do [ $i = ./cache ] && continue || rm -rf $i ; done
for i in ./* ./.build ./cache/bootstrap ./cache/contents.chroot ; do [ $i = ./cache ] && continue || rm -rf $i ; done
#exit
# Set of the structure to be used for the ISO and Live system.
# See /usr/lib/live/build/config for a full list of examples.
# Up above is the manual description of what options I used so far.
lb config noauto \
--clean \
--color \
--quiet \
--archive-areas "main contrib non-free" \
--architectures amd64 \
--apt-recommends true \
--binary-images iso-hybrid \
--cache false \
--mode debian \
--firmware-binary true \
--firmware-chroot true \
--distribution chimaera \
--initsystem sysvinit \
--memtest memtest86+ \
--mirror-bootstrap http://deb.devuan.org/merged \
--parent-mirror-bootstrap http://deb.devuan.org/merged \
--parent-mirror-chroot http://deb.devuan.org/merged \
--parent-mirror-chroot-security http://deb.devuan.org/merged \
--parent-mirror-binary http://deb.devuan.org/merged \
--parent-mirror-binary-security http://deb.devuan.org/merged \
--mirror-chroot http://deb.devuan.org/merged \
--mirror-chroot-security http://deb.devuan.org/merged \
--firmware-binary true \
--firmware-chroot true \
--iso-application "PeppermintOS" \
--iso-preparer "PeppermintOS-https://peppermintos.com/" \
--iso-publisher "Peppermint OS Team" \
--iso-volume "PeppermintOS" \
--image-name "PepOS" \
--linux-flavours amd64 \
--security true \
--updates true \
--backports true \
--win32-loader false \
--checksums sha512 \
--zsync false \
lb config \
--clean \
--color \
--quiet \
--archive-areas "main contrib non-free" \
--architectures amd64 \
--apt-recommends true \
--backports true \
--binary-images iso-hybrid \
--cache true \
--mode debian \
--distribution bullseye \
--firmware-binary true \
--firmware-chroot true \
--iso-application "PeppermintOS" \
--iso-preparer "PeppermintOS-https://peppermintos.com/" \
--iso-publisher "Peppermint OS Team" \
--iso-volume "PeppermintOS" \
--image-name "PepOS" \
--linux-flavours amd64 \
--security true \
--updates true \
--win32-loader false \
--checksums sha512 \
--zsync false \
# Trying to get LUKS encrypted installs working on / partition
echo -e "cryptsetup \ncryptsetup-initramfs" > $uchinanchu/fusato/config/package-lists/encryption.list.chroot
# Install the XFCE Desktop
# Install the XFCE Desktop
mkdir -p $uchinanchu/fusato/config/package-lists/
echo xfce4 > $uchinanchu/fusato/config/package-lists/desktop.list.chroot
# Install software
echo "# Install software to the squashfs for calamares to unpack to the OS.
adwaita-icon-theme
alsa-utils
arandr
arc-theme
bluez
bluez-firmware
calamares-settings-debian
calamares
cryptsetup
cryptsetup-initramfs
curl
cups
dconf-editor
dkms
dbus-x11
efibootmgr
firmware-linux
firmware-linux-nonfree
firmware-misc-nonfree
firmware-realtek
firmware-atheros
firmware-bnx2
firmware-bnx2x
firmware-brcm80211
firmware-intelwimax
firmware-iwlwifi
firmware-libertas
firmware-netxen
firmware-zd1211
firmware-ralink
fonts-cantarell
fonts-liberation
gdebi
gir1.2-webkit2-4.0
git
gparted
gnome-disk-utility
gnome-system-tools
@ -89,25 +94,27 @@ grub-pc
gvfs-backends
inputattach
inxi
locales
locales
locales-all
menulibre
nemo
neofetch
network-manager-gnome
ntp
nvidia-detect
os-prober
python3-pip
python3-tk
python3-bs4
python3-requests
python3-ttkthemes
python3-pyqt5
python3-pyqt5.qtsvg
python3-pyqt5.qtwebkit
python3-pyqt5.qtwebengine
python3-apt
smbclient
samba
screenfetch
simple-scan
smbclient
smartmontools
sqlite3
synaptic
@ -122,19 +129,15 @@ xfce4-screenshooter
xfce4-whiskermenu-plugin
yad
wireless-tools
wget
alsa-utils
f2fs-tools
xfsprogs
lightdm
lightdm-gtk-greeter
plymouth
wget
f2fs-tools
xfsprogs
" > $uchinanchu/fusato/config/package-lists/packages.list.chroot
# Packages to be stored in /pool but not installed in the OS .
echo "# These packages are available to the installer and for offline use.
echo "# These packages are available to the installer, for offline use.
efibootmgr
grub-common
grub2-common
@ -142,6 +145,7 @@ grub-efi
grub-efi-amd64
grub-efi-amd64-bin
grub-efi-amd64-signed
grub-efi-ia32-bin
libefiboot1
libefivar1
mokutil
@ -166,14 +170,14 @@ mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/themes
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/peppermint
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/pixmaps
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/plymouth
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/ice/locale
#mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/ice/locale
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/xfce4/helpers
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/polkit-1/actions
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/fonts/pepconf
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/bin
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/sbin
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/lib/live/config
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/lib/peppermint/ice
#mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/lib/peppermint/ice
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/apt
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/apt/preferences.d
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/apt/sources.list.d
@ -181,10 +185,8 @@ mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/calamares
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/default
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/lightdm
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/live/config.conf.d
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/plymouth
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/skel/.config/autostart
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/skel/.local/share
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/skel/Desktop
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/xdg/xfce4
mkdir -p $uchinanchu/fusato/config/includes.chroot/opt
mkdir -p $uchinanchu/fusato/config/includes.chroot/opt/pypep
@ -192,22 +194,28 @@ mkdir -p $uchinanchu/fusato/config/includes.chroot/opt/pypep/dbpep
mkdir -p $uchinanchu/fusato/config/includes.chroot/opt/startpep
mkdir -p $uchinanchu/fusato/config/includes.chroot/opt/pepconf
mkdir -p $uchinanchu/fusato/config/archives
#mkdir -p $uchinanchu/fusato/config/hooks/live
mkdir -p $uchinanchu/fusato/config/hooks/normal
mkdir -p $uchinanchu/fusato/config/packages.chroot
# Resolves Synaptics issue. Might be better in a conf hook.
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/distro-info
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/python-apt/templates
ln -s Debian.info $uchinanchu/fusato/config/includes.chroot/usr/share/python-apt/templates/Peppermint.info
ln -s Debian.mirrors $uchinanchu/fusato/config/includes.chroot/usr/share/python-apt/templates/Peppermint.mirrors
ln -s debian.csv $uchinanchu/fusato/config/includes.chroot/usr/share/distro-info/peppermint.csv
# Copy single files to the chroot
cp $uchinanchu/pepaliases/bash_aliases $uchinanchu/fusato/config/includes.chroot/etc/skel/.bash_aliases
cp $uchinanchu/pepcal/adddesktopicon/add-calamares-desktop-icon $uchinanchu/fusato/config/includes.chroot/usr/bin
cp $uchinanchu/pepcal/calamares/netinstall-* $uchinanchu/fusato/config/includes.chroot/etc/calamares
cp $uchinanchu/pepcal/calamares/settings.conf $uchinanchu/fusato/config/includes.chroot/etc/calamares
cp $uchinanchu/pepcal/calamares_*_amd64.deb $uchinanchu/fusato/config/packages.chroot
cp $uchinanchu/pepcal/install-peppermint $uchinanchu/fusato/config/includes.chroot/usr/bin
cp $uchinanchu/pepcal/sources-final $uchinanchu/fusato/config/includes.chroot/usr/sbin
cp $uchinanchu/peplightdm/lightdm.conf $uchinanchu/fusato/config/includes.chroot/etc/lightdm
cp $uchinanchu/peplightdm/lightdm-gtk-greeter.conf $uchinanchu/fusato/config/includes.chroot/etc/lightdm
cp $uchinanchu/pepplymouth/plymouthd.conf $uchinanchu/fusato/config/includes.chroot/etc/plymouth
cp $uchinanchu/pepsources/sources.list $uchinanchu/fusato/config/includes.chroot/opt/pepconf
cp $uchinanchu/../MakePackageLists.sh $uchinanchu/fusato/config/includes.chroot/usr/local/bin
cp $uchinanchu/PepProTools/xDaily $uchinanchu/fusato/config/includes.chroot/usr/local/bin
cp $uchinanchu/PepProTools/Welcome_auto.desktop $uchinanchu/fusato/config/includes.chroot/etc/skel/.config/autostart
@ -222,12 +230,12 @@ cp $uchinanchu/pephooks/normal/* $uchinanchu/fusato/config/hooks/normal
cp $uchinanchu/pepissue/* $uchinanchu/fusato/config/includes.bootstrap/etc
cp $uchinanchu/pepissue/* $uchinanchu/fusato/config/includes.chroot/etc
cp $uchinanchu/pepissue/* $uchinanchu/fusato/config/includes.chroot/opt/pepconf
cp $uchinanchu/pepmultimedia/* $uchinanchu/fusato/config/archives
cp $uchinanchu/peposrelease/* $uchinanchu/fusato/config/includes.chroot/opt/pepconf
cp $uchinanchu/peposrelease/* $uchinanchu/fusato/config/includes.chroot/usr/lib
cp $uchinanchu/peppackages/* $uchinanchu/fusato/config/packages.chroot
#cp $uchinanchu/peppinunstable/* $uchinanchu/fusato/config/includes.chroot/etc/apt/preferences.d
cp $uchinanchu/peppinunstable/* $uchinanchu/fusato/config/includes.chroot/etc/apt/preferences.d
cp $uchinanchu/peppolkit/* $uchinanchu/fusato/config/includes.chroot/usr/share/polkit-1/actions
cp $uchinanchu/pepsources/* $uchinanchu/fusato/config/includes.chroot/opt
cp $uchinanchu/pepstartpage/* $uchinanchu/fusato/config/includes.chroot/opt/startpep
cp $uchinanchu/pepdb/* $uchinanchu/fusato/config/includes.chroot/opt/pypep/dbpep
cp $uchinanchu/pepuserconfig/* $uchinanchu/fusato/config/includes.chroot/etc/live/config.conf.d
@ -258,15 +266,19 @@ cp -r $uchinanchu/pepplymouth/plymouth $uchinanchu/fusato/config/includes.chroot
cp -r $uchinanchu/pepxfce/xfce4 $uchinanchu/fusato/config/includes.chroot/etc/skel/.config
# Place files unique to Nightly builds here.
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/distro-info
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/python-apt/templates
cp -r $uchinanchu/pepinfo/devuan/* $uchinanchu/fusato/config/includes.chroot/usr/share/python-apt/templates
ln -s Devuan.info $uchinanchu/fusato/config/includes.chroot/usr/share/python-apt/templates/Peppermint.info
ln -s Devuan.mirrors $uchinanchu/fusato/config/includes.chroot/usr/share/python-apt/templates/Peppermint.mirrors
ln -s devuan.csv $uchinanchu/fusato/config/includes.chroot/usr/share/distro-info/peppermint.csv
# Place files unique to Testing builds here.
cp $uchinanchu/peptesting/pepaliases/bash_aliases $uchinanchu/fusato/config/includes.chroot/etc/skel/.bash_aliases
cp $uchinanchu/peptesting/pepcal/install-peppermint $uchinanchu/fusato/config/includes.chroot/usr/bin
cp $uchinanchu/peptesting/pepcal/calamares/settings.conf $uchinanchu/fusato/config/includes.chroot/etc/calamares
cp $uchinanchu/peptesting/pepcal/sources-final $uchinanchu/fusato/config/includes.chroot/usr/sbin
cp $uchinanchu/peptesting/pepcal/calamares_*_amd64.deb $uchinanchu/fusato/config/packages.chroot
#cp $uchinanchu/peptesting/peppackages/ice_6.0.6_all.deb $uchinanchu/fusato/config/packages.chroot
cp $uchinanchu/peptesting/peppinunstable/* $uchinanchu/fusato/config/includes.chroot/etc/apt/preferences.d
cp -r $uchinanchu/peptesting/pepcal/calamares/modules $uchinanchu/fusato/config/includes.chroot/etc/calamares
cp -r $uchinanchu/peptesting/peploadersplash/boot $uchinanchu/fusato/config/includes.binary
cp -r $uchinanchu/peptesting/peploadersplash/isolinux $uchinanchu/fusato/config/includes.binary
cp -r $uchinanchu/peptesting/pepxfce/xfce4 $uchinanchu/fusato/config/includes.chroot/etc/skel/.config
# Build the ISO #
lb build noauto #--debug --verbose
lb build #--debug --verbose

269
PepBld-unstable.sh Executable file
View File

@ -0,0 +1,269 @@
#!/bin/bash
PATH="/sbin:/usr/sbin:/usr/local/sbin:$PATH"
#exec 3>&1 4>&2
#trap 'exec 2>&4 1>&3' 0 1 2 3
#exec 1>log.out 2>&1
# Set the working folder variable
uchinanchu="$(pwd)"
# Create the build folder, move into it and remove unneeded files there.
[ -e fusato ] && [ ! -d fusato ] && (rm -f fusato ; mkdir fusato) || mkdir fusato
cd fusato
umount -v $(mount | grep "${PWD}/chroot" | tac | cut -f3 -d" ") 2>/dev/null
for i in ./* ./.build ./cache/bootstrap ./cache/contents.chroot ; do [ $i = ./cache ] && continue || rm -rf $i ; done
# Set of the structure to be used for the ISO and Live system.
# See /usr/lib/live/build/config for a full list of examples.
# Up above is the manual description of what options I used so far.
lb config \
--clean \
--color \
--quiet \
--archive-areas "main contrib non-free" \
--architectures amd64 \
--apt-recommends false \
--backports true \
--binary-images iso-hybrid \
--cache true \
--mode debian \
--distribution bullseye \
--firmware-binary true \
--firmware-chroot true \
--iso-application "PeppermintOS" \
--iso-preparer "PeppermintOS-https://peppermintos.com/" \
--iso-publisher "Peppermint OS Team" \
--iso-volume "PeppermintOS" \
--image-name "PepOS" \
--linux-flavours amd64 \
--security true \
--updates true \
--win32-loader false \
--checksums sha512 \
--zsync false \
# Install the XFCE Desktop
mkdir -p ./config/package-lists/
echo xfce4 > ./config/package-lists/desktop.list.chroot
# Install software
echo "# Install software to the squashfs for calamares to unpack to the OS.
arandr
arc-theme
calamares-settings-debian
calamares
curl
dbus-x11
dconf-editor
dconf-gsettings-backend
desktop-base
dkms
dmraid
dosfstools
e2fsprogs
exo-utils
firmware-linux
firmware-linux-free
firmware-linux-nonfree
firmware-misc-nonfree
gir1.2-webkit2-4.0
gparted
gnome-disk-utility
grub-pc
host
initramfs-tools
libnss3
libnss-mdns
lightdm
lightdm-gtk-greeter
live-boot
live-config
locales
locales-all
menulibre
mokutil
mtools
neofetch
network-manager-gnome
ntfs-3g
ntp
os-prober
pavucontrol
pulseaudio
pulseaudio-module-zeroconf
plymouth
plymouth-label
plymouth-themes
python3-apt
python3-bs4
python3-pip
python3-pyqt5.qtsvg
python3-pyqt5.qtwebengine
python3-pyqt5.qtwebkit
python3-requests
python3-tk
python3-ttkthemes
rsync
screenfetch
sqlite3
sudo
synaptic
user-setup
xdg-user-dirs
xfce4
xfce4-battery-plugin
xfce4-clipman-plugin
xfce4-notifyd
xfce4-power-manager
xfce4-power-manager-plugins
xfce4-taskmanager
xfce4-terminal
xfce4-screenshooter
xfce4-whiskermenu-plugin
yad
wireless-tools
wget
xauth
xinit
xorg
f2fs-tools
xfsprogs
" > ./config/package-lists/packages.list.chroot
# Get packages used ONLY by the live-session, to be stored in /pool by `lb`.
echo "# Packages required only by the live session.
efibootmgr
grub-common
grub2-common
grub-efi
grub-efi-amd64
grub-efi-amd64-bin
grub-efi-amd64-signed
grub-efi-ia32-bin
libefiboot1
libefivar1
mokutil
os-prober
shim-helpers-amd64-signed
shim-signed
shim-signed-common
shim-unsigned
" > ./config/package-lists/installer.list.binary
# Setup the build directory structures
#mkdir -p ./config/hooks/live
mkdir -p ./config/hooks/normal
mkdir -p ./config/packages.chroot
mkdir -p ./config/includes.binary
mkdir -p ./config/includes.bootstrap/etc
mkdir -p ./config/includes.chroot/etc/apt
mkdir -p ./config/includes.chroot/etc/apt/preferences.d
mkdir -p ./config/includes.chroot/etc/calamares
mkdir -p ./config/includes.chroot/etc/default
mkdir -p ./config/includes.chroot/etc/lightdm
mkdir -p ./config/includes.chroot/etc/live/config.conf.d
mkdir -p ./config/includes.chroot/etc/skel/.config/autostart
mkdir -p ./config/includes.chroot/etc/skel/.local/share
mkdir -p ./config/includes.chroot/etc/skel/Desktop
mkdir -p ./config/includes.chroot/etc/xdg/xfce4
mkdir -p ./config/includes.chroot/opt/pepconf
mkdir -p ./config/includes.chroot/opt/pypep/dbpep
mkdir -p ./config/includes.chroot/opt/startpep
mkdir -p ./config/includes.chroot/usr/bin
mkdir -p ./config/includes.chroot/usr/sbin
mkdir -p ./config/includes.chroot/usr/lib/live/config
#mkdir -p ./config/includes.chroot/usr/lib/peppermint/ice
mkdir -p ./config/includes.chroot/usr/share/applications
mkdir -p ./config/includes.chroot/usr/share/backgrounds
mkdir -p ./config/includes.chroot/usr/share/desktop-base
mkdir -p ./config/includes.chroot/usr/share/fonts/pepconf
mkdir -p ./config/includes.chroot/usr/share/icons/default
#mkdir -p ./config/includes.chroot/usr/share/ice/locale
mkdir -p ./config/includes.chroot/usr/share/peppermint
mkdir -p ./config/includes.chroot/usr/share/pixmaps
mkdir -p ./config/includes.chroot/usr/share/plymouth
mkdir -p ./config/includes.chroot/usr/share/polkit-1/actions
mkdir -p ./config/includes.chroot/usr/share/themes
mkdir -p ./config/includes.chroot/usr/share/xfce4/helpers
# Copy Multiple files to the bootstrap
cp $uchinanchu/pepissue/* ./config/includes.bootstrap/etc/
# Copy Single files to the chroot
cp $uchinanchu/pepaliases/bash_aliases ./config/includes.chroot/etc/skel/.bash_aliases
cp $uchinanchu/pepapplication/Install-peppermint.desktop ./config/includes.chroot/etc/skel/Desktop
cp $uchinanchu/pepcal/adddesktopicon/add-calamares-desktop-icon ./config/includes.chroot/usr/bin
cp $uchinanchu/pepcal/calamares/netinstall-* ./config/includes.chroot/etc/calamares
cp $uchinanchu/pepcal/calamares/settings.conf ./config/includes.chroot/etc/calamares
cp $uchinanchu/pepcal/calamares_*_amd64.deb ./config/packages.chroot
cp $uchinanchu/pepcal/install-peppermint ./config/includes.chroot/usr/bin
cp $uchinanchu/pepcal/sources-final ./config/includes.chroot/usr/sbin
cp $uchinanchu/pepdb/welval.db ./config/includes.chroot/opt/pypep/dbpep
cp $uchinanchu/peplightdm/lightdm.conf ./config/includes.chroot/etc/lightdm
cp $uchinanchu/peplightdm/lightdm-gtk-greeter.conf ./config/includes.chroot/etc/lightdm
cp $uchinanchu/../MakePackageLists.sh $uchinanchu/fusato/config/includes.chroot/usr/local/bin
# Copy Multiple files to the chroot
cp $uchinanchu/pepapplication/* ./config/includes.chroot/usr/share/applications
cp $uchinanchu/pepdeffileman/xfce4/* ./config/includes.chroot/etc/xdg/xfce4
cp $uchinanchu/pepdeffileman/helpers/* ./config/includes.chroot/usr/share/xfce4/helpers
cp $uchinanchu/pepfont/* ./config/includes.chroot/usr/share/fonts/pepconf
cp $uchinanchu/pepgrub/* ./config/includes.chroot/etc/default
cp $uchinanchu/pepissue/* ./config/includes.chroot/etc
cp $uchinanchu/pepissue/* ./config/includes.chroot/opt/pepconf
cp $uchinanchu/peppinunstable/* ./config/includes.chroot/etc/apt/preferences.d
cp $uchinanchu/peposrelease/* ./config/includes.chroot/usr/lib
cp $uchinanchu/peposrelease/* ./config/includes.chroot/opt/pepconf
cp $uchinanchu/peppackages/* ./config/packages.chroot
cp $uchinanchu/peppolkit/* ./config/includes.chroot/usr/share/polkit-1/actions
cp $uchinanchu/pepsources/* ./config/includes.chroot/etc/apt
cp $uchinanchu/pepsources/* ./config/includes.chroot/opt
cp $uchinanchu/pepuserconfig/* ./config/includes.chroot/etc/live/config.conf.d
cp $uchinanchu/pephooks/live/0030-user-setup ./config/includes.chroot/usr/lib/live/config
cp $uchinanchu/pephooks/normal/* ./config/hooks/normal
cp $uchinanchu/PepProPixMaps/* ./config/includes.chroot/usr/share/pixmaps
cp $uchinanchu/PepProTools/Welcome_auto.desktop ./config/includes.chroot/etc/skel/.config/autostart
cp $uchinanchu/PepProTools/* ./config/includes.chroot/opt/pypep
# Copy sub-directories and files recursively
cp -dr $uchinanchu/pepicons/Numix ./config/includes.chroot/usr/share/icons
cp -dr $uchinanchu/pepicons/Pepirus ./config/includes.chroot/usr/share/icons
cp -dr $uchinanchu/pepicons/Pepirus-Dark ./config/includes.chroot/usr/share/icons
cp -dr $uchinanchu/peptheme/Peppermint-10-Red-Dark ./config/includes.chroot/usr/share/themes
cp -r $uchinanchu/pepcal/calamares/branding ./config/includes.chroot/etc/calamares
cp -r $uchinanchu/pepcal/calamares/modules ./config/includes.chroot/etc/calamares
cp -r $uchinanchu/pepdesktopbase/desktop-base ./config/includes.chroot/usr/share/
cp -r $uchinanchu/pepnemo/nemo ./config/includes.chroot/etc/skel/.config
cp -r $uchinanchu/pepmenu/menus ./config/includes.chroot/etc/skel/.config
cp -r $uchinanchu/pepplymouth/plymouth ./config/includes.chroot/usr/share/
cp -r $uchinanchu/pepxfce/xfce4 ./config/includes.chroot/etc/skel/.config
# Copy files for the skinny build from here
cp $uchinanchu/pepunstable/pepcal/calamares/settings.conf ./config/includes.chroot/etc/calamares
cp $uchinanchu/pepunstable/pepcal/calamares/modules/* ./config/includes.chroot/etc/calamares
cp $uchinanchu/pepunstable/pepwallpaper/* ./config/includes.chroot/usr/share/backgrounds
cp -r $uchinanchu/pepunstable/peploadersplash/boot ./config/includes.binary
cp -r $uchinanchu/pepunstable/peploadersplash/isolinux ./config/includes.binary
# Build the ISO #
lb build #--debug --verbose

View File

@ -1,94 +1,158 @@
#!/usr/bin/env python3
"""
* Author: "PepDebian(peppermintosteam@proton.me)
*
* License: SPDX-License-Identifier: GPL-3.0-or-later
*
* this script is for performing actions for the hub
*
"""
import os
import subprocess
# User and Tweaks #
#Settings Manager
def osettingsmgr():
subprocess.Popen ("xfce4-settings-manager")
#Deconf Editor
def odeconf():
subprocess.Popen ("dconf-editor")
#Mouse Settings
def omt():
subprocess.Popen ("xfce4-mouse-settings")
#Appearence
def oclf():
subprocess.Popen ("xfce4-appearance-settings")
#Panel Preferences
def opp():
subprocess.Popen (["xfce4-panel", "--preferences"])
#Notifications Configuration
def ons():
subprocess.Popen ("xfce4-notifyd-config")
#Default settings
def opa():
subprocess.Popen ("xfce4-mime-settings")
#Keyboardsettings
def oks():
subprocess.Popen ("xfce4-keyboard-settings")
# Network and Hardware #
#Network Manager
def nhnm():
subprocess.Popen ("nm-connection-editor")
#Printers
def nhpr():
subprocess.Popen ("system-config-printer")
#Display
def nhdis():
subprocess.Popen ("xfce4-display-settings")
#Power Manager
def nhpom():
subprocess.Popen ("xfce4-power-manager-settings")
#Pulse Audio Volume
def nhpav():
subprocess.Popen ("pavucontrol")
# Settings and Software #
#User and Groups
def ssug():
subprocess.Popen ("users-admin")
#Disk Utilities
def ssdu():
subprocess.Popen ("gnome-disks")
#Update Manager
def ssum():
subprocess.Popen(["pkexec", "python3", "/opt/pypep/pepu.py"])
"""#Settings Manager"""
subprocess.Popen("xfce4-settings-manager")
def odeconf():
"""#Deconf Editor"""
subprocess.Popen("dconf-editor")
def omt():
"""#Mouse Settings"""
subprocess.Popen("xfce4-mouse-settings")
def oclf():
"""#Appearence"""
subprocess.Popen("xfce4-appearance-settings")
def opp():
"""#Panel Preferences"""
subprocess.Popen(["xfce4-panel", "--preferences"])
def ons():
"""#Notifications Configuration"""
subprocess.Popen("xfce4-notifyd-config")
def opa():
"""#Default settings"""
subprocess.Popen("xfce4-mime-settings")
def oks():
"""#Keyboardsettings"""
subprocess.Popen("xfce4-keyboard-settings")
def nhnm():
"""#Network Manager"""
subprocess.Popen("nm-connection-editor")
def nhpr():
"""#Printers"""
subprocess.Popen("system-config-printer")
def nhdis():
"""#Display"""
subprocess.Popen("xfce4-display-settings")
def nhpom():
"""#Power Manager"""
subprocess.Popen("xfce4-power-manager-settings")
def nhpav():
"""#Pulse Audio Volume"""
subprocess.Popen("pavucontrol")
def ssug():
"""#User and Groups"""
subprocess.Popen("users-admin")
def ssdu():
"""#Disk Utilities"""
subprocess.Popen("gnome-disks")
def ssum():
"""#Update Manager"""
subprocess.Popen(["pkexec", "python3", "/opt/pypep/pepu.py"])
#Accessibilitity
def ssas():
subprocess.Popen ("xfce4-accessibility-settings")
#System Informaion
"""#Accessibilitity"""
subprocess.Popen("xfce4-accessibility-settings")
def sssi():
"""#System Informaion"""
cmd = "xfce4-terminal -e 'bash -c \"neofetch\";bash'"
subprocess.Popen(cmd,shell=True)
#Flathub
subprocess.Popen(cmd, shell=True)
def ssfh():
"""#Flathub"""
os.system('python3 /opt/pypep/fh.py')
def ssfgnm():
pass
#Snapstore
def ssss():
os.system('python3 /opt/pypep/spstore.py')
"""#Snapstore"""
os.system('python3 /opt/pypep/web_spstore.py')
def ssst():
"""#Snapstore"""
cmd = "[ -e /snap/bin ] && snap-store || xfce4-terminal -T \"Snap Store Installer\" -e \"bash -c 'sudo snap install snap-store'\""
subprocess.Popen(cmd,shell=True)
#App Image
subprocess.Popen(cmd, shell=True)
def ssai():
os.system('python3 /opt/pypep/aih.py')
#gnomestore
"""#App Image"""
os.system('python3 /opt/pypep/web_aih.py')
def ssgn():
subprocess.Popen ("gnome-software")
#gnomestoreweb
"""#gnomestore"""
subprocess.Popen("gnome-software")
def ssgns():
os.system('python3 /opt/pypep/gstore.py')
#Synaptic Package Manager
"""#gnomestoreweb"""
os.system('python3 /opt/pypep/web_gstore.py')
def ssspm():
subprocess.Popen ("synaptic-pkexec")
#Installer
"""#Synaptic Package Manage"""
subprocess.Popen("synaptic-pkexec")
def packages():
"""#Installer"""
subprocess.Popen(["pkexec", "python3", "/opt/pypep/peppackages.py"])
#Launch ICE
def lice():
subprocess.Popen ("ice")
def lkumo():
"""#Launch kumo"""
subprocess.Popen(["pkexec", "python3", "/opt/pypep/pepkumo.py"])
def lttkcreate():
"""#Launch TTK Creator"""
subprocess.Popen(
["pkexec", "python3", "/usr/local/lib/python3.9/dist-packages/ttkcreator/__main__.py"])
def lpscope():
"""#Launch PepScope"""
subprocess.Popen(["python3", "/opt/pypep/rdata.py"])

6
PepProTools/bsconf.py Normal file
View File

@ -0,0 +1,6 @@
#!/usr/bin/env python3
import ttkbootstrap as ttk
#This will set the style to used for boostrap
#just change the name to what is needed for the
#the system
bbstyle = ttk.Window(themename="darkly")

BIN
PepProTools/cb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1013 B

View File

@ -1,70 +0,0 @@
#!/usr/bin/env python3
import os
import subprocess as sp
import tkinter as tk
import sqlite3
from tkinter import *
from tkinter import ttk
from tkinter import font
from ttkthemes import ThemedTk
from tkinter import PhotoImage
from tendo import singleton
import subprocess
#setting up window
pexs = ThemedTk(theme='clam')
window_height = 130
window_width = 350
pexs.title('Install Complete')
pexs.tk.call('wm', 'iconphoto', pexs._w, tk.PhotoImage(file='/usr/share/pixmaps/peppermint-old.png'))
pexs['bg']='#2f2f2f'
#keep only instance at a time
me = singleton.SingleInstance()
#main information syles
subpmt = ttk.Style()
subpmt.configure("Whiteb.TLabel", foreground ="#ffffff", background ="#2f2f2f", font = ('Helvetica', '14', 'bold') )
#style the buttons
stbnt = ttk.Style()
stbnt.configure('pep.TButton', font = ('Helvetica', '14', 'bold'))
stbnt.map("pep.TButton",
foreground=[('!active', '#F62817'),('pressed', '#2f2f2f'), ('active', 'white')],
background=[ ('!active','#2f2f2f'),('pressed', '#2f2f2f'), ('active', '#2f2f2f')],
)
cbtn = ttk.Style()
cbtn.map("hpep.TButton",
foreground=[('!active', '#F62817'),('pressed', 'white'), ('active', '#F62817')],
background=[ ('!active','#2f2f2f'),('pressed', '#2f2f2f'), ('active', '#2f2f2f')]
)
def center_screen():
""" gets the coordinates of the center of the screen """
global screen_height, screen_width, x_cordinate, y_cordinate
screen_width = pexs.winfo_screenwidth()
screen_height = pexs.winfo_screenheight()
# Coordinates of the upper left corner of the window to make the window appear in the center
x_cordinate = int((screen_width/2) - (window_width/2))
y_cordinate = int((screen_height/2) - (window_height/2))
pexs.geometry("{}x{}+{}+{}".format(window_width, window_height, x_cordinate, y_cordinate))
def killme():
pexs.destroy()
#Message information
lblexp = ttk.Label(pexs, style="Whiteb.TLabel", text="Installation Completed!", wraplength=500)
lblexp.place(x=70, y=30)
###All the buttons and placements##
bttut = ttk.Button(text='Close', style="pep.TButton", width=8, command=killme )
bttut.place(x=120, y=70)
#call Center screen
center_screen()
pexs.mainloop()

View File

@ -1,78 +0,0 @@
#!/usr/bin/env python3
import os
import subprocess as sp
import tkinter as tk
import ttkbootstrap as ttk
from tendo import singleton
#setting up window
pexs = ttk.Window(themename="darkly")
window_height = 130
window_width = 400
pexs.title('Check CodeBerg Connection')
pexs.tk.call('wm', 'iconphoto', pexs._w, tk.PhotoImage(file='/usr/share/pixmaps/peppermint-old.png'))
#keep only instance at a time
me = singleton.SingleInstance()
def center_screen():
""" gets the coordinates of the center of the screen """
global screen_height, screen_width, x_cordinate, y_cordinate
screen_width = pexs.winfo_screenwidth()
screen_height = pexs.winfo_screenheight()
# Coordinates of the upper left corner of the window to make the window appear in the center
x_cordinate = int((screen_width/2) - (window_width/2))
y_cordinate = int((screen_height/2) - (window_height/2))
pexs.geometry("{}x{}+{}+{}".format(window_width, window_height, x_cordinate, y_cordinate))
#Check if user can connect to codeberg
def cb ():
cmd = os.system('wget -q --spider https://codeberg.org/Peppermint_OS/ ')
# cmd = os.system('ping codeberg.org -w 4 >/dev/null ')
if cmd == 0:
#new placement for install
btgo.place(x=220, y=70)
#take the check button way out of view (hide)
btck.place(x=-9000, y=0)
#reset the label text
lblexp.configure(text="Connection to CodeBerg successful!")
#neplatment for label
lblexp.place(x=40, y=30)
else:
os.system('python3 /opt/pypep/nointer.py')
def ico ():
sp.call(['xfce4-terminal', '-x','/opt/pypep/icons.sh'])
def killme():
pexs.destroy()
os.popen ('python3 /opt/pypep/pge.py')
#Message information
lblexp = ttk.Label(pexs, text="Check Codeberg Connection...")
lblexp.place(x=80, y=30)
###All the buttons and placements##
btcan = ttk.Button(text='Cancel', bootstyle="danger-outline", width=8, command=killme )
btcan.place(x=100, y=70)
btgo = ttk.Button(text='Install', bootstyle="danger-outline", width=8, command=ico)
btck = ttk.Button(text='Check', bootstyle="danger-outline", width=8, command=cb)
btck.place(x=220, y=70)
#call Center screen
center_screen()
pexs.mainloop()

View File

@ -1,77 +0,0 @@
#!/usr/bin/env python3
import os
import subprocess as sp
import tkinter as tk
import ttkbootstrap as ttk
from tendo import singleton
#setting up window
pexs = ttk.Window(themename="darkly")
window_height = 130
window_width = 400
pexs.title('Check CodeBerg Connection')
pexs.tk.call('wm', 'iconphoto', pexs._w, tk.PhotoImage(file='/usr/share/pixmaps/peppermint-old.png'))
#keep only instance at a time
me = singleton.SingleInstance()
def center_screen():
""" gets the coordinates of the center of the screen """
global screen_height, screen_width, x_cordinate, y_cordinate
screen_width = pexs.winfo_screenwidth()
screen_height = pexs.winfo_screenheight()
# Coordinates of the upper left corner of the window to make the window appear in the center
x_cordinate = int((screen_width/2) - (window_width/2))
y_cordinate = int((screen_height/2) - (window_height/2))
pexs.geometry("{}x{}+{}+{}".format(window_width, window_height, x_cordinate, y_cordinate))
def cb ():
"""Check if user can connect to codeberg"""
cmd = os.system('wget -q --spider https://codeberg.org/Peppermint_OS/ ')
if cmd == 0:
#new placement for install
btgo.place(x=220, y=70)
#take the check button way out of view (hide)
btck.place(x=-9000, y=0)
#reset the label text
lblexp.configure(text="Connection to CodeBerg successful!")
#neplatment for label
lblexp.place(x=40, y=30)
else:
os.system('python3 /opt/pypep/nointer.py')
def thm ():
sp.call(['xfce4-terminal', '-x','/opt/pypep/themes.sh'])
def killme():
pexs.destroy()
os.popen ('python3 /opt/pypep/pge.py')
#Message information
lblexp = ttk.Label(pexs,text="Check Codeberg Connection...")
lblexp.place(x=80, y=30)
###All the buttons and placements##
btcan = ttk.Button(text='Cancel', bootstyle="danger-outline", width=8, command=killme )
btcan.place(x=100, y=70)
btgo = ttk.Button(text='Install', bootstyle="danger-outline", width=8, command=thm)
btck = ttk.Button(text='Check', bootstyle="danger-outline", width=8, command=cb)
btck.place(x=220, y=70)
#call Center screen
center_screen()
pexs.mainloop()

View File

@ -1,76 +0,0 @@
#!/usr/bin/env python3
import os
import subprocess as sp
import tkinter as tk
import ttkbootstrap as ttk
from tendo import singleton
#setting up window
pexs = ttk.Window(themename="darkly")
window_height = 130
window_width = 400
pexs.title('Check CodeBerg Connection')
pexs.tk.call('wm', 'iconphoto', pexs._w, tk.PhotoImage(file='/usr/share/pixmaps/peppermint-old.png'))
#keep only instance at a time
me = singleton.SingleInstance()
def center_screen():
""" gets the coordinates of the center of the screen """
global screen_height, screen_width, x_cordinate, y_cordinate
screen_width = pexs.winfo_screenwidth()
screen_height = pexs.winfo_screenheight()
# Coordinates of the upper left corner of the window to make the window appear in the center
x_cordinate = int((screen_width/2) - (window_width/2))
y_cordinate = int((screen_height/2) - (window_height/2))
pexs.geometry("{}x{}+{}+{}".format(window_width, window_height, x_cordinate, y_cordinate))
def cb ():
"""Check if user can connect to codeberg"""
cmd = os.system('wget -q --spider https://codeberg.org/Peppermint_OS/ ')
if cmd == 0:
#new placement for install
btgo.place(x=220, y=70)
#take the check button way out of view (hide)
btck.place(x=-9000, y=0)
#reset the label text
lblexp.configure(text="Connection to CodeBerg successful!")
#neplatment for label
lblexp.place(x=40, y=30)
else:
os.system('python3 /opt/pypep/nointer.py')
def ico ():
"""Run the bash"""
sp.call(['xfce4-terminal', '-x','/opt/pypep/walls.sh'])
def killme():
"""Close the window"""
pexs.destroy()
os.popen ('python3 /opt/pypep/pge.py')
#Message information
lblexp = ttk.Label(pexs, text="Check Codeberg Connection...")
lblexp.place(x=80, y=30)
###All the buttons and placements##
btcan = ttk.Button(text='Cancel', bootstyle="danger-outline", width=8, command=killme )
btcan.place(x=100, y=70)
btgo = ttk.Button(text='Install', bootstyle="danger-outline", width=8, command=ico)
btck = ttk.Button(text='Check', bootstyle="danger-outline", width=8, command=cb)
btck.place(x=220, y=70)
#call Center screen
center_screen()
pexs.mainloop()

2
PepProTools/git-commits.json Executable file
View File

@ -0,0 +1,2 @@
[
}]

393
PepProTools/git-pepd64.json Normal file
View File

@ -0,0 +1,393 @@
[
{
"commit": "651754af44ba98cc7a42822907f8992dbbe0f0a1",
"date": "Fri Sep 16 03:00:30 2022 +0000",
"message": "Automated-Updates",
"files": [
"PepProTools/git-pepd64.json",
"PepProTools/git-pepdv64.json",
"PepProTools/git-peptools.json"
]
},
{
"commit": "c0523f34f6be8b77ba6b78074af57017c2809f3c",
"date": "Thu Sep 15 06:32:58 2022 -0500",
"message": "Automated-Updates",
"files": [
"pephooks/normal/0540-webinst.hook.chroot"
]
},
{
"commit": "958c57f13fb6133ec19ef4d381cc69347b5a2c71",
"date": "Thu Sep 15 03:00:33 2022 +0000",
"message": "Automated-Updates",
"files": [
"PepProTools/git-pepd64.json",
"PepProTools/git-pepdv64.json",
"PepProTools/git-peptools.json",
"PepProTools/hub.py",
"pephooks/normal/0540-webinst.hook.chroot"
]
},
{
"commit": "1cb08ccf7ef187263c8df69b26b6c050744da8ea",
"date": "Wed Sep 14 04:49:31 2022 -0500",
"message": "Automated-Updates",
"files": [
"PepProTools/actions.py",
"PepProTools/hub.py",
"PepProTools/hubconf.py",
"PepProTools/pddata.py",
"PepProTools/pdvdata.py",
"PepProTools/ptdata.py",
"PepProTools/rdata.py",
"pephooks/normal/0540-webinst.hook.chroot"
]
},
{
"commit": "eb74fcbcb5723673567836398a476fa9c69bbcc1",
"date": "Wed Sep 14 04:08:40 2022 -0500",
"message": "Package-python3-pyqt5-qtsql-added-to-the-build-packages",
"files": [
"PepBld-nightly.sh",
"PepBld-skinny.sh",
"PepBld-testing.sh",
"PepBld-unstable.sh",
"pepbld.sh"
]
},
{
"commit": "93ac9dc5b7e6224b60331486f6a0194dfa2ccd9e",
"date": "Wed Sep 14 02:54:29 2022 -0500",
"message": "Updated-file",
"files": [
"BldHelper-release.sh"
]
},
{
"commit": "834ad8f948883a820b6b1cde505430a7c149e871",
"date": "Wed Sep 14 01:44:15 2022 -0500",
"message": "Bringing-Build-files-into-alignment",
"files": [
"PepBld-nightly.sh",
"pepbld.sh"
]
},
{
"commit": "8bd7d287f616b51ff18e0ae8aa845ad2a48217f3",
"date": "Wed Sep 14 01:43:11 2022 -0500",
"message": "Prepping-for-release-Bringing-BldHelper-files-into-alignment",
"files": [
"BldHelper-nightly.sh",
"BldHelper-release.sh"
]
},
{
"commit": "de585cd9a072e34acd83c2b032aa309428820322",
"date": "Wed Sep 14 03:00:30 2022 +0000",
"message": "Automated-Updates",
"files": [
"PepProTools/git-pepd64.json",
"PepProTools/git-pepdv64.json",
"PepProTools/git-peptools.json"
]
},
{
"commit": "307ccb307a9af8347b28d03f17b6446778e8b359",
"date": "Tue Sep 13 03:00:33 2022 +0000",
"message": "Automated-Updates",
"files": [
"PepProTools/git-pepd64.json",
"PepProTools/git-pepdv64.json",
"PepProTools/git-peptools.json"
]
},
{
"commit": "09bee6cc405acd6a32121905390d86a971c4ceee",
"date": "Sun Sep 11 23:09:05 2022 -0500",
"message": "Automated-Updates",
"files": [
"PepProTools/git-pepd64.json",
"PepProTools/git-pepdv64.json",
"PepProTools/git-peptools.json",
"PepProTools/hub.py",
"PepProTools/hubconf.py",
"PepProTools/xDaily"
]
},
{
"commit": "320b519934a4f2558c48164e0685f24bf1a139d2",
"date": "Mon Sep 12 03:00:31 2022 +0000",
"message": "Automated-Updates",
"files": [
"PepProTools/hub.py",
"PepProTools/hubconf.py",
"PepProTools/xDaily"
]
},
{
"commit": "2bb30aa47907c0d3c5eb017b55b3382929e36b90",
"date": "Sun Sep 11 00:59:18 2022 -0500",
"message": "Automated-Updates",
"files": [
"PepProTools/xDaily",
"pepbld.sh"
]
},
{
"commit": "44ffc3c14277028e87705707881c1d6eacc21636",
"date": "Sat Sep 10 23:13:13 2022 -0500",
"message": "Long-awaited-push-of-the-version-to-correct-Unable-to-install-grub-for-UEFI-Secure-boot",
"files": [
"peptesting/pepcal/install-peppermint"
]
},
{
"commit": "b09b6484ace16eadb64e294e258ce296fd9a2060",
"date": "Sat Sep 10 23:10:12 2022 -0500",
"message": "Long-awaited-push-of-the-version-to-include-the-Peppermint-Apt-repository",
"files": [
"pepnightly/pepcal/sources-final"
]
},
{
"commit": "2fcb5ebb4e310c4713732768018185481f595502",
"date": "Sat Sep 10 23:03:39 2022 -0500",
"message": "Reinstated-copying-the-missing-Arc-themes-we-use.-Test-for-adding-to-the-ISO-Volume-Name",
"files": [
"PepBld-nightly.sh"
]
},
{
"commit": "c9e16b179937f690de55f2895cf030a0cae269bf",
"date": "Sun Sep 11 03:00:39 2022 +0000",
"message": "Automated-Updates",
"files": [
"PepProTools/kumosm.png"
]
},
{
"commit": "8ca8461a842089f5d0673a2ba4b5a1d7dcf16f60",
"date": "Wed Sep 7 03:00:37 2022 +0000",
"message": "Automated-Updates",
"files": [
"PepProTools/codeb.py",
"PepProTools/mas.py",
"PepProTools/mat.py",
"PepProTools/pge.py",
"PepProTools/reddit.py",
"PepProTools/sf.py",
"PepProTools/welcome.py",
"PepProTools/welcome_man.py"
]
},
{
"commit": "699707adc981996e05809d5dc765471de1217575",
"date": "Tue Sep 6 03:00:31 2022 +0000",
"message": "Automated-Updates",
"files": [
"PepProTools/bd.py",
"PepProTools/cb.png",
"PepProTools/codeb.py",
"PepProTools/mas.py",
"PepProTools/mat.py",
"PepProTools/mn.png",
"PepProTools/mt.png",
"PepProTools/pdocs.py",
"PepProTools/pep-logo-deb.png",
"PepProTools/pep-logo-dev.png",
"PepProTools/peppermint-word-white.png",
"PepProTools/rd.png",
"PepProTools/reddit.py",
"PepProTools/sf.png",
"PepProTools/sf.py",
"PepProTools/welcome.py",
"PepProTools/welcome_man.py",
"PepProTools/welconf.py",
"PepProTools/welfunc.py"
]
},
{
"commit": "7835c5df9d8a176a9777ef13ace7782f3a710a13",
"date": "Sun Sep 4 03:00:33 2022 +0000",
"message": "Automated-Updates",
"files": [
"PepProTools/hub.py"
]
},
{
"commit": "8fa867011a6406793dc0026689e236ed8763882a",
"date": "Sat Sep 3 03:00:29 2022 +0000",
"message": "Automated-Updates",
"files": [
"pepcal/install-peppermint"
]
},
{
"commit": "decd9908d9f746fb4ed92c771111f2bf9eb6cbd9",
"date": "Thu Sep 1 03:00:30 2022 +0000",
"message": "Automated-Updates",
"files": [
"PepProTools/bsconf.py",
"PepProTools/pepkumo.py",
"PepProTools/pepu.py"
]
},
{
"commit": "d005eb9bd8d1ff3e54f35071208dc29bd7b94b13",
"date": "Wed Aug 31 03:00:29 2022 +0000",
"message": "Automated-Updates",
"files": [
"pepaliases/bash_aliases"
]
},
{
"commit": "e9387b555ec5c9594b293ea47ece87e3d5f0af7d",
"date": "Tue Aug 30 04:20:17 2022 -0500",
"message": "Colorized-pep-writer",
"files": [
"pepnightly/pepaliases/bash_aliases",
"peptesting/pepaliases/bash_aliases",
"pepunstable/pepaliases/bash_aliases"
]
},
{
"commit": "e720e4fb47fe6bf94b797342dfe6f8fd5890dbde",
"date": "Mon Aug 29 01:56:50 2022 -0500",
"message": "Automated-Updates",
"files": [
"BldHelper-nightly.sh",
"PepProTools/actions.py",
"PepProTools/hub.py",
"PepProTools/peppermint-rimbw-48.png",
"peppackages/nala_0.10.0_all.deb",
"peppackages/python3-anyio_3.6.1-1_all.deb",
"peppackages/python3-click_8.0.3-1_all.deb",
"peppackages/python3-colorama_0.4.5-1_all.deb",
"peppackages/python3-commonmark_0.9.1-4_all.deb",
"peppackages/python3-h11_0.13.0-2_all.deb",
"peppackages/python3-httpcore_0.15.0-1_all.deb",
"peppackages/python3-httpx_0.23.0-1_all.deb",
"peppackages/python3-pexpect_4.8.0-3_all.deb",
"peppackages/python3-ptyprocess_0.7.0-3_all.deb",
"peppackages/python3-pygments_2.12.0+dfsg-2_all.deb",
"peppackages/python3-rfc3986_1.5.0-2_all.deb",
"peppackages/python3-rich_12.4.4-1_all.deb",
"peppackages/python3-sniffio_1.2.0-1_all.deb",
"peppackages/python3-socksio_1.0.0-2_all.deb",
"peppackages/python3-tomli_2.0.1-1_all.deb",
"peppackages/python3-typer_0.4.1-1_all.deb",
"peppackages/python3-typing-extensions_3.10.0.2-1_all.deb"
]
},
{
"commit": "501c132fadeb707d68b39d30013092739465b5a2",
"date": "Sat Aug 27 03:00:35 2022 +0000",
"message": "Automated-Updates",
"files": [
"PepProTools/pepkumo.py",
"PepProTools/xDaily"
]
},
{
"commit": "60a1d9b6864354bdefaaf0693bc42e311c7a0129",
"date": "Thu Aug 25 03:00:28 2022 +0000",
"message": "Automated-Updates",
"files": [
"pepcal/calamares/modules/netinstall-packages.yaml",
"pephooks/normal/0600-OS-symlinks.hook.chroot"
]
},
{
"commit": "1d8a379328939bb1ce58b9a617873d71c042919c",
"date": "Wed Aug 24 21:10:14 2022 -0500",
"message": "Corrected-the-previous-changes-on-the-fie-being-held-back-from-the-public-repo",
"files": [
"PepBld-nightly.sh"
]
},
{
"commit": "01ff2d6b189b4916b4dca19a43f631027b9272cc",
"date": "Wed Aug 24 21:07:23 2022 -0500",
"message": "Corrected-privacy-concern-for-users-SSBs",
"files": [
"PepBld-nightly.sh"
]
},
{
"commit": "ae4bdf5fe44379440ba88851cebb6b52bb6e6c6e",
"date": "Wed Aug 24 03:00:30 2022 +0000",
"message": "Automated-Updates",
"files": [
"PepProTools/pepu.py"
]
},
{
"commit": "ea2bb4387d409fe978b1bfcf868e58277367c946",
"date": "Tue Aug 23 03:00:34 2022 +0000",
"message": "Automated-Updates",
"files": [
"pepcal/calamares/modules/netinstall-packages.yaml"
]
},
{
"commit": "944e86e4993585525f01b0206320e01ea5d5fa30",
"date": "Mon Aug 22 04:16:32 2022 +0000",
"message": "Automated-Updates",
"files": [
"pepcal/calamares/modules/netinstall-packages.yaml",
"pepcal/calamares/netinstall-packages"
]
},
{
"commit": "69f2f1988d5a81076c005dc48855e6d8ea9fed3f",
"date": "Sat Aug 20 23:17:07 2022 -0500",
"message": "Merge-branch-main-of-https-codeberg.org-Peppermint_OS-PepOSx86_64"
},
{
"commit": "b82669d7c31529e13efcc4c2ecc1ebb32613fd72",
"date": "Sun Aug 21 04:16:49 2022 +0000",
"message": "Automated-Updates",
"files": [
"pepcal/calamares/netinstall-packages"
]
},
{
"commit": "e257ddd3db02f3b6c2fa5cd39e5b87aad8435fc9",
"date": "Sat Aug 20 23:16:40 2022 -0500",
"message": "Updated-file-fixing-typo-of-i-for-j-when-trimming-old-.debs",
"files": [
"BldHelper-nightly.sh"
]
},
{
"commit": "20d025ea7e7831a2fa4440cd19e3429ca07c0aea",
"date": "Fri Aug 19 04:27:11 2022 -0500",
"message": "Merge-branch-main-of-https-codeberg.org-Peppermint_OS-PepOSx86_64"
},
{
"commit": "d9c510762509080511f359ad4c28b280433169e2",
"date": "Fri Aug 19 04:26:37 2022 -0500",
"message": "Updated-file-to-copy-new-netinstall-packages.yaml-back-to-the-build-and-to-remove-old-packages-from-the-local-cache-directory",
"files": [
"BldHelper-nightly.sh"
]
},
{
"commit": "affe7dc051d8253c87b26d90b7d86d954bc412aa",
"date": "Thu Aug 18 23:30:33 2022 +0000",
"message": "Updated-BldHelper-scripts-for-new-repo-name",
"files": [
"BldHelper-skinny.sh",
"BldHelper-testing.sh",
"BldHelper-unstable.sh"
]
},
{
"commit": "fb21f9273d1bbdd55f6066f80317de8e9d6a896e",
"date": "Thu Aug 18 17:52:20 2022 -0500",
"message": "Automated-Updates",
"files": [
"peppackages/calamares_3.2.57-0peppermint3_amd64.deb"
]
}]

View File

@ -0,0 +1,268 @@
[
{
"commit": "deb943ce990b901d022e7e7ccd787bdec39af56b",
"date": "Fri Sep 16 06:00:32 2022 +0000",
"message": "Automated-Updates",
"files": [
"PepProTools/git-pepd64.json",
"PepProTools/git-pepdv64.json",
"PepProTools/git-peptools.json",
"PepProTools/sysupdate.sh"
]
},
{
"commit": "ccc77fa6837d3852e667832b55fb856aa0ed74a2",
"date": "Thu Sep 15 06:32:04 2022 -0500",
"message": "Automated-Updates",
"files": [
"pephooks/normal/0540-webinst.hook.chroot"
]
},
{
"commit": "f858bbf9b12abd471da0d99c82dce5eac645adb6",
"date": "Thu Sep 15 06:00:39 2022 +0000",
"message": "Automated-Updates",
"files": [
"PepProTools/git-pepd64.json",
"PepProTools/git-pepdv64.json",
"PepProTools/git-peptools.json",
"PepProTools/hub.py",
"pephooks/normal/0540-webinst.hook.chroot"
]
},
{
"commit": "e83178c76922cd841e03380a9ea59f8d399d4669",
"date": "Wed Sep 14 04:48:24 2022 -0500",
"message": "Automated-Updates",
"files": [
"pephooks/normal/0540-webinst.hook.chroot"
]
},
{
"commit": "acc680f38955c22a19d63ece4f6d0dbe3cc1608d",
"date": "Wed Sep 14 06:00:32 2022 +0000",
"message": "Automated-Updates",
"files": [
"PepProTools/actions.py",
"PepProTools/git-pepd64.json",
"PepProTools/git-pepdv64.json",
"PepProTools/git-peptools.json",
"PepProTools/hub.py",
"PepProTools/hubconf.py",
"PepProTools/pddata.py",
"PepProTools/pdvdata.py",
"PepProTools/ptdata.py",
"PepProTools/rdata.py"
]
},
{
"commit": "5e2bab73729955c6099bd153b67c38fc3e696f97",
"date": "Tue Sep 13 06:00:33 2022 +0000",
"message": "Automated-Updates",
"files": [
"PepProTools/git-pepd64.json",
"PepProTools/git-pepdv64.json",
"PepProTools/git-peptools.json"
]
},
{
"commit": "42996f975d60b56047ed81ce0b2d35a60ba18ad7",
"date": "Mon Sep 12 06:00:32 2022 +0000",
"message": "Automated-Updates",
"files": [
"PepProTools/git-pepd64.json",
"PepProTools/git-pepdv64.json",
"PepProTools/git-peptools.json",
"PepProTools/hub.py",
"PepProTools/hubconf.py",
"PepProTools/xDaily"
]
},
{
"commit": "bc7c74417f6dd9db037b07b2b44168b93c72c381",
"date": "Sun Sep 11 06:00:42 2022 +0000",
"message": "Automated-Updates",
"files": [
"PepProTools/kumosm.png"
]
},
{
"commit": "4b958c2666dcc69f8c96d3b7dcd58624f24a32fd",
"date": "Fri Sep 9 06:00:35 2022 +0000",
"message": "Automated-Updates",
"files": [
"PepProTools/xDaily"
]
},
{
"commit": "12550a4799a658c8c50a36f0e5395175cc824f00",
"date": "Thu Sep 8 21:16:10 2022 -0500",
"message": "Automated-Updates",
"files": [
"PepProTools/xDaily"
]
},
{
"commit": "5a3a3ef7497e266fa4a2f8703d44645a3feb54f8",
"date": "Thu Sep 8 21:11:02 2022 -0500",
"message": "Updated-Devuan-specific-files",
"files": [
"PepBld-nightly.sh",
"pepbuildtools/devuan-keyring_2017.10.03_all.deb",
"pepbuildtools/devuan-keyring_2022.09.04_all.deb"
]
},
{
"commit": "e8671a9aadbc5489c39261fe08283f4394aca763",
"date": "Tue Sep 6 06:00:39 2022 +0000",
"message": "Automated-Updates",
"files": [
"PepProTools/bd.py",
"PepProTools/cb.png",
"PepProTools/codeb.py",
"PepProTools/mas.py",
"PepProTools/mat.py",
"PepProTools/mn.png",
"PepProTools/mt.png",
"PepProTools/pdocs.py",
"PepProTools/pep-logo-deb.png",
"PepProTools/pep-logo-dev.png",
"PepProTools/peppermint-word-white.png",
"PepProTools/pge.py",
"PepProTools/rd.png",
"PepProTools/reddit.py",
"PepProTools/sf.png",
"PepProTools/sf.py",
"PepProTools/welcome.py",
"PepProTools/welcome_man.py",
"PepProTools/welconf.py",
"PepProTools/welfunc.py"
]
},
{
"commit": "55ff2a9317c32ca7e9019783bcc6b1697872cb43",
"date": "Sun Sep 4 06:00:28 2022 +0000",
"message": "Automated-Updates",
"files": [
"PepProTools/hub.py"
]
},
{
"commit": "9b2a6eb67810c448b19adf575bfa3c736e271ced",
"date": "Sat Sep 3 06:00:32 2022 +0000",
"message": "Automated-Updates",
"files": [
"pepcal/install-peppermint"
]
},
{
"commit": "c4a456b2c318e88178430faeb0400cc5778d08f6",
"date": "Wed Aug 31 06:00:32 2022 +0000",
"message": "Automated-Updates",
"files": [
"PepProTools/bsconf.py",
"PepProTools/pepkumo.py",
"PepProTools/pepu.py",
"pepaliases/bash_aliases"
]
},
{
"commit": "a431733f662bbd717da5e73ea6c0773beaf94909",
"date": "Tue Aug 30 06:00:33 2022 +0000",
"message": "Automated-Updates",
"files": [
"peppackages/nala_0.10.0_all.deb",
"peppackages/python3-anyio_3.6.1-1_all.deb",
"peppackages/python3-click_8.0.3-1_all.deb",
"peppackages/python3-colorama_0.4.5-1_all.deb",
"peppackages/python3-commonmark_0.9.1-4_all.deb",
"peppackages/python3-h11_0.13.0-2_all.deb",
"peppackages/python3-httpcore_0.15.0-1_all.deb",
"peppackages/python3-httpx_0.23.0-1_all.deb",
"peppackages/python3-pexpect_4.8.0-3_all.deb",
"peppackages/python3-ptyprocess_0.7.0-3_all.deb",
"peppackages/python3-pygments_2.12.0+dfsg-2_all.deb",
"peppackages/python3-rfc3986_1.5.0-2_all.deb",
"peppackages/python3-rich_12.4.4-1_all.deb",
"peppackages/python3-sniffio_1.2.0-1_all.deb",
"peppackages/python3-socksio_1.0.0-2_all.deb",
"peppackages/python3-tomli_2.0.1-1_all.deb",
"peppackages/python3-typer_0.4.1-1_all.deb",
"peppackages/python3-typing-extensions_3.10.0.2-1_all.deb"
]
},
{
"commit": "413bf46a86d5897c7533a36a14f2b7e8d0d8bb15",
"date": "Mon Aug 29 06:00:31 2022 +0000",
"message": "Automated-Updates",
"files": [
"PepProTools/actions.py",
"PepProTools/hub.py",
"PepProTools/peppermint-rimbw-48.png"
]
},
{
"commit": "ca320cd86d8e9cd9c2e0388129bb743ed97067d6",
"date": "Sat Aug 27 06:00:38 2022 +0000",
"message": "Automated-Updates",
"files": [
"PepProTools/pepkumo.py",
"PepProTools/xDaily"
]
},
{
"commit": "2af99060d5182fdd842124b8f366fa4c807c53e3",
"date": "Fri Aug 26 06:00:32 2022 +0000",
"message": "Automated-Updates",
"files": [
"pepcal/calamares/modules/netinstall-packages.yaml"
]
},
{
"commit": "bd11a0f088d02d0276dbbd2b474a357b4aa358d7",
"date": "Thu Aug 25 06:00:31 2022 +0000",
"message": "Automated-Updates",
"files": [
"pephooks/normal/0600-OS-symlinks.hook.chroot"
]
},
{
"commit": "4fc50feaade7811fbae29fb97976ab127b8cf55b",
"date": "Thu Aug 25 01:08:19 2022 +0000",
"message": "Updated-server-HouseKepping-in-the-nightly-builds",
"files": [
"BldHelper-nightly.sh"
]
},
{
"commit": "608572ade734f485cbe66667f18c488166d14fc7",
"date": "Tue Aug 23 06:00:37 2022 +0000",
"message": "Automated-Updates",
"files": [
"PepProTools/pepu.py"
]
},
{
"commit": "8a01299c47c276d4aafb15546fbc647ed6d6471c",
"date": "Mon Aug 22 07:15:34 2022 +0000",
"message": "Automated-Updates",
"files": [
"pepcal/calamares/netinstall-packages"
]
},
{
"commit": "197f9d42559e71c371038a609572ffb6a9019ec2",
"date": "Sun Aug 21 07:15:56 2022 +0000",
"message": "Automated-Updates",
"files": [
"pepcal/calamares/netinstall-packages"
]
},
{
"commit": "ebb6bf4a4ec18f8050f693df3673fa4a4cb1f36a",
"date": "Fri Aug 19 09:00:45 2022 +0000",
"message": "Automated-Updates",
"files": [
"peppackages/calamares_3.2.57-0peppermint3_amd64.deb"
]
}]

View File

@ -0,0 +1,365 @@
[
{
"commit": "0ff775ee55f0d21b7c9efa75c0154998ce13991d",
"date": "Fri Sep 16 15:00:04 2022 +0000",
"message": "Automated-JSON-Update",
"files": [
"git-pepd64.json",
"git-pepdv64.json",
"git-peptools.json"
]
},
{
"commit": "2e685c38fad8a24e51336d29ca15b053ebb02a1e",
"date": "Fri Sep 16 13:22:47 2022 +0900",
"message": "Updated-spelling-line-149",
"files": [
"sysupdate.sh"
]
},
{
"commit": "88e47c073b08f34eb8ef3f22d88f72eb5e382d08",
"date": "Fri Sep 16 13:20:14 2022 +0900",
"message": "Merge-branch-main-of-https-codeberg.org-Peppermint_OS-PepProTools"
},
{
"commit": "ffd169b8bd5cc6e0b81516261957734a20a98fdb",
"date": "Fri Sep 16 13:19:54 2022 +0900",
"message": "Updated-spelling-line-149",
"files": [
"sysupdate.sh"
]
},
{
"commit": "73447789bada509734fc5cca9a94b5a00e806a53",
"date": "Thu Sep 15 15:00:04 2022 +0000",
"message": "Automated-JSON-Update",
"files": [
"git-pepd64.json",
"git-pepdv64.json",
"git-peptools.json"
]
},
{
"commit": "ae8fdc154d914b0563961bfcf689b32f6088ef07",
"date": "Wed Sep 14 15:00:04 2022 +0000",
"message": "Automated-JSON-Update",
"files": [
"git-pepd64.json",
"git-pepdv64.json",
"git-peptools.json"
]
},
{
"commit": "59cdd9d19e031f05c84bd2baa2803fcbc758bbb8",
"date": "Wed Sep 14 23:03:44 2022 +0900",
"message": "Auto-Updates",
"files": [
"hub.py"
]
},
{
"commit": "fc02b7e89db44a2b8ad10bd28d25a42fcac702ea",
"date": "Wed Sep 14 14:49:06 2022 +0900",
"message": "Auto-updates",
"files": [
"hub.py"
]
},
{
"commit": "810c58d2c6fc2524cb7ad1278da3b917561a938b",
"date": "Wed Sep 14 14:40:38 2022 +0900",
"message": "Auto-Update",
"files": [
"rdata.py"
]
},
{
"commit": "825c23a341e5a1447e6e791c0e5dc0e64e88951e",
"date": "Wed Sep 14 14:30:40 2022 +0900",
"message": "Auto-Updated",
"files": [
"rdata.py"
]
},
{
"commit": "463dc021b93b2c720afd644bc882c9730e817296",
"date": "Wed Sep 14 14:21:27 2022 +0900",
"message": "Corrected-Database-connection-status",
"files": [
"rdata.py"
]
},
{
"commit": "3ef60dda2a7a388f7af5998842d48b5e941dd00e",
"date": "Wed Sep 14 14:13:06 2022 +0900",
"message": "Deployed-the-PepScope-tool-into-the-Pephub-for-loge-viewing",
"files": [
"actions.py",
"hub.py",
"hubconf.py",
"pddata.py",
"pdvdata.py",
"ptdata.py",
"rdata.py"
]
},
{
"commit": "51c463cbb39ecdeafaecb012e8696880e8f092d4",
"date": "Wed Sep 14 12:36:42 2022 +0900",
"message": "Merge-branch-main-of-https-codeberg.org-Peppermint_OS-PepProTools"
},
{
"commit": "14a9708dd1ce86418f111bd2f349dc64c5a2d0b7",
"date": "Wed Sep 14 12:36:29 2022 +0900",
"message": "Correcteed-Flatpack-Placement",
"files": [
"hub.py"
]
},
{
"commit": "56c7a7af5437a0ff525193d8d2e327b36a0e69a3",
"date": "Tue Sep 13 15:00:08 2022 +0000",
"message": "Automated-JSON-Update",
"files": [
"git-pepd64.json",
"git-pepdv64.json",
"git-peptools.json"
]
},
{
"commit": "f5b11aacdceb3c59edc734f7276d97f0cd696f10",
"date": "Mon Sep 12 15:00:05 2022 +0000",
"message": "Automated-JSON-Update",
"files": [
"git-pepd64.json",
"git-pepdv64.json",
"git-peptools.json"
]
},
{
"commit": "13fc6d3d7a7df919da866db06a1308e05df37eef",
"date": "Mon Sep 12 04:05:24 2022 +0000",
"message": "test-push3",
"files": [
"git-pepdv64.json"
]
},
{
"commit": "46bb094abbd25b987aed80b077729987839e330a",
"date": "Mon Sep 12 04:00:52 2022 +0000",
"message": "test-push2",
"files": [
"git-pepd64.json"
]
},
{
"commit": "d0c025e153cb3cdbbd3fb422a7173a3f6fad68a3",
"date": "Mon Sep 12 04:00:04 2022 +0000",
"message": "test-push",
"files": [
"git-peptools.json"
]
},
{
"commit": "7d4766edab0b444ef19b4f0d2d605bcf69f53704",
"date": "Sun Sep 11 22:57:14 2022 -0500",
"message": "Fixed-something-wacky-and-strange-that-caused-the-file-to-half-revert-to-an-early-version-pre-Sep-03",
"files": [
"xDaily"
]
},
{
"commit": "5d92436b30b32e35eee929ee0f3ad18d569e6338",
"date": "Mon Sep 12 12:05:55 2022 +0900",
"message": "Updated-Layout-to-better-fit-most-resolutions",
"files": [
"hub.py",
"hubconf.py"
]
},
{
"commit": "cef9045717b9b344a08dea77798ebae1a189ad17",
"date": "Sun Sep 11 20:36:03 2022 +0900",
"message": "Updated-The-Peppermint-Hub",
"files": [
"hub.py",
"hubconf.py"
]
},
{
"commit": "969252d145706f967b9cfc17cefaff0bcf8bafab",
"date": "Sat Sep 10 20:26:20 2022 +0900",
"message": "ray-created-a-new-Kumo-icon-added-it",
"files": [
"kumosm.png"
]
},
{
"commit": "3d7cda5f879ee072368075f98f78d43ea40fa241",
"date": "Tue Sep 6 13:15:40 2022 +0900",
"message": "Stopped-the-repopening-of-Welcome",
"files": [
"pge.py"
]
},
{
"commit": "d707b352ee93fa9c461457792f828291d1491f51",
"date": "Tue Sep 6 12:40:24 2022 +0900",
"message": "Stopped-close-after-toggle-set",
"files": [
"welcome.py",
"welcome_man.py"
]
},
{
"commit": "11f6ddf8a951d27ac8ee716b99deb4fed91dd423",
"date": "Tue Sep 6 12:35:21 2022 +0900",
"message": "Corrected-the-conf-window",
"files": [
"codeb.py",
"mas.py",
"mat.py",
"reddit.py",
"sf.py"
]
},
{
"commit": "d4e64ff2ee741d8c973515ac86efd5480154f478",
"date": "Tue Sep 6 11:23:58 2022 +0900",
"message": "updated-title",
"files": [
"codeb.py"
]
},
{
"commit": "4645e0812f727f80c67cacfe178008a8d146318e",
"date": "Tue Sep 6 11:20:04 2022 +0900",
"message": "Updated-Welcome-Screen-logo-transparent",
"files": [
"peppermint-word-white.png"
]
},
{
"commit": "2196e9b78f7c3d663989bf2d689b3786e766eb61",
"date": "Tue Sep 6 11:15:17 2022 +0900",
"message": "Updated-Welcome-Screen",
"files": [
"welcome_man.py"
]
},
{
"commit": "41450cf1a20c0637215ac7a89c6afc25d7b5ffc3",
"date": "Tue Sep 6 11:11:29 2022 +0900",
"message": "Updated-Welcome-Screen-logos",
"files": [
"pep-logo-deb.png",
"pep-logo-dev.png"
]
},
{
"commit": "451d5cf5931eb9b9980598f35ab4149d2c3ff336",
"date": "Tue Sep 6 11:09:32 2022 +0900",
"message": "Updated-Welcome-Screen",
"files": [
"bd.py",
"cb.png",
"codeb.py",
"mas.py",
"mat.py",
"mn.png",
"mt.png",
"pdocs.py",
"rd.png",
"reddit.py",
"sf.png",
"sf.py",
"welcome.py",
"welconf.py",
"welfunc.py"
]
},
{
"commit": "20911de085beb7594c7168e67a20c085f3ff2ec8",
"date": "Sat Sep 3 17:58:58 2022 -0500",
"message": "Corrected-xDaily-portion-keeping-the-title-and-icon-from-showing-properly",
"files": [
"hub.py"
]
},
{
"commit": "752beadd2b4ca19823c858fa9dfd248168fe4916",
"date": "Sat Sep 3 01:21:35 2022 -0500",
"message": "Small-changes-a-name-in-the-header-an-icon-matching-xDaily-enabled-interactive-mode-and-window-close-when-done",
"files": [
"hub.py"
]
},
{
"commit": "b3ea1ecdca46992df33da5cd57c2f090fe5c7b93",
"date": "Wed Aug 31 12:27:54 2022 +0900",
"message": "Added-a-conf-structure-to-centralize-the-style-settings-for-tkinter",
"files": [
"bsconf.py",
"pepkumo.py",
"pepu.py"
]
},
{
"commit": "2949be454f8e1a0dd181778e54ee49b770b87e95",
"date": "Mon Aug 29 13:56:31 2022 +0900",
"message": "Added-style-editor-for-tkinter",
"files": [
"actions.py",
"hub.py",
"peppermint-rimbw-48.png"
]
},
{
"commit": "af2090d4bb39d91e9c45ef02a3e44020bc8a6934",
"date": "Fri Aug 26 20:49:04 2022 +0900",
"message": "Added-tabbing-as-requested-by-community-members",
"files": [
"pepkumo.py"
]
},
{
"commit": "9e0ce83985afaa0c5ad79e6f90b8a1bcbf9a448c",
"date": "Fri Aug 26 04:26:28 2022 -0500",
"message": "Updated-file-to-drop-one-line-after-pausing-when-run-from-in-a-terminal",
"files": [
"xDaily"
]
},
{
"commit": "683847bf757a13c3569fafe1c6b79e24aef36bc6",
"date": "Fri Aug 26 03:36:31 2022 -0500",
"message": "Updated-xDaily-to-use-nala-as-the-default-falling-back-to-apt-pausing-when-done",
"files": [
"xDaily"
]
},
{
"commit": "f6f37fd70767ba375b269f3d048cd4ebdcc7dbec",
"date": "Tue Aug 23 13:44:27 2022 +0900",
"message": "updated-completion-message-to-include-the-repo",
"files": [
"pepu.py"
]
},
{
"commit": "6d9762397eafc021cab6c2fc1ed865a597c79e6f",
"date": "Tue Aug 23 13:40:20 2022 +0900",
"message": "updated-completion-message-to-include-the-repo",
"files": [
"pepu.py"
]
},
{
"commit": "32f86989037041c59d0c61387929c617c893ddfa",
"date": "Tue Aug 23 13:37:11 2022 +0900",
"message": "updated-completion-message-to-include-the-repo",
"files": [
"pepu.py"
]
}]

File diff suppressed because it is too large Load Diff

68
PepProTools/hubconf.py Normal file
View File

@ -0,0 +1,68 @@
"""
* Author: "PepDebian(peppermintosteam@proton.me)
*
* License: SPDX-License-Identifier: GPL-3.0-or-later
*
* The hub config file
"""
from tkinter import PhotoImage
### this files should be used for the over all button style and design of the
### hub
#button icons.
###General System icons###
nc = PhotoImage(file="/usr/share/pixmaps/network-wired.png")
pr = PhotoImage(file="/usr/share/pixmaps/gnome-dev-printer.png")
du = PhotoImage(file="/usr/share/pixmaps/drive-harddisk-system.png")
ug = PhotoImage(file="/usr/share/pixmaps/stock_people.png")
de = PhotoImage(file="/usr/share/pixmaps/dconf-editor.png")
pa = PhotoImage(file="/usr/share/pixmaps/stock_music-library.png")
xd = PhotoImage(file="/opt/pypep/xd.png")
hbon = PhotoImage(file="/usr/share/pixmaps/hblockon.png")
hboff = PhotoImage(file="/usr/share/pixmaps/hblock.png")
si = PhotoImage(file="/usr/share/pixmaps/gnome-session.png")
um = PhotoImage(file="/usr/share/pixmaps/update-manager.png")
xf = PhotoImage(file="/usr/share/pixmaps/applications-system.png")
tc = PhotoImage(file="/opt/pypep/peppermint-rimbw-48.png")
##label text
lnc = "Network"
lpr = "Printers"
ldu = "Disk Utilities"
lug = "User & Groups"
lde = "dconf Editor"
lpa = "Pulse Audio"
lxd = "xDaily"
lhb = "hBlock"
lsi = "Update Mgr"
lum = "System Info"
lxf = "xfce Settings"
ltc = "TTK Creator"
sp = PhotoImage(file="/usr/share/pixmaps/peppermint-inst-48.png")
km = PhotoImage(file="/opt/pypep/kumosm.png")
ah = PhotoImage(file="/usr/share/pixmaps/ai.png")
sc = PhotoImage(file="/usr/share/pixmaps/synaptic.png")
ss = PhotoImage(file="/usr/share/pixmaps/snap.png")
gs = PhotoImage(file="/usr/share/pixmaps/gnome-software.png")
fp = PhotoImage(file="/usr/share/pixmaps/flat.png")
ps = PhotoImage(file="/usr/share/pixmaps/peppermint-rim-48.png")
lsp = "Suggested"
lkm = "Kumo"
lah = "App Image Hub"
lsc = "Synaptic"
lss = "Snap Store"
lssw = "Snap Web Store"
lgs = "Gnome Store"
lgsw = "Gnome Web Store"
lfp = "Flat hub"
lps = "PepScope"
lmf = "--The PepHub is a central place that is used to manage the build."
" It includes tools that are not readily available in the XFCE settings"
" manager, Some of these tools are built and maintained by the Peppermint"
" team, others are system utilities."

View File

@ -1,7 +1,7 @@
#!/bin/bash
_extras=pepicons
_repo="PepIcons"
_repo="Peppermint_OS/PepIcons"
###########################################
# Quietly have wget -q0- "pipe" its output directly to tar.
@ -10,13 +10,16 @@ _repo="PepIcons"
# Leaving no files to remove and no permission changes required.
###########################################
echo -en "\n\t Password required to update icon cache\n\t"
sudo clear || exit
echo -e "\n Downloadng Extended Icon set to /usr/share/"
wget https://codeberg.org/${_repo}/archive/main.tar.gz --show-progress -qO -|
tar -xz -C /usr/share 2>/dev/null
echo -e "\n Extended Icon set downloded and installed\n\n Updating system icon caches."
echo -en "\n\t Password required to update icon cache\n\t "
echo -en "\n Downloadng new ${_extras} to /usr/share/"
wget -qO- https://codeberg.org/Peppermint_OS/${_repo}/archive/main.tar.gz |
tar -vxz -C /usr/share 2>/dev/null
sudo /usr/sbin/update-icon-caches /usr/share/icons/*
echo
read -n1 -p " Process Completed. Press any key to close this dialog." answ
# Go back to the Extras
python3 /opt/pypep/pge.py &

View File

@ -1,56 +0,0 @@
#!/usr/bin/env python3
import os
import tkinter as tk
from tendo import singleton
import ttkbootstrap as ttk
#setting up window
pexs = ttk.Window(themename="darkly")
window_height = 120
window_width = 420
pexs.title('Additional Icons')
pexs.tk.call('wm', 'iconphoto', pexs._w, tk.PhotoImage(file='/usr/share/pixmaps/peppermint-old.png'))
#keep only instance at a time
me = singleton.SingleInstance()
def center_screen():
""" gets the coordinates of the center of the screen """
global screen_height, screen_width, x_cordinate, y_cordinate
screen_width = pexs.winfo_screenwidth()
screen_height = pexs.winfo_screenheight()
# Coordinates of the upper left corner of the window to make the window appear in the center
x_cordinate = int((screen_width/2) - (window_width/2))
y_cordinate = int((screen_height/2) - (window_height/2))
pexs.geometry("{}x{}+{}+{}".format(window_width, window_height, x_cordinate, y_cordinate))
def ico ():
"""Check if user can connect to codeberg"""
pexs.destroy()
os.system('python3 /opt/pypep/diagicochk.py')
def xc ():
"""close the form start back at pge"""
pexs.destroy()
os.popen ('python3 /opt/pypep/pge.py')
#title message
lblexp = ttk.Label(pexs, bootstyle="light", text="Would you like to install addtional icons created by the Peppermint Team and Community?.", wraplength=400)
lblexp.pack(side ="top")
###All the buttons and placements##
btncore = ttk.Button(text="Install", bootstyle="danger-outline", command=ico, width=8)
btncore.pack(side="left", padx=5, pady=5)
bttut = ttk.Button(text='Cancel', bootstyle="danger-outline", width=8, command=xc)
bttut.pack(side="left", padx=5, pady=5)
#call Center screen
center_screen()
pexs.mainloop()

BIN
PepProTools/kumosm.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
PepProTools/mn.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

BIN
PepProTools/mt.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 744 B

View File

@ -1,70 +0,0 @@
#!/usr/bin/env python3
import os
import subprocess as sp
import tkinter as tk
import sqlite3
from tkinter import *
from tkinter import ttk
from tkinter import font
from ttkthemes import ThemedTk
from tkinter import PhotoImage
from tendo import singleton
import subprocess
#setting up window
pexs = ThemedTk(theme='clam')
window_height = 130
window_width = 350
pexs.title('General Dialog')
pexs.tk.call('wm', 'iconphoto', pexs._w, tk.PhotoImage(file='/usr/share/pixmaps/peppermint-old.png'))
pexs['bg']='#2f2f2f'
#keep only instance at a time
me = singleton.SingleInstance()
#main information syles
subpmt = ttk.Style()
subpmt.configure("Whiteb.TLabel", foreground ="#ffffff", background ="#2f2f2f", font = ('Helvetica', '14', 'bold') )
#style the buttons
stbnt = ttk.Style()
stbnt.configure('pep.TButton', font = ('Helvetica', '14', 'bold'))
stbnt.map("pep.TButton",
foreground=[('!active', '#F62817'),('pressed', '#2f2f2f'), ('active', 'white')],
background=[ ('!active','#2f2f2f'),('pressed', '#2f2f2f'), ('active', '#2f2f2f')],
)
cbtn = ttk.Style()
cbtn.map("hpep.TButton",
foreground=[('!active', '#F62817'),('pressed', 'white'), ('active', '#F62817')],
background=[ ('!active','#2f2f2f'),('pressed', '#2f2f2f'), ('active', '#2f2f2f')]
)
def center_screen():
""" gets the coordinates of the center of the screen """
global screen_height, screen_width, x_cordinate, y_cordinate
screen_width = pexs.winfo_screenwidth()
screen_height = pexs.winfo_screenheight()
# Coordinates of the upper left corner of the window to make the window appear in the center
x_cordinate = int((screen_width/2) - (window_width/2))
y_cordinate = int((screen_height/2) - (window_height/2))
pexs.geometry("{}x{}+{}+{}".format(window_width, window_height, x_cordinate, y_cordinate))
def killme():
pexs.destroy()
#Message information
lblexp = ttk.Label(pexs, style="Whiteb.TLabel", text="Done!", wraplength=500)
lblexp.place(x=140, y=30)
###All the buttons and placements##
bttut = ttk.Button(text='Close', style="pep.TButton", width=8, command=killme )
bttut.place(x=120, y=70)
#call Center screen
center_screen()
pexs.mainloop()

View File

@ -1,70 +0,0 @@
#!/usr/bin/env python3
import os
import subprocess as sp
import tkinter as tk
import sqlite3
from tkinter import *
from tkinter import ttk
from tkinter import font
from ttkthemes import ThemedTk
from tkinter import PhotoImage
from tendo import singleton
import subprocess
#setting up window
pexs = ThemedTk(theme='clam')
window_height = 130
window_width = 350
pexs.title('No Connection!')
pexs.tk.call('wm', 'iconphoto', pexs._w, tk.PhotoImage(file='/usr/share/pixmaps/peppermint-old.png'))
pexs['bg']='#2f2f2f'
#keep only instance at a time
me = singleton.SingleInstance()
#main information syles
subpmt = ttk.Style()
subpmt.configure("Whiteb.TLabel", foreground ="#ffffff", background ="#2f2f2f", font = ('Helvetica', '14', 'bold') )
#style the buttons
stbnt = ttk.Style()
stbnt.configure('pep.TButton', font = ('Helvetica', '14', 'bold'))
stbnt.map("pep.TButton",
foreground=[('!active', '#F62817'),('pressed', '#2f2f2f'), ('active', 'white')],
background=[ ('!active','#2f2f2f'),('pressed', '#2f2f2f'), ('active', '#2f2f2f')],
)
cbtn = ttk.Style()
cbtn.map("hpep.TButton",
foreground=[('!active', '#F62817'),('pressed', 'white'), ('active', '#F62817')],
background=[ ('!active','#2f2f2f'),('pressed', '#2f2f2f'), ('active', '#2f2f2f')]
)
def center_screen():
""" gets the coordinates of the center of the screen """
global screen_height, screen_width, x_cordinate, y_cordinate
screen_width = pexs.winfo_screenwidth()
screen_height = pexs.winfo_screenheight()
# Coordinates of the upper left corner of the window to make the window appear in the center
x_cordinate = int((screen_width/2) - (window_width/2))
y_cordinate = int((screen_height/2) - (window_height/2))
pexs.geometry("{}x{}+{}+{}".format(window_width, window_height, x_cordinate, y_cordinate))
def killme():
pexs.destroy()
#Message information
lblexp = ttk.Label(pexs, style="Whiteb.TLabel", text="Cannot connect to CodeBerg!", wraplength=500)
lblexp.place(x=30, y=30)
###All the buttons and placements##
bttut = ttk.Button(text='Close', style="pep.TButton", width=8, command=killme )
bttut.place(x=120, y=70)
#call Center screen
center_screen()
pexs.mainloop()

70
PepProTools/pddata.py Executable file
View File

@ -0,0 +1,70 @@
"""
* Author: "PepDebian(peppermintosteam@proton.me)
*
* License: SPDX-License-Identifier: GPL-3.0-or-later
*
* This script is used is used to show debian updates
"""
import sys
from PyQt5.QtSql import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
def initializeModel(model):
"""get thedisplay ready"""
model.setTable('gitdata')
model.setEditStrategy(QSqlTableModel.OnFieldChange)
model.select()
model.setHeaderData(0, Qt.Horizontal, "Date Updated")
model.setHeaderData(1, Qt.Horizontal, "Comment")
model.setHeaderData(2, Qt.Horizontal, "Change ID")
def createView(title, model):
"""Create the view"""
view = QTableView()
view.setModel(model)
view.setWindowTitle(title)
return view
def addrow():
"""Add the data"""
print(model.rowCount())
ret = model.insertRows(model.rowCount(), 1)
print(ret)
def findrow(i):
""" Find the data needed"""
delrow = i.row()
if __name__ == '__main__':
""" The main class to present everything"""
app = QApplication(sys.argv)
db = QSqlDatabase.addDatabase('QSQLITE')
db.setDatabaseName('/opt/pypep/dbpep/welval.db')
model = QSqlTableModel()
delrow = -1
initializeModel(model)
view1 = createView("Table Model (View 1)", model)
view1.clicked.connect(findrow)
dlg = QDialog()
layout = QVBoxLayout()
layout.addWidget(view1)
dlg.setLayout(layout)
dlg.setGeometry(QRect(0, 0, 500, 700))
dlg.setWindowTitle("Update History - Peppermint Debian")
dlg.setWindowIcon(QIcon('/usr/share/pixmaps/peppermint-old.png'))
dlg.setWindowFlag(Qt.WindowMinimizeButtonHint, True)
dlg.setWindowFlag(Qt.WindowMaximizeButtonHint, True)
dlg.show()
sys.exit(app.exec_())

70
PepProTools/pdvdata.py Executable file
View File

@ -0,0 +1,70 @@
"""
* Author: "PepDebian(peppermintosteam@proton.me)
*
* License: SPDX-License-Identifier: GPL-3.0-or-later
*
* This script is used is used to show devuan updates
"""
import sys
from PyQt5.QtSql import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
def initializeModel(model):
"""get thedisplay ready"""
model.setTable('gitdata')
model.setEditStrategy(QSqlTableModel.OnFieldChange)
model.select()
model.setHeaderData(0, Qt.Horizontal, "Date Updated")
model.setHeaderData(1, Qt.Horizontal, "Comment")
model.setHeaderData(2, Qt.Horizontal, "Change ID")
def createView(title, model):
"""Create the view"""
view = QTableView()
view.setModel(model)
view.setWindowTitle(title)
return view
def addrow():
"""Add the data"""
print(model.rowCount())
ret = model.insertRows(model.rowCount(), 1)
print(ret)
def findrow(i):
""" Find the data needed"""
delrow = i.row()
if __name__ == '__main__':
""" The main class to present everything"""
app = QApplication(sys.argv)
db = QSqlDatabase.addDatabase('QSQLITE')
db.setDatabaseName('/opt/pypep/dbpep/welval.db')
model = QSqlTableModel()
delrow = -1
initializeModel(model)
view1 = createView("Table Model (View 1)", model)
view1.clicked.connect(findrow)
dlg = QDialog()
layout = QVBoxLayout()
layout.addWidget(view1)
dlg.setLayout(layout)
dlg.setGeometry(QRect(0, 0, 500, 700))
dlg.setWindowTitle("Update History - Peppermint Devuan")
dlg.setWindowIcon(QIcon('/usr/share/pixmaps/peppermint-old.png'))
dlg.setWindowFlag(Qt.WindowMinimizeButtonHint, True)
dlg.setWindowFlag(Qt.WindowMaximizeButtonHint, True)
dlg.show()
sys.exit(app.exec_())

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

1114
PepProTools/pepkumo.py Executable file

File diff suppressed because it is too large Load Diff

576
PepProTools/peppackages.py Normal file → Executable file
View File

@ -1,282 +1,462 @@
#!/usr/bin/env python3
import os
"""
* Author: "PepDebian(peppermintosteam@proton.me)
*
* License: SPDX-License-Identifier: GPL-3.0-or-later
*
* this script is for the selected packages screen
*
"""
import subprocess
import tkinter as tk
import time
from tkinter import *
import ttkbootstrap as ttk
from tkinter import font
#from ttkthemes import ThemedTk
from tkinter import PhotoImage
import apt
import putilities
from tendo import singleton
import ttkbootstrap as ttk
import putilities
#makes sure only a single instance is running
# makes sure only a single instance is running
me = singleton.SingleInstance()
#list of all checkboxes and their current value
# list of all checkboxes and their current value
checkboxstates = []
#this will set the window name and style.
# this will set the window name and style.
instw = ttk.Window(themename="darkly")
#the window size
# the window size
instw.geometry('680x520')
#the title of the window
# the title of the window
instw.title("Suggested Packages")
#set the icon for the window
instw.tk.call('wm', 'iconphoto', instw._w, tk.PhotoImage(file='/usr/share/pixmaps/peppermint-old.png'))
# set the icon for the window
instw.tk.call('wm', 'iconphoto', instw._w, tk.PhotoImage(
file='/usr/share/pixmaps/peppermint-old.png'))
# ROW for all the items but the logo and the title
ROW = 20
ROW2 = 360
#logo for the main window
#peplogo = PhotoImage(file = "/usr/share/pixmaps/peppermint-48.png")
#logo = tk.Label(instw, image=peplogo, borderwidth=0,bg='#2f2f2f').place(x=85, y=5)
#row for all the items but the logo and the title
row = 20
row2 = 360
#main title style
# main title style
spmt = ttk.Style()
spmt.configure("F62817.TLabel", foreground ="#ffffff", background ="#222222", font = ("Helvetica", '22', 'bold') )
spmt.configure(
"F62817.TLabel",
foreground="#ffffff",
background="#222222",
font=(
"Helvetica",
'22',
'bold'))
###This is all the lables and verbiage used and thier placements
lblpmtitle = ttk.Label(instw, style="F62817.TLabel", text="Select Your Software Packages").place(x=140, y=10)
lblpmsubtitle = ttk.Label(instw, bootstyle="light", text="Darkened items are already installed. \nPackages are from Debian Repositories.").place(x=row2, y=310)
lblpmsubtitle = ttk.Label(instw, bootstyle="light", text="At PeppermintOS, we let our users decide what software is on their system.").place(x=140, y=40)
# This is all the lables and verbiage used and thier placements
lblpmtitle = ttk.Label(
instw,
style="F62817.TLabel",
text="Select Your Software Packages").place(
x=140,
y=10)
lblpmsubtitle = ttk.Label(
instw,
bootstyle="light",
text="Darkened items are already installed. \nPackages are from Stable Repositories.").place(
x=ROW2,
y=310)
lblpmsubtitle = ttk.Label(
instw,
bootstyle="light",
text="At PeppermintOS, we let our users decide what software is on their system.").place(
x=140,
y=40)
lblsoftware = ttk.Label(instw, bootstyle="light", text="Software").place(x=100, y=80)
lblbrowsers = ttk.Label(instw, bootstyle="light", text="Browsers").place(x=440, y=80)
lblsoftware = ttk.Label(
instw,
bootstyle="light",
text="Software").place(
x=100,
y=80)
lblbROWsers = ttk.Label(
instw,
bootstyle="light",
text="Web Browsers").place(
x=440,
y=80)
#installed message
#instaledtitle = ttk.Label(instw, style="Dark.TLabel", text="ColoF62817 Packages are installed.").place(x=row2, y=300)
#output textbox
textbox = Text(instw, background="#2f2f2f",foreground="white", height="50",state='disabled')
# output textbox
textbox = ttk.Text(
instw,
background="#2f2f2f",
foreground="white",
state='disabled')
textbox.place(x=0, y=420, height=100, width=680)
textbox.configure(font = ("GNU Unifont", '8') )
textbox.configure(font=("GNU Unifont", '8'))
#if this package is already installed, grey out the item
def InstallCheck(appname, checkbox):
if putilities.installcheck(appname):
checkbox.configure(state=["disabled"])
#firefox
firefox = StringVar()
def install_check(appname, checkbox):
"""if this package is already installed, grey out the item"""
if putilities.install_check(appname):
checkbox.configure(state=["disabled"])
# firefox
firefox = tk.StringVar()
firefox.set("off")
cbfirefox = ttk.Checkbutton(instw, bootstyle="danger", variable=firefox, onvalue='firefox-esr', offvalue="off", text="Firefox: Mozilla's Open-source browser")
cbfirefox.place(x=row2,y=100)
cbfirefox = ttk.Checkbutton(
instw,
bootstyle="danger",
variable=firefox,
onvalue='firefox-esr',
offvalue="off",
text="Firefox: Mozilla's Open-source Browser")
cbfirefox.place(x=ROW2, y=100)
checkboxstates.append(firefox)
InstallCheck("firefox-esr", cbfirefox)
install_check("firefox-esr", cbfirefox)
#konqueror
konqueror = StringVar()
# konqueror
konqueror = tk.StringVar()
konqueror.set("off")
cbkonqueror = ttk.Checkbutton(instw, bootstyle="danger", variable=konqueror, onvalue="konqueror", offvalue="off", text="Konqueror: KDE browser and file manager")
cbkonqueror.place(x=row2,y=120)
cbkonqueror = ttk.Checkbutton(
instw,
bootstyle="danger",
variable=konqueror,
onvalue="konqueror",
offvalue="off",
text="Konqueror: KDE Browser and file manager")
cbkonqueror.place(x=ROW2, y=120)
checkboxstates.append(konqueror)
InstallCheck("konqueror", cbkonqueror)
install_check("konqueror", cbkonqueror)
#epiphany-browser
epiphany = StringVar()
# epiphany-bROWser
epiphany = tk.StringVar()
epiphany.set("off")
cbepiphany = ttk.Checkbutton(instw, bootstyle="danger", variable=epiphany, onvalue="epiphany-browser", offvalue="off", text="Gnome Web (Epiphany): Intuitive browser")
cbepiphany.place(x=row2,y=140)
cbepiphany = ttk.Checkbutton(
instw,
bootstyle="danger",
variable=epiphany,
onvalue="epiphany-browser",
offvalue="off",
text="Gnome Web (Epiphany): Intuitive Browser")
cbepiphany.place(x=ROW2, y=140)
checkboxstates.append(epiphany)
InstallCheck("epiphany-browser", cbepiphany)
install_check("epiphany-bROWser", cbepiphany)
#falkon
falkon = StringVar()
# falkon
falkon = tk.StringVar()
falkon.set("off")
cbfalkon = ttk.Checkbutton(instw, bootstyle="danger", variable=falkon, onvalue="falkon", offvalue="off", text="Falkon: Qt5 browser by KDE")
cbfalkon.place(x=row2,y=160)
cbfalkon = ttk.Checkbutton(
instw,
bootstyle="danger",
variable=falkon,
onvalue="falkon",
offvalue="off",
text="Falkon: Qt5 Browser by KDE")
cbfalkon.place(x=ROW2, y=160)
checkboxstates.append(falkon)
InstallCheck("falkon", cbfalkon)
install_check("falkon", cbfalkon)
#torbrowser-launcher
torbrowser = StringVar()
torbrowser.set("off")
cbtorbrowser = ttk.Checkbutton(instw, bootstyle="danger", variable=torbrowser, onvalue="torbrowser-launcher", offvalue="off", text="Tor Browser: Privacy browser")
cbtorbrowser.place(x=row2,y=180)
checkboxstates.append(torbrowser)
InstallCheck("torbrowser-launcher", cbtorbrowser)
# torbROWser-launcher
torbROWser = tk.StringVar()
torbROWser.set("off")
cbtorbrowser = ttk.Checkbutton(
instw,
bootstyle="danger",
variable=torbROWser,
onvalue="torbrowser-launcher",
offvalue="off",
text="Tor Browser: Privacy Browser")
cbtorbrowser.place(x=ROW2, y=180)
checkboxstates.append(torbROWser)
install_check("torbrowser-launcher", cbtorbrowser)
#midori
midori = StringVar()
# midori
midori = tk.StringVar()
midori.set("off")
cbmidori = ttk.Checkbutton(instw, bootstyle="danger", variable=midori, onvalue="midori", offvalue="off", text="Midori: Fast, lightweight browser")
cbmidori.place(x=row2,y=200)
cbmidori = ttk.Checkbutton(
instw,
bootstyle="danger",
variable=midori,
onvalue="midori",
offvalue="off",
text="Midori: Fast, lightweight Browser")
cbmidori.place(x=ROW2, y=200)
checkboxstates.append(midori)
InstallCheck("midori", cbmidori)
install_check("midori", cbmidori)
#qutebrowser
qutebrowser = StringVar()
qutebrowser.set("off")
cbqutebrowser = ttk.Checkbutton(instw, bootstyle="danger", variable=qutebrowser, onvalue="qutebrowser", offvalue="off", text="Qutebrowser: Vim-like browser")
cbqutebrowser.place(x=row2,y=220)
checkboxstates.append(qutebrowser)
InstallCheck("qutebrowser", cbqutebrowser)
# qutebROWser
qutebROWser = tk.StringVar()
qutebROWser.set("off")
cbqutebROWser = ttk.Checkbutton(
instw,
bootstyle="danger",
variable=qutebROWser,
onvalue="qutebrowser",
offvalue="off",
text="Qutebrowser: Vim-like Browser")
cbqutebROWser.place(x=ROW2, y=220)
checkboxstates.append(qutebROWser)
install_check("qutebrowser", cbqutebROWser)
#luakit
luakit = StringVar()
# luakit
luakit = tk.StringVar()
luakit.set("off")
cbluakit = ttk.Checkbutton(instw, bootstyle="danger", variable=luakit, onvalue="luakit", offvalue="off", text="Luakit: Browser extensible by Lua")
cbluakit.place(x=row2,y=240)
cbluakit = ttk.Checkbutton(
instw,
bootstyle="danger",
variable=luakit,
onvalue="luakit",
offvalue="off",
text="Luakit: Browser extensible by Lua")
cbluakit.place(x=ROW2, y=240)
checkboxstates.append(luakit)
InstallCheck("luakit", cbluakit)
install_check("luakit", cbluakit)
#chromium
chromium = StringVar()
# chromium
chromium = tk.StringVar()
chromium.set("off")
cbchromium = ttk.Checkbutton(instw, bootstyle="danger", variable=chromium, onvalue="chromium", offvalue="off", text="Chromium: Google's Open-Source browser")
cbchromium.place(x=row2,y=260)
cbchromium = ttk.Checkbutton(
instw,
bootstyle="danger",
variable=chromium,
onvalue="chromium",
offvalue="off",
text="Chromium: Google's Open-Source Browser")
cbchromium.place(x=ROW2, y=260)
checkboxstates.append(chromium)
InstallCheck("chromium", cbchromium)
install_check("chromium", cbchromium)
#atril
atril = StringVar()
# atril
atril = tk.StringVar()
atril.set("off")
cbatril = ttk.Checkbutton(instw, bootstyle="danger", variable=atril, onvalue="atril", offvalue="off", text="Atril: a multi-page document viewer")
cbatril.place(x=row,y=100)
cbatril = ttk.Checkbutton(
instw,
bootstyle="danger",
variable=atril,
onvalue="atril",
offvalue="off",
text="Atril: a multi-page document viewer")
cbatril.place(x=ROW, y=100)
checkboxstates.append(atril)
InstallCheck("atril", cbatril)
install_check("atril", cbatril)
#transmission
transmission = StringVar()
# transmission
transmission = tk.StringVar()
transmission.set("off")
cbtransmission = ttk.Checkbutton(instw, bootstyle="danger", variable=transmission, onvalue="transmission", offvalue="off", text="Transmission BitTorrent Client")
cbtransmission.place(x=row,y=120)
cbtransmission = ttk.Checkbutton(
instw,
bootstyle="danger",
variable=transmission,
onvalue="transmission",
offvalue="off",
text="Transmission BitTorrent Client")
cbtransmission.place(x=ROW, y=120)
checkboxstates.append(transmission)
InstallCheck("transmission", cbtransmission)
install_check("transmission", cbtransmission)
#ARandR
arandr = StringVar()
# ARandR
arandr = tk.StringVar()
arandr.set("off")
cbarandr = ttk.Checkbutton(instw, bootstyle="danger", variable=arandr, onvalue="arandr", offvalue="off", text="ARandR: Another XRandR GUI")
cbarandr.place(x=row,y=140)
cbarandr = ttk.Checkbutton(
instw,
bootstyle="danger",
variable=arandr,
onvalue="arandr",
offvalue="off",
text="ARandR: Another XRandR GUI")
cbarandr.place(x=ROW, y=140)
checkboxstates.append(arandr)
InstallCheck("arandr", cbarandr)
install_check("arandr", cbarandr)
#pmount
pmount = StringVar()
# pmount
pmount = tk.StringVar()
pmount.set("off")
cbpmount = ttk.Checkbutton(instw, bootstyle="danger", variable=pmount, onvalue="pmount", offvalue="off", text="pmount: Standard mount program")
cbpmount.place(x=row,y=160)
cbpmount = ttk.Checkbutton(
instw,
bootstyle="danger",
variable=pmount,
onvalue="pmount",
offvalue="off",
text="pmount: Standard mount program")
cbpmount.place(x=ROW, y=160)
checkboxstates.append(pmount)
InstallCheck("pmount", cbpmount)
install_check("pmount", cbpmount)
#dconf-editor
dconfeditor = StringVar()
# dconf-editor
dconfeditor = tk.StringVar()
dconfeditor.set("off")
cbdconfeditor = ttk.Checkbutton(instw, bootstyle="danger", variable=dconfeditor, onvalue="dconf-editor", offvalue="off", text="DConf Editor: For environment settings")
cbdconfeditor.place(x=row,y=180)
cbdconfeditor = ttk.Checkbutton(
instw,
bootstyle="danger",
variable=dconfeditor,
onvalue="dconf-editor",
offvalue="off",
text="DConf Editor: For environment settings")
cbdconfeditor.place(x=ROW, y=180)
checkboxstates.append(dconfeditor)
InstallCheck("dconf-editor", cbdconfeditor)
install_check("dconf-editor", cbdconfeditor)
#gpicview
gpicview = StringVar()
# gpicview
gpicview = tk.StringVar()
gpicview.set("off")
cbgpicview = ttk.Checkbutton(instw, bootstyle="danger", variable=gpicview, onvalue="gpicview", offvalue="off", text="GpicView image viewer")
cbgpicview.place(x=row,y=200)
cbgpicview = ttk.Checkbutton(
instw,
bootstyle="danger",
variable=gpicview,
onvalue="gpicview",
offvalue="off",
text="GpicView image viewer")
cbgpicview.place(x=ROW, y=200)
checkboxstates.append(gpicview)
InstallCheck("gpicview", cbgpicview)
install_check("gpicview", cbgpicview)
#parole
parole = StringVar()
# parole
parole = tk.StringVar()
parole.set("off")
cbparole = ttk.Checkbutton(instw, bootstyle="danger", variable=parole, onvalue="parole", offvalue="off", text="Parole: Media player for Xfce")
cbparole.place(x=row,y=220)
cbparole = ttk.Checkbutton(
instw,
bootstyle="danger",
variable=parole,
onvalue="parole",
offvalue="off",
text="Parole: Media player for Xfce")
cbparole.place(x=ROW, y=220)
checkboxstates.append(parole)
InstallCheck("parole", cbparole)
install_check("parole", cbparole)
#mate-calc
matecalc = StringVar()
matecalc.set("off")
cbmatecalc = ttk.Checkbutton(instw, bootstyle="danger", variable=matecalc, onvalue="mate-calc", offvalue="off", text="Mate Calculator")
cbmatecalc.place(x=row,y=240)
checkboxstates.append(matecalc)
InstallCheck("mate-calc", cbmatecalc)
#GNU Firewall
gufw = tk.StringVar()
gufw.set("off")
cbgufw = ttk.Checkbutton(
instw,
bootstyle="danger",
variable=gufw,
onvalue="gufw",
offvalue="off",
text="gufw: GNU Firewall")
cbgufw.place(x=ROW, y=240)
checkboxstates.append(gufw)
install_check("gufw", cbgufw)
#snapd
snapd = StringVar()
# snapd
snapd = tk.StringVar()
snapd.set("off")
cbsnapd = ttk.Checkbutton(instw, bootstyle="danger", variable=snapd, onvalue="snapd", offvalue="off", text="Snap Package Platform")
cbsnapd.place(x=row,y=260)
cbsnapd = ttk.Checkbutton(
instw,
bootstyle="danger",
variable=snapd,
onvalue="snapd",
offvalue="off",
text="Snap Package Platform")
cbsnapd.place(x=ROW, y=260)
checkboxstates.append(snapd)
InstallCheck("snapd", cbsnapd)
install_check("snapd", cbsnapd)
#flatpak
flatpak = StringVar()
# flatpak
flatpak = tk.StringVar()
flatpak.set("off")
cbflatpak = ttk.Checkbutton(instw, bootstyle="danger", variable=flatpak, onvalue="flatpak", offvalue="off", text="Flatpak Packages Platform")
cbflatpak.place(x=row,y=280)
cbflatpak = ttk.Checkbutton(
instw,
bootstyle="danger",
variable=flatpak,
onvalue="flatpak",
offvalue="off",
text="Flatpak Packages Platform")
cbflatpak.place(x=ROW, y=280)
checkboxstates.append(flatpak)
InstallCheck("flatpak", cbflatpak)
install_check("flatpak", cbflatpak)
#gnome-software
gnomesoftware = StringVar()
# gnome-software
gnomesoftware = tk.StringVar()
gnomesoftware.set("off")
cbgnomesoftware = ttk.Checkbutton(instw, bootstyle="danger", variable=gnomesoftware, onvalue="gnome-software", offvalue="off", text="Gnome software store")
cbgnomesoftware.place(x=row,y=300)
cbgnomesoftware = ttk.Checkbutton(
instw,
bootstyle="danger",
variable=gnomesoftware,
onvalue="gnome-software",
offvalue="off",
text="Gnome software store")
cbgnomesoftware.place(x=ROW, y=300)
checkboxstates.append(gnomesoftware)
InstallCheck("gnome-software", cbgnomesoftware)
install_check("gnome-software", cbgnomesoftware)
# timshift
timeshift = tk.StringVar()
timeshift.set("off")
cbtimeshift = ttk.Checkbutton(
instw,
bootstyle="danger",
variable=timeshift,
onvalue="timeshift",
offvalue="off",
text="TimeShift: Backup Tool")
cbtimeshift.place(x=ROW, y=320)
checkboxstates.append(timeshift)
install_check("timeshift", cbtimeshift)
#youtube-dl
youtubedl = StringVar()
youtubedl.set("off")
cbyoutubedl = ttk.Checkbutton(instw, bootstyle="danger", variable=youtubedl, onvalue="youtube-dl", offvalue="off", text="YouTube-DL: YouTube Downloader Tool")
cbyoutubedl.place(x=row,y=320)
checkboxstates.append(youtubedl)
InstallCheck("youtube-dl", cbyoutubedl)
def install(applist):
btn.place_forget()
textbox.configure(state='normal')
""" install the applications"""
btnwk = ttk.Button(instw, text="Installing...", bootstyle="danger", state='disabled')
btnwk.place(x=245, y=375, height=30, width=150)
btn.place_forget()
textbox.configure(state='normal')
def textout(line):
textbox.insert(tk.END, line)
textbox.update_idletasks()
textbox.see("end")
print(line + "\n")
def textout(line):
textbox.insert(tk.END, line)
textbox.update_idletasks()
textbox.see("end")
print(line + "\n")
if len(applist) > 0:
with subprocess.Popen(["apt-get", "install", "-y"] + applist,
shell=False, stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
universal_newlines=True) as point:
if point.stdout:
for line in point.stdout:
textout(line)
if point.stderr:
for line in point.stderr:
textout(line)
textout("Done.")
textbox.configure(state='disabled')
btnwk.place_forget()
btn.place(x=245, y=375, height=30, width=150)
def fin():
"""Finish close window"""
instw.destroy()
if(len(applist) > 0):
with subprocess.Popen( ["apt-get","install","-y"] + applist,shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) as p:
if p.stdout:
for line in p.stdout:
textout(line)
if p.stderr:
for line in p.stderr:
textout(line)
textout("Done.")
textbox.configure(state='disabled')
btn.place(x=245, y=375, height= 30, width=150)
def fin ():
instw.destroy()
def getcheckboxes():
btnwk = ttk.Button(instw,text="Installing...")
btn.place(x=245, y=375, height= 30, width=150)
appqueue = []
for item in checkboxstates:
if item.get() != "off":
appqueue.append(item.get())
print(appqueue)
if(len(appqueue) > 0):
install(appqueue)
else:
textbox.configure(state='normal')
textbox.insert(tk.END, "No packages selected. Please select a package.\n")
textbox.update_idletasks()
textbox.see("end")
textbox.configure(state='disabled')
"""This will verify the check boxes"""
appqueue = []
for item in checkboxstates:
if item.get() != "off":
appqueue.append(item.get())
print(appqueue)
#inital Begin install button
btn = ttk.Button(instw,text="Install Selected",bootstyle="light-outline",command=getcheckboxes)
if len(appqueue) > 0:
install(appqueue)
else:
textbox.configure(state='normal')
textbox.insert(
tk.END,
"No packages selected. Please select a package.\n")
textbox.update_idletasks()
textbox.see("end")
textbox.configure(state='disabled')
# inital Begin install button
btn = ttk.Button(
instw,
text="Install Selected",
bootstyle="light-outline",
command=getcheckboxes)
##Placement of the Begin install button##
btn.place(x=245, y=375, height= 30, width=150)
btnf = ttk.Button(instw,bootstyle="light-outline", text="Done",command=getcheckboxes)
btn.place(x=245, y=375, height= 30, width=150)
btn.place(x=245, y=375, height=30, width=150)
btnf = ttk.Button(
instw,
bootstyle="light-outline",
text="Done",
command=getcheckboxes)
btn.place(x=245, y=375, height=30, width=150)
##Start the window#
instw.mainloop()

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 36 KiB

View File

@ -1,140 +0,0 @@
/*/ Set the body base/*/
body {
background-color: #111111;
color: white;
font-family: Cantarell;
}
/*/ set the td syles /*/
td {
font-size: 13.3px;
text-align:left;
padding:5px;
border: 1.5px solid white;
width: 300px;
}
/* unvisited link */
a:link {
color: black;
}
/* visited link */
a:visited {
color: black;
}
/* mouse over link */
a:hover {
color: black;
font-weight:bold;
}
/*/Controle the search bar title style/*/
p {
font-size: 30px;
font-weight: bold;
font-family: Cantarell;
}
/*/ the base Grid container/*/
.grid-container {
display: grid;
grid-template-columns: auto auto auto;
background-color: #770a0a;
padding: 10px;
}
/*/ Each block in the grid/*/
.grid-item {
background-color: #770a0a;
border: #770a0a;
padding: 20px;
font-size: 20px;
font-family: Cantarell;
text-align: center;
color: white;
}
/*/Search button style/*/
.button {
background-color: #770a0a; /* go */
border: none;
color: white;
padding: 5px 20px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 16px;
margin: 4px 2px;
transition-duration: 0.4s;
cursor: pointer;
border-radius: 4px;
box-sizing: border-box;
height:42px;
}
.btngo {
background-color: #770a0a;
color: white;
border: 1px solid white;
}
.btngo:hover {
background-color: #7b3737;
color: white;
border: 1px solid #770a0a;
}
/*/Search box Style*/
input[type=search], select {
width: 70%;
padding: 12px 20px;
margin: 8px 0;
display: inline-block;
border: 1px solid #ccc;
border-radius: 4px;
box-sizing: border-box;
}
/* Style the tab */
.tab {
overflow: hidden;
border: 0px solid #ccc;
background-color: #ffffff;
width: 280px;
}
/* Style the buttons that are used to open the tab content */
.tab button {
background-color: #770a0a;
color: white;
float: left;
border: 1px solid #ccc;
outline: none;
cursor: pointer;
padding: 14px 16px;
transition: 0.3s;
}
/* Change background color of buttons on hover */
.tab button:hover {
background-color: #7b3737;
color: white;
}
/* Create an active/current tablink class */
.tab button.active {
background-color: #7b3737;
color: white;
}
/* Style the tab content */
.tabcontent {
display: none;
padding: 6px 12px;
border: 0px solid #ccc;
border-top: none;
background-color: #770a0a;
}

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,11 @@
#!/usr/bin/env python3
"""
* Author: "PepDebian(peppermintosteam@proton.me)
*
* License: SPDX-License-Identifier: GPL-3.0-or-later
*
* This script is used to download extras
"""
import os
import subprocess as sp
import tkinter as tk
import ttkbootstrap as ttk
@ -8,8 +13,8 @@ from tendo import singleton
#setting up window
pex = ttk.Window(themename="darkly")
window_height = 230
window_width = 355
WINDOW_HEIGHT = 230
WINDOW_WIDTH = 355
pex.title('Get Extras')
pex.tk.call('wm', 'iconphoto', pex._w, tk.PhotoImage(file='/usr/share/pixmaps/peppermint-old.png'))
@ -19,64 +24,65 @@ me = singleton.SingleInstance()
#main title style
spmt = ttk.Style()
spmt.configure("#F62817.TLabel", foreground ="#b12026", background ="#222222", font = ("Helvetica", '12', 'bold') )
spmt.configure("#F62817.TLabel", foreground ="#b12026",
background ="#222222", font = ("Helvetica", '12', 'bold') )
###Verbiage and titel Placements###
lblpmwelttl = ttk.Label(pex, style="Whiteb.TLabel", text="Download and Install Wallpaper, Themes and Icons ")
lblpmwelttl = ttk.Label(pex, style="Whiteb.TLabel",
text="Download and Install Wallpaper, Themes and Icons ")
lblpmwelttl.place(x=10, y=10)
#Functions to open the other pythons files. or close this screen ###
#open the sure scripts
def pi ():
pex.destroy()
os.popen ('python3 /opt/pypep/icosure.py')
def thm ():
pex.destroy()
os.popen ('python3 /opt/pypep/thmsure.py')
def icons():
"""get the icons"""
pex.destroy()
sp.call(['xfce4-terminal', '-x','/opt/pypep/icons.sh'])
def wls ():
pex.destroy()
os.popen ('python3 /opt/pypep/wallsure.py')
#close Button
def qte ():
pex.destroy()
os.popen ('python3 /opt/pypep/welcome_man.py')
def themes():
"""get the themes"""
pex.destroy()
sp.call(['xfce4-terminal', '-x','/opt/pypep/themes.sh', '&'])
def wall_papers():
"""get the wallpapers"""
pex.destroy()
sp.call(['xfce4-terminal', '-x','/opt/pypep/walls.sh', '&'])
def quit_pge():
"""quit the window"""
pex.destroy()
def center_screen():
""" gets the coordinates of the center of the screen """
global screen_height, screen_width, x_cordinate, y_cordinate
screen_width = pex.winfo_screenwidth()
screen_height = pex.winfo_screenheight()
# Coordinates of the upper left corner of the window to make the window appear in the center
x_cordinate = int((screen_width/2) - (window_width/2))
y_cordinate = int((screen_height/2) - (window_height/2))
pex.geometry("{}x{}+{}+{}".format(window_width, window_height, x_cordinate, y_cordinate))
""" gets the coordinates of the center of the screen """
screen_width = pex.winfo_screenwidth()
screen_height = pex.winfo_screenheight()
# Coordinates of the upper left corner of the window to make the window
# appear in the center
x_cordinate = int((screen_width / 2) - (WINDOW_WIDTH / 2))
y_cordinate = int((screen_height / 2) - (WINDOW_HEIGHT / 2))
pex.geometry("{}x{}+{}+{}".format(WINDOW_WIDTH,
WINDOW_HEIGHT, x_cordinate, y_cordinate))
###All the buttons and placements##
btncore = ttk.Button(text="Peppermint Themes", bootstyle="danger-outline", command=thm, width=20)
btncore.place(x=90, y=50)
bttut = ttk.Button(text='Peppermint Icons', command=pi, bootstyle="danger-outline", width=20 )
bttut.place(x=90, y=90)
bttut = ttk.Button(text='Peppermint WallPaper', command=wls, bootstyle="danger-outline", width=20 )
bttut.place(x=90, y=130)
btnrn = ttk.Button(text="Close", bootstyle="light-outline", command=qte, width=10)
btnrn.place(x=225, y=190)
themes_button = ttk.Button(text="Peppermint Themes",
bootstyle="danger-outline", command=themes, width=20)
themes_button.place(x=90, y=50)
icons_button = ttk.Button(text='Peppermint Icons', command=icons,
bootstyle="danger-outline", width=20 )
icons_button.place(x=90, y=90)
wall_papers_button = ttk.Button(text='Peppermint WallPaper', command=wall_papers,
bootstyle="danger-outline", width=20 )
wall_papers_button.place(x=90, y=130)
close_button = ttk.Button(text="Close", bootstyle="light-outline",
command=quit_pge, width=10)
close_button.place(x=225, y=190)
#call Center screen
center_screen()
pex.mainloop()

70
PepProTools/ptdata.py Executable file
View File

@ -0,0 +1,70 @@
"""
* Author: "PepDebian(peppermintosteam@proton.me)
*
* License: SPDX-License-Identifier: GPL-3.0-or-later
*
* This script is used is used to show peptools updates
"""
import sys
from PyQt5.QtSql import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
def initializeModel(model):
"""get thedisplay ready"""
model.setTable('gitdata')
model.setEditStrategy(QSqlTableModel.OnFieldChange)
model.select()
model.setHeaderData(0, Qt.Horizontal, "Date Updated")
model.setHeaderData(1, Qt.Horizontal, "Comment")
model.setHeaderData(2, Qt.Horizontal, "Change ID")
def createView(title, model):
"""Create the view"""
view = QTableView()
view.setModel(model)
view.setWindowTitle(title)
return view
def addrow():
"""Add the data"""
print(model.rowCount())
ret = model.insertRows(model.rowCount(), 1)
print(ret)
def findrow(i):
""" Find the data needed"""
delrow = i.row()
if __name__ == '__main__':
""" The main class to present everything"""
app = QApplication(sys.argv)
db = QSqlDatabase.addDatabase('QSQLITE')
db.setDatabaseName('/opt/pypep/dbpep/welval.db')
model = QSqlTableModel()
delrow = -1
initializeModel(model)
view1 = createView("Table Model (View 1)", model)
view1.clicked.connect(findrow)
dlg = QDialog()
layout = QVBoxLayout()
layout.addWidget(view1)
dlg.setLayout(layout)
dlg.setGeometry(QRect(0, 0, 500, 700))
dlg.setWindowTitle("Update History - Peppermint Tools")
dlg.setWindowIcon(QIcon('/usr/share/pixmaps/peppermint-old.png'))
dlg.setWindowFlag(Qt.WindowMinimizeButtonHint, True)
dlg.setWindowFlag(Qt.WindowMaximizeButtonHint, True)
dlg.show()
sys.exit(app.exec_())

View File

@ -1,14 +1,20 @@
#!/usr/bin/env python3
"""
* Author: "PepDebian(peppermintosteam@proton.me)
*
* License: SPDX-License-Identifier: GPL-3.0-or-later
*
* this script is for performing utility functions
*
"""
import apt
#this script is for performing utility functions
#gets all installed packages
cache = apt.Cache()
#Checks if a package is installed
def installcheck(appname):
def install_check(appname):
"""This one check is a application is installed"""
try:
print(appname,cache[appname].is_installed)
return cache[appname].is_installed

BIN
PepProTools/rd.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

252
PepProTools/rdata.py Executable file
View File

@ -0,0 +1,252 @@
"""
* Author: "PepDebian(peppermintosteam@proton.me)
*
* License: SPDX-License-Identifier: GPL-3.0-or-later
*
* Update log from CodeBerg
"""
import json
import sqlite3
import tkinter as tk
import os
import importlib.util
import subprocess
import ttkbootstrap as ttk
from tendo import singleton
import bsconf
# setup the window
pwin = bsconf.bbstyle
WINDOW_HEIGHT = 190
WINDOW_WIDTH = 310
pwin.resizable(False, False)
pwin.title('Peppermint Scope')
pwin.tk.call('wm', 'iconphoto', pwin._w,
tk.PhotoImage(
file='/usr/share/pixmaps/peppermint-old.png'))
# keep only instance at a time
me = singleton.SingleInstance()
# database connection string
conn = sqlite3.connect('/opt/pypep/dbpep/welval.db')
pcur = conn.cursor()
# Create the table
pcur.execute(
'CREATE TABLE IF NOT EXISTS gitdata ( date text, message text, commitd text)')
def debdata():
""" Gets the Debian Data"""
con = sqlite3.connect('/opt/pypep/dbpep/welval.db')
cur = con.cursor()
git_data = json.load(open('git-pepd64.json'))
columns = ['date', 'message', 'commit']
# set the data up to be binded
value = []
values = []
for data in git_data:
for i in columns:
value.append(str(dict(data).get(i)))
values.append(list(value))
value.clear()
# clear the old data
dquery = 'DELETE FROM gitdata'
# the query used to store the data
iquery = 'INSERT INTO gitdata values(?,?,?)'
# clean out auto updates
cquery = """ DELETE FROM gitdata WHERE message LIKE 'Auto%' """
# run the query
cur.execute(dquery)
cur.executemany(iquery, values)
cur.execute(cquery)
con.commit()
con.close()
print("Data is Done")
# open the results screen
os.system('python3 /opt/pypep/pddata.py &')
def devdata():
"""Gets the Devuan Data"""
con = sqlite3.connect('/opt/pypep/dbpep/welval.db')
cur = con.cursor()
git_data = json.load(open('git-pepdv64.json'))
columns = ['date', 'message', 'commit']
# set the data up to be binded
value = []
values = []
for data in git_data:
for i in columns:
value.append(str(dict(data).get(i)))
values.append(list(value))
value.clear()
# clear the old data
dquery = 'DELETE FROM gitdata'
# the query used to store the data
iquery = 'INSERT INTO gitdata values(?,?,?)'
# clean out auto updates
cquery = """ DELETE FROM gitdata WHERE message LIKE 'Auto%' """
# run the query
cur.execute(dquery)
cur.executemany(iquery, values)
cur.execute(cquery)
# commit the data and close connection
con.commit()
con.close()
print("Data is Done")
# open the results screen for devuan
os.system('python3 /opt/pypep/pdvdata.py &')
def peptoolsdata():
"""prepare the log JSON data for peptools"""
con = sqlite3.connect('/opt/pypep/dbpep/welval.db')
cur = con.cursor()
git_data = json.load(open('git-peptools.json'))
columns = ['date', 'message', 'commit']
# set the data up to be binded
value = []
values = []
for data in git_data:
for i in columns:
value.append(str(dict(data).get(i)))
values.append(list(value))
value.clear()
# clear the old data
dquery = 'DELETE FROM gitdata'
# the query used to store the data
iquery = 'INSERT INTO gitdata values(?,?,?)'
# clean out auto updates
cquery = """ DELETE FROM gitdata WHERE message LIKE 'Auto%' """
# run the query
cur.execute(dquery)
cur.executemany(iquery, values)
cur.execute(cquery)
# commit the data and close connection
con.commit()
con.close()
print("Data is Done")
# open the results screen for peptools
os.system('python3 /opt/pypep/ptdata.py &')
def center_screen():
""" gets the coordinates of the center of the screen """
screen_width = pwin.winfo_screenwidth()
screen_height = pwin.winfo_screenheight()
# Coordinates of the upper left corner of the window to make the window
# appear in the center
x_cordinate = int((screen_width / 2) - (WINDOW_WIDTH / 2))
y_cordinate = int((screen_height / 2) - (WINDOW_HEIGHT / 2))
pwin.geometry("{}x{}+{}+{}".format(WINDOW_WIDTH,
WINDOW_HEIGHT, x_cordinate, y_cordinate))
def instdep():
"""This will pop a terminal so the user ca instal the qtsql"""
# kill the window
pwin.destroy()
# pop the terminal
cmd = "xfce4-terminal -e 'bash -c \"sudo apt-get install -y python3-pyqt5.qtsql\";bash'"
subprocess.Popen(cmd, shell=True)
def vdecide():
"""All the buttons and placements"""
# These are the controls that are used
btnpt = ttk.Button(
text="PepTools Updates",
bootstyle="danger-outline",
width=27,
command=peptoolsdata)
btnid = ttk.Button(
text="Install Dependencies",
bootstyle="danger-outline",
width=27,
command=instdep)
btndev = ttk.Button(
text="Pep Devuan Updates",
bootstyle="danger-outline",
width=27,
command=devdata)
btndeb = ttk.Button(
text="Pep Debian Updates",
bootstyle="danger-outline",
width=27,
command=debdata)
lblex = ttk.Label(
pwin,
text="Select what updates you would like to review",
wraplength=300)
lbldep = ttk.Label(
pwin,
text="PepScope needs some dependencies installed",
wraplength=300)
# variables used to test if package is installed
package = 'PyQt5.QtSql'
is_present = importlib.util.find_spec(package)
# conditions
if os.path.exists("/etc/devuan_version"):
if is_present is None:
print("Is Not Here Devuan!")
# Button and Label placements
btnid.grid(row=1, column=1, ipadx=5, ipady=5, padx=5, pady=5)
lbldep.grid(
row=0,
column=0,
columnspan=4,
ipadx=5,
ipady=5,
padx=5,
pady=5)
else:
print("You Good Devuan!")
# Button and Label placements
btndev.grid(row=1, column=1, ipadx=5, ipady=5, padx=5, pady=5)
btnpt.grid(row=2, column=1, ipadx=5, ipady=5, padx=5, pady=5)
lblex.grid(
row=0,
column=0,
columnspan=4,
ipadx=5,
ipady=5,
padx=5,
pady=5)
elif os.path.exists("/etc/debian_version"):
if is_present is None:
print("Is Not Here Debian!")
# Button and Label placements
btnid.grid(row=1, column=1, ipadx=5, ipady=5, padx=5, pady=5)
lbldep.grid(
row=0,
column=0,
columnspan=4,
ipadx=5,
ipady=5,
padx=5,
pady=5)
else:
print("You Good Debian!")
# Button and Label placements
btndeb.grid(row=1, column=1, ipadx=5, ipady=5, padx=5, pady=5)
btnpt.grid(row=2, column=1, ipadx=5, ipady=5, padx=5, pady=5)
lblex.grid(
row=0,
column=0,
columnspan=4,
ipadx=5,
ipady=5,
padx=5,
pady=5)
# call Center screen
center_screen()
vdecide()
pwin.mainloop()

BIN
PepProTools/sf.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -1,189 +1,2 @@
#! /bin/bash
# sysupdate.sh
# by: Domingo Urena (c) 18/02/2022
# irlxu2@gmail.com / pc_protectordr@yahoo.es
# Create a full system update for a Debian base OS
# Sintax : ./sysupdate.sh or bassh sysupdate
################################################################ Disclaimer ###
# These scripts come without warranty of any kind. Use them at your own risk. I
# assume no liability for the accuracy, correctness, completeness, or usefulness
# of any information provided by this script nor for any sort of damages using
# these scripts may cause.
#
# sysupdate 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
# any later version.
#
# sysupdate 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.
########################################################## Inicital setings ###
nombre="System_Update"
fecha=`date`
Update_log=$nombre".md"
# If exist a previews update file, delete it
if [[ -f ~/$Update_log ]]
then rm ~/$Update_log
fi
# Create a new log file
touch ~/$Update_log
########################################### Definimos los Colores a utilizar ###
# BackGround with setab
bred=`tput setab 1` # Rojo
bwht=`tput setab 7` # Blanco
# ForeGrown with setaf
blk=`tput setaf 0` # Negro
red=`tput setaf 1` # Rojo
yll=`tput setaf 3` # Amarillo
wht=`tput setaf 7` # Blanco
# TxtFormat with setaf
bld=`tput bold` # Select bold mode
dim=`tput dim` # Select dim (half-bright) mode
# DefautMode with setaf
reset=`tput sgr0`
# Hide/show cursor
nshw() { tput civis # Hide cursor
}
yshw() { tput cnorm # return cursor to normal
}
# Peppermint Color
Peppermint_Color=${bred}${bld}${wht}
Peppermint_msg=${bld}${bred}${wht}
Peppermint_good=${bld}${red}
Peppermint_note=${bld}${red}
Peppermint_err=${bld}${bred}${yll}
################################################################## Letreros ###
titulo() { # ≡ message
printf "${Peppermint_Color} %s${reset}\n" "$@"
}
msg() { # ⓘ message
printf "${Peppermint_msg}${reset}${bld}%s \n${reset}" "$@"
}
completo() {
if [[ "$@" == "" ]];
then printf " ${Peppermint_good}[ ✔ COMPLETED ] ${reset}\n";
else
printf " ${Peppermint_good}[ ✔ %s ] ${reset}\n" "$@"
fi
}
notas() { # [ NOTES ] message
printf "${Peppermint_note} > ${reset} %s \n" "$@"
}
advertencia() { # [ ⚠ message ]
if [ "$@" == "" ];
then printf "${Peppermint_err} [ ⚠ WARNING ] ${reset}\n"
fi
printf "${Peppermint_err} [ ⚡ %s ] ${reset}\n" "$@"
}
############################################################ Admin privilige ###
eres_root() { # Verificación de privilegio de usuario
if [ "$(id -u)" -ne 0 ]; then sudo ls >/dev/null; fi
}
######################################################### Updating functions ###
ACTUALIZA() { # Optiene lista de actualizaciones
sudo apt-get -y update >> ~/"$Update_log"
}
UPDATE() { # Instala las actualizaciones
sudo apt-get -y upgrade >> ~/"$Update_log"
}
LIMPIA() { # Limpia archivos innecesarios
sudo apt-get -y autoremove >> ~/"$Update_log"
}
RBRAND() { # Check PeppermintOS branding
[ -e /opt/pepconf/os-release ] && diff -q /opt/pepconf/os-release /usr/lib/os-release >> ~/"$Update_log" ||
sudo cp /opt/pepconf/os-release /usr/lib/os-release
[ -e /opt/pepconf/os-release ] && diff -q /opt/pepconf/os-release /etc/os-release >> ~/"$Update_log" ||
sudo cp /opt/pepconf/os-release /etc/os-release
}
############################################################ Progress Bar + ###
rotar() {
## SYNTAX: rotar "COMMANDO" " Mensage de la accion " "Nombre de la tarea"
## rotar "accion 3" "accion" "3ra accion"
nshw # hide cursor
# Limpia la linea de acción
# LP="\e[2K"
LP=$reset # reset all colors to default
# Spinner Character
SPINNER="⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏"
spinner() { # crear subrutina
task=$1
mnsg=$2
while :; do
jobs %1 > /dev/null 2>&1
[ $? = 0 ] || {
# printf "${LP}✓ ${task} Done"
completo "$task Done"
break
}
for (( i=0; i<${#SPINNER}; i++ )); do
sleep 0.05
printf "${bld}${red}${SPINNER:$i:1}${reset} ${Peppermint_msg} ${task} ${mnsg}${reset}\r"
done
done
}
mnsg="${2-InProgress}"
task="${3-$1}"
$1 & spinner "$task" "$msg"
yshw # resturn cursor
}
############################################################## System Update ###
sysupdate() {
# mupdate=`sudo apt-get update -y`
titulo "▞ ▞ ▞ ▞ ▞ ▞ ▞ ▞ Peppermint CLI Updater ▚ ▚ ▚ ▚ ▚ ▚ ▚ ▚ "
echo
echo "# System Update" > ~/"$Update_log"
echo "**"$Update_log"**" $fecha >> ~/"$Update_log"
msg " Creating list of updated programs..."
echo "## Creating List of updated programs" >> ~/"$Update_log"
advertencia "... these will take some time ..."
rotar 'ACTUALIZA' " updated list... " "Dowloading "
msg " Installing New System Updates..."
echo "## Installing New System Updates..." >> ~/"$Update_log"
advertencia "... please be patient ..."
rotar "UPDATE" " updates... " "Installing "
msg " ... cleaning system ..."
echo "## Removing stale packages..." >> ~/"$Update_log"
echo "*... Cleaning System ...*" >> ~/"$Update_log"
rotar "LIMPIA" " unnesesary packages... " "Cleaning "
msg " Updating Branding files..."
echo "## Checking PeppermintOS branding..." >> ~/"$Update_log"
advertencia "... comparing files ..."
rotar "RBRAND" " initializing... " "Finalizing "
echo "[END OF FILE]" >> ~/"$Update_log"
}
mensage_final() {
#clear
titulo " ▞ ▞ ▞ ▞ System Applied Updates ▚ ▚ ▚ ▚ "
echo
echo "For more information see the update log file:"
echo "${bld}>${yll} $Update_log${reset} located in your home directory"
echo
#read -p "Press [Enter] key to exit..."
read -n1 -p " Press ${bld}\"Q\"${reset} to ${bld}Q${reset}uit, or $bld\"L\"$reset to view the log file. " pause
}
view_log() {
[ "$pause" = "l" ] || [ "$pause" = "L" ] && ( clear
echo -e "$(cat ~/${Update_log})\n\n\t Press ${bld}\"Q\"${reset} to ${bld}Q${reset}uit and close this window. " | less -R
clear
) || clear
}
clear
eres_root
sysupdate
mensage_final
view_log
#!/bin/bash
sudo /opt/pypep/xDaily

View File

@ -1,7 +1,7 @@
#!/bin/bash
_extras=themes
_repo="PepThemes"
_repo="Peppermint_OS/PepThemes"
###########################################
# Quietly have wget -q0- "pipe" its output directly to tar.
@ -10,9 +10,13 @@ _repo="PepThemes"
# Leaving no files to remove and no permission changes required.
###########################################
echo -en "\n Downloadng new ${_extras} to /usr/share/"
wget -qO- https://codeberg.org/Peppermint_OS/${_repo}/archive/main.tar.gz |
tar -vxz -C /usr/share 2>/dev/null
echo -e "\n Downloadng Additional ${_extras} to /usr/share/"
wget https://codeberg.org/${_repo}/archive/main.tar.gz --show-progress -qO - |
tar -xz -C /usr/share 2>/dev/null
echo -e "\n Additional Themes downloaded and installed.\n"
read -n1 -p " Process Completed. Press any key to close this dialog." answ
# Go back to the Extras
python3 /opt/pypep/pge.py &

View File

@ -1,60 +0,0 @@
#!/usr/bin/env python3
import os
import tkinter as tk
import ttkbootstrap as ttk
from tendo import singleton
#setting up window
pexs = ttk.Window(themename="darkly")
window_height = 120
window_width = 420
pexs.title('Additional Themes')
pexs.tk.call('wm', 'iconphoto', pexs._w, tk.PhotoImage(file='/usr/share/pixmaps/peppermint-old.png'))
#keep only instance at a time
me = singleton.SingleInstance()
def center_screen():
""" gets the coordinates of the center of the screen """
global screen_height, screen_width, x_cordinate, y_cordinate
screen_width = pexs.winfo_screenwidth()
screen_height = pexs.winfo_screenheight()
# Coordinates of the upper left corner of the window to make the window appear in the center
x_cordinate = int((screen_width/2) - (window_width/2))
y_cordinate = int((screen_height/2) - (window_height/2))
pexs.geometry("{}x{}+{}+{}".format(window_width, window_height, x_cordinate, y_cordinate))
def thm ():
"""Check if user can connect to codeberg"""
pexs.destroy()
os.system('python3 /opt/pypep/diagthmchk.py')
def xc ():
"""close the form start back at pge"""
pexs.destroy()
os.popen ('python3 /opt/pypep/pge.py')
#Title text message
lblexp = ttk.Label(pexs, text="Would you like to install addtional wallpaper created by the Peppermint Team and Community?.", wraplength=400)
lblexp.pack(side ="top")
###All the buttons and placements##
btncore = ttk.Button(text="Install", bootstyle="danger-outline", command=thm, width=8)
btncore.pack(side="left", padx=5, pady=5)
bttut = ttk.Button(text='Cancel', bootstyle="danger-outline", width=8, command=xc )
bttut.pack(side="left", padx=5, pady=5)
#call Center screen
center_screen()
pexs.mainloop()

View File

@ -1,7 +1,7 @@
#!/bin/bash
_extras=wallpapers
_repo="PepWallPaper"
_repo="Peppermint_OS/PepWallPaper"
###########################################
# Quietly have wget -q0- "pipe" its output directly to tar.
@ -10,9 +10,13 @@ _repo="PepWallPaper"
# Leaving no files to remove and no permission changes required.
###########################################
echo -en "\n Downloadng new ${_extras} to /usr/share/"
wget -qO- https://codeberg.org/Peppermint_OS/${_repo}/archive/master.tar.gz |
tar -vxz -C /usr/share 2>/dev/null
echo -e "\n Downloadng Bonus ${_extras} to /usr/share/"
wget https://codeberg.org/${_repo}/archive/master.tar.gz --show-progress -qO - |
tar -xz -C /usr/share 2>/dev/null
echo -e "\n Bonus Wallpapers downloaded and installed.\n"
read -n1 -p " Process Completed. Press any key to close this dialog." answ
# Go back to the Extras
python3 /opt/pypep/pge.py &

85
PepProTools/wallsure.py Executable file → Normal file
View File

@ -1,57 +1,78 @@
#!/usr/bin/env python3
"""
* Author: "PepDebian(peppermintosteam@proton.me)
*
* License: SPDX-License-Identifier: GPL-3.0-or-later
*
* This script is used to help get the wallpapers
"""
import os
import tkinter as tk
from tendo import singleton
import ttkbootstrap as ttk
#setting up window
# setting up window
pexs = ttk.Window(themename="darkly")
window_height = 120
window_width = 420
pexs.title('Additional Wallpaper')
pexs.tk.call('wm', 'iconphoto', pexs._w, tk.PhotoImage(file='/usr/share/pixmaps/peppermint-old.png'))
pexs.tk.call('wm', 'iconphoto', pexs._w, tk.PhotoImage(
file='/usr/share/pixmaps/peppermint-old.png'))
#keep only instance at a time
# keep only instance at a time
me = singleton.SingleInstance()
def center_screen():
""" gets the coordinates of the center of the screen """
global screen_height, screen_width, x_cordinate, y_cordinate
screen_width = pexs.winfo_screenwidth()
screen_height = pexs.winfo_screenheight()
# Coordinates of the upper left corner of the window to make the window appear in the center
x_cordinate = int((screen_width/2) - (window_width/2))
y_cordinate = int((screen_height/2) - (window_height/2))
pexs.geometry("{}x{}+{}+{}".format(window_width, window_height, x_cordinate, y_cordinate))
""" gets the coordinates of the center of the screen """
global screen_height, screen_width, x_cordinate, y_cordinate
screen_width = pexs.winfo_screenwidth()
screen_height = pexs.winfo_screenheight()
# Coordinates of the upper left corner of the window to make the window
# appear in the center
x_cordinate = int((screen_width / 2) - (window_width / 2))
y_cordinate = int((screen_height / 2) - (window_height / 2))
pexs.geometry("{}x{}+{}+{}".format(window_width,
window_height, x_cordinate, y_cordinate))
def wls ():
def wls():
"""Check if user can connect to codeberg"""
pexs.destroy()
os.system('python3 /opt/pypep/diagwlschk.py')
def xc ():
def xc():
"""close the form start back at pge"""
pexs.destroy()
os.popen ('python3 /opt/pypep/pge.py')
#title message
lblexp = ttk.Label(pexs, bootstyle="light", text="Would you like to install addtional wallpaper created by the Peppermint Team and Community?.", wraplength=400)
lblexp.pack(side ="top")
os.popen('python3 /opt/pypep/pge.py')
# title message
lblexp = ttk.Label(
pexs,
bootstyle="light",
text="Would you like to install addtional wallpaper created by the Peppermint Team and Community?.",
wraplength=400)
lblexp.pack(side="top")
###All the buttons and placements##
btncore = ttk.Button(text="Install", bootstyle="danger-outline", command=wls, width=8)
btncore.pack(side="left", padx=5, pady=5)
bttut = ttk.Button(text='Cancel', bootstyle="danger-outline", width=8, command=xc)
bttut.pack(side="left", padx=5, pady=5)
#call Center screen
center_screen()
btncore = ttk.Button(
text="Install",
bootstyle="danger-outline",
command=wls,
width=8)
btncore.pack(side="left", padx=5, pady=5)
bttut = ttk.Button(
text='Cancel',
bootstyle="danger-outline",
width=8,
command=xc)
bttut.pack(side="left", padx=5, pady=5)
# call Center screen
center_screen()
pexs.mainloop()

24
PepProTools/web_bd.py Executable file
View File

@ -0,0 +1,24 @@
#!/usr/bin/env python3
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtWebEngineWidgets import *
import sys
class MainWindow(QMainWindow):
#set up the main window and the url address.
def __init__(self, *args, **kwargs):
super(MainWindow,self).__init__(*args, **kwargs)
self.setWindowTitle("Build Date log")
self.setWindowIcon(QIcon('/usr/share/pixmaps/peppermint-old.png'))
self.browser = QWebEngineView()
self.browser.setUrl(QUrl("https://sourceforge.net/p/peppermintos/pepwiki/BuildDate/"))
self.setCentralWidget(self.browser)
self.show()
app = QApplication(sys.argv)
window = MainWindow()
app.exec_()

22
PepProTools/web_codeb.py Executable file
View File

@ -0,0 +1,22 @@
#!/usr/bin/env python3
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtWebEngineWidgets import *
import sys
class MainWindow(QMainWindow):
#set up the main window and the url address.
def __init__(self, *args, **kwargs):
super(MainWindow,self).__init__(*args, **kwargs)
self.setWindowTitle("Peppermint CodeBerg")
self.setWindowIcon(QIcon('/opt/pypep/cb.png'))
self.browser = QWebEngineView()
self.browser.setUrl(QUrl("https://codeberg.org/Peppermint_OS"))
self.setCentralWidget(self.browser)
self.show()
app = QApplication(sys.argv)
window = MainWindow()
app.exec_()

View File

@ -10,10 +10,10 @@ class MainWindow(QMainWindow):
#set up the main window and the url address.
def __init__(self, *args, **kwargs):
super(MainWindow,self).__init__(*args, **kwargs)
self.setWindowTitle("Peppermint FaceBook(meta) page")
self.setWindowIcon(QIcon('/usr/share/pixmaps/fb.png'))
self.setWindowTitle("Peppermint Mastodon")
self.setWindowIcon(QIcon('/opt/pypep/mn.png'))
self.browser = QWebEngineView()
self.browser.setUrl(QUrl("https://www.facebook.com/peppermintos/"))
self.browser.setUrl(QUrl("https://fosstodon.org/web/@peppermintos"))
self.setCentralWidget(self.browser)
self.show()

23
PepProTools/web_mat.py Executable file
View File

@ -0,0 +1,23 @@
#!/usr/bin/env python3
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtWebEngineWidgets import *
import sys
class MainWindow(QMainWindow):
#set up the main window and the url address.
def __init__(self, *args, **kwargs):
super(MainWindow,self).__init__(*args, **kwargs)
self.setWindowTitle("[matrix]")
self.setWindowIcon(QIcon('/opt/pypep/mt.png'))
self.browser = QWebEngineView()
self.browser.setUrl(QUrl("https://matrix.to/#/!JhPtEbNexzFaoOkvGp:matrix.org?via=matrix.org"))
self.setCentralWidget(self.browser)
self.show()
app = QApplication(sys.argv)
window = MainWindow()
app.exec_()

View File

@ -10,10 +10,10 @@ class MainWindow(QMainWindow):
#set up the main window and the url address.
def __init__(self, *args, **kwargs):
super(MainWindow,self).__init__(*args, **kwargs)
self.setWindowTitle("Peppermint ICE Tutorial")
self.setWindowTitle("PepDocs")
self.setWindowIcon(QIcon('/usr/share/pixmaps/peppermint-old.png'))
self.browser = QWebEngineView()
self.browser.setUrl(QUrl("https://peppermintos.com/guide/ice/"))
self.browser.setUrl(QUrl("https://peppermint_os.codeberg.page/html/"))
self.setCentralWidget(self.browser)
self.show()

23
PepProTools/web_reddit.py Executable file
View File

@ -0,0 +1,23 @@
#!/usr/bin/env python3
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtWebEngineWidgets import *
import sys
class MainWindow(QMainWindow):
#set up the main window and the url address.
def __init__(self, *args, **kwargs):
super(MainWindow,self).__init__(*args, **kwargs)
self.setWindowTitle("Peppermint Reddit")
self.setWindowIcon(QIcon('/opt/pypep/rd.png'))
self.browser = QWebEngineView()
self.browser.setUrl(QUrl("https://www.reddit.com/r/PeppermintOS/"))
self.setCentralWidget(self.browser)
self.show()
app = QApplication(sys.argv)
window = MainWindow()
app.exec_()

23
PepProTools/web_sf.py Executable file
View File

@ -0,0 +1,23 @@
#!/usr/bin/env python3
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtWebEngineWidgets import *
import sys
class MainWindow(QMainWindow):
#set up the main window and the url address.
def __init__(self, *args, **kwargs):
super(MainWindow,self).__init__(*args, **kwargs)
self.setWindowTitle("Community Forums")
self.setWindowIcon(QIcon('/opt/pypep/sf.png'))
self.browser = QWebEngineView()
self.browser.setUrl(QUrl("https://sourceforge.net/p/peppermintos/pepos/"))
self.setCentralWidget(self.browser)
self.show()
app = QApplication(sys.argv)
window = MainWindow()
app.exec_()

45
PepProTools/web_tutorial.py Executable file
View File

@ -0,0 +1,45 @@
#!/usr/bin/env python3
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtWebEngineWidgets import *
import sys
class MainWindow(QMainWindow):
#set up the main window and the url address.
def __init__(self, *args, **kwargs):
super(MainWindow,self).__init__(*args, **kwargs)
self.setWindowTitle("Peppermint Kumo Tutorial")
self.setWindowIcon(QIcon('/usr/share/pixmaps/peppermint-old.png'))
self.browser = QWebEngineView()
self.browser.setUrl(QUrl("https://peppermint_os.codeberg.page/html/#kumo"))
self.setCentralWidget(self.browser)
#add a nav toolbar
self.navigation_bar = QToolBar('Navigation Toolbar')
self.addToolBar(self.navigation_bar)
#put a back button
back_button = QAction("Back", self)
back_button.setStatusTip('Go to previous page you visited')
back_button.triggered.connect(self.browser.back)
self.navigation_bar.addAction(back_button)
#put a next button
next_button = QAction("Next", self)
next_button.setStatusTip('Go to next page')
next_button.triggered.connect(self.browser.forward)
self.navigation_bar.addAction(next_button)
#put a refresh button
refresh_button = QAction("Refresh", self)
refresh_button.setStatusTip('Refresh this page')
refresh_button.triggered.connect(self.browser.reload)
self.navigation_bar.addAction(refresh_button)
self.show()
app = QApplication(sys.argv)
window = MainWindow()
app.exec_()

View File

@ -1,217 +1,307 @@
#!/usr/bin/env python3
"""
* Author: "PepDebian(peppermintosteam@proton.me)
*
* License: SPDX-License-Identifier: GPL-3.0-or-later
*
* This script is used to welcome the user to the system
"""
import os
import subprocess as sp
import tkinter as tk
import sqlite3
from tkinter import *
from tkinter import ttk
from tkinter import font
from ttkthemes import ThemedTk
from tkinter import PhotoImage
from tendo import singleton
import ttkbootstrap as ttk
import welconf
import welfunc
#database connection string
conn = sqlite3.connect('/opt/pypep/dbpep/welval.db')
pcur = conn.cursor()
#Create the table
pcur.execute(""" CREATE TABLE IF NOT EXISTS welchk ( id integer PRIMARY KEY AUTOINCREMENT, nosee text); """)
# setting up window
pewel = welconf.bbstyle
pewel.resizable(False, False)
WINDOW_HEIGHT = 540
WINDOW_WIDTH = 770
def wbase():
"""Check to see what base is being loaded"""
if os.path.exists("/etc/devuan_version"):
pewel.title(welconf.DEVUAN_TITLE)
lpath = welconf.devcandy
l_g = tk.Label(pewel, image=lpath, width=128, height=128, borderwidth=0)
l_g.grid(
columnspan=2,
row=0,
column=0,
ipadx=5,
ipady=5,
padx=5,
pady=5)
elif os.path.exists("/etc/debian_version"):
pewel.title(welconf.DEBIAN_TITLE)
lpath = welconf.debcandy
l_g = tk.Label(pewel, image=lpath, width=128, height=128, borderwidth=0)
l_g.grid(
columnspan=2,
row=0,
column=0,
ipadx=5,
ipady=5,
padx=5,
pady=5)
#setting up window
pwel = ThemedTk(theme='clam')
window_height = 630
window_width = 750
pwel.title('Welcome to Peppermint')
pwel.tk.call('wm', 'iconphoto', pwel._w, tk.PhotoImage(file='/usr/share/pixmaps/peppermint-old.png'))
pwel['bg']='#2f2f2f'
#keep only instance at a time
me = singleton.SingleInstance()
#logo for the splash
lpath = PhotoImage(file = '/opt/pypep/peppermint-old.png')
lg = tk.Label(pwel, image=lpath, width=128, height=128, borderwidth=0)
lg.place(x=10, y=10)
lpath2 = PhotoImage(file = '/opt/pypep/peppermint-word-white.png')
lg2 = tk.Label(pwel, image=lpath2, width=600, height=80, borderwidth=0)
lg2.place(x=140, y=35)
#main title style
spmt = ttk.Style()
spmt.configure("#F62817.TLabel", foreground ="#b12026", background ="#2f2f2f", font = ("Helvetica", '32', 'bold') )
#main information syles
subpmt = ttk.Style()
subpmt.configure("Whiteb.TLabel", foreground ="#ffffff", background ="#2f2f2f", font = ('Helvetica', '14', 'bold') )
detpmt = ttk.Style()
detpmt.configure("det.TLabel", foreground ="#ffffff", background ="#2f2f2f", font = ('Helvetica', '12') )
#style the buttons
stbnt = ttk.Style()
stbnt.configure('pep.TButton', font = ('Helvetica', '14', 'bold'))
stbnt.map("pep.TButton",
foreground=[('!active', '#F62817'),('pressed', '#2f2f2f'), ('active', 'white')],
background=[ ('!active','#2f2f2f'),('pressed', '#2f2f2f'), ('active', '#2f2f2f')],
)
cbtn = ttk.Style()
cbtn.map("hpep.TButton",
foreground=[('!active', '#F62817'),('pressed', 'white'), ('active', '#F62817')],
background=[ ('!active','#2f2f2f'),('pressed', '#2f2f2f'), ('active', '#2f2f2f')]
)
###Verbiage and titel Placements###
lblpmwelttl = ttk.Label(pwel, style="Whiteb.TLabel", text="Welcome to Peppermint OS")
lblpmwelttl.place(x=10, y=150)
lblinfo1 = ttk.Label(pwel, style="det.TLabel", text="Make system changes, and customizations", wraplength=500)
lblinfo1.place(x=235, y=450)
lblinfo4 = ttk.Label(pwel, style="det.TLabel",text="Select from a variety of web browsers to install", wraplength=720)
lblinfo4.place(x=235, y=270)
lblinfo5 = ttk.Label(pwel, style="det.TLabel",text="Learn how to use ICE to create and manage your SSB's", wraplength=720)
lblinfo5.place(x=235, y=390)
lblinfo10 = ttk.Label(pwel, style="det.TLabel",text="Download all the Peppermint Extras", wraplength=720)
lblinfo10.place(x=235, y=330)
lblinfo8 = ttk.Label(pwel, style="det.TLabel",text="We hope you enjoy -Everything you need & nothing you don't-", wraplength=720)
lblinfo8.place(x=10, y=180)
lblinfo9 = ttk.Label(pwel, style="det.TLabel",text="~ @PCNetSpec 1961-2020", wraplength=720)
lblinfo9.place(x=10, y=210)
lblinfo11 = ttk.Label(pwel, style="det.TLabel",text="Read about what has changed", wraplength=720)
lblinfo11.place(x=235, y=510)
lblinfo12 = ttk.Label(pwel, style="Whiteb.TLabel",text="Community Links", wraplength=720)
lblinfo12.place(x=10, y=550)
#Functions to open the other pythons files. or close this screen ###
def pks ():
# pwel.destroy()
os.system('pkexec python3 /opt/pypep/peppackages.py')
def pge ():
pwel.destroy()
os.system('python3 /opt/pypep/pge.py')
#open the pep hub
def hub ():
# pwel.destroy()
os.system('python3 /opt/pypep/hub.py &')
#make your own path Closed windows
def mop ():
pwel.destroy()
#open the ice tutorial script
def tut ():
# pwel.destroy()
os.system('python3 /opt/pypep/tutorial.py &')
def rls ():
# pwel.destroy()
os.system('python3 /opt/pypep/release.py &')
def dshow():
#first see if the window should show or not.
pcur.execute("SELECT COUNT(*) FROM welchk WHERE nosee ='yes'")
crresult = pcur.fetchone()
if int(crresult[0]) > 0:
#close window
pwel.destroy()
else:
#PlaceHolder to do nothing
pass
def setdshow():
nosinsert = """ INSERT INTO welchk(nosee) VALUES ('yes');"""
pcur.execute(nosinsert)
conn.commit()
cbhide['text'] = 'No Show Set'
def twr ():
# pwel.destroy()
os.system('python3 /opt/pypep/twtr.py &')
def fb ():
# pwel.destroy()
os.system('python3 /opt/pypep/fb.py &')
def frm ():
# pwel.destroy()
os.system('python3 /opt/pypep/frm.py &')
def center_screen():
""" gets the coordinates of the center of the screen """
global screen_height, screen_width, x_cordinate, y_cordinate
screen_width = pwel.winfo_screenwidth()
screen_height = pwel.winfo_screenheight()
# Coordinates of the upper left corner of the window to make the window appear in the center
x_cordinate = int((screen_width/2) - (window_width/2))
y_cordinate = int((screen_height/2) - (window_height/2))
pwel.geometry("{}x{}+{}+{}".format(window_width, window_height, x_cordinate, y_cordinate))
""" gets the coordinates of the center of the screen """
screen_width = pewel.winfo_screenwidth()
screen_height = pewel.winfo_screenheight()
# Coordinates of the upper left corner of the window to make the window
# appear in the center
x_cordinate = int((screen_width / 2) - (WINDOW_WIDTH / 2))
y_cordinate = int((screen_height / 2) - (WINDOW_HEIGHT / 2))
pewel.geometry("{}x{}+{}+{}".format(WINDOW_WIDTH,
WINDOW_HEIGHT, x_cordinate, y_cordinate))
#Social Icons
icotwit = PhotoImage(file = "/usr/share/pixmaps/twtter.png")
icotfb = PhotoImage(file = "/usr/share/pixmaps/fb.png")
icotfm = PhotoImage(file = "/usr/share/pixmaps/peppermint-fm-20.png")
def kon():
""" This feature will is the disabled the welcome screen"""
# This will get the logged in user
gusr = tk.StringVar()
gusr.set(os.getlogin())
# set it in to as entry box
txtcappuser = ttk.Entry(pewel, bootstyle="success", width=10, text=gusr)
# set that as a variable
usr = txtcappuser.get()
# Create path variable
spath = "/home/" + usr + "/.config/autostart/"
if os.path.isfile(spath + "Welcome_auto.desktop"):
cbas = ttk.Checkbutton(
pewel,
text="Disable Auto start",
bootstyle="light-round-toggle",
command=kon_del)
cbas.grid(row=2, column=6)
else:
cbas = ttk.Checkbutton(
pewel,
text="Disable Auto start",
bootstyle="light-round-toggle")
###All the buttons and Placements##
btncore = ttk.Button(text="Open Pephub", style="pep.TButton", command=hub, width=20, cursor="hand2")
btncore.place(x=10, y=440)
bttut = ttk.Button(text='ICE Tutorial', command=tut, style="pep.TButton", width=20, cursor="hand2" )
bttut.place(x=10, y=380)
btpge = ttk.Button(text='Peppermint Extras', command=pge, style="pep.TButton", width=20, cursor="hand2" )
btpge.place(x=10, y=320)
btpks = ttk.Button(text='Install a Web Browser', command=pks, style="pep.TButton", width=20, cursor="hand2" )
btpks.place(x=10, y=260)
btnrn = ttk.Button(text="Release Notes", style="pep.TButton", command=rls, width=20, cursor="hand2")
btnrn.place(x=10, y=500)
btntwit = ttk.Button( width = '5', style="pep.TButton", image = icotwit ,cursor="hand2", command=twr)
btntwit.place(x=15, y=575)
btnfb = ttk.Button( width = '5', style="pep.TButton", image = icotfb ,cursor="hand2", command=fb)
btnfb.place(x=70, y=575)
btnfm = ttk.Button( width = '5', style="pep.TButton", image = icotfm ,cursor="hand2", command=frm)
btnfm.place(x=125, y=575)
#button to hide.
cbhide = ttk.Button (pwel, text = "Don't Show Again", style="hpep.TButton", command=setdshow)
cbhide.place(x=600, y=150)
def kon_del():
""" This feature will let the user disable the welcome screen"""
# This will get the logged in user
gusr = tk.StringVar()
gusr.set(os.getlogin())
# set it in to as entry box
txtcappuser = ttk.Entry(pewel, bootstyle="danger", width=10, text=gusr)
# set that as a variable
usr = txtcappuser.get()
# Create path variable
spath = "/home/" + usr + "/.config/autostart/"
if os.path.isfile(spath + "Welcome_auto.desktop"):
os.remove(spath + "Welcome_auto.desktop")
print("sym deleted")
else:
print("no welcome sym to delete")
#close db connection
pcur.close
#call Center screen
# Set the window icon
pewel.tk.call('wm', 'iconphoto', pewel._w, tk.PhotoImage(
file='/usr/share/pixmaps/peppermint-old.png'))
# logo for the splash
lpath2 = welconf.peppertxt
lg2 = tk.Label(pewel, image=lpath2, width=600, height=80, borderwidth=0)
lg2.grid(columnspan=4, row=0, column=3, ipadx=5, ipady=5, padx=5, pady=5)
# Frame that managed the Welcome To Peppermint Section
fsw = ttk.Frame(pewel, width=200)
fsw.grid(row=1, column=0, columnspan=4)
# Frame title
wms = ttk.Labelframe(fsw, bootstyle="warning", text="Welcome to Peppermint OS")
wms.grid(row=2, column=0, columnspan=2, ipadx=0, ipady=0, padx=10, pady=10)
# Frame Buttons
btnsaw = ttk.Button(
wms,
text="Apps & Web Browser",
cursor="hand2",
style="danger-outline",
command=welfunc.suggested_packages)
btnsaw.grid(row=0, column=0, ipadx=5, ipady=5, padx=5, pady=5, sticky='ew')
btnph = ttk.Button(
wms,
text="Peppermint Hub",
cursor="hand2",
bootstyle="danger-outline",
command=welfunc.hub)
btnph.grid(row=1, column=0, ipadx=5, ipady=5, padx=5, pady=5, sticky='ew')
btnwik = ttk.Button(
wms,
text="Kumo Docs",
cursor="hand2",
bootstyle="danger-outline",
command=welfunc.kumo_docs)
btnwik.grid(row=2, column=0, ipadx=5, ipady=5, padx=5, pady=5, sticky='ew')
btnpge = ttk.Button(
wms,
text="Peppermint Extra's",
cursor="hand2",
bootstyle="danger-outline",
command=welfunc.pep_extras)
btnpge.grid(row=3, column=0, ipadx=5, ipady=5, padx=5, pady=5, sticky='ew')
btnpdocs = ttk.Button(
wms,
text="Pep Docs",
cursor="hand2",
bootstyle="danger-outline",
command=welfunc.pep_docs)
btnpdocs.grid(row=4, column=0, ipadx=5, ipady=5, padx=5, pady=5, sticky='ew')
btnbdl = ttk.Button(
wms,
text="Build Log",
cursor="hand2",
bootstyle="danger-outline",
command=welfunc.build_date)
btnbdl.grid(row=5, column=0, ipadx=5, ipady=5, padx=5, pady=5, sticky='ew')
# Frame labels
lblsaw = ttk.Label(wms, text=" - Select Packages and Web Browsers ",
wraplength=300)
lblsaw.grid(row=0, column=1, sticky='ew')
lblph = ttk.Label(wms, text=" - System changes, and customizations ",
wraplength=300)
lblph.grid(row=1, column=1, sticky='ew')
lblwik = ttk.Label(wms, text=" - Read how to create and manage SSB's ",
wraplength=300)
lblwik.grid(row=2, column=1, sticky='ew')
lblpge = ttk.Label(wms, text=" - Download all the Peppermint Extras ",
wraplength=300)
lblpge.grid(row=3, column=1, sticky='ew')
lblpdocs = ttk.Label(wms, text=" - Peppermint Online Documentation",
wraplength=300)
lblpdocs.grid(row=4, column=1, sticky='ew')
lblbdl = ttk.Label(wms, text=" - Review the build log",
wraplength=300)
lblbdl.grid(row=5, column=1, sticky='ew')
# Frame that manages the Community buttons
fs = ttk.Frame(pewel)
fs.grid(row=1, column=5, columnspan=2, ipadx=0, ipady=0, padx=10, pady=10)
# Frame Title
soc = ttk.Labelframe(fs, bootstyle="warning", text="The Peppermint Community")
soc.grid(row=0, column=0)
# Frame message
lblqt = ttk.Label(fs, text=welconf.MESSAGE_TEXT,
wraplength=250)
lblqt.grid(row=1, column=0, sticky='ew')
# Social Icons
icotms = welconf.tms
icotfm = welconf.fm
icotmat = welconf.mat
icotrd = welconf.rd
icotcb = welconf.cb
# Social buttons
btncf = ttk.Button(
soc,
text="Forums",
cursor="hand2",
bootstyle="dark-outline",
image=icotfm,
command=welfunc.source_forge)
btncf.grid(
row=0,
column=0,
ipadx=10,
ipady=10,
padx=10,
pady=10,
sticky='nesw'
)
btnrd = ttk.Button(
soc,
text="Reddit",
cursor="hand2",
bootstyle="dark-outline",
image=icotrd,
command=welfunc.reddit)
btnrd.grid(
row=0,
column=1,
ipadx=10,
ipady=10,
padx=10,
pady=10,
sticky='nesw'
)
btnmt = ttk.Button(
soc,
text="-matrix-",
cursor="hand2",
bootstyle="dark-outline",
image=icotmat,
command=welfunc.matrix)
btnmt.grid(
row=0,
column=2,
ipadx=10,
ipady=10,
padx=10,
pady=10,
sticky='nesw'
)
btnmas = ttk.Button(
soc,
text="Mastodon",
cursor="hand2",
bootstyle="dark-outline",
image=icotms,
command=welfunc.mastodon)
btnmas.grid(
row=1,
column=1,
ipadx=10,
ipady=10,
padx=10,
pady=10,
sticky='nesw'
)
btncb = ttk.Button(
soc,
text="CodeBerg",
cursor="hand2",
bootstyle="dark-outline",
image=icotcb,
command=welfunc.code_berg)
btncb.grid(
row=1,
column=0,
ipadx=10,
ipady=10,
padx=10,
pady=10,
sticky='nesw'
)
# set the correct build branding
wbase()
kon()
# call Center screen
center_screen()
#Run this window#
dshow()
pwel.mainloop()
# run the application
pewel.mainloop()

View File

@ -1,172 +1,308 @@
#!/usr/bin/env python3
"""
* Author: "PepDebian(peppermintosteam@proton.me)
*
* License: SPDX-License-Identifier: GPL-3.0-or-later
*
* This script is used to welcome the user to the system
"""
import os
import subprocess as sp
import tkinter as tk
from tkinter import *
from tkinter import ttk
from tkinter import font
from ttkthemes import ThemedTk
from tkinter import PhotoImage
from tendo import singleton
import ttkbootstrap as ttk
import welconf
import welfunc
#setting up window
pwel = ThemedTk(theme='clam')
window_height = 630
window_width = 750
pwel.title('Welcome to Peppermint')
pwel.tk.call('wm', 'iconphoto', pwel._w, tk.PhotoImage(file='/usr/share/pixmaps/peppermint-old.png'))
pwel['bg']='#2f2f2f'
#keep only instance at a time
me = singleton.SingleInstance()
#logo for the splash
lpath = PhotoImage(file = '/opt/pypep/peppermint-old.png')
lg = tk.Label(pwel, image=lpath, width=128, height=128, borderwidth=0)
lg.place(x=10, y=10)
lpath2 = PhotoImage(file = '/opt/pypep/peppermint-word-white.png')
lg2 = tk.Label(pwel, image=lpath2, width=600, height=80, borderwidth=0)
lg2.place(x=140, y=35)
# setting up window
pewel = welconf.bbstyle
pewel.resizable(False, False)
WINDOW_HEIGHT = 540
WINDOW_WIDTH = 770
def wbase():
"""Check to see what base is being loaded"""
if os.path.exists("/etc/devuan_version"):
pewel.title(welconf.DEVUAN_TITLE)
lpath = welconf.devcandy
l_g = tk.Label(pewel, image=lpath, width=128, height=128, borderwidth=0)
l_g.grid(
columnspan=2,
row=0,
column=0,
ipadx=5,
ipady=5,
padx=5,
pady=5)
elif os.path.exists("/etc/debian_version"):
pewel.title(welconf.DEBIAN_TITLE)
lpath = welconf.debcandy
l_g = tk.Label(pewel, image=lpath, width=128, height=128, borderwidth=0)
l_g.grid(
columnspan=2,
row=0,
column=0,
ipadx=5,
ipady=5,
padx=5,
pady=5)
#main title style
spmt = ttk.Style()
spmt.configure("#F62817.TLabel", foreground ="#b12026", background ="#2f2f2f", font = ("Helvetica", '32', 'bold') )
#main information syles
subpmt = ttk.Style()
subpmt.configure("Whiteb.TLabel", foreground ="#ffffff", background ="#2f2f2f", font = ('Helvetica', '14', 'bold') )
detpmt = ttk.Style()
detpmt.configure("det.TLabel", foreground ="#ffffff", background ="#2f2f2f", font = ('Helvetica', '12'))
#style the buttons
stbnt = ttk.Style()
stbnt.configure('pep.TButton', font = ('Helvetica', '14', 'bold'))
stbnt.map('pep.TButton',
foreground=[('!active', '#F62817'),('pressed', '#2f2f2f'), ('active', 'white')],
background=[ ('!active','#2f2f2f'),('pressed', '#2f2f2f'), ('active', '#2f2f2f')]
)
###Verbiage and titel Placements###
lblpmwelttl = ttk.Label(pwel, style="Whiteb.TLabel", text="Welcome to Peppermint OS")
lblpmwelttl.place(x=10, y=150)
lblinfo1 = ttk.Label(pwel, style="det.TLabel", text="Make system changes, and customizations", wraplength=500)
lblinfo1.place(x=235, y=450)
lblinfo4 = ttk.Label(pwel, style="det.TLabel",text="Select from a variety of web browsers to install", wraplength=720)
lblinfo4.place(x=235, y=270)
lblinfo5 = ttk.Label(pwel, style="det.TLabel",text="Learn how to use ICE to create and manage your SSB's", wraplength=720)
lblinfo5.place(x=235, y=390)
lblinfo10 = ttk.Label(pwel, style="det.TLabel",text="Download all the Peppermint Extras", wraplength=720)
lblinfo10.place(x=235, y=330)
lblinfo8 = ttk.Label(pwel, style="det.TLabel",text="We hope you enjoy -Everything you need & nothing you don't-", wraplength=720)
lblinfo8.place(x=10, y=180)
lblinfo9 = ttk.Label(pwel, style="det.TLabel",text="~ @PCNetSpec 1961-2020", wraplength=720)
lblinfo9.place(x=10, y=210)
lblinfo11 = ttk.Label(pwel, style="det.TLabel",text="Read about what has changed", wraplength=720)
lblinfo11.place(x=235, y=510)
lblinfo12 = ttk.Label(pwel, style="Whiteb.TLabel",text="Community Links", wraplength=720)
lblinfo12.place(x=10, y=550)
#Functions to open the other pythons files. or close this screen ###
def pks ():
# pwel.destroy()
os.system('pkexec python3 /opt/pypep/peppackages.py')
def pge ():
pwel.destroy()
os.system('python3 /opt/pypep/pge.py')
def mop ():
pwel.destroy()
def hub ():
# pwel.destroy()
os.system('python3 /opt/pypep/hub.py &')
def wte ():
os.system('python3 /opt/pypep/expect.py &')
def tut ():
# pwel.destroy()
os.system('python3 /opt/pypep/tutorial.py &')
def rls ():
# pwel.destroy()
os.system('python3 /opt/pypep/release.py &')
def twr ():
# pwel.destroy()
os.system('python3 /opt/pypep/twtr.py &')
def fb ():
# pwel.destroy()
os.system('python3 /opt/pypep/fb.py &')
def frm ():
# pwel.destroy()
os.system('python3 /opt/pypep/frm.py &')
def center_screen():
""" gets the coordinates of the center of the screen """
global screen_height, screen_width, x_cordinate, y_cordinate
screen_width = pwel.winfo_screenwidth()
screen_height = pwel.winfo_screenheight()
# Coordinates of the upper left corner of the window to make the window appear in the center
x_cordinate = int((screen_width/2) - (window_width/2))
y_cordinate = int((screen_height/2) - (window_height/2))
pwel.geometry("{}x{}+{}+{}".format(window_width, window_height, x_cordinate, y_cordinate))
#Social Icons
icotwit = PhotoImage(file = "/usr/share/pixmaps/twtter.png")
icotfb = PhotoImage(file = "/usr/share/pixmaps/fb.png")
icotfm = PhotoImage(file = "/usr/share/pixmaps/peppermint-fm-20.png")
###All the buttons and Placements##
btncore = ttk.Button(text="Open Pephub", style="pep.TButton", command=hub, width=20)
btncore.place(x=10, y=440)
bttut = ttk.Button(text='ICE Tutorial', command=tut, style="pep.TButton", width=20 )
bttut.place(x=10, y=380)
btpks = ttk.Button(text='Install a Web Browser', command=pks, style="pep.TButton", width=20 )
btpks.place(x=10, y=260)
btpge = ttk.Button(text='Peppermint Extras', command=pge, style="pep.TButton", width=20 )
btpge.place(x=10, y=320)
btnrn = ttk.Button(text="Release Notes", style="pep.TButton", command=rls, width=20)
btnrn.place(x=10, y=500)
btntwit = ttk.Button( width = '5', style="pep.TButton", image = icotwit ,cursor="hand2", command=twr )
btntwit.place(x=15, y=575)
btnfb = ttk.Button( width = '5', style="pep.TButton", image = icotfb ,cursor="hand2", command=fb)
btnfb.place(x=70, y=575)
btnfm = ttk.Button( width = '5', style="pep.TButton", image = icotfm ,cursor="hand2", command=frm)
btnfm.place(x=125, y=575)
""" gets the coordinates of the center of the screen """
screen_width = pewel.winfo_screenwidth()
screen_height = pewel.winfo_screenheight()
# Coordinates of the upper left corner of the window to make the window
# appear in the center
x_cordinate = int((screen_width / 2) - (WINDOW_WIDTH / 2))
y_cordinate = int((screen_height / 2) - (WINDOW_HEIGHT / 2))
pewel.geometry("{}x{}+{}+{}".format(WINDOW_WIDTH,
WINDOW_HEIGHT, x_cordinate, y_cordinate))
#call Center screen
def kon():
""" This feature will is the disabled the welcome screen"""
# This will get the logged in user
gusr = tk.StringVar()
gusr.set(os.getlogin())
# set it in to as entry box
txtcappuser = ttk.Entry(pewel, bootstyle="success", width=10, text=gusr)
# set that as a variable
usr = txtcappuser.get()
# Create path variable
spath = "/home/" + usr + "/.config/autostart/"
if os.path.isfile(spath + "Welcome_auto.desktop"):
cbas = ttk.Checkbutton(
pewel,
text="Disable Auto start",
bootstyle="light-round-toggle",
command=kon_del)
cbas.grid(row=2, column=6)
else:
cbas = ttk.Checkbutton(
pewel,
text="Disable Auto start",
bootstyle="light-round-toggle")
def kon_del():
""" This feature will let the user disable the welcome screen"""
# This will get the logged in user
gusr = tk.StringVar()
gusr.set(os.getlogin())
# set it in to as entry box
txtcappuser = ttk.Entry(pewel, bootstyle="danger", width=10, text=gusr)
# set that as a variable
usr = txtcappuser.get()
# Create path variable
spath = "/home/" + usr + "/.config/autostart/"
if os.path.isfile(spath + "Welcome_auto.desktop"):
os.remove(spath + "Welcome_auto.desktop")
print("sym deleted")
else:
print("no welcome sym to delete")
# Set the window icon
pewel.tk.call('wm', 'iconphoto', pewel._w, tk.PhotoImage(
file='/usr/share/pixmaps/peppermint-old.png'))
# logo for the splash
lpath2 = welconf.peppertxt
lg2 = tk.Label(pewel, image=lpath2, width=600, height=80, borderwidth=0)
lg2.grid(columnspan=4, row=0, column=3, ipadx=5, ipady=5, padx=5, pady=5)
# Frame that managed the Welcome To Peppermint Section
fsw = ttk.Frame(pewel, width=200)
fsw.grid(row=1, column=0, columnspan=4)
# Frame title
wms = ttk.Labelframe(fsw, bootstyle="warning", text="Welcome to Peppermint OS")
wms.grid(row=2, column=0, columnspan=2, ipadx=0, ipady=0, padx=10, pady=10)
# Frame Buttons
btnsaw = ttk.Button(
wms,
text="Apps & Web Browser",
cursor="hand2",
style="danger-outline",
command=welfunc.suggested_packages)
btnsaw.grid(row=0, column=0, ipadx=5, ipady=5, padx=5, pady=5, sticky='ew')
btnph = ttk.Button(
wms,
text="Peppermint Hub",
cursor="hand2",
bootstyle="danger-outline",
command=welfunc.hub)
btnph.grid(row=1, column=0, ipadx=5, ipady=5, padx=5, pady=5, sticky='ew')
btnwik = ttk.Button(
wms,
text="Kumo Docs",
cursor="hand2",
bootstyle="danger-outline",
command=welfunc.kumo_docs)
btnwik.grid(row=2, column=0, ipadx=5, ipady=5, padx=5, pady=5, sticky='ew')
btnpge = ttk.Button(
wms,
text="Peppermint Extra's",
cursor="hand2",
bootstyle="danger-outline",
command=welfunc.pep_extras)
btnpge.grid(row=3, column=0, ipadx=5, ipady=5, padx=5, pady=5, sticky='ew')
btnpdocs = ttk.Button(
wms,
text="Pep Docs",
cursor="hand2",
bootstyle="danger-outline",
command=welfunc.pep_docs)
btnpdocs.grid(row=4, column=0, ipadx=5, ipady=5, padx=5, pady=5, sticky='ew')
btnbdl = ttk.Button(
wms,
text="Build Log",
cursor="hand2",
bootstyle="danger-outline",
command=welfunc.build_date)
btnbdl.grid(row=5, column=0, ipadx=5, ipady=5, padx=5, pady=5, sticky='ew')
# Frame labels
lblsaw = ttk.Label(wms, text=" - Select Packages and Web Browsers ",
wraplength=300)
lblsaw.grid(row=0, column=1, sticky='ew')
lblph = ttk.Label(wms, text=" - System changes, and customizations ",
wraplength=300)
lblph.grid(row=1, column=1, sticky='ew')
lblwik = ttk.Label(wms, text=" - Read how to create and manage SSB's ",
wraplength=300)
lblwik.grid(row=2, column=1, sticky='ew')
lblpge = ttk.Label(wms, text=" - Download all the Peppermint Extras ",
wraplength=300)
lblpge.grid(row=3, column=1, sticky='ew')
lblpdocs = ttk.Label(wms, text=" - Peppermint Online Documentation",
wraplength=300)
lblpdocs.grid(row=4, column=1, sticky='ew')
lblbdl = ttk.Label(wms, text=" - Review the build log",
wraplength=300)
lblbdl.grid(row=5, column=1, sticky='ew')
# Frame that manages the Community buttons
fs = ttk.Frame(pewel)
fs.grid(row=1, column=5, columnspan=2, ipadx=0, ipady=0, padx=10, pady=10)
# Frame Title
soc = ttk.Labelframe(fs, bootstyle="warning", text="The Peppermint Community")
soc.grid(row=0, column=0)
# Frame message
lblqt = ttk.Label(fs, text=welconf.MESSAGE_TEXT,
wraplength=250)
lblqt.grid(row=1, column=0, sticky='ew')
# Social Icons
icotms = welconf.tms
icotfm = welconf.fm
icotmat = welconf.mat
icotrd = welconf.rd
icotcb = welconf.cb
# Social buttons
btncf = ttk.Button(
soc,
text="Forums",
cursor="hand2",
bootstyle="dark-outline",
image=icotfm,
command=welfunc.source_forge)
btncf.grid(
row=0,
column=0,
ipadx=10,
ipady=10,
padx=10,
pady=10,
sticky='nesw'
)
btnrd = ttk.Button(
soc,
text="Reddit",
cursor="hand2",
bootstyle="dark-outline",
image=icotrd,
command=welfunc.reddit)
btnrd.grid(
row=0,
column=1,
ipadx=10,
ipady=10,
padx=10,
pady=10,
sticky='nesw'
)
btnmt = ttk.Button(
soc,
text="-matrix-",
cursor="hand2",
bootstyle="dark-outline",
image=icotmat,
command=welfunc.matrix)
btnmt.grid(
row=0,
column=2,
ipadx=10,
ipady=10,
padx=10,
pady=10,
sticky='nesw'
)
btnmas = ttk.Button(
soc,
text="Mastodon",
cursor="hand2",
bootstyle="dark-outline",
image=icotms,
command=welfunc.mastodon)
btnmas.grid(
row=1,
column=1,
ipadx=10,
ipady=10,
padx=10,
pady=10,
sticky='nesw'
)
btncb = ttk.Button(
soc,
text="CodeBerg",
cursor="hand2",
bootstyle="dark-outline",
image=icotcb,
command=welfunc.code_berg)
btncb.grid(
row=1,
column=0,
ipadx=10,
ipady=10,
padx=10,
pady=10,
sticky='nesw'
)
# set the correct build branding
wbase()
kon()
# call Center screen
center_screen()
#Run this window#
pwel.mainloop()
# run the application
pewel.mainloop()

38
PepProTools/welconf.py Normal file
View File

@ -0,0 +1,38 @@
"""
* Author: "PepDebian(peppermintosteam@proton.me)
*
* License: SPDX-License-Identifier: GPL-3.0-or-later
*
* this files should be used for the over all style and design of
* the Welcome Screen
"""
from tkinter import PhotoImage
import ttkbootstrap as ttk
# This will set the style to used for boostrap
# just change the name to what is needed for the
# the system
bbstyle = ttk.Window(themename="darkly")
# set the title of the window
DEBIAN_TITLE = "Welcome to Peppermint - (Debian)"
DEVUAN_TITLE = "Welcome to Peppermint - (Devuan)"
# set the logo for the screen
debcandy = PhotoImage(file='/opt/pypep/pep-logo-deb.png')
devcandy = PhotoImage(file='/opt/pypep/pep-logo-dev.png')
# add the logo text
peppertxt = PhotoImage(file='/opt/pypep/peppermint-word-white.png')
# set the icons that are used for the community buttons
tms = PhotoImage(file="/opt/pypep/mn.png")
fm = PhotoImage(file="/opt/pypep/sf.png")
mat = PhotoImage(file="/opt/pypep/mt.png")
rd = PhotoImage(file="/opt/pypep/rd.png")
cb = PhotoImage(file="/opt/pypep/cb.png")
# set the message for the community section
MESSAGE_TEXT = ("Come join the conversation and discussion about"
" PeppermintOS using these links to participate in"
" the community.")

72
PepProTools/welfunc.py Normal file
View File

@ -0,0 +1,72 @@
"""
* Author: "PepDebian(peppermintosteam@proton.me)
*
* License: SPDX-License-Identifier: GPL-3.0-or-later
*
* This file is used to keep functions that are used for the Welcome
* Screen
"""
import os.path
def suggested_packages():
""" Open the suggested packages """
os.system('pkexec python3 /opt/pypep/peppackages.py')
def pep_extras():
"""Open peppemrinmt Extra's"""
os.system('python3 /opt/pypep/pge.py')
def hub():
"""Open the Hub"""
os.system('python3 /opt/pypep/hub.py &')
##SSB's###
def kumo_docs():
"""Open the Kumo docs"""
os.system('python3 /opt/pypep/web_tutorial.py &')
def pep_docs():
"""Open Pep Docs"""
os.system('python3 /opt/pypep/web_pdocs.py &')
# Community Section
def twitter():
"""Open the Pep twitter"""
os.system('python3 /opt/pypep/web_twtr.py &')
def reddit():
"""Open Reddit"""
os.system('python3 /opt/pypep/web_reddit.py &')
def mastodon():
"""Open Mastodon"""
os.system('python3 /opt/pypep/web_mas.py &')
def code_berg():
"""Open Codeberg"""
os.system('python3 /opt/pypep/web_codeb.py &')
def matrix():
"""Open Matrix"""
os.system('python3 /opt/pypep/web_mat.py &')
def source_forge():
"""Open Sourceforge"""
os.system('python3 /opt/pypep/web_sf.py &')
def build_date():
"""Open BuildDate wiki"""
os.system('python3 /opt/pypep/web_bd.py &')

View File

@ -34,6 +34,8 @@ while getopts 'iq' OPTION; do
esac
done
[ "$(which nala)" ] && PkgMgr="nala" || PkgMgr="apt"
see_it() {
[ "$_interactive" = "yes" ] && ( read -n1 -p " $_msg ? \"Y/n\" " answ
[ -z $answ ] || [ "$answ" = "y" ] || [ "$answ" = "Y" ] && echo &&
@ -59,11 +61,11 @@ run_it() {
# Begin xDaily command functions
_update() {
_msg="Check for Updates"
_msg="Check apt repositories for Updates"
do_it() {
[ "$_quiet" != "yes" ] &&
apt update ||
apt update 2>&1 >/dev/null
$PkgMgr update ||
$PkgMgr update 2>&1 >/dev/null
}
see_it
no_see
@ -74,8 +76,8 @@ _upgradable() {
_msg="See upgradable packages"
do_it() {
[ "$_quiet" != "yes" ] &&
apt list --upgradable ||
apt list --upgradable 2>&1 >/dev/null
$PkgMgr list --upgradable ||
$PkgMgr list --upgradable 2>&1 >/dev/null
}
see_it
# no_see
@ -83,11 +85,11 @@ _upgradable() {
}
_upgrade() {
_msg="Install available Updates"
_msg="Install available updated packages"
do_it() {
[ "$_quiet" != "yes" ] &&
apt upgrade ||
apt upgrade 2>&1 >/dev/null
$PkgMgr upgrade ||
$PkgMgr upgrade 2>&1 >/dev/null
}
see_it
no_see
@ -95,11 +97,11 @@ _upgrade() {
}
_apt_clean() {
_msg="Remove all unavailable entries from APT"
_msg="Remove unneccessary packages from APT cache"
do_it() {
[ "$_quiet" != "yes" ] &&
apt clean ||
apt clean 2>&1 >/dev/null
$PkgMgr clean ||
$PkgMgr clean 2>&1 >/dev/null
}
see_it
no_see
@ -107,11 +109,11 @@ _apt_clean() {
}
_autoclean () {
_msg="Remove unavailable entries from APT"
_msg="Remove unavailable entries from APT cache"
do_it() {
[ "$_quiet" != "yes" ] &&
apt autoclean ||
apt autoclean 2>&1 >/dev/null
$PkgMgr autoclean ||
$PkgMgr autoclean 2>&1 >/dev/null
}
see_it
no_see
@ -122,8 +124,8 @@ _autoremove() {
_msg="Remove old dependencies not required by the system"
do_it() {
[ "$_quiet" != "yes" ] &&
apt autoremove ||
apt autoremove 2>&1 >/dev/null
$PkgMgr autoremove ||
$PkgMgr autoremove 2>&1 >/dev/null
}
see_it
no_see
@ -131,7 +133,7 @@ _autoremove() {
}
_clear_thumbnails() {
_msg="Clear thumbnail caches"
_msg="Clear browser thumbnail caches"
do_it() {
for i in ".thumbnails" ".cache/thumbnails" ; do
for j in "*/*.png" "*/*/*.png" ; do
@ -147,7 +149,7 @@ _clear_thumbnails() {
}
_clear_recents() {
_msg="Clear the Recently Used list in FireFox"
_msg="Clear the \"Recently Used\" list in FireFox"
do_it() {
dd bs=1 count=1 status=none if=/dev/null of=/home/${SUDO_USER}/.local/share/recently-used.xbel
chown ${SUDO_USER} /home/${SUDO_USER}/.local/share/recently-used.xbel
@ -158,7 +160,7 @@ _clear_recents() {
}
_rbranding() {
_msg="Check & Restore Peppermint Branding in os-release"
_msg="Reconfirm Peppermint Branding in os-release"
do_it() {
diff -q /opt/pepconf/os-release /usr/lib/os-release || cp /opt/pepconf/os-release /usr/lib/os-release
diff -q /opt/pepconf/os-release /etc/os-release || cp /opt/pepconf/os-release /etc/os-release
@ -208,7 +210,7 @@ _update
_upgradable
_upgrade
_apt_clean
_autoclean
if [ "$PkgMgr" = "apt" ]; then _autoclean ; fi
_autoremove
_clear_thumbnails
_clear_recents
@ -216,3 +218,8 @@ _udcache
_rbranding
_ssd_trimfs
_ptools
[ "$_interactive" = "yes" ] &&
read -n1 -p " Press any key to continue ... " answ
echo

BIN
PepProTools/xd.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -1,3 +1,17 @@
# MRTestRepo
Copyright (C) 2022 Peppermint OS.
Used by Mr to test
# Peppermint Debian Configs for 64 bit
## Peppermint Build configs
These are for Peppermint Debian configs. The files are used to build the ISO
that is distributed for Peppermint Devuan
These configs are distributed under the terms of the GNU General Public
License Version 3 or any later version (SPDX: *GPL-3.0-or-later*).
## Contributions and Bug Reports
Contributions are accepted as CodeBerg pull requests or via email (`git
send-email` patches). Any problem may also be reported through CodeBerg issues
page or by contacting: peppermintosteam@proton.me

View File

@ -1,11 +1,12 @@
alias ISO-datestamps='echo -en "\n Searching for files ...\r"; for i in /dev/sd[a-z] $(du -ahx ~/ 2>&1 | grep -v "\.iso". | grep "\.iso"| cut -f2) $(du -ahx / 2>&1 | grep -v "\.iso". | grep "\.iso"| cut -f2); do string=$(sudo hexdump -Cs 33598 -n16 $i | head -1 | cut -f2 -d"|" | cut -c"1-14"); [ "$string" != "" ] && echo " $string $i" ; done | sort -u'
alias date_of_iso='for i in ./*.iso ./*/*.iso /dev/sd[a-z]; do echo " $(sudo hexdump -C -s33598 -n16 $i 2>/dev/null |head -1 | cut -f2 -d"|" | cut -c-14) $i" ; done | sort'
alias cgrep='grep --color=always'
alias grep='grep --color=auto'
alias date_of_iso='for i in ./*.iso ./*/*.iso /dev/sd[a-z]; do echo " $(sudo hexdump -C -s33598 -n16 $i 2>/dev/null |head -1 | cut -f2 -d"|" | cut -c-14) $i" ; done | sort'
alias less='less -g'
alias ls='ls --color=auto'
alias locate='du -ah / 2>&1 | grep '
alias snipe='du -ah ./ 2>&1 | grep '
alias ls='ls --color=auto'
alias pep-writer='write-out-iso'
alias plot-boot='systemd-analyze plot > /tmp/boot_plot.svg ; x-www-browser file:///tmp/boot_plot.svg &'
alias timed='clear; neofetch; systemd-analyze'
alias update-aliases='echo -en "\n\tUpdating aliases:\t"; for i in $(alias | grep "alias ". | cut -f1 -d= | cut -f2 -d" "); do echo -en "$i\t"; done ;echo; alias | tee ~/.bash_aliases > /dev/null'
@ -13,45 +14,54 @@ alias vi='busybox vi'
alias vicr='for i in ./* ; do [ -f $i ] && vi -R "$i" ; done'
alias view='vi -R'
alias write-out-iso='
sysc="\033[00m"
grey="\033[30;01m"
red="\033[31;01m"
green="\033[32;01m"
yellow="\033[33;01m"
blue="\033[34;01m"
violet="\033[35;01m"
aqua="\033[36;01m"
white="\033[37;01m"
iso=" "
dev=" "
line1="Type or copy-n-paste a file name from above."
line2="Type the full path to your USB device. (/dev/sdX)"
line3="The block device ${dev} was found and seems Ok to use."
line1="${green}Type or copy-n-paste a file name from above.${sysc}"
line2="${green}Type the full path to your USB device. ${yellow}(/dev/sdX)${sysc}"
line3="The block device ${yellow}${dev}${sysc} was found and seems Ok to use."
lsblk_cmd="lsblk -o PATH,VENDOR,MODEL,SIZE,HOTPLUG,RM"
_abort="To abort this now, press Ctrl+C ."
_abort="${green}To abort this now, press ${white}Ctrl+C${sysc} ."
_anykey="Hit any key"
_coward="Cowardly refusing to write to"
_empty="This field cannot be empty"
_empty="${red}This field cannot be empty${sysc}"
_cancel="to cancel"
_continue="to continue"
_knownISO="to enter the full path to the ISO."
_laststep="This is the final step."
_knownISO="to enter the full path to the ${white}ISO${sysc}."
_laststep="${aqua}This is the final step.${sysc}"
_missing="File not found."
_mounted="The location is mounted."
_mounted="${red}The location is mounted.${sysc}"
_noblock="is not a block device."
_nochecks="No checks were done to determine this is an ISO image."
_noDEV="The location ${dev} does not exist yet, Plug in a USB ?"
_noDEV="The location ${white}${dev}${sysc} does not exist yet, Plug in a USB ?"
_noISO="No ISO found in this directory."
_notlisted="Check your file name or the location and retry."
_passwd="To write to a USB, your password may be required."
_passwd="${white}To write to a USB, your password may be required.${sysc}"
_re_enter="to Re-Enter the location"
_restart1="To start over, Press Ctrl+C,"
_restart1="To start over, Press ${white}Ctrl+C${sysc},"
_restart2="then move to a folder with the ISO."
_retry="to retry"
_search="Searching ${PWD} for ISOs ."
_write="Hit ANY key to write the file to"
_search="Searching ${blue}${PWD}${sysc} for ISOs ."
_write="${green}Hit ${white}ANY${green} key to write the file to"
clear
echo -en "\n\t${_passwd}\n\t"
sudo clear || echo -e "\tFailed password."
sudo clear || echo -e "\tFailed password."
until [ ! -z "${iso}" ] && [ -e "${iso}" ] && ! (mount | grep -q "${iso}")
do clear
do clear
echo -e "\n ${_search}\n"
for i in ./*.iso ./*/*.iso ; do ls $i 2>/dev/null ; done | /bin/grep "\.iso" &&
for i in ./*.iso ./*/*.iso ; do ls $i 2>/dev/null ; done | /bin/grep "\.iso" &&
echo -en "\n\t${line1}\n\n" || (
echo -en "\n\t${_noISO} \n\n ${_restart1} ${_restart2}\n\n Or ${_anykey} ${_knownISO}"
echo -en "\n\t${_noISO} \n\n ${_restart1} ${_restart2}\n\n Or ${_anykey} ${_knownISO}"
read -n1 -p " " pause && echo )
read -p " Path to ISO = " iso
@ -62,10 +72,10 @@ done
until [ ! -z $dev ] && [ -b $dev ] && ! (mount | grep -q $dev) && [ $dev != "/dev/sda" ] && [ $dev != "/dev/nvme01" ]
do clear
echo -e "\n\t Now choose the device to write the ISO to."
echo -e "\n ISO -----> $iso\n "
echo -e "\n\t ${green}Choose a block device to write the ISO to.${sysc}"
echo -e "\n ${white}ISO${sysc} -----> ${white}$iso${sysc}\n "
# echo -e "\n$($lsblk_cmd)\n" ; read -p "$line2 " dev
echo -e "\n$($lsblk_cmd)\n" | grep -Ew "(PATH|/dev/sd[a-z])"; echo " "; read -p "$line2 " dev
echo -e "\n$($lsblk_cmd)\n" | grep -Ew "(PATH|/dev/sd[a-z])"; echo -en "\n $line2 "; read dev
[ -z $dev ] && (echo -en "${_empty}."; read -n1 -p " ${_anykey} ${_continue}. " back) && continue
[ ! -e $dev ] && (echo -en "${_noDEV}\n\n"; read -n1 -p " ${_anykey} ${_retry}. " back) && continue
[ ! -b $dev ] && (echo -en "${dev} ${_noblock}"; read -n1 -p " ${_anykey} ${_retry}. " back) && continue
@ -75,20 +85,21 @@ until [ ! -z $dev ] && [ -b $dev ] && ! (mount | grep -q $dev) && [ $dev != "/de
done
clear
echo -e "\n\t${_laststep} ${_anykey} ${_continue}.\n"
echo -e " ISO -----> ${iso} "
echo -e "\n\t\t${_laststep}\n"
# echo -e " \t${_anykey} ${_continue}.\n"
echo -e " ${white}ISO${sysc} -----> ${white}${iso}${sysc} "
# echo -e " Device --> ${dev}\n "
# echo -e "$($lsblk_cmd ${dev})" | grep -Ew "(PATH|/dev/sd[a-z])"
echo -en " Device --> "
echo -en " ${white}Device${sysc} --> "
($lsblk_cmd ${dev}) | /bin/grep -w ${dev}
echo -e "\n\tThe file $iso exists. \n\t(${_nochecks})"
echo -e " \tThe block device ${dev} was found and seems Ok to use."
echo -en "\n\t${_abort}\n\n\t${_write} $dev. "
echo -e "\n\tThe file ${white}$iso${sysc} exists."
echo -e "\t(${_nochecks})"
echo -e "\tThe block device ${yellow}${dev}${sysc} was found and seems Ok to use.\n\n"
echo -e "\t${_abort}"
echo -en "\t${_write} ${yellow}$dev${sysc} . "
read -n1 go
echo -e "\n Writing the file to $dev ..."
echo -e "\n ${aqua}Writing ${white}${iso}${aqua} to ${yellow}$dev${aqua} ...${sysc}"
sudo dd bs=4M oflag=direct status=progress if="${iso}" of=${dev}
sync ${dev}'
sudo dd bs=4M oflag=direct status=progress if="${iso}" of=${dev}'

0
pepapplication/Install-peppermint.desktop Executable file → Normal file
View File

0
pepapplication/Pephub.desktop Executable file → Normal file
View File

0
pepapplication/Welcome.desktop Executable file → Normal file
View File

0
pepapplication/org.kde.kded5.desktop Executable file → Normal file
View File

View File

@ -1,275 +0,0 @@
#!/bin/bash
PATH="/sbin:/usr/sbin:/usr/local/sbin:$PATH"
# Set the working folder variable
uchinanchu="$(pwd)"
# This cleanup might be better served in the BldHelper*.sh script.
# Create the build folder, move into it removing stale mountpoints and files there.
[ -e fusato ] && [ ! -d fusato ] && rm -f fusato || [ ! -e fusato ] && mkdir fusato
cd fusato
# Within the build, can be layered mounts inside multiple chroots.
umount $(mount | grep "${PWD}/chroot" | tac | cut -f3 -d" ") 2>/dev/null
for i in ./* ./.build ./cache/bootstrap ; do [ $i = ./cache ] && continue || rm -rf $i ; done
# Set of the structure to be used for the ISO and Live system.
# See /usr/lib/live/build/config for a full list of examples.
# Up above is the manual description of what options I used so far.
lb config noauto \
--clean \
--color \
--quiet \
--variant=minbase \
--archive-areas "main contrib non-free" \
--architectures i686 \
--apt-recommends true \
--binary-images iso-hybrid \
--cache false \
--mode debian \
--firmware-binary true \
--firmware-chroot true \
--distribution chimaera \
--initsystem sysvinit \
--memtest memtest86+ \
--mirror-bootstrap https://dev.beard.ly/devuan \
--parent-mirror-bootstrap https://dev.beard.ly/devuan \
--parent-mirror-chroot https://dev.beard.ly/devuan \
--parent-mirror-chroot-security https://dev.beard.ly/devuan \
--parent-mirror-binary https://ddev.beard.ly/devuan \
--parent-mirror-binary-security https://dev.beard.ly/devuan \
--mirror-chroot https://dev.beard.ly/devuan \
--mirror-chroot-security https://dev.beard.ly/devuan \
--firmware-binary true \
--firmware-chroot true \
--iso-application "PeppermintOS" \
--iso-preparer "PeppermintOS-https://peppermintos.com/" \
--iso-publisher "Peppermint OS Team" \
--iso-volume "PeppermintOS" \
--image-name "PepOS" \
--linux-flavours 686-pae \
--security true \
--updates true \
--backports true \
--win32-loader false \
--checksums sha512 \
--zsync false \
# Trying to get LUKS encrypted installs working on / partition
echo -e "cryptsetup \ncryptsetup-initramfs" > $uchinanchu/fusato/config/package-lists/encryption.list.chroot
# Install the XFCE Desktop
mkdir -p $uchinanchu/fusato/config/package-lists/
echo xfce4 > $uchinanchu/fusato/config/package-lists/desktop.list.chroot
# Install software
echo "# Install software to the squashfs for calamares to unpack to the OS.
peppermint-keyring
nala
adwaita-icon-theme
arandr
arc-theme
bluez
bluez-firmware
calamares-settings-debian
calamares
curl
cups
dconf-editor
dkms
dbus-x11
efibootmgr
fonts-cantarell
fonts-liberation
gdebi
gir1.2-webkit2-4.0
gparted
gnome-disk-utility
gnome-system-tools
grub-pc
gvfs-backends
inputattach
inxi
locales
menulibre
nemo
neofetch
network-manager-gnome
ntp
os-prober
python3-pip
python3-tk
python3-bs4
python3-requests
python3-ttkthemes
python3-pyqt5.qtsvg
python3-pyqt5.qtwebkit
python3-pyqt5.qtwebengine
python3-apt
smbclient
samba
screenfetch
smartmontools
sqlite3
synaptic
system-config-printer
mousepad
xfce4-battery-plugin
xfce4-clipman-plugin
xfce4-power-manager
xfce4-taskmanager
xfce4-terminal
xfce4-screenshooter
xfce4-whiskermenu-plugin
yad
wireless-tools
wget
alsa-utils
f2fs-tools
xfsprogs
lightdm
lightdm-gtk-greeter
plymouth
" > $uchinanchu/fusato/config/package-lists/packages.list.chroot
# Packages to be stored in /pool but not installed in the OS .
echo "# These packages are available to the installer, for offline use.
efibootmgr
grub-common
grub2-common
grub-efi
grub-efi-ia32
grub-efi-ia32-bin
grub-efi-ia32-signed
libefiboot1
libefivar1
mokutil
os-prober
shim-helpers-i386-signed
shim-signed
shim-signed-common
shim-unsigned
" > $uchinanchu/fusato/config/package-lists/installer.list.binary
# Setup the chroot structure
mkdir -p $uchinanchu/fusato/config/includes.binary
mkdir -p $uchinanchu/fusato/config/includes.bootstrap/etc/apt
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/local/bin
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/applications
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/backgrounds
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/desktop-base
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/icons/default
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/themes
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/peppermint
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/pixmaps
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/plymouth
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/ice/locale
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/xfce4/helpers
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/polkit-1/actions
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/fonts/pepconf
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/bin
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/sbin
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/lib/live/config
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/lib/peppermint/ice
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/apt
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/apt/preferences.d
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/apt/sources.list.d
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/calamares
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/default
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/lightdm
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/live/config.conf.d
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/plymouth
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/skel/.config/autostart
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/skel/.local/share
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/skel/Desktop
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/xdg/xfce4
mkdir -p $uchinanchu/fusato/config/includes.chroot/opt
mkdir -p $uchinanchu/fusato/config/includes.chroot/opt/pypep
mkdir -p $uchinanchu/fusato/config/includes.chroot/opt/pypep/dbpep
mkdir -p $uchinanchu/fusato/config/includes.chroot/opt/startpep
mkdir -p $uchinanchu/fusato/config/includes.chroot/opt/pepconf
mkdir -p $uchinanchu/fusato/config/archives
#mkdir -p $uchinanchu/fusato/config/hooks/live
mkdir -p $uchinanchu/fusato/config/hooks/normal
mkdir -p $uchinanchu/fusato/config/packages.chroot
# Copy single files to the chroot
cp $uchinanchu/pepaliases/bash_aliases $uchinanchu/fusato/config/includes.chroot/etc/skel/.bash_aliases
cp $uchinanchu/pepcal/adddesktopicon/add-calamares-desktop-icon $uchinanchu/fusato/config/includes.chroot/usr/bin
cp $uchinanchu/pepcal/calamares/settings.conf $uchinanchu/fusato/config/includes.chroot/etc/calamares
cp $uchinanchu/pepcal/install-peppermint $uchinanchu/fusato/config/includes.chroot/usr/bin
cp $uchinanchu/pepcal/sources-final $uchinanchu/fusato/config/includes.chroot/usr/sbin
cp $uchinanchu/peplightdm/lightdm.conf $uchinanchu/fusato/config/includes.chroot/etc/lightdm
cp $uchinanchu/peplightdm/lightdm-gtk-greeter.conf $uchinanchu/fusato/config/includes.chroot/etc/lightdm
cp $uchinanchu/pepplymouth/plymouthd.conf $uchinanchu/fusato/config/includes.chroot/etc/plymouth
cp $uchinanchu/pepsources/sources.list $uchinanchu/fusato/config/includes.chroot/opt/pepconf
cp $uchinanchu/PepProTools/xDaily $uchinanchu/fusato/config/includes.chroot/usr/local/bin
cp $uchinanchu/PepProTools/Welcome_auto.desktop $uchinanchu/fusato/config/includes.chroot/etc/skel/.config/autostart
# Copy directory contents to the chroot
cp $uchinanchu/pepapplication/* $uchinanchu/fusato/config/includes.chroot/usr/share/applications
cp $uchinanchu/pepdeffileman/xfce4/* $uchinanchu/fusato/config/includes.chroot/etc/xdg/xfce4
cp $uchinanchu/pepdeffileman/helpers/* $uchinanchu/fusato/config/includes.chroot/usr/share/xfce4/helpers
cp $uchinanchu/pepfont/* $uchinanchu/fusato/config/includes.chroot/usr/share/fonts/pepconf
cp $uchinanchu/pepgrub/* $uchinanchu/fusato/config/includes.chroot/etc/default
cp $uchinanchu/pephooks/live/* $uchinanchu/fusato/config/includes.chroot/usr/lib/live/config
cp $uchinanchu/pephooks/normal/* $uchinanchu/fusato/config/hooks/normal
cp $uchinanchu/pepissue/* $uchinanchu/fusato/config/includes.bootstrap/etc
cp $uchinanchu/pepissue/* $uchinanchu/fusato/config/includes.chroot/etc
cp $uchinanchu/pepissue/* $uchinanchu/fusato/config/includes.chroot/opt/pepconf
cp $uchinanchu/peprepos/* $uchinanchu/fusato/config/archives
cp $uchinanchu/peposrelease/* $uchinanchu/fusato/config/includes.chroot/opt/pepconf
cp $uchinanchu/peposrelease/* $uchinanchu/fusato/config/includes.chroot/usr/lib
#cp $uchinanchu/peppackages/* $uchinanchu/fusato/config/packages.chroot
#cp $uchinanchu/peppinunstable/* $uchinanchu/fusato/config/includes.chroot/etc/apt/preferences.d
cp $uchinanchu/peppolkit/* $uchinanchu/fusato/config/includes.chroot/usr/share/polkit-1/actions
cp $uchinanchu/pepstartpage/* $uchinanchu/fusato/config/includes.chroot/opt/startpep
cp $uchinanchu/pepdb/* $uchinanchu/fusato/config/includes.chroot/opt/pypep/dbpep
cp $uchinanchu/pepuserconfig/* $uchinanchu/fusato/config/includes.chroot/etc/live/config.conf.d
cp $uchinanchu/pepwallpaper/* $uchinanchu/fusato/config/includes.chroot/usr/share/backgrounds
cp $uchinanchu/PepProPixMaps/* $uchinanchu/fusato/config/includes.chroot/usr/share/pixmaps
cp $uchinanchu/PepProTools/* $uchinanchu/fusato/config/includes.chroot/opt/pypep
# Copy recursive files and sub-directories, containing symlinks.
cp -dr $uchinanchu/pepicons/Numix $uchinanchu/fusato/config/includes.chroot/usr/share/icons
cp -dr $uchinanchu/pepicons/Pepirus $uchinanchu/fusato/config/includes.chroot/usr/share/icons
cp -dr $uchinanchu/pepicons/Pepirus-Dark $uchinanchu/fusato/config/includes.chroot/usr/share/icons
cp -dr $uchinanchu/peptheme/Arc-Red $uchinanchu/fusato/config/includes.chroot/usr/share/themes
cp -dr $uchinanchu/peptheme/Arc-Green $uchinanchu/fusato/config/includes.chroot/usr/share/themes
cp -dr $uchinanchu/peptheme/Arc-Blue $uchinanchu/fusato/config/includes.chroot/usr/share/themes
cp -dr $uchinanchu/peptheme/Arc-Green-Dark $uchinanchu/fusato/config/includes.chroot/usr/share/themes
cp -dr $uchinanchu/peptheme/Arc-Teal-Dark $uchinanchu/fusato/config/includes.chroot/usr/share/themes
cp -dr $uchinanchu/peptheme/Arc-Red-Dark $uchinanchu/fusato/config/includes.chroot/usr/share/themes
cp -dr $uchinanchu/peptheme/Peppermint-10-Red-Dark $uchinanchu/fusato/config/includes.chroot/usr/share/themes
cp -r $uchinanchu/pepcal/calamares/branding $uchinanchu/fusato/config/includes.chroot/etc/calamares
cp -r $uchinanchu/pepcal/calamares/modules $uchinanchu/fusato/config/includes.chroot/etc/calamares
cp -r $uchinanchu/pepdesktopbase/desktop-base $uchinanchu/fusato/config/includes.chroot/usr/share/
cp -r $uchinanchu/peploadersplash/boot $uchinanchu/fusato/config/includes.binary
cp -r $uchinanchu/peploadersplash/isolinux $uchinanchu/fusato/config/includes.binary
cp -r $uchinanchu/pepmenu/menus $uchinanchu/fusato/config/includes.chroot/etc/skel/.config
cp -r $uchinanchu/pepnemo/nemo $uchinanchu/fusato/config/includes.chroot/etc/skel/.config
cp -r $uchinanchu/pepplymouth/plymouth $uchinanchu/fusato/config/includes.chroot/usr/share/
cp -r $uchinanchu/pepxfce/xfce4 $uchinanchu/fusato/config/includes.chroot/etc/skel/.config
# Place files unique to builds from this repository here.
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/distro-info
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/python-apt/templates
cp -r $uchinanchu/pepinfo/devuan/* $uchinanchu/fusato/config/includes.chroot/usr/share/python-apt/templates
ln -s Devuan.info $uchinanchu/fusato/config/includes.chroot/usr/share/python-apt/templates/Peppermint.info
ln -s Devuan.mirrors $uchinanchu/fusato/config/includes.chroot/usr/share/python-apt/templates/Peppermint.mirrors
ln -s devuan.csv $uchinanchu/fusato/config/includes.chroot/usr/share/distro-info/peppermint.csv
# Build the ISO #
lb build noauto #--debug --verbose

View File

@ -1,278 +0,0 @@
#!/bin/bash
PATH="/sbin:/usr/sbin:/usr/local/sbin:$PATH"
# Set the working folder variable
uchinanchu="$(pwd)"
# This cleanup might be better served in the BldHelper*.sh script.
# Create the build folder, move into it removing stale mountpoints and files there.
[ -e fusato ] && [ ! -d fusato ] && rm -f fusato || [ ! -e fusato ] && mkdir fusato
cd fusato
# Within the build, can be layered mounts inside multiple chroots.
umount $(mount | grep "${PWD}/chroot" | tac | cut -f3 -d" ") 2>/dev/null
for i in ./* ./.build ./cache/bootstrap ; do [ $i = ./cache ] && continue || rm -rf $i ; done
# Set of the structure to be used for the ISO and Live system.
# See /usr/lib/live/build/config for a full list of examples.
# Up above is the manual description of what options I used so far.
lb config noauto \
--clean \
--color \
--quiet \
--archive-areas "main contrib non-free" \
--architectures amd64 \
--apt-recommends true \
--binary-images iso-hybrid \
--cache false \
--mode debian \
--firmware-binary true \
--firmware-chroot true \
--distribution chimaera \
--initsystem sysvinit \
--memtest memtest86+ \
--mirror-bootstrap https://mirror.vpgrp.io/devuan \
--parent-mirror-bootstrap https://mirror.vpgrp.io/devuan \
--parent-mirror-chroot https://mirror.vpgrp.io/devuan \
--parent-mirror-chroot-security https://mirror.vpgrp.io/devuan \
--parent-mirror-binary https://mirror.vpgrp.io/devuan \
--parent-mirror-binary-security https://mirror.vpgrp.io/devuan \
--mirror-chroot https://mirror.vpgrp.io/devuan \
--mirror-chroot-security https://mirror.vpgrp.io/devuan \
--firmware-binary true \
--firmware-chroot true \
--iso-application "PeppermintOS" \
--iso-preparer "PeppermintOS-https://peppermintos.com/" \
--iso-publisher "Peppermint OS Team" \
--iso-volume "PeppermintOS" \
--image-name "PepOS" \
--linux-flavours amd64 \
--security true \
--updates true \
--backports true \
--win32-loader false \
--checksums sha512 \
--zsync false \
# Trying to get LUKS encrypted installs working on / partition
mkdir -p $uchinanchu/fusato/config/package-lists/
echo -e "cryptsetup \ncryptsetup-initramfs" > $uchinanchu/fusato/config/package-lists/encryption.list.chroot
# Install the XFCE Desktop
mkdir -p $uchinanchu/fusato/config/package-lists/
echo xfce4 > $uchinanchu/fusato/config/package-lists/desktop.list.chroot
# Install software
echo "# Install software to the squashfs for calamares to unpack to the OS.
peppermint-keyring
nala
ca-certificates
adwaita-icon-theme
arandr
arc-theme
bluez
bluez-firmware
calamares-settings-debian
calamares
curl
cups
dconf-editor
dkms
dbus-x11
efibootmgr
fonts-cantarell
fonts-liberation
gdebi
gir1.2-webkit2-4.0
gparted
gnome-disk-utility
gnome-system-tools
grub-pc
gvfs-backends
inputattach
inxi
locales
menulibre
nemo
neofetch
network-manager-gnome
ntp
os-prober
python3-pip
python3-tk
python3-bs4
python3-requests
python3-ttkthemes
python3-pyqt5.qtsvg
python3-pyqt5.qtwebkit
python3-pyqt5.qtwebengine
python3-apt
smbclient
samba
screenfetch
smartmontools
sqlite3
synaptic
system-config-printer
mousepad
xfce4-battery-plugin
xfce4-clipman-plugin
xfce4-power-manager
xfce4-taskmanager
xfce4-terminal
xfce4-screenshooter
xfce4-whiskermenu-plugin
yad
wireless-tools
wget
alsa-utils
f2fs-tools
xfsprogs
lightdm
lightdm-gtk-greeter
plymouth
" > $uchinanchu/fusato/config/package-lists/packages.list.chroot
# Packages to be stored in /pool but not installed in the OS .
echo "# These packages are available to the installer and for offline use.
efibootmgr
grub-common
grub2-common
grub-efi
grub-efi-amd64
grub-efi-amd64-bin
grub-efi-amd64-signed
libefiboot1
libefivar1
mokutil
os-prober
shim-helpers-amd64-signed
shim-signed
shim-signed-common
shim-unsigned
" > $uchinanchu/fusato/config/package-lists/installer.list.binary
# Setup the chroot structure
mkdir -p $uchinanchu/fusato/config/includes.binary
mkdir -p $uchinanchu/fusato/config/includes.bootstrap/etc/apt
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/local/bin
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/applications
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/backgrounds
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/desktop-base
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/icons/default
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/themes
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/peppermint
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/pixmaps
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/plymouth
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/ice/locale
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/xfce4/helpers
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/polkit-1/actions
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/fonts/pepconf
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/bin
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/sbin
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/lib/live/config
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/lib/peppermint/ice
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/apt
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/apt/preferences.d
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/apt/sources.list.d
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/calamares
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/default
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/lightdm
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/live/config.conf.d
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/plymouth
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/skel/.config/autostart
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/skel/.local/share
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/skel/Desktop
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/xdg/xfce4
mkdir -p $uchinanchu/fusato/config/includes.chroot/opt
mkdir -p $uchinanchu/fusato/config/includes.chroot/opt/pypep
mkdir -p $uchinanchu/fusato/config/includes.chroot/opt/pypep/dbpep
mkdir -p $uchinanchu/fusato/config/includes.chroot/opt/startpep
mkdir -p $uchinanchu/fusato/config/includes.chroot/opt/pepconf
mkdir -p $uchinanchu/fusato/config/packages.chroot
mkdir -p $uchinanchu/fusato/config/archives
#mkdir -p $uchinanchu/fusato/config/hooks/live
mkdir -p $uchinanchu/fusato/config/hooks/normal
mkdir -p $uchinanchu/fusato/config/packages.chroot
# Copy single files to the chroot
cp $uchinanchu/pepaliases/bash_aliases $uchinanchu/fusato/config/includes.chroot/etc/skel/.bash_aliases
cp $uchinanchu/pepcal/adddesktopicon/add-calamares-desktop-icon $uchinanchu/fusato/config/includes.chroot/usr/bin
cp $uchinanchu/pepcal/calamares/settings.conf $uchinanchu/fusato/config/includes.chroot/etc/calamares
cp $uchinanchu/pepcal/install-peppermint $uchinanchu/fusato/config/includes.chroot/usr/bin
cp $uchinanchu/pepcal/sources-final $uchinanchu/fusato/config/includes.chroot/usr/sbin
cp $uchinanchu/peplightdm/lightdm.conf $uchinanchu/fusato/config/includes.chroot/etc/lightdm
cp $uchinanchu/peplightdm/lightdm-gtk-greeter.conf $uchinanchu/fusato/config/includes.chroot/etc/lightdm
cp $uchinanchu/pepplymouth/plymouthd.conf $uchinanchu/fusato/config/includes.chroot/etc/plymouth
cp $uchinanchu/pepsources/sources.list $uchinanchu/fusato/config/includes.chroot/opt/pepconf
cp $uchinanchu/PepProTools/xDaily $uchinanchu/fusato/config/includes.chroot/usr/local/bin
cp $uchinanchu/PepProTools/Welcome_auto.desktop $uchinanchu/fusato/config/includes.chroot/etc/skel/.config/autostart
# Copy directory contents to the chroot
cp $uchinanchu/pepapplication/* $uchinanchu/fusato/config/includes.chroot/usr/share/applications
cp $uchinanchu/pepdeffileman/xfce4/* $uchinanchu/fusato/config/includes.chroot/etc/xdg/xfce4
cp $uchinanchu/pepdeffileman/helpers/* $uchinanchu/fusato/config/includes.chroot/usr/share/xfce4/helpers
cp $uchinanchu/pepfont/* $uchinanchu/fusato/config/includes.chroot/usr/share/fonts/pepconf
cp $uchinanchu/pepgrub/* $uchinanchu/fusato/config/includes.chroot/etc/default
cp $uchinanchu/pephooks/live/* $uchinanchu/fusato/config/includes.chroot/usr/lib/live/config
cp $uchinanchu/pephooks/normal/* $uchinanchu/fusato/config/hooks/normal
cp $uchinanchu/pepissue/* $uchinanchu/fusato/config/includes.bootstrap/etc
cp $uchinanchu/pepissue/* $uchinanchu/fusato/config/includes.chroot/etc
cp $uchinanchu/pepissue/* $uchinanchu/fusato/config/includes.chroot/opt/pepconf
cp $uchinanchu/peprepos/* $uchinanchu/fusato/config/archives
cp $uchinanchu/peposrelease/* $uchinanchu/fusato/config/includes.chroot/opt/pepconf
cp $uchinanchu/peposrelease/* $uchinanchu/fusato/config/includes.chroot/usr/lib
cp $uchinanchu/peppackages/ca-certificates*.deb $uchinanchu/fusato/config/packages.chroot
#cp $uchinanchu/peppackages/* $uchinanchu/fusato/config/packages.chroot
#cp $uchinanchu/peppinunstable/* $uchinanchu/fusato/config/includes.chroot/etc/apt/preferences.d
cp $uchinanchu/peppolkit/* $uchinanchu/fusato/config/includes.chroot/usr/share/polkit-1/actions
cp $uchinanchu/pepstartpage/* $uchinanchu/fusato/config/includes.chroot/opt/startpep
cp $uchinanchu/pepdb/* $uchinanchu/fusato/config/includes.chroot/opt/pypep/dbpep
cp $uchinanchu/pepuserconfig/* $uchinanchu/fusato/config/includes.chroot/etc/live/config.conf.d
cp $uchinanchu/pepwallpaper/* $uchinanchu/fusato/config/includes.chroot/usr/share/backgrounds
cp $uchinanchu/PepProPixMaps/* $uchinanchu/fusato/config/includes.chroot/usr/share/pixmaps
cp $uchinanchu/PepProTools/* $uchinanchu/fusato/config/includes.chroot/opt/pypep
# Copy recursive files and sub-directories, containing symlinks.
cp -dr $uchinanchu/pepicons/Numix $uchinanchu/fusato/config/includes.chroot/usr/share/icons
cp -dr $uchinanchu/pepicons/Pepirus $uchinanchu/fusato/config/includes.chroot/usr/share/icons
cp -dr $uchinanchu/pepicons/Pepirus-Dark $uchinanchu/fusato/config/includes.chroot/usr/share/icons
cp -dr $uchinanchu/peptheme/Arc-Red $uchinanchu/fusato/config/includes.chroot/usr/share/themes
cp -dr $uchinanchu/peptheme/Arc-Green $uchinanchu/fusato/config/includes.chroot/usr/share/themes
cp -dr $uchinanchu/peptheme/Arc-Blue $uchinanchu/fusato/config/includes.chroot/usr/share/themes
cp -dr $uchinanchu/peptheme/Arc-Green-Dark $uchinanchu/fusato/config/includes.chroot/usr/share/themes
cp -dr $uchinanchu/peptheme/Arc-Teal-Dark $uchinanchu/fusato/config/includes.chroot/usr/share/themes
cp -dr $uchinanchu/peptheme/Arc-Red-Dark $uchinanchu/fusato/config/includes.chroot/usr/share/themes
cp -dr $uchinanchu/peptheme/Peppermint-10-Red-Dark $uchinanchu/fusato/config/includes.chroot/usr/share/themes
cp -r $uchinanchu/pepcal/calamares/branding $uchinanchu/fusato/config/includes.chroot/etc/calamares
cp -r $uchinanchu/pepcal/calamares/modules $uchinanchu/fusato/config/includes.chroot/etc/calamares
cp -r $uchinanchu/pepdesktopbase/desktop-base $uchinanchu/fusato/config/includes.chroot/usr/share/
cp -r $uchinanchu/peploadersplash/boot $uchinanchu/fusato/config/includes.binary
cp -r $uchinanchu/peploadersplash/isolinux $uchinanchu/fusato/config/includes.binary
cp -r $uchinanchu/pepmenu/menus $uchinanchu/fusato/config/includes.chroot/etc/skel/.config
cp -r $uchinanchu/pepnemo/nemo $uchinanchu/fusato/config/includes.chroot/etc/skel/.config
cp -r $uchinanchu/pepplymouth/plymouth $uchinanchu/fusato/config/includes.chroot/usr/share/
cp -r $uchinanchu/pepxfce/xfce4 $uchinanchu/fusato/config/includes.chroot/etc/skel/.config
# Place files unique to builds from this repository here.
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/distro-info
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/python-apt/templates
cp -r $uchinanchu/pepinfo/devuan/* $uchinanchu/fusato/config/includes.chroot/usr/share/python-apt/templates
ln -s Devuan.info $uchinanchu/fusato/config/includes.chroot/usr/share/python-apt/templates/Peppermint.info
ln -s Devuan.mirrors $uchinanchu/fusato/config/includes.chroot/usr/share/python-apt/templates/Peppermint.mirrors
ln -s devuan.csv $uchinanchu/fusato/config/includes.chroot/usr/share/distro-info/peppermint.csv
# Build the ISO #
lb build noauto #--debug --verbose

View File

@ -1,65 +1,48 @@
#!/bin/bash
PATH="/sbin:/usr/sbin:/usr/local/sbin:$PATH"
# Set the working folder variable
# Set the working folder variable PepOSx86_64
uchinanchu="$(pwd)"
[ "$TODAY" ] || TODAY=$(date -u +"%Y-%m-%d")
# This cleanup might be better served in the BldHelper*.sh script.
# Create the build folder, move into it removing stale mountpoints and files there.
[ -e fusato ] && [ ! -d fusato ] && rm -f fusato || [ ! -e fusato ] && mkdir fusato
cd fusato
# This cleanup might be better served in the BldHelper*.sh script.
# Within the build, can be layered mounts inside multiple chroots.
umount $(mount | grep "${PWD}/chroot" | tac | cut -f3 -d" ") 2>/dev/null
#for i in ./* ./.build ./cache/bootstrap ; do [ $i = ./cache ] && continue || rm -rf $i ; done
for i in ./* ./.build ; do [ $i = ./cache ] && continue || rm -rf $i ; done
# Set of the structure to be used for the ISO and Live system.
# See /usr/lib/live/build/config for a full list of examples.
# Up above is the manual description of what options I used so far.
lb config noauto \
--clean \
--color \
--quiet \
--archive-areas "main contrib non-free" \
--architectures i686 \
--apt-recommends true \
--binary-images iso-hybrid \
--cache false \
--mode debian \
--firmware-binary true \
--firmware-chroot true \
--distribution chimaera \
--initsystem sysvinit \
--memtest memtest86+ \
--mirror-bootstrap http://deb.devuan.org/merged \
--parent-mirror-bootstrap http://deb.devuan.org/merged \
--parent-mirror-chroot http://deb.devuan.org/merged \
--parent-mirror-chroot-security http://deb.devuan.org/merged \
--parent-mirror-binary http://deb.devuan.org/merged \
--parent-mirror-binary-security http://deb.devuan.org/merged \
--mirror-chroot http://deb.devuan.org/merged \
--mirror-chroot-security http://deb.devuan.org/merged \
--firmware-binary true \
--firmware-chroot true \
--iso-application "PeppermintOS" \
--iso-preparer "PeppermintOS-https://peppermintos.com/" \
--iso-publisher "Peppermint OS Team" \
--iso-volume "PeppermintOS" \
--image-name "PepOS" \
--linux-flavours 686-pae \
--security true \
--updates true \
--backports true \
--win32-loader false \
--checksums sha512 \
--zsync false \
lb config \
--clean \
--color \
--quiet \
--archive-areas "main contrib non-free" \
--architectures amd64 \
--apt-recommends true \
--backports true \
--binary-images iso-hybrid \
--cache true \
--checksums sha512 \
--distribution bullseye \
--firmware-binary true \
--firmware-chroot true \
--image-name "PepOS" \
--iso-application "PeppermintOS" \
--iso-preparer "PeppermintOS-https://peppermintos.com/" \
--iso-publisher "Peppermint OS Team" \
--iso-volume "${TODAY} 1" \
--linux-flavours amd64 \
--mode debian \
--security true \
--updates true \
--win32-loader false \
--zsync false \
# Trying to get LUKS encrypted installs working on / partition
echo -e "cryptsetup \ncryptsetup-initramfs" > $uchinanchu/fusato/config/package-lists/encryption.list.chroot
# Install the XFCE Desktop
mkdir -p $uchinanchu/fusato/config/package-lists/
echo xfce4 > $uchinanchu/fusato/config/package-lists/desktop.list.chroot
@ -67,22 +50,38 @@ echo xfce4 > $uchinanchu/fusato/config/package-lists/desktop.list.chroot
# Install software
echo "# Install software to the squashfs for calamares to unpack to the OS.
adwaita-icon-theme
numix-icon-theme
alsa-utils
arandr
arc-theme
bluez
bluez-firmware
calamares-settings-debian
calamares
curl
cups
curl
dconf-editor
dkms
dbus-x11
efibootmgr
firmware-linux
firmware-linux-nonfree
firmware-misc-nonfree
firmware-realtek
firmware-atheros
firmware-bnx2
firmware-bnx2x
firmware-brcm80211
firmware-intelwimax
firmware-iwlwifi
firmware-libertas
firmware-netxen
firmware-zd1211
firmware-ralink
fonts-cantarell
fonts-liberation
gdebi
gir1.2-webkit2-4.0
git
gparted
gnome-disk-utility
gnome-system-tools
@ -90,26 +89,30 @@ grub-pc
gvfs-backends
inputattach
inxi
locales
locales
menulibre
nala
nemo
neofetch
network-manager-gnome
ntp
nvidia-detect
os-prober
pulseaudio-module-bluetooth
python3-pip
python3-tk
python3-bs4
python3-requests
python3-ttkthemes
python3-pyqt5
python3-pyqt5.qtsvg
python3-pyqt5.qtwebkit
python3-pyqt5.qtwebengine
python3-pyqt5.qtwebengine
python3-apt
smbclient
samba
screenfetch
simple-scan
smartmontools
smbclient
sqlite3
synaptic
system-config-printer
@ -123,13 +126,9 @@ xfce4-screenshooter
xfce4-whiskermenu-plugin
yad
wireless-tools
wget
alsa-utils
f2fs-tools
xfsprogs
lightdm
lightdm-gtk-greeter
plymouth
wget
f2fs-tools
xfsprogs
" > $uchinanchu/fusato/config/package-lists/packages.list.chroot
@ -140,19 +139,19 @@ efibootmgr
grub-common
grub2-common
grub-efi
grub-efi-ia32
grub-efi-amd64
grub-efi-amd64-bin
grub-efi-amd64-signed
grub-efi-ia32-bin
grub-efi-ia32-signed
libefiboot1
libefivar1
mokutil
os-prober
shim-helpers-i386-signed
shim-helpers-amd64-signed
shim-signed
shim-signed-common
shim-unsigned
" > $uchinanchu/fusato/config/package-lists/installer.list.binary
@ -162,28 +161,27 @@ mkdir -p $uchinanchu/fusato/config/includes.bootstrap/etc/apt
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/local/bin
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/applications
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/backgrounds
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/desktop-base
#mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/desktop-base
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/icons/default
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/themes
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/peppermint
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/pixmaps
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/plymouth
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/ice/locale
#mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/plymouth
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/xfce4/helpers
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/polkit-1/actions
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/fonts/pepconf
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/bin
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/sbin
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/lib/live/config
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/lib/peppermint/ice
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/apt
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/apt/preferences.d
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/apt/sources.list.d
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/calamares
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/default
mkdir -p $uchinanchu/fusato/config/includes.chroot/boot/grub
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/lightdm
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/live/config.conf.d
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/plymouth
#mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/plymouth
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/skel/.config/autostart
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/skel/.local/share
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/skel/Desktop
@ -203,13 +201,15 @@ mkdir -p $uchinanchu/fusato/config/packages.chroot
# Copy single files to the chroot
cp $uchinanchu/pepaliases/bash_aliases $uchinanchu/fusato/config/includes.chroot/etc/skel/.bash_aliases
cp $uchinanchu/pepcal/adddesktopicon/add-calamares-desktop-icon $uchinanchu/fusato/config/includes.chroot/usr/bin
cp $uchinanchu/pepcal/calamares/netinstall-* $uchinanchu/fusato/config/includes.chroot/etc/calamares
cp $uchinanchu/pepcal/calamares/settings.conf $uchinanchu/fusato/config/includes.chroot/etc/calamares
cp $uchinanchu/pepcal/install-peppermint $uchinanchu/fusato/config/includes.chroot/usr/bin
cp $uchinanchu/pepcal/sources-final $uchinanchu/fusato/config/includes.chroot/usr/sbin
cp $uchinanchu/peplightdm/lightdm.conf $uchinanchu/fusato/config/includes.chroot/etc/lightdm
cp $uchinanchu/peplightdm/lightdm-gtk-greeter.conf $uchinanchu/fusato/config/includes.chroot/etc/lightdm
cp $uchinanchu/pepplymouth/plymouthd.conf $uchinanchu/fusato/config/includes.chroot/etc/plymouth
#cp $uchinanchu/pepplymouth/plymouthd.conf $uchinanchu/fusato/config/includes.chroot/etc/plymouth
cp $uchinanchu/pepsources/sources.list $uchinanchu/fusato/config/includes.chroot/opt/pepconf
cp $uchinanchu/../MakePackageLists.sh $uchinanchu/fusato/config/includes.chroot/usr/local/bin
cp $uchinanchu/PepProTools/xDaily $uchinanchu/fusato/config/includes.chroot/usr/local/bin
cp $uchinanchu/PepProTools/Welcome_auto.desktop $uchinanchu/fusato/config/includes.chroot/etc/skel/.config/autostart
@ -218,7 +218,7 @@ cp $uchinanchu/pepapplication/* $uchinanchu/fusato/config/includes.chroot/usr/s
cp $uchinanchu/pepdeffileman/xfce4/* $uchinanchu/fusato/config/includes.chroot/etc/xdg/xfce4
cp $uchinanchu/pepdeffileman/helpers/* $uchinanchu/fusato/config/includes.chroot/usr/share/xfce4/helpers
cp $uchinanchu/pepfont/* $uchinanchu/fusato/config/includes.chroot/usr/share/fonts/pepconf
cp $uchinanchu/pepgrub/* $uchinanchu/fusato/config/includes.chroot/etc/default
cp $uchinanchu/pepgrub/grub $uchinanchu/fusato/config/includes.chroot/etc/default
cp $uchinanchu/pephooks/live/* $uchinanchu/fusato/config/includes.chroot/usr/lib/live/config
cp $uchinanchu/pephooks/normal/* $uchinanchu/fusato/config/hooks/normal
cp $uchinanchu/pepissue/* $uchinanchu/fusato/config/includes.bootstrap/etc
@ -227,7 +227,9 @@ cp $uchinanchu/pepissue/* $uchinanchu/fusato/config/includes.chroot/opt/pepconf
cp $uchinanchu/pepmultimedia/* $uchinanchu/fusato/config/archives
cp $uchinanchu/peposrelease/* $uchinanchu/fusato/config/includes.chroot/opt/pepconf
cp $uchinanchu/peposrelease/* $uchinanchu/fusato/config/includes.chroot/usr/lib
cp $uchinanchu/peppackages/* $uchinanchu/fusato/config/packages.chroot
#cp $uchinanchu/peppackages/calamares_3.2.57*amd64.deb $uchinanchu/fusato/config/packages.chroot
#cp $uchinanchu/peppackages/calamares-settings-debian_11.0.5-2_all.deb $uchinanchu/fusato/config/packages.chroot
#cp $uchinanchu/peppackages/deb-multimedia*.deb $uchinanchu/fusato/config/packages.chroot
#cp $uchinanchu/peppinunstable/* $uchinanchu/fusato/config/includes.chroot/etc/apt/preferences.d
cp $uchinanchu/peppolkit/* $uchinanchu/fusato/config/includes.chroot/usr/share/polkit-1/actions
cp $uchinanchu/pepstartpage/* $uchinanchu/fusato/config/includes.chroot/opt/startpep
@ -238,7 +240,7 @@ cp $uchinanchu/PepProPixMaps/* $uchinanchu/fusato/config/includes.chroot/usr/sha
cp $uchinanchu/PepProTools/* $uchinanchu/fusato/config/includes.chroot/opt/pypep
# Copy recursive files and sub-directories, containing symlinks.
cp -dr $uchinanchu/pepicons/Numix $uchinanchu/fusato/config/includes.chroot/usr/share/icons
#cp -dr $uchinanchu/pepicons/Numix $uchinanchu/fusato/config/includes.chroot/usr/share/icons
cp -dr $uchinanchu/pepicons/Pepirus $uchinanchu/fusato/config/includes.chroot/usr/share/icons
cp -dr $uchinanchu/pepicons/Pepirus-Dark $uchinanchu/fusato/config/includes.chroot/usr/share/icons
cp -dr $uchinanchu/peptheme/Arc-Red $uchinanchu/fusato/config/includes.chroot/usr/share/themes
@ -249,6 +251,7 @@ cp -dr $uchinanchu/peptheme/Arc-Teal-Dark $uchinanchu/fusato/config/includes.chr
cp -dr $uchinanchu/peptheme/Arc-Red-Dark $uchinanchu/fusato/config/includes.chroot/usr/share/themes
cp -dr $uchinanchu/peptheme/Peppermint-10-Red-Dark $uchinanchu/fusato/config/includes.chroot/usr/share/themes
cp -r $uchinanchu/pepgrub/themes $uchinanchu/fusato/config/includes.chroot/boot/grub
cp -r $uchinanchu/pepcal/calamares/branding $uchinanchu/fusato/config/includes.chroot/etc/calamares
cp -r $uchinanchu/pepcal/calamares/modules $uchinanchu/fusato/config/includes.chroot/etc/calamares
cp -r $uchinanchu/pepdesktopbase/desktop-base $uchinanchu/fusato/config/includes.chroot/usr/share/
@ -256,19 +259,17 @@ cp -r $uchinanchu/peploadersplash/boot $uchinanchu/fusato/config/includes.binar
cp -r $uchinanchu/peploadersplash/isolinux $uchinanchu/fusato/config/includes.binary
cp -r $uchinanchu/pepmenu/menus $uchinanchu/fusato/config/includes.chroot/etc/skel/.config
cp -r $uchinanchu/pepnemo/nemo $uchinanchu/fusato/config/includes.chroot/etc/skel/.config
cp -r $uchinanchu/pepplymouth/plymouth $uchinanchu/fusato/config/includes.chroot/usr/share/
#cp -r $uchinanchu/pepplymouth/plymouth $uchinanchu/fusato/config/includes.chroot/usr/share/
cp -r $uchinanchu/pepxfce/xfce4 $uchinanchu/fusato/config/includes.chroot/etc/skel/.config
# Place files unique to Nightly builds here.
# Resolves Synaptics issue. Might be better in a conf hook.
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/distro-info
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/python-apt/templates
cp -r $uchinanchu/pepinfo/devuan/* $uchinanchu/fusato/config/includes.chroot/usr/share/python-apt/templates
ln -s Devuan.info $uchinanchu/fusato/config/includes.chroot/usr/share/python-apt/templates/Peppermint.info
ln -s Devuan.mirrors $uchinanchu/fusato/config/includes.chroot/usr/share/python-apt/templates/Peppermint.mirrors
ln -s devuan.csv $uchinanchu/fusato/config/includes.chroot/usr/share/distro-info/peppermint.csv
ln -s Debian.info $uchinanchu/fusato/config/includes.chroot/usr/share/python-apt/templates/Peppermint.info
ln -s Debian.mirrors $uchinanchu/fusato/config/includes.chroot/usr/share/python-apt/templates/Peppermint.mirrors
ln -s debian.csv $uchinanchu/fusato/config/includes.chroot/usr/share/distro-info/peppermint.csv
# Build the ISO #
lb build noauto #--debug --verbose
lb build #--debug --verbose

21
pepcal/bootloader-config Normal file
View File

@ -0,0 +1,21 @@
#!/bin/bash
CHROOT=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g")
# Set secure permissions for the initramfs if we're configuring
# full-disk-encryption. The initramfs is re-generated later in the
# installation process so we only set the permissions snippet without
# regenerating the initramfs right now:
if [ "$(mount | grep $CHROOT" " | cut -c -16)" = "/dev/mapper/luks" ]; then
echo "UMASK=0077" > $CHROOT/etc/initramfs-tools/conf.d/initramfs-permissions
fi
echo "Running bootloader-config..."
if [ -d /sys/firmware/efi/efivars ]; then
echo " * Installing grub-efi (uefi)..."
DEBIAN_FRONTEND=noninteractive chroot $CHROOT apt-get -y install grub-efi-ia32 cryptsetup keyutils
else
echo " * install grub... (bios)"
DEBIAN_FRONTEND=noninteractive chroot $CHROOT apt-get -y install grub-pc cryptsetup keyutils
fi

View File

@ -1,8 +1,9 @@
# Auto generated descriptions from /etc/calamares/modules/netinstall-packages.yaml.ORIG
- name: " * Developers Choice *"
# Auto generated descriptions from netinstall-packages
- name: " Developers Choice "
description: " A much smaller subset of packages than listed below"
critical: false
selected: false
hidden: false
expanded: false
subgroups:
- name: " epiphany-browser"
@ -89,22 +90,15 @@
description: " Daemon and tooling that enable snap packages"
packages:
- snapd
- name: ""
description: ""
critical: false
selected: false
immutable: true
expanded: false
subgroups:
- name: "Xfce4 Goodies selections"
description: "The full package or choice of Xfce4 Goodies Packages"
critical: false
selected: false
expanded: true
hidden: false
expanded: false
subgroups:
- name: "Xfce4 Goodies - Pack"
description: "A META package to install everything XFCE4 from Debian Stable repositories"
expanded: false
subgroups:
- name: " xfce4-goodies"
description: " enhancements for the Xfce4 Desktop Environment"
@ -112,7 +106,6 @@
- xfce4-goodies
- name: "Xfce4 Goodies - Components"
description: "Individual applications to add to the packages already installed"
expanded: false
subgroups:
- name: " xfce4-battery-plugin"
description: " battery monitor plugin for the Xfce4 panel"
@ -258,6 +251,7 @@
description: "Web Browsers, E-Mail, Social Clients, DownLoaders and tools"
critical: false
selected: false
hidden: false
expanded: false
subgroups:
- name: "Web Browsers"
@ -584,7 +578,7 @@
packages:
- firefox-esr-l10n-my
- name: " firefox-esr-l10n-nb-no"
description: " Norwegian Bokmål (Norway) language package for Firefox ESR"
description: " Norwegian Bokm?l (Norway) language package for Firefox ESR"
packages:
- firefox-esr-l10n-nb-no
- name: " firefox-esr-l10n-ne-np"
@ -727,7 +721,7 @@
packages:
- alpine
- name: " claws-mail"
description: " Fast, lightweight and user-friendly GTK+2 based email client"
description: " Fast, lightweight and user-friendly GTK based email client"
packages:
- claws-mail
- name: " evolution"
@ -940,10 +934,6 @@
description: " Russian language package for Thunderbird"
packages:
- thunderbird-l10n-ru
- name: " thunderbird-l10n-si"
description: " Sinhala language package for Thunderbird"
packages:
- thunderbird-l10n-si
- name: " thunderbird-l10n-sq"
description: " Albanian language package for Thunderbird"
packages:
@ -979,10 +969,6 @@
description: " system tray notifications for Thunderbird"
packages:
- birdtray
- name: " lightning"
description: " Calendar Extension for Thunderbird - Transitional package"
packages:
- lightning
- name: " thunderbird-bidiui"
description: " BiDirectional support for Thunderbird"
packages:
@ -1072,6 +1058,7 @@
description: "Select from the suite or components, plus add-ons"
critical: false
selected: false
hidden: false
expanded: false
subgroups:
- name: "LibreOffice - Suites"
@ -1856,6 +1843,7 @@
description: "Add Printer Support"
critical: false
selected: false
hidden: false
expanded: false
subgroups:
- name: " cups"
@ -2037,6 +2025,7 @@
description: "Wide Selection of A/V Players. Editors and Codecs"
critical: false
selected: false
hidden: false
expanded: false
subgroups:
- name: "A/V Codecs"
@ -2082,10 +2071,10 @@
description: " MPEG Audio Layer 2 encoder (command line frontend)"
packages:
- twolame
- name: " w32codecs"
description: " win32 binary codecs"
- name: " w64codecs"
description: " win64 binary codecs"
packages:
- w32codecs
- w64codecs
- name: "Audio Players"
description: "Selection of Audio Players"
subgroups:
@ -2278,12 +2267,17 @@
description: "Image creation and manipulation suites and applications"
critical: false
selected: false
hidden: false
expanded: false
subgroups:
- name: " blender"
description: " Very fast and versatile 3D modeller/renderer"
packages:
- blender
- name: " darktable"
description: " virtual lighttable and darkroom for photographers"
packages:
- darktable
- name: " digikam"
description: " digital photo management application for KDE"
packages:
@ -2316,6 +2310,7 @@
description: "Various Useful GUI and CLI/TUI Utilities"
critical: false
selected: false
hidden: false
expanded: false
subgroups:
- name: "Archive Applications"
@ -2420,6 +2415,10 @@
description: " interactive processes viewer"
packages:
- htop
- name: " nvtop"
description: " Interactive NVIDIA GPU process monitor"
packages:
- nvtop
- name: "System Applications"
description: "Selection of Useful and sometimes required applications"
subgroups:
@ -2466,6 +2465,10 @@
description: " Logitech Unifying Receiver peripherals manager for Linux"
packages:
- solaar
- name: " timeshift"
description: " System restore utility"
packages:
- timeshift
- name: "Terminal Emulators"
description: "Extra Terminal Emulators"
subgroups:
@ -2505,6 +2508,7 @@
description: "A shortlist of avalaible useful drivers"
critical: false
selected: false
hidden: false
expanded: false
subgroups:
- name: "Processor Microcode"
@ -2561,11 +2565,16 @@
description: "Support apps and drivers for Nvidia hardware"
critical: false
selected: false
hidden: false
expanded: false
subgroups:
- name: "NVidia GPUs"
description: "Select Your NVidia GPU Drivers"
subgroups:
- name: " nvidia-driver"
description: " NVIDIA metapackage"
packages:
- nvidia-driver
- name: " nvidia-legacy-390xx-driver"
description: " NVIDIA metapackage (390xx legacy version)"
packages:
@ -2573,6 +2582,10 @@
- name: "NVidia NVENC Suport"
description: "Install NVidia NVENC Suport"
subgroups:
- name: " libnvidia-encode1"
description: " NVENC Video Encoding runtime library"
packages:
- libnvidia-encode1
- name: " libnvidia-legacy-390xx-encode1"
description: " NVENC Video Encoding runtime library (390xx legacy version)"
packages:
@ -2611,6 +2624,7 @@
description: "Windows Compatibility Layer"
critical: false
selected: false
hidden: false
expanded: false
subgroups:
- name: " wine"

View File

@ -1,709 +0,0 @@
- name: "Xfce4 Goodies selections"
description: "The full package or choise of Xfce4 Goodies Packages"
- name: "Xfce4 Goodies - Pack"
description: "A META package to install everything XFCE4 from Debian Stable repositories"
- xfce4-goodies
- name: "Xfce4 Goodies - Components"
description: "Individual applications to add to the packages already installed"
- xfce4-battery-plugin
- xfce4-clipman-plugin
- xfce4-cpufreq-plugin
- xfce4-cpugraph-plugin
- xfce4-datetime-plugin
- xfce4-dict
- xfce4-diskperf-plugin
- xfce4-fsguard-plugin
- xfce4-genmon-plugin
- xfce4-indicator-plugin
- xfce4-mailwatch-plugin
- xfce4-mpc-plugin
- xfce4-netload-plugin
- xfce4-notifyd
- xfce4-places-plugin
- xfce4-power-manager
- xfce4-screenshooter
- xfce4-sensors-plugin
- xfce4-smartbookmark-plugin
- xfce4-systemload-plugin
- xfce4-taskmanager
- xfce4-terminal
- xfce4-timer-plugin
- xfce4-verve-plugin
- xfce4-wavelan-plugin
- xfce4-weather-plugin
- xfce4-whiskermenu-plugin
- xfce4-xkb-plugin
- gigolo
- mousepad
- parole
- ristretto
- thunar-archive-plugin
- thunar-media-tags-plugin
- xfburn
- name: "Internet Applications"
description: "Web Browsers, E-Mail, Social Clients, DownLoaders and tools"
- name: "Web Browsers"
description: "A Collection Of Browsers for the internet or local LAN"
- name: "Chromium Web Browser"
description: "Googles Open Source web browser and content viewer"
- chromium
- name: "chromium-Language Pack"
description: "Language Pack For chromium"
- chromium-l10n
- elinks
- epiphany-browser
- name: "Firefox-ESR"
description: "Extended Service Release of FireFox from Debian Stable"
- firefox-esr
- name: "Firefox-esr Language Packs"
description: "Language Packs For Firefox-esr"
- firefox-esr-l10n-ach
- firefox-esr-l10n-af
- firefox-esr-l10n-all
- firefox-esr-l10n-an
- firefox-esr-l10n-ar
- firefox-esr-l10n-ast
- firefox-esr-l10n-az
- firefox-esr-l10n-be
- firefox-esr-l10n-bg
- firefox-esr-l10n-bn
- firefox-esr-l10n-br
- firefox-esr-l10n-bs
- firefox-esr-l10n-ca
- firefox-esr-l10n-cak
- firefox-esr-l10n-cs
- firefox-esr-l10n-cy
- firefox-esr-l10n-da
- firefox-esr-l10n-de
- firefox-esr-l10n-dsb
- firefox-esr-l10n-el
- firefox-esr-l10n-en-ca
- firefox-esr-l10n-en-gb
- firefox-esr-l10n-eo
- firefox-esr-l10n-es-ar
- firefox-esr-l10n-es-cl
- firefox-esr-l10n-es-es
- firefox-esr-l10n-es-mx
- firefox-esr-l10n-et
- firefox-esr-l10n-eu
- firefox-esr-l10n-fa
- firefox-esr-l10n-ff
- firefox-esr-l10n-fi
- firefox-esr-l10n-fr
- firefox-esr-l10n-fy-nl
- firefox-esr-l10n-ga-ie
- firefox-esr-l10n-gd
- firefox-esr-l10n-gl
- firefox-esr-l10n-gn
- firefox-esr-l10n-gu-in
- firefox-esr-l10n-hr
- firefox-esr-l10n-hsb
- firefox-esr-l10n-hu
- firefox-esr-l10n-hy-am
- firefox-esr-l10n-ia
- firefox-esr-l10n-id
- firefox-esr-l10n-is
- firefox-esr-l10n-it
- firefox-esr-l10n-ja
- firefox-esr-l10n-ka
- firefox-esr-l10n-kab
- firefox-esr-l10n-kk
- firefox-esr-l10n-km
- firefox-esr-l10n-kn
- firefox-esr-l10n-ko
- firefox-esr-l10n-ia
- firefox-esr-l10n-id
- firefox-esr-l10n-is
- firefox-esr-l10n-it
- firefox-esr-l10n-ja
- firefox-esr-l10n-ka
- firefox-esr-l10n-kab
- firefox-esr-l10n-kk
- firefox-esr-l10n-km
- firefox-esr-l10n-kn
- firefox-esr-l10n-ko
- firefox-esr-l10n-lt
- firefox-esr-l10n-lv
- firefox-esr-l10n-mk
- firefox-esr-l10n-mr
- firefox-esr-l10n-ms
- firefox-esr-l10n-my
- firefox-esr-l10n-nb-no
- firefox-esr-l10n-ne-np
- firefox-esr-l10n-nl
- firefox-esr-l10n-nn-no
- firefox-esr-l10n-oc
- firefox-esr-l10n-pa-in
- firefox-esr-l10n-pl
- firefox-esr-l10n-pt-br
- firefox-esr-l10n-pt-pt
- firefox-esr-l10n-rm
- firefox-esr-l10n-ro
- firefox-esr-l10n-ru
- firefox-esr-l10n-si
- firefox-esr-l10n-sk
- firefox-esr-l10n-sl
- firefox-esr-l10n-son
- firefox-esr-l10n-sq
- firefox-esr-l10n-sr
- firefox-esr-l10n-sv-se
- firefox-esr-l10n-ta
- firefox-esr-l10n-te
- firefox-esr-l10n-th
- firefox-esr-l10n-tr
- firefox-esr-l10n-uk
- firefox-esr-l10n-ur
- firefox-esr-l10n-uz
- firefox-esr-l10n-vi
- firefox-esr-l10n-xh
- firefox-esr-l10n-zh-cn
- firefox-esr-l10n-zh-tw
- links
- links2
- midori
- torbrowser-launcher
- name: "E-mail Clients"
description: "Various Email Clients"
- alpine
- claws-mail
- evolution
- geary
- kmail
- name: "Thunderbird E-Mail client"
description: "A cross platform standalone mail/news reader supporting POP/POP3 and IMAP protocols"
- thunderbird
- name: "Thunderbird Language Packs"
description: "Language Packs and text direction converter"
- thunderbird-bidiui
- thunderbird-l10n-all
- thunderbird-l10n-ar
- thunderbird-l10n-ast
- thunderbird-l10n-be
- thunderbird-l10n-bg
- thunderbird-l10n-br
- thunderbird-l10n-ca
- thunderbird-l10n-cs
- thunderbird-l10n-cy
- thunderbird-l10n-da
- thunderbird-l10n-de
- thunderbird-l10n-dsb
- thunderbird-l10n-el
- thunderbird-l10n-en-gb
- thunderbird-l10n-es-ar
- thunderbird-l10n-es-es
- thunderbird-l10n-et
- thunderbird-l10n-eu
- thunderbird-l10n-fi
- thunderbird-l10n-fr
- thunderbird-l10n-fy-nl
- thunderbird-l10n-ga-ie
- thunderbird-l10n-gd
- thunderbird-l10n-gl
- thunderbird-l10n-he
- thunderbird-bidiui
- thunderbird-l10n-hr
- thunderbird-l10n-hsb
- thunderbird-l10n-hu
- thunderbird-l10n-hy-am
- thunderbird-l10n-id
- thunderbird-l10n-is
- thunderbird-l10n-it
- thunderbird-l10n-ja
- thunderbird-l10n-kab
- thunderbird-l10n-kk
- thunderbird-l10n-ko
- thunderbird-l10n-lt
- thunderbird-l10n-ms
- thunderbird-l10n-nl
- thunderbird-l10n-pl
- thunderbird-l10n-pt-br
- thunderbird-l10n-pt-pt
- thunderbird-l10n-rm
- thunderbird-l10n-ro
- thunderbird-l10n-ru
- thunderbird-l10n-si
- thunderbird-l10n-sq
- thunderbird-l10n-sr
- thunderbird-l10n-sv-se
- thunderbird-l10n-tr
- thunderbird-l10n-uk
- thunderbird-l10n-vi
- thunderbird-l10n-zh-tw
- name: "Thunderbird Add-Ons"
description: "Additional desktop enhancements for Thundebird Mail"
- birdtray
- lightning
- thunderbird-bidiui
- name: "Social Clients / Chat Software"
description: "Social Video & Chat Clients"
- finch
- hexchat
- hexchat-plugins
- mumble
- pidgin
- psi
- tkabber
- name: "Download Managers"
description: "Various Download & Torrent Managers"
- deluge
- filezilla
- ktorrent
- qbittorrent
- transmission-gtk
- name: "Networking Tools"
description: "Various Network and Networking tools and utilities"
- ufw
- gufw
- iptraf-ng
- samba
- wireshark
- name: "Office Suites"
description: "Select from the suite or components, plus add-ons"
- name: "LibreOffice - Suites"
description: "Selection of Suites, components, Language Packs and add-ons"
- libreoffice
- libreoffice-gnome
- libreoffice-gtk3
- name: "LibreOffice - Comopnents"
description: "Individual packages of utilities from the LibreOffice Suite"
- name: "LibreOffice-Base"
description: "Component used to connect to and utilize DataBase connections"
- libreoffice-base
- libreoffice-report-builder
- libreoffice-calc
- libreoffice-draw
- libreoffice-impress
- libreoffice-math
- libreoffice-writer
- name: "LibreOffice - Language Packs"
description: "Language Packs For LibreOffice"
- libreoffice-l10n-af
- libreoffice-l10n-am
- libreoffice-l10n-ar
- libreoffice-l10n-as
- libreoffice-l10n-ast
- libreoffice-l10n-be
- libreoffice-l10n-bg
- libreoffice-l10n-bn
- libreoffice-l10n-br
- libreoffice-l10n-bs
- libreoffice-l10n-ca
- libreoffice-l10n-cs
- libreoffice-l10n-cy
- libreoffice-l10n-da
- libreoffice-l10n-de
- libreoffice-l10n-dz
- libreoffice-l10n-el
- libreoffice-l10n-en-gb
- libreoffice-l10n-en-za
- libreoffice-l10n-eo
- libreoffice-l10n-es
- libreoffice-l10n-et
- libreoffice-l10n-eu
- libreoffice-l10n-fa
- libreoffice-l10n-fi
- libreoffice-l10n-fr
- libreoffice-l10n-ga
- libreoffice-l10n-gd
- libreoffice-l10n-gl
- libreoffice-l10n-gu
- libreoffice-l10n-gug
- libreoffice-l10n-he
- libreoffice-l10n-hi
- libreoffice-l10n-hr
- libreoffice-l10n-hu
- libreoffice-l10n-id
- libreoffice-l10n-in
- libreoffice-l10n-is
- libreoffice-l10n-it
- libreoffice-l10n-ja
- libreoffice-l10n-ka
- libreoffice-l10n-kk
- libreoffice-l10n-km
- libreoffice-l10n-kmr
- libreoffice-l10n-kn
- libreoffice-l10n-ko
- libreoffice-l10n-lt
- libreoffice-l10n-lv
- libreoffice-l10n-mk
- libreoffice-l10n-mn
- libreoffice-l10n-mr
- libreoffice-l10n-nb
- libreoffice-l10n-ne
- libreoffice-l10n-nl
- libreoffice-l10n-nn
- libreoffice-l10n-nr
- libreoffice-l10n-nso
- libreoffice-l10n-oc
- libreoffice-l10n-om
- libreoffice-l10n-or
- libreoffice-l10n-pa-in
- libreoffice-l10n-pl
- libreoffice-l10n-pt
- libreoffice-l10n-pt-br
- libreoffice-l10n-ro
- libreoffice-l10n-ru
- libreoffice-l10n-rw
- libreoffice-l10n-si
- libreoffice-l10n-sk
- libreoffice-l10n-sl
- libreoffice-l10n-sr
- libreoffice-l10n-ss
- libreoffice-l10n-st
- libreoffice-l10n-sv
- libreoffice-l10n-szl
- libreoffice-l10n-ta
- libreoffice-l10n-te
- libreoffice-l10n-tg
- libreoffice-l10n-th
- libreoffice-l10n-tn
- libreoffice-l10n-tr
- libreoffice-l10n-ts
- libreoffice-l10n-ug
- libreoffice-l10n-uk
- libreoffice-l10n-uz
- libreoffice-l10n-ve
- libreoffice-l10n-vi
- libreoffice-l10n-xh
- libreoffice-l10n-za
- libreoffice-l10n-zh-cn
- libreoffice-l10n-zh-tw
- libreoffice-l10n-zu
- name: "LibreOffice - Add-Ons"
description: "Individual packages of apps and utilities for the LibreOffice Suite"
- hunspell
- name: Hunspell Dictionaries
description: "Spell checking and Dictionaries for various languages"
- hunspell-af
- hunspell-an
- hunspell-ar
- hunspell-be
- hunspell-bg
- hunspell-bn
- hunspell-bo
- hunspell-br
- hunspell-bs
- hunspell-ca
- hunspell-cs
- hunspell-da
- hunspell-de-at
- hunspell-de-at-frami
- hunspell-de-ch
- hunspell-de-ch-frami
- hunspell-de-de
- hunspell-de-de-frami
- hunspell-de-med
- hunspell-dz
- hunspell-el
- hunspell-en-au
- hunspell-en-ca
- hunspell-en-gb
- hunspell-en-med
- hunspell-en-us
- hunspell-en-za
- hunspell-es
- hunspell-eu
- hunspell-fr
- hunspell-fr-classical
- hunspell-fr-comprehensive
- hunspell-fr-revised
- hunspell-gd
- hunspell-gl
- hunspell-gl-es
- hunspell-gu
- hunspell-gug
- hunspell-he
- hunspell-hi
- hunspell-hr
- hunspell-hu
- hunspell-id
- hunspell-is
- hunspell-it
- hunspell-kk
- hunspell-kmr
- hunspell-ko
- hunspell-lo
- hunspell-lt
- hunspell-lv
- hunspell-ml
- hunspell-ne
- hunspell-nl
- hunspell-no
- hunspell-oc
- hunspell-pl
- hunspell-pt-br
- hunspell-pt-pt
- hunspell-ro
- hunspell-ru
- hunspell-si
- hunspell-sk
- hunspell-sl
- hunspell-sr
- hunspell-sv
- hunspell-sv-se
- hunspell-sw
- hunspell-te
- hunspell-th
- hunspell-tools
- hunspell-tr
- hunspell-uk
- hunspell-uz
- hunspell-vi
- bluez
- cups
- cups-bsd
- ghostscript
- libpaper-utils
- libsane
- libxrender1
- libgl1
- openclipart-libreoffice
- pstoedit
- simple-scan
- unixodbc
- name: "Printing Support"
description: "Add Printer Support"
- cups
- cups-bsd
- name: "Foomatic Print Drivers"
description: "Foomatic based Printer Drivers"
- foomatic-db
- foomatic-db-engine
- foomatic-filters
- foomatic-filters-beh
- foomatic-db-compressed-ppds
- openprinting-ppds
- name: "Brother Printer"
description: "Brother based Printer Drivers"
- printer-driver-brlaser
- printer-driver-ptouch
- name: "Canon LBP laser printers"
description: "Canon LBP laser printers Drivers"
- printer-driver-cjet
- name: "Epson Utilities"
description: "Epson based Printer Drivers"
- escputil
- ink
- mtink
- printer-driver-escpr
- sane-airscan
- name: "Fuji Xerox printers"
description: "Fuji Xerox printers Drivers"
- printer-driver-fujixerox
- name: "HP Printer Support"
description: "Packages and drivers for HP Printers and Printer/Scanner Combos"
- name: "HP Color LaserJet 35xx/36xx"
description: "HP Color LaserJet 35xx/36xx Drivers"
- printer-driver-pxljr
- name: "HP-GDI printers"
description: "HP-GDI printers Drivers"
- printer-driver-pnm2ppa
- name: "HP Printer/Scanner"
description: "Install HP Printer/Scanner"
- hplip
- hplip-gui
- xsane
- name: "Kodak ESP AiO Color"
description: " Kodak ESP AiO color inkjet Series Drivers "
- printer-driver-c2esp
- name: "Konica/Minolta PagePro"
description: "Konica/Minolta PagePro 1[234]xxW Drivers"
- printer-driver-min12xxw
- name: "Lexmark 2050 Color Jetprinter "
description: "Lexmark 2050 Color Jetprinter Drivers"
- printer-driver-c2050
- name: "Minolta magicolor 2300W/2400W color laser"
description: "Minolta magicolor 2300W/2400W color laser Drivers"
- printer-driver-m2300w
- name: "OKI Data printers"
description: "OKI Data printers Drivers"
- printer-driver-oki
- name: "Ricoh Aficio SP 1000s/SP 1100s"
description: "Ricoh Aficio SP 1000s/SP 1100s Drivers"
- printer-driver-sag-gdi
- name: "Samsung and Xerox SPL2 and SPLc laser printers"
description: "Samsung and Xerox SPL2 and SPLc laser printers Drivers"
- printer-driver-splix
- name: "ZjStream-based printers"
description: "ZjStream-based printers"
- printer-driver-foo2zjs
- simple-scan
- name: "A/V Players & Tools"
description: "Wide Selection of A/V Players. Editors and Codecs"
- name: "A/V Codecs"
description: "Selection of Audio and Video Codecs"
- w32codecs
- ffmpeg
- sox
- twolame
- lame
- faad
- faac
- gstreamer1.0-plugins-good
- gstreamer1.0-plugins-ugly
- gstreamer1.0-plugins-bad
- gstreamer1.0-pulseaudio
- name: "Audio Players"
description: "Selection of Audio Players"
- audacious
- audacious-plugins
- clementine
- elisa
- lollypop
- sayonara
- vlc
- name: "Audio Editors"
description: "Selection of Audio Editors"
- ardour
- audacity
- kwave
- lmms
- name: "Audio Converters"
description: "Few good Audio Converters"
- soundconverter
- name: "Other Audio Tools"
description: "Various Other Audio Tools"
- easytag
- picard
- rhythmbox
- tangerine
- name: "Video Players"
description: "Selection of Video Players"
- celluloid
- dragonplayer
- haruna
- mplayer-gui
- mpv
- parole
- smplayer
- vlc
- xine-ui
- name: "Video Editors"
description: "Selection of Video Capture & Editors"
- kazam
- kdenlive
- obs-studio
- openshot-qt
- pitivi
- shotcut
- simplescreenrecorder
- vokoscreen-ng
- name: "Video Converters"
description: "Selection of Video Converters"
- ffmpeg
- mkvtoolnix
- mkvtoolnix-gui
- mystiq
- name: "Other Video Tools"
description: "Various other Video Tools"
- cheese
- guvcview
- mediainfo-gui
- name: "Graphics Studio"
description: "Image creation and manipulation suites and applications"
- blender
- digikam
- flameshot
- gimp
- krita
- imagemagick
- inkscape
- showfoto
- name: "Utilities"
description: "Various Useful GUI and CLI/TUI Utilities"
- name: "Archive Applications"
description: "Selection of Arching Utilities and Extractors"
- p7zip-full
- p7zip-rar
- rar
- unrar
- zip
- unzip
- xarchiver
- name: "Disk & USB Tools"
description: "Drive Manipulation Tools"
- brasero
- k3b
- gnome-disk-utility
- gnome-multi-writer
- gparted
- timeshift
- name: "FingerPrint Driver"
description: "FingerPrint Drivers"
- fprintd
- name: "Package Managers"
description: "Additional Package Managers"
- gnome-software
- gnome-software-plugin-flatpak
- gnome-software-plugin-snap
- name: "Password Managers"
description: "Securely Store & Manage Passwords"
- keepassxc
- lastpass-cli
- name: "Resource Monitors"
description: "HTOP, BTOP & Others"
- btop
- htop
- name: "System Applications"
description: "Selection of Useful and sometimes required applications"
- apt-config-auto-update
- aptitude
- gnome-firmware
- gnome-packagekit
- gvfs-backends
- lightdm-settings
- slick-greeter
- name: "System Utilities"
description: "Misc other System Tools"
- barrier
- caffeine
- solaar
- name: "Terminal Emulators"
description: "Extra Terminal Emulators"
- cool-retro-term
- gnome-terminal
- guake
- mate-terminal
- mlterm
- terminus
- terminator
- xfce4-terminal
- name: "Linux Driver Modules"
description: "A shortlist of avalaible useful drivers"
- name: "Processor Microcode"
description: "Select based on your CPU"
- amd64-microcode
- intel-microcode
- name: "Broadcom WiFi"
description: "Broadcom WiFi Drivers"
- b43-fwcutter
- broadcom-sta-common
- broadcom-sta-dkms
- broadcom-sta-source
- firmware-b43-installer
- firmware-b43legacy-installer
- firmware-bnx2
- firmware-bnx2x
- firmware-brcm80211
- name: "Nvidia Drivers and Support"
description: "Support apps and drivers for Nvidia hardware"
- name: "NVidia GPUs"
description: "Select Your NVidia GPU Drivers"
- nvidia-legacy-390xx-driver
- name: "NVidia NVENC Suport"
description: "Install NVidia NVENC Suport"
- libnvidia-legacy-390xx-encode1
- name: "Optimus Manager"
description: "Enable Intel/nVidia GPU Switching"
- primus
- primus-nvidia
- bbswitch-dkms
- bumblebee
- bumblebee-nvidia
- name: "Nvidia Installer Cleanup"
description: " * Use of Nvidia-Installers is prevented, with this package installed *"
- nvidia-installer-cleanup
- name: "Wine All in One"
description: "Windows Compatibility Layer"
- wine
- winetricks

View File

@ -21,8 +21,7 @@
- flatpak
- gnome-software
- snapd
- name: ""
description: ""
- immutable: true
- name: "Xfce4 Goodies selections"
description: "The full package or choice of Xfce4 Goodies Packages"
- name: "Xfce4 Goodies - Pack"

View File

@ -8,8 +8,8 @@ sudo mv /etc/fstab /etc/fstab.orig.calamares
# Access control to run calamares as root for xwayland
xhost +si:localuser:root
#pkexec calamares
pkexec calamares --session none | sudo tee /var/log/Calamares-Install.log
pkexec calamares
#pkexec calamares --debug | sudo tee /var/log/Calamares-Install.log
xhost -si:localuser:root
# Restore stale fstab, for what it's worth

View File

@ -4,7 +4,7 @@
#
CHROOT=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g")
RELEASE="bullseye"
RELEASE="testing"
cat << EOF > $CHROOT/etc/apt/sources.list
# This system was installed using PeppermintOS removable media
@ -14,30 +14,16 @@ cat << EOF > $CHROOT/etc/apt/sources.list
# see the sources.list(5) manual.
# Main Repo - main contrib non-free
deb http://deb.debian.org/debian/ bullseye main contrib non-free
#deb-src http://deb.debian.org/debian/ bullseye main contrib non-free
deb http://deb.debian.org/debian/ testing main contrib non-free
#deb-src http://deb.debian.org/debian/ testing main contrib non-free
# Security Repo - main contrib non-free
deb http://security.debian.org/ bullseye-security main contrib non-free
#deb-src http://security.debian.org/ bullseye-security main contrib non-free
deb http://security.debian.org/ testing-security main contrib non-free
#deb-src http://security.debian.org/ testing-security main contrib non-free
# Updates Repo - main contrib non-free
deb http://deb.debian.org/debian bullseye-updates main contrib non-free
#deb-src http://deb.debian.org/debian bullseye-updates main
# Proposed Updates Repo - main contrib non-free
#deb http://deb.debian.org/debian/ bullseye-proposed-updates main contrib non-free
#deb-src http://deb.debian.org/debian/ bullseye-proposed-updates main contrib non-free
# bullseye-backports, previously on backports.debian.org
deb http://deb.debian.org/debian/ bullseye-backports main contrib non-free
#deb-src http://deb.debian.org/debian/ bullseye-backports main contrib non-free
# Testing repo used to get software not in the normal repos
#deb http://deb.debian.org/debian/ testing main contrib non-free
# Unstable repo used to get software not in the normal repos
#deb http://deb.debian.org/debian/ unstable main contrib non-free
deb http://deb.debian.org/debian testing-updates main contrib non-free
#deb-src http://deb.debian.org/debian testing-updates main contrib non-free
EOF

7
pepgrub/grub Normal file → Executable file
View File

@ -6,7 +6,7 @@
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Peppermint"
GRUB_CMDLINE_LINUX_DEFAULT="splash"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
# Uncomment to enable BadRAM filtering, modify to suit your needs
@ -20,7 +20,7 @@ GRUB_CMDLINE_LINUX=""
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480
GRUB_GFXMODE=1360x768
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true
@ -30,3 +30,6 @@ GRUB_CMDLINE_LINUX=""
# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
#Grub theme
GRUB_THEME="/boot/grub/themes/peppermint/theme.txt"

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 818 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 372 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 372 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 977 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Some files were not shown because too many files have changed in this diff Show More