update files to the new openbox build
|
@ -1,83 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# BldHelper-nightly.sh
|
|
||||||
# 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.
|
|
||||||
|
|
||||||
### ## # Set build working variables HERE # ## ###
|
|
||||||
|
|
||||||
PREFIX=PepOS-testing # 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=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=$(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/MRTestRepo # * 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 ${WorkingDir}
|
|
||||||
./RepoUpdater | tee ${OutFile}
|
|
||||||
|
|
||||||
# Run the build script - expect 50 minutes, allow 60.
|
|
||||||
./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.
|
|
||||||
until [ -e fusato/*.iso ]
|
|
||||||
do ((++_break))
|
|
||||||
[ $_break -gt $_wait ] && break || sleep 1
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ ${_break} -lt ${_wait} ] ; then
|
|
||||||
|
|
||||||
mv fusato/*.iso fusato/${FileName}.iso
|
|
||||||
|
|
||||||
# Make the checksum file.
|
|
||||||
cd fusato
|
|
||||||
echo "# ${FileName}" > ${FileName}-sha512.checksum
|
|
||||||
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
|
|
||||||
#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}*
|
|
||||||
|
|
||||||
lb clean &
|
|
||||||
|
|
||||||
# Move the log file to the log directory.
|
|
||||||
[ ! -e ${LogDir} ] && mkdir -p ${LogDir}
|
|
||||||
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 ${OutFile}
|
|
||||||
mv ${OutFile} ${LogFile}
|
|
||||||
fi
|
|
||||||
|
|
|
@ -1,89 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# BldHelper-release.sh
|
|
||||||
# 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.
|
|
||||||
|
|
||||||
### ## # Set build working variables HERE # ## ###
|
|
||||||
|
|
||||||
PREFIX=PeppermintOS # 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=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=$(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.
|
|
||||||
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 ${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 ${OutFile}
|
|
||||||
|
|
||||||
|
|
||||||
# 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 ((++_break))
|
|
||||||
[ $_break -gt $_wait ] && break || sleep 1
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ ${_break} -lt ${_wait} ] ; then
|
|
||||||
|
|
||||||
mv fusato/*.iso fusato/${FileName}.iso
|
|
||||||
|
|
||||||
# Define a 2GiB partition, at offset 4194304, in the ISO's 3rd entry of the MBR .
|
|
||||||
dd bs=1 count=16 seek=478 conv=notrunc if=peploadersplash/P4-2GB-MBR.hex of=fusato/${FileName}.iso
|
|
||||||
|
|
||||||
# Make the checksum file.
|
|
||||||
cd fusato
|
|
||||||
echo "# ${FileName} ${TODAY}" > ${FileName}-sha512.checksum
|
|
||||||
sha512sum ${FileName}.iso >> ${FileName}-sha512.checksum
|
|
||||||
|
|
||||||
### <HouseKeeping>
|
|
||||||
# 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}*
|
|
||||||
|
|
||||||
lb clean &
|
|
||||||
|
|
||||||
# Move the log file to the log directory.
|
|
||||||
[ ! -e ${LogDir} ] && mkdir -p ${LogDir}
|
|
||||||
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 ${OutFile}
|
|
||||||
mv ${OutFile} ${LogFile}
|
|
||||||
fi
|
|
||||||
|
|
674
LICENSE
|
@ -1,674 +0,0 @@
|
||||||
GNU GENERAL PUBLIC LICENSE
|
|
||||||
Version 3, 29 June 2007
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
Preamble
|
|
||||||
|
|
||||||
The GNU General Public License is a free, copyleft license for
|
|
||||||
software and other kinds of works.
|
|
||||||
|
|
||||||
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
|
|
||||||
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 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 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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
The precise terms and conditions for copying, distribution and
|
|
||||||
modification follow.
|
|
||||||
|
|
||||||
TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
0. Definitions.
|
|
||||||
|
|
||||||
"This License" refers to version 3 of the GNU General Public License.
|
|
||||||
|
|
||||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
|
||||||
works, such as semiconductor masks.
|
|
||||||
|
|
||||||
"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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
A "covered work" means either the unmodified Program or a work based
|
|
||||||
on the Program.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
1. Source Code.
|
|
||||||
|
|
||||||
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 "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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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 Corresponding Source need not include anything that users
|
|
||||||
can regenerate automatically from other parts of the Corresponding
|
|
||||||
Source.
|
|
||||||
|
|
||||||
The Corresponding Source for a work in source code form is that
|
|
||||||
same work.
|
|
||||||
|
|
||||||
2. Basic Permissions.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
Conveying under any other circumstances is permitted solely under
|
|
||||||
the conditions stated below. Sublicensing is not allowed; section 10
|
|
||||||
makes it unnecessary.
|
|
||||||
|
|
||||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
4. Conveying Verbatim Copies.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
5. Conveying Modified Source Versions.
|
|
||||||
|
|
||||||
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:
|
|
||||||
|
|
||||||
a) The work must carry prominent notices stating that you modified
|
|
||||||
it, and giving a relevant date.
|
|
||||||
|
|
||||||
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".
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
6. Conveying Non-Source Forms.
|
|
||||||
|
|
||||||
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:
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
"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.
|
|
||||||
|
|
||||||
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>.
|
|
797
Notes
|
@ -1,797 +0,0 @@
|
||||||
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. ++
|
|
||||||
|
|
|
@ -1,301 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
PATH="/sbin:/usr/sbin:/usr/local/sbin:$PATH"
|
|
||||||
|
|
||||||
# Set the working folder variable
|
|
||||||
uchinanchu="$(pwd)"
|
|
||||||
[ "$TODAY" ] || TODAY=$(date -u +"%Y-%m-%d")
|
|
||||||
|
|
||||||
|
|
||||||
# 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
|
|
||||||
umount $(mount | grep "${PWD}/chroot" | tac | cut -f3 -d" ") 2>/dev/null
|
|
||||||
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 \
|
|
||||||
--mode debian \
|
|
||||||
--distribution bookworm \
|
|
||||||
--archive-areas "main contrib non-free non-free-firmware" \
|
|
||||||
--architectures amd64 \
|
|
||||||
--linux-flavours amd64 \
|
|
||||||
--apt-recommends true \
|
|
||||||
--binary-images iso-hybrid \
|
|
||||||
--firmware-binary false \
|
|
||||||
--firmware-chroot false \
|
|
||||||
--security true \
|
|
||||||
--updates true
|
|
||||||
--backports true \
|
|
||||||
--image-name "PepOS" \
|
|
||||||
--iso-application "PeppermintOS" \
|
|
||||||
--iso-preparer "PeppermintOS-https://peppermintos.com/" \
|
|
||||||
--iso-publisher "Peppermint OS Team" \
|
|
||||||
--image-name "PepOS" \
|
|
||||||
--iso-volume "${TODAY} 1" \
|
|
||||||
--win32-loader false \
|
|
||||||
--checksums sha512 \
|
|
||||||
--cache true \
|
|
||||||
--clean \
|
|
||||||
--color \
|
|
||||||
--quiet \
|
|
||||||
--zsync false \
|
|
||||||
"${@}"
|
|
||||||
|
|
||||||
|
|
||||||
# Install the XFCE Desktop
|
|
||||||
mkdir -p $uchinanchu/fusato/config/package-lists/
|
|
||||||
echo xfce4 > $uchinanchu/fusato/config/package-lists/desktop.list.chroot
|
|
||||||
|
|
||||||
echo "# Install extra Desktop packages.
|
|
||||||
mousepad
|
|
||||||
xfce4-battery-plugin
|
|
||||||
xfce4-clipman-plugin
|
|
||||||
xfce4-power-manager
|
|
||||||
xfce4-taskmanager
|
|
||||||
xfce4-terminal
|
|
||||||
xfce4-screenshooter
|
|
||||||
xfce4-whiskermenu-plugin
|
|
||||||
xfce4-docklike-plugin
|
|
||||||
xfce4-notes-plugin
|
|
||||||
xfce4-panel-profiles
|
|
||||||
xfce4-time-out-plugin
|
|
||||||
orage
|
|
||||||
thunar-archive-plugin
|
|
||||||
thunar-volman
|
|
||||||
xarchiver
|
|
||||||
lightdm
|
|
||||||
lightdm-gtk-greeter
|
|
||||||
lightdm-gtk-greeter-settings
|
|
||||||
|
|
||||||
" > $uchinanchu/fusato/config/package-lists/extra-desktop.list.chroot
|
|
||||||
|
|
||||||
# Install software
|
|
||||||
echo "# Install software to the squashfs for calamares to unpack to the OS.
|
|
||||||
dconf-editor
|
|
||||||
arandr
|
|
||||||
#gparted
|
|
||||||
gnome-disk-utility
|
|
||||||
menulibre
|
|
||||||
synaptic
|
|
||||||
system-config-printer
|
|
||||||
gnome-system-tools
|
|
||||||
screenfetch
|
|
||||||
simple-scan
|
|
||||||
|
|
||||||
" > $uchinanchu/fusato/config/package-lists/packages.list.chroot
|
|
||||||
|
|
||||||
echo "#Install system packages.
|
|
||||||
cups
|
|
||||||
curl
|
|
||||||
dkms
|
|
||||||
dbus-x11
|
|
||||||
nala
|
|
||||||
efibootmgr
|
|
||||||
fonts-cantarell
|
|
||||||
fonts-liberation
|
|
||||||
gdebi
|
|
||||||
gir1.2-webkit2-4.0
|
|
||||||
git
|
|
||||||
grub-pc
|
|
||||||
gvfs-backends
|
|
||||||
inputattach
|
|
||||||
inxi
|
|
||||||
locales
|
|
||||||
neofetch
|
|
||||||
network-manager-gnome
|
|
||||||
ntp
|
|
||||||
nvidia-detect
|
|
||||||
os-prober
|
|
||||||
pulseaudio-module-bluetooth
|
|
||||||
smartmontools
|
|
||||||
smbclient
|
|
||||||
sqlite3
|
|
||||||
wireless-tools
|
|
||||||
wget
|
|
||||||
alsa-utils
|
|
||||||
bluez
|
|
||||||
|
|
||||||
" > $uchinanchu/fusato/config/package-lists/system.list.chroot
|
|
||||||
|
|
||||||
echo "# install the Peppermint artwork.
|
|
||||||
marwaita-gtk-theme
|
|
||||||
tela-icon-theme
|
|
||||||
marwaita-for-xfwm
|
|
||||||
marwaita-peppermint-gtk-theme
|
|
||||||
pepermint-wallpapers
|
|
||||||
|
|
||||||
" > $uchinanchu/fusato/config/package-lists/artwork.list.chroot
|
|
||||||
|
|
||||||
echo "# Install Python3 packages.
|
|
||||||
python3-pip
|
|
||||||
python3-tk
|
|
||||||
python3-bs4
|
|
||||||
python3-requests
|
|
||||||
python3-ttkthemes
|
|
||||||
python3-pyqt5
|
|
||||||
python3-pyqt5.qtsvg
|
|
||||||
python3-pyqt5.qtwebkit
|
|
||||||
python3-pyqt5.qtwebengine
|
|
||||||
python3-pil.imagetk
|
|
||||||
python3-apt
|
|
||||||
|
|
||||||
" > $uchinanchu/fusato/config/package-lists/python.list.chroot
|
|
||||||
|
|
||||||
echo "# install the calamares installer to install the system to the hd.
|
|
||||||
calamares
|
|
||||||
calamares-settings-debian
|
|
||||||
f2fs-tools
|
|
||||||
xfsprogs
|
|
||||||
|
|
||||||
" > $uchinanchu/fusato/config/package-lists/installer.list.chroot
|
|
||||||
|
|
||||||
echo "# install firmware for squasfs to improve hardware compatibility.
|
|
||||||
atmel-firmware
|
|
||||||
bluez-firmware
|
|
||||||
firmware-linux-free
|
|
||||||
midisport-firmware
|
|
||||||
firmware-misc-nonfree
|
|
||||||
firmware-amd-graphics
|
|
||||||
#firmware-ath9k-htc
|
|
||||||
firmware-bnx2
|
|
||||||
firmware-bnx2x
|
|
||||||
firmware-brcm80211
|
|
||||||
firmware-cavium
|
|
||||||
firmware-intel-sound
|
|
||||||
firmware-intelwimax
|
|
||||||
firmware-iwlwifi
|
|
||||||
firmware-libertas
|
|
||||||
firmware-linux
|
|
||||||
firmware-linux-nonfree
|
|
||||||
firmware-misc-nonfree
|
|
||||||
firmware-myricom
|
|
||||||
firmware-netronome
|
|
||||||
firmware-netxen
|
|
||||||
firmware-qcom-media
|
|
||||||
firmware-qcom-soc
|
|
||||||
firmware-qlogic
|
|
||||||
firmware-realtek
|
|
||||||
firmware-samsung
|
|
||||||
firmware-siano
|
|
||||||
firmware-ti-connectivity
|
|
||||||
firmware-sof-signed
|
|
||||||
firmware-zd1211
|
|
||||||
|
|
||||||
" > $uchinanchu/fusato/config/package-lists/firmware.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-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
|
|
||||||
|
|
||||||
" > $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/icons/default
|
|
||||||
mkdir -p $uchinanchu/fusato/config/includes.chroot/usr/share/pixmaps
|
|
||||||
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/etc/apt
|
|
||||||
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/xfce4
|
|
||||||
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/xdg/autostart
|
|
||||||
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/xdg/xfce4/whiskermenu
|
|
||||||
mkdir -p $uchinanchu/fusato/config/includes.chroot/etc/xdg/xfce4/xfconf/xfce-perchannel-xml
|
|
||||||
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/includes.chroot/boot/grub
|
|
||||||
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/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/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/xdg/autostart
|
|
||||||
|
|
||||||
# Copy directory contents to the chroot
|
|
||||||
cp $uchinanchu/pepapplication/* $uchinanchu/fusato/config/includes.chroot/usr/share/applications
|
|
||||||
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/peposrelease/* $uchinanchu/fusato/config/includes.chroot/opt/pepconf
|
|
||||||
cp $uchinanchu/peposrelease/* $uchinanchu/fusato/config/includes.chroot/usr/lib
|
|
||||||
cp $uchinanchu/peppolkit/* $uchinanchu/fusato/config/includes.chroot/usr/share/polkit-1/actions
|
|
||||||
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/PepProPixMaps/* $uchinanchu/fusato/config/includes.chroot/usr/share/pixmaps
|
|
||||||
|
|
||||||
# Copy recursive files and sub-directories, containing symlinks.
|
|
||||||
cp -r $uchinanchu/PepProTools/* $uchinanchu/fusato/config/includes.chroot/opt/pypep
|
|
||||||
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/pepxfce/xfce4/panel $uchinanchu/fusato/config/includes.chroot/etc/skel/.config/xfce4
|
|
||||||
cp -r $uchinanchu/pepxfce/xfce4/xfconf/xfce-perchannel-xml/* $uchinanchu/fusato/config/includes.chroot/etc/xdg/xfce4/xfconf/xfce-perchannel-xml
|
|
||||||
cp -r $uchinanchu/pepxfce/xfce4/defaults.rc $uchinanchu/fusato/config/includes.chroot/etc/xdg/xfce4/whiskermenu
|
|
||||||
cp -r $uchinanchu/pepxfce/Thunar $uchinanchu/fusato/config/includes.chroot/etc/xdg/
|
|
||||||
cp -r $uchinanchu/pepgrub/themes $uchinanchu/fusato/config/includes.chroot/boot/grub
|
|
||||||
|
|
||||||
# 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
|
|
||||||
|
|
||||||
# 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/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 -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 #--debug --verbose
|
|
|
@ -1 +0,0 @@
|
||||||
pepbld.sh
|
|
Before Width: | Height: | Size: 677 B After Width: | Height: | Size: 674 B |
Before Width: | Height: | Size: 7.4 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 6.1 KiB |
After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 7.1 KiB |
After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 6.1 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 8.7 KiB |
After Width: | Height: | Size: 1.5 KiB |
|
@ -1,158 +0,0 @@
|
||||||
"""
|
|
||||||
* 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
|
|
||||||
|
|
||||||
|
|
||||||
def osettingsmgr():
|
|
||||||
"""#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"])
|
|
||||||
|
|
||||||
|
|
||||||
def ssas():
|
|
||||||
"""#Accessibilitity"""
|
|
||||||
subprocess.Popen("xfce4-accessibility-settings")
|
|
||||||
|
|
||||||
|
|
||||||
def sssi():
|
|
||||||
"""#System Informaion"""
|
|
||||||
cmd = "xfce4-terminal -e 'bash -c \"neofetch\";bash'"
|
|
||||||
subprocess.Popen(cmd, shell=True)
|
|
||||||
|
|
||||||
|
|
||||||
def ssfh():
|
|
||||||
"""#Flathub"""
|
|
||||||
os.system('python3 /opt/pypep/fh.py')
|
|
||||||
|
|
||||||
|
|
||||||
def ssss():
|
|
||||||
"""#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)
|
|
||||||
|
|
||||||
|
|
||||||
def ssai():
|
|
||||||
"""#App Image"""
|
|
||||||
os.system('python3 /opt/pypep/web_aih.py')
|
|
||||||
|
|
||||||
|
|
||||||
def ssgn():
|
|
||||||
"""#gnomestore"""
|
|
||||||
subprocess.Popen("gnome-software")
|
|
||||||
|
|
||||||
|
|
||||||
def ssgns():
|
|
||||||
"""#gnomestoreweb"""
|
|
||||||
os.system('python3 /opt/pypep/web_gstore.py')
|
|
||||||
|
|
||||||
|
|
||||||
def ssspm():
|
|
||||||
"""#Synaptic Package Manage"""
|
|
||||||
subprocess.Popen("synaptic-pkexec")
|
|
||||||
|
|
||||||
|
|
||||||
def packages():
|
|
||||||
"""#Installer"""
|
|
||||||
subprocess.Popen(["pkexec", "python3", "/opt/pypep/peppackages.py"])
|
|
||||||
|
|
||||||
|
|
||||||
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"])
|
|
|
@ -1,6 +0,0 @@
|
||||||
#!/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")
|
|
|
@ -1,2 +0,0 @@
|
||||||
[
|
|
||||||
}]
|
|
|
@ -1,393 +0,0 @@
|
||||||
[
|
|
||||||
{
|
|
||||||
"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"
|
|
||||||
]
|
|
||||||
}]
|
|
|
@ -1,268 +0,0 @@
|
||||||
[
|
|
||||||
{
|
|
||||||
"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"
|
|
||||||
]
|
|
||||||
}]
|
|
|
@ -1,365 +0,0 @@
|
||||||
[
|
|
||||||
{
|
|
||||||
"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"
|
|
||||||
]
|
|
||||||
}]
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
python3 ~/.local/share/pmostools/peptools/hub.py
|
||||||
|
|
Before Width: | Height: | Size: 19 KiB |
|
@ -1,26 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
_extras=pepicons
|
|
||||||
_repo="Peppermint_OS/PepIcons"
|
|
||||||
|
|
||||||
###########################################
|
|
||||||
# Quietly have wget -q0- "pipe" its output directly to tar.
|
|
||||||
# Use tar -xvz to decompress, list and untar the DL file
|
|
||||||
# to the symlink 'pepicons' in /usr/share, on the fly.
|
|
||||||
# Leaving no files to remove and no permission changes required.
|
|
||||||
###########################################
|
|
||||||
|
|
||||||
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 "
|
|
||||||
|
|
||||||
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 &
|
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
python3 ~/.local/share/pmostools/peptools/kumo.py
|
Before Width: | Height: | Size: 79 KiB |
|
@ -1,70 +0,0 @@
|
||||||
"""
|
|
||||||
* 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_())
|
|
|
@ -1,70 +0,0 @@
|
||||||
"""
|
|
||||||
* 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_())
|
|
Before Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 44 KiB |
|
@ -1,462 +0,0 @@
|
||||||
"""
|
|
||||||
* 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
|
|
||||||
from tendo import singleton
|
|
||||||
import ttkbootstrap as ttk
|
|
||||||
import putilities
|
|
||||||
|
|
||||||
|
|
||||||
# makes sure only a single instance is running
|
|
||||||
me = singleton.SingleInstance()
|
|
||||||
|
|
||||||
# list of all checkboxes and their current value
|
|
||||||
checkboxstates = []
|
|
||||||
|
|
||||||
# this will set the window name and style.
|
|
||||||
instw = ttk.Window(themename="darkly")
|
|
||||||
# the window size
|
|
||||||
instw.geometry('680x520')
|
|
||||||
# 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'))
|
|
||||||
|
|
||||||
# ROW for all the items but the logo and the title
|
|
||||||
ROW = 20
|
|
||||||
ROW2 = 360
|
|
||||||
|
|
||||||
# main title style
|
|
||||||
spmt = ttk.Style()
|
|
||||||
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 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="Web Browsers").place(
|
|
||||||
x=440,
|
|
||||||
y=80)
|
|
||||||
|
|
||||||
# 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'))
|
|
||||||
|
|
||||||
|
|
||||||
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)
|
|
||||||
checkboxstates.append(firefox)
|
|
||||||
install_check("firefox-esr", cbfirefox)
|
|
||||||
|
|
||||||
# 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)
|
|
||||||
checkboxstates.append(konqueror)
|
|
||||||
install_check("konqueror", cbkonqueror)
|
|
||||||
|
|
||||||
# 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)
|
|
||||||
checkboxstates.append(epiphany)
|
|
||||||
install_check("epiphany-bROWser", cbepiphany)
|
|
||||||
|
|
||||||
# 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)
|
|
||||||
checkboxstates.append(falkon)
|
|
||||||
install_check("falkon", cbfalkon)
|
|
||||||
|
|
||||||
# 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 = 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)
|
|
||||||
checkboxstates.append(midori)
|
|
||||||
install_check("midori", cbmidori)
|
|
||||||
|
|
||||||
# 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 = 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)
|
|
||||||
checkboxstates.append(luakit)
|
|
||||||
install_check("luakit", cbluakit)
|
|
||||||
|
|
||||||
# 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)
|
|
||||||
checkboxstates.append(chromium)
|
|
||||||
install_check("chromium", cbchromium)
|
|
||||||
|
|
||||||
# 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)
|
|
||||||
checkboxstates.append(atril)
|
|
||||||
install_check("atril", cbatril)
|
|
||||||
|
|
||||||
# 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)
|
|
||||||
checkboxstates.append(transmission)
|
|
||||||
install_check("transmission", cbtransmission)
|
|
||||||
|
|
||||||
# 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)
|
|
||||||
checkboxstates.append(arandr)
|
|
||||||
install_check("arandr", cbarandr)
|
|
||||||
|
|
||||||
# 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)
|
|
||||||
checkboxstates.append(pmount)
|
|
||||||
install_check("pmount", cbpmount)
|
|
||||||
|
|
||||||
# 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)
|
|
||||||
checkboxstates.append(dconfeditor)
|
|
||||||
install_check("dconf-editor", cbdconfeditor)
|
|
||||||
|
|
||||||
# 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)
|
|
||||||
checkboxstates.append(gpicview)
|
|
||||||
install_check("gpicview", cbgpicview)
|
|
||||||
|
|
||||||
# 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)
|
|
||||||
checkboxstates.append(parole)
|
|
||||||
install_check("parole", cbparole)
|
|
||||||
|
|
||||||
#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 = 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)
|
|
||||||
checkboxstates.append(snapd)
|
|
||||||
install_check("snapd", cbsnapd)
|
|
||||||
|
|
||||||
# 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)
|
|
||||||
checkboxstates.append(flatpak)
|
|
||||||
install_check("flatpak", cbflatpak)
|
|
||||||
|
|
||||||
# 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)
|
|
||||||
checkboxstates.append(gnomesoftware)
|
|
||||||
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)
|
|
||||||
|
|
||||||
|
|
||||||
def install(applist):
|
|
||||||
""" 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")
|
|
||||||
|
|
||||||
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()
|
|
||||||
|
|
||||||
|
|
||||||
def getcheckboxes():
|
|
||||||
"""This will verify the check boxes"""
|
|
||||||
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')
|
|
||||||
|
|
||||||
|
|
||||||
# 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)
|
|
||||||
##Start the window#
|
|
||||||
instw.mainloop()
|
|
Before Width: | Height: | Size: 41 KiB |
Before Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 36 KiB |
|
@ -1,753 +0,0 @@
|
||||||
"""
|
|
||||||
* Author: "PepDebian(peppermintosteam@proton.me)
|
|
||||||
*
|
|
||||||
* License: SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
*
|
|
||||||
* This script is used as an update gui manager
|
|
||||||
"""
|
|
||||||
import tkinter as tk
|
|
||||||
import subprocess
|
|
||||||
import os
|
|
||||||
import shutil
|
|
||||||
import sqlite3
|
|
||||||
import filecmp
|
|
||||||
from tkinter import Frame
|
|
||||||
from threading import Thread
|
|
||||||
import ttkbootstrap as ttk
|
|
||||||
from crontab import CronTab
|
|
||||||
from git import Repo
|
|
||||||
from ttkbootstrap.scrolled import ScrolledText
|
|
||||||
from ttkbootstrap.constants import HORIZONTAL
|
|
||||||
import bsconf
|
|
||||||
|
|
||||||
# setup the window
|
|
||||||
pwin = bsconf.bbstyle
|
|
||||||
pwin.title('Peppermint Update Manager')
|
|
||||||
pwin.tk.call('wm', 'iconphoto', pwin._w,
|
|
||||||
tk.PhotoImage(
|
|
||||||
file='/usr/share/pixmaps/peppermint-old.png'))
|
|
||||||
pwin['bg'] = '#000000'
|
|
||||||
WINDOW_HEIGHT = 630
|
|
||||||
WINDOW_WIDTH = 750
|
|
||||||
|
|
||||||
# set the database connection string
|
|
||||||
dcon = sqlite3.connect('/opt/pypep/dbpep/welval.db')
|
|
||||||
pcur = dcon.cursor()
|
|
||||||
# Create the update table
|
|
||||||
pcur.execute(""" CREATE TABLE IF NOT EXISTS upsched (id integer PRIMARY
|
|
||||||
KEY AUTOINCREMENT, dname text, cronnum int, hr int,
|
|
||||||
min int);""")
|
|
||||||
|
|
||||||
|
|
||||||
# The Functions
|
|
||||||
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 drepo():
|
|
||||||
"""Delete the temp repo files."""
|
|
||||||
fld = '/opt/tmprpo/'
|
|
||||||
for filename in os.listdir(fld):
|
|
||||||
fp = os.path.join(fld, filename)
|
|
||||||
try:
|
|
||||||
if os.path.isfile(fp) or os.path.islink(fp):
|
|
||||||
os.unlink(fp)
|
|
||||||
elif os.path.isdir(fp):
|
|
||||||
shutil.rmtree(fld)
|
|
||||||
except Exception as e:
|
|
||||||
print('Failed to delete %s. Reason: %s' % (fp, e))
|
|
||||||
|
|
||||||
|
|
||||||
def cbclone():
|
|
||||||
"""Clones the Production Tools Repo locally"""
|
|
||||||
repo_url = 'https://codeberg.org/Peppermint_OS/PepProTools.git'
|
|
||||||
repo_path = '/opt/tmprpo/'
|
|
||||||
if os.path.exists(repo_path):
|
|
||||||
shutil.rmtree(repo_path)
|
|
||||||
else:
|
|
||||||
os.makedirs(repo_path)
|
|
||||||
Repo.clone_from(repo_url, repo_path)
|
|
||||||
|
|
||||||
|
|
||||||
def checkfiles():
|
|
||||||
"""Compare the repo files downloaded with what is in opt and
|
|
||||||
detemrine if an update is needed
|
|
||||||
"""
|
|
||||||
b = '/opt/pypep/'
|
|
||||||
a = '/opt/tmprpo/'
|
|
||||||
comp = filecmp.dircmp(a, b)
|
|
||||||
common = sorted(comp.common)
|
|
||||||
left = sorted(comp.left_list)
|
|
||||||
right = sorted(comp.right_list)
|
|
||||||
if left != common or right != common:
|
|
||||||
file_names = os.listdir(a)
|
|
||||||
for file_name in file_names:
|
|
||||||
if file_name.endswith(".git"):
|
|
||||||
pass
|
|
||||||
else:
|
|
||||||
shutil.copy(os.path.join(a, file_name), b)
|
|
||||||
else:
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
def updtpeptools():
|
|
||||||
"""brings all the update tool functions together"""
|
|
||||||
terminalstuff.delete(1.0)
|
|
||||||
pwin.update()
|
|
||||||
msg1 = '''
|
|
||||||
Checking Codeberg for updates'''
|
|
||||||
terminalstuff.insert('end', msg1)
|
|
||||||
pwin.update()
|
|
||||||
cbclone()
|
|
||||||
msg2 = '''
|
|
||||||
Applying updates'''
|
|
||||||
terminalstuff.insert('end', msg2)
|
|
||||||
pwin.update()
|
|
||||||
checkfiles()
|
|
||||||
msg3 = '''
|
|
||||||
Cleaning up....'''
|
|
||||||
terminalstuff.insert('end', msg3)
|
|
||||||
pwin.update()
|
|
||||||
drepo()
|
|
||||||
message = '''
|
|
||||||
PepTools updated! Check out PepScope to review the changes'''
|
|
||||||
terminalstuff.insert('end', message)
|
|
||||||
pwin.update()
|
|
||||||
|
|
||||||
|
|
||||||
def pu(cmd, terminal):
|
|
||||||
"""set up the pipe process."""
|
|
||||||
# set thecompleted message
|
|
||||||
pepipe = subprocess.Popen(cmd, stdin=subprocess.PIPE,
|
|
||||||
stdout=subprocess.PIPE,
|
|
||||||
bufsize=1,
|
|
||||||
universal_newlines=True,
|
|
||||||
shell=True)
|
|
||||||
pepipe.poll()
|
|
||||||
|
|
||||||
while True:
|
|
||||||
line = pepipe.stdout.readline()
|
|
||||||
terminal.insert(tk.END, line)
|
|
||||||
terminal.see(tk.END)
|
|
||||||
if not line and pepipe.poll is not None:
|
|
||||||
break
|
|
||||||
|
|
||||||
commsg = '''Completed!'''
|
|
||||||
terminalstuff.insert('end', commsg)
|
|
||||||
|
|
||||||
|
|
||||||
def peppersys():
|
|
||||||
""" This will apt command and send the results to the terminal textbox """
|
|
||||||
sysu = "apt update && apt upgrade -y"
|
|
||||||
pepper = Thread(target=lambda: pu(sysu, terminalstuff))
|
|
||||||
pepper.start()
|
|
||||||
terminalstuff.delete(1.0, END)
|
|
||||||
|
|
||||||
|
|
||||||
def ldsettings():
|
|
||||||
"""Preset the update options based on what is stored in the database"""
|
|
||||||
# set the connector
|
|
||||||
dbst = sqlite3.connect('/opt/pypep/dbpep/welval.db')
|
|
||||||
mvar = "Mon"
|
|
||||||
tuvar = "Tue"
|
|
||||||
wvar = "Wed"
|
|
||||||
tvar = "Thu"
|
|
||||||
fvar = "Fri"
|
|
||||||
savar = "Sat"
|
|
||||||
suvar = "Sun"
|
|
||||||
# set the queries
|
|
||||||
cbval = """ SELECT COUNT(*) FROM upsched WHERE dname = ?;"""
|
|
||||||
hval = """ SELECT hr FROM upsched WHERE hr IS NOT NULL;"""
|
|
||||||
hcval = """ SELECT COUNT(*) FROM upsched WHERE hr IS NOT NULL;"""
|
|
||||||
mval = """ SELECT min FROM upsched WHERE min IS NOT NULL;"""
|
|
||||||
mcval = """ SELECT COUNT(*) FROM upsched WHERE min IS NOT NULL;"""
|
|
||||||
# set the cursor to be used for execution
|
|
||||||
dcur = dbst.cursor()
|
|
||||||
# Start the hr call
|
|
||||||
dcur.execute(hcval)
|
|
||||||
hrc = dcur.fetchone()
|
|
||||||
if int(hrc[0]) > 0:
|
|
||||||
# If there is a hour value in the databes set the texbox
|
|
||||||
# widget to that value.
|
|
||||||
dcur.execute(hval)
|
|
||||||
hsel = dcur.fetchone()
|
|
||||||
txtopthour.insert(0, hsel)
|
|
||||||
else:
|
|
||||||
# if there is no value print this message and pass.
|
|
||||||
print('No hour value is there')
|
|
||||||
# Start the minute call
|
|
||||||
dcur.execute(mcval)
|
|
||||||
minc = dcur.fetchone()
|
|
||||||
if int(minc[0]) > 0:
|
|
||||||
# If there is a minute value in the databes set the texbox
|
|
||||||
# widget to that value.
|
|
||||||
dcur.execute(mval)
|
|
||||||
msel = dcur.fetchone()
|
|
||||||
txtoptmin.insert(0, msel)
|
|
||||||
else:
|
|
||||||
# if there is no value print this message and pass.
|
|
||||||
print('No minute value is there')
|
|
||||||
##Start text box settings...##
|
|
||||||
# Monday
|
|
||||||
dcur.execute(cbval, (mvar,))
|
|
||||||
mr = dcur.fetchone()
|
|
||||||
if int(mr[0]) > 0:
|
|
||||||
# if the cbval is in the DB then print and set the checkbutton
|
|
||||||
# value
|
|
||||||
cbm_v.set(1)
|
|
||||||
print("Mon is there")
|
|
||||||
else:
|
|
||||||
# If the cbval is 0 then print this message
|
|
||||||
print('Nothing There')
|
|
||||||
#Tue##
|
|
||||||
dcur.execute(cbval, (tuvar,))
|
|
||||||
tur = dcur.fetchone()
|
|
||||||
if int(tur[0]) > 0:
|
|
||||||
cbtu_v.set(1)
|
|
||||||
print("Tue is there")
|
|
||||||
else:
|
|
||||||
print('Nothing There')
|
|
||||||
##Wed##
|
|
||||||
dcur.execute(cbval, (wvar,))
|
|
||||||
wr = dcur.fetchone()
|
|
||||||
if int(wr[0]) > 0:
|
|
||||||
cbw_v.set(1)
|
|
||||||
print("Wed is there")
|
|
||||||
else:
|
|
||||||
print('Nothing There')
|
|
||||||
##Thu##
|
|
||||||
dcur.execute(cbval, (tvar,))
|
|
||||||
tr = dcur.fetchone()
|
|
||||||
if int(tr[0]) > 0:
|
|
||||||
cbt_v.set(1)
|
|
||||||
print("Thu is there")
|
|
||||||
else:
|
|
||||||
print('Nothing There')
|
|
||||||
##Fri##
|
|
||||||
dcur.execute(cbval, (fvar,))
|
|
||||||
fr = dcur.fetchone()
|
|
||||||
if int(fr[0]) > 0:
|
|
||||||
cbf_v.set(1)
|
|
||||||
print("Fri is there")
|
|
||||||
else:
|
|
||||||
print('Nothing There')
|
|
||||||
##Sat##
|
|
||||||
dcur.execute(cbval, (savar,))
|
|
||||||
sar = dcur.fetchone()
|
|
||||||
if int(sar[0]) > 0:
|
|
||||||
cbsa_v.set(1)
|
|
||||||
print("Sat is there")
|
|
||||||
else:
|
|
||||||
print('Nothing There')
|
|
||||||
##Sun##
|
|
||||||
dcur.execute(cbval, (suvar,))
|
|
||||||
sur = dcur.fetchone()
|
|
||||||
if int(sur[0]) > 0:
|
|
||||||
cbsu_v.set(1)
|
|
||||||
print("Sun is there")
|
|
||||||
else:
|
|
||||||
print('Nothing There')
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def pcron():
|
|
||||||
"""This will set ccron table schedule to run updates"""
|
|
||||||
cron = CronTab(user='root')
|
|
||||||
# get the value that is entered in the hour text box
|
|
||||||
# it must be with 0 to 24 other wise it is out of range
|
|
||||||
# then see if the hour is already in the DB if it is
|
|
||||||
# delete it and add in the new value from the text box
|
|
||||||
# else its a new record and you just need to add it
|
|
||||||
# set the connector
|
|
||||||
db = sqlite3.connect('/opt/pypep/dbpep/welval.db')
|
|
||||||
# set the cursor
|
|
||||||
dbcur = db.cursor()
|
|
||||||
# This section will save the hour values entered in the database
|
|
||||||
hrtx = txtopthour.get()
|
|
||||||
if len(hrtx) == 0:
|
|
||||||
# If nothing was entered then print the message and pass the if
|
|
||||||
print('nothing entered')
|
|
||||||
else:
|
|
||||||
# if there is a value then delete it first then add the record
|
|
||||||
# other wise just add the record.
|
|
||||||
hra = int(hrtx)
|
|
||||||
if 0 <= hra <= 24:
|
|
||||||
hval = """ SELECT COUNT(*) FROM upsched WHERE hr IS NOT NULL; """
|
|
||||||
hdel = """ DELETE FROM upsched WHERE hr IS NOT NULL; """
|
|
||||||
hrinsrt = """ INSERT INTO upsched (hr) VALUES (?); """
|
|
||||||
harg = hra
|
|
||||||
dbcur.execute(hval)
|
|
||||||
crresult = dbcur.fetchone()
|
|
||||||
if int(crresult[0]) > 0:
|
|
||||||
dbcur.execute(hdel)
|
|
||||||
db.commit()
|
|
||||||
dbcur.execute(hrinsrt, (harg,))
|
|
||||||
db.commit()
|
|
||||||
print(hra)
|
|
||||||
else:
|
|
||||||
dbcur.execute(hrinsrt, (harg,))
|
|
||||||
db.commit()
|
|
||||||
|
|
||||||
else:
|
|
||||||
print('out of range')
|
|
||||||
# Same process for the Minute its a repeate as above but for the
|
|
||||||
# Minute text widget
|
|
||||||
mitx = txtoptmin.get()
|
|
||||||
if len(mitx) == 0:
|
|
||||||
print('nothing entered')
|
|
||||||
else:
|
|
||||||
mia = int(mitx)
|
|
||||||
if 0 <= mia <= 24:
|
|
||||||
mval = """ SELECT COUNT(*) FROM upsched WHERE min IS NOT NULL; """
|
|
||||||
mdel = """ DELETE FROM upsched WHERE min IS NOT NULL; """
|
|
||||||
miinsrt = """ INSERT INTO upsched (min) VALUES (?); """
|
|
||||||
marg = mia
|
|
||||||
dbcur.execute(mval)
|
|
||||||
crresult = dbcur.fetchone()
|
|
||||||
if int(crresult[0]) > 0:
|
|
||||||
dbcur.execute(mdel)
|
|
||||||
db.commit()
|
|
||||||
dbcur.execute(miinsrt, (marg,))
|
|
||||||
db.commit()
|
|
||||||
print(mia)
|
|
||||||
else:
|
|
||||||
dbcur.execute(miinsrt, (marg,))
|
|
||||||
db.commit()
|
|
||||||
else:
|
|
||||||
print('out of range')
|
|
||||||
# these are the days of the week checkbuttons if they are on or
|
|
||||||
# off do something
|
|
||||||
# var the message to print in terminal
|
|
||||||
alrdy = "There is already a value for that day,"
|
|
||||||
# set the variables used for the SQL queries
|
|
||||||
mvar = "Mon"
|
|
||||||
tuvar = "Tue"
|
|
||||||
wvar = "Wed"
|
|
||||||
tvar = "Thu"
|
|
||||||
fvar = "Fri"
|
|
||||||
savar = "Sat"
|
|
||||||
suvar = "Sun"
|
|
||||||
# set the queries
|
|
||||||
cval = """ SELECT COUNT(*) FROM upsched WHERE dname = ?;"""
|
|
||||||
dinsrt = """ INSERT INTO upsched(dname) VALUES (?);"""
|
|
||||||
drmv = """ DELETE FROM upsched WHERE dname = ?;"""
|
|
||||||
if cbm_v.get() == 1:
|
|
||||||
# run the query withthe variable
|
|
||||||
dbcur.execute(cval, (mvar,))
|
|
||||||
# get the result
|
|
||||||
crresult = dbcur.fetchone()
|
|
||||||
if int(crresult[0]) > 0:
|
|
||||||
# if the value is in the DB then print
|
|
||||||
print(alrdy, "Mon")
|
|
||||||
else:
|
|
||||||
# if it is not in the DB then add it
|
|
||||||
dbcur.execute(dinsrt, (mvar,))
|
|
||||||
db.commit()
|
|
||||||
print('Mon Added to Database')
|
|
||||||
# Create the new job
|
|
||||||
jobm = cron.new(
|
|
||||||
command='/bin/sh opt/pypep/pepwork.sh',
|
|
||||||
comment='Monday')
|
|
||||||
# Set the value to what is in the hour textbox
|
|
||||||
jobm.hour.on(hra)
|
|
||||||
# Set the value to what is in the minute textbox
|
|
||||||
jobm.minute.on(mia)
|
|
||||||
# set the day of the week
|
|
||||||
jobm.dow.on('1')
|
|
||||||
# Write the job to the crontab
|
|
||||||
cron.write()
|
|
||||||
# Show the job was witten
|
|
||||||
print('wrote cron')
|
|
||||||
# list the jobs in the terminal
|
|
||||||
for jobm in cron:
|
|
||||||
print(jobm)
|
|
||||||
# this is the finish monday function
|
|
||||||
print('mon is on')
|
|
||||||
else:
|
|
||||||
# If unchecked Remove the current day value
|
|
||||||
if cbm_v.get() == 0:
|
|
||||||
dbcur.execute(cval, (mvar,))
|
|
||||||
mdelresult = dbcur.fetchone()
|
|
||||||
if int(mdelresult[0]) > 0:
|
|
||||||
# run the delete query
|
|
||||||
dbcur.execute(drmv, (mvar,))
|
|
||||||
# commit the change to the database
|
|
||||||
db.commit()
|
|
||||||
# set what job to find in the crontab
|
|
||||||
jobm = cron.find_comment('Monday')
|
|
||||||
# Clear and write the contab
|
|
||||||
cron.remove(jobm)
|
|
||||||
cron.write()
|
|
||||||
# print that the cron job was deleted
|
|
||||||
print('Mon Cron Deleted')
|
|
||||||
# print the Record was deleted from the Databaes
|
|
||||||
print('Mon was deleted from db becuase the cb is off')
|
|
||||||
else:
|
|
||||||
# Print nothing deleted if nothing was found
|
|
||||||
print('nothing to delete')
|
|
||||||
# pring that that the check box is off.
|
|
||||||
print('mon is off')
|
|
||||||
if cbtu_v.get() == 1:
|
|
||||||
dbcur.execute(cval, (tuvar,))
|
|
||||||
crresult = dbcur.fetchone()
|
|
||||||
if int(crresult[0]) > 0:
|
|
||||||
print(alrdy, "Tue")
|
|
||||||
else:
|
|
||||||
dbcur.execute(dinsrt, (tuvar,))
|
|
||||||
db.commit()
|
|
||||||
print('Tue Added to Database')
|
|
||||||
jobtu = cron.new(
|
|
||||||
command='/bin/sh opt/pypep/pepwork.sh',
|
|
||||||
comment='Tuesday')
|
|
||||||
jobtu.hour.on(hra)
|
|
||||||
jobtu.minute.on(mia)
|
|
||||||
jobtu.dow.on(2)
|
|
||||||
cron.write()
|
|
||||||
for jobtu in cron:
|
|
||||||
print(jobtu)
|
|
||||||
print('wrote cron')
|
|
||||||
print('tue is on')
|
|
||||||
else:
|
|
||||||
if cbtu_v.get() == 0:
|
|
||||||
dbcur.execute(cval, (tuvar,))
|
|
||||||
tudelresult = dbcur.fetchone()
|
|
||||||
if int(tudelresult[0]) > 0:
|
|
||||||
dbcur.execute(drmv, (tuvar,))
|
|
||||||
db.commit()
|
|
||||||
jobtu = cron.find_comment('Tuesday')
|
|
||||||
cron.remove(jobtu)
|
|
||||||
cron.write()
|
|
||||||
print('Tue Cron Deleted')
|
|
||||||
print('Tue was deleted from db becuase the cb is off')
|
|
||||||
else:
|
|
||||||
print('nothing to delete')
|
|
||||||
print('tue is off')
|
|
||||||
if cbw_v.get() == 1:
|
|
||||||
dbcur.execute(cval, (wvar,))
|
|
||||||
crresult = dbcur.fetchone()
|
|
||||||
if int(crresult[0]) > 0:
|
|
||||||
print(alrdy, "Wed")
|
|
||||||
else:
|
|
||||||
dbcur.execute(dinsrt, (wvar,))
|
|
||||||
db.commit()
|
|
||||||
print('Wed Added to Database')
|
|
||||||
jobw = cron.new(
|
|
||||||
command='/bin/sh opt/pypep/pepwork.sh',
|
|
||||||
comment='Wednesday')
|
|
||||||
jobw.hour.on(hra)
|
|
||||||
jobw.minute.on(mia)
|
|
||||||
jobw.dow.on(3)
|
|
||||||
cron.write()
|
|
||||||
print('wrote cron')
|
|
||||||
print('wed is on')
|
|
||||||
else:
|
|
||||||
if cbw_v.get() == 0:
|
|
||||||
dbcur.execute(cval, (wvar,))
|
|
||||||
wdelresult = dbcur.fetchone()
|
|
||||||
if int(wdelresult[0]) > 0:
|
|
||||||
dbcur.execute(drmv, (wvar,))
|
|
||||||
db.commit()
|
|
||||||
jobw = cron.find_comment('Wednesday')
|
|
||||||
cron.remove(jobw)
|
|
||||||
cron.write()
|
|
||||||
print('Wed Cron Deleted')
|
|
||||||
print('Wed was deleted from db becuase the cb is off')
|
|
||||||
else:
|
|
||||||
print('nothing to delete')
|
|
||||||
print('wed is off')
|
|
||||||
if cbt_v.get() == 1:
|
|
||||||
dbcur.execute(cval, (tvar,))
|
|
||||||
crresult = dbcur.fetchone()
|
|
||||||
if int(crresult[0]) > 0:
|
|
||||||
print(alrdy, "Thu")
|
|
||||||
else:
|
|
||||||
dbcur.execute(dinsrt, (tvar,))
|
|
||||||
db.commit()
|
|
||||||
print('Thu Added to Database')
|
|
||||||
jobt = cron.new(
|
|
||||||
command='/bin/sh opt/pypep/pepwork.sh',
|
|
||||||
comment='Thursday')
|
|
||||||
jobt.hour.on(hra)
|
|
||||||
jobt.minute.on(mia)
|
|
||||||
jobt.dow.on(4)
|
|
||||||
cron.write()
|
|
||||||
print('wrote cron')
|
|
||||||
print('thu is on')
|
|
||||||
else:
|
|
||||||
if cbt_v.get() == 0:
|
|
||||||
dbcur.execute(cval, (tvar,))
|
|
||||||
tdelresult = dbcur.fetchone()
|
|
||||||
if int(tdelresult[0]) > 0:
|
|
||||||
dbcur.execute(drmv, (tvar,))
|
|
||||||
db.commit()
|
|
||||||
jobt = cron.find_comment('Thursday')
|
|
||||||
cron.remove(jobt)
|
|
||||||
cron.write()
|
|
||||||
print('Thu Cron Deleted')
|
|
||||||
print('Thu was deleted from db becuase the cb is off')
|
|
||||||
else:
|
|
||||||
print('nothing to delete')
|
|
||||||
print('thu is off')
|
|
||||||
|
|
||||||
if cbf_v.get() == 1:
|
|
||||||
dbcur.execute(cval, (fvar,))
|
|
||||||
crresult = dbcur.fetchone()
|
|
||||||
if int(crresult[0]) > 0:
|
|
||||||
print(alrdy, "Fri")
|
|
||||||
else:
|
|
||||||
dbcur.execute(dinsrt, (fvar,))
|
|
||||||
db.commit()
|
|
||||||
print('Fri Added to Database')
|
|
||||||
jobf = cron.new(
|
|
||||||
command='/bin/sh opt/pypep/pepwork.sh',
|
|
||||||
comment='Friday')
|
|
||||||
jobf.hour.on(hra)
|
|
||||||
jobf.minute.on(mia)
|
|
||||||
jobf.dow.on(5)
|
|
||||||
cron.write()
|
|
||||||
print('wrote cron')
|
|
||||||
print('fri is on')
|
|
||||||
else:
|
|
||||||
if cbf_v.get() == 0:
|
|
||||||
dbcur.execute(cval, (fvar,))
|
|
||||||
fdelresult = dbcur.fetchone()
|
|
||||||
if int(fdelresult[0]) > 0:
|
|
||||||
dbcur.execute(drmv, (fvar,))
|
|
||||||
db.commit()
|
|
||||||
jobf = cron.find_comment('Friday')
|
|
||||||
cron.remove(jobf)
|
|
||||||
cron.write()
|
|
||||||
print('Fri Cron Deleted')
|
|
||||||
print('Fri was deleted from db becuase the cb is off')
|
|
||||||
else:
|
|
||||||
print('nothing to delete')
|
|
||||||
print('fri is off')
|
|
||||||
if cbsa_v.get() == 1:
|
|
||||||
dbcur.execute(cval, (savar,))
|
|
||||||
crresult = dbcur.fetchone()
|
|
||||||
if int(crresult[0]) > 0:
|
|
||||||
print(alrdy, "Sat")
|
|
||||||
else:
|
|
||||||
dbcur.execute(dinsrt, (savar,))
|
|
||||||
db.commit()
|
|
||||||
print('Sat Added to Database')
|
|
||||||
jobsa = cron.new(
|
|
||||||
command='/bin/sh opt/pypep/pepwork.sh',
|
|
||||||
comment='Saturday')
|
|
||||||
jobsa.hour.on(hra)
|
|
||||||
jobsa.minute.on(mia)
|
|
||||||
jobsa.dow.on(6)
|
|
||||||
cron.write()
|
|
||||||
print('wrote cron')
|
|
||||||
print('sat is on')
|
|
||||||
else:
|
|
||||||
if cbsa_v.get() == 0:
|
|
||||||
dbcur.execute(cval, (savar,))
|
|
||||||
sadelresult = dbcur.fetchone()
|
|
||||||
if int(sadelresult[0]) > 0:
|
|
||||||
dbcur.execute(drmv, (savar,))
|
|
||||||
db.commit()
|
|
||||||
jobsa = cron.find_comment('Saturday')
|
|
||||||
cron.remove(jobsa)
|
|
||||||
cron.write()
|
|
||||||
print('Sat Cron Deleted')
|
|
||||||
print('Sat was deleted from db becuase the cb is off')
|
|
||||||
else:
|
|
||||||
print('nothing to delete')
|
|
||||||
print('sat is off')
|
|
||||||
if cbsu_v.get() == 1:
|
|
||||||
dbcur.execute(cval, (suvar,))
|
|
||||||
crresult = dbcur.fetchone()
|
|
||||||
if int(crresult[0]) > 0:
|
|
||||||
print(alrdy, "Sun")
|
|
||||||
else:
|
|
||||||
dbcur.execute(dinsrt, (suvar,))
|
|
||||||
db.commit()
|
|
||||||
print('Sun Added to Database')
|
|
||||||
jobsu = cron.new(
|
|
||||||
command='/bin/sh opt/pypep/pepwork.sh',
|
|
||||||
comment='Sunday')
|
|
||||||
jobsu.hour.on(hra)
|
|
||||||
jobsu.minute.on(mia)
|
|
||||||
jobsu.dow.on(0)
|
|
||||||
cron.write()
|
|
||||||
for job in cron:
|
|
||||||
print(job)
|
|
||||||
print('wrote cron')
|
|
||||||
print('sun is on')
|
|
||||||
else:
|
|
||||||
if cbsu_v.get() == 0:
|
|
||||||
dbcur.execute(cval, (suvar,))
|
|
||||||
sudelresult = dbcur.fetchone()
|
|
||||||
if int(sudelresult[0]) > 0:
|
|
||||||
dbcur.execute(drmv, (suvar,))
|
|
||||||
db.commit()
|
|
||||||
jobsu = cron.find_comment('Sunday')
|
|
||||||
cron.remove(jobsu)
|
|
||||||
cron.write()
|
|
||||||
print('Sun Cron Deleted')
|
|
||||||
print('Sun was deleted from db because the cb is off')
|
|
||||||
else:
|
|
||||||
print('nothing to delete')
|
|
||||||
print('sun is off')
|
|
||||||
pwin.destroy()
|
|
||||||
|
|
||||||
|
|
||||||
# notebook stuff
|
|
||||||
pnb = ttk.Notebook(pwin, bootstyle="danger")
|
|
||||||
pnb.pack(pady=10, expand=True)
|
|
||||||
fnb1 = ttk.Frame(pnb, width=400, height=400)
|
|
||||||
fnb2 = ttk.Frame(pnb, width=400, height=400)
|
|
||||||
fnb1.pack(fill='both', expand=True)
|
|
||||||
fnb2.pack(fill='both', expand=True)
|
|
||||||
pnb.add(fnb1, text='Update Manager')
|
|
||||||
pnb.add(fnb2, text='Options')
|
|
||||||
# frames to use separate parts of the window
|
|
||||||
fbset0 = Frame(fnb1)
|
|
||||||
fbset0.pack(side="top")
|
|
||||||
fbset1 = Frame(fnb1)
|
|
||||||
fbset1.pack(side="top")
|
|
||||||
fbset3 = Frame(fnb1)
|
|
||||||
fbset3.pack(side="top")
|
|
||||||
fbset2 = Frame(fnb1)
|
|
||||||
fbset2.pack(side="top")
|
|
||||||
fbset4 = Frame(fnb1)
|
|
||||||
fbset4.pack(side="top")
|
|
||||||
fterm = Frame(fnb1)
|
|
||||||
fterm.pack(side="top", fill="both", expand=True)
|
|
||||||
# These lables provide space in betweenthe buttons
|
|
||||||
# Using pack on the Update manager tab
|
|
||||||
lbltitle = ttk.Label(fbset0)
|
|
||||||
lbltitle.pack()
|
|
||||||
lbltitle = ttk.Label(fbset3)
|
|
||||||
lbltitle.pack()
|
|
||||||
lbltitle = ttk.Label(fbset4)
|
|
||||||
lbltitle.pack()
|
|
||||||
# Holds the terminal output
|
|
||||||
terminalstuff = ScrolledText(fterm, padding=5, bootstyle="dark")
|
|
||||||
terminalstuff.pack(fill="both", expand=True)
|
|
||||||
# The things that are used on the Update Manager Tab
|
|
||||||
sysupdtbtn = ttk.Button(
|
|
||||||
fbset1,
|
|
||||||
text="System Updates",
|
|
||||||
width=20,
|
|
||||||
cursor="hand2",
|
|
||||||
bootstyle="light-outline",
|
|
||||||
command=peppersys)
|
|
||||||
sysupdtbtn.pack(side="left")
|
|
||||||
ptupdtbtn = ttk.Button(
|
|
||||||
fbset1,
|
|
||||||
text="Update Pep Tools",
|
|
||||||
width=20,
|
|
||||||
cursor="hand2",
|
|
||||||
bootstyle="light-outline",
|
|
||||||
command=updtpeptools)
|
|
||||||
ptupdtbtn.pack(side="left")
|
|
||||||
lblumsg = ttk.Label(
|
|
||||||
fbset2,
|
|
||||||
text="Use the buttons to update your tools or system",
|
|
||||||
bootstyle="inverse-light")
|
|
||||||
lblumsg.pack()
|
|
||||||
|
|
||||||
# the things that are used on the Options tab
|
|
||||||
# The title of the Peppermint Tools Section
|
|
||||||
lblopttitle = ttk.Label(
|
|
||||||
fnb2,
|
|
||||||
text="Set a schedule for Peppermint tools",
|
|
||||||
bootstyle="inverse-light")
|
|
||||||
lblopttitle.place(x=10, y=15)
|
|
||||||
# First one below the Peppermint tools title
|
|
||||||
sepoptlt = ttk.Separator(fnb2, bootstyle="danger", orient=HORIZONTAL)
|
|
||||||
sepoptlt.place(x=10, y=40, relwidth=1)
|
|
||||||
# Second one below the System Updates
|
|
||||||
sepopbtm = ttk.Separator(fnb2, bootstyle="danger", orient=HORIZONTAL)
|
|
||||||
sepopbtm.place(x=10, y=140, relwidth=1)
|
|
||||||
# The last one right above the information
|
|
||||||
sepopend = ttk.Separator(fnb2, bootstyle="danger", orient=HORIZONTAL)
|
|
||||||
sepopend.place(x=10, y=240, relwidth=1)
|
|
||||||
|
|
||||||
cbm_v = tk.IntVar()
|
|
||||||
cbm = ttk.Checkbutton(fnb2, text="Mon", variable=cbm_v,
|
|
||||||
bootstyle="success-round-toggle")
|
|
||||||
cbm.place(x=10, y=180)
|
|
||||||
cbtu_v = tk.IntVar()
|
|
||||||
cbtu = ttk.Checkbutton(
|
|
||||||
fnb2,
|
|
||||||
text="Tue",
|
|
||||||
variable=cbtu_v,
|
|
||||||
bootstyle="success-round-toggle")
|
|
||||||
cbtu.place(x=80, y=180)
|
|
||||||
cbw_v = tk.IntVar()
|
|
||||||
cbw = ttk.Checkbutton(fnb2, text="Wed", variable=cbw_v,
|
|
||||||
bootstyle="success-round-toggle")
|
|
||||||
cbw.place(x=160, y=180)
|
|
||||||
cbt_v = tk.IntVar()
|
|
||||||
cbt = ttk.Checkbutton(fnb2, text="Thu", variable=cbt_v,
|
|
||||||
bootstyle="success-round-toggle")
|
|
||||||
cbt.place(x=240, y=180)
|
|
||||||
cbf_v = tk.IntVar()
|
|
||||||
cbf = ttk.Checkbutton(fnb2, text="Fri", variable=cbf_v,
|
|
||||||
bootstyle="success-round-toggle")
|
|
||||||
cbf.place(x=10, y=210)
|
|
||||||
cbsa_v = tk.IntVar()
|
|
||||||
cbsa = ttk.Checkbutton(
|
|
||||||
fnb2,
|
|
||||||
text="Sat",
|
|
||||||
variable=cbsa_v,
|
|
||||||
bootstyle="success-round-toggle")
|
|
||||||
cbsa.place(x=80, y=210)
|
|
||||||
cbsu_v = tk.IntVar()
|
|
||||||
cbsu = ttk.Checkbutton(
|
|
||||||
fnb2,
|
|
||||||
text="Sun",
|
|
||||||
variable=cbsu_v,
|
|
||||||
bootstyle="success-round-toggle")
|
|
||||||
cbsu.place(x=160, y=210)
|
|
||||||
# lets the user know the schedule will start from the selected date
|
|
||||||
lbloptdys = ttk.Label(fnb2, text="Select the days you want")
|
|
||||||
lbloptdys.place(x=10, y=150)
|
|
||||||
lblopttime = ttk.Label(fnb2, text="Select the time you want")
|
|
||||||
lblopttime.place(x=10, y=50)
|
|
||||||
lblopttimehr = ttk.Label(fnb2, text="hr")
|
|
||||||
lblopttimehr.place(x=17, y=80)
|
|
||||||
lblopttimemin = ttk.Label(fnb2, text="min")
|
|
||||||
lblopttimemin.place(x=66, y=80)
|
|
||||||
txtopthour = ttk.Entry(fnb2, bootstyle="danger", width=2)
|
|
||||||
txtopthour.place(x=10, y=100)
|
|
||||||
lblopttimecl = ttk.Label(fnb2, text=":")
|
|
||||||
lblopttimecl.place(x=50, y=105)
|
|
||||||
txtoptmin = ttk.Entry(fnb2, bootstyle="danger", width=2)
|
|
||||||
txtoptmin.place(x=66, y=100)
|
|
||||||
# this is the information section explaining what this application does.
|
|
||||||
# The frame that holds the message
|
|
||||||
instfr = ttk.Labelframe(fnb2, bootstyle="danger", text='Information')
|
|
||||||
instfr.place(x=10, y=270)
|
|
||||||
# The message
|
|
||||||
lblinstpt = ttk.Label(
|
|
||||||
instfr,
|
|
||||||
text="When you set a schedule for the Peppermint tools, the updater"
|
|
||||||
" will check the git repos for any new updates that may be"
|
|
||||||
" available and install them. Addtionally System Updates"
|
|
||||||
" will check the Debian or Devuan repos depending on what spin"
|
|
||||||
" of Peppermint you are running ",
|
|
||||||
wraplength=600)
|
|
||||||
lblinstpt.pack(side="top", pady=5, padx=5)
|
|
||||||
btnpt = ttk.Button(
|
|
||||||
fnb2,
|
|
||||||
text="Save & Exit",
|
|
||||||
cursor="hand2",
|
|
||||||
bootstyle="light-outline",
|
|
||||||
command=pcron)
|
|
||||||
btnpt.place(x=500, y=500)
|
|
||||||
# call Center screen
|
|
||||||
center_screen()
|
|
||||||
ldsettings()
|
|
||||||
pwin.mainloop()
|
|
|
@ -1,42 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
pdir=/opt/tmprpox
|
|
||||||
fdir=/opt/tmprpox/PepProTools
|
|
||||||
desdir=/opt/pypep
|
|
||||||
cbr="https://codeberg.org/Peppermint_OS/PepProTools.git"
|
|
||||||
|
|
||||||
fwt(){
|
|
||||||
###Function to run if the folder was there (fwt)###
|
|
||||||
#remove the tmpropox
|
|
||||||
rm -r "$pdir"
|
|
||||||
#make a new folder tmprox
|
|
||||||
mkdir "$pdir"
|
|
||||||
#go to the tmprpox folder
|
|
||||||
cd "$pdir"
|
|
||||||
#clone the protools repo
|
|
||||||
git clone "$cbr"
|
|
||||||
#use rsynch to copy files over to the opt location
|
|
||||||
#rsync -av /opt/tmprpox/* /opt/pypep
|
|
||||||
rsync -av "$fdir"/* "$desdir"
|
|
||||||
#Clean up and remove the tmpropox
|
|
||||||
rm -r "$pdir"
|
|
||||||
|
|
||||||
}
|
|
||||||
fwnt(){
|
|
||||||
###Function to run if the folder was not there (fwnt)###
|
|
||||||
mkdir "$pdir"
|
|
||||||
#go to the tmprpox folder
|
|
||||||
cd "$pdir"
|
|
||||||
#clone the protools repo
|
|
||||||
git clone "$cbr"
|
|
||||||
#use rsynch to copy files over to the opt location
|
|
||||||
#rsync -av /opt/tmprpox/* /opt/pypep
|
|
||||||
rsync -av "$fdir"/* "$desdir"
|
|
||||||
#Clean up and remove the tmpropox
|
|
||||||
rm -r "$pdir"
|
|
||||||
}
|
|
||||||
|
|
||||||
fupug(){
|
|
||||||
#Run the apt update and upgrade to update from the debian repos
|
|
||||||
apt update && apt upgrade -y
|
|
||||||
}
|
|
|
@ -1,21 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
#use the utils for the needed functions
|
|
||||||
source peputils.sh
|
|
||||||
#start system updates
|
|
||||||
fupug
|
|
||||||
|
|
||||||
#see if the tmprpox folder exists
|
|
||||||
#if it does run the fwt function else
|
|
||||||
#runs the fwnt function - See the peputils for descriptions
|
|
||||||
#of what the functions do
|
|
||||||
if [ -d "$pdir" ];
|
|
||||||
then
|
|
||||||
fwt
|
|
||||||
else
|
|
||||||
fwnt
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,88 +0,0 @@
|
||||||
"""
|
|
||||||
* Author: "PepDebian(peppermintosteam@proton.me)
|
|
||||||
*
|
|
||||||
* License: SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
*
|
|
||||||
* This script is used to download extras
|
|
||||||
"""
|
|
||||||
|
|
||||||
import subprocess as sp
|
|
||||||
import tkinter as tk
|
|
||||||
import ttkbootstrap as ttk
|
|
||||||
from tendo import singleton
|
|
||||||
|
|
||||||
#setting up window
|
|
||||||
pex = ttk.Window(themename="darkly")
|
|
||||||
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'))
|
|
||||||
|
|
||||||
|
|
||||||
#keep only instance at a time
|
|
||||||
me = singleton.SingleInstance()
|
|
||||||
|
|
||||||
#main title style
|
|
||||||
spmt = ttk.Style()
|
|
||||||
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.place(x=10, y=10)
|
|
||||||
#Functions to open the other pythons files. or close this screen ###
|
|
||||||
#open the sure scripts
|
|
||||||
def icons():
|
|
||||||
"""get the icons"""
|
|
||||||
pex.destroy()
|
|
||||||
sp.call(['xfce4-terminal', '-x','/opt/pypep/icons.sh'])
|
|
||||||
|
|
||||||
|
|
||||||
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 """
|
|
||||||
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##
|
|
||||||
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()
|
|
|
@ -1,70 +0,0 @@
|
||||||
"""
|
|
||||||
* 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_())
|
|
|
@ -1,23 +0,0 @@
|
||||||
"""
|
|
||||||
* Author: "PepDebian(peppermintosteam@proton.me)
|
|
||||||
*
|
|
||||||
* License: SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
*
|
|
||||||
* this script is for performing utility functions
|
|
||||||
*
|
|
||||||
"""
|
|
||||||
|
|
||||||
import apt
|
|
||||||
|
|
||||||
#gets all installed packages
|
|
||||||
cache = apt.Cache()
|
|
||||||
|
|
||||||
#Checks if a package is installed
|
|
||||||
def install_check(appname):
|
|
||||||
"""This one check is a application is installed"""
|
|
||||||
try:
|
|
||||||
print(appname,cache[appname].is_installed)
|
|
||||||
return cache[appname].is_installed
|
|
||||||
except:
|
|
||||||
#probably not installed or otherwise throws errors on check
|
|
||||||
return False
|
|
Before Width: | Height: | Size: 12 KiB |
|
@ -1,252 +0,0 @@
|
||||||
"""
|
|
||||||
* 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()
|
|
|
@ -1,2 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
sudo /opt/pypep/xDaily
|
|
|
@ -1,23 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
_extras=themes
|
|
||||||
_repo="Peppermint_OS/PepThemes"
|
|
||||||
|
|
||||||
###########################################
|
|
||||||
# Quietly have wget -q0- "pipe" its output directly to tar.
|
|
||||||
# Use tar -xvz to decompress, list and untar the DL file
|
|
||||||
# to the symlink 'pepthemes' in /usr/share, on the fly.
|
|
||||||
# Leaving no files to remove and no permission changes required.
|
|
||||||
###########################################
|
|
||||||
|
|
||||||
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 &
|
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
_extras=wallpapers
|
|
||||||
_repo="Peppermint_OS/PepWallPaper"
|
|
||||||
|
|
||||||
###########################################
|
|
||||||
# Quietly have wget -q0- "pipe" its output directly to tar.
|
|
||||||
# Use tar -xvz to decompress, list and untar the DL file
|
|
||||||
# to the symlink 'pepwallpaper' in /usr/share, on the fly.
|
|
||||||
# Leaving no files to remove and no permission changes required.
|
|
||||||
###########################################
|
|
||||||
|
|
||||||
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 &
|
|
||||||
|
|
|
@ -1,78 +0,0 @@
|
||||||
"""
|
|
||||||
* 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
|
|
||||||
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'))
|
|
||||||
|
|
||||||
# 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 wls():
|
|
||||||
"""Check if user can connect to codeberg"""
|
|
||||||
pexs.destroy()
|
|
||||||
os.system('python3 /opt/pypep/diagwlschk.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 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()
|
|
||||||
|
|
||||||
pexs.mainloop()
|
|
|
@ -1,23 +0,0 @@
|
||||||
#!/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("App Image Hub")
|
|
||||||
self.setWindowIcon(QIcon('/usr/share/pixmaps/peppermint-old.png'))
|
|
||||||
self.browser = QWebEngineView()
|
|
||||||
self.browser.setUrl(QUrl("https://www.appimagehub.com/"))
|
|
||||||
self.setCentralWidget(self.browser)
|
|
||||||
self.show()
|
|
||||||
|
|
||||||
app = QApplication(sys.argv)
|
|
||||||
window = MainWindow()
|
|
||||||
|
|
||||||
app.exec_()
|
|
|
@ -1,24 +0,0 @@
|
||||||
#!/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_()
|
|
|
@ -1,22 +0,0 @@
|
||||||
#!/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_()
|
|
|
@ -1,23 +0,0 @@
|
||||||
#!/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("Flat Hub")
|
|
||||||
self.setWindowIcon(QIcon('/usr/share/pixmaps/peppermint-old.png'))
|
|
||||||
self.browser = QWebEngineView()
|
|
||||||
self.browser.setUrl(QUrl("https://flathub.org/"))
|
|
||||||
self.setCentralWidget(self.browser)
|
|
||||||
self.show()
|
|
||||||
|
|
||||||
app = QApplication(sys.argv)
|
|
||||||
window = MainWindow()
|
|
||||||
|
|
||||||
app.exec_()
|
|
|
@ -1,23 +0,0 @@
|
||||||
#!/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 Community Forum")
|
|
||||||
self.setWindowIcon(QIcon('/usr/share/pixmaps/peppermint-fm-20.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_()
|
|
|
@ -1,23 +0,0 @@
|
||||||
#!/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("Gnome Store")
|
|
||||||
self.setWindowIcon(QIcon('/usr/share/pixmaps/peppermint-old.png'))
|
|
||||||
self.browser = QWebEngineView()
|
|
||||||
self.browser.setUrl(QUrl("https://wiki.gnome.org/Projects/SandboxedApps"))
|
|
||||||
self.setCentralWidget(self.browser)
|
|
||||||
self.show()
|
|
||||||
|
|
||||||
app = QApplication(sys.argv)
|
|
||||||
window = MainWindow()
|
|
||||||
|
|
||||||
app.exec_()
|
|
|
@ -1,23 +0,0 @@
|
||||||
#!/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 Mastodon")
|
|
||||||
self.setWindowIcon(QIcon('/opt/pypep/mn.png'))
|
|
||||||
self.browser = QWebEngineView()
|
|
||||||
self.browser.setUrl(QUrl("https://fosstodon.org/web/@peppermintos"))
|
|
||||||
self.setCentralWidget(self.browser)
|
|
||||||
self.show()
|
|
||||||
|
|
||||||
app = QApplication(sys.argv)
|
|
||||||
window = MainWindow()
|
|
||||||
|
|
||||||
app.exec_()
|
|
|
@ -1,23 +0,0 @@
|
||||||
#!/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_()
|
|
|
@ -1,23 +0,0 @@
|
||||||
#!/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("PepDocs")
|
|
||||||
self.setWindowIcon(QIcon('/usr/share/pixmaps/peppermint-old.png'))
|
|
||||||
self.browser = QWebEngineView()
|
|
||||||
self.browser.setUrl(QUrl("https://peppermint_os.codeberg.page/html/"))
|
|
||||||
self.setCentralWidget(self.browser)
|
|
||||||
self.show()
|
|
||||||
|
|
||||||
app = QApplication(sys.argv)
|
|
||||||
window = MainWindow()
|
|
||||||
|
|
||||||
app.exec_()
|
|
|
@ -1,23 +0,0 @@
|
||||||
#!/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_()
|
|
|
@ -1,23 +0,0 @@
|
||||||
#!/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 Release Notes")
|
|
||||||
self.setWindowIcon(QIcon('/usr/share/pixmaps/peppermint-old.png'))
|
|
||||||
self.browser = QWebEngineView()
|
|
||||||
self.browser.setUrl(QUrl("https://peppermint_os.codeberg.page/releasenotes.html"))
|
|
||||||
self.setCentralWidget(self.browser)
|
|
||||||
self.show()
|
|
||||||
|
|
||||||
app = QApplication(sys.argv)
|
|
||||||
window = MainWindow()
|
|
||||||
|
|
||||||
app.exec_()
|
|
|
@ -1,23 +0,0 @@
|
||||||
#!/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_()
|
|
|
@ -1,23 +0,0 @@
|
||||||
#!/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("Snap Craft")
|
|
||||||
self.setWindowIcon(QIcon('/usr/share/pixmaps/peppermint-old.png'))
|
|
||||||
self.browser = QWebEngineView()
|
|
||||||
self.browser.setUrl(QUrl("https://snapcraft.io/snap-store"))
|
|
||||||
self.setCentralWidget(self.browser)
|
|
||||||
self.show()
|
|
||||||
|
|
||||||
app = QApplication(sys.argv)
|
|
||||||
window = MainWindow()
|
|
||||||
|
|
||||||
app.exec_()
|
|
|
@ -1,45 +0,0 @@
|
||||||
#!/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_()
|
|
|
@ -1,23 +0,0 @@
|
||||||
#!/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 Team Twitter")
|
|
||||||
self.setWindowIcon(QIcon('/usr/share/pixmaps/twtter.png'))
|
|
||||||
self.browser = QWebEngineView()
|
|
||||||
self.browser.setUrl(QUrl("https://twitter.com/peppermintos"))
|
|
||||||
self.setCentralWidget(self.browser)
|
|
||||||
self.show()
|
|
||||||
|
|
||||||
app = QApplication(sys.argv)
|
|
||||||
window = MainWindow()
|
|
||||||
|
|
||||||
app.exec_()
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
python3 ~/.local/share/pmostools/peptools/welcome.py
|
|
@ -1,308 +0,0 @@
|
||||||
"""
|
|
||||||
* 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 tkinter as tk
|
|
||||||
import ttkbootstrap as ttk
|
|
||||||
import welconf
|
|
||||||
import welfunc
|
|
||||||
|
|
||||||
|
|
||||||
# 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)
|
|
||||||
|
|
||||||
|
|
||||||
def center_screen():
|
|
||||||
""" 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))
|
|
||||||
|
|
||||||
|
|
||||||
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 the application
|
|
||||||
pewel.mainloop()
|
|
|
@ -1,38 +0,0 @@
|
||||||
"""
|
|
||||||
* 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.")
|
|
|
@ -1,72 +0,0 @@
|
||||||
"""
|
|
||||||
* 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 &')
|
|
|
@ -3,8 +3,6 @@
|
||||||
PROGNAME="xDaily"
|
PROGNAME="xDaily"
|
||||||
[ "$USER" != "root" ] &&
|
[ "$USER" != "root" ] &&
|
||||||
echo -e "\t$PROGNAME must be run as root. \n\tOr with \`sudo $PROGNAME\` ." && exit
|
echo -e "\t$PROGNAME must be run as root. \n\tOr with \`sudo $PROGNAME\` ." && exit
|
||||||
#use the utils for the needed functions
|
|
||||||
source /opt/pypep/peputils.sh
|
|
||||||
|
|
||||||
### Our options are going to be
|
### Our options are going to be
|
||||||
# = "full output to the terminal, no stopping."
|
# = "full output to the terminal, no stopping."
|
||||||
|
@ -184,18 +182,6 @@ _ssd_trimfs() {
|
||||||
run_it
|
run_it
|
||||||
}
|
}
|
||||||
|
|
||||||
_ptools() {
|
|
||||||
_msg="Synch up the PepTools"
|
|
||||||
do_it() {
|
|
||||||
if [ -d "$pdir" ]
|
|
||||||
then fwt
|
|
||||||
else fwnt
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
see_it
|
|
||||||
no_see
|
|
||||||
run_it
|
|
||||||
}
|
|
||||||
|
|
||||||
_udcache() {
|
_udcache() {
|
||||||
_msg="Caching icons at /usr/share/icons/"
|
_msg="Caching icons at /usr/share/icons/"
|
||||||
|
@ -217,7 +203,6 @@ _clear_recents
|
||||||
_udcache
|
_udcache
|
||||||
_rbranding
|
_rbranding
|
||||||
_ssd_trimfs
|
_ssd_trimfs
|
||||||
_ptools
|
|
||||||
|
|
||||||
[ "$_interactive" = "yes" ] &&
|
[ "$_interactive" = "yes" ] &&
|
||||||
read -n1 -p " Press any key to continue ... " answ
|
read -n1 -p " Press any key to continue ... " answ
|
||||||
|
|
17
README.md
|
@ -1,17 +0,0 @@
|
||||||
Copyright (C) 2022 Peppermint OS.
|
|
||||||
|
|
||||||
# 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
|
|
|
@ -1 +0,0 @@
|
||||||
../PepCoreFiles/RepoUpdater
|
|
|
@ -2,10 +2,10 @@
|
||||||
Version=1.0
|
Version=1.0
|
||||||
Type=Application
|
Type=Application
|
||||||
Name=Peppermint Hub
|
Name=Peppermint Hub
|
||||||
Exec=python3 hub.py
|
Exec=hub
|
||||||
Icon=/usr/share/pixmaps/peppermint-hub.png
|
Icon=/usr/share/pixmaps/peppermint-hub.png
|
||||||
Terminal=false
|
Terminal=false
|
||||||
Categories=Settings
|
Categories=Settings
|
||||||
StartupNotify=True
|
StartupNotify=True
|
||||||
Comment=Use the Hub to configure your system
|
Comment=Use the Hub to configure your system
|
||||||
Path=/opt/pypep
|
|
4
pepnightly/pepapplication/Welcome.desktop → applications/Welcome.desktop
Normal file → Executable file
|
@ -2,10 +2,10 @@
|
||||||
Version=1.0
|
Version=1.0
|
||||||
Type=Application
|
Type=Application
|
||||||
Name=Welcome to Peppermint
|
Name=Welcome to Peppermint
|
||||||
Exec=python3 welcome_man.py
|
Exec=welcome
|
||||||
Icon=/usr/share/pixmaps/peppermint.png
|
Icon=/usr/share/pixmaps/peppermint.png
|
||||||
Terminal=false
|
Terminal=false
|
||||||
Categories=Settings
|
Categories=Settings
|
||||||
StartupNotify=True
|
StartupNotify=True
|
||||||
Name[en_US]=Welcome to Peppermint
|
Name[en_US]=Welcome to Peppermint
|
||||||
Path=/opt/pypep
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Type=Application
|
||||||
|
Encoding=UTF-8
|
||||||
|
Name=jgmenu
|
||||||
|
GenericName=Application Menu
|
||||||
|
GenericName[ru]=Меню приложений
|
||||||
|
GenericName[sv]=Program Meny
|
||||||
|
Comment=Displays menu for launching installed applications
|
||||||
|
Comment[ru]=Отображает меню для запуска установленных приложений
|
||||||
|
Comment[sv]=Visar meny för installerade program
|
||||||
|
Exec=jgmenu_run
|
||||||
|
Terminal=false
|
||||||
|
Icon=Menu_logo
|
||||||
|
Categories=System
|
||||||
|
StartupNotify=false
|
|
@ -0,0 +1,10 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Name=Kumo
|
||||||
|
GenericName=Kumo
|
||||||
|
Comment=Simple SSB Launcher
|
||||||
|
Categories=Network;
|
||||||
|
Type=Application
|
||||||
|
Exec=kumo
|
||||||
|
Icon=/usr/share/pixmaps/kumo.png
|
||||||
|
Terminal=false
|
||||||
|
NoDisplay=false
|
|
@ -0,0 +1,67 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Name=Plank
|
||||||
|
GenericName=Dock
|
||||||
|
Comment[am]=በጣም ቀላል
|
||||||
|
Comment[ar]=بسيط بغباء.
|
||||||
|
Comment[bg]=Пределно прост.
|
||||||
|
Comment[bs]=Glupavo jednostavan.
|
||||||
|
Comment[ca]=Estúpidament simple.
|
||||||
|
Comment[cs]=Stupidně jednoduchý.
|
||||||
|
Comment[da]=Super simpel.
|
||||||
|
Comment[de]=Lächerlich einfach.
|
||||||
|
Comment[el]=Βλακωδώς απλό.
|
||||||
|
Comment[en_AU]=Stupidly simple.
|
||||||
|
Comment[en_CA]=Stupidly simple.
|
||||||
|
Comment[en_GB]=Stupidly simple.
|
||||||
|
Comment[eo]=Stulte simple.
|
||||||
|
Comment[es]=Estúpidamente simple.
|
||||||
|
Comment[et]=Hämmastavalt lihtne.
|
||||||
|
Comment[eu]=Erraza baino errazagoa.
|
||||||
|
Comment[fi]=Todella yksinkertainen.
|
||||||
|
Comment[fr]=Stupidement simple.
|
||||||
|
Comment[ga]=Simplíocht shimplí.
|
||||||
|
Comment[gd]=Cho furasta 's a ghabhas.
|
||||||
|
Comment[gl]=Estupidamente simple.
|
||||||
|
Comment[he]=טפשי עד כמה שזה פשוט
|
||||||
|
Comment[hr]=Neviđeno jednostavan
|
||||||
|
Comment[hu]=Nagyszerűen egyszerű.
|
||||||
|
Comment[id]=Begitu sederhana.
|
||||||
|
Comment[it]=Stupidamente semplice.
|
||||||
|
Comment[ja]=超シンプル
|
||||||
|
Comment[ka]=ძალიან მარტივი აი ძალიან
|
||||||
|
Comment[ko]=어처구니없으리 만치 단순한.
|
||||||
|
Comment[lt]=Kvailai paprastas.
|
||||||
|
Comment[lv]=Muļķīgi vienkārši.
|
||||||
|
Comment[ml]=അനായാസം.
|
||||||
|
Comment[ms]=Ringkas la sangat.
|
||||||
|
Comment[nb]=Uforstandig enkelt.
|
||||||
|
Comment[ne]=एकदमै सरल
|
||||||
|
Comment[nl]=Belachelijk eenvoudig.
|
||||||
|
Comment[nn]=Idiotsikkert
|
||||||
|
Comment[pl]=Idiotycznie prosty.
|
||||||
|
Comment[pt]=Estupidamente simples.
|
||||||
|
Comment[pt_BR]=Estupidamente simples.
|
||||||
|
Comment[ro]=Stupid de simplu.
|
||||||
|
Comment[ru]=До безумного прост.
|
||||||
|
Comment[sk]=Primitívne jednoduchý.
|
||||||
|
Comment[sl]=Bedasto preprost.
|
||||||
|
Comment[sma]=dle dan aelhkies.
|
||||||
|
Comment[sr]=Шашаво једноставно.
|
||||||
|
Comment[sr@latin]=Glupavo jenostavan.
|
||||||
|
Comment[sv]=Galet enkelt.
|
||||||
|
Comment[ta]=மிகவும் எளிது
|
||||||
|
Comment[te]=చాలా సరళమైనది.
|
||||||
|
Comment[th]=ง่ายเหี้ยๆ
|
||||||
|
Comment[tr]=Son derece basit.
|
||||||
|
Comment[uk]=Просто легкий.
|
||||||
|
Comment[uz]=Ahmoqona darajada sodda.
|
||||||
|
Comment[vi]=Cực kì đơn giản.
|
||||||
|
Comment[zh_CN]=简单得无语。
|
||||||
|
Comment[zh_TW]=極簡。
|
||||||
|
Comment=Stupidly simple.
|
||||||
|
Categories=Utility;
|
||||||
|
Type=Application
|
||||||
|
Exec=plank
|
||||||
|
Icon=plank
|
||||||
|
Terminal=false
|
||||||
|
NoDisplay=false
|
|
@ -0,0 +1,17 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Title: build-all.sh
|
||||||
|
# Description: Script to build Peppermint Debian ISO images
|
||||||
|
# Author: manuel rosa <manuelsilvarosa@gmail.com>
|
||||||
|
# Date: Outubro 29, 2023
|
||||||
|
# License: GPL-3.0-or-later
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
# update files
|
||||||
|
|
||||||
|
#git pull --ff
|
||||||
|
|
||||||
|
# this script will build the isos sequencialy
|
||||||
|
./debian-64/BldHelper.sh
|
||||||
|
./debian-32/BldHelper.sh
|
12
pepnightly/pepcal/bootloader-config → calamares/bootloader-config-32/bootloader-config
Normal file → Executable file
|
@ -2,20 +2,26 @@
|
||||||
|
|
||||||
CHROOT=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g")
|
CHROOT=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g")
|
||||||
|
|
||||||
# Set secure permissions for the initramfs if we're configuring
|
# Install luks utilities if needed.
|
||||||
|
# Also, set secure permissions for the initramfs if we're configuring
|
||||||
# full-disk-encryption. The initramfs is re-generated later in the
|
# full-disk-encryption. The initramfs is re-generated later in the
|
||||||
# installation process so we only set the permissions snippet without
|
# installation process so we only set the permissions snippet without
|
||||||
# regenerating the initramfs right now:
|
# regenerating the initramfs right now:
|
||||||
if [ "$(mount | grep $CHROOT" " | cut -c -16)" = "/dev/mapper/luks" ]; then
|
if [ "$(mount | grep $CHROOT" " | cut -c -16)" = "/dev/mapper/luks" ]; then
|
||||||
echo "UMASK=0077" > $CHROOT/etc/initramfs-tools/conf.d/initramfs-permissions
|
echo "UMASK=0077" > $CHROOT/etc/initramfs-tools/conf.d/initramfs-permissions
|
||||||
|
chroot $CHROOT apt-get -y install cryptsetup-initramfs cryptsetup keyutils
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Running bootloader-config..."
|
echo "Running bootloader-config..."
|
||||||
|
|
||||||
if [ -d /sys/firmware/efi/efivars ]; then
|
if [ -d /sys/firmware/efi/efivars ]; then
|
||||||
echo " * Installing grub-efi (uefi)..."
|
echo " * Installing grub-efi (uefi)..."
|
||||||
DEBIAN_FRONTEND=noninteractive chroot $CHROOT apt-get -y install grub-efi-ia32 cryptsetup keyutils
|
DEBIAN_FRONTEND=noninteractive chroot $CHROOT apt-get -y install grub-efi-ia32
|
||||||
else
|
else
|
||||||
echo " * install grub... (bios)"
|
echo " * install grub... (bios)"
|
||||||
DEBIAN_FRONTEND=noninteractive chroot $CHROOT apt-get -y install grub-pc cryptsetup keyutils
|
DEBIAN_FRONTEND=noninteractive chroot $CHROOT apt-get -y install grub-pc
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Re-enable os-prober:
|
||||||
|
sed -i "s/#GRUB_DISABLE_OS_PROBER=false/# OS_PROBER re-enabled by Debian Calamares installation:\nGRUB_DISABLE_OS_PROBER=false/g" $CHROOT/etc/default/grub
|
||||||
|
chroot $CHROOT /usr/sbin/update-grub
|
12
pepcal/bootloader-config → calamares/bootloader-config-arm64/bootloader-config
Normal file → Executable file
|
@ -2,20 +2,26 @@
|
||||||
|
|
||||||
CHROOT=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g")
|
CHROOT=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g")
|
||||||
|
|
||||||
# Set secure permissions for the initramfs if we're configuring
|
# Install luks utilities if needed.
|
||||||
|
# Also, set secure permissions for the initramfs if we're configuring
|
||||||
# full-disk-encryption. The initramfs is re-generated later in the
|
# full-disk-encryption. The initramfs is re-generated later in the
|
||||||
# installation process so we only set the permissions snippet without
|
# installation process so we only set the permissions snippet without
|
||||||
# regenerating the initramfs right now:
|
# regenerating the initramfs right now:
|
||||||
if [ "$(mount | grep $CHROOT" " | cut -c -16)" = "/dev/mapper/luks" ]; then
|
if [ "$(mount | grep $CHROOT" " | cut -c -16)" = "/dev/mapper/luks" ]; then
|
||||||
echo "UMASK=0077" > $CHROOT/etc/initramfs-tools/conf.d/initramfs-permissions
|
echo "UMASK=0077" > $CHROOT/etc/initramfs-tools/conf.d/initramfs-permissions
|
||||||
|
chroot $CHROOT apt-get -y install cryptsetup-initramfs cryptsetup keyutils
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Running bootloader-config..."
|
echo "Running bootloader-config..."
|
||||||
|
|
||||||
if [ -d /sys/firmware/efi/efivars ]; then
|
if [ -d /sys/firmware/efi/efivars ]; then
|
||||||
echo " * Installing grub-efi (uefi)..."
|
echo " * Installing grub-efi (uefi)..."
|
||||||
DEBIAN_FRONTEND=noninteractive chroot $CHROOT apt-get -y install grub-efi-ia32 cryptsetup keyutils
|
DEBIAN_FRONTEND=noninteractive chroot $CHROOT apt-get -y install grub-efi-arm64
|
||||||
else
|
else
|
||||||
echo " * install grub... (bios)"
|
echo " * install grub... (bios)"
|
||||||
DEBIAN_FRONTEND=noninteractive chroot $CHROOT apt-get -y install grub-pc cryptsetup keyutils
|
DEBIAN_FRONTEND=noninteractive chroot $CHROOT apt-get -y install grub-pc
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Re-enable os-prober:
|
||||||
|
sed -i "s/#GRUB_DISABLE_OS_PROBER=false/# OS_PROBER re-enabled by Debian Calamares installation:\nGRUB_DISABLE_OS_PROBER=false/g" $CHROOT/etc/default/grub
|
||||||
|
chroot $CHROOT /usr/sbin/update-grub
|
|
@ -26,6 +26,9 @@ images:
|
||||||
slideshow: "show.qml"
|
slideshow: "show.qml"
|
||||||
|
|
||||||
style:
|
style:
|
||||||
sidebarBackground: "#333333"
|
sidebarBackground: "#C0C0C0"
|
||||||
sidebarText: "#FFFFFF"
|
sidebarText: "#000000"
|
||||||
sidebarTextSelect: "#F62817"
|
sidebarTextSelect: "#ffffff"
|
||||||
|
sidebarTextHighlight: "#f62817"
|
||||||
|
|
||||||
|
|
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 54 KiB |
|
@ -0,0 +1,40 @@
|
||||||
|
/* === This file is part of Calamares - <http://github.com/calamares> ===
|
||||||
|
*
|
||||||
|
* Copyright 2015, Teo Mrnjavac <teo@kde.org>
|
||||||
|
* Copyright 2018-2019, Jonathan Carter <jcc@debian.org>
|
||||||
|
*
|
||||||
|
* Calamares 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, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* Calamares 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 Calamares. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import QtQuick 2.0;
|
||||||
|
import calamares.slideshow 1.0;
|
||||||
|
|
||||||
|
Presentation
|
||||||
|
{
|
||||||
|
id: presentation
|
||||||
|
Timer {
|
||||||
|
interval: 20000
|
||||||
|
running: true
|
||||||
|
repeat: true
|
||||||
|
onTriggered: presentation.goToNextSlide()
|
||||||
|
}
|
||||||
|
Slide {
|
||||||
|
Image {
|
||||||
|
id: background5
|
||||||
|
source: "s5.png"
|
||||||
|
width: 2000; height: 2000
|
||||||
|
fillMode: Image.PreserveAspectFit
|
||||||
|
anchors.centerIn: parent
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,163 @@
|
||||||
|
/*########Current Calamares Styles##########*/
|
||||||
|
/* These "Q's" are master styles for overall colours */
|
||||||
|
#mainApp {background-color: #C0C0C0;
|
||||||
|
font-family: Cantarell;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #000000
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Set the entire Font and Background color */
|
||||||
|
QWidget { color: #000000 ;
|
||||||
|
background-color: #C0C0C0;
|
||||||
|
font-family: Cantarell;
|
||||||
|
font: 14px; }
|
||||||
|
|
||||||
|
#globalStorageTab { background-color: #C0C0C0 }
|
||||||
|
|
||||||
|
/* Set Drop Down Font and Background color */
|
||||||
|
QComboBox { font: 14px ;
|
||||||
|
color: #000000 ;
|
||||||
|
background-color: #ffffff ;
|
||||||
|
padding: 2px ;
|
||||||
|
border-radius: 10px
|
||||||
|
}
|
||||||
|
|
||||||
|
#languageWidget { font: 14px ;
|
||||||
|
color: #111111 ;
|
||||||
|
background-color: #ffffff ;
|
||||||
|
text-align: center ;
|
||||||
|
border-radius: 6px
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Set the inline Text box edit Font and Background color */
|
||||||
|
QLineEdit { font: 14px;
|
||||||
|
color: #111111;
|
||||||
|
background-color: #ffffff;
|
||||||
|
border-color: #000000
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Set List box Font and Background color */
|
||||||
|
QListView { font: 14px;
|
||||||
|
color: #000000;
|
||||||
|
background-color: #ffffff;
|
||||||
|
alternate-background-color: #C0C0C0;
|
||||||
|
padding: 2px;
|
||||||
|
border-radius: 4px
|
||||||
|
}
|
||||||
|
|
||||||
|
#layoutSelector {}
|
||||||
|
|
||||||
|
/* Set the TreeView Font and Background color */
|
||||||
|
QTreeView { color: #000000;
|
||||||
|
background-color: #ffffff;
|
||||||
|
border-radius: 14px
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Set buttons Font and Background color */
|
||||||
|
QPushButton { font: 14px;
|
||||||
|
color: #000000;
|
||||||
|
background-color: #C0C0C0;
|
||||||
|
border-color: #000000;
|
||||||
|
border-width: 10px;}
|
||||||
|
|
||||||
|
#view-button-back { font: 14px;
|
||||||
|
background-color: #C0C0C0
|
||||||
|
}
|
||||||
|
#view-button-back:hover { font: 14px;
|
||||||
|
color: #000000;
|
||||||
|
background-color: #ffffff;
|
||||||
|
border-color: #000000
|
||||||
|
}
|
||||||
|
#view-button-next { font: 14px;
|
||||||
|
background-color: #C0C0C0;
|
||||||
|
border-color: #000000
|
||||||
|
}
|
||||||
|
#view-button-next:hover { font: 14px;
|
||||||
|
color: #000000;
|
||||||
|
background-color: #ffffff;
|
||||||
|
border-color: #000000
|
||||||
|
}
|
||||||
|
#view-button-cancel { font: 14px;
|
||||||
|
background-color: #C0C0C0;
|
||||||
|
border-color: #000000
|
||||||
|
}
|
||||||
|
#view-button-cancel:hover { font: 14px;
|
||||||
|
color: #000000;
|
||||||
|
background-color: #ffffff;
|
||||||
|
border-color: #000000;
|
||||||
|
}
|
||||||
|
#view-button-install { font: 14px;
|
||||||
|
color: #C0C0C0;
|
||||||
|
border-color: #000000
|
||||||
|
}
|
||||||
|
#view-button-done { font: 14px;
|
||||||
|
color: #000000;
|
||||||
|
border-color: #000000
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Set the color in the keyboard selection */
|
||||||
|
#layoutSelector { selection-background-color: #F62817 }
|
||||||
|
#variantSelector { selection-background-color: #F62817 }
|
||||||
|
|
||||||
|
/* Set the CheckBox size and Background color */
|
||||||
|
QCheckBox { color: #000000;
|
||||||
|
background-color: #C0C0C0;
|
||||||
|
border-width: 2px;
|
||||||
|
border-color: #000000
|
||||||
|
}
|
||||||
|
|
||||||
|
m_encryptCheckBox { font: 14px;
|
||||||
|
color: #F62817;
|
||||||
|
background-color: #C0C0C0;
|
||||||
|
border-radius: 4px;
|
||||||
|
padding: 6px
|
||||||
|
}
|
||||||
|
|
||||||
|
checkBoxDoAutoLogin { font: 14px;
|
||||||
|
color: #000000;
|
||||||
|
background-color: #C0C0C0;
|
||||||
|
padding: 4px
|
||||||
|
}
|
||||||
|
|
||||||
|
restartCheckBox { font: 14px;
|
||||||
|
color: #000000;
|
||||||
|
background-color: #C0C0C0;
|
||||||
|
border-color: #000000;
|
||||||
|
border-radius: 8px;
|
||||||
|
height: 16px;
|
||||||
|
width: 100px;
|
||||||
|
padding: 4px
|
||||||
|
}
|
||||||
|
|
||||||
|
#QCheckBox#restartCheckBox::indicator:checked { image: url(/usr/share/pixmaps/ckm.png) }
|
||||||
|
|
||||||
|
/* Set the color when selected */
|
||||||
|
QRadioButton { color: #000000;
|
||||||
|
background-color: #C0C0C0;
|
||||||
|
padding: 4px;
|
||||||
|
border-radius: 4px
|
||||||
|
}
|
||||||
|
QComboBoxPrivateContainer { background-color: #ffffff }
|
||||||
|
QComboBoxListView { background-color: #ffffff }
|
||||||
|
qt_scrollarea_hcontainer { background-color: #ffffff }
|
||||||
|
qt_scrollarea_vcontainer { background-color: #ffffff }
|
||||||
|
QRadioButton::indicator { width: 18px ; height: 18px }
|
||||||
|
QRadioButton::indicator::checked { image: url(/usr/share/pixmaps/peppermint.png) }
|
||||||
|
QRadioButton::indicator::checked:hover { image: url(/usr/share/pixmaps/peppermint-fm-20.png) }
|
||||||
|
QRadioButton::indicator::unchecked:hover { image: url(/usr/share/pixmaps/peppermint-inst.png) }
|
||||||
|
|
||||||
|
/* Set the tip Font and Background color */
|
||||||
|
QToolTip { font: 14px;
|
||||||
|
color: #000000;
|
||||||
|
background-color: #ffffff;
|
||||||
|
padding: 4px;
|
||||||
|
border-radius: 4px
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Set the Progress Bar alignment and load color */
|
||||||
|
QProgressBar { text-align: center }
|
||||||
|
QProgressBar::chunk { background-color: #F62817 }
|
||||||
|
|
||||||
|
#debugButton {font: }
|
||||||
|
#sidebarMenuApp{ background-color: #C0C0C0 }
|
||||||
|
#tabWidget { background-color: #C0C0C0 }
|
After Width: | Height: | Size: 11 KiB |
|
@ -43,7 +43,7 @@ efiBootMgr: "efibootmgr"
|
||||||
# setting the option here, keep in mind that the name is sanitized
|
# setting the option here, keep in mind that the name is sanitized
|
||||||
# (problematic characters, see above, are replaced).
|
# (problematic characters, see above, are replaced).
|
||||||
#
|
#
|
||||||
efiBootloaderId: "debian"
|
efiBootloaderId: "peppermint"
|
||||||
|
|
||||||
# Optionally install a copy of the GRUB EFI bootloader as the EFI
|
# Optionally install a copy of the GRUB EFI bootloader as the EFI
|
||||||
# fallback loader (either bootia32.efi or bootx64.efi depending on
|
# fallback loader (either bootia32.efi or bootx64.efi depending on
|