diff --git a/package/base/mine/x-feature-eject.patch b/package/base/mine/x-feature-eject.patch new file mode 100644 index 000000000..09f162108 --- /dev/null +++ b/package/base/mine/x-feature-eject.patch @@ -0,0 +1,72 @@ + +Is is highly useful to have a software possibility to eject CD's for +soft-eject CD-ROMs, like always in use in Apple hardware ... + + - Rene Rebe + +--- mine-0.15/gasgui.c 2003-09-27 15:20:58.000000000 +0200 ++++ mine-0.15-cdeject/gasgui.c 2003-12-26 17:38:38.880000000 +0100 +@@ -1,6 +1,6 @@ + /* + * GEM MINE - The ROCK Linux Package Manager +- * Copyright (C) 2002-2003 Clifford Wolf ++ * Copyright (C) 2002-2003 Clifford Wolf and Rene Rebe + * + * 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 +@@ -23,6 +23,11 @@ + #include + #include + ++/* disk eject ... */ ++#include ++#include ++#include ++ + #ifndef ROCKCFG_ID + # define ROCKCFG_ID "1.7-x86-reference" + #endif +@@ -66,6 +71,23 @@ + ); + } + ++void eject_disk () ++{ ++ int status; ++ int fd = open(sourcedev, O_RDONLY|O_NONBLOCK); ++ ++ if (fd == -1) { ++ printf ("Unable to open %s\n", sourcedev); ++ return; ++ } ++ ++ status = ioctl(fd, CDROMEJECT); ++ if (status != 0) { ++ printf ("Eject failed\n"); ++ } ++ close (fd); ++} ++ + void remove_package(struct package *p, int just_print_commands) + { + char command[1024]; +@@ -138,14 +160,17 @@ + printf("Can't find: %s/%s/pkgs/%s.gem\n", + sourcedir, config, p->name); + printf("Not found on current disk: %s\n\n", p->name); +- printf("Please insert Disk #%d and press ENTER.\n\n", p->disk_number); ++ printf("Please insert Disk #%d and press ENTER.\n\n", ++ p->disk_number); + while (1) { +- printf("Skip or Retry (default=Retry) > "); ++ printf("Skip, Retry or Eject disk (default=Retry) > "); + fflush(stdout); + fgets(command, 1024, stdin); + if ( command[0] == 0 || command[0] == '\n' || + command[0] == 'r' || command[0] == 'R' ) break; + if ( command[0] == 's' || command[0] == 'S' ) return NULL; ++ if ( command[0] == 'e' || command[0] == 'E' ) ++ eject_disk (); + } + + snprintf(gemfile, 1024, "%s/%s/pkgs/%s-%s.gem",