building GNOME [PATCH]



I found the following patches necessary to  build GNOME packages
under a fairly standard debian-hamm installation.

I build from CVS.
I then "cp -rdps" the GNOME directory somewhere else and build there.
This is to preserve a "clean" CVS tree.
The CVS tree seems to contain a lot of things that IMHO shouldn't be there;
sometimes also Makefile's. If You are interested I can send a complete
list of the "spurious" files.
Several packages seem to need links to gnome-common/macros and/or
to gnome-common/intl; is this correct or do I do something wrong?

I attach the perl script I use to compile and the patches I found necessary.

*any* feedback would be welcome.
TiA
Mauro

Best Regards

Mauro Condarelli

#!/usr/bin/perl -w
use Cwd;

open(SAVEOUT, ">&STDOUT");
open(SAVEERR, ">&STDERR");

open(STDOUT, ">build.log") || die "Can't redirect stdout";
open(STDERR, ">&STDOUT") || die "Can't dup stdout";

select(STDERR); $| = 1;     # make unbuffered
select(STDOUT); $| = 1;     # make unbuffered

sub yesno {
  print SAVEOUT @_, "[Yes|No]> ";
  my $yn = <STDIN>;
  chomp ($yn);
  $yn =~ tr/A-Z/a-z/;
  return $yn eq "yes";
}

if (! -d "GNOME") {
  die "I can't see the GNOME source dir!\n";
}

if (-d "GNOME.build") {
  if (yesno("Temporary dir present: do You want to refresh it? ")) {
    system "rm -rf GNOME.build";
  }
}

if (! -d "GNOME.build") {
  mkdir "GNOME.build",0777;
  system "cp -rdps `pwd`/GNOME/* GNOME.build";
}
chdir "GNOME.build";

chdir "ORBit";
if (! -d "libIDL") {
  system "ln -s ../libIDL .";
  print "Warning: ORBit/libIDL readjusted\n";
  print SAVEOUT "Warning: ORBit/libIDL readjusted\n";
}
chdir "..";
chdir "ORBit-C++";
if (! -d "libIDL") {
  system "ln -s ../libIDL .";
  print "Warning: ORBit-C++/libIDL readjusted\n";
  print SAVEOUT "Warning: ORBit/libIDL readjusted\n";
}
chdir "..";
chdir "baboon";
if (! -d "libgnorba") {
  system "ln -s ../gnome-libs/libgnorba .";
  print "Warning: baboon/libgnorba readjusted\n";
  print SAVEOUT "Warning: baboon/libgnorba readjusted\n";
}
chdir "..";
chdir "libgtop";
if (! -d "support") {
  system "ln -s ../gnome-common/support .";
  print "Warning: libgtop/support readjusted\n";
  print SAVEOUT "Warning libgtop/support readjusted\n";
}
chdir "..";

  
if (!yesno("Temporary dir ready: do You want to proceed? ")) {
  exit 0;
}

#local variables specific to your installation
$prefix= "/opt/GNOME";
$gtk="/opt/GNOME";

$ENV{"ACLOCAL_FLAGS"} = "-I $prefix/share/aclocal";
$ENV{PATH}="$ENV{PATH}:$prefix/bin";

@order=qw(
	  glib
	  gtk+
	  imlib
	  ORBit
	  libgtop
	  libPropList
	  gimp
	  gnome-common
	  gnome-libs
	  gnome-objc
	  gnome-core
	  gnome-admin
	  gnome-network
	  gnome-utils
	  gnome-media
	  gnome-xml
	  gedit
	  fnlib
	  ee
	  achtung
	  mc
	  gnumeric
	  pharmacy
);

@ignore=qw(
	   CVS
	   CVSROOT
	   ORBit-C++
	   Resurrection
	   aorta
	   atlas
	   audiofile
	   baboon
	   build
	   config
	   dgs
	   dia
	   docs
	   gbook
	   gdm
	   genius
	   gimp-plugins-unstable
	   gimp2
	   giflib-3.0
	   gimp-data-min
	   gimp-data-extras
	   gle
	   gnome
	   gnome-common
	   gnome-chess
	   gnome-devel
	   gnome-perl
	   gnome-pilot
	   gnomefe
	   gnomefe-ac
	   gnomoney
	   gnoom
	   grpm
	   gsirc
	   gtk--
	   gtk--draw
	   gtk-engines
	   gtkDPS
	   gtkGL
	   gtk_tutorial
	   gtkfe
	   gtop-temp
	   libPropList
	   libgtop-apps
	   litespeed
	   moiss
	   nethack
	   pilot-link
	   posixfe
	   proxyd
	   rosegarden
	   rpmbuild
	   sane
	   sart
	   trackerg
	   yagirc-old
);

@lsout = qx{ls -1};
@other = ();
$all = ();
$i = 0;
foreach my $s (@order, @ignore) {
  $all{$s} = $i++;
}

#for (my $i=0; $i<@lsout; $i++) {
#  chop $lsout[$i];
#  print $lsout[$i], "\n"; 
#}

foreach my $d (@lsout) {
  chop $d;
#  print $d, " ";
  next unless -d $d;
  if (defined $all{$d}) {
#    print "[present] ";
    next;
  }
  @other = (@other, $d);
#  print "<added>", "\n";
}
#print @other, "\n";

#open (ERRORLOG, "/tmp/update.errors") || die "Could not open error log: $!";

#foreach $name (@order) {
#    print "Updating $name...\n";
#    system "cvs -z3 update -d -P $name";
#    print "$name updated...\n";
#}
#
#print "All updates complete. Compile phase beginning...\n\n";

foreach $this (@order, @other) {
  next if -f "$this/.Installed";
  chdir $this;
  if (!-e "macros") {
    system "ln -s ../gnome-common/macros .";
    print "Warning: macros symlinked\n";
    print SAVEOUT "Warning: macros symlinked\n";
  }
  if (!-e "intl") {
    system "ln -s ../gnome-common/intl .";
    print "Warning: intl symlinked\n";
    print SAVEOUT "Warning: intl symlinked\n";
  }

  print "Configuring $this...\n";
  print SAVEOUT "Configuring $this...\n";
  if (-f "Makefile") {
    system "make -k maintainer-clean";
  }
  system "aclocal -I macros -I $prefix/share/aclocal";
  if (system("./autogen.sh --prefix=$prefix --with-gtk=$gtk") == 0) {
    print "Compiling $this...\n";
    print SAVEOUT "Compiling $this...\n";
    if (system("make && make install && /sbin/ldconfig") == 0) {
      print "Made $this...\n";
      print SAVEOUT "Made $this...\n";
      system "touch .Installed";
    } else {
      print "$this compile FAILED!!\n";
      exit 1 if (yesno("$this compile FAILED!! abort? "));
    }
  } else {
    print "$this configure FAILED!!\n";
    exit 1 if (yesno("$this configure FAILED!! abort? "));
  }
  chdir "..";
}

close(STDOUT);
close(STDERR);

open(STDOUT, ">&SAVEOUT");
open(STDERR, ">&SAVEERR");
The following section of this message contains a file attachment
prepared for transmission using the Internet MIME message format.
If you are using Pegasus Mail, or any another MIME-compliant system,
you should be able to save it or view it from within your mailer.
If you cannot, please ask your system administrator for assistance.

   ---- File information -----------
     File:  GNOME.patches.2
     Date:  11 Oct 1998, 22:35
     Size:  7158 bytes.
     Type:  Unknown

GNOME.patches.2



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]