Add GPL license
authorMarty Connor <mdc@etherboot.org>
Thu, 27 Aug 2009 20:49:34 +0000 (16:49 -0400)
committerMarty Connor <mdc@etherboot.org>
Thu, 27 Aug 2009 20:49:34 +0000 (16:49 -0400)
bottom.php
build.php
customize-flags.php
directions.php
flag-table.php
globals.php
index.php
top.php
utils.php

index 5d639c1..364ea2c 100644 (file)
@@ -1,6 +1,28 @@
 <!--\r
-      Helpful information for users downloading images\r
+\r
+/* Helpful information for users downloading images */\r
+\r
+/**\r
+ * Copyright (C) 2009 Marty Connor <mdc@etherboot.org>.\r
+ * Copyright (C) 2009 Entity Cyber, Inc.\r
+ *\r
+ * This program is free software; you can redistribute it and/or\r
+ * modify it under the terms of the GNU General Public License as\r
+ * published by the Free Software Foundation; either version 2 of the\r
+ * License, or any later version.\r
+ *\r
+ * This program is distributed in the hope that it will be useful, but\r
+ * WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+ * General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with this program; if not, write to the Free Software\r
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\r
+ */\r
+\r
  -->\r
\r
 <hr>\r
 <h4>\r
 Resources:\r
index 430fdf2..1298603 100644 (file)
--- a/build.php
+++ b/build.php
@@ -1,5 +1,25 @@
 <?php // -*- Mode: PHP; -*-
 
+/**
+ * Copyright (C) 2009 Marty Connor <mdc@etherboot.org>.
+ * Copyright (C) 2009 Entity Cyber, Inc.
+ *
+ * This program 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 any later version.
+ *
+ * This program 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+// Get utility functions and set globals
 require_once "utils.php";
 
 // If user chose "Customize" option on form
@@ -32,6 +52,9 @@ if ( $_POST['A'] == "Customize" ) {
 // OK, we're going to try to use whatever options have been set
 // to build an image.
 
+// Parse src/bin/NIC file
+list ( $nics, $roms ) = parse_nic_file ();
+
 // Make sure at least $nic was supplied
 if ( ! isset ( $_POST['nic'] ) ) {
     die ( "No NIC supplied!" );
@@ -42,24 +65,25 @@ if ( isset ( $nics[$_POST['nic']] ) ) {
     die ( "Invalid NIC \"${_POST['nic']}\" supplied!" );
 }
 
-// Make temporary copy of src directory
-$dir = mktempcopy ( "$src_dir", "/tmp" );
-$config_dir = $dir . "/config";
-
 // Fetch flags
 $flags = get_flags ();
 
-// Write config files with supplied flags
-write_gpxe_config_files ( $config_dir, $flags );
-
 // Get requested format
 $ofmt = isset ( $_POST['ofmt'] ) ? $_POST['ofmt'] : "";
 $fmt_extension = isset ( $ofmts[$ofmt] ) ? $ofmts[$ofmt] : 'dsk';
 
 // Handle some special cases
 
+$pci_vendor_code = "";
+$pci_device_code = "";
+
 if ( $nic == 'undionly' && $fmt_extension == "pxe" ) {
 
+    // undionly.pxe can't work because it unloads the PXE stack
+    // that it needs to communicate with, so we set the extension
+    // to .kpxe, which has a chance of working. The extension 
+    // .kkpxe is another option.
+    
     $fmt_extension = "kpxe";
 
 } else if ( $fmt_extension == "rom" ) {
@@ -97,8 +121,20 @@ if ( $nic == 'undionly' && $fmt_extension == "pxe" ) {
               . "${_POST['pci_vendor_code']}:"
               . "${_POST['pci_device_code']}" );
     }
+} else if ( $fmt_extension != "rom" 
+            && ( $pci_vendor_code == "" || $pci_device_code == "" ) ) {
+    die (   "'$fmt_extension' format was selected but PCI IDs were"
+          . " also entered.<br>Did you mean to select 'rom' output format"
+          . " instead?" );
 }
 
+// Make temporary copy of src directory
+$dir = mktempcopy ( "$src_dir", "/tmp" );
+$config_dir = $dir . "/config";
+
+// Write config files with supplied flags
+write_gpxe_config_files ( $config_dir, $flags );
+
 // Handle a possible embedded script
 $emb_script_cmd = "";
 $embedded_script = isset ( $_POST['embedded_script'] ) ? $_POST['embedded_script'] : "";
@@ -115,7 +151,6 @@ $make_cmd = "make -C '$dir' '$make_target' $emb_script_cmd $2>&1";
 exec ( $make_cmd, $maketxt, $status );
 
 // Uncomment the following section for debugging
-
 /**
 echo "<h2>build.php:</h2>";
 echo "<h3>Build options:</h3>";
@@ -129,10 +164,10 @@ echo "<h3>Flags:</h3>";
 show_flags ( $flags );
 
 if ( $embedded_script != "" ) {
-  echo "<h3>Embedded script:</h3>";
-  echo "<blockquote>"."<pre>";
-  echo $embedded_script;
-  echo "</pre>"."</blockquote>";
+    echo "<h3>Embedded script:</h3>";
+    echo "<blockquote>"."<pre>";
+    echo $embedded_script;
+    echo "</pre>"."</blockquote>";
 }
 
 echo "<h3>Make output:</h3>";
@@ -141,11 +176,12 @@ echo "Build status = <? echo $status ?>" . "<br>";
 echo "<blockquote>"."<pre>";
 echo htmlentities ( implode ("\n", $maketxt ) );
 echo "</pre>"."</blockquote>";
+// Uncomment the next line if you do not want to keep the
+// build directory around for inspection after building.
 // deltempdir ( $dir );
 die ( "<h3>End debugging output</h3>" );
-**/
 
-//   End debugging section
+**/ //   End debugging section
 
 // Send ROM to browser (with extreme prejudice)
 
@@ -162,7 +198,8 @@ if ( $status == 0 ) {
             deltempdir ( $dir );
 
             $output_filename = "gpxe-${version}-${nic}.${fmt_extension}";
-            //echo "${output_filename}<br>"; exit ();
+
+            // echo "${output_filename}<br>"; exit ();
 
             // Try to force IE to handle downloading right.
             Header ( "Cache-control: private");
@@ -198,10 +235,10 @@ echo "<h3>Flags:</h3>";
 show_flags ( $flags );
 
 if ( $embedded_script != "" ) {
-  echo "<h3>Embedded script:</h3>";
-  echo "<blockquote>"."<pre>";
-  echo $embedded_script;
-  echo "</pre>"."</blockquote>";
+    echo "<h3>Embedded script:</h3>";
+    echo "<blockquote>"."<pre>";
+    echo $embedded_script;
+    echo "</pre>"."</blockquote>";
 }
 
 echo "<h3>Make output:</h3>";
@@ -210,7 +247,7 @@ echo "<blockquote>"."<pre>";
 echo htmlentities ( implode ("\n", $maketxt ) );
 echo "</pre>"."</blockquote>";
 
-echo "Please let us know that this happened.<br>";
+echo "Please let us know that this happened, and paste the above output into your email message.<br>";
 
 include_once $bottom_inc;
 
index 5c139e3..edfc0b4 100644 (file)
@@ -1,7 +1,31 @@
 <?php // -*- Mode: PHP; -*-
 
+/**
+ * Copyright (C) 2009 Marty Connor <mdc@etherboot.org>.
+ * Copyright (C) 2009 Entity Cyber, Inc.
+ *
+ * This program 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 any later version.
+ *
+ * This program 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+// Get utility functions and set globals
 require_once "utils.php";
 
+// Parse src/bin/NIC file
+list ( $nics, $roms ) = parse_nic_file ();
+
+// Prepare settable compile options for presentation to user
 $flags = get_flags();
 
 $build = "<input type=\"submit\" name=\"A\" value=\"Get Image\">";
@@ -26,8 +50,10 @@ include_once $top_inc;
   </ul>
   <hr>
   <? echo_flags( $flags ); ?>
+  <hr>
   <h3>Embedded Script:</h3>
   <? echo textarea ( "embedded_script", "", "10", "50" ); ?>
+  <br><br>
   <hr>
   <center><table width="35%"><tr>
   <td align="left"> <? echo $build; ?> </td>
index 4a2e71d..d1a93b9 100644 (file)
@@ -1,3 +1,25 @@
+<!--
+
+/**
+ * Copyright (C) 2009 Marty Connor <mdc@etherboot.org>.
+ * Copyright (C) 2009 Entity Cyber, Inc.
+ *
+ * This program 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 any later version.
+ *
+ * This program 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+-->
     <li>
       Choose an output format: <? echo keys_menubox ( "ofmt", $ofmts,
       isset ( $_POST['ofmt'] ) ? $_POST['ofmt'] : "") ?>
index a09853c..bb1c4c3 100644 (file)
@@ -1,5 +1,24 @@
 <?php // -*- Mode: PHP; -*-
 
+/**
+ * Copyright (C) 2009 Marty Connor <mdc@etherboot.org>.
+ * Copyright (C) 2009 Entity Cyber, Inc.
+ *
+ * This program 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 any later version.
+ *
+ * This program 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
 $ofmts = array  
     ( "Floppy bootable image (.dsk)" => "dsk",
       "SYSLINUX-based bootable floppy image (.sdsk)" => "sdsk",
index 7105fa2..1cc9a24 100644 (file)
@@ -1,10 +1,32 @@
 <?php // -*- Mode: PHP; -*-
 
+/**
+ * Copyright (C) 2009 Marty Connor <mdc@etherboot.org>.
+ * Copyright (C) 2009 Entity Cyber, Inc.
+ *
+ * This program 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 any later version.
+ *
+ * This program 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
 // Directory containing gPXE source code tree
 $src_dir = "../../src";
 
 // Compute gPXE version based on source tree
-$version = trim ( shell_exec ( "cd $src_dir; make version; cd .." ) );
+exec ( "make -C '$src_dir' version 2>&1", $make_output, $status );
+$version = ( $status == 0 && count ( $make_output  ) > 1 )
+           ? trim ( $make_output[count ( $make_output ) - 2] )
+           : "";
 
 // Email address of person responsible for this website
 $webmaster_email = "webmaster@example.com";
index dd7bc01..b05399a 100644 (file)
--- a/index.php
+++ b/index.php
@@ -1,7 +1,30 @@
 <?php // -*- Mode: PHP; -*-
 
+/**
+ * Copyright (C) 2009 Marty Connor <mdc@etherboot.org>.
+ * Copyright (C) 2009 Entity Cyber, Inc.
+ *
+ * This program 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 any later version.
+ *
+ * This program 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+// Get utility functions and set globals
 require_once "utils.php";
 
+// Parse src/bin/NIC file
+list ( $nics, $roms ) = parse_nic_file ();
+
 // Begin html output
 include_once $top_inc;
 
diff --git a/top.php b/top.php
index e3ab88e..2b4c8ef 100644 (file)
--- a/top.php
+++ b/top.php
@@ -1,4 +1,28 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+<!--
+
+/**
+ * Copyright (C) 2009 Marty Connor <mdc@etherboot.org>.
+ * Copyright (C) 2009 Entity Cyber, Inc.
+ *
+ * This program 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 any later version.
+ *
+ * This program 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+-->
+
 <html>
 <head>
   <link rev="made" href="mailto:<? echo "${webmaster_email}" ?>">
index 4855c41..ab80f3f 100644 (file)
--- a/utils.php
+++ b/utils.php
@@ -1,5 +1,24 @@
 <? // -*- Mode: PHP; -*-
 
+/**
+ * Copyright (C) 2009 Marty Connor <mdc@etherboot.org>.
+ * Copyright (C) 2009 Entity Cyber, Inc.
+ *
+ * This program 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 any later version.
+ *
+ * This program 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
 // Include table of user-configurable gPXE options
 require_once "flag-table.php";
 
@@ -8,12 +27,9 @@ require_once "globals.php";
 
 // Allow user to shadow globals
 if ( is_file ( 'local-config.php' ) ) { 
-    include "local-config.php";
+    include_once "local-config.php";
 }
 
-// Parse src/bin/NIC file
-list ( $nics, $roms ) = parse_nic_file ();
-
 ////
 // General utility functions
 ////
@@ -125,7 +141,9 @@ function parse_nic_file ()
     // add special cases to the top
 
        $new_nics = array ( "all-drivers" => "gpxe",
-                                               "undi" => "undionly" );
+                                               "undionly" => "undionly",
+                                               "undi" => "undi",
+    );
 
        foreach ( $nics as $key => $value ) {
                // skip the undi driver
@@ -356,6 +374,7 @@ function mktempcopy ( $src, $dst )
     unlink ( $dir );
 
     exec ( "/bin/cp -a '$src' '$dir' 2>&1", $cpytxt, $status );  
+
     if ( $status != 0 ) {
         die ( "src directory copy failed!" );
     }
@@ -407,23 +426,27 @@ function write_embedded_file ( $fname, $ftext )
 function deltempdir ( $dir )
 {
     $dp = opendir ( $dir );
-    if ($dp < 1) {
+    if ( ! $dp ) {
         die ( "opendir failed" );
     }
 
     while ( $file = readdir ( $dp ) ) {
 
-        if ( is_dir ( "$dir/$file" ) ) {
-            if ($file[0] != "." ) {
-                deltempdir ( "$dir/$file" );
+               $dir_or_file = "$dir/$file";
+
+        if ( is_dir ( $dir_or_file ) ) {
+            if ( $file[0] != "." ) {
+                deltempdir ( $dir_or_file );
             }
         } else {
-            unlink ( "$dir/$file" );
+                       if ( file_exists ( $dir_or_file ) ) {
+                               unlink ( $dir_or_file );
+                       }
         }
     }
     closedir ( $dp );
 
-    if ( !rmdir ( "$dir" ) ) {
+    if ( ! rmdir ( "$dir" ) ) {
         die ( "rmdir failed" );
     }
 }