I would like to propose a format for XML info documents for Fink.
Please note that this is very preliminary and subject to much change,
especially since the reason I'm putting this up here is so that it can
get changed, edited, customized, and finalized. Once this is finalized,
and even before, I will begin implementing the feature-set.
My idea of this includes a transition format, and a complete format.
The complete format will include things like variants and separate
packages from a single compile, stuff that is not implemented in the
core of Fink yet. That format will be created as we implement those
features. The 'transitional' feature-set would be a wrapper over the
existing Fink code that would simply parse the XML into the same hash as
the regular info files.
Again, please provide any and all comments! Thank you!
Proposed transitional .xinfo format:
Terminology:
Some fields will have values like 'foo, bar, or foobar' those indicate
multiple possible values. Some fields are surrounded by braces
[ foo='bar or foobar' ] those are optional, the default is the first
specified in the contents of the field, or none if the field is empty.
<package name="foo" version="0.0.1" revision="1" type="bundle, nosource,
or perl" essential="true or false">
<maintainer name="John Doe" email="[EMAIL PROTECTED]"/>
<require [type="depends, builddepends, provides, conflicts,
replaces or predepends"] package="bar"/>
<suggest [type="suggests, recommends, or enhances"] package="bar"/>
<source url="http://open.source.site/directory/%n-%v.tar.gz"
[ directory="%n-%v-2002" ] [ nodirectory="true" ]
[ rename="file1-%n-%v.tar.gz" ] />
<custommirror>
<nam-US url="http://other.source.site/mirror/"/>
<asi-JP url="http://last.source.site.jp/mirror/"/>
</custommirror>
<update>
<configguess [ default="true or false" ] [ dirs="mydir myotherdir"] />
<libtool [ default="true or false" ] [ dirs="mydir myotherdir"] />
<pomakefile/>
<pod/>
</update>
<patch [ name="%f.patch" ] >
<![CDATA[
patch -p1 script.here
]]>
</patch> // <-- Note here that patch is used for both the
patch and the patchscript, just leave out the contents if you don't want
the patchscript
<configure params="--insert --your=parems --here">
<compilescript>
<![CDATA[
make all
make foo
]]>
</compilescript>
<installscript>
<![CDATA[
make install
make install-foo
]]>
</installscript>
<doc files="README LICENSE COPYRIGHT INSTALL Stuff"/>
<set env="CPPFlags" [ value="-I/my/path" ] [ noset="true" ]/>
<script type="preinst, postinst, prerm, or postrm">
<![CDATA[
add --your /script/here
]]>
</script>
<conf files="%p/etc/foo.conf %p/etc/bar.conf"/>
<info docs="stuff.info foo.info"/>
<daemonic name="foo">
<![CDATA[
<my daemonic="stuff" goes="here"/>
]]>
</daemonic>
<description text="Fooilator for the bar software"/>
<desc type="detail, usage, packaging, or port">
Blah blah blah
</desc>
<license type="GPL, LGPL, GPL/LGPL, BSD, Artistic, OSI-Approved,
Restrictive, Commercial, Public Domain"/>
<homepage url="http://www.myhome.net/"/>
</package>
Again, please comment on anything and everything you feel like!
Thanks,
Kyle Moffett
_______________________________________________
Fink-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/fink-devel