Re: [Development] Non-movable Qt build

2013-01-07 Thread Oswald Buddenhagen
On Fri, Jan 04, 2013 at 09:23:21AM -0200, Thiago Macieira wrote:
 On sexta-feira, 4 de janeiro de 2013 09.38.31, Peter Kümmel wrote:
   I know how to make a relocatable shared library on Linux (find the calling
   function's address in /proc/self/maps) and I know it's possible with some
   Win32 API, but I have no clue how to do it elsewhere. Therefore, I won't
   do
   it.
  
  Isn't the discussion here only about paths, different to how memory mapping
  is handled?
 
 Yes, the discussion here is about paths. There's nothing about memory mapping.
 
 The /proc/self/maps above is a red herring.
 
why?
you can use the above to determine the path to the current dll (QtCore). if
QLibraryInfo now only stores relative paths, this is all that's needed
to make the qt installations fully relocatable (as long as the internal
layout says intact).
i'd go as far as making this linux  windows only - systems which don't
support it can continue with the current absolute path stuff.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Non-movable Qt build

2013-01-07 Thread Thiago Macieira
On segunda-feira, 7 de janeiro de 2013 13.04.50, Oswald Buddenhagen wrote:
 On Fri, Jan 04, 2013 at 09:23:21AM -0200, Thiago Macieira wrote:
  On sexta-feira, 4 de janeiro de 2013 09.38.31, Peter Kümmel wrote:
I know how to make a relocatable shared library on Linux (find the
calling
function's address in /proc/self/maps) and I know it's possible with
some
Win32 API, but I have no clue how to do it elsewhere. Therefore, I
won't
do
it.
  
   Isn't the discussion here only about paths, different to how memory
   mapping
   is handled?
 
  Yes, the discussion here is about paths. There's nothing about memory
  mapping.
 
  The /proc/self/maps above is a red herring.

 why?

It's a red herring because we're using the maps file to look for file paths,
not for memory mapping.

 you can use the above to determine the path to the current dll (QtCore). if
 QLibraryInfo now only stores relative paths, this is all that's needed
 to make the qt installations fully relocatable (as long as the internal
 layout says intact).
 i'd go as far as making this linux  windows only - systems which don't
 support it can continue with the current absolute path stuff.

Yes, that can be done, but I won't do it exactly because it isn't supported on
all systems.

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center


signature.asc
Description: This is a digitally signed message part.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Non-movable Qt build

2013-01-04 Thread Peter Kümmel
On 02.01.2013 14:33, Lincoln Ramsay wrote:
 On 2/01/13 11:01 PM, Peter Kümmel wrote:
 On 02.01.2013 13:50, Yves Bailly wrote:
 Le 02/01/2013 13:42, Thiago Macieira a écrit :
 On quarta-feira, 2 de janeiro de 2013 10.53.03, Yves Bailly wrote:
 Does anyone knows where I could find the source code of the official
 installer, or at least some information about what it does? Because the
 installer does relocate the binaries, that would be a good starting point
 to relocate my own binaries...
 It simply edits the qmake and QtCore DLL binaries, plus maybe some files in
 mkspecs, changing a placeholder prefix to the installation dir.
 Editing binaries? hu, havent't done that since... a long time ;-) Changing 
 some
 Sounds like a really bad hack. And this was not changed in Qt 5?


 QTDIR was a hack. You'd end up with the libs from one version of Qt and
 the plugins from another. Plus, Qt installations couldn't have parts in
 arbitrary locations like they can now.

 qt.conf is a hack because your app doesn't read it before it's found
 QtCore (so it can't change the Qt libs your app pulls in, only the
 plugins and data paths).

Isn't on Windows only PATH used to figure out which Dll to load? Then
qt.conf in the same dir as QtCore/qmake should be enough on Windows, or
missed I something?


BTW, one thing which becomes at least more complicated by this binary patching
is the signing of a shared library. I don't know if it is necessary (I only know
that you can sign a dll in .NET), but I could imagine some day it will be used,
e.g. to verify a program only uses by a specific build.
(I already see the discussions because of LGPL ;) )

Peter
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Non-movable Qt build

2013-01-04 Thread Peter Kümmel
On 02.01.2013 14:18, Thiago Macieira wrote:
 On quarta-feira, 2 de janeiro de 2013 14.01.02, Peter Kümmel wrote:
 On 02.01.2013 13:50, Yves Bailly wrote:
 Le 02/01/2013 13:42, Thiago Macieira a écrit :
 On quarta-feira, 2 de janeiro de 2013 10.53.03, Yves Bailly wrote:
 Does anyone knows where I could find the source code of the official
 installer, or at least some information about what it does? Because the
 installer does relocate the binaries, that would be a good starting
 point
 to relocate my own binaries...

 It simply edits the qmake and QtCore DLL binaries, plus maybe some files
 in
 mkspecs, changing a placeholder prefix to the installation dir.

 Editing binaries? hu, havent't done that since... a long time ;-) Changing
 some
 Sounds like a really bad hack. And this was not changed in Qt 5?

 No.

 I know how to make a relocatable shared library on Linux (find the calling
 function's address in /proc/self/maps) and I know it's possible with some
 Win32 API, but I have no clue how to do it elsewhere. Therefore, I won't do
 it.

Isn't the discussion here only about paths, different to how memory mapping is 
handled?

Peter
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Non-movable Qt build

2013-01-04 Thread Thiago Macieira
On sexta-feira, 4 de janeiro de 2013 09.38.31, Peter Kümmel wrote:
  I know how to make a relocatable shared library on Linux (find the calling
  function's address in /proc/self/maps) and I know it's possible with some
  Win32 API, but I have no clue how to do it elsewhere. Therefore, I won't
  do
  it.

 Isn't the discussion here only about paths, different to how memory mapping
 is handled?

Yes, the discussion here is about paths. There's nothing about memory mapping.

The /proc/self/maps above is a red herring.

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center


signature.asc
Description: This is a digitally signed message part.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Non-movable Qt build

2013-01-04 Thread Thiago Macieira
On sexta-feira, 4 de janeiro de 2013 09.35.33, Peter Kümmel wrote:
 Isn't on Windows only PATH used to figure out which Dll to load?

Correct.

 Then
 qt.conf in the same dir as QtCore/qmake should be enough on Windows, or
 missed I something?

You missed something. The question is: when running app.exe from a given
directory, how do you tell Windows to load Qt5Core.dll or QtCore4.dll from a
different directory?

The only answer is what you gave above: change PATH. Because qt.conf isn't
used at this point.

 BTW, one thing which becomes at least more complicated by this binary
 patching is the signing of a shared library. I don't know if it is
 necessary (I only know that you can sign a dll in .NET), but I could
 imagine some day it will be used, e.g. to verify a program only uses by a
 specific build.
 (I already see the discussions because of LGPL  )

Since we're talking about LGPL, signing the library is unnecessary. And maybe
even illegal, depending on your reading of the LGPL and how you consider that
the GPLv3 applies.

The Windows installers are signed, as a whole, to ensure that they weren't
tampered with.

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center


signature.asc
Description: This is a digitally signed message part.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Non-movable Qt build

2013-01-04 Thread Peter Kümmel
On 04.01.2013 12:27, Thiago Macieira wrote:
 On sexta-feira, 4 de janeiro de 2013 09.35.33, Peter Kümmel wrote:
 Isn't on Windows only PATH used to figure out which Dll to load?

 Correct.

 Then
 qt.conf in the same dir as QtCore/qmake should be enough on Windows, or
 missed I something?

 You missed something. The question is: when running app.exe from a given
 directory, how do you tell Windows to load Qt5Core.dll or QtCore4.dll from a
 different directory?

 The only answer is what you gave above: change PATH. Because qt.conf isn't
 used at this point.

Still don't get it: when PATH is the only way to tell the app
which Qt dlls to load, why do we need to patch the dlls?
Or is PATH changed by app.exe before it loads the Qt dlls and has the
paths compiled in?


 BTW, one thing which becomes at least more complicated by this binary
 patching is the signing of a shared library. I don't know if it is
 necessary (I only know that you can sign a dll in .NET), but I could
 imagine some day it will be used, e.g. to verify a program only uses by a
 specific build.
 (I already see the discussions because of LGPL  )

 Since we're talking about LGPL, signing the library is unnecessary. And maybe
 even illegal, depending on your reading of the LGPL and how you consider that
 the GPLv3 applies.

 The Windows installers are signed, as a whole, to ensure that they weren't
 tampered with.



 ___
 Development mailing list
 Development@qt-project.org
 http://lists.qt-project.org/mailman/listinfo/development

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Non-movable Qt build

2013-01-04 Thread Kalinowski Maurice

 -Original Message-
 From: development-bounces+maurice.kalinowski=digia@qt-project.org
 [mailto:development-bounces+maurice.kalinowski=digia.com@qt-
 project.org] On Behalf Of Peter Kümmel
 Sent: Friday, January 04, 2013 12:45 PM
 To: development@qt-project.org
 Subject: Re: [Development] Non-movable Qt build
 
 On 04.01.2013 12:27, Thiago Macieira wrote:
  On sexta-feira, 4 de janeiro de 2013 09.35.33, Peter Kümmel wrote:
  Isn't on Windows only PATH used to figure out which Dll to load?
 
  Correct.
 
  Then
  qt.conf in the same dir as QtCore/qmake should be enough on Windows,
 or
  missed I something?
 
  You missed something. The question is: when running app.exe from a
 given
  directory, how do you tell Windows to load Qt5Core.dll or QtCore4.dll from
 a
  different directory?
 
  The only answer is what you gave above: change PATH. Because qt.conf
 isn't
  used at this point.
 
 Still don't get it: when PATH is the only way to tell the app
 which Qt dlls to load, why do we need to patch the dlls?
 Or is PATH changed by app.exe before it loads the Qt dlls and has the
 paths compiled in?

Eg. Plugins. The plugin paths are read from the binary as well as qt.conf

The fact that the dll loading comes via PATH is simply a system design on 
Windows.

BR,
Maurice


 
 
  BTW, one thing which becomes at least more complicated by this binary
  patching is the signing of a shared library. I don't know if it is
  necessary (I only know that you can sign a dll in .NET), but I could
  imagine some day it will be used, e.g. to verify a program only uses by a
  specific build.
  (I already see the discussions because of LGPL  )
 
  Since we're talking about LGPL, signing the library is unnecessary. And
 maybe
  even illegal, depending on your reading of the LGPL and how you consider
 that
  the GPLv3 applies.
 
  The Windows installers are signed, as a whole, to ensure that they weren't
  tampered with.
 
 
 
  ___
  Development mailing list
  Development@qt-project.org
  http://lists.qt-project.org/mailman/listinfo/development
 
 ___
 Development mailing list
 Development@qt-project.org
 http://lists.qt-project.org/mailman/listinfo/development
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Non-movable Qt build

2013-01-04 Thread Thiago Macieira
On sexta-feira, 4 de janeiro de 2013 12.45.12, Peter Kümmel wrote:
  Then
  qt.conf in the same dir as QtCore/qmake should be enough on Windows, or
  missed I something?
 
  You missed something. The question is: when running app.exe from a given
  directory, how do you tell Windows to load Qt5Core.dll or QtCore4.dll from
  a different directory?
 
  The only answer is what you gave above: change PATH. Because qt.conf isn't
  used at this point.

 Still don't get it: when PATH is the only way to tell the app
 which Qt dlls to load, why do we need to patch the dlls?
 Or is PATH changed by app.exe before it loads the Qt dlls and has the
 paths compiled in?

Uh... sorry, my mistake.

Yes, qt.conf *is* enough for the purposes at hand: the loading of plugins and
other resources besides linked DLLs. That is, everything we load, as opposed
to the Windows loader.

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center


signature.asc
Description: This is a digitally signed message part.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Non-movable Qt build

2013-01-04 Thread Joerg Bornemann
On 04/01/2013 12:48, Kalinowski Maurice wrote:

 Still don't get it: when PATH is the only way to tell the app
 which Qt dlls to load, why do we need to patch the dlls?
 Or is PATH changed by app.exe before it loads the Qt dlls and has the
 paths compiled in?

 Eg. Plugins. The plugin paths are read from the binary as well as qt.conf

Also, debug information. The DLLs contain absolute paths to the PDB 
files that contain the debug information. Those are adjusted by the 
installer as well.


Jörg

-- 
Joerg Bornemann
Senior Software Engineer - Digia, Qt
http://qt.digia.com/

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Non-movable Qt build

2013-01-02 Thread Yves Bailly
Le 28/12/2012 13:15, Thiago Macieira a écrit :
 On sexta-feira, 28 de dezembro de 2012 12.39.40, Stephen Kelly wrote:
 On Wednesday, December 26, 2012 16:14:10 Yves Bailly wrote:
 Any hint greatly appreciated.

 Why can you not use 'make install'?

 He can do make install, but most people developing on Windows don't because
 their prefix is equal to the source dir.

 In any case, that's not the point: he wants to move the installed files after
 they've been installed.

Indeed.

Does anyone knows where I could find the source code of the official 
installer,
or at least some information about what it does? Because the installer *does*
relocate the binaries, that would be a good starting point to relocate my own 
binaries...

Anyway, have all a happy and healthy new year ;-)

Regards,

-- 
  /- Yves Bailly - Software developper  -\
  \- Sescoi RD  - http://www.sescoi.fr -/
The possible is done. The impossible is being done. For miracles,
thanks to allow a little delay.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Non-movable Qt build

2013-01-02 Thread Thiago Macieira
On quarta-feira, 2 de janeiro de 2013 10.53.03, Yves Bailly wrote:
 Does anyone knows where I could find the source code of the official
 installer, or at least some information about what it does? Because the
 installer does relocate the binaries, that would be a good starting point
 to relocate my own binaries...

It simply edits the qmake and QtCore DLL binaries, plus maybe some files in 
mkspecs, changing a placeholder prefix to the installation dir.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center


signature.asc
Description: This is a digitally signed message part.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Non-movable Qt build

2013-01-02 Thread André Somers
Op 2-1-2013 13:42, Thiago Macieira schreef:
 On quarta-feira, 2 de janeiro de 2013 10.53.03, Yves Bailly wrote:
 Does anyone knows where I could find the source code of the official
 installer, or at least some information about what it does? Because the
 installer does relocate the binaries, that would be a good starting point
 to relocate my own binaries...
 It simply edits the qmake and QtCore DLL binaries, plus maybe some files in
 mkspecs, changing a placeholder prefix to the installation dir.

Wouldn't it be nice to have that as a separate tool then? The installer 
can use that tool too, but it also would make it easy for developers 
that compile Qt themselves to relocate their Qt build...

André

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Non-movable Qt build

2013-01-02 Thread Sergio Ahumada
On 01/02/2013 01:50 PM, Yves Bailly wrote:
 Le 02/01/2013 13:42, Thiago Macieira a écrit :
 On quarta-feira, 2 de janeiro de 2013 10.53.03, Yves Bailly wrote:
 Does anyone knows where I could find the source code of the official
 installer, or at least some information about what it does? Because the
 installer does relocate the binaries, that would be a good starting point
 to relocate my own binaries...

 It simply edits the qmake and QtCore DLL binaries, plus maybe some files in
 mkspecs, changing a placeholder prefix to the installation dir.

 Editing binaries? hu, havent't done that since... a long time ;-) Changing 
 some
 internal strings I guess? any idea which one or how they can be spotted?

 Regards,


http://qt-project.org/wiki/Building-Qt-Package

may give some ideas

-- 
Sergio Ahumada
s...@sansano.inf.utfsm.cl
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Non-movable Qt build

2013-01-02 Thread Kalinowski Maurice
 
 On 01/02/2013 01:50 PM, Yves Bailly wrote:
  Le 02/01/2013 13:42, Thiago Macieira a écrit :
  On quarta-feira, 2 de janeiro de 2013 10.53.03, Yves Bailly wrote:
  Does anyone knows where I could find the source code of the official
  installer, or at least some information about what it does? Because the
  installer does relocate the binaries, that would be a good starting point
  to relocate my own binaries...
 
  It simply edits the qmake and QtCore DLL binaries, plus maybe some files
 in
  mkspecs, changing a placeholder prefix to the installation dir.
 
  Editing binaries? hu, havent't done that since... a long time ;-) Changing
 some
  internal strings I guess? any idea which one or how they can be spotted?
 
  Regards,
 
 
 http://qt-project.org/wiki/Building-Qt-Package
 
 may give some ideas

The package uses the installer framework, which contains an operation 
responsible for the patching. Check this link:
http://qt.gitorious.org/installer-framework/installer-framework/blobs/qt5/src/libs/installer/qtpatchoperation.cpp

BR,
Maurice


 
 --
 Sergio Ahumada
 s...@sansano.inf.utfsm.cl
 ___
 Development mailing list
 Development@qt-project.org
 http://lists.qt-project.org/mailman/listinfo/development
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Non-movable Qt build

2013-01-02 Thread Peter Kümmel
On 02.01.2013 13:50, Yves Bailly wrote:
 Le 02/01/2013 13:42, Thiago Macieira a écrit :
 On quarta-feira, 2 de janeiro de 2013 10.53.03, Yves Bailly wrote:
 Does anyone knows where I could find the source code of the official
 installer, or at least some information about what it does? Because the
 installer does relocate the binaries, that would be a good starting point
 to relocate my own binaries...

 It simply edits the qmake and QtCore DLL binaries, plus maybe some files in
 mkspecs, changing a placeholder prefix to the installation dir.

 Editing binaries? hu, havent't done that since... a long time ;-) Changing 
 some

Sounds like a really bad hack. And this was not changed in Qt 5?

 internal strings I guess? any idea which one or how they can be spotted?

 Regards,


___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Non-movable Qt build

2013-01-02 Thread Yves Bailly
Le 02/01/2013 13:50, Sergio Ahumada a écrit :
 On 01/02/2013 01:50 PM, Yves Bailly wrote:
 Le 02/01/2013 13:42, Thiago Macieira a écrit :
 On quarta-feira, 2 de janeiro de 2013 10.53.03, Yves Bailly wrote:
 Does anyone knows where I could find the source code of the official
 installer, or at least some information about what it does? Because the
 installer does relocate the binaries, that would be a good starting point
 to relocate my own binaries...

 It simply edits the qmake and QtCore DLL binaries, plus maybe some files in
 mkspecs, changing a placeholder prefix to the installation dir.

 Editing binaries? hu, havent't done that since... a long time ;-) Changing 
 some
 internal strings I guess? any idea which one or how they can be spotted?

 http://qt-project.org/wiki/Building-Qt-Package
 may give some ideas

Quite interesting indeed... too bad those release-tools/ seem not provided
with the downloadable source archives, I guess they're available only from Git.
Also it seems they would need to be tweaked a bit, e.g. to give the needed 
options
to configure.

I'll have a look at this, however, as someone already said, it would be very
nice if a kind of packager was provided with the source archives. Maybe
make the installer framework (cited by Maurice) publicly available and
usable?

Thanks for the information.

-- 
  /- Yves Bailly - Software developper  -\
  \- Sescoi RD  - http://www.sescoi.fr -/
The possible is done. The impossible is being done. For miracles,
thanks to allow a little delay.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Non-movable Qt build

2013-01-02 Thread Thiago Macieira
On quarta-feira, 2 de janeiro de 2013 14.01.02, Peter Kümmel wrote:
 On 02.01.2013 13:50, Yves Bailly wrote:
  Le 02/01/2013 13:42, Thiago Macieira a écrit :
  On quarta-feira, 2 de janeiro de 2013 10.53.03, Yves Bailly wrote:
  Does anyone knows where I could find the source code of the official
  installer, or at least some information about what it does? Because the
  installer does relocate the binaries, that would be a good starting
  point
  to relocate my own binaries...
 
  It simply edits the qmake and QtCore DLL binaries, plus maybe some files
  in
  mkspecs, changing a placeholder prefix to the installation dir.
 
  Editing binaries? hu, havent't done that since... a long time ;-) Changing
  some
 Sounds like a really bad hack. And this was not changed in Qt 5?

No.

I know how to make a relocatable shared library on Linux (find the calling
function's address in /proc/self/maps) and I know it's possible with some
Win32 API, but I have no clue how to do it elsewhere. Therefore, I won't do
it.

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center


signature.asc
Description: This is a digitally signed message part.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Non-movable Qt build

2013-01-02 Thread Thiago Macieira
On quarta-feira, 2 de janeiro de 2013 13.50.16, Yves Bailly wrote:
 Le 02/01/2013 13:42, Thiago Macieira a écrit :
  On quarta-feira, 2 de janeiro de 2013 10.53.03, Yves Bailly wrote:
  Does anyone knows where I could find the source code of the official
  installer, or at least some information about what it does? Because the
  installer does relocate the binaries, that would be a good starting point
  to relocate my own binaries...
 
  It simply edits the qmake and QtCore DLL binaries, plus maybe some files
  in
  mkspecs, changing a placeholder prefix to the installation dir.

 Editing binaries? hu, havent't done that since... a long time ;-) Changing
 some internal strings I guess? any idea which one or how they can be
 spotted?

The strings in both QtCore and qmake come from src/corelib/global/qconfig.cpp,
which have a telling prefix. You should match them when followed by the prefix
you configured.

Those strings are always 256+12 bytes in length, which should work for *most*
(not all!) paths, and also allow you to install to a path longer than your
original prefix.

The mkspecs files are text, so just do a regular text replace.

There may be some other places where the prefix is hardcoded by the toolchain
itself and those usually do not reserve space. For example, on ELF systems,
there maybe DT_RPATH / DT_RUNPATH headers (you can use chrpath to change them,
or binary-edit directly). The path may also be present on the debug symbols
and, worse, it might be compressed.

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center


signature.asc
Description: This is a digitally signed message part.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Non-movable Qt build

2013-01-02 Thread Sergio Ahumada
On 01/02/2013 02:09 PM, Yves Bailly wrote:
 Le 02/01/2013 13:50, Sergio Ahumada a écrit :
 On 01/02/2013 01:50 PM, Yves Bailly wrote:
 Le 02/01/2013 13:42, Thiago Macieira a écrit :
 On quarta-feira, 2 de janeiro de 2013 10.53.03, Yves Bailly wrote:
 Does anyone knows where I could find the source code of the official
 installer, or at least some information about what it does? Because the
 installer does relocate the binaries, that would be a good starting point
 to relocate my own binaries...

 It simply edits the qmake and QtCore DLL binaries, plus maybe some files in
 mkspecs, changing a placeholder prefix to the installation dir.

 Editing binaries? hu, havent't done that since... a long time ;-) Changing 
 some
 internal strings I guess? any idea which one or how they can be spotted?

 http://qt-project.org/wiki/Building-Qt-Package
 may give some ideas

 Quite interesting indeed... too bad those release-tools/ seem not provided
 with the downloadable source archives, I guess they're available only from 
 Git.
 Also it seems they would need to be tweaked a bit, e.g. to give the needed 
 options
 to configure.

 I'll have a look at this, however, as someone already said, it would be very
 nice if a kind of packager was provided with the source archives. Maybe
 make the installer framework (cited by Maurice) publicly available and
 usable?

https://qt.gitorious.org/installer-framework/installer-framework

https://codereview.qt-project.org/#admin,project,installer-framework/installer-framework,info

AFAIU, if you call create_installer.py --devmode it also builds the 
installer framework for you.

Otherwise:

http://releases.qt-project.org/digia/ifw_prebuilt/

http://releases.qt-project.org/utils/bin_tools/pre_sdk_ifw/

http://doc-snapshot.qt-project.org/qtifw-1.2/ifw-overview.html


 Thanks for the information.



-- 
Sergio Ahumada
s...@sansano.inf.utfsm.cl
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Non-movable Qt build

2013-01-02 Thread Lincoln Ramsay
On 2/01/13 11:01 PM, Peter Kümmel wrote:
 On 02.01.2013 13:50, Yves Bailly wrote:
 Le 02/01/2013 13:42, Thiago Macieira a écrit :
 On quarta-feira, 2 de janeiro de 2013 10.53.03, Yves Bailly wrote:
 Does anyone knows where I could find the source code of the official
 installer, or at least some information about what it does? Because the
 installer does relocate the binaries, that would be a good starting point
 to relocate my own binaries...
 It simply edits the qmake and QtCore DLL binaries, plus maybe some files in
 mkspecs, changing a placeholder prefix to the installation dir.
 Editing binaries? hu, havent't done that since... a long time ;-) Changing 
 some
 Sounds like a really bad hack. And this was not changed in Qt 5?


QTDIR was a hack. You'd end up with the libs from one version of Qt and 
the plugins from another. Plus, Qt installations couldn't have parts in 
arbitrary locations like they can now.

qt.conf is a hack because your app doesn't read it before it's found 
QtCore (so it can't change the Qt libs your app pulls in, only the 
plugins and data paths).

Your Qt app has to know where Qt lives. Since it must be able to locate 
QtCore.[so|dll|dylib] in order to even start, that is the most reliable 
place to store the location(s) of Qt. The strings are even designed to 
be patched, padded out to a fixed length and with markers to help 
patching tools.

Your app should have an embedded RPATH or similar that causes it to use 
a specific Qt. If you want to use a different Qt, change the embedded 
RPATH, re-link against the different Qt or use a runtime method 
([[DY]LD_LIBRARY_]PATH).

Yes, this means you need to change the strings in QtCore if you move it. 
And if you move the SDK part, you'll need to change paths in qmake and 
various files it reads to make sure everything can be found.

I second calls for simple tools to perform these operations to be made 
available but I've been doing that for a long time.

Qtopia had a simple perl script to patch QtCore. It's old but should 
give you an idea of how easy it is to do the patching of QtCore/qmake. 
The SDK patching just requires replacing strings in text files.

https://bugreports.qt-project.org/secure/attachment/19980/patchqt

-- 
Link

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Non-movable Qt build

2012-12-28 Thread Stephen Kelly
On Wednesday, December 26, 2012 16:14:10 Yves Bailly wrote:
 Any hint greatly appreciated.

Why can you not use 'make install'?

Thanks,

-- 
Stephen Kelly stephen.ke...@kdab.com | Software Engineer
KDAB (Deutschland) GmbH  Co.KG, a KDAB Group Company
www.kdab.com || Germany +49-30-521325470 || Sweden (HQ) +46-563-540090
KDAB - Qt Experts - Platform-Independent Software Solutions

signature.asc
Description: This is a digitally signed message part.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Non-movable Qt build

2012-12-26 Thread Thiago Macieira
On quarta-feira, 26 de dezembro de 2012 16.14.10, Yves Bailly wrote:
 Why not use relative paths, e.g.
 QT_MODULE_BIN_BASE = ../../qtbase/bin
 ...or some variable, e.g.
 QT_MODULE_BIN_BASE = ${QTDIR}/qtbase/bin
 
 ??
 
 Any hint greatly appreciated.

Create a file called qt.conf in the bin dir and write this inside:

[Paths]
Prefix=..

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center


signature.asc
Description: This is a digitally signed message part.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Non-movable Qt build

2012-12-26 Thread Yves Bailly
Le 26/12/2012 16:39, Thiago Macieira a écrit :
 On quarta-feira, 26 de dezembro de 2012 16.14.10, Yves Bailly wrote:
 Why not use relative paths, e.g.
 QT_MODULE_BIN_BASE = ../../qtbase/bin
 ...or some variable, e.g.
 QT_MODULE_BIN_BASE = ${QTDIR}/qtbase/bin

 ??

 Any hint greatly appreciated.

 Create a file called qt.conf in the bin dir and write this inside:

 [Paths]
 Prefix=..

I tried that (although giving an absolute path), but qmake still gives the 
warnings.
Just tried using .., I still get the warnings...

-- 
  /- Yves Bailly - Software developper  -\
  \- Sescoi RD  - http://www.sescoi.fr -/
The possible is done. The impossible is being done. For miracles,
thanks to allow a little delay.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Non-movable Qt build

2012-12-26 Thread Thiago Macieira
On quarta-feira, 26 de dezembro de 2012 16.55.12, Yves Bailly wrote:
 Le 26/12/2012 16:39, Thiago Macieira a écrit :
  On quarta-feira, 26 de dezembro de 2012 16.14.10, Yves Bailly wrote:
  Why not use relative paths, e.g.
  QT_MODULE_BIN_BASE = ../../qtbase/bin
  ...or some variable, e.g.
  QT_MODULE_BIN_BASE = ${QTDIR}/qtbase/bin
 
  ??
 
  Any hint greatly appreciated.
 
  Create a file called qt.conf in the bin dir and write this inside:
 
  [Paths]
  Prefix=..

 I tried that (although giving an absolute path), but qmake still gives the
 warnings. Just tried using .., I still get the warnings...

The .pri files have the paths hardcoded too, probably.

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center


signature.asc
Description: This is a digitally signed message part.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development