ERROR: Tech * requires a [..] prerequisite?

Questions, problems and discussion about compiling FreeOrion.

Moderator: Oberlus

Post Reply
Message
Author
connan
Space Krill
Posts: 6
Joined: Sun Dec 16, 2007 10:01 pm
Location: Dresden (Germany)

ERROR: Tech * requires a [..] prerequisite?

#1 Post by connan »

Hello, i'm new here to freeorion and i try to get involved in developement.
After compiling from svn i got the following errors then i try to start freeorion.exe:

C:\FreeOrion_SDK\FreeOrion>freeorion.exe
error at or after the indicated point on line 607:
graphic = ""
^

std::runtime_error exception caught in GUI::Run(): ERROR: Tech "GRO_ENERGY_META" requires a missing or malformed tech as
its prerequisite."
ERROR: Tech "GRO_NANOTECH_MED" requires a missing or malformed tech as its prerequisite."
ERROR: Tech "LRN_AUTOLAB_I" requires a missing or malformed tech as its prerequisite."
ERROR: Tech "LRN_LIGHTHOUSE" requires a missing or malformed tech as its prerequisite."
ERROR: Tech "LRN_STELLAR_TOMOGRAPHY" requires a missing or malformed tech as its prerequisite."
ERROR: Tech "LRN_TRANSCEND" requires a missing or malformed tech as its prerequisite."
ERROR: Tech "LRN_TRANSCEND" requires a missing or malformed tech as its prerequisite."
ERROR: Tech "LRN_TRANSCEND" requires a missing or malformed tech as its prerequisite."

Thank your for help!

btw.: I'd searched a while for an open source project to get involved in. And now I'm glad to found this projekt.

Sorry for my bad english please.

Regards,

connan.

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 13603
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: ERROR: Tech * requires a [..] prerequisite?

#2 Post by Geoff the Medio »

Your errors appear related to my most recent commit. I'm not sure why you're getting them when I don't, though... I don't appear to have missed any files when committing. I doubt it's the case, but could you have built some of the program with a previous revision's version of some files, and then not fully rebuild after updating? If not, you might want to just build the previous revision until I can get this sorted out...

connan
Space Krill
Posts: 6
Joined: Sun Dec 16, 2007 10:01 pm
Location: Dresden (Germany)

Re: ERROR: Tech * requires a [..] prerequisite?

#3 Post by connan »

ok, i tried to update and rebuild (also GG) but no luck so far.. (same errors)
Thank you for your efforts!

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 13603
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: ERROR: Tech * requires a [..] prerequisite?

#4 Post by Geoff the Medio »

What SVN revision are you building now?

connan
Space Krill
Posts: 6
Joined: Sun Dec 16, 2007 10:01 pm
Location: Dresden (Germany)

Re: ERROR: Tech * requires a [..] prerequisite?

#5 Post by connan »

Since 5 minutes: 2268. Error persists.

RtrentC
Space Krill
Posts: 4
Joined: Sun Jun 24, 2007 3:31 pm

Re: ERROR: Tech * requires a [..] prerequisite?

#6 Post by RtrentC »

I am getting the same Error. I hadn't looked at freeorion in awhile so when I updated to rev 2275 it gave me the same error. The runtime error isn't present at rev 2260, but starts at rev 2261.

In my installs I run the following commands.

scons --clean
scons configure prefix=/usr
scons
sudo scons install

OS -- Gentoo.
scons-0.97
python-2.5.1.4
freetype-2.3.4
boost-1.34.1
log4cpp-0.3.4b
devil-1.6.7
SDL-1.2.11
graphviz-2.12
openal-0.0.8
freealut-1.1.0
libogg-1.1.3
libvorbis-1.1.2

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 13603
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: ERROR: Tech * requires a [..] prerequisite?

#7 Post by Geoff the Medio »

I can't do much about this error, since I don't get it myself... My only guess is that something in boost version 1.34.1 parsing has changed such that it doesn't like something about the SVN techs.txt, which is causing the error on line 607, though what about that line or the stuff around it that could be causing problems, I have no idea.

So, try replacing techs.txt with the following:

Code: Select all

TechCategory "LEARNING_CATEGORY"

Tech
    name = "LRN_PHYS_BRAIN"
    description = "LRN_PHYS_BRAIN_DESC"
    short_description = "THEORY_SHORT_DESC"
    techtype = Theory
    category = "LEARNING_CATEGORY"
    researchcost = 1
    researchturns = 1
    prerequisites = []
    unlock = []
    graphic = "tech_icons/The_Physical_Brain.png"

TechCategory "GROWTH_CATEGORY"

Tech
    name = "GRO_PLANET_ECOL"
    description = "GRO_PLANET_ECOL_DESC"
    short_description = "THEORY_SHORT_DESC"
    techtype = Theory
    category = "GROWTH_CATEGORY"
    researchcost = 1
    researchturns = 1
    prerequisites = []
    unlock = []
    graphic = "tech_icons/Planetary_Ecology.png"

Tech
    name = "GRO_GENETIC_ENG"
    description = "GRO_GENETIC_ENG_DESC"
    short_description = "THEORY_SHORT_DESC"
    techtype = Theory
    category = "GROWTH_CATEGORY"
    researchcost = 1
    researchturns = 1
    prerequisites = []
    unlock = []
    graphic = "tech_icons/Genetic_Engineering.png"

Tech
    name = "GRO_MEDICAL_PATH"
    description = "GRO_MEDICAL_PATH_DESC"
    short_description = "THEORY_SHORT_DESC"
    techtype = Theory
    category = "GROWTH_CATEGORY"
    researchcost = 1
    researchturns = 1
    prerequisites = []
    unlock = []
    graphic = "icons/tech/medical_pathology.png"

Tech
    name = "GRO_ENV_ENCAPSUL"
    description = "GRO_ENV_ENCAPSUL_DESC"
    short_description = "THEORY_SHORT_DESC"
    techtype = Theory
    category = "GROWTH_CATEGORY"
    researchcost = 1
    researchturns = 1
    prerequisites = "GRO_PLANET_ECOL"
    unlock = []
    graphic = "tech_icons/Environmental_Encapsulation.png"
If that still doesn't work, remove everything but the first category line, and the first tech in the Learning category.

User avatar
loonycyborg
Compilation Expert
Posts: 219
Joined: Thu Jul 06, 2006 10:30 pm
Location: Russia/Moscow

Re: ERROR: Tech * requires a [..] prerequisite?

#8 Post by loonycyborg »

I am not getting this error with current HEAD revision. I, too, have boost 1.34.1 . But I have python 2.4.4
In Soviet Russia, forum posts YOU!!

RtrentC
Space Krill
Posts: 4
Joined: Sun Jun 24, 2007 3:31 pm

Re: ERROR: Tech * requires a [..] prerequisite?

#9 Post by RtrentC »

Well since I need python-2.5 I will just go to other projects. The error probably is in python. I know that some of the changes that were made to openrpg necessitated upgrading to python-2.5 and wxpython-2.8 I wish you luck in tracking this down, because more and more people will be using python-2.5.

User avatar
Tribaal
Space Krill
Posts: 5
Joined: Mon Jan 07, 2008 6:00 pm
Location: Geneva, Switzerland

Re: ERROR: Tech * requires a [..] prerequisite?

#10 Post by Tribaal »

Exactly the same error with SVN revision 2288.

I use python 2.5, with all the libraries from Ubuntu Gutsy (x64), except for GiGi of course.
All compilation goes fine after required dependencies are installed.

*Sometimes* (apparently at random - multithreading problem?) the error changes to the following:
freeorion: universe/Tech.cpp:438: std::string TechManager::FindIllegalDependencies(): Assertion `!m_techs.empty()' failed.
Aborted (core dumped)
Hope this helps you guys to hammer it out... I'll give the code a looki when I have time (this weekend most probably), since I loved the original series of the game, and really wish to get this working!

- Trib'

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 13603
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: ERROR: Tech * requires a [..] prerequisite?

#11 Post by Geoff the Medio »

Until this can be resolved, I suggest deleting or renaming techs.txt. Depending where the crash happens, the rest of the program might run, although you won't have any techs to research.

User avatar
Tribaal
Space Krill
Posts: 5
Joined: Mon Jan 07, 2008 6:00 pm
Location: Geneva, Switzerland

Re: ERROR: Tech * requires a [..] prerequisite?

#12 Post by Tribaal »

Alright I got it working, and patching is not even required!

Simply enough, just cd to your ~/.freeorion directory and rm everything under there.
What you guys probably did (like me) was to first install the statically built "distribution" (svn snapshot), and decided you need to try and built it yourself for some reason (my static build core dumped on me).

We just forgot to remove the .freeorion contents, and I bet they just are incompatible ;)

My 2c: maybe (if such a thing is feasible) there should be a version test for config files, so as to produce more meaningful messages? Just an idea.
As I said, I'm planning on giving the code a look this weekend, I might as well implement it and submit a patch...

Hope this helps someone else.

- Trib'

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 13603
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: ERROR: Tech * requires a [..] prerequisite?

#13 Post by Geoff the Medio »

Tribaal wrote:maybe (if such a thing is feasible) there should be a version test for config files, so as to produce more meaningful messages? Just an idea.
As I said, I'm planning on giving the code a look this weekend, I might as well implement it and submit a patch...
That would be appreciated.

Post Reply