aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--RATIONALE45
-rw-r--r--README100
-rw-r--r--TODO41
-rwxr-xr-xcontrib/report.sh21
-rwxr-xr-xmkinstalldirs5
5 files changed, 111 insertions, 101 deletions
diff --git a/RATIONALE b/RATIONALE
index b37e1a2fe..d68e244c6 100644
--- a/RATIONALE
+++ b/RATIONALE
@@ -1,12 +1,13 @@
1This document is a summary of why we're moving to GNUnet NG and what 1This document is a summary of the changes made to GNUnet for version
2this major redesign tries to address. 20.9.x (from 0.8.x) and what this major redesign tries to address.
3 3
4First of all, the redesign does not (intentionally) change anything 4First of all, the redesign does not (intentionally) change anything
5fundamental about the application-level protocols or how files are 5fundamental about the application-level protocols or how files are
6encoded and shared. However, it is not protocol-compatible due to 6encoded and shared. However, it is not protocol-compatible due to
7other changes that do not relate to the essence of the application 7other changes that do not relate to the essence of the application
8protocols. 8protocols. This choice was made since productive development and
9 9readable code were considered more important than compatibility at
10this point.
10 11
11The redesign tries to address the following major problem groups 12The redesign tries to address the following major problem groups
12describing isssues that apply more or less to all GNUnet versions 13describing isssues that apply more or less to all GNUnet versions
@@ -26,10 +27,10 @@ PROBLEM GROUP 1 (scalability):
26 mutexes and almost 1000 lines of lock/unlock operations. 27 mutexes and almost 1000 lines of lock/unlock operations.
27 It is challenging for even good programmers to program or 28 It is challenging for even good programmers to program or
28 maintain good multi-threaded code with this complexity. 29 maintain good multi-threaded code with this complexity.
29 The excessive locking essentially prevents GNUnet from 30 The excessive locking essentially prevents GNUnet 0.8 from
30 actually doing much in parallel on multicores. 31 actually doing much in parallel on multicores.
31* Despite efforts like Freeway, it was virtually 32* Despite efforts like Freeway, it was virtually
32 impossible to contribute code to GNUnet that was not 33 impossible to contribute code to GNUnet 0.8 that was not
33 writen in C/C++. 34 writen in C/C++.
34* Changes to the configuration almost always required restarts 35* Changes to the configuration almost always required restarts
35 of gnunetd; the existence of change-notifications does not 36 of gnunetd; the existence of change-notifications does not
@@ -44,11 +45,11 @@ PROBLEM GROUP 1 (scalability):
44 days, result in really nasty and hard-to-find crashes. 45 days, result in really nasty and hard-to-find crashes.
45* structs of function pointers in service APIs were 46* structs of function pointers in service APIs were
46 needlessly adding complexity, especially since in 47 needlessly adding complexity, especially since in
47 most cases there was no polymorphism 48 most cases there was no actual polymorphism
48 49
49SOLUTION: 50SOLUTION:
50* Use multiple, lously-coupled processes and one big select 51* Use multiple, lously-coupled processes and one big select
51 loop in each (supported by a powerful library to eliminate 52 loop in each (supported by a powerful util library to eliminate
52 code duplication for each process). 53 code duplication for each process).
53* Eliminate all threads, manage the processes with a 54* Eliminate all threads, manage the processes with a
54 master-process (gnunet-arm, for automatic restart manager) 55 master-process (gnunet-arm, for automatic restart manager)
@@ -65,13 +66,15 @@ SOLUTION:
65 => Process priorities can be used to schedule the CPU better 66 => Process priorities can be used to schedule the CPU better
66 Note that we can not just use one process with a big 67 Note that we can not just use one process with a big
67 select loop because we have blocking operations (and the 68 select loop because we have blocking operations (and the
68 blocking is outside of our control, thanks MySQL, 69 blocking is outside of our control, thanks to MySQL,
69 sqlite, gethostbyaddr, etc.). So in order to perform 70 sqlite, gethostbyaddr, etc.). So in order to perform
70 reasonably well, we need some construct for parallel 71 reasonably well, we need some construct for parallel
71 execution. 72 execution.
72 73
73 RULE: If your service contains blocking functions, it 74 RULE: If your service contains blocking functions, it
74 MUST be a process by itself. 75 MUST be a process by itself. If your service
76 is sufficiently complex, you MAY choose to make
77 it a separate process.
75* Eliminate structs with function pointers for service APIs; 78* Eliminate structs with function pointers for service APIs;
76 instead, provide a library (still ending in _service.h) API 79 instead, provide a library (still ending in _service.h) API
77 that transmits the requests nicely to the respective 80 that transmits the requests nicely to the respective
@@ -121,6 +124,8 @@ SOLUTION:
121 thing given the potential for bugs. 124 thing given the potential for bugs.
122* There is no more TIME API function to do anything 125* There is no more TIME API function to do anything
123 with 32-bit seconds 126 with 32-bit seconds
127* There is now a bandwidth API to handle
128 non-trivial bandwidth utilization calculations
124 129
125 130
126PROBLEM GROUP 3 (statistics): 131PROBLEM GROUP 3 (statistics):
@@ -237,18 +242,15 @@ PROBLEM GROUP 6 (FS-APIs):
237* FILENAME metadata is killed by ECRS/FSUI to avoid 242* FILENAME metadata is killed by ECRS/FSUI to avoid
238 exposing HOME, but what if the user set it manually? 243 exposing HOME, but what if the user set it manually?
239 244
240SOLUTION (draft, not done yet, details missing...): 245SOLUTION:
241* Eliminate threads from FS-APIs 246* Eliminate threads from FS-APIs
242 => Open question: how to best write the APIs to 247* Incrementally store FS-state always also on disk using many
243 allow integration with diverse event loops 248 small files instead of one big file
244 of GUI libraries?
245* Store FS-state always also on disk
246 => Open question: how to do this without
247 compromising state/scalability?
248* Have API to manipulate sharing tree before 249* Have API to manipulate sharing tree before
249 upload; have auto-construction modify FILENAME 250 upload; have auto-construction modify FILENAME
250 but allow user-modifications afterwards 251 but allow user-modifications afterwards
251 252
253
252PROBLEM GROUP 7 (User experience): 254PROBLEM GROUP 7 (User experience):
253* Searches often do not return a sufficient / significant number of 255* Searches often do not return a sufficient / significant number of
254 results 256 results
@@ -281,11 +283,12 @@ SUMMARY:
281 - network traffic monitors (goal: eliminate) 283 - network traffic monitors (goal: eliminate)
282 - IPC semaphores (goal: d-bus? / eliminate?) 284 - IPC semaphores (goal: d-bus? / eliminate?)
283 - second timers 285 - second timers
284 - DNS lookup (goal: have async service; issue: still need synchronous
285 resolution in places, current code may not be portable)
286 => code shrunk from 61 files to 34, 22k LOC to 15k LOC, 470k to 330k (with symbols)
287* New features in util: 286* New features in util:
288 - scheduler 287 - scheduler
289 - service and program boot-strap code 288 - service and program boot-strap code
289 - bandwidth and time APIs
290 - buffered IO API
291 - HKDF implementation (crypto)
290* Major changes in util: 292* Major changes in util:
291 - more expressive server (replaces selector) 293 - more expressive server (replaces selector)
294 - DNS lookup replaced by async service
diff --git a/README b/README
index 5767598d0..905d97d3b 100644
--- a/README
+++ b/README
@@ -7,13 +7,13 @@ What is GNUnet?
7GNUnet is peer-to-peer framework focusing on security. The first and 7GNUnet is peer-to-peer framework focusing on security. The first and
8primary application for GNUnet is anonymous file-sharing. GNUnet is 8primary application for GNUnet is anonymous file-sharing. GNUnet is
9currently developed by a worldwide group of independent free software 9currently developed by a worldwide group of independent free software
10developers. GNUnet is a part of the GNU project (http://www.gnu.org/). 10developers. GNUnet is a GNU package (http://www.gnu.org/).
11 11
12This is an ALPHA release. There are known and significant bugs as 12This is an ALPHA release. There are known and significant bugs as
13well as many missing features in this release. 13well as many missing features in this release.
14 14
15For a longer description of the GNUnet System see our webpages 15Additional documentation about GNUnet can be found at
16http://www.gnu.org/software/gnunet/ and https://ng.gnunet.org/. 16https://gnunet.org/.
17 17
18 18
19Dependencies: 19Dependencies:
@@ -45,40 +45,41 @@ How to install?
45 45
46The fastest way is to use a binary package if it is available for your 46The fastest way is to use a binary package if it is available for your
47system. For a more detailed description, read the installation 47system. For a more detailed description, read the installation
48instructions on the webpage at https://ng.gnunet.org/installation. 48instructions on the webpage at https://gnunet.org/installation.
49
50GNUnet requires the GNU MP library (http://www.gnu.org/software/gmp/)
51and libgcrypt (http://www.gnupg.org/). You can specify the path to
52libgcrypt by passing "--with-gcrypt=PATH" to configure. You will also
53need either sqlite (http://www.sqlite.org/) or MySQL
54(http://www.mysql.org/).
49 55
50If you install from source, you need to install GNU libextractor first 56If you install from source, you need to install GNU libextractor first
51(download from http://www.gnu.org/software/libextractor/). We also 57(download from http://www.gnu.org/software/libextractor/). We also
52recommend installing GNU libmicrohttpd. Then you can start the actual 58recommend installing GNU libmicrohttpd (download from
53GNUnet compilation process with: 59http://www.gnu.org/software/libmicrohttpd/). Then you can start the
60actual GNUnet compilation process with:
54 61
55$ ./configure --prefix=$HOME --with-extractor=$HOME 62$ ./configure --prefix=$HOME --with-extractor=$HOME
56$ make 63$ make
57# make install 64# make install
58# sudo -u gnunet gnunet-setup # (note: does not yet exist!) 65# sudo -u gnunet mkdir ~/.gnunet/
66# sudo -u gnunet touch ~/.gnunet/gnunet.conf
59# sudo -u gnunet gnunet-arm -s 67# sudo -u gnunet gnunet-arm -s
60 68
61This will compile and install GNUnet to ~/bin/, ~/lib/ and ~/man/. 69This will compile and install GNUnet to $HOME/bin/, $HOME/lib/ and
62gnunet-setup will create the configuration; this step is interactive. 70$HOME/share/ and start the system with the default configuration. It
63You can run gnunet-setup as root for a system-wide installation or as 71is recommended that you add a user "gnunet" to run "gnunet-arm". You
64a particular user to create a personal installation. It is 72can then still run the end-user applications as another user. If you
65recommended that you add a user "gnunet" to run "gnunet-arm". You can
66then still run the end-user applications as another user. If you
67create a user "gnunet", it is recommended that you edit the 73create a user "gnunet", it is recommended that you edit the
68configuration file slightly so that data can be stored in 74configuration file slightly so that data can be stored in
69"/var/lib/gnunet"; you may also want to use "/etc/gnunet.conf" for the 75"/var/lib/gnunet"; you may also want to use "/etc/gnunet.conf" for the
70configuration in this case. 76location of the configuration file in this case.
71 77
72Note that additional, per-user configuration files 78Note that additional, per-user configuration files
73(~/.gnunet/gnunet.conf) need to be created by each user (for example, 79(~/.gnunet/gnunet.conf) need to be created by each user (for example,
74by running gnunet-setup). For more general information about the GNU 80by running gnunet-setup). For more general information about the GNU
75build process read the INSTALL file. 81build process read the INSTALL file.
76 82
77GNUnet requires the GNU MP library (http://www.gnu.org/software/gmp/)
78and libgcrypt. You can specify the path to libgcrypt by passing
79"--with-gcrypt=PATH" to configure. You will also need either sqlite
80(version 3 or higher) or MySQL (version 5.0 or higher).
81
82If you are compiling the code from subversion, you have to run 83If you are compiling the code from subversion, you have to run
83". bootstrap" before ./configure. If you receive an error during the 84". bootstrap" before ./configure. If you receive an error during the
84running of ". bootstrap" that looks like "macro `AM_PATH_GTK' not 85running of ". bootstrap" that looks like "macro `AM_PATH_GTK' not
@@ -91,24 +92,20 @@ $ aclocal -I /usr/local/share/aclocal
91Configuration 92Configuration
92============= 93=============
93 94
94// FIXME: update this section once we have gnunet-setup! GNUnet uses 95GNUnet uses two types of configuration files, one that specifies the
95two types of configuration files, one for the daemon (called 96system-wide defaults (typically located in /usr/share/gnunet/defaults
96gnunetd.conf) and one for each user (gnunet.conf). You can create and 97.conf) and a second one that overrides default values with
97edit these configuration files with the gnunet-setup tool. The 98user-specific preferences. The user-specific configuration file
98defaults that are created the first time you run gnunet-setup are 99should be located in "~/.gnunet/gnunet.conf" or its location can be
99usually ok, you may want to adjust the limitations (space consumption, 100specified by giving the "-c" option to the respective GNUnet
100bandwidth, etc.) though. The configuration files are human-readable; 101application.
101GNUnet's configuration is typically located at
102"~/.gnunet/gnunet.conf".
103 102
104You MUST create "~/.gnunet/gnunet.conf" explicitly before starting 103The defaults that are shipped with the installation are usually ok,
105GNUnet, and the recommended way to do this is to run gnunet-setup. 104you may want to adjust the limitations (space consumption, bandwidth,
106You can also create an empty configuration file, in which case 105etc.) though. The configuration files are human-readable. Note that
107default values will be used for everything. 106you MUST create "~/.gnunet/gnunet.conf" explicitly before starting
108 107GNUnet. You can either copy "defaults.conf" or simply create an empty
109If you want to use a different configuration file, pass the name of 108file.
110the configuration file as an argument with the option "-c" to any
111GNUnet application.
112 109
113 110
114Usage 111Usage
@@ -126,19 +123,19 @@ $ cat $SERVICEHOME/data/hosts/* > the_file
126 123
127and offering 'the_file' via your web server. Alternatively, you can 124and offering 'the_file' via your web server. Alternatively, you can
128run the build-in web server by adding '-p' to the OPTIONS value 125run the build-in web server by adding '-p' to the OPTIONS value
129in the "hostlist" section of gnunet.conf. 126in the "hostlist" section of gnunet.conf and opening the respective
127HTTPPORT to the public.
130 128
131If the solution with the URL is not feasible for your situation, you 129If the solution with the hostlist URL is not feasible for your
132can also add hosts manually. Simply copy the hostkeys to 130situation, you can also add hosts manually. Simply copy the hostkeys
133"$SERVICEHOME/data/hosts/" (where $SERVICEHOME is the directory 131to "$SERVICEHOME/data/hosts/" (where $SERVICEHOME is the directory
134specified in the /etc/gnunet.conf configuration file). 132specified in the gnunet.conf configuration file).
135 133
136Now start the local node using "gnunet-arm -s". GNUnet should run 24/7 if 134Now start the local node using "gnunet-arm -s". GNUnet should run 24/7 if
137you want to maximize your anonymity. 135you want to maximize your anonymity.
138 136
139// FIXME: gnunet-gtk is not yet supported in 0.9.x 137The GTK user interface is shipped separately. After downloading and
140The GTK user interface is shipped separately from GNUnet. After 138installing gnunet-gtk, you can invoke the GUI with:
141downloading and installing gnunet-gtk, you can invoke the GUI with:
142 139
143$ gnunet-gtk 140$ gnunet-gtk
144 141
@@ -202,13 +199,13 @@ Running http on port 80
202======================= 199=======================
203 200
204In order to hide GNUnet's HTTP traffic perfectly, you might consider 201In order to hide GNUnet's HTTP traffic perfectly, you might consider
205running GNUnet's HTTP transport on port 80. However, you should not 202running GNUnet's HTTP transport on port 80. However, we do not
206run GNUnet as root. Instead, forward port 80 to say 8080 with this 203recommend running GNUnet as root. Instead, forward port 80 to say
207command (as root, in your startup scripts): 2048080 with this command (as root, in your startup scripts):
208 205
209# iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080 206# iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
210 207
211Then set in the HTTP section of gnunetd.conf the "ADVERTISED-PORT" 208Then set in the HTTP section of gnunet.conf the "ADVERTISED-PORT"
212to "80" and "PORT" to 8080. You can do the same trick for the 209to "80" and "PORT" to 8080. You can do the same trick for the
213TCP and UDP transports if you want to map them to a priviledged 210TCP and UDP transports if you want to map them to a priviledged
214port (from the point of view of the network). 211port (from the point of view of the network).
@@ -227,12 +224,11 @@ P2P over SMTP, read the instructions at http://gnunet.org/smtp.php3
227Stay tuned 224Stay tuned
228========== 225==========
229 226
230* http://www.gnu.org/software/gnunet/ 227* https://gnunet.org/
231* http://gnunet.org/
232* https://gnunet.org/bugs/ 228* https://gnunet.org/bugs/
233* https://ng.gnunet.org/ 229* https://gnunet.org/svn/
230* http://www.gnu.org/software/gnunet/
234* http://mail.gnu.org/mailman/listinfo/gnunet-developers 231* http://mail.gnu.org/mailman/listinfo/gnunet-developers
235* http://mail.gnu.org/mailman/listinfo/help-gnunet 232* http://mail.gnu.org/mailman/listinfo/help-gnunet
236* http://mail.gnu.org/mailman/listinfo/info-gnunet 233* http://mail.gnu.org/mailman/listinfo/info-gnunet
237* http://mail.gnu.org/mailman/listinfo/gnunet-svn 234* http://mail.gnu.org/mailman/listinfo/gnunet-svn
238
diff --git a/TODO b/TODO
index 478692ee4..012987b94 100644
--- a/TODO
+++ b/TODO
@@ -4,6 +4,8 @@
4 [On W32, we need to select after calling socket before doing connect etc.] 4 [On W32, we need to select after calling socket before doing connect etc.]
5* TRANSPORT: 5* TRANSPORT:
6 - HTTP backend [MW] 6 - HTTP backend [MW]
7 - UDP fails non-deterministically on niko; suspect that it uses hostname-derived,
8 invalid 10.0.0.x address for test-message (which creates transmission failure) [CG]
7 - Jun 27 11:51:54 core-7670 ERROR Assertion failed at gnunet-service-core.c:3616. 9 - Jun 27 11:51:54 core-7670 ERROR Assertion failed at gnunet-service-core.c:3616.
8 (transport notified us that we connected to ourselves!!!) 10 (transport notified us that we connected to ourselves!!!)
9* CORE: 11* CORE:
@@ -11,25 +13,22 @@
11 disconnect in a timely fashion (waits for connection timeout); 13 disconnect in a timely fashion (waits for connection timeout);
12 need to figure a way to make it near-instant in those cases 14 need to figure a way to make it near-instant in those cases
13 (i.e. rapid reduction in timeout on transport-level disconnect) [CG] 15 (i.e. rapid reduction in timeout on transport-level disconnect) [CG]
16 => may have been fixed with instant-notification of disconnect
17 to core on session-oriented connection hick-up; not perfect but
18 likely good enough until we get ATS going; still should be tested...
14 - derived key generation [Nils] 19 - derived key generation [Nils]
15* DHT: [Nate] 20* DHT: [Nate]
16 - implement DHT service 21 - implement DHT service
17 - implement testcases
18 - implement performance tests 22 - implement performance tests
19* FS: [CG] 23* FS: [CG]
20 - service: 24 - service:
21 + trust: do not charge when "idle" / load considerations (migration, routing) 25 + trust: do not charge when "idle" / load considerations (migration, routing)
22 + artificial delays 26 + artificial delays
23 + active reply route caching design & implementation of service; gap extension! 27 + active reply route caching design & implementation; gap extension!
24 - non-anonymous FS service (needs DHT) 28 - non-anonymous FS service (needs DHT)
25 + DHT integration for search 29 + DHT integration for search
26 + CS-DHT-functions (DHT-put of LOC) 30 + CS-DHT-functions (DHT-put of LOC)
27 + P2P-functions (DHT-get) 31 + P2P-functions (DHT-get)
28 - implement FS performance tests
29 + insert
30 + download
31 + search
32 + unindex
33* GNUNET-GTK: [CG] 32* GNUNET-GTK: [CG]
34 - implement publish dialog details: 33 - implement publish dialog details:
35 + open (import directory structure) 34 + open (import directory structure)
@@ -56,9 +55,6 @@
56 - right-clicking on NS list in search dialog should open menu that allows 55 - right-clicking on NS list in search dialog should open menu that allows
57 + viewing full meta data 56 + viewing full meta data
58 + deletion of namespace info 57 + deletion of namespace info
59 - extend peer dialog with green-yellow-red connectivity status lights
60 - extend peer dialog with country flags and names
61 - implement statistics tabs
62 - do meaningful update to status line (starting up, peer running, #connections, shutdown, ...) 58 - do meaningful update to status line (starting up, peer running, #connections, shutdown, ...)
63 - implement unindex operation (use dialog with all indexed files for selection) 59 - implement unindex operation (use dialog with all indexed files for selection)
64 - implement download by URI dialog; figure out where to display those downloads! 60 - implement download by URI dialog; figure out where to display those downloads!
@@ -74,10 +70,10 @@
74 70
75 71
760.9.0pre3: 720.9.0pre3:
73* Determine RC bugs and fix those!
77* TRACEKIT: [MW] 74* TRACEKIT: [MW]
78 - good to have for DV/DHT evaluation! 75 - good to have for DV/DHT evaluation!
79* Determine RC bugs and fix those! 76* DATASTORE: [NN]
80* DATASTORE:
81 - GNUNET_DATASTORE_cancel method not tested 77 - GNUNET_DATASTORE_cancel method not tested
82* TESTING: [Nate] 78* TESTING: [Nate]
83 - test basic peer re-configure 79 - test basic peer re-configure
@@ -97,14 +93,29 @@
97 - reconstruct IBLOCKS from DBLOCKS if possible (during download; see FIXME in fs_download) 93 - reconstruct IBLOCKS from DBLOCKS if possible (during download; see FIXME in fs_download)
98 - add support for pushing "already seen" search results to FS service for bloomfilter (can wait) 94 - add support for pushing "already seen" search results to FS service for bloomfilter (can wait)
99 - use different 'priority' for probe downloads vs. normal downloads 95 - use different 'priority' for probe downloads vs. normal downloads
96 - implement FS performance tests
97 + insert
98 + download
99 + search
100 + unindex
100* ARM: [CG/Safey] 101* ARM: [CG/Safey]
101 - better tracking of which config changes actually need to cause process restarts by ARM. 102 - better tracking of which config changes actually need to cause process restarts by ARM.
102 - handle gnunet-arm -k in combination with auto-start magic (what is the right thing here?) 103 - handle gnunet-arm -k in combination with auto-start magic (what is the right thing here?)
103 - discover dependencies between services 104 - discover dependencies between services
104* STATISTICS: 105* STATISTICS: [NN]
105 - test notification-based statistics API 106 - test notification-based statistics API
107 - implement statistics GUI
108* PEERINFO: [NN]
109 - move peerinfo to new GUI?
110 - extend peer dialog with green-yellow-red connectivity status lights
111 - extend peer dialog with country flags and names
106* SETUP: 112* SETUP:
107 - design & implement new setup tool 113 - design & implement new setup tool
114* GNUNET-GTK:
115 - add tool bar
116* MONKEY: [Safey]
117 - '-m EMAIL' option for alternative e-mail TO
118 - '-f FILENAME' option to write report to file instead of e-mail (for testing!)
108 119
1090.9.0: 1200.9.0:
110* new webpage: 121* new webpage:
@@ -145,13 +156,13 @@
145 (Note: build library always, build service when libxml2/etc. are available) 156 (Note: build library always, build service when libxml2/etc. are available)
146* FS: [CG] 157* FS: [CG]
147 - Remove KBlocks in gnunet-unindex (see discussion with Kenneth Almquist on gnunet-devs in 9/2009) 158 - Remove KBlocks in gnunet-unindex (see discussion with Kenneth Almquist on gnunet-devs in 9/2009)
148* PEERINFO: [CG] 159* PEERINFO: [NN]
149 - expire 'ancient' HELLOs (those without valid addresses AND that 160 - expire 'ancient' HELLOs (those without valid addresses AND that
150 we have not 'used' (for their public keys) in a while; need a way 161 we have not 'used' (for their public keys) in a while; need a way
151 to track actual 'use') 162 to track actual 'use')
152 - make sue we also trigger notifications whenever HELLOs expire 163 - make sue we also trigger notifications whenever HELLOs expire
153* VPN 164* VPN
154* UTIL: 165* UTIL: [CG]
155 - allow limiting UNIX socket access by UID/GID 166 - allow limiting UNIX socket access by UID/GID
156 167
157 168
diff --git a/contrib/report.sh b/contrib/report.sh
index 521226c94..aab0c2082 100755
--- a/contrib/report.sh
+++ b/contrib/report.sh
@@ -7,8 +7,6 @@ else
7 WHICH=type 7 WHICH=type
8fi 8fi
9 9
10echo "On some systems, you may need to change /bin/sh to point to bash"
11echo
12echo "Please submit the following information with your bug report: " 10echo "Please submit the following information with your bug report: "
13echo "--------------------------------------------------------------" 11echo "--------------------------------------------------------------"
14OS=`uname -s 2>/dev/null` 12OS=`uname -s 2>/dev/null`
@@ -86,9 +84,17 @@ fi
86TEST=`$WHICH gnunetd 2>/dev/null` 84TEST=`$WHICH gnunetd 2>/dev/null`
87if test -n "$TEST"; then 85if test -n "$TEST"; then
88 gnunetd -v | sed -e "s/v//" 2>/dev/null |\ 86 gnunetd -v | sed -e "s/v//" 2>/dev/null |\
89 awk '{print "GNUnet : "$2}' 87 awk '{print "GNUnet 0.8 : "$2 (may conflict!)}'
90else 88else
91 echo "GNUnet : Not Found" 89 echo "GNUnet 0.8 : Not Found (good)"
90fi
91
92TEST=`$WHICH gnunet-arm 2>/dev/null`
93if test -n "$TEST"; then
94 gnunet-arm -v | sed -e "s/v//" 2>/dev/null |\
95 awk '{print "GNUnet 0.9 : "$2}'
96else
97 echo "GNUnet 0.9 : Not Found"
92fi 98fi
93 99
94TEST=`$WHICH libgcrypt-config 2> /dev/null` 100TEST=`$WHICH libgcrypt-config 2> /dev/null`
@@ -169,13 +175,6 @@ else
169fi 175fi
170 176
171 177
172TEST=`grep "Id:" /usr/include/adns.h 2> /dev/null`
173if test -n "$TEST"; then
174 echo "$TEST" | awk '{print "GNU adns : "$4}'
175else
176 echo "GNU adns : Not found"
177fi
178
179TEST=`which qmake 2> /dev/null` 178TEST=`which qmake 2> /dev/null`
180if test -x "$TEST"; then 179if test -x "$TEST"; then
181 qmake --version | tail -n 1 | awk '{print "Qt : "$4}' 180 qmake --version | tail -n 1 | awk '{print "Qt : "$4}'
diff --git a/mkinstalldirs b/mkinstalldirs
index ef7e16fda..4191a45db 100755
--- a/mkinstalldirs
+++ b/mkinstalldirs
@@ -1,7 +1,7 @@
1#! /bin/sh 1#! /bin/sh
2# mkinstalldirs --- make directory hierarchy 2# mkinstalldirs --- make directory hierarchy
3 3
4scriptversion=2006-05-11.19 4scriptversion=2009-04-28.21; # UTC
5 5
6# Original author: Noah Friedman <friedman@prep.ai.mit.edu> 6# Original author: Noah Friedman <friedman@prep.ai.mit.edu>
7# Created: 1993-05-16 7# Created: 1993-05-16
@@ -157,5 +157,6 @@ exit $errstatus
157# eval: (add-hook 'write-file-hooks 'time-stamp) 157# eval: (add-hook 'write-file-hooks 'time-stamp)
158# time-stamp-start: "scriptversion=" 158# time-stamp-start: "scriptversion="
159# time-stamp-format: "%:y-%02m-%02d.%02H" 159# time-stamp-format: "%:y-%02m-%02d.%02H"
160# time-stamp-end: "$" 160# time-stamp-time-zone: "UTC"
161# time-stamp-end: "; # UTC"
161# End: 162# End: