ikiwiki-makerepo: Avoid using abs_path, as it apparently fails on nonexistant directo...
authorJoey Hess <joey@gnu.kitenet.net>
Tue, 5 May 2009 18:15:28 +0000 (14:15 -0400)
committerJoey Hess <joey@gnu.kitenet.net>
Tue, 5 May 2009 18:15:28 +0000 (14:15 -0400)
debian/changelog
doc/setup/discussion.mdwn
ikiwiki-makerepo

index ba67ce8c784b7c1b28dae67a27b4015412a4c06b..ae7ce90bef4bbbce89b508aec68ce64799c4636c 100644 (file)
@@ -1,6 +1,9 @@
 ikiwiki (3.12) UNRELEASED; urgency=low
 
   * Re-enable python-support and add python:Depends to control file.
+  * ikiwiki-makerepo: Avoid using abs_path, as it apparently
+    fails on nonexistant directories with some broken perl
+    versions.
 
  -- Joey Hess <joeyh@debian.org>  Mon, 04 May 2009 19:17:39 -0400
 
index ca25ab4a184948a2a1fa3d9c2ee91414a3e03ffa..36bd0768dc7296bb27ef3074fa4027319d18644f 100644 (file)
@@ -96,31 +96,49 @@ What is the syntax for specifying the adminuser as an openid user?  I've tried a
 
 ----
 
-I apologize if this is the incorrect forum for this question, but I am trying to get ikiwiki set up and running with git.  I followed all the directions and all seems to work until I go back and try to make changes.  The steps I am performing:
+I apologize if this is the incorrect forum for this question, but I am
+trying to get ikiwiki set up and running with git.  I followed all the
+directions and all seems to work until I go back and try to make changes.
+The steps I am performing:
 
     cd $SRCDIR  (e.g. ~/ikisrc)
     vim index.mdwn (add a couple lines)
     git commit -a -m 'test'
     git push
 
-I then get a long error message which reads in part "You asked me to pull without telling me which branch you
-want to merge with, and 'branch.master.merge' in your configuration file does not tell me either." From that point on, I get:
+I then get a long error message which reads in part "You asked me to pull
+without telling me which branch you want to merge with, and
+'branch.master.merge' in your configuration file does not tell me either."
+From that point on, I get:
 
     sws@odin:~/dev/ikisrc$ git push
     To /home/git/repos/myikiwiki.git
      ! [rejected]        master -> master (non-fast forward)
     error: failed to push to '/home/git/repos/myikiwiki.git'
 
-If I do a git clone ssh://odin/path/to/$REPOSITORY from another machine and try to edit I get the same error sequence.  What am I doing wrong?
+If I do a git clone ssh://odin/path/to/$REPOSITORY from another machine and
+try to edit I get the same error sequence.  What am I doing wrong?
+
+> I don't know. The only time I have seen this message is when
+> the master git repository was not bare. All current instructions and
+> `ikiwiki-makerepo` have a proper bare repo used for the master
+> repository, but perhaps you followed some old, broken instructions, or 
+> forgot to make it bare? --[[Joey]] 
 
 -----
 
-I follow every steps of the setup procedure, change some templates and tried to modify some page through the web but was not able to do so. Every page seems to be locked by the adminuser user. When I remove the adminuser in the setup file, every ran fine. Did I miss something ? What is exactly the adminuser supposed to be allowed to ? Is he the only user allowed to modify pages ?
+I follow every steps of the setup procedure, change some templates and
+tried to modify some page through the web but was not able to do so. Every
+page seems to be locked by the adminuser user. When I remove the adminuser
+in the setup file, every ran fine. Did I miss something ? What is exactly
+the adminuser supposed to be allowed to ? Is he the only user allowed to
+modify pages ?
 
 > This was a bug in ikwiki that was fixed in version 2.44. --[[Joey]]
 
 -----
-I hope you guys can put up with an absolute newbie. I am fairly new to linux and completely new to Perl. I have just installed MoinMoin locally in my PC, running ubuntu 8.4 and was about to use it until I ran into your ikiwiki. I thought ikiwiki is a better fit for what I want to do, so am seriously considering installing it as well in ubuntu. Except that the install seems way beyond my understanding.
+
+pI hope you guys can put up with an absolute newbie. I am fairly new to linux and completely new to Perl. I have just installed MoinMoin locally in my PC, running ubuntu 8.4 and was about to use it until I ran into your ikiwiki. I thought ikiwiki is a better fit for what I want to do, so am seriously considering installing it as well in ubuntu. Except that the install seems way beyond my understanding.
 
 Do i need to install git first? Which git -- the git-core? Ubuntu's instructions on installing the git-core is: "sudo apt-get install git-core". Is that it? Do I need to do a git-init as well, or will the ikiwiki-makerepo handle that? If I have to do a git-init as well, what --share values should I specify?
 
@@ -168,7 +186,8 @@ I setup ikiwiki on a fedora 10 machine and I am using apache as my http server.
 
 ----
 
-/etc/ikiwiki/auto.setup tries to get abs_path of a non-existent "repository" path (in ikiwiki-makerepo), and that doesn't work in my perl:
+/etc/ikiwiki/auto.setup tries to get abs_path of a non-existent
+"repository" path (in ikiwiki-makerepo), and that doesn't work in my perl:
 
 <pre>
 [mort@localhost ~]$ perl -e 'use Cwd q{abs_path}; print abs_path("/var")'
@@ -210,3 +229,7 @@ $
 
 Can't ikiwiki's "make test" perhaps test for this, so that one knows something will go wrong?
 -- Ivan Z.
+
+> FWIW, I tried the same thing with perl 5.8.8 from Debian etch, and its
+> Cwd does not have the problem. But I've modified `ikiwiki-makerepo` to
+> avoid using `abs_path` this way anyhow. --[[Joey]] 
index 31053503066e493a4638a3d9d514440d40256a5e..7f82e717715ef8f446f941f36a154757d6f106ec 100755 (executable)
@@ -29,7 +29,7 @@ if [ "$rcs" != mercurial ] && [ "$rcs" != bzr ]; then
                echo "repository $repository already exists, aborting" >&2 
                exit 1
        fi
-       repository="$(perl -e 'use Cwd q{abs_path}; $r=shift; $r=~s/\/*$//; print abs_path($r)' "$repository")"
+       repository="$(perl -e 'use Cwd; $r=shift; $r=getcwd.q{/}.$r if $r!~m!^/!; print $r' "$repository")"
        if [ -z "$repository" ]; then
                echo "internal error finding repository abs_path" >&2
                exit 1