-<p>A few years ago, I was involved in a project planning to use
-Windows file servers as home directory servers for Debian
-Edu/Skolelinux machines. This was thought to be no problem, as the
-access would be through the SMB network file system protocol, and we
-knew other sites used SMB with unix and samba as the file server to
-mount home directories without any problems. But, after months of
-struggling, we had to conclude that our goal was impossible.</p>
-
-<p>The reason is simply that while SMB can be used for home
-directories when the file server is Samba running on Unix, this only
-work because of Samba have some extensions and the fact that the
-underlying file system is a unix file system. When using a Windows
-file server, the underlying file system do not have POSIX semantics,
-and several programs will fail if the users home directory where they
-want to store their configuration lack POSIX semantics.</p>
-
-<p>As part of this work, I wrote a small C program I want to share
-with you all, to replicate a few of the problematic applications (like
-OpenOffice.org and GCompris) and see if the file system was working as
-it should. If you find yourself in spooky file system land, it might
-help you find your way out again. This is the fs-test.c source:</p>
-
-<pre>
-/*
- * Some tests to check the file system sematics. Used to verify that
- * CIFS from a windows server do not work properly as a linux home
- * directory.
- * License: GPL v2 or later
- *
- * needs libsqlite3-dev and build-essential installed
- * compile with: gcc -Wall -lsqlite3 -DTEST_SQLITE fs-test.c -o fs-test
-*/
-
-#define _FILE_OFFSET_BITS 64
-#define _LARGEFILE_SOURCE 1
-#define _LARGEFILE64_SOURCE 1
-
-#define _GNU_SOURCE /* for asprintf() */
-
-#include &lt;errno.h>
-#include &lt;fcntl.h>
-#include &lt;stdio.h>
-#include &lt;string.h>
-#include &lt;stdlib.h>
-#include &lt;sys/file.h>
-#include &lt;sys/stat.h>
-#include &lt;sys/types.h>
-#include &lt;unistd.h>
-
-#ifdef TEST_SQLITE
-/*
- * Test sqlite open, as done by gcompris require the libsqlite3-dev
- * package and linking with -lsqlite3. A more low level test is
- * below.
- * See also &lt;URL: http://www.sqlite.org./faq.html#q5 >.
- */
-#include &lt;sqlite3.h>
-#define CREATE_TABLE_USERS \
- "CREATE TABLE users (user_id INT UNIQUE, login TEXT, lastname TEXT, firstname TEXT, birthdate TEXT, class_id INT ); "
-int test_sqlite_open(void) {
- char *zErrMsg;
- char *name = "testsqlite.db";
- sqlite3 *db=NULL;
- unlink(name);
- int rc = sqlite3_open(name, &db);
- if( rc ){
- printf("error: sqlite open of %s failed: %s\n", name, sqlite3_errmsg(db));
- sqlite3_close(db);
- return -1;
- }
-
- /* create tables */
- rc = sqlite3_exec(db,CREATE_TABLE_USERS, NULL, 0, &zErrMsg);
- if( rc != SQLITE_OK ){
- printf("error: sqlite table create failed: %s\n", zErrMsg);
- sqlite3_close(db);
- return -1;
- }
- printf("info: sqlite worked\n");
- sqlite3_close(db);
- return 0;
-}
-#endif /* TEST_SQLITE */
-
-/*
- * Demonstrate locking issue found in gcompris using sqlite3. This
- * work with ext3, but not with cifs server on Windows 2003. This is
- * done in the sqlite3 library.
- * See also
- * &lt;URL:http://www.cygwin.com/ml/cygwin/2001-08/msg00854.html> and the
- * POSIX specification
- * &lt;URL:http://www.opengroup.org/onlinepubs/009695399/functions/fcntl.html>.
- */
-int test_gcompris_locking(void) {
- struct flock fl;
- char *name = "testsqlite.db";
- unlink(name);
- int fd = open(name, O_RDWR|O_CREAT|O_LARGEFILE, 0644);
- printf("info: testing fcntl locking\n");
-
- fl.l_whence = SEEK_SET;
- fl.l_pid = getpid();
- printf(" Read-locking 1 byte from 1073741824");
- fl.l_start = 1073741824;
- fl.l_len = 1;
- fl.l_type = F_RDLCK;
- if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");
-
- printf(" Read-locking 510 byte from 1073741826");
- fl.l_start = 1073741826;
- fl.l_len = 510;
- fl.l_type = F_RDLCK;
- if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");
-
- printf(" Unlocking 1 byte from 1073741824");
- fl.l_start = 1073741824;
- fl.l_len = 1;
- fl.l_type = F_UNLCK;
- if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");
-
- printf(" Write-locking 1 byte from 1073741824");
- fl.l_start = 1073741824;
- fl.l_len = 1;
- fl.l_type = F_WRLCK;
- if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");
-
- printf(" Write-locking 510 byte from 1073741826");
- fl.l_start = 1073741826;
- fl.l_len = 510;
- if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");
-
- printf(" Unlocking 2 byte from 1073741824");
- fl.l_start = 1073741824;
- fl.l_len = 2;
- fl.l_type = F_UNLCK;
- if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");
-
- close(fd);
- return 0;
-}
-
-/*
- * Test if permissions of freshly created directories allow entries
- * below them. This was a problem with OpenOffice.org and gcompris.
- * Mounting with option 'sync' seem to solve this problem while
- * slowing down file operations.
- */
-int test_subdirectory_creation(void) {
-#define LEVELS 5
- char *path = strdup("test");
- char *dirs[LEVELS];
- int level;
- printf("info: testing subdirectory creation\n");
- for (level = 0; level &lt; LEVELS; level++) {
- char *newpath = NULL;
- if (-1 == mkdir(path, 0777)) {
- printf(" error: Unable to create directory '%s': %s\n",
- path, strerror(errno));
- break;
- }
- asprintf(&newpath, "%s/%s", path, "test");
- free(path);
- path = newpath;
- }
- return 0;
-}
-
-/*
- * Test if symlinks can be created. This was a problem detected with
- * KDE.
- */
-int test_symlinks(void) {
- printf("info: testing symlink creation\n");
- unlink("symlink");
- if (-1 == symlink("file", "symlink"))
- printf(" error: Unable to create symlink\n");
- return 0;
-}
-
-int main(int argc, char **argv) {
- printf("Testing POSIX/Unix sematics on file system\n");
- test_symlinks();
- test_subdirectory_creation();
-#ifdef TEST_SQLITE
- test_sqlite_open();
-#endif /* TEST_SQLITE */
- test_gcompris_locking();
- return 0;
-}
-</pre>
-
-<p>When everything is working, it should print something like
-this:</p>
-
-<pre>
-Testing POSIX/Unix sematics on file system
-info: testing symlink creation
-info: testing subdirectory creation
-info: sqlite worked
-info: testing fcntl locking
- Read-locking 1 byte from 1073741824
- Read-locking 510 byte from 1073741826
- Unlocking 1 byte from 1073741824
- Write-locking 1 byte from 1073741824
- Write-locking 510 byte from 1073741826
- Unlocking 2 byte from 1073741824
-</pre>
-
-<p>I do not remember the exact details of the problems we saw, but one
-of them was with locking, where if I remember correctly, POSIX allow a
-read-only lock to be upgraded to a read-write lock without unlocking
-the read-only lock (while Windows do not). Another was a bug in the
-CIFS/SMB client implementation in the Linux kernel where directory
-meta information would be wrong for a fraction of a second, making
-OpenOffice.org fail to create its deep directory tree because it was
-not allowed to create files in its freshly created directory.</p>
-
-<p>Anyway, here is a nice tool for your tool box, might you never need
-it. :)</p>
-
-<p>Update 2010-08-27: Michael Gebetsroither report that he found the
-script so useful that he created a GIT repository and stored it in
-<a href="http://github.com/gebi/fs-test">http://github.com/gebi/fs-test</a>.</p>
+<p>I forbindelse med Bilkollektivets plan om å skaffe seg mulighet til
+å GPS-spore sine medlemmers bevegelser
+(<a href="http://people.skolelinux.org/pere/blog/Bilkollektivet_vil_ha_retten_til____se_hvor_jeg_kj__rer___.html">omtalt
+tidligere</a>), sendte jeg avgårde et spørsmål til <a
+href="http://www.datatilsynet.no/">Datatilsynet</a> for å gjøre dem
+oppmerksom på saken og høre hva de hadde å si. Her er korrespondansen
+så langt.</p>
+
+<p><blockquote>
+Date: Thu, 23 Sep 2010 13:38:55 +0200
+<br>From: Petter Reinholdtsen
+<br>To: postkasse@datatilsynet.no
+<br>Subject: GPS-sporing av privatpersoners bruk av bil?
+
+<p>Hei. Jeg er med i Bilkollektivet[1] her i Oslo, og ble i dag
+orientert om at de har tenkt å innføre GPS-sporing av bilene og krever
+at en for fremtidig bruk skal godkjenne følgende klausul i
+bruksvilkårene[2]:</p>
+
+<p><blockquote>
+ Andelseier er med dette gjort kjent med at bilene er utstyrt med
+ sporingsutstyr, som kan benyttes av Bilkollektivet til å spore biler
+ som brukes utenfor gyldig reservasjon.
+</blockquote></p>
+
+<p>Er slik sporing meldepliktig til datatilsynet? Har Bilkollektivet
+meldt dette til Datatilsynet? Forsøkte å søke på orgnr. 874 538 892
+på søkesiden for meldinger[3], men fant intet der.</p>
+
+<p>Hva er datatilsynets syn på slik sporing av privatpersoners bruk av
+bil?</p>
+
+<p>Jeg må innrømme at jeg forventer å kunne ferdes anonymt og uten
+radiomerking i Norge, og synes GPS-sporing av bilen jeg ønsker å bruke
+i så måte er et overgrep mot privatlivets fred. For meg er det et
+prinsipielt spørsmål og det er underordnet hvem og med hvilket formål
+som i første omgang sies å skulle ha tilgang til
+sporingsinformasjonen. Jeg vil ikke ha mulighet til å sjekke eller
+kontrollere når bruksområdene utvides, og erfaring viser jo at
+bruksområder utvides når informasjon først er samlet inn.<p>
+
+<p>1 &lt;URL: http://www.bilkollektivet.no/ >
+<br>2 &lt;URL: http://www.bilkollektivet.no/bilbruksregler.26256.no.html >
+<br>3 &lt;URL: http://hetti.datatilsynet.no/melding/report_search.pl >
+
+<p>Vennlig hilsen,
+<br>--
+<br>Petter Reinholdtsen
+</blockquote></p>
+
+<p>Svaret fra Datatilsynet kom dagen etter:</p>
+
+<p><blockquote>
+Date: Fri, 24 Sep 2010 11:24:17 +0200
+<br>From: Henok Tesfazghi
+<br>To: Petter Reinholdtsen
+<br>Subject: VS: GPS-sporing av privatpersoners bruk av bil?
+
+<p>Viser til e-post av 23. september 2010.</p>
+
+<p>Datatilsynet er det forvaltningsorganet som skal kontrollere at
+personopplysningsloven blir fulgt. Formålet med loven er å verne
+enkeltpersoner mot krenking av personvernet gjennom behandling av
+personopplysninger. Vi gjør oppmerksom på at vår e-post svartjeneste
+er ment å være en kortfattet rådgivningstjeneste, slik at vi av den
+grunn ikke kan konkludere i din sak, men gi deg innledende råd og
+veiledning. Vårt syn er basert på din fremstilling av saksforholdet,
+andre opplysninger vi eventuelt ikke kjenner til og som kan være
+relevante, vil kunne medføre et annet resultat.</p>
+
+<p>Det er uklart for Datatilsynet hva slags GPS-sporing Bilkollektivet
+her legger opp til. Dette skyldes blant annet manglende informasjon i
+forhold til hvilket formål GPS-sporingen har, hvordan det er ment å
+fungere, hvilket behandlingsgrunnlag som ligger til grunn, samt om
+opplysningene skal lagres eller ikke.</p>
+
+<p>Behandlingen vil i utgangspunket være meldepliktig etter
+personopplysningslovens § 31. Det finnes en rekke unntak fra
+meldeplikten som er hjemlet i personopplysningsforskriftens kapittel
+7. Da dette er et andelslag, og andelseiere i en utstrekning også kan
+karakteriseres som kunder, vil unntak etter
+personopplysningsforskriftens § 7-7 kunne komme til anvendelse, se
+lenke: <a href="http://lovdata.no/for/sf/fa/ta-20001215-1265-009.html#7-7">http://lovdata.no/for/sf/fa/ta-20001215-1265-009.html#7-7</a></p>
+
+<p>Datatilsynet har til orientering en rekke artikler som omhandler
+henholdsvis sporing og lokalisering, samt trafikanter og passasjerer,
+se lenke:
+<br><a href="http://www.datatilsynet.no/templates/article____1730.aspx">http://www.datatilsynet.no/templates/article____1730.aspx</a> og
+<br><a href="http://www.datatilsynet.no/templates/article____1098.aspx">http://www.datatilsynet.no/templates/article____1098.aspx</a></p>
+
+
+<p>Vennlig hilsen
+<br>Henok Tesfazghi
+<br>Rådgiver, Datatilsynet
+</blockquote></p>
+
+<p>Vet ennå ikke om jeg har overskudd til å ta opp kampen i
+Bilkollektivet, mellom barnepass og alt det andre som spiser opp
+dagene, eller om jeg bare finner et annet alternativ.</p>