diff options
author | ozgursarier | 2015-11-14 08:02:05 +0200 |
---|---|---|
committer | ozgursarier | 2015-11-14 08:02:05 +0200 |
commit | d1ba65142d9f15ce31143984e507d8b7926e5d68 (patch) | |
tree | b4c3645964d14caae7467abf99ade290fff32be5 | |
download | aur-istanbul.tar.gz |
Initial import
-rw-r--r-- | .SRCINFO | 26 | ||||
-rw-r--r-- | PKGBUILD | 49 | ||||
-rw-r--r-- | istanbul.install | 18 | ||||
-rw-r--r-- | istanbul.patch | 401 |
4 files changed, 494 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..41ca8c3327de --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,26 @@ +pkgbase = istanbul + pkgdesc = Desktop Session Recorder + pkgver = 0.2.2 + pkgrel = 10 + url = https://wiki.gnome.org/Projects/Istanbul + install = istanbul.install + arch = i686 + arch = x86_64 + license = GPL2 + makedepends = intltool + depends = gnome-python-extras + depends = gstreamer0.10-base-plugins + depends = gstreamer0.10-good-plugins + depends = gstreamer0.10-python + depends = python2-gconf + depends = python2-xlib + options = !libtool + source = http://zaheer.merali.org/istanbul-0.2.2.tar.bz2 + source = istanbul.patch + sha256sums = 3baa2462ecf1b13d0d95cd035fe0f0fc0fcc3df8cb04a3b7f237e90e9a40acd5 + sha256sums = 9ed6fc1893e34d073db7408ba94e2660d5383599ef369e01b681c40e7a48ff56 + sha512sums = b7d5b99cb3860414f4139fd1fa887e4d58f99fc5c94f9d24d7a96f03e82ec7338d733e3ab7d8b8db6ae2c00f69aa48a099b957a23e3827c7d6505ab92bbb5c60 + sha512sums = d7e3bd2380e96583b47c46c27a8459aa37b4e6ff164d46cfe216e1ea4490bf3f115b774c2ecf5e10ead96b5ed466735fa39c966d5fe33005a874e45bd4ce1dc0 + +pkgname = istanbul + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..cd9497728ec4 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,49 @@ +# Maintainer : Özgür Sarıer <echo b3pndXJzYXJpZXIxMDExNjAxMTE1QGdtYWlsLmNvbQo= | base64 -d> +# Contributor: Limao Luo <luolimao+AUR@gmail.com> +# Contributor: Sébastien Luttringer <seblu@aur.archlinux.org> +# Contributor: Angel 'angvp' Velasquez <angvp@archlinux.com.ve> + +pkgname=istanbul +pkgver=0.2.2 +pkgrel=10 +pkgdesc="Desktop Session Recorder" +arch=("i686" "x86_64") +url="https://wiki.gnome.org/Projects/Istanbul" +license=("GPL2") +depends=(gnome-python-extras gstreamer0.10-base-plugins gstreamer0.10-good-plugins + gstreamer0.10-python python2-gconf python2-xlib) +makedepends=(intltool) +options=(!libtool) +install="$pkgname.install" +source=("http://zaheer.merali.org/$pkgname-$pkgver.tar.bz2" "$pkgname.patch") +sha256sums=('3baa2462ecf1b13d0d95cd035fe0f0fc0fcc3df8cb04a3b7f237e90e9a40acd5' + '9ed6fc1893e34d073db7408ba94e2660d5383599ef369e01b681c40e7a48ff56') +sha512sums=('b7d5b99cb3860414f4139fd1fa887e4d58f99fc5c94f9d24d7a96f03e82ec7338d733e3ab7d8b8db6ae2c00f69aa48a099b957a23e3827c7d6505ab92bbb5c60' + 'd7e3bd2380e96583b47c46c27a8459aa37b4e6ff164d46cfe216e1ea4490bf3f115b774c2ecf5e10ead96b5ed466735fa39c966d5fe33005a874e45bd4ce1dc0') + +prepare() { + shopt -s nullglob + cd $pkgname-$pkgver/ + sed -i 's:^#!/usr/bin/python$:&2:' bin/istanbul.in + patch -p1 -i ../$pkgname.patch +} + +build() { + cd $pkgname-$pkgver/ + ./configure --prefix=/usr \ + --sysconfdir=/etc \ + --disable-schemas-install \ + --with-gconf-schema-file-dir=/usr/share/gconf/schemas + make +} + +package() { + cd $pkgname-$pkgver/ + # fix crazy python module compiling + cp py-compile common/py-compile-destdir + make DESTDIR="$pkgdir" install + + install -d "$pkgdir"/usr/share/gconf/schemas + gconf-merge-schema "$pkgdir"/usr/share/gconf/schemas/$pkgname.schemas "$pkgdir"/usr/etc/gconf/schemas/*.schemas + rm -f "$pkgdir"/usr/etc/gconf/schemas/*.schemas +} diff --git a/istanbul.install b/istanbul.install new file mode 100644 index 000000000000..2b89eec6e489 --- /dev/null +++ b/istanbul.install @@ -0,0 +1,18 @@ +post_install() { + export GCONF_CONFIG_SOURCE=$(gconftool-2 --get-default-source) + gconftool-2 --makefile-install-rule usr/share/gconf/schemas/istanbul.schemas >/dev/null +} + +pre_upgrade() { + pre_remove +} + +post_upgrade() { + post_install +} + +pre_remove() { + schemas=$(pacman -Ql istanbul | grep 'gconf/schemas/.*schemas$' | awk '{ print $2 }') + export GCONF_CONFIG_SOURCE=$(gconftool-2 --get-default-source) + gconftool-2 --makefile-uninstall-rule ${schemas[@]} >/dev/null +} diff --git a/istanbul.patch b/istanbul.patch new file mode 100644 index 000000000000..23e2c5116946 --- /dev/null +++ b/istanbul.patch @@ -0,0 +1,401 @@ +From: Florian Boucault <florian@boucault.net> +Subject: Patch fixing audio recording +Origin: upstream +Bug: https://bugzilla.gnome.org/show_bug.cgi?id=430151 +Bug-Debian: http://bugs.debian.org/486660 + +Index: istanbul-0.2.2.orig/istanbul/main/screencast.py +=================================================================== +--- istanbul-0.2.2.orig/istanbul/main/screencast.py (révision 131) ++++ istanbul-0.2.2.orig/istanbul/main/screencast.py (copie de travail) +@@ -135,7 +135,7 @@ + m.run() + m.destroy() + self.finished_callback(message) +- elif message.type == gst.MESSAGE_EOS: ++ elif message.type == gst.MESSAGE_EOS or message.type == gst.MESSAGE_CLOCK_LOST: + self._pipeline.set_state(gst.STATE_NULL) + self.on_eos() + +--- istanbul-0.2.2.orig/bin/istanbul.in ++++ istanbul-0.2.2/bin/istanbul.in +@@ -18,15 +18,9 @@ + import os + import sys + +-if not '@PYGTK_DIR@' in sys.path: +- sys.path.insert(0, '@PYGTK_DIR@') +- + import pygtk + pygtk.require('2.0') + +-if not '@PYTHONDIR@' in sys.path: +- sys.path.insert(0, '@PYTHONDIR@') +- + from istanbul.main import main + from istanbul.configure import config + +--- istanbul-0.2.2.orig/istanbul/main/window_select.py ++++ istanbul-0.2.2/istanbul/main/window_select.py +@@ -85,7 +85,7 @@ + return child + + for child in children: +- result = self._get_client_window_check_children(window) ++ result = self._get_client_window_check_children(child) + if result != None: + return result + +Index: istanbul-0.2.2/doc/man/istanbul.1 +=================================================================== +--- istanbul-0.2.2.orig/doc/man/istanbul.1 2007-08-11 14:59:47.000000000 +0200 ++++ istanbul-0.2.2/doc/man/istanbul.1 2007-08-11 15:01:04.000000000 +0200 +@@ -14,8 +14,9 @@ + area: a click on the icon to start recording, another click to stop. + .PP + \fBistanbul\fP preferences can be configured with a right click on the icon. ++You can choose to record full screen, a selected windows or a particular area. + .TP +-It can also stream to an Icecast2 server. ++It can also record audio from GStreamer default input. + .PP + By default it records to ~/desktop-recording.ogg + .SH OPTIONS +@@ -29,55 +30,13 @@ + .B \-\-version + Show version of program. + .TP +-.B \-\-usage +-Display brief usage message ++.B \-\-help\-all ++Print summary of all available options for istanbul. + .TP +-Istanbul accepts also GStreamer options. +-A summary of them is included below. +-.TP +-.B \-\-gst\-version +-Print the GStreamer version +-.TP +-.B \-\-gst\-fatal\-warnings +-Make all warnings fatal +-.TP +-.B \-\-gst\-debug\-help +-Print available debug categories and exit +-.TP +-.B \-\-gst\-debug\-level=LEVEL +-Default debug level from 1 (only error) to 5 (anything) or 0 for no output +-.TP +-.B \-\-gst\-debug=LIST +-Comma-separated list of category_name:level pairs to set specific levels for the individual categories +-.TP +-.B \-\-gst\-debug\-no\-color +-Disable colored debugging output +-.TP +-.B \-\-gst\-debug\-disable +-Disable debugging +-.TP +-.B \-\-gst\-disable\-cpu\-opt +-Disable accelerated CPU instructions +-.TP +-.B \-\-gst\-plugin\-spew +-Enable verbose plugin loading diagnostics +-.TP +-.B \-\-gst\-plugin\-path=PATHS +-path list for loading plugins (separated by ':') +-.TP +-.B \-\-gst\-plugin\-load=PLUGINS +-Comma-separated list of plugins to preload in addition to the list stored in environment variable GST_PLUGIN_PATH +-.TP +-.B \-\-gst\-disable\-segtrap +-Disable trapping of segmentation faults during plugin loading +-.TP +-.B \-\-gst\-scheduler=SCHEDULER +-Scheduler to use (default is 'opt') +-.TP +-.B \-\-gst\-registry=REGISTRY +-Registry to use +-.SH AUTHOR +-Istanbul was written by Zaheer Abbas Merali <zaheerabbas@merali.org>. ++.B \-\-help\-gst ++Print summary of available options for the gstreamer framework. ++.SH AUTHORS ++Istanbul was written by Zaheer Abbas Merali <zaheerabbas@merali.org>. + .PP + This manual page was written by Luca Bruno <luca.br@uno.it>, + for the Debian project (but may be used by others). +--- istanbul-0.2.2.orig/data/istanbul.desktop.in ++++ istanbul-0.2.2/data/istanbul.desktop.in +@@ -1,5 +1,4 @@ + [Desktop Entry] +-Encoding=UTF-8 + _Name=Istanbul Desktop Session Recorder + _GenericName=Desktop Session Recorder + _Comment=Record a video of your desktop session +@@ -7,5 +6,5 @@ + Terminal=false + Type=Application + Icon=istanbul.png +-Categories=GNOME;Application;AudioVideo; ++Categories=GNOME;AudioVideo; + StartupNotify=false +Index: istanbul-0.2.2/istanbul/main/save_window.py +=================================================================== +--- istanbul-0.2.2.orig/istanbul/main/save_window.py 2007-08-11 15:53:00.000000000 +0200 ++++ istanbul-0.2.2/istanbul/main/save_window.py 2007-08-11 16:58:11.000000000 +0200 +@@ -253,11 +253,12 @@ + + if Preferences().has_gnomevfs(): + import gnomevfs ++ XFER_TARGET_DEFAULT_PERMS = 1 << 12 + try: + trysave = gnomevfs.xfer_uri(gnomevfs.URI("file://%s" % self.location), + gnomevfs.URI(self.filechooser.get_uri()), + gnomevfs.XFER_DELETE_ITEMS, +- gnomevfs.XFER_ERROR_MODE_ABORT, ++ gnomevfs.XFER_ERROR_MODE_ABORT | XFER_TARGET_DEFAULT_PERMS, + gnomevfs.XFER_OVERWRITE_MODE_ABORT) + except gnomevfs.FileExistsError: + dialog = gtk.MessageDialog(self, +@@ -276,7 +277,7 @@ + gnomevfs.URI("file://%s" % self.location), + gnomevfs.URI(self.filechooser.get_uri()), + gnomevfs.XFER_DELETE_ITEMS, +- gnomevfs.XFER_ERROR_MODE_ABORT, ++ gnomevfs.XFER_ERROR_MODE_ABORT | XFER_TARGET_DEFAULT_PERMS, + gnomevfs.XFER_OVERWRITE_MODE_REPLACE) + except Exception: + dialog = gtk.MessageDialog(self, +@@ -299,7 +300,10 @@ + import shutil + + try: ++ umask = os.umask(0) ++ empty_umask = os.umask(umask) + shutil.move(self.location, self.filechooser.get_uri()[7:]) ++ os.chmod(self.filechooser.get_uri()[7:], 0777-umask) + except Exception: + dialog = gtk.MessageDialog(self, + gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, +Index: istanbul-0.2.2/istanbul/main/tray_icon.py +=================================================================== +--- istanbul-0.2.2.orig/istanbul/main/tray_icon.py 2009-12-30 11:50:39.000000000 +0100 ++++ istanbul-0.2.2/istanbul/main/tray_icon.py 2009-12-30 11:50:47.000000000 +0100 +@@ -23,7 +23,6 @@ + from istanbul.main.preferences import Preferences + + import gtk +-import egg.trayicon + + import locale, gettext + _ = gettext.gettext +@@ -33,20 +32,13 @@ + state = RecordingState.STOPPED + current_screencast = None + popup_menu = TrayPopupMenu() +- event_box = Screen().event_box ++ tray_image = gtk.StatusIcon() + + def __init__(self): +- gtk.window_set_default_icon_name(gtk.STOCK_MEDIA_RECORD) +- self.tray_image = gtk.Image() +- self.tray_image.set_from_stock(gtk.STOCK_MEDIA_RECORD, gtk.ICON_SIZE_SMALL_TOOLBAR) +- self.event_box.add(self.tray_image) +- self.tooltips = gtk.Tooltips() +- self.tooltips.set_tip(self.event_box, +- _("Left click to start screencast. Right click for menu.")) +- self.tray_container = egg.trayicon.TrayIcon("istanbul") +- self.tray_container.add(self.event_box) +- self.event_box.connect("button-press-event", self._trayicon_clicked) +- self.tray_container.show_all() ++ self.tray_image.set_from_stock(gtk.STOCK_MEDIA_RECORD) ++ self.tray_image.set_tooltip(_("Left click to start screencast. Right click for menu.")) ++ self.tray_image.connect("button-press-event", self._trayicon_clicked) ++ self.tray_image.set_visible(True) + + def _trayicon_clicked(self, widget, event): + """ +@@ -55,21 +47,17 @@ + """ + if event.button == 1: + if self.state == RecordingState.STOPPED: +- self.tray_image.set_from_stock(gtk.STOCK_MEDIA_STOP, +- gtk.ICON_SIZE_SMALL_TOOLBAR) +- self.tooltips.set_tip(self.event_box, +- _("Left click to stop recording screencast.")) ++ self.tray_image.set_from_stock(gtk.STOCK_MEDIA_STOP) ++ self.tray_image.set_tooltip(_("Left click to stop recording screencast.")) + self.state = RecordingState.RECORDING + self.current_screencast = Screencast(self.stop_handler) + self.current_screencast.selector = self.popup_menu.selector + self.current_screencast.start_recording() + + elif self.state == RecordingState.RECORDING: +- self.tray_image.set_from_stock(gtk.STOCK_HARDDISK, +- gtk.ICON_SIZE_SMALL_TOOLBAR) ++ self.tray_image.set_from_stock(gtk.STOCK_HARDDISK) + self.state = RecordingState.SAVING +- self.tooltips.set_tip(self.event_box, +- _("In process of saving to disk.")) ++ self.tray_image.set_tooltip(_("In process of saving to disk.")) + self.current_screencast.stop_recording() + + # only show popup if in idle state +@@ -77,11 +65,8 @@ + self.popup_menu.show() + + def stop_handler(self, event): +- self.tray_image.set_from_stock(gtk.STOCK_MEDIA_RECORD, +- gtk.ICON_SIZE_SMALL_TOOLBAR) ++ self.tray_image.set_from_stock(gtk.STOCK_MEDIA_RECORD) + self.state = RecordingState.STOPPED +- self.tooltips.set_tip(self.event_box, +- _("Left click to start screencast. Right click for menu.")) ++ self.tray_image.set_tooltip(_("Left click to start screencast. Right click for menu.")) + return False + +- +Index: istanbul-0.2.2/istanbul/main/main.py +=================================================================== +--- istanbul-0.2.2.orig/istanbul/main/main.py 2009-12-30 11:51:23.000000000 +0100 ++++ istanbul-0.2.2/istanbul/main/main.py 2009-12-30 11:51:33.000000000 +0100 +@@ -49,8 +49,6 @@ + + import gst + +-import egg.trayicon +- + _ = gettext.gettext + + class Istanbul: + +Index: istanbul-0.2.2/configure +=================================================================== +--- istanbul-0.2.2.orig/configure 2007-08-08 22:54:20.000000000 +0200 ++++ istanbul-0.2.2/configure 2007-08-08 22:54:36.000000000 +0200 +@@ -22509,7 +22509,7 @@ + + try: + +- import egg.trayicon ++ import sys + + sys.exit(0) + except ImportError: +From: Jef Spaleta <jspaleta@gmail.com> +Subject: Try to get the xid on realization of the videowidget +Origin: upstream +Bug: https://bugzilla.gnome.org/show_bug.cgi?id=604938 +Bug-Debian: http://bugs.debian.org/554568 +Add fix from Ubuntu + +Index: istanbul-0.2.2/istanbul/main/save_window.py +=================================================================== +--- istanbul-0.2.2.orig/istanbul/main/save_window.py 2010-07-08 10:38:56.609390459 +0200 ++++ istanbul-0.2.2/istanbul/main/save_window.py 2010-07-08 10:38:53.153107943 +0200 +@@ -35,8 +35,13 @@ + def __init__(self): + gtk.DrawingArea.__init__(self) + self.imagesink = None ++ self._xid = None + self.unset_flags(gtk.DOUBLE_BUFFERED) + ++ def do_realize(self): ++ gtk.DrawingArea.do_realize(self) ++ self._xid = self.window.xid ++ + def do_expose_event(self, event): + if self.imagesink: + self.imagesink.expose() +@@ -45,9 +50,9 @@ + return True + + def set_sink(self, sink): +- assert self.window.xid ++ assert self._xid is not None + self.imagesink = sink +- self.imagesink.set_xwindow_id(self.window.xid) ++ self.imagesink.set_xwindow_id(self._xid) + + class SaveWindow(gtk.Window): + UPDATE_INTERVAL = 500 +From: Jef Spaleta <jspaleta@gmail.com> +Subject: Additional patch to fix preview video widget in save_window.py +Origin: upstream +Bug: https://bugzilla.gnome.org/show_bug.cgi?id=604938 +Bug-Debian: http://bugs.debian.org/554568 + +Index: istanbul-0.2.2/istanbul/main/save_window.py +=================================================================== +--- istanbul-0.2.2.orig/istanbul/main/save_window.py 2010-07-08 10:39:51.433390429 +0200 ++++ istanbul-0.2.2/istanbul/main/save_window.py 2010-07-08 10:39:49.184894943 +0200 +@@ -143,8 +143,11 @@ + yoptions=0) + table.set_row_spacing(0,6) + table.set_row_spacing(1,6) ++ def init_videowidget( widget): ++ widget._xid = widget.window.xid ++ self.player.pause() + self.videowidget.connect_after('realize', +- lambda *x: self.player.pause() ) ++ init_videowidget ) + self.videowidget.set_size_request(width, height) + + # create save, edit, cancel buttons +Index: istanbul-0.2.2/istanbul/main/save_window.py +=================================================================== +--- istanbul-0.2.2.orig/istanbul/main/save_window.py 2010-08-17 11:45:43.178263468 +0200 ++++ istanbul-0.2.2/istanbul/main/save_window.py 2010-08-17 11:46:54.030511524 +0200 +@@ -265,7 +265,7 @@ + try: + trysave = gnomevfs.xfer_uri(gnomevfs.URI("file://%s" % self.location), + gnomevfs.URI(self.filechooser.get_uri()), +- gnomevfs.XFER_DELETE_ITEMS, ++ gnomevfs.XFER_REMOVESOURCE, + gnomevfs.XFER_ERROR_MODE_ABORT | XFER_TARGET_DEFAULT_PERMS, + gnomevfs.XFER_OVERWRITE_MODE_ABORT) + except gnomevfs.FileExistsError: +@@ -281,10 +281,12 @@ + dialog.hide() + if res == gtk.RESPONSE_YES: + try: ++ if os.path.isdir(self.filechooser.get_uri()[7:]): ++ raise Exception() + trysave = gnomevfs.xfer_uri( + gnomevfs.URI("file://%s" % self.location), + gnomevfs.URI(self.filechooser.get_uri()), +- gnomevfs.XFER_DELETE_ITEMS, ++ gnomevfs.XFER_REMOVESOURCE, + gnomevfs.XFER_ERROR_MODE_ABORT | XFER_TARGET_DEFAULT_PERMS, + gnomevfs.XFER_OVERWRITE_MODE_REPLACE) + except Exception: +Index: istanbul-0.2.2/istanbul/main/screencast.py +=================================================================== +--- istanbul-0.2.2.orig/istanbul/main/screencast.py 2010-08-17 11:38:02.898762661 +0200 ++++ istanbul-0.2.2/istanbul/main/screencast.py 2010-08-17 11:38:51.154511463 +0200 +@@ -95,7 +95,7 @@ + if Preferences().has_gconf(): + asource = 'gconfaudiosrc name=audiosource' + else: +- asource = 'alsasrc name=audiosource' ++ asource = 'autoaudiosrc name=audiosource' + acappipeline = '%s ! audioconvert ! vorbisenc' % asource + + vencode_pipeline = 'video/x-raw-yuv,width=%d,height=%d,framerate=%s '\ +--- a/istanbul/main/save_window.py 2007-02-23 02:01:12.000000000 -0900 ++++ b/istanbul/main/save_window.py 2009-11-25 21:28:31.000000000 -0900 +@@ -289,6 +289,15 @@ + dialog.hide() + else: + save_succesful = True ++ except Exception: ++ dialog = gtk.MessageDialog(self, ++ gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, ++ gtk.MESSAGE_QUESTION, ++ gtk.BUTTONS_OK, ++ _("There was an unknown error writing to \"%s\". Please try a different file or location.") % ( ++ self.filechooser.get_uri())) ++ dialog.run() ++ dialog.hide() + else: + save_succesful = True + else: |