diff options
Diffstat (limited to 'community')
126 files changed, 6053 insertions, 0 deletions
diff --git a/community/albatross-themes/APKBUILD b/community/albatross-themes/APKBUILD new file mode 100644 index 0000000000..6492e0741d --- /dev/null +++ b/community/albatross-themes/APKBUILD @@ -0,0 +1,62 @@ +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=albatross-themes +pkgver=1.7.4 +pkgrel=0 +pkgdesc="A clean minimalistic theme for Xfce, GTK 2 and 3" +url="http://shimmerproject.org/project/albatross/" +arch="noarch" +license="GPLv2 or CC-BY-SA" +makedepends="$depends_dev" +subpackages="$pkgname-gtk2 $pkgname-gtk3 $pkgname-metacity $pkgname-xfwm4" +source="albatross-$pkgver.tar.gz::https://github.com/shimmerproject/Albatross/archive/v$pkgver.tar.gz" + +_builddir="$srcdir"/Albatross-$pkgver +prepare() { + local i + cd "$_builddir" + for i in $source; do + case $i in + *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; + esac + done +} + +build() { + cd "$_builddir" + # Remove Unity theme + rm -f gtk-3.0/apps/unity.css + sed -i '/unity\.css/d' gtk-3.0/gtk.css +} + +package() { + cd "$_builddir" + mkdir -p "$pkgdir"/usr/share/themes/Albatross + cp -pr * "$pkgdir"/usr/share/themes/Albatross +} + +_mv() { + pkgdesc="$1" + install_if="$pkgname=$pkgver-r$pkgrel $2"; + depends= + local _i + shift; shift + mkdir -p "$subpkgdir"/usr/share/themes/Albatross + for _i; do + msg "moving $_i" + mv "$pkgdir"/usr/share/themes/Albatross/$_i \ + "$subpkgdir"/usr/share/themes/Albatross || return 1 + done +} + +gtk2() { + _mv "Albatross GTK2 themes" gtk2.0 gtk-2.0 + depends="gtk-murrine-engine" +} + +gtk3() { _mv "Albatross GTK3 themes" gtk3.0 gtk-3.0; } +metacity() { _mv "Albatross Metacity themes" metacity metacity-1; } +xfwm4() { _mv "Albatross Xfce4 themes" xfwm4 xfwm4; } + +md5sums="66e7dcf8efe689d9f40ac53b5fb245f6 albatross-1.7.4.tar.gz" +sha256sums="ff40e28e164cb99f01b131ae3e79a07782e29a720535460e901ce305fa322ae1 albatross-1.7.4.tar.gz" +sha512sums="3ec30f6c654e7e5ccc49cd7116c308329c5a4bd9027c90f6545ca73d4734e1339d1c79c0cb2a7489bb701ccb0623e6a0e72f22bd4c923bb32a75dd4f4337fcfd albatross-1.7.4.tar.gz" diff --git a/community/albatross-themes/commits-to-010514-since-v1.7.3.patch b/community/albatross-themes/commits-to-010514-since-v1.7.3.patch new file mode 100644 index 0000000000..9cdc073ea4 --- /dev/null +++ b/community/albatross-themes/commits-to-010514-since-v1.7.3.patch @@ -0,0 +1,1012 @@ +--- Albatross-1.7.3/gtk-3.0/gtk-widgets-assets.css ++++ Albatross/gtk-3.0/gtk-widgets-assets.css +@@ -22,118 +22,118 @@ + .check, + .check row:selected, + .check row:selected:focus { +- background-image: url("assets/checkbox-unchecked.png"); ++ -gtk-icon-source: url("assets/checkbox-unchecked.png"); + } + + .check:insensitive, + .check row:selected:insensitive, + .check row:selected:focus:insensitive { +- background-image: url("assets/checkbox-unchecked-insensitive.png"); ++ -gtk-icon-source: url("assets/checkbox-unchecked-insensitive.png"); + } + +-.check:active, +-.check row:selected:active, +-.check row:selected:focus:active { +- background-image: url("assets/checkbox-checked.png"); ++.check:active, .check:checked, ++.check row:selected:active, .check row:selected:checked, ++.check row:selected:focus:active, .check row:selected:focus:checked { ++ -gtk-icon-source: url("assets/checkbox-checked.png"); + } + +-.check:active:insensitive, +-.check row:selected:active:insensitive, +-.check row:selected:focus:active:insensitive { +- background-image: url("assets/checkbox-checked-insensitive.png"); ++.check:active:insensitive, .check:checked:insensitive, ++.check row:selected:active:insensitive, .check row:selected:checked:insensitive, ++.check row:selected:focus:active:insensitive, .check row:selected:focus:checked:insensitive { ++ -gtk-icon-source: url("assets/checkbox-checked-insensitive.png"); + } + + .check:inconsistent, + .check row:selected:inconsistent, + .check row:selected:focus:inconsistent { +- background-image: url("assets/checkbox-mixed.png"); ++ -gtk-icon-source: url("assets/checkbox-mixed.png"); + } + + .check:inconsistent:insensitive, + .check row:selected:inconsistent:insensitive, + .check row:selected:focus:inconsistent:insensitive { +- background-image: url("assets/checkbox-mixed-insensitive.png"); ++ -gtk-icon-source: url("assets/checkbox-mixed-insensitive.png"); + } + + .radio, + .radio row:selected, + .radio row:selected:focus { +- background-image: url("assets/radio-unselected.png"); ++ -gtk-icon-source: url("assets/radio-unselected.png"); + } + + .radio:insensitive, + .radio row:selected:insensitive, + .radio row:selected:focus:insensitive { +- background-image: url("assets/radio-unselected-insensitive.png"); ++ -gtk-icon-source: url("assets/radio-unselected-insensitive.png"); + } + +-.radio:active, +-.radio row:selected:active, +-.radio row:selected:focus:active { +- background-image: url("assets/radio-selected.png"); ++.radio:active, .radio:checked, ++.radio row:selected:active, .radio row:selected:checked, ++.radio row:selected:focus:active, .radio row:selected:focus:checked { ++ -gtk-icon-source: url("assets/radio-selected.png"); + } + +-.radio:active:insensitive, +-.radio row:selected:active:insensitive, +-.radio row:selected:focus:active:insensitive { +- background-image: url("assets/radio-selected-insensitive.png"); ++.radio:active:insensitive, .radio:checked:insensitive, ++.radio row:selected:active:insensitive, .radio row:selected:checked:insensitive, ++.radio row:selected:focus:active:insensitive, .radio row:selected:focus:checked:insensitive { ++ -gtk-icon-source: url("assets/radio-selected-insensitive.png"); + } + + .radio:inconsistent, + .radio row:selected:inconsistent, + .radio row:selected:focus:inconsistent { +- background-image: url("assets/radio-mixed.png"); ++ -gtk-icon-source: url("assets/radio-mixed.png"); + } + + .radio:inconsistent:insensitive, + .radio row:selected:inconsistent:insensitive, + .radio row:selected:focus:inconsistent:insensitive { +- background-image: url("assets/radio-mixed-insensitive.png"); ++ -gtk-icon-source: url("assets/radio-mixed-insensitive.png"); + } + +-.menuitem.check:active { +- background-image: url("assets/menuitem-checkbox-checked.png"); ++.menuitem.check:active, .menuitem.check:checked { ++ -gtk-icon-source: url("assets/menuitem-checkbox-checked.png"); + } + +-.menuitem.check:active:hover { +- background-image: url("assets/menuitem-checkbox-checked-selected.png"); ++.menuitem.check:active:hover, .menuitem.check:checked:hover { ++ -gtk-icon-source: url("assets/menuitem-checkbox-checked-selected.png"); + } + +-.menuitem.check:active:insensitive { +- background-image: url("assets/menuitem-checkbox-checked-insensitive.png"); ++.menuitem.check:active:insensitive, .menuitem.check:checked:insensitive { ++ -gtk-icon-source: url("assets/menuitem-checkbox-checked-insensitive.png"); + } + + .menuitem.check:inconsistent:hover, + .menuitem.radio:inconsistent:hover { +- background-image: url("assets/menuitem-checkbox-mixed-selected.png"); ++ -gtk-icon-source: url("assets/menuitem-checkbox-mixed-selected.png"); + } + + .menuitem.check:inconsistent, + .menuitem.radio:inconsistent { +- background-image: url("assets/menuitem-checkbox-mixed.png"); ++ -gtk-icon-source: url("assets/menuitem-checkbox-mixed.png"); + } + + .menuitem.check:inconsistent:insensitive, + .menuitem.radio:inconsistent:insensitive { +- background-image: url("assets/menuitem-checkbox-mixed-insensitive.png"); ++ -gtk-icon-source: url("assets/menuitem-checkbox-mixed-insensitive.png"); + } + +-.menuitem.radio:active { +- background-image: url("assets/menuitem-radio-checked.png"); ++.menuitem.radio:active, .menuitem.radio:checked { ++ -gtk-icon-source: url("assets/menuitem-radio-checked.png"); + } + +-.menuitem.radio:active:hover { +- background-image: url("assets/menuitem-radio-checked-selected.png"); ++.menuitem.radio:active:hover, .menuitem.radio:checked:hover { ++ -gtk-icon-source: url("assets/menuitem-radio-checked-selected.png"); + } + +-.menuitem.radio:active:insensitive { +- background-image: url("assets/menuitem-radio-checked-insensitive.png"); ++.menuitem.radio:active:insensitive, .menuitem.radio:checked:insensitive { ++ -gtk-icon-source: url("assets/menuitem-radio-checked-insensitive.png"); + } + + GtkIconView.content-view.cell.check { +- background-image: url("assets/grid-selection-unchecked.png"); ++ -gtk-icon-source: url("assets/grid-selection-unchecked.png"); + } + +-GtkIconView.content-view.cell.check:active { +- background-image: url("assets/grid-selection-checked.png"); ++GtkIconView.content-view.cell.check:active, GtkIconView.content-view.cell.check:checked { ++ -gtk-icon-source: url("assets/grid-selection-checked.png"); + } +--- Albatross-1.7.3/gtk-3.0/gtk-widgets.css ++++ Albatross/gtk-3.0/gtk-widgets.css +@@ -148,9 +148,13 @@ + inset 1px -1px alpha(@light_shadow, 0.3); + } + ++.button:checked, + .button:active, ++.primary-toolbar .button:checked, + .primary-toolbar .button:active, ++.toolbar .button:checked, + .toolbar .button:active, ++.header-bar .button:checked, + .header-bar .button:active { + box-shadow: inset 1px 1px alpha(@dark_shadow, 0.1), + inset -1px -1px alpha(@dark_shadow, 0.1); +@@ -179,9 +183,13 @@ + .primary-toolbar .button:insensitive, + .toolbar .button:insensitive, + .header-bar .button:insensitive, ++.button:checked *:insensitive, + .button:active *:insensitive, ++.primary-toolbar .button:checked *:insensitive, + .primary-toolbar .button:active *:insensitive, ++.toolbar .button:checked *:insensitive, + .toolbar .button:active *:insensitive, ++.header-bar .button:checked *:insensitive, + .header-bar .button:active *:insensitive, + .entry:insensitive, + .scrollbar.button, +@@ -239,6 +247,7 @@ + to (shade(@theme_selected_bg_color, 1.09))); + } + ++.button:checked, + .button:active { + border-color: shade(@theme_bg_color, 0.7); + background-image: -gtk-gradient(linear, left top, left bottom, +@@ -248,6 +257,7 @@ + to (shade(@theme_bg_color, 0.82))); + } + ++.button:checked:hover, + .button:active:hover { + border-color: shade(@theme_bg_color, 0.7); + background-image: -gtk-gradient(linear, left top, left bottom, +@@ -259,7 +269,9 @@ + + .button:focus, + .button:hover:focus, ++.button:checked:focus, + .button:active:focus, ++.button:checked:hover:focus, + .button:active:hover:focus { + border-color: shade(@theme_selected_bg_color, 0.8); + } +@@ -273,6 +285,7 @@ + to (shade(@theme_bg_color, 0.91))); + } + ++.button:checked *:insensitive, + .button:active *:insensitive { + border-color: shade(@theme_bg_color, 0.8); + background-image: -gtk-gradient(linear, left top, left bottom, +@@ -335,14 +348,17 @@ + * column-header * + *****************/ + column-header .button, ++column-header .button:checked, + column-header .button:active { + border-width: 0 1px 1px 0; + border-radius: 0; + } + + column-header .button, ++column-header .button:checked, + column-header .button:active, + column-header .button:focus, ++column-header .button:checked:focus, + column-header .button:active:focus { + border-color: shade(@theme_base_color, 0.9); + border-bottom-color: shade(@theme_base_color, 0.8); +@@ -353,8 +369,10 @@ + } + + column-header .button:hover, ++column-header .button:checked:hover, + column-header .button:active:hover, + column-header .button:hover:focus, ++column-header .button:checked:hover:focus, + column-header .button:active:hover:focus { + border-color: shade(@theme_base_color, 0.9); + border-bottom-color: shade(@theme_base_color, 0.8); +@@ -488,10 +506,12 @@ + + .primary-toolbar GtkComboBox.combobox-entry .button, + .primary-toolbar GtkComboBox.combobox-entry .button:hover, ++.primary-toolbar GtkComboBox.combobox-entry .button:checked, + .primary-toolbar GtkComboBox.combobox-entry .button:active, + .primary-toolbar GtkComboBox.combobox-entry .button:insensitive, + GtkComboBox.combobox-entry .button, + GtkComboBox.combobox-entry .button:hover, ++GtkComboBox.combobox-entry .button:checked, + GtkComboBox.combobox-entry .button:active, + GtkComboBox.combobox-entry .button:insensitive { + border-width: 1px 1px 1px 1px; +@@ -665,11 +685,13 @@ + background-color: shade(@info_bg_color, 1.10); + } + ++.info .button:checked, + .info .button:active { + border-color: shade(@info_bg_color, 0.6); + background-color: shade(@info_bg_color, 0.95); + } + ++.info .button:checked:hover, + .info .button:active:hover { + border-top-color: shade(@info_bg_color, 0.85); + border-right-color: shade(@info_bg_color, 0.78); +@@ -719,11 +741,13 @@ + background-color: shade(@warning_bg_color, 1.10); + } + ++.warning .button:checked, + .warning .button:active { + border-color: shade(@warning_bg_color, 0.6); + background-color: shade(@warning_bg_color, 0.95); + } + ++.warning .button:checked:hover, + .warning .button:active:hover { + border-top-color: shade(@warning_bg_color, 0.85); + border-right-color: shade(@warning_bg_color, 0.78); +@@ -773,11 +797,13 @@ + background-color: shade(@question_bg_color, 1.10); + } + ++.question .button:checked, + .question .button:active { + border-color: shade(@question_bg_color, 0.6); + background-color: shade(@question_bg_color, 0.95); + } + ++.question .button:checked:hover, + .question .button:active:hover { + border-top-color: shade(@question_bg_color, 0.85); + border-right-color: shade(@question_bg_color, 0.78); +@@ -829,11 +855,13 @@ + background-color: shade(@error_bg_color, 1.10); + } + ++.error .button:checked, + .error .button:active { + border-color: shade(@error_bg_color, 0.6); + background-color: shade(@error_bg_color, 0.95); + } + ++.error .button:checked:hover, + .error .button:active:hover { + border-top-color: shade(@error_bg_color, 0.85); + border-right-color: shade(@error_bg_color, 0.78); +@@ -977,7 +1005,9 @@ + } + + .menu.button:hover, ++.menu.button:checked, + .menu.button:active, ++.menu.button:checked *:insensitive, + .menu.button:active *:insensitive, + .menu.button:insensitive, + .menu.button { +@@ -1178,8 +1208,10 @@ + } + + GtkModelButton.button, ++GtkModelButton.button:checked, + GtkModelButton.button:active, + GtkModelButton.button:insensitive, ++GtkModelButton.button:checked:insensitive, + GtkModelButton.button:active:insensitive { + background-color: transparent; + background-image: none; +@@ -1189,6 +1221,7 @@ + color: @theme_fg_color; + } + ++GtkModelButton.button:checked:hover, + GtkModelButton.button:active:hover, + GtkModelButton.button:hover, + GtkModelButton.button:selected { +@@ -1554,7 +1587,9 @@ + } + + .scrollbar.button, ++.scrollbar.button:checked, + .scrollbar.button:active, ++.scrollbar.button:checked:hover, + .scrollbar.button:active:hover { + border-width: 0; + border-radius: 0; +@@ -1741,6 +1776,7 @@ + box-shadow: inset 1px 0 shade(@theme_bg_color, 0.95); + } + ++.spinbutton .button:checked, + .spinbutton .button:active, + .spinbutton .button:hover { + color: @theme_fg_color; +@@ -1783,6 +1819,7 @@ + to (shade(@theme_selected_bg_color, 1.09))); + } + ++.spinbutton.vertical .button:checked, + .spinbutton.vertical .button:active { + border-color: shade(@theme_bg_color, 0.7); + background-image: -gtk-gradient(linear, left top, left bottom, +@@ -1792,6 +1829,7 @@ + to (shade(@theme_bg_color, 0.82))); + } + ++.spinbutton.vertical .button:checked:hover, + .spinbutton.vertical .button:active:hover { + border-color: shade(@theme_bg_color, 0.7); + background-image: -gtk-gradient(linear, left top, left bottom, +@@ -1803,7 +1841,9 @@ + + .spinbutton.vertical .button:focus, + .spinbutton.vertical .button:hover:focus, ++.spinbutton.vertical .button:checked:focus, + .spinbutton.vertical .button:active:focus, ++.spinbutton.vertical .button:checked:hover:focus, + .spinbutton.vertical .button:active:hover:focus { + border-color: shade(@theme_selected_bg_color, 0.7); + } +@@ -2247,8 +2287,11 @@ + to (shade(@theme_selected_bg_color, 1.09))); + } + ++.primary-toolbar .button:checked, + .primary-toolbar .button:active, ++.toolbar .button:checked, + .toolbar .button:active, ++.header-bar .button:checked, + .header-bar .button:active { + border-color: shade(@toolbar_bg_color, 0.7); + background-image: -gtk-gradient(linear, left top, left bottom, +@@ -2258,8 +2301,11 @@ + to (shade(@toolbar_bg_color, 0.82))); + } + ++.primary-toolbar .button:checked:hover, + .primary-toolbar .button:active:hover, ++.toolbar .button:checked:hover, + .toolbar .button:active:hover, ++.header-bar .button:checked:hover, + .header-bar .button:active:hover { + border-color: shade(@toolbar_bg_color, 0.7); + background-image: -gtk-gradient(linear, left top, left bottom, +@@ -2271,15 +2317,21 @@ + + .primary-toolbar .button:focus, + .primary-toolbar .button:hover:focus, ++.primary-toolbar .button:checked:focus, + .primary-toolbar .button:active:focus, ++.primary-toolbar .button:checked:hover:focus, + .primary-toolbar .button:active:hover:focus, + .toolbar .button:focus, + .toolbar .button:hover:focus, ++.toolbar .button:checked:focus, + .toolbar .button:active:focus, ++.toolbar .button:checked:hover:focus, + .toolbar .button:active:hover:focus, + .header-bar .button:focus, + .header-bar .button:hover:focus, ++.header-bar .button:checked:focus, + .header-bar .button:active:focus, ++.header-bar .button:checked:hover:focus, + .header-bar .button:active:hover:focus { + border-color: shade(@theme_selected_bg_color, 0.8); + } +@@ -2295,8 +2347,11 @@ + to (shade(@toolbar_bg_color, 0.91))); + } + ++.primary-toolbar .button:checked *:insensitive, + .primary-toolbar .button:active *:insensitive, ++.toolbar .button:checked *:insensitive, + .toolbar .button:active *:insensitive, ++.header-bar .button:checked *:insensitive, + .header-bar .button:active *:insensitive { + border-color: shade(@toolbar_bg_color, 0.8); + background-image: -gtk-gradient(linear, left top, left bottom, +@@ -2357,19 +2412,23 @@ + background-image: none; + } + ++.inline-toolbar.toolbar .button:checked, + .inline-toolbar.toolbar .button:active { + border-color: shade(@theme_bg_color, 0.8); + background-color: shade(@theme_bg_color, 0.95); + background-image: none; + } + ++.inline-toolbar.toolbar .button:checked:hover, + .inline-toolbar.toolbar .button:active:hover { + border-color: shade(@theme_bg_color, 0.7); + } + + .inline-toolbar.toolbar .button:focus, + .inline-toolbar.toolbar .button:hover:focus, ++.inline-toolbar.toolbar .button:checked:focus, + .inline-toolbar.toolbar .button:active:focus, ++.inline-toolbar.toolbar .button:checked:hover:focus, + .inline-toolbar.toolbar .button:active:hover:focus { + border-color: shade(@theme_bg_color, 0.7); + } +@@ -2394,9 +2453,13 @@ + inset -1px 1px alpha(@light_shadow, 0.3); + } + ++.linked .button:checked, + .linked .button:active, ++.inline-toolbar.toolbar .button:checked, + .inline-toolbar.toolbar .button:active, ++.inline-toolbar.toolbar GtkToolButton .button:checked, + .inline-toolbar.toolbar GtkToolButton .button:active, ++.inline-toolbar.toolbar GtkToolButton > .button:checked, + .inline-toolbar.toolbar GtkToolButton > .button:active { + box-shadow: inset -1px 0 shade(@theme_bg_color, 0.8), + inset 1px 1px alpha(@dark_shadow, 0.1), +@@ -2411,11 +2474,17 @@ + } + + /* remove box shadow from last-child and only-child */ ++.linked .button:checked *:insensitive:last-child, + .linked .button:active *:insensitive:last-child, ++.linked .button:checked *:insensitive:only-child, + .linked .button:active *:insensitive:only-child, ++.inline-toolbar.toolbar .button:checked *:insensitive:last-child, + .inline-toolbar.toolbar .button:active *:insensitive:last-child, ++.inline-toolbar.toolbar .button:checked *:insensitive:only-child, + .inline-toolbar.toolbar .button:active *:insensitive:only-child, ++.inline-toolbar.toolbar GtkToolButton:last-child > .button:checked *:insensitive, + .inline-toolbar.toolbar GtkToolButton:last-child > .button:active *:insensitive, ++.inline-toolbar.toolbar GtkToolButton:only-child > .button:checked *:insensitive, + .inline-toolbar.toolbar GtkToolButton:only-child > .button:active *:insensitive { + box-shadow: none; + } +@@ -2437,11 +2506,17 @@ + inset -1px 1px alpha(@light_shadow, 0.3); + } + ++.linked .button:checked:last-child, + .linked .button:active:last-child, ++.linked .button:checked:only-child, + .linked .button:active:only-child, ++.inline-toolbar.toolbar .button:checked:last-child, + .inline-toolbar.toolbar .button:active:last-child, ++.inline-toolbar.toolbar .button:checked:only-child, + .inline-toolbar.toolbar .button:active:only-child, ++.inline-toolbar.toolbar GtkToolButton:last-child > .button:checked, + .inline-toolbar.toolbar GtkToolButton:last-child > .button:active, ++.inline-toolbar.toolbar GtkToolButton:only-child > .button:checked, + .inline-toolbar.toolbar GtkToolButton:only-child > .button:active { + box-shadow: inset 1px 1px alpha(@dark_shadow, 0.1), + inset -1px -1px alpha(@dark_shadow, 0.1); +@@ -2450,13 +2525,17 @@ + /* middle button */ + .linked .entry, + .linked .button, ++.linked .button:checked, + .linked .button:active, ++.linked .button:checked:hover, + .linked .button:active:hover, + .linked .button:insensitive, + .inline-toolbar.toolbar .button, ++.inline-toolbar.toolbar .button:checked, + .inline-toolbar.toolbar .button:active, + .inline-toolbar.toolbar .button:insensitive, + .inline-toolbar.toolbar GtkToolButton .button, ++.inline-toolbar.toolbar GtkToolButton .button:checked, + .inline-toolbar.toolbar GtkToolButton .button:active, + .inline-toolbar.toolbar GtkToolButton .button:insensitive { + border-width: 1px; +@@ -2468,13 +2547,17 @@ + /*leftmost button */ + .linked .entry:first-child, + .linked .button:first-child, ++.linked .button:checked:first-child, + .linked .button:active:first-child, ++.linked .button:checked:hover:first-child, + .linked .button:active:hover:first-child, + .linked .button:insensitive:first-child, + .inline-toolbar.toolbar .button:first-child, ++.inline-toolbar.toolbar .button:checked:first-child, + .inline-toolbar.toolbar .button:active:first-child, + .inline-toolbar.toolbar .button:insensitive:first-child, + .inline-toolbar.toolbar GtkToolButton:first-child .button, ++.inline-toolbar.toolbar GtkToolButton:first-child .button:checked, + .inline-toolbar.toolbar GtkToolButton:first-child .button:active, + .inline-toolbar.toolbar GtkToolButton:first-child .button:insensitive { + border-width: 1px; +@@ -2487,13 +2570,17 @@ + /* rightmost button */ + .linked .entry:last-child, + .linked .button:last-child, ++.linked .button:checked:last-child, + .linked .button:active:last-child, ++.linked .button:checked:hover:last-child, + .linked .button:active:hover:last-child, + .linked .button:insensitive:last-child, + .inline-toolbar.toolbar .button:last-child, ++.inline-toolbar.toolbar .button:checked:last-child, + .inline-toolbar.toolbar .button:active:last-child, + .inline-toolbar.toolbar .button:insensitive:last-child, + .inline-toolbar.toolbar GtkToolButton:last-child .button, ++.inline-toolbar.toolbar GtkToolButton:last-child .button:checked, + .inline-toolbar.toolbar GtkToolButton:last-child .button:active, + .inline-toolbar.toolbar GtkToolButton:last-child .button:insensitive { + border-width: 1px; +@@ -2506,13 +2593,17 @@ + /* linked single button */ + .linked .entry:only-child, + .linked .button:only-child, ++.linked .button:checked:only-child, + .linked .button:active:only-child, ++.linked .button:checked:hover:only-child, + .linked .button:active:hover:only-child, + .linked .button:insensitive:only-child, + .inline-toolbar.toolbar .button:only-child, ++.inline-toolbar.toolbar .button:checked:only-child, + .inline-toolbar.toolbar .button:active:only-child, + .inline-toolbar.toolbar .button:insensitive:only-child, + .inline-toolbar.toolbar GtkToolButton:only-child .button, ++.inline-toolbar.toolbar GtkToolButton:only-child .button:checked, + .inline-toolbar.toolbar GtkToolButton:only-child .button:active, + .inline-toolbar.toolbar GtkToolButton:only-child .button:insensitive { + border-width: 1px; +@@ -2528,8 +2619,11 @@ + inset -1px 1px alpha(@light_shadow, 0.3); + } + ++.linked.vertical .button:checked, + .linked.vertical .button:active, ++.inline-toolbar.toolbar.vertical .button:checked, + .inline-toolbar.toolbar.vertical .button:active, ++.inline-toolbar.toolbar.vertical GtkToolButton > .button:checked, + .inline-toolbar.toolbar.vertical GtkToolButton > .button:active { + box-shadow: inset 0 -1px shade(@theme_bg_color, 0.8), + inset 1px 1px alpha(@dark_shadow, 0.1), +@@ -2543,11 +2637,17 @@ + } + + /* remove box shadow from last-child and only-child */ ++.linked.vertical .button:checked *:insensitive:last-child, + .linked.vertical .button:active *:insensitive:last-child, ++.linked.vertical .button:checked *:insensitive:only-child, + .linked.vertical .button:active *:insensitive:only-child, ++.inline-toolbar.toolbar.vertical .button:checked *:insensitive:last-child, + .inline-toolbar.toolbar.vertical .button:active *:insensitive:last-child, ++.inline-toolbar.toolbar.vertical .button:checked *:insensitive:only-child, + .inline-toolbar.toolbar.vertical .button:active *:insensitive:only-child, ++.inline-toolbar.toolbar.vertical GtkToolButton:last-child > .button:checked *:insensitive, + .inline-toolbar.toolbar.vertical GtkToolButton:last-child > .button:active *:insensitive, ++.inline-toolbar.toolbar.vertical GtkToolButton:only-child > .button:checked *:insensitive, + .inline-toolbar.toolbar.vertical GtkToolButton:only-child > .button:active *:insensitive { + box-shadow: none; + } +@@ -2569,11 +2669,17 @@ + inset -1px 1px alpha(@light_shadow, 0.3); + } + ++.linked.vertical .button:checked:last-child, + .linked.vertical .button:active:last-child, ++.linked.vertical .button:checked:only-child, + .linked.vertical .button:active:only-child, ++.inline-toolbar.toolbar.vertical .button:checked:last-child, + .inline-toolbar.toolbar.vertical .button:active:last-child, ++.inline-toolbar.toolbar.vertical .button:checked:only-child, + .inline-toolbar.toolbar.vertical .button:active:only-child, ++.inline-toolbar.toolbar.vertical GtkToolButton:last-child > .button:checked, + .inline-toolbar.toolbar.vertical GtkToolButton:last-child > .button:active, ++.inline-toolbar.toolbar.vertical GtkToolButton:only-child > .button:checked, + .inline-toolbar.toolbar.vertical GtkToolButton:only-child > .button:active { + box-shadow: inset 1px 1px alpha(@dark_shadow, 0.1), + inset -1px -1px alpha(@dark_shadow, 0.1); +@@ -2582,7 +2688,9 @@ + /* middle button (vertical) */ + .linked.vertical .entry, + .linked.vertical .button, ++.linked.vertical .button:checked, + .linked.vertical .button:active, ++.linked.vertical .button:checked:hover, + .linked.vertical .button:active:hover, + .linked.vertical .button:insensitive { + border-width: 1px; +@@ -2594,7 +2702,9 @@ + /* top button (vertical) */ + .linked.vertical .entry:first-child, + .linked.vertical .button:first-child, ++.linked.vertical .button:checked:first-child, + .linked.vertical .button:active:first-child, ++.linked.vertical .button:checked:hover:first-child, + .linked.vertical .button:active:hover:first-child, + .linked.vertical .button:insensitive:first-child { + border-width: 1px; +@@ -2607,7 +2717,9 @@ + /* bottom button (vertical) */ + .linked.vertical .entry:last-child, + .linked.vertical .button:last-child, ++.linked.vertical .button:checked:last-child, + .linked.vertical .button:active:last-child, ++.linked.vertical .button:checked:hover:last-child, + .linked.vertical .button:active:hover:last-child, + .linked.vertical .button:insensitive:last-child { + border-width: 1px; +@@ -2620,7 +2732,9 @@ + /* linked single button (vertical) */ + .linked.vertical .entry:only-child, + .linked.vertical .button:only-child, ++.linked.vertical .button:checked:only-child, + .linked.vertical .button:active:only-child, ++.linked.vertical .button:checked:hover:only-child, + .linked.vertical .button:active:hover:only-child, + .linked.vertical .button:insensitive:only-child { + border-width: 1px; +@@ -2642,12 +2756,17 @@ + } + + .primary-toolbar .button.raised.linked:active, ++.primary-toolbar .raised.linked .button:checked, + .primary-toolbar .raised.linked .button:active, + .toolbar .button.raised.linked:active, ++.toolbar .raised.linked .button:checked, + .toolbar .raised.linked .button:active, ++.toolbar .linked .button:checked, + .toolbar .linked .button:active, + .header-bar .button.raised.linked:active, ++.header-bar .raised.linked .button:checked, + .header-bar .raised.linked .button:active, ++.header-bar .linked .button:checked, + .header-bar .linked .button:active { + box-shadow: inset -1px 0 shade(@toolbar_bg_color, 0.8), + inset 1px 1px alpha(@dark_shadow, 0.1), +@@ -2666,21 +2785,37 @@ + } + + /* remove box shadow from last-child and only-child */ ++.primary-toolbar .button:checked *:insensitive.raised.linked:last-child, + .primary-toolbar .button:active *:insensitive.raised.linked:last-child, ++.primary-toolbar .button:checked *:insensitive.raised.linked:only-child, + .primary-toolbar .button:active *:insensitive.raised.linked:only-child, ++.primary-toolbar .raised.linked .button:checked *:insensitive:last-child, + .primary-toolbar .raised.linked .button:active *:insensitive:last-child, ++.primary-toolbar .raised.linked .button:checked *:insensitive:only-child + .primary-toolbar .raised.linked .button:active *:insensitive:only-child ++.toolbar .button:checked *:insensitive.raised.linked:last-child, + .toolbar .button:active *:insensitive.raised.linked:last-child, ++.toolbar .button:checked *:insensitive.raised.linked:only-child, + .toolbar .button:active *:insensitive.raised.linked:only-child, ++.toolbar .raised.linked .button:checked *:insensitive:last-child, + .toolbar .raised.linked .button:active *:insensitive:last-child, ++.toolbar .raised.linked .button:checked *:insensitive:only-child, + .toolbar .raised.linked .button:active *:insensitive:only-child, ++.toolbar .linked .button:checked *:insensitive:last-child, + .toolbar .linked .button:active *:insensitive:last-child, ++.toolbar .linked .button:checked *:insensitive:only-child, + .toolbar .linked .button:active *:insensitive:only-child, ++.header-bar .button:checked *:insensitive.raised.linked:last-child, + .header-bar .button:active *:insensitive.raised.linked:last-child, ++.header-bar .button:checked *:insensitive.raised.linked:only-child, + .header-bar .button:active *:insensitive.raised.linked:only-child, ++.header-bar .raised.linked .button:checked *:insensitive:last-child, + .header-bar .raised.linked .button:active *:insensitive:last-child, ++.header-bar .raised.linked .button:checked *:insensitive:only-child, + .header-bar .raised.linked .button:active *:insensitive:only-child, ++.header-bar .linked .button:checked *:insensitive:last-child, + .header-bar .linked .button:active *:insensitive:last-child, ++.header-bar .linked .button:checked *:insensitive:only-child, + .header-bar .linked .button:active *:insensitive:only-child { + box-shadow: none; + } +@@ -2722,21 +2857,37 @@ + inset -1px 1px alpha(@light_shadow, 0.3); + } + ++.primary-toolbar .button:checked.raised.linked:last-child, + .primary-toolbar .button:active.raised.linked:last-child, ++.primary-toolbar .button:checked.raised.linked:only-child, + .primary-toolbar .button:active.raised.linked:only-child, ++.primary-toolbar .raised.linked .button:checked:last-child, + .primary-toolbar .raised.linked .button:active:last-child, ++.primary-toolbar .raised.linked .button:checked:only-child, + .primary-toolbar .raised.linked .button:active:only-child, ++.toolbar .button:checked.raised.linked:last-child, + .toolbar .button:active.raised.linked:last-child, ++.toolbar .button:checked.raised.linked:only-child, + .toolbar .button:active.raised.linked:only-child, ++.toolbar .raised.linked .button:checked:last-child, + .toolbar .raised.linked .button:active:last-child, ++.toolbar .raised.linked .button:checked:only-child, + .toolbar .raised.linked .button:active:only-child, ++.toolbar .linked .button:checked:last-child, + .toolbar .linked .button:active:last-child, ++.toolbar .linked .button:checked:only-child, + .toolbar .linked .button:active:only-child, ++.header-bar .button:checked.raised.linked:last-child, + .header-bar .button:active.raised.linked:last-child, ++.header-bar .button:checked.raised.linked:only-child, + .header-bar .button:active.raised.linked:only-child, ++.header-bar .raised.linked .button:checked:last-child, + .header-bar .raised.linked .button:active:last-child, ++.header-bar .raised.linked .button:checked:only-child, + .header-bar .raised.linked .button:active:only-child, ++.header-bar .linked .button:checked:last-child, + .header-bar .linked .button:active:last-child, ++.header-bar .linked .button:checked:only-child, + .header-bar .linked .button:active:only-child { + box-shadow: inset 1px 1px alpha(@dark_shadow, 0.1), + inset -1px -1px alpha(@dark_shadow, 0.1); +@@ -2747,26 +2898,31 @@ + .primary-toolbar .button.raised.linked:active, + .primary-toolbar .button.raised.linked:insensitive, + .primary-toolbar .raised.linked .button, ++.primary-toolbar .raised.linked .button:checked, + .primary-toolbar .raised.linked .button:active, + .primary-toolbar .raised.linked .button:insensitive, + .toolbar .button.raised.linked, + .toolbar .button.raised.linked:active, + .toolbar .button.raised.linked:insensitive, + .toolbar .raised.linked .button, ++.toolbar .raised.linked .button:checked, + .toolbar .raised.linked .button:active, + .toolbar .raised.linked .button:insensitive, + .toolbar .linked .button, ++.toolbar .linked .button:checked, + .toolbar .linked .button:active, + .toolbar .linked .button:insensitive, + .header-bar .button.raised.linked, + .header-bar .button.raised.linked:active, + .header-bar .button.raised.linked:insensitive, + .header-bar .raised.linked .button, ++.header-bar .raised.linked .button:checked, + .header-bar .raised.linked .button:active, + .header-bar .raised.linked .button:insensitive, + .header-bar .linked .button, ++.header-bar .linked .button:checked, + .header-bar .linked .button:active, +-.header-bar .linked .button:insensitive, { ++.header-bar .linked .button:insensitive { + border-width: 1px; + border-radius: 0; + border-right-width: 0; +@@ -2778,24 +2934,29 @@ + .primary-toolbar .button.raised.linked:active:first-child, + .primary-toolbar .button.raised.linked:insensitive:first-child, + .primary-toolbar .raised.linked .button:first-child, ++.primary-toolbar .raised.linked .button:checked:first-child, + .primary-toolbar .raised.linked .button:active:first-child, + .primary-toolbar .raised.linked .button:insensitive:first-child, + .toolbar .button.raised.linked:first-child, + .toolbar .button.raised.linked:active:first-child, + .toolbar .button.raised.linked:insensitive:first-child, + .toolbar .raised.linked .button:first-child, ++.toolbar .raised.linked .button:checked:first-child, + .toolbar .raised.linked .button:active:first-child, + .toolbar .raised.linked .button:insensitive:first-child, + .toolbar .linked .button:first-child, ++.toolbar .linked .button:checked:first-child, + .toolbar .linked .button:active:first-child, + .toolbar .linked .button:insensitive:first-child, + .header-bar .button.raised.linked:first-child, + .header-bar .button.raised.linked:active:first-child, + .header-bar .button.raised.linked:insensitive:first-child, + .header-bar .raised.linked .button:first-child, ++.header-bar .raised.linked .button:checked:first-child, + .header-bar .raised.linked .button:active:first-child, + .header-bar .raised.linked .button:insensitive:first-child, + .header-bar .linked .button:first-child, ++.header-bar .linked .button:checked:first-child, + .header-bar .linked .button:active:first-child, + .header-bar .linked .button:insensitive:first-child { + border-width: 1px; +@@ -2810,24 +2971,29 @@ + .primary-toolbar .button.raised.linked:active:last-child, + .primary-toolbar .button.raised.linked:insensitive:last-child, + .primary-toolbar .raised.linked .button:last-child, ++.primary-toolbar .raised.linked .button:checked:last-child, + .primary-toolbar .raised.linked .button:active:last-child, + .primary-toolbar .raised.linked .button:insensitive:last-child, + .toolbar .button.raised.linked:last-child, + .toolbar .button.raised.linked:active:last-child, + .toolbar .button.raised.linked:insensitive:last-child, + .toolbar .raised.linked .button:last-child, ++.toolbar .raised.linked .button:checked:last-child, + .toolbar .raised.linked .button:active:last-child, + .toolbar .raised.linked .button:insensitive:last-child, + .toolbar .linked .button:last-child, ++.toolbar .linked .button:checked:last-child, + .toolbar .linked .button:active:last-child, + .toolbar .linked .button:insensitive:last-child, + .header-bar .button.raised.linked:last-child, + .header-bar .button.raised.linked:active:last-child, + .header-bar .button.raised.linked:insensitive:last-child, + .header-bar .raised.linked .button:last-child, ++.header-bar .raised.linked .button:checked:last-child, + .header-bar .raised.linked .button:active:last-child, + .header-bar .raised.linked .button:insensitive:last-child, + .header-bar .linked .button:last-child, ++.header-bar .linked .button:checked:last-child, + .header-bar .linked .button:active:last-child, + .header-bar .linked .button:insensitive:last-child { + border-width: 1px; +@@ -2842,24 +3008,29 @@ + .primary-toolbar .button.raised.linked:active:only-child, + .primary-toolbar .button.raised.linked:insensitive:only-child, + .primary-toolbar .raised.linked .button:only-child, ++.primary-toolbar .raised.linked .button:checked:only-child, + .primary-toolbar .raised.linked .button:active:only-child, + .primary-toolbar .raised.linked .button:insensitive:only-child, + .toolbar .button.raised.linked:only-child, + .toolbar .button.raised.linked:active:only-child, + .toolbar .button.raised.linked:insensitive:only-child, + .toolbar .raised.linked .button:only-child, ++.toolbar .raised.linked .button:checked:only-child, + .toolbar .raised.linked .button:active:only-child, + .toolbar .raised.linked .button:insensitive:only-child, + .toolbar .linked .button:only-child, ++.toolbar .linked .button:checked:only-child, + .toolbar .linked .button:active:only-child, + .toolbar .linked .button:insensitive:only-child, + .header-bar .button.raised.linked:only-child, + .header-bar .button.raised.linked:active:only-child, + .header-bar .button.raised.linked:insensitive:only-child, + .header-bar .raised.linked .button:only-child, ++.header-bar .raised.linked .button:checked:only-child, + .header-bar .raised.linked .button:active:only-child, + .header-bar .raised.linked .button:insensitive:only-child, + .header-bar .linked .button:only-child, ++.header-bar .linked .button:checked:only-child, + .header-bar .linked .button:active:only-child, + .header-bar .linked .button:insensitive:only-child { + border-width: 1px; +@@ -2991,16 +3162,22 @@ + background-image: none; + } + ++.osd.button:checked, + .osd.button:active, ++.osd .button:checked, + .osd .button:active, ++.osd GtkMenuButton.button:checked, + .osd GtkMenuButton.button:active { + border-color: shade(@osd_bg, 0.8); + background-color: shade(@osd_bg, 0.95); + background-image: none; + } + ++.osd.button:checked:hover, + .osd.button:active:hover, ++.osd .button:checked:hover, + .osd .button:active:hover, ++.osd GtkMenuButton.button:checked:hover, + .osd GtkMenuButton.button:active:hover { + border-color: shade(@osd_bg, 0.7); + } +@@ -3012,7 +3189,9 @@ + background-image: none; + } + ++.osd.button:checked *:insensitive, + .osd.button:active *:insensitive, ++.osd .button:checked *:insensitive, + .osd .button:active *:insensitive { + background-color: shade(@osd_bg, 0.80); + background-image: none; +@@ -3048,19 +3227,23 @@ + background-image: none; + } + ++.osd.toolbar .button:checked, + .osd.toolbar .button:active { + border-color: shade(@osd_bg, 0.8); + background-color: shade(@osd_bg, 0.95); + background-image: none; + } + ++.osd.toolbar .button:checked:hover, + .osd.toolbar .button:active:hover { + border-color: shade(@osd_bg, 0.7); + } + + .osd.toolbar .button:focus, + .osd.toolbar .button:hover:focus, ++.osd.toolbar .button:checked:focus, + .osd.toolbar .button:active:focus, ++.osd.toolbar .button:checked:hover:focus, + .osd.toolbar .button:active:hover:focus { + border-color: shade(@osd_bg, 0.7); + } +@@ -3071,6 +3254,7 @@ + background-image: none; + } + ++.osd.toolbar .button:checked *:insensitive, + .osd.toolbar .button:active *:insensitive { + border-color: shade(@osd_bg, 0.75); + background-color: shade(@osd_bg, 0.80); +@@ -3255,6 +3439,7 @@ + to (shade(@error_color, 1.09))); + } + ++.destructive-action.button:checked, + .destructive-action.button:active { + border-color: shade(@error_color, 0.7); + background-image: -gtk-gradient(linear, left top, left bottom, +@@ -3323,8 +3508,11 @@ + to (shade(@theme_selected_bg_color, 1.09))); + } + ++.selection-mode.header-bar .button:checked, + .selection-mode.header-bar .button:active, ++.selection-mode.toolbar .button:checked, + .selection-mode.toolbar .button:active, ++.selection-mode.toolbar GtkToolButton .button:checked, + .selection-mode.toolbar GtkToolButton .button:active { + border-color: shade(@theme_selected_bg_color, 0.7); + background-image: -gtk-gradient(linear, left top, left bottom, +@@ -3373,7 +3561,9 @@ + to (shade(@theme_selected_bg_color, 1.09))); + } + ++.selection-mode.header-bar .suggested-action.button:checked, + .selection-mode.header-bar .suggested-action.button:active, ++.selection-mode.toolbar .suggested-action.button:checked, + .selection-mode.toolbar .suggested-action.button:active, + .selection-mode.toolbar GtkToolButton.suggested-action:active { + border-color: shade(@theme_selected_bg_color, 0.7); +@@ -3417,7 +3607,9 @@ + color: shade(@theme_selected_bg_color, 0.5); + } + ++.selection-mode.header-bar .selection-menu.button:checked, + .selection-mode.header-bar .selection-menu.button:active, ++.selection-mode.toolbar .selection-menu.button:checked, + .selection-mode.toolbar .selection-menu.button:active { + color: shade(@theme_selected_bg_color, 0.6); + box-shadow: none; diff --git a/community/apk-post-messages/APKBUILD b/community/apk-post-messages/APKBUILD new file mode 100644 index 0000000000..dad2aa6ed8 --- /dev/null +++ b/community/apk-post-messages/APKBUILD @@ -0,0 +1,25 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=apk-post-messages +pkgver=0.10 +pkgrel=0 +pkgdesc="Print apk post-install messages" +url="http://alpinelinux.org" +arch="noarch" +license="GPL" +depends="apk-tools" +triggers="$pkgname.trigger=/usr/share/doc/*" +source="" + +_builddir="$srcdir" + +build() { + cd "$_builddir" + echo "Building $pkgname trigger package" +} + +package() { + cd "$_builddir" + mkdir -p "$pkgdir" +} + diff --git a/community/apk-post-messages/apk-post-messages.trigger b/community/apk-post-messages/apk-post-messages.trigger new file mode 100644 index 0000000000..224d295937 --- /dev/null +++ b/community/apk-post-messages/apk-post-messages.trigger @@ -0,0 +1,16 @@ +#!/bin/sh + +x=README.alpine +for i; do + if [ -f "$i/$x" ]; then + msg="| $i: $x |" + msg_len=$(( $(echo $msg |wc -m) - 1)) + printf "%${msg_len}s" | sed 's/ /-/g' + echo -e "\n$msg" + printf "%${msg_len}s" | sed 's/ /=/g' + echo -e "\n" + cat $i/$x + echo -e; break + fi +done + diff --git a/community/autossh/APKBUILD b/community/autossh/APKBUILD new file mode 100644 index 0000000000..ef27bd3518 --- /dev/null +++ b/community/autossh/APKBUILD @@ -0,0 +1,66 @@ +# Contributor: Carlo Landmeter <clandmeter@gmail.com> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=autossh +pkgver=1.4e +pkgrel=0 +pkgdesc="Automatically restart SSH sessions and tunnels" +url="http://www.harding.motd.ca/autossh/" +arch="all" +license="BSD" +depends="openssh-client" +depends_dev="" +makedepends="$depends_dev" +subpackages="$pkgname-doc" +source="http://www.harding.motd.ca/autossh/autossh-$pkgver.tgz + README.alpine + " + +_builddir="$srcdir"/autossh-$pkgver +prepare() { + local i + cd "$_builddir" + for i in $source; do + case $i in + *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; + esac + done +} + +build() { + cd "$_builddir" + ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + --localstatedir=/var \ + || return 1 + make || return 1 +} + +package() { + cd "$_builddir" + install -D -m755 autossh \ + "$pkgdir"/usr/bin/autossh || return 1 + install -D -m644 CHANGES \ + "$pkgdir"/usr/share/doc/autossh/CHANGES || return 1 + install -D -m644 README \ + "$pkgdir"/usr/share/doc/autossh/README || return 1 + install -D -m644 autossh.host \ + "$pkgdir"/usr/share/autossh/examples/autossh.host || return 1 + install -D -m644 rscreen \ + "$pkgdir"/usr/share/autossh/examples/rscreen || return 1 + install -D -m644 autossh.1 \ + "$pkgdir"/usr/share/man/man1/autossh.1 || return 1 + install -Dm644 "$srcdir"/README.alpine \ + "$pkgdir"/usr/share/doc/$pkgname/README.alpine || return 1 +} + +md5sums="f86684b96e99d22b2e9d35dc63b0aa29 autossh-1.4e.tgz +fb31542bb76c90a8286fdf8eca402d1e README.alpine" +sha256sums="9e8e10a59d7619176f4b986e256f776097a364d1be012781ea52e08d04679156 autossh-1.4e.tgz +7e1a64e013743e94aa9477968d1a9dc9ca71f11b45a0530088d0c03b19f474cb README.alpine" +sha512sums="2f71403ee005103c6a3e2e669f6b26153161c95c8dacd3e73d61673461b3512348636877760d911341771e744c0a682b107df4ac48621661ff36a9fc0191f2fb autossh-1.4e.tgz +25ec2d17c5b93d8c3f5b41f1bb2671432e8d29081621fe58ff8de4c20171b7447459272a27264440a947ef5867ed15bbaaea8ea7ec02783956055e0ee8e31128 README.alpine" diff --git a/community/autossh/README.alpine b/community/autossh/README.alpine new file mode 100644 index 0000000000..d7013c3ad8 --- /dev/null +++ b/community/autossh/README.alpine @@ -0,0 +1,34 @@ +Example: Connecting to remote postgresql +======================================== + +(1) On both the local & remote hosts: + +adduser -s /bin/false autossh <with blank passwords> +------------------------------------------------------------------- + +(2) On the local client create an SSH key with an empty password: + +su -s /bin/sh autossh +echo 'y' |ssh-keygen -t ed25519 -N '' +------------------------------------------------------------------- + +(3) If using runit for service supervision < /etc/sv/autossh/run >: + +------------------------------------------------------------------- +#!/bin/sh +exec 2>&1 +su -s /bin/sh autossh -c \ +'autossh -M 0 -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -L 1234:localhost:1234 -N -l autossh remote.ip.addr' +------------------------------------------------------------------------------------------------------------------------- +ln -s /etc/sv/autossh /etc/service/autossh +------------------------------------------------------------------------------- +** if running autossh in a script without using runit add -f to ssh options **| +------------------------------------------------------------------------------- + +(4) Connect with: + +psql -h 127.0.0.1 -p 1234 -U username -d database +------------------------------------------------------------------------------- +openssh-server: works out of the box | ed25519 keys possible +dropbear: echo "/bin/false" >> /etc/shells | ecdsa keys possible +tinyssh: port forwarding not yet implemented | ed25519 keys possible diff --git a/community/bitcoin/APKBUILD b/community/bitcoin/APKBUILD new file mode 100644 index 0000000000..59101b5005 --- /dev/null +++ b/community/bitcoin/APKBUILD @@ -0,0 +1,102 @@ +# Contributor: Natanael Copa <ncopa@alpinelinux.org> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=bitcoin +pkgver=0.13.0_rc2 +_ver=${pkgver/_/} +pkgrel=1 +pkgdesc="decentralized P2P electronic cash system" +url="http://www.bitcoin.org/" +arch="all" +license="MIT" +depends_dev="" +makedepends="$depends_dev autoconf automake libtool boost-dev openssl-dev db-dev miniupnpc-dev qt5-qtbase-dev + qt5-qttools-dev protobuf-dev libqrencode-dev libevent-dev chrpath" +install="$pkgname.post-install $pkgname.pre-install" +subpackages="$pkgname-dev $pkgname-qt $pkgname-cli $pkgname-tx $pkgname-tests" +source="$pkgname-$_ver.tar.gz::https://github.com/bitcoin/bitcoin/archive/v${_ver}.tar.gz + ssize_t.patch + $pkgname.initd + $pkgname.conf + " + +_builddir="$srcdir"/bitcoin-$_ver +prepare() { + local i + cd "$_builddir" + for i in $source; do + case $i in + *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; + esac + done + ./autogen.sh +} + +build() { + cd "$_builddir" + ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --prefix=/usr \ + --mandir=/usr/share/man \ + --with-incompatible-bdb \ + --with-gui=qt5 \ + --with-utils \ + --disable-ccache \ + --disable-static \ + --enable-hardening \ + || return 1 + make || return 1 +} + +package() { + cd "$_builddir" + make install DESTDIR="$pkgdir" || return 1 + install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname || return 1 + install -m600 -D "$srcdir"/$pkgname.conf "$pkgdir"/etc/$pkgname.conf || return 1 + rm -f "$pkgdir"/usr/lib/*.la +} + +qt() { + pkgdesc="Bitcoin with a Qt frontend & QR Code support" + mkdir -p "$subpkgdir"/usr/bin + mv "$pkgdir"/usr/bin/bitcoin-qt "$subpkgdir"/usr/bin/ || return 1 +} + +cli() { + pkgdesc="Bitcoin CLI" + mkdir -p "$subpkgdir"/usr/bin + mv "$pkgdir"/usr/bin/bitcoin-cli "$subpkgdir"/usr/bin/ || return 1 +} + +tx() { + pkgdesc="Bitcoin TX (Transaction Tool)" + mkdir -p "$subpkgdir"/usr/bin + mv "$pkgdir"/usr/bin/bitcoin-tx "$subpkgdir"/usr/bin/ || return 1 +} + +tests() { + pkgdesc="Bitcoin & Bitcoin-QT Unit Tests)" + mkdir -p "$subpkgdir"/usr/bin + chrpath -d "$pkgdir"/usr/bin/test_bitcoin || return 1 + mv "$pkgdir"/usr/bin/test_bitcoin-qt "$subpkgdir"/usr/bin/ || return 1 + mv "$pkgdir"/usr/bin/test_bitcoin "$subpkgdir"/usr/bin/ || return 1 +} + +dev() { + mkdir -p "$subpkgdir"/usr + mv "$pkgdir"/usr/lib "$subpkgdir"/usr/ || return 1 + mv "$pkgdir"/usr/include "$subpkgdir"/usr/ || return 1 +} + +md5sums="f85ff5ce0dd0253e07179bc5a562e128 bitcoin-0.13.0rc2.tar.gz +716a88e668729e89d3eb929da86f7f04 ssize_t.patch +70a29202a5fa77e50e92083b014909c9 bitcoin.initd +3e9b4a37bb46e6cd83b6824870c58484 bitcoin.conf" +sha256sums="163d2b6af8b34a200d884a89a678cb9f12269f596bcaa37da28bd68f06d1c85b bitcoin-0.13.0rc2.tar.gz +f0a094c7b374338ad153ee06b7dd2369dad6b97b1f1bb0252da12c9aaace5321 ssize_t.patch +432b769f9e7cc2e728d72dd38c20ef54132da4a36134988e3401c8451f31bc42 bitcoin.initd +b7a31bf251f1011ab6584b610acac8494612c2012e9771985228c36c08a315ac bitcoin.conf" +sha512sums="bc7b87e2d3acaba46159e4b8a360adc5efa0bf7cc75dfa7a653cb4099efe7325304ebed8774ee8da9d380f548dbdc94e407c693d54ecf85cb076be9405350c64 bitcoin-0.13.0rc2.tar.gz +98aa5ad81bdb4ae961b791bc978c39117cdf2d83c2181f92bebbb0db107d9b6e86eda265fb3f93ff8a5ca8a7754d7148818b98095d57201dff9363d60b97e7dd ssize_t.patch +cb2454c353014213bd25fbb938affe79639aa82542c560eaa910e4d9fc01d1cbfec6d8ff004aab9a123ca62e26ed2ebeb264b052a36d3d7154758061065664ab bitcoin.initd +48abce0f0a5b088c957aa5cb2bcf9bb520593caa7a20019bdf785e43f7d2459968240d4529dfa30be2fca92891bf50c1253a513530511e99d8ee471d9ff6bd95 bitcoin.conf" diff --git a/community/bitcoin/bitcoin.conf b/community/bitcoin/bitcoin.conf new file mode 100644 index 0000000000..4f070b19ec --- /dev/null +++ b/community/bitcoin/bitcoin.conf @@ -0,0 +1,13 @@ +### Bitcoin configuration for Alpine Linux #### +# # +##### data directory is /var/lib/bitcoin ###### +##### & set in /etc/init.d/bitcoin not here ### +# +#proxy=127.0.0.1:9050 #use TOR Socks Proxy +rpcallowip=127.0.0.1 +rpcuser=changeme +rpcpassword=changeme +rpcport=changeme +daemon=1 +#gen=1 #generate bitcoins + diff --git a/community/bitcoin/bitcoin.initd b/community/bitcoin/bitcoin.initd new file mode 100644 index 0000000000..393ea45374 --- /dev/null +++ b/community/bitcoin/bitcoin.initd @@ -0,0 +1,38 @@ +#!/sbin/openrc-run + +# Bitcoin init.d file for Alpine Linux. + +name=bitcoind +daemon=/usr/bin/$name +config=/etc/bitcoin.conf +user=bitcoin +group=bitcoin +## supercedes datadir set in $config ## +datadir=/var/lib/bitcoin +pidfile=/var/run/bitcoin/$name.pid + +depend() { + need net + after logger firewall +} + +start() { + ebegin "Starting ${name}" + # enforce permissions + checkpath -q -d ${pidfile%/*} -o ${user}:${group} + checkpath -q -d ${datadir} -m 0700 -o ${user}:${group} + checkpath -q -f ${config} -m 0600 -o ${user}:${group} + start-stop-daemon --start --quiet \ + --pidfile ${pidfile} \ + --user ${user}:${group} \ + --exec ${daemon} -- -conf=${config} -datadir=${datadir} -pid=${pidfile} + eend $? +} + +stop() { + ebegin "Stopping ${name}" + start-stop-daemon --stop --quiet \ + --pidfile ${pidfile} \ + --exec ${daemon} + eend $? +} diff --git a/community/bitcoin/bitcoin.post-install b/community/bitcoin/bitcoin.post-install new file mode 100644 index 0000000000..9d2510fb2d --- /dev/null +++ b/community/bitcoin/bitcoin.post-install @@ -0,0 +1,35 @@ +#!/bin/sh + +NORMAL="\033[1;0m" +STRONG="\033[1;1m" +GREEN="\033[1;32m" + +config=$(grep -F 'config=' /etc/init.d/bitcoin |sed 's/config=//') + +randgen() { + output=$(cat /dev/urandom | tr -dc '0-9a-zA-Z!@#$%^&*_+-' | head -c${1:-$1}) 2>/dev/null + echo $output +} + +findRandomTcpPort(){ + port=$(( 1024 + $(( $RANDOM % $(( 65534 - 1024 )) )) )) + while netstat -atn | grep -q :$port; do port=$(expr $port + 1); done; echo $port +} + +GenPasswd(){ + sed -i "/rpcuser=/ c \rpcuser=USER-"$(randgen 32)"" $config + sed -i "/rpcpassword=/ c \rpcpassword=PW-"$(randgen 64)"" $config + sed -i "/rpcport=/ c \rpcport="$(findRandomTcpPort)"" $config + print_green "Generated random user / password / port in:" " $config\n" +} + +print_green() { + local prompt="${STRONG}$1${GREEN}$2${NORMAL}" + printf "${prompt}%s" +} + +if grep -F "changeme" $config 1>/dev/null; then + GenPasswd +fi + +exit 0 diff --git a/community/bitcoin/bitcoin.pre-install b/community/bitcoin/bitcoin.pre-install new file mode 100644 index 0000000000..3f83b3810a --- /dev/null +++ b/community/bitcoin/bitcoin.pre-install @@ -0,0 +1,6 @@ +#!/bin/sh + +addgroup -S bitcoin 2>/dev/null +adduser -S -D -H -h /var/lib/bitcoin -s /sbin/nologin -G bitcoin -g bitcoin bitcoin 2>/dev/null + +exit 0 diff --git a/community/bitcoin/ssize_t.patch b/community/bitcoin/ssize_t.patch new file mode 100644 index 0000000000..2c21854ea3 --- /dev/null +++ b/community/bitcoin/ssize_t.patch @@ -0,0 +1,12 @@ +diff --git a/src/leveldb/db/db_iter.cc b/src/leveldb/db/db_iter.cc +index 071a54e..68a18f2 100644 +--- a/src/leveldb/db/db_iter.cc ++++ b/src/leveldb/db/db_iter.cc +@@ -2,6 +2,7 @@ + // Use of this source code is governed by a BSD-style license that can be + // found in the LICENSE file. See the AUTHORS file for names of contributors. + ++#include <sys/types.h> + #include "db/db_iter.h" + + #include "db/filename.h" diff --git a/community/btrbk/APKBUILD b/community/btrbk/APKBUILD new file mode 100644 index 0000000000..01d1722346 --- /dev/null +++ b/community/btrbk/APKBUILD @@ -0,0 +1,40 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=btrbk +pkgver=0.23.3 +pkgrel=0 +pkgdesc="Backup tool for btrfs subvolumes with atomic snapshots & incremental transfers" +url="http://digint.ch/btrbk/" +arch="noarch" +license="GPL3" +depends="perl perl-date-calc btrfs-progs" +depends_dev="" +makedepends="$depends_dev" +subpackages="$pkgname-doc" +source="http://digint.ch/download/$pkgname/releases/$pkgname-$pkgver.tar.xz" + +_builddir="$srcdir"/$pkgname-$pkgver +prepare() { + local i + cd "$_builddir" + for i in $source; do + case $i in + *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; + esac + done +} + +build() { + cd "$_builddir" + return 0 +} + +package() { + cd "$_builddir" + make DESTDIR="$pkgdir" install || return 1 + rm -rf "$pkgdir"/usr/lib || return 1 # systemd scripts +} + +md5sums="66ba390efd0db3e55db4bd12ee7876fb btrbk-0.23.3.tar.xz" +sha256sums="779636116261e3e0fe64ec986e39be594c04454d87be8005115c8577f62b1725 btrbk-0.23.3.tar.xz" +sha512sums="d9fc29b8e2a6e191be93c7845c7f1f99ab60fb4ec910d8b60947ef902b7fdaf789bc73a4884bdd6060f1b180cafaacd5fa8f93dc29624dfea8a2890618ce4012 btrbk-0.23.3.tar.xz" diff --git a/community/entr/APKBUILD b/community/entr/APKBUILD new file mode 100644 index 0000000000..f8af64df38 --- /dev/null +++ b/community/entr/APKBUILD @@ -0,0 +1,43 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=entr +_srcdir=eradman-$pkgname-220131754e1c +pkgver=3.3 +pkgrel=0 +pkgdesc="Event Notify Test Runner: Run arbitrary commands when files change" +url="http://entrproject.org" +arch="all" +license="ISC / BSD" +subpackages="$pkgname-doc" +source="http://entrproject.org/code/$pkgname-$pkgver.tar.gz + remove-strlcpy-compat.h.patch + " + +_builddir="$srcdir"/$_srcdir +prepare() { + local i + cd "$_builddir" + for i in $source; do + case $i in + *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; + esac + done +} + +build() { + cd "$_builddir" + ./configure || return 1 + CFLAGS="-static" make test || return 1 +} + +package() { + cd "$_builddir" + PREFIX="$pkgdir/usr" make install || return 1 +} + +md5sums="769f353934b73e929a0a0fb9fca79c41 entr-3.3.tar.gz +5ae5aa6f2b8de9747312b32b17c56d0b remove-strlcpy-compat.h.patch" +sha256sums="701cb7b0a72b6c9ba794ad7cc15b6ebcc2e0c978bb6906c8ae407567a044461f entr-3.3.tar.gz +2bc42c8c154acf0aaa876b4395c2e0e7b20773e48d50b0c8a15e90ca2e8db472 remove-strlcpy-compat.h.patch" +sha512sums="aa45bef57fb12d5ddaaebd8de03df33b69a833e4b729ad9fb0844af1c8b7031fc37ca1c81170b20967aa7dbf8854849a7b1f46da6d1d13a49d4d33502269bbca entr-3.3.tar.gz +9d0f4e06cd5c312788f5ff2efa13f55f78a3491de3ddf64612a6c731072e8514deb1cea48c630194cbda71c58c57e9a6b937172eca58be0b1fb4f0f7a1652e2d remove-strlcpy-compat.h.patch" diff --git a/community/entr/remove-strlcpy-compat.h.patch b/community/entr/remove-strlcpy-compat.h.patch new file mode 100644 index 0000000000..ae2d271a1b --- /dev/null +++ b/community/entr/remove-strlcpy-compat.h.patch @@ -0,0 +1,14 @@ +--- eradman-entr-c20e34ec153a/missing/compat.h ++++ eradman-entr-c20e34ec153a/missing/compat.h.new +@@ -4,11 +4,6 @@ + #define NOTE_TRUNCATE 0 + #endif + +-#if defined(_LINUX_PORT) +-#include <sys/types.h> +-size_t strlcpy(char *to, const char *from, int l); +-#endif +- + #if defined(_MACOS_PORT) + #include <stdio.h> + FILE *fmemopen(void *buf, size_t size, const char *mode); diff --git a/community/ffmpegthumbnailer/APKBUILD b/community/ffmpegthumbnailer/APKBUILD new file mode 100644 index 0000000000..bf1efd94eb --- /dev/null +++ b/community/ffmpegthumbnailer/APKBUILD @@ -0,0 +1,41 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=ffmpegthumbnailer +pkgver=2.1.1 +pkgrel=0 +pkgdesc="Lightweight video thumbnailer that can be used by file managers" +url="https://github.com/dirkvdb/ffmpegthumbnailer" +arch="all" +license="GPLv2" +makedepends="$depends_dev ffmpeg-dev libpng-dev libjpeg-turbo-dev cmake" +subpackages="$pkgname-dev $pkgname-doc" +source="$pkgname-$pkgver.tar.bz2::https://github.com/dirkvdb/$pkgname/releases/download/$pkgver/$pkgname-$pkgver.tar.bz2" + +_builddir="$srcdir"/$pkgname-$pkgver +prepare() { + local i + cd "$_builddir" + for i in $source; do + case $i in + *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; + esac + done +} + +build() { + cd "$_builddir" + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -DENABLE_GIO=ON -DENABLE_THUMBNAILER=ON . || return 1 + make || return 1 +} + +package() { + cd "$_builddir" + make DESTDIR="$pkgdir" install || return 1 + if [ -d "$pkgdir/usr/lib64" ]; then + mv "$pkgdir"/usr/lib64 "$pkgdir"/usr/lib + fi +} + +md5sums="753c8ba68f66ae085ef178d7c5966cae ffmpegthumbnailer-2.1.1.tar.bz2" +sha256sums="51bca83c0cfae283e8e2f323aa49e0c6ced206c5a068332b4be974d3905cf055 ffmpegthumbnailer-2.1.1.tar.bz2" +sha512sums="2ac9e8b904e73086d0bf0f586a971bf3807d41bd394505164461731099c17570b45d71374e2bbf6fa2d0d7d47011564e06230b360255535120a9969fde3888a4 ffmpegthumbnailer-2.1.1.tar.bz2" diff --git a/community/firejail/APKBUILD b/community/firejail/APKBUILD new file mode 100644 index 0000000000..1820e2a51c --- /dev/null +++ b/community/firejail/APKBUILD @@ -0,0 +1,56 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=firejail +pkgver=0.9.42_rc1 +_pkgver=${pkgver//_/-} +pkgrel=1 +pkgdesc="Linux namespaces and seccomp-bpf sandbox" +url="https://firejail.wordpress.com/" +arch="all !armhf" +license="GPL2" +depends="bash" +depends_dev="" +makedepends="$depends_dev linux-headers" +install="" +options="suid" +subpackages="$pkgname-doc $pkgname-bash-completion:bashcomp" +source="$pkgname-$pkgver.tar.gz::https://github.com/netblue30/$pkgname/archive/$_pkgver.tar.gz" + +builddir="$srcdir"/$pkgname-$_pkgver +prepare() { + default_prepare || return 1 + find "$builddir" -name Makefile.in -exec sed -i -r \ + -e '/CFLAGS/s: (-O2|-ggdb) : :g' \ + -e '1iCC=@CC@' {} + || die +} + +build() { + cd "$builddir" + ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --localstatedir=/var \ + || return 1 + make || return 1 +} + +bashcomp() { + depends="" + pkgdesc="Bash completions for $pkgname" + install_if="$pkgname=$pkgver-r$pkgrel bash" + arch="noarch" + mkdir -p "$subpkgdir"/usr + mv "$pkgdir"/usr/share "$subpkgdir"/usr/ +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install || return 1 +} + +md5sums="34f0c17c302103fce07b75346554a5b8 firejail-0.9.42_rc1.tar.gz" +sha256sums="66ab1657fba1a593be7b6c8a6df509dc18b48eae67dfa656e65c37607238b742 firejail-0.9.42_rc1.tar.gz" +sha512sums="e418a67d95c0eb62e291331c4e142c622deba05c78ea7255d643cbf7af89703adc99f35b98af688a686cd35b78d6a79e1bf5067d59871c63c87191d574e88d74 firejail-0.9.42_rc1.tar.gz" diff --git a/community/firetools/APKBUILD b/community/firetools/APKBUILD new file mode 100644 index 0000000000..f3e0c71afb --- /dev/null +++ b/community/firetools/APKBUILD @@ -0,0 +1,38 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=firetools +pkgver=0.9.40.1 +pkgrel=0 +pkgdesc="Firejail sandbox launcher integrated with the system tray" +url="https://l3net.wordpress.com/projects/firejail/#firetools" +arch="all !armhf" +license="GPL2" +depends="firejail xterm qt5-qtsvg mesa-dri-swrast" +depends_dev="" +makedepends="$depends_dev qt5-qtbase-dev qt5-qtsvg-dev" +install="" +subpackages="$pkgname-doc" +source="$pkgname-$pkgver.tar.gz::https://github.com/netblue30/firetools/archive/$pkgver.tar.gz" + +builddir="$srcdir"/$pkgname-$pkgver +build() { + cd "$builddir" + ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --with-qmake=/usr/lib/qt5/bin/qmake \ + || return 1 + make || return 1 +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install || return 1 +} + +md5sums="c127fb6433e1a74b2065c311bb2d3726 firetools-0.9.40.1.tar.gz" +sha256sums="518d4af3a761dff417208e2fc4ce8ae2e897ef03db1096d636e22d606b21edf8 firetools-0.9.40.1.tar.gz" +sha512sums="8a148ed9608d15074e9d8f4f947f1af6a75a5b03976835c40df7b9f1efb937914e0c08d44b5c71637fba17a189d61707ef613230a11ba29d71f305b8934dfb5b firetools-0.9.40.1.tar.gz" diff --git a/community/fwsnort/APKBUILD b/community/fwsnort/APKBUILD new file mode 100644 index 0000000000..90f96e5dd5 --- /dev/null +++ b/community/fwsnort/APKBUILD @@ -0,0 +1,76 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=fwsnort +pkgver=1.6.5 +pkgrel=0 +pkgdesc="Application layer IDS/IPS by translating snort rules into iptables" +url="http://www.cipherdyne.org/fwsnort/" +arch="noarch" +license="GPL" +depends="perl perl-netaddr-ip perl-iptables-parse iptables ip6tables net-tools" +depends_dev="wget" +makedepends="$depends_dev" +install="$pkgname.post-install" +source="http://www.cipherdyne.org/$pkgname/download/$pkgname-nodeps-$pkgver.tar.gz + fwsnort.up + fwsnort.update + periodic.daily + " + +_builddir="$srcdir"/$pkgname-$pkgver + +build() { + cd "$_builddir" + + #Disable Root requirement to build + START=$(sed -n '/die "You need to be root (or equivalent UID 0"/=' ./install.pl) + END=$(expr $START + 1) + #Busybox sed does not support +1d + sed -e ''$START','$END'd' ./install.pl -i + + #prevent chmod 0500 halting the build + sed -e "s|0500|0755|" ./install.pl -i + + #change MAN path so package builds + sed -e "s|/usr/share/man/man8|$pkgdir&|" ./install.pl -i + + # --install-test-dir sets the INSTALL_ROOT to $src/../test/fwsnort-test + # avoids installation attempted into /etc /usr /var + # -S disables dependency installs (we also build with the nodep sources) + ./install.pl -S --install-test-dir +} + +package() { + cd "$_builddir" + mkdir -p $pkgdir/etc \ + $pkgdir/usr \ + $pkgdir/usr + cp -rf $srcdir/fwsnort-$pkgver/test/fwsnort-install/* $pkgdir + + # delete references to $pkgdir made by the installer + cp -f $srcdir/fwsnort-$pkgver/fwsnort.conf $pkgdir/etc/fwsnort/fwsnort.conf + #fix permissions + chmod 0500 $pkgdir/etc/fwsnort $pkgdir/etc/fwsnort/snort_rules + chmod 0500 $pkgdir/usr/sbin/fwsnort + chmod 0600 $pkgdir/etc/fwsnort/fwsnort.conf + + # install rule / signature update script + install -Dm755 "$srcdir"/fwsnort.update "$pkgdir"/usr/bin/update-fwsnort + # install iptables rule splicing script + install -Dm755 "$srcdir"/fwsnort.up "$pkgdir"/etc/network/if-pre-up.d/fwsnort + # install daily cron + install -Dm755 "$srcdir"/periodic.daily "$pkgdir"/etc/periodic/daily/fwsnort +} + +md5sums="a822b8a8eb482400b192acb7ea7ae342 fwsnort-nodeps-1.6.5.tar.gz +442039bc04d553c7c5f9d3fc4269cc71 fwsnort.up +ab969dd4b3154f8ce663e51473eda6c7 fwsnort.update +80bd0a7b0c1392e8a279d95e06120ca4 periodic.daily" +sha256sums="8a74abb75bd3c38fc00650e3d99aa2c8d657f2017c41c8c9aab5670d2afc5d26 fwsnort-nodeps-1.6.5.tar.gz +8caf113ff779a02fe97288d545f029111151fac9f342be9b40aa9f80e49dd359 fwsnort.up +a015a512ba9c7b3de7a8da42b33fd1eace25544b4d8b25c3a5f465c8d765a384 fwsnort.update +f080f4cb0b8e915a5d3af798b46b13fee0d2258d9c8c9dffafa4ecc0b9e1bbe6 periodic.daily" +sha512sums="6103bc8a04fbd1207f8bcae81e7d6522a50bb25d3f901561525649d4aeeb7a955f779968058471f2b8a4ab28e8358de429ee51d2f2cea24cc07f8fb02037db78 fwsnort-nodeps-1.6.5.tar.gz +3c97b5f4bb922086acd62305baae4ba1d91e6e627d063f131f98e08da3f57b607b35558eae2cf292b3997d25f09147039f95123161f8f29c5b97b71c80811e9f fwsnort.up +2a1e7ca6dc1c4a6e59907175c3483736f0efe1dcd8035dae2b903cd22fe953d29333939ad9e0a6f446480eda55370f4b11a77016932bef73e769b5e5401e92c0 fwsnort.update +763b459d43319e9b6678a5addd96b3542c629379f9f11095bc158b1ef08b039cd776ceedd6207953ab01000804d7580a3a8223b352b407d3cc6a05c27d96fcb0 periodic.daily" diff --git a/community/fwsnort/fwsnort.post-install b/community/fwsnort/fwsnort.post-install new file mode 100644 index 0000000000..b4e80d6c5c --- /dev/null +++ b/community/fwsnort/fwsnort.post-install @@ -0,0 +1,16 @@ +#!/bin/sh +# fwsnort post install script +############################# + +NORMAL="\033[1;0m" +STRONG="\033[1;1m" +GREEN="\033[1;32m" + +print_strong() { + local prompt="${STRONG}$1 ${GREEN}$2${NORMAL}" + printf "${prompt} %s\n" +} + +print_strong "\nFWSNORT installed & daily signature updates configured.\n\nTo update now run:" "\t/usr/bin/update-fwsnort\n" +exit 0 + diff --git a/community/fwsnort/fwsnort.up b/community/fwsnort/fwsnort.up new file mode 100644 index 0000000000..b750f59098 --- /dev/null +++ b/community/fwsnort/fwsnort.up @@ -0,0 +1,5 @@ +#!/bin/sh + +#splice fwsnort rules into iptables whenever the network comes up +/var/lib/fwsnort/fwsnort.sh + diff --git a/community/fwsnort/fwsnort.update b/community/fwsnort/fwsnort.update new file mode 100644 index 0000000000..41dc608f6d --- /dev/null +++ b/community/fwsnort/fwsnort.update @@ -0,0 +1,15 @@ +#!/bin/sh + +# update fwsnort rules / psad signatures +/usr/sbin/fwsnort --update-rules +#generate iptables ruleset +/usr/sbin/fwsnort +#splice rules into iptables +/var/lib/fwsnort/fwsnort.sh + +if ps aux | grep psad; then + psad --sig-update + echo "running 'psad -H'" + psad -H +fi + diff --git a/community/fwsnort/periodic.daily b/community/fwsnort/periodic.daily new file mode 100644 index 0000000000..ffc785d82d --- /dev/null +++ b/community/fwsnort/periodic.daily @@ -0,0 +1,5 @@ +#!/bin/sh +#update FWSNORT Rules & PSAD signatures daily +/usr/bin/update-fwsnort +exit 0 + diff --git a/community/gnome-colors/APKBUILD b/community/gnome-colors/APKBUILD new file mode 100644 index 0000000000..ba192241ca --- /dev/null +++ b/community/gnome-colors/APKBUILD @@ -0,0 +1,75 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=gnome-colors +pkgver=5.5.1 +pkgrel=1 +pkgdesc="gnome-colors icon themes meta package (all themes)" +url="https://code.google.com/p/gnome-colors/" +arch="noarch" +license="GPLv2" +subpackages="$pkgname-common + gnome-brave-icon-theme:brave + gnome-dust-icon-theme:dust + gnome-human-icon-theme:human + gnome-illustrious-icon-theme:illustrious + gnome-noble-icon-theme:noble + gnome-wine-icon-theme:wine + gnome-wise-icon-theme:wise + " +depends="$pkgname-common gnome-brave-icon-theme gnome-dust-icon-theme gnome-human-icon-theme + gnome-illustrious-icon-theme gnome-noble-icon-theme gnome-wine-icon-theme gnome-wise-icon-theme" + +source="https://gnome-colors.googlecode.com/files/gnome-colors-$pkgver.tar.gz" + +_builddir="$srcdir"/$pkgname-$pkgver + +prepare() { + mkdir $_builddir + ls -1 | egrep -v "$pkgver|.patch" | xargs -I{} mv {} $_builddir/ +} + +package() { + cd "$_builddir" || return 1 + find gnome* -name 'xchat*' | while read i; do + ln -s "${i##*/}" "${i/xchat/hexchat}" || break + done + mkdir -p "$pkgdir/$pkgname" +} + +_app() { + local app="$1" final_name= color= + vmsg="variation of the" cmsg="icons for all" + + case "$app" in + brave) color="Blue $vmsg";; + colors-common) color="Common $cmsg";; + dust) color="Chocolate $vmsg";; + human) color="Orange $vmsg";; + illustrious) color="Pink $vmsg";; + noble) color="Purple $vmsg";; + wine) color="Red $vmsg";; + wise) color="Green $vmsg";; + esac + + pkgdesc="$color GNOME-Colors icon theme" + if [ "$app" != "colors-common" ]; then + depends="$pkgname-common" + fi + + cd "$_builddir" + mkdir -p "$subpkgdir/usr/share/icons" + mv "gnome-$app" "$subpkgdir/usr/share/icons/" || return 1 +} + +brave() { _app brave 'brave*'; } +common() { _app colors-common 'colors-common*'; } +dust() { _app dust 'dust*'; } +human() { _app human 'human*'; } +illustrious() { _app illustrious 'illustrious*'; } +noble() { _app noble 'noble*'; } +wine() { _app wine 'wine*'; } +wise() { _app wise 'wise*'; } + +md5sums="8ec81b556bac351817bd56a1701dbbfb gnome-colors-5.5.1.tar.gz" +sha256sums="1e91d845a753eb38671e7614a786f852ab858a12983111e780da4a47c9debe58 gnome-colors-5.5.1.tar.gz" +sha512sums="23d1fb9b96cd4287acc0f540c8a7abed1b9f16d7e2bc952beedc365cfd71a3a0134382a7f4bb1c01c62dc376acb6aaf81332167869ec6e8c036679e89d325ff3 gnome-colors-5.5.1.tar.gz" diff --git a/community/imapsync/APKBUILD b/community/imapsync/APKBUILD new file mode 100644 index 0000000000..40b6972a87 --- /dev/null +++ b/community/imapsync/APKBUILD @@ -0,0 +1,32 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=imapsync +pkgver=1.678 +pkgrel=1 +pkgdesc="IMAP synchronisation, sync, copy or migration tool" +url="http://imapsync.lamiral.info" +arch="noarch" +license="custom" +depends="perl-digest-hmac perl-authen-ntlm perl-io-compress perl-data-dumper \ + perl-data-uniqid perl-digest-md5 perl-file-copy-recursive perl-io-socket-inet6 \ + perl-io-socket-ssl perl-io-tee perl-mail-imapclient perl-parse-recdescent \ + perl-term-readkey perl-test-pod perl-test-tester perl-unicode-string perl-uri-escape" +depends_dev="" +makedepends="$depends_dev perl-module-scandeps perl-par-packer" +subpackages="$pkgname-doc" +source="https://github.com/$pkgname/$pkgname/archive/$pkgname-$pkgver.tar.gz" + +builddir="$srcdir"/$pkgname-$pkgname-$pkgver +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install || return 1 + + mkdir -p "$pkgdir"/usr/share/doc/$pkgname + install -Dm644 FAQ.d/* "$pkgdir"/usr/share/doc/$pkgname/ || return 1 + + install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE || return 1 +} + +md5sums="065961c37544635861a068a0596e4e29 imapsync-1.678.tar.gz" +sha256sums="77cd7b58bc1872bcf6c531ee8f764dda87e0dec3f6ffed752748ff9ae74534b0 imapsync-1.678.tar.gz" +sha512sums="88dd59bbd1567f76c70aca74d86540f00baa6df0869e7679505e8402138665e0380b942167b1cfe4fb55c5e01402b7820163bfa9d296de67e05248699592b799 imapsync-1.678.tar.gz" diff --git a/community/inetutils-syslogd/APKBUILD b/community/inetutils-syslogd/APKBUILD new file mode 100644 index 0000000000..24ac837ad1 --- /dev/null +++ b/community/inetutils-syslogd/APKBUILD @@ -0,0 +1,98 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=inetutils-syslogd +_pkgname=inetutils +pkgver=1.9.4 +pkgrel=1 +pkgdesc="A small syslogd for logging to multiple files" +url="http://www.gnu.org/software/inetutils/" +arch="all" +license="GPL3" +depends_dev="readline-dev ncurses-dev" +makedepends="$depends_dev" +install="$pkgname.post-install $pkgname.post-deinstall" +subpackages="$pkgname-doc" +source="http://ftp.gnu.org/gnu/inetutils/${_pkgname}-${pkgver}.tar.gz + $pkgname.initd + $pkgname.confd + syslog.conf + $pkgname.logrotate + $pkgname.setup + " + +_builddir="$srcdir"/$_pkgname-$pkgver + +build() { + cd "$_builddir" + + ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --prefix=/usr \ + --libexec=/usr/sbin \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + --localstatedir=/var \ + --without-wrap --without-pam \ + --disable-ftp --disable-ftpd \ + --disable-telnet --disable-telnetd \ + --disable-talk --disable-talkd \ + --disable-rlogin --disable-rlogind \ + --disable-rsh --disable-rshd \ + --disable-rexec --disable-rexecd \ + --disable-rcp --disable-hostname \ + --disable-tftp --disable-tftpd \ + --disable-ping --disable-ping6 \ + --disable-logger --enable-syslogd \ + --disable-inetd --disable-whois --disable-dnsdomainname \ + --disable-uucpd --disable-ifconfig --disable-traceroute \ + || return 1 + make || return 1 +} + +check() { + cd "$srcdir/${_pkgname}-${pkgver}" + make check +} + +package() { + cd "$_builddir" + make DESTDIR="${pkgdir}" install || return 1 + #binary installed to /usr/sbin not bin + rm -rf "$pkgdir"/usr/bin \ + "$pkgdir"/usr/lib/charset.alias \ + || return 1 + + #install init script & config defaults + install -m755 -D "$srcdir"/$pkgname.initd \ + "$pkgdir"/etc/init.d/$pkgname || return 1 + install -m644 -D "$srcdir"/$pkgname.confd \ + "$pkgdir"/etc/conf.d/$pkgname || return 1 + install -m644 -D "$srcdir"/syslog.conf \ + "$pkgdir"/etc/syslog.conf || return 1 + install -m644 -D "$srcdir"/inetutils-syslogd.logrotate \ + "$pkgdir"/etc/logrotate.d/inetutils-syslogd || return 1 + install -m755 -D "$srcdir"/inetutils-syslogd.setup \ + "$pkgdir"/sbin/setup-inetutils-syslogd || return 1 + mkdir -p "$pkgdir/usr/share/apk-tools/$pkgname" +} + +md5sums="04852c26c47cc8c6b825f2b74f191f52 inetutils-1.9.4.tar.gz +4a5ed84baf026fe2e686b9e915d140e3 inetutils-syslogd.initd +edf3f502d9f2bf49c5da8cb37a927d06 inetutils-syslogd.confd +9c9998ff341c48322ffdc8f48fa018cf syslog.conf +842e971153c19cb328db2cc6e22a7baf inetutils-syslogd.logrotate +82d3bf51747654410b2dbd4075e940b4 inetutils-syslogd.setup" +sha256sums="be8f75eff936b8e41b112462db51adf689715658a1b09e0d6b05d11ec92cc616 inetutils-1.9.4.tar.gz +a0bc678a83103ee412c6c57a5f5e0bc4c66f579f7e839f71aac99d329719c80f inetutils-syslogd.initd +86105f0a0105f50275f7381b5d7fe603b8d854a0e6753c2f06f6d0c234562948 inetutils-syslogd.confd +0b3f080466437a068d1627a00a5abdf494fdefa2e17821b993462d0310e60cc3 syslog.conf +f2afe7dad8cd933fbd213b20f09127096f8798698874b2ead2d47a6509f95f6c inetutils-syslogd.logrotate +f293c6221c89f6d3eb4a557fe68ca66cc92696c95b48182821aa5aa61f9a2c8f inetutils-syslogd.setup" +sha512sums="8074eb230c64d8fb0f3a20825b9329e5648b81941bb3441c5ffe2661c428f93fe2bac222d5334e75ef182083124c4bc5d7ebf8090ed667e4ae33b9aaacbc6dcb inetutils-1.9.4.tar.gz +75d5681d08a391956e0f0510eadb20c3ba74de4026f76ea0a54c3e34bb53655ff6cbe3087c0953343fdef3b05864a4dc7d9d12ed26836f8986859868f0076c79 inetutils-syslogd.initd +82968692b4fe79706aacaeb1021b343288dc4f1d86925481796dac1f743a8269976ce86bf446cd0c16d246b918e5822e312660b201407eb7031a17cb398c9513 inetutils-syslogd.confd +d9c61aee1a3f2c7cf7b06dfda08599c08f1f618ba092e60adff11e9cbe5be847544780eaa9e4bb54a70c5e5bc243fed3d6ff8111878f073b41629db4245b135c syslog.conf +ffe2b1fd6b9d4dc9e378f0c857be318ec86e48aee17ede865656bdf9a5da3d2f3a8ffe788cd62794132839577ab6ce1ce7fe3a964bc21e0f8b698827a9ee5817 inetutils-syslogd.logrotate +a3c54be2c2154adec3b5d8cf68e43f274eb42ac2e02f3ea39235a11f333d1cc88ea2d0af93daf5095c8de7dfbbc147c53d97bbfce3944f50858ee97907270bf7 inetutils-syslogd.setup" diff --git a/community/inetutils-syslogd/inetutils-syslogd.confd b/community/inetutils-syslogd/inetutils-syslogd.confd new file mode 100644 index 0000000000..dfcc1cb855 --- /dev/null +++ b/community/inetutils-syslogd/inetutils-syslogd.confd @@ -0,0 +1,9 @@ +# +# inetutils syslogd defaults +# + +# Internet connections are enabled if forwarding (which is the default). +# Example option to add a socket for chroot jailed openvpn server +#SYSLOGD_OPTS="--no-forward -a /etc/openvpn/jail/dev/log" + +SYSLOGD_OPTS="--no-forward" diff --git a/community/inetutils-syslogd/inetutils-syslogd.initd b/community/inetutils-syslogd/inetutils-syslogd.initd new file mode 100644 index 0000000000..a10caa738d --- /dev/null +++ b/community/inetutils-syslogd/inetutils-syslogd.initd @@ -0,0 +1,36 @@ +#!/sbin/openrc-run +# This file is part of inetutils-syslogd +# Created for Alpine Linux by Stuart Cardall <developer@it-offshore.co.uk> +# Distributed under the terms of the GNU General Public License v2 + +name=syslogd +config_file="/etc/syslog.conf" +pid_file=/var/run/syslog.pid +command=/usr/sbin/$name +command_args=${SYSLOGD_OPTS} +extra_started_commands="reload" + +depend() { + need clock hostname localmount + provide logger +} + +check_config() { + [ -f "$config_file" ] || error "$config_file is missing" +} + +start_pre() { + check_config || return 1 +} + +reload() { + if [ ! -f "${pid_file}" ]; then + eerror "inetutils-$name is not running" + return 1 + fi + + ebegin "Re-opening intetutils-$name log files" + pkill -HUP -f "$command $command_args" + eend $? +} + diff --git a/community/inetutils-syslogd/inetutils-syslogd.logrotate b/community/inetutils-syslogd/inetutils-syslogd.logrotate new file mode 100644 index 0000000000..853c21341c --- /dev/null +++ b/community/inetutils-syslogd/inetutils-syslogd.logrotate @@ -0,0 +1,38 @@ +/var/log/syslog +{ + rotate 7 + daily + missingok + notifempty + copytruncate + compress + postrotate + /etc/init.d/inetutils-syslogd reload &>/dev/null || true + endscript +} + +/var/log/mail.info +/var/log/mail.warn +/var/log/mail.err +/var/log/mail.log +/var/log/daemon.log +/var/log/kern.log +/var/log/auth.log +/var/log/user.log +/var/log/lpr.log +/var/log/cron.log +/var/log/debug +/var/log/messages +{ + rotate 4 + weekly + missingok + notifempty + copytruncate + compress + sharedscripts + postrotate + /etc/init.d/inetutils-syslogd reload &>/dev/null || true + endscript +} + diff --git a/community/inetutils-syslogd/inetutils-syslogd.post-deinstall b/community/inetutils-syslogd/inetutils-syslogd.post-deinstall new file mode 100644 index 0000000000..23ebea52af --- /dev/null +++ b/community/inetutils-syslogd/inetutils-syslogd.post-deinstall @@ -0,0 +1,7 @@ +#!/bin/sh +echo; rc-update del inetutils-syslogd boot; rc-update add syslog boot +syslog_state=$(rc-service syslog status) +inetutils_state=" * status: running: inetutils-syslogd [pid: $(pidof syslogd)]" +echo "$inetutils_state" +echo -e "$syslog_state: syslog\n" + diff --git a/community/inetutils-syslogd/inetutils-syslogd.post-install b/community/inetutils-syslogd/inetutils-syslogd.post-install new file mode 100644 index 0000000000..18099c7d9c --- /dev/null +++ b/community/inetutils-syslogd/inetutils-syslogd.post-install @@ -0,0 +1,3 @@ +#!/bin/sh +echo -e "\nTo configure inetutils-syslogd / deconfigure BusyBox syslog execute:\n\n/sbin/setup-inetutils-syslogd\n" + diff --git a/community/inetutils-syslogd/inetutils-syslogd.setup b/community/inetutils-syslogd/inetutils-syslogd.setup new file mode 100644 index 0000000000..7c82513915 --- /dev/null +++ b/community/inetutils-syslogd/inetutils-syslogd.setup @@ -0,0 +1,28 @@ +#!/bin/sh + +NORMAL="\033[1;0m" +STRONG="\033[1;1m" +RED="\033[1;31m" +GREEN="\033[1;32m" + +print_stop() { + local prompt="${STRONG}$1 ${RED}$2${NORMAL}" + printf "${prompt} %s" +} + +print_start() { + local prompt="${STRONG}$1 ${GREEN}$2${NORMAL}" + printf "${prompt} %s" +} + +print_stop "\nWould you like to STOP BusyBox Syslog & remove it from the Boot Runlevel ?" "[ Enter or Y to remove ]:"; read ans +if [ -z "$ans" ] || [ "$ans" = "y" ] || [ "$ans" = "Y" ]; then + echo; rc-update del syslog boot; rc-service syslog stop; rc-service klogd stop +fi + +print_start "\nWould you like to START inetutils-syslogd & add it to the Boot Runlevel ?" "[ Enter or Y to add ]:"; read ans +if [ -z "$ans" ] || [ "$ans" = "y" ] || [ "$ans" = "Y" ]; then + echo; rc-update add inetutils-syslogd boot; rc-service inetutils-syslogd start; rc-service cron restart; echo +fi + +exit 0 diff --git a/community/inetutils-syslogd/syslog.conf b/community/inetutils-syslogd/syslog.conf new file mode 100644 index 0000000000..fb6b25ef09 --- /dev/null +++ b/community/inetutils-syslogd/syslog.conf @@ -0,0 +1,38 @@ +# +# First some standard log files. Log by facility. +# +auth,authpriv.* /var/log/auth.log +*.*;auth,authpriv.none -/var/log/syslog +cron.* /var/log/cron.log +daemon.* -/var/log/daemon.log +kern.* -/var/log/kern.log +lpr.* -/var/log/lpr.log +mail.* -/var/log/mail.log +user.* -/var/log/user.log + +# +# Logging for the mail system. Split it up so that +# it is easy to write scripts to parse these files. +# +mail.info -/var/log/mail.info +mail.warn -/var/log/mail.warn +mail.err /var/log/mail.err + +# +# Logging for INN news system. +# +#news.crit /var/log/news/news.crit +#news.err /var/log/news/news.err +#news.notice -/var/log/news/news.notice + +# +# Some "catch-all" log files. +# +*.=debug;\ + auth,authpriv.none;\ + news.none;mail.none -/var/log/debug +*.=info;*.=notice;*.=warn;\ + auth,authpriv.none;\ + cron,daemon.none;\ + mail,news.none -/var/log/messages + diff --git a/community/inotify-tools-inc/APKBUILD b/community/inotify-tools-inc/APKBUILD new file mode 100644 index 0000000000..73c2fecb45 --- /dev/null +++ b/community/inotify-tools-inc/APKBUILD @@ -0,0 +1,58 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname="inotify-tools-inc" +_realname="${pkgname%*-inc}" +pkgver=3.14 +pkgrel=1 +pkgdesc="inotify-tools patched to add --include regex" +url="http://github.com/rvoicilas/inotify-tools" +arch="all" +license="GPL2" +depends="!inotify-tools" +subpackages="$pkgname-dev $pkgname-doc" +source="https://github.com/downloads/rvoicilas/$_realname/$_realname-$pkgver.tar.gz + add-include-regex.patch + " + +_builddir="$srcdir"/$_realname-$pkgver +prepare() { + local i + cd "$_builddir" + for i in $source; do + case $i in + *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; + esac + done +} + +build() { + cd "$_builddir" + ./configure --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + || return 1 + make || return 1 +} + +package() { + cd "$_builddir" + make DESTDIR="$pkgdir" install || return 1 + # post-install message + mkdir -p "$pkgdir/usr/share/doc/$pkgname" + cat > $pkgdir/usr/share/doc/$pkgname/example.sh <<EOF +#!/bin/sh +## watch for a specific file recursively ## +inotifywait -mr -e modify /path/to/watch --include="(my.file)$" | +while read path action file; do + echo "The file '$file' appeared in directory '$path' via '$action'" +done +EOF +} + +md5sums="b43d95a0fa8c45f8bab3aec9672cf30c inotify-tools-3.14.tar.gz +72f3ffd0d57ddb2b6b38faaa3b751ca8 add-include-regex.patch" +sha256sums="222bcca8893d7bf8a1ce207fb39ceead5233b5015623d099392e95197676c92f inotify-tools-3.14.tar.gz +5b193b9b5cbd16d4aca9ce843a8493191cbf825598978a2602180fc28d56ffd7 add-include-regex.patch" +sha512sums="6074d510e89bba5da0d7c4d86f2562c662868666ba0a7ea5d73e53c010a0050dd1fc01959b22cffdb9b8a35bd1b0b43c04d02d6f19927520f05889e8a9297dfb inotify-tools-3.14.tar.gz +b858b79dcfb2967d0c8d31ecbc17f4f36064218d2276fdafcdc6c8e51c9db2645fa102f88f1401b78f79a1b2ddbe400ea3e691bf93d084ecb312a170f69bda24 add-include-regex.patch" diff --git a/community/inotify-tools-inc/add-include-regex.patch b/community/inotify-tools-inc/add-include-regex.patch new file mode 100644 index 0000000000..31833e0df5 --- /dev/null +++ b/community/inotify-tools-inc/add-include-regex.patch @@ -0,0 +1,365 @@ +### adapted from https://github.com/rvoicilas/inotify-tools/pull/28 ### +diff -urp inotify-tools-3.14/libinotifytools/src/inotifytools/inotifytools.h inotify-tools.new/libinotifytools/src/inotifytools/inotifytools.h +--- inotify-tools-3.14/libinotifytools/src/inotifytools/inotifytools.h 2010-03-12 13:53:46.000000000 +0000 ++++ inotify-tools.new/libinotifytools/src/inotifytools/inotifytools.h 2015-05-10 02:22:22.971561931 +0000 +@@ -28,7 +28,7 @@ int inotifytools_watch_recursively_with_ + int events, + char const ** exclude_list ); + // [UH] +-int inotifytools_ignore_events_by_regex( char const *pattern, int flags ); ++int inotifytools_ignore_events_by_regex( char const *pattern, int flags, int invert ); + struct inotify_event * inotifytools_next_event( int timeout ); + struct inotify_event * inotifytools_next_events( int timeout, int num_events ); + int inotifytools_error(); +diff -urp inotify-tools-3.14/libinotifytools/src/inotifytools.c inotify-tools.new/libinotifytools/src/inotifytools.c +--- inotify-tools-3.14/libinotifytools/src/inotifytools.c 2010-03-12 13:53:46.000000000 +0000 ++++ inotify-tools.new/libinotifytools/src/inotifytools.c 2015-05-10 02:21:08.839560752 +0000 +@@ -149,6 +149,7 @@ static int error = 0; + static int init = 0; + static char* timefmt = 0; + static regex_t* regex = 0; ++static int invert_regex = 0; + + int isdir( char const * path ); + void record_stats( struct inotify_event const * event ); +@@ -1103,12 +1104,14 @@ struct inotify_event * inotifytools_next + static ssize_t bytes; + static jmp_buf jmp; + static char match_name[MAX_STRLEN]; ++ static int rv; + + #define RETURN(A) {\ + if (regex) {\ + inotifytools_snprintf(match_name, MAX_STRLEN, A, "%w%f");\ +- if (0 == regexec(regex, match_name, 0, 0, 0)) {\ +- longjmp(jmp,0);\ ++ rv = regexec(regex, match_name, 0, 0, 0); \ ++ if ((!invert_regex && 0 == rv) || (invert_regex && 0 != rv)) { \ ++ longjmp(jmp,0); \ + }\ + }\ + if ( collect_stats ) {\ +@@ -1999,7 +2002,7 @@ int inotifytools_get_max_user_watches() + * events occur. If the regular expression matches, the matched event will be + * ignored. + */ +-int inotifytools_ignore_events_by_regex( char const *pattern, int flags ) { ++int inotifytools_ignore_events_by_regex( char const *pattern, int flags, int invert ) { + if (!pattern) { + if (regex) { + regfree(regex); +@@ -2013,7 +2016,10 @@ int inotifytools_ignore_events_by_regex( + else { regex = (regex_t *)malloc(sizeof(regex_t)); } + + int ret = regcomp(regex, pattern, flags | REG_NOSUB); +- if (0 == ret) return 1; ++ if (0 == ret) { ++ invert_regex = invert; ++ return 1; ++ } + + regfree(regex); + free(regex); + +diff -urp inotify-tools-3.14/src/inotifywait.c inotify-tools.new/src/inotifywait.c +--- inotify-tools-3.14/src/inotifywait.c 2010-03-12 13:53:46.000000000 +0000 ++++ inotify-tools.new/src/inotifywait.c 2015-05-10 16:53:20.384393049 +0000 +@@ -48,7 +48,9 @@ bool parse_opts( + char ** fromfile, + char ** outfile, + char ** regex, +- char ** iregex ++ char ** iregex, ++ char ** include_regex, ++ char ** include_iregex + ); + + void print_help(); +@@ -157,16 +159,29 @@ int main(int argc, char ** argv) + char * outfile = NULL; + char * regex = NULL; + char * iregex = NULL; ++ char * include_regex = NULL; ++ char * include_iregex = NULL; ++ bool invert_regex = false; + pid_t pid; + int fd; + + // Parse commandline options, aborting if something goes wrong + if ( !parse_opts(&argc, &argv, &events, &monitor, &quiet, &timeout, +- &recursive, &csv, &daemon, &syslog, &format, &timefmt, +- &fromfile, &outfile, ®ex, &iregex) ) { ++ &recursive, &csv, &daemon, &syslog, &format, &timefmt, ++ &fromfile, &outfile, ®ex, &iregex, &include_regex, &include_iregex) ) { + return EXIT_FAILURE; + } + ++ if (include_regex) { ++ regex = include_regex; ++ invert_regex = true; ++ } ++ ++ if (include_iregex) { ++ iregex = include_iregex; ++ invert_regex = true; ++ } ++ + if ( !inotifytools_initialize() ) { + fprintf(stderr, "Couldn't initialize inotify. Are you running Linux " + "2.6.13 or later, and was the\n" +@@ -180,11 +195,11 @@ int main(int argc, char ** argv) + + if ( timefmt ) inotifytools_set_printf_timefmt( timefmt ); + if ( +- (regex && !inotifytools_ignore_events_by_regex(regex, REG_EXTENDED) ) || ++ (regex && !inotifytools_ignore_events_by_regex(regex, REG_EXTENDED, invert_regex) ) || + (iregex && !inotifytools_ignore_events_by_regex(iregex, REG_EXTENDED| +- REG_ICASE)) ++ REG_ICASE, invert_regex)) + ) { +- fprintf(stderr, "Error in `exclude' regular expression.\n"); ++ fprintf(stderr, "Error in `exclude' or `include' regular expression.\n"); + return EXIT_FAILURE; + } + +@@ -423,18 +438,20 @@ bool parse_opts( + char ** fromfile, + char ** outfile, + char ** regex, +- char ** iregex ++ char ** iregex, ++ char ** include_regex, ++ char ** include_iregex + ) { + assert( argc ); assert( argv ); assert( events ); assert( monitor ); + assert( quiet ); assert( timeout ); assert( csv ); assert( daemon ); +- assert( syslog ); assert( format ); assert( timefmt ); assert( fromfile ); ++ assert( syslog ); assert( format ); assert( timefmt ); assert( fromfile ); + assert( outfile ); assert( regex ); assert( iregex ); + + // Short options + char * opt_string = "mrhcdsqt:fo:e:"; + + // Construct array +- struct option long_opts[17]; ++ struct option long_opts[19]; + + // --help + long_opts[0].name = "help"; +@@ -520,11 +537,21 @@ bool parse_opts( + long_opts[15].has_arg = 1; + long_opts[15].flag = NULL; + long_opts[15].val = (int)'b'; ++ // --include ++ long_opts[16].name = "include"; ++ long_opts[16].has_arg = 1; ++ long_opts[16].flag = NULL; ++ long_opts[16].val = (int)'j'; ++ // --includei ++ long_opts[17].name = "includei"; ++ long_opts[17].has_arg = 1; ++ long_opts[17].flag = NULL; ++ long_opts[17].val = (int)'k'; + // Empty last element +- long_opts[16].name = 0; +- long_opts[16].has_arg = 0; +- long_opts[16].flag = 0; +- long_opts[16].val = 0; ++ long_opts[18].name = 0; ++ long_opts[18].has_arg = 0; ++ long_opts[18].flag = 0; ++ long_opts[18].val = 0; + + // Get first option + char curr_opt = getopt_long(*argc, *argv, opt_string, long_opts, NULL); +@@ -604,6 +631,16 @@ bool parse_opts( + (*iregex) = optarg; + break; + ++ // --include ++ case 'j': ++ (*include_regex) = optarg; ++ break; ++ ++ // --includei ++ case 'k': ++ (*include_iregex) = optarg; ++ break; ++ + // --fromfile + case 'z': + if (*fromfile) { +@@ -671,6 +708,16 @@ bool parse_opts( + return false; + } + ++ if ( *include_regex && *include_iregex ) { ++ fprintf(stderr, "--include and --includei cannot both be specified.\n"); ++ return false; ++ } ++ ++ if ( ( *include_regex || *include_iregex ) && ( *regex || *iregex ) ) { ++ fprintf(stderr, "Cannot use include and exclude options simultaneously.\n"); ++ return false; ++ } ++ + if ( *format && *csv ) { + fprintf(stderr, "-c and --format cannot both be specified.\n"); + return false; +@@ -715,6 +762,11 @@ void print_help() + "\t \textended regular expression <pattern>.\n"); + printf("\t--excludei <pattern>\n" + "\t \tLike --exclude but case insensitive.\n"); ++ printf("\t--include <pattern>\n" ++ "\t \tInclude all events on only those files matching\n" ++ "\t \tthe extended regular expression <pattern>.\n"); ++ printf("\t--includei <pattern>\n" ++ "\t \tLike --include but case insensitive.\n"); + printf("\t-m|--monitor \tKeep listening for events forever. Without\n" + "\t \tthis option, inotifywait will exit after one\n" + "\t \tevent is received.\n"); +diff -urp inotify-tools-3.14/src/inotifywatch.c inotify-tools.new/src/inotifywatch.c +--- inotify-tools-3.14/src/inotifywatch.c 2010-03-12 13:53:46.000000000 +0000 ++++ inotify-tools.new/src/inotifywatch.c 2015-05-10 16:51:40.060391453 +0000 +@@ -43,7 +43,9 @@ bool parse_opts( + int * recursive, + char ** fromfile, + char ** regex, +- char ** iregex ++ char ** iregex, ++ char ** include_regex, ++ char ** include_iregex + ); + + void print_help(); +@@ -91,21 +93,34 @@ int main(int argc, char ** argv) + done = false; + char * regex = NULL; + char * iregex = NULL; ++ char * include_regex = NULL; ++ char * include_iregex = NULL; ++ bool invert_regex = false; + + signal( SIGINT, handle_impatient_user ); + + // Parse commandline options, aborting if something goes wrong + if ( !parse_opts( &argc, &argv, &events, &timeout, &verbose, &zero, &sort, +- &recursive, &fromfile, ®ex, &iregex ) ) { ++ &recursive, &fromfile, ®ex, &iregex, &include_regex, &include_iregex ) ) { + return EXIT_FAILURE; + } + ++ if (include_regex) { ++ regex = include_regex; ++ invert_regex = true; ++ } ++ ++ if (include_iregex) { ++ iregex = include_iregex; ++ invert_regex = true; ++ } ++ + if ( +- (regex && !inotifytools_ignore_events_by_regex(regex, REG_EXTENDED) ) || ++ (regex && !inotifytools_ignore_events_by_regex(regex, REG_EXTENDED, invert_regex) ) || + (iregex && !inotifytools_ignore_events_by_regex(iregex, REG_EXTENDED| +- REG_ICASE)) ++ REG_ICASE, invert_regex)) + ) { +- fprintf(stderr, "Error in `exclude' regular expression.\n"); ++ fprintf(stderr, "Error in `exclude' or `include' regular expression.\n"); + return EXIT_FAILURE; + } + +@@ -390,7 +405,9 @@ bool parse_opts( + int * recursive, + char ** fromfile, + char ** regex, +- char ** iregex ++ char ** iregex, ++ char ** include_regex, ++ char ** include_iregex + ) { + assert( argc ); assert( argv ); assert( events ); assert( timeout ); + assert( verbose ); assert( zero ); assert( sort ); assert( recursive ); +@@ -400,7 +417,7 @@ bool parse_opts( + char * opt_string = "hra:d:zve:t:"; + + // Construct array +- struct option long_opts[12]; ++ struct option long_opts[14]; + + // --help + long_opts[0].name = "help"; +@@ -460,11 +477,21 @@ bool parse_opts( + long_opts[10].has_arg = 1; + long_opts[10].flag = NULL; + long_opts[10].val = (int)'b'; ++ // --include ++ long_opts[11].name = "include"; ++ long_opts[11].has_arg = 1; ++ long_opts[11].flag = NULL; ++ long_opts[11].val = (int)'j'; ++ // --includei ++ long_opts[12].name = "includei"; ++ long_opts[12].has_arg = 1; ++ long_opts[12].flag = NULL; ++ long_opts[12].val = (int)'k'; + // Empty last element +- long_opts[11].name = 0; +- long_opts[11].has_arg = 0; +- long_opts[11].flag = 0; +- long_opts[11].val = 0; ++ long_opts[13].name = 0; ++ long_opts[13].has_arg = 0; ++ long_opts[13].flag = 0; ++ long_opts[13].val = 0; + + // Get first option + char curr_opt = getopt_long(*argc, *argv, opt_string, long_opts, NULL); +@@ -506,6 +533,16 @@ bool parse_opts( + (*iregex) = optarg; + break; + ++ // --include ++ case 'j': ++ (*include_regex) = optarg; ++ break; ++ ++ // --includei ++ case 'k': ++ (*include_iregex) = optarg; ++ break; ++ + // --fromfile + case 'o': + if (*fromfile) { +@@ -625,6 +662,16 @@ bool parse_opts( + return false; + } + ++ if ( *include_regex && *include_iregex ) { ++ fprintf(stderr, "--include and --includei cannot both be specified.\n"); ++ return false; ++ } ++ ++ if ( ( *include_regex || *include_iregex ) && ( *regex || *iregex ) ) { ++ fprintf(stderr, "Cannot use include and exclude options simultaneously.\n"); ++ return false; ++ } ++ + // If ? returned, invalid option + return (curr_opt != '?'); + } +@@ -647,6 +694,11 @@ void print_help() + "\t\texpression <pattern>.\n"); + printf("\t--excludei <pattern>\n" + "\t\tLike --exclude but case insensitive.\n"); ++ printf("\t--include <pattern>\n" ++ "\t\tInclude all events only those files matching the extended\n" ++ "\t\tregular expression <pattern>.\n"); ++ printf("\t--includei <pattern>\n" ++ "\t\tLike --include but case insensitive.\n"); + printf("\t-z|--zero\n" + "\t\tIn the final table of results, output rows and columns even\n" + "\t\tif they consist only of zeros (the default is to not output\n" diff --git a/community/isync/APKBUILD b/community/isync/APKBUILD new file mode 100644 index 0000000000..85c71a6cc3 --- /dev/null +++ b/community/isync/APKBUILD @@ -0,0 +1,37 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=isync +pkgver=1.2.1 +pkgrel=0 +pkgdesc="IMAP and MailDir mailbox synchronizer" +url="http://isync.sourceforge.net" +arch="all" +license="GPL2" +depends="" +depends_dev="" +makedepends="$depends_dev openssl-dev cyrus-sasl-dev zlib-dev db-dev" +install="" +subpackages="$pkgname-doc" +source="$pkgname-$pkgver.tar.gz::http://downloads.sourceforge.net/sourceforge/isync/$pkgname-$pkgver.tar.gz" + +builddir="$srcdir"/$pkgname-$pkgver +build() { + cd "$builddir" + ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + || return 1 + make || return 1 +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install || return 1 +} + +md5sums="7ba1a07c7b487a3ab5fef54d0071f1dd isync-1.2.1.tar.gz" +sha256sums="e716de28c9a08e624a035caae3902fcf3b511553be5d61517a133e03aa3532ae isync-1.2.1.tar.gz" +sha512sums="706379e602cdcef3a1ca7eaf2301cfea15b9bbb5ee46c8f598308ad68a48725c6a4d13a2e73cc4633efec34fda1dbcb89bdd0e4c2e06993fa24db69cce9ff50b isync-1.2.1.tar.gz" diff --git a/community/junit/APKBUILD b/community/junit/APKBUILD new file mode 100644 index 0000000000..8a8bdb946f --- /dev/null +++ b/community/junit/APKBUILD @@ -0,0 +1,30 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=junit +pkgver=4.12 +pkgrel=0 +pkgdesc="A programmer-oriented testing framework for Java" +url="http://junit.org/" +arch="noarch" +license="Eclipse 1.0" +depends="" +source="http://search.maven.org/remotecontent?filepath=$pkgname/$pkgname/$pkgver/$pkgname-$pkgver.jar" + +_builddir="$srcdir" + +build() { + cd "$_builddir" + return 0 +} + +package() { + cd "$_builddir" + install -dm755 ${pkgdir}/usr/share/java || return 1 + install -m644 "$pkgname-$pkgver.jar" ${pkgdir}/usr/share/java || return 1 + cd ${pkgdir}/usr/share/java || return 1 + ln -s "$pkgname-$pkgver.jar" "$pkgname.jar" +} + +md5sums="5b38c40c97fbd0adee29f91e60405584 junit-4.12.jar" +sha256sums="59721f0805e223d84b90677887d9ff567dc534d7c502ca903c0c2b17f05c116a junit-4.12.jar" +sha512sums="5974670c3d178a12da5929ba5dd9b4f5ff461bdc1b92618c2c36d53e88650df7adbf3c1684017bb082b477cb8f40f15dcf7526f06f06183f93118ba9ebeaccce junit-4.12.jar" diff --git a/community/ktsuss/APKBUILD b/community/ktsuss/APKBUILD new file mode 100644 index 0000000000..5aae9e13b1 --- /dev/null +++ b/community/ktsuss/APKBUILD @@ -0,0 +1,43 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=ktsuss +pkgver=2.1 +pkgrel=0 +pkgdesc="Graphical version of su written in C and GTK+ (gksu alternative)" +url="https://github.com/nomius/ktsuss" +arch="all" +license="BSD" +depends="" +depends_dev="" +makedepends="$depends_dev gtk+2.0-dev bash libtool m4 autoconf automake" +install="" +subpackages="$pkgname-doc" +source="${pkgname}-${pkgver}.tar.gz::https://github.com/nomius/$pkgname/archive/$pkgver.tar.gz" + +_builddir="$srcdir"/$pkgname-$pkgver +prepare() { + local i + cd "$_builddir" + for i in $source; do + case $i in + *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; + esac + done +} + +build() { + cd "$_builddir" + ./autogen.sh + ./configure --prefix=/usr + make || return 1 +} + +package() { + cd "$_builddir" + make DESTDIR="${pkgdir}" install + install -D -m644 COPYING "${pkgdir}/usr/share/doc/${pkgname}/COPYING" +} + +md5sums="812ef25c189af1998b66a5403a12fff9 ktsuss-2.1.tar.gz" +sha256sums="f65f5083e61abc12f5b546ef43efdc8ef55cd8c7fbee27cedc0f42ff329b34ac ktsuss-2.1.tar.gz" +sha512sums="980c184947ebac91f936cad9cd74050e42e57da39f13cca3b9ec0ec44a16265243a1e6f570a2027435234084c1e15ce28b3dc6389d7831237c762b1aafb99507 ktsuss-2.1.tar.gz" diff --git a/community/letsencrypt-nosudo/APKBUILD b/community/letsencrypt-nosudo/APKBUILD new file mode 100644 index 0000000000..a602cf03bc --- /dev/null +++ b/community/letsencrypt-nosudo/APKBUILD @@ -0,0 +1,32 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=letsencrypt-nosudo +pkgver=0.0.1 +pkgrel=0 +pkgdesc="Free HTTPS certificates without having to trust the letsencrypt cli with sudo/root" +url="https://github.com/diafygi/letsencrypt-nosudo" +arch="noarch" +license="GPL3" +depends="python" +depends_dev="" +makedepends="$depends_dev" +subpackages="$pkgname-doc" +source="$pkgname-$pkgver.tar.gz::https://github.com/itoffshore/$pkgname/archive/$pkgver.tar.gz" + +_builddir="$srcdir"/$pkgname-$pkgver + +build() { + return 0 +} + +package() { + cd "$_builddir" + mkdir -p "$pkgdir"/usr/bin + mkdir -p "$pkgdir"/usr/share/doc/$pkgname + install -Dm755 *.py "$pkgdir"/usr/bin/ || return 1 + install -Dm644 README.md "$pkgdir"/usr/share/doc/$pkgname/ || return 1 +} + +md5sums="c95fde63fe3d357ebf54ace79b412d2c letsencrypt-nosudo-0.0.1.tar.gz" +sha256sums="19f8a5b316c06afd258b101eaad7e28dd2ddf1b1809d5559c683f7412247c690 letsencrypt-nosudo-0.0.1.tar.gz" +sha512sums="1d496a2dc74892f2f359562961547aad71c940fc372e2895d618cdf2a7b44b116ae039608e3589de74658ec9140ffbe1fcb51728805d215a4a6aa0c053c21672 letsencrypt-nosudo-0.0.1.tar.gz" diff --git a/community/libmbim/APKBUILD b/community/libmbim/APKBUILD new file mode 100644 index 0000000000..313c0c6201 --- /dev/null +++ b/community/libmbim/APKBUILD @@ -0,0 +1,35 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=libmbim +pkgver=1.12.4 +pkgrel=0 +pkgdesc="MBIM modem protocol helper library" +url="http://www.freedesktop.org/wiki/Software/libmbim" +arch="all" +license="GPL2" +makedepends="$depends_dev gtk-doc python glib-dev py-gobject libgudev-dev" +subpackages="$pkgname-dev $pkgname-doc" +source="http://www.freedesktop.org/software/$pkgname/$pkgname-$pkgver.tar.xz" + +_builddir="$srcdir"/$pkgname-$pkgver + +build() { + cd "$_builddir" + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --disable-static \ + || return 1 + make || return 1 + make check || return 1 +} + +package() { + cd "$_builddir" + make DESTDIR="$pkgdir" install +} + +md5sums="4561bc490fcd439aa805c1692b25cb61 libmbim-1.12.4.tar.xz" +sha256sums="7bd9af154e88ee1cccaf2fedd05e0f5cb82e3359ab6ad2a75cfec98bf57f973a libmbim-1.12.4.tar.xz" +sha512sums="74b0290eba3c83c13d1a8a07c1eaa979eae79cfadccd1b7acef0729c9d4c90e721dee9503a7cf69dd9c13a11c4a876716000cf78c22017d7e2d4e2b7906a3fbf libmbim-1.12.4.tar.xz" diff --git a/community/libndp/APKBUILD b/community/libndp/APKBUILD new file mode 100644 index 0000000000..556ffb47ad --- /dev/null +++ b/community/libndp/APKBUILD @@ -0,0 +1,55 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=libndp +pkgver=1.4 +pkgrel=0 +pkgdesc="Library for IPv6 Neighbor Discovery Protocol" +url="http://libndp.org" +arch="all" +license="GPL2.1" +depends="" +depends_dev="" +makedepends="$depends_dev" +install="" +subpackages="$pkgname-dev $pkgname-doc" +source="http://libndp.org/files/$pkgname-$pkgver.tar.gz + fix-fd_set.patch + " + +_builddir="$srcdir"/$pkgname-$pkgver +prepare() { + local i + cd "$_builddir" + for i in $source; do + case $i in + *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; + esac + done +} + +build() { + cd "$_builddir" + ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --localstatedir=/var \ + --disable-static \ + --libexecdir=/usr/lib \ + || return 1 + make || return 1 +} + +package() { + cd "$_builddir" + make DESTDIR="$pkgdir" install || return 1 +} + +md5sums="52c708d4b8729ae6e3781b3737a85e16 libndp-1.4.tar.gz +7b1e885680e9677de2f25707850db7dd fix-fd_set.patch" +sha256sums="3a0be247ec024bd72fe5b40ea9491519c4023c7faf078311196fab817b2fd55f libndp-1.4.tar.gz +401a6d2601790f136e9c7b51b49003c3994df93136c6acdb289ce377d7068942 fix-fd_set.patch" +sha512sums="a84d4d6672bf83bcf865eef8986e7bbcc49587686c5085a5ce5f346791223ede0e60db3b990055afc4f0005182aa1b5546c459306d2955f95d00ffb68bd58766 libndp-1.4.tar.gz +291503b1a9b21ae3e75d0048fadaa0bace989c6091ddb7238ed7920d4daa968bbd66608432de341fa2cde33d440dcd1b679bc590c7b8d91a68363f5469abc92b fix-fd_set.patch" diff --git a/community/libndp/fix-fd_set.patch b/community/libndp/fix-fd_set.patch new file mode 100644 index 0000000000..7797418c1a --- /dev/null +++ b/community/libndp/fix-fd_set.patch @@ -0,0 +1,10 @@ +--- libndp-1.4/utils/ndptool.c ++++ libndp-1.4/utils/ndptool.c.new +@@ -22,6 +22,7 @@ + #include <unistd.h> + #include <string.h> + #include <signal.h> ++#include <sys/select.h> + #include <sys/signalfd.h> + #include <getopt.h> + #include <net/if.h> diff --git a/community/libqmi/APKBUILD b/community/libqmi/APKBUILD new file mode 100644 index 0000000000..110b299316 --- /dev/null +++ b/community/libqmi/APKBUILD @@ -0,0 +1,48 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=libqmi +pkgver=1.12.6 +pkgrel=0 +pkgdesc="QMI modem protocol helper library" +url="http://www.freedesktop.org/wiki/Software/libqmi" +arch="all" +license="GPL2" +depends="" +depends_dev="glib-dev" +makedepends="$depends_dev gtk-doc python" +install="" +subpackages="$pkgname-dev $pkgname-doc" +source="http://www.freedesktop.org/software/$pkgname/$pkgname-$pkgver.tar.xz" + +_builddir="$srcdir"/$pkgname-$pkgver +prepare() { + local i + cd "$_builddir" + for i in $source; do + case $i in + *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; + esac + done +} + +build() { + cd "$_builddir" + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --disable-static \ + --enable-more-warnings=yes \ + || return 1 + make || return 1 + make check || return 1 +} + +package() { + cd "$_builddir" + make DESTDIR="$pkgdir" install +} + +md5sums="24c9eb300662ba6cff0152de89bd9ec0 libqmi-1.12.6.tar.xz" +sha256sums="0857bffece4e8ddfa7f721dd9ca63b4c78de345ac9ae2faebf04062cacba3780 libqmi-1.12.6.tar.xz" +sha512sums="7001f61dbe2be431867a504dbfc634ed5e7c3f3b1740aef7833fb8163d1a6bdffb57793f09062f49c0b8eeff5a011a2a057a938d618f3547ff5942021b3e8a9d libqmi-1.12.6.tar.xz" diff --git a/community/libteam/APKBUILD b/community/libteam/APKBUILD new file mode 100644 index 0000000000..1fe5441751 --- /dev/null +++ b/community/libteam/APKBUILD @@ -0,0 +1,70 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=libteam +pkgver=1.23 +pkgrel=0 +pkgdesc="Library for controlling team network device" +url="http://libteam.org" +arch="all" +license="LGPL2.1" +depends_dev="" +makedepends="$depends_dev autoconf automake libtool libnl3-dev libdaemon-dev jansson-dev dbus-dev + linux-headers bsd-compat-headers doxygen swig python-dev python3-dev" +subpackages="$pkgname-dev $pkgname-doc py-$pkgname:py" +source="$pkgname-$pkgver.tar.gz::https://github.com/jpirko/$pkgname/archive/v$pkgver.tar.gz + fix-fd_set.patch + memcpy-memset-implicit-declaration.patch + " + +_builddir="$srcdir"/$pkgname-$pkgver +prepare() { + local i + cd "$_builddir" + for i in $source; do + case $i in + *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; + esac + done +} + +build() { + cd "$_builddir" + ./autogen.sh + ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --prefix=/usr \ + --mandir=/usr/share/man \ + || return 1 + make || return 1 +} + +py() { + pkgdesc="Python 2/3 Bindings for libteam" + mkdir -p "$subpkgdir" + cd "$_builddir" + cp -ar binding/python binding/python3 || return 1 + cd binding/python + python ./setup.py build || return 1 + cd ../python3 + python3 ./setup.py build || return 1 + cd binding/python + python ./setup.py install --root "$subpkgdir" -O1 || return 1 + cd ../python3 + python3 ./setup.py install --root "$subpkgdir" -O1 || return 1 +} + +package() { + cd "$_builddir" + make DESTDIR="$pkgdir" install || return 1 +} + +md5sums="f80451570e68a85983de41b0d6dcdd49 libteam-1.23.tar.gz +ea78f0a9b84eb87747ddfbcfa582a122 fix-fd_set.patch +fb6662bced494fd24a107e3f7f7dc5e8 memcpy-memset-implicit-declaration.patch" +sha256sums="b9ed23da5c1a9e6bdd77aee345cce3898312fddaeeb5754dfe29a58610802a78 libteam-1.23.tar.gz +43bff56cfd3d293ecae58b3a77e55e7a740ddcf188d6516097fbd93b13a82ac8 fix-fd_set.patch +a2982cbd9bce4367d1a6e20bfedcc24cab452538e2e0ec1af0d8a3515cf21077 memcpy-memset-implicit-declaration.patch" +sha512sums="f78ceca4606b93e75fafdd97aa3cc44153fc42d31209f216c3da9c71abf38a2e4a690c71b8631ae09e02d7285d6bbd8292983fdc69eb921b0537a75558bc89f5 libteam-1.23.tar.gz +83f8dd77cfed0f815bc0cb2aa4af25883a02567dbb35b59016d7f3a30f162e63155996d21216424f0ea4efa8e92f8f9526a018a892533c3c7dd7c7ba12b46a44 fix-fd_set.patch +1279c164960b6215e9bb9f3ee161ef9ac6a38b8066d4a1031996b8067031b9b19404681ebecf3492a26b1215ec2eaaddecae3370ec25e2593dc3ca7dc5f8ead7 memcpy-memset-implicit-declaration.patch" diff --git a/community/libteam/fix-fd_set.patch b/community/libteam/fix-fd_set.patch new file mode 100644 index 0000000000..b019ff321b --- /dev/null +++ b/community/libteam/fix-fd_set.patch @@ -0,0 +1,10 @@ +--- libteam-1.17/utils/teamnl.c ++++ libteam-1.17/utils/teamnl.c.new +@@ -23,6 +23,7 @@ + #include <string.h> + #include <getopt.h> + #include <errno.h> ++#include <sys/select.h> + #include <sys/signalfd.h> + #include <signal.h> + #include <unistd.h> diff --git a/community/libteam/memcpy-memset-implicit-declaration.patch b/community/libteam/memcpy-memset-implicit-declaration.patch new file mode 100644 index 0000000000..84b1a99b8e --- /dev/null +++ b/community/libteam/memcpy-memset-implicit-declaration.patch @@ -0,0 +1,10 @@ +--- libteam-1.17/teamd/teamd_phys_port_check.c ++++ libteam-1.17/teamd/teamd_phys_port_check.c.new +@@ -17,6 +17,7 @@ + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + ++#include <string.h> + #include <stdio.h> + #include <errno.h> + #include <sys/types.h> diff --git a/community/mini-sendmail/APKBUILD b/community/mini-sendmail/APKBUILD new file mode 100644 index 0000000000..4d05ad3860 --- /dev/null +++ b/community/mini-sendmail/APKBUILD @@ -0,0 +1,64 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=mini-sendmail +_realname=mini_sendmail +pkgver=1.3.9 +pkgrel=0 +pkgdesc="Accept mail inside a chroot + wrapper for /bin/sh" +url="http://acme.com/software/mini_sendmail/" +arch="all" +license="custom" +depends="" +depends_dev="" +makedepends="$depends_dev" +subpackages="$pkgname-doc" +source="http://www.acme.com/software/$_realname/$_realname-$pkgver.tar.gz + README.alpine + LICENSE + sh.c + " + +_builddir="$srcdir"/$_realname-$pkgver +prepare() { + local i + cd "$_builddir" + for i in $source; do + case $i in + *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; + esac + done +} + +build() { + cd "$_builddir" + sed -i "s|^BINDIR.*|BINDIR = $pkgdir/var/lib/mini-sendmail|" Makefile + sed -i "s|^MANDIR.*|MANDIR = $pkgdir/usr/share/man|" Makefile + sed -i 's|cp mini_sendmail.8.*|cp mini_sendmail.8 $(MANDIR)/man8/|' Makefile + make || return 1 + cp "$srcdir"/sh.c ./ + gcc sh.c -o sh -static || return 1 +} + +package() { + cd "$_builddir" + mkdir -p "$pkgdir"/var/lib/mini-sendmail + mkdir -p "$pkgdir"/usr/share/man/man8 + mkdir -p "$pkgdir"/usr/share/doc/mini-sendmail + make DESTDIR="$pkgdir" install || return 1 + install -Dm755 sh "$pkgdir"/var/lib/mini-sendmail/ + install -Dm644 "$srcdir"/README.alpine "$pkgdir"/usr/share/doc/mini-sendmail/ + install -Dm644 "$srcdir"/LICENSE "$pkgdir"/usr/share/doc/mini-sendmail/ +} + +md5sums="0769b6d3ba64fa77a52a90c8866fc4ed mini_sendmail-1.3.9.tar.gz +de62b0348231c4f3863876f4611f82f8 README.alpine +a51bbd8a9bcc7391e4db256b6bfb581b LICENSE +4d751980f33365c5a6520725ab67686e sh.c" +sha256sums="2e2741ade434808b2b95c7df7b2016a4a7e629c3d6c87468a7f58fb183a1967b mini_sendmail-1.3.9.tar.gz +be609714548a5b5e33bef3d6e231eec978050f17b0c4f57793025f505b3ff7c9 README.alpine +65c82388e07b7fc2427c870d52db6e2f6dc81aba58cd2bee005544db6b151376 LICENSE +d24df6d8ee3b335e6be3a0e78b3110e35ffd3e523e50e0272603ec44c08176b0 sh.c" +sha512sums="b28c39d94b77acc27a8c9e99583904b43815936b2bf7e27b996685784ff1bc9882bdfc57822ddf62d3198f38ec3df0b766289115cb4e6c23abee93884d2d6bb9 mini_sendmail-1.3.9.tar.gz +bc6a389f20834956e86edbf033cd6b7a3b7df4a9c1a101a751179c4af444ca08a4cb0bb07dc3a01a3d72908f45059921db336814d9ac9f8eee61d61ce1b2e62f README.alpine +315b63e597561d911541975160ef5b6158fa5421a638efb06bf5e7af72069484a057c332d590b9e8e72383b67e25f7393a81666f8b914d0c649f1572cf330077 LICENSE +7356bfb52c46ac79797fea620f7e39c4141c066006e1b72fbf247ea36268a8c89a04120c508c431e0ad152eec9891b2766e2782046e8ea370a1f8ea6699fa0ff sh.c" diff --git a/community/mini-sendmail/LICENSE b/community/mini-sendmail/LICENSE new file mode 100644 index 0000000000..47bb71d8d7 --- /dev/null +++ b/community/mini-sendmail/LICENSE @@ -0,0 +1,25 @@ +mini_sendmail - accept email on behalf of real sendmail + +Copyright © 1999,2015 by Jef Poskanzer <jef@mail.acme.com>. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. diff --git a/community/mini-sendmail/README.alpine b/community/mini-sendmail/README.alpine new file mode 100644 index 0000000000..ce44325167 --- /dev/null +++ b/community/mini-sendmail/README.alpine @@ -0,0 +1,5 @@ +PHP launches sendmail via system(), which in turn uses “/bin/sh -c” internally. +/var/lib/mini-sendmail/sh is a wrapper that supports being called with “-c command” +to launch sendmail. + +https://knzl.de/setting-up-a-chroot-for-php/ diff --git a/community/mini-sendmail/sh.c b/community/mini-sendmail/sh.c new file mode 100644 index 0000000000..7feea6d7d1 --- /dev/null +++ b/community/mini-sendmail/sh.c @@ -0,0 +1,30 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> + +#define MAXARG 64 + +int main( int argc, char* const argv[] ) { + char* args[ MAXARG ] = {}; + + if( argc < 3 || strcmp( argv[1], "-c" ) != 0 ) { + fprintf( stderr, "Usage: %s -c <cmd>\n", argv[0] ); + return 1; + } + + { + char* token; + int i = 0; + char* argStr = strdup( argv[2] ); + while( ( token = strsep( &argStr, " " ) ) != NULL ) { + if( token && strlen( token ) ) + args[ i++ ] = token; + if( i >= MAXARG ) + return 2; + } + } + + return execvp( args[0], args ); +} + diff --git a/community/modemmanager/APKBUILD b/community/modemmanager/APKBUILD new file mode 100644 index 0000000000..94cea74916 --- /dev/null +++ b/community/modemmanager/APKBUILD @@ -0,0 +1,93 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=modemmanager +pkgver=1.4.14 +pkgrel=0 +pkgdesc="ModemManager library" +url="http://www.freedesktop.org/wiki/Software/ModemManager" +arch="all" +license="GPL2, LGPL2.1" +depends_dev="" +makedepends="$depends_dev gobject-introspection-dev gtk-doc intltool vala + libgudev-dev polkit-dev libmbim-dev libqmi-dev linux-headers" +subpackages="$pkgname-dev $pkgname-lang $pkgname-doc libmm-glib:libmm libmm-glib-dev:libmmdev" +source="http://www.freedesktop.org/software/ModemManager/ModemManager-$pkgver.tar.xz + no-XCASE.patch + $pkgname.rules + " + +_builddir="$srcdir"/ModemManager-$pkgver +prepare() { + local i + cd "$_builddir" + for i in $source; do + case $i in + *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; + esac + done +} + +build() { + cd "$_builddir" + ./configure --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + --localstatedir=/var \ + --with-polkit=permissive \ + --enable-gtk-doc \ + --disable-static \ + --enable-more-warnings \ + --with-newest-qmi-commands \ + --with-dbus-sys-dir=/etc/dbus-1 \ + --enable-vala=yes \ + || return 1 + # https://bugzilla.gnome.org/show_bug.cgi?id=655517 + sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool + make || return 1 +} + +libmm() { + cd "$_builddir" + mkdir -p "$subpkgdir" + make DESTDIR="$subpkgdir" -C libmm-glib install || return 1 + make DESTDIR="$subpkgdir" -C vapi install || return 1 +} + +libmmdev() { + mkdir -p "$subpkgdir/usr/lib/pkgconfig" + mv "${subpkgdir%*-dev}/usr/include" "$subpkgdir/usr/" + mv "${subpkgdir%*-dev}/usr/share" "$subpkgdir/usr/" + mv "$pkgdir-dev"/usr/lib/pkgconfig/mm-glib.pc "$subpkgdir"/usr/lib/pkgconfig/ + rmdir "$pkgdir-dev"/usr/include/libmm-glib # in libmm-glib-dev +} + +package() { + cd "$_builddir" + make DESTDIR="$pkgdir" install || return 1 + make DESTDIR="$pkgdir" -C libmm-glib uninstall || return 1 + make DESTDIR="$pkgdir" -C vapi uninstall || return 1 + rmdir "$pkgdir"/usr/lib/girepository-1.0 # in libmm-glib + rm -rf "$pkgdir"/usr/share/dbus-1/system-services #systemd-service + mkdir -p "$pkgdir/usr/share/polkit-1/rules.d" + install -m644 -D "$srcdir/$pkgname.rules" \ + "$pkgdir/usr/share/polkit-1/rules.d/01-org.freedesktop.ModemManager.rules" || return 1 + # post-install message + mkdir -p "$pkgdir/usr/share/doc/$pkgname" + cat > $pkgdir/usr/share/doc/$pkgname/README.alpine <<EOF +If your USB modem shows up as a Flash drive when you plug it in: + +install 'usb-modeswitch' to automatically switch to USB modem mode whenever you plug it in. +To control your modem without the root password: add your user account to the 'plugdev' group. +EOF +} + +md5sums="cabb72e7c2ddf6af96eca2c9f3d168a3 ModemManager-1.4.14.tar.xz +63288189ea454e9712dc26d76d75277d no-XCASE.patch +735e155a785554349906c09dd36d3866 modemmanager.rules" +sha256sums="abe6cdd515a774bcba3afdcdb1e504569801e79282ccdf26099f33cbb8731ba2 ModemManager-1.4.14.tar.xz +5e5b87b580faf14e4c56ccc7f9f189522742a64ab365b26751dcc86e68dedb87 no-XCASE.patch +577807e59b1e95757a4d94922c66f7f36487922c5092a6c148e7db6a4dc6afe8 modemmanager.rules" +sha512sums="2fb5517cd3fbd98cf4048cec326fabf18fb26d88b75e56208d1ed64d70d72d6e826ef30391c86fbcfe4d69661194bcfbb55d545db10ebe8baf8ef16a3c580446 ModemManager-1.4.14.tar.xz +5c537e4a86212339d0c41ae3e1055513051a0d6e51bdf2547a38054fbe802feeac2ff46c863ab69423a6693ac33ebacec7a771d4b270aeb5fe6e6bb601361f23 no-XCASE.patch +3c76ee577334e25c836857f8e7fef6a249cdd9fcd8f889cb64d9c1667bc6a95c087267a153bddd1a13256c59f8cd578ccb448e6b9cb54b73bb74acb8a0ca1e3f modemmanager.rules" diff --git a/community/modemmanager/modemmanager.rules b/community/modemmanager/modemmanager.rules new file mode 100644 index 0000000000..09e586e642 --- /dev/null +++ b/community/modemmanager/modemmanager.rules @@ -0,0 +1,8 @@ +// Let users in plugdev group modify ModemManager +polkit.addRule(function(action, subject) { + if (/^org\.freedesktop\.ModemManager1\.(Device\.Control|Contacts|Messaging|Location)$/.test(action.id) && + subject.isInGroup("plugdev") && subject.active) { + return "yes"; + } +}); + diff --git a/community/modemmanager/no-XCASE.patch b/community/modemmanager/no-XCASE.patch new file mode 100644 index 0000000000..1de41f753d --- /dev/null +++ b/community/modemmanager/no-XCASE.patch @@ -0,0 +1,35 @@ +## http://man7.org/linux/man-pages/man3/termios.3.html +## XCASE (not in POSIX; not supported under Linux) +--- ModemManager-1.4.6/libqcdm/src/com.c ++++ ModemManager-1.4.6.new/libqcdm/src/com.c +@@ -39,7 +39,7 @@ + stbuf.c_iflag &= ~(HUPCL | IUTF8 | IUCLC | ISTRIP | IXON | IXOFF | IXANY | ICRNL); + stbuf.c_oflag &= ~(OPOST | OCRNL | ONLCR | OLCUC | ONLRET); + stbuf.c_lflag &= ~(ICANON | ISIG | IEXTEN | ECHO | ECHOE | ECHOK | ECHONL); +- stbuf.c_lflag &= ~(NOFLSH | XCASE | TOSTOP | ECHOPRT | ECHOCTL | ECHOKE); ++ stbuf.c_lflag &= ~(NOFLSH | TOSTOP | ECHOPRT | ECHOCTL | ECHOKE); + stbuf.c_cc[VMIN] = 1; + stbuf.c_cc[VTIME] = 0; + stbuf.c_cc[VEOF] = 1; +--- ModemManager-1.4.6/libwmc/src/com.c ++++ ModemManager-1.4.6.new/libwmc/src/com.c +@@ -39,7 +39,7 @@ + stbuf.c_iflag &= ~(HUPCL | IUTF8 | IUCLC | ISTRIP | IXON | IXOFF | IXANY | ICRNL); + stbuf.c_oflag &= ~(OPOST | OCRNL | ONLCR | OLCUC | ONLRET); + stbuf.c_lflag &= ~(ICANON | ISIG | IEXTEN | ECHO | ECHOE | ECHOK | ECHONL); +- stbuf.c_lflag &= ~(NOFLSH | XCASE | TOSTOP | ECHOPRT | ECHOCTL | ECHOKE); ++ stbuf.c_lflag &= ~(NOFLSH | TOSTOP | ECHOPRT | ECHOCTL | ECHOKE); + stbuf.c_cc[VMIN] = 1; + stbuf.c_cc[VTIME] = 0; + stbuf.c_cc[VEOF] = 1; +--- ModemManager-1.4.6/src/mm-port-serial.c ++++ ModemManager-1.4.6.new/src/mm-port-serial.c +@@ -455,7 +455,7 @@ + + stbuf.c_iflag &= ~(IGNCR | ICRNL | IUCLC | INPCK | IXON | IXANY ); + stbuf.c_oflag &= ~(OPOST | OLCUC | OCRNL | ONLCR | ONLRET); +- stbuf.c_lflag &= ~(ICANON | XCASE | ECHO | ECHOE | ECHONL); ++ stbuf.c_lflag &= ~(ICANON | ECHO | ECHOE | ECHONL); + stbuf.c_lflag &= ~(ECHO | ECHOE); + stbuf.c_cc[VMIN] = 1; + stbuf.c_cc[VTIME] = 0; diff --git a/community/namecoin/12-fix-miniupnpc.patch b/community/namecoin/12-fix-miniupnpc.patch new file mode 100644 index 0000000000..bf226df8a4 --- /dev/null +++ b/community/namecoin/12-fix-miniupnpc.patch @@ -0,0 +1,17 @@ +--- namecoin-nc*/src/net.cpp ++++ namecoin-nc*/src/net.cpp +@@ -19,10 +19,10 @@ + #endif + + #ifdef USE_UPNP +-#include <miniwget.h> +-#include <miniupnpc.h> +-#include <upnpcommands.h> +-#include <upnperrors.h> ++#include <miniupnpc/miniwget.h> ++#include <miniupnpc/miniupnpc.h> ++#include <miniupnpc/upnpcommands.h> ++#include <miniupnpc/upnperrors.h> + #endif + + using namespace std; diff --git a/community/namecoin/20-boost-multithread-dynamic.patch b/community/namecoin/20-boost-multithread-dynamic.patch new file mode 100644 index 0000000000..4adf46f349 --- /dev/null +++ b/community/namecoin/20-boost-multithread-dynamic.patch @@ -0,0 +1,33 @@ +--- namecoin-nc*/src/Makefile ++++ namecoin-nc*/src/Makefile +@@ -9,24 +9,20 @@ + DEFS += -DBOOST_THREAD_USE_LIB + + INCLUDEPATHS= \ +- -I../libs/openssl-1.0.1i/include \ +- -I../libs/db-4.7.25.NC/build_unix \ +- -I../libs/boost_1_50_0 ++ -I/usr/include + + LIBPATHS= \ +- -L../libs/openssl-1.0.1i \ +- -L../libs/db-4.7.25.NC/build_unix \ +- -L../libs/boost_1_50_0/stage/lib ++ -L/usr/lib + + LIBBOOST_SUFFIX= + + LIBS= \ +- -Wl,-Bstatic \ ++ -Wl,-Bdynamic \ + -l boost_system$(LIBBOOST_SUFFIX) \ + -l boost_filesystem$(LIBBOOST_SUFFIX) \ +- -l boost_program_options$(LIBBOOST_SUFFIX) \ +- -l boost_thread$(LIBBOOST_SUFFIX) \ +- -l boost_chrono$(LIBBOOST_SUFFIX) \ ++ -l boost_program_options-mt$(LIBBOOST_SUFFIX) \ ++ -l boost_thread-mt$(LIBBOOST_SUFFIX) \ ++ -l boost_chrono-mt$(LIBBOOST_SUFFIX) \ + -l db_cxx \ + -l ssl \ + -l crypto diff --git a/community/namecoin/31-set-default-env-function.patch b/community/namecoin/31-set-default-env-function.patch new file mode 100644 index 0000000000..9af0446cfd --- /dev/null +++ b/community/namecoin/31-set-default-env-function.patch @@ -0,0 +1,61 @@ +--- namecoin-nc*/src/init.cpp ++++ namecoin-nc*/src/init.cpp +@@ -99,6 +99,10 @@ + #ifndef GUI + int main(int argc, char* argv[]) + { ++ #ifndef WIN32 ++ SetupEnvironment(); ++ #endif ++ + bool fRet = false; + fRet = AppInit(argc, argv); + +--- namecoin-nc*/src/qt/bitcoin.cpp ++++ namecoin-nc*/src/qt/bitcoin.cpp +@@ -124,6 +124,10 @@ + #ifndef BITCOIN_QT_TEST + int main(int argc, char *argv[]) + { ++ #ifndef WIN32 ++ SetupEnvironment(); ++ #endif ++ + // Command-line options take precedence: + ParseParameters(argc, argv); + +--- namecoin-nc*/src/util.cpp ++++ namecoin-nc*/src/util.cpp +@@ -1114,3 +1114,20 @@ + } + return true; + } ++ ++#ifndef WIN32 ++void SetupEnvironment() ++{ ++ try ++ { ++ #if BOOST_FILESYSTEM_VERSION == 3 ++ boost::filesystem::path::codecvt(); // Raises runtime error if current locale is invalid ++ #else // boost filesystem v2 ++ std::locale(); // Raises runtime error if current locale is invalid ++ #endif ++ } catch(std::runtime_error &e) ++ { ++ setenv("LC_ALL", "C", 1); // Force C locale ++ } ++} ++#endif + +--- namecoin-nc0.3.76/src/util.h ++++ namecoin-nc0.3.76/src.new/util.h +@@ -211,6 +211,7 @@ + + void RandAddSeed(); + void RandAddSeedPerfmon(); ++void SetupEnvironment(); + int OutputDebugStringF(const char* pszFormat, ...); + int my_snprintf(char* buffer, size_t limit, const char* format, ...); + + diff --git a/community/namecoin/APKBUILD b/community/namecoin/APKBUILD new file mode 100644 index 0000000000..a2d5eff343 --- /dev/null +++ b/community/namecoin/APKBUILD @@ -0,0 +1,75 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=namecoin +pkgver=0.3.80 +pkgrel=1 +pkgdesc="Namecoin is a peer to peer DNS based on bitcoin" +url="https://github.com/namecoin/namecoin" +arch="" +license="GPL" +depends="" +depends_dev="openssl-dev db-dev boost-dev miniupnpc-dev glib-dev qt5-qtbase-dev qt5-qttools-dev" +makedepends="$depends_dev bsd-compat-headers" +install="$pkgname.post-install $pkgname.pre-install" +subpackages="$pkgname-qt" +source="$pkgname-$pkgver.tar.gz::https://github.com/namecoin/namecoin/archive/nc$pkgver.tar.gz + 20-boost-multithread-dynamic.patch + system-strlcpy.patch + $pkgname.initd + $pkgname.conf + " + +_builddir="$srcdir"/namecoin-nc$pkgver +prepare() { + local i + cd "$_builddir" + for i in $source; do + case $i in + *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; + esac + done +} + +build() { + cd "$_builddir"/src + # build namecoind + make USE_UPNP=1 USE_SSL=1 || return 1 + cd .. + # build namecoin-qt + qmake + # Fix boost_multi thread linking in the GUI too + sed -i 's/-lboost_thread/-lboost_thread-mt/g' ./Makefile + sed -i 's/-lboost_program_options/-lboost_program_options-mt/g' ./Makefile + sed -i 's/-lboost_chrono/-lboost_chrono-mt/g' ./Makefile + make || return 1 +} + +package() { + cd "$_builddir"/src + install -Dm755 namecoind "$pkgdir"/usr/bin/namecoind || return 1 + install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname || return 1 + install -m600 -D "$srcdir"/$pkgname.conf "$pkgdir"/etc/$pkgname.conf || return 1 +} + +qt() { + pkgdesc="Namecoin with a Qt frontend" + cd "$_builddir" + mkdir -p "$subpkgdir"/usr/bin + install -Dm755 namecoin-qt "$subpkgdir"/usr/bin/namecoin-qt || return 1 +} + +md5sums="7302f83d8390184139277255a6c1d484 namecoin-0.3.80.tar.gz +e4e43d7420191a94500189fe58a34a9c 20-boost-multithread-dynamic.patch +3350b82aec4eb1edb2555c0b0e8b0451 system-strlcpy.patch +9ecdbd9e17240075d064498a80fd50bd namecoin.initd +59b2e0e765738ba48f632051fb6917ae namecoin.conf" +sha256sums="3f5e5af95cea46111d3cf1663f0e84d5fda653917745e0607a3ca4773baea59c namecoin-0.3.80.tar.gz +1b0e2c1c3ca849df816405c9f8dd86e056daed213c3e4c4e72161cabd64e67e8 20-boost-multithread-dynamic.patch +44ff4beb1a10bd1e6a0f984a37d69e025b2c2b5de58af300ec5c23fd3e83f67e system-strlcpy.patch +04ae66115343aa8ed7343139a2370b1e570c8ab4397d09457f5f157dd906a204 namecoin.initd +4b413833527929ea863351469a5a4fc1e0ac365fe9df5e8a8304d8667acf8cea namecoin.conf" +sha512sums="6ff3fddd72cf8ed4224b42deb6a7ca50906262cb50c3ca5ccb419791daa474d52b9584cbc47240fa7546c3f23fe23b72af475f16d1dd110ab13098e3e60a5de6 namecoin-0.3.80.tar.gz +fc13574fef73cca20178e5895e2327567f40c91d25105d72b301a155f9025bfb494ce337096424fd71da8034fb0544562b8459c1d8ae2598ee503efd5995c6bf 20-boost-multithread-dynamic.patch +8701c8faf786420a7085a8e5d85080fe18f26e53ae346c1c897315fd7f8f00e1f1e326ed5917b0eefa8f74bc7470e8979c1b10515017584baa2e9feb3c39b205 system-strlcpy.patch +3048248b3da7300b0b3cb5667283badc17b41e6c90573604fd9ea9eb9933e93f9b1d6288846793b4e7a001a4cae5e52d2ce42e4bdc83e48f72aca6ee0e8ddd43 namecoin.initd +3f92cb9a5f66d0e9e3792691b2e62b929c092030273bb87ebd9564e0c02196a5a9f69c458162f1b35099ac28e9b79b1c4035144b9d2dae4ad3e87d05a40d7ed4 namecoin.conf" diff --git a/community/namecoin/namecoin.conf b/community/namecoin/namecoin.conf new file mode 100644 index 0000000000..dd48332259 --- /dev/null +++ b/community/namecoin/namecoin.conf @@ -0,0 +1,13 @@ +### Namecoin configuration for Alpine Linux ### +# # +##### data directory is /var/lib/namecoin ##### +##### & set in /etc/init.d/namecoin not here ## +# +#proxy=127.0.0.1:9050 #use TOR Socks Proxy +rpcallowip=127.0.0.1 +rpcuser=changeme +rpcpassword=changeme +rpcport=changeme +daemon=1 +#gen=1 #generate namecoins + diff --git a/community/namecoin/namecoin.initd b/community/namecoin/namecoin.initd new file mode 100644 index 0000000000..9bdeea0893 --- /dev/null +++ b/community/namecoin/namecoin.initd @@ -0,0 +1,38 @@ +#!/sbin/runscript + +# Namecoin init.d file for Alpine Linux. + +name=namecoind +daemon=/usr/bin/$name +config=/etc/namecoin.conf +user=namecoin +group=namecoin +## supercedes datadir set in $config ## +datadir=/var/lib/namecoin +pidfile=/var/run/namecoin/$name.pid + +depend() { + need net + after logger firewall +} + +start() { + ebegin "Starting ${name}" + # enforce permissions + checkpath -q -d ${pidfile%/*} -o ${user}:${group} + checkpath -q -d ${datadir} -m 0700 -o ${user}:${group} + checkpath -q -f ${config} -m 0600 -o ${user}:${group} + start-stop-daemon --start --quiet \ + --pidfile ${pidfile} \ + --user ${user}:${group} \ + --exec ${daemon} -- -conf=${config} -datadir=${datadir} -pid=${pidfile} + eend $? +} + +stop() { + ebegin "Stopping ${name}" + start-stop-daemon --stop --quiet \ + --pidfile ${pidfile} \ + --exec ${daemon} + eend $? +} diff --git a/community/namecoin/namecoin.post-install b/community/namecoin/namecoin.post-install new file mode 100644 index 0000000000..ee8b756b40 --- /dev/null +++ b/community/namecoin/namecoin.post-install @@ -0,0 +1,35 @@ +#!/bin/sh + +NORMAL="\033[1;0m" +STRONG="\033[1;1m" +GREEN="\033[1;32m" + +config=$(grep -F 'config=' /etc/init.d/namecoin |sed 's/config=//') + +randgen() { + output=$(cat /dev/urandom | tr -dc '0-9a-zA-Z!@#$%^&*_+-' | head -c${1:-$1}) 2>/dev/null + echo $output +} + +findRandomTcpPort(){ + port=$(( 1024 + $(( $RANDOM % $(( 65534 - 1024 )) )) )) + while netstat -atn | grep -q :$port; do port=$(expr $port + 1); done; echo $port +} + +GenPasswd(){ + sed -i "/rpcuser=/ c \rpcuser=USER-"$(randgen 32)"" $config + sed -i "/rpcpassword=/ c \rpcpassword=PW-"$(randgen 64)"" $config + sed -i "/rpcport=/ c \rpcport="$(findRandomTcpPort)"" $config + print_green "Generated random user / password / port in:" " $config\n" +} + +print_green() { + local prompt="${STRONG}$1${GREEN}$2${NORMAL}" + printf "${prompt}%s" +} + +if grep -F "changeme" $config 1>/dev/null; then + GenPasswd +fi + +exit 0 diff --git a/community/namecoin/namecoin.pre-install b/community/namecoin/namecoin.pre-install new file mode 100644 index 0000000000..f41286d1bd --- /dev/null +++ b/community/namecoin/namecoin.pre-install @@ -0,0 +1,6 @@ +#!/bin/sh + +addgroup -S namecoin 2>/dev/null +adduser -S -D -h /var/lib/namecoin -s /sbin/nologin -G namecoin -g namecoin namecoin 2>/dev/null + +exit 0 diff --git a/community/namecoin/system-strlcpy.patch b/community/namecoin/system-strlcpy.patch new file mode 100644 index 0000000000..f7bb2717df --- /dev/null +++ b/community/namecoin/system-strlcpy.patch @@ -0,0 +1,60 @@ +diff --git a/src/init.cpp b/src/init.cpp +index bc7e714..295e20f 100644 +--- a/src/init.cpp ++++ b/src/init.cpp +@@ -6,7 +6,6 @@ + #include "bitcoinrpc.h" + #include "net.h" + #include "init.h" +-#include "strlcpy.h" + #include <boost/filesystem.hpp> + #include <boost/filesystem/fstream.hpp> + #include <boost/interprocess/sync/file_lock.hpp> +diff --git a/src/irc.cpp b/src/irc.cpp +index fea0aa2..fd5d8c4 100644 +--- a/src/irc.cpp ++++ b/src/irc.cpp +@@ -5,7 +5,6 @@ + #include "headers.h" + #include "irc.h" + #include "net.h" +-#include "strlcpy.h" + + using namespace std; + using namespace boost; +diff --git a/src/net.cpp b/src/net.cpp +index 4d2f651..7df2b77 100644 +--- a/src/net.cpp ++++ b/src/net.cpp +@@ -7,7 +7,6 @@ + #include "db.h" + #include "net.h" + #include "init.h" +-#include "strlcpy.h" + + #ifdef __WXMSW__ + #include <string.h> +diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp +index 30dcca6..21a11af 100644 +--- a/src/qt/bitcoin.cpp ++++ b/src/qt/bitcoin.cpp +@@ -15,7 +15,6 @@ + #include "ui_interface.h" + #include "paymentserver.h" + #include "../allocators.h" +-#include "../strlcpy.h" + + #include <boost/filesystem.hpp> + +diff --git a/src/util.cpp b/src/util.cpp +index fc51717..50ce19f 100644 +--- a/src/util.cpp ++++ b/src/util.cpp +@@ -2,7 +2,6 @@ + // Distributed under the MIT/X11 software license, see the accompanying + // file license.txt or http://www.opensource.org/licenses/mit-license.php. + #include "headers.h" +-#include "strlcpy.h" + #include <boost/program_options/detail/config_file.hpp> + #include <boost/program_options/parsers.hpp> + #include <boost/filesystem.hpp> diff --git a/community/networkmanager/APKBUILD b/community/networkmanager/APKBUILD new file mode 100644 index 0000000000..7f0a0e8dbf --- /dev/null +++ b/community/networkmanager/APKBUILD @@ -0,0 +1,129 @@ +# Contributor: William Pitcock <nenolod@dereferenced.org> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=networkmanager +pkgver=1.0.6 +pkgrel=0 +pkgdesc="network management tool" +url="http://projects.gnome.org/NetworkManager/" +arch="all" +license="GPL" +depends="dhcpcd iptables dbus" +depends_dev= +makedepends="$depends_dev + dbus-glib-dev + eudev-dev + gobject-introspection-dev + intltool + libmm-glib-dev + libndp-dev + libnl3-dev + libsoup-dev + libteam-dev + linux-headers + modemmanager-dev + newt-dev + nss-dev + polkit-dev + ppp-dev + readline-dev + util-linux-dev + vala + " +subpackages="$pkgname-dev $pkgname-doc $pkgname-lang" +source="http://ftp.gnome.org/pub/GNOME/sources/NetworkManager/${pkgver:0:3}/NetworkManager-$pkgver.tar.xz + $pkgname.conf + $pkgname.initd + $pkgname.rules + new-fix-musl-headers.patch + disable_set_hostname.patch + " + +_builddir="$srcdir"/NetworkManager-$pkgver +prepare() { + local i + cd "$_builddir" + for i in $source; do + case $i in + *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; + esac + done + # Build fails without IPTOS_CLASS_CS6 defined (required by systemd) ### + # http://cgit.openembedded.org/openembedded-core/commit/?id=7562021eef5b7585122c92db8b686808ebe7d85e + # Remove systemd functionality. This also removes many: "error: redefinition of 'struct ethhdr'" + local f= files=$(find src/dhcp-manager/systemd-dhcp -type f) # --without-systemd has no effect + files="$files $(find src/dhcp-manager -maxdepth 1 -type f -name "*-systemd.*")" + for f in $files; do # do NOT build --with-dbus-sys-dir=/etc/dbus-1 (nm service will crash) + printf "" > $f + done + +} + +build() { + cd "$_builddir" + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + --localstatedir=/var \ + --disable-more-warnings \ + --disable-config-plugin-ibft \ + --disable-tests \ + --disable-wimax \ + --disable-introspection \ + --enable-ifupdown \ + --enable-concheck \ + --with-dhcpcd=yes \ + --with-systemdsystemunitdir=no \ + --with-crypto=nss \ + --with-modem-manager-1 \ + --with-nmtui=yes \ + --with-wext=yes \ + --with-resolvconf=yes \ + --with-session-tracking=no \ + --with-suspend-resume=upower \ + --without-valgrind \ + || return 1 + # ourLDFLAGS confuses the gir-scanner + unset LDFLAGS + make || return 1 +} + +package() { + cd "$_builddir" + make DESTDIR="$pkgdir" install || return 1 + + install -m755 -D "$srcdir"/networkmanager.initd \ + "$pkgdir"/etc/init.d/networkmanager || return 1 + + install -m644 -D "$srcdir/$pkgname.conf" \ + "$pkgdir/etc/NetworkManager/NetworkManager.conf" || return 1 + # allow plugdev users to modify connections + install -m644 -D "$srcdir/$pkgname.rules" \ + "$pkgdir/usr/share/polkit-1/rules.d/01-org.freedesktop.NetworkManager.settings.modify.system.rules" || return 1 + mkdir -p "$pkgdir/usr/share/apk-tools/$pkgname" + # post-install message + mv "$pkgdir/usr/share/doc/NetworkManager" "$pkgdir/usr/share/doc/$pkgname" || return 1 + cat > $pkgdir/usr/share/doc/$pkgname/README.alpine <<EOF +To modify system network connections without the root password: add your user account to the 'plugdev' group. +EOF +} + +md5sums="00f5f9ec69725a9f9b99366853c6f73e NetworkManager-1.0.6.tar.xz +b722fa02f904a9c8ed0d2ec21cbfc588 networkmanager.conf +34f8909bb776840e7ec0579aeea14d30 networkmanager.initd +a39b4feaf1edecc057596be6d82ba634 networkmanager.rules +eb52238b018c2ca9cd969facbf3e4a39 new-fix-musl-headers.patch +4f2c03bce7febd1eede0dc2c5f8b30d9 disable_set_hostname.patch" +sha256sums="38ea002403e3b884ffa9aae25aea431d2a8420f81f4919761c83fb92648254bd NetworkManager-1.0.6.tar.xz +cd2a4b0079c0726973c1cf226c4e1cb4f2d27d02c16e0e08af7e4d6b8770423c networkmanager.conf +05225f1f658f9287d95b4564beb1089245ab83ccae28ba5d2d4c8fc5aefde207 networkmanager.initd +01f4b833c515e88c1963a0ee56ffbf70c59c5efc4dd59a5174498d2fabfc9362 networkmanager.rules +ea205946b52fca22b9ef8b1f3a4e89a69dca430201b5b0f441564d1659d9f295 new-fix-musl-headers.patch +6fc7bc258ac01c2d2578f5a29e7eee55b98bbf8f32dae6d28dede7d7ee5e5c4e disable_set_hostname.patch" +sha512sums="74e8f91bbd9a70f1764b06c729717e091d2be0a8e316fe1b6235e644b65f43add5214be7a1100fe9d30b1511f4a00b9892dce79bb8ba0f0b0d57089d2ba6ddbb NetworkManager-1.0.6.tar.xz +a6e507260e2ceffad4cacb2b49a1d4f6b933e5ae8bc50c1bd56f828298c5dc8d9d17aa4be766faeacefbe3c6c0c748e4ef499a55bb5ee40f0f04bbf766fbbc82 networkmanager.conf +80ef470956bc5319f02e8387bff17c5452d4147321f9f997ca86017494d5134d8579bf59566fc796f3e84ee5788a2d49743d3b93e795f4976661866d1f1b1442 networkmanager.initd +9820ed2ead0af689644842de57657bb10330a1eaff0e85b21ae9913f55e399e47d8b41b0a12956f30de80272b4424c6e55f33acbc88e156879003a260bf576f6 networkmanager.rules +18eff8eadcb8d47742a5c760c0c4a217d82749edc0060dc3b62e6aa0671f456de9d0c11b1669b302371410cd4036bf21aee468ed1d61e7a84afd3b694bc69984 new-fix-musl-headers.patch +cdc8c26720b983f8afb11ee08c87aab863522633d8dc08e8cea080ed8d94378b3534aedf09efc6e7481599cfede6122b5f6a86b0b45e0a8bb653f95d4c5beaf8 disable_set_hostname.patch" diff --git a/community/networkmanager/disable_set_hostname.patch b/community/networkmanager/disable_set_hostname.patch new file mode 100644 index 0000000000..773e263474 --- /dev/null +++ b/community/networkmanager/disable_set_hostname.patch @@ -0,0 +1,20 @@ +diff -Nur NetworkManager-0.9.0.orig/src/nm-policy.c NetworkManager-0.9.0/src/nm-policy.c +--- NetworkManager-0.9.0.orig/src/nm-policy.c 2011-08-23 06:41:02.099686450 +0000 ++++ NetworkManager-0.9.0/src/nm-policy.c 2011-08-23 06:43:38.227791737 +0000 +@@ -302,6 +302,7 @@ + return; + } + ++#if 0 + /* Try automatically determined hostname from the best device's IP config */ + if (!best4) + best4 = get_best_ip4_device (policy->manager, &best_req4); +@@ -356,6 +357,7 @@ + } + } + ++#endif + /* If no automatically-configured hostname, try using the hostname from + * when NM started up. + */ + diff --git a/community/networkmanager/networkmanager.conf b/community/networkmanager/networkmanager.conf new file mode 100644 index 0000000000..8da4fe0487 --- /dev/null +++ b/community/networkmanager/networkmanager.conf @@ -0,0 +1,2 @@ +[main] +dhcp=dhcpcd diff --git a/community/networkmanager/networkmanager.initd b/community/networkmanager/networkmanager.initd new file mode 100644 index 0000000000..575b413897 --- /dev/null +++ b/community/networkmanager/networkmanager.initd @@ -0,0 +1,23 @@ +#!/sbin/openrc-run +# Copyright (c) 2008 Saleem Abdulrasool <compnerd@compnerd.org> +# Distributed under the terms of the GNU General Purpose License v2 +# $Header: $ + +depend() { + need dbus +} + +start() { + ebegin "Starting NetworkManager" + start-stop-daemon --start --quiet --pidfile /var/run/NetworkManager.pid \ + --exec /usr/sbin/NetworkManager -- --pid-file /var/run/NetworkManager.pid + eend $? +} + +stop() { + ebegin "Stopping NetworkManager" + start-stop-daemon --stop --quiet --pidfile /var/run/NetworkManager.pid + eend $? +} + +# vim: set ft=gentoo-init-d ts=3 sw=3 et: diff --git a/community/networkmanager/networkmanager.rules b/community/networkmanager/networkmanager.rules new file mode 100644 index 0000000000..66d21d6bbd --- /dev/null +++ b/community/networkmanager/networkmanager.rules @@ -0,0 +1,9 @@ +// Let users in plugdev group modify NetworkManager +polkit.addRule(function(action, subject) { + if (action.id == "org.freedesktop.NetworkManager.settings.modify.system" && + subject.isInGroup("plugdev") && subject.active) { + return "yes"; + } +}); + + diff --git a/community/networkmanager/new-fix-musl-headers.patch b/community/networkmanager/new-fix-musl-headers.patch new file mode 100644 index 0000000000..e29f8569e6 --- /dev/null +++ b/community/networkmanager/new-fix-musl-headers.patch @@ -0,0 +1,31 @@ +## moving the <linux/xxxx> includes to below nm includes +## no longer works in 1.0.0. +--- NetworkManager-1.0.0/src/platform/wifi/wifi-utils.h ++++ NetworkManager-1.0.0/src/platform/wifi/wifi-utils.h.new +@@ -22,10 +22,10 @@ + #ifndef __WIFI_UTILS_H__ + #define __WIFI_UTILS_H__ + +-#include <net/ethernet.h> + #include <glib.h> + + #include "nm-dbus-interface.h" ++#include <linux/if_ether.h> + + typedef struct WifiData WifiData; + +--- NetworkManager-1.0.0/src/settings/nm-settings-connection.h ++++ NetworkManager-1.0.0/src/settings/nm-settings-connection.h.new +@@ -22,10 +22,9 @@ + #ifndef __NETWORKMANAGER_SETTINGS_CONNECTION_H__ + #define __NETWORKMANAGER_SETTINGS_CONNECTION_H__ + +-#include <net/ethernet.h> +- + #include <nm-connection.h> + #include "nm-types.h" ++#include <linux/if_ether.h> + + G_BEGIN_DECLS + + diff --git a/community/nginx-naxsi/APKBUILD b/community/nginx-naxsi/APKBUILD new file mode 100644 index 0000000000..c2a265e572 --- /dev/null +++ b/community/nginx-naxsi/APKBUILD @@ -0,0 +1,143 @@ +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +# Contributor: Cameron Banta <cbanta@gmail.com> +# Contributor: Jeff Bilyk <jbilyk@gmail.com> +# Contributor: Bartłomiej Piotrowski <nospam@bpiotrowski.pl> + +pkgname=nginx-naxsi +_pkgname=nginx +pkgver=1.9.15 +_ngx_naxsi_ver=0.54 +_ngx_cache_purge_ver=2.3 +_ngx_upstream_fair_ver=0.1.0 +_ngx_http_sysguard_ver=2.1.0 +pkgrel=2 +pkgdesc="lightweight HTTP and reverse proxy server with Naxsi WAF support, see also 'nxapi'" +url="http://www.nginx.org | https://github.com/nbs-system/naxsi" +arch="all" +license="custom" +install="$pkgname.pre-install $pkgname.pre-upgrade" +depends="!nginx" +makedepends="pcre-dev openssl-dev zlib-dev paxmark linux-headers" +subpackages="$pkgname-doc $pkgname-vim:vim" +source="http://nginx.org/download/$_pkgname-$pkgver.tar.gz + naxsi-$_ngx_naxsi_ver.tar.gz::https://github.com/nbs-system/naxsi/archive/$_ngx_naxsi_ver.tar.gz + ngx_cache_purge-$_ngx_cache_purge_ver.tar.gz::https://github.com/FRiCKLE/ngx_cache_purge/archive/$_ngx_cache_purge_ver.tar.gz + upstream-fair-$_ngx_upstream_fair_ver.tar.gz::https://github.com/hnlq715/nginx-upstream-fair/archive/v$_ngx_upstream_fair_ver.tar.gz + sysguard-$_ngx_http_sysguard_ver.tar.gz::https://github.com/itoffshore/nginx-http-sysguard/archive/$_ngx_http_sysguard_ver.tar.gz + + anonymise.patch + ipv6.patch + sysguard.patch + + nginx.initd + nginx.logrotate + " + +_builddir="$srcdir"/$_pkgname-$pkgver + +prepare() { + local i + cd "$_builddir" + for i in $source; do + case $i in + *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; + esac + done +} + +build() { + cd "$_builddir" + ./configure \ + --add-module="$srcdir/naxsi-$_ngx_naxsi_ver/naxsi_src" \ + --add-module="$srcdir/nginx-http-sysguard-$_ngx_http_sysguard_ver" \ + --prefix=/usr \ + --conf-path=/etc/$_pkgname/$_pkgname.conf \ + --pid-path=/var/run/$_pkgname.pid \ + --lock-path=/var/run/$_pkgname.lock \ + --error-log-path=/var/log/$_pkgname/error.log \ + --http-log-path=/var/log/$_pkgname/access.log \ + --http-client-body-temp-path=/tmp/$_pkgname/client-body \ + --http-proxy-temp-path=/tmp/$_pkgname/proxy \ + --http-fastcgi-temp-path=/tmp/$_pkgname/fastcgi \ + --user=nginx \ + --group=nginx \ + --with-ipv6 \ + --with-threads \ + --with-file-aio \ + --with-pcre-jit \ + --with-http_ssl_module \ + --with-http_gzip_static_module \ + --with-http_v2_module \ + --with-mail \ + --with-mail_ssl_module \ + --with-http_realip_module \ + --with-http_stub_status_module \ + --with-http_auth_request_module \ + --with-stream \ + --with-stream_ssl_module \ + --without-http_uwsgi_module \ + --without-http_scgi_module \ + --add-module="$srcdir/ngx_cache_purge-$_ngx_cache_purge_ver" \ + --add-module="$srcdir/nginx-upstream-fair-$_ngx_upstream_fair_ver" \ + || return 1 + make || return 1 +} + +package() { + cd "$_builddir" + make DESTDIR="$pkgdir" install + + local paxflags="-m" + [ "$CARCH" = "x86" ] && paxflags="-msp" + paxmark "$paxflags" "$pkgdir"/usr/sbin/nginx || return 1 + + install -m755 -D "$srcdir"/$_pkgname.initd "$pkgdir"/etc/init.d/$_pkgname + install -m644 -D "$srcdir"/$_pkgname.logrotate "$pkgdir"/etc/logrotate.d/$_pkgname + + install -m644 -D LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE + install -m644 -D "$srcdir"/naxsi-$_ngx_naxsi_ver/naxsi_config/naxsi_core.rules "$pkgdir"/etc/nginx/naxsi_core.rules +} + +vim() { + local t + + depends="" + pkgdesc="Vim syntax for Nginx" + arch="noarch" + + for t in ftdetect syntax indent; do + install -Dm644 "$_builddir"/contrib/vim/$t/$_pkgname.vim \ + "$subpkgdir"/usr/share/vim/vimfiles/$t/$_pkgname.vim + done +} + +md5sums="13cd38e9da3789035750dd45882c4a26 nginx-1.9.15.tar.gz +1bc31058991268e4cfdb44e9b6d8b3b3 naxsi-0.54.tar.gz +dc4c0688ed03ca7f5563097c2a8a76ca ngx_cache_purge-2.3.tar.gz +f3562ef6573f616e254d382d6f86b8e1 upstream-fair-0.1.0.tar.gz +fdb072dc8d67b573a0ea7983530a7d2b sysguard-2.1.0.tar.gz +31d29937da95b31714faa399aeb07407 anonymise.patch +801a87f7f9d27f8ad85b41a78b4c4461 ipv6.patch +50357b75049d878c0bcce10d0c60f9ed sysguard.patch +609ea97ab6c3c30f9e8329968aadc4f3 nginx.initd +8823274a834332d3db4f62bf7dd1fb7d nginx.logrotate" +sha256sums="cc89b277cc03f403c0b746d60aa5943cdecf59ae48278f8cb7e2df0cbdb6dac3 nginx-1.9.15.tar.gz +9cc2c09405bc71f78ef26a8b6d70afcea3fccbe8125df70cb0cfc480133daba5 naxsi-0.54.tar.gz +cb7d5f22919c613f1f03341a1aeb960965269302e9eb23425ccaabd2f5dcbbec ngx_cache_purge-2.3.tar.gz +dd0bfb79d2489f48ea63ac004d91890cd471eb4020500ce9179c3612cb13246c upstream-fair-0.1.0.tar.gz +97e0cc9a36fcce375c5b0667b002d2f7acd580e968a2318e3276fbdc1b99f8e4 sysguard-2.1.0.tar.gz +28adf3605875197d5822fa382f5fd3c9c80f7d3a561e904fee223fa051f98810 anonymise.patch +a24ef5843ae0afa538b00c37eb7da7870f9d7f146f52a9668678f7296cf71d9b ipv6.patch +18090329435c32d91621a5943acc5b8bbe89aaa3c2fa334c3a4cdeb00efb6226 sysguard.patch +8cbef405295eac299dfc3b9b119c02bda354a9b335923bed6ff6992c1fd8f493 nginx.initd +cea0c6f8de55a4c3a3eccc57910de1c3116634082c8e5b660630fb927a29f38d nginx.logrotate" +sha512sums="563cec7828d1e398ded83579c3c4afcd83fd809662e64a0212e25a34ce1b599135558e9fd8cee3e07ba028ee4b308e40ce9910a5071a3d8e3b7ec9f9bdef95f0 nginx-1.9.15.tar.gz +91934bfd41495715269cc6e549d17f6da66f2bdd0c9a6821fa9096b694dd3927109c4aad2f8b327620ae7c34f76a0839ac16669cd8c65081bc01fa7f829c1d43 naxsi-0.54.tar.gz +81929ca57ce5c2e1af6ec43882a54ff1da8dc77786bfb7505ff94fbcf970ae8870b419dc5c0bc7b80794d75a359e0100f360c1cf458a300f802b1d8bd7053811 ngx_cache_purge-2.3.tar.gz +2ff9894986c5cd483ecee97d8818675ef6d063e5f45bb66e8cf56c78bbd043b9c0c37eb3cf650b7cfb6d40da9f7a4ba0e030fe39de5ef1f715cbcd6560248428 upstream-fair-0.1.0.tar.gz +f9587b8aa7a2b09be016dc6f7a07fe3fee154d16172194e899bf3c78a3f4e373c78f79932794cd9ac75793514c606ab878f88be9400b70e37528d263f1541b34 sysguard-2.1.0.tar.gz +f8e46dafcf553edd35699dc2a47a54756e0a4c690fc13f81436ad9db1026739ba331ad99d3d05d8a7c089a5c067bf45f4aca3a98fdd9483b7b0123a837e695be anonymise.patch +68d64a84568ec2df0366925ab282a05ebe21a85044b6c7844a47573cfd8cc8ed119cc772358bc3fff36e2d4fdf583a730592825f5f98632993ca86d1f8438d5f ipv6.patch +2dca2ac74fb92e330fde7b6b6120b2fd2565c377a629c9536cf77beebe41aa4b092d4229d5b487b0fb02be4f2cc5b897c429c87bbbbc7b0d31e1cbb94231ddce sysguard.patch +6e9a37176c0ca5a463a2745401bc5a6f9c002a236244b615a2803ec04404cc768678a1fa27ee047f81f4ccf002f7bea4b803522049f4ef839c61bb83577b9d65 nginx.initd +01b77cff16f6e8bfd7fa1d4d20f625bbcddd08f0509173452d060c342c93dc315a7b0560f4734323a5d29ea294de0491f2e3f32e5337574e1a28ebc005eceea8 nginx.logrotate" diff --git a/community/nginx-naxsi/anonymise.patch b/community/nginx-naxsi/anonymise.patch new file mode 100644 index 0000000000..17bca99b51 --- /dev/null +++ b/community/nginx-naxsi/anonymise.patch @@ -0,0 +1,76 @@ +--- nginx-1.6.1/src/http/ngx_http_header_filter_module.c ++++ nginx-1.6.1/src/http/ngx_http_header_filter_module.c +@@ -46,8 +46,8 @@ + }; + + +-static char ngx_http_server_string[] = "Server: nginx" CRLF; +-static char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF; ++static char ngx_http_server_string[] = ""; ++static char ngx_http_server_full_string[] = ""; + + + static ngx_str_t ngx_http_status_lines[] = { +@@ -278,8 +278,8 @@ + clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module); + + if (r->headers_out.server == NULL) { +- len += clcf->server_tokens ? sizeof(ngx_http_server_full_string) - 1: +- sizeof(ngx_http_server_string) - 1; ++ len += clcf->server_tokens ? sizeof(ngx_http_server_full_string) - 0: ++ sizeof(ngx_http_server_string) - 0; + } + + if (r->headers_out.date == NULL) { +--- nginx-1.6.1/src/http/ngx_http_special_response.c ++++ nginx-1.6.1/src/http/ngx_http_special_response.c +@@ -19,14 +19,14 @@ + + + static u_char ngx_http_error_full_tail[] = +-"<hr><center>" NGINX_VER "</center>" CRLF ++"<hr><center>127.0.0.1</center>" CRLF + "</body>" CRLF + "</html>" CRLF + ; + + + static u_char ngx_http_error_tail[] = +-"<hr><center>nginx</center>" CRLF ++"<hr><center>localhost</center>" CRLF + "</body>" CRLF + "</html>" CRLF + ; +--- nginx-1.9.12/src/http/v2/ngx_http_v2_filter_module.c ++++ nginx-1.9.12/src/http/v2/ngx_http_v2_filter_module.c.new +@@ -229,9 +229,9 @@ + + clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module); + +- if (r->headers_out.server == NULL) { ++/* if (r->headers_out.server == NULL) { + len += 1 + (clcf->server_tokens ? nginx_ver_len : sizeof(nginx)); +- } ++ } */ + + if (r->headers_out.date == NULL) { + len += 1 + ngx_http_v2_literal_size("Wed, 31 Dec 1986 18:00:00 GMT"); +@@ -434,7 +434,7 @@ + pos = ngx_sprintf(pos, "%03ui", r->headers_out.status); + } + +- if (r->headers_out.server == NULL) { ++/* if (r->headers_out.server == NULL) { + ngx_log_debug1(NGX_LOG_DEBUG_HTTP, fc->log, 0, + "http2 output header: \"server: %s\"", + clcf->server_tokens ? NGINX_VER : "nginx"); +@@ -453,7 +453,7 @@ + } else { + pos = ngx_cpymem(pos, nginx, sizeof(nginx)); + } +- } ++ } */ + + if (r->headers_out.date == NULL) { + ngx_log_debug1(NGX_LOG_DEBUG_HTTP, fc->log, 0, + diff --git a/community/nginx-naxsi/ipv6.patch b/community/nginx-naxsi/ipv6.patch new file mode 100644 index 0000000000..9b05f8ff83 --- /dev/null +++ b/community/nginx-naxsi/ipv6.patch @@ -0,0 +1,42 @@ +--- a/src/http/ngx_http_core_module.c ++++ b/src/http/ngx_http_core_module.c +@@ -2442,7 +2442,11 @@ + ngx_uint_t i; + ngx_conf_t pcf; + ngx_http_module_t *module; ++#if (NGX_HAVE_INET6) ++ struct sockaddr_in6 *sin6; ++#else + struct sockaddr_in *sin; ++#endif + ngx_http_conf_ctx_t *ctx, *http_ctx; + ngx_http_listen_opt_t lsopt; + ngx_http_core_srv_conf_t *cscf, **cscfp; +@@ -2526,6 +2530,19 @@ + if (rv == NGX_CONF_OK && !cscf->listen) { + ngx_memzero(&lsopt, sizeof(ngx_http_listen_opt_t)); + ++#if (NGX_HAVE_INET6) ++ sin6 = &lsopt.u.sockaddr_in6; ++ ++ sin6->sin6_family = AF_INET6; ++#if (NGX_WIN32) ++ sin6->sin6_port = htons(80); ++#else ++ sin6->sin6_port = htons((getuid() == 0) ? 80 : 8000); ++#endif ++ sin6->sin6_addr = in6addr_any; ++ ++ lsopt.socklen = sizeof(struct sockaddr_in6); ++#else + sin = &lsopt.u.sockaddr_in; + + sin->sin_family = AF_INET; +@@ -2537,6 +2554,7 @@ + sin->sin_addr.s_addr = INADDR_ANY; + + lsopt.socklen = sizeof(struct sockaddr_in); ++#endif + + lsopt.backlog = NGX_LISTEN_BACKLOG; + lsopt.rcvbuf = -1; diff --git a/community/nginx-naxsi/nginx-naxsi.pre-install b/community/nginx-naxsi/nginx-naxsi.pre-install new file mode 100644 index 0000000000..8512f43dda --- /dev/null +++ b/community/nginx-naxsi/nginx-naxsi.pre-install @@ -0,0 +1,9 @@ +#!/bin/sh + +addgroup -S -g 82 www-data 2>/dev/null +addgroup -S nginx 2>/dev/null +adduser -S -D -H -h /var/www/localhost/htdocs -s /sbin/nologin -G nginx \ + -g nginx nginx 2>/dev/null +addgroup nginx www-data 2>/dev/null + +exit 0 diff --git a/community/nginx-naxsi/nginx-naxsi.pre-upgrade b/community/nginx-naxsi/nginx-naxsi.pre-upgrade new file mode 120000 index 0000000000..364e0b943c --- /dev/null +++ b/community/nginx-naxsi/nginx-naxsi.pre-upgrade @@ -0,0 +1 @@ +nginx-naxsi.pre-install
\ No newline at end of file diff --git a/community/nginx-naxsi/nginx.initd b/community/nginx-naxsi/nginx.initd new file mode 100644 index 0000000000..bec20dddaa --- /dev/null +++ b/community/nginx-naxsi/nginx.initd @@ -0,0 +1,42 @@ +#!/sbin/openrc-run + +extra_started_commands="reload" +extra_commands="configtest" + +depend() { + need net + use dns logger netmount +} + +CONFFILE=${CONFFILE:-/etc/nginx/${SVCNAME}.conf} +PIDFILE=${PIDFILE:-/var/run/${SVCNAME}.pid} + +configtest() { + ebegin "Checking ${SVCNAME} configuration" + mkdir -p /tmp/nginx + /usr/sbin/nginx -c ${CONFFILE} -t + eend $? "failed, please correct errors above" +} + +start() { + configtest || return 1 + ebegin "Starting ${SVCNAME}" + start-stop-daemon --start --pidfile "${PIDFILE}" \ + --exec /usr/sbin/nginx -- -c ${CONFFILE} -g "pid ${PIDFILE};" + eend $? "Failed to start ${SVCNAME}" +} + +stop() { + configtest || return 1 + ebegin "Stopping ${SVCNAME}" + start-stop-daemon --stop --pidfile "${PIDFILE}" + eend $? "Failed to stop ${SVCNAME}" + rm -f "${PIDFILE}" +} + +reload() { + configtest || return 1 + ebegin "Refreshing ${SVCNAME} configuration" + kill -HUP $(cat "${PIDFILE}") &>/dev/null + eend $? "Failed to reload nginx" +} diff --git a/community/nginx-naxsi/nginx.logrotate b/community/nginx-naxsi/nginx.logrotate new file mode 100644 index 0000000000..7778b1108b --- /dev/null +++ b/community/nginx-naxsi/nginx.logrotate @@ -0,0 +1,12 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/www-servers/nginx/files/nginx.logrotate,v 1.1 2010/01/03 20:29:40 djc Exp $ + +/var/log/nginx/*.log { + missingok + sharedscripts + postrotate + kill -USR1 `cat /var/run/nginx.pid` + endscript +} + diff --git a/community/nginx-naxsi/sysguard.patch b/community/nginx-naxsi/sysguard.patch new file mode 100644 index 0000000000..be8b0d2ee4 --- /dev/null +++ b/community/nginx-naxsi/sysguard.patch @@ -0,0 +1,10 @@ +--- a/src/http/ngx_http_request.h ++++ b/src/http/ngx_http_request.h +@@ -498,6 +498,7 @@ + */ + unsigned limit_conn_set:1; + unsigned limit_req_set:1; ++ unsigned sysguard_set:1; + + #if 0 + unsigned cacheable:1; diff --git a/community/numix-themes/APKBUILD b/community/numix-themes/APKBUILD new file mode 100644 index 0000000000..16d3c941a2 --- /dev/null +++ b/community/numix-themes/APKBUILD @@ -0,0 +1,68 @@ +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=numix-themes +_pkgname=numix-gtk-theme +pkgver=2.6.1 +pkgrel=0 +pkgdesc="A modern flat theme with a combination of light and dark elements, GTK 2 and 3" +url="http://shimmerproject.org/project/Numix/" +arch="noarch" +license="GPLv3" +makedepends="$depends_dev" +subpackages="$pkgname-gtk2 $pkgname-gtk3 $pkgname-metacity $pkgname-xfwm4 $pkgname-xfce4-notifyd:_notify + $pkgname-openbox:_openbox" +source="numix-$pkgver.tar.gz::https://github.com/numixproject/$_pkgname/archive/$pkgver.tar.gz" + +_builddir="$srcdir"/$_pkgname-$pkgver +prepare() { + local i + cd "$_builddir" + for i in $source; do + case $i in + *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; + esac + done +} + +build() { + cd "$_builddir" + # Remove Unity theme + rm -f gtk-3.0/apps/unity.css + sed -i '/unity\.css/d' gtk-3.0/gtk.css + rm -rf unity +} + +package() { + cd "$_builddir" + mkdir -p "$pkgdir"/usr/share/themes/Numix + cp -pr * "$pkgdir"/usr/share/themes/Numix + rm -f "$pkgdir"/usr/share/themes/Numix/Makefile +} + +_mv() { + pkgdesc="$1" + install_if="$pkgname=$pkgver-r$pkgrel $2"; + depends= + local _i + shift; shift + mkdir -p "$subpkgdir"/usr/share/themes/Numix + for _i; do + msg "moving $_i" + mv "$pkgdir"/usr/share/themes/Numix/$_i \ + "$subpkgdir"/usr/share/themes/Numix || return 1 + done +} + +gtk2() { + _mv "Numix GTK2 themes" gtk2.0 gtk-2.0 + depends="gtk-murrine-engine" +} + +gtk3() { _mv "Numix GTK3 themes" gtk3.0 gtk-3.*; } +metacity() { _mv "Numix Metacity themes" metacity metacity-1; } +xfwm4() { _mv "Numix Xfce4 themes" xfwm4 xfwm4; } +_notify() { _mv "Numix Xfce4-notifyd themes" xfce4-notifyd xfce-notify-4.0; } +_openbox() { _mv "Numix openbox themes" openbox openbox-3; } + +md5sums="499e2e8e9d7d1d81403ebf8f65c8ced6 numix-2.6.1.tar.gz" +sha256sums="7d81fb0fe7a50f933ae8016154a6da8ea4f6c12d988f735db277424af344a5bf numix-2.6.1.tar.gz" +sha512sums="ebdbf20049b84141b10bafa93685f844b59ae629d19ede0eef44afafa18357cb54d66cb830a67bf09ab251b04dbf21193e7bc5ea19124061d7fd8dbf4538a745 numix-2.6.1.tar.gz" diff --git a/community/nxapi/APKBUILD b/community/nxapi/APKBUILD new file mode 100644 index 0000000000..4163f466ba --- /dev/null +++ b/community/nxapi/APKBUILD @@ -0,0 +1,47 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=nxapi +_pkgname=naxsi +pkgver=0.54 +_ver=${pkgver/_/} +pkgrel=0 +pkgdesc="nginx/naxsi log parser, whitelist and report generator." +url="http://www.nginx.org | https://github.com/nbs-system/naxsi" +arch="noarch" +license="GPL v2" +depends="python" +depends_dev="" +makedepends="python-dev" +#subpackages="$pkgname-doc" +source="$_pkgname-$_ver.tar.gz::https://github.com/nbs-system/naxsi/archive/${_ver}.tar.gz + fix-config-location.patch + " + +_builddir="$srcdir"/$_pkgname-$_ver/nxapi + +prepare() { + local i + cd "$_builddir" + for i in $source; do + case $i in + *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; + esac + done +} + +build() { + cd "$_builddir" + python setup.py build || return 1 +} + +package() { + cd "$_builddir" + python setup.py install --prefix=/usr --root="$pkgdir" || return 1 +} + +md5sums="1bc31058991268e4cfdb44e9b6d8b3b3 naxsi-0.54.tar.gz +1ad187c532b7314e6db3a18dcb0e56bc fix-config-location.patch" +sha256sums="9cc2c09405bc71f78ef26a8b6d70afcea3fccbe8125df70cb0cfc480133daba5 naxsi-0.54.tar.gz +abc80d64fa48babcb99272fc7a0b15bfe887370e9f0021e64104c83c9e4ff448 fix-config-location.patch" +sha512sums="91934bfd41495715269cc6e549d17f6da66f2bdd0c9a6821fa9096b694dd3927109c4aad2f8b327620ae7c34f76a0839ac16669cd8c65081bc01fa7f829c1d43 naxsi-0.54.tar.gz +b2b62df3d50f03180c8720cb0008039bec45ac08d416617bb53631242b32f7d831016e6381a5b4735f5a00c4196366888123214a776470e47e1fe8c22adf45b8 fix-config-location.patch" diff --git a/community/nxapi/fix-config-location.patch b/community/nxapi/fix-config-location.patch new file mode 100644 index 0000000000..31ad21afdb --- /dev/null +++ b/community/nxapi/fix-config-location.patch @@ -0,0 +1,26 @@ +--- nxapi/setup.py ++++ nxapi/setup.py.new +@@ -6,18 +6,18 @@ + import pprint + + f = {} +-data_files = [('/usr/local/nxapi/', ['nx_datas/country2coords.txt']), +- ('/usr/local/etc/', ['nxapi.json'])] ++data_files = [('/etc/nginx/nxapi/', ['nx_datas/country2coords.txt']), ++ ('/etc/nginx/nxapi/', ['nxapi.json'])] + #modules = [] + for dirname, dirnames, filenames in os.walk('tpl/'): + for filename in filenames: + if filename.endswith(".tpl"): + print dirname+"#"+filename +- if "/usr/local/nxapi/"+dirname not in f.keys(): ++ if "/etc/nginx/nxapi/"+dirname not in f.keys(): + +- f["/usr/local/nxapi/"+dirname] = [] ++ f["/etc/nginx/nxapi/"+dirname] = [] + +- f["/usr/local/nxapi/"+dirname].append(os.path.join(dirname, filename)) ++ f["/etc/nginx/nxapi/"+dirname].append(os.path.join(dirname, filename)) + + for z in f.keys(): + data_files.append( (z, f[z])) diff --git a/community/opencl-headers/APKBUILD b/community/opencl-headers/APKBUILD new file mode 100644 index 0000000000..b23a78b1e9 --- /dev/null +++ b/community/opencl-headers/APKBUILD @@ -0,0 +1,42 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=opencl-headers +pkgver=2.1 +_pkgreal=OpenCL-Headers +pkgrel=0 +pkgdesc="OpenCL (Open Computing Language) header files" +url="https://www.khronos.org/registry/cl/" +arch="noarch" +license="custom" +depends="" +depends_dev="" +makedepends="$depends_dev" +install="" +subpackages="$pkgname-doc" +source="$pkgname-$pkgver.tar.gz::https://github.com/itoffshore/OpenCL-Headers/archive/$pkgver.tar.gz + $pkgname-$pkgver-LICENSE::https://github.com/KhronosGroup/OpenCL-ICD-Loader/raw/master/LICENSE.txt + " + +builddir="$srcdir"/$_pkgreal-$pkgver +build() { + return 0 +} + +package() { + cd "$builddir" + mkdir -p "$pkgdir"/usr/include/CL + mkdir -p "$pkgdir"/usr/share/doc/$pkgname + + for h in $(ls -1 *.h); do + install -m 644 $h "$pkgdir"/usr/include/CL/ + done + + install -D -m644 ../$pkgname-$pkgver-LICENSE "$pkgdir"/usr/share/doc/$pkgname/LICENSE +} + +md5sums="04a5b1a34d0ce47520f08625d97ccfea opencl-headers-2.1.tar.gz +ca6d58ec304a1ce6df094b52ca60c5ce opencl-headers-2.1-LICENSE" +sha256sums="5d80fe3d9324b635e09d8891297c3c67e30635727d8dee99b9f3cefa73bf762e opencl-headers-2.1.tar.gz +7c265341628a5f79ead4d8e00268649e16f2cb905ee21d713a2a0189cbd200b8 opencl-headers-2.1-LICENSE" +sha512sums="0c475a6d44877289792ef055ed83df82c846e3c56df8dd1d3903965d6f817d99a7eb29b752be435f75485584036cb90e79e3c2035e2ddc99e04f30c0ada97edd opencl-headers-2.1.tar.gz +d4bf5d67de13d6c67c935e4ada64469fba442d278a0469785d3d4221c94dec6b342ae703a30bd8b1510938d98afd9fb1813f3a14706037fb0f811466076154fb opencl-headers-2.1-LICENSE" diff --git a/community/opencl-icd-loader/APKBUILD b/community/opencl-icd-loader/APKBUILD new file mode 100644 index 0000000000..dbf14c208e --- /dev/null +++ b/community/opencl-icd-loader/APKBUILD @@ -0,0 +1,41 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=opencl-icd-loader +_pkgreal=ocl-icd +pkgver=2.2.9 +pkgrel=0 +pkgdesc="Generic OpenCL ICD Loader" +url="https://forge.imag.fr/projects/ocl-icd/" +arch="all" +license="custom" +depends="" +depends_dev="$pkgname" +makedepends="$depends_dev ruby" +install="" +subpackages="$pkgname-dev $pkgname-doc" +source="$pkgname-$pkgver.tar.gz::https://forge.imag.fr/frs/download.php/716/$_pkgreal-$pkgver.tar.gz" + +builddir="$srcdir"/$_pkgreal-$pkgver +build() { + cd "$builddir" + ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --localstatedir=/var \ + || return 1 + # tests + #tests/testsuite || return 1 +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install || return 1 + install -D -m644 COPYING "$pkgdir"/usr/share/doc/ocl-icd/LICENSE +} + +md5sums="7dab1a9531ea79c19a414a9ee229504e opencl-icd-loader-2.2.9.tar.gz" +sha256sums="0c8ac13e2c5b737c34de49f9aca6cad3c4d33dd0bbb149b01238d76e798feae5 opencl-icd-loader-2.2.9.tar.gz" +sha512sums="d0b1531812feb493bdc27fd4a141796c2ecd14efd79cfa00af47c7c6edc1a7b323cd2d3b7254117a1cfa1c55e24494f662034041a0976b6ee5a6154626eb2d65 opencl-icd-loader-2.2.9.tar.gz" diff --git a/community/opus-tools/APKBUILD b/community/opus-tools/APKBUILD new file mode 100644 index 0000000000..361cd8f81c --- /dev/null +++ b/community/opus-tools/APKBUILD @@ -0,0 +1,37 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=opus-tools +pkgver=0.1.9 +pkgrel=0 +pkgdesc="Collection of tools for Opus audio codec" +url="http://wiki.xiph.org/Opus-tools" +arch="all" +license="BSD" +depends="" +depends_dev="" +makedepends="$depends_dev libogg-dev opus-dev flac-dev linux-headers" +install="" +subpackages="$pkgname-doc" +source="pkgname-$pkgver.tar.gz::http://downloads.xiph.org/releases/opus/$pkgname-$pkgver.tar.gz" + +builddir="$srcdir"/$pkgname-$pkgver +build() { + cd "$builddir" + ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --prefix=/usr \ + --mandir=/usr/share/man \ + --enable-assertions \ + || return 1 + make || return 1 +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install || return 1 +} + +md5sums="20682e4d8d1ae9ec5af3cf43e808b8cb pkgname-0.1.9.tar.gz" +sha256sums="b1873dd78c7fbc98cf65d6e10cfddb5c2c03b3af93f922139a2104baedb4643a pkgname-0.1.9.tar.gz" +sha512sums="e2cdc0c9c24297565f9d457893bcc548696b1a9c9b66e4cd48ddbe4dcf865bc50da5ed1b438b2b9ecdcd8be1d7c211d2be199f707cdbcd8a46a75353b0173a4c pkgname-0.1.9.tar.gz" diff --git a/community/perl-authen-ntlm/APKBUILD b/community/perl-authen-ntlm/APKBUILD new file mode 100644 index 0000000000..dd9a9a83a0 --- /dev/null +++ b/community/perl-authen-ntlm/APKBUILD @@ -0,0 +1,34 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=perl-authen-ntlm +pkgver=1.09 +_realname=NTLM-$pkgver +pkgrel=0 +pkgdesc="NTLM authentication for Mail::IMAPClient" +url="http://search.cpan.org/dist/NTLM/" +arch="noarch" +license="GPL PerlArtistic" +cpandepends="" +cpanmakedepends="" +depends="$cpandepends" +makedepends="perl-dev $cpanmakedepends" +subpackages="$pkgname-doc" +source="http://search.cpan.org/CPAN/authors/id/N/NB/NBEBOUT/$_realname.tar.gz" + +_builddir="$srcdir"/$_realname + +build() { + cd "$_builddir" + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1 + make || return 1 +} + +package() { + cd "$_builddir" + make DESTDIR="$pkgdir" install || return 1 + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete +} + +md5sums="da314ee94b14af2a2f39b6f2c0046e73 NTLM-1.09.tar.gz" +sha256sums="c823e30cda76bc15636e584302c960e2b5eeef9517c2448f7454498893151f85 NTLM-1.09.tar.gz" +sha512sums="faae9a4a39f483a9612e5a7daec15bb8ddd940ccc73e52372dd004a9067336fccc4c490deafb3eaa0cf56c0dfe3a085cb6bba38631a5122c2f2fa6e960845039 NTLM-1.09.tar.gz" diff --git a/community/perl-bit-vector/APKBUILD b/community/perl-bit-vector/APKBUILD new file mode 100644 index 0000000000..740bde1c01 --- /dev/null +++ b/community/perl-bit-vector/APKBUILD @@ -0,0 +1,33 @@ +# Contributor: Fabian Affolter <fabian@affolter-engineering.ch> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=perl-bit-vector +_realname=Bit-Vector +pkgver=7.4 +pkgrel=1 +pkgdesc="Efficient bit vector, set of integers, and big int math library" +url="http://search.cpan.org/dist/Bit-Vector/" +arch="all" +license="PerlArtistic" +depends="perl perl-carp-clan" +depends_dev="" +makedepends="perl-dev perl-carp-clan" +install="" +subpackages="$pkgname-doc" +source="http://search.cpan.org/CPAN/authors/id/S/ST/STBEY/$_realname-$pkgver.tar.gz" +_builddir="$srcdir"/$_realname-$pkgver + +build() { + cd "$_builddir" + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1 + make || return 1 +} + +package() { + cd "$_builddir" + make DESTDIR="$pkgdir" install || return 1 + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete +} + +md5sums="bf67f144e5be5327ed79d4c69e6e0086 Bit-Vector-7.4.tar.gz" +sha256sums="3c6daa671fecfbc35f92a9385b563d65f50dfc6bdc8b4805f9ef46c0d035a926 Bit-Vector-7.4.tar.gz" +sha512sums="80aa49aea8c31c60c14161198eab9d620d738530c3c209104b8ad8f1144822f80c3effb3303c569fc556b2457328659ae5d1aaf511d714c835618b84c722abc5 Bit-Vector-7.4.tar.gz" diff --git a/community/perl-data-uniqid/APKBUILD b/community/perl-data-uniqid/APKBUILD new file mode 100644 index 0000000000..06240f68d2 --- /dev/null +++ b/community/perl-data-uniqid/APKBUILD @@ -0,0 +1,34 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=perl-data-uniqid +pkgver=0.12 +_realname=Data-Uniqid-$pkgver +pkgrel=0 +pkgdesc="Perl extension for simple generation of unique id's" +url="http://search.cpan.org/dist/Data-Uniqid/" +arch="noarch" +license="GPL PerlArtistic" +cpandepends="" +cpanmakedepends="" +depends="$cpandepends" +makedepends="perl-dev $cpanmakedepends" +subpackages="$pkgname-doc" +source="http://search.cpan.org/CPAN/authors/id/M/MW/MWX/$_realname.tar.gz" + +_builddir="$srcdir"/$_realname + +build() { + cd "$_builddir" + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1 + make || return 1 +} + +package() { + cd "$_builddir" + make DESTDIR="$pkgdir" install || return 1 + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete +} + +md5sums="6bab3b5da09fedfdf60ce2629a7367db Data-Uniqid-0.12.tar.gz" +sha256sums="b6919ba49b9fe98bfdf3e8accae7b9b7f78dc9e71ebbd0b7fef7a45d99324ccb Data-Uniqid-0.12.tar.gz" +sha512sums="fd12aae4a810fda88dd0f8296e73760d8d62357cb5ebc675a4b2804d9eee93ebfa01942c7057ad9092e80331504f2a38a3c8a576ccb630de10f5e563752ed6e3 Data-Uniqid-0.12.tar.gz" diff --git a/community/perl-file-copy-recursive/APKBUILD b/community/perl-file-copy-recursive/APKBUILD new file mode 100644 index 0000000000..d68d5594cc --- /dev/null +++ b/community/perl-file-copy-recursive/APKBUILD @@ -0,0 +1,34 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=perl-file-copy-recursive +pkgver=0.38 +_realname=File-Copy-Recursive-$pkgver +pkgrel=0 +pkgdesc="Perl extension for recursively copying files and directories" +url="http://search.cpan.org/dist/File-Copy-Recursive/" +arch="noarch" +license="GPL PerlArtistic" +cpandepends="" +cpanmakedepends="" +depends="$cpandepends" +makedepends="perl-dev $cpanmakedepends" +subpackages="$pkgname-doc" +source="http://search.cpan.org/CPAN/authors/id/D/DM/DMUEY/$_realname.tar.gz" + +_builddir="$srcdir"/$_realname + +build() { + cd "$_builddir" + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1 + make || return 1 +} + +package() { + cd "$_builddir" + make DESTDIR="$pkgdir" install || return 1 + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete +} + +md5sums="e76dc75ab456510d67c6c3a95183f72f File-Copy-Recursive-0.38.tar.gz" +sha256sums="84ccbddf3894a88a2c2b6be68ff6ef8960037803bb36aa228b31944cfdf6deeb File-Copy-Recursive-0.38.tar.gz" +sha512sums="49e5dbfc5bdbc554ad8a019c25db85ebfa55765a73758d95271b5f3de9550fd68b4d99aa287898d86bc6c11ea8de97469a85c53d4ad8534594b411be1f18eb87 File-Copy-Recursive-0.38.tar.gz" diff --git a/community/perl-getopt-argvfile/APKBUILD b/community/perl-getopt-argvfile/APKBUILD new file mode 100644 index 0000000000..95e9c9cb40 --- /dev/null +++ b/community/perl-getopt-argvfile/APKBUILD @@ -0,0 +1,34 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=perl-getopt-argvfile +pkgver=1.11 +_realname=Getopt-ArgvFile-$pkgver +pkgrel=0 +pkgdesc="Interpolates script options from files into @ARGV or another array" +url="http://search.cpan.org/dist/Getopt-ArgvFile/" +arch="noarch" +license="GPL PerlArtistic" +cpandepends="" +cpanmakedepends="" +depends="$cpandepends" +makedepends="perl-dev $cpanmakedepends" +subpackages="$pkgname-doc" +source="http://search.cpan.org/CPAN/authors/id/J/JS/JSTENZEL/$_realname.tar.gz" + +_builddir="$srcdir"/$_realname + +build() { + cd "$_builddir" + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1 + make || return 1 +} + +package() { + cd "$_builddir" + make DESTDIR="$pkgdir" install || return 1 + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete +} + +md5sums="42117db2af4a24c062b2da25d4fdf756 Getopt-ArgvFile-1.11.tar.gz" +sha256sums="3709aa513ce6fd71d1a55a02e34d2f090017d5350a9bd447005653c9b0835b22 Getopt-ArgvFile-1.11.tar.gz" +sha512sums="832e9ec6de3dfa4aaac68faedd3561cac570761e0de805e084e8dc7b386579cd0a18278aeb262ea82fddbdf8277b17bbd7593c15d41b1d6d7de4739fc8cc8f11 Getopt-ArgvFile-1.11.tar.gz" diff --git a/community/perl-io-tee/APKBUILD b/community/perl-io-tee/APKBUILD new file mode 100644 index 0000000000..29198bab43 --- /dev/null +++ b/community/perl-io-tee/APKBUILD @@ -0,0 +1,34 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=perl-io-tee +pkgver=0.64 +_realname=IO-Tee-$pkgver +pkgrel=0 +pkgdesc="Multiplex output to multiple output handles" +url="http://search.cpan.org/dist/IO-Tee/" +arch="noarch" +license="GPL PerlArtistic" +cpandepends="" +cpanmakedepends="" +depends="$cpandepends" +makedepends="perl-dev $cpanmakedepends" +subpackages="$pkgname-doc" +source="http://search.cpan.org/CPAN/authors/id/K/KE/KENSHAN/$_realname.tar.gz" + +_builddir="$srcdir"/$_realname + +build() { + cd "$_builddir" + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1 + make || return 1 +} + +package() { + cd "$_builddir" + make DESTDIR="$pkgdir" install || return 1 + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete +} + +md5sums="97d91e38fcadc1f01d8030a8d4f30701 IO-Tee-0.64.tar.gz" +sha256sums="3ed276b1c2d3511338653c2532e73753d284943c1a8f5159ff37fecc2b345ed6 IO-Tee-0.64.tar.gz" +sha512sums="9473a9ce3222ee6998cc53851a34051a9ae5990b9c514b5e5d322832d76f0e20d7af51bf7f06603ad927ab9789e5ab10da7a0693e4867112cd3e1dc1ca25d017 IO-Tee-0.64.tar.gz" diff --git a/community/perl-iptables-chainmgr/APKBUILD b/community/perl-iptables-chainmgr/APKBUILD new file mode 100644 index 0000000000..a9fd5f0565 --- /dev/null +++ b/community/perl-iptables-chainmgr/APKBUILD @@ -0,0 +1,41 @@ +# Automatically generated by apkbuild-cpan, template 1 +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=perl-iptables-chainmgr +_pkgreal=IPTables-ChainMgr +pkgver=1.5 +pkgrel=0 +pkgdesc="Perl extension for manipulating iptables and ip6tables policies" +url="http://search.cpan.org/dist/IPTables-ChainMgr/" +arch="noarch" +license="artistic_1" +cpandepends="perl-netaddr-ip perl-iptables-parse" +cpanmakedepends="" +depends="$cpandepends" +makedepends="perl-dev $cpanmakedepends" +subpackages="$pkgname-doc" +source="http://search.cpan.org/CPAN/authors/id/M/MR/MRASH/$_pkgreal-$pkgver.tar.gz" + +_builddir="$srcdir/$_pkgreal-$pkgver" + +prepare() { + cd "$_builddir" + export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'` + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor +} + +build() { + cd "$_builddir" + export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'` + make && make test +} + +package() { + cd "$_builddir" + make DESTDIR="$pkgdir" install || return 1 + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete +} + +md5sums="21847466a9e83e3bdfd4ee2263dd6517 IPTables-ChainMgr-1.5.tar.gz" +sha256sums="e0b2c58d95628f99a60234ab8148d72b3b4fbcb570c4997d905b8069bbfcdb59 IPTables-ChainMgr-1.5.tar.gz" +sha512sums="e4232cad998750397cc4104138883a8e603a0e63a065be6a0245101fe851dbabce53808ed01c200c0f8e720a90788037aeb0f11b8065cd8db0f5aef419e6a184 IPTables-ChainMgr-1.5.tar.gz" diff --git a/community/perl-iptables-parse/APKBUILD b/community/perl-iptables-parse/APKBUILD new file mode 100644 index 0000000000..97aa093abe --- /dev/null +++ b/community/perl-iptables-parse/APKBUILD @@ -0,0 +1,41 @@ +# Automatically generated by apkbuild-cpan, template 1 +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=perl-iptables-parse +_pkgreal=IPTables-Parse +pkgver=1.6.1 +pkgrel=0 +pkgdesc="Perl extension for parsing iptables and ip6tables firewall rulesets" +url="http://search.cpan.org/dist/IPTables-Parse/" +arch="noarch" +license="artistic_1" +cpandepends="" +cpanmakedepends="" +depends="$cpandepends" +makedepends="perl-dev $cpanmakedepends" +subpackages="$pkgname-doc" +source="http://search.cpan.org/CPAN/authors/id/M/MR/MRASH/$_pkgreal-$pkgver.tar.gz" + +_builddir="$srcdir/$_pkgreal-$pkgver" + +prepare() { + cd "$_builddir" + export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'` + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor +} + +build() { + cd "$_builddir" + export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'` + make && make test +} + +package() { + cd "$_builddir" + make DESTDIR="$pkgdir" install || return 1 + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete +} + +md5sums="72299f0ab6e10a51837a48d51728a6f7 IPTables-Parse-1.6.1.tar.gz" +sha256sums="b04a2fe8b021673f2035ac94784bb1c5353a0fd936ab8f093ad23af2b33106e4 IPTables-Parse-1.6.1.tar.gz" +sha512sums="7638665e34f06771519bc8989ad57b6308c5efb39ecb32f3f6f208d0ece1675f499452f4b4b5b2ddd25109abecbdb5015e4441431defa8688f33f9eb2ad921eb IPTables-Parse-1.6.1.tar.gz" diff --git a/community/perl-module-scandeps/APKBUILD b/community/perl-module-scandeps/APKBUILD new file mode 100644 index 0000000000..13ad8f8673 --- /dev/null +++ b/community/perl-module-scandeps/APKBUILD @@ -0,0 +1,40 @@ +# Automatically generated by apkbuild-cpan, template 1 +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=perl-module-scandeps +_pkgreal=Module-ScanDeps +pkgver=1.20 +pkgrel=0 +pkgdesc="Recursively scan Perl code for dependencies" +url="http://search.cpan.org/dist/Module-ScanDeps/" +arch="noarch" +license="GPL PerlArtistic" +cpandepends="" +cpanmakedepends="perl-test-requires" +depends="$cpandepends" +makedepends="perl-dev $cpanmakedepends perl-test-pod" +subpackages="$pkgname-doc" +source="http://search.cpan.org/CPAN/authors/id/R/RS/RSCHUPP/$_pkgreal-$pkgver.tar.gz" + +_builddir="$srcdir/$_pkgreal-$pkgver" + +prepare() { + cd "$_builddir" + export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'` + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor +} + +build() { + cd "$_builddir" + export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'` + make && make test +} + +package() { + cd "$_builddir" + make DESTDIR="$pkgdir" install || return 1 + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete +} + +md5sums="283e4d4f215d6ce6a05c13e9b740f842 Module-ScanDeps-1.20.tar.gz" +sha256sums="72003547e36db833f920eb85247943b755c94ded998e640bae20ff37d6104691 Module-ScanDeps-1.20.tar.gz" +sha512sums="1756c48d8932d50f03e5440e9b1a1c38c4f795c5701d6c9704cef88ac1162efeefb863f003b105b8516bb9cb8113c9c8524e7c6847070450228ef6baeb4d578d Module-ScanDeps-1.20.tar.gz" diff --git a/community/perl-par-dist/APKBUILD b/community/perl-par-dist/APKBUILD new file mode 100644 index 0000000000..450b0585a3 --- /dev/null +++ b/community/perl-par-dist/APKBUILD @@ -0,0 +1,34 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=perl-par-dist +pkgver=0.49 +_realname=PAR-Dist-$pkgver +pkgrel=0 +pkgdesc="Create and manipulate PAR distributions" +url="http://search.cpan.org/dist/PAR-Dist/" +arch="noarch" +license="GPL PerlArtistic" +cpandepends="" +cpanmakedepends="" +depends="$cpandepends" +makedepends="perl-dev $cpanmakedepends" +subpackages="$pkgname-doc" +source="http://search.cpan.org/CPAN/authors/id/R/RS/RSCHUPP/PAR-Dist-0.49.tar.gz" + +_builddir="$srcdir"/$_realname + +build() { + cd "$_builddir" + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1 + make || return 1 +} + +package() { + cd "$_builddir" + make DESTDIR="$pkgdir" install || return 1 + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete +} + +md5sums="bd852113974544f3c8c107ab4055cf8c PAR-Dist-0.49.tar.gz" +sha256sums="9e47220b594a27bd1750bcfa1d6f60a57ae670c68ce331895a79f08bac671e1d PAR-Dist-0.49.tar.gz" +sha512sums="5b0b69e9436d49ab47c4bca8d48790bbc04fec526eeec96a75c768b13f318cf3a0fb2b1a3ab9f835fb4326af2d1339f85257ec5e96f4dfe0efd77c9a36a89acc PAR-Dist-0.49.tar.gz" diff --git a/community/perl-par-packer/APKBUILD b/community/perl-par-packer/APKBUILD new file mode 100644 index 0000000000..65980207ce --- /dev/null +++ b/community/perl-par-packer/APKBUILD @@ -0,0 +1,36 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=perl-par-packer +pkgver=1.035 +_realname=PAR-Packer-$pkgver +pkgrel=0 +pkgdesc="App::Packer::Backend interface, for generating stand-alone executables, perl scripts and PAR files" +url="http://search.cpan.org/dist/Par-Packer/" +arch="all" +license="GPL PerlArtistic" +cpandepends="" +cpanmakedepends="" +depends="$cpandepends" +makedepends="perl-dev $cpanmakedepends perl-archive-zip perl-par perl-par-dist perl-module-scandeps perl-getopt-argvfile" +subpackages="$pkgname-doc" +source="http://search.cpan.org/CPAN/authors/id/R/RS/RSCHUPP/$_realname.tar.gz" + +_builddir="$srcdir"/$_realname + +build() { + cd "$_builddir" + mkdir blib + cp -rf lib script blib/ # fix parallel install issue on build server + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1 + make || return 1 +} + +package() { + cd "$_builddir" + make DESTDIR="$pkgdir" install || return 1 + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete +} + +md5sums="b5ef61f4971a711c35985fa19ed87468 PAR-Packer-1.035.tar.gz" +sha256sums="2fefd598cfca960796ba0ac8bcb29b4015be1b6d7b0893dfa2ac22dc2c8fc3ae PAR-Packer-1.035.tar.gz" +sha512sums="084001e99d27849d274c9d76da3295d09970ca42c3980517f6cfedd9ab9eaca665183a4cc2b6db5cb48677d4680e2e508ea14e6862592ce6d3e488d8c48fdfc6 PAR-Packer-1.035.tar.gz" diff --git a/community/perl-par/APKBUILD b/community/perl-par/APKBUILD new file mode 100644 index 0000000000..1c933eb8d6 --- /dev/null +++ b/community/perl-par/APKBUILD @@ -0,0 +1,34 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=perl-par +pkgver=1.010 +_realname=PAR-$pkgver +pkgrel=0 +pkgdesc="PAR - Perl Archive Toolkit" +url="http://search.cpan.org/dist/File-Copy-Recursive/" +arch="noarch" +license="GPL PerlArtistic" +cpandepends="" +cpanmakedepends="" +depends="$cpandepends" +makedepends="perl-dev $cpanmakedepends" +subpackages="$pkgname-doc" +source="http://search.cpan.org/CPAN/authors/id/R/RS/RSCHUPP/$_realname.tar.gz" + +_builddir="$srcdir"/$_realname + +build() { + cd "$_builddir" + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1 + make || return 1 +} + +package() { + cd "$_builddir" + make DESTDIR="$pkgdir" install || return 1 + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete +} + +md5sums="145d68a1f0de0f893e957c7619cc2707 PAR-1.010.tar.gz" +sha256sums="78af355e757a55bfec0db4a02d62c402c5c56b31e8d317f70a31fc963b2e7e51 PAR-1.010.tar.gz" +sha512sums="57e2c39927402c353ee356ae9b91b4233614afa9dca61c3c2effbe2db8b6c653949cc424b637d12dc89668ddf7f49a38d2e6610521410e613e061c0f980b304d PAR-1.010.tar.gz" diff --git a/community/perl-uri-escape/APKBUILD b/community/perl-uri-escape/APKBUILD new file mode 100644 index 0000000000..c55aae18e3 --- /dev/null +++ b/community/perl-uri-escape/APKBUILD @@ -0,0 +1,34 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=perl-uri-escape +pkgver=1.69 +_realname=URI-$pkgver +pkgrel=0 +pkgdesc="Percent-encode and percent-decode unsafe characters" +url="http://search.cpan.org/dist/URI/" +arch="noarch" +license="GPL PerlArtistic" +cpandepends="" +cpanmakedepends="" +depends="$cpandepends" +makedepends="perl-dev $cpanmakedepends" +subpackages="$pkgname-doc" +source="http://search.cpan.org/CPAN/authors/id/E/ET/ETHER/$_realname.tar.gz" + +_builddir="$srcdir"/$_realname + +build() { + cd "$_builddir" + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1 + make || return 1 +} + +package() { + cd "$_builddir" + make DESTDIR="$pkgdir" install || return 1 + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete +} + +md5sums="3c56aee0300bce5a440ccbd558277ea0 URI-1.69.tar.gz" +sha256sums="b74b16ea626b6f8061821bb350674c638a98be1fc766eadb24fec6635998b42d URI-1.69.tar.gz" +sha512sums="4e58cd450c58be4c3e0254c8e53bd0b4d3516468efb466c933343efc12191856bfc6c0d5c3de3b523e66d4930c2426f0089d5cd9ece7b4a5b8aff0a9596064cc URI-1.69.tar.gz" diff --git a/community/psad/APKBUILD b/community/psad/APKBUILD new file mode 100644 index 0000000000..9feaf89eb2 --- /dev/null +++ b/community/psad/APKBUILD @@ -0,0 +1,109 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=psad +pkgver=2.4.3 +pkgrel=0 +pkgdesc="3 lightweight system daemons that analyze iptables log messages to detect port scans and other suspicious traffic" +url="http://cipherdyne.org/psad/" +arch="all" +license="GPL" +depends="perl iptables ip6tables ssmtp mailx psmisc perl-bit-vector perl-date-calc perl-iptables-chainmgr \ + perl-iptables-parse perl-net-ipv4addr perl-unix-syslog net-tools whois" +subpackages="$pkgname-doc" +source="http://cipherdyne.org/psad/download/$pkgname-nodeps-$pkgver.tar.gz + psad.initd + psad.confd + " + +_builddir="$srcdir"/$pkgname-nodeps-$pkgver + +build() { + cd "$_builddir" + + #Set the config dirs + sed -e "s|'/usr/sbin'|'$pkgdir/usr/sbin'|" \ + -e "s|'/usr/bin'|'$pkgdir/usr/bin'|" \ + -e "s|my \$mpath = \"/usr/share/man/man\$section\";|my \$mpath = \"$pkgdir/usr/share/man/man\$section\";|" \ + ./install.pl -i + #/usr/sbin/psadwatchd set with last cmd + sed -e "s|/var/log/psad|$pkgdir&|" \ + -e "s|/var/run/psad|$pkgdir&|" \ + -e "s|/var/lib/psad|$pkgdir&|" \ + -e "s|/usr/lib/psad|$pkgdir&|" \ + -e "s|/etc/psad|$pkgdir&|" \ + -e "s|/usr/bin/whois_psad|$pkgdir/usr/bin/whois|" \ + -e "s|/usr/sbin/fwcheck_psad|$pkgdir&|" \ + -e "s|/usr/sbin/kmsgsd|$pkgdir&|" \ + -e "s|/usr/sbin/psad|$pkgdir&|" \ + ./psad.conf -i + + # set mail command to mailx + sed -e 's|/bin/mail;|/usr/bin/mail;|g' -i ./psad.conf + + #Disable install of generic init script & setting numeric run level + START=$(sed -n '/if ($init_dir and &is_root()) {/=' ./install.pl) + END=$(expr $START + 7) + #Busybox sed does not support +7d + sed -e ''$START','$END'd' ./install.pl -i + + #populate install.answers so build does not wait for them + echo -e "Would you like to merge the config from the existing psad installation:\t y;" > ./install.answers + echo -e "Preserve any user modfications in etc psad signatures:\t y;" >> ./install.answers + echo -e "Preserve any user modfications in etc psad icmp_types:\t y;" >> ./install.answers + echo -e "Preserve any user modfications in etc psad icmp6_types:\t y;" >> ./install.answers + echo -e "Preserve any user modfications in etc psad posf:\t y;" >> ./install.answers + echo -e "Preserve any user modfications in etc psad auto_dl:\t y;" >> ./install.answers + echo -e "Preserve any user modfications in etc psad snort_rule_dl:\t y;" >> ./install.answers + echo -e "Preserve any user modfications in etc psad pf os:\t y;" >> ./install.answers + echo -e "Preserve any user modfications in etc psad ip_options:\t y;" >> ./install.answers + echo -e "Would you like alerts sent to a different address:\t y;" >> ./install.answers + echo -e "Email addresses:\t root@localhost;" >> ./install.answers + echo -e "Would you like psad to only parse specific strings in iptables messages:\t n;" >> ./install.answers + echo -e "First is it ok to leave the HOME_NET setting as any:\t y;" >> ./install.answers + echo -e "Would you like to enable DShield alerts:\t n;" >> ./install.answers + echo -e "Would you like to install the latest signatures from http www cipherdyne org psad signatures:\t n;" >> ./install.answers + echo -e "Enable psad at boot time:\t n;" >> ./install.answers +} + +package() { + cd "$_builddir" + + mkdir -p $pkgdir/etc/psad \ + $pkgdir/usr/bin \ + $pkgdir/usr/sbin \ + $pkgdir/usr/share/man/man8 \ + $pkgdir/var/lib/psad \ + $pkgdir/var/log/psad \ + $pkgdir/var/run/psad + # add dummy whois so build completes + ln -s /bin/busybox $pkgdir/usr/bin/whois + # dummy runlevel 1 / skip perl module installation + ./install.pl --runlevel 1 --Use-answers --Skip-mod-install + + #Set correct permissions + chmod -R o+r $pkgdir/etc/psad + chmod -R o+r $pkgdir/usr/sbin/* + chmod 0700 $pkgdir/var/lib/psad + #remove whois symbolic link + rm -f $pkgdir/usr/bin/whois + + # Fix the config + sed -e "s|$pkgdir||" $pkgdir/etc/psad/psad.conf -i + sed -e "s|$pkgdir||" $pkgdir/var/log/psad/install.log -i + + #install init script & config defaults + install -m755 -D "$srcdir"/$pkgname.initd \ + "$pkgdir"/etc/init.d/$pkgname || return 1 + install -m644 -D "$srcdir"/$pkgname.confd \ + "$pkgdir"/etc/conf.d/$pkgname || return 1 +} + +md5sums="644e6094c5142f54cdca6e7429825307 psad-nodeps-2.4.3.tar.gz +b7d0fa3ee0b711a92f25ff8188dbf75b psad.initd +bc07efebb41cc23c4be129bbbacc874b psad.confd" +sha256sums="c5a90f4c284c0eda3b24c5fcd9d0fd0e464ad8bf0fe7559ac6ecc41bb81e0b65 psad-nodeps-2.4.3.tar.gz +1a5b8f1b014a9f78b43cd6e4e1006d6901a654fc51dcbe2c405d509b4a950a78 psad.initd +74c72225fa37c367a458321b737050cacaf262f32b0cc13babc54468ff1988b9 psad.confd" +sha512sums="9234a2ed534f571fb46d7566313802813076b9a3f2011695288b7b1a5c4f3f22cefc6ea99e087cbeb1072d61c278c11a28b5aaa4e4024d8bb459dda4873840d2 psad-nodeps-2.4.3.tar.gz +f9f7e5e9da9de2f2258ae1b36e22e59faf950c7110de869c3581f7a89cd6dfdc96aa4db06a4ceca0ac016e8adbeb1e3bca3da66a565aec8a1ddf2808e93897c2 psad.initd +a80666f59356cc6157a9f5dca132991d4f1e0afda8f673d602de2557219d5521bec9ae148330e98d9483175d14d96e4cc2ccd11541d8b187b0e47f44ba4ada54 psad.confd" diff --git a/community/psad/psad.confd b/community/psad/psad.confd new file mode 100644 index 0000000000..27ce228e92 --- /dev/null +++ b/community/psad/psad.confd @@ -0,0 +1,8 @@ +# Default settings for psad. + +# Add any options you would like to pass to the daemon when started +# For example if you would like to add an override file for your setup, this +# can be achived this way: +# +# command_args="--Override-config /root/psad.override.conf" +command_args="" diff --git a/community/psad/psad.initd b/community/psad/psad.initd new file mode 100644 index 0000000000..4a78c701c6 --- /dev/null +++ b/community/psad/psad.initd @@ -0,0 +1,51 @@ +#!/sbin/openrc-run + +# This file is part of PSAD (Port Scan Attack Detector) +# Adapted for Alpine Linux by IT Offshore <developer@it-offshore.co.uk> + +command="/usr/sbin/psad" +pidfile="/var/run/psad/psad.pid" +config_file="/etc/psad/psad.conf" + +depend() { + need net + need logger + after iptables +} + +# allow override config_file location from conf.d +: ${config_file:="/etc/psad/psad.conf"} + +check_config() { + [ -f "$config_file" ] || error "$config_file is missing" +} + +start_pre() { + check_config || return 1 + # make sure dir for pidfile exists. /var/run is tmpfs... + checkpath --directory ${pidfile%/*} +} + +start() { + ebegin "Starting PSAD (Port Scan Attack Detector)" + start-stop-daemon --start $command --pidfile $pidfile + eend $? +} + +stop() { + local piddir=${pidfile%/*} + ebegin "Stopping psadwatchd" + start-stop-daemon --stop --quiet --pidfile $piddir/psadwatchd.pid + eend $? "Failed to stop psadwatchd" + + if [ -f $piddir/kmsgsd.pid ] ; then + ebegin "Stopping kmsgsd" + start-stop-daemon --stop --quiet --pidfile $piddir/kmsgsd.pid + eend $? "Failed to stop kmsgsd" + fi + + ebegin "Stopping ${SVCNAME}" + start-stop-daemon --stop --quiet --pidfile $piddir/psad.pid + eend $? "Failed to stop ${SVCNAME}" +} + diff --git a/community/py-crcmod/APKBUILD b/community/py-crcmod/APKBUILD new file mode 100644 index 0000000000..777205b8a1 --- /dev/null +++ b/community/py-crcmod/APKBUILD @@ -0,0 +1,38 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=py-crcmod +_pkgname=crcmod +pkgver=1.7 +pkgrel=0 +pkgdesc="Cyclic Redundancy Check (CRC) implementation in Python" +url="https://pypi.python.org/pypi/crcmod/" +arch="all" +license="MIT" +depends="python" +makedepends="python-dev" +source="https://files.pythonhosted.org/packages/source/c/$_pkgname/$_pkgname-$pkgver.tar.gz" + +_builddir="$srcdir"/$_pkgname-$pkgver +prepare() { + local i + cd "$_builddir" + for i in $source; do + case $i in + *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; + esac + done +} + +build() { + cd "$_builddir" + python setup.py build || return 1 +} + +package() { + cd "$_builddir" + python setup.py install --prefix=/usr --root="$pkgdir" --optimize=1 || return 1 +} + +md5sums="2d5b92117d958dcead94f9e17f54cd32 crcmod-1.7.tar.gz" +sha256sums="dc7051a0db5f2bd48665a990d3ec1cc305a466a77358ca4492826f41f283601e crcmod-1.7.tar.gz" +sha512sums="3c2f65004761c84f19d6ba95a0af74512108bad5007d9e20f8e684822e4196ce17073e58b47d2fa997e058e3d82782f3393458b6f0e86935418f38877d319a31 crcmod-1.7.tar.gz" diff --git a/community/py-graphviz/APKBUILD b/community/py-graphviz/APKBUILD new file mode 100644 index 0000000000..6c4694b529 --- /dev/null +++ b/community/py-graphviz/APKBUILD @@ -0,0 +1,42 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=py-graphviz +pkgver=1.3_rc2 +_ver=${pkgver/_/} +pkgrel=0 +pkgdesc="Python interface to Graphviz" +url="https://pypi.python.org/pypi/pygraphviz | http://graphviz.org/" +arch="all" +license="BSD" +depends="python" +depends_dev="" +makedepends="python-dev graphviz-dev" +install="" +subpackages="$pkgname-doc" +source="https://github.com/pygraphviz/pygraphviz/archive/pygraphviz-$_ver.tar.gz" + +_builddir="$srcdir"/pygraphviz-pygraphviz-$_ver +prepare() { + local i + cd "$_builddir" + for i in $source; do + case $i in + *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; + esac + done +} + +build() { + cd "$_builddir" + export PYTHON=python2.7 + python setup.py build || return 1 +} + +package() { + cd "$_builddir" + python setup.py install --prefix=/usr --root="$pkgdir" || return 1 +} + +md5sums="91f6d57dfc63cefa12c38eba3f09db09 pygraphviz-1.3rc2.tar.gz" +sha256sums="46737437bd872788b376aeddef9176def9f87339deed739f6769ee8dbe68121f pygraphviz-1.3rc2.tar.gz" +sha512sums="f1ed6e52a07320701e788696b8dc46d0903bdbd740645f07658265bb9dea411b43d90d97ecb2ed658fec4c53fa966d89f5feef0aa62acb4157f6ba662475d876 pygraphviz-1.3rc2.tar.gz" diff --git a/community/py-lz4/01-system_lz4.patch b/community/py-lz4/01-system_lz4.patch new file mode 100644 index 0000000000..62a9c9dea9 --- /dev/null +++ b/community/py-lz4/01-system_lz4.patch @@ -0,0 +1,36 @@ +Last-Update: 2014-08-10 +Forwarded: not-needed +Author: Dmitry Smirnov <onlyjob@member.fsf.org> +Description: un-bundle liblz4 and link to the system one + +--- a/setup.py ++++ b/setup.py +@@ -16,11 +16,11 @@ + packages=find_packages('src'), + package_dir={'': 'src'}, + ext_modules=[ + Extension('lz4', [ +- 'src/lz4.c', +- 'src/lz4hc.c', + 'src/python-lz4.c' ++ ], libraries=[ ++ "lz4", + ], extra_compile_args=[ + "-std=c99", + "-O3", + "-Wall", +--- a/src/python-lz4.c ++++ b/src/python-lz4.c +@@ -32,10 +32,10 @@ + #include <Python.h> + #include <stdlib.h> + #include <stdint.h> + #include <math.h> +-#include "lz4.h" +-#include "lz4hc.h" ++#include <lz4.h> ++#include <lz4hc.h> + #include "python-lz4.h" + + #define MAX(a, b) ((a) > (b) ? (a) : (b)) + diff --git a/community/py-lz4/02-tests.patch b/community/py-lz4/02-tests.patch new file mode 100644 index 0000000000..dc1cb06926 --- /dev/null +++ b/community/py-lz4/02-tests.patch @@ -0,0 +1,24 @@ +Last-Update: 2014-08-10 +Origin: https://github.com/steeve/python-lz4/blob/master/tests/test.py +Forwarded: not-needed +Author: Dmitry Smirnov <onlyjob@member.fsf.org> +Description: add basic test + +--- /dev/null ++++ b/tests/test.py +@@ -0,0 +1,15 @@ ++import lz4 ++import sys ++ ++ ++import unittest ++import os ++ ++class TestLZ4(unittest.TestCase): ++ ++ def test_random(self): ++ DATA = os.urandom(128 * 1024) # Read 128kb ++ self.assertEqual(DATA, lz4.loads(lz4.dumps(DATA))) ++ ++if __name__ == '__main__': ++ unittest.main() diff --git a/community/py-lz4/APKBUILD b/community/py-lz4/APKBUILD new file mode 100644 index 0000000000..91eb14d243 --- /dev/null +++ b/community/py-lz4/APKBUILD @@ -0,0 +1,40 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=py-lz4 +pkgver=0.7.0 +_pkgname=${pkgname#py-} +pkgrel=0 +pkgdesc="LZ4 Bindings for Python" +url="https://pypi.python.org/pypi/lz4" +arch="all" +license="BSD" +depends="python" +depends_dev="" +makedepends="python-dev py-setuptools lz4-dev" +install="" +subpackages="" +source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz + 01-system_lz4.patch + 02-tests.patch + " + +builddir="$srcdir"/$_pkgname-$pkgver +build() { + cd "$builddir" + python setup.py build || return 1 +} + +package() { + cd "$builddir" + python setup.py install --prefix=/usr --root="$pkgdir" || return 1 +} + +md5sums="e32842a49d5254f6918567197a704492 lz4-0.7.0.tar.gz +fda5c197a766d61d0b1ffcaaf54552e3 01-system_lz4.patch +cba5b0e90428e8451ddbc6f3ba480fbe 02-tests.patch" +sha256sums="cd225744298568fd217577fc14a326a24835412374dadb5060db48f1af43eb48 lz4-0.7.0.tar.gz +b6efbab93b4bbf69c5de40a61993a8ca332a4115e87448ad51907efd74bd5bbb 01-system_lz4.patch +f0573be2656fcad5afdb7ecb25d7ce939505cfcfc2c9ad9d9bde21c9af3151fe 02-tests.patch" +sha512sums="fd7adc4919e70259e5b23b15919c4932354a4518360315a8d6c15c58cdccf21257fb6069bdf20e86a2461f254b50f4abd7296330fd77647ecc2ca49500eedd11 lz4-0.7.0.tar.gz +8e30ebe4b0074195f66c9f174006b7730a2a172f76d863ad4dbf0c282f8dc342ecc6e33bf0e1f691bbdace9ef6a13969a3271f39fe8bdbe2f4234397ca1fc0b8 01-system_lz4.patch +68e84522478af8bdf741b45cdc4b4b4367fd7831452c8f0e5b127f58cc26e698e83931dc43d3016e2714d7497de7f6c112c720e379ce5c411b2f67e89b298ed8 02-tests.patch" diff --git a/community/py-opencl/APKBUILD b/community/py-opencl/APKBUILD new file mode 100644 index 0000000000..b0a7999ae4 --- /dev/null +++ b/community/py-opencl/APKBUILD @@ -0,0 +1,33 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=py-opencl +_pkgreal=${pkgname/-/} +pkgver=2016.1 +pkgrel=0 +pkgdesc="Python wrapper for OpenCL" +url="https://pypi.python.org/pypi/pyopencl" +arch="all" +license="MIT" +depends="python" +depends_dev="$pkgname" +makedepends="python-dev py-setuptools py-mako py-numpy ctags libffi-dev mesa-dev opencl-headers opencl-icd-loader-dev" +install="" +subpackages="$pkgname-dev" +source="https://files.pythonhosted.org/packages/source/${_pkgreal:0:1}/$_pkgreal/$_pkgreal-$pkgver.tar.gz" + +builddir="$srcdir"/$_pkgreal-$pkgver +build() { + cd "$builddir" + python configure.py --cl-enable-gl --python-exe=python || return 1 + make || return 1 + python setup.py test +} + +package() { + cd "$builddir" + python setup.py install --prefix=/usr --root="$pkgdir" --optimize=1 --skip-build || return 1 +} + +md5sums="0c8a33b6a6b427bcd9c5966da461d9c6 pyopencl-2016.1.tar.gz" +sha256sums="54b6e8ad02dc437807739bd53e43851efe979bd51ec87996e44b94ab67238297 pyopencl-2016.1.tar.gz" +sha512sums="3be8da315f9b4a4e03071152bb5968c5c7b102cbae6c70f358438cfd7951d12970a76dd8e922187ff73e47f7d0ce7a070e6f303dbe364c016796fa65d7e1de71 pyopencl-2016.1.tar.gz" diff --git a/community/py-opengl-accelerate/APKBUILD b/community/py-opengl-accelerate/APKBUILD new file mode 100644 index 0000000000..c0006aaec7 --- /dev/null +++ b/community/py-opengl-accelerate/APKBUILD @@ -0,0 +1,31 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=py-opengl-accelerate +pkgver=3.1.1 +_pkgreal=PyOpenGL-accelerate-${pkgver}a1 +pkgrel=0 +pkgdesc="OpenGL bindings for Python (Cython extensions)" +url="http://pyopengl.sourceforge.net/" +arch="all" +license="BSD" +depends="cython" +depends_dev="" +makedepends="cython-dev" +install="" +subpackages="" +source="https://files.pythonhosted.org/packages/source/P/PyOpenGL-accelerate/$_pkgreal.tar.gz" + +builddir="$srcdir"/$_pkgreal +build() { + cd "$builddir" + python setup.py build || return 1 +} + +package() { + cd "$builddir" + python setup.py install --prefix=/usr --root="$pkgdir" || return 1 +} + +md5sums="04e52af352dd078275a2d5720c4afea2 PyOpenGL-accelerate-3.1.1a1.tar.gz" +sha256sums="3d37af9f2565febf214e1da2a5fe019561992d34026ce2a5f51972e121b84cdd PyOpenGL-accelerate-3.1.1a1.tar.gz" +sha512sums="6881e3b435da5a33ff31c0991f403166236b44a5bd21ca60418d131dafc1159d6b1c73e60b935d1761d4fc848b824422abbe0e850fe860fa694b64536dddc35c PyOpenGL-accelerate-3.1.1a1.tar.gz" diff --git a/community/runit/APKBUILD b/community/runit/APKBUILD new file mode 100644 index 0000000000..fea0f14f38 --- /dev/null +++ b/community/runit/APKBUILD @@ -0,0 +1,66 @@ +# Contributor: Natanael Copa <ncopa@alpinelinux.org> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=runit +pkgver=2.1.2 +pkgrel=3 +pkgdesc="UNIX init scheme with service supervision" +url="http://smarden.org/runit/" +arch="all" +license="BSD" +depends="" +depends_dev="" +makedepends="$depends_dev" +install="" +subpackages="$pkgname-doc" +source="http://smarden.org/runit/runit-$pkgver.tar.gz + run-service-dir.patch + README.alpine + $pkgname.initd + " + +_builddir="$srcdir"/admin/runit-$pkgver/src +prepare() { + local i + cd "$_builddir" + for i in $source; do + case $i in + *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; + esac + done + echo "$CC $CFLAGS" > conf-cc + echo "$CC $LDFLAGS" > conf-ld +} + +build() { + cd "$_builddir" + make +} + +package() { + cd "$_builddir" + install -d "$pkgdir"/sbin + for i in chpst runit runit-init runsv runsvchdir runsvdir sv svlogd utmpset; do + install -m755 "$i" "$pkgdir"/sbin/$i || return 1 + done + install -d "$pkgdir"/usr/share/man/man8 + cd .. && cp -rf man/* "$pkgdir"/usr/share/man/man8/ + install -m755 -D "$srcdir"/$pkgname.initd \ + "$pkgdir"/etc/init.d/runitd || return 1 + install -Dm644 "$srcdir"/README.alpine \ + "$pkgdir"/usr/share/doc/$pkgname/README.alpine || return 1 + mkdir -p "$pkgdir"/etc/service + mkdir -p "$pkgdir"/etc/sv +} + +md5sums="6c985fbfe3a34608eb3c53dc719172c4 runit-2.1.2.tar.gz +13b3d1e097d58c7fe78c8c2ae9c829ff run-service-dir.patch +735265c11ac8653fe61615e5756af272 README.alpine +df31f105e66ee755fd990ba7184884ed runit.initd" +sha256sums="6fd0160cb0cf1207de4e66754b6d39750cff14bb0aa66ab49490992c0c47ba18 runit-2.1.2.tar.gz +b051476a9cea0673cdd3f849c33555e364540f49436ab7d05f5aeee553d84ab7 run-service-dir.patch +6a49cdf4c9fd8326d9e3fed3df8ff6fae47f60fd586b56d561e0b2d629ea949a README.alpine +aed913227ba4035fe0a84423610817f551ea890d5c5d5a64399b504b2d6f7cc1 runit.initd" +sha512sums="a18773ebf1aa22305dd89ed67363165b9fcf86c192b2be4e268d08005dd82d51265160c637abe072f2f2e378c4b315a75bd3d3e602c3e75bdd451a3b0190f8cf runit-2.1.2.tar.gz +7107da162f7c13e1483f17bf04a844c23a8d1b81ef982c3d956a4c0e23b2a20e415850f0b95999b1eb1e04638284884948937377756ca080037bd6455e3301e8 run-service-dir.patch +88d1efcf366add7803ed026ec8e693b271c842d4e3d5a52587b7ead96266ee27b4ceb1b2696551243f0d9efa93199a07231d2b37186ce1535e9a6b9d90192909 README.alpine +32487bec20e1313eae2e9f315b5b82c67c93c11f15b737f00469006f5fd7f2944ac91887e6ceefa2934fc02f83d4184af9db74acad381a4d9caf952f76621a60 runit.initd" diff --git a/community/runit/README.alpine b/community/runit/README.alpine new file mode 100644 index 0000000000..e6b04f03e2 --- /dev/null +++ b/community/runit/README.alpine @@ -0,0 +1,56 @@ +For service supervision with runit: + +(1) add scripts into /etc/sv/<service>/run + +------------------------------ +Example: /etc/sv/nginx/run | +------------------------------ +#!/bin/sh +mkdir -p /tmp/nginx +exec /usr/sbin/nginx +------------------------------ +Example: /etc/sv/ssh/run | +------------------------------ +#!/bin/sh +set -e +ssh-keygen -A +exec /usr/sbin/sshd -D +------------------------------ +Example: /etc/sv/mysqld/run | +------------------------------ +#!/bin/sh +libs=/var/lib/mysql +socket=/run/mysqld +mkdir -p $socket +chown mysql:mysql $socket +chown -R mysql:mysql $libs +exec chpst -u mysql:mysql mysqld --user=mysql 2>&1 +-------------------------------------------------- +Example: /etc/sv/pgsql/run | +-------------------------------------------------- +#!/bin/sh +. /etc/conf.d/postgresql +chown -R postgres:postgres ${PGDATA} +exec setuidgid postgres /usr/bin/postgres -D ${PGDATA} -o "$PGOPTS" 2>&1 +--------------------------------------------------------------------------------- +Example: /etc/sv/tinyssh/run | +--------------------------------------------------------------------------------- +#!/bin/sh +PORT=22 +mkdir -p /etc/tinyssh +/usr/sbin/tinysshd-makekey /etc/tinyssh/sshkeys 2>/dev/null +exec tcpserver -HRDl0 0.0.0.0 $PORT /usr/sbin/tinysshd -v -l /etc/tinyssh/sshkeys +--------------------------------------------------------------------------------- + +(2) set permissions: + +chmod 700 /etc/sv/<service>/run + +(3) symlink the script directory to the service directory: + +ln -s /etc/sv/nginx /etc/service/nginx + +========================================================== + +The socklog package by the same author can provide logging +with built in log rotation & also be managed by runit. diff --git a/community/runit/run-service-dir.patch b/community/runit/run-service-dir.patch new file mode 100644 index 0000000000..eff50b0e0a --- /dev/null +++ b/community/runit/run-service-dir.patch @@ -0,0 +1,11 @@ +--- ./sv.c.orig ++++ ./sv.c +@@ -32,7 +32,7 @@ + char *progname; + char *action; + char *acts; +-char *varservice ="/service/"; ++char *varservice ="/etc/service/"; + char **service; + char **servicex; + unsigned int services; diff --git a/community/runit/runit.initd b/community/runit/runit.initd new file mode 100644 index 0000000000..2f3a0968dc --- /dev/null +++ b/community/runit/runit.initd @@ -0,0 +1,14 @@ +#!/sbin/openrc-run + +command="/sbin/runsvdir" +command_args="/etc/service" +pidfile="/run/${SVCNAME}.pid" +command_background="true" +description="starts and monitors a collection of runsv(8) processes" +retry="SIGHUP/5" + +depend() { + need localmount + after firewall +} + diff --git a/community/secpwgen/APKBUILD b/community/secpwgen/APKBUILD new file mode 100644 index 0000000000..7862a26232 --- /dev/null +++ b/community/secpwgen/APKBUILD @@ -0,0 +1,57 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=secpwgen +pkgver=1.3 +pkgrel=0 +pkgdesc="secure password generator" +url="http://zvrba.net/" +arch="all" +license="MIT" +depends="" +depends_dev="openssl-dev" +makedepends="$depends_dev" +subpackages="$pkgname-doc" +source="$pkgname-$pkgver.tar.gz::https://github.com/itoffshore/$pkgname/archive/v$pkgver.tar.gz + make-openssl.patch + " + +_builddir="$srcdir"/$pkgname-$pkgver +prepare() { + local i + cd "$_builddir" + for i in $source; do + case $i in + *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; + esac + done +} + +build() { + cd "$_builddir" + mv Makefile.proto Makefile || return 1 + make || return 1 +} + +package() { + cd "$_builddir" + mkdir -p "$pkgdir"/usr/bin + mkdir -p "$pkgdir"/usr/share/man/man1 + install -m 755 secpwgen "$pkgdir"/usr/bin || return 1 + install -m 644 secpwgen.1 "$pkgdir"/usr/share/man/man1 || return 1 + # post-install message + mkdir -p "$pkgdir/usr/share/doc/$pkgname" + cat > $pkgdir/usr/share/doc/$pkgname/README.alpine <<EOF +To increase entropy in your system: +----------------------------------- +apk add haveged +rc-update add haveged +rc-service haveged start +EOF +} + +md5sums="c53da1931bb480e77691c7602fc28408 secpwgen-1.3.tar.gz +0b54c4a66ae423d3f7f28b8f091f071a make-openssl.patch" +sha256sums="ae2e33db5c94a18d55ad50563b026f3aecd9d4f6ebb19b2dcc9a68625fd1f509 secpwgen-1.3.tar.gz +8b8a3b308eb75de5c54e8da0677280ef326f256c18c5e5ac816723d969e3f95a make-openssl.patch" +sha512sums="a18b5405ae5f6a62c25dd61654ea897b2f099fa459530bc6cfdbe79d96bfa6b4943e4ba2456ad5355d37cababe585299638afe56ff1a9fc649b6df0b7aa1e269 secpwgen-1.3.tar.gz +d9e4f84ab0d557ecc4c57152ea78fd2c610f36d2ea4ae87f690944ac454497cb450e693ab4726209b58ade32e3c1f6f2bb74fec47b2a766e68eed56bfcfbc8d0 make-openssl.patch" diff --git a/community/secpwgen/make-openssl.patch b/community/secpwgen/make-openssl.patch new file mode 100644 index 0000000000..f1de454ce8 --- /dev/null +++ b/community/secpwgen/make-openssl.patch @@ -0,0 +1,33 @@ +--- secpwgen-1.3/Makefile.proto 2015-07-21 20:15:10.000000000 +0000 ++++ secpwgen-1.3/Makefile.proto.new 2015-07-21 22:03:47.511905311 +0000 +@@ -30,9 +30,9 @@ + ## + # If using OpenSSL, uncomment the following 3 lines. + ## +-#CRYPTO_CFLAGS = +-#CRYPTO_OBJS = secure_random_openssl.o +-#CRYPTO_LIBS = -lcrypto ++CRYPTO_CFLAGS = ++CRYPTO_OBJS = secure_random_openssl.o ++CRYPTO_LIBS = -lcrypto + + ## + # If using cryptlib, uncomment the following 3 lines. +@@ -45,7 +45,7 @@ + # Change PREFIX to install to different directories. The binary is installed + # in $PREFIX/bin, and the man in $PREFIX/man/man1 + ## +-PREFIX = /usr/local ++PREFIX = /usr + + ## + # On some operating systems (most notably Linux 2.6 kernels) using mlockall +@@ -60,7 +60,7 @@ PREFIX = /usr/local + # Sometimes you have only dynamic libraries available. In that case COMMENT + # the following line. + ## +-LINK_STATIC = -static ++#LINK_STATIC = -static + + ############################################################################## + # NO USER MODIFIABLE PARTS AFTER THIS POINT diff --git a/community/secure-delete/APKBUILD b/community/secure-delete/APKBUILD new file mode 100644 index 0000000000..824a1d65a7 --- /dev/null +++ b/community/secure-delete/APKBUILD @@ -0,0 +1,37 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=secure-delete +_pkgname=secure_delete +pkgver=3.1 +pkgrel=0 +pkgdesc="Secure file, disk, swap, memory erasure utilities" +url="https://www.thc.org/" +arch="all" +license="GPL" +subpackages="$pkgname-doc" +source="http://freeworld.thc.org/releases/$_pkgname-$pkgver.tar.gz" + +_builddir="$srcdir"/$_pkgname-$pkgver + +build() { + cd "$_builddir" + sed -i -e 's/mktemp/mkstemp/g' sfill.c + sed -i -e "s/sswap smem sdel-mod.o/sswap smem/" -e '/test.*sdel-mod/d' \ + -e "s/^srm: /srm: sdel-lib.o /" -e "s/^sfill: /sfill: sdel-lib.o /" \ + -e "s/^sswap: /sswap: sdel-lib.o /" -e "s/^smem: /smem: sdel-lib.o /" \ + Makefile + make || return 1 +} + +package() { + cd "$_builddir" + make INSTALL_DIR="${pkgdir}/usr/bin" \ + MAN_DIR="${pkgdir}/usr/share/man" \ + DOC_DIR="${pkgdir}/usr/share/doc/secure_delete" \ + install || return 1 + chmod a+r "$pkgdir/usr/bin"/* +} + +md5sums="aabbd7e77bf96b326d260f16fb7f8bba secure_delete-3.1.tar.gz" +sha256sums="a9d846d1dce3f1bdf13bbb306e8596bc1f263198a086f6beecd90ccf7bddf8d5 secure_delete-3.1.tar.gz" +sha512sums="9e7ae1458ffcce53fac23cf9b8df673d0754e6c3ff7791c445f2290dfa04f01fd2eda8b7c5d0045883159a32438783c380f770d7277ca77c9642c68e8f42dd07 secure_delete-3.1.tar.gz" diff --git a/community/socklog/APKBUILD b/community/socklog/APKBUILD new file mode 100644 index 0000000000..bda6ad8fa3 --- /dev/null +++ b/community/socklog/APKBUILD @@ -0,0 +1,49 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=socklog +pkgver=2.1.0 +pkgrel=2 +pkgdesc="System and kernel logging services for runit" +url="http://smarden.org/socklog/" +arch="all" +license="BSD" +install="$pkgname.post-install" +subpackages="$pkgname-doc" +source="http://smarden.org/$pkgname/$pkgname-$pkgver.tar.gz" + +_builddir="$srcdir"/admin/socklog-$pkgver/src + +prepare() { + local i + cd "$_builddir" + for i in $source; do + case $i in + *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; + esac + done + echo "$CC $CFLAGS" > conf-cc + echo "$CC $LDFLAGS" > conf-ld +} + +build() { + cd "$_builddir" + make +} + +package() { + cd "$_builddir" + install -d "$pkgdir"/usr/bin + install -d "$pkgdir"/sbin + for i in socklog socklog-conf; do + install -m755 "$i" "$pkgdir"/sbin/$i || return 1 + done + for i in socklog-check tryto uncat; do + install -m755 "$i" "$pkgdir"/usr/bin/$i || return 1 + done + install -d "$pkgdir"/usr/share/man/man8 + cd .. && cp -rf man/* "$pkgdir"/usr/share/man/man8/ +} + +md5sums="5d0e8e28c9329ad3af982c5241df9ff1 socklog-2.1.0.tar.gz" +sha256sums="aa869a787ee004da4e5509b5a0031bcc17a4ab4ac650c2ce8d4e488123acb455 socklog-2.1.0.tar.gz" +sha512sums="920ce5e661a6a3d970fa77ee3c228d48699ea03530be2b43b7517458b25e31a0a7f352ece2d076c715b6d34dbb26b424b48eb0f55b9bcd0355b74d3e34c77ac7 socklog-2.1.0.tar.gz" diff --git a/community/socklog/socklog.post-install b/community/socklog/socklog.post-install new file mode 100644 index 0000000000..de53f609d3 --- /dev/null +++ b/community/socklog/socklog.post-install @@ -0,0 +1,22 @@ +#!/bin/sh +# Alpine Linux post-install script for socklog +# Copyright 2015 Stuart Cardall (developer@it-offshore.co.uk) +# Distributed under the terms of the GNU General Public License, v2 or later # + +adduser -S -D -H -h /var/empty -s /sbin/nologin -g log log 2>/dev/null +if [ ! -d /etc/sv/socklog-unix ]; then + socklog-conf unix nobody log + mkdir -p /etc/service + ln -s /etc/sv/socklog-unix /etc/service/ +fi + +if [ ! -f /etc/sv/socklog-unix/run ]; then +cat > /etc/sv/socklog-unix/run <<EOF +#!/bin/sh +/etc/init.d/syslog stop &>/dev/null +exec 2>&1 +exec chpst -Unobody socklog unix /dev/log +EOF +fi + +exit 0 diff --git a/community/spacefm/APKBUILD b/community/spacefm/APKBUILD new file mode 100644 index 0000000000..e70c9386f9 --- /dev/null +++ b/community/spacefm/APKBUILD @@ -0,0 +1,65 @@ +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +# Contributor: Bartłomiej Piotrowski <bpiotrowski@alpinelinux.org> +pkgname=spacefm +pkgver=1.0.5 +pkgrel=0 +pkgdesc="Multi-panel tabbed file manager (GTK2 version)" +arch=all +url="http://ignorantguru.github.com/spacefm/" +license="GPL3" +depends="bash" +makedepends="intltool gettext-dev gtk+2.0-dev gtk+3.0-dev eudev-dev ffmpegthumbnailer-dev linux-headers" +subpackages="$pkgname-lang $pkgname-doc $pkgname-gtk3 $pkgname-gtk3-lang:lang3 $pkgname-gtk3-doc:doc3" +source="$pkgname-$pkgver.tar.gz::https://github.com/IgnorantGuru/spacefm/archive/$pkgver.tar.gz" + +builddir="$srcdir"/$pkgname-$pkgver + +prepare() { + default_prepare || return 1 + update_config_guess || return 1 +} + +build() { + cd "$builddir" + ./configure --prefix=/usr \ + --with-gtk2\ + -disable-pixmaps || return 1 + make || return 1 +} + +gtk3() { + pkgdesc="Multi-panel tabbed file manager (GTK3 version)" + replaces="spacefm" + + cd "$builddir" + make clean || return 1 + + ./configure --prefix=/usr \ + --with-gtk3\ + -disable-pixmaps || return 1 + + make || return 1 + make -j1 DESTDIR="$subpkgdir" install || return 1 +} + +lang3() { + arch="noarch" + mkdir -p "$subpkgdir/usr/share" + mv "${pkgdir%*spacefm}$pkgname-gtk3/usr/share/locale" "$subpkgdir/usr/share/" +} + +doc3() { + arch="noarch" + mkdir -p "$subpkgdir/usr/share" + mv "${pkgdir%*spacefm}$pkgname-gtk3/usr/share/doc" \ + "$subpkgdir/usr/share/" || return 1 +} + +package() { + cd "$builddir" + make -j1 DESTDIR="$pkgdir" install || return 1 +} + +md5sums="634763f4d3886a00088e06a4295982b2 spacefm-1.0.5.tar.gz" +sha256sums="d3f14fd1b1cfb51df98ebc341ab78ce741ba443ae2ce9e1662de39d01a95e0f3 spacefm-1.0.5.tar.gz" +sha512sums="f32a59eac773df1bd9d36ba26cf7397bd205a2a8918e01f978c42ffb6aa2238a6f4dc871503a43f130c3b10d80f43364f54965d441f602ac895d0483fc073498 spacefm-1.0.5.tar.gz" diff --git a/community/tinyssh/APKBUILD b/community/tinyssh/APKBUILD new file mode 100644 index 0000000000..a0e29d0133 --- /dev/null +++ b/community/tinyssh/APKBUILD @@ -0,0 +1,62 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=tinyssh +pkgver=20160809 +pkgrel=0 +pkgdesc="Small SSH server using NaCl / TweetNaCl (no dependency on OpenSSL)" +url="http://tinyssh.org/" +arch="all" +license="CC0 1.0" +makedepends="$depends_dev libsodium-dev" +subpackages="$pkgname-doc" +source="$pkgname-$pkgver.tar.gz::https://github.com/janmojzis/$pkgname/archive/$pkgver.tar.gz + $pkgname.initd + $pkgname.confd + " + +builddir="$srcdir"/$pkgname-$pkgver +build() { + cd "$builddir" + export LIBS="-lsodium" + export CFLAGS="$CFLAGS -I/usr/include/sodium" + export LDFLAGS="-L/usr/lib" + make || return 1 +} + +package() { + cd "$builddir" + make install DESTDIR="${pkgdir}" || return 1 + + mkdir -p "$pkgdir"/etc/$pkgname + install -m755 -D "$srcdir"/$pkgname.initd \ + "$pkgdir"/etc/init.d/tinysshd || return 1 + install -m644 -D "$srcdir"/$pkgname.confd \ + "$pkgdir"/etc/conf.d/tinysshd || return 1 + + # post-install message + mkdir -p "$pkgdir/usr/share/doc/$pkgname" + cat > $pkgdir/usr/share/doc/$pkgname/README.alpine <<EOF +TinySSH can be run in 3 different ways: +-------------------------------------- +(1) /etc/init.d/tinysshd (requires tcpserver & takes care of key generation) + +(2) via inetd (you will need to 'tinysshd-makekeys <dir>' manually): + +echo '22 stream tcp nowait root /usr/sbin/tinysshd tinysshd -l -v /etc/tinyssh/sshkeys' >> /etc/inetd.conf +rc-service inetd start + +(3) Using runit with either (1) or (2) + +Stealth SSH with FWKNOP: https://it-offshore.co.uk/security/53-stealth-your-ssh-port-ssh-into-lxc-containers +EOF +} + +md5sums="32606be2301eac9a1c295827b70c319a tinyssh-20160809.tar.gz +78ec724804035bae29e1c47abec737d8 tinyssh.initd +83e705f0f71db5ae0d8530edafa63497 tinyssh.confd" +sha256sums="3f910f8aa505bd6101f62975c775e81cdf235b2eb9d143d36daff2820f0b3940 tinyssh-20160809.tar.gz +b3584c463f6ba0de6a5fe2e28fb98cd8ef65a55f17a0f4c877f61f54019ef34c tinyssh.initd +c6c67395e7230d75077734f0b08d5f8c76f11aaef27878b013b7bd68dd7ba774 tinyssh.confd" +sha512sums="d7e55359eef2ca4ab8864a4c8b66d8cc852aed8b693beb9a40b892af862cdab174e9023bf933b7ace37d0c0e264798e34f139d6a2aba78eb7c3df4efe85c3ac4 tinyssh-20160809.tar.gz +d10f995c6687e706453e51d06b3466427d476036efdbd86db2f9330281e46049bf2e3698208524b3f70cdbd30373f5bf46c7164dd626d22b3fa9a75ca5d8d478 tinyssh.initd +4513bd0d43ef0825fbd77365a8a7adefcd99211102df76003becf7e3a09a47ad9bbd16a68c3fadfb7868e0562f8d42a26106b7582cb70490a7e52a7d1e6110e9 tinyssh.confd" diff --git a/community/tinyssh/tinyssh.confd b/community/tinyssh/tinyssh.confd new file mode 100644 index 0000000000..d7ba22a5ce --- /dev/null +++ b/community/tinyssh/tinyssh.confd @@ -0,0 +1,8 @@ +# TinySSH conf.d file for Alpine Linux + +# Specify daemon options here: +# OPTIONS="-l -v" + +# override config directory / port here: +# CONFDIR=/etc/tinyssh +# PORT=22 diff --git a/community/tinyssh/tinyssh.initd b/community/tinyssh/tinyssh.initd new file mode 100644 index 0000000000..364ffb21c5 --- /dev/null +++ b/community/tinyssh/tinyssh.initd @@ -0,0 +1,43 @@ +#!/sbin/openrc-run +# Alpine Linux init.d for TinySSH +# Copyright 2015 Stuart Cardall (developer@it-offshore.co.uk) +# Distributed under the terms of the GNU General Public License, v2 or later # + +name=tinysshd +daemon=/usr/sbin/$name +keygen=$daemon-makekey +CONFDIR=${CONFDIR:-/etc/tinyssh} +keydir=${CONFDIR}/sshkeys +OPTIONS=${OPTIONS:-\-v -l} +PORT=${PORT:-22} +pidfile=/var/run/$name.pid +server_opts="-HRDl0 0.0.0.0 ${PORT} $daemon ${OPTIONS} $keydir" + +depend() { + use net + after logger firewall +} + +checkconfig() { + checkpath --directory ${CONFDIR} + eval $keygen $keydir 2>/dev/null + # tinyssh also runs from inetd without tcpserver + if [ ! -f /usr/bin/tcpserver ]; then + apk add --quiet ucspi-tcp + fi +} + +start() { + checkconfig + ebegin "Starting ${name}" + start-stop-daemon --start --make-pidfile --background --pidfile $pidfile \ + --exec tcpserver -- $server_opts + eend $? +} + +stop() { + ebegin "Stopping ${name}" + start-stop-daemon --stop --quiet \ + --pidfile $pidfile + eend $? +} diff --git a/community/udevil/APKBUILD b/community/udevil/APKBUILD new file mode 100644 index 0000000000..159b0d7a3e --- /dev/null +++ b/community/udevil/APKBUILD @@ -0,0 +1,61 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=udevil +pkgver=0.4.4 +pkgrel=2 +pkgdesc="Mount / unmount removable devices without a password (udisks alternative)" +url="http://ignorantguru.github.io/udevil" +arch="all" +license="GPL3+" +makedepends="$depends_dev glib-dev eudev-dev intltool" +install="$pkgname.pre-install" +subpackages="$pkgname-lang $pkgname-doc" +pkggroups="plugdev" +source="$pkgname-$pkgver.tar.gz::https://github.com/IgnorantGuru/$pkgname/archive/$pkgver.tar.gz" + +_builddir="$srcdir"/$pkgname-$pkgver +prepare() { + local i + cd "$_builddir" + for i in $source; do + case $i in + *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; + esac + done +} + +build() { + cd "$_builddir" + ./configure \ + --prefix=/usr \ + --disable-systemd || return 1 + make || return 1 +} + +package() { + cd "$_builddir" + make -j1 DESTDIR="$pkgdir" install || return 1 + chown root:plugdev "$pkgdir"/usr/bin/udevil || return 1 + chmod u+s,go-s,o-x "$pkgdir"/usr/bin/udevil # remove SUID bit + mkdir -p "$pkgdir/usr/share/apk-tools/$pkgname" +# chmod ugo-s,ugo+x "$pkgdir"/usr/bin/udevil #remove SUID bit completely + # post-install message + mkdir -p "$pkgdir/usr/share/doc/$pkgname" + cat > $pkgdir/usr/share/doc/$pkgname/README.alpine <<EOF +To mount / unmount devices without the root password: add your user account to the 'plugdev' group. + +Optional dependencies: + +zenity: (devmon popups) +davfs2: (mount WebDAV resources) +cifs-utils: (mounting samba shares) +curlftpfs: (mounting ftp shares) +nfs-utils: (mounting nfs shares) +sshfs-fuse: (mounting sftp shares) +eject: (eject via devmon) +EOF +} + +md5sums="281aa065d92c679cb41728069e72b272 udevil-0.4.4.tar.gz" +sha256sums="ad2fd8375bd62622718a04235e9772119459089938dbb78e657955e595822b7c udevil-0.4.4.tar.gz" +sha512sums="adce4916e06d1cc4965521abbcbc2901e53930691167f431cb18e28d3ef8bde740e95a6a5f40dfc58dfd7b4b661b4475d3dd2b6174a5d7a55ae7c65629b82327 udevil-0.4.4.tar.gz" diff --git a/community/udevil/udevil.pre-install b/community/udevil/udevil.pre-install new file mode 100644 index 0000000000..9d4b1c3767 --- /dev/null +++ b/community/udevil/udevil.pre-install @@ -0,0 +1,5 @@ +#!/bin/sh + +addgroup -S plugdev 2>/dev/null + +exit 0 diff --git a/community/virt-viewer/APKBUILD b/community/virt-viewer/APKBUILD new file mode 100644 index 0000000000..95ec2f5480 --- /dev/null +++ b/community/virt-viewer/APKBUILD @@ -0,0 +1,47 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=virt-viewer +pkgver=2.0 +pkgrel=0 +pkgdesc="A lightweight interface for interacting with the graphical display of virtualized guest OS" +url="http://virt-manager.org" +arch="all" +license="GPL" +depends="" +depends_dev="" +makedepends="$depends_dev intltool spice-protocol glib-dev gtk+3.0-dev gtk-vnc-dev spice-gtk-dev" +install="" +subpackages="$pkgname-lang $pkgname-doc" +source="http://virt-manager.org/download/sources/$pkgname/$pkgname-$pkgver.tar.gz" + +_builddir="$srcdir"/$pkgname-$pkgver +prepare() { + local i + cd "$_builddir" + for i in $source; do + case $i in + *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; + esac + done +} + +build() { + cd "$_builddir" + ./configure \ + --prefix=/usr \ + --with-gtk=3.0 \ + --disable-update-mimedb \ + --with-gtk-vnc \ + --with-spice-gtk \ + || return 1 + make || return 1 +} + +package() { + cd "$_builddir" + make DESTDIR="$pkgdir" install +} + +md5sums="4b1e9a2029e0dfff741e17bb915f75ec virt-viewer-2.0.tar.gz" +sha256sums="e9c583bcb5acdabac6a8a13eff6ce4e093a3050645771628f832e15ce685d437 virt-viewer-2.0.tar.gz" +sha512sums="271ded11e4af3f1dd208c7b8ab7d1c0cd24f641a79e05178d0762a03de3dcf99ae7432acde2b67460e7a98d1fa562587b6b08cf06ab3cf80f025a7b259e8203e virt-viewer-2.0.tar.gz" diff --git a/community/virtualbricks/APKBUILD b/community/virtualbricks/APKBUILD new file mode 100644 index 0000000000..72faae66e7 --- /dev/null +++ b/community/virtualbricks/APKBUILD @@ -0,0 +1,39 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=virtualbricks +pkgver=1.0.1 +pkgrel=2 +pkgdesc="A GTK frontend for VDE and QEMU/KVM" +url="http://virtualbricks.eu | https://launchpad.net/virtualbrick" +arch="noarch" +license="GPL v2" +depends="python py-zope-interface py-twisted py-gtk py-imaging py-graphviz" +depends_dev="" +makedepends="python-dev gettext" +subpackages="$pkgname-lang" +source="https://launchpad.net/virtualbrick/1.x/$pkgver/+download/$pkgname-$pkgver.tar.gz" + +_builddir="$srcdir"/$pkgname-$pkgver +prepare() { + local i + cd "$_builddir" + for i in $source; do + case $i in + *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; + esac + done +} + +build() { + cd "$_builddir" + python setup.py build || return 1 +} + +package() { + cd "$_builddir" + python setup.py install --prefix=/usr --root="$pkgdir" || return 1 +} + +md5sums="17ae7cddd0572f3f547ff348eadcf690 virtualbricks-1.0.1.tar.gz" +sha256sums="afed1e4b7932297e5aece861d24516a62a98e08212f510e13c4a0a4132fdd0bc virtualbricks-1.0.1.tar.gz" +sha512sums="90a4cd46058c3139a7bc1d8e15f19a20f020371acb55587df5f315e6f691b3358ea73b37b317a9c772c7cbc4cb968ae5a27ebfb59472085bcb5ad27c4db3c464 virtualbricks-1.0.1.tar.gz" diff --git a/community/whois/APKBUILD b/community/whois/APKBUILD new file mode 100644 index 0000000000..64371caab9 --- /dev/null +++ b/community/whois/APKBUILD @@ -0,0 +1,30 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=whois +pkgver=5.2.12 +pkgrel=1 +pkgdesc="Intelligent WHOIS client by Marco d'Itri" +url="http://www.linux.it/~md/software/" +arch="all" +license="GPL2" +makedepends="$depends_dev perl libidn-dev gettext-dev" +subpackages="$pkgname-doc" +source="$pkgname-$pkgver.tar.gz::https://github.com/rfc1036/$pkgname/archive/v$pkgver.tar.gz" + +_builddir="$srcdir"/$pkgname-$pkgver +build() { + cd "$_builddir" + make CONFIG_FILE="/etc/whois.conf" \ + HAVE_LIBIDN=1 HAVE_ICONV=1 \ + CFLAGS="$CFLAGS -lintl $CXXFLAGS" || return 1 +} + +package() { + cd "$_builddir" + make BASEDIR="$pkgdir" install-whois || return 1 + install -D -m644 whois.conf "$pkgdir/etc/whois.conf" +} + +md5sums="c7d86f4cdc97f92722b2500bf12aefd1 whois-5.2.12.tar.gz" +sha256sums="8485aa02909fd6aaa1cfd8b5e63559310879bf8a62793a83c96a4502164b968a whois-5.2.12.tar.gz" +sha512sums="812ae2a344e5b190175213cca1b10cc58821312f8ad8b31995ecb6963e71b1343ccfa6f06ce896856b9c9622be3dfb22e1fba30ed254f25373f08b4d84143552 whois-5.2.12.tar.gz" diff --git a/community/wrk/APKBUILD b/community/wrk/APKBUILD new file mode 100644 index 0000000000..76b7edff01 --- /dev/null +++ b/community/wrk/APKBUILD @@ -0,0 +1,37 @@ +# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net> +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=wrk +pkgver=4.0.1 +pkgrel=0 +pkgdesc="wrk is a modern HTTP benchmarking tool" +url="https://github.com/wg/wrk" +# requires -march=i586 to build on x86 +arch="x86_64" +license="ASL 2.0" +depends="" +depends_dev="" +makedepends="openssl-dev" +install="" +subpackages="$pkgname-doc" +source="$pkgname-$pkgver.tar.gz::https://github.com/wg/wrk/archive/$pkgver.tar.gz" + +_builddir="$srcdir"/$pkgname-$pkgver +build() { + make -C "$_builddir" || return 1 +} + +package() { + cd "$_builddir" + mkdir -p $pkgdir/usr/bin + mkdir -p $pkgdir/usr/share/doc/$pkgname/scripts + install -m755 -D $pkgname "$pkgdir"/usr/bin/$pkgname + install -m644 -D README "$pkgdir"/usr/share/doc/$pkgname/ + install -m644 -D LICENSE "$pkgdir"/usr/share/doc/$pkgname/ + install -m644 -D NOTICE "$pkgdir"/usr/share/doc/$pkgname/ + install -m755 -D scripts/* "$pkgdir"/usr/share/doc/$pkgname/scripts/ +} + +md5sums="2520c55f197b5bb38b96ef2495b9af11 wrk-4.0.1.tar.gz" +sha256sums="c03bbc283836cb4b706eb6bfd18e724a8ce475e2c16154c13c6323a845b4327d wrk-4.0.1.tar.gz" +sha512sums="75e8e0d6f1e7929a43bb80fe65e1f2a36a169d19d839940ebe7dc9765a182e1adee3ba2873e97511ddabbd252b8447a69a92a2cfc584f05d65a2f8b31bbf4141 wrk-4.0.1.tar.gz" diff --git a/community/xpra/APKBUILD b/community/xpra/APKBUILD new file mode 100644 index 0000000000..557700b24f --- /dev/null +++ b/community/xpra/APKBUILD @@ -0,0 +1,52 @@ +# Contributor: Stuart Cardall <developer@it-offshore.co.uk> +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +pkgname=xpra +pkgver=0.17.1 +pkgrel=1 +pkgdesc="Xpra is 'screen for X' & allows you to run X programs, usually on a remote host over SSH or encrypted tcp." +url="http://xpra.org" +arch="all" +license="GPLv2+" +depends="py-gobject py-gtk py-imaging xf86-video-dummy xvfb setxkbmap xorg-server py-numpy py-pillow py-gtkglext py-lz4 \ + py-rencode py-opencl" +depends_dev="python-dev cython-dev libx11-dev libxtst-dev libxcomposite-dev libxdamage-dev libxrandr-dev \ + py-gobject-dev py-gtk-dev libxkbfile-dev gtk+2.0-dev x264-dev x265-dev libvpx-dev ffmpeg-dev libwebp-dev" +makedepends="$depends_dev cython linux-headers" +subpackages="$pkgname-dev $pkgname-doc $pkgname-tests" +source="http://xpra.org/src/$pkgname-$pkgver.tar.xz" + +_builddir="$srcdir"/$pkgname-$pkgver +prepare() { + local i + cd "$_builddir" + for i in $source; do + case $i in + *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; + esac + done +} + +build() { + cd "$_builddir" # https://www.xpra.org/trac/ticket/1080 + CFLAGS="$CFLAGS -fno-strict-aliasing" + python setup.py build \ + --with-csc_opencl \ + --with-bundle_tests \ + || return 1 +} + +package() { + cd "$_builddir" + python setup.py install --prefix=/usr --root="$pkgdir" || return 1 +} + +tests() { + arch="noarch" + cd "$_builddir" + mkdir -p "$subpkgdir"/usr/share/xpra + cp -rf tests "$subpkgdir"/usr/share/xpra/ +} + +md5sums="d83910c4e8c3799822f5fe90f6d8e928 xpra-0.17.1.tar.xz" +sha256sums="041de13937f3f0529dcde9ccc681b52bc85c5074a021060a56a1da2cdfe66315 xpra-0.17.1.tar.xz" +sha512sums="f1d323b7207b89838045126939d7d68ff72313c00724f2be7d405c12880fedc12900c11c8d36a0780ee6f7ffca1b6f75c69136eeebd73333fbd437cf9a7ffcfa xpra-0.17.1.tar.xz" diff --git a/community/zram-init/APKBUILD b/community/zram-init/APKBUILD new file mode 100644 index 0000000000..1cec0fde7d --- /dev/null +++ b/community/zram-init/APKBUILD @@ -0,0 +1,39 @@ +# Maintainer: Stuart Cardall <developer@it-offshore.co.uk> +# Contributor: Bartłomiej Piotrowski <bpiotrowski@alpinelinux.org> +pkgname=zram-init +pkgver=3.8 +pkgrel=0 +pkgdesc="wrapper script for the zram kernel module" +arch="noarch" +url="https://github.com/vaeth/zram-init" +license="GPL2" +depends="e2fsprogs-extra" +subpackages="$pkgname-zsh-completion:zshcomp" +source="$pkgname-$pkgver.tar.gz::$url/archive/v$pkgver.tar.gz" + +_builddir="$srcdir/$pkgname-$pkgver" +build() { + return 0 +} + +package() { + cd "$_builddir" + install -Dm644 modprobe.d/zram.conf "$pkgdir"/etc/modprobe.d/zram.conf + install -Dm755 sbin/zram-init "$pkgdir"/usr/sbin/zram-init + install -Dm644 openrc/conf.d/zram-init "$pkgdir"/etc/conf.d/zram-init + install -Dm755 openrc/init.d/zram-init "$pkgdir"/etc/init.d/zram-init +} + +zshcomp() { + depends="" + pkgdesc="Zsh completions for $pkgname" + install_if="$pkgname=$pkgver-r$pkgrel zsh" + arch="noarch" + + install -Dm644 "$_builddir"/zsh/_$pkgname \ + "$subpkgdir"/usr/share/zsh/site-functions/_$pkgname +} + +md5sums="fb36ef7138f028de71ed1d5e372a6e02 zram-init-3.8.tar.gz" +sha256sums="4a43c424739dda6c4ffe62b5431b6fb1f476afd9f8b9b9149eb32314cd34a3a6 zram-init-3.8.tar.gz" +sha512sums="c083f34bba6031f8e247f61a1451343e14cc4bc5c4731ad3a32a5f0eea265936a83b27ad0e3cbd2ba0e05e2bec1e6ae739b6e4149d120dafbcc057437188f07f zram-init-3.8.tar.gz" |