diff options
Diffstat (limited to 'community-testing')
-rw-r--r-- | community-testing/freevo/PKGBUILD | 44 | ||||
-rw-r--r-- | community-testing/freevo/freevo.desktop | 11 | ||||
-rw-r--r-- | community-testing/freevo/freevo.install | 25 | ||||
-rw-r--r-- | community-testing/freevo/imdb-html5lib.patch | 301 | ||||
-rw-r--r-- | community-testing/mypaint/PKGBUILD | 32 | ||||
-rw-r--r-- | community-testing/mypaint/mypaint.install | 13 | ||||
-rw-r--r-- | community-testing/python-scipy/PKGBUILD | 83 | ||||
-rw-r--r-- | community-testing/python-scipy/python-scipy.changelog | 49 | ||||
-rw-r--r-- | community-testing/systemd/PKGBUILD | 69 | ||||
-rw-r--r-- | community-testing/systemd/os-release | 5 | ||||
-rw-r--r-- | community-testing/systemd/systemd.install | 31 | ||||
-rw-r--r-- | community-testing/vhba-module/PKGBUILD | 28 | ||||
-rw-r--r-- | community-testing/vhba-module/vhba-kernel2.6.37.patch | 56 | ||||
-rw-r--r-- | community-testing/vhba-module/vhba-module.install | 16 |
14 files changed, 763 insertions, 0 deletions
diff --git a/community-testing/freevo/PKGBUILD b/community-testing/freevo/PKGBUILD new file mode 100644 index 000000000..c07ec2f34 --- /dev/null +++ b/community-testing/freevo/PKGBUILD @@ -0,0 +1,44 @@ +# $Id: PKGBUILD 51736 2011-07-13 19:46:02Z rvanharen $ +# Maintainer: Ronald van Haren <ronald.archlinux.org> + +pkgname=freevo +pkgver=1.9.0 +pkgrel=6 +pkgdesc="Freevo is an open-source home theatre PC platform based on Linux and a number of open-source audio/video tools." +url="http://freevo.sourceforge.net/" +license=('GPL2') +arch=('i686' 'x86_64') +depends=('lame' 'flac' 'faad2' 'cdparanoia' 'vorbis-tools' \ + 'fbset' 'smpeg' 'pil' 'python-pysqlite-legacy' \ + 'pyxml' 'lsdvd' 'twisted' 'python2-numpy' 'python-pygame'\ + 'kaa-metadata' 'kaa-imlib2' 'python-beautifulsoup' 'python-html5lib') +optdepends=('mplayer: most features' 'xine-lib: can be used instead of mplayer' 'tvtime: watching tv' 'xmltv: parsing online tv guides') +install=freevo.install +options=('docs') +source=(http://downloads.sourceforge.net/freevo/$pkgname-$pkgver.tar.gz \ + freevo.desktop + imdb-html5lib.patch) +sha1sums=('0533a2d4ff8a7b09b3b233fdf303ff56bda22d16' + '5f6e76dc58496f072aca29257c24be5ffa9c6c7d' + '57e1099527603500c594fbffa2cb7233b636eed1') + +build() { + cd $srcdir/$pkgname-$pkgver + + # patch from http://sourceforge.net/tracker/index.php?func=detail&aid=2924872&group_id=46652&atid=446895 + patch -p0 < $srcdir/imdb-html5lib.patch + python2 setup.py install --prefix=$pkgdir/usr + + install -Dm644 local_conf.py.example $pkgdir/usr/share/doc/freevo/local_conf.py.example + + # install .desktop file and icon + install -Dm644 $srcdir/$pkgname-$pkgver/share/icons/misc/freevo_app.png \ + $pkgdir/usr/share/pixmaps/freevo.png + install -Dm644 $srcdir/freevo.desktop \ + $pkgdir/usr/share/applications/freevo.desktop + + # fix executable for python 2.7 + sed -i "s|search = ('python', 'python2')|search = ('python2', 'python2.7')|" $pkgdir/usr/bin/freevo + + } + diff --git a/community-testing/freevo/freevo.desktop b/community-testing/freevo/freevo.desktop new file mode 100644 index 000000000..1b57043be --- /dev/null +++ b/community-testing/freevo/freevo.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Version=1.0 +Name=Freevo +GenericName=Freevo +Comment=Home theatre +Exec=freevo +Terminal=false +Type=Application +Icon=/usr/share/pixmaps/freevo.png +Categories=AudioVideo; + diff --git a/community-testing/freevo/freevo.install b/community-testing/freevo/freevo.install new file mode 100644 index 000000000..06734569d --- /dev/null +++ b/community-testing/freevo/freevo.install @@ -0,0 +1,25 @@ +post_install() { + if [ ! -d /etc/freevo ]; then + mkdir /etc/freevo + fi + + if [ ! -f /etc/freevo/local_conf.py ]; then + cp /usr/share/doc/freevo/local_conf.py.example /etc/freevo/local_conf.py + fi + +cat << _EOF + +==> freevo installation notes: +--------------------------------------- + Run 'freevo setup --help' and follow the instructions. Then edit + /etc/freevo/local_conf.py to suit your needs. This file can be + installed on a per-user basis in ~/.freevo and will take precedence + over the one in /etc/freevo/. + +_EOF + +} + +post_upgrade() { + post_install +} diff --git a/community-testing/freevo/imdb-html5lib.patch b/community-testing/freevo/imdb-html5lib.patch new file mode 100644 index 000000000..6f454246e --- /dev/null +++ b/community-testing/freevo/imdb-html5lib.patch @@ -0,0 +1,301 @@ +Index: src/helpers/imdb.py +=================================================================== +--- src/helpers/imdb.py (revision 11608) ++++ src/helpers/imdb.py (working copy) +@@ -53,19 +53,19 @@ + parser = OptionParser(version='%prog 1.0', conflict_handler='resolve', usage=""" + Search IMDB for a movie or a TV show + +-freevo imdb [options] <search> [<output> <video file> [<video file>]] ++freevo imdb [options] | [<result> <fxd file> <video file> [<video file>]] + +-Generate <output>.fxd for the movie. Files is a list of files that belongs to +-this movie. Use [dvd|vcd] to add the whole disc or use [dvd|vcd][title] to add +-a special DVD or VCD title to the list of files""") ++Generate a fxd for the movie. Files is a list of files that belongs to this ++movie. Use [dvd|vcd] to add the whole disc or use [dvd|vcd][title] to add a ++special DVD or VCD title to the list of files""") + parser.add_option('-v', '--verbose', action='count', default=0, + help='set the level of verbosity [default:%default]') + parser.add_option('-s', '--search', action='store_true', dest='search', default=False, + help='search imdb for string [default:%default]') + parser.add_option('-g', '--guess', action='store_true', dest='guess', default=False, + help='search imdb for possible filename match [default:%default]') +- parser.add_option('--tv', action='store_true', dest='tv', default=False, +- help='specify the search is a tv programme [default:%default]') ++ parser.add_option('--tv', action='store', dest='tv', default=None, ++ help='specify the id of a tv programme for a eipsode search [default:%default]') + parser.add_option('--season', dest='season', default=None, + help='specify the season in the search [default:%default]') + parser.add_option('--episode', dest='episode', default=None, +@@ -116,7 +116,9 @@ + sys.exit(u'--search requires <search pattern>') + elif opts.guess and len(args) < 1: + sys.exit(u'--guess requires <guess pattern>') +- tv_marker = (opts.tv or opts.season or opts.episode) and '"' or '' ++ #elif opts.tv and len(args) < 1: ++ # sys.exit(u'--tv requires <imdb id>') ++ tv_marker = (opts.season or opts.episode) and '"' or '' + + if opts.rom_drive is not None: + driveset = True +@@ -176,6 +178,23 @@ + print '%s' % title.encode(opts.encoding) + sys.exit(0) + ++ if opts.tv: ++ print "Searching IMDB for '%s' season:%s episode:%s..." % (opts.tv, opts.season, opts.episode) ++ results = fxd.getIMDBid(opts.tv, opts.season, opts.episode) ++ if len(results) == 0: ++ print 'No results' ++ #for result in results: ++ # if result[3]: ++ # title = 'http://www.imdb.com/title/tt%s/ %s %s (%s) %s' % (result[:1] + result[:4]) ++ # elif result[2]: ++ # title = 'http://www.imdb.com/title/tt%s/ %s %s (%s)' % (result[:1] + result[:3]) ++ # else: ++ # title = 'http://www.imdb.com/title/tt%s/ %s %s' % (result[:1] + result[:2]) ++ # title = results ++ title = 'http://www.imdb.com/title/tt%s/ %s' % (results, results) ++ print '%s' % title.encode(opts.encoding) ++ sys.exit(0) ++ + # normal usage + if len(args) < 3: + sys.exit(u'requires <imdb id> <fxd filename> <video file>|<cd id>') +Index: src/util/fxdimdb.py +=================================================================== +--- src/util/fxdimdb.py (revision 11608) ++++ src/util/fxdimdb.py (working copy) +@@ -48,8 +48,15 @@ + import codecs + import os + import traceback +-from BeautifulSoup import BeautifulSoup, NavigableString +-import HTMLParser ++from pprint import pprint, pformat ++try: ++ from html5lib import HTMLParser, treebuilders ++ from html5lib.treebuilders.soup import NavigableString ++ using_html5lib = True ++except ImportError: ++ import HTMLParser ++ from BeautifulSoup import BeautifulSoup, BeautifulStoneSoup, NavigableString ++ using_html5lib = False + + import config + import util +@@ -232,6 +239,7 @@ + response.close() + + _debug_('id_list has %s items' % (len(self.id_list))) ++ #print 'id_list=%s' % (pformat(self.id_list)) + if len(self.id_list) > 20: + # too many results, check if there are stupid results in the list + words = [] +@@ -311,7 +319,11 @@ + dvd = 0 + + try: +- soup = BeautifulSoup(results.read(), convertEntities='xml') ++ if using_html5lib: ++ parser = HTMLParser(tree=treebuilders.getTreeBuilder('beautifulsoup')) ++ soup = parser.parse(results.read()) ++ else: ++ soup = BeautifulSoup(results.read(), convertEntities=BeautifulStoneSoup.HTML_ENTITIES) + except UnicodeDecodeError: + print "Unicode error: check that /usr/lib/python2.x/site.py has the correct default encoding" + traceback.print_exc() +@@ -336,68 +348,61 @@ + self.info['year'] = y[1:-1] + except (AttributeError, TypeError, ValueError): + self.info['title'] = self.title +- self.info['year'] = title.find('a').string.strip() ++ try: ++ self.info['year'] = title.find('a').contents[0].strip() ++ except AttributeError: ++ self.info['year'] = '' + + # Find the <div> with class info, each <h5> under this provides info ++ wanted_keys = ('release_date', 'genre', 'tagline', 'plot', 'plot_keywords', ++ 'also_known_as', 'mpaa', 'runtime', 'country', 'language', ++ 'color', 'aspect_ratio', 'sound_mix', 'certification', ++ ) ++ + for info in main.findAll('div', {'class' : 'info'}): + infoh5 = info.find('h5') + if not infoh5: + continue + try: +- infostr = infoh5.next +- key = infostr.string.strip(':').lower().replace(' ', '_') +- nextsibling = nextsibling = infoh5.nextSibling.strip() +- sections = info.findAll('a', { 'href' : re.compile('/Sections') }) +- lists = info.findAll('a', { 'href' : re.compile('/List') }) +- if len(nextsibling) > 0: +- self.info[key] = nextsibling ++ infostr = infoh5.find(text=True) ++ key = infostr.strip().strip(':').lower().replace(' ', '_') ++ if key not in wanted_keys: ++ continue ++ content = info.find('div', {'class' : 'info-content'}) ++ infocontent = content.find(text=True) ++ if infocontent: ++ infocontent = infocontent.strip() ++ sections = info.findAll('a', { 'href' : re.compile('^/Sections') }) ++ lists = info.findAll('a', { 'href' : re.compile('^/List') }) ++ keywords = info.findAll('a', { 'href' : re.compile('^/keyword') }) ++ #print 'key=%s content=%r keywords=%r sections=%r lists=%r' % (key, infocontent, keywords, sections, lists) ++ if len(infocontent) > 0: ++ self.info[key] = infocontent + elif len(sections) > 0: + items = [] + for item in sections: +- items.append(item.string) ++ items.append(item.contents[0].strip()) + self.info[key] = ' / '.join(items) + elif len(lists) > 0: + items = [] + for item in lists: +- items.append(item.string) ++ items.append(item.contents[0].strip()) + self.info[key] = ' / '.join(items) ++ elif len(keywords) > 0: ++ items = [] ++ for item in keywords: ++ items.append(item.contents[0].strip()) ++ self.info[key] = ' / '.join(items) + except: + pass + +- # Find Plot Outline/Summary: +- # Normally the tag is named "Plot Outline:" - however sometimes +- # the tag is "Plot Summary:" or just "Plot:". Search for all strings. +- imdb_result = soup.find(text='Plot Outline:') +- if not imdb_result: +- imdb_result = soup.find(text='Plot Summary:') +- if not imdb_result: +- imdb_result = soup.find(text='Plot:') +- if imdb_result: +- self.info['plot'] = imdb_result.next.strip() +- else: +- self.info['plot'] = u'' +- +- # Find tagline - sometimes the tagline is missing. +- # Use an empty string if no tagline could be found. +- imdb_result = soup.find(text='Tagline:') +- if imdb_result: +- self.info['tagline'] = imdb_result.next.strip() +- else: +- self.info['tagline'] = u'' +- + rating = soup.find(text='User Rating:').findNext(text=re.compile('/10')) +- if rating: ++ try: + votes = rating.findNext('a') +- self.info['rating'] = rating.strip() + ' (' + votes.string.strip() + ')' +- else: ++ self.info['rating'] = rating.strip() + ' (' + votes.contents[0].strip() + ')' ++ except AttributeError: + self.info['rating'] = '' + +- runtime = soup.find(text='Runtime:') +- if runtime and runtime.next: +- self.info['runtime'] = runtime.next.strip() +- else: +- self.info['runtime'] = '' +- + # Replace special characters in the items + for (k,v) in self.info.items(): + self.info[k] = self.convert_entities(v) +@@ -794,10 +799,14 @@ + _debug_('parsesearchdata(results=%r, url=%r, id=%r)' % (results, url, id)) + + self.id_list = [] +- m = re.compile('/title/tt([0-9]*)/') +- y = re.compile('\(([^)]+)\)') ++ m = re.compile('/title/tt(\d+)/') ++ y = re.compile('\((\d+)\) *(.*)') + try: +- soup = BeautifulSoup(results.read(), convertEntities='xml') ++ if using_html5lib: ++ parser = HTMLParser(tree=treebuilders.getTreeBuilder('beautifulsoup')) ++ soup = parser.parse(results.read()) ++ else: ++ soup = BeautifulSoup(results.read(), convertEntities=BeautifulStoneSoup.HTML_ENTITIES) + except HTMLParser.HTMLParseError, why: + traceback.print_exc() + _debug_('Cannot parse %r: %s' % (url, why), DWARNING) +@@ -806,28 +815,37 @@ + traceback.print_exc() + _debug_('Cannot parse %r: %s' % (url, why), DWARNING) + return self.id_list +- items = soup.findAll('a', href=re.compile('/title/tt')) ++ items = soup.findAll('a', href=re.compile('^/title/tt')) + ids = set([]) + for item in items: +- idm = m.search(item['href']) ++ idm = item.attrMap['href'] + if not idm: + continue +- if isinstance(item.next.next, NavigableString): +- yrm = y.findall(item.next.next) +- +- id = idm.group(1) +- name = item.string +- # skip empty names +- if not name: ++ m_match = m.match(idm) ++ if not m_match: ++ # skip invalid titles + continue +- # skip duplicate ids ++ id = m_match.group(1) + if id in ids: ++ # skip duplicate ids + continue ++ name = item.contents[0] ++ if not isinstance(name, NavigableString): ++ # skip empty names ++ continue ++ if isinstance(item.next.next, NavigableString): ++ yrm = item.next.next.strip() + ids.add(id) +- year = len(yrm) > 0 and yrm[0] or '0000' +- type = len(yrm) > 1 and yrm[1] or '' ++ y_match = y.match(yrm) ++ if y_match: ++ year = y_match.group(1) ++ type = y_match.group(2) ++ else: ++ year = '0000' ++ type = '' + #print 'url', item['href'] + #print item.parent.findChildren(text=re.compile('[^ ]')) ++ #print 'id=%s name=%s year=%s type=%s' % (id, name, year, type) + self.id_list += [ ( id, name, year, type ) ] + + for item in self.id_list: +@@ -840,7 +858,11 @@ + Returns a new id for getIMDBid with TV series episode data + """ + try: +- soup = BeautifulSoup(results.read(), convertEntities='xml') ++ if using_html5lib: ++ parser = HTMLParser(tree=treebuilders.getTreeBuilder('beautifulsoup')) ++ soup = parser.parse(results.read()) ++ else: ++ soup = BeautifulSoup(results.read(), convertEntities=BeautifulStoneSoup.HTML_ENTITIES) + except UnicodeDecodeError: + print "Unicode error; check that /usr/lib/python2.x/site.py has the correct default encoding" + pass +@@ -968,9 +990,6 @@ + self.image = vfs.basename(self.image) + + _debug_('Downloaded cover image from %s' % (self.image_url)) +- print "Freevo knows nothing about the copyright of this image, please" +- print "go to %s to check for more information about private." % self.image_url +- print "use of this image" + + + def str2XML(self, line): diff --git a/community-testing/mypaint/PKGBUILD b/community-testing/mypaint/PKGBUILD new file mode 100644 index 000000000..cc4d4f85b --- /dev/null +++ b/community-testing/mypaint/PKGBUILD @@ -0,0 +1,32 @@ +# $Id: PKGBUILD 51725 2011-07-13 14:26:16Z spupykin $ +# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> +# Contributor: Jon Nordby <jononor@gmail.com> + +pkgname=mypaint +pkgver=0.9.1 +pkgrel=3 +pkgdesc="A fast and easy painting application for digital painters, with brush dynamics" +arch=('i686' 'x86_64') +url="http://mypaint.intilinux.com/" +license=('GPL' 'LGPL') +depends=('pygtk' 'python2-numpy' 'protobuf-python' 'python2') +makedepends=('scons>=0.97' 'swig>=1.3.39') +install=mypaint.install +source=(http://download.gna.org/$pkgname/$pkgname-$pkgver.tar.bz2) +md5sums=('6249a16359a438d6dc658f5765b35515') + +build() { + cd $srcdir/$pkgname-$pkgver + # python2 fix + sed -i 's_python generate.py_python2 generate.py_' brushlib/SConscript + for file in $(find . -name '*.py' -print); do + sed -i 's_^#!.*/usr/bin/python_#!/usr/bin/python2_' $file + sed -i 's_^#!.*/usr/bin/env.*python_#!/usr/bin/env python2_' $file + done + scons +} + +package() { + cd $srcdir/$pkgname-$pkgver + scons prefix="$pkgdir"/usr install +} diff --git a/community-testing/mypaint/mypaint.install b/community-testing/mypaint/mypaint.install new file mode 100644 index 000000000..5f0358791 --- /dev/null +++ b/community-testing/mypaint/mypaint.install @@ -0,0 +1,13 @@ +post_install() { + [ -x `which update-mime-database` ] && update-mime-database usr/share/mime + [ -x `which gtk-update-icon-cache` ] && gtk-update-icon-cache -q -t -f usr/share/icons/hicolor + /bin/true +} + +post_upgrade() { + post_install $1 +} + +post_remove() { + post_install $1 +} diff --git a/community-testing/python-scipy/PKGBUILD b/community-testing/python-scipy/PKGBUILD new file mode 100644 index 000000000..80a97ca82 --- /dev/null +++ b/community-testing/python-scipy/PKGBUILD @@ -0,0 +1,83 @@ +# $Id: PKGBUILD 51728 2011-07-13 14:46:12Z tdziedzic $ +# Maintainer: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve> +# Maintainer: Ray Rashif <schiv@archlinux.org> +# Contributor: Douglas Soares de Andrade <dsa@aur.archlinux.org> +# Contributor: Bodor Dávid Gábor <david.gabor.bodor@gmail.com> +# Contributor: Andrzej Giniewicz <gginiu@gmail.com> + +pkgbase=python-scipy +_app=scipy +pkgname=('python-scipy' 'python2-scipy') +pkgver=0.9.0 +_theapp=$_app-$pkgver +pkgrel=2 +pkgdesc="SciPy is open-source software for mathematics, science, and engineering." +arch=('i686' 'x86_64') +url="http://www.scipy.org/" +license=('BSD') +depends=('python-numpy') +makedepends=('gcc-fortran' 'python2-numpy') +changelog=$pkgbase.changelog +source=("http://downloads.sourceforge.net/$_app/$_theapp.tar.gz") +md5sums=('ebfef6e8e82d15c875a4ee6a46d4e1cd') + +build() { + unset LDFLAGS + unset FFLAGS + + # Compatibility symlinks for current stable numpy + # - no need to patch numpy just for this + # see http://projects.scipy.org/numpy/ticket/1749 + ln -sf /usr/lib/liblapack.so liblapack.cpython-32mu.so + ln -sf /usr/lib/libblas.so libblas.cpython-32mu.so + export LAPACK="$srcdir" + export BLAS="$srcdir" + + # Changing the arithmetic parameter (Thanks to Fabrizio Castellano) + sed -i "s/\#define\ UNK\ 1/\#define\ IBMPC\ 1/" \ + $_theapp/$_app/special/cephes/mconf.h + + # 2 builds + cp -r $_theapp $_theapp-py2 + + # build for python3 + cd $_theapp + python setup.py config_fc --fcompiler=gnu95 build + + # build for python2 + cd ../$_theapp-py2 + + for file in $(find . -name '*.py' -print); do + sed -i 's_^#!.*/usr/bin/python_#!/usr/bin/python2_' $file + sed -i 's_^#!.*/usr/bin/env.*python_#!/usr/bin/env python2_' $file + done + + python2 setup.py config_fc --fcompiler=gnu95 build +} + +package_python-scipy() { + provides=('python3-scipy' 'scipy') + + cd "$srcdir/$_theapp" + + python setup.py config_fc --fcompiler=gnu95 install \ + --prefix=/usr --root="$pkgdir" --optimize=1 + + install -Dm644 LICENSE.txt \ + "$pkgdir/usr/share/licenses/$pkgname/LICENSE" +} + +package_python2-scipy() { + depends=('python2-numpy') + conflicts=('python-scipy<0.9.0') + + cd "$srcdir/$_theapp-py2" + + python2 setup.py config_fc --fcompiler=gnu95 install \ + --prefix=/usr --root="$pkgdir" --optimize=1 + + install -Dm644 LICENSE.txt \ + "$pkgdir/usr/share/licenses/$pkgname/LICENSE" +} + +# vim:set ts=2 sw=2 et: diff --git a/community-testing/python-scipy/python-scipy.changelog b/community-testing/python-scipy/python-scipy.changelog new file mode 100644 index 000000000..76a3e7f35 --- /dev/null +++ b/community-testing/python-scipy/python-scipy.changelog @@ -0,0 +1,49 @@ +2011-07-13 Thomas Dziedzic < gostrc at gmail > + * 0.9.0-2: + rebuild for python3-numpy to python-numpy rename + also, minor PKGBUILD cleanup + +2011-04-24 Ray Rashif <schiv@archlinux.org> + + * 0.9.0-1: + Couldn't release previous update due to lapack/blas issues + See http://mailman.archlinux.org/pipermail/arch-general/2011-April/019677.html + Hopefully symlink trick from AUR/python3-scipy fixes that + +2011-04-05 Ray Rashif <schiv@archlinux.org> + + * 0.9.0-1: + Upstream release + SciPy now supports Python 3 + Package split for python(3), python2 + PKGBUILD cleanup + +2010-07-29 Angel 'angvp' Velasquez <angvp@archlinux.org> + * Updated to: 0.8.0 +2009-08-05 Douglas Soares de Andrade <douglas@archlinux.org> + + * Updated to: 0.7.1 + +2009-02-11 Douglas Soares de Andrade <douglas@archlinux.org> + + * Updating for i686: 0.7 + +2008-12-12 Douglas Soares de Andrade <douglas@archlinux.org> + + * Updating for i686: 0.7.0 beta 1 + +2008-11-07 Douglas Soares de Andrade <douglas@archlinux.org> + + * Updated to svn as scipy 0.6 wont work with python 2.6 + +2008-02-21 Eric Belanger <eric@archlinux.org> + + * Added x86_64 arch tag + * Added license + +2007-10-29 Douglas Soares de Andrade <dsa@aur.archlinux.org> + + * Changed email + * Fixed some problems in the PKGBUILD + * Updated to new release - 0.6.0 + diff --git a/community-testing/systemd/PKGBUILD b/community-testing/systemd/PKGBUILD new file mode 100644 index 000000000..f344d4d74 --- /dev/null +++ b/community-testing/systemd/PKGBUILD @@ -0,0 +1,69 @@ +# $Id: PKGBUILD 51746 2011-07-13 22:59:52Z dreisner $ +# Maintainer: Dave Reisner <dreisner@archlinux.org> + +pkgname=systemd +pkgver=30 +pkgrel=1 +pkgdesc="Session and Startup manager" +arch=('i686' 'x86_64') +url="http://www.freedesktop.org/wiki/Software/systemd" +license=('GPL2') +depends=('dbus-core' 'sysvinit' 'util-linux>=2.19' 'udev>=172') +makedepends=('docbook-xsl' 'libxslt' 'cryptsetup' 'gtk2' 'intltool' 'libnotify') +optdepends=('cryptsetup: required for encrypted block devices' + 'dbus-python: systemd-analyze' + 'gtk2: systemadm' + 'initscripts: legacy support for hostname and vconsole setup' + 'initscripts-systemd: native boot and initialization scripts' + 'libnotify: systemadm' + 'python2-cairo: systemd-analyze' + 'systemd-arch-units: collection of native unit files for Arch daemon/init scripts') +groups=('systemd') +options=('!libtool') +backup=(etc/systemd/system.conf + etc/tmpfiles.d/console.conf + usr/lib/tmpfiles.d/legacy.conf + usr/lib/tmpfiles.d/systemd.conf + usr/lib/tmpfiles.d/x11.conf) +install=systemd.install +source=("http://www.freedesktop.org/software/$pkgname/$pkgname-$pkgver.tar.bz2" + "os-release") +md5sums=('dafd6d2471e2bf80d35525df9801a40f' + '752636def0db3c03f121f8b4f44a63cd') + +build() { + cd "$srcdir/$pkgname-$pkgver" + + ./configure --prefix=/usr \ + --with-rootdir= \ + --sysconfdir=/etc \ + --libexecdir=/usr/lib \ + --localstatedir=/var \ + --disable-audit \ + --disable-tcpwrap + + make + + # fix .so links in manpages + sed -i 's|\.so halt\.8|.so systemd.halt.8|' man/{halt,poweroff}.8 +} + +package() { + cd "$srcdir/$pkgname-$pkgver" + + make DESTDIR="$pkgdir" install + + install -Dm644 "$srcdir/os-release" "$pkgdir/etc/os-release" + printf "d /run/console 755 root root\n" > "$pkgdir/etc/tmpfiles.d/console.conf" + + # fix systemd-analyze for python2 + sed -i '1s/python$/python2/' "$pkgdir/usr/bin/systemd-analyze" + + # rename man pages to avoid conflicts with sysvinit + cd "$pkgdir/usr/share/man/man8" + for manpage in telinit halt reboot poweroff runlevel shutdown; do + mv {,systemd.}"$manpage.8" + done + +} + diff --git a/community-testing/systemd/os-release b/community-testing/systemd/os-release new file mode 100644 index 000000000..5e24a6031 --- /dev/null +++ b/community-testing/systemd/os-release @@ -0,0 +1,5 @@ +NAME="Arch Linux" +ID=arch +PRETTY_NAME="Arch Linux" +ANSI_COLOR="1;36" + diff --git a/community-testing/systemd/systemd.install b/community-testing/systemd/systemd.install new file mode 100644 index 000000000..b4228255d --- /dev/null +++ b/community-testing/systemd/systemd.install @@ -0,0 +1,31 @@ +#!/bin/sh + +checkgroups() { + getent group lock >/dev/null || groupadd -g 54 lock +} + +post_install() { + checkgroups + + [ -f etc/machine-id ] || systemd-machine-id-setup + + echo "systemd has been installed to /bin/systemd. Please ensure you append" + echo "init=/bin/systemd to your kernel command line in your bootloader." +} + +post_upgrade() { + checkgroups + + [ -f etc/machine-id ] || systemd-machine-id-setup + systemctl daemon-reexec >/dev/null || : +} + +pre_remove() { + rm -f /etc/systemd/system/default.target +} + +post_remove() { + getent group lock >/dev/null && groupdel lock +} + +# vim:set ts=2 sw=2 et: diff --git a/community-testing/vhba-module/PKGBUILD b/community-testing/vhba-module/PKGBUILD new file mode 100644 index 000000000..137897a28 --- /dev/null +++ b/community-testing/vhba-module/PKGBUILD @@ -0,0 +1,28 @@ +# $Id: PKGBUILD 51733 2011-07-13 18:23:43Z schiv $ +# Maintainer: Mateusz Herych <heniekk@gmail.com> +# Contributor: Charles Lindsay <charles@chaoslizard.org> + +pkgname=vhba-module +pkgver=20110416 +_kernver='2.6.39-ARCH' +pkgrel=1 +pkgdesc="Kernel module that emulates SCSI devices" +arch=('i686' 'x86_64') +url="http://cdemu.sourceforge.net/" +license=('GPL2') +depends=('kernel26>=2.6.39' 'kernel26<2.6.40') +makedepends=('kernel26-headers>=2.6.39') +install=vhba-module.install +source=(http://downloads.sourceforge.net/cdemu/$pkgname-$pkgver.tar.gz) +md5sums=('2f91dd4ee8648da92d625221d4275b60') + +build() { + cd "$srcdir/$pkgname-$pkgver" + make -j1 KDIR=/usr/src/linux-${_kernver} +} + +package() { + cd "$srcdir/$pkgname-$pkgver" + install -D vhba.ko "$pkgdir/lib/modules/${_kernver}/extra/vhba.ko" + sed -i "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" "$startdir/vhba-module.install" +} diff --git a/community-testing/vhba-module/vhba-kernel2.6.37.patch b/community-testing/vhba-module/vhba-kernel2.6.37.patch new file mode 100644 index 000000000..e2b619c74 --- /dev/null +++ b/community-testing/vhba-module/vhba-kernel2.6.37.patch @@ -0,0 +1,56 @@ +From 9ad7ec7fae387f05249b9f4e6accb3bc3b0b8b0f Mon Sep 17 00:00:00 2001 +From: Alexandre Rostovtsev <tetromino@gmail.com> +Date: Thu, 6 Jan 2011 03:39:26 -0500 +Subject: [PATCH] Make vhba compatible with kernel 2.6.37 SCSI host API + +Due to the SCSI host lock push-down changes introduced in 2.6.37 (see +http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=f281233d3eba15fb225d21ae2e228fd4553d824a +for more details), trying to use current vhba on 2.6.37 leads to oopses +and kernel panics - e.g. see http://bugs.gentoo.org/show_bug.cgi?id=350753 + +Add some #ifdefs to enable compatibility both with 2.6.37 and older API. +Note that if future kernel versions remove the DEF_SCSI_QCMD macro, this +issue will need to be revisited. + +Signed-off-by: Alexandre Rostovtsev <tetromino@gmail.com> +--- + vhba-module/vhba.c | 9 ++++++++- + 1 files changed, 8 insertions(+), 1 deletions(-) + +diff --git a/vhba-module/vhba.c b/vhba-module/vhba.c +index 059f6ce..9d13016 100644 +--- a/vhba-module/vhba.c ++++ b/vhba-module/vhba.c +@@ -27,6 +27,7 @@ + #include <linux/miscdevice.h> + #include <linux/poll.h> + #include <linux/slab.h> ++#include <linux/version.h> + #ifdef CONFIG_COMPAT + #include <linux/compat.h> + #endif +@@ -363,7 +364,7 @@ static void vhba_free_command(struct vhba_command *vcmd) + spin_unlock_irqrestore(&vhost->cmd_lock, flags); + } + +-static int vhba_queuecommand(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *)) ++static int vhba_queuecommand_lck(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *)) + { + struct vhba_device *vdev; + int retval; +@@ -388,6 +389,12 @@ static int vhba_queuecommand(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmn + return retval; + } + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37) ++DEF_SCSI_QCMD(vhba_queuecommand) ++#else ++#define vhba_queuecommand vhba_queuecommand_lck ++#endif ++ + static int vhba_abort(struct scsi_cmnd *cmd) + { + struct vhba_device *vdev; +-- +1.7.3.4 + diff --git a/community-testing/vhba-module/vhba-module.install b/community-testing/vhba-module/vhba-module.install new file mode 100644 index 000000000..edb9e8d2b --- /dev/null +++ b/community-testing/vhba-module/vhba-module.install @@ -0,0 +1,16 @@ +post_install() { + echo ">> Place 'vhba' in MODULES= in /etc/rc.conf to enable vhba on system boot." + echo ">> This module needs to be recompiled for every kernel version upgrade." + KERNEL_VERSION='2.6.39-ARCH' + depmod $KERNEL_VERSION > /dev/null 2>&1 +} + +post_upgrade() { + post_install +} + +post_remove() { + KERNEL_VERSION='2.6.39-ARCH' + depmod $KERNEL_VERSION > /dev/null 2>&1 +} + |