Proposed changes to the xorg archive

Matthieu Herrb matthieu.herrb at laas.fr
Tue Nov 28 03:35:15 PST 2006


Kevin E Martin wrote:
> 
> So, what I've been working on is a way to address these and other issues
> with a minimal set of archive organizational changes, create a script
> that would allow an archive maintainer to maintain the archive in a sane
> state, and allow a release manager to more easily create releases.

Thank you for taking care of this. I've working on switching OpenBSD's 
X.Org sources to 7.2 release candidate recently and the problems you 
mentionned above did indeed cause lots of small problem and time waste.

> 
> Here what I'm proposing for the new organization of the archive:
> 
> 1. For the individual releases, we would use the same directory
>    structure we currently have in the archive:
> 
>    archive/individual/app     \
>                      /data     \
>                      /doc       \
>                      /driver     \
>                      /font        >  All unofficial and unbranded
>                      /lib        /   packages go here
>                      /proto     /
>                      /util     /
>                      /xserver /
> 
> 2. For major releases (e.g., 7.0, 8.0, ...), we would have the following
>    directory structure:
> 
>    archive/X11R7.0/src/app     \
>                   /src/data     \
>                   /src/doc       \
>                   /src/driver     \
>                   /src/font        >  All official branded files in
>                   /src/lib        /   this major release
>                   /src/proto     /
>                   /src/util     /
>                   /src/xserver /
> 
>                   /src/everything <--- symlinks to all branded files in
>                                        this major release
> 
>                   /src/extras <--- holds the extra packages that are
>                                    maintained outside of the xorg
>                                    archive required to build release
>                                    (e.g., Mesa, libdrm, ...)
> 
>    archive/X11R7.0/individual/app     \
>                   /individual/data     \
>                   /individual/doc       \
>                   /individual/driver     \
>                   /individual/font        >  All unbranded files in
>                   /individual/lib        /   this major release (linked
>                   /individual/proto     /    from the individual dir)
>                   /individual/util     /
>                   /individual/xserver /
> 
>                   /individual/everything <--- symlinks to all unbranded
>                                               files in this major
>                                               release
> 
> 3. For minor releases (e.g., 7.1, 7.2, 7.3, ...), we would have the
>    following directory structure:
> 
>    archive/X11R7.1/src/update/app     \
>                   /src/update/data     \
>                   /src/update/doc       \
>                   /src/update/driver     \
>                   /src/update/font        >  Official branded files that
>                   /src/update/lib        /   have been updated and are
>                   /src/update/proto     /    included in this minor
>                   /src/update/util     /     release
>                   /src/update/xserver /
> 
>                   /src/update/everything <--- symlinks to all branded
>                                               files that have been updated
>                                               and are included in this
>                                               minor release
> 
>                   /src/update/extras <--- holds the updated extra packages
>                                           that are new in this update and
>                                           are maintained outside of the xorg
>                                           archive required to build release
>                                           (e.g., Mesa, libdrm, ...)
> 
>    archive/X11R7.1/src/app     \
>                   /src/data     \
>                   /src/doc       \
>                   /src/driver     \
>                   /src/font        >  All official branded files in
>                   /src/lib        /   this minor release (updated files
>                   /src/proto     /    are linked from update directory
>                   /src/util     /     and older files that have not been
>                   /src/xserver /      updated are linked from previous
>                                       release)
> 
>                   /src/everything <--- symlinks to all branded files in
>                                        this minor release
> 
>                   /src/extras <--- holds the extra packages that are
>                                    maintained outside of the xorg
>                                    archive required to build release
>                                    (e.g., Mesa, libdrm, ...)
> 
>    archive/X11R7.1/individual/update/app     \
>                   /individual/update/data     \
>                   /individual/update/doc       \
>                   /individual/update/driver     \
>                   /individual/update/font        >  Updated unbranded files in
>                   /individual/update/lib        /   this minor release (linked
>                   /individual/update/proto     /    from the individual dir)
>                   /individual/update/util     /
>                   /individual/update/xserver /
> 
>                   /individual/update/everything <--- symlinks to the unbranded
>                                                      files that have been
>                                                      updated in this minor
>                                                      release
> 
>    archive/X11R7.1/individual/app     \
>                   /individual/data     \
>                   /individual/doc       \
>                   /individual/driver     \
>                   /individual/font        >  All unbranded files in
>                   /individual/lib        /   this minor release (both the
>                   /individual/proto     /    updated files and older files
>                   /individual/util     /     are symlinked from the
>                   /individual/xserver /      individual dir)
> 
>                   /individual/everything <--- symlinks to all unbranded
>                                               files in this minor release
> 
> 
> 4. For release candidates (e.g., 7.2-RC1, 7.2-RC2, ...), we would have
>    the same directory structure as in a minor release's individual
>    directory (e.g., archive/X11R7.1/individual/...).

Looks fine to me.
> 
> Some of the benefits of this work are that:
> - it is easy to find either the branded or unbranded packages in a
>   particular release
> - it is easy to find which packages have been updated in a particular
>   minor release or a release candidate
> - it is easy for the release manager to create a new release candidate
>   since all they would have to do is to symlink the packages that have
>   been updated to the development/X11Rn.m-RCq/update/* dirs and run the
>   script
> - the script that I'm working on can also show which packages have been
>   updated after a particular release.
> 
> While I've tried to explain how the archive would be organized in words
> above, it is usually easier to demonstrate it with an example, so I've
> set up a test archive at:
> 
>   http://people.freedesktop.org/~kem/xorg-test-archive
> 
> which is how the 7.0 and newer dirs would look in the new archive.  The
> only part that is not yet set up is the extras directories -- I'm still
> working on the script to support them.
> 
> Also, since I have put quite a bit of time and thought into the archive
> organization and feel strongly that it should be actively maintained, I
> would like to volunteer to be the archive maintainer.
> 

Thanks a lot again. I understand that's it not an easy task nor a very 
rewarding one, but it will help other a lot.

-- 
Matthieu Herrb



More information about the xorg mailing list