----------------------------------------
> Date: Fri, 4 Oct 2013 16:52:46 +0100
> From: [email protected]
> To: [email protected]
> Subject: Re: nouveau driver help
>
> On 10/04/13 15:02, Roelof Wobben wrote:
>> ----------------------------------------
>>> From: [email protected]
>>> To: [email protected]
>>> CC: [email protected]; [email protected]
>>> Subject: Re: nouveau driver help
>>> Date: Fri, 4 Oct 2013 15:52:48 +0200
>>>
>>>
>>> (Redirecting to tech@)
>>>
>>> Roelof Wobben <[email protected]> writes:
>>>
>>>> Hello,
>>>
>>> Hi,
>>>
>>>> To enjoy Gnome 3.10 fully I need the nouveau driver.
>>>> But because this is my first attempt to make a port,
>>>> I wonder if someone can and is willing to help me.
>>>
>>> I don't think that porting nouveau is a ports people concern (but rather
>>> a concern for kernel and xenocara folks).
>>>
>>>> I find out that FreeBSd has a port but that one is full of git
>>>> commands.
>>>
>>> I don't understand what this means.
>>
>> See this Makefile:
>>
>> Created by: Anonymous <[email protected]>
>> 2 # $FreeBSD$
>> 3
>> 4 PORTNAME= xf86-video-nouveau
>> 5 PORTVERSION= 0.0.10.${SNAPDATE}
>> 6 DISTVERSIONSUFFIX=.${SNAPREV}
>> 7 PORTREVISION= 3
>> 8 CATEGORIES= x11-drivers
>> 9 MASTER_SITES= ftp://ftp.lissyara.su/users/Guest/distfiles/
>> 10
>> 11 MAINTAINER= [email protected]
>> 12 COMMENT= Free nouveau display driver for nvidia-based cards
>> 13
>> 14 XORG_CAT= driver
>> 15 USE_XORG= xf86driproto glproto
>> 16 MAN4= nouveau.4x
>> 17
>> 18
>> 19 # also doesn't work with mesa (libGL) version higher then 7.4.x
>> 20 IGNORE= Not supported, missing kernel support. use the nvidia driver.
>> 21
>> 22 NO_STAGE= yes
>> 23 post-configure:
>> 24 ${REINPLACE_CMD} '/NV_DRIVER_DATE/s/".*"/"${SNAPDATE}.${SNAPREV}"/' 
>> ${WRKSRC}/config.h
>> 25
>> 26 post-install: .SILENT
>> 27 ${ECHO_MSG}
>> 28 ${CAT} ${PKGMESSAGE}
>> 29 ${ECHO_MSG}
>> 30
>> 31 GIT_WORK= ${WRKDIR}/${PORTNAME}.git-clone
>> 32 GIT_DATE= $$(date -ur$$(git log --pretty=format:%ct -1 ) +%Y%m%d)
>> 33 GIT_REV= $$(git log --pretty=format:%h -1)
>> 34 NEWDISTNAME= 
>> ${DISTNAME:S/${SNAPDATE}.${SNAPREV}$$//}${GIT_DATE}.${GIT_REV}
>> 35
>> 36 maint-gen-distfile:
>> 37 git clone git://anongit.freedesktop.org/nouveau/xf86-video-nouveau \
>> 38 ${GIT_WORK}
> Clone a copy of the git repository
>
>> 39
>> 40 ( cd ${GIT_WORK}; \
>> 41 git log --stat>ChangeLog; \
> Create a ChangeLog from git log - redundant...
>
>> 42 autoreconf -if; \
>> 43 ${TAR} cjf ${DISTDIR}/${DIST_SUBDIR}/${NEWDISTNAME}${EXTRACT_SUFX} \
>> 44 --exclude '.git*' --exclude autogen.sh \
>> 45 --exclude autom4te.cache \
>> 46 -s "|${GIT_WORK}|${NEWDISTNAME}|" \
>> 47 ${GIT_WORK}; \
> Create a tar file of the git clone directory
>
>> 48 ${ECHO_CMD} "SNAPDATE= ${GIT_DATE}" \
>> 49>${MASTERDIR}/Makefile.rev; \
>> 50 ${ECHO_CMD} "SNAPREV= ${GIT_REV}" \
>> 51>>${MASTERDIR}/Makefile.rev )
> Save VERSION to fetch in Makefile.Rev
>
>> 52
>> 53 ${RM} -rf ${GIT_WORK}
> Remove the git clone directory
>
>> 54
>> 55 .include "Makefile.rev"
>> 56 .include <bsd.port.mk>
>>
>> .
>>
> Download this -
>
> http://cgit.freedesktop.org/nouveau/xf86-video-nouveau/snapshot/xf86-video-nouveau-1.0.9.tar.gz
>
> an already created tar file for a defined version rather than using tar file 
> of snapshot by
> creating a temporary clone of the git repository
>
> The main-gen-distfile in the Makefile is only meant to be run by the 
> maintainer to create a
> tar file for others building the port. Possibly they are building regular 
> snapshots, if that's
> the case then it's too unstable to consider at this time. The Makefile.Rev is 
> created to
> contain the SNAPREV/SNAPDATE to tell the Makefile the tar file to be fetched 
> to build the port.
>
> From the log since 1.0.9 there have only been 3 changes in git, total 8lines, 
> those could be
> added as patches to the extracted 1.0.9 tar file, looks like the whole git 
> thing is a waste
> of time in the Makefile.
>
> These are the three patches to apply to the extracted tar file
>
> diff --git a/src/nouveau_xv.c b/src/nouveau_xv.c
> index 5569b7c..e19378d 100644
> --- a/src/nouveau_xv.c
> +++ b/src/nouveau_xv.c
> @@ -25,7 +25,9 @@
> #include "config.h"
> #endif
> +#ifdef __SSE2__
> #include <immintrin.h>
> +#endif
> #include "xf86xv.h"
> #include <X11/extensions/Xv.h>
>
> diff --git a/src/drmmode_display.c b/src/drmmode_display.c
> index 570a9e4..3563b2a 100644
> --- a/src/drmmode_display.c
> +++ b/src/drmmode_display.c
> @@ -1098,6 +1098,10 @@ drmmode_output_init(ScrnInfoPtr pScrn, drmmode_ptr 
> drmmode, int num)
> if (koutput->connector_type>= NUM_OUTPUT_NAMES)
> snprintf(name, 32, "Unknown%d-%d", koutput->connector_type,
> koutput->connector_type_id);
> + else if (pScrn->is_gpu)
> + snprintf(name, 32, "%s-%d-%d",
> + output_names[koutput->connector_type], pScrn->scrnIndex - GPU_SCREEN_OFFSET 
> + 1,
> + koutput->connector_type_id);
> else
> snprintf(name, 32, "%s-%d",
> output_names[koutput->connector_type],
>
> diff --git a/src/drmmode_display.c b/src/drmmode_display.c
> index 3563b2a..cc141a0 100644
> --- a/src/drmmode_display.c
> +++ b/src/drmmode_display.c
> @@ -1098,10 +1098,12 @@ drmmode_output_init(ScrnInfoPtr pScrn, drmmode_ptr 
> drmmode, int num)
> if (koutput->connector_type>= NUM_OUTPUT_NAMES)
> snprintf(name, 32, "Unknown%d-%d", koutput->connector_type,
> koutput->connector_type_id);
> +#ifdef NOUVEAU_PIXMAP_SHARING
> else if (pScrn->is_gpu)
> snprintf(name, 32, "%s-%d-%d",
> output_names[koutput->connector_type], pScrn->scrnIndex - GPU_SCREEN_OFFSET + 
> 1,
> koutput->connector_type_id);
> +#endif
> else
> snprintf(name, 32, "%s-%d",
> output_names[koutput->connector_type],
> genera
>
>

I looked at the nouveau page and they say that the tar file are dailly 
snapshots.
Are there examples of a good Makefile which is based on git.

Roelof                                    

Reply via email to