From 48b49b4be39d25ca1a432936b074e16bb7c4b402 Mon Sep 17 00:00:00 2001 From: lace <> Date: Sun, 9 May 2004 13:23:28 +0000 Subject: [PATCH] skeleton --- .vimrc | 2 + AUTHORS | 2 + COPYING | 340 +++++++++++++++++++++++++++++++++ INSTALL | 229 ++++++++++++++++++++++ Makefile-head.am | 99 ++++++++++ Makefile.am | 54 ++++++ NEWS | 7 + README | 251 ++++++++++++++++++++++++ autogen.pl | 51 +++++ configure.ac | 175 +++++++++++++++++ cvs2cl-usermap | 2 + po/cs.po | 26 +++ src/Makefile.am | 82 ++++++++ src/main.c | 0 src/main.h | 0 src/udpforward.pod.pl.in | 71 +++++++ src/ui-gnome.c | 39 ++++ src/ui-gnome.glade | 483 +++++++++++++++++++++++++++++++++++++++++++++++ src/ui-gnome.gladep | 18 ++ src/ui-gnome.h | 34 ++++ udpforward.spec.in | 70 +++++++ 21 files changed, 2035 insertions(+) create mode 100644 .vimrc create mode 100644 AUTHORS create mode 100644 COPYING create mode 100644 INSTALL create mode 100644 Makefile-head.am create mode 100644 Makefile.am create mode 100644 NEWS create mode 100644 README create mode 100755 autogen.pl create mode 100644 configure.ac create mode 100644 cvs2cl-usermap create mode 100644 po/cs.po create mode 100644 src/Makefile.am create mode 100644 src/main.c create mode 100644 src/main.h create mode 100644 src/udpforward.pod.pl.in create mode 100644 src/ui-gnome.c create mode 100644 src/ui-gnome.glade create mode 100644 src/ui-gnome.gladep create mode 100644 src/ui-gnome.h create mode 100644 udpforward.spec.in diff --git a/.vimrc b/.vimrc new file mode 100644 index 0000000..a847f58 --- /dev/null +++ b/.vimrc @@ -0,0 +1,2 @@ +set ts=2 +set sw=2 diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..11ab2fa --- /dev/null +++ b/AUTHORS @@ -0,0 +1,2 @@ +Jan Kratochvil + http://www.jankratochvil.net/ diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..5b6e7c6 --- /dev/null +++ b/COPYING @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + 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 + (at your option) 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..a4b3414 --- /dev/null +++ b/INSTALL @@ -0,0 +1,229 @@ +Copyright 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software +Foundation, Inc. + + This file is free documentation; the Free Software Foundation gives +unlimited permission to copy, distribute and modify it. + +Basic Installation +================== + + These are generic installation instructions. + + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, and a +file `config.log' containing compiler output (useful mainly for +debugging `configure'). + + It can also use an optional file (typically called `config.cache' +and enabled with `--cache-file=config.cache' or simply `-C') that saves +the results of its tests to speed up reconfiguring. (Caching is +disabled by default to prevent problems with accidental use of stale +cache files.) + + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If you are using the cache, and at +some point `config.cache' contains results you don't want to keep, you +may remove or edit it. + + The file `configure.ac' (or `configure.in') is used to create +`configure' by a program called `autoconf'. You only need +`configure.ac' if you want to change it or regenerate `configure' using +a newer version of `autoconf'. + +The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. If you're + using `csh' on an old version of System V, you might need to type + `sh ./configure' instead to prevent `csh' from trying to execute + `configure' itself. + + Running `configure' takes awhile. While running, it prints some + messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Optionally, type `make check' to run any self-tests that come with + the package. + + 4. Type `make install' to install the programs and any data files and + documentation. + + 5. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. Run `./configure --help' +for details on some of the pertinent environment variables. + + You can give `configure' initial values for configuration parameters +by setting variables in the command line or in the environment. Here +is an example: + + ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix + + *Note Defining Variables::, for more details. + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you must use a version of `make' that +supports the `VPATH' variable, such as GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. + + If you have to use a `make' that does not support the `VPATH' +variable, you have to compile the package for one architecture at a +time in the source code directory. After you have installed the +package for one architecture, use `make distclean' before reconfiguring +for another architecture. + +Installation Names +================== + + By default, `make install' will install the package's files in +`/usr/local/bin', `/usr/local/man', etc. You can specify an +installation prefix other than `/usr/local' by giving `configure' the +option `--prefix=PATH'. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +give `configure' the option `--exec-prefix=PATH', the package will use +PATH as the prefix for installing programs and libraries. +Documentation and other data files will still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +options like `--bindir=PATH' to specify different values for particular +kinds of files. Run `configure --help' for a list of the directories +you can set and what kinds of files go in them. + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + +Optional Features +================= + + Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + +Specifying the System Type +========================== + + There may be some features `configure' cannot figure out +automatically, but needs to determine by the type of machine the package +will run on. Usually, assuming the package is built to be run on the +_same_ architectures, `configure' can figure that out, but if it prints +a message saying it cannot guess the machine type, give it the +`--build=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name which has the form: + + CPU-COMPANY-SYSTEM + +where SYSTEM can have one of these forms: + + OS KERNEL-OS + + See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the machine type. + + If you are _building_ compiler tools for cross-compiling, you should +use the `--target=TYPE' option to select the type of system they will +produce code for. + + If you want to _use_ a cross compiler, that generates code for a +platform different from the build platform, you should specify the +"host" platform (i.e., that on which the generated programs will +eventually be run) with `--host=TYPE'. + +Sharing Defaults +================ + + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. +`configure' looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: not all `configure' scripts look for a site script. + +Defining Variables +================== + + Variables not defined in a site shell script can be set in the +environment passed to `configure'. However, some packages may run +configure again during the build, and the customized values of these +variables may be lost. In order to avoid this problem, you should set +them in the `configure' command line, using `VAR=value'. For example: + + ./configure CC=/usr/local2/bin/gcc + +will cause the specified gcc to be used as the C compiler (unless it is +overridden in the site shell script). + +`configure' Invocation +====================== + + `configure' recognizes the following options to control how it +operates. + +`--help' +`-h' + Print a summary of the options to `configure', and exit. + +`--version' +`-V' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`--cache-file=FILE' + Enable the cache: use and save the results of the tests in FILE, + traditionally `config.cache'. FILE defaults to `/dev/null' to + disable caching. + +`--config-cache' +`-C' + Alias for `--cache-file=config.cache'. + +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to `/dev/null' (any error + messages will still be shown). + +`--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + +`configure' also accepts some other, not widely useful, options. Run +`configure --help' for more details. + diff --git a/Makefile-head.am b/Makefile-head.am new file mode 100644 index 0000000..93725b1 --- /dev/null +++ b/Makefile-head.am @@ -0,0 +1,99 @@ +# $Id$ +# automake source include to the begin of all Makefile.am's +# Copyright (C) 2004 Jan Kratochvil +# +# 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; exactly version 2 of June 1991 is required +# +# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +# defined WANT_GTK_DOC if you plan to include macros/Makefile-gtk-doc.am + + +# Set all needed variables to their empty values to prevent "variable `...' not defined" +# Any further settings should be done exclusively by += operator +EXTRA_DIST= +BUILT_SOURCES= +CLEANFILES= +MAINTAINERCLEANFILES= +# default DEFAULT_INCLUDES=' -I. -I$(srcdir)'.(dirnames of 'CONFIG_HEADER') , +# we neeed such $(DEFAULT_INCLUDES) but we need to prefer our $(INCLUDES) +# thus we postpone them later by moving them to $(AM_CPPFLAGS). +# It prevent us the inclusion of own wrappers +# when we want direct include during (test) compilations +# in $(top_srcdir)/src/libcaptive/include/reactos/ +# as -I. is always as one of the first '-I's in $(INCLUDES). +# It will be utilized in $(top_srcdir)/src/libcaptive/Makefile-libcaptive.am . +# It would be also possible to use some #include_next's but it is pretty +# hassle to guess the right ordering in such case. +# FIXME: $(addprefix ) and $(dir /) are GNU make dependent! +AM_CPPFLAGS=-I. -I$(srcdir) $(addprefix -I,$(dir $(CONFIG_HEADER))) +# 'DEFAULT_INCLUDES=' will drop its contents. +# 'DEFAULT_INCLUDES:=' will cause: automake-X.Y/am/compile.am: DEFAULT_INCLUDES was set with `:=' and is now set with `=' +# %DEFAULT_INCLUDES% is permitted only in automake system files. +# No possibility to keep its state therefore we generate +# (I hope) the same contents in 'AM_CPPFLAGS=...' line above +DEFAULT_INCLUDES= +INCLUDES= +bin_PROGRAMS= + +# Custom variables +localedir=$(datadir)/locale + +# Standard settings +INCLUDES+=-DLOCALEDIR=\"$(localedir)\" +INCLUDES+=-I$(top_srcdir)/intl + +# Force delete of target file if command fails. +# Generally better behaviour but it requires GNU make. Harmless otherwise. +.DELETE_ON_ERROR: + + +# This target is used during ./autogen.pl POTFILES.in generation +distfiles: $(DISTFILES) + @if test -n "$(DISTFILES_PRINT)";then \ + echo -n ":DISTFILES:"; \ + for distfile in . $(DISTFILES);do \ + if test -n 1 \ + -a "$$distfile" '!=' . \ + -a "$$distfile" '!=' Makefile.am \ + -a "$$distfile" '!=' Makefile.in \ + ;then \ + if echo " $(BUILT_SOURCES) "|grep -q " $$distfile ";then :;else \ + echo -n " $(subdir)/$$distfile"; \ + fi; \ + fi; \ + done; \ + echo; \ + fi; + @for subdir in . $(SUBDIRS);do \ + if test "$$subdir" = . -o "$$subdir" = intl -o "$$subdir" = po -o "$$subdir" = m4;then :;else \ + (cd "$$subdir" && $(MAKE) $(AM_MAKEFLAGS) distfiles) || exit 1; \ + fi; \ + done + +dist-hook: + for i in _built_sources_pad $(BUILT_SOURCES);do \ + $(RM) $(distdir)/$$i; \ + done + + +if HAVE_PERL +%.pod: %.pod.pl + $(PERL) $< >$@ + +endif +if HAVE_POD2MAN +%.1: %.pod + $(POD2MAN) --section=1 $< >$@ + +endif diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..a3c398a --- /dev/null +++ b/Makefile.am @@ -0,0 +1,54 @@ +# $Id$ +# automake source for the toplevel Makefile +# Copyright (C) 2004 Jan Kratochvil +# +# 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; exactly version 2 of June 1991 is required +# +# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +include $(top_srcdir)/Makefile-head.am + +AUTOMAKE_OPTIONS=gnu +ACLOCAL_AMFLAGS=-I macros +SUBDIRS=macros src po +## to automatically rebuild aclocal.m4 if any of the macros in +## `macros/' change +@MAINT@include macros/macros.dep +@MAINT@macros/macros.dep: macros/Makefile.am +@MAINT@ cd macros && $(MAKE) macros.dep + +EXTRA_DIST+= \ + INSTALL \ + mkinstalldirs \ + udpforward.spec.in \ + Makefile-head.am \ + autogen.pl \ + .vimrc \ + ChangeLog \ + cvs2cl-usermap + +MAINTAINERCLEANFILES+= \ + ChangeLog + +CLEANFILES+= \ + ChangeLog.bak + +if MAINTAINER_MODE +ChangeLog: + cvs2cl --usermap cvs2cl-usermap --window 3600 --separate-header --no-wrap --file $@ + +else +ChangeLog: + touch $@ + +endif diff --git a/NEWS b/NEWS new file mode 100644 index 0000000..5220e17 --- /dev/null +++ b/NEWS @@ -0,0 +1,7 @@ +$Id$ + + +NEWS for udpforward-1.0 +----------------------- + +* Project build framework done diff --git a/README b/README new file mode 100644 index 0000000..fcdcaea --- /dev/null +++ b/README @@ -0,0 +1,251 @@ +$Id$ + + +Operation Captive +----------------- + +Existing binary Microsoft Windows file system drivers were exploited +for accessing drives with possibly proprietary file system data structures. +Open file system API is provided to access these file system drivers. +Microsoft Windows system components required by these drivers +were analyzed and successfuly emulated in the GNU/Linux operating system. + +The implementation allows applications running under the GNU/Linux operating +system to access NTFS drives. File system driver compatibility with VFAT, +ISO9660 and EXT2 is also provided. + + +Project Home +------------ + +http://www.jankratochvil.net/ + + +Overview +-------- + +Any errors from 'captive-lufs' are written to '/var/log/messages'. + +Needed drivers (at least ntoskrnl.exe+ntfs.sys) must be in '/var/lib/captive'. + +'captive' package creates 'captive' user and 'captive' group on your system. + + +Drivers Availability +-------------------- + +All the source packages involved in this project are GNU General Public License +2.0 (GPL-2.0) compatible (see the file "AUTHORS" for details). The purpose of +this project is to run the original Microsoft Windows drivers to get the best +filesystem compatibility and safety ever reachable. This is the method known +most by the Wine http://www.winehq.com/ project. Required driver files: + + ntoskrnl.exe - Windows NT kernel; required for ANY use of this project. + ntfs.sys - NTFS filesystem driver; required to access NTFS disk drives. + +Run captive-install-acquire(1) installer for proper guided steps. + + +Packaged Installations +---------------------- + +Required W32 drivers were automatically found if Microsoft Windows XP is +installed on any NTFS or FAT partitions. FAT partitions must be already +mounted. You may want to run captive-install-acquire(1) to check the drivers +state and possibly update them. Installer uses X Windows or console +automatically. + +Any NTFS disk partitions were automatically added to /etc/fstab. +These partitions are now available for mount by + mount /mnt/captive-DISK_LABEL + +NTFS disk drives can be also mounted by + mkdir /mnt/drive-c + mount -t captive-ntfs /dev/hda1 /mnt/drive-c + + +If you do not use the captive-install-acquire(1) installer you may also +copy the drivers yourself - at least "ntoskrnl.exe" and "ntfs.sys". +They should be stored in '/var/lib/captive' directory (lowercased filenames). +These driver must be from Microsoft Windows XP while +Service Pack 1 Check Build U.S. is their preferred version: + http://www.microsoft.com/WindowsXP/pro/downloads/servicepacks/sp1/checkedbuild.asp + + +Command-line client access only: + +NTFS disk drives can be also accessed without Linux kernel support by: + captive-cmdline \ + --load-module=/var/lib/captive/ntoskrnl.exe \ + --filesystem=/var/lib/captive/ntfs.sys \ + --sandbox-server=/usr/sbin/captive-sandbox-server \ + --bug-pathname=/tmp/captive-bug-%FT%T.captivebug.xml.gz \ + --disk --rw /dev/hda1 + (Backslash end-of-line characters '\' to be omitted for line continuation.) + +In the case of 'sandbox' invocation error it can be also run directly but +read/write (--rw) mode is definitely discouraged in such case: + captive-cmdline \ + --load-module=/var/lib/captive/ntoskrnl.exe \ + --filesystem=/var/lib/captive/ntfs.sys \ + --disk --rw /dev/hda1 + (Backslash end-of-line characters '\' to be omitted for line continuation.) + + +Gnome-VFS aware applications can access NTFS disk drives by: + gnomevfs-info file:///dev/hda1#captive-ntfs:/config.sys + gnomevfs-copy file:///dev/hda1#captive-ntfs:/config.sys /tmp/ +You can replace 'captive-ntfs' by other supported methods, see: + /etc/gnome-vfs-2.0/modules/captive.conf + +(Gnome-VFS client is not contained in 'captive-static' package.) + + + +Source Installations +-------------------- + +Case #1 - All packages installed: + ./configure --enable-lufs --enable-install-pkg +Case #2 - Packages without installer: + ./configure --enable-lufs +Case #3 - Command-line client (or Gnome-VFS) access only: + ./configure +'configure' will compile 'Case #1' or 'Case #2' automatically if possible +when run with no arguments. For generic instructions see the file 'INSTALL' +otherwise run: + ./configure --help + +Compile by: + make + +Now you have './src/client/cmdline/captive-cmdline' available for testing. + +Manual addition of user and group 'captive' is required for '--sandbox-server'. +User 'captive' should have its group 'captive'. Login should be forbidden. +Commands may vary on your system, please consult groupadd(8) and useradd(8): + groupadd captive + useradd -g captive -r -s /sbin/nologin captive + +Later you may invoke standard: + make install + +Both these steps will be suggested during 'make install' if appropriate: +You may need to add '/usr/local/lib' line (without quotes) to your +'/etc/ld.so.conf' file. You may also need to run as 'root' user: + ldconfig + + +Bug Reporting +------------- + +Captive produces its bugreports automatically in '/var/lib/captive' directory +named by 'bug-yyyy-mm-ddThh:mm:ss.captivebug.xml.gz' template. Microsoft +Windows subsystem emulation failures should be reproducible from this snapshot +file. You should attempt to minimize the number of operations from the mount +operation till the expected crash to minimize the snapshot file size. + + !!! Be aware '.captivebug.xml.gz' will contain data from your disk drive !!! + + +CVS Bleeding Edge +----------------- + +cvs -d :pserver:pserver@cvs.jankratochvil.net:/cvs login + Just hit ENTER (empty password) +cvs -d :pserver:pserver@cvs.jankratochvil.net:/cvs -z3 checkout captive +cd captive +cvs -d :pserver:pserver@cvs.jankratochvil.net:/cvs -z3 checkout -r captive -kk reactos +./autogen.pl +make +./src/client/cmdline/captive-cmdline --load-module=/var/lib/captive/ntoskrnl.exe --filesystem=/var/lib/captive/ntfs.sys --disk --blind /dev/hda1 + + +Files Overview +-------------- + +User: +src/client/lufs - Linux Userland File System module to access NTFS filesystem. +src/client/sandbox-server - Security+safety wrapper of emulated W32 environment. + Disable during debugging sessions. +src/client/cmdline - Simple ftp(1)-like client. + Fallback if LUFS client not usable; also useful during debugging. +src/install - 'captive-install' package contents +src/install/fstab - Search and add/remove 'captive-ntfs' /etc/fstab entries. +src/install/acquire - Search/download needed MS Windows XP driver files. +src/install/acquire/w32-mod-id.captivemodid.xml - List of supported W32 drivers. + +Developer: +src/client/gnomevfs - gnomevfs-copy(1) file:///dev/hda1#captive-ntfs:/config.sys +src/client/bug-replay - Debugging engine for files by --bug-pathname. +src/libcaptive/ke/exports.captivesym - List of implemented W32 API functions. +src/libcaptive/cc - Windows NT Cache Manager. +src/TraceFS - TraceFS W32 Cache Manager debug tracer utilities. +src/TraceFS/TraceFS-W32 - TraceFS native W32 Cache Manager debug tracer. +src/libcaptive/sandbox - CORBA/ORBit security+safety sandbox-server separation. +src/libcaptive/client - Code for interfacing libcaptive to its clients. +src/libcaptive/halcaptive - W32 hal.dll of captive. +src/libcaptive/include/captive - Include files for future 3rd party clients. +src/libcaptive/include/reactos - ReactOS include wrappers for UNIX gcc(1). +src/libcaptive/reactos - Build skeleton for gcc(1) compilation of ReactOS. +src/libcaptive/reactos/ntoskrnl - Compatible parts of ReactOS ntoskrnl.exe. +src/libcaptive/reactos/hal - Compatible parts of ReactOS hal.dll. +src/libcaptive/rtl/unicode.c - Interface UNIX UCS4/UTF8 vs. W32 UCS2 unicode. +src/libcaptive/storage - HDD/CD-ROM virtual block device UNIX<->W32 drivers. +src/libcaptive/se - Void security manager granting everything to everyone. +src/install/acquire/cabextract - Modified cabextract(1) for 'acquire'. +src/w32-mod - Supplied W32 driver module files. +macros - Generic AutoGen framework used by './autogen.pl' CVS bootstrapper. +captive.spec.in - Red Hat Linux packaging. +debian - Debian GNU/Linux packaging. + + +Linux-NTFS Project +------------------ + +http://linux-ntfs.sourceforge.net/ is the most serious competitive NTFS driver +implementation. It is fully GPL-2.0 licensed and it needs no proprietary +drivers requirements. It should be now fully reliable for read/only operations. +Read/write operations are supported only for rewriting existing data blocks of +existing files - no file/directory create/delete operations possible. + +'captive-install' package of this project uses 'Linux-NTFS' driver to obtain +the original drivers from Microsoft Windows XP already installed on existing +NTFS disk partition by 'ntfsprogs' NTFS read/only access. 'ntfsprogs' are no +longer used afterwards. + +Although Linux-NTFS Project contains a lot of valuable reverse-engineering work +it is completely separated effort from Captive project, no knowledge can be +shared. Linux-NTFS revere-engineers on-disk data structures while Captive +reverse-engineers internal Windows NT kernel API. + + +Drivers Availability Details +---------------------------- + +Microsoft Windows driver files are copyrighted by Microsoft corporation and +therefore they were not supplied along with this project. It is expected you +already have valid Microsoft Windows license if you need NTFS disk drive access +at all. Currently this project supports only driver files of Microsoft Windows +XP; other versions (such as NT-4.0, 2000 or 2003 Server) are currently not yet +supported. You still may safely access your NTFS disk drive of a different +MS-Windows version although depending on your country you may not have legal +rights to download the needed Microsoft Windows XP drivers if not owning +exactly the XP version license. + +These drivers have only debugging meaning as such disks are well supported: + ext2fsd.sys - GNU/Linux EXT2 filesystem driver; supplied in: src/w32-mod/ + fastfat.sys - FAT filesystem driver; required for (V)FAT-12/16/32 drives. + cdfs.sys - CDFS/ISO-9660 filesystem driver; required for CD-ROM media. + + +Installation +------------ + +See the file 'INSTALL'. + + +Copyright +--------- + +See the file 'COPYING' and 'AUTHORS'. diff --git a/autogen.pl b/autogen.pl new file mode 100755 index 0000000..20d5575 --- /dev/null +++ b/autogen.pl @@ -0,0 +1,51 @@ +#! /usr/bin/perl +# +# $Id$ +# Run to generate the initial Makefiles etc. after CVS checkout. +# Copyright (C) 2004 Jan Kratochvil +# +# 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; exactly version 2 of June 1991 is required +# +# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway +use vars qw($VERSION); +$VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; +use strict; +use warnings; + +use lib "./macros/"; +use AutoGen; + +use Carp qw(cluck confess); + + +AutoGen->run( + "name"=>"udpforward", + "COPYRIGHT_HOLDER"=>'Jan Kratochvil ', + "ARGV"=>\@ARGV, + "clean"=>[qw( + .include_test_false.c + .include_test_all.stamp + *.pod.pl *.pod *.[0-9] + ./ChangeLog.bak + ./debian/changelog + ./doc/*-pod.* + ./src/udpforward + ./src/ui-gnome-callbacks.[ch] + ./src/ui-gnome-interface.[ch] + ./src/ui-gnome-support.[ch] + ./src/ui-gnome.glade.bak + ./src/ui-gnome.gladep.bak + )], + ); diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..af13c21 --- /dev/null +++ b/configure.ac @@ -0,0 +1,175 @@ +# $Id$ +# Source file to generate "./configure" to prepare package for compilation +# Copyright (C) 2004 Jan Kratochvil +# +# 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; exactly version 2 of June 1991 is required +# +# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +AC_INIT(src/main.c) +dnl 2.53 for AM_GLIB_GNU_GETTEXT: +AC_PREREQ(2.53) +dnl Not yet present in: Red Hat autoconf-2.57-3 +dnl AC_CONFIG_MACRO_DIR(macros) +AM_INIT_AUTOMAKE(udpforward,1.0cvs) +AM_CONFIG_HEADER(config.h) +AM_MAINTAINER_MODE +dnl Prevent "AC_TRY_COMPILE was called before AC_ISC_POSIX": +AC_ISC_POSIX +AM_DISABLE_STATIC +AM_ENABLE_SHARED +AM_PROG_LIBTOOL + +dnl Workaround for autoconf-2.57: +m4_pattern_allow([AC_MSG_WARN]) +m4_pattern_allow([AC_CHECK_LIB]) +m4_pattern_allow([AC_CHECK_HEADERS]) + +dnl gettext localization. +dnl Use simpler AM_GLIB_GNU_GETTEXT instead of AM_GNU_GETTEXT +dnl as we depend on glib and glib requires system installed gettext anyway. +dnl http://lists.gnome.org/archives/gtk-devel-list/2003-April/msg00066.html +dnl Special 'GETTEXT_PACKAGE' is required by glib gettext. +ALL_LINGUAS="cs" +GETTEXT_PACKAGE="$PACKAGE" +AC_SUBST(GETTEXT_PACKAGE) +AM_GLIB_GNU_GETTEXT + +dnl Do not discard 'CFLAGS' settings as they may have been passed us by rpmbuild(8) + +dnl Define MAINTAINER_MODE in config.h. +if test "$USE_MAINTAINER_MODE" = "yes";then + AC_DEFINE(MAINTAINER_MODE,,[Turn even some software behaviour according to MAINTAINER_MODE.]) + CFLAGS="$CFLAGS -ggdb3 -Wall -Wstrict-prototypes -Wsign-compare" + fi +dnl Some Makefiles use additional tests etc. +AM_CONDITIONAL(MAINTAINER_MODE,[test "$USE_MAINTAINER_MODE" = "yes"]) + + +AC_ARG_ENABLE(man-pages, + [ --enable-man-pages=no/yes/auto pod2man(1) required for man pages (def.=yes)],,enable_man_pages=yes) + + +dnl Permit 'if NEVER' for Makefile.am-s; symbol 'FALSE' forbidden by automake +AM_CONDITIONAL(NEVER,false) + +PERL= +AC_PATH_PROGS(PERL,perl5 perl) +AM_CONDITIONAL(HAVE_PERL,test -n "$PERL") + +POD2MAN= +AC_PATH_PROGS(POD2MAN,pod2man) +AM_CONDITIONAL(HAVE_POD2MAN,[ test -n "$POD2MAN" ]) +if test x$enable_man_pages = xyes;then + if test -z "$POD2MAN";then + AC_MSG_ERROR([udpforward requires pod2man(1) for man pages; try --disable-man-pages.]) + fi + if test -z "$PERL";then + AC_MSG_ERROR([udpforward requires perl(1) for man pages; try --disable-man-pages.]) + fi +elif test x$enable_man_pages != xno;then + if test -z "$POD2MAN";then + AC_MSG_WARN([udpforward requires pod2man(1) for man pages by --enable-man-pages; mans will not be installed.]) + fi + if test -z "$PERL";then + AC_MSG_WARN([udpforward requires perl(1) for man pages by --enable-man-pages; mans will not be installed.]) + fi +fi +AM_CONDITIONAL(ENABLE_MAN_PAGES,[ test x$enable_man_pages != xno -a -n "$POD2MAN" -a -n "$PERL" ]) + +dnl Separate 'acconfig.h' is no longer recommended by autoconf +AH_TOP([ +#ifndef _UDPFORWARD_CONFIG_H +#define _UDPFORWARD_CONFIG_H 1 +]) +AH_BOTTOM([ +/* Do not place any stuff to AH_TOP as some of its includes + * would discard the effect of _FILE_OFFSET_BITS by AC_SYS_LARGEFILE. + */ + +#ifdef ENABLE_NLS +/* is taken from "$(top_srcdir)/intl" if system doesn't provide intl */ +# include +#define _(String) gettext (String) +# ifdef gettext_noop +# define N_(String) gettext_noop (String) +# else +# define N_(String) (String) +# endif +#else /* !ENABLE_NLS */ +/* Stubs that do something close enough. */ +# define textdomain(String) (String) +# define gettext(String) (String) +# define dgettext(Domain,Message) (Message) +# define dcgettext(Domain,Message,Type) (Message) +# define bindtextdomain(Domain,Directory) (Domain) +# define _(String) (String) +# define N_(String) (String) +#endif /* !ENABLE_NLS */ + +#include /* for 'gchar' */ +#define G_LOG_DOMAIN ((const gchar *)"UDPForward") + +#endif /* !_UDPFORWARD_CONFIG_H */ +]) + +dnl Do not use PKG_CHECK_MODULES() as it would not set 'GLIB_GENMARSHAL' etc. +AM_PATH_GLIB_2_0(,,[AC_MSG_ERROR([UDPForward requires glib-2.0 library.])],[]) +dnl Force glib for the whole package +CFLAGS="$CFLAGS $GLIB_CFLAGS" +LIBS="$LIBS $GLIB_LIBS" + +dnl popt +AC_CHECK_LIB(popt,poptParseArgvString,[POPT_LIBS="-lpopt"],[AC_MSG_ERROR([UDPForward requires popt library.])]) +AC_SUBST(POPT_LIBS) + +GLADE_W_INIT([ + ./src/install/acquire/ui-gnome-interface.c + ./src/install/acquire/ui-gnome-interface.h + ./src/install/acquire/ui-gnome-callbacks.h + ./src/install/acquire/ui-gnome-support.c + ./src/install/acquire/ui-gnome-support.h + ]) +AC_SUBST(GNOMEUI_CFLAGS) +AC_SUBST(GNOMEUI_LIBS) +AM_CONDITIONAL(HAVE_GLADE_WRITESOURCE,[ test "x$PATH_GLADE" != "x" ]) +dnl Do not: AM_CONDITIONAL(BUILD_GLADESRC,[ test "xyes" = "x$BUILD_GLADESRC" ]) +dnl as we do not need it as we are conditioned by ENABLE_INSTALL_PKG +GNOME_ADDON_LIBS="" +if test "x$BUILD_GLADESRC_TRUE" = "x" +then + AC_CHECK_LIB(Xi,XOpenDevice,GNOME_ADDON_LIBS="$GNOME_ADDON_LIBS -lXi") +fi +AC_SUBST(GNOME_ADDON_LIBS) + +AC_SUBST(CFLAGS) +AC_SUBST(LIBS) + +dnl "Makefile" output files MUST have pathnames incl./excl. "./" prefix as specified! +dnl FIXME: Why the rule above was written here? +AC_OUTPUT([ +udpforward.spec +./src/udpforward.pod.pl +./po/Makefile.in +./macros/glade-w.sh +Makefile +./macros/Makefile +./src/Makefile +]) + +dnl FIXME: Why is "po/POTFILES" being substituted? +make -C src distfiles DISTFILES_PRINT=1 \ + |sed -n 's/^:DISTFILES: *\(.*\)$/\1/p'|tr ' ' '\n'|grep . >po/POTFILES.in +make -C po Makefile + +echo done. diff --git a/cvs2cl-usermap b/cvs2cl-usermap new file mode 100644 index 0000000..dbb02b2 --- /dev/null +++ b/cvs2cl-usermap @@ -0,0 +1,2 @@ +short:Jan Kratochvil +lace:Jan Kratochvil diff --git a/po/cs.po b/po/cs.po new file mode 100644 index 0000000..f9a662d --- /dev/null +++ b/po/cs.po @@ -0,0 +1,26 @@ +# $Id$ +# "cs" (Czech) language file +# Copyright (C) 2004 Jan Kratochvil +# +# 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; exactly version 2 of June 1991 is required +# +# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +msgid "" +msgstr "" +"Project-Id-Version: udpforward 1.0\n" +"POT-Creation-Date: 2004-05-09 13:23+0200\n" +"PO-Revision-Date: 2004-05-09 13:23+0200\n" +"Last-Translator: Jan Kratochvil \n" +"Language-Team: Czech \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" diff --git a/src/Makefile.am b/src/Makefile.am new file mode 100644 index 0000000..7e26749 --- /dev/null +++ b/src/Makefile.am @@ -0,0 +1,82 @@ +# $Id$ +# automake source for UDP forwarder Makefile +# Copyright (C) 2004 Jan Kratochvil +# +# 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; exactly version 2 of June 1991 is required +# +# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +include $(top_srcdir)/Makefile-head.am + +GLADE_IN= \ + ui-gnome.glade \ + ui-gnome.gladep + +GLADE_OUT= \ + ui-gnome-interface.c \ + ui-gnome-interface.h \ + ui-gnome-callbacks.h \ + ui-gnome-support.c \ + ui-gnome-support.h + +udpforward_SOURCES= \ + main.c \ + main.h \ + ui-line.c \ + ui-line.h \ + ui-gnome.c \ + ui-gnome.h \ + $(GLADE_OUT) + +EXTRA_DIST+= \ + $(GLADE_IN) + +udpforward_CFLAGS= +udpforward_LDADD= + +udpforward-ui-gnome-interface.$(OBJEXT): ui-gnome-callbacks.h + +if HAVE_GLADE_WRITESOURCE +# touch(1) as 'ui-gnome-callbacks.h' are not overwritten if not changed: +$(GLADE_OUT): $(GLADE_IN) + sh $(top_srcdir)/macros/glade-w.sh $< + @touch ui-gnome-callbacks.h + +endif + +CLEANFILES+= \ + ui-gnome-callbacks.c \ + ui-gnome.glade.bak \ + ui-gnome.gladep.bak + +udpforward_LDADD+= $(POPT_LIBS) $(INTLLIBS) + +# FIXME: /usr/include/gtk-2.0/gtk/gtkitemfactory.h:51: warning: function declaration isn't a prototype +# /* We use () here to mean unspecified arguments. This is deprecated +# * as of C99, but we can't change it without breaking compatibility. +# * (Note that if we are included from a C++ program () will mean +# * (void) so an explicit cast will be needed.) +# */ +# typedef void (*GtkItemFactoryCallback) (); +# We cannot put '-Wno-strict-prototypes' as we get always overriden by $(CFLAGS) ! +udpforward_CFLAGS+=$(GNOMEUI_CFLAGS) +udpforward_LDADD +=$(GNOMEUI_LIBS) + +bin_PROGRAMS+=udpforward + +EXTRA_DIST+=udpforward.pod.pl.in +CLEANFILES+=udpforward.pod udpforward.1 +if ENABLE_MAN_PAGES +captive_install_acquire_man_cond=udpforward.1 +endif +man_MANS=$(captive_install_acquire_man_cond) diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..e69de29 diff --git a/src/main.h b/src/main.h new file mode 100644 index 0000000..e69de29 diff --git a/src/udpforward.pod.pl.in b/src/udpforward.pod.pl.in new file mode 100644 index 0000000..8336c5b --- /dev/null +++ b/src/udpforward.pod.pl.in @@ -0,0 +1,71 @@ +#! /usr/bin/perl +# +# $Id$ +# perlpod(1) source for udpforward(1) man page +# Copyright (C) 2004 Jan Kratochvil +# +# 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; exactly version 2 of June 1991 is required +# +# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +use vars qw($VERSION); +$VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; +use strict; +use warnings; + + +my $sbindir='@sbindir@'; +$sbindir=~s#\$\Q{exec_prefix}\E#'@exec_prefix@';#ge; +$sbindir=~s#\$\Q{prefix}\E#'@prefix@';#ge; +$sbindir="/usr/sbin" if $sbindir=~/^@/; + +print <<'POD_EOF'; +=head1 NAME + +@PACKAGE@-cmdline - Command-line client for B<@PACKAGE@>(7) NTFS disk access + + +=head1 SYNOPSIS + +=for man +\fB@PACKAGE@-cmdline\fP \fB--load-module\fP=\fB/tmp/ntoskrnl.exe\fP +.br + \fB--filesystem\fP=\fB/tmp/ntfs.sys\fP +.br +POD_EOF +print "\t\t".'[\fB--sandbox-server\fP=\fB'.$sbindir.'/@PACKAGE@-sandbox-server\fP]'."\n"; +print <<'POD_EOF'; + [\fB--bug-pathname\fP=\fB/tmp/captive-bug-%FT%T.captivebug.xml.gz\fP] + [\fB--disk\fP|\fB--cdrom\fP] [\fB--ro\fP|\fB--blind\fP|\fB--rw\fP] {\fBimage-file\fP|\fBdevice\fP} + + +=head1 DESCRIPTION + +Simple B(1)-like client to access disks by Microsoft Windows drivers. +Use if B(7) not available; also useful during debugging. + + +POD_EOF +require "../../libcaptive/client/options.pod.pl"; +print <<'POD_EOF'; +=head1 SEE ALSO + +B<@PACKAGE@>(7), B(7) + + +=head1 AUTHOR + +Jan Kratochvil >, + I +POD_EOF +1; diff --git a/src/ui-gnome.c b/src/ui-gnome.c new file mode 100644 index 0000000..da3be9a --- /dev/null +++ b/src/ui-gnome.c @@ -0,0 +1,39 @@ +/* $Id$ + * Gnome user interface + * Copyright (C) 2004 Jan Kratochvil + * + * 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; exactly version 2 of June 1991 is required + * + * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + + +#include "config.h" + +#include "ui-gnome.h" /* self */ +#include +#include "main.h" + + +static GnomeApp *App; + + +/* of "ui-gnome-interface.h": */ +GtkWidget *create_App(void); +/* of "ui-gnome-support.h": */ +GtkWidget *lookup_widget(GtkWidget *widget,const gchar *widget_name); + +void ui_gnome_init(void) +{ + App=GNOME_APP(create_App()); + gtk_widget_show_all(GTK_WIDGET(App)); +} diff --git a/src/ui-gnome.glade b/src/ui-gnome.glade new file mode 100644 index 0000000..d04fa08 --- /dev/null +++ b/src/ui-gnome.glade @@ -0,0 +1,483 @@ + + + + + + + + + True + UDP Forwarder + GTK_WINDOW_TOPLEVEL + GTK_WIN_POS_NONE + False + False + False + False + + + + + True + False + + + + 15 + True + False + 5 + + + + True + GTK_SHADOW_IN + + + + 3 + True + True + False + GTK_JUSTIFY_LEFT + GTK_WRAP_WORD + False + 0 + 0 + 0 + 0 + 0 + 0 + Choose your port and try connection to the alternate MMS service center. +Some phone models support only the tandard port 9201. +Port 9201 is usually blocked by the GSM operator. +If you do not have "static IP" for your machine the "IP address" will change from time to time between your machine restarts. +Generally you cannot use this program in firewalled networks although try to ask your sysadmin for the specific "port forward". + + + + + + 0 + True + True + + + + + + True + 3 + 2 + False + 5 + 5 + + + + True + False + 0 + + + + True + 10 + + + + True + True + True + True + 0 + + True + * + False + + + + + 0 + False + False + + + + + + True + True + Try random one + True + GTK_RELIEF_NORMAL + + + 0 + False + False + + + + + 1 + 2 + 1 + 2 + + + + + + True + Local UDP port (9201?) + False + False + GTK_JUSTIFY_RIGHT + False + False + 0.5 + 0.5 + 0 + 0 + + + 0 + 1 + 1 + 2 + fill + + + + + + + True + Start at boot automatically? + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + 0 + 1 + 2 + 3 + fill + + + + + + + True + True + + True + GTK_RELIEF_NORMAL + False + False + True + + + 1 + 2 + 2 + 3 + fill + + + + + + + True + Detected host IP address + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + 0 + 1 + 0 + 1 + fill + + + + + + + True + True + False + True + 0 + 123.456.789.123 + True + * + False + + + 1 + 2 + 0 + 1 + + + + + + 0 + False + False + + + + + + True + GTK_BUTTONBOX_DEFAULT_STYLE + 0 + + + + True + True + True + GTK_RELIEF_NORMAL + + + + True + 0.5 + 0.5 + 0 + 0 + + + + True + False + 2 + + + + True + gtk-execute + 4 + 0.5 + 0.5 + 0 + 0 + + + 0 + False + False + + + + + + True + _Start + True + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + + + 0 + False + False + + + + + + + + + + + + True + True + True + GTK_RELIEF_NORMAL + + + + True + 0.5 + 0.5 + 0 + 0 + + + + True + False + 2 + + + + True + gtk-stop + 4 + 0.5 + 0.5 + 0 + 0 + + + 0 + False + False + + + + + + True + S_top + True + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + + + 0 + False + False + + + + + + + + + + + + True + True + True + GTK_RELIEF_NORMAL + + + + True + 0.5 + 0.5 + 0 + 0 + + + + True + False + 2 + + + + True + gtk-apply + 4 + 0.5 + 0.5 + 0 + 0 + + + 0 + False + False + + + + + + True + _Hide + True + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + + + 0 + False + False + + + + + + + + + + + 0 + False + True + + + + + + + 0 + True + True + + + + + + True + True + True + + + 0 + True + True + + + + + diff --git a/src/ui-gnome.gladep b/src/ui-gnome.gladep new file mode 100644 index 0000000..b374c46 --- /dev/null +++ b/src/ui-gnome.gladep @@ -0,0 +1,18 @@ + + + + + ui-gnome + captive-install-acquire + . + TRUE + FALSE + FALSE + FALSE + ui-gnome-interface.c + ui-gnome-interface.h + ui-gnome-callbacks.c + ui-gnome-callbacks.h + ui-gnome-support.c + ui-gnome-support.h + diff --git a/src/ui-gnome.h b/src/ui-gnome.h new file mode 100644 index 0000000..f7f2fe9 --- /dev/null +++ b/src/ui-gnome.h @@ -0,0 +1,34 @@ +/* $Id$ + * Include file for Gnome user interface + * Copyright (C) 2004 Jan Kratochvil + * + * 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; exactly version 2 of June 1991 is required + * + * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + + +#ifndef _UDPFORWARD_UI_GNOME_H +#define _UDPFORWARD_UI_GNOME_H 1 + + +#include + + +G_BEGIN_DECLS + +void ui_gnome_init(void); + +G_END_DECLS + + +#endif /* _UDPFORWARD_UI_GNOME_H */ diff --git a/udpforward.spec.in b/udpforward.spec.in new file mode 100644 index 0000000..b4bfa2b --- /dev/null +++ b/udpforward.spec.in @@ -0,0 +1,70 @@ +# $Id$ +# rpm package description file for building +# Copyright (C) 2004 Jan Kratochvil +# +# 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; exactly version 2 of June 1991 is required +# +# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +# Temporary cludge before full 'devel' package gets deployed +%define _unpackaged_files_terminate_build 0 + +Summary: UDP packets forwarding utility +Name: @PACKAGE@ +%define release 0 +Version: @VERSION@ +Release: %{release} +Group: Applications/Communications +Packager: Jan Kratochvil +Source: http://www.jankratochvil.net/project/udpforward/dist/@PACKAGE@-@VERSION@.tar.gz +Copyright: GPL +BuildRoot: /var/tmp/@PACKAGE@-@VERSION@-%{release}-root +BuildRequires: popt +Requires: popt +BuildRequires: glib2-devel +Requires: glib2 +BuildRequires: libgnomeui-devel +Requires: libgnomeui + +%description +Existing binary Microsoft Windows file system drivers were exploited +for accessing drives with possibly proprietary file system data structures. +Open file system API is provided to access these file system drivers. +Microsoft Windows system components required by these drivers +were analyzed and successfuly emulated in the GNU/Linux operating system. + +The implementation allows applications running under the GNU/Linux operating +system to access NTFS drives. File system driver compatibility with VFAT, +ISO9660 and EXT2 is also provided. + +%prep +%setup + +%build +%configure \ + --enable-shared --disable-static \ + --enable-man-pages +make + +%install +make DESTDIR=$RPM_BUILD_ROOT install-strip + +%clean +rm -rf $RPM_BUILD_ROOT + +%files +%defattr(-,root,root) +%doc README NEWS AUTHORS +%attr(644,root,root) %{_mandir}/man?/@PACKAGE@.* +%{_bindir}/@PACKAGE@ +%{_datadir}/locale/*/LC_MESSAGES/@PACKAGE@.mo -- 1.8.3.1