forked from linuxer/PKGBUILDS
Compare commits
89 Commits
Author | SHA1 | Date | |
---|---|---|---|
da164235f5
|
|||
8714f2a58e
|
|||
6b518001e8
|
|||
26f7263cd4
|
|||
4bf44cb5d6
|
|||
79476d1e2d
|
|||
e946784de3
|
|||
ccd324d788
|
|||
f8b8b58ef1
|
|||
a208c5bc44
|
|||
7a4883b269
|
|||
67e9c84ee4
|
|||
560c06c04f
|
|||
a4fbefba79
|
|||
3d76a845f3
|
|||
044340e281
|
|||
a6974f7b70
|
|||
64272cadf6
|
|||
2d0ee43b9a
|
|||
af07dd0399
|
|||
605af08448
|
|||
00d4ee3cd8
|
|||
e4f81854a6
|
|||
879ff10e0a
|
|||
109b4390d3
|
|||
f0c8b6e19c
|
|||
16da766968
|
|||
b5f63ddb6d
|
|||
a9faa0ff93
|
|||
2ef0cda7c2
|
|||
f77d581956
|
|||
b909ec4721
|
|||
cc96a3668a
|
|||
27b4a07b0c
|
|||
1ea8aa2193
|
|||
9fc4124f88
|
|||
7146fda412
|
|||
6513dd3d13
|
|||
f7099b7ab8
|
|||
9e4aba9d19
|
|||
47fa320444
|
|||
38d26a32b8
|
|||
d863e942ec
|
|||
91c2a39390
|
|||
d32ee83c7e
|
|||
7a1a40b295
|
|||
e8d5773366
|
|||
ab39602299
|
|||
e2fc7895c1
|
|||
61ea88235e
|
|||
ee8ba0472a
|
|||
381c435932
|
|||
7b8eb8119a
|
|||
4faab18646
|
|||
097a5b6596
|
|||
026007111d
|
|||
8558219c22
|
|||
8d33064d6d
|
|||
eab7f38bda
|
|||
9bddd003d6
|
|||
3865d3ba1e
|
|||
1a2707cae5
|
|||
3667210634
|
|||
bdb163f761
|
|||
6f26ae5224
|
|||
43d625f508
|
|||
829c478e97
|
|||
b89dde9c44
|
|||
c324b462b7
|
|||
a28009aabe
|
|||
e8b032bd60
|
|||
095497bf2f
|
|||
a31ecb91a8
|
|||
c43873b72b
|
|||
b9d20be006
|
|||
b4b2942a2a
|
|||
7e4c0fe4d7
|
|||
0d39d87ba5
|
|||
1432074318
|
|||
6dc3382742
|
|||
47822cff5c
|
|||
57dd8fcb55
|
|||
3da9e20183
|
|||
e5e3d9d677
|
|||
56f79ac55a
|
|||
ff79c7c540
|
|||
610555e1d9
|
|||
ec324beba7
|
|||
5c02ebfff7
|
44
README.md
44
README.md
@@ -2,7 +2,43 @@
|
|||||||
|
|
||||||
My extra Artix Linux PKGBUILDS
|
My extra Artix Linux PKGBUILDS
|
||||||
|
|
||||||
- Brightness Control Panel --> Universe Repo
|
- ananicy w/o systemd dep
|
||||||
- Camera Control Switch Indicator --> Galaxy Repo
|
- ananicy-openrc
|
||||||
- Ricoh ru587x Webcam Drivers --> Universe Repo
|
- ananicy-runit
|
||||||
- UFW Icon Bar --> Galaxy Repo
|
- ananicy-s6
|
||||||
|
|
||||||
|
- Brightness Control Panel
|
||||||
|
|
||||||
|
- Camera Control Switch Indicator
|
||||||
|
|
||||||
|
- earlyoom w/o systemd dep
|
||||||
|
- earlyoom-openrc
|
||||||
|
- earlyoom-runit
|
||||||
|
- earlyoom-s6
|
||||||
|
|
||||||
|
- perl-encode-detect (for the webmin)
|
||||||
|
|
||||||
|
- preload w/o systemd dep
|
||||||
|
- preload-openrc
|
||||||
|
- preload-runit
|
||||||
|
- preload-s6
|
||||||
|
|
||||||
|
- Ricoh ru587x Webcam Drivers
|
||||||
|
|
||||||
|
- runit-service-manager (rsm)
|
||||||
|
|
||||||
|
- spotifyd w/o systemd dep
|
||||||
|
- spotifyd-openrc
|
||||||
|
- spotifyd-runit
|
||||||
|
- spotifyd-s6
|
||||||
|
|
||||||
|
- UFW Icon Bar
|
||||||
|
|
||||||
|
- webmin nosystemd
|
||||||
|
- webmin-openrc
|
||||||
|
- webmin-runit
|
||||||
|
- webmin-s6
|
||||||
|
|
||||||
|
- zramen-openrc
|
||||||
|
- zramen-runit
|
||||||
|
- zramen-s6
|
||||||
|
31
ananicy-nosystemd/PKGBUILD
Normal file
31
ananicy-nosystemd/PKGBUILD
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
# Maintainer: Nathan Owens <ndowens@artixlinux.og>
|
||||||
|
# Contributor: linuxer <linuxer@artixlinux.org>
|
||||||
|
# Developer: Timofey Titovets <nefelim4ag@gmail.com>
|
||||||
|
|
||||||
|
pkgname=ananicy
|
||||||
|
_alias=ananicy-nosystemd
|
||||||
|
pkgver=2.2.1.r2.g350b74b
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="Ananicy - is Another auto nice daemon, with community rules support"
|
||||||
|
arch=('any')
|
||||||
|
#url="https://gitea.artixlinux.org/linuxer/ananicy-nosystemd.git"
|
||||||
|
url="https://github.com/Nefelim4ag/Ananicy.git"
|
||||||
|
license=('GPL3')
|
||||||
|
depends=('bash' 'schedtool')
|
||||||
|
makedepends=('git' 'make')
|
||||||
|
#source=("$_alias"::'git+https://gitea.artixlinux.org/linuxer/ananicy-nosystemd.git#branch=master')
|
||||||
|
source=("$pkgname"::git+https://github.com/Nefelim4ag/Ananicy.git#branch=master)
|
||||||
|
b2sums=('SKIP')
|
||||||
|
|
||||||
|
pkgver() {
|
||||||
|
cd "$pkgname"
|
||||||
|
git describe --long --tags | sed 's/\([^-]*-g\)/r\1/;s/-/./g'
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd "$srcdir/$pkgname"
|
||||||
|
make install PREFIX="$pkgdir"
|
||||||
|
sed -i "833i \ \ \ \ os.system('sysctl -e kernel.sched_autogroup_enabled=0')\n" $pkgdir/usr/bin/ananicy
|
||||||
|
mv -v "$pkgdir/lib" "$pkgdir/usr/"
|
||||||
|
rm -R "$pkgdir/usr/lib"
|
||||||
|
}
|
82
ananicy-nosystemd/README.md
Normal file
82
ananicy-nosystemd/README.md
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
# `ananicy-nosystemd` is a fork of ananicy for Artix Linux
|
||||||
|
|
||||||
|
## Description
|
||||||
|
Ananicy (ANother Auto NICe daemon) — is a shell daemon created to manage processes' [IO](http://linux.die.net/man/1/ionice) and [CPU](http://linux.die.net/man/1/nice) priorities, with community-driven set of rules for popular applications (anyone may add his own rule via github's [pull request](https://help.github.com/articles/using-pull-requests/) mechanism).
|
||||||
|
|
||||||
|
I think it's only for desktop usage.
|
||||||
|
|
||||||
|
I just wanted a tool for auto set programs nice in my system, i.e.:
|
||||||
|
* Why do I have a lags, while compiling kernel and playing a game?
|
||||||
|
* Why does dropbox client eat all my IO?
|
||||||
|
* Why does torrent/dc client make my laptop run slower?
|
||||||
|
* ...
|
||||||
|
|
||||||
|
Use ananicy to fix this problems!
|
||||||
|
|
||||||
|
## Versions
|
||||||
|
```
|
||||||
|
X.Y.Z where
|
||||||
|
X - Major version,
|
||||||
|
Y - Script version - reset on each major update
|
||||||
|
Z - Rules version - reset on each script update
|
||||||
|
```
|
||||||
|
Read more about semantic versioning [here](http://semver.org/)
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
Rules files should be placed under /etc/ananicy.d/ directory and have *.rules extension.
|
||||||
|
Inside .rules file every process is described on a separate line, general syntax is described below:
|
||||||
|
|
||||||
|
```
|
||||||
|
{ "name": "gcc", "type": "Heavy_CPU", "nice": 19, "ioclass": "best-effort", "ionice": 7, "cgroup": "cpu90" }
|
||||||
|
```
|
||||||
|
|
||||||
|
All fields except 'name' are optional.
|
||||||
|
|
||||||
|
'name' used for match processes by exec bin name
|
||||||
|
```
|
||||||
|
~ basename $(sudo realpath /proc/1/exe)
|
||||||
|
systemd
|
||||||
|
```
|
||||||
|
|
||||||
|
Currently match by other things, not supported.
|
||||||
|
|
||||||
|
You can check what Ananicy see, by:
|
||||||
|
```
|
||||||
|
ananicy dump proc
|
||||||
|
```
|
||||||
|
|
||||||
|
Ananicy load all rules in ram while starting, so to apply rules, you must restart service.
|
||||||
|
|
||||||
|
Available ionice values:
|
||||||
|
```
|
||||||
|
$ man ionice
|
||||||
|
```
|
||||||
|
|
||||||
|
## Simple rules for writing rules
|
||||||
|
CFQ IO Scheduller also use 'nice' for internal scheduling, so it's mean processes with same IO class and IO priority, but with different nicceness will take advantages of 'nice' also for IO.
|
||||||
|
|
||||||
|
1. Try don't chage 'nice' of system wide process like initrd.
|
||||||
|
2. Please try use full process name (or name with ^$ symbols like NAME=^full_name$)
|
||||||
|
3. When writing rule - try use only 'nice', it must be enough in most cases.
|
||||||
|
4. Don't try set to high priority! Niceness can fix some performance problems, but can't give you more.
|
||||||
|
Example: pulseaudio uses 'nice' -11 by default, if you set other cpu hungry task, with 'nice' {-20..-12} you can catch a sound glitches.
|
||||||
|
5. For CPU hungry backround task like compiling, just use NICE=19.
|
||||||
|
|
||||||
|
About IO priority:
|
||||||
|
|
||||||
|
1. It's usefull use '{"ioclass": "idle"}' for IO hungry background tasks like: file indexers, Cloud Clients, Backups and etc.
|
||||||
|
2. It's not cool set realtime to all tasks. The RT scheduling class is given first access to the disk, regardless of what else is going on in the system. Thus the RT class needs to be used with some care, as it can starve other processes. So try use ioclass first.
|
||||||
|
|
||||||
|
### Missing `schedtool`
|
||||||
|
If you see this error in the output
|
||||||
|
```
|
||||||
|
Jan 24 09:44:18 tony-dev ananicy[13783]: ERRO: Missing schedtool! Abort!
|
||||||
|
```
|
||||||
|
Fix it in Ubuntu with
|
||||||
|
```
|
||||||
|
sudo apt install schedtool
|
||||||
|
```
|
||||||
|
|
||||||
|
### Submitting new rules
|
||||||
|
|
||||||
|
Please use pull request, thanks
|
@@ -1,17 +1,28 @@
|
|||||||
# Maintainer: linuxer <linuxer@artixlinux.org>
|
# Contributor: linuxer <linuxer@artixlinux.org>
|
||||||
pkgname=ananicy-openrc
|
# Developer: Timofey Titovets <nefelim4ag@gmail.com>
|
||||||
pkgver=20210116
|
|
||||||
pkgrel=2
|
|
||||||
pkgdesc="OpenRC script for ananicy"
|
|
||||||
arch=(any)
|
|
||||||
url="https://gitea.artixlinux.org/linuxer"
|
|
||||||
license=('GPL')
|
|
||||||
depends=('openrc' 'ananicy')
|
|
||||||
install=$pkgname.install
|
|
||||||
source=("ananicy.initd")
|
|
||||||
md5sums=('07ee4621e0c4d831d345a880234d89c5')
|
|
||||||
|
|
||||||
|
pkgname=ananicy-openrc
|
||||||
|
_alias=ananicy
|
||||||
|
pkgver=2.2.0.r55.g5559e01
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="Ananicy - is Another auto nice daemon, with community rules support"
|
||||||
|
arch=('any')
|
||||||
|
url="https://github.com/Nefelim4ag/Ananicy.git"
|
||||||
|
license=('BSD')
|
||||||
|
depends=('ananicy' 'openrc' 'bash' 'schedtool')
|
||||||
|
makedepends=('git' 'make')
|
||||||
|
source=("ananicy.initd")
|
||||||
|
b2sums=('SKIP'
|
||||||
|
'beb8ec94c37ccc6065a567477857f8f552299a00d6c0e45e1cbce05bc0e17b0126e0a7914867b90bb7e3aed3c3be3e409836b73a1799b5b4911372629428a5da')
|
||||||
|
install=$pkgname.install
|
||||||
|
|
||||||
|
pkgver() {
|
||||||
|
cd "$pkgname"
|
||||||
|
git describe --long --tags | sed 's/\([^-]*-g\)/r\1/;s/-/./g'
|
||||||
|
}
|
||||||
|
|
||||||
package() {
|
package() {
|
||||||
install -Dm755 ananicy.initd "$pkgdir"/etc/init.d/ananicy
|
mkdir -p $pkgdir/etc/init.d/
|
||||||
|
cp "ananicy.initd" $pkgdir/etc/init.d/ananicy
|
||||||
|
install=ananicy-openrc.install
|
||||||
}
|
}
|
||||||
|
82
ananicy-openrc/README.md
Normal file
82
ananicy-openrc/README.md
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
# `ananicy-openrc` is a fork of ananicy for Artix Linux OpenRC Init
|
||||||
|
|
||||||
|
## Description
|
||||||
|
Ananicy (ANother Auto NICe daemon) — is a shell daemon created to manage processes' [IO](http://linux.die.net/man/1/ionice) and [CPU](http://linux.die.net/man/1/nice) priorities, with community-driven set of rules for popular applications (anyone may add his own rule via github's [pull request](https://help.github.com/articles/using-pull-requests/) mechanism).
|
||||||
|
|
||||||
|
I think it's only for desktop usage.
|
||||||
|
|
||||||
|
I just wanted a tool for auto set programs nice in my system, i.e.:
|
||||||
|
* Why do I have a lags, while compiling kernel and playing a game?
|
||||||
|
* Why does dropbox client eat all my IO?
|
||||||
|
* Why does torrent/dc client make my laptop run slower?
|
||||||
|
* ...
|
||||||
|
|
||||||
|
Use ananicy to fix this problems!
|
||||||
|
|
||||||
|
## Versions
|
||||||
|
```
|
||||||
|
X.Y.Z where
|
||||||
|
X - Major version,
|
||||||
|
Y - Script version - reset on each major update
|
||||||
|
Z - Rules version - reset on each script update
|
||||||
|
```
|
||||||
|
Read more about semantic versioning [here](http://semver.org/)
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
Rules files should be placed under /etc/ananicy.d/ directory and have *.rules extension.
|
||||||
|
Inside .rules file every process is described on a separate line, general syntax is described below:
|
||||||
|
|
||||||
|
```
|
||||||
|
{ "name": "gcc", "type": "Heavy_CPU", "nice": 19, "ioclass": "best-effort", "ionice": 7, "cgroup": "cpu90" }
|
||||||
|
```
|
||||||
|
|
||||||
|
All fields except 'name' are optional.
|
||||||
|
|
||||||
|
'name' used for match processes by exec bin name
|
||||||
|
```
|
||||||
|
~ basename $(sudo realpath /proc/1/exe)
|
||||||
|
systemd
|
||||||
|
```
|
||||||
|
|
||||||
|
Currently match by other things, not supported.
|
||||||
|
|
||||||
|
You can check what Ananicy see, by:
|
||||||
|
```
|
||||||
|
ananicy dump proc
|
||||||
|
```
|
||||||
|
|
||||||
|
Ananicy load all rules in ram while starting, so to apply rules, you must restart service.
|
||||||
|
|
||||||
|
Available ionice values:
|
||||||
|
```
|
||||||
|
$ man ionice
|
||||||
|
```
|
||||||
|
|
||||||
|
## Simple rules for writing rules
|
||||||
|
CFQ IO Scheduller also use 'nice' for internal scheduling, so it's mean processes with same IO class and IO priority, but with different nicceness will take advantages of 'nice' also for IO.
|
||||||
|
|
||||||
|
1. Try don't chage 'nice' of system wide process like initrd.
|
||||||
|
2. Please try use full process name (or name with ^$ symbols like NAME=^full_name$)
|
||||||
|
3. When writing rule - try use only 'nice', it must be enough in most cases.
|
||||||
|
4. Don't try set to high priority! Niceness can fix some performance problems, but can't give you more.
|
||||||
|
Example: pulseaudio uses 'nice' -11 by default, if you set other cpu hungry task, with 'nice' {-20..-12} you can catch a sound glitches.
|
||||||
|
5. For CPU hungry backround task like compiling, just use NICE=19.
|
||||||
|
|
||||||
|
About IO priority:
|
||||||
|
|
||||||
|
1. It's usefull use '{"ioclass": "idle"}' for IO hungry background tasks like: file indexers, Cloud Clients, Backups and etc.
|
||||||
|
2. It's not cool set realtime to all tasks. The RT scheduling class is given first access to the disk, regardless of what else is going on in the system. Thus the RT class needs to be used with some care, as it can starve other processes. So try use ioclass first.
|
||||||
|
|
||||||
|
### Missing `schedtool`
|
||||||
|
If you see this error in the output
|
||||||
|
```
|
||||||
|
Jan 24 09:44:18 tony-dev ananicy[13783]: ERRO: Missing schedtool! Abort!
|
||||||
|
```
|
||||||
|
Fix it in Ubuntu with
|
||||||
|
```
|
||||||
|
sudo apt install schedtool
|
||||||
|
```
|
||||||
|
|
||||||
|
### Submitting new rules
|
||||||
|
|
||||||
|
Please use pull request, thanks
|
@@ -1,17 +1,30 @@
|
|||||||
# Maintainer: linuxer <linuxer@artixlinux.org>
|
# Contributor: linuxer <linuxer@artixlinux.org>
|
||||||
|
# Developer: Timofey Titovets <nefelim4ag@gmail.com>
|
||||||
|
|
||||||
pkgname=ananicy-runit
|
pkgname=ananicy-runit
|
||||||
pkgver=20210116
|
_alias=ananicy
|
||||||
pkgrel=2
|
pkgver=2.2.0.r55.g5559e01
|
||||||
pkgdesc="Runit script for runit"
|
pkgrel=1
|
||||||
arch=(any)
|
pkgdesc="Ananicy - is Another auto nice daemon, with community rules support"
|
||||||
url="https://gitea.artixlinux.org/linuxer"
|
arch=('any')
|
||||||
license=('GPL')
|
url="https://github.com/Nefelim4ag/Ananicy.git"
|
||||||
depends=('runit' 'ananicy')
|
license=('BSD')
|
||||||
source=("run"
|
depends=('ananicy' 'runit' 'bash' 'schedtool')
|
||||||
"finish")
|
makedepends=('git' 'make')
|
||||||
b2sums=('25551175031c7426bcb0a4169960a464494a0e16908865d9bd8abed8bb6ffb4958ebeded19fccd7483387f9ce02336582aa587ff7284ec85ae2ccfa663ffc89b'
|
source=("ananicy.finish"
|
||||||
'b45d85b9c912585ff1fa237d0b841994c275f658e098096689315501721037cc141b6bda8d7e9220dfb0cb0ec3c6f62b4850550036556f65e636da628a908edb')
|
"ananicy.run")
|
||||||
|
b2sums=('b45d85b9c912585ff1fa237d0b841994c275f658e098096689315501721037cc141b6bda8d7e9220dfb0cb0ec3c6f62b4850550036556f65e636da628a908edb'
|
||||||
|
'25551175031c7426bcb0a4169960a464494a0e16908865d9bd8abed8bb6ffb4958ebeded19fccd7483387f9ce02336582aa587ff7284ec85ae2ccfa663ffc89b')
|
||||||
|
install=$pkgname.install
|
||||||
|
|
||||||
|
pkgver() {
|
||||||
|
cd "$pkgname"
|
||||||
|
git describe --long --tags | sed 's/\([^-]*-g\)/r\1/;s/-/./g'
|
||||||
|
}
|
||||||
|
|
||||||
package() {
|
package() {
|
||||||
install -Dm755 run finish -t "$pkgdir"/etc/runit/sv/ananicy
|
mkdir -p "$pkgdir/etc/runit/sv/$_alias"
|
||||||
|
cp "ananicy.finish" $pkgdir/etc/runit/sv/$_alias/finish
|
||||||
|
cp "ananicy.run" $pkgdir/etc/runit/sv/$_alias/run
|
||||||
|
install=ananicy-runit.install
|
||||||
}
|
}
|
||||||
|
87
ananicy-runit/README.md
Normal file
87
ananicy-runit/README.md
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
# `ananicy-runit` is a fork of ananicy for Artix Linux Runit Init
|
||||||
|
|
||||||
|
## Description
|
||||||
|
Ananicy (ANother Auto NICe daemon) — is a shell daemon created to manage processes' [IO](http://linux.die.net/man/1/ionice) and [CPU](http://linux.die.net/man/1/nice) priorities, with community-driven set of rules for popular applications (anyone may add his own rule via github's [pull request](https://help.github.com/articles/using-pull-requests/) mechanism).
|
||||||
|
|
||||||
|
I think it's only for desktop usage.
|
||||||
|
|
||||||
|
I just wanted a tool for auto set programs nice in my system, i.e.:
|
||||||
|
* Why do I have a lags, while compiling kernel and playing a game?
|
||||||
|
* Why does dropbox client eat all my IO?
|
||||||
|
* Why does torrent/dc client make my laptop run slower?
|
||||||
|
* ...
|
||||||
|
|
||||||
|
Use ananicy to fix this problems!
|
||||||
|
|
||||||
|
## Versions
|
||||||
|
```
|
||||||
|
X.Y.Z where
|
||||||
|
X - Major version,
|
||||||
|
Y - Script version - reset on each major update
|
||||||
|
Z - Rules version - reset on each script update
|
||||||
|
```
|
||||||
|
Read more about semantic versioning [here](http://semver.org/)
|
||||||
|
|
||||||
|
Enable
|
||||||
|
```
|
||||||
|
$ sudo ln -s /etc/runit/sv/ananicy /run/runit/service
|
||||||
|
$ sudo sc up ananicy
|
||||||
|
```
|
||||||
|
## Configuration
|
||||||
|
Rules files should be placed under /etc/ananicy.d/ directory and have *.rules extension.
|
||||||
|
Inside .rules file every process is described on a separate line, general syntax is described below:
|
||||||
|
|
||||||
|
```
|
||||||
|
{ "name": "gcc", "type": "Heavy_CPU", "nice": 19, "ioclass": "best-effort", "ionice": 7, "cgroup": "cpu90" }
|
||||||
|
```
|
||||||
|
|
||||||
|
All fields except 'name' are optional.
|
||||||
|
|
||||||
|
'name' used for match processes by exec bin name
|
||||||
|
```
|
||||||
|
~ basename $(sudo realpath /proc/1/exe)
|
||||||
|
systemd
|
||||||
|
```
|
||||||
|
|
||||||
|
Currently match by other things, not supported.
|
||||||
|
|
||||||
|
You can check what Ananicy see, by:
|
||||||
|
```
|
||||||
|
ananicy dump proc
|
||||||
|
```
|
||||||
|
|
||||||
|
Ananicy load all rules in ram while starting, so to apply rules, you must restart service.
|
||||||
|
|
||||||
|
Available ionice values:
|
||||||
|
```
|
||||||
|
$ man ionice
|
||||||
|
```
|
||||||
|
|
||||||
|
## Simple rules for writing rules
|
||||||
|
CFQ IO Scheduller also use 'nice' for internal scheduling, so it's mean processes with same IO class and IO priority, but with different nicceness will take advantages of 'nice' also for IO.
|
||||||
|
|
||||||
|
1. Try don't chage 'nice' of system wide process like initrd.
|
||||||
|
2. Please try use full process name (or name with ^$ symbols like NAME=^full_name$)
|
||||||
|
3. When writing rule - try use only 'nice', it must be enough in most cases.
|
||||||
|
4. Don't try set to high priority! Niceness can fix some performance problems, but can't give you more.
|
||||||
|
Example: pulseaudio uses 'nice' -11 by default, if you set other cpu hungry task, with 'nice' {-20..-12} you can catch a sound glitches.
|
||||||
|
5. For CPU hungry backround task like compiling, just use NICE=19.
|
||||||
|
|
||||||
|
About IO priority:
|
||||||
|
|
||||||
|
1. It's usefull use '{"ioclass": "idle"}' for IO hungry background tasks like: file indexers, Cloud Clients, Backups and etc.
|
||||||
|
2. It's not cool set realtime to all tasks. The RT scheduling class is given first access to the disk, regardless of what else is going on in the system. Thus the RT class needs to be used with some care, as it can starve other processes. So try use ioclass first.
|
||||||
|
|
||||||
|
### Missing `schedtool`
|
||||||
|
If you see this error in the output
|
||||||
|
```
|
||||||
|
Jan 24 09:44:18 tony-dev ananicy[13783]: ERRO: Missing schedtool! Abort!
|
||||||
|
```
|
||||||
|
Fix it in Ubuntu with
|
||||||
|
```
|
||||||
|
sudo apt install schedtool
|
||||||
|
```
|
||||||
|
|
||||||
|
### Submitting new rules
|
||||||
|
|
||||||
|
Please use pull request, thanks
|
0
ananicy-runit/finish → ananicy-runit/ananicy.finish
Normal file → Executable file
0
ananicy-runit/finish → ananicy-runit/ananicy.finish
Normal file → Executable file
0
ananicy-runit/run → ananicy-runit/ananicy.run
Normal file → Executable file
0
ananicy-runit/run → ananicy-runit/ananicy.run
Normal file → Executable file
@@ -1,16 +1,30 @@
|
|||||||
# Maintainer: linuxer <linuxer@artixlinux.org>
|
# Contributor: linuxer <linuxer@artixlinux.org>
|
||||||
|
# Developer: Timofey Titovets <nefelim4ag@gmail.com>
|
||||||
|
|
||||||
pkgname=ananicy-s6
|
pkgname=ananicy-s6
|
||||||
pkgver=20210116
|
_alias=ananicy
|
||||||
|
pkgver=2.2.0.r55.g5559e01
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
pkgdesc="s6 init script for ananicy"
|
pkgdesc="Ananicy - is Another auto nice daemon, with community rules support"
|
||||||
arch=(any)
|
arch=('any')
|
||||||
url="https://gitea.artixlinux.org/linuxer"
|
url="https://github.com/Nefelim4ag/Ananicy.git"
|
||||||
license=('GPL')
|
license=('ISC')
|
||||||
depends=('ananicy' 's6')
|
depends=('ananicy' 's6' 'bash' 'schedtool')
|
||||||
source=("run" "type")
|
makedepends=('git' 'make')
|
||||||
md5sums=('2bf8c6d175765f910a4469314c2d5fb6'
|
source=("ananicy.type"
|
||||||
'42c13bdd7f61c06ac59c1aaca9c0f07a')
|
"ananicy.run")
|
||||||
|
b2sums=('0d8b60c573270d0117b3613fa99b65d94b1a91c0029a07bfb1157d2a990e59636c4785b67dbf64bdf1cd17a77c55f71a041170c9a6edb81689053e6ee158d46e'
|
||||||
|
'25551175031c7426bcb0a4169960a464494a0e16908865d9bd8abed8bb6ffb4958ebeded19fccd7483387f9ce02336582aa587ff7284ec85ae2ccfa663ffc89b')
|
||||||
|
install=$pkgname.install
|
||||||
|
|
||||||
|
pkgver() {
|
||||||
|
cd "$pkgname"
|
||||||
|
git describe --long --tags | sed 's/\([^-]*-g\)/r\1/;s/-/./g'
|
||||||
|
}
|
||||||
|
|
||||||
package() {
|
package() {
|
||||||
install -Dm644 run type -t "$pkgdir"/etc/s6/sv/ananicy
|
mkdir -p "$pkgdir/etc/s6/sv/$_alias"
|
||||||
|
cp ananicy.run $pkgdir/etc/s6/sv/$_alias/run
|
||||||
|
cp ananicy.type $pkgdir/etc/s6/sv/$_alias/type
|
||||||
|
install=ananicy-s6.install
|
||||||
}
|
}
|
||||||
|
82
ananicy-s6/README.md
Normal file
82
ananicy-s6/README.md
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
# `ananicy-s6` is a fork of ananicy for Artix Linux s6 Init
|
||||||
|
|
||||||
|
## Description
|
||||||
|
Ananicy (ANother Auto NICe daemon) — is a shell daemon created to manage processes' [IO](http://linux.die.net/man/1/ionice) and [CPU](http://linux.die.net/man/1/nice) priorities, with community-driven set of rules for popular applications (anyone may add his own rule via github's [pull request](https://help.github.com/articles/using-pull-requests/) mechanism).
|
||||||
|
|
||||||
|
I think it's only for desktop usage.
|
||||||
|
|
||||||
|
I just wanted a tool for auto set programs nice in my system, i.e.:
|
||||||
|
* Why do I have a lags, while compiling kernel and playing a game?
|
||||||
|
* Why does dropbox client eat all my IO?
|
||||||
|
* Why does torrent/dc client make my laptop run slower?
|
||||||
|
* ...
|
||||||
|
|
||||||
|
Use ananicy to fix this problems!
|
||||||
|
|
||||||
|
## Versions
|
||||||
|
```
|
||||||
|
X.Y.Z where
|
||||||
|
X - Major version,
|
||||||
|
Y - Script version - reset on each major update
|
||||||
|
Z - Rules version - reset on each script update
|
||||||
|
```
|
||||||
|
Read more about semantic versioning [here](http://semver.org/)
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
Rules files should be placed under /etc/ananicy.d/ directory and have *.rules extension.
|
||||||
|
Inside .rules file every process is described on a separate line, general syntax is described below:
|
||||||
|
|
||||||
|
```
|
||||||
|
{ "name": "gcc", "type": "Heavy_CPU", "nice": 19, "ioclass": "best-effort", "ionice": 7, "cgroup": "cpu90" }
|
||||||
|
```
|
||||||
|
|
||||||
|
All fields except 'name' are optional.
|
||||||
|
|
||||||
|
'name' used for match processes by exec bin name
|
||||||
|
```
|
||||||
|
~ basename $(sudo realpath /proc/1/exe)
|
||||||
|
systemd
|
||||||
|
```
|
||||||
|
|
||||||
|
Currently match by other things, not supported.
|
||||||
|
|
||||||
|
You can check what Ananicy see, by:
|
||||||
|
```
|
||||||
|
ananicy dump proc
|
||||||
|
```
|
||||||
|
|
||||||
|
Ananicy load all rules in ram while starting, so to apply rules, you must restart service.
|
||||||
|
|
||||||
|
Available ionice values:
|
||||||
|
```
|
||||||
|
$ man ionice
|
||||||
|
```
|
||||||
|
|
||||||
|
## Simple rules for writing rules
|
||||||
|
CFQ IO Scheduller also use 'nice' for internal scheduling, so it's mean processes with same IO class and IO priority, but with different nicceness will take advantages of 'nice' also for IO.
|
||||||
|
|
||||||
|
1. Try don't chage 'nice' of system wide process like initrd.
|
||||||
|
2. Please try use full process name (or name with ^$ symbols like NAME=^full_name$)
|
||||||
|
3. When writing rule - try use only 'nice', it must be enough in most cases.
|
||||||
|
4. Don't try set to high priority! Niceness can fix some performance problems, but can't give you more.
|
||||||
|
Example: pulseaudio uses 'nice' -11 by default, if you set other cpu hungry task, with 'nice' {-20..-12} you can catch a sound glitches.
|
||||||
|
5. For CPU hungry backround task like compiling, just use NICE=19.
|
||||||
|
|
||||||
|
About IO priority:
|
||||||
|
|
||||||
|
1. It's usefull use '{"ioclass": "idle"}' for IO hungry background tasks like: file indexers, Cloud Clients, Backups and etc.
|
||||||
|
2. It's not cool set realtime to all tasks. The RT scheduling class is given first access to the disk, regardless of what else is going on in the system. Thus the RT class needs to be used with some care, as it can starve other processes. So try use ioclass first.
|
||||||
|
|
||||||
|
### Missing `schedtool`
|
||||||
|
If you see this error in the output
|
||||||
|
```
|
||||||
|
Jan 24 09:44:18 tony-dev ananicy[13783]: ERRO: Missing schedtool! Abort!
|
||||||
|
```
|
||||||
|
Fix it in Ubuntu with
|
||||||
|
```
|
||||||
|
sudo apt install schedtool
|
||||||
|
```
|
||||||
|
|
||||||
|
### Submitting new rules
|
||||||
|
|
||||||
|
Please use pull request, thanks
|
3
ananicy-s6/ananicy-s6.install
Normal file
3
ananicy-s6/ananicy-s6.install
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
post_install() {
|
||||||
|
echo "Configs in /etc/ananicy.d/"
|
||||||
|
}
|
0
ananicy-s6/run → ananicy-s6/ananicy.run
Normal file → Executable file
0
ananicy-s6/run → ananicy-s6/ananicy.run
Normal file → Executable file
1
ananicy-s6/ananicy.type
Normal file
1
ananicy-s6/ananicy.type
Normal file
@@ -0,0 +1 @@
|
|||||||
|
longrun
|
@@ -1 +0,0 @@
|
|||||||
longrun
|
|
@@ -1,16 +1,19 @@
|
|||||||
# Maintainer: linuxer <linuxer@artixlinux.org>
|
# Contributor: linuxer <linuxer@artixlinux.org>
|
||||||
|
# Developer: Timofey Titovets <nefelim4ag@gmail.com>
|
||||||
|
|
||||||
pkgname=ananicy
|
pkgname=ananicy
|
||||||
pkgver=v2.2.0.r0.gb8cb676
|
_alias=ananicy
|
||||||
|
pkgver=2.2.0.r55.g5559e01
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
pkgdesc="Another auto nice daemon, with community rules support"
|
pkgdesc="Ananicy - is Another auto nice daemon, with community rules support"
|
||||||
arch=('any')
|
arch=('any')
|
||||||
url="https://gitea.artixlinux.org/linuxer/ananicy-nosystemd.git"
|
url="https://gitea.artixlinux.org/linuxer/ananicy-nosystemd"
|
||||||
license=('GPL3')
|
license=('GPL3')
|
||||||
provides=('ananicy')
|
provides=('ananicy')
|
||||||
depends=('bash' 'schedtool' 'python')
|
depends=('bash' 'schedtool')
|
||||||
makedepends=('git')
|
makedepends=('git' 'make')
|
||||||
source=("$pkgname::git+https://gitea.artixlinux.org/linuxer/ananicy-nosystemd.git")
|
#source=("${pkgname}-${pkgver}.tar.gz::https://github.com/Nefelim4ag/Ananicy.git"
|
||||||
|
source=("$pkgname"::'git+https://gitea.artixlinux.org/linuxer/ananicy-nosystemd.git#branch=master')
|
||||||
b2sums=('SKIP')
|
b2sums=('SKIP')
|
||||||
|
|
||||||
pkgver() {
|
pkgver() {
|
||||||
@@ -21,7 +24,6 @@ pkgver() {
|
|||||||
package() {
|
package() {
|
||||||
cd "$srcdir/$pkgname/"
|
cd "$srcdir/$pkgname/"
|
||||||
make install PREFIX="$pkgdir"
|
make install PREFIX="$pkgdir"
|
||||||
|
mv -v "$pkgdir/lib" "$pkgdir/usr/"
|
||||||
# Remove systemd
|
rm -R "$pkgdir/usr/lib"
|
||||||
rm -r "$pkgdir"/lib
|
|
||||||
}
|
}
|
||||||
|
35
brightness-control-applet/PKGBUILD
Normal file
35
brightness-control-applet/PKGBUILD
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
# Maintainer: linuxer <linuxer@artixlinux.org>
|
||||||
|
# Contributor: linuxer <linuxer@artixlinux.org>
|
||||||
|
# Contributor: Lord Amit <amitsealami@gmail.com>
|
||||||
|
|
||||||
|
pkgname=brightness-control-applet
|
||||||
|
pkgver=1.0.1
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc='Brightness Control Applet, for GTK and Qt based PC Desktops'
|
||||||
|
arch=('x86_64')
|
||||||
|
url='https://gitea.artixlinux.org/linuxer/brightness-control-applet'
|
||||||
|
license=('GPL3')
|
||||||
|
depends=('python' 'python-pyqt5' 'pyside2')
|
||||||
|
optdepends=('qt5ct: script for setting themes on GTK Desktops' 'kvantum-qt5: qt5 theme settings')
|
||||||
|
source=("${pkgname}-${pkgver}.tar.gz::${url}/archive/${pkgver}.tar.gz")
|
||||||
|
b2sums=('9b09298d29dba4308b1f9bf341c44c0da9cd9ee789688855e3c8821977bf8bff23fae6643ff852fd7cac6b9cd50fa33b75693b56f26b3212bbfc33aa62d3786c')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd "${srcdir}/${pkgname}"
|
||||||
|
|
||||||
|
mkdir -p "${pkgdir}/usr/bin"
|
||||||
|
mkdir -p "${pkgdir}/usr/share/icons"
|
||||||
|
mkdir -p "${pkgdir}/usr/share/applications"
|
||||||
|
mkdir -p "${pkgdir}/usr/share/brightness-control-applet/img"
|
||||||
|
mkdir -p "${pkgdir}/usr/share/brightness-control-applet/src"
|
||||||
|
|
||||||
|
cp "brightness-control-applet" "${pkgdir}/usr/share/brightness-control-applet/brightness-control-applet"
|
||||||
|
ln -sf "${pkgdir}/usr/share/brightness-control-applet/brightness-control-applet" "${pkgdir}/usr/bin/brightness-control-applet"
|
||||||
|
chmod +x "${pkgdir}/usr/bin/brightness-control-applet"
|
||||||
|
|
||||||
|
cp "brightness-control-applet.desktop" "${pkgdir}/usr/share/applications/brightness-control-applet.desktop"
|
||||||
|
cp "img/brightness.svg" "${pkgdir}/usr/share/icons/brightness.svg"
|
||||||
|
|
||||||
|
cp -avr "img" "${pkgdir}/usr/share/brightness-control-applet/"
|
||||||
|
cp -avr "src" "${pkgdir}/usr/share/brightness-control-applet/"
|
||||||
|
}
|
@@ -1,26 +1,27 @@
|
|||||||
# Maintainer: linuxer <linuxer@artixlinux.org>
|
# Contributor: linuxer <linuxer@artixlinux.org>
|
||||||
|
|
||||||
pkgname=cameracontrol
|
pkgname=cameracontrol
|
||||||
pkgdesc="Webcam, camera and microphone control for Linux - Έλεγχος webcam και camera και μικροφώνου για Linux"
|
pkgdesc="Webcam, camera and microphone control for Linux - Έλεγχος webcam και camera και μικροφώνου για Linux"
|
||||||
pkgver=2.1.0
|
pkgver=2.2.0
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
_pkgver="${pkgver//./-}"
|
_pkgver="${pkgver//./-}"
|
||||||
arch=('any')
|
arch=('any')
|
||||||
url="https://gitea.artixlinux.org/linuxer/camera-control-webcam-switch-indicator"
|
url="https://gitea.artixlinux.org/linuxer/camera-control-webcam-switch-indicator"
|
||||||
license=('FPC modified LGPL Version 2')
|
license=('FPC modified LGPL Version 2')
|
||||||
depends=('qt5pas' 'lsof')
|
depends=('qt5pas' 'lsof' 'kvantum-qt5' 'libnotify' 'notify-osd')
|
||||||
conflicts=('cameramonitor' 'cameracontrol-bin')
|
conflicts=('cameramonitor' 'cameracontrol-bin')
|
||||||
optdepends=('qt5ct: Qt5 Configuration Utility'
|
optdepends=('qt5ct: Qt5 Configuration Utility'
|
||||||
'qt5gtk2: another GTK+2.0 integration plugins for Qt5'
|
'qt5gtk2: another GTK+2.0 integration plugins for Qt5'
|
||||||
'qt5-styleplugins: additional style plugins for Qt5')
|
'qt5-styleplugins: additional style plugins for Qt5')
|
||||||
source=("https://gitea.artixlinux.org/linuxer/camera-control-webcam-switch-indicator/raw/branch/master/CameraControl-$_pkgver.tar.bz2")
|
source=("CameraControl-2.2-0.tar.bz2::https://codeberg.org/attachments/016fb3ac-a234-47ad-bde5-df21103037ef")
|
||||||
sha256sums=('a134a2af0c83e38282eb6c16a1dc6a9e018081e55d5e25e4e379ac6ebbb97d52')
|
b2sums=('f749accd0f939267e2167f6a01e56e2aff572ed4a7bfd302069ac3db0fcd24d257fb058bbb2898779e1fc2375fe688cd7110aed1b2baf05988d40a8d3ffcecf5')
|
||||||
|
|
||||||
|
|
||||||
package() {
|
package() {
|
||||||
cd "$srcdir"
|
cd "$srcdir"
|
||||||
pwd
|
|
||||||
install -Dm755 "$pkgname.bin" -t "$pkgdir/opt/CameraControl"
|
install -Dm755 "$pkgname.bin" -t "$pkgdir/opt/CameraControl"
|
||||||
install -Dm755 CameraControl.sh "$pkgdir/opt/CameraControl"
|
install -Dm755 CameraControl.sh "$pkgdir/opt/CameraControl"
|
||||||
install -Dm644 "$pkgname.desktop" -t "$pkgdir/usr/share/applications"
|
install -Dm644 "$pkgname.desktop" -t "$pkgdir/usr/share/applications"
|
||||||
|
install -D -m0644 org.artixlinux.cameracontrol.policy "${pkgdir}"/usr/share/polkit-1/actions/org.artixlinux.cameracontrol.policy
|
||||||
|
install=cameracontrol.install
|
||||||
}
|
}
|
||||||
|
9
cameracontrol/cameracontrol.install
Normal file
9
cameracontrol/cameracontrol.install
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
post_install() {
|
||||||
|
echo " ==> Add /usr/share/applications/cameracontrol.desktop to your ~/.config/autostart folder, so to startup after login
|
||||||
|
echo " ==> As from Release 2.2.0 and after, polkit's pkexec starts the application, so remove any previously secrets, from your .bashrc (if you had them before)
|
||||||
|
echo " ==> Further details at https://gitea.artixlinux.org/linuxer/camera-control-webcam-switch-indicator/src/branch/master/README.md
|
||||||
|
}
|
||||||
|
|
||||||
|
post_upgrade() {
|
||||||
|
post_install "$1"
|
||||||
|
}
|
17
earlyoom-openrc/PKGBUILD
Normal file
17
earlyoom-openrc/PKGBUILD
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
# Contributor: linuxer <linuxer@artixlinux.org>
|
||||||
|
|
||||||
|
pkgname=earlyoom-openrc
|
||||||
|
pkgver=20210225
|
||||||
|
pkgrel=1
|
||||||
|
url="https://gitea.artixlinux.org/linuxer/"
|
||||||
|
pkgdesc="earlyoom openrc init script"
|
||||||
|
arch=('x86_64')
|
||||||
|
license=('MIT')
|
||||||
|
depends=('openrc' 'earlyoom')
|
||||||
|
source=("earlyoom.initd")
|
||||||
|
b2sums=('0d38e7c1a8107d0ef082b4c62a2f4abf22613b4c73279168bd4f062e44fcaa5cdf0a6e4584a9f024840a2931e3a6e9308557e21bfca08c0de889657cb27c2a17')
|
||||||
|
|
||||||
|
package(){
|
||||||
|
install -Dm755 ${srcdir}/earlyoom.initd ${pkgdir}/etc/init.d/earlyoom
|
||||||
|
}
|
||||||
|
|
12
earlyoom-openrc/earlyoom.initd
Executable file
12
earlyoom-openrc/earlyoom.initd
Executable file
@@ -0,0 +1,12 @@
|
|||||||
|
#!/usr/bin/openrc-run
|
||||||
|
|
||||||
|
supervisor=supervise-daemon
|
||||||
|
pidfile="/run/earlyoom.pid"
|
||||||
|
command="/usr/bin/earlyoom"
|
||||||
|
command_args=$EARLYOOM_ARGS
|
||||||
|
command_background=true
|
||||||
|
#source=/etc/default/earlyoom
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
start-stop-daemon --stop --pidfile "$pidfile"
|
||||||
|
}
|
17
earlyoom-runit/PKGBUILD
Normal file
17
earlyoom-runit/PKGBUILD
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
# Contributor: linuxer <linuxer@artixlinux.org>
|
||||||
|
|
||||||
|
pkgname=earlyoom-runit
|
||||||
|
_alias=earlyoom
|
||||||
|
pkgver=20210225
|
||||||
|
pkgrel=1
|
||||||
|
url="https://gitea.artixlinux.org/linuxer/"
|
||||||
|
pkgdesc="earlyoom runit init script"
|
||||||
|
arch=('x86_64')
|
||||||
|
license=('BSD')
|
||||||
|
depends=('earlyoom' 'runit')
|
||||||
|
source=("earlyoom.run")
|
||||||
|
b2sums=('77353e72d7a95a511b3899196c84dfb4f8310b4b21b36ac73a37e92b25dfe82b169d2c9ce3648e3caa502735151c1b2059f74fdae243f829505d8f6fae1a1d62')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
install -Dm755 ${srcdir}/earlyoom.run $pkgdir/etc/runit/sv/$_alias/run
|
||||||
|
}
|
3
earlyoom-runit/earlyoom.run
Executable file
3
earlyoom-runit/earlyoom.run
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
exec earlyoom $EARLYOOM_ARGS
|
21
earlyoom-s6/PKGBUILD
Normal file
21
earlyoom-s6/PKGBUILD
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# Contributor: linuxer <linuxer@artixlinux.org>
|
||||||
|
|
||||||
|
pkgname=earlyoom-s6
|
||||||
|
_alias=earlyoom
|
||||||
|
pkgver=20210225
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="earlyoom s6 init script"
|
||||||
|
arch=('x86_64')
|
||||||
|
url="https://gitea.artixlinux.org/linuxer/"
|
||||||
|
license=('ISC')
|
||||||
|
depends=('earlyoom' 's6')
|
||||||
|
source=("earlyoom.type"
|
||||||
|
"earlyoom.run")
|
||||||
|
b2sums=('a8c94aa565e6a6800477961c3de12ac0a1cf3539640dc9c0dd442ff3cac5140c271c32da5b6c55319f3449fc20cdd02d640e05db8829aa951b90480d12b93728'
|
||||||
|
'38552d40fcc77b3361de6321d5d1cfc51be4611e53651637dbd527b271d7fd40483c2b8ed78d53d134b4184551135161a12e76d61680b7d3b84c02e24898ddf7')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
mkdir -p "$pkgdir/etc/s6/sv/$_alias"
|
||||||
|
cp earlyoom.run $pkgdir/etc/s6/sv/$_alias/run
|
||||||
|
cp earlyoom.type $pkgdir/etc/s6/sv/$_alias/type
|
||||||
|
}
|
3
earlyoom-s6/earlyoom.run
Executable file
3
earlyoom-s6/earlyoom.run
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
exec /usr/bin/earlyoom $EARLYOOM_ARGS
|
1
earlyoom-s6/earlyoom.type
Normal file
1
earlyoom-s6/earlyoom.type
Normal file
@@ -0,0 +1 @@
|
|||||||
|
longrun
|
31
earlyoom/PKGBUILD
Normal file
31
earlyoom/PKGBUILD
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
# Maintainer: Massimiliano Torromeo <massimiliano.torromeo@gmail.com>
|
||||||
|
|
||||||
|
pkgname=earlyoom
|
||||||
|
pkgver=1.6.2
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="Early OOM Daemon for Linux"
|
||||||
|
arch=('x86_64')
|
||||||
|
url="https://github.com/rfjakob/earlyoom"
|
||||||
|
license=('MIT')
|
||||||
|
makedepends=('pandoc')
|
||||||
|
backup=("etc/default/earlyoom")
|
||||||
|
source=("https://github.com/rfjakob/$pkgname/archive/v$pkgver/$pkgname-$pkgver.tar.gz")
|
||||||
|
sha256sums=('227234cf9e77831c21c748bd361e1a7c415e158b96034eacd59e70586779bb6c')
|
||||||
|
|
||||||
|
#prepare() {
|
||||||
|
#cd "$pkgname-$pkgver"
|
||||||
|
#sed "/systemctl|chcon/d" -ri Makefile
|
||||||
|
#sed '/^DynamicUser=/a SupplementaryGroups=proc' -i earlyoom.service.in
|
||||||
|
#sed 's;^EARLYOOM_ARGS="(.*)";EARLYOOM_ARGS="\1 -n --avoid '\''(^|/)(init|systemd|Xorg|sshd)$'\''";' -ri earlyoom.default
|
||||||
|
#}
|
||||||
|
|
||||||
|
build() {
|
||||||
|
cd "$pkgname-$pkgver"
|
||||||
|
make PREFIX=/usr VERSION=$pkgver earlyoom #SYSTEMDUNITDIR=/usr/lib/systemd/system
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd "$pkgname-$pkgver"
|
||||||
|
make install DESTDIR="$pkgdir" PREFIX=/usr
|
||||||
|
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
|
||||||
|
}
|
19
jackett-openrc/PKGBUILD
Normal file
19
jackett-openrc/PKGBUILD
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# Maintainer: linuxer <linuxer@artixlinux.org>
|
||||||
|
|
||||||
|
pkgname=jackett-openrc
|
||||||
|
_alias=jackett
|
||||||
|
pkgver=20210222
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc='Use many torrent trackers with software that supports torznab/potato feeds.'
|
||||||
|
arch=('x86_64')
|
||||||
|
license=('GPL')
|
||||||
|
url='https://gitea.artixlinux.org/linuxer/'
|
||||||
|
depends=('jackett' 's6')
|
||||||
|
conficts=('systemd' 's6' 'runit')
|
||||||
|
source=("jackett.initd")
|
||||||
|
b2sums=('7947e7659d8111eac86036ec1423ee76b6f6a506d12557f0745702ccbd07f5791ce950d3322b9603d7f5938c3991c5ffb1476ee133696ed112122656e31cce6e')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
mkdir -p $pkgdir/etc/init.d/
|
||||||
|
cp "jackett.initd" $pkgdir/etc/init.d/jackett
|
||||||
|
}
|
13
jackett-openrc/jackett.initd
Executable file
13
jackett-openrc/jackett.initd
Executable file
@@ -0,0 +1,13 @@
|
|||||||
|
#!/usr/bin/openrc-run
|
||||||
|
|
||||||
|
supervisor=supervise-daemon
|
||||||
|
healthcheck_delay=12
|
||||||
|
pidfile="/run/jackett.pid"
|
||||||
|
command="/usr/lib/jackett"
|
||||||
|
command_args="--NoRestart --NoUpdates --DataFolder /var/lib/jackett"
|
||||||
|
command_background=true
|
||||||
|
command_user="jackett"
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
start-stop-daemon --stop --pidfile "$pidfile"
|
||||||
|
}
|
20
jackett-runit/PKGBUILD
Normal file
20
jackett-runit/PKGBUILD
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
# Maintainer: linuxer <linuxer@artixlinux.org>
|
||||||
|
|
||||||
|
pkgname=jackett-runit
|
||||||
|
_alias=jackett
|
||||||
|
pkgver=20210222
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc='Use many torrent trackers with software that supports torznab/potato feeds.'
|
||||||
|
arch=('x86_64')
|
||||||
|
license=('GPL')
|
||||||
|
url='https://gitea.artixlinux.org/linuxer/'
|
||||||
|
depends=('jackett' 'runit')
|
||||||
|
conficts=('systemd' 'openrc' 's6')
|
||||||
|
source=("jackett.run")
|
||||||
|
b2sums=('fed3336e07fe1d88a65bad5fb4f3e081ec16b24c07cc2a96462e7cecc3962b9742897455c0ce7f7fdbe04ecb337c575d54194d2dedad865f72572a5158cc6ef4')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
install -D -m 644 "${srcdir}/jackett.run" "${pkgdir}/etc/runit/sv/jackett/run"
|
||||||
|
chmod +x "${pkgdir}/etc/runit/sv/jackett/run"
|
||||||
|
install=jackett.install
|
||||||
|
}
|
12
jackett-runit/jackett.install
Normal file
12
jackett-runit/jackett.install
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
post_install() {
|
||||||
|
echo " ==> Add Jackett Daemon to system startup wtih 'sudo ln -s /etc/runit/sv/jackett /run/runit/service'"
|
||||||
|
echo " ==> Start Jackett Daemon now with 'sudo sv up jackett'"
|
||||||
|
}
|
||||||
|
|
||||||
|
post_upgrade() {
|
||||||
|
post_install "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
pre_remove() {
|
||||||
|
echo " ==> Make sure to 'sudo unlink /run/runit/service/jackett'"
|
||||||
|
}
|
5
jackett-runit/jackett.run
Executable file
5
jackett-runit/jackett.run
Executable file
@@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
exec chpst -u jackett /usr/lib/jackett/jackett --NoRestart --NoUpdates --DataFolder /var/lib/jackett
|
||||||
|
|
||||||
|
|
23
jackett-s6/PKGBUILD
Normal file
23
jackett-s6/PKGBUILD
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
# Maintainer: linuxer <linuxer@artixlinux.org>
|
||||||
|
|
||||||
|
pkgname=jackett-s6
|
||||||
|
_alias=jackett
|
||||||
|
pkgver=20210222
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc='Use many torrent trackers with software that supports torznab/potato feeds.'
|
||||||
|
arch=('x86_64')
|
||||||
|
license=('GPL')
|
||||||
|
url='https://gitea.artixlinux.org/linuxer/'
|
||||||
|
depends=('jackett' 's6')
|
||||||
|
conficts=('systemd' 'openrc' 'runit')
|
||||||
|
source=("jackett.run"
|
||||||
|
"jackett.type")
|
||||||
|
b2sums=('fed3336e07fe1d88a65bad5fb4f3e081ec16b24c07cc2a96462e7cecc3962b9742897455c0ce7f7fdbe04ecb337c575d54194d2dedad865f72572a5158cc6ef4'
|
||||||
|
'0d8b60c573270d0117b3613fa99b65d94b1a91c0029a07bfb1157d2a990e59636c4785b67dbf64bdf1cd17a77c55f71a041170c9a6edb81689053e6ee158d46e')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
install -D -m 644 "${srcdir}/jackett.run" "${pkgdir}/etc/s6/sv/jackett/run"
|
||||||
|
install -D -m 644 "${srcdir}/jackett.type" "${pkgdir}/etc/s6/sv/jackett/type"
|
||||||
|
chmod +x "${pkgdir}/etc/s6/sv/jackett/run"
|
||||||
|
}
|
||||||
|
|
5
jackett-s6/jackett.run
Normal file
5
jackett-s6/jackett.run
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
exec chpst -u jackett /usr/lib/jackett/jackett --NoRestart --NoUpdates --DataFolder /var/lib/jackett
|
||||||
|
|
||||||
|
|
1
jackett-s6/jackett.type
Normal file
1
jackett-s6/jackett.type
Normal file
@@ -0,0 +1 @@
|
|||||||
|
longrun
|
55
jackett/PKGBUILD
Normal file
55
jackett/PKGBUILD
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
# Maintainer: linuxer <linuxer@artixlinux.org>
|
||||||
|
# Maintainer: Donald Webster <fryfrog@gmail.com>
|
||||||
|
|
||||||
|
pkgname=jackett-runit.git
|
||||||
|
_alias=jackett
|
||||||
|
pkgver=0.17.764
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc='Use many torrent trackers with software that supports torznab/potato feeds.'
|
||||||
|
arch=('x86_64' 'aarch64' 'armv7h')
|
||||||
|
license=('GPL')
|
||||||
|
url='https://github.com/Jackett/Jackett'
|
||||||
|
depends=('curl' 'openssl-1.0')
|
||||||
|
makedepends=('dotnet-sdk>=5.0.0')
|
||||||
|
conficts=('systemd' 'openrc' 's6' 'jackett' 'jackett-mono')
|
||||||
|
options=('!strip' 'staticlibs')
|
||||||
|
|
||||||
|
source=("jackett.run"
|
||||||
|
"jackett.sysusers"
|
||||||
|
"jackett.tmpfiles"
|
||||||
|
"jackett.install"
|
||||||
|
"${pkgname}-${pkgver}.tar.gz::https://github.com/Jackett/Jackett/archive/v${pkgver}.tar.gz")
|
||||||
|
|
||||||
|
b2sums=('fed3336e07fe1d88a65bad5fb4f3e081ec16b24c07cc2a96462e7cecc3962b9742897455c0ce7f7fdbe04ecb337c575d54194d2dedad865f72572a5158cc6ef4'
|
||||||
|
'6b0534e5f3320e70cff1cc59b0c4de202451d6bc240c0659749929a72223fcb8e636508b14905e3d449c854ae6774c4349480039dd50e35d1d01ac13fa15eea3'
|
||||||
|
'4837363802330a33153e8b1560074d3af1c24c393287d295083dc41c82d6667ef0eb1dbcabc6afd180082405762bfed749adc7483d0c6fab0be431f944b4c001'
|
||||||
|
'bccae26aece8872da424e8a2076c6a97ec7523026a6c4320e0a3d573452e06e0c36bd65374ecd45f809c107e21902c91b2c6546365b49a173b3f7c775d891b11'
|
||||||
|
'0b11066b7ffd5e9fa98551dd964bd1c2578d411bfd6d6b1e418fbba943601a3cfbb9d1a1cbc21e8c2e891a975661975d79ff507993104fe523132b0c428c0b03')
|
||||||
|
|
||||||
|
build() {
|
||||||
|
cd ${_alias^}-${pkgver}
|
||||||
|
|
||||||
|
case ${CARCH} in
|
||||||
|
x86_64) _CARCH='x64';;
|
||||||
|
aarch64) _CARCH='arm64';;
|
||||||
|
armv7h) _CARCH='arm';;
|
||||||
|
esac
|
||||||
|
|
||||||
|
export DOTNET_CLI_TELEMETRY_OPTOUT=1
|
||||||
|
dotnet publish src/Jackett.Server -f net5.0 --self-contained -r linux-${_CARCH} -c Debug -o buid/ /p:AssemblyVersion=${pkgver} /p:FileVersion=${pkgver} /p:InformationalVersion=${pkgver} /p:Version=${pkgver}
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
#cd "$srcdir"
|
||||||
|
cd ${_alias^}-${pkgver}
|
||||||
|
|
||||||
|
install -d -m 755 "${pkgdir}/usr/lib/jackett/"
|
||||||
|
cp -dpr --no-preserve=ownership buid/* "${pkgdir}/usr/lib/jackett/"
|
||||||
|
|
||||||
|
#install -D -m 644 "${srcdir}/jackett.service" "${pkgdir}/usr/lib/systemd/system/jackett.service"
|
||||||
|
install -D -m 644 "${srcdir}/jackett.sysusers" "${pkgdir}/usr/lib/sysusers.d/jackett.conf"
|
||||||
|
install -D -m 644 "${srcdir}/jackett.tmpfiles" "${pkgdir}/usr/lib/tmpfiles.d/jackett.conf"
|
||||||
|
install -D -m 644 "${srcdir}/jackett.run" "${pkgdir}/etc/runit/sv/jackett/run"
|
||||||
|
chmod +x "${pkgdir}/etc/runit/sv/jackett/run"
|
||||||
|
install=jackett.install
|
||||||
|
}
|
1
jackett/jackett.sysusers
Normal file
1
jackett/jackett.sysusers
Normal file
@@ -0,0 +1 @@
|
|||||||
|
u jackett - "Jackett daemon" /var/lib/jackett
|
5
jackett/jackett.tmpfiles
Normal file
5
jackett/jackett.tmpfiles
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
# Override this file with a modified version in /etc/tmpfiles.d/
|
||||||
|
d /var/lib/jackett 0755 jackett jackett
|
||||||
|
Z /var/lib/jackett - jackett jackett
|
||||||
|
Z /usr/lib/jackett - jackett jackett
|
||||||
|
L /var/log/jackett.log - - - - /var/lib/jackett/log.txt
|
41
ofono/PKGBUILD
Normal file
41
ofono/PKGBUILD
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
# Maintainer: Jerome Leclanche <jerome@leclan.ch>
|
||||||
|
# Contributor: Kenneth Endfinger <kaendfinger@gmail.com>
|
||||||
|
# Contributor: Librewish <librewish@gmail.com>
|
||||||
|
pkgname=ofono
|
||||||
|
pkgver=1.31
|
||||||
|
pkgrel=3
|
||||||
|
pkgdesc="Infrastructure for building mobile telephony (GSM/UMTS) applications"
|
||||||
|
url="https://01.org/ofono"
|
||||||
|
arch=("x86_64")
|
||||||
|
license=("GPL2")
|
||||||
|
depends=("bluez" "dbus" "glib2" "udev" "mobile-broadband-provider-info")
|
||||||
|
provides=("ofono")
|
||||||
|
optdepends=("phonesim" "mmsd" "upower")
|
||||||
|
source=(
|
||||||
|
"https://www.kernel.org/pub/linux/network/ofono/$pkgname-$pkgver.tar.xz"
|
||||||
|
# "https://www.kernel.org/pub/linux/network/ofono/$pkgname-$pkgver.tar.sign"
|
||||||
|
)
|
||||||
|
sha256sums=('a15c5d28096c10eb30e47a68b6dc2e7c4a5a99d7f4cfedf0b69624f33d859e9b'
|
||||||
|
# 'SKIP'
|
||||||
|
)
|
||||||
|
|
||||||
|
build() {
|
||||||
|
cd "$srcdir/$pkgname-$pkgver"
|
||||||
|
./configure \
|
||||||
|
--prefix=/usr \
|
||||||
|
--sysconfdir=/etc \
|
||||||
|
--localstatedir=/var \
|
||||||
|
--sbindir=/usr/bin \
|
||||||
|
--mandir=/usr/share/man \
|
||||||
|
--enable-test \
|
||||||
|
--enable-tools \
|
||||||
|
--enable-dundee
|
||||||
|
make
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd "$srcdir/$pkgname-$pkgver"
|
||||||
|
make DESTDIR="$pkgdir" install
|
||||||
|
install -Dm644 "$srcdir/$pkgname-$pkgver/src/ofono.conf" "$pkgdir/etc/dbus-1/system.d/ofono.conf"
|
||||||
|
#install -Dm644 "$srcdir/$pkgname-$pkgver/src/ofono.service" "$pkgdir/usr/lib/systemd/system/ofono.service" <-- please don't lol
|
||||||
|
}
|
19
ofonod-openrc/PKGBUILD
Normal file
19
ofonod-openrc/PKGBUILD
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# Contributor: linuxer <linuxer@artixlinux.org>
|
||||||
|
# Developer: Timofey Titovets <nefelim4ag@gmail.com>
|
||||||
|
|
||||||
|
pkgname=ofonod-openrc
|
||||||
|
_alias=ofonod
|
||||||
|
pkgver=20210119
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="Infrastructure for building mobile telephony (GSM/UMTS) applications support for OpenRC Init"
|
||||||
|
arch=('x86_64')
|
||||||
|
url="https://gitea.artixlinux.org/linuxer/"
|
||||||
|
license=('BSD')
|
||||||
|
depends=('ofono' 'openrc' 'bash')
|
||||||
|
source=("ofonod.initd")
|
||||||
|
b2sums=('45219673596858050fa8620aeb55a7caaee195e7b79c07965d1a077feac0aafdf91c2380dda9be1c3e35280de66d7d3f720c54bbe9b61ad18924a72e9f284747')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
mkdir -p $pkgdir/etc/init.d/
|
||||||
|
cp "ofonod.initd" $pkgdir/etc/init.d/ofonod
|
||||||
|
}
|
16
ofonod-openrc/ofonod.initd
Executable file
16
ofonod-openrc/ofonod.initd
Executable file
@@ -0,0 +1,16 @@
|
|||||||
|
#!/usr/bin/openrc-run
|
||||||
|
|
||||||
|
supervisor=supervise-daemon
|
||||||
|
healthcheck_delay=12
|
||||||
|
pidfile="/run/ofonod.pid"
|
||||||
|
command="/usr/sbin/ofonod"
|
||||||
|
command_args="-n"
|
||||||
|
command_background=true
|
||||||
|
|
||||||
|
depend() {
|
||||||
|
need dbus
|
||||||
|
}
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
start-stop-daemon --stop --pidfile "$pidfile"
|
||||||
|
}
|
19
ofonod-runit/PKGBUILD
Normal file
19
ofonod-runit/PKGBUILD
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# Contributor: linuxer <linuxer@artixlinux.org>
|
||||||
|
# Developer: Timofey Titovets <nefelim4ag@gmail.com>
|
||||||
|
|
||||||
|
pkgname=ofonod-runit
|
||||||
|
_alias=ofonod
|
||||||
|
pkgver=20210119
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="Infrastructure for building mobile telephony (GSM/UMTS) applications support for Runit Init"
|
||||||
|
arch=('x86_64')
|
||||||
|
url="https://gitea.artixlinux.org/linuxer/"
|
||||||
|
license=('BSD')
|
||||||
|
depends=('ofono' 'runit' 'bash')
|
||||||
|
source=("ofonod.run")
|
||||||
|
b2sums=('ef411c2397ab5dd1dab3fd5f74daf53ca19ee9fc284a0ea11a58f751908b6b4d2bfebebdab07c940a48f20e7e3dc91b69a1282400ee80651b2482728d544d953')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
mkdir -p "$pkgdir/etc/runit/sv/$_alias"
|
||||||
|
cp "ofonod.run" $pkgdir/etc/runit/sv/$_alias/run
|
||||||
|
}
|
4
ofonod-runit/ofonod.run
Executable file
4
ofonod-runit/ofonod.run
Executable file
@@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
sv check dbus >/dev/null || exit 1
|
||||||
|
exec /usr/sbin/ofonod -n
|
22
ofonod-s6/PKGBUILD
Normal file
22
ofonod-s6/PKGBUILD
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
# Contributor: linuxer <linuxer@artixlinux.org>
|
||||||
|
# Developer: Timofey Titovets <nefelim4ag@gmail.com>
|
||||||
|
|
||||||
|
pkgname=ofonod-s6
|
||||||
|
_alias=ofonod
|
||||||
|
pkgver=20210119
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="Infrastructure for building mobile telephony (GSM/UMTS) applications support for s6 Init"
|
||||||
|
arch=('x86_64')
|
||||||
|
url="https://gitea.artixlinux.org/linuxer/"
|
||||||
|
license=('ISC')
|
||||||
|
depends=('ofono' 's6' 'bash')
|
||||||
|
source=("ofonod.type"
|
||||||
|
"ofonod.run")
|
||||||
|
b2sums=('0d8b60c573270d0117b3613fa99b65d94b1a91c0029a07bfb1157d2a990e59636c4785b67dbf64bdf1cd17a77c55f71a041170c9a6edb81689053e6ee158d46e'
|
||||||
|
'6dfc8d1ed1e3127b9dfd6d8e8137ce2f3da44dc9d1a9a3de72c765e08e1e16484ece8c53325a3b371301604714ea485d079687212a0d996c894bd11cc79f95cc')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
mkdir -p "$pkgdir/etc/s6/sv/$_alias"
|
||||||
|
cp ofonod.run $pkgdir/etc/s6/sv/$_alias/run
|
||||||
|
cp ofonod.type $pkgdir/etc/s6/sv/$_alias/type
|
||||||
|
}
|
3
ofonod-s6/ofonod.run
Executable file
3
ofonod-s6/ofonod.run
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
#!/usr/bin/execlineb -P
|
||||||
|
|
||||||
|
exec /usr/sbin/ofonod -n
|
1
ofonod-s6/ofonod.type
Normal file
1
ofonod-s6/ofonod.type
Normal file
@@ -0,0 +1 @@
|
|||||||
|
longrun
|
38
perl-encode-detect/PKGBUILD
Normal file
38
perl-encode-detect/PKGBUILD
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
# Maintainer: Amish <contact at via dot aur>
|
||||||
|
# Contributor: John D Jones III AKA jnbek <jnbek1972 -_AT_- g m a i l -_Dot_- com>
|
||||||
|
|
||||||
|
pkgname=perl-encode-detect
|
||||||
|
pkgver=1.01
|
||||||
|
pkgrel=7
|
||||||
|
pkgdesc="An Encode::Encoding subclass that detects the encoding of data"
|
||||||
|
_dist=Encode-Detect
|
||||||
|
arch=('any')
|
||||||
|
url="https://metacpan.org/release/${_dist}"
|
||||||
|
license=('GPL' 'PerlArtistic')
|
||||||
|
depends=('perl')
|
||||||
|
makedepends=('perl-module-build')
|
||||||
|
options=('!emptydirs' purge)
|
||||||
|
source=("https://cpan.metacpan.org/authors/id/J/JG/JGMYERS/${_dist}-${pkgver}.tar.gz")
|
||||||
|
md5sums=('ee9faf55d7105c97b02b8ebe590819c7')
|
||||||
|
sha512sums=('cc9c81f716dcb61abb321abd84e4ebb95a674d9aa34c4265f58cace38f6d15ef4f2b8338190ae7d200672e047b795a30ce6155f9c1b1c424e25d962579b96224')
|
||||||
|
|
||||||
|
build() {
|
||||||
|
cd "${srcdir}/${_dist}-${pkgver}"
|
||||||
|
unset PERL5LIB PERL_MM_OPT PERL_LOCAL_LIB_ROOT
|
||||||
|
export PERL_MM_USE_DEFAULT=1 PERL_AUTOINSTALL=--skipdeps
|
||||||
|
/usr/bin/perl Makefile.PL
|
||||||
|
make
|
||||||
|
}
|
||||||
|
|
||||||
|
check() {
|
||||||
|
cd "${srcdir}/${_dist}-${pkgver}"
|
||||||
|
unset PERL5LIB PERL_MM_OPT PERL_LOCAL_LIB_ROOT
|
||||||
|
export PERL_MM_USE_DEFAULT=1
|
||||||
|
make test
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd "${srcdir}/${_dist}-${pkgver}"
|
||||||
|
unset PERL5LIB PERL_MM_OPT PERL_LOCAL_LIB_ROOT
|
||||||
|
make install INSTALLDIRS=vendor DESTDIR="${pkgdir}"
|
||||||
|
}
|
19
preload-openrc/PKGBUILD
Normal file
19
preload-openrc/PKGBUILD
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# Contributor: linuxer <linuxer@artixlinux.org>
|
||||||
|
# Developer: Timofey Titovets <nefelim4ag@gmail.com>
|
||||||
|
|
||||||
|
pkgname=preload-openrc
|
||||||
|
_alias=preload
|
||||||
|
pkgver=20210208
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="Makes applications run faster by prefetching binaries and shared objects, support for OpenRC Init"
|
||||||
|
arch=('x86_64')
|
||||||
|
url="https://gitea.artixlinux.org/linuxer/"
|
||||||
|
license=('BSD')
|
||||||
|
depends=('preload' 'openrc' 'bash')
|
||||||
|
source=("preload.initd")
|
||||||
|
b2sums=('be3f54c6e227e9f2c9154c8a3285ed0d1302bbc1f3863ee6f47905f20961c52d91d4a60ecb31dedf0a25654046e52c264ee28fcd7647047573cc1bb182fb60aa')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
mkdir -p $pkgdir/etc/init.d/
|
||||||
|
cp "preload.initd" $pkgdir/etc/init.d/preload
|
||||||
|
}
|
9
preload-openrc/preload.initd
Executable file
9
preload-openrc/preload.initd
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
#!/usr/bin/openrc-run
|
||||||
|
|
||||||
|
pidfile="/run/preload.pid"
|
||||||
|
command="/usr/bin/preload"
|
||||||
|
command_args="--foreground $PRELOAD_OPTS"
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
start-stop-daemon --stop --pidfile "$pidfile"
|
||||||
|
}
|
19
preload-runit/PKGBUILD
Normal file
19
preload-runit/PKGBUILD
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# Contributor: linuxer <linuxer@artixlinux.org>
|
||||||
|
# Developer: Timofey Titovets <nefelim4ag@gmail.com>
|
||||||
|
|
||||||
|
pkgname=preload-runit
|
||||||
|
_alias=preload
|
||||||
|
pkgver=20210208
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="Makes applications run faster by prefetching binaries and shared objects, support for Runit Init"
|
||||||
|
arch=('x86_64')
|
||||||
|
url="https://gitea.artixlinux.org/linuxer/"
|
||||||
|
license=('BSD')
|
||||||
|
depends=('preload' 'runit' 'bash')
|
||||||
|
source=("preload.run")
|
||||||
|
b2sums=('32b09967e1e4f1c4133ffed2025ffd9f55b9780f453af00a9da30d47c47d0ee8b8c60b1d4598ce152d932cdce73b35e10c7cebdb9c60eb0c6a17804a7090d676')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
mkdir -p "$pkgdir/etc/runit/sv/$_alias"
|
||||||
|
cp "preload.run" $pkgdir/etc/runit/sv/$_alias/run
|
||||||
|
}
|
2
preload-runit/preload.run
Executable file
2
preload-runit/preload.run
Executable file
@@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
exec /usr/bin/preload --foreground $PRELOAD_OPTS pause
|
22
preload-s6/PKGBUILD
Normal file
22
preload-s6/PKGBUILD
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
# Contributor: linuxer <linuxer@artixlinux.org>
|
||||||
|
# Developer: Timofey Titovets <nefelim4ag@gmail.com>
|
||||||
|
|
||||||
|
pkgname=preload-s6
|
||||||
|
_alias=preload
|
||||||
|
pkgver=20210208
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="Makes applications run faster by prefetching binaries and shared objects,support for s6 Init"
|
||||||
|
arch=('x86_64')
|
||||||
|
url="https://gitea.artixlinux.org/linuxer/"
|
||||||
|
license=('ISC')
|
||||||
|
depends=('preload' 's6' 'bash')
|
||||||
|
source=("preload.type"
|
||||||
|
"preload.run")
|
||||||
|
b2sums=('cdcdfdfe8033b1b2ac812951b70b09b115c1d7b7de4ed0ea0808072414753faf98ca846a171f22ab788cc9e1564456354f953941d4fba8056bc650f41dcde8dc'
|
||||||
|
'4b5f6e726d55091d5d7e32aa1c1876d6999b05e513a5698750d47a99254bdae5c5fb6586a0b3f4cda2a33b5f3c11d6c30a9516f0e2079d7fd38a45d1b844c089')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
mkdir -p "$pkgdir/etc/s6/sv/$_alias"
|
||||||
|
cp preload.run $pkgdir/etc/s6/sv/$_alias/up
|
||||||
|
cp preload.type $pkgdir/etc/s6/sv/$_alias/type
|
||||||
|
}
|
3
preload-s6/preload.run
Executable file
3
preload-s6/preload.run
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
#!/usr/bin/execlineb -P
|
||||||
|
|
||||||
|
exec /usr/bin/preload --foreground $PRELOAD_OPTS
|
43
preload/PKGBUILD
Normal file
43
preload/PKGBUILD
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
# Maintainer: Francois Menning <f.menning@protonmail.com>
|
||||||
|
# Contributor: Justin Dray <justin@dray.be
|
||||||
|
# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
|
||||||
|
# Contributor: William Rea <sillywilly@gmail.com>
|
||||||
|
|
||||||
|
pkgname=preload
|
||||||
|
pkgver=0.6.4
|
||||||
|
pkgrel=7
|
||||||
|
arch=('x86_64')
|
||||||
|
pkgdesc="Makes applications run faster by prefetching binaries and shared objects"
|
||||||
|
url="http://sourceforge.net/projects/preload"
|
||||||
|
license=('GPL2')
|
||||||
|
depends=('glib2' 'bash')
|
||||||
|
provides=('preload')
|
||||||
|
makedepends=('help2man')
|
||||||
|
backup=('etc/preload.conf')
|
||||||
|
options=('!makeflags')
|
||||||
|
install=$pkgname.install
|
||||||
|
source=("http://downloads.sourceforge.net/sourceforge/preload/$pkgname-$pkgver.tar.gz")
|
||||||
|
md5sums=('10786287b55afd3a2b433b4f898809f4')
|
||||||
|
|
||||||
|
build() {
|
||||||
|
cd $pkgname-$pkgver
|
||||||
|
./configure --prefix=/usr \
|
||||||
|
--sysconfdir=/etc \
|
||||||
|
--mandir=/usr/share/man \
|
||||||
|
--sbindir=/usr/bin \
|
||||||
|
--localstatedir=/var
|
||||||
|
make
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd $pkgname-$pkgver
|
||||||
|
make DESTDIR="${pkgdir}" sysconfigdir=/etc/conf.d install
|
||||||
|
|
||||||
|
#install -Dm644 "${srcdir}"/preload.service "${pkgdir}"/usr/lib/systemd/system/preload.service
|
||||||
|
|
||||||
|
rm -rf "${pkgdir}"/etc/rc.d
|
||||||
|
rm -rf "${pkgdir}"/var/lib/preload/preload.state
|
||||||
|
rm -rf "${pkgdir}"/var/log/preload.log
|
||||||
|
|
||||||
|
sed -r -i 's#^((map|exe)prefix =) (.+)$#\1 /opt;\3#' "${pkgdir}"/etc/preload.conf
|
||||||
|
}
|
30
preload/preload.install
Normal file
30
preload/preload.install
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
PRELOAD_STATE=/var/lib/preload/preload.state
|
||||||
|
|
||||||
|
# arg 1: the new package version
|
||||||
|
# arg 2: the old package version
|
||||||
|
pre_upgrade() {
|
||||||
|
if [ `vercmp $2 0.6.3-2` -lt 0 ]; then
|
||||||
|
echo "Backing up your state file..."
|
||||||
|
cp -af ${PRELOAD_STATE} ${PRELOAD_STATE}.backup
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# arg 1: the new package version
|
||||||
|
# arg 2: the old package version
|
||||||
|
post_upgrade() {
|
||||||
|
if [ `vercmp $2 0.6.3-2` -lt 0 -a -f ${PRELOAD_STATE}.backup ]; then
|
||||||
|
echo "Restoring the state file..."
|
||||||
|
mv -f ${PRELOAD_STATE}.backup ${PRELOAD_STATE}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# arg 1: the old package version
|
||||||
|
post_remove() {
|
||||||
|
echo
|
||||||
|
echo "Leaving ${PRELOAD_STATE} intact in case one day you want to"
|
||||||
|
echo "install preload again. If you are sure you don't need it anymore, please"
|
||||||
|
echo "remove it manually. Log files in /var/log have not been removed as well."
|
||||||
|
echo
|
||||||
|
}
|
||||||
|
|
||||||
|
# vim:set ts=2 sw=2 et:
|
18
runit-service-manager/PKGBUILD
Normal file
18
runit-service-manager/PKGBUILD
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
# Maintainer: Nathan Owens <ndowens@artixlinux.org>
|
||||||
|
# Contributor: linuxer <linuxer@artixlinux.org>
|
||||||
|
pkgname=rsm
|
||||||
|
pkgver=1.4.4
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="Runit service manager"
|
||||||
|
arch=(any)
|
||||||
|
url="https://gitea.artixlinux.org/linuxer/Runit-Service-Manager"
|
||||||
|
license=('MIT')
|
||||||
|
depends=('runit')
|
||||||
|
source=("${pkgname}-${pkgver}.tar.gz::${url}/archive/v${pkgver}.tar.gz")
|
||||||
|
b2sums=('2cfc5e480f181f523bc8358f6387982e8645311b5672c318f90853e9b6ce713b3af747fcd5eac96e5f19a374abc1f4ab23bae051bb83b584461fc4170ccfc198')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd "runit-service-manager"
|
||||||
|
install -Dm755 rsm "$pkgdir"/usr/bin/rsm
|
||||||
|
install -Dm644 LICENSE -t "$pkgdir"/usr/share/licenses/rsm
|
||||||
|
}
|
19
spotifyd-openrc/PKGBUILD
Normal file
19
spotifyd-openrc/PKGBUILD
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# Contributor: linuxer <linuxer@artixlinux.org>
|
||||||
|
# Developer: Timofey Titovets <nefelim4ag@gmail.com>
|
||||||
|
|
||||||
|
pkgname=spotifyd-openrc
|
||||||
|
_alias=spotifyd
|
||||||
|
pkgver=20210211
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="Leightweigt spotify streaming daemon with spotify connect support for Runit Init"
|
||||||
|
arch=('any')
|
||||||
|
url="https://gitea.artixlinux.org/linuxer/"
|
||||||
|
license=('BSD')
|
||||||
|
depends=('spotifyd' 'openrc' 'bash')
|
||||||
|
source=("spotifyd.initd")
|
||||||
|
b2sums=('7faa912161c614f494a69f89dfad1a548937a96b1d428b6bef5fa1a22009df23aaf217ee59138cf50b44931a05d075e019e0b162689b35d1f11d49532ad03792')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
mkdir -p $pkgdir/etc/init.d/
|
||||||
|
cp "spotifyd.initd" $pkgdir/etc/init.d/spotifyd
|
||||||
|
}
|
16
spotifyd-openrc/spotifyd.initd
Executable file
16
spotifyd-openrc/spotifyd.initd
Executable file
@@ -0,0 +1,16 @@
|
|||||||
|
#!/usr/bin/openrc-run
|
||||||
|
|
||||||
|
supervisor=supervise-daemon
|
||||||
|
healthcheck_delay=12
|
||||||
|
pidfile="/run/spotifyd.pid"
|
||||||
|
command="/usr/bin/spotifyd"
|
||||||
|
command_args="-b pulseaudio --no-daemon"
|
||||||
|
command_background=true
|
||||||
|
|
||||||
|
depend() {
|
||||||
|
need dbus
|
||||||
|
}
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
start-stop-daemon --stop --pidfile "$pidfile"
|
||||||
|
}
|
19
spotifyd-runit/PKGBUILD
Normal file
19
spotifyd-runit/PKGBUILD
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# Contributor: linuxer <linuxer@artixlinux.org>
|
||||||
|
# Developer: Timofey Titovets <nefelim4ag@gmail.com>
|
||||||
|
|
||||||
|
pkgname=spotifyd-runit
|
||||||
|
_alias=spotifyd
|
||||||
|
pkgver=20210119
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="Leightweigt spotify streaming daemon with spotify connect support for Runit Init"
|
||||||
|
arch=('any')
|
||||||
|
url="https://gitea.artixlinux.org/linuxer/"
|
||||||
|
license=('BSD')
|
||||||
|
depends=('spotifyd' 'runit' 'bash')
|
||||||
|
source=("spotifyd.run")
|
||||||
|
b2sums=('9cf6d59eae70215b0b9329eaaa51d936ca6c45ef89b089de9e8e4f3bfd4adf2ca531251d5286cbbbecad0716b39c1ae0958db95eaf2d918b1f35ecdd4e0a6a95')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
mkdir -p "$pkgdir/etc/runit/sv/$_alias"
|
||||||
|
cp "spotifyd.run" $pkgdir/etc/runit/sv/$_alias/run
|
||||||
|
}
|
4
spotifyd-runit/spotifyd.run
Executable file
4
spotifyd-runit/spotifyd.run
Executable file
@@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
sv check dbus >/dev/null || exit 1
|
||||||
|
exec spotifyd -b pulseaudio --no-daemon
|
22
spotifyd-s6/PKGBUILD
Normal file
22
spotifyd-s6/PKGBUILD
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
# Contributor: linuxer <linuxer@artixlinux.org>
|
||||||
|
# Developer: Timofey Titovets <nefelim4ag@gmail.com>
|
||||||
|
|
||||||
|
pkgname=spotifyd-s6
|
||||||
|
_alias=spotifyd
|
||||||
|
pkgver=20210119
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="Leightweigt spotify streaming daemon with spotify connect support for Runit Init"
|
||||||
|
arch=('any')
|
||||||
|
url="https://gitea.artixlinux.org/linuxer/"
|
||||||
|
license=('ISC')
|
||||||
|
depends=('spotifyd' 's6' 'bash')
|
||||||
|
source=("spotifyd.type"
|
||||||
|
"spotifyd.run")
|
||||||
|
b2sums=('0d8b60c573270d0117b3613fa99b65d94b1a91c0029a07bfb1157d2a990e59636c4785b67dbf64bdf1cd17a77c55f71a041170c9a6edb81689053e6ee158d46e'
|
||||||
|
'd4812baddb1b05700a24faf53e18647a802c2ceb6a7a74f7ab491958b08db5d71f4df50819a73377ec970bf487567030d8486dd04512e72b0eb45de27580889e')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
mkdir -p "$pkgdir/etc/s6/sv/$_alias"
|
||||||
|
cp spotifyd.run $pkgdir/etc/s6/sv/$_alias/run
|
||||||
|
cp spotifyd.type $pkgdir/etc/s6/sv/$_alias/type
|
||||||
|
}
|
3
spotifyd-s6/spotifyd.run
Executable file
3
spotifyd-s6/spotifyd.run
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
exec /usr/bin/spotifyd -b pulseaudio --no-daemon
|
1
spotifyd-s6/spotifyd.type
Normal file
1
spotifyd-s6/spotifyd.type
Normal file
@@ -0,0 +1 @@
|
|||||||
|
longrun
|
35
spotifyd/PKGBUILD
Normal file
35
spotifyd/PKGBUILD
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
# Maintainer: Frederik Schwan <freswa at archlinux dot org>
|
||||||
|
# Contributor: Bert Peters <bert@bertptrs.nl>
|
||||||
|
# Contributor: Varakh <varakh@varakh.de>
|
||||||
|
# Contributor: Florian Klink <flokli@flokli.de>
|
||||||
|
|
||||||
|
pkgbase=spotifyd
|
||||||
|
pkgname=('spotifyd')
|
||||||
|
pkgver=0.3.0
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc='Leightweigt spotify streaming daemon with spotify connect support'
|
||||||
|
arch=('x86_64')
|
||||||
|
url='https://github.com/Spotifyd/spotifyd'
|
||||||
|
license=('GPL3')
|
||||||
|
depends=('alsa-lib' 'libogg' 'libpulse' 'dbus')
|
||||||
|
# change to rust when https://github.com/librespot-org/librespot-tremor/pull/1 got merged
|
||||||
|
makedepends=('rust')
|
||||||
|
source=("https://github.com/Spotifyd/spotifyd/archive/v${pkgver}/${pkgname}-${pkgver}.tar.gz")
|
||||||
|
b2sums=('79bc74d6dc2e9acca439a9b5e5e1c6f6be143ea6fd376386f1649626f51473d56c0147057eba5dcdb5b97496733bafcdb9956f8a2bc824c61c13b61740359398')
|
||||||
|
|
||||||
|
build() {
|
||||||
|
cd spotifyd-${pkgver}
|
||||||
|
cargo build --release --locked --features pulseaudio_backend,dbus_mpris,dbus_keyring,rodio_backend
|
||||||
|
}
|
||||||
|
|
||||||
|
check() {
|
||||||
|
cd spotifyd-${pkgver}
|
||||||
|
cargo test --release --locked --target-dir=target
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd spotifyd-${pkgver}
|
||||||
|
cargo install --locked --root "${pkgdir}"/usr --path "${srcdir}"/${pkgbase}-${pkgver} --features pulseaudio_backend,dbus_mpris,dbus_keyring,rodio_backend
|
||||||
|
rm "${pkgdir}"/usr/{.crates.toml,.crates2.json}
|
||||||
|
#install -Dm644 -t "${pkgdir}"/usr/lib/systemd/user/ "${srcdir}"/${pkgbase}-${pkgver}/contrib/spotifyd.service <--- systemd service removal
|
||||||
|
}
|
985
virtualmin/install.sh
Normal file
985
virtualmin/install.sh
Normal file
@@ -0,0 +1,985 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# shellcheck disable=SC2059 disable=SC2181 disable=SC2154
|
||||||
|
# virtualmin-install.sh
|
||||||
|
# Copyright 2005-2019 Virtualmin, Inc.
|
||||||
|
# Simple script to grab the virtualmin-release and virtualmin-base packages.
|
||||||
|
# The packages do most of the hard work, so this script can be small-ish and
|
||||||
|
# lazy-ish.
|
||||||
|
|
||||||
|
# WARNING: Anything not listed in the currently supported systems list is not
|
||||||
|
# going to work, despite the fact that you might see code that detects your
|
||||||
|
# OS and acts on it. If it isn't in the list, the code is not complete and
|
||||||
|
# will not work. More importantly, the repos that this script uses do not
|
||||||
|
# exist, if the OS isn't listed. Don't even bother trying it.
|
||||||
|
#
|
||||||
|
# A manual install might work for you though.
|
||||||
|
# See here: https://www.virtualmin.com/documentation/installation/manual/
|
||||||
|
|
||||||
|
# License and version
|
||||||
|
SERIAL=GPL
|
||||||
|
KEY=GPL
|
||||||
|
VER=6.2.2
|
||||||
|
vm_version=6
|
||||||
|
|
||||||
|
# Currently supported systems:
|
||||||
|
supported=" CentOS/RHEL Linux 7, and 8 on x86_64
|
||||||
|
Debian 9, and 10 on i386 and amd64
|
||||||
|
Ubuntu 16.04 LTS, 18.04 LTS, and 20.04 LTS on i386 and amd64"
|
||||||
|
|
||||||
|
log=/root/virtualmin-install.log
|
||||||
|
skipyesno=0
|
||||||
|
|
||||||
|
# Print usage info, if --help, set mode, etc.
|
||||||
|
# Temporary colors
|
||||||
|
RED="$(tput setaf 1)"
|
||||||
|
YELLOW="$(tput setaf 3)"
|
||||||
|
CYAN="$(tput setaf 6)"
|
||||||
|
NORMAL="$(tput sgr0)"
|
||||||
|
|
||||||
|
# Set defaults
|
||||||
|
bundle='LAMP' # Other option is LEMP
|
||||||
|
mode='full' # Other option is minimal
|
||||||
|
|
||||||
|
usage () {
|
||||||
|
# shellcheck disable=SC2046
|
||||||
|
printf "Usage: %s %s [options]\\n" "${CYAN}" $(basename "$0")
|
||||||
|
echo
|
||||||
|
echo " If called without arguments, installs Virtualmin."
|
||||||
|
echo
|
||||||
|
printf " ${YELLOW}--uninstall|-u${NORMAL} - Removes all Virtualmin packages (do not use on a production system)\\n"
|
||||||
|
printf " ${YELLOW}--help|-h${NORMAL} - This message\\n"
|
||||||
|
printf " ${YELLOW}--force|-f${NORMAL} - Skip confirmation message\\n"
|
||||||
|
printf " ${YELLOW}--hostname|-n${NORMAL} - Set fully qualified hostname\\n"
|
||||||
|
printf " ${YELLOW}--verbose|-v${NORMAL} - Verbose\\n"
|
||||||
|
printf " ${YELLOW}--setup|-s${NORMAL} - Setup software repositories and exit (no installation or configuration)\\n"
|
||||||
|
printf " ${YELLOW}--minimal|-m${NORMAL} - Install a smaller subset of packages for low-memory/low-resource systems\\n"
|
||||||
|
printf " ${YELLOW}--bundle|-b <name>${NORMAL} - Choose bundle to install (LAMP or LEMP, defaults to LAMP)\\n"
|
||||||
|
printf " ${YELLOW}--disable <feature>${NORMAL} - Disable feature [SCL]\\n"
|
||||||
|
echo
|
||||||
|
}
|
||||||
|
|
||||||
|
while [ "$1" != "" ]; do
|
||||||
|
case $1 in
|
||||||
|
--help|-h)
|
||||||
|
usage
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
--uninstall|-u)
|
||||||
|
shift
|
||||||
|
mode="uninstall"
|
||||||
|
;;
|
||||||
|
--force|-f|--yes|-y)
|
||||||
|
shift
|
||||||
|
skipyesno=1
|
||||||
|
;;
|
||||||
|
--hostname|-n)
|
||||||
|
shift
|
||||||
|
forcehostname=$1
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--verbose|-v)
|
||||||
|
shift
|
||||||
|
VERBOSE=1
|
||||||
|
;;
|
||||||
|
--setup|-s)
|
||||||
|
shift
|
||||||
|
setup_only=1
|
||||||
|
mode='setup'
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
--minimal|-m)
|
||||||
|
shift
|
||||||
|
mode='minimal'
|
||||||
|
;;
|
||||||
|
--disable)
|
||||||
|
shift
|
||||||
|
case "$1" in
|
||||||
|
SCL)
|
||||||
|
shift
|
||||||
|
DISABLE_SCL=1
|
||||||
|
;;
|
||||||
|
EPEL)
|
||||||
|
shift
|
||||||
|
DISABLE_EPEL=1
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
printf "Unknown feature ${YELLOW}$1${NORMAL}: exiting\\n"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
--bundle|-b)
|
||||||
|
shift
|
||||||
|
case "$1" in
|
||||||
|
LAMP)
|
||||||
|
shift
|
||||||
|
bundle='LAMP'
|
||||||
|
;;
|
||||||
|
LEMP)
|
||||||
|
shift
|
||||||
|
bundle='LEMP'
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
printf "Unknown bundle ${YELLOW}$1${NORMAL}: exiting\\n"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
printf "Unrecognized option: $1\\n\\n"
|
||||||
|
usage
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# Make sure Perl is installed
|
||||||
|
printf "Checking for Perl..." >> $log
|
||||||
|
# loop until we've got a Perl or until we can't try any more
|
||||||
|
while true; do
|
||||||
|
perl="$(which perl 2>/dev/null)"
|
||||||
|
if [ -z "$perl" ]; then
|
||||||
|
if [ -x /usr/bin/perl ]; then
|
||||||
|
perl=/usr/bin/perl
|
||||||
|
break
|
||||||
|
elif [ -x /usr/local/bin/perl ]; then
|
||||||
|
perl=/usr/local/bin/perl
|
||||||
|
break
|
||||||
|
elif [ -x /opt/csw/bin/perl ]; then
|
||||||
|
perl=/opt/csw/bin/perl
|
||||||
|
break
|
||||||
|
elif [ "$perl_attempted" = 1 ] ; then
|
||||||
|
printf "${RED}Perl could not be installed - Installation cannot continue.${NORMAL}\\n"
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
# couldn't find Perl, so we need to try to install it
|
||||||
|
echo 'Perl was not found on your system - Virtualmin requires it to run.'
|
||||||
|
echo 'Attempting to install it now...'
|
||||||
|
if [ -x /usr/bin/dnf ]; then
|
||||||
|
dnf -y install perl >> $log
|
||||||
|
elif [ -x /usr/bin/yum ]; then
|
||||||
|
yum -y install perl >> $log
|
||||||
|
elif [ -x /usr/bin/apt-get ]; then
|
||||||
|
apt-get update >> $log
|
||||||
|
apt-get -q -y install perl >> $log
|
||||||
|
fi
|
||||||
|
perl_attempted=1
|
||||||
|
# Loop. Next loop should either break or exit.
|
||||||
|
else
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
printf "found Perl at $perl\\n" >> $log
|
||||||
|
|
||||||
|
# Check for wget or curl or fetch
|
||||||
|
printf "Checking for HTTP client..." >> $log
|
||||||
|
while true; do
|
||||||
|
if [ -x "/usr/bin/wget" ]; then
|
||||||
|
download="/usr/bin/wget -nv"
|
||||||
|
break
|
||||||
|
elif [ -x "/usr/bin/curl" ]; then
|
||||||
|
download="/usr/bin/curl -f -s -L -O"
|
||||||
|
break
|
||||||
|
elif [ -x "/usr/bin/fetch" ]; then
|
||||||
|
download="/usr/bin/fetch"
|
||||||
|
break
|
||||||
|
elif [ "$wget_attempted" = 1 ]; then
|
||||||
|
printf "${RED}No HTTP client available. Could not install wget. Cannot continue.${NORMAL}\\n"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Made it here without finding a downloader, so try to install one
|
||||||
|
wget_attempted=1
|
||||||
|
if [ -x /usr/bin/dnf ]; then
|
||||||
|
dnf -y install wget >> $log
|
||||||
|
elif [ -x /usr/bin/yum ]; then
|
||||||
|
yum -y install wget >> $log
|
||||||
|
elif [ -x /usr/bin/apt-get ]; then
|
||||||
|
apt-get update >> /dev/null
|
||||||
|
apt-get -y -q install wget >> $log
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [ -z "$download" ]; then
|
||||||
|
echo "Tried to install downloader, but failed. Do you have working network and DNS?"
|
||||||
|
fi
|
||||||
|
printf "found %s\\n" "$download" >> $log
|
||||||
|
|
||||||
|
# Check for gpg, debian 10 doesn't install by default!?
|
||||||
|
if [ -x /usr/bin/apt-get ]; then
|
||||||
|
if [ ! -x /usr/bin/gpg ]; then
|
||||||
|
printf "gpg not found, attempting to install..." >> $log
|
||||||
|
apt-get update >> /dev/null
|
||||||
|
apt-get -y -q install gnupg >> $log
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
arch="$(uname -m)"
|
||||||
|
if [ "$arch" = "i686" ]; then
|
||||||
|
arch="i386"
|
||||||
|
fi
|
||||||
|
if [ "$SERIAL" = "GPL" ]; then
|
||||||
|
LOGIN=""
|
||||||
|
PRODUCT="GPL"
|
||||||
|
repopath="gpl/"
|
||||||
|
else
|
||||||
|
LOGIN="$SERIAL:$KEY@"
|
||||||
|
PRODUCT="Professional"
|
||||||
|
repopath=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Virtualmin-provided packages
|
||||||
|
vmgroup="'Virtualmin Core'"
|
||||||
|
debvmpackages="virtualmin-core"
|
||||||
|
deps=
|
||||||
|
sclgroup="'Software Collections PHP 7.2 Environment'"
|
||||||
|
|
||||||
|
# This has to be installed before anything else, so it can be disabled during
|
||||||
|
# install, and turned back on after. This is ridiculous.
|
||||||
|
debpredeps="fail2ban"
|
||||||
|
|
||||||
|
if [ "$mode" = 'full' ]; then
|
||||||
|
if [ "$bundle" = 'LAMP' ]; then
|
||||||
|
rhgroup="'Virtualmin LAMP Stack'"
|
||||||
|
debdeps="postfix virtualmin-lamp-stack"
|
||||||
|
ubudeps="postfix virtualmin-lamp-stack"
|
||||||
|
elif [ "$bundle" = 'LEMP' ]; then
|
||||||
|
rhgroup="'Virtualmin LEMP Stack'"
|
||||||
|
debdeps="postfix php*-fpm virtualmin-lemp-stack"
|
||||||
|
ubudeps="postfix php*-fpm virtualmin-lemp-stack"
|
||||||
|
fi
|
||||||
|
elif [ "$mode" = 'minimal' ]; then
|
||||||
|
if [ "$bundle" = 'LAMP' ]; then
|
||||||
|
rhgroup="'Virtualmin LAMP Stack Minimal'"
|
||||||
|
debdeps="postfix virtualmin-lamp-stack-minimal"
|
||||||
|
ubudeps="postfix virtualmin-lamp-stack-minimal"
|
||||||
|
elif [ "$bundle" = 'LEMP' ]; then
|
||||||
|
rhgroup="'Virtualmin LEMP Stack Minimal'"
|
||||||
|
debdeps="postfix php*-fpm virtualmin-lemp-stack-minimal"
|
||||||
|
ubudeps="postfix php*-fpm virtualmin-lemp-stack-minimal"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Find temp directory
|
||||||
|
if [ -z "$TMPDIR" ]; then
|
||||||
|
TMPDIR=/tmp
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check whether $TMPDIR is mounted noexec (everything will fail, if so)
|
||||||
|
# XXX: This check is imperfect. If $TMPDIR is a full path, but the parent dir
|
||||||
|
# is mounted noexec, this won't catch it.
|
||||||
|
TMPNOEXEC="$(grep $TMPDIR /etc/mtab | grep noexec)"
|
||||||
|
if [ -n "$TMPNOEXEC" ]; then
|
||||||
|
echo "${RED}Fatal:${NORMAL} $TMPDIR directory is mounted noexec. Installation cannot continue."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$tempdir" ]; then
|
||||||
|
tempdir="$TMPDIR/.virtualmin-$$"
|
||||||
|
if [ -e "$tempdir" ]; then
|
||||||
|
rm -rf "$tempdir"
|
||||||
|
fi
|
||||||
|
mkdir "$tempdir"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# "files" subdir for libs
|
||||||
|
mkdir "$tempdir/files"
|
||||||
|
srcdir="$tempdir/files"
|
||||||
|
if ! cd "$srcdir"; then
|
||||||
|
echo "Failed to cd to $srcdir"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Download the slib (source: http://github.com/virtualmin/slib)
|
||||||
|
# Lots of little utility functions.
|
||||||
|
$download https://software.virtualmin.com/lib/slib.sh
|
||||||
|
chmod +x slib.sh
|
||||||
|
# shellcheck disable=SC1091
|
||||||
|
. ./slib.sh
|
||||||
|
|
||||||
|
# Check the serial number and key
|
||||||
|
serial_ok "$SERIAL" "$KEY"
|
||||||
|
# Setup slog
|
||||||
|
# shellcheck disable=SC2034
|
||||||
|
LOG_PATH="$log"
|
||||||
|
# Setup run_ok
|
||||||
|
# shellcheck disable=SC2034
|
||||||
|
RUN_LOG="$log"
|
||||||
|
# Exit on any failure during shell stage
|
||||||
|
# shellcheck disable=SC2034
|
||||||
|
RUN_ERRORS_FATAL=1
|
||||||
|
|
||||||
|
# Console output level; ignore debug level messages.
|
||||||
|
if [ "$VERBOSE" = "1" ]; then
|
||||||
|
# shellcheck disable=SC2034
|
||||||
|
LOG_LEVEL_STDOUT="DEBUG"
|
||||||
|
else
|
||||||
|
# shellcheck disable=SC2034
|
||||||
|
LOG_LEVEL_STDOUT="INFO"
|
||||||
|
fi
|
||||||
|
# Log file output level; catch literally everything.
|
||||||
|
# shellcheck disable=SC2034
|
||||||
|
LOG_LEVEL_LOG="DEBUG"
|
||||||
|
|
||||||
|
# log_fatal calls log_error
|
||||||
|
log_fatal() {
|
||||||
|
log_error "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
remove_virtualmin_release () {
|
||||||
|
# shellcheck disable=SC2154
|
||||||
|
case "$os_type" in
|
||||||
|
"fedora" | "centos" | "rhel" | "amazon" )
|
||||||
|
run_ok "rpm -e virtualmin-release" "Removing virtualmin-release"
|
||||||
|
;;
|
||||||
|
"debian" | "ubuntu" )
|
||||||
|
grep -v "virtualmin" /etc/apt/sources.list > "$tempdir"/sources.list
|
||||||
|
mv "$tempdir"/sources.list /etc/apt/sources.list
|
||||||
|
rm -f /etc/apt/sources.list.d/virtualmin.list
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
fatal () {
|
||||||
|
echo
|
||||||
|
log_fatal "Fatal Error Occurred: $1"
|
||||||
|
printf "${RED}Cannot continue installation.${NORMAL}\\n"
|
||||||
|
remove_virtualmin_release
|
||||||
|
if [ -x "$tempdir" ]; then
|
||||||
|
log_warning "Removing temporary directory and files."
|
||||||
|
rm -rf "$tempdir"
|
||||||
|
fi
|
||||||
|
log_fatal "If you are unsure of what went wrong, you may wish to review the log"
|
||||||
|
log_fatal "in $log"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
success () {
|
||||||
|
log_success "$1 Succeeded."
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to find out if Virtualmin is already installed, so we can get
|
||||||
|
# rid of some of the warning message. Nobody reads it, and frequently
|
||||||
|
# folks run the install script on a production system; either to attempt
|
||||||
|
# to upgrade, or to "fix" something. That's never the right thing.
|
||||||
|
is_installed () {
|
||||||
|
if [ -f /etc/virtualmin-license ]; then
|
||||||
|
# looks like it's been installed before
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
# XXX Probably not installed? Maybe we should remove license on uninstall, too.
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# This function performs a rough uninstallation of Virtualmin
|
||||||
|
# It is neither complete, nor correct, but it almost certainly won't break
|
||||||
|
# anything. It is primarily useful for cleaning up a botched install, so you
|
||||||
|
# can run the installer again.
|
||||||
|
uninstall () {
|
||||||
|
# Very destructive, ask first.
|
||||||
|
echo
|
||||||
|
printf " ${REDBG}WARNING${NORMAL}\\n"
|
||||||
|
echo
|
||||||
|
echo " This operation is very destructive. It removes nearly all of the packages"
|
||||||
|
echo " installed by the Virtualmin installer. Never run this on a production system."
|
||||||
|
echo
|
||||||
|
printf " Continue? (y/n) "
|
||||||
|
if ! yesno; then
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
# This is a crummy way to detect package manager...but going through
|
||||||
|
# half the installer just to get here is even crummier.
|
||||||
|
if which rpm 1>/dev/null 2>&1; then package_type=rpm
|
||||||
|
elif which dpkg 1>/dev/null 2>&1; then package_type=deb
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$package_type" in
|
||||||
|
rpm)
|
||||||
|
yum groupremove -y --setopt="groupremove_leaf_only=true" "Virtualmin Core"
|
||||||
|
yum groupremove -y --setopt="groupremove_leaf_only=true" "Virtualmin LAMP Stack"
|
||||||
|
yum groupremove -y --setopt="groupremove_leaf_only=true" "Virtualmin LEMP Stack"
|
||||||
|
yum groupremove -y --setopt="groupremove_leaf_only=true" "Virtualmin LAMP Stack Minimal"
|
||||||
|
yum groupremove -y --setopt="groupremove_leaf_only=true" "Virtualmin LEMP Stack Minimal"
|
||||||
|
yum remove -y virtualmin-base
|
||||||
|
yum remove -y wbm-virtual-server wbm-virtualmin-htpasswd wbm-virtualmin-dav wbm-virtualmin-mailman wbm-virtualmin-awstats wbm-php-pear wbm-ruby-gems wbm-virtualmin-registrar wbm-virtualmin-init wbm-jailkit wbm-virtualmin-git wbm-virtualmin-slavedns wbm-virtual-server wbm-virtualmin-sqlite wbm-virtualmin-svn
|
||||||
|
yum remove -y wbt-virtual-server-mobile
|
||||||
|
yum remove -y virtualmin-config perl-Term-Spinner-Color
|
||||||
|
yum remove -y webmin usermin awstats
|
||||||
|
yum remove -y nginx
|
||||||
|
yum remove -y fail2ban
|
||||||
|
yum clean all; yum clean all
|
||||||
|
os_type="centos"
|
||||||
|
;;
|
||||||
|
deb)
|
||||||
|
rm -rf /etc/fail2ban/jail.d/00-firewalld.conf
|
||||||
|
rm -f /etc/fail2ban/jail.local
|
||||||
|
apt-get remove --assume-yes --purge virtualmin-base virtualmin-core virtualmin-lamp-stack virtualmin-lemp-stack
|
||||||
|
apt-get remove --assume-yes --purge virtualmin-lamp-stack-minimal virtualmin-lemp-stack-minimal
|
||||||
|
apt-get remove --assume-yes --purge virtualmin-config libterm-spinner-color-perl
|
||||||
|
apt-get remove --assume-yes --purge webmin-virtual-server webmin-virtualmin-htpasswd webmin-virtualmin-git webmin-virtualmin-slavedns webmin-virtualmin-dav webmin-virtualmin-mailman webmin-virtualmin-awstats webmin-php-pear webmin-ruby-gems webmin-virtualmin-registrar webmin-virtualmin-init webmin-jailkit webmin-virtual-server webmin-virtualmin-sqlite webmin-virtualmin-svn
|
||||||
|
apt-get remove --assume-yes --purge webmin-virtual-server-mobile
|
||||||
|
apt-get remove --assume-yes --purge fail2ban
|
||||||
|
apt-get remove --assume-yes --purge apache2*
|
||||||
|
apt-get remove --assume-yes --purge nginx*
|
||||||
|
apt-get remove --assume-yes --purge webmin usermin
|
||||||
|
apt-get autoremove --assume-yes
|
||||||
|
os_type="debian"
|
||||||
|
apt-get clean
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "I don't know how to uninstall on this operating system."
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
echo 'Removing nameserver 127.0.0.1 from /etc/resolv.conf'
|
||||||
|
sed -i '/nameserver 127.0.0.1/g' /etc/resolv.conf
|
||||||
|
echo 'Removing virtualmin repo configuration'
|
||||||
|
remove_virtualmin_release
|
||||||
|
echo "Removing /etc/virtualmin-license, if it exists."
|
||||||
|
rm /etc/virtualmin-license
|
||||||
|
echo "Done. There's probably quite a bit of related packages and such left behind"
|
||||||
|
echo "but all of the Virtualmin-specific packages have been removed."
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
if [ "$mode" = "uninstall" ]; then
|
||||||
|
uninstall
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Calculate disk space requirements (this is a guess, for now)
|
||||||
|
if [ "$mode" = 'minimal' ]; then
|
||||||
|
disk_space_required=500
|
||||||
|
else
|
||||||
|
disk_space_required=650
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Message to display in interactive mode
|
||||||
|
install_msg() {
|
||||||
|
cat <<EOF
|
||||||
|
|
||||||
|
Welcome to the Virtualmin ${GREEN}$PRODUCT${NORMAL} installer, version ${GREEN}$VER${NORMAL}
|
||||||
|
|
||||||
|
This script must be run on a freshly installed supported OS. It does not
|
||||||
|
perform updates or upgrades (use your system package manager) or license
|
||||||
|
changes (use the "virtualmin change-license" command).
|
||||||
|
|
||||||
|
The systems currently supported by install.sh are:
|
||||||
|
|
||||||
|
EOF
|
||||||
|
echo "${CYAN}$supported${NORMAL}"
|
||||||
|
cat <<EOF
|
||||||
|
|
||||||
|
If your OS/version/arch is not listed, installation ${RED}will fail${NORMAL}. More
|
||||||
|
details about the systems supported by the script can be found here:
|
||||||
|
|
||||||
|
${UNDERLINE}https://www.virtualmin.com/os-support${NORMAL}
|
||||||
|
|
||||||
|
The selected package bundle is ${CYAN}${bundle}${NORMAL} and the size of install is
|
||||||
|
${CYAN}${mode}${NORMAL}. It will require up to ${CYAN}${disk_space_required} MB${NORMAL} of disk space.
|
||||||
|
|
||||||
|
Exit and re-run this script with ${CYAN}--help${NORMAL} flag to see available options.
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
printf " Continue? (y/n) "
|
||||||
|
if ! yesno; then
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
if [ "$skipyesno" -ne 1 ] && [ -z "$setup_only" ]; then
|
||||||
|
install_msg
|
||||||
|
fi
|
||||||
|
|
||||||
|
already_installed_msg() {
|
||||||
|
# Double check if installed, just in case above error ignored.
|
||||||
|
if is_installed; then
|
||||||
|
cat <<EOF
|
||||||
|
|
||||||
|
${REDBG}WARNING${NORMAL}
|
||||||
|
|
||||||
|
Virtualmin may already be installed. This can happen if an installation failed,
|
||||||
|
and can be ignored in that case.
|
||||||
|
|
||||||
|
But, if Virtualmin has already successfully installed you should not run this
|
||||||
|
script again! It will cause breakage to your existing configuration.
|
||||||
|
|
||||||
|
Updates and upgrades can be performed from within Virtualmin. To change
|
||||||
|
license details, use the 'virtualmin change-license' command.
|
||||||
|
|
||||||
|
Changing the license never requires re-installation.
|
||||||
|
|
||||||
|
EOF
|
||||||
|
printf " Really Continue? (y/n) "
|
||||||
|
if ! yesno; then
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
if [ "$skipyesno" -ne 1 ] && [ -z "$setup_only" ]; then
|
||||||
|
already_installed_msg
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check memory
|
||||||
|
if [ "$mode" = "full" ]; then
|
||||||
|
minimum_memory=1610613
|
||||||
|
else
|
||||||
|
# minimal mode probably needs less memory to succeed
|
||||||
|
minimum_memory=1048576
|
||||||
|
fi
|
||||||
|
if ! memory_ok "$minimum_memory"; then
|
||||||
|
log_fatal "Too little memory, and unable to create a swap file. Consider adding swap"
|
||||||
|
log_fatal "or more RAM to your system."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check for localhost in /etc/hosts
|
||||||
|
if [ -z "$setup_only" ]; then
|
||||||
|
grep localhost /etc/hosts >/dev/null
|
||||||
|
if [ "$?" != 0 ]; then
|
||||||
|
log_warning "There is no localhost entry in /etc/hosts. This is required, so one will be added."
|
||||||
|
run_ok "echo 127.0.0.1 localhost >> /etc/hosts" "Editing /etc/hosts"
|
||||||
|
if [ "$?" -ne 0 ]; then
|
||||||
|
log_error "Failed to configure a localhost entry in /etc/hosts."
|
||||||
|
log_error "This may cause problems, but we'll try to continue."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# download()
|
||||||
|
# Use $download to download the provided filename or exit with an error.
|
||||||
|
download() {
|
||||||
|
# XXX Check this to make sure run_ok is doing the right thing.
|
||||||
|
# Especially make sure failure gets logged right.
|
||||||
|
# awk magic prints the filename, rather than whole URL
|
||||||
|
download_file=$(echo "$1" |awk -F/ '{print $NF}')
|
||||||
|
run_ok "$download $1" "Downloading $download_file"
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
fatal "Failed to download $1. Cannot continue. Check your network connection and DNS settings."
|
||||||
|
else
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Only root can run this
|
||||||
|
id | grep -i "uid=0(" >/dev/null
|
||||||
|
if [ "$?" != "0" ]; then
|
||||||
|
uname -a | grep -i CYGWIN >/dev/null
|
||||||
|
if [ "$?" != "0" ]; then
|
||||||
|
fatal "${RED}Fatal:${NORMAL} The Virtualmin install script must be run as root"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
log_info "Started installation log in $log"
|
||||||
|
echo
|
||||||
|
if [ -n "$setup_only" ]; then
|
||||||
|
log_debug "Phase 1 of 1: Setup"
|
||||||
|
printf "${YELLOW}▣${NORMAL} Phase ${YELLOW}1${NORMAL} of ${GREEN}1${NORMAL}: Setup\\n"
|
||||||
|
else
|
||||||
|
log_debug "Phase 1 of 3: Setup"
|
||||||
|
printf "${YELLOW}▣${CYAN}□□${NORMAL} Phase ${YELLOW}1${NORMAL} of ${GREEN}3${NORMAL}: Setup\\n"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Print out some details that we gather before logging existed
|
||||||
|
log_debug "Install mode: $mode"
|
||||||
|
log_debug "Product: Virtualmin $PRODUCT"
|
||||||
|
log_debug "install.sh version: $VER"
|
||||||
|
|
||||||
|
# Check for a fully qualified hostname
|
||||||
|
log_debug "Checking for fully qualified hostname..."
|
||||||
|
name="$(hostname -f)"
|
||||||
|
if [ -n "$forcehostname" ]; then set_hostname "$forcehostname"
|
||||||
|
elif ! is_fully_qualified "$name"; then set_hostname
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Insert the serial number and password into /etc/virtualmin-license
|
||||||
|
log_debug "Installing serial number and license key into /etc/virtualmin-license"
|
||||||
|
echo "SerialNumber=$SERIAL" > /etc/virtualmin-license
|
||||||
|
echo "LicenseKey=$KEY" >> /etc/virtualmin-license
|
||||||
|
chmod 700 /etc/virtualmin-license
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
# Populate some distro version globals
|
||||||
|
get_distro
|
||||||
|
log_debug "Operating system name: $os_real"
|
||||||
|
log_debug "Operating system version: $os_version"
|
||||||
|
log_debug "Operating system type: $os_type"
|
||||||
|
log_debug "Operating system major: $os_major_version"
|
||||||
|
|
||||||
|
install_virtualmin_release () {
|
||||||
|
# Grab virtualmin-release from the server
|
||||||
|
log_debug "Configuring package manager for ${os_real} ${os_version}..."
|
||||||
|
case "$os_type" in
|
||||||
|
rhel|centos|fedora|amazon)
|
||||||
|
case "$os_type" in
|
||||||
|
rhel|centos)
|
||||||
|
if [ "$os_major_version" -lt 7 ]; then
|
||||||
|
printf "${RED}${os_type} ${os_version} is not supported by this installer.${NORMAL}\\n"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
fedora)
|
||||||
|
if [ "$os_version" -lt 33 ]; then
|
||||||
|
printf "${RED}${os_type} ${os_version} is not supported by this installer.${NORMAL}\\n"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
ubuntu)
|
||||||
|
if [ "$os_version" != "16.04" ] && [ "$os_version" != "18.04" ] && [ "$os_version" != "20.04" ]; then
|
||||||
|
printf "${RED}${os_type} ${os_version} is not supported by this installer.${NORMAL}\\n"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
debian)
|
||||||
|
if [ "$os_major_version" -lt 9 ]; then
|
||||||
|
printf "${RED}${os_type} ${os_version} is not supported by this installer.${NORMAL}\\n"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
printf "${RED}This OS/version is not recognized. Can't continue.${NORMAL}\\n"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
if [ -x /usr/sbin/setenforce ]; then
|
||||||
|
log_debug "Disabling SELinux during installation..."
|
||||||
|
if /usr/sbin/setenforce 0; then log_debug " setenforce 0 succeeded"
|
||||||
|
else log_debug " setenforce 0 failed: $?"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
package_type="rpm"
|
||||||
|
if which dnf 1>/dev/null 2>&1; then
|
||||||
|
install="dnf -y install"
|
||||||
|
install_cmd="dnf"
|
||||||
|
install_group="dnf -y --quiet group install --setopt=group_package_types=mandatory,default"
|
||||||
|
install_config_manager="dnf config-manager"
|
||||||
|
if ! $install_config_manager 1>/dev/null 2>&1; then
|
||||||
|
run_ok "$install dnf-plugins-core"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
install="/usr/bin/yum -y install"
|
||||||
|
install_cmd="/usr/bin/yum"
|
||||||
|
if [ "$os_major_version" -ge 7 ]; then
|
||||||
|
run_ok "yum --quiet groups mark convert" "Updating yum Groups"
|
||||||
|
fi
|
||||||
|
install_group="yum -y --quiet groupinstall --setopt=group_package_types=mandatory,default"
|
||||||
|
install_config_manager="yum-config-manager"
|
||||||
|
fi
|
||||||
|
download "https://${LOGIN}software.virtualmin.com/vm/${vm_version}/${repopath}${os_type}/${os_major_version}/${arch}/virtualmin-release-latest.noarch.rpm"
|
||||||
|
run_ok "rpm -U --replacepkgs --quiet virtualmin-release-latest.noarch.rpm" "Installing virtualmin-release package"
|
||||||
|
# XXX This weirdly only seems necessary on CentOS 8, but harmless
|
||||||
|
# elsewhere.
|
||||||
|
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-webmin
|
||||||
|
;;
|
||||||
|
debian | ubuntu)
|
||||||
|
package_type="deb"
|
||||||
|
if [ "$os_type" = "ubuntu" ]; then
|
||||||
|
deps="$ubudeps"
|
||||||
|
case "$os_version" in
|
||||||
|
16.04*)
|
||||||
|
repos="virtualmin-xenial virtualmin-universal"
|
||||||
|
;;
|
||||||
|
18.04*)
|
||||||
|
repos="virtualmin-bionic virtualmin-universal"
|
||||||
|
;;
|
||||||
|
20.04*)
|
||||||
|
repos="virtualmin-focal virtualmin-universal"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
deps="$debdeps"
|
||||||
|
case "$os_version" in
|
||||||
|
8*)
|
||||||
|
run_ok "apt-get install --assume-yes apt-transport-https lsb-release ca-certificates" "Installing extra dependencies for Debian 8"
|
||||||
|
download 'https://packages.sury.org/php/apt.gpg'
|
||||||
|
run_ok "cp apt.gpg /etc/apt/trusted.gpg.d/php.gpg" "Adding GPG key for PHP7 packages"
|
||||||
|
echo "deb http://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
|
||||||
|
repos="virtualmin-jessie virtualmin-universal"
|
||||||
|
;;
|
||||||
|
9*)
|
||||||
|
repos="virtualmin-stretch virtualmin-universal"
|
||||||
|
;;
|
||||||
|
10*)
|
||||||
|
repos="virtualmin-buster virtualmin-universal"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
log_debug "apt-get repos: ${repos}"
|
||||||
|
if [ -z "$repos" ]; then # Probably unstable with no version number
|
||||||
|
log_fatal "No repos available for this OS. Are you running unstable/testing?"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
# Remove any existing repo config, in case it's a reinstall
|
||||||
|
remove_virtualmin_release
|
||||||
|
for repo in $repos; do
|
||||||
|
printf "deb http://${LOGIN}software.virtualmin.com/vm/${vm_version}/${repopath}apt ${repo} main\\n" >> /etc/apt/sources.list.d/virtualmin.list
|
||||||
|
done
|
||||||
|
# Install our keys
|
||||||
|
log_debug "Installing Webmin and Virtualmin package signing keys..."
|
||||||
|
download "https://software.virtualmin.com/lib/RPM-GPG-KEY-virtualmin-6"
|
||||||
|
download "https://software.virtualmin.com/lib/RPM-GPG-KEY-webmin"
|
||||||
|
run_ok "apt-key add RPM-GPG-KEY-virtualmin-6" "Installing Virtualmin 6 key"
|
||||||
|
run_ok "apt-key add RPM-GPG-KEY-webmin" "Installing Webmin key"
|
||||||
|
run_ok "apt-get update" "Updating apt metadata"
|
||||||
|
run_ok "apt-get update" "Downloading repository metadata"
|
||||||
|
# Make sure universe repos are available
|
||||||
|
# XXX Test to make sure this run_ok syntax works as expected (with single quotes inside double)
|
||||||
|
if [ $os_type = "ubuntu" ]; then
|
||||||
|
if [ -x "/bin/add-apt-repository" ] || [ -x "/usr/bin/add-apt-repository" ]; then
|
||||||
|
run_ok "add-apt-repository universe" \
|
||||||
|
"Enabling universe repositories, if not already available"
|
||||||
|
else
|
||||||
|
run_ok "sed -ie '/backports/b; s/#*[ ]*deb \\(.*\\) universe$/deb \\1 universe/' /etc/apt/sources.list" \
|
||||||
|
"Enabling universe repositories, if not already available"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
# XXX Is this still enabled by default on Debian/Ubuntu systems?
|
||||||
|
run_ok "sed -ie 's/^deb cdrom:/#deb cdrom:/' /etc/apt/sources.list" "Disabling cdrom: repositories"
|
||||||
|
install="DEBIAN_FRONTEND='noninteractive' /usr/bin/apt-get --quiet --assume-yes --install-recommends -o Dpkg::Options::='--force-confdef' -o Dpkg::Options::='--force-confold' -o Dpkg::Pre-Install-Pkgs::='/usr/sbin/dpkg-preconfigure --apt' install"
|
||||||
|
#export DEBIAN_FRONTEND=noninteractive
|
||||||
|
install_updates="$install $deps"
|
||||||
|
run_ok "apt-get clean" "Cleaning out old metadata"
|
||||||
|
sed -i "s/\\(deb[[:space:]]file.*\\)/#\\1/" /etc/apt/sources.list
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
log_error " Your OS is not currently supported by this installer."
|
||||||
|
log_error " You can probably run Virtualmin Professional on your system, anyway,"
|
||||||
|
log_error " but you'll have to install it using the manual installation process."
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
if [ -n "$setup_only" ]; then
|
||||||
|
if install_virtualmin_release; then
|
||||||
|
log_success "Repository configuration successful. You can now install Virtualmin"
|
||||||
|
log_success "components using your OS package manager."
|
||||||
|
else
|
||||||
|
log_error "Errors occurred during setup of Virtualmin software repositories. You may find more"
|
||||||
|
log_error "information in ${RUN_LOG}."
|
||||||
|
fi
|
||||||
|
exit $?
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Install Functions
|
||||||
|
install_with_apt () {
|
||||||
|
# Install Webmin first, because it needs to be already done for the deps
|
||||||
|
run_ok "$install webmin" "Installing Webmin"
|
||||||
|
run_ok "$install usermin" "Installing Usermin"
|
||||||
|
for d in $debpredeps; do
|
||||||
|
run_ok "$install $d" "Installing $d"
|
||||||
|
done
|
||||||
|
if [ $bundle = 'LEMP' ]; then
|
||||||
|
# This is bloody awful. I can't believe how fragile dpkg is here.
|
||||||
|
for s in fail2ban ipchains apache2; do
|
||||||
|
systemctl stop "$s">>${RUN_LOG} 2>&1
|
||||||
|
systemctl disable "$s">>${RUN_LOG} 2>&1
|
||||||
|
done
|
||||||
|
run_ok 'apt-get remove --assume-yes --purge apache2* php*' 'Removing apache2 (if installed) before LEMP installation.'
|
||||||
|
run_ok 'apt-get autoremove --assume-yes' 'Removing unneeded packages that could conflict with LEMP stack.'
|
||||||
|
run_ok "$install nginx-common" "Installing nginx-common"
|
||||||
|
sed -i 's/listen \[::\]:80 default_server;/#listen \[::\]:80 default_server;/' /etc/nginx/sites-available/default
|
||||||
|
else
|
||||||
|
# This is bloody awful. I can't believe how fragile dpkg is here.
|
||||||
|
for s in fail2ban nginx; do
|
||||||
|
systemctl stop "$s">>${RUN_LOG} 2>&1
|
||||||
|
systemctl disable "$s">>${RUN_LOG} 2>&1
|
||||||
|
done
|
||||||
|
run_ok 'apt-get remove --assume-yes --purge nginx* php*' 'Removing nginx (if installed) before LAMP installation.'
|
||||||
|
run_ok 'apt-get autoremove --assume-yes' 'Removing unneeded packages that could conflict with LAMP stack.'
|
||||||
|
fi
|
||||||
|
for d in ${deps}; do
|
||||||
|
run_ok "$install ${d}" "Installing $d"
|
||||||
|
done
|
||||||
|
run_ok "$install ${debvmpackages}" "Installing Virtualmin and plugins"
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
log_warning "apt-get seems to have failed. Are you sure your OS and version is supported?"
|
||||||
|
log_warning "https://www.virtualmin.com/os-support"
|
||||||
|
fatal "Installation failed: $?"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Make sure the time is set properly
|
||||||
|
/usr/sbin/ntpdate-debian 2>/dev/null 2>&1
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
install_with_yum () {
|
||||||
|
# RHEL 8 specific setup
|
||||||
|
if [ "$os_major_version" -ge 8 ] && [ "$os_type" = "rhel" ]; then
|
||||||
|
# Important Perl packages are now hidden in CodeReady repo
|
||||||
|
run_ok "$install_config_manager --set-enabled codeready-builder-for-rhel-$os_major_version-x86_64-rpms" "Enabling Red Hat CodeReady package repository"
|
||||||
|
run_ok "$install https://dl.fedoraproject.org/pub/epel/epel-release-latest-$os_major_version.noarch.rpm" "Installing EPEL $os_major_version release package"
|
||||||
|
# RHEL 7 specific setup
|
||||||
|
elif [ "$os_major_version" -eq 7 ] && [ "$os_type" = "rhel" ]; then
|
||||||
|
run_ok "$install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm" "Installing EPEL 7 release package"
|
||||||
|
# install extras from EPEL and SCL
|
||||||
|
elif [ "$os_type" = "centos" ]; then
|
||||||
|
install_epel_release
|
||||||
|
if [ "$os_major_version" -lt 8 ]; then
|
||||||
|
# No SCL on CentOS 8
|
||||||
|
install_scl_php
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Important Perl packages are now hidden in PowerTools repo
|
||||||
|
if [ "$os_major_version" -eq 8 ] && [ "$os_type" = "centos" ]; then
|
||||||
|
# Detect PowerTools repo name
|
||||||
|
powertools="PowerTools"
|
||||||
|
centos_stream=$(dnf repolist all | grep "^powertools")
|
||||||
|
if [ ! -z "$centos_stream" ]; then
|
||||||
|
powertools="powertools"
|
||||||
|
fi
|
||||||
|
run_ok "$install_config_manager --set-enabled $powertools" "Enabling PowerTools package repository"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# XXX This is so stupid. Why does yum insist on extra commands?
|
||||||
|
if [ "$os_major_version" -eq 7 ]; then
|
||||||
|
run_ok "yum --quiet groups mark install $rhgroup" "Marking $rhgroup for install"
|
||||||
|
run_ok "yum --quiet groups mark install $vmgroup" "Marking $vmgroup for install"
|
||||||
|
fi
|
||||||
|
run_ok "$install_group $rhgroup" "Installing dependencies and system packages"
|
||||||
|
run_ok "$install_group $vmgroup" "Installing Virtualmin and all related packages"
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
fatal "Installation failed: $?"
|
||||||
|
fi
|
||||||
|
|
||||||
|
run_ok "$install_cmd clean all" "Cleaning up software repo metadata"
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
install_virtualmin () {
|
||||||
|
case "$package_type" in
|
||||||
|
rpm)
|
||||||
|
install_with_yum
|
||||||
|
;;
|
||||||
|
deb)
|
||||||
|
install_with_apt
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
install_with_tar
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return $?
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
install_epel_release () {
|
||||||
|
if [ -z "$DISABLE_EPEL" ]; then
|
||||||
|
run_ok "$install epel-release" "Installing EPEL release package"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
install_scl_php () {
|
||||||
|
if [ -z "$DISABLE_SCL" ]; then
|
||||||
|
run_ok "$install yum-utils" "Installing yum-utils"
|
||||||
|
run_ok "$install_config_manager --enable extras >/dev/null" "Enabling extras repository"
|
||||||
|
run_ok "$install scl-utils" "Installing scl-utils"
|
||||||
|
if [ "${os_type}" = "centos" ]; then
|
||||||
|
run_ok "$install centos-release-scl" "Install Software Collections release package"
|
||||||
|
elif [ "${os_type}" = "rhel" ]; then
|
||||||
|
run_ok "$install_config_manager --enable rhel-server-rhscl-${os_major_version}-rpms" "Enabling Server Software Collection"
|
||||||
|
fi
|
||||||
|
run_ok "$install_group $sclgroup" "Installing PHP7"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# virtualmin-release only exists for one platform...but it's as good a function
|
||||||
|
# name as any, I guess. Should just be "setup_repositories" or something.
|
||||||
|
errors=$((0))
|
||||||
|
install_virtualmin_release
|
||||||
|
echo
|
||||||
|
log_debug "Phase 2 of 3: Installation"
|
||||||
|
printf "${GREEN}▣${YELLOW}▣${CYAN}□${NORMAL} Phase ${YELLOW}2${NORMAL} of ${GREEN}3${NORMAL}: Installation\\n"
|
||||||
|
install_virtualmin
|
||||||
|
if [ "$?" != "0" ]; then
|
||||||
|
errorlist="${errorlist} ${YELLOW}◉${NORMAL} Package installation returned an error.\\n"
|
||||||
|
errors=$((errors + 1))
|
||||||
|
fi
|
||||||
|
|
||||||
|
# We want to make sure we're running our version of packages if we have
|
||||||
|
# our own version. There's no good way to do this, but we'll
|
||||||
|
run_ok "$install_updates" "Installing updates to Virtualmin-related packages"
|
||||||
|
if [ "$?" != "0" ]; then
|
||||||
|
errorlist="${errorlist} ${YELLOW}◉${NORMAL} Installing updates returned an error.\\n"
|
||||||
|
errors=$((errors + 1))
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Reap any clingy processes (like spinner forks)
|
||||||
|
# get the parent pids (as those are the problem)
|
||||||
|
allpids="$(ps -o pid= --ppid $$) $allpids"
|
||||||
|
for pid in $allpids; do
|
||||||
|
kill "$pid" 1>/dev/null 2>&1
|
||||||
|
done
|
||||||
|
|
||||||
|
# Final step is configuration. Wait here for a moment, hopefully letting any
|
||||||
|
# apt processes disappear before we start, as they're huge and memory is a
|
||||||
|
# problem. XXX This is hacky. I'm not sure what's really causing random fails.
|
||||||
|
sleep 1
|
||||||
|
echo
|
||||||
|
log_debug "Phase 3 of 3: Configuration"
|
||||||
|
printf "${GREEN}▣▣${YELLOW}▣${NORMAL} Phase ${YELLOW}3${NORMAL} of ${GREEN}3${NORMAL}: Configuration\\n"
|
||||||
|
if [ "$mode" = "minimal" ]; then
|
||||||
|
bundle="Mini${bundle}"
|
||||||
|
fi
|
||||||
|
virtualmin-config-system --bundle "$bundle"
|
||||||
|
if [ "$?" != "0" ]; then
|
||||||
|
errorlist="${errorlist} ${YELLOW}◉${NORMAL} Postinstall configuration returned an error.\\n"
|
||||||
|
errors=$((errors + 1))
|
||||||
|
fi
|
||||||
|
config_system_pid=$!
|
||||||
|
|
||||||
|
# Functions that are used in the OS specific modifications section
|
||||||
|
disable_selinux () {
|
||||||
|
seconfigfiles="/etc/selinux/config /etc/sysconfig/selinux"
|
||||||
|
for i in $seconfigfiles; do
|
||||||
|
if [ -e "$i" ]; then
|
||||||
|
perl -pi -e 's/^SELINUX=.*/SELINUX=disabled/' "$i"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# Changes that are specific to OS
|
||||||
|
case "$os_type" in
|
||||||
|
"fedora" | "centos" | "rhel" | "amazon" )
|
||||||
|
disable_selinux
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
# kill the virtualmin config-system command, if it's still running
|
||||||
|
kill "$config_system_pid" 1>/dev/null 2>&1
|
||||||
|
# Make sure the cursor is back (if spinners misbehaved)
|
||||||
|
tput cnorm
|
||||||
|
|
||||||
|
|
||||||
|
printf "${GREEN}▣▣▣${NORMAL} Cleaning up\\n"
|
||||||
|
# Cleanup the tmp files
|
||||||
|
if [ "$tempdir" != "" ] && [ "$tempdir" != "/" ]; then
|
||||||
|
log_debug "Cleaning up temporary files in $tempdir."
|
||||||
|
find "$tempdir" -delete
|
||||||
|
else
|
||||||
|
log_error "Could not safely clean up temporary files because TMPDIR set to $tempdir."
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$QUOTA_FAILED" ]; then
|
||||||
|
log_warning "Quotas were not configurable. A reboot may be required. Or, if this is"
|
||||||
|
log_warning "a VM, configuration may be required at the host level."
|
||||||
|
fi
|
||||||
|
echo
|
||||||
|
if [ $errors -eq "0" ]; then
|
||||||
|
hostname=$(hostname -f)
|
||||||
|
detect_ip
|
||||||
|
log_success "Installation Complete!"
|
||||||
|
log_success "If there were no errors above, Virtualmin should be ready"
|
||||||
|
log_success "to configure at https://${hostname}:10000 (or https://${address}:10000)."
|
||||||
|
log_success "You'll receive a security warning in your browser on your first visit."
|
||||||
|
else
|
||||||
|
log_warning "The following errors occurred during installation:"
|
||||||
|
echo
|
||||||
|
printf "${errorlist}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
18
webmin-openrc/PKGBUILD
Normal file
18
webmin-openrc/PKGBUILD
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
# Contributor linuxer <https://gitea.artixlinux.org/linuxer>
|
||||||
|
|
||||||
|
pkgname=webmin-openrc
|
||||||
|
pkgdesc="Webmin OpenRC init script"
|
||||||
|
alias=webmin
|
||||||
|
pkgver=20210122
|
||||||
|
pkgrel=1
|
||||||
|
arch=('any')
|
||||||
|
url="https://gitea.artixlinux.org/linuxer/"
|
||||||
|
license=('GPL')
|
||||||
|
groups=()
|
||||||
|
depends=('openrc' 'webmin')
|
||||||
|
source=("webmin.initd")
|
||||||
|
b2sums=('90e603fd356f33175c21609d0e8f072cea632eb022bb8873b45821806bc18f320a8fa03bfb455231c904946b79abefd6a0d5caa7a94b86983226f5f66dddb9e6')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
install -Dm 755 webmin.initd "$pkgdir/etc/init.d/webmin"
|
||||||
|
}
|
14
webmin-openrc/webmin.initd
Normal file
14
webmin-openrc/webmin.initd
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
#!/usr/bin/openrc-run
|
||||||
|
|
||||||
|
pidfile="/run/webmin.pid"
|
||||||
|
command="/etc/webmin/start"
|
||||||
|
command_background=true
|
||||||
|
|
||||||
|
restart() {
|
||||||
|
/etc/webmin/reload
|
||||||
|
}
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
/etc/webmin/stop
|
||||||
|
}
|
||||||
|
|
21
webmin-runit/PKGBUILD
Normal file
21
webmin-runit/PKGBUILD
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# Contributor: linuxer <linuxer@artixlinux.org>
|
||||||
|
|
||||||
|
pkgname=webmin-runit
|
||||||
|
_alias=webmin
|
||||||
|
pkgver=20210122
|
||||||
|
pkgrel=2
|
||||||
|
pkgdesc="Webmin Runit init script"
|
||||||
|
arch=('any')
|
||||||
|
url="https://gitea.artixlinux.org/linuxer/"
|
||||||
|
license=('GPL')
|
||||||
|
depends=('webmin' 'runit')
|
||||||
|
source=("webmin.finish"
|
||||||
|
"webmin.run")
|
||||||
|
b2sums=('954cf618335789793a76a0b658c105c4d6be2b8a6dc64d00db4e55ff651d8fb51afe4a4d9d66fac5e194b64f00687ae0644804b4a3b894a1d306400185ec1bfe'
|
||||||
|
'079ca2953ad3ba23e2760009bc0fec2520a607789cf89c4923a1f6958a75b1c5d9c9cd7e446119f391a7581985717abde0718b2b3489618ee79c437aaf2ce410')
|
||||||
|
|
||||||
|
|
||||||
|
package() {
|
||||||
|
install -Dm 755 "webmin.finish" $pkgdir/etc/runit/sv/$_alias/finish
|
||||||
|
install -Dm 755 "webmin.run" $pkgdir/etc/runit/sv/$_alias/run
|
||||||
|
}
|
3
webmin-runit/webmin.finish
Executable file
3
webmin-runit/webmin.finish
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
exec /etc/webmin/stop
|
5
webmin-runit/webmin.run
Executable file
5
webmin-runit/webmin.run
Executable file
@@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
/etc/webmin/start
|
||||||
|
/etc/webmin/reload
|
||||||
|
exec pause
|
23
webmin-s6/PKGBUILD
Normal file
23
webmin-s6/PKGBUILD
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
# Contributor: linuxer <linuxer@artixlinux.org>
|
||||||
|
|
||||||
|
pkgname=webmin-s6
|
||||||
|
_alias=webmin
|
||||||
|
pkgver=20210122
|
||||||
|
pkgrel=2
|
||||||
|
pkgdesc="Webmin s6 init script"
|
||||||
|
arch=('any')
|
||||||
|
url="https://gitea.artixlinux.org/linuxer/"
|
||||||
|
license=('GPL')
|
||||||
|
depends=('webmin' 's6')
|
||||||
|
source=("webmin.type"
|
||||||
|
"webmin.run"
|
||||||
|
"webmin.finish")
|
||||||
|
b2sums=('cdcdfdfe8033b1b2ac812951b70b09b115c1d7b7de4ed0ea0808072414753faf98ca846a171f22ab788cc9e1564456354f953941d4fba8056bc650f41dcde8dc'
|
||||||
|
'8032867748c2327f0d4f0deeebd4521b3c4dbb761813038ba9a9a4235bd0ecd74552347b374a9b95411df440bb68eb44b1902b81e7a9ef14a04a3c5e2342ebc7'
|
||||||
|
'cc885b9d0b5c8c8467230061177d29d88166b7cbfc0a415957a2de56dd20af182bbf9fa0f046e539a13a5c30660b29abdc5df7cebd899d79e3703a6e1f29bf06')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
install -Dm 755 webmin.run $pkgdir/etc/s6/sv/$_alias/run
|
||||||
|
install -Dm 755 webmin.type $pkgdir/etc/s6/sv/$_alias/type
|
||||||
|
install -Dm 755 webmin.finish $pkgdir/etc/s6/sv/$_alias/finish
|
||||||
|
}
|
2
webmin-s6/webmin.finish
Executable file
2
webmin-s6/webmin.finish
Executable file
@@ -0,0 +1,2 @@
|
|||||||
|
#!/usr/bin/execlineb -P
|
||||||
|
exec /etc/webmin/stop
|
3
webmin-s6/webmin.run
Executable file
3
webmin-s6/webmin.run
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
#!/usr/bin/execlineb -P
|
||||||
|
foreground { /etc/webmin/start }
|
||||||
|
exec /etc/webmin/reload
|
1
webmin-s6/webmin.type
Normal file
1
webmin-s6/webmin.type
Normal file
@@ -0,0 +1 @@
|
|||||||
|
oneshot
|
193
webmin/PKGBUILD
Normal file
193
webmin/PKGBUILD
Normal file
@@ -0,0 +1,193 @@
|
|||||||
|
# Maintainer: Amish <contact at via dot aur>
|
||||||
|
# Contributor: Daniel Milde <daniel at milde dot cz>
|
||||||
|
# Contributor: Felix Schindler <ftschindler at aur dot archlinux>
|
||||||
|
|
||||||
|
pkgname=webmin
|
||||||
|
pkgver=1.970
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="A web-based administration interface for Unix systems"
|
||||||
|
arch=(any)
|
||||||
|
license=('custom:webmin')
|
||||||
|
url="http://www.webmin.com/"
|
||||||
|
depends=('perl' 'perl-net-ssleay' 'perl-authen-pam' 'perl-encode-detect' 'openssl')
|
||||||
|
optdepends=('perl-socket6: For IPv6 support')
|
||||||
|
backup=('etc/webmin/miniserv.conf' 'etc/webmin/miniserv.users' \
|
||||||
|
'etc/webmin/config' 'etc/webmin/webmin.acl' \
|
||||||
|
'etc/webmin/acl/config' \
|
||||||
|
'etc/webmin/adsl-client/config' \
|
||||||
|
'etc/webmin/ajaxterm/config' \
|
||||||
|
'etc/webmin/apache/config' \
|
||||||
|
'etc/webmin/at/config' \
|
||||||
|
'etc/webmin/backup-config/config' \
|
||||||
|
'etc/webmin/bacula-backup/config' \
|
||||||
|
'etc/webmin/bandwidth/config' \
|
||||||
|
'etc/webmin/bind8/config' \
|
||||||
|
'etc/webmin/change-user/config' \
|
||||||
|
'etc/webmin/cluster-copy/config' \
|
||||||
|
'etc/webmin/cluster-cron/config' \
|
||||||
|
'etc/webmin/cluster-passwd/config' \
|
||||||
|
'etc/webmin/cluster-shell/config' \
|
||||||
|
'etc/webmin/cluster-software/config' \
|
||||||
|
'etc/webmin/cluster-useradmin/config' \
|
||||||
|
'etc/webmin/cluster-usermin/config' \
|
||||||
|
'etc/webmin/cluster-webmin/config' \
|
||||||
|
'etc/webmin/cron/config' \
|
||||||
|
'etc/webmin/custom/config' \
|
||||||
|
'etc/webmin/dhcpd/config' \
|
||||||
|
'etc/webmin/dovecot/config' \
|
||||||
|
'etc/webmin/exim/config' \
|
||||||
|
'etc/webmin/exports/config' \
|
||||||
|
'etc/webmin/fail2ban/config' \
|
||||||
|
'etc/webmin/fdisk/config' \
|
||||||
|
'etc/webmin/fetchmail/config' \
|
||||||
|
'etc/webmin/filemin/config' \
|
||||||
|
'etc/webmin/filter/config' \
|
||||||
|
'etc/webmin/firewall/config' \
|
||||||
|
'etc/webmin/firewall6/config' \
|
||||||
|
'etc/webmin/firewalld/config' \
|
||||||
|
'etc/webmin/fsdump/config' \
|
||||||
|
'etc/webmin/heartbeat/config' \
|
||||||
|
'etc/webmin/htaccess-htpasswd/config' \
|
||||||
|
'etc/webmin/idmapd/config' \
|
||||||
|
'etc/webmin/init/config' \
|
||||||
|
'etc/webmin/inittab/config' \
|
||||||
|
'etc/webmin/ipsec/config' \
|
||||||
|
'etc/webmin/iscsi-client/config' \
|
||||||
|
'etc/webmin/iscsi-server/config' \
|
||||||
|
'etc/webmin/iscsi-target/config' \
|
||||||
|
'etc/webmin/iscsi-tgtd/config' \
|
||||||
|
'etc/webmin/jabber/config' \
|
||||||
|
'etc/webmin/krb5/config' \
|
||||||
|
'etc/webmin/ldap-client/config' \
|
||||||
|
'etc/webmin/ldap-server/config' \
|
||||||
|
'etc/webmin/ldap-useradmin/config' \
|
||||||
|
'etc/webmin/logrotate/config' \
|
||||||
|
'etc/webmin/lpadmin/config' \
|
||||||
|
'etc/webmin/lvm/config' \
|
||||||
|
'etc/webmin/mailboxes/config' \
|
||||||
|
'etc/webmin/mailcap/config' \
|
||||||
|
'etc/webmin/man/config' \
|
||||||
|
'etc/webmin/mon/config' \
|
||||||
|
'etc/webmin/mount/config' \
|
||||||
|
'etc/webmin/mysql/config' \
|
||||||
|
'etc/webmin/net/config' \
|
||||||
|
'etc/webmin/nis/config' \
|
||||||
|
'etc/webmin/openslp/config' \
|
||||||
|
'etc/webmin/pam/config' \
|
||||||
|
'etc/webmin/pap/config' \
|
||||||
|
'etc/webmin/passwd/config' \
|
||||||
|
'etc/webmin/phpini/config' \
|
||||||
|
'etc/webmin/postfix/config' \
|
||||||
|
'etc/webmin/postgresql/config' \
|
||||||
|
'etc/webmin/ppp-client/config' \
|
||||||
|
'etc/webmin/pptp-client/config' \
|
||||||
|
'etc/webmin/pptp-server/config' \
|
||||||
|
'etc/webmin/proc/config' \
|
||||||
|
'etc/webmin/procmail/config' \
|
||||||
|
'etc/webmin/proftpd/config' \
|
||||||
|
'etc/webmin/qmailadmin/config' \
|
||||||
|
'etc/webmin/quota/config' \
|
||||||
|
'etc/webmin/raid/config' \
|
||||||
|
'etc/webmin/samba/config' \
|
||||||
|
'etc/webmin/sarg/config' \
|
||||||
|
'etc/webmin/sendmail/config' \
|
||||||
|
'etc/webmin/servers/config' \
|
||||||
|
'etc/webmin/shell/config' \
|
||||||
|
'etc/webmin/shorewall/config' \
|
||||||
|
'etc/webmin/shorewall6/config' \
|
||||||
|
'etc/webmin/smart-status/config' \
|
||||||
|
'etc/webmin/spam/config' \
|
||||||
|
'etc/webmin/squid/config' \
|
||||||
|
'etc/webmin/sshd/config' \
|
||||||
|
'etc/webmin/status/config' \
|
||||||
|
'etc/webmin/stunnel/config' \
|
||||||
|
'etc/webmin/syslog/config' \
|
||||||
|
'etc/webmin/system-status/config' \
|
||||||
|
'etc/webmin/tcpwrappers/config' \
|
||||||
|
'etc/webmin/telnet/config' \
|
||||||
|
'etc/webmin/time/config' \
|
||||||
|
'etc/webmin/tunnel/config' \
|
||||||
|
'etc/webmin/updown/config' \
|
||||||
|
'etc/webmin/useradmin/config' \
|
||||||
|
'etc/webmin/usermin/config' \
|
||||||
|
'etc/webmin/vgetty/config' \
|
||||||
|
'etc/webmin/webalizer/config' \
|
||||||
|
'etc/webmin/webmin/config' \
|
||||||
|
'etc/webmin/webmincron/config' \
|
||||||
|
'etc/webmin/webminlog/config' \
|
||||||
|
'etc/webmin/wuftpd/config' \
|
||||||
|
'etc/webmin/xinetd/config' \
|
||||||
|
'etc/logrotate.d/webmin' \
|
||||||
|
'etc/pam.d/webmin' )
|
||||||
|
source=("http://downloads.sourceforge.net/sourceforge/webadmin/$pkgname-$pkgver.tar.gz"
|
||||||
|
setup-pre.sh
|
||||||
|
setup-post.sh
|
||||||
|
webmin-config.tar.bz2
|
||||||
|
webmin.pam
|
||||||
|
webmin.logrotate
|
||||||
|
webmin.tmpfiles)
|
||||||
|
# webmin.service) <- get rid of systemd installation
|
||||||
|
options=(!strip !zipman)
|
||||||
|
|
||||||
|
prepare() {
|
||||||
|
cd "$srcdir"/$pkgname-$pkgver
|
||||||
|
|
||||||
|
# remove modules that we do not support and stuff that is not needed
|
||||||
|
rm -r {bsdexports,bsdfdisk,cpan,dfsadmin,format,grub,hpuxexports,inetd,ipfilter,ipfw,package-updates,rbac,sgiexports,smf,software,syslog-ng,zones}
|
||||||
|
rm mount/freebsd-mounts* mount/netbsd-mounts* mount/openbsd-mounts* mount/macos-mounts*
|
||||||
|
rm webmin-gentoo-init webmin-init webmin-daemon
|
||||||
|
|
||||||
|
# dont allow webmin to update itself, must update via pacman
|
||||||
|
rm {webmin,usermin}/{update.cgi,update.pl,update_sched.cgi,upgrade.cgi,edit_upgrade.cgi,install_mod.cgi,delete_mod.cgi,install_theme.cgi}
|
||||||
|
|
||||||
|
# remove config files for other distros, make Arch linux related additions
|
||||||
|
find . ! -name 'config-generic-linux' ! -name 'config-ALL-linux' ! -name 'config-lib.pl' -name 'config-*' -exec rm '{}' \+
|
||||||
|
echo 'Archlinux Any version generic-linux * -d "/etc/pacman.d"' > os_list.txt
|
||||||
|
cp -rp "$srcdir"/webmin-config/* "$srcdir"/$pkgname-$pkgver/
|
||||||
|
install -m 700 "$srcdir"/setup-{pre,post}.sh "$srcdir"/$pkgname-$pkgver/
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
# create basic directories
|
||||||
|
mkdir -p "$pkgdir"/{etc,opt,var/log}
|
||||||
|
|
||||||
|
export archpkgdir="$pkgdir"
|
||||||
|
cd "$srcdir"/$pkgname-$pkgver
|
||||||
|
|
||||||
|
# new version of iptables do not allow to run as non-root user
|
||||||
|
# so is_installed() check fails, so we avoid it in setup.sh
|
||||||
|
mv firewall/install_check{,.tmp}.pl
|
||||||
|
mv firewall6/install_check{,.tmp}.pl
|
||||||
|
"$srcdir"/$pkgname-$pkgver/setup.sh "$pkgdir"/opt/webmin
|
||||||
|
|
||||||
|
# move the files back in place
|
||||||
|
mv "$pkgdir"/opt/webmin/firewall/install_check{.tmp,}.pl
|
||||||
|
mv "$pkgdir"/opt/webmin/firewall6/install_check{.tmp,}.pl
|
||||||
|
mv firewall/install_check{.tmp,}.pl
|
||||||
|
mv firewall6/install_check{.tmp,}.pl
|
||||||
|
|
||||||
|
# fix the config files to use their real locations
|
||||||
|
find "$pkgdir"/etc/webmin -type f -exec sed -i -e "s:$pkgdir::g" {} \+
|
||||||
|
|
||||||
|
# install sources
|
||||||
|
# install -D -m 644 "$srcdir"/webmin.service "$pkgdir"/usr/lib/systemd/system/webmin.service <- get rid of systemd installation
|
||||||
|
install -D -m 644 "$srcdir"/webmin.pam "$pkgdir"/etc/pam.d/webmin
|
||||||
|
install -D -m 644 "$srcdir"/webmin.logrotate "$pkgdir"/etc/logrotate.d/webmin
|
||||||
|
install -D -m 644 "$srcdir"/webmin.tmpfiles "${pkgdir}"/usr/lib/tmpfiles.d/webmin.conf
|
||||||
|
install -D -m 644 "$srcdir"/$pkgname-$pkgver/LICENCE "$pkgdir"/usr/share/licenses/webmin/LICENCE
|
||||||
|
install -D -m 644 "$srcdir"/systemctl "${pkgdir}"/usr/bin/systemctl
|
||||||
|
|
||||||
|
# delete directories not to be packaged
|
||||||
|
rm -r "$pkgdir"/{tmp,var}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sha256sums=('6798027c7230be1adf6cf2fd27a74185718abcb0e1ff8b674a518b41e885651e'
|
||||||
|
'3c27a52679607c73cdaa00c0735bea04cf66cf92ca4af6a7ac906eaed537b910'
|
||||||
|
'21b24cbbf88593f9da727e8f36dea283c8765002a378b3d4e55e6332387c43c6'
|
||||||
|
'd326da95233341ed0a6d51c6c28d9b47b5bbe8c1ae8e03e2578c24191dd14383'
|
||||||
|
'a979e236681c6a06906937cf0f012e976347af5d6d7e7ae04a11acb01cc2689d'
|
||||||
|
'9babd7f1e7e24ba4aeb5587a3cb46aa1e92904226cad84a4cbee5f9aaa408802'
|
||||||
|
'075c8156471d0fb4825a51b6411636102d2cf61d4eb5c7c097330e53cd9323b0')
|
||||||
|
# '4757a44a07a4bcb6f919274f35b8ab27a34936b5f8d6aee9cdbcbde49e73fb7d') <- get rid of systemd installation
|
4
webmin/setup-post.sh
Normal file
4
webmin/setup-post.sh
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
# more logging, other config changes and use pam
|
||||||
|
echo -e 'logfiles=1\nlogfullfiles=1\ngotoone=1\nnoremember=1' >> "$archpkgdir"/etc/webmin/config
|
||||||
|
sed -i -e 's:^pidfile=.*$:pidfile=/run/webmin.pid:' "$archpkgdir"/etc/webmin/miniserv.conf
|
||||||
|
echo -e 'pam_only=1\npam_end=1\npam_conv=\nno_pam=0\nlogouttime=10' >> "$archpkgdir"/etc/webmin/miniserv.conf
|
18
webmin/setup-pre.sh
Normal file
18
webmin/setup-pre.sh
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
config_dir="$archpkgdir"/etc/webmin
|
||||||
|
var_dir="$archpkgdir"/var/log/webmin
|
||||||
|
perl=/usr/bin/perl
|
||||||
|
autoos=1
|
||||||
|
port=10000
|
||||||
|
noportcheck=1
|
||||||
|
login=root
|
||||||
|
crypt="x"
|
||||||
|
ssl=1
|
||||||
|
atboot=0
|
||||||
|
nostart=1
|
||||||
|
nochown=1
|
||||||
|
autothird=1
|
||||||
|
nouninstall=1
|
||||||
|
atbootyn=n
|
||||||
|
tempdir="$archpkgdir"/tmp
|
||||||
|
pam=webmin
|
||||||
|
export config_dir var_dir perl autoos port noportcheck login crypt ssl atboot nostart nochown autothird nouninstall atbootyn tempdir pam
|
BIN
webmin/webmin-config.tar.bz2
Normal file
BIN
webmin/webmin-config.tar.bz2
Normal file
Binary file not shown.
8
webmin/webmin.logrotate
Normal file
8
webmin/webmin.logrotate
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
/var/log/webmin/miniserv.error /var/log/webmin/*.log {
|
||||||
|
missingok
|
||||||
|
notifempty
|
||||||
|
sharedscripts
|
||||||
|
postrotate
|
||||||
|
/usr/bin/systemctl -q try-reload-or-restart webmin.service 2>/dev/null || true
|
||||||
|
endscript
|
||||||
|
}
|
5
webmin/webmin.pam
Normal file
5
webmin/webmin.pam
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
#%PAM-1.0
|
||||||
|
auth include system-remote-login
|
||||||
|
account include system-remote-login
|
||||||
|
password include system-remote-login
|
||||||
|
session include system-remote-login
|
2
webmin/webmin.tmpfiles
Normal file
2
webmin/webmin.tmpfiles
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
d /var/log/webmin 0750 root bin -
|
||||||
|
d /var/log/webmin/modules 0750 root root -
|
@@ -1,15 +1,23 @@
|
|||||||
# Maintainer: linuxer <linuxer@artixlinux.org>
|
# Contributor linuxer <https://gitea.artixlinux.org/linuxer>
|
||||||
|
|
||||||
pkgname=zramen-openrc
|
pkgname=zramen-openrc
|
||||||
pkgver=20210118
|
pkgdesc="Zramen and OpenRC init scripts"
|
||||||
|
alias=zramen
|
||||||
|
pkgver=0.2.1
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
pkgdesc="OpenRC script for zramen"
|
arch=('any')
|
||||||
arch=(any)
|
url="https://gitea.artixlinux.org/linuxer/PKGBUILDS/zramen-openrc"
|
||||||
url="https://gitea.artixlinux.org/linuxer"
|
license=('Unlicense')
|
||||||
license=('GPL')
|
groups=()
|
||||||
depends=('zramen' 'openrc')
|
depends=('openrc' 'bc')
|
||||||
source=("initd")
|
source=("https://github.com/atweiden/zramen/releases/download/${pkgver}/zramen-${pkgver}.tar.gz"
|
||||||
md5sums=('0302133661503a44f640eb553341ddaa')
|
"zramen.initd")
|
||||||
|
b2sums=('1c8d69609fb311ce566b3120af11d16a633f1c64c2104df80dd3fbf22e1f41a609bb53420d4c3fc1e9393d887647d1f6a6a0e3609a022787b3cf0d1fd4200886'
|
||||||
|
'ee5599bffcc93bce4f50ce4205f759cf4d3de00bfd663c00d48fbc27f90aeee9245709eb8d9259e2b16e05c68ee6d224a98191e373f109ee09f0977cae724759')
|
||||||
|
|
||||||
package() {
|
package() {
|
||||||
install -Dm755 initd "$pkgdir"/etc/init.d/zramen
|
install -Dm 755 zramen.initd "$pkgdir/etc/init.d/zramen"
|
||||||
|
cd "${srcdir}/${alias}-${pkgver}"
|
||||||
|
install -Dm 755 zramen "$pkgdir/usr/bin/zramen"
|
||||||
|
install -Dm 755 sv/zramen/conf "$pkgdir/etc/conf.d/zramen.conf"
|
||||||
}
|
}
|
||||||
|
30
zramen-runit/PKGBUILD
Normal file
30
zramen-runit/PKGBUILD
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
# Contributor linuxer <https://gitea.artixlinux.org/linuxer>
|
||||||
|
|
||||||
|
pkgname=zramen-runit
|
||||||
|
pkgalias=zramend
|
||||||
|
_realname=zramen-runit
|
||||||
|
pkgdesc="Zramen and runit init scripts"
|
||||||
|
alias=zramen
|
||||||
|
pkgver=0.2.1
|
||||||
|
pkgrel=1
|
||||||
|
pkgbase=zramen-runit
|
||||||
|
replaces=('zramen-runit' 'bc')
|
||||||
|
arch=('any')
|
||||||
|
url=url="https://gitea.artixlinux.org/linuxer/PKGBUILDS/zramen-runit"
|
||||||
|
license=('Unlicense')
|
||||||
|
groups=()
|
||||||
|
depends=('runit')
|
||||||
|
source=("https://github.com/atweiden/zramen/releases/download/${pkgver}/zramen-${pkgver}.tar.gz")
|
||||||
|
b2sums=('1c8d69609fb311ce566b3120af11d16a633f1c64c2104df80dd3fbf22e1f41a609bb53420d4c3fc1e9393d887647d1f6a6a0e3609a022787b3cf0d1fd4200886')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
echo "${srcdir}/${alias}-${pkgver}"
|
||||||
|
cd "${srcdir}/${alias}-${pkgver}"
|
||||||
|
install -Dm 755 zramen -t "$pkgdir/usr/bin/"
|
||||||
|
mkdir -p "$pkgdir"/etc/runit/sv/zramen
|
||||||
|
install -Dm 644 sv/zramen/conf "$pkgdir"/etc/runit/sv/zramen
|
||||||
|
install -Dm 644 sv/zramen/finish "$pkgdir"/etc/runit/sv/zramen
|
||||||
|
chmod +x "$pkgdir"/etc/runit/sv/zramen/finish
|
||||||
|
install -Dm 644 sv/zramen/run "$pkgdir"/etc/runit/sv/zramen
|
||||||
|
chmod +x "$pkgdir"/etc/runit/sv/zramen/run
|
||||||
|
}
|
@@ -1,19 +1,31 @@
|
|||||||
# Maintainer: linuxer <linuxer@artixlinux.org>
|
# Contributor: linuxer <linuxer@artixlinux.org>
|
||||||
|
# Developer: Timofey Titovets <nefelim4ag@gmail.com>
|
||||||
|
|
||||||
pkgname=zramen-s6
|
pkgname=zramen-s6
|
||||||
pkgver=20210118
|
pkgdesc="Zramen and OpenRC init scripts"
|
||||||
|
alias=zramen
|
||||||
|
pkgver=0.2.1
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
pkgdesc="S6 script for zramen"
|
arch=('any')
|
||||||
arch=(any)
|
url="https://gitea.artixlinux.org/linuxer/PKGBUILDS/zramen-s6"
|
||||||
url="https://gitea.artixlinux.org/linuxer"
|
arch=('any')
|
||||||
license=('GPL')
|
url="https://github.com/Nefelim4ag/Ananicy.git"
|
||||||
depends=('zramen' 's6')
|
license=('Unlicense')
|
||||||
source=("type" "run" "finish")
|
depends=('s6' 'bc')
|
||||||
b2sums=('cdcdfdfe8033b1b2ac812951b70b09b115c1d7b7de4ed0ea0808072414753faf98ca846a171f22ab788cc9e1564456354f953941d4fba8056bc650f41dcde8dc'
|
source=("https://github.com/atweiden/zramen/releases/download/${pkgver}/zramen-${pkgver}.tar.gz"
|
||||||
|
"zramen.type"
|
||||||
|
"zramen.run"
|
||||||
|
"zramen.finish")
|
||||||
|
b2sums=('1c8d69609fb311ce566b3120af11d16a633f1c64c2104df80dd3fbf22e1f41a609bb53420d4c3fc1e9393d887647d1f6a6a0e3609a022787b3cf0d1fd4200886'
|
||||||
|
'cdcdfdfe8033b1b2ac812951b70b09b115c1d7b7de4ed0ea0808072414753faf98ca846a171f22ab788cc9e1564456354f953941d4fba8056bc650f41dcde8dc'
|
||||||
'0c2ba1bcb5a07553dc0f04f8780a5dae93aafcd06fb460852c2a6c1403a8ebaab6d09f1b07338926523341fc17fe0cff6db3d755f8a4200a77ff003c53614b35'
|
'0c2ba1bcb5a07553dc0f04f8780a5dae93aafcd06fb460852c2a6c1403a8ebaab6d09f1b07338926523341fc17fe0cff6db3d755f8a4200a77ff003c53614b35'
|
||||||
'18c715abcedd65f5e07f46e3e7e4d974f0c3e6f5e7474583b124744bc97530662ce4551de31e380209d63fb42abfb9f3c020f248cfa9c2ef15fd9c4d6cb11c50')
|
'a8c1eb7798e11ec231cc2c587631d73dda99f978fc331dbca48f3f78b82b273542534ad010ee96b1a7110d3dfa86961f12ab6e2320b508190e74dcf2d89c9a9d')
|
||||||
|
|
||||||
package() {
|
package() {
|
||||||
install -Dm644 run "$pkgdir"/etc/s6/sv/zramen/up
|
mkdir -p "$pkgdir/etc/s6/sv/$_alias"
|
||||||
install -Dm644 finish "$pkgdir"/etc/s6/sv/zramen/down
|
cp zramen.run $pkgdir/etc/s6/sv/$_alias/run
|
||||||
install -Dm644 type -t "$pkgdir"/etc/s6/sv/zramen
|
cp zramen.type $pkgdir/etc/s6/sv/$_alias/type
|
||||||
|
cp zramen.finish $pkgdir/etc/s6/sv/$_alias/finish
|
||||||
|
cd "${srcdir}/${_alias}-${pkgver}"
|
||||||
|
install -Dm 755 sv/zramen/conf "$pkgdir/etc/conf.d/zramen.conf"
|
||||||
}
|
}
|
||||||
|
0
zramen-s6/run → zramen-s6/zramen.run
Normal file → Executable file
0
zramen-s6/run → zramen-s6/zramen.run
Normal file → Executable file
1
zramen-s6/zramen.type
Normal file
1
zramen-s6/zramen.type
Normal file
@@ -0,0 +1 @@
|
|||||||
|
oneshot
|
@@ -1,27 +1,30 @@
|
|||||||
# Maintainer: linuxer <linuxer@artixlinux.org>
|
# Contributor linuxer <https://gitea.artixlinux.org/linuxer>
|
||||||
pkgname=('zramen' 'zramen-runit')
|
|
||||||
pkgbase=zramen
|
pkgname=zramen-runit
|
||||||
|
pkgalias=zramend
|
||||||
|
_realname=zramen-runit
|
||||||
|
pkgdesc="Zramen and runit init scripts"
|
||||||
|
alias=zramen
|
||||||
pkgver=0.2.1
|
pkgver=0.2.1
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
pkgdesc="Manage zram swap space"
|
pkgbase=zramen-runit
|
||||||
arch=(any)
|
replaces=('zramen-runit' 'bc')
|
||||||
url="https://github.com/atweiden/zramen/"
|
arch=('any')
|
||||||
license=('UNLICENSE')
|
url=url="https://gitea.artixlinux.org/linuxer/PKGBUILDS/zramen-runit"
|
||||||
|
license=('Unlicense')
|
||||||
|
groups=()
|
||||||
|
depends=('runit')
|
||||||
source=("https://github.com/atweiden/zramen/releases/download/${pkgver}/zramen-${pkgver}.tar.gz")
|
source=("https://github.com/atweiden/zramen/releases/download/${pkgver}/zramen-${pkgver}.tar.gz")
|
||||||
md5sums=('9902548566e92c6e71829893e501a39f')
|
b2sums=('1c8d69609fb311ce566b3120af11d16a633f1c64c2104df80dd3fbf22e1f41a609bb53420d4c3fc1e9393d887647d1f6a6a0e3609a022787b3cf0d1fd4200886')
|
||||||
|
|
||||||
package_zramen() {
|
package() {
|
||||||
depends=("bc" "bash")
|
echo "${srcdir}/${alias}-${pkgver}"
|
||||||
|
cd "${srcdir}/${alias}-${pkgver}"
|
||||||
cd "$pkgbase-$pkgver"
|
install -Dm 755 zramen -t "$pkgdir/usr/bin/"
|
||||||
install -Dm755 zramen -t "$pkgdir"/usr/bin
|
mkdir -p "$pkgdir"/etc/runit/sv/zramen
|
||||||
}
|
install -Dm 644 sv/zramen/conf "$pkgdir"/etc/runit/sv/zramen
|
||||||
|
install -Dm 644 sv/zramen/finish "$pkgdir"/etc/runit/sv/zramen
|
||||||
package_zramen-runit() {
|
chmod +x "$pkgdir"/etc/runit/sv/zramen/finish
|
||||||
pkgdesc="runit script for zramen"
|
install -Dm 644 sv/zramen/run "$pkgdir"/etc/runit/sv/zramen
|
||||||
depends=('zramen' 'runit')
|
chmod +x "$pkgdir"/etc/runit/sv/zramen/run
|
||||||
|
|
||||||
cd "$pkgbase-$pkgver"
|
|
||||||
install -Dm755 sv/zramen/{finish,run} -t "$pkgdir"/etc/runit/sv/zramen
|
|
||||||
install -Dm644 sv/zramen/conf -t "$pkgdir"/etc/runit/sv/zramen
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user