You are not logged in.

#1 2008-02-03 18:12:28

dufresnep
Member
Registered: 2008-02-03
Posts: 14

going from secondlife to nunit as root problem

Well, in last 48 to 72 hours, I have been trying to build secondlife
from source on x86_64, with less and less hope after each hours.

Searching for help, I discovered libsecondlife:
http://www.libsecondlife.org/wiki/Main_Page
and http://opensimulator.org/ .

Being in .NET, I hope, or at least was hoping, to have much less
problems compiling it.

So I began to follow instructions at:
http://www.libsecondlife.org/wiki/Getting_Started#Linux

Seems we have in extra: mono, nant and subversion.

So I began to make a NUnit package:

# Contributor: Paul Dufresne <dufresnep@gmail.com>
pkgname=nunit
pkgver=2.4.6
pkgrel=1
pkgdesc="a unit-testing framework for all .Net languages"
arch=('i686' 'x86_64')
url="http://www.nunit.org/index.php"
license=('unknown')
depends=('mono')
makedepends=('mono' 'nant')
provides=()
conflicts=()
replaces=()
backup=()
groups=()
options=()
install=
source=("http://superb-west.dl.sourceforge.net/sourceforge/nunit/NUnit-${pkgver}-src.zip")
noextract=()
md5sums=('a422333d3516d75d5098568fb4984834')

build() {
 cd $startdir/src/src
 nant build-all || return 1
}

Well, the instructions suggest:
sudo nant build-all, well, I tought building in fakeroot would be
enough but this gives me:

==> Starting build()...

** (/usr/share/NAnt/bin/NAnt.exe:8561): CRITICAL **:
_wapi_shm_file_open: shared file
[/root/.wapi/shared_data-myhost-Linux-x86_64-328-11-0] open error:
Permission denied

** (/usr/share/NAnt/bin/NAnt.exe:8561): CRITICAL **: _wapi_shm_attach:
shared file [/root/.wapi/shared_data-myhost-Linux-x86_64-328-11-0]
open error

** ERROR **: file shared.c: line 346 (shm_semaphores_init): assertion
failed: (tmp_shared != NULL)
aborting...
PKGBUILD: line 22:  8561 Segmentation fault      nant build-all

I don't really feel to run it as makepkg --asroot , as I feel it will
mess my installation.

So I am writing this 'Help!' message. ;-)

In case you are curious about my attempts at building a source port
for secondlife, my latest incarnation is:

# This does not work, maybe one day it will. ;-)
# Contributor: Paul Dufresne <dufresnep@gmail.com>

pkgname=secondlife
pkgver=1.18.5.3
pkgrel=1
pkgdesc="a 3-D virtual world entirely built and owned by its residents"
url="http://www.secondlife.com/"
license="GPL"
depends=('gtk2>2.0' 'nss' 'mesa' 'libgl' 'apr-util' 'libstdc++5'
'cairo' 'glib' 'atk' 'sdl' 'libvorbis' 'curl' 'boost'
'gdk-pixbuf' 'pango' # pangoft2 pangox pangoxft vorbisenc vorbisfile
# 'gmobile>2.0' 'gdk>2.0'
)
# the SConstruct have some info like:
# needs: cairo glib-2.0 (2.0???) atk gmobile-2.0 gdk-2.0
gdk-pixbuf-2.0 pango pangoft2
# pangox pangoxft gtk+-2.0 sdl vorbis vorbisenc vorbisfile
makedepends=('scons' 'gcc34' 'flex' 'bison') #    'zlib' 'openssl'
'curl' 'c-ares')
arch=('x86_64') # not tested on 'i686', if you try remove ARCH=x86_64
on scons line
conflicts=('secondlife-bin') # does it?
install=secondlife.install
source=('secondlife.desktop' 'secondlife.install' 'secondlife.launcher'
"http://secondlife.com/developers/opensource/downloads/2007/11/slviewer-src-${pkgver}.tar.gz"
"http://secondlife.com/developers/opensource/downloads/2007/11/slviewer-artwork-${pkgver}.zip"
"'http://secondlife.com/developers/opensource/downloads/2007/11/slviewer-linux-libs-${pkgver}.tar.gz"
# 'http://www.fmod.org/index.php/release/version/fmodapi375linux.tar.gz'
'http://secondlife.com/developers/opensource/downloads/2007/12/llmozlib-src-20071221.tar.gz')
md5sums=('1e94b39e84e74321d40f0ab9fefd3db1'
        'e8222152e75bd8859b72da028fb35963'
        '067f489be9fd2280ce2e12ed94ea7950'
        'c53755a73135168928b9c6f236eebaa6'
        '5fdea9fbbd0a92b907c1a864a8c00160'
        'd1264d2a70f64d8ef1f5fc5b28bcde63'
        '31b014f75100dcb6105202b29e26bc4c')

build() {
   cd $startdir/src/

 msg "We don't include sound for now, this portage does not way
anyway, and adding this"
 msg " force you to become root and rm -r src; rm -r pkg each time
when executed  under fakeroot"
 #   msg "First, let's deal with fmod to have sound!"
 #   msg "it may make the result less open-source!"# the SConstruct
have some info like:
# needs: cairo glib-2.0 atk gmobile-2.0 gdk-2.0 gdk-pixbuf-2.0 pango
pangoft2 pangox pangoxft gtk+-2.0 sdl vorbis vorbisenc vorbisfile
 #   cd fmodapi375linux/
 #   cp api/inc/* ../linden/libraries/i686-linux/include/
 #   cp api/libfmod-3.75.so ../linden/libraries/i686-linux/lib_release_client/
 #   # was causing rights errors, but it seems I had decompressed files as root
 #   sleep 3

   cd $startdir/src/linden
   # Build the stuff
   msg 'Building can take hours! Take a coffee break'
   cd indra
#Following line is to do a quick check that run slow
#scons DISTCC=no BTARGET=client BUILD=releasenoopt MOZLIB=yes

#Following is what you would use for i686, but why would you want to
do that, as binary are already done
#scons DISTCC=no BTARGET=client BUILD=release MOZLIB=yes

# next is my line
# go to src/linden/indra, and do scons --help for the list of options and help
# STANDALONE=yes, will make it use g++ rather g++3.4, you can edit
SConstruct to fix this easily, but because makepkg will overwrite it,
well, ...
# and when using g++ (gcc 4.2.2), then it does not work because it
have new warning, and it is choosing to treat warnings as errors
#BUILD=release or releasenoopt and others, let's take releasenoop for
now, it does not compile anyway, why loose time
scons BUILD=releasenoopt ARCH=x86_64 BTARGET=client DISTCC=no
MOZLIB=yes FMOD=yes GSTREAMER=yes # STANDALONE=yes

# there is warning at the beginning of scons process, they may be
worth to read (if you understand them)

   # Rename Data Directory
#    mv SecondLife_i686_${pkgver}/ secondlife

   # Install Desktop File
#    install -D -m644 $startdir/src/secondlife.desktop \
#        $startdir/pkg/usr/share/applications/secondlife.desktop

   # Install Icon File
#    install -D -m644 $startdir/src/secondlife/secondlife.ico \
#        $startdir/pkg/usr/share/pixmaps/secondlife.ico

   # Install Launcher
 #   install -d $startdir/pkg/usr/bin/
 #   install -D -m755 $startdir/src/secondlife.launcher \
 #       $startdir/pkg/usr/bin/secondlife

   # Move Data to Destination Directory
 #   install -d $startdir/pkg/opt/
 #   mv secondlife/ $startdir/pkg/opt/

 #   # Change Permissions of files to root:games
 #   # chown -R root:20 $startdir/pkg/opt/secondlife
 #   # chmod -R g+rw $startdir/pkg/opt/secondlife
}

Or for a different version:

# This does not work, maybe one day it will. ;-)
# Contributor: Paul Dufresne <dufresnep@gmail.com>

pkgname=secondlife
pkgver=1.18.6.4
pkgrel=1
pkgdesc="a 3-D virtual world entirely built and owned by its residents"
url="http://www.secondlife.com/"
license="GPL"
depends=('gtk2>2.0' 'nss' 'mesa' 'libgl' 'apr-util' 'libstdc++5'
'cairo' 'glib' 'atk' 'sdl' 'libvorbis' 'curl' 'boost'
'gdk-pixbuf' 'pango' # pangoft2 pangox pangoxft vorbisenc vorbisfile
# 'gmobile>2.0' 'gdk>2.0'
)
# the SConstruct have some info like:
# needs: cairo glib-2.0 (2.0???) atk gmobile-2.0 gdk-2.0
gdk-pixbuf-2.0 pango pangoft2
# pangox pangoxft gtk+-2.0 sdl vorbis vorbisenc vorbisfile
makedepends=('scons' 'gcc34' 'flex' 'bison') #    'zlib' 'openssl'
'curl' 'c-ares')
arch=('x86_64') # not tested on 'i686', if you try remove ARCH=x86_64
on scons line
conflicts=('secondlife-bin') # does it?
install=secondlife.install
source=('secondlife.desktop' 'secondlife.install' 'secondlife.launcher'
'http://secondlife.com/developers/opensource/downloads/2008/01/slviewer-src-RC-1.18.6.4.tar.gz'
'http://secondlife.com/developers/opensource/downloads/2008/01/slviewer-artwork-RC-1.18.6.4.zip'
'http://secondlife.com/developers/opensource/downloads/2008/01/slviewer-linux-libs-RC-1.18.6.4.tar.gz'
# 'http://www.fmod.org/index.php/release/version/fmodapi375linux.tar.gz'
'http://secondlife.com/developers/opensource/downloads/2007/12/llmozlib-src-20071221.tar.gz')
md5sums=('1e94b39e84e74321d40f0ab9fefd3db1'
        'e8222152e75bd8859b72da028fb35963'
        '067f489be9fd2280ce2e12ed94ea7950'
        '175e5e2a27cbf461c94059b660caca96'
        'c21f4865537f03086864b9c359a5113b'
        '6610c48ac2208c3a724b56e9bcbe6d84'
        '31b014f75100dcb6105202b29e26bc4c')


build() {
   cd $startdir/src/

 msg "We don't include sound for now, this portage does not way
anyway, and adding this"
 msg " force you to become root and rm -r src; rm -r pkg each time
when executed  under fakeroot"
 #   msg "First, let's deal with fmod to have sound!"
 #   msg "it may make the result less open-source!"# the SConstruct
have some info like:
# needs: cairo glib-2.0 atk gmobile-2.0 gdk-2.0 gdk-pixbuf-2.0 pango
pangoft2 pangox pangoxft gtk+-2.0 sdl vorbis vorbisenc vorbisfile
 #   cd fmodapi375linux/
 #   cp api/inc/* ../linden/libraries/i686-linux/include/
 #   cp api/libfmod-3.75.so ../linden/libraries/i686-linux/lib_release_client/
 #   # was causing rights errors, but it seems I had decompressed files as root
 #   sleep 3

   cd $startdir/src/linden
   # Build the stuff
   msg 'Building can take hours! Take a coffee break'
   cd indra
#Following line is to do a quick check that run slow
#scons DISTCC=no BTARGET=client BUILD=releasenoopt MOZLIB=yes

#Following is what you would use for i686, but why would you want to
do that, as binary are already done
#scons DISTCC=no BTARGET=client BUILD=release MOZLIB=yes

# next is my line
# go to src/linden/indra, and do scons --help for the list of options and help
# STANDALONE=yes, will make it use g++ rather g++3.4, you can edit
SConstruct to fix this easily, but because makepkg will overwrite it,
well, ...
# and when using g++ (gcc 4.2.2), then it does not work because it
have new warning, and it is choosing to treat warnings as errors
#BUILD=release or releasenoopt and others, let's take releasenoop for
now, it does not compile anyway, why loose time
scons BUILD=releasenoopt ARCH=x86_64 BTARGET=client DISTCC=no
MOZLIB=yes FMOD=yes GSTREAMER=yes # STANDALONE=yes

# there is warning at the beginning of scons process, they may be
worth to read (if you understand them)

   # Rename Data Directory
#    mv SecondLife_i686_${pkgver}/ secondlife

   # Install Desktop File
#    install -D -m644 $startdir/src/secondlife.desktop \
#        $startdir/pkg/usr/share/applications/secondlife.desktop

   # Install Icon File
#    install -D -m644 $startdir/src/secondlife/secondlife.ico \
#        $startdir/pkg/usr/share/pixmaps/secondlife.ico

   # Install Launcher
 #   install -d $startdir/pkg/usr/bin/
 #   install -D -m755 $startdir/src/secondlife.launcher \
 #       $startdir/pkg/usr/bin/secondlife

   # Move Data to Destination Directory
 #   install -d $startdir/pkg/opt/
 #   mv secondlife/ $startdir/pkg/opt/

 #   # Change Permissions of files to root:games
 #   # chown -R root:20 $startdir/pkg/opt/secondlife
 #   # chmod -R g+rw $startdir/pkg/opt/secondlife
}

The main problem encountered being:
https://jira.secondlife.com/browse/VWR-4469

But also, if replacing by simply:
# include <ft2build.h>
which may not be a correct fix...

Then I got gdk not installed problem.

If you try these PKGBUILD, please note that we
have distcc (pacman -Sy distcc), so you could get much faster results
using this and using DISTCC=yes .

Also FMod and x86_64 are said to not work together.
Anyway, the SConstruct file (some kind of Makefile in Python) does
deactivate FMod on x86_64.

Avoiding to touch these PKGBUILDs could help you very
much keep your mental sanity. smile

But for now, help is required on nunit.
Well, maybe it not even mandatory for libsecondlife.

Offline

#2 2008-02-03 20:27:26

dufresnep
Member
Registered: 2008-02-03
Posts: 14

Re: going from secondlife to nunit as root problem

about nbuild compilation by nant;
now I just try: nant mono-1.0 release build
from /home/paul/builds/nunit/src/src
but get:

     [nant] /home/paul/builds/nunit/src/src/NUnitCore/core/nunit.core.build build
            Buildfile: file:///home/paul/builds/nunit/src/src/NUnitCore/core/nunit.core.build
            Target framework: Mono 1.0 Profile
            Target(s) specified: build 
            
            
            build:
            
                  [csc] Compiling 58 files to '/home/paul/builds/nunit/src/build/linux/mono/1.0/release/nunit.core.dll'.
                  [csc] /home/paul/builds/nunit/src/src/NUnitCore/core/CoreExtensions.cs(24,41): error CS0246: The type or namespace name `log4net' could not be found. Are you missing a using directive or an assembly reference?
                  [csc] /home/paul/builds/nunit/src/src/NUnitCore/core/CoreExtensions.cs(36,25): error CS0246: The type or namespace name `log4net' could not be found. Are you missing a using directive or an assembly reference?
                  [csc] /home/paul/builds/nunit/src/src/NUnitCore/core/RemoteTestRunner.cs(20,41): error CS0246: The type or namespace name `log4net' could not be found. Are you missing a using directive or an assembly reference?
                  [csc] /home/paul/builds/nunit/src/src/NUnitCore/core/TestContext.cs(158,33): error CS0246: The type or namespace name `log4net' could not be found. Are you missing a using directive or an assembly reference?
                  [csc] /home/paul/builds/nunit/src/src/NUnitCore/core/Builders/TestAssemblyBuilder.cs(21,41): error CS0246: The type or namespace name `log4net' could not be found. Are you missing a using directive or an assembly reference?
                  [csc] /home/paul/builds/nunit/src/src/NUnitCore/core/Extensibility/TestCaseBuilderCollection.cs(24,41): error CS0246: The type or namespace name `log4net' could not be found. Are you missing a using directive or an assembly reference?
                  [csc] Compilation failed: 6 error(s), 0 warnings
            
            BUILD FAILED - 0 non-fatal error(s), 6 warning(s)
            
            /home/paul/builds/nunit/src/src/NUnitCore/core/nunit.core.build(5,6):
            External Program Failed: /usr/lib/pkgconfig/../../lib/mono/1.0/mcs.exe (return code was 1)
            
            Total time: 1.1 seconds.

guess I need to find some kind of log4net module.

Edit: I have found log4net in aur, and was able to built it (adding arch=('x86_64')), and now I have: $pacman -Q log4net
log4net 1.2.9beta-1

But seems to get the same error.

Edit2: hum, doing gacutil -l I see that I have:
...
log4net, Version=1.2.9.0, Culture=neutral, PublicKeyToken=200a2bd1219e83a8
monodoc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756
nunit.core, Version=2.2.0.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77
nunit.framework, Version=2.2.0.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77
nunit.mocks, Version=2.2.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77
nunit.util, Version=2.2.0.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77
...

I guess nunit is coming with mono.
Guess it is time to try to compile libsecondlife then.

Edit3:
yep, libsecondlife built easily in just one minute.

did:

cd
mkdir libsndlife
cd libsndlife
svn co svn://opensecondlife.org/libsl/trunk
cd trunk/
nant
cd bin
then $mono TestClient.exe result in:
Usage: 
TestClient.exe --first firstname --last lastname --pass password --contact "youremail" [--startpos "sim/x/y/z"] [--master "master name"] [--masterkey "master uuid"] --loginuri="uri"
[paul@myhost bin]$

Now I guess I need to find an account to use.

Edit4: Some are listed at:
http://opensimulator.org/wiki/OpenSim:Grids
But now, I feel to sleepy to try.

Edit5: Guess it is call LIBsecondlife for a good reason, this seems to be far from a complete client... guess I should just reinstall in 32 bits and use the binary version of Second life. hmm

Edit6: Hum, even reinstalling in 32 bits and using binary version does not give too good results.
It hangs for me when not staying idle. After hang, only mouse stil move, but nothing else on computer works.
Simplest available option would be to capture with kdump, but it looks so complex that I don't want.

Edit7: Well, I tried to reexecute the PKGBUILD publish here, on i686, with a slightly different scons line.
First, the message have mess a lot the file, guess it would be better to put it in mypkgs, even if it is not known to work.
This time I have used:
scons BUILD=releasefordownload BTARGET=client DISTCC=yes
To my great surprise, it seems to have almost work:
rm -rf newview/SecondLife_i686_1_18_5_3* && newview/viewer_manifest.py --grid=default --channel='Second Life Release' --installer_name=SecondLife_i686_1_18_5_3 --arch=i686
Source tree: newview
Destination tree: newview/packaged
Option: actions = ['copy', 'package']
Option: platform = linux
Option: version = ('1', '18', '5', '3')
Option: installer_name = SecondLife_i686_1_18_5_3
Option: grid =
Option: configuration = Universal
Option: arch = i686
Option: channel = Second Life Release
Processing ../../scripts/messages/message_template.msg => app_settings/message_template.msg
Processing ../../etc/message.xml => app_settings/message.xml
Processing *.pem => None
Processing *.ini => None
Processing *.xml => None
Processing *.vp => None
Processing *.db2 => None
Processing shaders => None
Processing *.llm => None
Processing *.xml => None
Processing *.tga => None
Processing *.ttf => None
Processing *.txt => None
Processing textures => None
Processing paths.xml => None
Processing xui/*/*.xml => None
Processing words.*.txt => None
Processing *.html => None
Processing *.gif => None
Processing *.jpg => None
Processing *.css => None
Processing releasenotes.txt => None
Processing lsl_guide.html => None
Processing gpu_table.txt => None
Processing licenses-linux.txt => licenses.txt
Processing res/ll_icon.ico => secondlife.ico
Processing client-readme.txt => README-linux.txt
Processing wrapper.sh => secondlife
Processing unicode.ttf => unicode.ttf
Processing secondlife-i686-bin-stripped => bin/do-not-directly-run-secondlife-bin
Processing linux_tools/launch_url.sh => launch_url.sh
Processing * => None
Processing featuretable_linux.txt => None
Processing secondlife-i686.supp => None
Processing app_settings/mozilla-runtime-linux-i686 => None
Processing libfmod-3.75.so => None
Traceback (most recent call last):
  File "newview/viewer_manifest.py", line 534, in <module>
    main(srctree=viewer_dir, dsttree=os.path.join(viewer_dir, "packaged"))
  File "newview/../lib/python/indra/util/llmanifest.py", line 214, in main
    wm.do(*args['actions'])
  File "newview/../lib/python/indra/util/llmanifest.py", line 586, in do
    self.construct()
  File "newview/viewer_manifest.py", line 502, in construct
    self.path("libfmod-3.75.so")
  File "newview/../lib/python/indra/util/llmanifest.py", line 576, in path
    self.check_file_exists(src)
  File "newview/../lib/python/indra/util/llmanifest.py", line 541, in check_file_exists
    os.path.normpath(os.path.join(os.getcwd(), path)),))
RuntimeError: Path /home/paul/abs/unsup/secondlife1/src/linden/libraries/i686-linux/lib_release_client/libfmod-3.75.so doesn't exist
scons: *** [newview/SecondLife_i686_1_18_5_3.tar.bz2] Error 1
scons: building terminated because of errors.

which is normal, I had commented out:
#   cd fmodapi375linux/
#   cp api/inc/* ../linden/libraries/i686-linux/include/
#   cp api/libfmod-3.75.so ../linden/libraries/i686-linux/lib_release_client/
#   # was causing rights errors, but it seems I had decompressed files as root
the problem is that doing so in fakeroot, make these copies be own by root.
You then have to be root to undo the changes, and rebuilding give a permission error.
The ideal would be to pause fakeroot, the time to exec those lines.

Edit8: Incredible! I have been playing for almost 2 minutes, (before it suddenly disappeared as if it had crashed), on my
self compiled version!!! Which is much better than on secondlife-bin port. Well, I'll try to post my pkg... after replaying a bit.

Edit9: he he he, I was playing in a window, when I decided to teleport elsewhere.
Suddenly, the screen became completely black. Freaky realistic!
Then I was hang in nowhere land of course.

Edit10: Ok make a first attempt to a port:
search for secondlife in AUR.

Last edited by dufresnep (2008-02-05 04:03:52)

Offline

Board footer

Powered by FluxBB