Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Ugh. (the ut2004 linux procedure)
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Gamers & Players
View previous topic :: View next topic  

Am I crazy or not (please read post before voting).
You so crazy!
21%
 21%  [ 4 ]
No, the procedure sucks ass.
63%
 63%  [ 12 ]
No frickin' way I'm reading that long-ass post!
10%
 10%  [ 2 ]
You're simply incredibly wrong and I have posted below authoritative information proving this.
5%
 5%  [ 1 ]
Total Votes : 19

Author Message
DeathAndTaxes
Tux's lil' helper
Tux's lil' helper


Joined: 27 Mar 2003
Posts: 124

PostPosted: Thu Sep 16, 2004 4:37 am    Post subject: Ugh. (the ut2004 linux procedure) Reply with quote

Here's what's asked of the linux user when all they want to do is patch their ut2004 install from version 3236-r1 (probably a gentoo-specific level) to 3323:

Code:
>>> md5 src_uri ;-) ut2004-lnxpatch3323.tar.bz2
 * Do you accept the terms of this license (ut2003)? [yes/no] yes
 * The installed game takes about 6.8GB of space!
 * This package will need access to 6 cds.

 * If you do not have the CDs, but have the data files
 * mounted somewhere on your filesystem, just export
 * the following variables so they point to the right place:
 *  CD_ROOT_1 CD_ROOT_2 CD_ROOT_3 CD_ROOT_4 CD_ROOT_5 CD_ROOT_6
 * Or, if you have all the files in the same place, or
 * you only have one cdrom, you can export CD_ROOT
 * and that place will be used as the same data source
 * for all the CDs.


 * Please insert cd #1 for ut2004 now !
 * Press return to scan for the cd again
 * or hit CTRL+C to abort the emerge.


Am I alone to think this is utterly ridiculous? Why not just run the original installer and then have *all* successive patches merely apply the patch (*gasp*)?

This franchise has really taken a turn south since the original ut. I support the Unreal franchise, I've bought every PC version of Unreal except for Unreal2. However, it's unreasonable to require the linux users to copy 6 CDs worth of data to their HD so they can export those directories as variables on the command line. Even requiring all 6 CDs to be present at the time of PATCHING is incredible.

I can't seem to remember clearly, but I don't think I even had to have a single CD in the drive for patching the windoze version of ut2004, but I might be wrong...It's been a while since I did that. I remember the CD for UT had to be in the drive as I think some botpack.something files was probably actually getting patched while it copied over.

Am I crazy or am I right?
Back to top
View user's profile Send private message
ScArE2100
n00b
n00b


Joined: 09 Mar 2003
Posts: 20
Location: Washington State

PostPosted: Thu Sep 16, 2004 4:49 am    Post subject: Reply with quote

Yeah I think its dumb too.
Code:
emerge -C ut2004 && cd /mnt/dvdrw && ./linux-installer.sh

is my solution ;)
_________________
School, bored, sleep. My life in 3 words 2 commas and 1 period.
Back to top
View user's profile Send private message
DeathAndTaxes
Tux's lil' helper
Tux's lil' helper


Joined: 27 Mar 2003
Posts: 124

PostPosted: Thu Sep 16, 2004 4:56 am    Post subject: Reply with quote

Ok, I need to back off a bit from my rant...BTW, I got the CDs, not the DVD.

I guess it's actually the ebuild's maintainer's fault. I usually really appreciate maintainers, but I can unpack this tarball manually and apply the patch without even thinking about the CDs.

Shouldn't the ebuild detect that the game is already installed and if so, just unpack the tarball to the appropriate directory? I mean, if I didn't have ut2004 already installed, it'd be neat to actually have this little message telling you how to install ut2004, etc...But if it's already installed, it's completely unnecessary to do anything but unpack the files where they go. Ok, so now you can vote again!
Back to top
View user's profile Send private message
DeathAndTaxes
Tux's lil' helper
Tux's lil' helper


Joined: 27 Mar 2003
Posts: 124

PostPosted: Thu Sep 16, 2004 5:01 am    Post subject: Reply with quote

I think

Code:
 mv /opt/ut2004 /usr/local/games/ut2004 ; emerge --unmerge ut2004


is my solution. I mean, the ebuild is actually making this thing HARDER?!? I rely on the qmail ebuild to do sooo many things right, but this is an excellent example of how to maintain a package in portage wrongly, IMO.

I usually really respect and appreciate package maintainers as they usually have the most thankless job in the entire gentoo experience...However, we should NOT accept this ebuild into portage in it's current state.

(note, this is not me volunteering to maintain the package, simply that the current ebuild is actually harder than just handling this package outside of portage manually)
Back to top
View user's profile Send private message
grenouille
Tux's lil' helper
Tux's lil' helper


Joined: 12 Jun 2004
Posts: 97

PostPosted: Thu Sep 16, 2004 10:12 am    Post subject: Reply with quote

The problem isn't the ebuild or the maintainer or the game itself...

The problem is the way portage works. It doesn't update things, it installs the new version and removes the former one. So I dunno if for now it's possible to have a game like ut2004 upgraded with portage without reinstalling the whole thing :|
Back to top
View user's profile Send private message
Naib
Watchman
Watchman


Joined: 21 May 2004
Posts: 6065
Location: Removed by Neddy

PostPosted: Thu Sep 16, 2004 10:44 am    Post subject: Reply with quote

Yes
It is how Portage Work - doing what is needed for UT patch would go against the philosopy of the Portage.

It is annoying but still. I use Portage with UT2004 to tell me when a new patch is out (if I havn't spotted it before).

I use my install script to install it and test the game.

I then just

#emerge inject games-fps/ut2004-3323

To let portage "think" I emerged it

Has worked allways
Back to top
View user's profile Send private message
tactless
l33t
l33t


Joined: 14 Jul 2002
Posts: 642
Location: Mitzpe Adi, Israel

PostPosted: Thu Sep 16, 2004 11:47 am    Post subject: Reply with quote

Well, as people have mentioned, portage simply doesn't DO patching.

But...

If I am not mistaken, the UT2004 patches are not cumulative: to get version X, you do not need versions B through W, just "version A" - i.e, the base install.
Actually, this is true for most commercial games. So I have a bit of a radical suggestion, but hey - it might work. If you like this, say so. Who knows, I might get highlighted in the next GWN :)

Let's say you've installed a commercial game on your system, using the CD-included installer. You put it in /usr/local/games/doom3/.
Now, you want to patch doom3 to the latest version in portage. The ebuild will be called doom3-patches.
Code:
# emerge -u doom3-patches
Latest patch version is 4567. Checking currently installed version...
(Note: If possible, not the version portage installed, the version the game has! The mechanism to check this will be in programmed the ebuild)
Error: Currently installed location is not known. Please add the following line to /etc/portage/package.locations (create this file if it does not exist):
doom3             /path/to/doom3/

# echo "doom3   /usr/local/games/doom3" >> /etc/portage/package.locations
# emerge -u doom3-patches
Latest patch version is 4567. Checking currently installed version... 4558.
Patching...
>>> bla
>>> bla bla
>>> bla bla bla bla
>>> bla bla bla bla bla
> Done!


Of course, it could be a good idea to add a basic doom3 ebuild which installs from the CD, and adds the appropraite info to /etc/portage/package.locations automatically.

What do you think?
_________________
Tactless

"If it wasn't for fog, the world would run at a really crappy framerate."

Jabber: tactless@amessage.info
Back to top
View user's profile Send private message
GrayFox
Apprentice
Apprentice


Joined: 24 Jan 2004
Posts: 183
Location: Germany

PostPosted: Thu Sep 16, 2004 2:40 pm    Post subject: Reply with quote

There are two ways I can think of that could make you life easier. First one would be to write your own ut2004-patch ebuild that is just copying the patch files to the ut dir. Should be very easy to maintain. Second you could patch you ut manually and then inject the new ut version.
EDIT: oops I should have read tactless' post more carefully :roll:
_________________
Random Stuff
Back to top
View user's profile Send private message
BlackEdder
Advocate
Advocate


Joined: 26 Apr 2004
Posts: 2588
Location: Dutch enclave in Egham, UK

PostPosted: Thu Sep 16, 2004 2:46 pm    Post subject: Reply with quote

I always start emerge, then stop it after the license agreement, it will have downloaded the patch by then to /usr/portage/distfiles. Install thi manually and inject the new ut version:) it's not pretty, but it works
Back to top
View user's profile Send private message
GrayFox
Apprentice
Apprentice


Joined: 24 Jan 2004
Posts: 183
Location: Germany

PostPosted: Thu Sep 16, 2004 6:01 pm    Post subject: Reply with quote

Ok I tried to make an ebuild that checks /etc/portage/package.games and looks for a line like:
Code:
ut2004 /path/to/ut2004


It's really just a workaround for the stupid portage update issue and additionally you can also patch ut if you have installed it with the run file.
Code:
inherit games

DESCRIPTION="UT2004 Patch"
HOMEPAGE="http://www.icculus.org/"
SRC_URI="http://0day.icculus.org/ut2004/ut2004-lnxpatch${PV}.tar.bz2"

LICENSE="ut2003"
SLOT="0"
KEYWORDS="x86 amd64"
IUSE=""
RESTRICT="nostrip"

DEPEND=""
RDEPEND="amd64? ( app-emulation/emul-linux-x86-xlibs )"

S="${WORKDIR}"

pkg_setup() {
    cat /etc/portage/package.games || die "no /etc/portage/package.games found!"
    for i in $( grep ut2004 /etc/portage/package.games );do
    PATHUT=$i
    done
    games_pkg_setup
}

dir="${PATHUT}"
Ddir="${D}${dir}"

src_unpack() {
    unpack ut2004-lnxpatch${PV}.tar.bz2
}

src_install() {
    dodir ${Ddir}
    insinto ${PATHUT}Animations/
    doins UT2004-Patch/Animations/*
    insinto ${PATHUT}Help/
    doins UT2004-Patch/Help/*
    insinto ${PATHUT}Textures/
    doins UT2004-Patch/Textures/*
    insinto ${PATHUT}System/
    doins UT2004-Patch/System/*
}

pkg_postinst() {
    einfo "UT2k4 Patched"
}
             


There are some bugs I didn't take care of and they're pretty obvious:
1. If you create the package.games file make sure it has the ut2004 line with the path in it and make sure it's correct!
2. The Patches might have files I didn't include in the doins insinto stuff... looks like for example v 3323 and 3270 are slightly different.(v3270 doesn't have Animations I think)

Well I'm sure there's somebody out there who can fix that because my ebuild/bash skills are minimal or maybe he even writes an even better ebuild.

If you want to try it out copy the file ut2004-patch-{VERSION}.ebuild into you're portdir_overlay/games-fps/ut2004-patch/
Then run
Code:
ebuild ut2004-patch-{VERSION}.ebuild digest
emerge ut2004-patch

_________________
Random Stuff
Back to top
View user's profile Send private message
deathdruid
Guru
Guru


Joined: 25 Jul 2002
Posts: 343
Location: Philadelphia, PA, USA

PostPosted: Thu Sep 16, 2004 8:24 pm    Post subject: Reply with quote

What we need is two ebuilds, one called ut2004-data and the other ut2004-bin. Only the ut2004-bin ebuild should be run for patches that do not affect data files.
Back to top
View user's profile Send private message
Naib
Watchman
Watchman


Joined: 21 May 2004
Posts: 6065
Location: Removed by Neddy

PostPosted: Thu Sep 16, 2004 8:27 pm    Post subject: Reply with quote

again I stress:

How would you un-emerge a patch if you had to (like if a patch turned out to be dodgy)

The portage system does not cater for what would be needed - ie

When a patch is emerged a list of all files being replaced is taken and these files put into a bachup.tar.gz within the ut2004 install directory.

If for some reason you have to un-emerge the patch, portage deletes the files the ebuild merged in BUT it would then have to unzip the archive and install those files
Back to top
View user's profile Send private message
GrayFox
Apprentice
Apprentice


Joined: 24 Jan 2004
Posts: 183
Location: Germany

PostPosted: Thu Sep 16, 2004 8:33 pm    Post subject: Reply with quote

Well can you do this when you manually patch UT? Can you actually tell me a program which you can "un-patch" like that? I don't think so. Besides copying the old patch over the new one(or doing a emerge =ut2004-patch-{older-version}) does downgrade ut.
_________________
Random Stuff
Back to top
View user's profile Send private message
deathdruid
Guru
Guru


Joined: 25 Jul 2002
Posts: 343
Location: Philadelphia, PA, USA

PostPosted: Thu Sep 16, 2004 8:41 pm    Post subject: Reply with quote

I realize that it would have to redo all the files apart from the data files even if they were not part of the patch, but for me the biggest anoyance is the time it takes to copy the large data files. So the ut2004-bin/ut2004-data idea works fine for me.

As for uninstalling, you would unmerge the latest patch and re-emerge the previous version.
Back to top
View user's profile Send private message
GrayFox
Apprentice
Apprentice


Joined: 24 Jan 2004
Posts: 183
Location: Germany

PostPosted: Thu Sep 16, 2004 8:49 pm    Post subject: Reply with quote

Maybe I'm just too stupid but...
Isn't that exactly what I meant? You have the normal ut2004 ebuild. For a first installation or if it's broken etc. Then when you want to patch it you use ut2004-patch. Then if that patch breaks anything you can just emerge an earlier patch with that ebuild...
I still don't get your point sorry.
_________________
Random Stuff
Back to top
View user's profile Send private message
deathdruid
Guru
Guru


Joined: 25 Jul 2002
Posts: 343
Location: Philadelphia, PA, USA

PostPosted: Thu Sep 16, 2004 9:00 pm    Post subject: Reply with quote

Here's the thing. I want ut2004 to be my application. Not ut2004 + ut2004-patch. I don't want to do "emerge ut2004; emerge ut-2004-patch", just "emerge ut2004".

Your version:

ut2004 --> original ut2004 off cd + data files
ut2004-patch --> new files in patch

My version:

ut2004 --> application binaries and other files, but no data files
(depends on)
ut2004-data --> data files

This is not saying that your ebuild idea does not work, I just like mine better.
Back to top
View user's profile Send private message
Naib
Watchman
Watchman


Joined: 21 May 2004
Posts: 6065
Location: Removed by Neddy

PostPosted: Thu Sep 16, 2004 9:34 pm    Post subject: Reply with quote

GrayFox wrote:
Well can you do this when you manually patch UT? Can you actually tell me a program which you can "un-patch" like that? I don't think so. Besides copying the old patch over the new one(or doing a emerge =ut2004-patch-{older-version}) does downgrade ut.


my point is that is how Portage operates. Thats all
Back to top
View user's profile Send private message
GrayFox
Apprentice
Apprentice


Joined: 24 Jan 2004
Posts: 183
Location: Germany

PostPosted: Thu Sep 16, 2004 10:12 pm    Post subject: Reply with quote

Ah now I get it. The only problem then is what if not all files are included in the next patch? For example in 3270 There is no Animations folder(correct me if I'm wrong) but in 3323 there is one. Of course the idea is really good but hard to realize.
_________________
Random Stuff
Back to top
View user's profile Send private message
UncleOwen
Veteran
Veteran


Joined: 27 Feb 2003
Posts: 1493
Location: Germany, Hamburg

PostPosted: Thu Sep 16, 2004 11:48 pm    Post subject: Reply with quote

@Grayfox: They will be.

tactless wrote:
If I am not mistaken, the UT2004 patches are not cumulative: to get version X, you do not need versions B through W, just "version A" - i.e, the base install.
Back to top
View user's profile Send private message
tactless
l33t
l33t


Joined: 14 Jul 2002
Posts: 642
Location: Mitzpe Adi, Israel

PostPosted: Fri Sep 17, 2004 12:16 am    Post subject: Reply with quote

Okay, since you seem to like my idea, I'll address some of the issues that have been raised.

deathdruid: There is no need to make a distinction between data and binary files (both of which, actually, are binary data :)). Patches update both. Even what you call plain 'data' has scripting information that changes with the patches. It makes no sense to keep separate ebuilds. Rather, an ebuild for the commercially distributed (CD, DVD) version, and an ebuild for patches.
Your thinking works well for many other projects, which do have a nice split between binary versions and data versions. UT2004, however, updates all in one fell swoop, so this split cannot be reliably done.
Naib: As for patch backrolling, this would be complicated under any system - not just portage. Basically, the easiest way to unroll would be to reinstall the CD version and possible install a previous patch version (usually the patch alone will suffice). For better speed, you might want to check the creation timestamps on all files. Anything newer than the CD/DVD version gets replaced by the original version. Then you can apply a patch.

Overall, it would be nice to get all this in one ebuild - have portage realize when the game is already installed and all, but I'm pretty sure that this would require a package to depend on a previous version of itself, which portage wouldn't like.
_________________
Tactless

"If it wasn't for fog, the world would run at a really crappy framerate."

Jabber: tactless@amessage.info
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Gamers & Players All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum