On Sunday, Dec 15, 2002, at 08:56 US/Eastern, Max Horn wrote:
At 23:25 Uhr -0500 14.12.2002, Kyle Moffett wrote:

[...]

This would be a long term change, and would best be implemented in a separate branch until mature, but I believe that it could make certain feature requests easier, eg "Multithreading/Multiprocesses", "Fix Conflicts field & add BuildConflicts".
No, it wouldn't make these requests easier in any way. To resolve these requests, a new dependency engine must be written. This is orthogonal to changes in the package format.
My idea was about a change in the dependency engine/build engine, but I best thought it illustrated through the package format I believe might be required. Let me reorganize my email and restate my idea now that I am awake:

I was thinking that we should revise our build process into 4 major steps:

1) Package parsing phase:
This would be a 'script' of sorts in the info file that would be run in order to generate the dependencies, description, maintainer information, etc. This should include information on both splitoffs and variants, but certain splitoffs could be mostly autogenerated with the use of something like CreateShlibs: True. Data from this section would be embedded in the debs

2) Build phase
This would be another, similar 'script', that would run a set of fink style commands, ex:

Patch: foo-1.0.0-1.patch
<Script>
#!/bin/sh
#Use this like the patch-script
./foo
./bar
</Script>
SetExpand: c=--put --all --configure --args --here
Run: ./configure
[...]
Run: make install DESTDIR=%d

The build phase would include everything from the old style compile and install phases

3) Install phase
# This should be implemented within dpkg install scripts. So the dpkg preinstall script might be: 'fink _dpkg_preinstall foo' and the postinstall script might be 'fink _dpkg_postinstall foo'

Then the 'Install phase' script for Fink could be:

<Script>
#!/bin/sh
# Do some stuff to add a user
niload passwd . <<EOF
myuser:*:100:100::0:0:MyUser for Fink:/dev/null:/dev/null
EOF
</Script>
InstallDpkg
Run: setupconfig.sh

Then the 'fink _dpkg_preinstall foo' command would execute everything up to the 'InstallDpkg' line, and 'fink _dpkg_postinstall foo' command would execute everything after the 'InstallDpkg' line.

4) Remove phase

This could use a method similar to the one described above for dpkg remove scripts.


Thanks for listening, this may not be useful at all, but I think it may also help make info files more readable and more powerful by organizing them as a set of "fink scripts".

Please comment,
Kyle Moffett



-------------------------------------------------------
This sf.net email is sponsored by:
With Great Power, Comes Great Responsibility Learn to use your power at OSDN's High Performance Computing Channel
http://hpc.devchannel.org/
_______________________________________________
Fink-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/fink-devel

Reply via email to