^thehatsrule^
Group: Members
Posts: 3275
Joined: July 2006 |
|
Posted: Nov. 28 2006,19:39 |
|
A quick (and dirty) guide. This was mostly done from http://wiki.x.org/wiki/ModularDevelopersGuide (And from the XOrg mailing-list archive)
This has been tested with XOrg 7. XOrg-git (to be 7.3 I gather, tested as of mid-Nov. '06) may be added later.
The order of installing the following stuff should be fine... please notify if they aren't.
What I used:
Fresh DSL livecd boot, nothing extra. Tested with 1.5 and 3.01 as user dsl. Plenty of free ram. And cpu cycles. And free disk space - about 3gb should be sufficient (depending on how much you install, and where you get your downloads).
mydsl: gcc1-with-libs gnu-utils
Note: I suppose you could use gcc-2.95 to conform with the kernel
extra: perl-modules-stripped
Note: Since perl 5.8.0 is included in DSL, but is a stripped version, I created this package to house some required files.
Taken from a 5.8.x perl package, you'll need /usr/share/perl/5.8.0/File/Basename.pm /usr/share/perl/5.8.0/File/stat.pm /usr/share/perl/5.8.0/File/Compare.pm /usr/share/perl/5.8.0/File/Copy.pm /usr/share/perl/5.8.0/Class/Struct.pm (this was for git, I can't remember if there were less just for 7.0)
---------------------------------------- For the following: - download them - unpack them via tar (or whatever format you got them in) - configure them via ./configure <!> I used `./configure --prefix=/usr` to overwrite possible existing installations. <-> If you don't, there's likely going to be a conflict, or something can't find something else - but you can get around this by specifying the lib dir by `export LD_LIBRARY_PATH=my_library_path` and point pkg-config to where it's .pc files are located by `export PKG_CONFIG_PATH=my_pc_path`. - make && sudo make install (scripting and loops can really help here!)
extra packages (from Xorg): - mostly from gnu.org; downloads can be accessed by http/ftp at ftp.gnu.org - else sourceforge, google, etc. - you'll find their official homepages right away. or see the first wiki link posted above.
pkg-config-2.1 m4-1.4.4 libtool-1.5 autoconf-2.57 automake-1.7.9 expat-1.95.8 libpng-1.2.8 zlib-1.2.3 fontconfig-2.2.3 freetype-2.1.9 (this one required 2 'make install's for some reason to have a 0 return value)
Optional: some things (wiki says app/twm) require: bison-2.3 flex-2.5.4 - Note: if you don't want to install these, you can comment/delete them out from the build script later on
if building mesa: libdrm-2.0
Mesa-6.4.1 (I only used libmesa) <!> for this you'll need to do `make linux-x86 && sudo make install` <-> installed this to system-wide /usr/lib/... as well <-> If you decide to use gcc-2.95 you'll have to remove the -std=c99 flags, since 2.95 only supports c89 (from the linux configs)
Notes: - Unfortunately, gcc1 pacakge seems to come with pkg-config, so you'll just have to overwrite it. - If you wish to use newer versions of certain packages with 7.0, you'll have to browse around for workarounds. Although I did try newer ones, there's just too many workarounds required! (so they won't be listed here, see the xorg mailing-list archive for more details if you want to go this way)
----------------------------------------
"Wait! We haven't even gotten X yet!" Oh right... well I decided to go with tarballs - bzip'd. I got mine from the official repository: http://xorg.freedesktop.org/releases/X11R7.0/src/ You can either get the 'everything' dir... or everything else :P
Now, you get get the newest build-from-tarballs.sh script here: http://gitweb.freedesktop.org/?p=xorg....alls.sh and saved it to where_are_my_tarballs.
Now before you continue, you may have to remove some broken xrender stuff that something installed, unless you're using LD_LIBRARY_PATH and PKG_CONFIG_PATH. So (re)move /usr/lib/pkgconfig/xrender.pc and /usr/lib/libXrender.* If it's not there, then continue.
You may want to apply some security patches that have been made for 7.0 - I didn't know about them then.
And then I did: cd where_are_my_tarballs chmod +x ./build-from-tarballs.sh PATH=install_path/bin:$PATH sudo ./build-from-tarballs.sh -m mesa_tar_extracted_dirname/Mesa-6.4.1 install_path &> build.log
Go build!
Optionally you can use `tail -f build.log` to view its current process (note that this may take up several more cpu cycles).
Notes: - I suppose I should've tried the "-s sudo" options or something (because of a problem later described) - If you didn't want Mesa, you don't need to include the -m part - If you didn't use bzips, you'll want to specify -gz - If you got the everything dir, use -e - For a general usage, just run ./build-from-tarballs.sh - If you don't want certain parts, edit ./build-from-tarballs.sh, and prepend # to comment out lines (ie docs - since DSL by default won't use em manpages)
----------------------------------------
Running X.
cd ~/ Edit .xserverrc to point to your new Xorg binary. You might want to add stuff to ie PATH=install_path/bin:$PATH and LD_LIBRARY_PATH=install_path/lib here. For some reason, I can only `startx` with super-user priveleges, ie `sudo startx`. Haven't been able to find a fix/workaround yet or what exactly is going wrong.
You'll probably end up seeing it try to auto-generate a xorg.conf here since you probably won't have one yet. Well, it didn't work for me since it said that the system was using a framebuffer console and you'd need to specify the busid's of the video cards. So I just downloaded one. Or you could try running xorgconfig, etc.
You could save the xorg.conf to the general /etc/X11 or install_path/etc/X11 (if you decide on making a self-contained package), among other places.
Now it should load up, tada! yay! (hopefully). Enjoy the fonts!
The common error I get without running as root is on xf86ReadBIOS: Failed to read /dev/mem (Operation not permitted) in the X log, and it fails on Fatal server error: xf86EnableIOPorts: failed to set IOPL for I/O (Operation not permitted)
I have only been satified by starting xdm as a service to avoid the sudo startx. After loading dsl-dpkg; apt-get update; apt-get install xdm, /etc/init.d/xdm was edited to point to my new installation. Created ~/.xsession - this is run by xdm for login stuff. I placed cd ~ and the usual PATH and LD_LIBRARY_PATH (as described above) in there and appended the current .xinitrc contents (ie `cat .xinitrc >> /xsession`)
Note: if you use xdm you need at least one user's password set! You can either boot with "dsl secure" or use sudo passwd (for root) and sudo passwd dsl (for user dsl)
Now start it up as root, like using `su -c "/etc/init.d/xdm start" -` (Of course this isn't very secure since anyone can still kill this via ctrlaltbksp, etc. so you may want to disable that or use something like xlock, etc.)
And now you should have a pretty login screen (like what SU had in his older post in this forum). I suppose for permanence this could be added to some startup/init script.
I know this is kind of a rushed guide, but it may serve its purpose. I guess it wasn't as quick as I thought... I know there is a problem with this, but I still think it's good as a guide for those who want to try it out.
Any feedback/comments are welcome!
Thanks to the XOrg team for their great work!
|