Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: MythTV: Dev

Windows pl install script tweaks

 

 

MythTV dev RSS feed   Index | Next | Previous | View Threaded


les.kaye at couchmansfarm

Mar 18, 2010, 5:10 AM

Post #1 of 4 (1471 views)
Permalink
Windows pl install script tweaks

Sorry if this is a duplicate. I recently joined the list and do not know
if my first message got posted.

I am trying to install the "bleeding edge" version of MythTV on my
OpenSuSE 11.2 home server box and my Windows clients from subversion.
The Linux installation went fine and is working great.

I have a number of issues with
http://svn.mythtv.org/svn/trunk/packaging/Win32/build/win32-packager.pl
which I am executing on a Windows 7 x64 box. It should be building the
"bleeding edge" 0.23 version but seems to report version 0.22 ??

(1)
There is a newer version of MinGW reported by the MinGW installer than
the version in the script.

(2)
MySQL installs in "C:\Program files (x86)\MySQL\" on Windows 7 by
default not "C:\Program files\MySQL\" as assumed by the script. There
seems to be a bug in the MySQL installer which allows the path to be
changed but then goes ahead and installs it in the (x86) programs folder
regardless. I am using my server's MySQL installation for Mythtv so I
just copied and pasted the local MySQL program files to the expected
location to proceed past this point in the script.

(3)
The DX9 files have now moved to
https://sites.google.com/site/davidbuzz/mythtv-files/DX9SDK_dsound_Include_subset.zip.
The pl script needs to be amended for this.

(4)
typo at around line 227?
my $qt4dir = '/qt/4.5.1/';
should be
my $qt4dir = 'C:/qt/4.5.1/';
else it will not work if the script happens to be on a different drive
as in my case.

(5)
Most (if not all?) of the pl script zip file extracts do not work for me
so they have to be done manually and the script re-run.
(the extracted file list is echoed in the cmd window but no files are
written to disc! )

(6)
At around line 780, taglib is not available from
http://ftp.musicbrainz.org/pub/musicbrainz/users/luks/taglib/taglib-1.5-mingw-bin.zip
therefore I used this one
http://users.physik.fu-berlin.de/~glaubitz/linux-minidisc/taglib-1.6.1-mingw-bin.zip
and changed "5" to "6.1" as below
**************************
# taglib 1.6.1 sources changed it's build system under win32 to use 'cmake',
# which we don't have, however pre-compiled mingw 1.6.1 binaries are
available:
[ archive => $sources.'taglib-1.6.1-mingw-bin.zip',
fetch => 'http://users.physik.fu-berlin.de'.
'/~glaubitz/linux-minidisc/taglib-1.6.1-mingw-bin.zip'],
[ dir => $sources.'taglib-1.6.1-mingw-bin',
extract => $sources.'taglib-1.6.1-mingw-bin.zip' ],
[ file => $mingw.'lib/libtag.dll.a',
shell => ['cd '.$sources.'taglib-1.6.1-mingw-bin',
"cp -vr * $unixmingw"],
comment => 'installing: mingw taglib' ],
[ file => $msys.'lib/libtag.dll.a',
shell => ['cd '.$sources.'taglib-1.6.1-mingw-bin',
"cp -vr * $unixmsys"],
comment => 'installing: msys taglib' ],
# Hack for mythplugins/configure to detect taglib version:
[ file => $mingw.'bin/taglib-config',
write => [$mingw.'bin/taglib-config',
'#!/bin/sh
case $1 in
"--version") echo 1.6.1 ;;
"--prefix") echo /mingw ;;
esac'] ],
[ always => [],
shell => ["chmod 755 $mingw/bin/taglib-config"] ],
**************************

(7)
I got this output regarding the the libvisual patch

***************
COMMENTS:------------------------------
COMMENTS:Create patch for libvisual
COMMENTS:------------------------------

grep-ing for pattern(sched_setscheduler \(getpid \(\), SCHED_OTHER\);)
in file(C
:/MSys/1.0/sources/libvisual-0.4.0/libvisual/lv_os.c):
shell:C:\MSys\1.0\bin\bash.exe -c "( export
PATH=/bin:/mingw/bin:$PATH;cd /sourc
es//libvisual-0.4.0/libvisual;patch -p0 <
C:/MSys/1.0/sources/libvisual.patch) 2
>&1 "
patching file lv_os.c
Hunk #1 FAILED at 59.
Hunk #2 FAILED at 77.
2 out of 2 hunks FAILED -- saving rejects to file lv_os.c.rej
EFFECT FAILED (grep -> shell): unable to locate regex pattern
(sched_setschedule
r \(getpid \(\), SCHED_OTHER\);) in file
(C:/MSys/1.0/sources/libvisual-0.4.0/li
bvisual/lv_os.c)

***************

and the lv_os.c.rej file says

***************
*** 59,65 ****
attr.sched_priority = 99;

/* FIXME: Do we want RR or FIFO here ? */
- ret = sched_setscheduler (getpid (), SCHED_FIFO, &attr);

return ret >= 0 ? VISUAL_OK : -VISUAL_ERROR_OS_SCHED;
#else
--- 59,65 ----
attr.sched_priority = 99;

/* FIXME: Do we want RR or FIFO here ? */
+ ret = sched_setscheduler (getpid (), SCHED_FIFO);

return ret >= 0 ? VISUAL_OK : -VISUAL_ERROR_OS_SCHED;
#else

*** 77,83 ****
int ret;
attr.sched_priority = 0;

- ret = sched_setscheduler (getpid (), SCHED_OTHER, &attr);

return ret >= 0 ? VISUAL_OK : -VISUAL_ERROR_OS_SCHED;
#else
--- 77,83 ----
int ret;
attr.sched_priority = 0;

+ ret = sched_setscheduler (getpid (), SCHED_OTHER);

return ret >= 0 ? VISUAL_OK : -VISUAL_ERROR_OS_SCHED;
#else
***************

which does not mean a whole lot to me (maybe the date is different in
the file ID?) so I commented the patch stuff out of the pl script and
did the patch manually.

(8)
the next problem I hit is this...

***************
COMMENTS:------------------------------
COMMENTS:Create patch1 for QT4
COMMENTS:------------------------------

grep-ing for pattern(Option::shellPath.isEmpty) in
file(C:/qt/4.5.1/qmake/option
.cpp):
shell:C:\MSys\1.0\bin\bash.exe -c "( export
PATH=/bin:/mingw/bin:$PATH;cd /c/C/q
t/4.5.1/;dos2unix qmake/option.cpp;patch -p1 <
C:/MSys/1.0/sources/qt-4.5.1.patc
h1) 2>&1 "
/bin/bash: line 0: cd: /c/C/qt/4.5.1/: No such file or directory
dos2unix: converting file qmake/option.cpp to UNIX format ...
dos2unix: problems converting file qmake/option.cpp
can't find file to patch at input line 3
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|--- 4.5.1/qmake/option.cpp.bak 2009-06-28 16:35:29 -0500
|+++ 4.5.1/qmake/option.cpp 2009-06-28 16:35:47 -0500
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
1 out of 1 hunk ignored
EFFECT FAILED (grep -> shell): unable to locate regex pattern
(Option::shellPath
.isEmpty) in file (C:/qt/4.5.1/qmake/option.cpp)
***************

caused by an error on or around line 1145
shell => ['cd '.$unixqt4dir, 'dos2unix qmake/option.cpp',
'patch -p1 < '.$sources.'qt-4.5.1.patch1'] ],
which should read
shell => ['cd '.$qt4dir, 'dos2unix qmake/option.cpp',
'patch -p1 < '.$sources.'qt-4.5.1.patch1'] ],

and at or around line 1190
shell => ['cd '.$unixqt4dir, 'dos2unix mkspecs/win32-g++/qmake.conf',
'patch -p1 < '.$sources.'qt-4.5.1.patch2'] ],
should be
shell => ['cd '.$qt4dir, 'dos2unix mkspecs/win32-g++/qmake.conf',
'patch -p1 < '.$sources.'qt-4.5.1.patch2'] ],

Thinking this problem might be repeated, I did a search "$unixqt4dir"
and replace with "$qt4dir" which replaced 4 instances.

re-run the pl script and now we get

***************
COMMENTS:------------------------------
COMMENTS:Create patch2 for QT4
COMMENTS:------------------------------

grep-ing for pattern(QMAKE_COPY_DIR.*?= cp -r) in
file(C:/qt/4.5.1/mkspecs/win32
-g++/qmake.conf):
shell:C:\MSys\1.0\bin\bash.exe -c "( export
PATH=/bin:/mingw/bin:$PATH;cd C:/qt/
4.5.1/;dos2unix mkspecs/win32-g++/qmake.conf;patch -p1 <
C:/MSys/1.0/sources/qt-
4.5.1.patch2) 2>&1 "
dos2unix: converting file mkspecs/win32-g++/qmake.conf to UNIX format ...
patching file mkspecs/win32-g++/qmake.conf
Hunk #1 FAILED at 76.
Hunk #2 FAILED at 93.
2 out of 2 hunks FAILED -- saving rejects to file
mkspecs/win32-g++/qmake.conf.r
ej
EFFECT FAILED (grep -> shell): unable to locate regex pattern
(QMAKE_COPY_DIR.*?
= cp -r) in file (C:/qt/4.5.1/mkspecs/win32-g++/qmake.conf)
***************

here is the patch rej file
***************
*** 76,87 ****
MINGW_IN_SHELL = 1
QMAKE_DIR_SEP = /
QMAKE_COPY = cp
- QMAKE_COPY_DIR = xcopy /s /q /y /i
QMAKE_MOVE = mv
QMAKE_DEL_FILE = rm
- QMAKE_MKDIR = mkdir
QMAKE_DEL_DIR = rmdir
QMAKE_CHK_DIR_EXISTS = test -d
} else {
QMAKE_COPY = copy /y
QMAKE_COPY_DIR = xcopy /s /q /y /i
--- 76,90 ----
MINGW_IN_SHELL = 1
QMAKE_DIR_SEP = /
QMAKE_COPY = cp
+ QMAKE_COPY_DIR = cp -r
QMAKE_MOVE = mv
QMAKE_DEL_FILE = rm
+ QMAKE_MKDIR = mkdir -p
QMAKE_DEL_DIR = rmdir
QMAKE_CHK_DIR_EXISTS = test -d
+ QMAKE_MOC = $$[QT_INSTALL_BINS]/moc
+ QMAKE_UIC = $$[QT_INSTALL_BINS]/uic
+ QMAKE_IDC = $$[QT_INSTALL_BINS]/idc
} else {
QMAKE_COPY = copy /y
QMAKE_COPY_DIR = xcopy /s /q /y /i
***************
*** 90,101 ****
QMAKE_MKDIR = mkdir
QMAKE_DEL_DIR = rmdir
QMAKE_CHK_DIR_EXISTS = if not exist
}

- QMAKE_MOC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}moc.exe
- QMAKE_UIC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}uic.exe
- QMAKE_IDC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}idc.exe
-
QMAKE_IDL = midl
QMAKE_LIB = ar -ru
QMAKE_RC = windres
--- 93,103 ----
QMAKE_MKDIR = mkdir
QMAKE_DEL_DIR = rmdir
QMAKE_CHK_DIR_EXISTS = if not exist
+ QMAKE_MOC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}moc.exe
+ QMAKE_UIC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}uic.exe
+ QMAKE_IDC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}idc.exe
}

QMAKE_IDL = midl
QMAKE_LIB = ar -ru
QMAKE_RC = windres
***************

My eyes glaze over when I see "regex" so I just comment it all out and
make the patch manually.

(9)
At or around line 1200 there are errors in
set PATH=%QTDIR%\bin;%MINGW%\bin;%SystemRoot%\System32
which should read
set PATH=%QTDIR%bin;%MINGW%bin;%SystemRoot%\System32
because the %QTDIR% and %MINGW% variables already have trailing slashes.

(10)
The next error is around line 1215
the output is
E:\>rem This compiles only the sqldrivers folder:

E:\>C:\MSys\1.0\bin\yes | configure -opensource -plugin-sql-mysql
-no-sql-sqlite -debug-and-release -fast -no-sql-odbc -no-qdbus
'configure' is not recognized as an internal or external command,
operable program or batch file.

This is fixed by modifying the line
'.$dosmsys.'bin\yes | configure -opensource -plugin-sql-mysql
-no-sql-sqlite -debug-and-release -fast -no-sql-odbc -no-qdbus
to
'.$dosmsys.'bin\yes | %QTDIR%configure -opensource -plugin-sql-mysql
-no-sql-sqlite -debug-and-release -fast -no-sql-odbc -no-qdbus
and this fix can be made to the other 3 instances of "configure" in this
area of code.

I then did a search to replace "%QTDIR%\" with "%QTDIR%" (to remove the
following slashes) because the variable already contains a following slash.

running the pl script again I get

E:\>rem This compiles only the sqldrivers folder:

E:\>C:\MSys\1.0\bin\yes | C:\qt\4.5.1\configure -opensource
-plugin-sql-mysql-no-sql-sqlite -debug-and-release -fast -no-sql-odbc
-no-qdbus
Error: Creating a shadow build of Qt requires perl to be in the PATH
environment

this is my PATH with the correct path to perl.exe as the very first
item... (which I had to insert using Control Panel as the Perl installer
failed to do so)
PATH=C:\Perl64\bin;C:\Program Files (x86)\Embarcadero\RAD
Studio\7.0\bin;C:\User
s\Public\Documents\RAD
Studio\7.0\Bpl;C:\Windows\system32;C:\Windows;C:\Windows\
System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program
Files\Torto
iseSVN\bin;C:\Program Files (x86)\QuickTime\QTSystem\;C:\Program Files
(x86)\MyS
QL\MySQL Server 5.1\bin

I messed with this problem for a while including re-boot etc. but I seem
to be stuck at this point. The coffee has run out so I am going to bed.

Any help with this would be very welcome.

As a temporary solution I installed the v22 23616 build from
http://members.iinet.net.au/~davco/ and then built this version from svn
on my Linux box.

regards
Leslie Kaye











_______________________________________________
mythtv-dev mailing list
mythtv-dev [at] mythtv
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev


jonathan at snetram

Mar 18, 2010, 9:52 AM

Post #2 of 4 (1396 views)
Permalink
Re: Windows pl install script tweaks [In reply to]

On 18-3-2010 13:10, Leslie Kaye wrote:
> I have a number of issues with
> http://svn.mythtv.org/svn/trunk/packaging/Win32/build/win32-packager.pl
> which I am executing on a Windows 7 x64 box. It should be building the
> "bleeding edge" 0.23 version but seems to report version 0.22 ??

Do you mean the version reported at the top of the screen when you are
starting the build?

Jonathan
_______________________________________________
mythtv-dev mailing list
mythtv-dev [at] mythtv
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev


davidbuzz at gmail

Mar 18, 2010, 10:19 PM

Post #3 of 4 (1377 views)
Permalink
Re: Windows pl install script tweaks [In reply to]

WIN32 related trac tickets that need applying at the moment are:

[7339] - support building on a different drive.
[7293] - good changes: MinGW to 5.1.6 ; QT4 to 4.5.3; unzip to 600, mysql
to 5.1.42; make oldthemes optional; adds CPATH and LIBRARY_PATH variables;
- except we still want the QT3 build and "svn switch" related stuff, I
think.
[6868] - 32 and 64 bit Path fixes for Windows ( fixes for error number 2 )
[8186] - upgrades SVN to 1.6.6
[8121] - win32 dbus and setuid fixes
[7859] - compile fix - needed?
[7844] - socket issues
[6597] - core backend, HDHR, transcoder, datadirect on win32 ( partially
applied? )

Your errors numbered 3,4, 6 7,8,9,10 should have a patch submitted to trac,
so they can be more permantly fixed.

As for your final issue, ( perl not being found in the %PATH% ) . Can you
run 'perl -v' from the command line ( while NOT in the perl directory, of
course ) ?

Also check out these links, they may help:
http://stackoverflow.com/questions/1245011/how-to-build-qt-out-of-source
http://www.qtcentre.org/forum/archive/index.php/t-23529.html

Buzz

On Fri, Mar 19, 2010 at 2:52 AM, Jonathan Martens <jonathan [at] snetram>wrote:

> On 18-3-2010 13:10, Leslie Kaye wrote:
>
>> I have a number of issues with
>> http://svn.mythtv.org/svn/trunk/packaging/Win32/build/win32-packager.pl
>> which I am executing on a Windows 7 x64 box. It should be building the
>> "bleeding edge" 0.23 version but seems to report version 0.22 ??
>>
>
> Do you mean the version reported at the top of the screen when you are
> starting the build?
>
> Jonathan
>
> _______________________________________________
> mythtv-dev mailing list
> mythtv-dev [at] mythtv
> http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev
>


nigel at ind

Mar 18, 2010, 11:14 PM

Post #4 of 4 (1373 views)
Permalink
Re: Windows pl install script tweaks [In reply to]

> WIN32 related trac tickets that need applying at the moment are:
>
> [7339] - support building on a different drive.

That has been in trunk for a while, but I just added it in release-0-22-fixes.


Leslie's (4) does point out another fault (with Qt location), though. I suspect this is the needed fix:

% svn diff packaging/Win32/build/win32-packager.pl
Index: packaging/Win32/build/win32-packager.pl
===================================================================
--- packaging/Win32/build/win32-packager.pl (revision 23670)
+++ packaging/Win32/build/win32-packager.pl (working copy)
@@ -223,9 +220,9 @@
my $installMinGW = $dossources.$MinGWinstaller;

# Qt4 directory
-my $qt4dir = '/qt/4.5.1/';
+my $qt4dir = '/c/qt/4.5.1/';
my $dosqt4dir = perl2dos($qt4dir);
-my $unixqt4dir = '/c'.perl2unix($qt4dir);
+my $unixqt4dir = perl2unix($qt4dir);

#NOTE: IT'S IMPORTANT that the PATHS use the correct SLASH-ing method for
#the type of action:
%



> [7293] - good changes: MinGW to 5.1.6...

Oops, didn't realise a MinGW upgrade was in there.
That would have saved be a lot of fighting with 5.1.4
downloads if I had known. Will apply most of those soon.

> - except we still want the QT3 build and "svn switch" related stuff, I think.

SVN switch? Maybe. QT3? No, because there is always this old version:

release-0-21-fixes/mythtv/contrib/Win32/win32-packager.pl





Thanks for the summary list, David. I will try to prune it soon.


--
Nigel Pearson, nigel [at] ind| Citizens, never fear! |
Telstra Net. Eng., Sydney, Australia |Crazy do-good freaks are here,|
Office: 9202 3900 Fax: 9212 6348 |until they run out of steam...|
Mobile: 0408 664435 Home: 9792 6998 | The New Justice Team! |





_______________________________________________
mythtv-dev mailing list
mythtv-dev [at] mythtv
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev

MythTV dev RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.