diff --git a/.gitignore b/.gitignore
index 537c0fae2972f19d68fc784575ad16401fe61c59..67221f5e4f8e8261f956b3cafc4c3153143a7053 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,7 @@
 .DS_Store
 .idea
 .rvmrc
+.stgit*
 *.swap
 *.swo
 *.swp
@@ -19,4 +20,4 @@ gpg/*/random_seed
 public/uploads/*
 public/source.tar
 tmp/**/*
-capybara-*.html
\ No newline at end of file
+capybara-*.html
diff --git a/app/controllers/albums_controller.rb b/app/controllers/albums_controller.rb
index 5cfbe4c8533d2de72d3c24025ecf0b37e760932c..a7ce4b5e37667a5c06a78f55c8369ec45a749de0 100644
--- a/app/controllers/albums_controller.rb
+++ b/app/controllers/albums_controller.rb
@@ -10,7 +10,6 @@ class AlbumsController < ApplicationController
 
   def index
     @albums = current_user.albums_by_aspect(@aspect).paginate :page => params[:page], :per_page => 9, :order => 'created_at DESC'
-    @aspect = :all
     respond_with @albums, :aspect => @aspect
   end
 
diff --git a/app/controllers/publics_controller.rb b/app/controllers/publics_controller.rb
index 0e99d32ed29bc077587aa39e23a88bc4a4f918d1..c9c96462335278526d1e70fc20622a556fdc6b75 100644
--- a/app/controllers/publics_controller.rb
+++ b/app/controllers/publics_controller.rb
@@ -12,6 +12,8 @@ class PublicsController < ApplicationController
     @person = Person.find_by_id params[:id]
     unless @person.nil? || @person.owner.nil?
       render 'hcard'
+    else
+      render :nothing => true, :status => 404
     end
   end
 
@@ -24,7 +26,7 @@ class PublicsController < ApplicationController
     unless @person.nil? || @person.owner.nil?
       render 'webfinger', :content_type => 'application/xrd+xml'
     else
-      render :nothing => true
+      render :nothing => true, :status => 404
     end
   end
 
diff --git a/config/initializers/git_info.rb b/config/initializers/git_info.rb
index e7aaffdda9f0a0a7755c162aa14caf83adf725a6..09b5407030d81f51bfc95569927a093241f2b44e 100644
--- a/config/initializers/git_info.rb
+++ b/config/initializers/git_info.rb
@@ -2,4 +2,22 @@
 #   licensed under the Affero General Public License version 3 or later.  See
 #   the COPYRIGHT file.
 
-GIT_INFO = `git show --name-only`
+s = `git show --name-only 2>/dev/null || :`
+if (s.nil? or s.empty?)
+     path =  File.expand_path("config/gitversion")
+     begin
+         if (File.exists?( path))
+             s = ''
+             f = File.open( path)
+             f.each_line do |line|
+                 s += line
+             end
+             f.close
+         end
+     rescue
+         s = ""
+     end
+end
+GIT_INFO = s
+# What's the scope of this s? Leave to GC just in case...
+s = nil
diff --git a/pkg/fedora/.gitignore b/pkg/fedora/.gitignore
index 3fab5f9c0c103daffdd4bf69169f700c309645da..bedbdc76076f5c4c63f61dd26aa4f50f56099a07 100644
--- a/pkg/fedora/.gitignore
+++ b/pkg/fedora/.gitignore
@@ -1,2 +1,3 @@
 TODO
 dist
+.stgit*
diff --git a/pkg/fedora/README.md b/pkg/fedora/README.md
index 96c9c47d9560c2adb334ca058606b0fd885c4bc7..c0b29d3d2cbf9d0d981a8168919266d4cf8a3546 100644
--- a/pkg/fedora/README.md
+++ b/pkg/fedora/README.md
@@ -1,24 +1,25 @@
 ## Diaspora RPM tools
 
-Creates RPM packages from diaspora git repository.  
+Creates diaspora source tarballs and RPM packages
 
-An alternative to the capistrano system, providing classic, binary RPM 
-packages for deployment on Fedora 13.
+An alternative to the capistrano system, providing classic, binary RPM
+packages for deployment on Fedora 13 and OS-independent source tarballs
+aimed for packaging purposes.
 
 
-#### Synopsis:
+#### Fedora RPM synopsis
 
 *Prerequisites*: ruby-1.8, rubygem and other packages as described in
 http://github.com/diaspora/diaspora/wiki/Rpm-installation-on-fedora
 or http://github.com/diaspora/diaspora/wiki/Installing-on-CentOS-Fedora
 
-Create source tarballs like  dist/diaspora-0.0-1010041233_fade4231.tar.gz  
+Create source tarballs like  dist/diaspora-0.0-1010041233_fade4231.tar.gz
 and dist/diaspora-bundle-0.0-1010041233_fade4231.tar.gz:
     % ./make-dist.sh source
     % ./make-dist.sh bundle
 
-Setup links to tarballs from RPM source directory:
-    % ./make-dist.sh links
+Setup links to tarballs from RPM source directory and create spec files:
+    % ./make-dist.sh prepare
 
 Build rpms:
     rpmbuild -ba dist/diaspora.spec
@@ -28,7 +29,7 @@ Install (as root):
     rpm -U ~/rmpbuild/rpms/i686/diaspora-bundle-0.0-1.1010042345_4343fade43.fc13.i686
     rpm -U ~/rmpbuild/rpms/noarch/diaspora-0.0-1.1010042345_4343fade43.fc13.noarch
 
-Initiate (as root). 
+Initiate (as root).
     /usr/share/diaspora/diaspora-setup
 
 Start development server:
@@ -37,48 +38,75 @@ Start development server:
     cd /usr/share/diaspora/master
     ./script/server
 
-See http://github.com/diaspora/diaspora/wiki/Using-apache for  
+See http://github.com/diaspora/diaspora/wiki/Using-apache for
 apache/passenger setup. After configuration, start with:
-    /sbin/service diaspora-ws start
+    /sbin/service diaspora-wsd start
     /sbin/service httpd restart
 
+#### Generic source synopsis
+
+Generate source tarball:
+    % ./make-dist.sh source
+    Using repo:          http://github.com/diaspora/diaspora.git
+    Commit id:           1010092232_b313272
+    Source:              dist/diaspora-0.0-1010092232_b313272.tar.gz
+    Required bundle:     1010081636_d1a4ee0
+    %
+
+The source tarball could be used as-is, by unpacking add making a
+*bundle install*. An alternative is to generate a canned bundle like:
+    % ./make-dist.sh bundle
+          [ lot's of output...]
+    Bundle: dist/diaspora-bundle-0.0-1010081636_d1a4ee0.tar.gz
+    %
+
+This file can be installed anywhere. To use it, add a symlink from vendor/bundle
+to the bundle's master directory.  Reasonable defaults are to install
+diaspora in /var/diaspora and bundle in /usr/lib/diaspora-bundle. With these,
+the link is
+    % rm -rf /var/diaspora/master/vendor/bundle
+    % ln -sf /usr/lib/diaspora-bundle/master/bundle  \
+    >          /var/diaspora/master/vendor
+    %
+
+The directories tmp, log, and public/uploads needs to be writable. If using
+apache passenger, read the docs on uid used and file ownership.
+
+Note that the bundle version required is printed each time a new source
+is generated.
 
 #### Notes
 
+The source tarball is as retrieved from diaspora with following differences:
+
+   - The .git directories are removed (freeing more than 50% of the size).
+   - A new file /master/config/gitversion is created.
+   - The file public/source.tar is generated.
+   - The file .bundle/config  is patched. Remove before doing
+     *bundle install*
+
 Routines uses last available version from master branch at github. The
-version contains a time stamp and an abbreviated git commit id. If listed
-in filename order, like ls does, latest version will be the last one.
+version contains a time stamp and an abbreviated git commit id.
 Using -c, a specific commit can be used for source build.
 
-*make-dist links* creates links  also for all files listed in SOURCES.
+*make-dist prepare* creates links  also for all files listed in SOURCES.
 Typically, this is  secondary sources. *make-dist.sh sources*
 applies all patches named *.patch in this directory after checking out
 source from git.
 
-The spec-files in dist/ are patched by ./make-dist.sh source to reference
+The spec-files in dist/ are patched by *./make-dist.sh prepare* to reference
 correct versions of diaspora and diaspora-bundle. The diaspora-bundle
-is only updated if Gemfile is updated, upgrading diaspora doesn't 
+is only updated if Gemfile is updated, upgrading diaspora doesn't
 always require a new diaspora-bundle. Editing spec files should be done
-in this directory, changes in dist/ are lost when doing ./make-dist source.
+in this directory, changes in dist/ are lost when doing *./make-dist prepare*.
 
 The topmost comment's version is patched to reflect the complete version
-of current specfile by 'make-dist source'. WRite the comment in this 
+of current specfile by *make-dist source*. Write the comment in this
 directory, copy-paste previous version nr. It will be updated.
 
-rpmlint shows many errors, most of which related to that the server
-won't start if the .git directories are not included. Needs investigation.
-
-This has been confirmed to start up and provide basic functionality both using 
-the thin webserver and apache passenger, and on 32/64 bit systems.
-
-#### Bugs
-
-As of now, diaspora fails if it not owns all file under /usr/share/diaspora.
-I guess this means diaspora writes some stuff somewhere. In the long run,
-this should be located and symlinked to /var,leaving the rest of the files
-owned by root. FTM, all files in /usr/share/diaspore are owned by
-diaspora
-
+This has been confirmed to start up and provide basic functionality both using
+the thin webserver and apache passenger, on 32/64 bit systems and in the
+mock build environment.
 
 #### Implementation
 
@@ -86,22 +114,23 @@ diaspora
  dist/diaspora directory. This content is, after some patches, the diaspora package.
 
 'make-dir.sh bundle' makes a 'bundle install --deployment' in the diaspora dir.
-The resulting bundle is stored in vendor/bundle. This is, after some more 
+The resulting bundle is stored in vendor/bundle. This is, after some more
 patches, the content of diaspora-bundle.
 
-Here is also support for running the diaspora websocket service as a system 
+Here is also support for running the diaspora websocket service as a system
 service through /sbin/service and some install scripts.
-    
-Diaspora files are stored in /usr/share/diaspora, and owned by diaspora. The
+
+Diaspora files are stored in /usr/share/diaspora, and owned by root. The
 bundle, containing some C extensions, is architecture-dependent and lives
 in /usr/lib[64]/diaspora. Log files are in /var/log/diaspora. Symlinks in
-/usr/share diaspora makes log and bundle available as expected by diaspora app.
-This is more or less as mandated by LSB and Fedora packaging rules.
- 
-    find /usr/share/diaspora/ -type l -exec ls -l {} \; | awk '{print $9, $10, $11}'
-    /usr/share/diaspora/master/public/uploads -> /var/lib/diaspora/uploads
-    /usr/share/diaspora/master/log -> /var/log/diaspora
-    /usr/share/diaspora/master/vendor/bundle -> /usr/lib/diaspora-bundle/master/vendor/bundle
+/usr/share diaspora makes log, bundle  and tmp dir available as expected by
+diaspora app.  This is more or less as mandated by LSB and Fedora packaging rules.
+
+    find . -type l -exec ls -l {} \; | awk '{print $9, $10, $11}'
+    ./public/uploads -> /var/lib/diaspora/uploads
+    ./log -> /var/log/diaspora
+    ./tmp -> /var/lib/diaspora/tmp
+    ./vendor/bundle -> /usr/lib/diaspora-bundle/master/vendor/bundle
 
 
 #### Discussion
@@ -119,11 +148,11 @@ original README.md:
   not 777.
 
 - Splitting in two packages makes sense IMHO. The bundle is not changed that often,
-  but is quite bug: ~18M without test packages (the default) or ~55M with test
-  packages. The application is just ~7.5M, and is fast to deploy even with these
+  but is quite big: ~30M without test packages (the default) or ~55M with test
+  packages. The application is just ~3M, and is fast to deploy even with these
   tools (yes, I know, capistrano is much faster...)
 
 - Many, roughly 50% of the packages in the bundle are already packaged for Fedora
   i. e., they could be removed from the bundle and added as dependencies instead.
-  This is likely to make things more stable in the long run. 
+  This is likely to make things more stable in the long run.
   diaspora.spec has a list.
diff --git a/pkg/fedora/SOURCES b/pkg/fedora/SOURCES
index 4f85fc9c70bd8f93bfd14e09826fe5b9a4187f54..eb326e9f641e162a09b60a01757cf89695276510 100644
--- a/pkg/fedora/SOURCES
+++ b/pkg/fedora/SOURCES
@@ -1,3 +1,5 @@
 # These files will be linked to %_sourcedir by 'make-dist links'
 diaspora-setup
-diaspora-ws
+diaspora-wsd
+diaspora.logconf
+make_rel_symlink.py
diff --git a/pkg/fedora/add-bundle.patch b/pkg/fedora/add-bundle.diff
similarity index 100%
rename from pkg/fedora/add-bundle.patch
rename to pkg/fedora/add-bundle.diff
diff --git a/pkg/fedora/diaspora-bundle.spec b/pkg/fedora/diaspora-bundle.spec
index 49d1e714f886439a2a03a90f4d75748fcf3fc5b3..6f04cff2f51953317a60bf76ebb0c36a28d64947 100644
--- a/pkg/fedora/diaspora-bundle.spec
+++ b/pkg/fedora/diaspora-bundle.spec
@@ -4,22 +4,22 @@
 %define         __jar_repack    %{nil}
 
 # Turn off the brp-python-bytecompile script, *pyc/pyo causes problems
-%global __os_install_post %(echo '%{__os_install_post}' | 
+%global __os_install_post %(echo '%{__os_install_post}' |
        sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g')
 
 Summary:        Rubygem bundle for diaspora
 Name:           diaspora-bundle
 Version:        0.0
 Release:        1.%{git_release}%{?dist}
-License:        AGPLv3 
+License:        AGPLv3
 Group:          Applications/Communications
 URL:            http://www.joindiaspora.com/
 Vendor:         joindiaspora.com
 Source:         %{name}-%{version}-%{git_release}.tar.gz
 Prefix:         %{_prefix}
+BuildRoot:      %{_rmpdir}/not-used-in-fedora/
 
 Requires(pre):  shadow-utils
-BuildRequires:  git
 Requires:       ruby(abi) = 1.8
 
 %description
@@ -37,6 +37,8 @@ Source file usede to compile native libraries in diaspora-bundle.
 %prep
 %setup -q -n %{name}-%{version}-%{git_release}
 
+find . -name .git* -print | xargs rm -rf
+
 pushd bundle/ruby/1.8/
     find . -name \*.css -exec  chmod 644 {} \;
     find . -name \*.js -exec  chmod 644 {} \;
@@ -64,12 +66,12 @@ pushd bundle/ruby/1.8/
       sed -i -e '/^#!/d' $f
       chmod 0644 $f
     done > /dev/null 2>&1
-    find .  -perm /u+x  -type f -print0 | 
+    find .  -perm /u+x  -type f -print0 |
         xargs --null sed -i 's|^#!/usr/local/bin/ruby|#!/usr/bin/ruby|'
 
     chmod 755 gems/thin-1.2.7/example/async_chat.ru
     chmod 755 gems/thin-1.2.7/example/async_tailer.ru
-    chmod 644 gems/i18n-0.4.1/MIT-LICENSE 
+    chmod 644 gems/i18n-0.4.1/MIT-LICENSE
     chmod 755 gems/abstract-1.0.0/abstract.gemspec
     chmod 644 gems/mini_magick-2.1/MIT-LICENSE
     chmod 755 gems/thin-1.2.7/lib/thin/controllers/service.sh.erb
@@ -82,7 +84,7 @@ pushd bundle/ruby/1.8/
     # In repo (2.2.4)
     test -d gems/gherkin-*/ext && {
     pushd gems/gherkin-*/ext
-    # Recompile all shared libraries using -O2 optimalization flagcd 
+    # Recompile all shared libraries using -O2 flag
     for lexer_dir in */ ; do
         pushd $lexer_dir
             sed -i 's/ -O0 / -O2 /' extconf.rb
@@ -118,7 +120,7 @@ pushd bundle/ruby/1.8/
         ln -s ../cbson/cbson.so .
     popd
 
-    # In repo (0.10.4) 
+    # In repo (0.10.4)
     pushd gems/ruby-debug-base-0.10.3/lib
         rm ruby_debug.so
         ln -s ../ext/ruby_debug.so .
@@ -144,6 +146,7 @@ pushd bundle/ruby/1.8/
         ln -sf ../../ext/nokogiri/nokogiri.so .
     popd
 
+    # in repo (rawhide)
     pushd gems/json-1.4.6/ext/json/ext/json/ext
         rm generator.so
         ln -s ../../generator/generator.so
@@ -199,18 +202,18 @@ popd
 }
 
 mkdir -p $RPM_BUILD_ROOT/%{_libdir}/diaspora-bundle/master/vendor
-
 cp -ar  bundle $RPM_BUILD_ROOT/%{_libdir}/diaspora-bundle/master/vendor
+
 find  %{buildroot}/%{_libdir}/diaspora-bundle  \
     -type d  -fprintf dirs '%%%dir "%%p"\n'
 find  -L %{buildroot}/%{_libdir}/diaspora-bundle  -regextype posix-awk \
-    -type f -not -regex '.*[.]c$|.*[.]h$|.*[.]cpp$|.*Makefile$'          \
+    -type f -not -regex '.*[.]c$|.*[.]h$|.*[.]cpp$|.*Makefile$'        \
     -fprintf files '"%%p"\n'
-find  %{buildroot}/%{_libdir}/diaspora-bundle -regextype posix-awk \
-    -type f -regex '.*[.]c$|.*[.]h$|.*[.]cpp$|.*Makefile$'            \
-    -fprintf dev-files '"%%p"\n' 
+find  %{buildroot}/%{_libdir}/diaspora-bundle -regextype posix-awk     \
+    -type f -regex '.*[.]c$|.*[.]h$|.*[.]cpp$|.*Makefile$'             \
+    -fprintf dev-files '"%%p"\n'
 sed -i  -e 's|%{buildroot}||' -e 's|//|/|' files dev-files dirs
-cat files >> dirs && cp dirs files 
+cat files >> dirs && cp dirs files
 
 %clean
 [ "$RPM_BUILD_ROOT" != "/" ] && rm -fr $RPM_BUILD_ROOT
@@ -224,5 +227,5 @@ cat files >> dirs && cp dirs files
 %doc COPYRIGHT AUTHORS GNU-AGPL-3.0
 
 %changelog
-* Sat Oct 02 2010 Alec Leamas  <leamas.alec@gmail.com>       1.1009271539_08b9aa8
+* Sat Oct 02 2010 Alec Leamas  <leamas.alec@gmail.com>  0.0-1.1009271539_08b9aa8
   - Initial attempt to create a spec file
diff --git a/pkg/fedora/diaspora-reset b/pkg/fedora/diaspora-reset
index 5557a645c4dbb9ea6c009205aab83d565cbdc460..33c49e893f81a6851ce7259efc33fc3475e9d50b 100755
--- a/pkg/fedora/diaspora-reset
+++ b/pkg/fedora/diaspora-reset
@@ -1,14 +1,13 @@
 #!/bin/sh
 #
-# Try to revert to pristine state, deleting all users and
-# configuration
+#  Try to revert to pristine state, deleting all users and
+#  configuration
+#
 
 set -x
 service mongod stop
-service diaspora-ws stop
+service diaspora-wsd stop
 rm -rf /var/lib/mongodb/*
 cp /usr/share/diaspora/master/config/app_config.yml.example \
   /usr/share/diaspora/master/config/app_config.yml
 service mongod start
-
-
diff --git a/pkg/fedora/diaspora-setup b/pkg/fedora/diaspora-setup
index 23eb420d5e16ea6da320c0b662820e44817155a4..eaa9192c06d7a2fbf2b7953031a61050358f0085 100755
--- a/pkg/fedora/diaspora-setup
+++ b/pkg/fedora/diaspora-setup
@@ -1,21 +1,23 @@
 #!/bin/bash
 #
-# Do what's needed to initiate diaspora.
+#  Do what's needed to initiate diaspora.
 #
-# See http://github.com/diaspora/diaspora/issues/issue/395
-#
-# Note: This is really sort of prototyping. This should be done in ruby,
-# on a web page.
 
 test $UID = "0" || {
     echo "You need to be root to do this, giving up"
     exit 2
 }
 
-cd /usr/share/diaspora/master
+services=$( netstat -nl | grep '[^:]:3000[ \t]')
+test -n "$services" && {
+    echo "Warning: something is already using port 3000"
+    echo "     $services"
+}
 
 /sbin/service mongod start || :
 
+cd /usr/share/diaspora/master
+
 test -e config/app_config.yml ||
     cp config/app_config.yml.example config/app_config.yml
 
@@ -49,4 +51,3 @@ while : ; do
         break
     }
 done
-
diff --git a/pkg/fedora/diaspora-ws b/pkg/fedora/diaspora-wsd
similarity index 81%
rename from pkg/fedora/diaspora-ws
rename to pkg/fedora/diaspora-wsd
index 90dc28f8fe4b69c740e8d96d2b5d053d03161d14..6f0c7593f6daaa60e7c5554b25e84dbd751eb0ba 100755
--- a/pkg/fedora/diaspora-ws
+++ b/pkg/fedora/diaspora-wsd
@@ -1,30 +1,30 @@
 #!/bin/bash
 #
-#	/etc/rc.d/init.d/diaspora-ws
+#	/etc/rc.d/init.d/diaspora-wsd
 #
-# Starts the diaspora websocket server
+# Starts the diaspora websocket daemon
 #
 # chkconfig: - 80 80
-# description: Diaspora websocket server
+# description: Diaspora websocket daemon
 
 ### BEGIN INIT INFO
-# Provides: diaspora-ws
+# Provides: diaspora-wsd
 # Required-Start: $local_fs $network
 # Required-Stop: $local_fs $network
 # Should-Start: $remote_fs
 # Should-Stop: $remote_fs
-# Default-Start: 
+# Default-Start:
 # Default-Stop: 0 1 2 3 4 5 6
 # Short-Description: start and stop Diaspora websocket server
 # Description: The websocket server provides websocket services for
-#              diaspora. 
+#              diaspora.
 ### END INIT INFO
 
 # Source function library.
 . /etc/init.d/functions
 
-if [ -f /etc/sysconfig/diaspora-ws -a $UID -eq 0 ]; then
-    . /etc/sysconfig/diaspora-ws
+if [ -f /etc/sysconfig/diaspora-wsd -a $UID -eq 0 ]; then
+    . /etc/sysconfig/diaspora-wsd
 fi
 
 # Note: this line is patched by installation scripts.
@@ -33,9 +33,9 @@ cd  /usr/share/diaspora
 RETVAL=0
 prog="Diaspora websocket server"
 exec="script/websocket_server.rb"
-pidfile="/var/run/diaspora-ws"
-lockfile="/var/lock/subsys/diaspora-ws"
-logfile=/var/log/diaspora-ws.log
+pidfile="/var/run/diaspora-wsd"
+lockfile="/var/lock/subsys/diaspora-wsd"
+logfile=/var/log/diaspora-wsd.log
 
 [ -n "$OPTIONS" ] && OPTIONS=" $OPTIONS"
 ruby_cmd="ruby -C $PWD $exec$OPTIONS"
diff --git a/pkg/fedora/diaspora.logconf b/pkg/fedora/diaspora.logconf
index 767c2d7a26b2e5ff2bb4c509a852583d475adf17..bc8b078d1b4bc0988729dd56fefcc219a11b9439 100644
--- a/pkg/fedora/diaspora.logconf
+++ b/pkg/fedora/diaspora.logconf
@@ -8,6 +8,6 @@
        notifempty
        missingok
        postrotate
- 	  ( /sbin/service diaspora-ws condrestart )  >/dev/null 2>&1
+ 	  ( /sbin/service diaspora-wsd condrestart )  >/dev/null 2>&1
        endscript
 }
diff --git a/pkg/fedora/diaspora.spec b/pkg/fedora/diaspora.spec
index 533f170d31705e68dd69272a71a6d02ec6c4d25c..0d07ddb432d0e57a03ba42bfdf2b79bfacad6c75 100644
--- a/pkg/fedora/diaspora.spec
+++ b/pkg/fedora/diaspora.spec
@@ -1,18 +1,21 @@
-%global         debug_package   %{nil} 
+%global         debug_package   %{nil}
 %define         git_release     HEAD
 
 Summary:        A social network server
 Name:           diaspora
 Version:        0.0.1
 Release:        1.%{git_release}%{?dist}
-License:        AGPLv3 
+License:        AGPLv3
 Group:          Applications/Communications
 URL:            http://www.joindiaspora.com/
 Vendor:         joindiaspora.com
 Source:         %{name}-%{version}-%{git_release}.tar.gz
-Source1:        diaspora-ws
+Source1:        diaspora-wsd
 Source2:        diaspora-setup
+Source3:        diaspora.logconf
+Source4:	make_rel_symlink.py
 BuildArch:      noarch
+BuildRoot:      %{_rmpdir}/not-used-in-fedora/
 
 Requires:       mongodb-server
 Requires:       ruby(abi) = 1.8
@@ -26,36 +29,49 @@ open source social network server.
 %prep
 %setup -q -n %{name}-%{version}-%{git_release}
 
-find .  -perm /u+x -type f -exec \
+find . -perm /u+x -type f -exec \
     sed -i 's|^#!/usr/local/bin/ruby|#!/usr/bin/ruby|' {} \; > /dev/null
 
 %build
 rm -rf master/vendor/bundle
-mkdir master/tmp || :
-pushd  master
-    tar cf public/source.tar  --exclude='source.tar' -X .gitignore *
-popd
 
 %install
-[ "$RPM_BUILD_ROOT" != "/" ] && rm -fr $RPM_BUILD_ROOT
-mkdir -p $RPM_BUILD_ROOT/%{_datadir}/diaspora
-cp master/README.md .
-mv master/GNU-AGPL-3.0 .
+rm -fr $RPM_BUILD_ROOT
+
+sed -i \
+    '/BUNDLE_PATH/s|:.*|: %{_libdir}/diaspora-bundle/master/vendor/bundle|' \
+     master/.bundle/config
+
+cp master/GNU-AGPL-3.0 master/COPYRIGHT master/README.md master/AUTHORS .
+cp master/pkg/fedora/README.md README-Fedora.md
 
-mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/log/diaspora
 mkdir -p $RPM_BUILD_ROOT/etc/init.d
-sed -i '/^cd /s|.*|cd %{_datadir}/diaspora/master|' diaspora-ws
-cp diaspora-ws $RPM_BUILD_ROOT/etc/init.d
-mkdir -p  $RPM_BUILD_ROOT/etc/logrotate.d
-cp diaspora.logconf  $RPM_BUILD_ROOT/%{_sysconfdir}/logrotate.d/diaspora
+cp %SOURCE1  $RPM_BUILD_ROOT/etc/init.d
+sed -i '/^cd /s|.*|cd %{_datadir}/diaspora/master|'  \
+       $RPM_BUILD_ROOT/etc/init.d/diaspora-wsd
+
+mkdir -p  $RPM_BUILD_ROOT/%{_sysconfdir}/logrotate.d
+cp %SOURCE3  $RPM_BUILD_ROOT/%{_sysconfdir}/logrotate.d/diaspora
+
 mkdir -p $RPM_BUILD_ROOT/%{_datadir}/diaspora
 cp -ar master $RPM_BUILD_ROOT/%{_datadir}/diaspora
-cp -ar master/.gitignore master/.bundle $RPM_BUILD_ROOT/%{_datadir}/diaspora/master
-cp diaspora-setup  $RPM_BUILD_ROOT/%{_datadir}/diaspora
-mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/lib/diaspora/uploads
+cp %SOURCE2  $RPM_BUILD_ROOT/%{_datadir}/diaspora
 
-find  $RPM_BUILD_ROOT/%{_datadir}/diaspora  -type d  -fprintf dirs '%%%dir "%%p"\n'
-find  -L $RPM_BUILD_ROOT/%{_datadir}/diaspora  -type f -fprintf files '"%%p"\n'
+mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/log/diaspora
+mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/lib/diaspora/uploads
+mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/lib/diaspora/tmp
+
+%{SOURCE4} $RPM_BUILD_ROOT/%{_localstatedir}/log/diaspora \
+           $RPM_BUILD_ROOT/%{_datadir}/diaspora/master/log
+%{SOURCE4} $RPM_BUILD_ROOT/%{_localstatedir}/lib/diaspora/uploads \
+           $RPM_BUILD_ROOT/%{_datadir}/diaspora/master/public/uploads
+%{SOURCE4} $RPM_BUILD_ROOT/%{_localstatedir}/lib/diaspora/tmp \
+           $RPM_BUILD_ROOT/%{_datadir}/diaspora/master/tmp
+
+find  $RPM_BUILD_ROOT/%{_datadir}/diaspora  -type d        \
+    -fprintf dirs '%%%dir "%%p"\n'
+find  -L $RPM_BUILD_ROOT/%{_datadir}/diaspora  -type f     \
+    -fprintf files '"%%p"\n'
 cat files >> dirs && mv -f dirs files
 sed -i   -e '\|.*/master/config.ru"$|d'                    \
          -e '\|.*/master/config/environment.rb"$|d'        \
@@ -64,36 +80,33 @@ sed -i   -e '\|.*/master/config.ru"$|d'                    \
 
 
 %post
-rm -f  %{_datadir}/diaspora/master/vendor/bundle
-rm -f  %{_datadir}/diaspora/master/log
-rm -f  %{_datadir}/diaspora/master/public/uploads
-
-ln -s  %{_localstatedir}/log/diaspora \
-        %{_datadir}/diaspora/master/log || :
-ln -s  %{_libdir}/diaspora-bundle/master/vendor/bundle \
-       %{_datadir}/diaspora/master/vendor || :
-ln -s  %{_localstatedir}/lib/diaspora/uploads \
-       %{_datadir}/diaspora/master/public/uploads || :
-/sbin/chkconfig --add  diaspora-ws || :
+/sbin/chkconfig --add  diaspora-wsd
+
 
 %preun
 if [ $1 -eq 0 ] ; then
-    service diaspora-ws stop  >/dev/null 2>&1 || :
-    /sbin/chkconfig --del  diaspora-ws
+    service diaspora-wsd stop  &>/dev/null || :
+    /sbin/chkconfig --del  diaspora-wsd
 fi
 
+
 %clean
-[ "$RPM_BUILD_ROOT" != "/" ] && rm -fr $RPM_BUILD_ROOT
+rm -fr $RPM_BUILD_ROOT
+
 
 %files -f files
-%defattr(-, diaspora, diaspora, 0755)
-%doc  README.md GNU-AGPL-3.0
+%defattr(-, root, root, 0755)
+%doc AUTHORS README.md GNU-AGPL-3.0 COPYRIGHT README-Fedora.md
 %attr(-, diaspora, diaspora) %{_datadir}/diaspora/master/config.ru
 %attr(-, diaspora, diaspora) %{_datadir}/diaspora/master/config/environment.rb
 %attr(-, diaspora, diaspora) %{_localstatedir}/log/diaspora
 %attr(-, diaspora, diaspora) %{_localstatedir}/lib/diaspora/uploads
+%attr(-, diaspora, diaspora) %{_localstatedir}/lib/diaspora/tmp
+%{_datadir}/diaspora/master/tmp
+%{_datadir}/diaspora/master/public/uploads
+%{_datadir}/diaspora/master/log
 %config(noreplace) %{_sysconfdir}/logrotate.d/diaspora
-%{_sysconfdir}/init.d/diaspora-ws
+%{_sysconfdir}/init.d/diaspora-wsd
 
 %changelog
 * Fri Sep 24 2010 Alec Leamas  <leamas.alec@gmail.com>  0.0-1.1009280542_859ec2d
diff --git a/pkg/fedora/make-dist.sh b/pkg/fedora/make-dist.sh
index d8407ab9d96ad576cf79db0d792ce01368dc56ba..3a24635edbdb27f30bc90811fd6349a51d68d097 100755
--- a/pkg/fedora/make-dist.sh
+++ b/pkg/fedora/make-dist.sh
@@ -6,6 +6,8 @@
 #
 GIT_REPO='http://github.com/diaspora/diaspora.git'
 VERSION='0.0'
+RELEASE='1'
+
 
 function git_id
 #
@@ -14,63 +16,65 @@ function git_id
 # Usage: git_id [-n] [file or directory]
 #
 {
-    nl="\n"
-    file_or_dir="$PWD"
+    local nl="\n"
+    local file_or_dir="$PWD"
     test "$1" = '-n' && { nl=""; shift; }
     test -n "$1" && file_or_dir="$1"
     if [ -d $file_or_dir ]; then
-        file=""
-        dir=$file_or_dir
+        local file=""
+        local dir=$file_or_dir
     else
-        file=$(basename $file_or_dir) 
-        dir=$(dirname $file_or_dir)
-    fi    
+        local file=$(basename $file_or_dir)
+        local dir=$(dirname $file_or_dir)
+    fi
 
-    export LANG=C
     (
         cd $dir
         git log -1 --abbrev-commit --date=iso $file |
-        awk  -v nl="$nl" \
-          ' BEGIN         { commit = "" }
-           /^commit/      { if ( commit ==  "") commit = $2 }
-           /^Date:/       { split( $2, d, "-")
-                            split( $3, t, ":")
-                          }
-           END            { printf( "%s%s%s%s%s_%s%s",
-                                substr( d[1],3), d[2], d[3],
-                                t[1], t[2],
-                                commit, nl)
-                          }'
+            awk  -v nl="$nl" \
+               ' BEGIN         { commit = ""; d[1] = "" }
+                /^commit/      { if ( commit ==  "") commit = $2 }
+                /^Date:/       { if (d[1] == "") {
+                                     split( $2, d, "-")
+                                     split( $3, t, ":")
+                                 }
+                               }
+                END            { printf( "%s%s%s%s%s_%s%s",
+                                     substr( d[1],3), d[2], d[3],
+                                     t[1], t[2],
+                                     commit, nl)
+                               }'
     )
 }
 
 
 function fix_alphatag()
 #  Patch version on top comment first id line:
-#  Usage: fix_alphatag <file> <version> <commit_id>
+#  Usage: fix_alphatag <file> <version> <commit_id> <release>
 #  Patches:\
 #       *   Fri Sep 24 2010 name surname <email@com> 1.20100925_faf23207
 {
-    dist=$(rpm --eval %dist)
-    awk  -v dist="$dist" -v version="$2" -v release="$3"  \
-        ' BEGIN         { done = 0 }
-          /^[*]/        { if (done)
-                             print
-                          else
-                          {
-                             gsub( "1[.].*", "")
-                             printf( "%s%s-1.%s%s\n", 
-                                     $0, version, release,dist)
-                             done = 1
-                          }
-                          next
-                        }
-                        { print }' \
-    < $1 > $1.tmp && mv -f $1.tmp $1 
+    local dist=$(rpm --eval %dist)
+    awk -v dist="$dist" -v version="$2" -v commit="$3" -v release="$4" \
+      ' BEGIN    { done = 0 }
+        /^[*]/   { if (done)
+                       print
+                   else
+                   {
+                       s = sprintf( "-%s.%s%s\n", release, commit, dist)
+                       gsub( "-[0-9][.][^ ]*$", s)
+                       done = 1
+                       # add new gsub for version...
+                       print
+                   }
+                   next
+                 }
+                 { print }'  < $1 > $1.tmp && mv -f $1.tmp $1
 }
 
+
 function fix_bundle_deps
-# usage: fix_bundle_deps <specfile> <version> <release>
+# usage: fix_bundle_deps <specfile> <version> <commit>
 # Patches: Requires:   diaspora-bundle = 0.0-20101021-aefsf323148
 {
         awk -v vers="$2-$3" \
@@ -79,101 +83,112 @@ function fix_bundle_deps
                                 else
                                     print
                                 next
-                               }
-                               { print}' \
-             < $1 > $1.tmp && mv -f  $1.tmp $1 
+                              }
+                              { print}' \
+             < $1 > $1.tmp && mv -f  $1.tmp $1
 }
 
+
 function patch()
 # Patch  spec-files with current version-release
-# Usage: patch VERSION RELEASE
+# Usage: patch <version> <commit> <release>
 {
         sed -e "/^%define/s|HEAD|$2|"                  \
             -e '/^Version:/s|.*|Version:        '$1'|' \
-                <diaspora.spec >dist/diaspora.spec                              
-        fix_alphatag dist/diaspora.spec $1 $2
-        bundle_id=$(git_id dist/diaspora/Gemfile)
-        dist_tag=$(rpm --eval %dist)
-        fix_bundle_deps  dist/diaspora.spec $1 "1.${bundle_id}$dist_tag"
+                <diaspora.spec >dist/diaspora.spec
+        fix_alphatag dist/diaspora.spec $1 $2 $3
+        local bundle_id=$(git_id dist/diaspora/Gemfile)
+        local dist_tag=$(rpm --eval %dist)
+        fix_bundle_deps  dist/diaspora.spec $1 "$RELEASE.${bundle_id}$dist_tag"
         sed -e "/^%define/s|HEAD|$bundle_id|"          \
             -e '/^Version:/s|.*|Version:        '$1'|' \
                 < diaspora-bundle.spec > dist/diaspora-bundle.spec
-        
+
         cp dist/diaspora.spec dist/diaspora/diaspora.spec
 }
 
+
 function checkout()
 # Checkout last version of diaspora unless it's already there.
 # Usage: checkout [commit id, defaults to HEAD]
 # Returns: commit for current branch's HEAD.
-{   
-    mkdir dist  >/dev/null 2>&1 || :
+{
+    mkdir dist  &>/dev/null || :
     (
-        cd dist 
+        local last_repo=''
+        cd dist
+
+        test -e '.last-repo' &&
+            last_repo=$( cat '.last-repo')
+        test  "$last_repo" != $GIT_REPO &&
+            rm -rf diaspora
         test -d diaspora || {
-             git clone --quiet $GIT_REPO; 
-             (
-                 cd diaspora;
-                 git remote add upstream \
-                     git://github.com/diaspora/diaspora.git
-                 for p in ../../*.patch; do
-                     git apply --whitespace=fix  $p  > /dev/null
-                 done
-             )
+            git clone --quiet $GIT_REPO;
+            (
+                cd diaspora;
+                git remote add upstream \
+                    git://github.com/diaspora/diaspora.git
+                for p in ../../*.patch; do
+                    git apply --whitespace=fix  $p  > /dev/null
+                done &> /dev/null || :
+            )
         }
-        cd diaspora; 
-        git fetch --quiet upstream 
+        echo -n "$GIT_REPO" > '.last-repo'
+
+        cd diaspora;
+        git fetch --quiet upstream
         git merge --quiet upstream/master
         git checkout --quiet  ${1:-'HEAD'}
-        git_id  -n 
+        git_id  -n
     )
 }
 
 
-function make_dist
+function make_src
 # Create a distribution tarball
-# Usage:  make dist [ commit, defaults to HEAD]
+# Usage:  make src  <commit>
 {
+    echo "Using repo:          $GIT_REPO"
+
     commit=$(checkout ${1:-'HEAD'})
-    echo "Creating source tarball for $commit"
-    patch $VERSION $commit 
+    echo "Commit id:           $commit"
 
     RELEASE_DIR="diaspora-$VERSION-$commit"
-    rm -rf dist/${RELEASE_DIR} 
+    rm -rf dist/${RELEASE_DIR}
     mkdir dist/${RELEASE_DIR}
-    cp diaspora-ws diaspora-setup diaspora.logconf dist/${RELEASE_DIR}
     cd dist
         mkdir ${RELEASE_DIR}/master
         cp -ar diaspora/*  diaspora/.git* ${RELEASE_DIR}/master
         mv  ${RELEASE_DIR}/master/diaspora.spec  ${RELEASE_DIR}
         (
-             cd  ${RELEASE_DIR};
-             find . -name .gitkeep -delete
-             cd master
+             cd  ${RELEASE_DIR}/master
+             git show --name-only > config/gitversion
+             tar cf public/source.tar  \
+                 --exclude='source.tar' -X .gitignore *
+             find $PWD  -name .git\* | xargs rm -rf
              rm -rf .bundle
-             git apply ../../../add-bundle.patch
+             /usr/bin/patch -p1 -s <../../../add-bundle.diff
         )
         tar czf ${RELEASE_DIR}.tar.gz  ${RELEASE_DIR} && \
             rm -rf ${RELEASE_DIR}
     cd ..
-    echo "Source:           dist/${RELEASE_DIR}.tar.gz"
-    echo "Required bundle:  $(git_id dist/diaspora/Gemfile)"
-    echo "Source specfile:  dist/diaspora.spec"
-    echo "Bundle specfile:  dist/diaspora-bundle.spec"
+    echo "Source:              dist/${RELEASE_DIR}.tar.gz"
+    echo "Required bundle:     $(git_id dist/diaspora/Gemfile)"
 }
 
+
 function make_bundle()
 # Create the bundle tarball
 # Usage:  make_bundle [ commit, defaults to HEAD]
 #
 {
     checkout ${1:-'HEAD'} >/dev/null
-    bundle_id=$(git_id dist/diaspora/Gemfile)
+    bundle_id=$( git_id dist/diaspora/Gemfile)
     bundle_name="diaspora-bundle-$VERSION-$bundle_id"
     test -e  "dist/$bundle_name.tar.gz" || {
         echo "Creating bundle $bundle_name"
         cd dist
-            rm -rf $bundle_name 
+            rm -rf $bundle_name
             mkdir -p $bundle_name/bundle
             pushd diaspora > /dev/null
                 bundle install --deployment                      \
@@ -184,89 +199,126 @@ function make_bundle()
                        "../$bundle_name"
             popd > /dev/null
             tar czf $bundle_name.tar.gz $bundle_name
+            rm -rf  $bundle_name
         cd ..
     }
-    echo 
+    echo
     echo "Bundle: dist/$bundle_name.tar.gz"
 }
 
-function make_links()
-# Usage: make_links [source commit]
+
+function prepare_rpm()
+# Usage: prepare_rpm < commit>
 {
-    dest=$(rpm --eval %_sourcedir)
+    local dest=$(rpm --eval %_sourcedir)
     test -z "$dest" && {
         echo "Can't find RPM source directory, giving up."
         exit 2
     }
-    echo "Linking sources to $dest"
 
-    src_commit="${1:-$( checkout)}"
-    
-    src="dist/diaspora-$VERSION-$src_commit.tar.gz"
+    local commit=$( checkout $1)
+    echo "Release:             $RELEASE.$commit"
+    echo "Rpm source dir:      $dest"
+
+    patch $VERSION $commit $RELEASE
+
+    local src="dist/diaspora-$VERSION-$commit.tar.gz"
+    test -e $src ||
+        cat <<- EOF
+	Warning: $src does not exist
+	(last version not built?)
+	EOF
     ln -sf $PWD/$src $dest
 
-    bundle_commit=$(git_id dist/diaspora/Gemfile)
-    bundle="dist/diaspora-bundle-$VERSION-$bundle_commit.tar.gz"
+    local bundle_commit=$( git_id dist/diaspora/Gemfile)
+    local bundle="dist/diaspora-bundle-$VERSION-$bundle_commit.tar.gz"
+    test -e $bundle ||
+        cat <<- EOF
+	Warning: $bundle does not exist
+	(last version not built?)
+	EOF
     ln -sf $PWD/$bundle $dest
 
+    local file
     for file in $( grep -v '^#' SOURCES); do
-        ln -sf $PWD/$file $dest/$file
+        if [ -e "$file" ]; then
+            ln -sf $PWD/$file $dest/$file
+        else
+            echo "Warning: $file (listed in SOURCES) does not exist"
+        fi
     done
 
-    cd $dest
-    find . -type l -not -readable -exec rm {} \;
+    ( cd $dest;  find . -type l -not -readable -exec rm {} \;)
+    echo "Source specfile:     dist/diaspora.spec"
+    echo "Bundle specfile:     dist/diaspora-bundle.spec"
 }
 
+
 function usage()
 {
         cat <<- EOF
 
-	Usage: make-dist [-c commit] <dist|bundle|links>
+	Usage: make-dist [options]  <dist|bundle|prepare>
+
+	Options:
+
+	-h             Print this message.
+	-c  commit     Use a given commit, defaults to last checked in.
+	-r  release    Mark with specified release, defaults to 1.
+	-u  uri        Git repository URI, defaults to
+	               $GIT_REPO.
 
-	-c             Use a given commit, defaults to last checked in.
-	dist           Build a diaspora application tarball.
+	source         Build a diaspora application tarball.
 	bundle         Build a bundler(1) bundle for diaspora.
-	links          Symlink bundle and source tarballs to rpm source dir.
-	
+	prepare        Symlink bundle and source tarballs to rpm source dir,
+                       create patched  rpm spec files.
+
 	All results are stored in dist/
+
 	EOF
 }
 
 
-test "$1" = "-h"  -o $# = 0 && {
+commit='HEAD'
+while getopts ":r:c:h" opt
+do
+    case $opt in
+        u)   GIT_REPO="$OPTARG"
+             ;;
+        c)   commit="${OPTARG:0:7}"
+             ;;
+        r)   RELEASE="$OPTARG:"
+             ;;
+        h)   usage
+             exit 0
+             ;;
+        *)   usage
+             exit 2
+             ;;
+    esac
+done
+shift $(($OPTIND - 1))
+
+typeset -r GIT_REPO RELEASE
+export LANG=C
+
+test $# -gt 1 -o $# -eq 0 && {
     usage;
-    exit 0
+    exit 2;
 }
 
-test "$1" = "-c" && {
-    test -z "$2" && {
-        usage;
-        exit 1
-    }
-    commit="$2"
-    shift; shift
-}
-    
-    
 case $1 in
- 
+
     "bundle")  make_bundle $commit
                ;;
-
-    'source')  make_dist $commit
+    'source')  make_src $commit
                ;;
-
-    'links')   make_links $commit
+   'prepare')  prepare_rpm  $commit $release
                ;;
-
-    "fix_gemfile")
-               fix_gemfile
-               ;;
-                
            *)  usage
                exit 1
                ;;
 esac
- 
-         
+
+
 
diff --git a/pkg/fedora/make_rel_symlink.py b/pkg/fedora/make_rel_symlink.py
new file mode 100755
index 0000000000000000000000000000000000000000..5c893056f3797ac7ffa2d2ce447cb3136e7325dd
--- /dev/null
+++ b/pkg/fedora/make_rel_symlink.py
@@ -0,0 +1,52 @@
+#!/usr/bin/env python
+
+import os
+import os.path
+import sys
+import pdb
+import shutil
+
+def relative_ln_s( from_, to_ ):
+    """
+
+    This is just so dirty & boring: create a relative symlink, making the
+    to_ path relative to from_. No errorchecks. Both arguments must be
+    files, a destination directory doesn't work (I think). An existing
+    file in to_ will be removed.
+
+    """
+    prefix = os.path.commonprefix( [ to_, from_ ] )
+    if prefix == '':
+        prefix = '/'
+    source = from_.split( prefix )[ 1 ]
+    dest   = to_.split( prefix )[ 1 ]
+    level = len( dest.split( '/' ) ) - 1
+    path =  ( '../' * level ) + source
+    return path
+
+USAGE = 'Usage: make_rel_symlink [-p]  <sourcefile> <destfile>'
+
+just_print = False;
+if sys.argv[1] == "-p":
+    just_print = True;
+    sys.argv = sys.argv[ 1:]
+
+if len( sys.argv ) != 3:
+    print USAGE
+    sys.exit( 1 )
+
+if  os.path.isdir(  sys.argv[2] ):
+    print "Removing link target dir:" +  sys.argv[2]
+    shutil.rmtree( sys.argv[2])
+
+link_path = relative_ln_s( sys.argv[1], sys.argv[2] )
+if just_print:
+    print link_path
+else:
+    os.chdir( os.path.dirname( sys.argv[2]))
+    target = os.path.basename( sys.argv[2])
+    if os.path.exists( target ):
+        os.unlink( target)
+    os.symlink( link_path, target)
+
+
diff --git a/spec/controllers/publics_controller_spec.rb b/spec/controllers/publics_controller_spec.rb
index 19c95a70559598f87cd514c4d09fac0240733531..a7d745985e0d009c169b5d965d74bd6e3dfbbc1c 100644
--- a/spec/controllers/publics_controller_spec.rb
+++ b/spec/controllers/publics_controller_spec.rb
@@ -34,6 +34,20 @@ describe PublicsController do
     end
   end
 
+  describe '#hcard' do
+    it 'queries by person id' do
+      post :hcard, :id => user.person.id
+      assigns[:person].should == user.person
+      response.code.should == '200'
+    end
+
+    it 'does not query by user id' do
+      post :hcard, :id => user.id
+      assigns[:person].should be_nil
+      response.code.should == '404'
+    end
+  end
+
   describe 'webfinger' do
     it 'should not try to webfinger out on a request to webfinger' do
       Redfinger.should_not_receive :finger
diff --git a/spec/models/person_spec.rb b/spec/models/person_spec.rb
index defa9f866f35798ca1808ae430e853ac776addde..da535bfe343e4981fdd4e42418d73e6646e31bd3 100644
--- a/spec/models/person_spec.rb
+++ b/spec/models/person_spec.rb
@@ -115,7 +115,7 @@ describe Person do
     end
   end
 
-  describe 'searching' do
+  describe '::search' do
     before do
       @friend_one   = Factory.create(:person)
       @friend_two   = Factory.create(:person)
@@ -159,6 +159,12 @@ describe Person do
       people.include?(@friend_three).should == false
     end
 
+    it 'should yield results on full names' do
+      pending "Not yet implemented."
+      people = Person.search("Casey Grippi")
+      people.should == [@friend_four]
+    end
+
     it 'should search by diaspora_handle exactly' do
       stub_success("tom@tom.joindiaspora.com")
       Person.by_webfinger(@friend_one.diaspora_handle).should == @friend_one
diff --git a/spec/models/photo_spec.rb b/spec/models/photo_spec.rb
index 338e89933f8d549a7298a0f73cf4af4c502ef2ae..a239ec1c45b276c3b51eac40b7c843bbf4c9b675 100644
--- a/spec/models/photo_spec.rb
+++ b/spec/models/photo_spec.rb
@@ -85,25 +85,6 @@ describe Photo do
 
   end
 
-  describe 'with encryption' do
-
-    before do
-      unstub_mocha_stubs
-    end
-
-    after do
-      stub_signature_verification
-    end
-
-    it 'should save a signed photo' do
-      pending "Figure out how to make the photo posting api work in specs, it needs a file type"
-      photo = @user.post(:photo, :album_id => @album.id, :user_file => [File.open(@fixture_name)])
-      photo.save.should == true
-      photo.signature_valid?.should be true
-    end
-
-  end
-
   describe 'remote photos' do
     it 'should write the url on serialization' do
       @photo.image = File.open(@fixture_name)
diff --git a/tmp/.gitkeep b/tmp/.gitkeep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391