#!/usr/bin/perl ############################################################################## # Copyright (C) 2007, 2008 Paulo Cesar Pereira de Andrade. All Rights Reserved. # # This is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This software is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # Authors: # Paulo Cesar Pereira de Andrade ############################################################################## use Cwd; use File::Basename; use Getopt::Std; use strict; ############################################################################## # Check command line options my %options; my $command = ""; # File name to know finished a build with no erros my $build_ok = "xorg-build.ok"; ############################################################################## # This hash table is used to allow creating aliases to commads my %commands = ( "up" => "update", "update" => "update", "co" => "checkout", "checkout" => "checkout", "build" => "build", "clean" => "clean", "realclean" => "realclean", "distclean" => "distclean", "checktars" => "checktars", "checktarballs"=> "checktars", "patches" => "patches", "master" => "master", ); ############################################################################## # Check - options and script command Getopt::Std::getopts("n:cdgtvh?", \%options); foreach (@ARGV) { if ($commands{$_}) { # XXX Use other method... # Cause an error if more than one command specified... $command .= $commands{$_}; } else { print(STDERR "* Unknown command $_\n"); } } if (not $commands{$command} or $options{'h'} or $options{'?'}) { print(STDERR "Usage:\n", File::Basename::basename($0), " [options ...] command\n", "Options:\n", " -c Start over from update instead of from last failed repository.\n", " -d Makes a debug build.\n", " -g Generate dependency files (uses strace).\n", " -t Uses \"git-pull -t\" to update.\n", " -v Verbose mode.\n", " -n name Process only modules with given name.\n", " -h, -? Prints this message and quits.\n", "Commands:\n", " update Updates source checkouts.\n", " checkout Create build directory.\n", " build Rebuild module.\n", " clean Only remove $build_ok file\n", " realclean Runs \"make clean realclean\"\n", " distclean Runs \"make clean distclean\"\n", " checktarballs Checks if package tarball is available upstream.\n", "\n"); exit(0); } # For the moment, check it only once. Required for some fallback default # value options. die ("\$ENV{HOME} not set. Cannot continue.") unless ($ENV{HOME} ne ""); # Maybe -W options could be handled differently, but a debug build most # certainly wants at least these... $ENV{CFLAGS} = "-O0 -g3 -Wall -Wpointer-arith -Wstrict-prototypes " . "-Wmissing-prototypes -Wmissing-declarations " . "-Wnested-externs -fno-strict-aliasing" if ($options{'d'}); # For error messages $ENV{LC_ALL} = "C"; ############################################################################## # User configuration sub git_config { my ($option) = @_; $option = `git-config --global --get $option`; $option =~ s/^\s+//; $option =~ s/\s+$//; return $option; }; my $xorg_git_protocol = git_config("xorg-git.protocol"); $xorg_git_protocol = "git" unless ($xorg_git_protocol ne ""); my $xorg_git_repository = git_config("xorg-git.repository"); $xorg_git_repository = "anongit.freedesktop.org/git" unless ($xorg_git_repository ne ""); my $git_user_name = git_config("user.name"); die("* Please run:\n", "\tgit-config --global user.name \"Your user name\"\n", "before proceeding.") unless ($git_user_name ne ""); my $git_user_email = git_config("user.email"); die("* Please run:\n", "\tgit-config --global user.email you\@yourdomain.example.com\n", "before proceeding.") unless ($git_user_email ne ""); # Example: lib or lib64 my $xorg_git_lib_name = git_config("xorg-git.lib-name"); if ($xorg_git_lib_name eq "") { if ($options{'v'}) { print(STDERR "* Please consider running:\n", "\tgit-config --global xorg-git.lib-name name-of-library-path\n"); } # Try to guess proper default $xorg_git_lib_name = `uname -m`; $xorg_git_lib_name = $xorg_git_lib_name =~ m/64/ ? "lib64" : "lib"; } # Example: sudo or empty string my $xorg_git_sudo_command = git_config("xorg-git.sudo-command"); if ($xorg_git_sudo_command eq "") { if ($options{'v'}) { print(STDERR "* Please consider running:\n", "\tgit-config --global xorg-git.sudo-command \"name-of-sudo-command-or-empty-string\"\n"); } # Default to empty string, this should also help in catching attempting # to install files outside destdir $xorg_git_sudo_command = ""; } # Example: /home/paulo/anongit.freedesktop.org my $xorg_git_checkout_dir = git_config("xorg-git.checkout-dir"); if ($xorg_git_checkout_dir eq "") { if ($options{'v'}) { print(STDERR "* Please consider running:\n", "\tgit-config --global xorg-git.checkout-dir /path/to/git/checkout/dir\n"); } $xorg_git_checkout_dir = "$ENV{HOME}/anongit.freedesktop.org"; } # Example: /home/paulo/anongit.freedesktop.org/build my $xorg_git_build_dir = git_config("xorg-git.build-dir"); if ($xorg_git_build_dir eq "") { if ($options{'v'}) { print(STDERR "* Please consider running:\n", "\tgit-config --global xorg-git.build-dir /path/to/build/dir\n"); } $xorg_git_build_dir = "$ENV{HOME}/anongit.freedesktop.org/build"; } # Example: /usr/local/xorg my $xorg_git_dest_dir = git_config("xorg-git.dest-dir"); if ($xorg_git_dest_dir eq "") { if ($options{'v'}) { print(STDERR "* Please consider running:\n", "\tgit-config --global xorg-git.dest-dir /path/to/install/binaries\n"); } $xorg_git_dest_dir = "/usr/local/xorg"; } # Example: /usr/local/xorg/deps my $xorg_git_deps_dir = git_config("xorg-git.deps-dir"); if ($xorg_git_deps_dir eq "") { if ($options{'v'}) { print(STDERR "* Please consider running:\n", "\tgit-config --global xorg-git.deps-dir /path/to/install/dependencies\n"); } $xorg_git_deps_dir = "/usr/local/xorg/deps"; } if ($options{'v'}) { print(STDERR "Using options:\n", " xorg-git.protocol = $xorg_git_protocol\n", " xorg-git.repository = $xorg_git_repository\n", " git_user_name = $git_user_name\n", " git_user_email = $git_user_email\n", " xorg-git.checkout-dir = $xorg_git_checkout_dir\n", " xorg-git.build-dir = $xorg_git_build_dir\n", " xorg-git.dest-dir = $xorg_git_dest_dir\n", " xorg-git.deps-dir = $xorg_git_deps_dir\n", " xorg-git.lib-name = $xorg_git_lib_name\n", " xorg-git.sudo-command = $xorg_git_sudo_command\n", "\n"); } # Need these to exist die("$xorg_git_checkout_dir does not exist.") unless (-d $xorg_git_checkout_dir); die("$xorg_git_build_dir does not exist.") unless (-d $xorg_git_build_dir); die("$xorg_git_dest_dir does not exist.") unless (-d $xorg_git_dest_dir); die("$xorg_git_deps_dir does not exist.") unless (-d $xorg_git_deps_dir); my $xorg_trace_pl = `which xorg-trace.pl`; chomp($xorg_trace_pl); if ($options{'g'}) { $xorg_trace_pl = "./xorg-trace.pl" unless (-f $xorg_trace_pl); die ("$xorg_trace_pl: ($!)") unless (-f $xorg_trace_pl); $xorg_trace_pl = "/usr/bin/perl $xorg_trace_pl"; } my $auto_cache_file = "$xorg_git_dest_dir/.cache"; my $git_last_update = "$xorg_git_checkout_dir/xorg-update.tmp"; $ENV{PKG_CONFIG_PATH} = "$xorg_git_dest_dir/$xorg_git_lib_name/pkgconfig:$ENV{PKG_CONFIG_PATH}"; $ENV{LD_LIBRARY_PATH} = "$xorg_git_dest_dir/$xorg_git_lib_name:$ENV{LD_LIBRARY_PATH}"; $ENV{ACLOCAL_LOCALDIR} = "$xorg_git_dest_dir/share/aclocal"; $ENV{ACLOCAL} = "aclocal -I $ENV{ACLOCAL_LOCALDIR}"; # Don't fail so early on first run :-) if (not -d $ENV{ACLOCAL_LOCALDIR}) { x_system("$xorg_git_sudo_command mkdir -p $ENV{ACLOCAL_LOCALDIR}"); } $ENV{PATH} = "$xorg_git_dest_dir/bin:$ENV{PATH}"; ############################################################################## # List of modules. Note that it is stored as a list also to allow proper # specification of order of packages that must be updated first. # Fields are: # name -> Name of module (also directory to append to path) # path -> Pathname in git repository # configure -> Extra configure/autogen.sh parameters # version -> Module version # commit -> If defined, build this commit/tag/branch # use with care... # tarball -> URL for tarball of module. This usually # is the official tarball of the module # skip -> Don't attempt to build this module #xedit my $ac_noxprint = "--disable-xprint"; # libX11 my $ac_xcb = "--with-xcb=yes"; # xserver my $ac_buildaddr = "--with-builder-addr=$git_user_email"; my $ac_mesapath = "--with-mesa-source=$xorg_git_build_dir/mesa/mesa"; my $ac_dga = "--enable-dga"; my $ac_dmx = "--enable-dmx"; my $ac_fontcache = "--enable-fontcache"; my $ac_glx = "--enable-glx"; my $ac_glxtls = "--enable-glx-tls"; my $ac_kdrive = "--enable-kdrive"; my $ac_kvesa = "--enable-kdrive-vesa"; my $ac_xace = "--enable-xace"; my $ac_xdmcp = "--enable-xdmcp"; my $ac_xdmauth = "--enable-xdm-auth-1"; my $ac_xephyr = "--enable-xephyr"; my $ac_xegl = "--enable-xegl"; my $ac_xf86misc = "--enable-xf86misc"; my $ac_xf86vid = "--enable-xf86vidmode"; my $ac_xfake = "--disable-xfake"; my $ac_xfbdev = "--enable-xfbdev"; my $ac_xgl = "--disable-xgl"; my $ac_xglx = "--enable-xglx"; my $ac_xorg = "--enable-xorg"; my $ac_xorgcfg = "--enable-xorgcfg"; my $ac_xsdl = "--enable-xsdl"; my $ac_xselinux = "--disable-xselinux"; my $ac_xvfb = "--enable-xvfb"; # mesa my $ac_mesadriver = "--with-driver=dri"; my $ac_mesadridir = "--with-dri-driverdir=$xorg_git_dest_dir/$xorg_git_lib_name/dri"; # mesa my $ac_xincludes = "--x-includes=$xorg_git_dest_dir/include/X11"; my $ac_xlibraries = "--x-libraries=$xorg_git_dest_dir/$xorg_git_lib_name"; # xserver, mesa my $ac_debug = "--enable-debug"; # xphelloworld my $ac_motiflibs = "--with-motif-libraries=no"; # xkeyboard-config my $ac_xkbcomplnk = "--disable-xkbcomp-symlink"; my $ac_xkbrules = "--enable-compat-rules"; my $ac_xkbruleslnk= "--with-xkb-rules-symlink=xorg"; # For tarballs my $tgz = ".tar.bz2"; my $xorg_app = "app"; my $xorg_doc = "doc"; my $xorg_driver = "driver"; my $xorg_font = "font"; my $xorg_lib = "lib"; my $xorg_proto = "proto"; my $xorg_url = "http://xorg.freedesktop.org/releases/individual"; my $xorg_util = "util"; my @modules = ( { 'name' => "modular", 'path' => "xorg/util", 'version' => "0.0.1", # Fixme tarball 'skip' => "yes", }, { 'name' => "x11proto", 'path' =>"xorg/proto", 'version' => "7.0.12", 'tarball' => "$xorg_url/$xorg_proto/xproto-%{version}$tgz", }, { 'name' => "libxtrans", 'path' => "xorg/lib", 'version' => "1.1", 'tarball' => "$xorg_url/$xorg_lib/xtrans-%{version}$tgz", }, { 'name' => "libXau", 'path' => "xorg/lib", 'version' => "1.0.3", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "libXdmcp", 'path' => "xorg/lib", 'version' => "1.0.2", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "proto", 'path' => "xcb", 'version' => "1.1", # Fixme tarball }, { 'name' => "libICE", 'path' => "xorg/lib", 'version' => "1.0.4", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "inputproto", 'path' =>"xorg/proto", 'version' => "1.4.3", 'tarball' => "$xorg_url/$xorg_proto/%{name}-%{version}$tgz", }, { 'name' => "kbproto", 'path' =>"xorg/proto", 'version' => "1.0.3", 'tag' => "%{name}-%{version}", 'tarball' => "$xorg_url/$xorg_proto/%{name}-%{version}$tgz", }, { 'name' => "xf86bigfontproto", 'path' =>"xorg/proto", 'version' => "1.1.2", 'tarball' => "$xorg_url/$xorg_proto/%{name}-%{version}$tgz", }, { 'name' => "libxcb", 'path' => "xcb", 'version' => "1.1", # Fixme tarball }, { 'name' => "xextproto", 'path' =>"xorg/proto", 'version' => "7.0.2", 'tarball' => "$xorg_url/$xorg_proto/%{name}-%{version}$tgz", }, { 'name' => "libSM", 'path' => "xorg/lib", 'version' => "1.0.3", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "libX11", 'path' => "xorg/lib", 'version' => "1.1.4", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", 'configure'=> "$ac_xcb", }, { 'name' => "libXt", 'path' => "xorg/lib", 'version' => "1.0.5", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "libXext", 'path' => "xorg/lib", 'version' => "1.0.4", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "printproto", 'path' =>"xorg/proto", 'version' => "1.0.4", 'tarball' => "$xorg_url/$xorg_proto/%{name}-%{version}$tgz", }, { 'name' => "libXmu", 'path' => "xorg/lib", 'version' => "1.0.4", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "libXpm", 'path' => "xorg/lib", 'version' => "3.5.7", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "libXp", 'path' => "xorg/lib", 'version' => "1.0.0", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "libXaw", 'path' => "xorg/lib", 'version' => "1.0.4", 'tag' => "%{name}-%{version}", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "util", 'path' => "xorg/font", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_font/font-%{name}-%{version}$tgz", }, { 'name' => "fixesproto", 'path' =>"xorg/proto", 'version' => "4.0", 'tarball' => "$xorg_url/$xorg_proto/%{name}-%{version}$tgz", }, { 'name' => "renderproto", 'path' =>"xorg/proto", 'version' => "0.9.3", 'tarball' => "$xorg_url/$xorg_proto/%{name}-%{version}$tgz", }, { 'name' => "libXfixes", 'path' => "xorg/lib", 'version' => "4.0.3", 'tag' => "%{name}-%{version}", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "damageproto", 'path' =>"xorg/proto", 'version' => "1.1.0", 'tag' => "%{name}-%{version}", 'tarball' => "$xorg_url/$xorg_proto/%{name}-%{version}$tgz", }, { 'name' => "xf86vidmodeproto", 'path' =>"xorg/proto", 'version' => "2.2.2", 'tarball' => "$xorg_url/$xorg_proto/%{name}-%{version}$tgz", }, { 'name' => "compositeproto", 'path' =>"xorg/proto", 'version' => "0.4", 'tarball' => "$xorg_url/$xorg_proto/%{name}-%{version}$tgz", }, { 'name' => "libXrender", 'path' => "xorg/lib", 'version' => "0.9.4", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "xineramaproto", 'path' =>"xorg/proto", 'version' => "1.1.2", 'tarball' => "$xorg_url/$xorg_proto/%{name}-%{version}$tgz", }, { 'name' => "randrproto", 'path' =>"xorg/proto", 'version' => "1.2.1", 'tarball' => "$xorg_url/$xorg_proto/%{name}-%{version}$tgz", }, { 'name' => "glproto", 'path' =>"xorg/proto", 'version' => "1.4.9", 'tarball' => "$xorg_url/$xorg_proto/%{name}-%{version}$tgz", }, { 'name' => "libXdamage", 'path' => "xorg/lib", 'version' => "1.1.1", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "drm", 'path' => "mesa", 'version' => "2.3.0", 'tag' => "%{name}-%{version}", 'tarball' => "http://dri.freedesktop.org/libdrm/libdrm-%{version}$tgz", }, { 'name' => "libXxf86vm", 'path' => "xorg/lib", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "libXi", 'path' => "xorg/lib", 'version' => "1.1.3", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "libxkbfile", 'path' => "xorg/lib", 'version' => "1.0.4", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "videoproto", 'path' =>"xorg/proto", 'version' => "2.2.2", 'tarball' => "$xorg_url/$xorg_proto/%{name}-%{version}$tgz", }, { 'name' => "fontcacheproto", 'path' =>"xorg/proto", 'version' => "0.1.2", 'tarball' => "$xorg_url/$xorg_proto/%{name}-%{version}$tgz", }, { 'name' => "fontsproto", 'path' =>"xorg/proto", 'version' => "2.0.2", 'tarball' => "$xorg_url/$xorg_proto/%{name}-%{version}$tgz", }, { 'name' => "libfontenc", 'path' => "xorg/lib", 'version' => "1.0.4", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "libXcomposite", 'path' => "xorg/lib", 'version' => "0.4.0", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "libXcursor", 'path' => "xorg/lib", 'version' => "1.1.9", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "libXinerama", 'path' => "xorg/lib", 'version' => "1.0.3", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "libXrandr", 'path' => "xorg/lib", 'version' => "1.2.2", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "xf86miscproto", 'path' =>"xorg/proto", 'version' => "0.9.2", 'tarball' => "$xorg_url/$xorg_proto/%{name}-%{version}$tgz", }, { 'name' => "mesa", 'path' => "mesa", 'version' => "7.0.2", # Fixme tarball 'configure'=> "$ac_mesadriver " . "$ac_mesadridir " . "$ac_xincludes " . "$ac_xlibraries " . ($options {'d'} ? "$ac_debug" : ""), }, { 'name' => "xf86driproto", 'path' =>"xorg/proto", 'version' => "2.0.3", 'tarball' => "$xorg_url/$xorg_proto/%{name}-%{version}$tgz", }, { 'name' => "libxkbui", 'path' => "xorg/lib", 'version' => "1.0.2", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "resourceproto", 'path' =>"xorg/proto", 'version' => "1.0.2", 'tarball' => "$xorg_url/$xorg_proto/%{name}-%{version}$tgz", }, { 'name' => "evieproto", 'path' =>"xorg/proto", 'version' => "1.0.2", 'tarball' => "$xorg_url/$xorg_proto/evieext-%{version}$tgz", }, { 'name' => "libXv", 'path' => "xorg/lib", 'version' => "1.0.3", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "bigreqsproto", 'path' =>"xorg/proto", 'version' => "1.0.2", 'tarball' => "$xorg_url/$xorg_proto/%{name}-%{version}$tgz", }, { 'name' => "dmxproto", 'path' =>"xorg/proto", 'version' => "2.2.2", 'tarball' => "$xorg_url/$xorg_proto/%{name}-%{version}$tgz", }, { 'name' => "recordproto", 'path' =>"xorg/proto", 'version' => "1.13.2", 'tarball' => "$xorg_url/$xorg_proto/%{name}-%{version}$tgz", }, { 'name' => "scrnsaverproto", 'path' =>"xorg/proto", 'version' => "1.1.0", 'tarball' => "$xorg_url/$xorg_proto/%{name}-%{version}$tgz", }, { 'name' => "xcmiscproto", 'path' =>"xorg/proto", 'version' => "1.1.2", 'tarball' => "$xorg_url/$xorg_proto/%{name}-%{version}$tgz", }, { 'name' => "xf86dgaproto", 'path' =>"xorg/proto", 'version' => "2.0.3", 'tarball' => "$xorg_url/$xorg_proto/%{name}-%{version}$tgz", }, { 'name' => "trapproto", 'path' =>"xorg/proto", 'version' => "3.4.3", 'tarball' => "$xorg_url/$xorg_proto/%{name}-%{version}$tgz", }, { 'name' => "libXfont", 'path' => "xorg/lib", 'version' => "1.3.2", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "libpciaccess", 'path' => "xorg/lib", 'version' => "0.10", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "pixman", 'path' => "", # empty path 'version' => "0.9.6", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "libXxf86misc", 'path' => "xorg/lib", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "macros", 'path' => "xorg/util", 'version' => "1.1.6", 'tarball' => "$xorg_url/$xorg_util/util-%{name}-%{version}$tgz", }, { 'name' => "xserver", 'path' => "xorg", 'version' => "1.4.99.901", 'tarball' => "$xorg_url/xserver/xorg-server-%{version}$tgz", 'configure'=> "$ac_buildaddr " . "$ac_mesapath " . "$ac_dga " . "$ac_dmx " . "$ac_fontcache " . "$ac_glx " . "$ac_glxtls " . "$ac_kdrive " . "$ac_kvesa " . "$ac_xace " . "$ac_xdmcp " . "$ac_xdmauth " . "$ac_xephyr " . "$ac_xegl " . "$ac_xf86misc " . "$ac_xf86vid " . "$ac_xfake " . "$ac_xfbdev " . "$ac_xgl " . "$ac_xglx " . "$ac_xorg " . "$ac_xorgcfg " . "$ac_xsdl " . "$ac_xselinux " . "$ac_xvfb " . ($options{'d'} ? "$ac_debug" : ""), }, { 'name' => "pthread-stubs", 'path' => "xcb", 'version' => "0.1", 'tarball' => "$xorg_url/$xorg_lib/libpthread-stubs-%{version}$tgz", }, { 'name' => "libXprintUtil", 'path' => "xorg/lib", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "fontconfig", 'path' => "", # empty path 'version' => "2.5.0", 'tarball' => "http://fontconfig.org/release/fontconfig-%{version}.tar.gz", }, { 'name' => "windowswmproto", 'path' =>"xorg/proto", 'version' => "1.0.3", 'tarball' => "$xorg_url/$xorg_proto/%{name}-%{version}$tgz", }, { 'name' => "applewmproto", 'path' => "xorg/proto", 'version' => "1.0.3", 'tarball' => "$xorg_url/$xorg_proto/%{name}-%{version}$tgz", }, { 'name' => "mkfontscale", 'path' => "xorg/app", 'version' => "1.0.4", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "bdftopcf", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "libXvMC", 'path' => "xorg/lib", 'version' => "1.0.4", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "xcursorgen", 'path' => "xorg/app", 'version' => "1.0.2", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "libXTrap", 'path' => "xorg/lib", 'version' => "1.0.0", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "bitmaps", 'path' => "xorg/data", 'version' => "1.0.1", 'tarball' => "$xorg_url/data/xbitmaps-1.0.1$tgz", }, { 'name' => "libXfontcache", 'path' => "xorg/lib", 'version' => "1.0.4", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "pmproto", 'path' =>"xorg/proto", 'version' => "1.0.2", 'tarball' => "$xorg_url/$xorg_proto/xproxymanagementprotocol-%{version}$tgz", }, { 'name' => "libXRes", 'path' => "xorg/lib", 'version' => "1.0.3", 'tarball' => "$xorg_url/$xorg_lib/libXres-%{version}$tgz", # lowercase r }, { 'name' => "libXprintAppUtil", 'path' => "xorg/lib", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "libXft", 'path' => "xorg/lib", 'version' => "2.1.12", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "libFS", 'path' => "xorg/lib", 'version' => "1.0.0", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "libXxf86dga", 'path' => "xorg/lib", 'version' => "1.0.2", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "libXtst", 'path' => "xorg/lib", 'version' => "1.0.3", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "libdmx", 'path' => "xorg/lib", 'version' => "1.0.2", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'path' => "xorg/lib", 'name' => "liblbxutil", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "libXScrnSaver", 'path' => "xorg/lib", 'version' => "1.1.2", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "lndir", 'path' => "xorg/util", 'version' => "1.0.1", # Fixme tarball }, { 'name' => "imake", 'path' => "xorg/util", 'version' => "1.0.2", # Fixme tarball }, { 'name' => "gccmakedep", 'path' => "xorg/util", 'version' => "1.0.2", # Fixme tarball }, { 'name' => "cf", 'path' => "xorg/util", 'version' => "1.0.2", # Fixme tarball }, { 'name' => "xf86rushproto", 'path' =>"xorg/proto", 'version' => "1.1.2", 'tarball' => "$xorg_url/$xorg_proto/%{name}-%{version}$tgz", }, { 'name' => "liboldX", 'path' => "xorg/lib", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "libXevie", 'path' => "xorg/lib", 'version' => "1.0.2", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "libWindowsWM", 'path' => "xorg/lib", 'version' => "1.0.0", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "libAppleWM", 'path' => "xorg/lib", 'version' => "1.0.0", 'tarball' => "$xorg_url/$xorg_lib/%{name}-%{version}$tgz", }, { 'name' => "xfree86-type1", 'path' => "xorg/font", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_font/font-%{name}-%{version}$tgz", }, { 'name' => "winitzki-cyrillic", 'path' => "xorg/font", 'version' => "1.0.0", 'tarball' => "$xorg_url/$xorg_font/font-%{name}-%{version}$tgz", }, { 'name' => "sony-misc", 'path' => "xorg/font", 'version' => "1.0.0", 'tarball' => "$xorg_url/$xorg_font/font-%{name}-%{version}$tgz", }, { 'name' => "screen-cyrillic", 'path' => "xorg/font", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_font/font-%{name}-%{version}$tgz", }, { 'name' => "schumacher-misc", 'path' => "xorg/font", 'version' => "1.0.0", 'tarball' => "$xorg_url/$xorg_font/font-%{name}-%{version}$tgz", }, { 'name' => "misc-misc", 'path' => "xorg/font", 'version' => "1.0.0", 'tarball' => "$xorg_url/$xorg_font/font-%{name}-%{version}$tgz", }, { 'name' => "misc-meltho", 'path' => "xorg/font", 'version' => "1.0.0", 'tarball' => "$xorg_url/$xorg_font/font-%{name}-%{version}$tgz", }, { 'name' => "misc-ethiopic", 'path' => "xorg/font", 'version' => "1.0.0", 'tarball' => "$xorg_url/$xorg_font/font-%{name}-%{version}$tgz", }, { 'name' => "misc-cyrillic", 'path' => "xorg/font", 'version' => "1.0.0", 'tarball' => "$xorg_url/$xorg_font/font-%{name}-%{version}$tgz", }, { 'name' => "micro-misc", 'path' => "xorg/font", 'version' => "1.0.0", 'tarball' => "$xorg_url/$xorg_font/font-%{name}-%{version}$tgz", }, { 'name' => "jis-misc", 'path' => "xorg/font", 'version' => "1.0.0", 'tarball' => "$xorg_url/$xorg_font/font-%{name}-%{version}$tgz", }, { 'name' => "isas-misc", 'path' => "xorg/font", 'version' => "1.0.0", 'tarball' => "$xorg_url/$xorg_font/font-%{name}-%{version}$tgz", }, { 'name' => "ibm-type1", 'path' => "xorg/font", 'version' => "1.0.0", 'tarball' => "$xorg_url/$xorg_font/font-%{name}-%{version}$tgz", }, { 'name' => "encodings", 'path' => "xorg/font", 'version' => "1.0.2", 'tarball' => "$xorg_url/$xorg_font/%{name}-%{version}$tgz", }, { 'name' => "dec-misc", 'path' => "xorg/font", 'version' => "1.0.0", 'tarball' => "$xorg_url/$xorg_font/font-%{name}-%{version}$tgz", }, { 'name' => "daewoo-misc", 'path' => "xorg/font", 'version' => "1.0.0", 'tarball' => "$xorg_url/$xorg_font/font-%{name}-%{version}$tgz", }, { 'name' => "cursor-misc", 'path' => "xorg/font", 'version' => "1.0.0", 'tarball' => "$xorg_url/$xorg_font/font-%{name}-%{version}$tgz", }, { 'name' => "cronyx-cyrillic", 'path' => "xorg/font", 'version' => "1.0.0", 'tarball' => "$xorg_url/$xorg_font/font-%{name}-%{version}$tgz", }, { 'name' => "bitstream-type1", 'path' => "xorg/font", 'version' => "1.0.0", 'tarball' => "$xorg_url/$xorg_font/font-%{name}-%{version}$tgz", }, { 'name' => "bitstream-speedo", 'path' => "xorg/font", 'version' => "1.0.0", 'tarball' => "$xorg_url/$xorg_font/font-%{name}-%{version}$tgz", }, { 'name' => "bitstream-75dpi", 'path' => "xorg/font", 'version' => "1.0.0", 'tarball' => "$xorg_url/$xorg_font/font-%{name}-%{version}$tgz", }, { 'name' => "bitstream-100dpi", 'path' => "xorg/font", 'version' => "1.0.0", 'tarball' => "$xorg_url/$xorg_font/font-%{name}-%{version}$tgz", }, { 'name' => "bh-type1", 'path' => "xorg/font", 'version' => "1.0.0", 'tarball' => "$xorg_url/$xorg_font/font-%{name}-%{version}$tgz", }, { 'name' => "bh-ttf", 'path' => "xorg/font", 'version' => "1.0.0", 'tarball' => "$xorg_url/$xorg_font/font-%{name}-%{version}$tgz", }, { 'name' => "bh-lucidatypewriter-75dpi", 'path' => "xorg/font", 'version' => "1.0.0", 'tarball' => "$xorg_url/$xorg_font/font-%{name}-%{version}$tgz", }, { 'name' => "bh-lucidatypewriter-100dpi", 'path' => "xorg/font", 'version' => "1.0.0", 'tarball' => "$xorg_url/$xorg_font/font-%{name}-%{version}$tgz", }, { 'name' => "bh-75dpi", 'path' => "xorg/font", 'version' => "1.0.0", 'tarball' => "$xorg_url/$xorg_font/font-%{name}-%{version}$tgz", }, { 'name' => "bh-100dpi", 'path' => "xorg/font", 'version' => "1.0.0", 'tarball' => "$xorg_url/$xorg_font/font-%{name}-%{version}$tgz", }, { 'name' => "arabic-misc", 'path' => "xorg/font", 'version' => "1.0.0", 'tarball' => "$xorg_url/$xorg_font/font-%{name}-%{version}$tgz", }, { 'name' => "alias", 'path' => "xorg/font", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_font/font-%{name}-%{version}$tgz", }, { 'name' => "adobe-utopia-75dpi", 'path' => "xorg/font", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_font/font-%{name}-%{version}$tgz", }, { 'name' => "adobe-utopia-100dpi", 'path' => "xorg/font", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_font/font-%{name}-%{version}$tgz", }, { 'name' => "adobe-75dpi", 'path' => "xorg/font", 'version' => "1.0.0", 'tarball' => "$xorg_url/$xorg_font/font-%{name}-%{version}$tgz", }, { 'name' => "adobe-100dpi", 'path' => "xorg/font", 'version' => "1.0.0", 'tarball' => "$xorg_url/$xorg_font/font-%{name}-%{version}$tgz", }, { ### FIXME need to find official tarball url, if any 'name' => "xf86-video-xgixp", 'path' => "xorg/driver", 'version' => "1.7.99.2", }, { 'name' => "xf86-video-xgi", 'path' => "xorg/driver", 'version' => "1.5.0", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-video-wsfb", 'path' => "xorg/driver", 'version' => "0.2.1", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", 'skip' => "*BSD only - wsfb_driver.c:46:33: error: dev/wscons/wsconsio.h: No such file or directory", }, { 'name' => "xf86-video-voodoo", 'path' => "xorg/driver", 'version' => "1.1.1", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-video-vmware", 'path' => "xorg/driver", 'version' => "10.15.2", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-video-via", 'path' => "xorg/driver", 'version' => "0.2.2", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", 'skip' => "not building - drm/drm.h int64_t not defined - needs pciaccess conversion after not including drm/drm.h", }, { 'name' => "xf86-video-vga", 'path' => "xorg/driver", 'version' => "4.1.0", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-video-vesa", 'path' => "xorg/driver", 'version' => "1.3.0", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-video-v4l", 'path' => "xorg/driver", 'version' => "0.1.1", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-video-tseng", 'path' => "xorg/driver", 'version' => "1.1.1", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-video-trident", 'path' => "xorg/driver", 'version' => "1.2.4", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-video-tga", 'path' => "xorg/driver", 'version' => "1.1.0", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-video-tdfx", 'path' => "xorg/driver", 'version' => "1.3.0", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-video-suntcx", 'path' => "xorg/driver", 'version' => "1.1.0", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-video-sunleo", 'path' => "xorg/driver", 'version' => "1.1.0", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-video-sunffb", 'path' => "xorg/driver", 'version' => "1.1.0", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-video-suncg6", 'path' => "xorg/driver", 'version' => "1.1.0", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-video-suncg3", 'path' => "xorg/driver", 'version' => "1.1.0", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-video-suncg14", 'path' => "xorg/driver", 'version' => "1.1.0", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-video-sunbw2", 'path' => "xorg/driver", 'version' => "1.1.0", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-video-sisusb", 'path' => "xorg/driver", 'version' => "0.8.1", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-video-sis", 'path' => "xorg/driver", 'version' => "0.9.4", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-video-siliconmotion", 'path' => "xorg/driver", 'version' => "1.5.1", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", 'skip' => "not building - smi.h:189: error: expected specifier-qualifier-list before 'pciVideoPtr'", }, { 'name' => "xf86-video-savage", 'path' => "xorg/driver", 'version' => "2.1.3", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-video-s3virge", 'path' => "xorg/driver", 'version' => "1.9.1", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", 'skip' => "not building - s3v.h:283: error: expected specifier-qualifier-list before 'pciVideoPtr'" }, { 'name' => "xf86-video-s3", 'path' => "xorg/driver", 'version' => "0.5.0", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", 'skip' => "not building - s3.h:88: error: expected specifier-qualifier-list before 'pciVideoPtr'", }, { 'name' => "xf86-video-rendition", 'path' => "xorg/driver", 'version' => "4.1.3", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-video-radeonhd", 'path' => "xorg/driver", 'version' => "1.1.0", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-video-r128", 'path' => "xorg/driver", 'version' => "6.8.0", # not available #'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-video-nv", 'path' => "xorg/driver", 'version' => "2.1.8", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-video-nsc", 'path' => "xorg/driver", 'version' => "2.8.3", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-video-newport", 'path' => "xorg/driver", 'version' => "0.2.1", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-video-neomagic", 'path' => "xorg/driver", 'version' => "1.1.1", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-video-mga", 'path' => "xorg/driver", 'version' => "1.4.8", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-video-mach64", 'path' => "xorg/driver", 'version' => "6.8.0", # not yet available #'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-video-intel", 'path' => "xorg/driver", 'version' => "2.2.1", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-video-imstt", 'path' => "xorg/driver", 'version' => "1.1.0", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", 'skip' => "not building - imstt.h:13: error: expected specifier-qualifier-list before 'pciVideoPtr'", }, { 'name' => "xf86-video-impact", 'path' => "xorg/driver", 'version' => "0.2.0", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", 'skip' => "Not ix86: impact_shadow.c:17:26: error: asm/cachectl.h: No such file or directory", }, { 'name' => "xf86-video-i810", #'path' => "xorg/driver", 'version' => "1.7.4", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", 'skip' => "replaced by intel driver", }, { 'name' => "xf86-video-i740", 'path' => "xorg/driver", 'version' => "1.1.0", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", 'skip' => "not building - i740.h:101: error: expected specifier-qualifier-list before 'pciVideoPtr'", }, { 'name' => "xf86-video-i128", 'path' => "xorg/driver", 'version' => "1.2.1", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", 'skip' => "not building - i128accel.c:38:24: error: xf86_ansic.h: No such file or directory /// i128.h:37: error: expected specifier-qualifier-list before 'pciVideoPtr'", }, { 'name' => "xf86-video-glint", 'path' => "xorg/driver", 'version' => "1.1.1", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", 'skip' => "not building - glint.h:74: error: expected specifier-qualifier-list before 'pciVideoPtr'", }, { 'name' => "xf86-video-glide", 'path' => "xorg/driver", 'version' => "1.0.0", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", 'skip' => "Needs libglide & co", }, { 'name' => "xf86-video-fbdev", 'path' => "xorg/driver", 'version' => "0.3.1", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-video-dummy", 'path' => "xorg/driver", 'version' => "0.2.0", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-video-cyrix", 'path' => "xorg/driver", 'version' => "1.1.0", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", 'skip' => "not building - cyrix.h:113: error: expected specifier-qualifier-list before 'pciVideoPtr'", }, { 'name' => "xf86-video-cirrus", 'path' => "xorg/driver", 'version' => "1.1.0", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-video-chips", 'path' => "xorg/driver", 'version' => "1.1.1", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-video-ati", 'path' => "xorg/driver", 'version' => "6.8.0", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-video-ast", 'path' => "xorg/driver", 'version' => "0.81.0", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", 'skip' => "not building - ast.h:133: error: expected specifier-qualifier-list before 'pciVideoPtr'", }, { 'name' => "xf86-video-ark", 'path' => "xorg/driver", 'version' => "0.6.0", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", 'skip' => "not building - ark.h:30: error: expected specifier-qualifier-list before 'pciVideoPtr'", }, { 'name' => "xf86-video-apm", 'path' => "xorg/driver", 'version' => "1.1.1", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", 'skip' => "not building - apm.h:106: error: expected specifier-qualifier-list before 'pciVideoPtr'", }, { 'name' => "xf86-video-amd", 'path' => "xorg/driver", 'version' => "2.7.7.6", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", 'skip' => "amd_gx_driver.c:331: error: 'pciVideoRec' undeclared (first use in this function)", }, { 'name' => "xf86-input-void", 'path' => "xorg/driver", 'version' => "1.1.1", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-input-vmmouse", 'path' => "xorg/driver", 'version' => "12.4.3", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-input-ur98", 'path' => "xorg/driver", 'version' => "1.1.0", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-input-tek4957", 'path' => "xorg/driver", 'version' => "1.1.0", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-input-summa", 'path' => "xorg/driver", 'version' => "1.1.0", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-input-spaceorb", 'path' => "xorg/driver", 'version' => "1.1.1", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-input-penmount", 'path' => "xorg/driver", 'version' => "1.2.1", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-input-palmax", 'path' => "xorg/driver", 'version' => "1.1.0", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-input-mutouch", 'path' => "xorg/driver", 'version' => "1.1.0", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-input-mouse", 'path' => "xorg/driver", 'version' => "1.2.3", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-input-microtouch", 'path' => "xorg/driver", 'version' => "1.1.1", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-input-magictouch", 'path' => "xorg/driver", 'version' => "1.0.0.5", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-input-magellan", 'path' => "xorg/driver", 'version' => "1.1.1", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-input-keyboard", 'path' => "xorg/driver", 'version' => "1.2.2", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-input-joystick", 'path' => "xorg/driver", 'version' => "1.3.1", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-input-jamstudio", 'path' => "xorg/driver", 'version' => "1.1.0", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-input-hyperpen", 'path' => "xorg/driver", 'version' => "1.1.0", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-input-fpit", 'path' => "xorg/driver", 'version' => "1.1.0", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-input-evdev", 'path' => "xorg/driver", 'version' => "1.2.0", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-input-elographics", 'path' => "xorg/driver", 'version' => "1.1.0", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-input-elo2300", 'path' => "xorg/driver", 'version' => "1.1.1", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-input-dynapro", 'path' => "xorg/driver", 'version' => "1.1.1", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-input-dmc", 'path' => "xorg/driver", 'version' => "1.1.1", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-input-digitaledge", 'path' => "xorg/driver", 'version' => "1.1.0", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-input-citron", 'path' => "xorg/driver", 'version' => "2.2.1", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-input-calcomp", 'path' => "xorg/driver", 'version' => "1.1.1", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-input-aiptek", 'path' => "xorg/driver", 'version' => "1.1.1", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xf86-input-acecad", 'path' => "xorg/driver", 'version' => "1.2.2", 'tarball' => "$xorg_url/$xorg_driver/%{name}-%{version}$tgz", }, { 'name' => "xorg-sgml-doctools", 'path' => "xorg/doc", 'version' => "1.2", 'tarball' => "$xorg_url/$xorg_doc/%{name}-%{version}$tgz", }, { 'name' => "xorg-docs", 'path' => "xorg/doc", 'version' => "1.4", 'tarball' => "$xorg_url/$xorg_doc/%{name}-%{version}$tgz", }, { 'name' => "cursors", 'path' => "xorg/data", 'version' => "1.0.1", 'tarball' => "$xorg_url/data/xcursor-themes-1.0.1$tgz", }, { 'name' => "xwud", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xwininfo", 'path' => "xorg/app", 'version' => "1.0.3", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xwd", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xvinfo", 'path' => "xorg/app", 'version' => "1.0.2", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xvidtune", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xtrap", 'path' => "xorg/app", 'version' => "1.0.2", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xstdcmap", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xsm", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xsetroot", 'path' => "xorg/app", 'version' => "1.0.2", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xsetpointer", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xsetmode", 'path' => "xorg/app", 'version' => "1.0.0", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xset", 'path' => "xorg/app", 'version' => "1.0.4", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xrx", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xrestop", 'path' => "xorg/app", 'version' => "0.4", # Fixme tarball }, { 'name' => "xrefresh", 'path' => "xorg/app", 'version' => "1.0.2", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xrdb", 'path' => "xorg/app", 'version' => "1.0.5", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xrandr", 'path' => "xorg/app", 'version' => "1.2.3", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xprop", 'path' => "xorg/app", 'version' => "1.0.4", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xprehashprinterlist", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xpr", 'path' => "xorg/app", 'version' => "1.0.2", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xplsprinters", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xphelloworld", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", 'configure'=> "$ac_motiflibs", }, { 'name' => "xmore", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xmodmap", 'path' => "xorg/app", 'version' => "1.0.3", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xmh", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xmessage", 'path' => "xorg/app", 'version' => "1.0.2", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xman", 'path' => "xorg/app", 'version' => "1.0.3", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xmag", 'path' => "xorg/app", 'version' => "1.0.2", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xlsfonts", 'path' => "xorg/app", 'version' => "1.0.2", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xlsclients", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xlsatoms", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xlogo", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xload", 'path' => "xorg/app", 'version' => "1.0.2", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xkill", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xkbutils", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xkbprint", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xkbevd", 'path' => "xorg/app", 'version' => "1.0.2", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xkbcomp", 'path' => "xorg/app", 'version' => "1.0.4", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xinput", 'path' => "xorg/app", 'version' => "1.3.0", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xinit", 'path' => "xorg/app", 'version' => "1.0.8", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xhost", 'path' => "xorg/app", 'version' => "1.0.2", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xgc", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xgamma", 'path' => "xorg/app", 'version' => "1.0.2", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xfwp", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xfsinfo", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xfs", 'path' => "xorg/app", 'version' => "1.0.6", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xfontsel", 'path' => "xorg/app", 'version' => "1.0.2", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xfindproxy", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xfd", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xf86dga", 'path' => "xorg/app", 'version' => "1.0.2", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xeyes", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xev", 'path' => "xorg/app", 'version' => "1.0.3", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xedit", 'path' => "xorg/app", 'version' => "1.0.2", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", 'configure'=> "$ac_noxprint", }, { 'name' => "xdriinfo", 'path' => "xorg/app", 'version' => "1.0.2", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xdpyinfo", 'path' => "xorg/app", 'version' => "1.0.2", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xdm", 'path' => "xorg/app", 'version' => "1.1.7", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xditview", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xdbedizzy", 'path' => "xorg/app", 'version' => "1.0.2", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xconsole", 'path' => "xorg/app", 'version' => "1.0.3", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xcompmgr", 'path' => "xorg/app", 'version' => "1.1.4", 'tarball' => "http://xapps.freedesktop.org/release/%{name}-%{version}.tar.gz", }, { 'name' => "xcmsdb", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xclock", 'path' => "xorg/app", 'version' => "1.0.3", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xclipboard", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xcalc", 'path' => "xorg/app", 'version' => "1.0.2", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xbiff", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xbacklight", 'path' => "xorg/app", 'version' => "1.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xauth", 'path' => "xorg/app", 'version' => "1.0.3", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "x11perf", 'path' => "xorg/app", 'version' => "1.5", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "viewres", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "twm", 'path' => "xorg/app", 'version' => "1.0.4", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "smproxy", 'path' => "xorg/app", 'version' => "1.0.2", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "showfont", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "setxkbmap", 'path' => "xorg/app", 'version' => "1.0.4", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "sessreg", 'path' => "xorg/app", 'version' => "1.0.3", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "scripts", 'path' => "xorg/app", 'version' => "1.0.1", # Fixme tarball }, { 'name' => "rstart", 'path' => "xorg/app", 'version' => "1.0.2", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "rgb", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "rendercheck", 'path' => "xorg/app", 'version' => "1.3", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "proxymngr", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "oclock", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "mkfontdir", 'path' => "xorg/app", 'version' => "1.0.4", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "mkcomposecache", 'path' => "xorg/app", 'version' => "1.2", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "luit", 'path' => "xorg/app", 'version' => "1.0.3", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "listres", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "lbxproxy", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "intel-gen4asm", 'path' => "xorg/app", # Fixme tarball }, { 'name' => "ico", 'path' => "xorg/app", 'version' => "1.0.2", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "iceauth", 'path' => "xorg/app", 'version' => "1.0.2", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "grandr", 'path' => "xorg/app", 'version' => "0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "glxcompmgr", 'path' => "xorg/app", # Fixme tarball }, { 'name' => "fstobdf", 'path' => "xorg/app", 'version' => "1.0.2", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "fslsfonts", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "fonttosfnt", 'path' => "xorg/app", 'version' => "1.0.3", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "fdclock", 'path' => "xorg/app", # Fixme tarball }, { 'name' => "editres", 'path' => "xorg/app", 'version' => "1.0.3", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "constype", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "compiz", 'path' => "xorg/app", 'version' => "0.7.2", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}.tar.gz", }, { 'name' => "bitmap", 'path' => "xorg/app", 'version' => "1.0.3", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "beforelight", 'path' => "xorg/app", 'version' => "1.0.3", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "appres", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", }, { 'name' => "xkeyboard-config", 'path' => "", 'version' => "1.1", # Fixme tarball # 'commit' => "-r v_1_1 xkeyboard-config", 'configure'=> "$ac_xkbcomplnk $ac_xkbrules $ac_xkbruleslnk", }, { 'name' => "util", 'path' => "xcb", 'version' => "0.2", # Fixme tarball }, { 'name' => "demo", 'path' => "xcb", 'version' => "0.1", # Fixme tarball }, { 'name' => "xf86-video-nouveau", 'path' => "nouveau", 'version' => "1.2.0", # Fixme tarball }, { 'name' => "xf86-video-avivo", 'path' => "avivo", 'version' => "0.0.1", # Fixme tarball }, { 'name' => "calibrateproto", 'path' =>"xorg/proto", 'version' => "0.1.0", # no tarball at $xorg_url/$xorg_proto/ 'skip' => "ignore", }, { 'name' => "lg3dproto", 'path' =>"xorg/proto", 'version' => "5.0", # no tarball available at $xorg_url/$xorg_proto/ 'skip' => "ignore", }, { 'name' => "libXamine", 'path' => "xcb", 'version' => "0.1", # Fixme tarball 'skip' => "yes", }, { 'name' => "libXCalibrate", 'path' => "xorg/lib", 'version' => "0.4.0", # No tarball at $xorg_url/$xorg_lib/ 'skip' => "yes", }, { 'name' => "libXlg3d", 'path' => "xorg/lib", 'version' => "1.0.0", # No tarball at $xorg_url/$xorg_lib/ 'skip' => "yes", }, # libxxf86rush unbuildable? # tarball not available lib at $xorg_url/$xorg_lib/ { 'name' => "mkcfm", 'path' => "xorg/app", 'version' => "1.0.1", 'tarball' => "$xorg_url/$xorg_app/%{name}-%{version}$tgz", 'skip' => "broken missing symbols CIDOpenScalable, CIDRegisterFontFileFunctions (should be in libXfont ?)", }, # x11-driver-input-sample unbuildable? or can be added? { 'name' => "edid-decode", 'path' => "xorg/app", # Fixme tarball 'skip' => "yes", }, { 'name' => "makepsres", 'path' => "xorg/app", # Fixme tarball 'skip' => "yes", }, { 'name' => "pclcomp", 'path' => "xorg/app", # Fixme tarball 'skip' => "yes", }, { 'name' => "xshowdamage", 'path' => "xorg/app", # Fixme tarball 'skip' => "yes", }, { 'name' => "install-check", 'path' => "xorg/util", # No version # Fixme tarball 'skip' => "yes", }, { 'name' => "makedepend", 'path' => "xorg/util", 'version' => "1.0.2", # Fixme tarball 'skip' => "yes", }, { 'name' => "xmkmf", 'path' => "xorg/util", # No files # Fixme tarball 'skip' => "yes", }, ); ############################################################################## # Simple wrapper that prints errno string if not successful sub x_system { my ($command, $die) = @_; print(STDERR " $command\n"); system($command); if ($?) { die(" ** Error code $? ($!)\n") if ($die); } }; ############################################################################## # Simple wrapper that prints errno string if not successful sub x_chdir { my ($dir) = @_; print(STDERR " cd $dir\n"); chdir($dir) or die(" ** $!\n"); }; ############################################################################## # Does a clone/pull in the build dir to avoid poluting the main repository # and giving a chance for better review of changes. sub checkout { my ($package) = \%{$_}; my ($path, $name, $commit) = ($package->{'path'}, $package->{'name'}, $package->{'commit'}); my $command; my $prefix = ($path ne "" ? "$path/" : "") . $name; x_chdir($xorg_git_build_dir); if (-d $prefix) { x_chdir($prefix); # Special case if ($name eq "xkeyboard-config") { $command = "cvs up"; } else { $command = "git-pull" . ($options{'t'} ? " -t" : ""); } # Follow pattern of other commands print(STDERR " $command\n"); my $result = `$command`; # Very basic way to know this directory needs to be recompiled if ($result !~ /Already up-to-date./) { x_system("rm -f $build_ok"); } } else { # Special case if ($name eq "xkeyboard-config") { x_system("cvs -d:pserver:anoncvs\@cvs.freedesktop.org:/cvs/$name login"); x_system("cvs -d:pserver:anoncvs\@cvs.freedesktop.org:/cvs/$name co $commit $name"); } else { x_system("git-clone file://$xorg_git_checkout_dir/$prefix $prefix"); if ($commit ne "") { x_chdir($prefix); x_system("git-checkout $commit"); } } } }; ############################################################################## # Updates git repository sub update { my ($package) = \%{$_}; my ($path, $name) = ($package->{'path'}, $package->{'name'}); x_system("echo -n $path/$name > $git_last_update"); my $command; my $prefix = ($path ne "" ? "$path/" : "") . $name; x_chdir($xorg_git_checkout_dir); if (-d $prefix) { x_chdir($prefix); # Special case if ($name eq "xkeyboard-config") { $command = "cvs up"; } else { if (`git diff`) { die("$name has uncommited changes.\n"); } my $tmp = $/; $/ = undef; $command = `git branch`; $/ = $tmp; # Don't try to switch branches, as it may cause conflicting merges. # Require that the package leave it in master branch, i.e. just # in a state matching a standard/default readonly checkout. if ($command !~ /^\* master$/m) { die("$path/$name is not in branch master.\n"); } $command = "git-pull" . ($options{'t'} ? " -t" : ""); } } else { # Special case if ($name eq "xkeyboard-config") { x_system("cvs -d:pserver:anoncvs\@cvs.freedesktop.org:/cvs/$name login"); $command = "cvs -d:pserver:anoncvs\@cvs.freedesktop.org:/cvs/$name co $package->{commit} $name"; } else { $command = "git clone $xorg_git_protocol://$xorg_git_repository/$prefix $prefix"; } } x_system("$command"); }; ############################################################################## sub checktars { my ($package) = \%{$_}; my ($path, $name, $tarball) = ($package->{'path'}, $package->{'name'}, $package->{'tarball'}); if ($tarball) { # my $filename = File::Basename::basename($tarball); # # if (not -f "$xorg_git_build_dir/$path/$name/$filename") { # x_chdir("$xorg_git_build_dir/$path/$name"); # x_system("wget -q $tarball"); # print(STDERR " ** Missing package downloaded from upstream.\n") # unless ($?); # } # else { x_system("wget --spider -q $tarball"); # } if ($?) { print(STDERR " ** Error checking tarball $tarball.\n"); } } else { print(STDERR " ** No tarball specified for package $name\n"); } }; ############################################################################## sub build { my ($package) = \%{$_}; my ($path, $name, $configure) = ($package->{'path'}, $package->{'name'}, $package->{'configure'}); my $trace = $options{'g'} ? $xorg_trace_pl : ""; my $full_path = "$xorg_git_build_dir/$path/$name"; if (not -f "$full_path/$build_ok") { x_chdir("$full_path"); my $arguments = " --prefix=$xorg_git_dest_dir --cache-file=$auto_cache_file $configure"; if (-f "Makefile") { x_system("make distclean"); } if ($options{'g'}) { x_system("rm -f $name.deps $name.files"); } if (-f "autogen.sh") { x_system("$trace ./autogen.sh $arguments"); } # Mesa special case only? else { x_system("$trace autoconf"); x_system("$trace make configure"); x_system("$trace ./configure $arguments"); } x_system("$trace make", 1); # XXX $trace .= $options{'g'} ? " -i" : ""; x_system("$xorg_git_sudo_command $trace make install", 1); if ($options{'g'}) { x_system("$xorg_git_sudo_command mkdir -p $xorg_git_deps_dir/$path"); x_system("$xorg_git_sudo_command cat $name.deps | sort | uniq > $xorg_git_deps_dir/$path/$name.deps"); x_system("$xorg_git_sudo_command cat $name.files | sort | uniq > $xorg_git_deps_dir/$path/$name.files"); } x_system("touch $build_ok"); } }; ############################################################################## sub clean { my ($package) = \%{$_}; my ($path, $name) = ($package->{'path'}, $package->{'name'}); x_system("rm -f $xorg_git_build_dir/$path/$name/$build_ok"); }; ############################################################################## sub realclean { my ($package) = \%{$_}; my ($path, $name) = ($package->{'path'}, $package->{'name'}); x_chdir("$xorg_git_build_dir/$path/$name"); x_system("rm -f $build_ok"); x_system("make realclean") if (-f "Makefile"); }; ############################################################################## sub distclean { my ($package) = \%{$_}; my ($path, $name) = ($package->{'path'}, $package->{'name'}); x_chdir("$xorg_git_build_dir/$path/$name"); x_system("rm -f $build_ok"); x_system("make distclean") if (-f "Makefile"); }; ############################################################################## # Replace hash values with macros in the format %{string} to $module->{'string'} # Only one pass and no specific order sub replace_macros_and_check_errors { my ($module, $key, $value, $macro, $replace); foreach $module (@modules) { while (($key, $value) = each %$module) { # Don't allow modules without a version specified #die("$module->{package} doesn't have a version") #unless($module->{'version'} or $module->{'skip'}); while ($value =~ /%\{(\w+)\}/) { $macro = $1; if ($module->{$macro}) { $replace = $module->{$1}; } else { # Don't allow undefined ``macros''. # Assume name is always properly defined die(" ** unknown macro $module->{name}:%{$macro}.\n"); } $value =~ s/%\{$1\}/$replace/g; } $module->{$key} = $value; } } } replace_macros_and_check_errors(); ############################################################################## # Subroutines are free to change this now as a lot of "system" commands # may be used. my $dir = Cwd::getcwd(); my %table = ( "update" => \&update, "checkout" => \&checkout, "build" => \&build, "clean" => \&clean, "realclean" => \&realclean, "distclean" => \&distclean, "checktars" => \&checktars, ); # Add skip for -n option if ($options{'n'}) { foreach (@modules) { $_->{'skip'} = "yes" unless ($_->{'name'} eq $options{'n'}); } } # If using a temp file to not need to restart over an update... if ($command eq "update" and not $options{'c'} and -f $git_last_update) { my $lastupdate = `cat $git_last_update`; foreach (@modules) { last if ("$_->{path}/$_->{name}" eq $lastupdate); $_->{'skip'} = "yes"; } } foreach (@modules) { print(STDERR "--> $_->{name}\n"); my $function = $table{$command}; $function->($_) unless($_->{'skip'}); } # If using a temp file to not need to restart over an update... if ($command eq "update" and -f $git_last_update) { x_system("rm -f $git_last_update"); } # Restore current directory chdir($dir);