Packager, Package Installer

Missing Dependencies

We have designed non standard directory structure of our project with
project shared libraries
not placed in standard path. Package installer during instalation reports
“Missing Dependencies”
for each shared library not found in standard path.
How to add a path for package installer to search for the libraries to get
rid of these reports?


Package ciphering ( Packager 1.2 )

Trying to produce password protected/encrypted package with option -E.
Packager asks for “license class” no other request for license key.
I am unable to install so created package - entered “license class” is not
taken as valid license key.
How does it work?

Hi Jiri…

“Jiri Kristek” <jkristek@retia.cz> wrote in message
news:a4talt$dce$1@inn.qnx.com

Missing Dependencies

We have designed non standard directory structure of our project with
project shared libraries
not placed in standard path. Package installer during instalation reports
“Missing Dependencies”
for each shared library not found in standard path.
How to add a path for package installer to search for the libraries to get
rid of these reports?

So you are packaging all the shared libraries that your package needs into
the package? Are you using a QPG to generate the package (and if so, can you
send it to me)? Do your shared libraries have a filename ending with .so, or
with .so.1 (or any number)? Packager considers .so files to be of type “DLL”
and so.1 files to be of type “Shared Object” so you have to tell packager
explicitly that they are shared objects if they are named .so only.

Package ciphering ( Packager 1.2 )

Trying to produce password protected/encrypted package with option -E.
Packager asks for “license class” no other request for license key.
I am unable to install so created package - entered “license class” is not
taken as valid license key.
How does it work?

Encrypting packages is a function which is only available to customers who
have paid to have licenses generated for them. Unfortunately, you cannot
create your own QNX licenses.

If you like, we can talk about this through email rather than the newsgroup!

Jerry Chappell
jchappell@qnx.com

Jiri, I’ve been trying to send you email, but it keeps bouncing back.

Okay, here’s what you have to do to your QPG file to make packager treat .so
files as shared objects:

For each line in your QPG which adds a .so (except for the DLLs):

<QPG:Add file=“ReDat3/ver-0.51/Sequent/pgi/sqcpcmipt.so” install="/
Sequent/pgi/"/>

You have to add filetype=“so”:

<QPG:Add file=“ReDat3/ver-0.51/Sequent/pgi/sqcpcmipt.so” filetype="
so" install="/Sequent/pgi/"/>

And that’s all you have to do.
Then run packager using the QPG next time, and voila!

As to encryption, I’ve forwarded your request to the people who know the
next step. Either I or they will get back to you shortly (assuming your
email starts working).

All the best.

Jerry Chappell
jchappell@qnx.com

Dear Jerry,

thanks for the tips.
I have added filetype=“so” for each line with *.so object to my QPG
manifest.
The result is additional slib packages are created, but the package
installer is still not able to find them - packager output is attached.

Jiri Kristek


------Package Questions------

Release Number (1) 15
Release Date (2002/02/25)
Build Number (1)

------File Analysis------

Sorting files into the required packages.
Creating the directory structure.
Copying files to be packaged…OK
Adding scripts and repository data.

The following packages have been detected:
“ReDat3” is the CPU-independent package.
“ReDat3-host_x86” is the x86-specific package.
“ReDat3-slib” is the CPU-independent package of “slib”.
“ReDat3-slib-host_x86” is the x86-specific package holding just shared
library files.

------File Analysis------

Sorting files into the required packages.
Creating the directory structure.
Copying files to be packaged…OK
Adding scripts and repository data.

The following packages have been detected:
“ReDat3” is the CPU-independent package.
“ReDat3-host_x86” is the x86-specific package.
“ReDat3-slib” is the CPU-independent package of “slib”.
“ReDat3-slib-host_x86” is the x86-specific package holding just shared
library files.



------ReDat3------
Does this package depend on any external packages [Y/N] ? (N)

------Photon Launch Menu------

How many LAUNCH menu items for “ReDat3”? (0)

Saving “ReDat3” MANIFEST…OK

------ReDat3-host_x86------

Saving “ReDat3-host_x86” MANIFEST…OK

------ReDat3-slib------
Does this package depend on any external packages [Y/N] ? (N)

------Photon Launch Menu------

How many LAUNCH menu items for “ReDat3-slib”? (0)

Saving “ReDat3-slib” MANIFEST…OK

------ReDat3-slib-host_x86------

Saving “ReDat3-slib-host_x86” MANIFEST…OK

------Generation------

Individual packages:
Generating QPK (ReDat3-0.51-Retia.qpk)
Generating QPK (ReDat3-0.51-x86-Retia.qpk)
Generating QPK (ReDat3-slib-0.51-Retia.qpk)
Generating QPK (ReDat3-slib-0.51-x86-Retia.qpk)

------Completion------

Clearing documents from memory…OK

Successful generation.


Jerry Chappell <jchappell@cyberus.ca> pí¹e v diskusním
pøíspìvku:a55lph$p6c$1@nntp.qnx.com

Jiri, I’ve been trying to send you email, but it keeps bouncing back.

Okay, here’s what you have to do to your QPG file to make packager treat
…so
files as shared objects:

For each line in your QPG which adds a .so (except for the DLLs):

QPG:Add file=“ReDat3/ver-0.51/Sequent/pgi/sqcpcmipt.so”
install="/
Sequent/pgi/"/

You have to add filetype=“so”:

QPG:Add file=“ReDat3/ver-0.51/Sequent/pgi/sqcpcmipt.so”
filetype="
so" install="/Sequent/pgi/"/

And that’s all you have to do.
Then run packager using the QPG next time, and voila!

As to encryption, I’ve forwarded your request to the people who know the
next step. Either I or they will get back to you shortly (assuming your
email starts working).

All the best.

Jerry Chappell
jchappell@qnx.com

Hi Jiri,

I think that it's because your so lib don't contain a so name, without it, package won't include it in your package.
Verify it in the slib qpm package, you should see:
        
            x86
           
            sqcpcmipt.so
            ....
        
   
        .....

     
        
           
              
                 
                     sqcpcmipt.so
                 
              
           
        
     

Of course, dir names should be yours!
And normally, it should also include a version number, so I advise you to add it. It's a condition for packager works correctly. Don't blame it, it's not a big constraint, and it will help you for your future developments.

check it by typing:
$ objdump -p sqcpcmipt.so
and you should see something like:

sqcpcmipt.so:    file format elf32-i386

Program header:
    LOAD off.....
    .....

Dynamic section:
    NEEDED    libc.so.2
    ...
    SONAME    sqcpcmipt.so
    .....

Verify that you have a correct so name, if it'not the case, packager won't put it it your package.
If you don't have a so name, it's the reason why packager fail to include you lib in the package.
If the so name is present, it's because the version number is missing.

In that case, you do rebuild your library, by adding the correct link option:

qcc -shared -Wl,-hsqcpcmipt.so.1  ....

That should work!

Alain.


Jiri Kristek wrote:
Dear Jerry,

thanks for the tips.
I have added filetype="so" for each line with *.so object to my QPG
manifest.
The result is additional slib packages are created, but the package
installer is still not able to find them - packager output is attached.

Jiri Kristek


------Package Questions------

Release Number (1) 15
Release Date (2002/02/25)
Build Number (1)

.......................

------File Analysis------

Sorting files into the required packages.
Creating the directory structure.
Copying files to be packaged...OK
Adding scripts and repository data.

The following packages have been detected:
"ReDat3" is the CPU-independent package.
"ReDat3-host_x86" is the x86-specific package.
"ReDat3-slib" is the CPU-independent package of "slib".
"ReDat3-slib-host_x86" is the x86-specific package holding just shared
library files.

------File Analysis--- ---

Sorting files into the required packages.
Creating the directory structure.
Copying files to be packaged...OK
Adding scripts and repository data.

The following packages have been detected:
"ReDat3" is the CPU-independent package.
"ReDat3-host_x86" is the x86-specific package.
"ReDat3-slib" is the CPU-independent package of "slib".
"ReDat3-slib-host_x86" is the x86-specific package holding just shared
library files.



------ReDat3------
Does this package depend on any external packages [Y/N] ? (N)

------Photon Launch Menu------

How many LAUNCH menu items for "ReDat3"? (0)

Saving "ReDat3" MANIFEST...OK

------ReDat3-host_x86------

Saving "ReDat3-host_x86" MANIFEST...OK

------ReDat3-slib------
Does this package depend on any external packages [Y/N] ? (N)

------Photon Launch Menu------

How many LAUNCH menu items for "ReDat3-slib"? (0)

Saving "ReDa t3-slib" MANIFEST...OK

------ReDat3-slib-host_x86------

Saving "ReDat3-slib-host_x86" MANIFEST...OK

------Generation------

Individual packages:
Generating QPK (ReDat3-0.51-Retia.qpk)
Generating QPK (ReDat3-0.51-x86-Retia.qpk)
Generating QPK (ReDat3-slib-0.51-Retia.qpk)
Generating QPK (ReDat3-slib-0.51-x86-Retia.qpk)

------Completion------

Clearing documents from memory...OK

Successful generation.


Jerry Chappell <> pí¹e v diskusním
pøíspìvku:a55lph$p6c$<1@nntp.qnx.com>...
Jiri, I've been trying to send you email, but it keeps bouncing back.

Okay, here's what you have to do to your QPG file to make packager treat
.so
files as shared objects:

For each line in your QPG which adds a .so (except for the DLLs):

<QPG:Add file="ReDat3/ver-0.51/Sequent/pgi/sqcpcmipt.so"
install="/
Sequent/pgi/"/>

You have to add filetype="so":

<QPG:Add file="ReDat3/ver-0.51/Sequent/pgi/sqcpcmipt.so"
filetype="
so" install="/Sequent/pgi/"/>

And that's all you have to do.
Then run packager using the QPG next time, and voila!

As to encryption, I've forwarded your request to the people who know the
next step. Either I or they will get back to you shortly (assuming your
email starts working).

All the best.

Jerry Chappell







Jiri, sorry I missed your response and didn’t get back to you sooner.
Alain is correct in his description of how Packager adds the required tags to your packages, so let us know what the NEEDED and SONAME entries are for your shared objects and we can sort it all out.

Jerry