You are not logged in.

#1 2016-01-25 03:14:59

root
Member
From: 127.0.0.1
Registered: 2012-04-13
Posts: 297

Error building xf86-video-savage (and related - #10) (legacy)

I am trying to build (using makepkg -s) the xf86-video-savage package (2.3.6-1) for an older laptop using the PKGBUILD file I obtained some time back from SVN.
After updating the file as shown in the wiki I get an error though:

savage_dri.c:878:18: error: 'DRIWrappedFuncsRec {aka struct <anonymous>}' has no member named 'ValidateTree'
    pDRIInfo->wrap.ValidateTree = NULL;
                  ^
savage_dri.c:879:18: error: 'DRIWrappedFuncsRec {aka struct <anonymous>}' has no member named 'PostValidateTree'
    pDRIInfo->wrap.PostValidateTree = NULL;
                  ^
Makefile:419: recipe for target 'savage_dri.lo' failed
make[2]: *** [savage_dri.lo] Error 1
make[2]: Leaving directory '/home/optimus/Packages/xf86-video-savage/repos/extra-i686/src/xf86-video-savage-2.3.6/src'
Makefile:353: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/optimus/Packages/xf86-video-savage/repos/extra-i686/src/xf86-video-savage-2.3.6'
Makefile:284: recipe for target 'all' failed
make: *** [all] Error 2
==> ERROR: A failure occurred in build().
    Aborting...

Out of curiosity I tried the original unmodified PKGBUILD and it ends up with the same error.

Original PKGBUILD

# $Id: PKGBUILD 163659 2012-07-17 16:39:29Z andyrtr $
# Maintainer: Jan de Groot <jgc@archlinux.org>

pkgname=xf86-video-savage
pkgver=2.3.6
pkgrel=1
pkgdesc="X.org savage video driver"
arch=(i686 x86_64)
url="http://xorg.freedesktop.org/"
license=('custom')
depends=('glibc')
makedepends=('xorg-server-devel>=1.12.0' 'libdrm' 'xf86driproto' 'mesa')
optdepends=('savage-dri: DRI1 support from community repo')
conflicts=('xorg-server<1.12.0')
options=(!libtool)
groups=('xorg-drivers' 'xorg')
source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
sha256sums=('48813ed8f4a08858e8c2466fd2dc810ea31f86842025fa39ec949d44f9ad63d6')

build() {
  cd "${srcdir}/${pkgname}-${pkgver}"
  ./configure --prefix=/usr
  make
}

package() {
  #cd "${srcdir}/${pkgname}-${pkgver}"
  cd ${srcdir}/${pkgname}*
  make DESTDIR="${pkgdir}" install

  install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}"
  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
}

Updated PKGBUILD (to enable dri)

# $Id: PKGBUILD 163659 2012-07-17 16:39:29Z andyrtr $
# Maintainer: Jan de Groot <jgc@archlinux.org>

pkgname=xf86-video-savage
pkgver=2.3.6
pkgrel=1
pkgdesc="X.org savage video driver"
arch=(i686 x86_64)
url="http://xorg.freedesktop.org/"
license=('custom')
depends=('glibc')
makedepends=('xorg-server-devel>=1.12.0' 'libdrm' 'xf86driproto' 'mesa')
optdepends=('savage-dri: DRI1 support from community repo')
conflicts=('xorg-server<1.12.0')
options=(!libtool)
groups=('xorg-drivers' 'xorg')
source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
sha256sums=('48813ed8f4a08858e8c2466fd2dc810ea31f86842025fa39ec949d44f9ad63d6')

build() {
  cd "${srcdir}/${pkgname}-${pkgver}"
  ./configure --prefix=/usr \
	--enable-dri
  make
}

package() {
  #cd "${srcdir}/${pkgname}-${pkgver}"
  cd ${srcdir}/${pkgname}*
  make DESTDIR="${pkgdir}" install

  install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}"
  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
}

Are there additional steps needed as of today in order to build an older package? I ask as, as far as I recall, in the past using the original PKGBUILD file the package built fine (even though, silly me, I forgot to add the --enable-dri part).

Last edited by root (2016-02-02 07:00:33)


\(o_X)/
                        'Cause I wanna be an Archy - An Archy in the UK // Sex Pistols

Offline

#2 2016-01-25 12:42:55

Lone_Wolf
Member
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 11,868

Re: Error building xf86-video-savage (and related - #10) (legacy)

Check http://xorg.freedesktop.org/releases/individual/driver/ , latest version of xf86-video-savage is 2.3.8 ,
try building that.


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

#3 2016-01-26 05:08:30

root
Member
From: 127.0.0.1
Registered: 2012-04-13
Posts: 297

Re: Error building xf86-video-savage (and related - #10) (legacy)

Lone_Wolf wrote:

Check http://xorg.freedesktop.org/releases/individual/driver/ , latest version of xf86-video-savage is 2.3.8 ,
try building that.

Driver version <2.3.6-2 is mandatory, as stated in the wiki link I posted.


\(o_X)/
                        'Cause I wanna be an Archy - An Archy in the UK // Sex Pistols

Offline

#4 2016-01-26 12:08:51

Lone_Wolf
Member
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 11,868

Re: Error building xf86-video-savage (and related - #10) (legacy)

The footnote for <2.3.6-2 states :

‡ - '--enable-dri' configure flag required

I used updated PKGBUILD you posted and changed the version number to 2.3.8 .
Here is makepkg output.

It shows :

checking whether to include DRI support... yes
checking for DRI... yes

Looks to me like DRI support is present in xf86-video-savage with 2.3.8  , just try it out.

added

Check the history for "IBM ThinkPad T23" wiki page, all changes after feb 2014 were minor ones that didn't  change the content.
That strongly suggest the wiki was correct in feb 2014, but we're almost 2 years past that and things have changed.

another thing that should be investigated :
xorg <1.13

The savage driver supports two types of hardware acceleration: XAA and EXA. Unfortunately, you can use DRI for SuperSavage only if you are using XAA. Since you want hardware 3D (for instance, opengl/d3d in wine) then this is probably important.

This means you must run xorg-server < 1.13, because starting in 1.13 XAA was removed.

Maybe 2.3.8 savage allows DRI + EXA ?

Last edited by Lone_Wolf (2016-01-26 12:26:55)


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

#5 2016-01-28 04:20:31

root
Member
From: 127.0.0.1
Registered: 2012-04-13
Posts: 297

Re: Error building xf86-video-savage (and related - #10) (legacy)

I sincerely appreciate your tests and input Lone_Wolf though the hardware is what it is.
Consequently  what the wiki states, as far as I know due to having the laptop at hand, is still valid. That means, DRI needs XAA acceleration which leads to xorg-server<1.13 and xf86-video-savage<2.3.6-2.

Therefore I would like to get back on track with the issue of not being able to build an older package, which is the purpose of SVN as far as I understand it, for an unknown reason to me.


\(o_X)/
                        'Cause I wanna be an Archy - An Archy in the UK // Sex Pistols

Offline

#6 2016-01-28 09:16:36

Lone_Wolf
Member
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 11,868

Re: Error building xf86-video-savage (and related - #10) (legacy)

This gentoo forum thread indicates that error occurs when building savage against newer xorg-server  versions.

Was xorg pre-1.13 installed on the system you build xf86-video-savage on BEFORE you started the savage build ?


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

#7 2016-01-28 17:56:01

pypi
Wiki Maintainer
Registered: 2014-04-22
Posts: 250

Re: Error building xf86-video-savage (and related - #10) (legacy)

Those two lines have been removed; perhaps you could backport the patch?

Offline

#8 2016-01-29 06:09:50

root
Member
From: 127.0.0.1
Registered: 2012-04-13
Posts: 297

Re: Error building xf86-video-savage (and related - #10) (legacy)

@Lone_Wolf

Installed xorg-server version reports as

 xorg-server 1.12.4-1

I will try to rebuild the xorg-server package again from scratch once again ASAP and see what happens after the resinstall; though I honestly think things will remain unchanged.

@pypi

I wouldn't know how to do such thing myself. Sorry.


\(o_X)/
                        'Cause I wanna be an Archy - An Archy in the UK // Sex Pistols

Offline

#9 2016-01-29 06:55:45

pypi
Wiki Maintainer
Registered: 2014-04-22
Posts: 250

Re: Error building xf86-video-savage (and related - #10) (legacy)

root wrote:

@pypi

I wouldn't know how to do such thing myself. Sorry.

The patch probably will apply cleanly; edit the PKGBUILD, add the patch to the list of sources, run updpkgsums, and add a prepare function with something like

patch < patch_from_git.patch

where patch_from_git.patch is the patch.
"Backporting" sounds complex, sorry - I probably should have just suggested using the patch.

Offline

#10 2016-02-02 06:59:11

root
Member
From: 127.0.0.1
Registered: 2012-04-13
Posts: 297

Re: Error building xf86-video-savage (and related - #10) (legacy)

Building (and subsequently installing) the xorg-server package (including xorg-server-common as it is build during the same process) fails with the following error notification

sdksyms.c:324:15: error: expected expression before ',' token
     (void *) &,                                                  /* ../../include/os.h:93 */
               ^
Makefile:722: recipe for target 'sdksyms.o' failed
make[4]: *** [sdksyms.o] Error 1
make[4]: Leaving directory '/home/optimus/Packages/xorg-server/repos/extra-i686/src/xorg-server-1.12.4/hw/xfree86'
Makefile:755: recipe for target 'all-recursive' failed
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory '/home/optimus/Packages/xorg-server/repos/extra-i686/src/xorg-server-1.12.4/hw/xfree86'
Makefile:626: recipe for target 'all' failed
make[2]: *** [all] Error 2
make[2]: Leaving directory '/home/optimus/Packages/xorg-server/repos/extra-i686/src/xorg-server-1.12.4/hw/xfree86'
Makefile:583: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/optimus/Packages/xorg-server/repos/extra-i686/src/xorg-server-1.12.4/hw'
Makefile:739: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1
==> ERROR: A failure occurred in build().
    Aborting...

Being an essential part I will edit the thread title and include it in the 'error' list.

Applying the stop-validate-tree.patch

diff --git a/src/savage_dri.c b/src/savage_dri.c
index bdb78e4..0842821 100644
--- a/src/savage_dri.c
+++ b/src/savage_dri.c
@@ -875,9 +875,6 @@ Bool SAVAGEDRIScreenInit( ScreenPtr pScreen )
    psav->coreWakeupHandler = pDRIInfo->wrap.WakeupHandler;
    pDRIInfo->wrap.WakeupHandler = SAVAGEWakeupHandler;
 
-   pDRIInfo->wrap.ValidateTree = NULL;
-   pDRIInfo->wrap.PostValidateTree = NULL;
-
    pDRIInfo->createDummyCtx = TRUE;
    pDRIInfo->createDummyCtxPriv = FALSE;

to the updated PKGBUILD

# $Id: PKGBUILD 163659 2012-07-17 16:39:29Z andyrtr $
# Maintainer: Jan de Groot <jgc@archlinux.org>

pkgname=xf86-video-savage
pkgver=2.3.6
pkgrel=1
pkgdesc="X.org savage video driver"
arch=(i686 x86_64)
url="http://xorg.freedesktop.org/"
license=('custom')
depends=('glibc')
makedepends=('xorg-server-devel>=1.12.0' 'libdrm' 'xf86driproto' 'mesa')
optdepends=('savage-dri: DRI1 support from community repo')
conflicts=('xorg-server<1.12.0')
options=(!libtool)
groups=('xorg-drivers' 'xorg')
source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
	stop-validate-tree.patch)
sha256sums=('48813ed8f4a08858e8c2466fd2dc810ea31f86842025fa39ec949d44f9ad63d6'
            '3a64c8f18f94edc69731e2117c6c2e1423fdb5687939aaf56270517daa07aff9')

build() {
  cd "${srcdir}/${pkgname}-${pkgver}"

  # Stop Stop (uselessly) initializing the ValidateTree hooks
  patch < "${srcdir}/stop-validate-tree.patch"

  ./configure --prefix=/usr \
	--enable-dri
  make
}

package() {
  #cd "${srcdir}/${pkgname}-${pkgver}"
  cd ${srcdir}/${pkgname}*
  make DESTDIR="${pkgdir}" install

  install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}"
  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
}

went "smooth" (patch didn't find the file to patch thus I had to type the absolute (whole) path to it - not sure if that can be fixed somehow). Though after installing the patched version I get a 'no screens found' notification when trying to start the X server.
This shows up in the related log

[  3407.130] (EE) module ABI major version (20) doesn't match the server's version (12)
[  3407.130] (II) UnloadModule: "savage"
[  3407.130] (II) Unloading savage
[  3407.130] (EE) Failed to load module "savage" (module requirement mismatch, 0)
[  3407.130] (EE) No drivers available.
[  3407.131] 
Fatal server error:
[  3407.131] no screens found

Last edited by root (2016-02-02 07:04:33)


\(o_X)/
                        'Cause I wanna be an Archy - An Archy in the UK // Sex Pistols

Offline

#11 2016-02-02 18:05:24

pypi
Wiki Maintainer
Registered: 2014-04-22
Posts: 250

Re: Error building xf86-video-savage (and related - #10) (legacy)

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64864
http://cgit.freedesktop.org/xorg/xserve … 79e43254b6
(tl;dr: broken due to GCC 5)

You appear to have built xf86-video-savage against a modern x server (hence the ABI version mismatch error). Either use the newly built package with a new xorg server, or rebuild it against the legacy server.

Also, you should be using the prepare function for patching...

Offline

#12 2016-03-31 23:10:50

root
Member
From: 127.0.0.1
Registered: 2012-04-13
Posts: 297

Re: Error building xf86-video-savage (and related - #10) (legacy)

@pypi

If it is broken, should I understand that the whole building process, of which the xorg server package is a central part, as explained in the wiki link is (as of now? or even from now on?) broken too? That is, if one lacks any previous packages, or backups of these, the XAA acceleration can not be used in a T23 setup by building the related packages.

Regarding the xf86-video-savage package it is the original one. The only package I rebuilt were the xorg-server and related xorg-server-common ones as, after a kernel update, the xorg server only showed a dark screen. Even now, after finding an original 2012 1.12 xorg-server and related package, after the install it was complaining about the lack of libgcrypt.so.11 whereas the rebuilt one starts without a problem.

Unfortunately using a new xorg server version, even a newer savage driver as Lone_Wolf suggested in #4, is not an option as newer versions removed the XAA acceleration which makes xorg-server-1.12 mandatory as I have stated before.


\(o_X)/
                        'Cause I wanna be an Archy - An Archy in the UK // Sex Pistols

Offline

#13 2016-04-01 07:27:42

pypi
Wiki Maintainer
Registered: 2014-04-22
Posts: 250

Re: Error building xf86-video-savage (and related - #10) (legacy)

Sorry - I probably wasn't very clear - the patch I linked to in the prior post should fix the xorg-server build error.

You will need to build the old version of xorg-server, install that, then build xf86-video-savage against the older version of xorg-server. Looking at the wiki, you will need a version of xf86-video-savage that is older than 2.3.7.

EDIT: Since the packages are quite old, you will have to (or at least, it would be a good idea to) rebuild them - otherwise you will have problems with missing/outdated libraries (libgcrypt, for instance...).

Last edited by pypi (2016-04-01 07:29:43)

Offline

#14 2016-04-01 23:19:54

root
Member
From: 127.0.0.1
Registered: 2012-04-13
Posts: 297

Re: Error building xf86-video-savage (and related - #10) (legacy)

The build goes fine as noted in #10 (though I would really appreciate more detailed instructions as to how to use the prepare function if you do not mind).

The error noted in the same message is what puzzles me. Is it mandatory to built the savage driver against the new build xorg-server or would it be enough to use the already existing savage package version 'older than <2.3.6-2'?

If the latter is already enough that is exactly the scenario that fails in the end as reported.

I will nevertheless try to rebuild the savage package against the new xorg-server package to see if there is any variation in the result just to be sure in case the original savage package has to be rebuild too as you seem to suggest in your final paragraph.


\(o_X)/
                        'Cause I wanna be an Archy - An Archy in the UK // Sex Pistols

Offline

#15 2016-04-02 03:26:40

pypi
Wiki Maintainer
Registered: 2014-04-22
Posts: 250

Re: Error building xf86-video-savage (and related - #10) (legacy)

What I am imagining needs to happen:
- Rebuild xorg-server (version 1.12). Install it.
- Rebuild xf86-video-savage (version 2.3.6). Install it.
- Rebuild any other xorg packages that have issues (not sure about this, hopefully will not be a problem, but probably will be).

Hopefully that is clearer now.

When I mentioned the prepare function, I meant moving the patching process to a separate function (see also: the wiki, the example PKGBUILD). I believe that that is 'best practice', although how you have done it should work just as well. I'm sorry that I wasn't very clear about that.

With the module ABI error, the savage driver package that you have found is built against a more modern x server. See http://www.x.org/wiki/XorgModuleABIVersions/ for a short list of module ABI versions. Note that the error messages is saying that the server module ABI version is 12 (corresponding to the VIDEODRV column, for version 1.12), but the module ABI version is 20 (corresponding to somewhere between xorg version 1.17.3, and 1.17.4, looking at the timestamp on the relevant commit. I'm a bit surprised about that if you are downloading an older package from somewhere like the Arch Linux Rollback project, but I'm not entirely clear on that.

What exactly have you tried so far? I'm a bit confused, especially in relation to the 'new', 'original', 'existing' terms that you are using for the packages. Does 'new' correspond to 'rebuilt'? What is the difference between 'original' and 'existing'? Which packages have you tried older versions of, and did you rebuild those, or use versions from pacman's cache (or the ARM project)? If you have rebuilt things, what packages did you rebuild them "against"?

Last edited by pypi (2016-04-02 03:29:12)

Offline

#16 2016-04-21 23:47:59

root
Member
From: 127.0.0.1
Registered: 2012-04-13
Posts: 297

Re: Error building xf86-video-savage (and related - #10) (legacy)

After a short hiatus due to a recent kernel update I went back to troubleshooting.

Rebuilding xorg-server (and, subsequently, xorg-server-common) still encounters the problem already noted in #10 and explained in #11.

I have been wondering about the reason of why the xf86-video-savage driver is showing up as having been built against a newer version of xorg-server when this was never the case.
After adding the suggested prepare function to the PKGBUILD and starting the build process with

makepkg -s

I finally noticed that the variantion in the ABI module version is most likely related to the xorg-server-devel package which is used to built the savage driver.
In order to check this, I manually downloaded the oldest available version of the same package from the ARM (1.14.2-2) and replaced the one downloaded as built dependency.
Effectively, as a result the reported ABI version was 14.
In order to do some additional tests and trying to achieve version 12 I tried to use the SVN but got no results when searching for the xorg-server-devel package.
I used the same procedure I used time back for the xorg-server package.

Regarding the "terminology" I am using

- with regard to the xorg-server package:

'new' refers to the newly built (or at least attempted) package whereas 'original' does to the original package provided by the official repositories back then.
'Existing' does refer to a rebuilt of the original package against the (then) new version of  libgcrypt, as suggested here when I was troubleshooting it.

- with regard to the savage driver:

'new' again refers to the newly built package and, if used at some point, 'original' and 'existing' do refer to the same xf86-video-savage driver as there wasn't a need to rebuilt is so far. Despite the latter it might come in handy to know, which is ultimately the reason for this message, in case the file and its backups are compromised in some way. This obviously applies too the the other packages involved.

I hope it is clearer to you now.

In the end though I am still wondering if due to not being able to rebuilt the xorg-server package everything else is so to speak futile as it is the central package everything else related revolves around...

Last edited by root (2016-04-21 23:49:14)


\(o_X)/
                        'Cause I wanna be an Archy - An Archy in the UK // Sex Pistols

Offline

#17 2016-04-22 02:01:43

pypi
Wiki Maintainer
Registered: 2014-04-22
Posts: 250

Re: Error building xf86-video-savage (and related - #10) (legacy)

root wrote:

In the end though I am still wondering if due to not being able to rebuilt the xorg-server package everything else is so to speak futile as it is the central package everything else related revolves around...

Yes, I think that you will need to rebuild the xorg-server package - especially as the PKGBUILD for xorg-server also creates an xorg-server-devel package, which I was unaware of until just now...

root wrote:

Rebuilding xorg-server (and, subsequently, xorg-server-common) still encounters the problem already noted in #10 and explained in #11.

Hmm. Did you try using the patch for xorg-server that I linked to? That should fix the build error for xorg-server. I'll have a go here later and see whether that fixes it.

The clarification helped, thanks!

EDIT: I've just built xorg-server, xorg-server-common, and xorg-server-devel (1.12.4) on my x86_64 box, using this PKGBUILD (essentially the original xorg-server PKGBUILD with the patch I linked to earlier):

# $Id$
# Maintainer: Jan de Groot <jgc@archlinux.org>

pkgbase=xorg-server
pkgname=('xorg-server' 'xorg-server-xephyr' 'xorg-server-xdmx' 'xorg-server-xvfb' 'xorg-server-xnest' 'xorg-server-common' 'xorg-server-devel')
pkgver=1.12.4
pkgrel=1
arch=('i686' 'x86_64')
license=('custom')
url="http://xorg.freedesktop.org"
makedepends=('pixman' 'libx11' 'mesa' 'libgl' 'xf86driproto' 'xcmiscproto' 'xtrans' 'bigreqsproto' 'randrproto' 'inputproto' 'fontsproto' 'videoproto'
             'compositeproto' 'recordproto' 'scrnsaverproto' 'resourceproto' 'xineramaproto' 'libxkbfile' 'libxfont' 'renderproto' 'libpciaccess'
             'libxv' 'xf86dgaproto' 'libxmu' 'libxrender' 'libxi' 'dmxproto' 'libxaw' 'libdmx' 'libxtst' 'libxres' 'xorg-xkbcomp' 'xorg-util-macros'
             'xorg-font-util' 'glproto' 'dri2proto' 'udev>=183' 'libgcrypt')
options=('!libtool')
source=(${url}/releases/individual/xserver/${pkgbase}-${pkgver}.tar.bz2
        autoconfig-nvidia.patch
        autoconfig-sis.patch
        gcc5.patch
        xvfb-run
        xvfb-run.1
        10-quirks.conf)
sha256sums=('8ac07c35306ba3fb3c0972722dd4e919303039eca1d40ac7862560e0b2c94cf7'
            '66e25f76a7496c429e0aff4b0670f168719bb0ceaeb88c6f2272f2bf3ed21162'
            'd027776fac1f7675b0a9ee817502290b1c45f9c09b0f0a6bb058c35f92361e84'
            '390209c612b6033eb1ca3ab34b2066b36c616dda8dbc98455dde5e0f3199c641'
            'ff0156309470fc1d378fd2e104338020a884295e285972cc88e250e031cc35b9'
            '2460adccd3362fefd4cdc5f1c70f332d7b578091fb9167bf88b5f91265bbd776'
            '94612f5c0d34a3b7152915c2e285c7b462e9d8e38d3539bd551a339498eac166')

prepare() {
  cd "${srcdir}/${pkgbase}-${pkgver}"

  # Use nouveau/nv/nvidia drivers for nvidia devices
  patch -Np1 -i "${srcdir}/autoconfig-nvidia.patch"

  # Use unofficial imedia SiS driver for supported SiS devices
  patch -Np0 -i "${srcdir}/autoconfig-sis.patch"

  # Fix the build with gcc 5
  patch -Np1 -i "${srcdir}/gcc5.patch"

  autoreconf -fi

}

build() {
  cd "${srcdir}/${pkgbase}-${pkgver}"

  ./configure --prefix=/usr \
      --enable-ipv6 \
      --enable-dri \
      --enable-dmx \
      --enable-xvfb \
      --enable-xnest \
      --enable-composite \
      --enable-xcsecurity \
      --enable-xorg \
      --enable-xephyr \
      --enable-glx-tls \
      --enable-kdrive \
      --enable-kdrive-evdev \
      --enable-kdrive-kbd \
      --enable-kdrive-mouse \
      --enable-install-setuid \
      --enable-config-udev \
      --disable-config-dbus \
      --enable-record \
      --disable-xfbdev \
      --disable-xfake \
      --disable-static \
      --sysconfdir=/etc/X11 \
      --localstatedir=/var \
      --with-xkb-path=/usr/share/X11/xkb \
      --with-xkb-output=/var/lib/xkb \
      --with-fontrootdir=/usr/share/fonts
  make

  # Disable subdirs for make install rule to make splitting easier
  sed -e 's/^DMX_SUBDIRS =.*/DMX_SUBDIRS =/' \
      -e 's/^XVFB_SUBDIRS =.*/XVFB_SUBDIRS =/' \
      -e 's/^XNEST_SUBDIRS =.*/XNEST_SUBDIRS = /' \
      -e 's/^KDRIVE_SUBDIRS =.*/KDRIVE_SUBDIRS =/' \
      -i hw/Makefile
}

package_xorg-server-common() {
  pkgdesc="Xorg server common files"
  depends=('xkeyboard-config' 'xorg-xkbcomp' 'xorg-setxkbmap' 'xorg-fonts-misc')

  cd "${srcdir}/${pkgbase}-${pkgver}"
  install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-common"
  install -m644 COPYING "${pkgdir}/usr/share/licenses/xorg-server-common"
  
  make -C xkb DESTDIR="${pkgdir}" install-data

  install -m755 -d "${pkgdir}/usr/share/man/man1"
  install -m644 man/Xserver.1 "${pkgdir}/usr/share/man/man1/"

  install -m755 -d "${pkgdir}/usr/lib/xorg"
  install -m644 dix/protocol.txt "${pkgdir}/usr/lib/xorg/"
}

package_xorg-server() {
  pkgdesc="Xorg X server"
  depends=(libxdmcp libxfont udev libpciaccess libdrm pixman libgcrypt libxau xorg-server-common xf86-input-evdev)
  backup=('etc/X11/xorg.conf.d/10-evdev.conf' 'etc/X11/xorg.conf.d/10-quirks.conf')
  provides=('x-server')
  groups=('xorg')
  conflicts=('nvidia-utils<=290.10')

  cd "${srcdir}/${pkgbase}-${pkgver}"
  make DESTDIR="${pkgdir}" install

  install -m755 -d "${pkgdir}/etc/X11"
  mv "${pkgdir}/usr/share/X11/xorg.conf.d" "${pkgdir}/etc/X11/"
  install -m644 "${srcdir}/10-quirks.conf" "${pkgdir}/etc/X11/xorg.conf.d/"

  rmdir "${pkgdir}/usr/share/X11"

  # Needed for non-mesa drivers, libgl will restore it
  mv "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so" \
     "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.xorg"

  rm -rf "${pkgdir}/var"

  rm -f "${pkgdir}/usr/share/man/man1/Xserver.1"
  rm -f "${pkgdir}/usr/lib/xorg/protocol.txt"

  install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server"
  ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server/COPYING"

  rm -rf "${pkgdir}/usr/lib/pkgconfig"
  rm -rf "${pkgdir}/usr/include"
  rm -rf "${pkgdir}/usr/share/aclocal"
}

package_xorg-server-xephyr() {
  pkgdesc="A nested X server that runs as an X application"
  depends=(libxfont libgl libgcrypt libxv pixman xorg-server-common)

  cd "${srcdir}/${pkgbase}-${pkgver}/hw/kdrive"
  make DESTDIR="${pkgdir}" install

  install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-xephyr"
  ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-xephyr/COPYING"
}

package_xorg-server-xvfb() {
  pkgdesc="Virtual framebuffer X server"
  depends=(libxfont libxdmcp libxau libgcrypt pixman xorg-server-common)

  cd "${srcdir}/${pkgbase}-${pkgver}/hw/vfb"
  make DESTDIR="${pkgdir}" install

  install -m755 "${srcdir}/xvfb-run" "${pkgdir}/usr/bin/"
  install -m644 "${srcdir}/xvfb-run.1" "${pkgdir}/usr/share/man/man1/"

  install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-xvfb"
  ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-xvfb/COPYING"
}

package_xorg-server-xnest() {
  pkgdesc="A nested X server that runs as an X application"
  depends=(libxfont libxext libgcrypt pixman xorg-server-common)

  cd "${srcdir}/${pkgbase}-${pkgver}/hw/xnest"
  make DESTDIR="${pkgdir}" install

  install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-xnest"
  ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-xnest/COPYING"
}

package_xorg-server-xdmx() {
  pkgdesc="Distributed Multihead X Server and utilities"
  depends=(libxfont libxi libgcrypt libxaw libxrender libdmx libxfixes pixman xorg-server-common)

  cd "${srcdir}/${pkgbase}-${pkgver}/hw/dmx"
  make DESTDIR="${pkgdir}" install

  install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-xdmx"
  ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-xdmx/COPYING"
}

package_xorg-server-devel() {
  pkgdesc="Development files for the X.Org X server"
  depends=(xproto randrproto renderproto xextproto inputproto kbproto fontsproto videoproto dri2proto xineramaproto xorg-util-macros pixman libpciaccess)

  cd "${srcdir}/${pkgbase}-${pkgver}"
  make DESTDIR="${pkgdir}" install

  rm -rf "${pkgdir}/usr/bin"
  rm -rf "${pkgdir}/usr/share/man"
  rm -rf "${pkgdir}/usr/share/doc"
  rm -rf "${pkgdir}/usr/share/X11"
  rm -rf "${pkgdir}/usr/lib/xorg"
  rm -rf "${pkgdir}/var"

  install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-devel"
  ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-devel/COPYING"
}

So I'm unclear as to why (or what) build error you are getting - it should be fine? If you then install xorg-server, xorg-server-common, and xorg-server-devel using the newly built packages, you should be able to rebuild the savage driver against it.

Last edited by pypi (2016-04-22 03:00:31)

Offline

#18 2016-05-04 01:27:58

root
Member
From: 127.0.0.1
Registered: 2012-04-13
Posts: 297

Re: Error building xf86-video-savage (and related - #10) (legacy)

Gosh, either I overlooked the link to the patch when checking the first link or, most likely, forgot to get back to it.

After mimicking your PKGBUILD file, though for i686

# $Id: PKGBUILD 165604 2012-08-27 08:11:34Z jgc $
# Maintainer: Jan de Groot <jgc@archlinux.org>

pkgbase=xorg-server
pkgname=('xorg-server' 'xorg-server-xephyr' 'xorg-server-xdmx' 'xorg-server-xvfb' 'xorg-server-xnest' 'xorg-server-common' 'xorg-server-devel')
pkgver=1.12.4
pkgrel=1
arch=('i686' 'x86_64')
license=('custom')
url="http://xorg.freedesktop.org"
makedepends=('pixman' 'libx11' 'mesa' 'libgl' 'xf86driproto' 'xcmiscproto' 'xtrans' 'bigreqsproto' 'randrproto' 'inputproto' 'fontsproto' 'videoproto'
             'compositeproto' 'recordproto' 'scrnsaverproto' 'resourceproto' 'xineramaproto' 'libxkbfile' 'libxfont' 'renderproto' 'libpciaccess'
             'libxv' 'xf86dgaproto' 'libxmu' 'libxrender' 'libxi' 'dmxproto' 'libxaw' 'libdmx' 'libxtst' 'libxres' 'xorg-xkbcomp' 'xorg-util-macros'
             'xorg-font-util' 'glproto' 'dri2proto' 'udev>=183' 'libgcrypt')
options=('!libtool')
source=(${url}/releases/individual/xserver/${pkgbase}-${pkgver}.tar.bz2
        autoconfig-nvidia.patch
        autoconfig-sis.patch
	gcc5.patch
        xvfb-run
        xvfb-run.1
        10-quirks.conf)
sha256sums=('8ac07c35306ba3fb3c0972722dd4e919303039eca1d40ac7862560e0b2c94cf7'
            '66e25f76a7496c429e0aff4b0670f168719bb0ceaeb88c6f2272f2bf3ed21162'
            'd027776fac1f7675b0a9ee817502290b1c45f9c09b0f0a6bb058c35f92361e84'
            '2a549ed2a740a77255f47f7a39d674a203a7690da325c6e3d754bd277e36e413'
            'ff0156309470fc1d378fd2e104338020a884295e285972cc88e250e031cc35b9'
            '2460adccd3362fefd4cdc5f1c70f332d7b578091fb9167bf88b5f91265bbd776'
            '94612f5c0d34a3b7152915c2e285c7b462e9d8e38d3539bd551a339498eac166')

prepare() {
  cd "${srcdir}/${pkgbase}-${pkgver}"

  # Use nouveau/nv/nvidia drivers for nvidia devices
  patch -Np1 -i "${srcdir}/autoconfig-nvidia.patch"

  # Use unofficial imedia SiS driver for supported SiS devices
  patch -Np0 -i "${srcdir}/autoconfig-sis.patch"

  # Fix the build with gcc 5
  patch -Np1 -i "${srcdir}/gcc5.patch"

  autoreconf -fi

}

build() {
  cd "${srcdir}/${pkgbase}-${pkgver}"

  ./configure --prefix=/usr \
      --enable-ipv6 \
      --enable-dri \
      --enable-dmx \
      --enable-xvfb \
      --enable-xnest \
      --enable-composite \
      --enable-xcsecurity \
      --enable-xorg \
      --enable-xephyr \
      --enable-glx-tls \
      --enable-kdrive \
      --enable-kdrive-evdev \
      --enable-kdrive-kbd \
      --enable-kdrive-mouse \
      --enable-install-setuid \
      --enable-config-udev \
      --disable-config-dbus \
      --enable-record \
      --disable-xfbdev \
      --disable-xfake \
      --disable-static \
      --sysconfdir=/etc/X11 \
      --localstatedir=/var \
      --with-xkb-path=/usr/share/X11/xkb \
      --with-xkb-output=/var/lib/xkb \
      --with-fontrootdir=/usr/share/fonts
  make

  # Disable subdirs for make install rule to make splitting easier
  sed -e 's/^DMX_SUBDIRS =.*/DMX_SUBDIRS =/' \
      -e 's/^XVFB_SUBDIRS =.*/XVFB_SUBDIRS =/' \
      -e 's/^XNEST_SUBDIRS =.*/XNEST_SUBDIRS = /' \
      -e 's/^KDRIVE_SUBDIRS =.*/KDRIVE_SUBDIRS =/' \
      -i hw/Makefile
}

package_xorg-server-common() {
  pkgdesc="Xorg server common files"
  depends=('xkeyboard-config' 'xorg-xkbcomp' 'xorg-setxkbmap' 'xorg-fonts-misc')

  cd "${srcdir}/${pkgbase}-${pkgver}"
  install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-common"
  install -m644 COPYING "${pkgdir}/usr/share/licenses/xorg-server-common"
  
  make -C xkb DESTDIR="${pkgdir}" install-data

  install -m755 -d "${pkgdir}/usr/share/man/man1"
  install -m644 man/Xserver.1 "${pkgdir}/usr/share/man/man1/"

  install -m755 -d "${pkgdir}/usr/lib/xorg"
  install -m644 dix/protocol.txt "${pkgdir}/usr/lib/xorg/"
}

package_xorg-server() {
  pkgdesc="Xorg X server"
  depends=(libxdmcp libxfont udev libpciaccess libdrm pixman libgcrypt libxau xorg-server-common xf86-input-evdev)
  backup=('etc/X11/xorg.conf.d/10-evdev.conf' 'etc/X11/xorg.conf.d/10-quirks.conf')
  provides=('x-server')
  groups=('xorg')
  conflicts=('nvidia-utils<=290.10')

  cd "${srcdir}/${pkgbase}-${pkgver}"
  make DESTDIR="${pkgdir}" install

  install -m755 -d "${pkgdir}/etc/X11"
  mv "${pkgdir}/usr/share/X11/xorg.conf.d" "${pkgdir}/etc/X11/"
  install -m644 "${srcdir}/10-quirks.conf" "${pkgdir}/etc/X11/xorg.conf.d/"

  rmdir "${pkgdir}/usr/share/X11"

  # Needed for non-mesa drivers, libgl will restore it
  mv "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so" \
     "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.xorg"

  rm -rf "${pkgdir}/var"

  rm -f "${pkgdir}/usr/share/man/man1/Xserver.1"
  rm -f "${pkgdir}/usr/lib/xorg/protocol.txt"

  install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server"
  ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server/COPYING"

  rm -rf "${pkgdir}/usr/lib/pkgconfig"
  rm -rf "${pkgdir}/usr/include"
  rm -rf "${pkgdir}/usr/share/aclocal"
}

package_xorg-server-xephyr() {
  pkgdesc="A nested X server that runs as an X application"
  depends=(libxfont libgl libgcrypt libxv pixman xorg-server-common)

  cd "${srcdir}/${pkgbase}-${pkgver}/hw/kdrive"
  make DESTDIR="${pkgdir}" install

  install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-xephyr"
  ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-xephyr/COPYING"
}

package_xorg-server-xvfb() {
  pkgdesc="Virtual framebuffer X server"
  depends=(libxfont libxdmcp libxau libgcrypt pixman xorg-server-common)

  cd "${srcdir}/${pkgbase}-${pkgver}/hw/vfb"
  make DESTDIR="${pkgdir}" install

  install -m755 "${srcdir}/xvfb-run" "${pkgdir}/usr/bin/"
  install -m644 "${srcdir}/xvfb-run.1" "${pkgdir}/usr/share/man/man1/"

  install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-xvfb"
  ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-xvfb/COPYING"
}

package_xorg-server-xnest() {
  pkgdesc="A nested X server that runs as an X application"
  depends=(libxfont libxext libgcrypt pixman xorg-server-common)

  cd "${srcdir}/${pkgbase}-${pkgver}/hw/xnest"
  make DESTDIR="${pkgdir}" install

  install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-xnest"
  ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-xnest/COPYING"
}

package_xorg-server-xdmx() {
  pkgdesc="Distributed Multihead X Server and utilities"
  depends=(libxfont libxi libgcrypt libxaw libxrender libdmx libxfixes pixman xorg-server-common)

  cd "${srcdir}/${pkgbase}-${pkgver}/hw/dmx"
  make DESTDIR="${pkgdir}" install

  install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-xdmx"
  ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-xdmx/COPYING"
}

package_xorg-server-devel() {
  pkgdesc="Development files for the X.Org X server"
  depends=(xproto randrproto renderproto xextproto inputproto kbproto fontsproto videoproto dri2proto xineramaproto xorg-util-macros pixman libpciaccess)

  cd "${srcdir}/${pkgbase}-${pkgver}"
  make DESTDIR="${pkgdir}" install

  rm -rf "${pkgdir}/usr/bin"
  rm -rf "${pkgdir}/usr/share/man"
  rm -rf "${pkgdir}/usr/share/doc"
  rm -rf "${pkgdir}/usr/share/X11"
  rm -rf "${pkgdir}/usr/lib/xorg"
  rm -rf "${pkgdir}/var"

  install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-devel"
  ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-devel/COPYING"
}

the xorg-server package built, just as in your case, as expected.

Subsequently, after installing the related packages, I too suceeded building the savage driver,

# $Id: PKGBUILD 163659 2012-07-17 16:39:29Z andyrtr $
# Maintainer: Jan de Groot <jgc@archlinux.org>

pkgname=xf86-video-savage
pkgver=2.3.6
pkgrel=1
pkgdesc="X.org savage video driver"
arch=(i686 x86_64)
url="http://xorg.freedesktop.org/"
license=('custom')
depends=('glibc')
makedepends=('xorg-server-devel>=1.12.0' 'libdrm' 'xf86driproto' 'mesa')
optdepends=('savage-dri: DRI1 support from community repo')
conflicts=('xorg-server<1.12.0')
options=(!libtool)
groups=('xorg-drivers' 'xorg')
source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
	stop-validate-tree.patch)
sha256sums=('48813ed8f4a08858e8c2466fd2dc810ea31f86842025fa39ec949d44f9ad63d6'
            'e0430d5f27e356b06ed5c3e9a9f8ab4eb42bd5cd139d67462b347486cef671fc')


prepare() {
	cd "${srcdir}/${pkgname}-${pkgver}"

	# Stop (uselessly) initializing the ValidateTree hooks
	patch < "${srcdir}/stop-validate-tree.patch"
}

build() {
  cd "${srcdir}/${pkgname}-${pkgver}"
  ./configure --prefix=/usr \
	--enable-dri
  make
}

package() {
  #cd "${srcdir}/${pkgname}-${pkgver}"
  cd ${srcdir}/${pkgname}*
  make DESTDIR="${pkgdir}" install

  install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}"
  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
}

Thanks a lot for your help and guidance pypi.

At this moment I am undecided if I should too try out the other related packages (mesa, mesa-libgl, savage-dri, xf86-input-evdev) and see if those can also be build from "scratch" in case it is needed...


\(o_X)/
                        'Cause I wanna be an Archy - An Archy in the UK // Sex Pistols

Offline

#19 2016-05-28 00:15:12

pypi
Wiki Maintainer
Registered: 2014-04-22
Posts: 250

Re: Error building xf86-video-savage (and related - #10) (legacy)

How did it go? big_smile

You could give it a go without rebuilding the other packages, if you haven't already.

Offline

Board footer

Powered by FluxBB