summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkwm <kwm@df743ca5-7f9a-e211-a948-0013205c9059>2010-06-07 16:51:00 +0800
committerkwm <kwm@df743ca5-7f9a-e211-a948-0013205c9059>2010-06-07 16:51:00 +0800
commite4b2558926ba2e8d70a4d1a0cf2d6d720fa73fff (patch)
treeb9170df858c08dab2e373902af9722983bd3beb2
parentfae469be82c10d52aa10340ea870960e95412d7a (diff)
downloadmarcuscom-ports-e4b2558926ba2e8d70a4d1a0cf2d6d720fa73fff.tar
marcuscom-ports-e4b2558926ba2e8d70a4d1a0cf2d6d720fa73fff.tar.gz
marcuscom-ports-e4b2558926ba2e8d70a4d1a0cf2d6d720fa73fff.tar.bz2
marcuscom-ports-e4b2558926ba2e8d70a4d1a0cf2d6d720fa73fff.tar.lz
marcuscom-ports-e4b2558926ba2e8d70a4d1a0cf2d6d720fa73fff.tar.xz
marcuscom-ports-e4b2558926ba2e8d70a4d1a0cf2d6d720fa73fff.tar.zst
marcuscom-ports-e4b2558926ba2e8d70a4d1a0cf2d6d720fa73fff.zip
Add py-gi. Python GObject-Introspection bindings.
git-svn-id: svn://creme-brulee.marcuscom.com/ports/trunk@14204 df743ca5-7f9a-e211-a948-0013205c9059
-rw-r--r--devel/py-gi/Makefile46
-rw-r--r--devel/py-gi/distinfo3
-rw-r--r--devel/py-gi/files/patch-install.sh958
-rw-r--r--devel/py-gi/pkg-descr3
-rw-r--r--devel/py-gi/pkg-plist37
5 files changed, 1047 insertions, 0 deletions
diff --git a/devel/py-gi/Makefile b/devel/py-gi/Makefile
new file mode 100644
index 000000000..96e106540
--- /dev/null
+++ b/devel/py-gi/Makefile
@@ -0,0 +1,46 @@
+# New ports collection makefile for: py-gi
+# Date Created: 7 Juni 2010
+# Whom: Koop Mast <kwm@FreeBSD.org>
+#
+# $FreeBSD$
+# $MCom$
+#
+
+PORTNAME= gi
+PORTVERSION= 0.6.0
+CATEGORIES= devel
+MASTER_SITES= GNOME
+MASTER_SITE_SUBDIR= sources/pygi/${PORTVERSION:C/^([0-9]+\.[0-9]+).*/\1/}
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+DISTNAME= pygi-${PORTVERSION}
+DIST_SUBDIR= gnome2
+
+MAINTAINER= gnome@FreeBSD.org
+COMMENT= Python bindings based on GObject-Introspection
+
+BUILD_DEPENDS= g-ir-scanner:${PORTSDIR}/devel/gobject-introspection \
+ ${LOCALBASE}/libdata/pkgconfig/pycairo.pc:${PORTSDIR}/graphics/py-cairo \
+ ${LOCALBASE}/libdata/pkgconfig/pygobject-2.0.pc:${PORTSDIR}/devel/py-gobject
+LIB_DEPENDS= ffi.5:${PORTSDIR}/devel/libffi
+RUN_DEPENDS= g-ir-scanner:${PORTSDIR}/devel/gobject-introspection \
+ ${LOCALBASE}/libdata/pkgconfig/pycairo.pc:${PORTSDIR}/graphics/py-cairo \
+ ${LOCALBASE}/libdata/pkgconfig/pygobject-2.0.pc:${PORTSDIR}/devel/py-gobject
+
+USE_BZIP2= yes
+#USE_GETTEXT= yes
+USE_GMAKE= yes
+USE_GNOME= gnomehack gnomehier intlhack gtk20
+GNU_CONFIGURE= yes
+USE_PYTHON= 2.5+
+CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include" \
+ LDFLAGS="-L${LOCALBASE}/lib"
+
+.include <bsd.port.pre.mk>
+
+post-patch:
+ ${CHMOD} +x ${WRKSRC}/install-sh
+
+#pre-install:
+# ${MKDIR} ${PYTHON_SITELIBDIR}/gtk-2.0/gi/repository
+
+.include <bsd.port.post.mk>
diff --git a/devel/py-gi/distinfo b/devel/py-gi/distinfo
new file mode 100644
index 000000000..aab4fa979
--- /dev/null
+++ b/devel/py-gi/distinfo
@@ -0,0 +1,3 @@
+MD5 (gnome2/pygi-0.6.0.tar.bz2) = f7937aff720cde20ab954db8ea1faa97
+SHA256 (gnome2/pygi-0.6.0.tar.bz2) = 69ff859dba45d6c377ae66180fe4ac3f3c4dcfa7aa9bf343c1772cf917c918e1
+SIZE (gnome2/pygi-0.6.0.tar.bz2) = 272001
diff --git a/devel/py-gi/files/patch-install.sh b/devel/py-gi/files/patch-install.sh
new file mode 100644
index 000000000..a276858b5
--- /dev/null
+++ b/devel/py-gi/files/patch-install.sh
@@ -0,0 +1,958 @@
+--- install-sh.orig 2010-05-25 17:46:00.000000000 +0200
++++ install-sh 2010-06-07 10:27:18.000000000 +0200
+@@ -1,8 +1,7 @@
+ #!/bin/sh
+ # install - install a program, script, or datafile
+
+-scriptversion=2009-04-28.21;
+-# UTC
++scriptversion=2009-04-28.21; # UTC
+
+ # This originates from X11R5 (mit/util/scripts/install.sh), which was
+ # later released in X11R6 (xc/config/util/install.sh) with the
+@@ -43,484 +42,479 @@
+ # from scratch.
+
+ nl='
+- '
+- IFS=" "" $nl"
++'
++IFS=" "" $nl"
+
+ # set DOITPROG to echo to test this script
+
+-# Don't use :
+- - since 4.3BSD and earlier shells don't like it.
+- doit=${DOITPROG-}
+- if test -z "$doit"; then
+- doit_exec=exec
+- else
+- doit_exec=$doit
+- fi
++# Don't use :- since 4.3BSD and earlier shells don't like it.
++doit=${DOITPROG-}
++if test -z "$doit"; then
++ doit_exec=exec
++else
++ doit_exec=$doit
++fi
+
+ # Put in absolute file names if you don't have them in your path;
+ # or use environment vars.
+
+- chgrpprog=$ {CHGRPPROG-chgrp}
+- chmodprog=$ {CHMODPROG-chmod}
+- chownprog=$ {CHOWNPROG-chown}
+- cmpprog=$ {CMPPROG-cmp}
+- cpprog=$ {CPPROG-cp}
+- mkdirprog=$ {MKDIRPROG-mkdir}
+- mvprog=$ {MVPROG-mv}
+- rmprog=$ {RMPROG-rm}
+- stripprog=$ {STRIPPROG-strip}
+-
+- posix_glob='?'
+- initialize_posix_glob='
+- test "$posix_glob" != "?" || {
+- if (set -f) 2>/dev/null; then
+- posix_glob=
+- else
+- posix_glob=:
+- fi
+- }
+- '
++chgrpprog=${CHGRPPROG-chgrp}
++chmodprog=${CHMODPROG-chmod}
++chownprog=${CHOWNPROG-chown}
++cmpprog=${CMPPROG-cmp}
++cpprog=${CPPROG-cp}
++mkdirprog=${MKDIRPROG-mkdir}
++mvprog=${MVPROG-mv}
++rmprog=${RMPROG-rm}
++stripprog=${STRIPPROG-strip}
++
++posix_glob='?'
++initialize_posix_glob='
++ test "$posix_glob" != "?" || {
++ if (set -f) 2>/dev/null; then
++ posix_glob=
++ else
++ posix_glob=:
++ fi
++ }
++'
+
+- posix_mkdir=
++posix_mkdir=
+
+ # Desired mode of installed file.
+- mode=0755
++mode=0755
+
+- chgrpcmd=
+- chmodcmd=$chmodprog
+- chowncmd=
+- mvcmd=$mvprog
+- rmcmd="$rmprog -f"
+- stripcmd=
+-
+- src=
+- dst=
+- dir_arg=
+- dst_arg=
++chgrpcmd=
++chmodcmd=$chmodprog
++chowncmd=
++mvcmd=$mvprog
++rmcmd="$rmprog -f"
++stripcmd=
++
++src=
++dst=
++dir_arg=
++dst_arg=
+
+- copy_on_change=false
+- no_target_directory=
++copy_on_change=false
++no_target_directory=
+
+- usage="\
++usage="\
+ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+- or: $0 [OPTION]... SRCFILES... DIRECTORY
+- or: $0 [OPTION]... -t DIRECTORY SRCFILES...
+- or: $0 [OPTION]... -d DIRECTORIES...
+-
+- In the 1st form, copy SRCFILE to DSTFILE.
+- In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
+- In the 4th, create DIRECTORIES.
+-
+- Options:
+- --help display this help and exit.
+- --version display version info and exit.
+-
+- -c (ignored)
+- -C install only if different (preserve the last data modification time)
+- -d create directories instead of installing files.
+- -g GROUP $chgrpprog installed files to GROUP.
+- -m MODE $chmodprog installed files to MODE.
+- -o USER $chownprog installed files to USER.
+- -s $stripprog installed files.
+- -t DIRECTORY install into DIRECTORY.
+- -T report an error if DSTFILE is a directory.
+-
+- Environment variables override the default commands:
+- CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
+- RMPROG STRIPPROG
+- "
+-
+- while test $# -ne 0; do
+- case $1 in
+- -c) ;;
+-
+- -C) copy_on_change=true;;
+-
+- -d) dir_arg=true;;
+-
+- -g) chgrpcmd="$chgrpprog $2"
+- shift;;
+-
+- --help) echo "$usage"; exit $?;;
+-
+- -m) mode=$2
+- case $mode in
+- *' '* | *' '* | *'
+- '* | *'*'* | *'?'* | *'['*)
+- echo "$0: invalid mode: $mode" >&2
+- exit 1;;
+- esac
+- shift;;
+-
+- -o) chowncmd="$chownprog $2"
+- shift;;
+-
+- -s) stripcmd=$stripprog;;
+-
+- -t) dst_arg=$2
+- shift;;
+-
+- -T) no_target_directory=true;;
+-
+- --version) echo "$0 $scriptversion"; exit $?;;
+-
+- --) shift
+- break;;
+-
+- -*) echo "$0: invalid option: $1" >&2
+- exit 1;;
+-
+- *) break;;
+- esac
+- shift
+- done
+-
+- if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
+-# When -d is used, all remaining arguments are directories to create.
+-# When -t is used, the destination is already specified.
+-# Otherwise, the last argument is the destination. Remove it from $@.
+- for arg
+- do
+- if test -n "$dst_arg"; then
+-# $@ is not empty: it contains at least $arg.
+- set fnord "$@" "$dst_arg"
+- shift # fnord
+- fi
+- shift # arg
+- dst_arg=$arg
+- done
+- fi
+-
+- if test $# -eq 0; then
+- if test -z "$dir_arg"; then
+- echo "$0: no input file specified." >&2
+- exit 1
+- fi
+-# It's OK to call `install-sh -d' without argument.
+-# This can happen when creating conditional directories.
+- exit 0
+- fi
+-
+- if test -z "$dir_arg"; then
+- trap '(exit $?); exit' 1 2 13 15
+-
+-# Set umask so as not to create temps with too-generous modes.
+-# However, 'strip' requires both read and write access to temps.
+- case $mode in
+-# Optimize common cases.
+- *644) cp_umask=133;;
+- *755) cp_umask=22;;
+-
+- *[0-7])
+- if test -z "$stripcmd"; then
+- u_plus_rw=
+- else
+- u_plus_rw='% 200'
+- fi
+- cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
+- *)
+- if test -z "$stripcmd"; then
+- u_plus_rw=
+- else
+- u_plus_rw=,u+rw
+- fi
+- cp_umask=$mode$u_plus_rw;;
+- esac
+- fi
+-
+- for src
+- do
+-# Protect names starting with `-'.
+- case $src in
+- -*) src=./$src;;
+- esac
+-
+- if test -n "$dir_arg"; then
+- dst=$src
+- dstdir=$dst
+- test -d "$dstdir"
+- dstdir_status=$?
+- else
+-
+-# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
+-# might cause directories to be created, which would be especially bad
+-# if $src (and thus $dsttmp) contains '*'.
+- if test ! -f "$src" && test ! -d "$src"; then
+- echo "$0: $src does not exist." >&2
+- exit 1
+- fi
+-
+- if test -z "$dst_arg"; then
+- echo "$0: no destination specified." >&2
+- exit 1
+- fi
+-
+- dst=$dst_arg
+-# Protect names starting with `-'.
+- case $dst in
+- -*) dst=./$dst;;
+- esac
+-
+-# If destination is a directory, append the input filename; won't work
+-# if double slashes aren't ignored.
+- if test -d "$dst"; then
+- if test -n "$no_target_directory"; then
+- echo "$0: $dst_arg: Is a directory" >&2
+- exit 1
+- fi
+- dstdir=$dst
+- dst=$dstdir/`basename "$src"`
+- dstdir_status=0
+- else
+-# Prefer dirname, but fall back on a substitute if dirname fails.
+- dstdir=`
+- (dirname "$dst") 2>/dev/null ||
+- expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+- X"$dst" : 'X\(//\)[^/]' \| \
+- X"$dst" : 'X\(//\)$' \| \
+- X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
+- echo X"$dst" |
+- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+- s//\1/
+- q
+- }
+- /^X\(\/\/\)[^/].*/{
+- s//\1/
+- q
+- }
+- /^X\(\/\/\)$/{
+- s//\1/
+- q
+- }
+- /^X\(\/\).*/{
+- s//\1/
+- q
+- }
+- s/.*/./; q'
+- `
+-
+- test -d "$dstdir"
+- dstdir_status=$?
+- fi
+- fi
+-
+- obsolete_mkdir_used=false
+-
+- if test $dstdir_status != 0; then
+- case $posix_mkdir in
+- '')
+-# Create intermediate dirs using mode 755 as modified by the umask.
+-# This is like FreeBSD 'install' as of 1997-10-28.
+- umask=`umask`
+- case $stripcmd.$umask in
+-# Optimize common cases.
+- *[2367][2367]) mkdir_umask=$umask;;
+- .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+-
+- *[0-7])
+- mkdir_umask=`expr $umask + 22 \
+- - $umask % 100 % 40 + $umask % 20 \
+- - $umask % 10 % 4 + $umask % 2
+- `;;
+- *) mkdir_umask=$umask,go-w;;
+- esac
+-
+-# With -d, create the new directory with the user-specified mode.
+-# Otherwise, rely on $mkdir_umask.
+- if test -n "$dir_arg"; then
+- mkdir_mode=-m$mode
+- else
+- mkdir_mode=
+- fi
+-
+- posix_mkdir=false
+- case $umask in
+- *[123567][0-7][0-7])
+-# POSIX mkdir -p sets u+wx bits regardless of umask, which
+-# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+- ;;
+- *)
+- tmpdir=$ {TMPDIR-/tmp}/ins$RANDOM-$$
+- trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+-
+- if (umask $mkdir_umask &&
+- exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+- then
+- if test -z "$dir_arg" || {
+-# Check for POSIX incompatibilities with -m.
+-# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+-# other-writeable bit of parent directory when it shouldn't.
+-# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+- ls_ld_tmpdir=`ls -ld "$tmpdir"`
+- case $ls_ld_tmpdir in
+- d????-?r-*) different_mode=700;;
+- d????-?--*) different_mode=755;;
+- *) false;;
+- esac &&
+- $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+- ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+- test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+- }
+- }
+-then posix_mkdir=:
++ or: $0 [OPTION]... SRCFILES... DIRECTORY
++ or: $0 [OPTION]... -t DIRECTORY SRCFILES...
++ or: $0 [OPTION]... -d DIRECTORIES...
++
++In the 1st form, copy SRCFILE to DSTFILE.
++In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
++In the 4th, create DIRECTORIES.
++
++Options:
++ --help display this help and exit.
++ --version display version info and exit.
++
++ -c (ignored)
++ -C install only if different (preserve the last data modification time)
++ -d create directories instead of installing files.
++ -g GROUP $chgrpprog installed files to GROUP.
++ -m MODE $chmodprog installed files to MODE.
++ -o USER $chownprog installed files to USER.
++ -s $stripprog installed files.
++ -t DIRECTORY install into DIRECTORY.
++ -T report an error if DSTFILE is a directory.
++
++Environment variables override the default commands:
++ CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
++ RMPROG STRIPPROG
++"
++
++while test $# -ne 0; do
++ case $1 in
++ -c) ;;
++
++ -C) copy_on_change=true;;
++
++ -d) dir_arg=true;;
++
++ -g) chgrpcmd="$chgrpprog $2"
++ shift;;
++
++ --help) echo "$usage"; exit $?;;
++
++ -m) mode=$2
++ case $mode in
++ *' '* | *' '* | *'
++'* | *'*'* | *'?'* | *'['*)
++ echo "$0: invalid mode: $mode" >&2
++ exit 1;;
++ esac
++ shift;;
++
++ -o) chowncmd="$chownprog $2"
++ shift;;
++
++ -s) stripcmd=$stripprog;;
++
++ -t) dst_arg=$2
++ shift;;
++
++ -T) no_target_directory=true;;
++
++ --version) echo "$0 $scriptversion"; exit $?;;
++
++ --) shift
++ break;;
++
++ -*) echo "$0: invalid option: $1" >&2
++ exit 1;;
++
++ *) break;;
++ esac
++ shift
++done
++
++if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
++ # When -d is used, all remaining arguments are directories to create.
++ # When -t is used, the destination is already specified.
++ # Otherwise, the last argument is the destination. Remove it from $@.
++ for arg
++ do
++ if test -n "$dst_arg"; then
++ # $@ is not empty: it contains at least $arg.
++ set fnord "$@" "$dst_arg"
++ shift # fnord
++ fi
++ shift # arg
++ dst_arg=$arg
++ done
++fi
++
++if test $# -eq 0; then
++ if test -z "$dir_arg"; then
++ echo "$0: no input file specified." >&2
++ exit 1
++ fi
++ # It's OK to call `install-sh -d' without argument.
++ # This can happen when creating conditional directories.
++ exit 0
+ fi
+-rmdir "$tmpdir/d" "$tmpdir"
+- else
+-# Remove any dirs left behind by ancient mkdir implementations.
+- rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+- fi
+- trap '' 0;;
+- esac;;
+- esac
+-
+- if
+- $posix_mkdir && (
+- umask $mkdir_umask &&
+- $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+- )
+-then :
+- else
+-
+-# The umask is ridiculous, or mkdir does not conform to POSIX,
+-# or it failed possibly due to a race condition. Create the
+-# directory the slow way, step by step, checking for races as we go.
+-
+- case $dstdir in
+- /*) prefix='/';;
+- -*) prefix='./';;
+- *) prefix='';;
+- esac
+-
+- eval "$initialize_posix_glob"
+-
+- oIFS=$IFS
+- IFS=/
+- $posix_glob set -f
+- set fnord $dstdir
+- shift
+- $posix_glob set +f
+- IFS=$oIFS
+-
+- prefixes=
+-
+- for d
+- do
+- test -z "$d" && continue
+-
+- prefix=$prefix$d
+- if test -d "$prefix"; then
+- prefixes=
+- else
+- if $posix_mkdir; then
+- (umask=$mkdir_umask &&
+- $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+- # Don't fail if two instances are running concurrently.
+- test -d "$prefix" || exit 1
+- else
+- case $prefix in
+- *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+- *) qprefix=$prefix;;
+- esac
+- prefixes="$prefixes '$qprefix'"
+- fi
+- fi
+- prefix=$prefix/
+- done
+-
+- if test -n "$prefixes"; then
+- # Don't fail if two instances are running concurrently.
+- (umask $mkdir_umask &&
+- eval "\$doit_exec \$mkdirprog $prefixes") ||
+- test -d "$dstdir" || exit 1
+- obsolete_mkdir_used=true
+- fi
+- fi
+- fi
+-
+- if test -n "$dir_arg"; then
+- { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
+- { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
+- {
+- test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
+- test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst";
+- } || exit 1
+- else
+-
+- # Make a couple of temp file names in the proper directory.
+- dsttmp=$dstdir/_inst.$$_
+- rmtmp=$dstdir/_rm.$$_
+-
+- # Trap to clean up those temp files at exit.
+- trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
+-
+- # Copy the file name to the temp name.
+- (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
+-
+- # and set any options; do chmod last to preserve setuid bits.
+- #
+- # If any of these fail, we abort the whole thing. If we want to
+- # ignore errors from any of these, just make sure not to ignore
+- # errors from the above "$doit $cpprog $src $dsttmp" command.
+- #
+- { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
+- { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
+- { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
+- { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
+-
+- # If -C, don't bother to copy if it wouldn't change the file.
+- if $copy_on_change &&
+- old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
+- new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
+-
+- eval "$initialize_posix_glob" &&
+- $posix_glob set -f &&
+- set X $old && old=:$2:$4:$5:$6 &&
+- set X $new && new=:$2:$4:$5:$6 &&
+- $posix_glob set +f &&
+-
+- test "$old" = "$new" &&
+- $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
+- then
+- rm -f "$dsttmp"
+- else
+- # Rename the file to the real destination.
+- $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
+-
+- # The rename failed, perhaps because mv can't rename something else
+- # to itself, or perhaps because mv is so ancient that it does not
+- # support -f.
+- {
+- # Now remove or move aside any old file at destination location.
+- # We try this two ways since rm can't unlink itself on some
+- # systems and the destination file might be busy for other
+- # reasons. In this case, the final cleanup might fail but the new
+- # file should still install successfully.
+- {
+- test ! -f "$dst" ||
+- $doit $rmcmd -f "$dst" 2>/dev/null ||
+- {
+- $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+- { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+- } ||
+- {
+- echo "$0: cannot unlink or rename $dst" >&2
+- (exit 1); exit 1
+- }
+- } &&
+-
+- # Now rename the file to the real destination.
+- $doit $mvcmd "$dsttmp" "$dst"
+- }
+- fi || exit 1
+-
+- trap '' 0
+- fi
+- done
+-
+- # Local variables:
+- # eval: (add-hook 'write-file-hooks 'time-stamp)
+- # time-stamp-start: "scriptversion="
+- # time-stamp-format: "%:y-%02m-%02d.%02H"
+- # time-stamp-time-zone: "UTC"
+- # time-stamp-end: "; # UTC"
+- # End:
++
++if test -z "$dir_arg"; then
++ trap '(exit $?); exit' 1 2 13 15
++
++ # Set umask so as not to create temps with too-generous modes.
++ # However, 'strip' requires both read and write access to temps.
++ case $mode in
++ # Optimize common cases.
++ *644) cp_umask=133;;
++ *755) cp_umask=22;;
++
++ *[0-7])
++ if test -z "$stripcmd"; then
++ u_plus_rw=
++ else
++ u_plus_rw='% 200'
++ fi
++ cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
++ *)
++ if test -z "$stripcmd"; then
++ u_plus_rw=
++ else
++ u_plus_rw=,u+rw
++ fi
++ cp_umask=$mode$u_plus_rw;;
++ esac
++fi
++
++for src
++do
++ # Protect names starting with `-'.
++ case $src in
++ -*) src=./$src;;
++ esac
++
++ if test -n "$dir_arg"; then
++ dst=$src
++ dstdir=$dst
++ test -d "$dstdir"
++ dstdir_status=$?
++ else
++
++ # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
++ # might cause directories to be created, which would be especially bad
++ # if $src (and thus $dsttmp) contains '*'.
++ if test ! -f "$src" && test ! -d "$src"; then
++ echo "$0: $src does not exist." >&2
++ exit 1
++ fi
++
++ if test -z "$dst_arg"; then
++ echo "$0: no destination specified." >&2
++ exit 1
++ fi
++
++ dst=$dst_arg
++ # Protect names starting with `-'.
++ case $dst in
++ -*) dst=./$dst;;
++ esac
++
++ # If destination is a directory, append the input filename; won't work
++ # if double slashes aren't ignored.
++ if test -d "$dst"; then
++ if test -n "$no_target_directory"; then
++ echo "$0: $dst_arg: Is a directory" >&2
++ exit 1
++ fi
++ dstdir=$dst
++ dst=$dstdir/`basename "$src"`
++ dstdir_status=0
++ else
++ # Prefer dirname, but fall back on a substitute if dirname fails.
++ dstdir=`
++ (dirname "$dst") 2>/dev/null ||
++ expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
++ X"$dst" : 'X\(//\)[^/]' \| \
++ X"$dst" : 'X\(//\)$' \| \
++ X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
++ echo X"$dst" |
++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
++ s//\1/
++ q
++ }
++ /^X\(\/\/\)[^/].*/{
++ s//\1/
++ q
++ }
++ /^X\(\/\/\)$/{
++ s//\1/
++ q
++ }
++ /^X\(\/\).*/{
++ s//\1/
++ q
++ }
++ s/.*/./; q'
++ `
++
++ test -d "$dstdir"
++ dstdir_status=$?
++ fi
++ fi
++
++ obsolete_mkdir_used=false
++
++ if test $dstdir_status != 0; then
++ case $posix_mkdir in
++ '')
++ # Create intermediate dirs using mode 755 as modified by the umask.
++ # This is like FreeBSD 'install' as of 1997-10-28.
++ umask=`umask`
++ case $stripcmd.$umask in
++ # Optimize common cases.
++ *[2367][2367]) mkdir_umask=$umask;;
++ .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
++
++ *[0-7])
++ mkdir_umask=`expr $umask + 22 \
++ - $umask % 100 % 40 + $umask % 20 \
++ - $umask % 10 % 4 + $umask % 2
++ `;;
++ *) mkdir_umask=$umask,go-w;;
++ esac
++
++ # With -d, create the new directory with the user-specified mode.
++ # Otherwise, rely on $mkdir_umask.
++ if test -n "$dir_arg"; then
++ mkdir_mode=-m$mode
++ else
++ mkdir_mode=
++ fi
++
++ posix_mkdir=false
++ case $umask in
++ *[123567][0-7][0-7])
++ # POSIX mkdir -p sets u+wx bits regardless of umask, which
++ # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
++ ;;
++ *)
++ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
++ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
++
++ if (umask $mkdir_umask &&
++ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
++ then
++ if test -z "$dir_arg" || {
++ # Check for POSIX incompatibilities with -m.
++ # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
++ # other-writeable bit of parent directory when it shouldn't.
++ # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
++ ls_ld_tmpdir=`ls -ld "$tmpdir"`
++ case $ls_ld_tmpdir in
++ d????-?r-*) different_mode=700;;
++ d????-?--*) different_mode=755;;
++ *) false;;
++ esac &&
++ $mkdirprog -m$different_mode -p -- "$tmpdir" && {
++ ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
++ test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
++ }
++ }
++ then posix_mkdir=:
++ fi
++ rmdir "$tmpdir/d" "$tmpdir"
++ else
++ # Remove any dirs left behind by ancient mkdir implementations.
++ rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
++ fi
++ trap '' 0;;
++ esac;;
++ esac
++
++ if
++ $posix_mkdir && (
++ umask $mkdir_umask &&
++ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
++ )
++ then :
++ else
++
++ # The umask is ridiculous, or mkdir does not conform to POSIX,
++ # or it failed possibly due to a race condition. Create the
++ # directory the slow way, step by step, checking for races as we go.
++
++ case $dstdir in
++ /*) prefix='/';;
++ -*) prefix='./';;
++ *) prefix='';;
++ esac
++
++ eval "$initialize_posix_glob"
++
++ oIFS=$IFS
++ IFS=/
++ $posix_glob set -f
++ set fnord $dstdir
++ shift
++ $posix_glob set +f
++ IFS=$oIFS
++
++ prefixes=
++
++ for d
++ do
++ test -z "$d" && continue
++
++ prefix=$prefix$d
++ if test -d "$prefix"; then
++ prefixes=
++ else
++ if $posix_mkdir; then
++ (umask=$mkdir_umask &&
++ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
++ # Don't fail if two instances are running concurrently.
++ test -d "$prefix" || exit 1
++ else
++ case $prefix in
++ *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
++ *) qprefix=$prefix;;
++ esac
++ prefixes="$prefixes '$qprefix'"
++ fi
++ fi
++ prefix=$prefix/
++ done
++
++ if test -n "$prefixes"; then
++ # Don't fail if two instances are running concurrently.
++ (umask $mkdir_umask &&
++ eval "\$doit_exec \$mkdirprog $prefixes") ||
++ test -d "$dstdir" || exit 1
++ obsolete_mkdir_used=true
++ fi
++ fi
++ fi
++
++ if test -n "$dir_arg"; then
++ { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
++ { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
++ { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
++ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
++ else
++
++ # Make a couple of temp file names in the proper directory.
++ dsttmp=$dstdir/_inst.$$_
++ rmtmp=$dstdir/_rm.$$_
++
++ # Trap to clean up those temp files at exit.
++ trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
++
++ # Copy the file name to the temp name.
++ (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
++
++ # and set any options; do chmod last to preserve setuid bits.
++ #
++ # If any of these fail, we abort the whole thing. If we want to
++ # ignore errors from any of these, just make sure not to ignore
++ # errors from the above "$doit $cpprog $src $dsttmp" command.
++ #
++ { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
++ { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
++ { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
++ { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
++
++ # If -C, don't bother to copy if it wouldn't change the file.
++ if $copy_on_change &&
++ old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
++ new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
++
++ eval "$initialize_posix_glob" &&
++ $posix_glob set -f &&
++ set X $old && old=:$2:$4:$5:$6 &&
++ set X $new && new=:$2:$4:$5:$6 &&
++ $posix_glob set +f &&
++
++ test "$old" = "$new" &&
++ $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
++ then
++ rm -f "$dsttmp"
++ else
++ # Rename the file to the real destination.
++ $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
++
++ # The rename failed, perhaps because mv can't rename something else
++ # to itself, or perhaps because mv is so ancient that it does not
++ # support -f.
++ {
++ # Now remove or move aside any old file at destination location.
++ # We try this two ways since rm can't unlink itself on some
++ # systems and the destination file might be busy for other
++ # reasons. In this case, the final cleanup might fail but the new
++ # file should still install successfully.
++ {
++ test ! -f "$dst" ||
++ $doit $rmcmd -f "$dst" 2>/dev/null ||
++ { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
++ { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
++ } ||
++ { echo "$0: cannot unlink or rename $dst" >&2
++ (exit 1); exit 1
++ }
++ } &&
++
++ # Now rename the file to the real destination.
++ $doit $mvcmd "$dsttmp" "$dst"
++ }
++ fi || exit 1
++
++ trap '' 0
++ fi
++done
++
++# Local variables:
++# eval: (add-hook 'write-file-hooks 'time-stamp)
++# time-stamp-start: "scriptversion="
++# time-stamp-format: "%:y-%02m-%02d.%02H"
++# time-stamp-time-zone: "UTC"
++# time-stamp-end: "; # UTC"
++# End:
diff --git a/devel/py-gi/pkg-descr b/devel/py-gi/pkg-descr
new file mode 100644
index 000000000..d99053d80
--- /dev/null
+++ b/devel/py-gi/pkg-descr
@@ -0,0 +1,3 @@
+Python dynamic bindings based on GObject-Introspection.
+
+WWW: http://live.gnome.org/PyGI
diff --git a/devel/py-gi/pkg-plist b/devel/py-gi/pkg-plist
new file mode 100644
index 000000000..99841cf11
--- /dev/null
+++ b/devel/py-gi/pkg-plist
@@ -0,0 +1,37 @@
+%%PYTHON_SITELIBDIR%%/gtk-2.0/gi/__init__.py
+%%PYTHON_SITELIBDIR%%/gtk-2.0/gi/__init__.pyc
+%%PYTHON_SITELIBDIR%%/gtk-2.0/gi/__init__.pyo
+%%PYTHON_SITELIBDIR%%/gtk-2.0/gi/_gi.a
+%%PYTHON_SITELIBDIR%%/gtk-2.0/gi/_gi.la
+%%PYTHON_SITELIBDIR%%/gtk-2.0/gi/_gi.so
+%%PYTHON_SITELIBDIR%%/gtk-2.0/gi/importer.py
+%%PYTHON_SITELIBDIR%%/gtk-2.0/gi/importer.pyc
+%%PYTHON_SITELIBDIR%%/gtk-2.0/gi/importer.pyo
+%%PYTHON_SITELIBDIR%%/gtk-2.0/gi/module.py
+%%PYTHON_SITELIBDIR%%/gtk-2.0/gi/module.pyc
+%%PYTHON_SITELIBDIR%%/gtk-2.0/gi/module.pyo
+%%PYTHON_SITELIBDIR%%/gtk-2.0/gi/overrides/GIMarshallingTests.py
+%%PYTHON_SITELIBDIR%%/gtk-2.0/gi/overrides/GIMarshallingTests.pyc
+%%PYTHON_SITELIBDIR%%/gtk-2.0/gi/overrides/GIMarshallingTests.pyo
+%%PYTHON_SITELIBDIR%%/gtk-2.0/gi/overrides/Gdk.py
+%%PYTHON_SITELIBDIR%%/gtk-2.0/gi/overrides/Gdk.pyc
+%%PYTHON_SITELIBDIR%%/gtk-2.0/gi/overrides/Gdk.pyo
+%%PYTHON_SITELIBDIR%%/gtk-2.0/gi/overrides/Gtk.py
+%%PYTHON_SITELIBDIR%%/gtk-2.0/gi/overrides/Gtk.pyc
+%%PYTHON_SITELIBDIR%%/gtk-2.0/gi/overrides/Gtk.pyo
+%%PYTHON_SITELIBDIR%%/gtk-2.0/gi/overrides/__init__.py
+%%PYTHON_SITELIBDIR%%/gtk-2.0/gi/overrides/__init__.pyc
+%%PYTHON_SITELIBDIR%%/gtk-2.0/gi/overrides/__init__.pyo
+%%PYTHON_SITELIBDIR%%/gtk-2.0/gi/overrides/keysyms.py
+%%PYTHON_SITELIBDIR%%/gtk-2.0/gi/overrides/keysyms.pyc
+%%PYTHON_SITELIBDIR%%/gtk-2.0/gi/overrides/keysyms.pyo
+%%PYTHON_SITELIBDIR%%/gtk-2.0/gi/repository/__init__.py
+%%PYTHON_SITELIBDIR%%/gtk-2.0/gi/repository/__init__.pyc
+%%PYTHON_SITELIBDIR%%/gtk-2.0/gi/repository/__init__.pyo
+%%PYTHON_SITELIBDIR%%/gtk-2.0/gi/types.py
+%%PYTHON_SITELIBDIR%%/gtk-2.0/gi/types.pyc
+%%PYTHON_SITELIBDIR%%/gtk-2.0/gi/types.pyo
+@dirrm %%PYTHON_SITELIBDIR%%/gtk-2.0/gi/repository
+@dirrm %%PYTHON_SITELIBDIR%%/gtk-2.0/gi/overrides
+@dirrm %%PYTHON_SITELIBDIR%%/gtk-2.0/gi
+@dirrmtry %%PYTHON_SITELIBDIR%%/gtk-2.0