Hello All,
I thought I got it... But this is not true... I have now the problem reversed :-(((
By changing the first letter of the product name to a capital, the result was that I have now a CD image of 331 packages, where I need 362. Before this change, I had 31 packages...
The problem is still pkgorder, at the same location as mentioned below.
For some reason pkgorder is really stubborn, and still mixes up the productname by changing the first letter of several packages. It does not matter where the packages come from, either from the orignal FC6-DVD , or from the FC6-Updates repo, or from my custom repo. Even if I build without my own repo, does not matter. Notice that a bug in pkgorder does not even tell anybody if it can find a package at all, it just continuous, resulting in an incomplete CD-image...
So, does anyone know how the location of a package is determined in pkgorder? (I mean the relative path inside a repo, with the product name)
It does NOT read it from Pungi configuration file (Tried to change it completely, no result) Tried to change the product name on the commandline of pkgorder -> no result either...
So, nowhere in my tree I can find the wrong productname, and neither does any change of any product_name setting help.
I really hope, someone can help me out here... I am starting to get quite desperate about these tools... :-((
Remy
2007/2/2, Remy Bohmer mythtv.bohmer@gmail.com:
Hello All,
I got it! but, it is very strange... ;-))
I debugged the pkgorder script and found the following:
- At the routine 'processTransaction()' the complete lists of
dependencies is available, then it calls the routine printMatchingPkgs() to print the packages to standard, after it has checked that they are available.
- The filemask that is passed to printMatchingPkgs() through
'fpattern', is build up as follows: <os-dir>/Product/package*. Where Product starts with a capital, but my product_name in the pungi configuration does NOT star with a capital. So, the product-dir in the os-dir does not start with a capital. So, no dependency files can be found, leaving a os-disc1 with just a few files in it...
I searched through the entire tree several times, but nowhere I have listed the productname with a capital, so this capital must be introduced by the tooling itself ! (Fedora also starts with a capital... Redhat also, and probably other distros using anaconda also?)
So, to be able to build a customised CD, you must use a product_name in Pungi that starts with a capital. I have changed this in my build environment and now it works!
I believe the problem is introduced by collecting the dependencies in the routine addGroups() -> ds.ResolveDeps() in the pkgorder script.
For me it is going to deep in the external tooling, which I do not fully understand yet how they work. Maybe someone else recognises this phenomenon and can pick it up from here? Or if someone can give me some tips on this, I can look further into it...
Kind Regards,
Remy Bohmer
2007/2/2, Remy Bohmer mythtv.bohmer@gmail.com:
Hello All,
I renamed all my groups to 'core', 'base', 'base-x' and 'development-tools', and it does not make any difference... So, I believe it is not only related to the group naming in the comps file... I am going to debug this some more today.
If anyone has a good idea about this, please let me know.
Kind Regards,
Remy
2007/2/1, Jesse Keating jkeating@redhat.com:
On Thursday 01 February 2007 05:40, Remy Bohmer wrote:
Attached are the results of this command: /usr/lib/anaconda-runtime/pkgorder /home/me/cdbuildtree/results/myrelease/i386/os i386 myproduct
I replaced 'myproduct' with 'Fedora'. No differences. The produced list is exactly like the list of RPM's in my os-disc1- directory. Thus, much too short...
Does this give you some new ideas?
It would appear that pkgorder doesn't know about the other groups you have in your comps file perhaps. pkgorder is just a python script, I'd poke at it and see how it figures out the order, and see if perhaps you need to change your group names in comps.
-- Jesse Keating Release Engineer: Fedora
On Monday 05 February 2007 11:53, Remy Bohmer wrote:
For some reason pkgorder is really stubborn, and still mixes up the productname by changing the first letter of several packages. It does not matter where the packages come from, either from the orignal FC6-DVD , or from the FC6-Updates repo, or from my custom repo. Even if I build without my own repo, does not matter. Notice that a bug in pkgorder does not even tell anybody if it can find a package at all, it just continuous, resulting in an incomplete CD-image...
So, does anyone know how the location of a package is determined in pkgorder? (I mean the relative path inside a repo, with the product name)
It does NOT read it from Pungi configuration file (Tried to change it completely, no result) Tried to change the product name on the commandline of pkgorder -> no result either...
So, nowhere in my tree I can find the wrong productname, and neither does any change of any product_name setting help.
I really hope, someone can help me out here... I am starting to get quite desperate about these tools... :-((
Er, Are you putting packages into different directories under os/ ? I'm pretty sure that the way pungi is designed, all your packages would (by default) go under os/Fedora/ ALL packages, regardless of what repository they come from. Are you getting multiple product dirs somehow? I'm seriously having a hard time figuring out how you're getting to this stage.
Hello Jesse,
What you mention is exactly what I want, except my product is not named Fedora, but something else... I will summarise the facts here below, hope this clears something up.
Are you putting packages into different directories under os/ ?
No, the /os/ is an intermediate buildresult of what pungi (with anaconda) is doing. I am not modifying it in any way. My goal is to use as many standard tooling as possible, without the need for me to modify the tools. (Except if there is a need for a bugfix)
So, only 1 directory with packages is there in /os/myproduct, not 2.
But after building the /os directory pungi calls at some point pkgorder and this one introduces a problem while building the os-disc1/myproduct directory. I can reproduce it easily while just running pkgorder on the /os tree that is generated by pungi, as you earlier suggested.
During build and debugging pkgorder, I have seen that processTransaction() searches for the relative path of a package. This path is mostly called os/Myproduct (Uppercase-M) instead of os/myproduct. (Lowercase-M) os/Myproduct (Uppercase-M) does not exist, so the package cannot be found. (the lacking 631 packages) Some packages are searched in os/myproduct (lowercase-M), and these are found correctly. (the 31 I had) Due to a bug in pkgorder this 'file-not-found' issue is not visible to the outside world. I have a patch for this, so that this it is at least visible that this happens.
As a test, I have renamed the product_name to Myproduct (Uppercase-M). If I do that I end up with 631 packages in /os-disc1, lacking the 31 I had while using the lowercase M.
The packages that are searched for, in the wrong directory, can come from any repo, i.e. fc6-dvd, fc6-updates, or my own custom repo, but always the same packages go wrong.
Are you getting multiple product dirs somehow?
I am thus NOT getting multiple product dirs in /os-disc1. It is not a destination (/os-disc1) problem but a package gathering problem from /os.
Do you have any idea how the relative-paths are resolved from the /os repository? I am certain that the cause is there somewhere, but I already spent 2 days debugging pkgorder with pdb, and it does not bring me any closer the root cause :-(( I do not understand the relation to yum/package-dictionaries etc. Notice that I have verified that dependency resolving works fine...
I really hope you can help me on this...
Kind Regards,
Remy
2007/2/5, Jesse Keating jkeating@redhat.com:
On Monday 05 February 2007 11:53, Remy Bohmer wrote:
For some reason pkgorder is really stubborn, and still mixes up the productname by changing the first letter of several packages. It does not matter where the packages come from, either from the orignal FC6-DVD , or from the FC6-Updates repo, or from my custom repo. Even if I build without my own repo, does not matter. Notice that a bug in pkgorder does not even tell anybody if it can find a package at all, it just continuous, resulting in an incomplete CD-image...
So, does anyone know how the location of a package is determined in pkgorder? (I mean the relative path inside a repo, with the product name)
It does NOT read it from Pungi configuration file (Tried to change it completely, no result) Tried to change the product name on the commandline of pkgorder -> no result either...
So, nowhere in my tree I can find the wrong productname, and neither does any change of any product_name setting help.
I really hope, someone can help me out here... I am starting to get quite desperate about these tools... :-((
Er, Are you putting packages into different directories under os/ ? I'm pretty sure that the way pungi is designed, all your packages would (by default) go under os/Fedora/ ALL packages, regardless of what repository they come from. Are you getting multiple product dirs somehow? I'm seriously having a hard time figuring out how you're getting to this stage.
-- Jesse Keating Release Engineer: Fedora
Hello All,
To finish this thread: Due to this bug, I believe that Pungi/Anaconda is not ready yet for building a really custom installation CD, derived from Fedora 6 and custom repositories. It took me a lot of time and finally I had to give it up.
I want to thank the people that helped me so far for their efforts. Unfortunately I am not going to be using it any further.
Kind Regards,
Remy Bohmer
2007/2/5, Remy Bohmer mythtv.bohmer@gmail.com:
Hello Jesse,
What you mention is exactly what I want, except my product is not named Fedora, but something else... I will summarise the facts here below, hope this clears something up.
Are you putting packages into different directories under os/ ?
No, the /os/ is an intermediate buildresult of what pungi (with anaconda) is doing. I am not modifying it in any way. My goal is to use as many standard tooling as possible, without the need for me to modify the tools. (Except if there is a need for a bugfix)
So, only 1 directory with packages is there in /os/myproduct, not 2.
But after building the /os directory pungi calls at some point pkgorder and this one introduces a problem while building the os-disc1/myproduct directory. I can reproduce it easily while just running pkgorder on the /os tree that is generated by pungi, as you earlier suggested.
During build and debugging pkgorder, I have seen that processTransaction() searches for the relative path of a package. This path is mostly called os/Myproduct (Uppercase-M) instead of os/myproduct. (Lowercase-M) os/Myproduct (Uppercase-M) does not exist, so the package cannot be found. (the lacking 631 packages) Some packages are searched in os/myproduct (lowercase-M), and these are found correctly. (the 31 I had) Due to a bug in pkgorder this 'file-not-found' issue is not visible to the outside world. I have a patch for this, so that this it is at least visible that this happens.
As a test, I have renamed the product_name to Myproduct (Uppercase-M). If I do that I end up with 631 packages in /os-disc1, lacking the 31 I had while using the lowercase M.
The packages that are searched for, in the wrong directory, can come from any repo, i.e. fc6-dvd, fc6-updates, or my own custom repo, but always the same packages go wrong.
Are you getting multiple product dirs somehow?
I am thus NOT getting multiple product dirs in /os-disc1. It is not a destination (/os-disc1) problem but a package gathering problem from /os.
Do you have any idea how the relative-paths are resolved from the /os repository? I am certain that the cause is there somewhere, but I already spent 2 days debugging pkgorder with pdb, and it does not bring me any closer the root cause :-(( I do not understand the relation to yum/package-dictionaries etc. Notice that I have verified that dependency resolving works fine...
I really hope you can help me on this...
Kind Regards,
Remy
2007/2/5, Jesse Keating jkeating@redhat.com:
On Monday 05 February 2007 11:53, Remy Bohmer wrote:
For some reason pkgorder is really stubborn, and still mixes up the productname by changing the first letter of several packages. It does not matter where the packages come from, either from the orignal FC6-DVD , or from the FC6-Updates repo, or from my custom repo. Even if I build without my own repo, does not matter. Notice that a bug in pkgorder does not even tell anybody if it can find a package at all, it just continuous, resulting in an incomplete CD-image...
So, does anyone know how the location of a package is determined in pkgorder? (I mean the relative path inside a repo, with the product name)
It does NOT read it from Pungi configuration file (Tried to change it completely, no result) Tried to change the product name on the commandline of pkgorder -> no result either...
So, nowhere in my tree I can find the wrong productname, and neither does any change of any product_name setting help.
I really hope, someone can help me out here... I am starting to get quite desperate about these tools... :-((
Er, Are you putting packages into different directories under os/ ? I'm pretty sure that the way pungi is designed, all your packages would (by default) go under os/Fedora/ ALL packages, regardless of what repository they come from. Are you getting multiple product dirs somehow? I'm seriously having a hard time figuring out how you're getting to this stage.
-- Jesse Keating Release Engineer: Fedora
anaconda-devel@lists.stg.fedoraproject.org