Jump to content
The Dark Mod Forums

Compiling DarkRadiant for Ubuntu


Recommended Posts

This is a continuation from:

 

http://forums.thedarkmod.com/index.php?showt...st&p=174689

 

Current status:

 

* Installed VirtualBox 2.1 from SUN (the OpenSource edition is with v1.5.6 quite outdated and doesn't run too well)

* managed to install Ubuntu Server edition 7.10

* switched it to the generic kernel (so it will also run with VirtrualBox 1.5.6)

* installed build-essential, the nec libraries, SVN and mc

* checkout DR source code tree

* run configure and install other missing libraries

* finally compile DR

 

The last step is still running but it should complete in an hour at most.

 

Also, I moved around the deb files in my local repository so we have subdirs for each Ubuntu/Kubuntu release, so we don't have to worry about the deb file names being the same. Saw a few remnants of my wrong named architecture ("i386, amd64" creates an architecture "i386," :) and removed that.

 

Once the compile and the .deb are finished I will nuke the repository on bloodgate and replace it with the updated copy from my local repo, to make sure no old files are left over.

 

What's then left is:

 

* clone the VDI (virtualbox image) file and update it to Ubuntu 8.04, trigger a new compile of DR

* clone that VDI (virtualbox image) file again, update it to Ubuntu 8.10, trigger a new compile of DR

 

After that, we need to come up with a way I can distribute these images to interested people. My estimate is that it will be 400 Mbyte for each, but I don't know exactly yet.

"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

 

"Remember: If the game lets you do it, it's not cheating." -- Xarax

Link to comment
Share on other sites

Meh, building the deb doesn't seem to re-use the already compiled files, so it will be another hour or so...

"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

 

"Remember: If the game lets you do it, it's not cheating." -- Xarax

Link to comment
Share on other sites

Okay, Ubuntu 7.10 is done now. I got a shiny new VirtualBox Image file and a compiled .deb :)

 

Also I updated the /packages on bloodgate.com with the new directory layout and also fixed the config files so the package DB only contains the releases that actually match the Ubuntu release. So hardy users won't see the gutsy packages anymore etc. :)

 

Orbweaver & Greebo: if you want to compile DR .debs and put them into the repository, please nuke your local copy of the /packages directory and re-download a fresh copy from bloodgate. Otherwise, we end up with some stales files again. Sorry for the inconvience, didn't know better yesterday :)

 

Currently, the following .debs exist:

 

* 7.10 32bit 0.9.9 (current SVN, 32bit)

* 8.04 32bit 0.9.9 (current SVN, 32bit & 64bit), 0.9.7 (32bit) and 0.9.9-1 (32bit)

 

Since it is getting late I now have postponed producing 8.04 and 8.10 VDIs and packages, as well as 64bit for tomorrow.

"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

 

"Remember: If the game lets you do it, it's not cheating." -- Xarax

Link to comment
Share on other sites

Okay, Ubuntu 7.10 is done now. I got a shiny new VirtualBox Image file and a compiled .deb :)

 

VirtualBox is one way of doing it, PBuilder is probably easier though. It uses a chroot environment and installs packages from the other distribution's repositories, rather than using a complete VM installation. I guess if you actually want to fix and develop on the other distribution, rather than simply build, then the VM would be more powerful.

 

* 7.10 32bit 0.9.9 (current SVN, 32bit)

 

Damn, I forgot to commit the change to the Debian changelog (now done). If your 7.10 package has the .desktop file in it, it should be 0.9.9-1.

Link to comment
Share on other sites

VirtualBox is one way of doing it, PBuilder is probably easier though. It uses a chroot environment and installs packages from the other distribution's repositories, rather than using a complete VM installation. I guess if you actually want to fix and develop on the other distribution, rather than simply build, then the VM would be more powerful.

 

And you are telling me that now ...

 

Edit: The virual containers have the advantage to be also be usable on Windows, so you don't need Ubuntu at all to compile DR for it.

 

Damn, I forgot to commit the change to the Debian changelog (now done). If your 7.10 package has the .desktop file in it, it should be 0.9.9-1.

 

it generated a .desktop file, but I did not put these into the same directory as the .deb file. Should I update SVN and compile again or is there a shorter way?

"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

 

"Remember: If the game lets you do it, it's not cheating." -- Xarax

Link to comment
Share on other sites

  • 4 weeks later...

Yet another compile error under Ubuntu:

 

make[2]: Entering directory `/home/te/src/darkradiant/radiant'
g++ -DHAVE_CONFIG_H -I. -I..  -DPKGLIBDIR='"/usr/local/lib/darkradiant"' -DPKGDATADIR='"/usr/local/share/darkradiant"' -I../include -I../libs -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/pixman-1   -I/usr/include/gtkglext-1.0 -I/usr/lib/gtkglext-1.0/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/cairo -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/pixman-1 -I/usr/include/atk-1.0   -I/usr/include/libxml2	  -g -O2  -DPOSIX -MT darkradiant-BrushModule.o -MD -MP -MF .deps/darkradiant-BrushModule.Tpo -c -o darkradiant-BrushModule.o `test -f 'brush/BrushModule.cpp' || echo './'`brush/BrushModule.cpp
In file included from brush/BrushModule.cpp:36:
../libs/stringio.h: In function ‘StringExportCallback makeSizeStringExportCallback(const Caller&)’:
../libs/stringio.h:450: error: ‘SizeToString’ was not declared in this scope
../libs/stringio.h:450: error: template argument 3 is invalid

"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

 

"Remember: If the game lets you do it, it's not cheating." -- Xarax

Link to comment
Share on other sites

Huh, this function isn't even used, I'm just going to kick that cruft from the codebase.

 

edit: gone. Does it compile now?

 

No, got a different error :)

 

darkradiant-Map.o: In function `map::Map::save()':
/home/te/src/darkradiant/radiant/map/Map.cpp:471: undefined reference to `ui::ScreenUpdateBlocker::ScreenUpdateBlocker(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/home/te/src/darkradiant/radiant/map/Map.cpp:499: undefined reference to `ui::ScreenUpdateBlocker::~ScreenUpdateBlocker()'
/home/te/src/darkradiant/radiant/map/Map.cpp:499: undefined reference to `ui::ScreenUpdateBlocker::~ScreenUpdateBlocker()'
darkradiant-Map.o: In function `map::Map::saveSelected(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/home/te/src/darkradiant/radiant/map/Map.cpp:578: undefined reference to `ui::ScreenUpdateBlocker::ScreenUpdateBlocker(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/home/te/src/darkradiant/radiant/map/Map.cpp:589: undefined reference to `ui::ScreenUpdateBlocker::~ScreenUpdateBlocker()'
/home/te/src/darkradiant/radiant/map/Map.cpp:589: undefined reference to `ui::ScreenUpdateBlocker::~ScreenUpdateBlocker()'
darkradiant-Map.o: In function `map::Map::saveDirect(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/home/te/src/darkradiant/radiant/map/Map.cpp:558: undefined reference to `ui::ScreenUpdateBlocker::ScreenUpdateBlocker(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/home/te/src/darkradiant/radiant/map/Map.cpp:571: undefined reference to `ui::ScreenUpdateBlocker::~ScreenUpdateBlocker()'
/home/te/src/darkradiant/radiant/map/Map.cpp:571: undefined reference to `ui::ScreenUpdateBlocker::~ScreenUpdateBlocker()'
darkradiant-mainframe_old.o: In function `RefreshShaders()':
/home/te/src/darkradiant/radiant/mainframe_old.cpp:663: undefined reference to `ui::ScreenUpdateBlocker::ScreenUpdateBlocker(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/home/te/src/darkradiant/radiant/mainframe_old.cpp:675: undefined reference to `ui::ScreenUpdateBlocker::~ScreenUpdateBlocker()'
/home/te/src/darkradiant/radiant/mainframe_old.cpp:675: undefined reference to `ui::ScreenUpdateBlocker::~ScreenUpdateBlocker()'
darkradiant-ModelCache.o: In function `model::ModelCache::refreshModels()':
/home/te/src/darkradiant/radiant/referencecache/ModelCache.cpp:147: undefined reference to `ui::ScreenUpdateBlocker::ScreenUpdateBlocker(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/home/te/src/darkradiant/radiant/referencecache/ModelCache.cpp:157: undefined reference to `ui::ScreenUpdateBlocker::~ScreenUpdateBlocker()'
/home/te/src/darkradiant/radiant/referencecache/ModelCache.cpp:157: undefined reference to `ui::ScreenUpdateBlocker::~ScreenUpdateBlocker()'
collect2: ld returned 1 exit status
make[2]: *** [darkradiant] Error 1

"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

 

"Remember: If the game lets you do it, it's not cheating." -- Xarax

Link to comment
Share on other sites

Ah, ok, just forget it - I'll fix these next time I switch to Ubuntu.

 

Please post or send me a PM, I wanted to use the new "align texture on adjacent faces" feature and am waiting for a newly compiled DR here ;)

"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

 

"Remember: If the game lets you do it, it's not cheating." -- Xarax

Link to comment
Share on other sites

Don't wait for it. But you can also revert to a previous revision just fine to use that feature - you don't need to have the latest SVN revision for that.

 

Problem is I don't know which revision is the last one that compiles under Linux ;)

"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

 

"Remember: If the game lets you do it, it's not cheating." -- Xarax

Link to comment
Share on other sites

You posted the revision yourself in the public forums, didn't you? 4021?

 

Yeah, but I was under the impression that is not the one with the texture alignment feature. *goes off to read darkradiant website again :)

"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

 

"Remember: If the game lets you do it, it's not cheating." -- Xarax

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent Status Updates

    • nbohr1more

      Was checking out old translation packs and decided to fire up TDM 1.07. Rightful Property with sub-20 FPS areas yay! ( same areas run at 180FPS with cranked eye candy on 2.12 )
      · 1 reply
    • taffernicus

      i am so euphoric to see new FMs keep coming out and I am keen to try it out in my leisure time, then suddenly my PC is spouting a couple of S.M.A.R.T errors...
      tbf i cannot afford myself to miss my network emulator image file&progress, important ebooks, hyper-v checkpoint & hyper-v export and the precious thief & TDM gamesaves. Don't fall yourself into & lay your hands on crappy SSD
       
      · 3 replies
    • OrbWeaver

      Does anyone actually use the Normalise button in the Surface inspector? Even after looking at the code I'm not quite sure what it's for.
      · 7 replies
    • Ansome

      Turns out my 15th anniversary mission idea has already been done once or twice before! I've been beaten to the punch once again, but I suppose that's to be expected when there's over 170 FMs out there, eh? I'm not complaining though, I love learning new tricks and taking inspiration from past FMs. Best of luck on your own fan missions!
      · 4 replies
×
×
  • Create New...