summaryrefslogtreecommitdiff
path: root/pcr
diff options
context:
space:
mode:
authorDavid P <megver83@parabola.nu>2017-11-18 15:35:46 -0300
committerDavid P <megver83@parabola.nu>2017-11-18 15:35:54 -0300
commitc799f6ae2ec796e75d399028736c9d70c021dcd7 (patch)
tree0d6d80b5b8bfada2b5a219e937ccd51df83b0469 /pcr
parent537adb86225271d3e895cdb8e75b193196c0d6aa (diff)
Add runit & update openrc
openrc-init has been packaged separately from the openrc package for OpenRC to gain compatibility with other init systems. As of now there's runit and openrc-init which provide and conflict 'init', meaning that those packages have a /sbin/init binary or symlink. Packages which provide 'init' will also go to the 'init' group. Note, however, that if attempting to install that package group all the packages will conflict, so purpose of it is to simply do 'pacman -Sg init' to see a list of the available inits.
Diffstat (limited to 'pcr')
-rw-r--r--pcr/openrc/PKGBUILD110
-rw-r--r--pcr/openrc/openrc-init.install3
-rw-r--r--pcr/runit-scripts/PKGBUILD43
-rw-r--r--pcr/runit/PKGBUILD66
4 files changed, 184 insertions, 38 deletions
diff --git a/pcr/openrc/PKGBUILD b/pcr/openrc/PKGBUILD
index dd3bfb97e..e33a1cbba 100644
--- a/pcr/openrc/PKGBUILD
+++ b/pcr/openrc/PKGBUILD
@@ -2,36 +2,22 @@
# Contributor (Artix): williamh <williamh@gentoo.org>
# Maintainer: Omar Vega Ramos <ovruni@gnu.org.pe>
-_url="https://github.com/OpenRC/openrc/archive"
-
-pkgname=openrc
-pkgver=0.34.3
-pkgrel=1.parabola1
-pkgdesc="Gentoo's universal init system"
+pkgbase=openrc
+pkgname=('openrc' 'openrc-init')
+pkgver=0.34.8
+pkgrel=1.parabola3
arch=('i686' 'x86_64' 'armv7h')
url="https://wiki.gentoo.org/wiki/Project:OpenRC"
license=('BSD2')
-depends=('psmisc' 'pam')
-optdepends=('netifrc: Network Interface Management Scripts'
- 'networkmanager-openrc: NetworkManager')
-conflicts=('systemd-sysvcompat' 'sysvinit')
-replaces=('sysvinit')
-install=${pkgname}.install
-backup=('etc/rc.conf'
- 'etc/conf.d/consolefont'
- 'etc/conf.d/keymaps'
- 'etc/conf.d/hostname'
- 'etc/conf.d/modules'
- 'etc/conf.d/hwclock')
options=('!emptydirs')
-source=("${pkgname}-${pkgver}.tar.gz::${_url}/${pkgver}.tar.gz"
- "${pkgname}.logrotate"
+source=("${pkgbase}-${pkgver}.tar.gz::https://github.com/OpenRC/openrc/archive/${pkgver}.tar.gz"
+ "${pkgbase}.logrotate"
'openrc-install.hook'
'openrc-remove.hook')
-sha256sums=('8e4c1f99727b7b91766fcd65e0a303240528bf0cb123a65e33adc904c67bf2bd'
- '0b44210db9770588bd491cd6c0ac9412d99124c6be4c9d3f7d31ec8746072f5c'
- '1d4d31a7275660e7b23778e6fceb0714cab8ed2793b04aa004b01d8e7bcd43bd'
- 'cbb4d00262a55a508114cb31e3903350be2cff748a4fb5e120dc745292e3987e')
+sha512sums=('2309e0d330c35467dd6008f1458ac9680207a4c783d4f4e6008a84a313088cfe796dd134dfec79699b8f9c90002b0ae621bb78a9925b987ae98fbd8ad75b947a'
+ '690612fddfb2c4cf8f6b5ba7239b9faf29eb3d9b152ab4dcf62694aa2852780440d08cee56d98a9597607f446b3697c911269562821a8402bb5747cbbae34bd9'
+ 'c31c94574f1c604930b572ed74eabdfcbedb344c54668ddeb3214d71de660e9fa8ff445b04ff817f16e62bce43376680d0a1b6c65baa8f6dba30e4ffa230c04a'
+ '96bd71dd4fbe1417a640ac7526e83e1b2290732d5e558d7942c87db0dc1ccb7614763d7748b219ac5982b0db66cba9c124506ec939a661d73db4d0b2642f431e')
_args=(
SYSCONFDIR=/etc
@@ -43,32 +29,50 @@ _args=(
MKTERMCAP=ncurses
MKNET=no
MKSYSVINIT=yes
- BRANDING='Parabola'
)
+if [ -f /usr/lib/os-release ]; then
+ . /usr/lib/os-release
+ _args+=(BRANDING="${NAME}")
+else
+ _args+=(BRANDING='Unknown GNU/Linux')
+fi
+
prepare(){
- cd "${srcdir}/${pkgname}-${pkgver}"
+ cd "${srcdir}/${pkgbase}-${pkgver}"
sed -e "s|/sbin|/usr/bin|g" -i support/sysvinit/inittab
sed -i 's:0444:0644:' mk/sys.mk
}
build(){
- cd "${srcdir}/${pkgname}-${pkgver}"
+ cd "${srcdir}/${pkgbase}-${pkgver}"
make "${_args[@]}"
}
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
+package_openrc() {
+ pkgdesc="Gentoo's universal init system"
+ install=${pkgbase}.install
+ depends=('psmisc' 'pam' 'init')
+ optdepends=('netifrc: Network Interface Management Scripts'
+ 'networkmanager-openrc: NetworkManager')
+ backup=('etc/rc.conf'
+ 'etc/conf.d/consolefont'
+ 'etc/conf.d/keymaps'
+ 'etc/conf.d/hostname'
+ 'etc/conf.d/modules'
+ 'etc/conf.d/hwclock')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
make DESTDIR="${pkgdir}" "${_args[@]}" install
- install -Dm644 "${srcdir}/${pkgname}.logrotate" "${pkgdir}/etc/logrotate.d/${pkgname}"
+ install -Dm644 "${srcdir}/${pkgbase}.logrotate" "${pkgdir}/etc/logrotate.d/${pkgbase}"
sed -e 's/#unicode="NO"/unicode="YES"/' \
-e 's/#rc_logger="NO"/rc_logger="YES"/' \
-i "${pkgdir}/etc/rc.conf"
- install -d ${pkgdir}/usr/lib/rc/cache
+ install -d ${pkgdir}/usr/lib/openrc/cache
# getty
sed -e 's|#baud=""|baud="38400"|' \
@@ -76,17 +80,47 @@ package() {
-e 's|#agetty_options=""|agetty_options=""|' \
-i ${pkgdir}/etc/conf.d/agetty
- for num in 1 2 3 4 5 6;do
- cp -v ${pkgdir}/etc/conf.d/agetty ${pkgdir}/etc/conf.d/agetty.tty$num
- ln -sf /etc/init.d/agetty ${pkgdir}/etc/init.d/agetty.tty$num
- ln -sf /etc/init.d/agetty.tty$num ${pkgdir}/etc/runlevels/default/agetty.tty$num
- done
-
# alpm hooks
for h in openrc-{install,remove}.hook;do
install -Dm644 ${srcdir}/$h ${pkgdir}/usr/share/libalpm/hooks/$h
done
# license
- install -Dm644 ${srcdir}/${pkgname}-${pkgver}/LICENSE "$pkgdir/usr/share/licenses/${pkgname}/LICENSE"
+ install -Dm644 ${srcdir}/${pkgbase}-${pkgver}/LICENSE "$pkgdir/usr/share/licenses/${pkgbase}/LICENSE"
+
+ # move these to $srcdir
+ for bin in shutdown reboot halt poweroff openrc-init init; do
+ mv -v ${pkgdir}/usr/bin/${bin} ${srcdir}/${bin}
+ done
+ mv -v ${pkgdir}/etc/conf.d/agetty ${srcdir}/agetty.confd
+ mv -v ${pkgdir}/etc/init.d/agetty ${srcdir}/agetty.initd
+}
+
+package_openrc-init() {
+ pkgdesc="OpenRC replacement for /sbin/init"
+ depends=('openrc')
+ provides=('init')
+ groups=('init')
+ conflicts=('systemd-sysvcompat' 'sysvinit' 'init')
+ replaces=('sysvinit')
+ install=${pkgbase}-init.install
+
+ cd ${srcdir}
+ install -d ${pkgdir}/usr/bin/ \
+ -d ${pkgdir}/etc/conf.d/ \
+ -d ${pkgdir}/etc/init.d/ \
+ -d ${pkgdir}/etc/runlevels/default/
+
+ for bin in shutdown reboot halt poweroff openrc-init init; do
+ mv -v ${bin} ${pkgdir}/usr/bin/${bin}
+ done
+
+ mv -v agetty.confd ${pkgdir}/etc/conf.d/agetty
+ mv -v agetty.initd ${pkgdir}/etc/init.d/agetty
+ for num in 1 2 3 4 5 6;do
+ cp -v ${pkgdir}/etc/conf.d/agetty ${pkgdir}/etc/conf.d/agetty.tty$num
+ ln -sf /etc/init.d/agetty ${pkgdir}/etc/init.d/agetty.tty$num
+ ln -sf /etc/init.d/agetty.tty$num ${pkgdir}/etc/runlevels/default/agetty.tty$num
+ done
+
}
diff --git a/pcr/openrc/openrc-init.install b/pcr/openrc/openrc-init.install
new file mode 100644
index 000000000..7584444cc
--- /dev/null
+++ b/pcr/openrc/openrc-init.install
@@ -0,0 +1,3 @@
+post_remove() {
+ echo " ==> Make sure you install an init provider before you reboot!"
+}
diff --git a/pcr/runit-scripts/PKGBUILD b/pcr/runit-scripts/PKGBUILD
new file mode 100644
index 000000000..acaddd5ff
--- /dev/null
+++ b/pcr/runit-scripts/PKGBUILD
@@ -0,0 +1,43 @@
+# Maintainer: David P. <megver83@parabola.nu>
+# Maintainer (Artix): Chris Cromer <chris@cromer.cl>
+
+_commit=0800961464d5afeb69730e4c9adc6733d26ea031
+
+pkgname=runit-scripts
+pkgver=20171118
+pkgrel=1
+pkgdesc='Runit initscripts for GNU/Linux'
+provides=('runit-init')
+conflicts=('runit-init')
+url='https://gitlab.com/Megver83/runit-scripts'
+license=('GPL3')
+arch=('armv7h' 'i686' 'x86_64')
+depends=('procps-ng' 'awk' 'sh' 'eudev' 'runit')
+optdepends=('openrc: for managing services with OpenRC')
+source=("${pkgname}-${pkgver}.tar.gz::https://gitlab.com/Megver83/runit-scripts/repository/${_commit}/archive.tar.gz")
+backup=('etc/runit/rc.conf'
+ 'etc/runit/rc.local'
+ 'etc/runit/rc.shutdown')
+sha512sums=('46439bfc5293fa1c3cddfff748a65a09c03da5d27dc6288a8904a50fc618934a3bcfab7c32a3dc8fba3e095146855584389ea7731f45947cef6d0d0dd1636921')
+
+pkgver() {
+ date +%Y%m%d
+}
+
+build() {
+ cd ${srcdir}
+ mv ${pkgname}-${_commit}-${_commit} ${pkgname}-${pkgver}
+ cd ${pkgname}-${pkgver}
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ sed 's|/sbin|/bin|' -i Makefile
+ make DESTDIR="${pkgdir}" PREFIX="/usr" install
+
+ # License
+ mkdir -p "${pkgdir}"/usr/share/licenses/runit-scripts
+ cp {COPYING,LICENSE} "${pkgdir}"/usr/share/licenses/runit-scripts/
+}
diff --git a/pcr/runit/PKGBUILD b/pcr/runit/PKGBUILD
new file mode 100644
index 000000000..2ca8c2910
--- /dev/null
+++ b/pcr/runit/PKGBUILD
@@ -0,0 +1,66 @@
+# Maintainer: David P. <megver83@parabola.nu>
+# Maintainer (Artix): Chris Cromer <chris@cromer.cl>
+
+pkgbase=runit
+pkgname=('runit' 'runit-doc')
+pkgver=2.1.2
+pkgrel=1.parabola4
+arch=('armv7h' 'i686' 'x86_64')
+url='http://smarden.org/runit/'
+license=('BSD3')
+source=("http://smarden.org/${pkgname}/${pkgbase}-${pkgver}.tar.gz")
+sha512sums=('a18773ebf1aa22305dd89ed67363165b9fcf86c192b2be4e268d08005dd82d51265160c637abe072f2f2e378c4b315a75bd3d3e602c3e75bdd451a3b0190f8cf')
+
+prepare() {
+ # set default service path to /run/runit/service
+ cd "${srcdir}/admin/${pkgbase}-${pkgver}"
+ sed -i 's|"/service/"|"/run/runit/service/"|' src/sv.c
+}
+
+build() {
+ cd "${srcdir}/admin/${pkgbase}-${pkgver}"
+
+ CFLAGS="${CFLAGS} -static"
+ LDFLAGS="${LDFLAGS} -static"
+
+ package/compile
+}
+
+check() {
+ cd "${srcdir}/admin/${pkgbase}-${pkgver}"
+ package/check
+}
+
+package_runit() {
+ pkgdesc='Cross-platform Unix init scheme with service supervision'
+ depends=('bash' 'runit-init' 'util-linux')
+ optdepends=('runit-doc: documentation')
+ provides=('init')
+ groups=('init')
+ conflicts=('systemd-sysvcompat' 'sysvinit' 'init')
+ # commands
+ mkdir -p "${pkgdir}/usr/bin"
+ install -Dm755 ${srcdir}/admin/${pkgbase}-${pkgver}/command/* "${pkgdir}/usr/bin"
+
+ # man pages
+ mkdir -p "${pkgdir}/usr/share/man/man8"
+ install -Dm644 ${srcdir}/admin/${pkgbase}-${pkgver}/man/* "${pkgdir}/usr/share/man/man8"
+
+ # default directories
+ mkdir -p "$pkgdir/etc/runit/runsvdir/default"
+
+ # license
+ install -Dm644 "${srcdir}/admin/${pkgbase}-${pkgver}/package/COPYING" "$pkgdir/usr/share/licenses/runit/COPYING"
+
+ # init
+ ln -sf runit-init "${pkgdir}/usr/bin/init"
+}
+
+package_runit-doc() {
+ pkgdesc='Documentation for the runit init system'
+ groups=('init-doc')
+ arch=('any')
+ install -v -m755 -d "${pkgdir}/usr/share/doc"
+ cp -r "${srcdir}/admin/${pkgbase}-${pkgver}/doc" "${pkgdir}/usr/share/doc/${pkgbase}-${pkgver}"
+ rm "${pkgdir}/usr/share/doc/${pkgbase}-${pkgver}/debian"
+}