Version: (using KDE KDE 3.2.2) Installed from: FreeBSD Ports OS: FreeBSD kgoldrunner installs leveldata like this cd $(DESTDIR)$(gamedatadir) && tar -xf $$pwd/levels.tar ;\ chown -R root.root levels 2> /dev/null || true ;\ chmod 644 levels/* 2> /dev/null || true This does not work on FreeBSD, which has a POSIX compliant chown and does not understand a period (.) as user/group separator, instead it wants a colon (:).
Also, group "root" is not always appropriate, *BSD for example use the group "wheel" instead.
Might be easier to store the levels untarred in CVS.
CVS commit by schrot: fix kgoldrunner bugs #82584 and #83512 CCMAIL: 82584-done@bugs.kde.org CCMAIL: 83512-done@bugs.kde.org M +1 -1 gamedata/Makefile.am 1.13 M +6 -3 src/kgoldrunner.cpp 1.17 M +2 -0 src/kgrgame.cpp 1.18 --- kdegames/kgoldrunner/gamedata/Makefile.am #1.12:1.13 @@ -9,5 +9,5 @@ pwd=`cd $(srcdir) && pwd` ;\ cd $(DESTDIR)$(gamedatadir) && tar -xf $$pwd/levels.tar ;\ - chown -R root.root levels 2> /dev/null || true ;\ + chown -R root:root levels 2> /dev/null || true ;\ chmod 644 levels/* 2> /dev/null || true --- kdegames/kgoldrunner/src/kgoldrunner.cpp #1.16:1.17 @@ -939,7 +939,10 @@ void KGoldrunner::setKey (KBAction movem } - if (! hero->started) // Start when first movement + if ( game->getLevel() != 0 ) + { + if (! hero->started ) // Start when first movement game->startPlaying(); // key is pressed ... game->heroAction (movement); + } } --- kdegames/kgoldrunner/src/kgrgame.cpp #1.17:1.18 @@ -112,4 +112,6 @@ void KGrGame::startLevel (int startingAt if (selectedLevel > 0) { // If OK, start the selected game and level. newGame (selectedLevel, selectedGame); + } else { + level = 0; } }
"group" is still hardcoded as "root", which does not exist on *BSD
The bug reporter has devised a workaround, but long-term I plan to change the game-file format, to avoid the use of "tar" and non-standard install, and so this troublesome bit of script will be deleted eventually.