Førstesiden Bli medlem Kontakt Informasjon Medlemsfordeler Utvalg Kalender NUUG/HIO prisen Dokumenter Innmelding Ressurser Mailinglister Wiki Linker Om de aktive Kart NUUG i media Planet NUUG webmaster@nuug.no
Powered by Planet! Last updated: March 30, 2017 02:16 PM

Planet NUUG

March 19, 2017

Petter Reinholdtsen

Free software archive system Nikita now able to store documents

The Nikita Noark 5 core project is implementing the Norwegian standard for keeping an electronic archive of government documents. The Noark 5 standard document the requirement for data systems used by the archives in the Norwegian government, and the Noark 5 web interface specification document a REST web service for storing, searching and retrieving documents and metadata in such archive. I've been involved in the project since a few weeks before Christmas, when the Norwegian Unix User Group announced it supported the project. I believe this is an important project, and hope it can make it possible for the government archives in the future to use free software to keep the archives we citizens depend on. But as I do not hold such archive myself, personally my first use case is to store and analyse public mail journal metadata published from the government. I find it useful to have a clear use case in mind when developing, to make sure the system scratches one of my itches.

If you would like to help make sure there is a free software alternatives for the archives, please join our IRC channel (#nikita on irc.freenode.net) and the project mailing list.

When I got involved, the web service could store metadata about documents. But a few weeks ago, a new milestone was reached when it became possible to store full text documents too. Yesterday, I completed an implementation of a command line tool archive-pdf to upload a PDF file to the archive using this API. The tool is very simple at the moment, and find existing fonds, series and files while asking the user to select which one to use if more than one exist. Once a file is identified, the PDF is associated with the file and uploaded, using the title extracted from the PDF itself. The process is fairly similar to visiting the archive, opening a cabinet, locating a file and storing a piece of paper in the archive. Here is a test run directly after populating the database with test data using our API tester:

~/src//noark5-tester$ ./archive-pdf mangelmelding/mangler.pdf
using arkiv: Title of the test fonds created 2017-03-18T23:49:32.103446
using arkivdel: Title of the test series created 2017-03-18T23:49:32.103446

 0 - Title of the test case file created 2017-03-18T23:49:32.103446
 1 - Title of the test file created 2017-03-18T23:49:32.103446
Select which mappe you want (or search term): 0
Uploading mangelmelding/mangler.pdf
  PDF title: Mangler i spesifikasjonsdokumentet for NOARK 5 Tjenestegrensesnitt
  File 2017/1: Title of the test case file created 2017-03-18T23:49:32.103446

You can see here how the fonds (arkiv) and serie (arkivdel) only had one option, while the user need to choose which file (mappe) to use among the two created by the API tester. The archive-pdf tool can be found in the git repository for the API tester.

In the project, I have been mostly working on the API tester so far, while getting to know the code base. The API tester currently use the HATEOAS links to traverse the entire exposed service API and verify that the exposed operations and objects match the specification, as well as trying to create objects holding metadata and uploading a simple XML file to store. The tester has proved very useful for finding flaws in our implementation, as well as flaws in the reference site and the specification.

The test document I uploaded is a summary of all the specification defects we have collected so far while implementing the web service. There are several unclear and conflicting parts of the specification, and we have started writing down the questions we get from implementing it. We use a format inspired by how The Austin Group collect defect reports for the POSIX standard with their instructions for the MANTIS defect tracker system, in lack of an official way to structure defect reports for Noark 5 (our first submitted defect report was a request for a procedure for submitting defect reports :).

The Nikita project is implemented using Java and Spring, and is fairly easy to get up and running using Docker containers for those that want to test the current code base. The API tester is implemented in Python.

March 19, 2017 07:00 AM

March 16, 2017

Ole Aamot Gnome Development Blog

GUADEC 2017 in Manchester

Yesterday I booked housing and conference tickets for GUADEC 2017 in Manchester, so in July I am flying from Oslo to Manchester, meet other Free Software hackers from the GNOME Project, and fly back to Oslo via Malaga. It will be my only trip this year.

by oleaamot atMarch 16, 2017 07:02 PM

Porting GNOME Internet Radio Locator 9.9.x to GTK+ 3.0

GNOME Internet Radio Locator 9.9.x was released in March 2017 and I have begun porting the program to GTK+ 3.0.

The new release ships with KCED (http://www.centralia.edu/kced/).

The initial GTK+ 3.0, libchamplain and GNOME Maps port of GNOME Internet Radio Locator is not yet functioning as expected, but the software tree is building.

Fedora Core 25 package is now available for version 9.9.1 (GTK+ 2.0): girl-9.9.1-1.fc25.x86_64.rpm

Fedora Core 25 package is now available for version 9.9.0 (GTK+ 3.0): girl-9.9.0-1.fc25.x86_64.rpm

Ubuntu 17.04 package is now available for version 9.9.1 (GTK+ 2.0): girl_9.9.1-1_amd64.deb

Ubuntu 17.04 package is now available for version 9.9.0 (GTK+ 3.0): girl_9.9.0-1_amd64.deb

Source package is now available for version 9.9.1 (GTK+ 2.0): girl-9.9.1.tar.xz

Source package is now available for version 9.9.0 (GTK+ 3.0): girl-9.9.0.tar.xz

After initial work on the GTK+ 3.0 port in GIRL 9.9.0, I realized that many people still depend on the GIRL 9.8.0 branch on GTK+ 2.0 with local stations, built automatically from git.gnome.org, so I decided to release 9.9.0 with initial GTK+ 3.0 support and backport GIRL 9.9.1 to GTK+ 2.0 in GIRL 9.9.1 with details about the GTK+ 3.0 port in GIRL 9.9.0. More details about the GTK+ 3.0 port is available from https://git.gnome.org/browse/girl/tree/GNOME3

Radio retransmitters MUST use GTK+ 2.0 (9.9.1) and not use GIRL
9.9.0, because this GTK+ 3.0 port not yet supports audio playback.

by oleaamot atMarch 16, 2017 06:28 PM

March 09, 2017

Petter Reinholdtsen

Detecting NFS hangs on Linux without hanging yourself...

Over the years, administrating thousand of NFS mounting linux computers at the time, I often needed a way to detect if the machine was experiencing NFS hang. If you try to use df or look at a file or directory affected by the hang, the process (and possibly the shell) will hang too. So you want to be able to detect this without risking the detection process getting stuck too. It has not been obvious how to do this. When the hang has lasted a while, it is possible to find messages like these in dmesg:

nfs: server nfsserver not responding, still trying
nfs: server nfsserver OK

It is hard to know if the hang is still going on, and it is hard to be sure looking in dmesg is going to work. If there are lots of other messages in dmesg the lines might have rotated out of site before they are noticed.

While reading through the nfs client implementation in linux kernel code, I came across some statistics that seem to give a way to detect it. The om_timeouts sunrpc value in the kernel will increase every time the above log entry is inserted into dmesg. And after digging a bit further, I discovered that this value show up in /proc/self/mountstats on Linux.

The mountstats content seem to be shared between files using the same file system context, so it is enough to check one of the mountstats files to get the state of the mount point for the machine. I assume this will not show lazy umounted NFS points, nor NFS mount points in a different process context (ie with a different filesystem view), but that does not worry me.

The content for a NFS mount point look similar to this:

device /dev/mapper/Debian-var mounted on /var with fstype ext3
device nfsserver:/mnt/nfsserver/home0 mounted on /mnt/nfsserver/home0 with fstype nfs statvers=1.1
        opts:   rw,vers=3,rsize=65536,wsize=65536,namlen=255,acregmin=3,acregmax=60,acdirmin=30,acdirmax=60,soft,nolock,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=,mountvers=3,mountport=4048,mountproto=udp,local_lock=all
        age:    7863311
        caps:   caps=0x3fe7,wtmult=4096,dtsize=8192,bsize=0,namlen=255
        sec:    flavor=1,pseudoflavor=1
        events: 61063112 732346265 1028140 35486205 16220064 8162542 761447191 71714012 37189 3891185 45561809 110486139 4850138 420353 15449177 296502 52736725 13523379 0 52182 9016896 1231 0 0 0 0 0 
        bytes:  166253035039 219519120027 0 0 40783504807 185466229638 11677877 45561809 
        RPC iostats version: 1.0  p/v: 100003/3 (nfs)
        xprt:   tcp 925 1 6810 0 0 111505412 111480497 109 2672418560317 0 248 53869103 22481820
        per-op statistics
                NULL: 0 0 0 0 0 0 0 0
             GETATTR: 61063106 61063108 0 9621383060 6839064400 453650 77291321 78926132
             SETATTR: 463469 463470 0 92005440 66739536 63787 603235 687943
              LOOKUP: 17021657 17021657 0 3354097764 4013442928 57216 35125459 35566511
              ACCESS: 14281703 14290009 5 2318400592 1713803640 1709282 4865144 7130140
            READLINK: 125 125 0 20472 18620 0 1112 1118
                READ: 4214236 4214237 0 715608524 41328653212 89884 22622768 22806693
               WRITE: 8479010 8494376 22 187695798568 1356087148 178264904 51506907 231671771
              CREATE: 171708 171708 0 38084748 46702272 873 1041833 1050398
               MKDIR: 3680 3680 0 773980 993920 26 23990 24245
             SYMLINK: 903 903 0 233428 245488 6 5865 5917
               MKNOD: 80 80 0 20148 21760 0 299 304
              REMOVE: 429921 429921 0 79796004 61908192 3313 2710416 2741636
               RMDIR: 3367 3367 0 645112 484848 22 5782 6002
              RENAME: 466201 466201 0 130026184 121212260 7075 5935207 5961288
                LINK: 289155 289155 0 72775556 67083960 2199 2565060 2585579
             READDIR: 2933237 2933237 0 516506204 13973833412 10385 3190199 3297917
         READDIRPLUS: 1652839 1652839 0 298640972 6895997744 84735 14307895 14448937
              FSSTAT: 6144 6144 0 1010516 1032192 51 9654 10022
              FSINFO: 2 2 0 232 328 0 1 1
            PATHCONF: 1 1 0 116 140 0 0 0
              COMMIT: 0 0 0 0 0 0 0 0

device binfmt_misc mounted on /proc/sys/fs/binfmt_misc with fstype binfmt_misc

The key number to look at is the third number in the per-op list. It is the number of NFS timeouts experiences per file system operation. Here 22 write timeouts and 5 access timeouts. If these numbers are increasing, I believe the machine is experiencing NFS hang. Unfortunately the timeout value do not start to increase right away. The NFS operations need to time out first, and this can take a while. The exact timeout value depend on the setup. For example the defaults for TCP and UDP mount points are quite different, and the timeout value is affected by the soft, hard, timeo and retrans NFS mount options.

The only way I have been able to get working on Debian and RedHat Enterprise Linux for getting the timeout count is to peek in /proc/. But according to Solaris 10 System Administration Guide: Network Services, the 'nfsstat -c' command can be used to get these timeout values. But this do not work on Linux, as far as I can tell. I asked Debian about this, but have not seen any replies yet.

Is there a better way to figure out if a Linux NFS client is experiencing NFS hangs? Is there a way to detect which processes are affected? Is there a way to get the NFS mount going quickly once the network problem causing the NFS hang has been cleared? I would very much welcome some clues, as we regularly run into NFS hangs.

March 09, 2017 02:20 PM

March 08, 2017

NUUG news

Til forsvar for Fri programvare - NUUGs prosesskriv i DNS-beslagsanke

Som oppfølging til anken i DNS-beslagsaken gikk NUUGs prosessskriv i posten i går, på dagen året etter at DNS-navnet ble beslaglagt av politiet. Vi håper argumentene om hvorfor NUUG har engasjert seg i dette er forståelig også for de som ikke har satt seg inn i saken. Hvis du synes arbeidet NUUG gjør her er viktig, så er det svært verdifullt om du støtter oss økonomisk slik at vi klarer å føre saken helt til siste konklusjon.

Saka gjeld: Anke over Follo tingretts orskurd om beslag av DNS-domenet «popcorn-time.no».


Norwegian Unix User Group (NUUG) erklærer med dette partshjelp for IMCASREG8 og Internet Marketing Consults AS, jf. tvisteloven § 15-7 (b) og HR-2014-947-U. NUUG var også partshjelpar i tingretten, utan protest frå Økokrim.

NUUG ønskjer at det blir halde munnleg forhandling i medhald av straffeprosessloven § 387, 1. ledd. Det er heilt sentralt for sakas opplysning at programvara Popcorn Time vert demonstrert i retten, for å illustrere at lovleg bruk er fullt mogleg.

Det bes om løyve til at underteikna kan opptre som prosessfullmektig for NUUG i lagmannsretten, jf. domstolsloven § 223, 1. ledd.

Det opplysast om at separat prosesskriv vil bli inngitt av Elektronisk Forpost Norge.

1.1. Grunnlaget for partshjelpa

NUUG er ei ikkje-kommersiell foreining som arbeider for spreiing av UNIX-liknande system, fri programvare og opne standardar i Noreg. Foreininga blei danna i 1984 med det formål å auke interessa for bruk av UNIX, og å stimulere til utveksling av informasjon og erfaring mellom brukarar. NUUG er den norske greina av den internasjonale organisasjonen USENIX («The Advanced Computing Systems Association»). NUUG har i dag totalt 241 medlemmer. NUUG vert representert ved og dagleg drifta av eit styre beståande av fem medlemmer.

Bilag 1: Norwegian Unix User Groups vedtekter.

Beslaget i denne saka bidreg til utryggleik blant medlemma i NUUG om kva som lovleg kan publiserast utan å risikere beslag og strafferettsleg forfølging. Dette gjeld særleg sidan eit hovudpoeng med fri programvare er deling, og det at det blir drive mykje frivillig informasjons- og rettleiingsverksemd i regi av NUUG og medlemma. Eit beslag som nettopp er grunngjeve i at slik informasjonsverksemd utgjer straffbar medverking, grip direkte inn i foreininga sitt formål og naturlege verkeområde.

Programvare som Popcorn Time er såkalla «fri programvare». Fri programvare, eller open kjeldekode som det også vert kalla, inneber at ein har høve til å endre, forbetre, spreie og dele programvara utan hinder av opphavsrett. Det vil seie at ein kan lage nye løysingar basert på eksisterande programvare utan at ein må byrje på nytt kvar gong. Når ein så byggjer vidare på fri programvare, kan ein dele sin endra versjon, som andre så igjen kan studere og vidareutvikle – anten for å forbetre produktet til nytte for fellesskapet, eller for å tilpasse produktet til sin bruk. Fri programvare inneber også at ein kan reparere programvare sjølv dersom ein finn feil, på same måte som ein kan reparere andre eigendeler. Det er dette som skil fri programvare frå lisensiert programvare, der ein berre får lov til å bruke programvara, utan å ha høve til å endre eller forbetre den, verken til eigen eller fellesskapets nytte.

Eit eksempel på vellukka bruka av fri programvare, er Linux, som brukast i fleirtalet av verdas smarttelefoner. Den mest kjente varianten er Android. Eit anna eksempel er LibreOffice, som er basert på OpenOffice og er eit mykje brukt alternativ til Microsoft Office.

Bilag 2: Informasjonfolder om fri programvare utarbeida av NUUG

At NUUG er tilhengjarar av fri programvare, inneber likevel ikkje at dei er motstandarar av opphavsrett generelt eller støttar slik bruk av Popcorn Time som utgjer krenking av opphavsrett. Sjølv om Popcorn Time også kan brukast til å spreie opphavsrettsbeskytta materiale, er langt frå all bruk av Popcorn Time ulovleg. NUUG vil halde fram at å beslaglegge DNS-domenet popcorn-time.no er eit ulovleg, uproporsjonalt og ueigna tiltak for å motverke ulovleg spreiing av opphavsrettsbeskytta materiale. Beslaget er retta mot ei nettside som innehaldt informasjon om ei lovleg programvare, som både kan brukast og som blir brukt til lovlege formål. Nettsida åtvara også brukarane om at nokon former for bruk av Popcorn Time kunne medføre brot på opphavsrett. På popcorn-time.no var det vidare informasjon om «Butter Project», som er ein modifikasjon av Popcorn Time som berre gjer oppslag i fri-lisensierte innhaldskatalogar som vodo.net, archive.org og CCC Media. Denne modifikasjonen av Popcorn Time illustrerer etter NUUG si oppfatning godt nytta av fri programvare. NUUG ser det som eit paradoks at Økokrim vel å ta beslag i ei nettside som faktisk informerer i korleis programvare kan brukast til å unngå krenkingar av opphavsretten.


For å lettare belyse NUUG sine argumenter i saka, meiner vi det er hensiktsmessig å gjere greie for faktum i noko større grad enn det som følgjer av Follo tingretts orskurd og Økokrims avgjersle om beslag.

2.1. Teknologien - begreper

Av omsyn til sakas opplysing finn vi det hensiktsmessig å gjere nokre begrepsavklaringer.

Programvara Popcorn Time kombinerer tre teknologier – nemleg Bittorrent, videoavspeling og oppslag i katalogtjenester.

Bittorrent er eit «peer to peer»-system for å distribuere datafiler i eit nettverk. Det fungerer slik at kvar deltaker i nettverket både er mottaker og videredeler av filer, noko som bidreg til effektiv distribusjon og utnytting av bandbredde. For å bruke Bittorrent-teknologi treng brukaren ein «bittorrent-klient». Det finns mange forskjellige bittorrent-klienter for dei aller fleste datasystem. Popcorn Time har slik funksjonalitet integrert, det same har den norske nettlesaren Opera.

Popcorn-Time.io, Butter og deira variantar som alle går under samlenemninga Popcorn Time, får innhald frå kjelder som gjerne kallast katalogar. . Katalogane inneheld metadata, som peikar brukaren vidare til der ein kan laste ned materiale frå.

2.2. Popcorn-time.no og Popcorn Time

Popcorn-time.no var domenenamnet til ei nettside som ga informasjon om programvara Popcorn Time i ulike variantar. Nettsida lenka også til andre nettsider der programvara kunne lastast ned. Det er mogleg å strømme opphavsrettsbeskytta innhald gjennom noko av dei programma som går under namnet Popcorn Time, men sjølve programvara er ikkje ulovleg. Som nemnd over, er også mykje fritt innhald tilgjengeleg, blant anna under såkalla «Creative Commons»-lisensar. Teknologien som brukast i Popcorn Time er BitTorrent-protokollen.

Innehavar av popcorn-time.no var også bevisst på at programvara kunne misbrukast, og tok aktive skritt mot å hindre misbruk blant anna ved at følgjande tekst var tydeleg på hovudsida:

Før du fortsetter, bør du være klar over at bruk av Popcorn Time og lignende kan være ulovlig. Mye av innholdet i disse tjenestene er opphavsrettsbeskyttet materiale som deles og lastet ned uten tillatelse fra eierne og produsenter av materialet. Bruk av disse tjenestene vil ofte resultere i et brudd på opphavsrett, avhengig av hva du ser. Hvis du likevel velger å bruke tjenestene du lese om på dette området, gjør du det på egen risiko, og det anbefales å følge loven.


3.1. Innleiing

På bakgrunn av faktum og NUUGs kjernesaker som nemnd tidlegare i dette skriv, er NUUG særleg bekymra for Økokrims påstand og Follo tingretts konklusjon om at det ligg føre straffbar medverking. Vi vil difor knytte nokon særlege merknader til denne problemstillinga i det følgjande.

NUUG vil halde fram at det ikkje ligg føre straffbar medverking, og at beslaget difor må hevast. Økokrim har grunngjeve beslaget i straffeprosesslova § 203 første ledd jf. § 205 første ledd, som angir at det kan tas beslag i «ting som antas å kunne inndras». Økokrim har vidare vist til straffeloven § 69, som opnar for inndraging av ting som «er frembrakt ved, har vært gjenstand for, eller har vært brukt eller bestemt til bruk ved en straffbar handling». Det underliggande straffbare forhold i saka er hevda å vere medverking til brot på åndsverkloven § 2, jf. § 54 første ledd, jf. tredje ledd, jf. straffeloven § 15.

Straffelova § 15 slår fast at «Et straffebud rammer også den som medvirker til overtredelsen, når ikke annet er bestemt». Dei nærmare grensene for medverkingsansvaret følgjer av fast og langvarig norsk rettspraksis. Den nye straffelova er ikkje meint å endre rettstilstanden på dette punkt, jf. Ot.prp. nr 90 (2003-2004), kap. 30.1 (merknaden til § 15).

Medverkeransvaret skal ramme personar som, utan sjølv å ha utført den aktuelle straffbare handlinga, har utvist det minimum av straffverd som ei handling i samsvar gjerningsskildringa krev.

Før vi drøftar medverking vidare, er det grunn til å presisere kva den straffbare handlinga hovudpersonen utfører faktisk består i. Den aktuelle straffbare handlinga er tilgjengeleggjering av eksemplar i strid med åndsverklova § 2. I praksis skjer tilgjengeleggjeringa ved at opprinneleg opplaster gjer ein bittorrent-pakke tilgjengeleg på nettet. Deretter må referanse til eller informasjon om opphavsrettsbeskytta materiale plasserast i ein katalogtjeneste. Ein måte å gjere oppslag i desse katalogtjenestane på, er via programvara Popcorn Time. Det er altså ikkje Popcorn Time som gjer materiale tilgjengeleg, men den som gjer materiale tilgjengeleg for søk via Popcorn Time eller på andre måtar. Ein treng ikkje Popcorn Time for å få tilgang til slikt materiale, men kan finne det med ein vanleg nettlesar om ein kjenner nettadressa.

3.2. Eventuell straffbar medverking for Popcorn-time.no

Den viktigaste rettslege problemstillinga i denne saka er om det innehavar av popcorn-time.no har gjort, nemleg å bidra til spreiing av ei programvare og å informere om korleis den kan brukast, er nok til å slå fast straffbar medverking til brot på åndsverklova § 2.

Follo tingrett har i sin orskurd grunngjeve konklusjonen om straffbar medverking slik:

Programvaren Popcorn Time gjør filmer og TV-seier tilgjengelig for allmennheten uten opphavsmenns samtykke. Nettsiden https://popcorn-time.no oppfordret besøkende til å laste ned denne programvaren. Nettsiden inneholdt lenker til andre nettsider hvor programvaren enkelt kunne lastes ned. I en "disclaimer" ble besøkende varslet om at programvaren kunne være ulovlig. Likevel ga nettsiden detaljert veiledning om hvordan programvaren skulle installeres og brukes. Nettsiden ble jevnlig oppdatert og vedlikeholdt.

Retten er ikke enig med de begjærende parter i at nettsiden bare inneholdt en generell omtale av programvaren. Nettsiden synes å ha oppfordret til, tilrettelagt for og bidratt til muligheter for økt bruk av programvaren i det norske marked. Etter en samlet vurdering er retten derfor kommet til at det foreligger skjellig grunn til mistanke om et straffbart forhold, nærmere bestemt medvirkning til overtredelse av åndsverkloven § 2, jf. lovens § 54 første ledd bokstav a og straffeloven § 15.

Den siterte skildringa gjev inntrykk av at tingretten ser på sjølve programvara som ulovleg. Det er ingenting i grunngjevinga som drøfter forholdet mellom popcorn-time.no og gjerningane til hovudpersonen. Dette gjer det vanskelegare å sjå på kva måte tingretten meiner at popcorn-time.no medverker til ulovleg tilgjengeleggjering av opphavsrettsbeskytta materiale.

I norsk rett er det vanleg å snakke om tre former for medverking: Fysisk, psykisk, og «passiv» (medverking i form av unnlating). Tingretten si skildring sitert over gjer grunn til å drøfte kva for alternativ som kan vere aktuelt.

Det kan ikkje vere tale om fysisk medverking i denne saka. Popcorn Time er ei programvare med lovleg teknologi og mange lovlege bruksområde. Programvara er samanliknbar med verktøy som datamaskiner, telefonar, nettlesarar eller USB-kablar. Alle desse verktøya kan potensielt brukast til forskjellige kriminelle handlingar, for eksempel framsetting av truslar eller overføring av opphavsrettsbeskytta materiale. Det gjer likevel sjølvsagt ikkje verktøya ulovlege. Å tilby og informere om slike verktøy kan difor ikkje utgjere straffbar medverking, og det same gjeld for Popcorn Time.

Neste alternativ er om det ligg føre psykisk medverking. Med psykisk medverking tenkjer ein på tilfelle der «tiltalte positivt har tilskyndet til handlingen eller styrket gjerningspersonens forsett», jf. Rt. 2014 s. 930 avsnitt 11.

Spørsmålet blir om popcorn-time.no ved å gi informasjon og lenke til programvara Popcorn Time, kan seiast å ha positivt tilskynda til (oppfordra til) ulovleg spreiing av opphavsrettsbeskytta materiale, eller styrka forsettet til gjerningspersonen til å foreta slik spreiing.

NUUG kan ikkje sjå at det låg føre nokon oppfordringar av noko slag på popcorn-time.no til ulovleg deling av opphavsrettsbeskytta materiale. Nettsida oppfordrar og gir rettleiing i bruk av Popcorn Time, men ga ingen spesifikk informasjon om opphavsrettsbeskytta materiale eller oppfordra på nokon måte til slik bruk av programvara. Tvert derimot innehaldt sida følgjande tekst, nettopp for å hindre misbruk av programvara:

Før du fortsetter, bør du være klar over at bruk av Popcorn Time og lignende kan være ulovlig. Mye av innholdet i disse tjenestene er opphavsrettsbeskyttet materiale som deles og lastet ned uten tillatelse fra eierne og produsenter av materialet. Bruk av disse tjenestene vil ofte resultere i et brudd på opphavsrett, avhengig av hva du ser. Hvis du likevel velger å bruke tjenestene du lese om på dette området, gjør du det på egen risiko, og det anbefales å følge loven. (vår utheving og understreking)

Det låg altså ikkje føre nokon positiv tilskynding, men derimot positiv oppfordring til å avstå frå ulovleg bruk av Popcorn Time.

Det siste alternativet er om det ligg føre straffbar medverking i form av passivitet.

Den klare hovudregelen i norsk rett er at passivitet frå medverkeren ikkje kan gi grunnlag for straff. Passivitet kan berre medføre straffansvar dersom den passive har eit særleg band til saka, og soleis har ei særleg plikt til å forhindre den straffbare handlinga.

I denne saka står popcorn-time.no i alle høve for langt frå dei straffbare handlingane til at ansvar for passiv medverking kan vere aktuelt. Den ulovlege delinga skjer ikkje gjennom popcorn-time.no. Nettsida har ingen kontroll med kven som lastar ned programvara, og ikkje kva programvara brukast til. Dersom det skulle vere medverking å berre informere om programvara slik popcorn-time.no gjorde, følgjer det logisk at ein kvar som informerer om lovlege produkt som har eit potensiale for misbruk, kan hamne i straffansvar. Norsk strafferett bygger ikkje på eit så strengt ansvar for medverking.

Det avgjerande i tvilstilfeller om medverking, er straffverdigheita av den aktuelle atferd og preventive omsyn. Som det er argumentert for over, er bruk av og informasjon om fri programvare ønskeleg i eit moderne, teknologidrive samfunn. Det er lite straffverdig i det å legge til rette for dette. NUUG ser ikkje heilt vekk i frå at DNS-domenebeslag kan vere eit aktuelt tvangsmiddel mot domene som positivt oppfordrar til lovbrot. Popcorn-time.no er derimot ikkje eit slikt domene.



Då Norwegian Unix User Group opptrer som partshjelpar leggjast det ikkje ned sjølvstendig påstand, men det erklæres partshjelp for ankas prinsipielle påstand nr 1 og 2, samt dei subsidiære påstandande nr. 1 og 3.


Prosesskrivet med bilag er sendt Follo Tingrett i fire – 4 – eksemplar.

I tillegg er to eksemplar sendt motpartens prosessfullmektig.

Kopi er også sendt elektronisk per e-post.

Oslo, 7. mars 2017
Advokatfirmaet Føyen Torkildsen AS

Kjetil Wick Sætre
kws (at) foyentorkildsen.no

Nå venter vi spent på prosessskrivet fra EFN, og respons fra motpart og domstol.

March 08, 2017 09:00 AM

February 26, 2017

NUUG news

Her er vår anke av Tingrettens DNS-beslagskjennelse

Etter rettens kjennelse i DNS-beslagssaken bestemte vi oss for å anke avgjørelsen. Anken er nå skrevet og postet. Vi ville satt umåtelig pris på at du viste din støtte til dette arbeidet ved å donere penger til forsvarsfondet.

Anke til Borgarting lagmannsrett

Innledning. Sakens parter

Ankende part angriper i medhold av strpl. §377 tingrettens opprettholdelse av beslag på grunn av feil i saksbehandlingen, feil i bevisbedømmelsen og feil i lovanvendelsen, jf. §314, jf. §379. Saksbehandlingsfeilen som påberopes for kjennelsens slutning nr. 1 og 2, er at ankende part ikke fikk innsyn i sakens dokumenter, jf. §242. Det påberopes at dette også innebærer feil i lovanvendelsen i relasjon til kjennelsens slutning nr. 3 som avviste begjæringen om innsyn. Det påberopes også feil i bevisbedømmelsen ad slutning nr. 3.

Vedrørende slutning nr. 1 og 2 påberopes at tingretten har misforstått hva som er den straffbare handlingen og i stedet omtaler et forhold som er fullt lovlig. Det anføres at feilen er så grunnleggende at den utgjør en saksbehandlingsfeil som må lede til at kjennelsen oppheves. Det påpekes også feil i bevisbedømmelsen og rettsanvendelsen.

Av mer kuriøs art ser ankende part at tingretten på kjennelsens forside ikke har oppført partshjelpere. Det anføres at det riktige er å gjøre dette. Dette bes rettet. Videre ser ankende part at tingretten har satt opp IMC AS og IMCASREG8 som selvstendige rettssubjekter. Det anføres at IMCASREG8 i realiteten ikke er et selvstendig rettssubjekt, slik verken IMCASREG1, IMCASREG2 og så videre opp til IMCASREG22 ikke er reelle selvstendige rettssubjekter. Dette påpekes fordi det kan være relevant i bedømmelsen av hvilken strafferettslige status berørt(e) part(er) har i kravet om å oppheve beslaget, jf. strpl. §208. Det anføres at Økokrim har behandlet IMCASREG8 som en integrert del av IMC AS. Når Økokrim nå bestrider dette, er det fordi graden av «substanially affected» vil være større dersom IMCASREG8 og IMC AS blir behandlet som ett rettssubjekt. Det er virkningen av «siktelsen» og ikke om vedkommende formelt er siktet som gir rettigheter etter EMK art. 6 (Deweer v. Belgium, Application No. 6903/75, Judgement of 27 th February 1980). Stilling som siktet innebærer rett til innsyn, jf. §242.

Det påpekes at IMCASREG8 ikke har eget regnskap. Alle inntekter og utgifter som skriver seg fra domener registrert på IMCASREG8 og de 21 andre underliggende foreningene, bokføres som inntekter og utgifter på IMC AS. «Siktemålet med ransakingen [var] å finne ut hvem IMCASREG8 har opprettet domenet på vegne av», jf. beslutning om ransaking av 4.3.2016 i sak 16-038689ENE-FOLL, men:

«På bakgrunn av at det er de samme personene som er involvert i IMCASREG8 og Internet Marketing Consult AS, og at IMCASREG8 ikke har selvstendig forretningsadresse, anfører ØKOKRIM at det også er særlig grunn til å tro at det vil kunne finnes bevis i lokalene til aksjeselskapet.»

Tingretten sluttet seg til dette i beslutningen om ransaking. Tingretten så bakenfor at IMCASREG8 hadde eget org.nr. og la i stedet vekt på de reelle forholdene da IMC AS ble gjort til gjenstand for ransakingen for å finne ut mer om bestilleren av domenet registrert på IMCASREG8. Det anføres at dette fortsatt må gjelde når beslaget kreves opphevet. Ankende part fastholder at IMC AS og IMCASREG8 er én part og anfører at tingrettens oppdeling medfører feil i bevisbedømmelsen.

Tingrettens slutning nr 3. Innsynsbegjæringen

Tingretten avviste ankende parts begjæring om innsyn, jf. strpl. §242, fordi ankende part «ikke er en del av den personkretsen som har krav på innsyn i straffesakens dokumenter etter straffeprosessloven § 242 første ledd». Det anføres at dette medfører feil både i bevisbedømmelsen og i anvendelsen av §242. Ad bevisbedømmelsen er spørsmålet om ankende part var mistenkt under ransakingen og beslaget. Dette gjennomgås først.

«Mistenkte [...] skal på begjæring gis adgang til å gjøre seg kjent med sakens dokumenter», jf. §242. Tingretten har lagt til grunn at IMC AS/IMCASREG8 ikke har vært mistenkt. Det anføres at dette er feil. Følgende fem bevis på mistanke foreligger:

1. Politiet fulgte ikke vanlige rutiner for beslag av domener. Det vanlige er at Norid får beskjed om beslaglegging. Deretter gir Norid registrar beskjed om å fjerne domenet. I herværende sak foretok politiet ransakelse hos IMC AS. Det anføres at når Økokrim valgte å bryte vanlige rutiner så var denne framgangsmåten hensiktsmessig utelukkende dersom IMC AS/IMCASREG8 var mistenkt for lovbrudd eller for medvirkning til lovbrudd.

2. Politiets opplysning på http://popcorn-time.no/: «Dette domenet er beslaglagt av ØKOKRIM i medhold av straffeprosessloven § 203 første ledd jf. § 205 første ledd.» Bestemmelsen §205 gjelder beslag av ting «som besitteren ikke vil utlevere frivillig». Dette underbygger punkt 1 ovenfor. Det anføres at politiet har vært bekymret for at IMC AS ikke ville samarbeide/holde opplysninger tilbake. Det anføres videre at en slik bekymring implisitt er en mistanke om medvirkning på ett eller annet nivå. Til dette kommer at IMC AS med tilhørende foreninger alltid har etterkommet tidligere pålegg om å fjerne domener. Denne gangen tok påtalemyndigheten forholdsregler mot IMC AS.

3. Anmeldelsen: Det framgår av kjennelsen at den «opprinnelige anmeldelsen var riktignok rettet mot IMC og IMCASREG8, men Økokrim har aldri erklært dem som mistenkte i saken». (Ankende part har ikke fått innsyn i dette.) Først, ankende part har ikke anført at Økokrim har «erklært» noen mistenkt. Ankende parts henvisning til første ledd i §82 gjelder tredje alternativ: Når «det er besluttet eller foretatt pågripelse, ransaking, beslag eller liknende forholdsregler rettet mot ham», får mistenkte «stilling som siktet». Dernest, og dette er sentralt i bevisbedømmelsen, så var altså anmeldelsen rettet mot IMC AS/IMCASREG8. Det anføres at på dette grunnlaget har Økokrim åpnet etterforskning mot IMC AS/IMCASREG8. IMC AS/IMCASREG8 har derfor vært mistenkt.

4. Beslaget i inngående faktura: Beslaget av regnskapet som begjæres opphevet, gjelder inngående faktura fra IMC AS’s leverandører. Det gjelder ikke utgående faktura til IMC AS’s kunder som er de som bestiller domener. Det anføres at inngående faktura kun kan benyttes til å kartlegge virksomheten til IMC AS, og ikke «hvem som har bestilt domenet» som tingretten legger til grunn. Det anføres at så lenge beslaget i inngående faktura opprettholdes, underbygger det at IMC AS er mistenkt.

5. Økokrim fortalte i rettsmøtet 1.2.2017 at det ble klart først under avhøret av styreleder Morten Eriksen under ransakingen at IMC AS/IMCASREG8 ikke var mistenkt.

Det anføres at disse fem forholdene beviser at under ransakingen hadde IMC AS/IMCASREG8 status som mistenkt. Når tingretten mener at ankende part ikke tilhører personkretsen oppramset i §242, foreligger det feil i bevisbedømmelsen. Som mistenkt har ankende part således rett på innsyn, jf. §242.

Selv om ransakingen avdekket at det ikke lenger var grunnlag for å opprettholde mistanken fravrister ikke det ankende parts rettigheter knyttet til beslaget med tanke på å få det opphevet. Det anføres at det er stillingen som ankende part hadde under beslaget, som må legges til grunn, ikke minst fordi ankende part begjærer innsyn i saksdokumenter som var grunnlaget for ransakingen.

Så over til feilen i anvendelsen av §242: Det anføres at det rettslige utgangspunktet er at enhver som kan kreve beslaget opphevet, jf. §208, har rett på innsyn i sakens dokumenter. Dette følger av det kontradiktoriske prinsippet som står sterkt i norsk rett, jf. blant annet Rt-2008-657, Rt-2006-120, Rt-2004-1974 og Rt-2004-1789. Dersom det skal gjøres innskrenkning i retten til innsyn, må det følge av lov. Det anføres at §242 ikke var laget for å frata begjærende part etter §208 retten til innsyn. Det anføres at da §242 ble utformet, tenkte ikke lovgiver på begjærende part etter §208. Dette er grunnen til at begjærende part etter §208 ikke nevnes i §242. Straffeprosessloven er full av slike «feil». Selv internt i §242, jf. sjette ledd, nevnes ikke mistenktes forsvarer, heller ikke bistandsadvokaten til tross for at det kontradiktoriske prinsippet tilsier dette. Dersom personkretsen i samtlige av straffeprosesslovens bestemmelser skal leses bokstavelig, må sågar undertegnde presumptivt anses som forsvarer eller IMC AS som siktet for å få anket undertegnet, jf. §380, men da har ankende part i hvert fall rett på innsyn, jf. §242.

Dersom lovgiver hadde ment å frata begjærende part etter §208 retten til innsyn i sakens dokumenter, ville dette når det ikke framgår av §242, ha framkommet av forarbeidene. Når dette ikke framkommer i forarbeidene, understreker det at lovgiver ikke har vurdert retten til innsyn for begjærende part etter §208. Det er derfor nødvendig å falle tilbake på prinsippet om kontradiksjon og rett til innsyn. Siden tingretten ikke har anvendt prinsippet om kontradiksjon, foreligger det en tolkningsfeil, og dermed lovanvendelsefeil, bak slutning nr. 3.

Tingrettens avvisning av innsyn utgjør også en saksbehandlingsfeil for slutning nr. 1 og 2 med den følgen at disse to slutningene i tingrettens avgjørelse må oppheves.

Ankende part ønsker blant annet å etterprøve Økokrims anførsel om å ha dokumentert for retten at 99 % av bruken av programvaren Popcorn Time skal innebære brudd på opphavsretten. Dette og opplysninger om nettstedet popcorn-time.no ved beslagstidspunktet med videre er det viktig å få innsyn i. Den av Økokrim holdte presentasjon om domenet popcorn-time.no i rettsmøtet 1.2.2017, ga ikke ankende part mulighet til å etterpøve Økokrims faktiske anførsler før saken ble tatt opp til kjennelse ved møtets slutt. Det anføres at manglende kontradiksjon om det ovenstående kan ha innvirket på slutning nr. 1 og 2 og at dette er tilstrekkelig til å oppheve kjennelsen, jf. §385 tredje ledd, jf. §343 første ledd.

Tingrettens beskrivelse av den straffbare handlingen

Det anføres at dersom tingrettens beskrivelse av gjerningen legges til grunn, kan det fastslås at det ikke kan foreligge noe straffbart forhold, nærmere bestemt straffbar medvirkning til brudd på åndsverksloven. Intet straffbart forhold medfører at det heller ikke kan være mistanke om noe straffbart og derfor heller ingen adgang til beslag. Det anføres at som et generelt vilkår for beslag, må straffansvar kunne gjøres gjeldende, jf. Rt-2000-557. Når det ikke foreligger et straffbart forhold, må beslagene oppheves.

Siden det er grunnleggende at tingretten baserer seg på et straffbart forhold, siden det kan være krevende å forstå hva det straffbare forholdet består i og siden dette er en forutsetning for riktig avgjørelse, forklarer ankende part påtalemyndighetens pretenderte straffbare forhold i detalj, dernest tingrettens gjerningsbeskrivelse. Deretter påvises feilen i bevisbedømmelsen. Det anføres at feilen er så grunnleggende at kjennelsen må oppheves på grunn av sakbehandlingsfeil.

Programvaren Popcorn Time er lovlig. Men på samme vis som et våpen, kan programvaren brukes til ulovlig aktivitet, slik som å dele, og dermed tilgjengeliggjøre, innhold uten opphavsmannens samtykke. Delingen skjer samtidig med at brukeren av programvaren ser på film/tv-serie. Handlingen å se er ensbetydende med å strømme. Denne delen av gjerningen er lovlig etter norsk rett, jf. avsnitt 2.2 i Prop.65 L (2012- 2013) til lovendring av 31. mai 2013 av åndsverksloven. Det er således delingen uten opphavsmannens samtykke som vil være i strid med ål. §2, jf. §54 bokstav a.

Hovedgjerningen slik Økokrim beskriver den er opplastningen av filmer og tv-serier på Internett uten samtykke.

Medvirkningshandlingen slik Økokrim beskriver den i tilsvaret av 4.11.2016 er:

Opprettelsen og vedlikeholdet av «popcorn-time.no har bidratt til å "forsterke virkningen av opplasternes handlinger ved å øke tilgjengeligheten" til filmene» (s. 5), underforstått filmene som er lagt ut på nettet uten samtykke. Dette har skjedd ved at: «Opprettelsen og vedlikeholdet av popcorn-time.no bidro til å legge til rette for og gjøre det enklere for norske brukere å benytte tjenesten Popcorn Time» (s. 4) som så igjen ble brukt til å se og dele innhold uten opphavsmennenes samtykke.

Med uttrykket «øke tilgjengeligheten» mener Økokrim det som skjer når brukere av programvaren Popcorn Time deler filmer.

Stegene i medvirkningshandlingen slik Økokrim beskriver den er som følger:

1) Opprettelse og vedlikehold av nettstedet popcorn-time.no stimulerer til økt bruk av programvaren Popcorn Time.

2) Programvaren Popcorn Time blir i hovedsak brukt til å se, og dermed dele, innhold som forutsetter samtykke for sådan.

3) Når mange brukere gjør dette, forsterker dette hovedgjerningen om å laste opp filmer og tv-serier på Internett uten opphavsmennenes samtykke.

Sammenfatningsvis er Økokrims medvirkningshandling som følger:

Opprettelsen og vedlikeholdet av popcorn-time.no forsterker brukeres deling av, ved hjelp av programvaren Popcorn Time, innhold som ikke er i det fri, som igjen forsterker opplasting til Internett av mer innhold som ikke er i det fri.

Som det framgår går medvirkningshandlingens tilskyndende element over to stadier. Det bestrides ikke at et slikt forløp kan innebære medvirkning til en straffbar handling. Om det gjør det i herværene sak, bestrides derimot.

Så over til tingrettens beskrivelse av det ulovlige forholdet:

«Programvaren Popcorn Time gjør filmer og TV-seier [sic.] tilgjengelig for allmennheten uten opphavsmenns samtykke. Nettsiden https://popcorn-time.no [https er feilskrift for http] oppfordret besøkende til å laste ned denne programvaren. Nettsiden inneholdt lenker til andre nettsider hvor programvaren enkelt kunne lastes ned. I en "disclaimer" ble besøkende varslet om at programvaren kunne være ulovlig. Likevel ga nettsiden detaljert veiledning om hvordan programvaren skulle installeres og brukes. Nettsiden ble jevnlig oppdatert og vedlikeholdt.

[...] Nettsiden synes å ha oppfordret til, tilrettelagt for og bidratt til muligheter for økt bruk av programvaren i det norske marked.»

Generelt bemerkes at tingretten med dette legger til grunn at programvaren Popcorn Time er ulovlig. Dette er det ikke holdepunkter for. Til sammenligning kan det være lovlig å besitte våpen. Når det gjelder programvaren Popcorn Time, er det alltid lovlig å være i besittelse av den, herunder å laste den ned. Det er intet ulovlig med programvaren Popcorn Time.

Videre og dette er viktig: Tingretten så med egne øyne i rettsmøtet 1.2.2017 at programvaren Popcorn Time kan brukes til å spille filmer som har falt i det fri. Ankende part demonstrerte for tingretten tre tilfeller av lovlig anvendelse av programvaren Popcorn Time.

Ankende part tar nå for seg de ovenfor gjengitte setningene som viser at tingretten misforstår hva som er det mulige straffbare forholdet.

Tingrettens 1. setning: Først, programvaren Popcorn Time gjør ingen ting, men den kan brukes til å se og dele filmer og serier uten opphavsmannens samtykke. Slik deling vil i så fall utgjøre et brudd på ål. §2, jf. §54. For det andre, det går ikke an å bruke programvaren Popcorn Time til å gjøre filmer og tv-serier tilgjengelig. Derimot kan det på enkelte nettsteder hvor programvaren Popcorn Time kan lastes ned, også ha vært gjort tilgjengelig kataloger med filmer og tv-serier uten nødvendig samtykke. Det er viktig å holde programvaren og katalogtjenestene adskilt. Ulovligheten som Økokrim sikter til, forutsetter at programvaren Popcorn Time knyttes til bestemte katalogtjenester med filmer og tv-serier som ikke er i det fri. Flere nettsteder tilbyr bare programvaren Popcorn Time og ingen katalog med filmer/tv-serier. Andre nettsteder tilbyr kataloger med bare filmer og tv-serier som har falt i det fri. Grunnleggende er at programvaren Popcorn Time ikke er ulovlig. Forutsetningene for at programvaren Popcorn Time skal inngå i et ulovlig forhold er at den knyttes til visse katalogtjenster og at den brukes på et bestemt vis. Ingen av disse to forutsetningene var oppfylte for popcorn-time.no.

2. setning: Det er lovlig å oppfordre «besøkende til å laste ned denne programvaren».

3. setning: Det er lovlig å lenke til andre nettsider hvor programvaren kan lastes ned. Dette blir også gjort av norske medier. Eksempelvis lenker Teknisk Ukeblads nettside tek.no til programvaren og gir samtidig en forlokkende presentasjon av den, se https://www.tek.no/artikler/kan-vaere-filmselskapenes-store-skrekk/157920

4. setning: Disclaimeren varslet ikke «om at programvaren kunne være ulovlig». Dette er innholdet i disclaimeren:

«Før du fortsetter, bør du være klar over at bruk av Popcorn Time og lignende kan være ulovlig. Mye av innholdet i disse tjenestene er opphavsrettsbeskyttet materiale som deles og lastet ned uten tillatelse fra eierne og produsenter av materialet. Bruk av disse tjenestene vil ofte resultere i et brudd på opphavsrett, avhengig av hva du ser. Hvis du likevel velger å bruke tjenestene du [?] lese om på dette området, gjør du det på egen risiko, og det anbefales å følge loven.» (https://web.archive.org/web/20160118221653/https://popcorn-time.no/)

Disclaimeren var framhevet på forsiden til popcorn-time.no da beslaget ble gjort. I tillegg var det en disclaimer med tilnærmet identisk innhold som aktivt måtte trykkes bort for å kunne se hele nettsiden.

Henyntatt misforståelsene som nå viser seg, kunne med fordel disclaimeren ha vært mer presis. Sentralt er uansett at det i disclaimeren står «bruk av Popcorn Time», og ikke bare «Popcorn Time». Bruk kan være ulovlig som det framgår i påfølgende setninger. Det står «tjenestene» i disclaimeren. Dette er upresist, men formuleringen tar med dette høyde for at nettsider som tilbyr Popcorn Time også kan ha tilknyttet katalog-tjenester med materiale som ikke er i det fri.

5. og 6. setning: Intet ulovlig ved dette.

7. setning, tingretten konkluderer: «Nettsiden synes å ha oppfordret til, tilrettelagt for og bidratt til muligheter for økt bruk av programvaren i det norske marked.» Dette er ingen beskrivelse av en ulovlig handling. Derimot beskriver tingretten med dette nettstedet popcorn-time.no med unntak for «bidratt til». Det er ikke bestridt at nettstedet popcorn- time.no har oppfordret og tilrettelagt for bruk av programvaren Popcorn Time i Norge. Nettstedets bidrag til slik bruk er derimot fraværende. Det anføres at dette enkelt kan dokumenteres ved et vanlig google-søk. Siden popcorn-time.no ikke kommer opp i vanlige google-søk med parameterne popcorn og time, så er det fordi nettstedet popcorn-time.no ikke har vært brukt. Med mindre treffende manipuleres til å komme høyere opp i trefflisten, rangerer Google treffene etter bruk. Sentralt for bevisbedømmelsen er at Økokrim ikke en gang har tilbudt logg som viser at popcorn- time.no har vært brukt. Ankende part fastholder at nettstedet popcorn-time.no ikke har vært brukt og dermed heller ikke inngår i et mulig ulovlig forhold.

Oppsummering: Tingretten har ikke identfisert en ulovlig handling. Tingretten har utelukkende beskrevet lovlige handlinger. Beslagene etter §203 forutsetter skjellig grunn til mistanke om et straffbart forhold. I mangel av dette foreligger heller ikke grunnlag for beslag. Siden tingretten ikke har angitt et straffbart forhold, er det enten fordi det ikke foreligger straffbart forhold og beslaget må oppheves, eller fordi tingretten har tatt så grunnleggende feil i bevisbedømmelsen at det utgjør en saksbehandlingsfeil som må lede til opphevelse av kjennelsen. Det anføres at det er umulig å etterpøve tingrettens forholdsmessighetsvurdering etter §170a når tingretten ikke har identfisert et staffbart forhold. Det anføres «at domsgrunnene har mangler som hindrer prøving av anken», jf. §385 tredje ledd, jf. §343 nr. 8 som innebærer at feilen «skal ubetinget tillegges virkning».

Etter dette skulle det være unødvendig å gå nærmere inn på andre feil i kjennelsen. Ankende part gjør i følgende likevel dette som en subsidiær drøftelse for det tilfellet lagmannsretten velger å avgjøre begjæringens materielle sider, jf. §385, fjerde ledd. Det anføres at den subsidiære drøftelsen illustrerer at domsgrunnene har mangler som hindrer prøving av anken.

Tingrettens slutning nr. 1. Beslag i domenet popcorn-time.no

Selv om vilkåret «antas å kunne inndras» i §203 annet punktum er oppfylt, gjelder «et generelt forholdsmessighetsprinsipp ved bruk av tvangsmidler som beslag», jf. §170a. Det vises til Rt-2013-1738 som også klargjorde at forholdsmessighetsvurderingen etter §170a skal være bred, samt konkret, jf. Rt-2015-188. Utgangspunktet for vurderingen skal være strafferammen og lovbruddets alvorlighetsgrad og art, jf. Rt-2015-948. Foruten Rt-2013-1738 viser også Rt-2012-1645 at politiets alternative måter til å sikre bevis inngår i vurderingen av forholdsmessighet.

Alternativ til beslag

Rt-2012-1645 gjaldt beslag av datautstyr. Det anføres at speilkopiering av de beslaglagte databærerne var et alternativ for å hindre ulempene for siktede. Høyesterett la til grunn at det må foretas en interesseavveining av kostnader, mulig bevisforspillelse og siktedes behov for det beslaglagte (19).

I herværende sak ville det ikke ha vært bevisforspillelse om nettsiden ble stående. Tvert om ville dette kun bidra til mer bevis dersom de som vedlikeholdt nettsiden framholdt det Økokrim beskriver som medvirkning. Denne framgangsmåten ville også ha vært kostnadsfri for Økokrim. Økokrim hadde således mer enn et fullgodt alternativ til beslag. Det anføres at avstå fra dette alternativet kun måtte være for å begrense skadepotensialet. Dette er emnet i det følgende.

Konkret vurdering og alvorlighetsgrad

Det anføres at tingretten har foretatt en generell vurdering av alvorlighetsgraden av beslaget: «Det straffbare forholdet synes å være relativt alvorlig sett hen til skadepotensialet for opphavsmennene.»

Dette er enten feil i bevisbedømmelsen eller feil i rettsanvendelsen. Dersom tingretten mener at medvirkningshandlingen, som er opprettelse og vedlikehold av nettsiden popcorn-time.no, synes å være relativt alvorlig sett hen til skadepotensialet for opphavsmennene, så er dette positivt feil. Et slikt skadepotensial kan umulig ha vært tilfellet. Dette er et gjennomgående problem i herværende sak. Økokrim har ikke dokumentert et mininum av skadepotensial som følge av nettstedet popcorn-time.no. Som påpekt har ikke Økokrim en gang tilbudt logg over bruken av domenet popcorn- time.no. Det foreligger ingen sannsynliggjøring, enda mindre bevis for at nettstedet popcorn-time.no på noe måte inngår i ulovlig deling av innhold uten samtykke fra opphavsmann. Det er ubegripelig for ankende part at tingretten kan mene at skadepotensialet for fornærmet «synes å være relativt alvorlig». Til dette kommer at nettstedet popcorn-time.no oppfordrer til lovlig bruk. Dersom brukere på sin jakt etter Popcorn Time, etter å ha lest om programvaren på digi.no, Aftenposten eller andre steder, mot alle odds svinger innom nettstedet popcorn-time.no, så begrenser dette på grunn av disclaimeren og innholdet på nettstedet for øvrig snarere skadepotensialet enn å øke det. Det foreligger således feil i bevisbedømmelsen av skadepotensialet.

Det er mulig at tingretten sikter til det generelle skadepotensialet som følger med all programvare på nettet som kan brukes til å se og dele innhold som ikke er fritt tilgjengelig. Men da er ikke vurderingen av alvorlighetsgraden konkret ut fra skadepotensialet til det som er beslaglagt. Det foreligger således feil i rettsanvendelsen som krever at vurderingen etter §170a skal være konkret.

Derimot er skadepotensialet stort for IMC AS hvis forretningsmodell er truet. Dersom IMC AS kan bli utsatt for ransakelse fordi deres underforeninger har registrert domener som de ikke aner det framtidige innholdet på, skaper dette store problemer. Regnskapsføreren ble ransaket mens hun satt med kunde som forduftet under seansen. Hun fant dette svært belastende og vil ikke at hun som regnskapsfører skal bli gjort til gjenstand for ransakelser. IMC AS må på sin side ta opp til vurdering om de ønsker å opprettholde virksomheten med bulkregistrering på vegne av utenlanske selskaper som er det IMC AS bunner sin virksomhet i. Dette til tross for at bulkregisteringen som omfattet popcorn-time.no, kom fra anerkjente Mercaria.

Retten anser skadepotensialet for ankepart som «mindre ulemper». Det foreligger således feil i bevisbedømmelsen. Når skadepotensialet forårsaket av popcorn-time.no er mikroskopisk og hypotetisk basert på gjetninger og skadepotensialet for IMC AS er bevitnet, har retten feilaktig og uten holdepunkter snudd skadepotensialet på hodet. Dette forsterker feilen i tingrettens bedømmmelse av skadepotensialet.


Økokrim påstår at medvirkningshandlingen faller inn under åndsverkslovens §2, jf. §54, bokstav a, jf. strl. §15. Den øvre strafferammen for brudd på ål. §54, bokstav a, er «tre måneder». Dette er svært lavt, lavere enn laveste øvre strafferamme i straffeloven som er seks måneder. Lovgiver bedømmer således brudd på ål. §2 svært mildt. Den offentlige interessen ved brudd på åndsverksloven er så lav at vanligvis må rettighetsorganisasjonene selv stevne saken inn for domstolene og kreve erstatning, illustrert ved de sivilrettslige sakene TOSLO-2002-5914 (startsiden.no) og Rt-2005-41 (napster.no).

Når retten ved bedømmelsen av forholdsmessighet ikke har sett hen til strafferammen og den lave offentlige interessen ved brudd på åndsverksloven, foreligger det feil i både bevisbedømmelsen og rettsanvendelsen.

Lovbruddets art. Ytringfrihet

Tingretten har tatt feil i lovbruddets art. Programvaren Popcorn Time er lovlig. Partene er enige i at programvaren med visse katalogtjenester kan brukes til å se og dele innhold uten opphavsmannens samtykke. Om programvaren i hovedsak brukes til dette, er omtvistet. I så måte var det sentralt for ankende part å belyse at prosjektet Butter er omtalt på popcorn-time.no. Butter er en av flere avledede utgaver av den originale Popcorn Time-klienten der systemet for katalogoppslag er gjort om til innstikkmoduler og der all kode som gjør oppslag i kataloger med ulovlig innhold, er fjernet. Butter-klienten gjør kun oppslag i kataloger der alle filmene er i det fri. Nettstedet popcorn-time.no omtaler Butter slik: «Er Butter den nye Popcorn Time?», og videre, Butter er den «store utviklingen i Popcorn Time verden» – nettopp fordi Butter sikrer brukeren mot å se innhold som ikke har falt i fri.

Det anføres at når tingretten overser denne sentrale anførselen til ankende part, er det fordi tingretten ikke har forstått hvilket faktum som er relevant.

Når tingretten ikke forstår hva som er, enda mindre har angitt, lovbruddets art, har ikke tingretten vært i posisjon til å bedømme om beslaget er forholdsmessig.

Til dette kommer at «lovbruddets art» og alvorlighetsgrad må veies opp mot andre berørte interesser, herunder ytringsfriheten. Tingretten avfeier problemstillingen slik:

«Under enhver omstendighet har et eventuelt inngrep i ytringsfriheten tilstrekkelige hjemmel i straffeprosessloven, forfølger et legitimt formål om å verne andres opphavsrettigheter og er forholdsmessig.»

Tingretten hopper med dette bukk over ankende parts anførsler om ytringsfrihet. Tingretten unngår å vurdere ytringsfriheten generelt og forhåndssensurforbudet spesielt. Det anføres at dette utgjør en saksbehandlingsfeil som må lede til opphevelse.

Det er ikke slik at IMC AS/IMCASREG8 må bevise at egen ytringfrihet er rammet slik tingretten forutsetter. I den brede helhetsvurderingen i Rt-2013-1738 ble det for skadepotensialet sett til at «de personlige leietagerne ha[dde] bodd i eiendommen i flere år og [var] folkeregistrert der», og ikke til skadepotensialet til eieren av eiendommen som hadde begjært beslaget opphevet. I den brede helhetsvurderingen skal alle konkrete skader tas med i betraktning. Når tingretten utelukker i helhetsvurderingen å ta med skadepotensialet på ytringsfriheten, er dette således feil lovanvendelse.

Nettsiden ga nyheter om og oppmuntret til bruk av programvaren Popcorn Time. Dette er ytringer som er vernet, jf. Grl. §100 om ytringsfrihet. Dertil kommer at Økokrim med sitt beslag ikke bare stopper fortidige ytringer men også framtidige ytringer på samme måte som å stoppe framtidige utgivelser av et blad. Selv om tilsvarende informasjon om Popcorn Time fortsatt finnes på andre nettsteder, er dette like fullt partiell forhåndssensur, som er forbudt etter §100, fjerde ledd. Se NOU 1999:27, avsnitt 7.3.2: Sensurforbudet omfatter anordninger som er egnet til å hindre en ytring. Brudd på sensurforbudet forutsetter ikke at ytringen faktisk blir hindret som heller ikke er tilfellet i herværende sak fordi informasjon om Popcorn Time finnes andre steder.

Videre, selv om IMC AS’s egen ytringsfrihet ikke er rammet, er IMC AS indirekte rammet ved at beslagene og inngrepene i ytringsfriheten truer selskapets forretningsmodell. Når tingretten skriver at «deres forretningsmodell er truet» og at dette innebærer «mindre ulemper», er dette feil i bevisbedømmelsen. Fare for ransaking på grunn av registrering av domener, er alt annet enn «mindre ulemper». Det er akkurat det som gjør at man innskrenker virksomheten med dertil økonomiske følger, og da dreier det seg ikke om ett domene, men titalls om ikke hundrevis av domener. Samtidig truer dette ytringsfriheten. Registrar opplever statens sanksjoner slik at de ved neste korsvei kun registrerer domener som framstår som trygge. I ytringfrihet-sammenheng omtales dette som «the chilling effect», se blant annet NOU 1999:27, avsnitt 2.3.8 og 4.3.2.

At Økokrims beslag rammer ytingsfriheten er grunnen til at EFN har prejudikatsinteresse i herværende sak. EFN er den organisasjonen i Norge som er nærmest til å ivareta ytringsfriheten på Internett slik dens søsterorganisasjoner gjør det i andre land. Til illustrasjon vises det til C-293/12 hvor det var nettopp Digital Rights Ireland som fikk opphevet EUs datalagringsdirektiv (riktignok basert på personvern og ikke ytringsfrihet). Som partshjelper vil EFN tiltre herværende anke. Ved tiltredelsen vil EFN utdype om problemene omkring ytringsfriheten. NUUG vil tiltre herværende anke fordi beslaget i domenet popcorn-time.no er et anslag mot fri programvare. NUUG er den organisasjonen i Norge som er nærmest til å ivareta fri programvare. Ved tiltredelsen av denne anken vil NUUG utdype om dette.

Oppsummering strpl. §170a

Det anføres at manglende beskrivelse av lovbruddets art viser at domsgrunnene har mangler som hindrer prøving av anken. Under enhver omstendighet er strafferammen ved et tenkt lovbrudd så lav og alvorlighetsgraden størst for den som er rammet av beslaget, at beslaget er uforholdsmessig. Siden tingretten har oversett dette, foreligger det feil i bevisbedømmelsen. Det foreligger også feil rettsanvendelsen fordi tingretten verken har foretatt en konkret vurdering eller tatt i betraktning forhold som er relevante for anvendelsen av §170a.

Tingrettens slutning nr. 2. Beslag i regnskap

For beslaget i regnskapet, må det understrekes at begjæringen om oppheving gjelder det ankende part ikke har fått tilbake. Ankende part har ikke fått tilbake inngående faktura. Antagelig har Økokrim digitalt beslag av andre deler av regnskapet, men begjæringen gjelder kun den delen av regnskapet som ankende part ikke har.

Tingretten skriver følgende om beslaget i regnskapet:

«Ifølge Økokrim inneholder dokumentene informasjon om hvem som har bestilt domenenavnet. Retten legger dette til grunn, og det antas at dokumentene vil ha betydning som bevis i den senere straffesaken.»

Under rettsmøtet brukte ankende part tid på å forklare at beslaget i regnskapet gjaldt inngående faktura fra leverandører, og ikke utgående faktura til kunder. Tingretten overser i bevisbedømmelsen dette som er det sentrale hva gjelder beslaget i regnskapet. Mens utgående faktura kan inneholde «informasjon om hvem som har bestilt domenenavnet», kan ikke inngående faktura gjøre det.

Når tingretten legger til grunn at inngående faktura kan gi «informasjon om hvem som har bestilt domenenavnet», foreligger det en feil i bevisbedømmelsen i relasjon til slutning nr. 2.

Derimot avdekker inngående faktura hvordan IMC AS driver sin virksomhet. Ved å opprettholde beslaget av inngående faktura får Økokrim «i både pose og sekk»: Beslaget i inngående faktura skal opprettholdes, men uten at IMC AS skal være mistenkt. Dette er uforenlig. Økokrim må velge. Enten er IMC AS ikke mistenkt, men da er heller ikke inngående faktura relevant fordi disse fakturaene kun kartlegger IMC AS sin virksomhet og ikke hvem som har bestilt domenet. Eller så er IMC AS mistenkt, og da vil beslag av inngående faktura ha bevisverdi, men da må også IMC AS tilkjennes mistenktes rettigheter og få innsyn, jf. §242. Økokrim vil ikke velge. Det at tingretten overser denne motsetningen innebærer en feil i bevisbedømmelsen med direkte betydning for kjennelsens slutning nr. 2.

At tingretten legger til grunn at IMC AS ikke er mistenkt, men samtidig opprettholder beslaget i inngående faktura, innebærer også feil anvendelse av §170a. Dersom IMC AS ikke er mistenkt, kan ikke beslaget i inngående fakturaer tjene som bevis, jf. §203, og beslaget vil derfor være uforholdsmessig. Til tross for dette har tingretten kommet fram til at beslaget i inngående fakturaer er forholdsmessig. Dette er feil anvendelse av §170a.


Denne siden nedlegger en prinsipal og subsidiær påstand. Den prinsipale påstanden er at IMC AS/IMCASREG8 gis innsyn og resten av kjennelsen oppheves. Den subsidiære påstanden er tilpasset en to-trinns prosess der lagmannsretten først tar stilling til innsynsbegjæringen og dernest avgjør sakens materielle spørsmål om beslagene skal oppheves.

Med sedvanlig forbehold om nye anførsler og bevis nedlegges følgende



1. IMC AS/IMCASREG8 gis innsyn i sakens dokumenter.

2. For øvrig oppheves kjennelsen og saken vedrørende beslaget vises tilbake til tingretten.


1. IMC AS/IMCASREG8 gis innsyn.

2. Beslaget av IMC AS’s inngående fakturaer oppheves.

3. Beslaget i domenet popcorn-time.no oppheves.

February 26, 2017 09:15 PM

February 14, 2017

Holder de ord

Stortingsregjereri på høyt nivå

Fersk stortingsmelding viser at antall anmodningsvedtak har skutt i været. Meldingen viser en markant økning i antall saker som stortinget nå pålegger regjeringen å sette i verk.

Fredag 10. februar ble stortingsmelding nr. 17 (2016-2017) om anmodnings- og utredningsvedtak for forrige stortingssesjon overlevert Stortinget. Stortingsmeldingen er fremmet årlig siden 2000 og inneholder samtlige anmodningsvedtak som ble vedtatt av Stortinget i den foregående stortingssesjonen.

I stortingssesjonen 2015-2016 ble det fremmet 477 anmodningsvedtak, inkludert underpunktene som følger noen av anmodningsvedtakene. Dette er det høyeste antallet anmodningsvedtak som noen gang er fremmet i en stortingssesjon, og nesten dobbelt så mange som ble fremmet under den siste toppen i stortingssesjonen 2002-2003 (247 anmodningsvedtak). Den gang førte det høye antallet anmodningsvedtak til en debatt om stortingsregjereri.

Et høyt antall anmodningsvedtak kan gi utfordringer i ansvarsfordelingen mellom den lovgivende og utøvende makten. Disse utfordringene ble også diskutert ved årtusenskiftet, hvor Frøilandsutvalgets rapport fra 2002 inngikk i debatten om stortingsregjereri.


Stortinget utøver sin instruksjonsrett overfor regjeringen blant annet gjennom anmodningsvedtak. Disse begynner med formuleringen «Stortinget ber regjeringen…». Dette må ikke forveksles med en høflig anmodning, men er et konstitusjonelt bindende pålegg fra Stortinget til regjeringen. Ofte er det snakk om at Stortinget ber regjeringen om å utrede noe eller etablere et tiltak. Ofte kommer det også pålegg om å kontrollere noe. Mange ganger er anmodningene imidlertid av forvaltningsmessig karakter, noe som reiser spørsmål om anmodningsvedtak blir misbrukt.

Anmodningsvedtak er gyldige utover stortingsperioden. En minister som med overlegg ikke følger opp anmodningsvedtak kan stilles for riksrett og straffes med inntil fem års fengsel. Manglende oppfølging har aldri ført til riksrett, men det viser at det ligger sterke sanksjonsmuligheter bak Stortingets instruksjonsrett.

Etter 2003 sank antallet anmodningsvedtak betraktelig. Nedgangen ble godt hjulpet av at den rødgrønne regjeringen var en flertallsregjering. Fra 2005 til 2013 lå antallet anmodningsvedtak på mellom 7 og 33 per sesjon.

Anmodningsvedtak tar også opp mer av stortingets taletid. Holder de ord sitt referatsøk «Sagt i salen» viser også en kraftig økning i antallet innlegg som omtaler anmodningsvedtak. Bruken av «stortingsregjereri» har imidlertid ikke nådd det samme nivået som da begrepet sist var på moten ved årtusenskiftet.

Hvor ofte snakker Stortinget om anmodningsvedtak og stortingsregjereri?


Da Høyre og Fremskrittspartiet dannet mindretallsregjering i 2013 steg antallet anmodningsvedtak. Det var en spesielt kraftig økning fra i perioden 2014-16. Økningen må ses i sammenheng med det høye antallet asylsøkere som kom til Norge i 2015. Regjeringen inngikk flere asylforlik med Stortinget der oppfølgingspunktene defineres som anmodningsvedtak. Justis- og beredskapsdepartementet forvalter også da en tredjedel av anmodningsvedtakene som ble fattet i sesjonen 2015-2016. Av de om lag 168 anmodningsvedtakene fulgt opp av departementet sorterer 131 under innvandrings- og integreringsministeren.

Anmodningsvedtak - instruksjonsrett eller instruksjonsiver?

Sentrale utfordringer knyttet til antallet anmodningsvedtak er Stortingets tillit til regjeringen, kompetansen den lovgivende makten har til å fatte fornuftige vedtak, regjeringens uavhengighet og Stortingets kontrollfunksjon av regjeringen.

Da Stortinget i 2004 debatterte det høye antallet anmodningsvedtak uttalte stortingspresident Jørgen Kosmo (AP) at antallet har «tatt helt av» og dette dette «forrykker balansen mellom storting og regjering». Inge Lønning (H) argumenterte for at «det skal ikke utøves makt uten at den som utøver makten, også har ansvaret for maktutøvelsen», men der konsekvensen av «et økende antall mer og mindre forpliktende anmodningsvedtak er at dette grunnprinsippet pulveriseres».

Mange anmodningsvedtak vil si at Stortinget i stor grad instruerer regjeringen. Dersom regjeringen har Stortingets tillit kunne en tenke seg at det ikke er nødvendig å instruere regjeringen i en serie saker. I denne stortingsperioden finnes det imidlertid flere eksempler på at Stortinget instruerer regjeringen på saker som i utgangspunktet burde være uproblematiske å overlate til regjeringen.


Vedtak nr. 159, 9. desember 2015: Stortinget ber regjeringen følge opp at den forskriftspålagte plikta om alltid å vurdere barnets familie eller nære nettverk som mulig fosterheim ved omsorgsovertaking, blir praktisert.

En skulle i utgangspunktet tro at der er overflødig av Stortinget å instruere regjeringen til å følge opp vedtatt regelverk. Det samme gjelder løfter presentert i Sundvolden-erklæringen, regjeringens politiske plattform der blant annet karbonfangst- og lagring er omtalt:

«Regjeringen vil satse bredt på å utvikle en kostnadseffektiv teknologi for fangst og lagring av CO2, og ha en ambisjon om å realisere minst ett fullskala demonstrasjonsanlegg for CO2-fangst innen 2020.»

Likevel instruerer Stortinget regjeringen til å følge opp sin egen politiske plattform:

Vedtak nr. 685, 23. mai 2016: Stortinget ber regjeringen sikre realisering av minst ett CCS-anlegg for å bidra til at Norge når sitt nasjonale klimamål for 2020.

I et annet tilfelle instruerer Stortinget regjeringen på bevæpning av politiet i strid med løfter fra Sundvolden-erklæringen:

«Regjeringen vil åpne for generell bevæpning i de politidistrikter der politiet selv mener det er den beste løsningen.»

Vedtak nr 522, 5. mai 2015: Stortinget ber regjeringen opprettholde dagens bevæpningspraksis med et ubevæpnet politi. Dette påvirker ikke tillatelsen til bevæpning etter våpeninstruksen i særskilte situasjoner.

169 representanter vs. 21 000 byråkrater

Stortinget består av 169 representanter som er fordelt på 13 komiteer. Hver komité følger opp store samfunnsområder som, helt eller delvis, dekkes av flere departementer. I departementene og direktoratene er det 21 000 ansatte (2015). Der embetsverket består av fast ansatte som arbeider på spesialiserte felt over lengre tid, består Stortinget av representanter som velges for fire år av gangen og som ofte har skiftende ansvarsområder.

Gjennom embetsverket har forvaltningen en historikk på hvordan politikkområder styres og følges opp. Videre er forvaltningen underlagt forvaltningsloven med krav til utredning og habilitet som blant annet skal sikre rettferdig og transparent saksbehandling. Stortinget er ikke underlagt et slikt regelverk når den utøver sin instruksjonsrett.

Frøilandutvalget omtaler alle anmodningsvedtakene som ble vedtatt i sesjonene 1999-2000 og 2000-2001 som «en tankevekker»:

«En del av dem var rene anmodninger om videre utredning av saker, som Stortinget ønsket å få nærmere belyst. Men det gjenstår likevel en stor kategori, der Stortinget kan hevdes å ha grepet inn med bindende pålegg i enkeltsaker av til dels detaljert og forvaltningspreget karakter, på en måte som reiser spørsmål om dette er hensiktsmessig og forsvarlig.»

Dersom Stortinget i økende grad instruerer regjeringen i spesifikke saker øker sannsynligheten for at det fattes vedtak hvis implementering kan ha utilsiktede, negative konsekvenser. Løsrevne vedtak tilknyttet enkeltsaker gjør det også mer sannsynlig at Stortinget over tid vil fatte vedtak der tilsvarende saker håndteres på ulik måte.

Detaljstyring av regjeringen

Anmodningsvedtak medfører også ofte en kostnad som reduserer regjeringens handlingsrom. Regjeringen bør få anledning til å bestemme hvordan målene beskrevet i regjeringens forslag til statsbudsjett og komiteenes innstillinger skal oppfylles.


Helse- og omsorgsdepartementet forvalter en tilskuddsordning til aktivitet for eldre som skal «motvirke ensomhet, passivitet og sosial tilbaketrekning og å skape aktivitet, deltakelse, sosialt fellesskap og møteplasser». Stortinget bevilger midler til ordningen, men det er regjeringen som tildeler midler i henhold til tilskuddsregelverket og tilskuddets formål.

Denne balansen forrykkes når Stortinget griper inn i tildelingsprosessen:

Vedtak nr. 999, 17. juni 2016: Stortinget ber regjeringen sørge for at kriteriene for tilskuddsordningen Aktivitet for seniorer og eldre under kap. 761, post 21, endres slik at Tjukkasgjengen kan omfattes av ordningen.

Dette er et eksempel på et vedtak som legger konkrete føringer på hvordan regjeringen skal oppnå sine mål. Her gir Stortinget konkrete føringer på hvem som skal få midler over statsbudsjettet. Tilskuddsordningen skal nå dekke Tjukkasgjengen, i tillegg til andre tiltak.

Stortinget har i denne perioden også gått langt i å instruere regjeringen i spørsmål om intern samhandling.


Vedtak 707, 26. mai 2016: Stortinget ber regjeringen iverksette nødvendige tiltak for å sikre sømløs informasjonsflyt mellom forsvarsministeren, utenriksministeren og forsvarssjefen, slik at korrekt og oppdatert informasjon er tilgjengelig når slik informasjon er ønsket.

Mange av anmodningsvedtakene er utformet på en måte som gjør det vanskelig å avgjøre om de er fulgt opp eller ikke av regjeringen. I oppfølgingen av vedtak nr. 707 skriver Forsvarsdepartementet blant annet at de har etablert rutiner og møteserier mellom Forsvarsdepartementet og Utenriksdepartementet, der representanter for Forsvaret og Forsvarsmateriell deltar. Det er vanskelig for Stortinget å avgjøre om tiltakene er nok for å sikre sømløs informasjonsflyt.

Legitim instruksjonsmulighet

Stortingets mulighet til å instruere regjeringen, spesielt ved mindretallsregjeringer og i prinsipielle spørsmål, er legitim. Men det er bekymringsverdig med så mange anmodningsvedtak som vi nå ser. Utviklingen ble i 2002-03 beskrevet som dramatisk og eksplosiv, mens vi i dag har doblet antallet anmodninger. Mange og detaljerte anmodningsvedtak gir en rolleblanding mellom Stortinget og regjering.

Det er samtidig begrenset hvor mange saker stortingsrepresentantene kan behandle, vedta og følge opp på en tilstrekkelig måte. Det bør også være begrenset hvor mange anmodningsvedtak Stortinget pålegger forvaltningen å følge opp.

Bruk av flertallsmerknader i komiteinnstillinger kan være et alternativ til anmodningsvedtak siden oppfølgingen av disse alltid har vært en del av Stortingets kontrollarbeid. Flertallsinnstillinger vil heller ikke være bindende over stortingsperioden der innstillingen ble fattet. Siden årets stortingsmelding er tykkere enn noensinne bør alternative vedtaksformer for å fremme stortingsflertallets meninger vurderes.

by Herman Westrum Thorsen (herman.westrum.thorsen@gmail.com) atFebruary 14, 2017 08:57 AM

February 13, 2017

Peter Hansteen (That Grumpy BSD Guy)

Does Your Email Provider Know What A "Joejob" Is?

Anecdotal evidence seems to indicate that Google and possibly other mail service providers are either quite ignorant of history when it comes to email and spam, or are applying unsavoury tactics to capture market dominance.

The first inklings that Google had reservations about delivering mail coming from my bsdly.net domain came earlier this year, when I was contacted by friends who have left their email service in the hands of Google, and it turned out that my replies to their messages did not reach their recipients, even when my logs showed that the Google mail servers had accepted the messages for delivery.

Contacting Google about matters like these means you first need to navigate some web forums. In this particular case (I won't give a direct reference, but a search on the likely keywords will likely turn up the relevant exchange), the denizens of that web forum appeared to be more interested in demonstrating their BOFHishness than actually providing input on debugging and resolving an apparent misconfiguration that was making valid mail disappear without a trace after it had entered Google's systems.

The forum is primarily intended as a support channel for people who host their mail at Google (this becomes very clear when you try out some of the web accessible tools to check domains not hosted by Google), so the only practial result was that I finally set up DKIM signing for outgoing mail from the domain, in addition to the SPF records that were already in place. I'm in fact less than fond of either of these SMTP addons, but there were anyway other channels for contact with my friends, and I let the matter rest there for a while.

If you've read earlier instalments in this column, you will know that I've operated bsdly.net with an email service since 2004 and a handful of other domains from some years before the bsdly.net domain was set up, sharing to varying extents the same infrastructure. One feature of the bsdly.net and associated domains setup is that in 2006, we started publishing a list of known bad addresses in our domains, that we used as spamtrap addresses as well as publising the blacklist that the greytrapping generates.

Over the years the list of spamtrap addresses -- harvested almost exclusively from records in our logs and greylists of apparent bounces of messages sent with forged From: addresses in our domains - has grown to a total of 29757 spamtraps, a full 7387 in the bsdly.net domain alone. At the time I'm writing this 31162 hosts have attempted to deliver mail to one of those spamtrap addresses during the last 24 hours. The exact numbers will likely change by the time you read this -- blacklisted addresses expire 24 hours after last contact, and new spamtrap addresses generally turn up a few more each week. With some simple scriptery, we pick them out of logs and greylists as they appear, and sometimes entire days pass without new candidates appearing. For a more general overview of how I run the blacklist, see this post from 2013.

In addition to the spamtrap addresses, the bsdly.net domain has some valid addresses including my own, and I've set up a few addresses for specific purposes (actually aliases), mainly set up so I can filter them into relevant mailboxes at the receiving end. Despite all our efforts to stop spam, occasionally spam is delivered to those aliases too (see eg the ethics of running the traplist page for some amusing examples).

Then this morning a piece of possibly well intended but actually quite clearly unwanted commercial email turned up, addressed to one of those aliases. For no actually good reason, I decided to send an answer to the message, telling them that whoever sold them the address list they were using were ripping them off.

That message bounced, and it turns out that the domain was hosted at Google.

Reading that bounce message is quite interesting, because if you read the page they link to, it looks very much like whoever runs Google Mail doesn't know what a joejob is.

The page, which again is intended mainly for Google's own customers, specifies that you should set up SPF and DKIM for domains. But looking at the headers, the message they reject passes both those criteria:

Received-SPF: pass (google.com: domain of peter@bsdly.net designates 2001:16d8:ff00:1a9::2 as permitted sender) client-ip=2001:16d8:ff00:1a9::2;
Authentication-Results: mx.google.com;
dkim=pass (test mode) header.i=@bsdly.net;
spf=pass (google.com: domain of peter@bsdly.net designates 2001:16d8:ff00:1a9::2 as permitted sender) smtp.mailfrom=peter@bsdly.net
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=bsdly.net; s=x;
h=Content-Transfer-Encoding:Content-Type:In-Reply-To:MIME-Version:Date:Message-ID:From:References:To:Subject; bh=OonsF8beQz17wcKmu+EJl34N5bW6uUouWw4JVE5FJV8=;

Then for reasons known only to themselves, or most likely due to the weight they assign to some unknown data source, they reject the message anyway.

We do not know what that data source is. But with more than seven thousand bogus addresses that have generated bounces we've registered it's likely that the number of invalid bsdly.net From: addresses Google's systems has seen is far larger than the number of valid ones. The actual number of bogus addresses is likely higher, though: in the early days the collection process had enough manual steps that we're bound to have missed some. Valid bsdly.net addresses that do not eventually resolve to a mailbox I read are rare if not entirely non-existent. But the 'bulk mail' classification is bizarre if you even consider checking Received: headers.

The reason Google's systems most likely has seen more bogus bsdly.net From: addresses than valid ones is that by historical accident faking sender email addresses in SMTP dialogues is trivial.

Anecdotal evidence indicates that if a domain exists it will sooner or later be used in the from: field of some spam campaign where the messages originate somewhere else completely, and for that very reason the SPF and DKIM mechanisms were specified. I find both mechanisms slightly painful and inelegant, but used in their proper context, they do have their uses.

For the domains I've administered, we started seeing log entries, and in the cases where the addresses were actually deliverable, actual bounce messages for messages that definitely did not originate at our site and never went through our infrastructure a long time before bsdly.net was created. We didn't even think about recording those addresses until a practical use for them suddenly appeared with the greytrapping feature in OpenBSD 3.3 in 2003.

A little while after upgrading the relevant systems to OpenBSD 3.3, we had a functional greytrapping system going, at some point before the 2007 blog post I started publishing the generated blacklist. The rest is, well, what got us to where we are today.

From the data we see here, mail sent with faked sender addresses happens continuously and most likely to all domains, sooner or later. Joejobs that actually hit deliverable addresses happen too. Raw data from a campaign in late 2014 that used my main address as the purported sender is preserved here, collected with a mind to writing an article about the incident and comparing to a similar batch from 2008. That article could still be written at some point, and in the meantime the messages and specifically their headers are worth looking into if you're a bit like me. (That is, if you get some enjoyment out of such things as discovering the mindbogglingly bizarre and plain wrong mail configurations some people have apparently chosen to live with. And unless your base64 sightreading skills are far better than mine, some of the messages may require a bit of massaging with MIME tools to extract text you can actually read.)

Anyone who runs a mail service and bothers even occasionally to read mail server logs will know that joejobs and spam campaigns with fake and undeliverable return addresses happen all the time. If Google's mail admins are not aware of that fact, well, I'll stop right there and refuse to believe that they can be that incompentent.

The question then becomes, why are they doing this? Are they giving other independent operators the same treatment? If this is part of some kind of intimidation campaign (think "sign up for our service and we'll get your mail delivered, but if you don't, delivering to domains that we host becomes your problem"). I would think a campaign of intimidation would be a less than useful strategy when there are alread antitrust probes underway, these things can change direction as discoveries dictate.

Normally I would put oddities like the ones I saw in this case down to a silly misconfiguration, some combination of incompetence and arrogance and, quite possibly, some out of control automation thrown in. But here we are seeing clearly wrong behavior from a company that prides itself in hiring only the smartest people they can find. That doesn't totally rule out incompetence or plain bad luck, but it makes for a very strange episode. (And lest we forget, here is some data on a previous episode involving a large US corporation, spam and general silliness. (Now with the external link fixed via the wayback machine.))

One other interesting question is whether other operators, big and small behave in any similar ways. If you have seen phenomena like this involving Google or other operators, I would like to hear from you by email (easily found in this article) or in comments.

Update 2016-05-03: With Google silent on all aspects of this story, it is not possible pinpoint whether the public whining or something else that made a difference, but today a message aimed at one of those troublesome domains made it through to its intended recipient.

Much like the mysteriously disappeared messages, my logs show a "Message accepted for delivery" response from the Google servers, but unlike the earlier messages, this actually appeared in the intended inbox. In the meantime one of one of the useful bits of feedback I got on the article was that my IPv6 reverse DNS was in fact lacking. Today I fixed that, or at least made a plausible attempt to (you're very welcome to check with tools available to you). And for possibly unrelated reasons, my test message made it through all the way to the intended recipient's mailbox.

[Opinions offered here are my own and may or may not reflect the views of my employer.]

Update 2016-11-21: Since this piece was originally written, we've seen several episodes of Gmail.com or other Google domains disappearing or bouncing mail from bsdly.net, and at some point I got around to setting up proper DMARC records as well.

In a separate development, I also set up the script that generates the blacklist for export to send a copy of its output to my gmail.com addresses. This has lead to a few fascinating bounces, all of them archived here in order to preserve a record of incidents and developments

It should be no surprise that even the SPF-DKIM-DMARC trinity is not actually enough to avoid bounces and disappearances, driving Google to come up with a separate DNS TXT record of their own, the google-site-verification record, which contains a key they will generate for your domain if you manage to find the correct parts of their website.

Update 2017-02-12 - 2017-02-13: At semi-random intervals since this piece was originally written, Gmail has had a number of short periods of bouncing my hourly spamtrap reports sent to myself at bsdly.net with a Cc: to my gmail account.

At most times these episodes last for a couple of hours only, possibly when a human intervenes to correct the situation. However, this weekend we have seen more of this nonsense than usual: Gmail started bouncing my hourly reports on Saturday evening CET, with the first bounce for the 2017-02-11 21:10 report, keeping up the bounces through the 2017-02-12 05:10 report.

Then after a brief respite the bounces resumed with the 2017-02-12 08:10 report and have persisted, bouncing every hourly message (except the 2017-02-13 03:10, 04:10 and 13.10 messages) and with non-delivery, with the last bounce received now for the 2017-02-13 21:10 report.  I archive all bounces as they arrive mod whatever time I have on my hands in the googlefail archive.

I will be giving a PF tutorial at BSDCan 2016, and I welcome your questions now that I'm revising the material for that session. See this blog post for some ideas (note that I'm only giving the PF tutorial this time around).

by Peter N. M. Hansteen (noreply@blogger.com) atFebruary 13, 2017 09:24 PM

Mimes brønn

En innsynsbrønn full av kunnskap

Mimes brønn er en nettjeneste som hjelper deg med å be om innsyn i offentlig forvaltning i tråd med offentleglova og miljøinformasjonsloven. Tjenesten har et offentlig tilgjengelig arkiv over alle svar som er kommet på innsynsforespørsler, slik at det offentlige kan slippe å svare på de samme innsynshenvendelsene gang på gang. Du finner tjenesten på


I følge gammel nordisk mytologi voktes kunnskapens kilde av Mime og ligger under en av røttene til verdenstreet Yggdrasil. Å drikke av vannet i Mimes brønn ga så verdifull kunnskap og visdom at den unge guden Odin var villig til å gi et øye i pant og bli enøyd for å få lov til å drikke av den.

Nettstedet vedlikeholdes av foreningen NUUG og er spesielt godt egnet for politisk interesserte personer, organisasjoner og journalister. Tjenesten er basert på den britiske søstertjenesten WhatDoTheyKnow.com, som allerede har gitt innsyn som har resultert i dokumentarer og utallige presseoppslag. I følge mySociety for noen år siden gikk ca 20 % av innsynshenvendelsene til sentrale myndigheter via WhatDoTheyKnow. Vi i NUUG håper NUUGs tjeneste Mimes brønn kan være like nyttig for innbyggerne i Norge.

I helgen ble tjenesten oppdatert med mye ny funksjonalitet. Den nye utgaven fungerer bedre på små skjermer, og viser nå leveringsstatus for henvendelsene slik at innsender enklere kan sjekke at mottakers epostsystem har bekreftet mottak av innsynshenvendelsen. Tjenesten er satt opp av frivillige i foreningen NUUG på dugnad, og ble lansert sommeren 2015. Siden den gang har 121 brukere sendt inn mer enn 280 henvendelser om alt fra bryllupsutleie av Operaen og forhandlinger om bruk av Norges topp-DNS-domene .bv til journalføring av søknader om bostøtte, og nettstedet er en liten skattekiste av interessant og nyttig informasjon. NUUG har knyttet til seg jurister som kan bistå med å klage på manglende innsyn eller sviktende saksbehandling.

– «NUUGs Mimes brønn var uvurderlig da vi lyktes med å sikre at DNS-toppdomenet .bv fortsatt er på norske hender,» forteller Håkon Wium Lie.

Tjenesten dokumenterer svært sprikende praksis i håndtering av innsynshenvendelser, både når det gjelder responstid og innhold i svarene. De aller fleste håndteres raskt og korrekt, men det er i flere tilfeller gitt innsyn i dokumenter der ansvarlig etat i ettertid ønsker å trekke innsynet tilbake, og det er gitt innsyn der sladdingen har vært utført på en måte som ikke skjuler informasjonen som skal sladdes.

– «Offentlighetsloven er en bærebjelke for vårt demokrati. Den bryr seg ikke med hvem som ber om innsyn, eller hvorfor. Prosjektet Mimes brønn innebærer en materialisering av dette prinsippet, der hvem som helst kan be om innsyn og klage på avslag, og hvor dokumentasjon gjøres offentlig. Dette gjør Mimes Brønn til et av de mest spennende åpenhetsprosjektene jeg har sett i nyere tid.» forteller mannen som fikk åpnet opp eierskapsregisteret til skatteetaten, Vegard Venli.

Vi i foreningen NUUG håper Mimes brønn kan være et nyttig verktøy for å holde vårt demokrati ved like.

by Mimes Brønn atFebruary 13, 2017 02:07 PM

February 08, 2017

Peter Hansteen (That Grumpy BSD Guy)

A New Year, a New Round of pop3 Gropers from China

They've got a list, and they're sticking to it. Do they even know or care it's my list of spamtraps?

Yes, the Chinese are at it again. Or rather, machines with IP addresses that belong in a small set of Chinese province networks have started a rather intense campaign of trying to access the pop3 mail retrieval protocol on a host in my care, after a longish interval of near-total inactivity.

This is the number of failed pop3 login attempts to my system per day so far in 2017:

January 1:        4
January 2:    145
January 3:      20
January 4:      51
January 5:      32
January 6:      36
January 7:  4036
January 8:  5956
January 9:  5769

Clearly, something happened on January 7th, and whatever started then has not stopped yet. On that day we see a large surge in failed pop3 logins, sustained over the next few days, and almost exclusively attempts at the username part of entries from my list of spamtrap addresses. Another notable feature of this sequence of attempts is that they come almost exclusively from a small set of Chinese networks.

The log of the failed attempts are in raw form here, while this spreadsheet summarises the log data in a format oriented to IP address and username pairs and attempts at each.  The spreadsheet also contains netblock information and the country or territory the range is registered to. (Note: when importing the .csv, please specify the "User name" colum as text, otherwise conversion magic may confuse matters)

The numbers for January 7th onwards would have been even higher had it not been for a few attempts to access accounts that actually exist, with my reaction to block (for 24 hours only) the entire netblock the whois info for the offending IP address. Some of those blocks were quite substantial. I've also taken the liberty of removing those entries with real usernames from the logs.

Now despite urging from friends to publish quickly, I've silently collected data for a few days (really just a continuation of the collecting that started with last year's episode described in the Chinese Hunting Chinese Over POP3 In Fjord Country article, which in turn contains links to the data that by now covers almost a full year).

Now disregarding the handful of real user IDs I've already removed from the data set, the only new user IDs we have seen this year are:


The rest were already in the spamtraps list, as user name parts. As you will have guessed, those two have been duly included there as well, with @bsdly.net appended in order to form a somewhat believable spamtrap email address.

What, then can we expect to see over the next few days?

The progression so far has been proceeding from trap user names starting with 0, ascended through the numerics and have now (January 9) moved on to the early alphabetics. The list of spamtraps is just shy of 35,000 entries, and I assume the entries I see here come out of some larger corpus that our somewhat inept cyber-criminals use.

If you too are seeing larger than usual numbers of pop3 login failures and anything even vaguely resembling the patters of mischief described here, I would like to hear from you. If your logs follow a format somewhat resembling mine, it is most likely trivial to modify the scripts (in the same directories as the data) to extract data to the slightly more database- or spreadsheet-friendly CSV.

From my perch here it is difficult to determine whether the people responsible for the networks that feature prominently in the data are cooperating with the cybercriminals or whether they are simply victims of their own substandard security practices.

If you are in a position to shed light on that, I would like to hear from you, and I will do my best to protect your anonymity unless you specify otherwise.

In the meantime, expect the data, (both the full set starting in January 2016 and the 2017-only set) to be updated at frequent, quasi-random intervals.

If you need some background on what the spamtrap list is and some history of related incidents over the last few years, I can recommend reading these articles:

Hey, spammer! Here's a list for you! (July 2007) - a light introduction to greytrapping
Maintaining A Publicly Available Blacklist - Mechanisms And Principles (April 2013) - on greytrapping principles and practice
Effective Spam and Malware Countermeasures - Network Noise Reduction Using Free Tools (2008 - 2014) - a more thorough treatment of the whole spam and malware complex
Password Gropers Take the Spamtrap Bait (August 2014) - the first time I noticed pop3 logins for my spamtraps, and of course
Chinese Hunting Chinese Over POP3 In Fjord Country (August 2016) - about a previous bizarre episode involving Chinese networks and pop3 activity.

Update 2017-02-08: Another round of attempts at usernames that are likely Chinese user names (much like the June 19 2016 onwards cycle described in the Chinese Hunting Chinese Over POP3 In Fjord Country article) started on February 8th, 2017.

The first few hours brought the following user names, with the likely corresponding real life name in the second column:

Name Username
Luo Chun luochun
Luo Fa luofa
Luo Feng luofeng
Luo Hai luohai

These names have been added to the full data as well as the 2017-only portion. The log file (2016 and 2017 version or 2017-only data) contains the entries starting at Feb  8 15:26:45 (times are CET local time). It will be interesting to see how long this cycle lasts. Look for updates to the data at irregular but hopefully frequent intervals.

If you are seeing similar activity, I would like to hear from you, in comments or (these most recent attempts all originate in the network (range -, also known as  CHINANET-JS or the CHINANET jiangsu province network). The previous cycle involved several distinct Chinese networks, and as we all know, stretched over several months of low intensity activity.

by Peter N. M. Hansteen (noreply@blogger.com) atFebruary 08, 2017 09:52 PM

January 28, 2017

NUUG Foundation

Reisestipend for studenter - 2017

NUUG Foundation utlyser reisestipender for 2017. Søknader kan sendes inn til enhver tid.

January 28, 2017 12:57 PM

January 06, 2017

Espen Braastad

CentOS 7 root filesystem on tmpfs

Several years ago I wrote a series of posts on how to run EL6 with its root filesystem on tmpfs. This post is a continuation of that series, and explains step by step how to run CentOS 7 with its root filesystem in memory. It should apply to RHEL, Ubuntu, Debian and other Linux distributions as well. The post is a bit terse to focus on the concept, and several of the steps have potential for improvements.

The following is a screen recording from a host running CentOS 7 in tmpfs:


Build environment

A build host is needed to prepare the image to boot from. The build host should run CentOS 7 x86_64, and have the following packages installed:

yum install libvirt libguestfs-tools guestfish

Make sure the libvirt daemon is running:

systemctl start libvirtd

Create some directories that will be used later, however feel free to relocate these to somewhere else:

mkdir -p /work/initramfs/bin
mkdir -p /work/newroot
mkdir -p /work/result

Disk image

For simplicity reasons we’ll fetch our rootfs from a pre-built disk image, but it is possible to build a custom disk image using virt-manager. I expect that most people would like to create their own disk image from scratch, but this is outside the scope of this post.

Use virt-builder to download a pre-built CentOS 7.3 disk image and set the root password:

virt-builder centos-7.3 -o /work/disk.img --root-password password:changeme

Export the files from the disk image to one of the directories we created earlier:

guestfish --ro -a /work/disk.img -i copy-out / /work/newroot/

Clear fstab since it contains mount entries that no longer apply:

echo > /work/newroot/etc/fstab

SELinux will complain about incorrect disk label at boot, so let’s just disable it right away. Production environments should have SELinux enabled.

echo "SELINUX=disabled" > /work/newroot/etc/selinux/config

Disable clearing the screen on login failure to make it possible to read any error messages:

mkdir /work/newroot/etc/systemd/system/getty@.service.d
cat > /work/newroot/etc/systemd/system/getty@.service.d/noclear.conf << EOF


We’ll create our custom initramfs from scratch. The boot procedure will be, simply put:

  1. Fetch kernel and a custom initramfs.
  2. Execute kernel.
  3. Mount the initramfs as the temporary root filesystem (for the kernel).
  4. Execute /init (in the initramfs).
  5. Create a tmpfs mount point.
  6. Extract our CentOS 7 root filesystem to the tmpfs mount point.
  7. Execute switch_root to boot on the CentOS 7 root filesystem.

The initramfs will be based on BusyBox. Download a pre-built binary or compile it from source, put the binary in the initramfs/bin directory. In this post I’ll just download a pre-built binary:

wget -O /work/initramfs/bin/busybox https://www.busybox.net/downloads/binaries/1.26.1-defconfig-multiarch/busybox-x86_64

Make sure that busybox has the execute bit set:

chmod +x /work/initramfs/bin/busybox

Create the file /work/initramfs/init with the following contents:

#!/bin/busybox sh

# Dump to sh if something fails
error() {
	echo "Jumping into the shell..."
	setsid cttyhack sh

# Populate /bin with binaries from busybox
/bin/busybox --install /bin

mkdir -p /proc
mount -n -t proc none /proc

mkdir -p /sys
mount -n -t sysfs none /sys
mkdir -p /sys/dev

mkdir -p /var/run

mkdir -p /dev
mount -n -t tmpfs -o mode=0755 mdev /dev

mkdir -p /dev/pts
mount -n -t devpts devpts /dev/pts

# Populate /dev
echo /bin/mdev > /proc/sys/kernel/hotplug
mdev -s

mkdir -p /newroot
mount -t tmpfs -o size=1500m tmpfs /newroot || error

echo "Extracting rootfs... "
xz -d -c -f rootfs.tar.xz | tar -x -f - -C /newroot || error

mount --move /sys /newroot/sys
mount --move /proc /newroot/proc
mount --move /dev /newroot/dev

exec switch_root /newroot /sbin/init || error

Make sure it is executable:

chmod +x /work/initramfs/init

Create the root filesystem archive using tar. The following command also uses xz compression to reduce the final size of the archive (from approximately 1 GB to 270 MB):

cd /work/newroot
tar cJf /work/initramfs/rootfs.tar.xz .

Create initramfs.gz using:

cd /work/initramfs
find . -print0 | cpio --null -ov --format=newc | gzip -9 > /work/result/initramfs.gz

Copy the kernel directly from the root filesystem using:

cp /work/newroot/boot/vmlinuz-*x86_64 /work/result/vmlinuz


The /work/result directory now contains two files with file sizes similar to the following:

ls -lh /work/result/
total 277M
-rw-r--r-- 1 root root 272M Jan  6 23:42 initramfs.gz
-rwxr-xr-x 1 root root 5.2M Jan  6 23:42 vmlinuz

These files can be loaded directly in GRUB from disk, or using iPXE over HTTP using a script similar to:

kernel http://example.com/vmlinuz
initrd http://example.com/initramfs.gz

January 06, 2017 08:34 PM

November 12, 2016

Anders Einar Hilden

Perl Regexp Oneliners and UTF-8

For my project to find as many .no domains as possible, I needed a regexp for extracting valid domains. This task is made more fun by the inclusion of Norwegian and Sami characters in the set of valid characters.

In addition to [a-z0-9\-], valid dot-no domains can contain the Norwegian æ (ae), ø (o with stroke) and å (a with ring above) (Stargate, anyone?) and a number of Sami characters. ŧ (t with stroke), ç (c with cedilla) and ŋ (simply called “eng”) are some of my favourites.

The following code will print only the first match per line, and uses ŧ directly in the regexp.

echo "fooŧ.no baŧ.no" | perl -ne 'if(/([a-zŧ]{2,63}\.no)/ig) { print $1,"\n"; }'

If we replace if with while we will print any match found in the whole line.

echo "fooŧ.no baŧ.no" | perl -ne 'while(/([a-zŧ]{2,63}\.no)/ig) { print $1,"\n"; }'

Because I’m afraid the regexp (specifically the non-ASCII characters) may be mangled by being saved and moved between systems, I want to write the Norwegian and Sami characters using their Unicode code points. Perl has support for this using \x{<number>} (see perl unicode)

echo "fooŧ.no baŧ.no" | perl -CSD -ne 'while(/([a-z\x{167}]{2,63}\.no)/ig) { print $1,"\n"; }'

When using code points, I have to specify -CSD for the matching to work. I am not really sure why this is required. If you can explain, please comment or tell my by other means. As you can read in perlrun, -CSD specifies that STDIN, STDOUT, STDERR and all input and output streams should be treated as being UTF-8.

Another problem is that if this last solution is is fed invalid UTF-8, it will die fatally and stop processing input.

Malformed UTF-8 character (fatal) at -e line 1, <> line X.

To prevent this happening I currently sanitize my dirty input using iconv -f utf-8 -t utf-8 -c. If you have a better solution for this, Perl or otherwise, please tell me!.

A simple regexp would match the valid characters for a length between 2 and 63 followed by .no. However, I wanted only and all “domains under .no” as counted by Norid in their statistics. Norids definition of “domains under .no” are all the domains directly under .no, but also domains under category domains i.e. ohv.oslo.no and ola.priv.no. To get comparable results, I have to collect both *.no and *.<category domain>.no domains when scraping data.

The resulting “oneliner” I use is this…. It once was a oneliner, but with more than 10k characters in the regexp it was hard to manage. The resulting script builds up a regexp that is valid for all Norwegian domains using a list of valid category domains, all valid characters and other rules for .no domains.

November 12, 2016 10:00 PM

September 18, 2016

Dag-Erling Smørgrav

Not up to our usual standards

For a few years now, I’ve been working on and off on a set of libraries which collect cryptography- and security-related code I’ve written for other projects as well as functionality which is not already available under a permissive license, or where existing implementations do not meet my expectations of cleanliness, readability, portability and embeddability.

(Aside: the reasons why this has taken years, when I initially expected to publish the first release in the spring or summer of 2014, are too complex to explain here; I may write about them at a later date. Keywords are health, family and world events.)

Two of the major features of that collection are the OATH Authentication Methods (which includes the algorithm used by Google Authenticator and a number of commercial one-time code fobs) and the Common Platform Enumeration, part of the Security Content Automation Protocol. I implemented the former years ago for my employer, and it has languished in the OpenPAM repository since 2012. The latter, however, has proven particularly elusive and frustrating, to the point where it has existed for two years as merely a header file and a set of mostly empty functions, just to sketch out the API. I decided to have another go at it yesterday, and actually made quite a bit of progress, only to hit the wall again. And this morning, I realized why.

The CPE standard exists as a set of NIST Interagency reports: NISTIR 7695 (naming), NISTIR 7696 (name matching), NISTIR 7697 (dictionary) and NISTIR 7698 (applicability language). The one I’ve been struggling with is 7695—it is the foundation for the other three, so I can’t get started on them until I’m done with 7695.

It should have been a breeze. On the surface, the specification seems quite thorough: basic concepts, representations, conversion between representations (including pseudocode). You know the kind of specification that you can read through once, then sit down at the computer, start from the top, and code your way down to the bottom? RFC 4226 and RFC 6238, which describe OATH event-based and time-based one-time passwords respectively, are like that. NISTIR 7695 looks like it should be. But it isn’t. And I’ve been treating it like it was, with my nose so close to the code that I couldn’t see the big picture and realize that it is actually not very well written at all, and that the best way to implement it is to read it, understand it, and then set it aside before coding.

One sign that NISTIR 7695 is a bad specification is the pseudocode. It is common for specifications to describe algorithms, protocols and / or interfaces in the normative text and provide examples, pseudocode and / or a reference implementation (sometimes of dubious quality, as is the case for RFC 4226 and RFC 6238) as non-normative appendices. NISTIR 7695, however, eschews natural-language descriptions and includes pseudocode and examples in the normative text. By way of example, here is the description of the algorithm used to convert (“bind”, in their terminology) a well-formed name to a formatted string, in its entirety: Summary of algorithm

The procedure iterates over the eleven allowed attributes in a fixed order. Corresponding attribute values are obtained from the input WFN and conversions of logical values are applied. A result string is formed by concatenating the attribute values separated by colons.

This is followed by one page of pseudocode and two pages of examples. But the examples are far from exhaustive; as unit tests, they wouldn’t even cover all of the common path, let alone any of the error handling paths. And the pseudocode looks like it was written by someone who learned Pascal in college thirty years ago and hasn’t programmed since.

The description of the reverse operation, converting a formatted string to a well-formed name, is slightly better in some respects and much worse in others. There is more pseudocode, and the examples include one—one!—instance of invalid input… but the pseudocode includes two functions—about one third of the total—which consist almost entirely of comments describing what the functions should do, rather than actual code.

You think I’m joking? Here is one of them:

function get_comp_fs(fs,i)
  ;; Return the i’th field of the formatted string. If i=0,
  ;; return the string to the left of the first forward slash.
  ;; The colon is the field delimiter unless prefixed by a
  ;; backslash.
  ;; For example, given the formatted string:
  ;; cpe:2.3:a:foo:bar\:mumble:1.0:*:...
  ;; get_comp_fs(fs,0) = "cpe"
  ;; get_comp_fs(fs,1) = "2.3"
  ;; get_comp_fs(fs,2) = "a"
  ;; get_comp_fs(fs,3) = "foo"
  ;; get_comp_fs(fs,4) = "bar\:mumble"
  ;; get_comp_fs(fs,5) = "1.0"
  ;; etc.

This function shouldn’t even exist. It should just be a lookup in an associative array, or a call to an accessor if the pseudocode was object-oriented. So why does it exist? Because the main problem with NISTIR 7695, which I should have identified on my first read-through but stupidly didn’t, is that it assumes that implementations would use well-formed names—a textual representation of a CPE name—as their internal representation. The bind and unbind functions, which should be described in terms of how to format and parse URIs and formatted strings, are instead described in terms of how to convert to and from WFNs. I cannot overstate how wrong this is. A specification should never describe a particular internal representation, except in a non-normative reference implementation, because it prevents conforming implementations from choosing more efficient representations, or representations which are better suited to a particular language and environment, and because it leads to this sort of nonsense.

So, is the CPE naming specification salvageable? Well, it includes complete ABNF grammars for URIs and formatted strings, which is good, and a partial ABNF grammar for well-formed names, which is… less good, but fixable. It also explains the meanings of the different fields; it would be useless otherwise. But apart from that, and the boilerplate at the top and bottom, it should be completely rewritten, including the pseudocode and examples, which should reference fictional, rather than real, vendors and products. Here is how I would structure it (text in italic is carried over from the original):

  1. Introduction
    1.1. Purpose and scope
    1.2. Document structure
    1.3. Document conventions
    1.4. Relationship to existing specifications and standards
  2. Definitions and abbreviations
  3. Conformance
  4. CPE data model
    4.1 Required attributes
    4.2 Optional attributes
    4.3 Special attribute values
  5. Textual representations
    5.1. Well-formed name
    5.2. URI
    5.3. Formatted string
  6. API
    6.1. Creating and destroying names
    6.2. Setting and getting attributes
    6.3. Binding and unbinding
  7. Non-normative examples
    7.1. Valid and invalid attribute values
    7.2. Valid and invalid well-formed names
    7.3. Valid and invalid URIs
    7.4. Valid and invalid formatted strings
  8. Non-normative pseudo-code
  9. References
  10. Change log

I’m still going to implement CPE naming, but I’m going to implement it the way I think the standard should have been written, not the way it actually was written. Amusingly, the conformance chapter is so vague that I can do this and still claim conformance with the Terrible, Horrible, No Good, Very Bad specification. And it should only take a few hours.

By the way, if anybody from MITRE or NIST reads this and genuinely wants to improve the specification, I’ll be happy to help.

PS: possibly my favorite feature of NISTIR 7695, and additional proof that the authors are not programmers: the specification mandates that WFNs are UTF-8 strings, which are fine for storage and transmission but horrible to work with in memory. But in the next sentence, it notes that only characters with hexadecimal values between x00 and x7F may be used, and subsequent sections further restrict the set of allowable characters. In case you didn’t know, the normalized UTF-8 representation of a sequence of characters with hexadecimal values between x00 and x7F is identical, bit by bit, to the ASCII representation of the same sequence.

by Dag-Erling Smørgrav atSeptember 18, 2016 01:54 PM

August 24, 2016

Nicolai Langfeldt

The most important thing about Apache

The most important thing you should know about Apache, the web-server, is that if you feel stupid after trying to get something working on it - this is perfectly normal - and does not mean you are stupid.

Try NGiNX next time.  If it supports the thing you need.

by Nicolai Langfeldt (noreply@blogger.com) atAugust 24, 2016 08:26 PM

July 15, 2016

Mimes brønn

Hvem har drukket fra Mimes brønn?

Mimes brønn har nå vært oppe i rundt et år. Derfor vi tenkte det kunne være interessant å få en kortfattet statistikk om hvordan tjenesten er blitt brukt.

I begynnelsen av juli 2016 hadde Mimes brønn 71 registrerte brukere som hadde sendt ut 120 innsynshenvendelser, hvorav 62 (52%) var vellykkede, 19 (16%) delvis vellykket, 14 (12%) avslått, 10 (8%) fikk svar at organet ikke hadde informasjonen, og 12 henvendelser (10%; 6 fra 2016, 6 fra 2015) fortsatt var ubesvarte. Et fåtall (3) av hendvendelsene kunne ikke kategoriseres. Vi ser derfor at rundt to tredjedeler av henvendelsene var vellykkede, helt eller delvis. Det er bra!

Tiden det tar før organet først sender svar varierer mye, fra samme dag (noen henvendelser sendt til Utlendingsnemnda, Statens vegvesen, Økokrim, Mediatilsynet, Datatilsynet, Brønnøysundregistrene), opp til 6 måneder (Ballangen kommune) eller lenger (Stortinget, Olje- og energidepartementet, Justis- og beredskapsdepartementet, UDI – Utlendingsdirektoratet, og SSB har mottatt innsynshenvendelser som fortsatt er ubesvarte). Gjennomsnittstiden her var et par uker (med unntak av de 12 tilfellene der det ikke har kommet noe svar). Det følger av offentlighetsloven § 29 første ledd at henvendelser om innsyn i forvaltningens dokumenter skal besvares «uten ugrunnet opphold», noe som ifølge Sivilombudsmannen i de fleste tilfeller skal fortolkes som «samme dag eller i alle fall i løpet av 1-3 virkedager». Så her er det rom for forbedring.

Klageretten (offentleglova § 32) ble benyttet i 20 av innsynshenvendelsene. I de fleste (15; 75%) av tilfellene førte klagen til at henvendelsen ble vellykket. Gjennomsnittstiden for å få svar på klagen var en måned (med unntak av 2 tillfeller, klager sendt til Statens vegvesen og Ruter AS, der det ikke har kommet noe svar). Det er vel verdt å klage, og helt gratis! Sivilombudsmannen har uttalt at 2-3 uker ligger over det som er akseptabel saksbehandlingstid for klager.

Flest henvendelser var blitt sendt til Utenriksdepartementet (9), tett etterfulgt av Fredrikstad kommune og Brønnøysundregistrene. I alt ble henvendelser sendt til 60 offentlige myndigheter, hvorav 27 ble tilsendt to eller flere. Det står over 3700 myndigheter i databasen til Mimes brønn. De fleste av dem har dermed til gode å motta en innsynshenvendelse via tjenesten.

Når vi ser på hva slags informasjon folk har bedt om, ser vi et bredt spekter av interesser; alt fra kommunens parkeringsplasser, reiseregninger der statens satser for overnatting er oversteget, korrespondanse om asylmottak og forhandlinger om toppdomenet .bv, til dokumenter om Myanmar.

Myndighetene gjør alle mulige slags ting. Noe av det gjøres dårlig, noe gjør de bra. Jo mer vi finner ut om hvordan  myndighetene fungerer, jo større mulighet har vi til å foreslå forbedringer på det som fungerer dårlig… og applaudere det som  bra.  Er det noe du vil ha innsyn i, så er det bare å klikke på https://www.mimesbronn.no/ og så er du i gang 🙂

by Mimes Brønn atJuly 15, 2016 03:56 PM

June 01, 2016

Kevin Brubeck Unhammer

Maskinomsetjing vs NTNU-eksaminator

Twitter-brukaren @IngeborgSteine fekk nyleg ein del merksemd då ho tvitra eit bilete av nynorskutgåva av økonomieksamenen sin ved NTNU:

Dette var min økonomieksamen på "nynorsk". #nynorsk #noregsmållag #kvaialledagar https://t.co/RjCKSU2Fyg
Ingeborg Steine (@IngeborgSteine) May 30, 2016

Kreative nyvinningar som *kvisleis og alle dialektformene og arkaismane ville vore usannsynlege å få i ei maskinomsett utgåve, så då lurte eg på kor mykje betre/verre det hadde blitt om eksaminatoren rett og slett hadde brukt Apertium i staden? Ingeborg Steine var så hjelpsam at ho la ut bokmålsutgåva, så då får me prøva 🙂


Ingen kvisleis og fritt for tær og fyr, men det er heller ikkje perfekt: Visse ord manglar frå ordbøkene og får dermed feil bøying, teller blir tolka som substantiv, ein anna maskin har feil bøying på førsteordet (det mangla ein regel der) og at blir ein stad tolka som adverb (som fører til det forunderlege fragmentet det verta at anteke tilvarande). I tillegg blir språket gjenkjent som tatarisk av nettsida, så det var kanskje litt tung norsk? 🙂 Men desse feila er ikkje spesielt vanskelege å retta på – utviklingsutgåva av Apertium gir no:


Det er enno eit par småting som kunne vore retta, men det er allereie betre enn dei fleste eksamenane eg fekk utdelt ved UiO …

by k atJune 01, 2016 09:45 AM

May 29, 2016

Espen Braastad

Filebin upgrade

https://filebin.net is a public and free file upload/sharing service. Its main design principle is to be incredibly simple to use.

It has been in production for several years, and has more or less been unmodified until now. Today it has been upgraded in several ways, and this post aims to elaborate on some of the changes.

Complete rewrite

The previous version of Filebin was written in Python and kept meta data in MongoDB. For a number of reasons, Filebin has been completely rewritten in Go. It does no longer depend on any database except the local filesystem.

Some of the most visible changes are:

New hardware and software stack

The infrastructure, bandwidth and hardware needed to run filebin.net is sponsored by Redpill Linpro, the leading provider of professional Open Source services and products in the Nordic region.

As part of todays upgrade, filebin.net has been migrated into their awesome IaaS cloud which is based on OpenStack and Ceph, runs on modern hardware and spans multiple locations.

The source code of Filebin is available in Github. Bugs are reported and tracked in Github issues.

Feel free to reach out with feedback and suggestions by email to espebra(a)ifi.uio.no, or by leaving a comment to this blog post.

May 29, 2016 06:40 PM

February 23, 2016

Holder de ord

Her er Siv og Erna uenige

Av totalt 2353 avstemninger i denne regjeringsperioden, har Høyre og Frp vært uenige i 17. Her er en oversikt over hvilke saker dette er.

I vår nye enighetstjeneste kommer det fram at regjeringspartiene Høyre og Frp har stemt sammen i 99 % av sakene siden valget i 2013. Denne ene prosenten er mer nøyaktig 17 avstemninger.

Flyktning- og innvandringspolitikk

Uenigheten omkring det såkalte Syria-forliket har blitt mye omtalt. Alle partiene på Stortinget bortsett fra Frp og SV stemte for at Norge skal ta i mot 8000 kvoteflyktninger fra Syria, fordelt på årene 2015, 2016 og 2017. Frp ville ta i mot færre, mens SV ville ta i mot flere.

Frp fremmet derfor et eget forslag om å avholde en folkeavstemning om hvorvidt Norge skal ta i mot flere flyktninger. Dette ble nedstemt av alle de andre partiene på Stortinget.

Regjeringspartiene stemte også ulikt over et forslag om å kartlegge behov og huslyløsninger for flyktninger innenfor norsk internasjonal humanitær innsats. Forslaget ble fremmet av Frp, KrF og Sp, og MDG og Venstre stemte for.

Les også: Saker hvor de rødgrønne har stemt ulikt

I desember 2015 fremmet KrF forslag om at alle som er over 12 år og oppfyller vilkårene og får innvilget norsk statsborgerskap skal gjennomgå en obligatorisk offentlig statsborgerskapsseremoni. KrFs begrunnelse var at å delta i denne seremonien og avlegge et troskapsløfte er viktig for å stadfeste sin tilknytning til Norge, og at å delta aktivt i en offentlig seremoni vil kunne føre til økt tilknytning, medansvar og følelse av sterkere tilhørighet til de verdiene som landet bygger på. Frp var det eneste andre partiet som stemte for.

Laster innhold fra Holder de ord


FrP stemte som eneste parti mot et forslag fra MDG, KrF og Sp om å fastsette Norges klimamål for 2030 og 2050 i lov. FrP stemte også som eneste parti mot forslag om at regjeringen i de årlige budsjettene skal rapportere på hvordan Norge kan nå klimamålene for 2020, 2030 og frem mot 2050, og på hvordan budsjettet påvirker Norges klimagassutslipp.

Regjeringspartiene stemte også ulikt over et forslag om å la fylkeskommunene få stille miljøkrav til drosjenæringen. Også her var Frp eneste parti som stemte mot.

Bevæpning av politiet

Frp fremmet i desember 2015 forslag om å innføre permanent bevæpning av politiet. Ingen av de andre partiene stemte for.

Innføring av minstelønn

Høyre og Frp har vært uenige om hvorvidt innføring av en nasjonal minstelønn er en god idé. Frp har stemt for Venstres forslag om lovfesting av minstelønn, da de mener dette vil være et godt virkemiddel i kampen mot sosial dumping. De øvrige partiene på Stortinget mener fri lønnsdannelse, der partene i arbeidslivet selv kommer overens om lønns- og tariffspørsmål, hovedsakelig uten innblanding fra politiske myndigheter, er en bedre modell. Det skal imidlertid sies at det kan se ut som at det også er uenighet internt i Høyre om dette, da åtte av i alt 27 tilstedeværende representanter fra partiet stemte for.

Pensjonistenes kjøpekraft

SV stemte i 2014 som eneste andre parti for Frps forslag om å ikke redusere alderspensjonistenes kjøpekraft i forbindelse med statsbudsjettet for 2015.

Laster innhold fra Holder de ord


Regjeringspartiene har vært uenige i en rekke formuleringer i Grunnloven. I mai 2014 foreslo Høyre at det i Grunnloven skal hete at «ethvert menneske har en iboende rett til liv», mens de andre partiene, bortsett fra KrF, mente det skal hete «ethvert menneske har rett til liv».

Høyre sammen med MDG ønsket også at det skal hete at «alle mennesker er født frie og like. Staten skal respektere og sikre menneskerettighetene», mens de andre partiene gikk for «Statens myndigheter skal respektere og sikre menneskerettighetene slik de er nedfelt i denne grunnlov og i for Norge bindende traktater om menneskerettigheter».

Regjeringspartiene var også uenige om hvorvidt Grunnloven skal garantere rett til utdannelse. Høyre og Venstre foreslo at det i en ny paragraf i Grunnloven skal hete at

Enhver har rett til utdannelse. Barn har rett til å motta grunnleggende opplæring. Opplæringen skal ivareta den enkeltes evner og behov og fremme respekt for demokratiet, rettsstaten og menneskerettighetene

Frp ønsket ikke at Grunnloven skal regulere utdanningsspørsmål.

Frp stemte også som eneste parti mot følgende formulering: «Statens myndigheter skal sikre adgang til videregående opplæring og like muligheter til høyere utdannelse på grunnlag av kvalifikasjoner.»

Regjeringspartiene stemte også ulikt i spørsmålet om endring av Grunnlovens §110 til å omfatte rett til å tjene til livets opphold ved næring i tillegg til arbeid, samt at retten til sosial trygghet skulle tas inn i form av stønad fra det offentlige skulle tas med. Også her var Frp eneste parti som stemte mot.

FrP var også det eneste partiet som stemte mot at Grunnloven skal sikre retten til et sunt miljø.

Laster innhold fra Holder de ord

Frp var imidlertid ikke eneste parti som stemte for forslaget om at Grunnloven skal få en ny paragraf som legger til grunn at familien er den grunnleggende enheten i samfunnet, og at staten har en særlig plikt til å bistå barnefamilier. Kun Høyre og Venstre stemte mot, da de mente at Grunnloven primært bør inneholde menneskerettigheter som bør kunne håndheves og gjøres gjeldende mot staten, og at det ikke er hensiktsmessig å blande sammen uforpliktende programerklæringer og symbolske langsiktige målsettinger sammen med klare rettsregler.

by Hanna Tranås (hanna@holderdeord.no) atFebruary 23, 2016 06:23 PM

February 17, 2016

Dag-Erling Smørgrav

FreeBSD and CVE-2015-7547

As you have probably heard by now, a buffer overflow was recently discovered in GNU libc’s resolver code which can allow a malicious DNS server to inject code into a vulnerable client. This was announced yesterday as CVE-2015-7547. The best sources of information on the bug are currently Google’s Online Security Blog and Carlos O’Donnell’s in-depth analysis.

Naturally, people have started asking whether FreeBSD is affected. The FreeBSD Security Officer has not yet released an official statement, but in the meantime, here is a brief look at the issue as far as FreeBSD is concerned.

First of all: neither FreeBSD itself nor native FreeBSD applications are affected. While the resolver in FreeBSD’s libc and GNU libc share a common ancestry, the bug was introduced when the latter was rewritten to send A and AAAA queries in parallel rather than sequentially when the application requests both.

However, Linux applications running under emulation on a FreeBSD system use the GNU libc and are therefore vulnerable unless patched. I believe, but have not verified, that the linux_base-c6 port contains a vulnerable version of GNU libc while the older linux_base-f10 port does not. For now, it is safest to assume that they are both vulnerable.

UPDATE 2016-02-17 18:40 UTC: the linux_base-c6 port has been updated in ports-head, 2016Q1 branch to follow, no word on linux_base-f10

UPDATE 2016-02-18 00:15 UTC: the quarterly branch has been updated

The issue can be mitigated by only using resolvers you trust, and configuring them to avoid sending responses which can trigger the bug.

If you already have your own resolvers, you can configure them to avoid sending UDP responses larger than 2048 bytes. If the response does not fit in 2048 bytes, the server will send a truncated response, and the client should retry using TCP. While a similar bug exists in the code path for TCP requests, I believe that it can only be exploited by a malicious resolver, and interposing your own resolver will protect affected Linux systems and applications.

If you do not already have your own resolvers, you can set one up in a couple of minutes as follows:

# pkg install -y unbound
# fetch -o /usr/local/etc/unbound https://blog.des.no/wp-content/uploads/2016/02/unbound.conf
# vi /usr/local/etc/unbound/unbound.conf
  ... fix access-control statements as mentioned in comments ...
# echo 'unbound_enable="yes"' >>/etc/rc.conf
# service unbound start

(link to the config file)

You must then edit /etc/resolv.conf on all affected systems to point to your new resolver. If you are running Linux applications under emulation, make sure that there is no /compat/linux/etc/resolv.conf, as it would override the system-wide /etc/resolv.conf.

Note that unlike FreeBSD libc, GNU libc does not automatically pick up changes to /etc/resolv.conf, so you will have to restart all affected Linux services and applications.

by Dag-Erling Smørgrav atFebruary 17, 2016 05:53 PM

December 16, 2015

NUUG Foundation

Reisestipend for studenter - 2016

NUUG Foundation utlyser reisestipender for 2016. Søknader kan sendes inn til enhver tid.

December 16, 2015 11:28 AM

October 18, 2015

Anders Nordby

Fighting spam with SpamAssassin, procmail and greylisting

On my private server we use a number of measures to stop and prevent spam from arriving in the users inboxes: - postgrey (greylisting) to delay arrival (hopefully block lists will be up to date in time to stop unwanted mail, also some senders do not retry) - SpamAssasin to block mails by scoring different aspects of the emails. Newer versions of it has URIBL (domain based, for links in the emails) in addtition to the tradional RBL (IP based) block lists. Which works better. I also created my own URIBL block list which you can use, dbl.fupp.net. - Procmail. For user on my server, I recommend this procmail rule: :0 * ^X-Spam-Status: Yes .crapbox/ It will sort emails that has a score indicating it is spam into mailbox "crapbox". - blocking unwanted and dangerous attachments, particularly for Windows users.

by Anders (noreply@blogger.com) atOctober 18, 2015 01:09 PM

April 23, 2015

Kevin Brubeck Unhammer


I førre innlegg i denne serien gjekk eg kort gjennom ymse metodar for å generera omsetjingskandidatar til tospråklege ordbøker; i dette innlegget skal eg gå litt meir inn på kandidatgenerering ved omsetjing av enkeltdelane av samansette ord. Me har som nemnt allereie ei ordbok mellom bokmål og nordsamisk, som me vil utvida til bokmål–lulesamisk og bokmål–sørsamisk. Og ordboka blei utvikla for å omsetja typisk «departementsspråk», så ho er full av lange, samansette ord. Og på samisk kan me setja saman ord omtrent på same måte som på norsk (i tillegg til ein haug med andre måtar, men det hoppar me glatt over for no). Dette bør me kunna utnytta, sånn at viss me veit kva «klage» er på lulesamisk, og me veit kva «frist» er, så har me iallfall éin fornuftig hypotese for kva «klagefrist» kan vera på lulesamisk 🙂

Orddeling er flott når du skal omsetja ordbøker. Særskrivingsfeil er flott når du vil smila litt.
«Ananássasuorma» jali «ananássa riŋŋgu»? Ij le buorre diehtet.

Altså kan me bruka dei få omsetjingane me allereie har mellom bokmål og lulesamisk/sørsamisk til å laga fleire omsetjingar, ved å omsetja deler av ord, og så setja dei saman igjen. Me har òg eit par omsetjingar liggande mellom nordsamisk og lulesamisk/sørsamisk, så me kan bruka same metoden der (og utnytta det at me har ei bokmål–nordsamisk-ordbok til å slutta riŋgen tilbake til bokmål).

Dekning og presisjon

Dessverre (i denne samanhengen) har me òg ofte fleire omsetjingar av kvart ord; i dei eksisterande bokmål–lulesamisk-ordbøkene me ser på (i stor grad basert på ordboka til Anders Kintel) står det at «klage» kan vera mellom anna gujdalvis, gujddim, luodjom eller kritihkka, medan «frist» kan vera  ájggemierre, giehtadaláduvvat, mierreduvvam eller ájggemærráj. Viss me tillet kvar venstredel å gå med kvar høgredel, får me 16 moglege kandidatar for dette eine ordet! Sannsynlegvis er ikkje meir enn ein eller to av dei brukande (og kanskje ikkje det ein gong). I snitt får me rundt dobbelt så mange kandidatar som kjeldeord med denne metoden. Så me bør finna metodar for å kutta ned på dårlege kandidatar.

Den komplementære utfordringa er å få god nok dekning. Av og til ser me at me ikkje har ei omsetjing av delane av ordet, sjølv om me har omsetjingar av ord med dei same delene i seg. Den setninga krev nok eit døme 🙂 Me vil gjerne ha ein kandidat for ordet «øyekatarr» på lulesamisk, altså samansetjinga «øye+katarr». Me har kanskje ei omsetjing for «øye» i materialet vårt, men ingenting for «katarr». Derimot står det at «blærekatarr» er gådtjåráhkkovuolssje. Så for å utvida dekninga, kan me i tillegg dela opp kjeldematerialet vårt i alle par av samansetjingsdelar; viss me veit at desse orda kan analyserast som «blære+katarr» og gådtjåráhkko+vuolssje, så kan det jo synast som at «blære» er gådtjåráhkko og «katarr» er vuolssje (og Giellatekno har heldigvis gode morfologiske analysatorar som fint deler opp slike ord på rette staden). Og dette gir ei god utviding av materialet – faktisk får me kandidatar for nesten dobbelt så mange av dei orda som me ønsker kandidatar for, viss me utvidar kjeldematerialet på denne måten. Men det har ei stor ulempe òg: Me får over dobbelt så mange lule-/sørsamiske kandidatar per bokmålsord (i snitt rundt fire kandidatar per kjeldeord).

Filtrering og rangering

Me vil innskrenka dei moglege kandidatane til dei som mest sannsynleg er gode. Den beste testen er å sjå om kandidaten finst i korpus, og då helst i same parallellstilte setning (dette er oftast ein bra kandidat). Viss ikkje, så kan me òg sjå på om kandidaten og kjeldeordet har liknande frekvensar, eller om kandidaten har frekvens i det heile.

Orddelingsomsetjinga foreslo tsavtshvierhtie for «virkemiddel», og der stod dei i ein parallellsetning òg:
<s xml:lang="sma" id="2060"/>Daesnie FoU akte vihkeles tsavtshvierhtie .
<s xml:lang="nob" id="2060"/>Her er FoU er et viktig virkemiddel .

– då er det nok eit godt ordpar.

Uheldigvis har me så lite tekstgrunnlag for lule-/sørsamisk at me fort går tom for kandidatar med frekvens i det heile. For sørsamisk har me t.d. berre kandidatar med korpustreff for rundt 10 % av orda me lagar kandidatar for.

Ein annan test, som fungerer på alle ord, er å sjå om det får analyse av dei morfologiske analysatorane våre; viss ikkje (og viss det i tillegg ikkje har korpustreff) er det oftast feil. Men dette fjernar berre rundt 1/4 av kandidatane; med den oppdelte ordboka vår (kor me òg har med par av delar av ord) har me enno i snitt rundt tre kandidatar per kjeldeord.

(Ein test som eg prøvde, men avslo, var filtrering basert på liknande ordlengd. Det verkar jo logisk at lange ord blir omsett til lange og korte til korte, men det finst mange gode unntak. I tillegg fjernar det alt for få dårlege kandidatar til at det ser ut til å vera verdt det.)

Det parallelle korpusmaterialet vårt er altfor lite, men når me skal generera kandidatar til ordbøker så er det jo ikkje parallelle setningar me prøver å predikera, men parallelle ord og ordbokspar. Og då er jo læringsgrunnlaget vårt eigentleg dei eksisterande ordbøkene våre … Derfor prøvde eg å sjå på kva for samansetjingsdelar som faktisk var brukt i dei tidlegare omsetjingane våre, og kva for par av delar som ofte opptredde i tidlegare omsetjingar, og kva for delar som sjeldan eller aldri gjorde det. Til dømes har den oppdelte ordboka vår for bokmål–lulesamisk desse para:

Her ser me at «løyve» anten kan vera loahpádus eller doajmmaloahpe – skal «taxiløyve» då vera táksiloahpádus eller táksidoajmmaloahpe? På bakgrunn av dette materialet bør me nok satsa på det første – sjølv om doajmmaloahpe står oppført, så er det berre loahpádus som opptrer i samansette ord.

Då kan me prøva å generera kandidatar for alle bokmålsorda i materialet vårt, både dei me eigentleg er ute etter å finna kandidatar for, og dei me allereie har omsetjingar for. Gå så gjennom dei genererte kandidatane for dei orda me allereie har omsetjingar for, og tel opp dei para av orddelar som genererte slike ord. Me har kanskje laga kandidatane barggo+loahpádus og barggo+dajmmaloahpe for «arbeids+løyve»; når me så går gjennom dei eksisterande omsetjingane og finn at «arbeidsløyve» stod i ordboka med omsetjinga barggoloahpádus, så aukar me frekvensen til paret «løyve»–loahpádus med éin, medan «løyve»–dajmmaloahpe blir verande null.

For no har berre filtrert ut dei kandidatane kor paret til anten første- eller andreledd hadde nullfrekvens. I følgje litt manuell evaluering frå ein lingvist er det omtrent berre dårlege ord som blir kasta ut, så det filteret ser ut til å fungera bra. På den andre sida blir berre rundt 10 % av kandidatane fjerna viss me berre hiv ut dei med nullfrekvens, så neste steg blir å bruka frekvensane til å få ei full rangering.

Viss alle ord kunne delast i nøyaktig to delar, så ville det kanskje vore nok å telja opp par av delar og enkeltdelar for å estimera sannsyn, altså f(s,t)/f(s).  Men av og til kan ord delast på fleire måtar, til dømes kan me sjå på «sommersiidastyre» som «sommer+siidastyre» eller «sommersiida+styre» (eg har valt å halda meg til todelingar av ord, for å unngå for mange alternative kandidatar). Viss omsetjinga er giessesijddastivrra, med analysane giesse+sijddastivrra eller giessesijdda+stivrra, så har me ikkje utan vidare nokon grunn til å velja den eine over den andre (vel, me har lengd i dette tilfellet, men det gjeld ikkje i alle slike døme, og me kan ha par av analysar som er 2–3 eller 3–2). Då kan me heller ikkje seia kva for par av orddelar (s,t) me skal auka når me ser «sommersiidastyre»–giessesijddastivrra i treningsmaterialet. Men viss me i tillegg ser «styre»–stivvra ein annan stad, så har me plutseleg eit grunnlag til å ta ei avgjerd. Metodar som Expectation Maximization kan kombinera relaterte frekvensar på denne måten for å finna fram til gode estimat, men eg har ikkje komme så langt at eg har fått implementert dette enno.

by k atApril 23, 2015 06:11 PM

April 14, 2015

NUUG events video archive


April 14, 2015 11:13 AM

February 12, 2015

Salve J. Nilsen

On Bandwagonbuilders and Bandwagoneers

<Farnsworth>Good news, everyone!</Farnsworth>

The League of Bandwagonbuilders have spoken – Perl 6 is likely to be “production ready” sometime in 2015! This means it’s time for the Bandwagoneers to start preparing.

Bandwagoneer – that’s you and me, although you may call yourself something different. Perl Monger. Perl Enthusiast. Or just someone who has realized that all volunteer-based Open Source communities need people who care about making stuff happen in meatspace.

At Oslo.pm (I’m a board member there), we’re doing exactly that. We’re Bandwagoneers, spending some of our own valuable time showing others where the cool stuff is, and showing them how to get it. Here’s some of what we’re up to:

Also worth mentioning; a few weeks ago we also had an introduction to Perl 6’s Foreign Function Interface (called NativeCall), courtesy Arne SkjĂŚrholt. It was quite useful, and I hear Arne’s happy to accept invitations from Perl Monger groups to come visit and give the same presentation. :)

Enough bragging, already!

Being a Bandwagoneer means it’s your task to make stuff happen. There are many ways to do it, and I hope you can find some inspiration in what Oslo.pm is doing. Maybe get in touch with some of the Bandwagonbuilders in #perl6 on irc.freenode.org, and ask if anyone there would like to visit your group? I think that would be cool.

Get cracking! đŸ˜€

by sjn atFebruary 12, 2015 11:20 PM

January 06, 2015


NSA-proof SSH

ssh-pictureOne of the biggest takeaways from 31C3 and the most recent Snowden-leaked NSA documents is that a lot of SSH stuff is .. broken.

I’m not surprised, but then again I never am when it comes to this paranoia stuff. However, I do run a ton of SSH in production and know a lot of people that do. Are we all fucked? Well, almost, but not really.

Unfortunately most of what Stribika writes about the “Secure Secure Shell” doesn’t work for old production versions of SSH. The cliff notes for us real-world people, who will realistically be running SSH 5.9p1 for years is hidden in the bettercrypto.org repo.

Edit your /etc/ssh/sshd_config:

Ciphers aes256-ctr,aes192-ctr,aes128-ctr
MACs hmac-sha2-512,hmac-sha2-256,hmac-ripemd160
KexAlgorithms diffie-hellman-group-exchange-sha256

Basically the nice and forward secure aes-*-gcm chacha20-poly1305 ciphers, the curve25519-sha256 Kex algorithm and Encrypt-Then-MAC message authentication modes are not available to those of us stuck in the early 2000s. That’s right, provably NSA-proof stuff not supported. Upgrading at this point makes sense.

Still, we can harden SSH, so go into /etc/ssh/moduli and delete all the moduli that have 5th column < 2048, and disable ECDSA host keys:

cd /etc/ssh
mkdir -p broken
mv moduli ssh_host_dsa_key* ssh_host_ecdsa_key* ssh_host_key* broken
awk '{ if ($5 > 2048){ print } }' broken/moduli > moduli
# create broken links to force SSH not to regenerate broken keys
ln -s ssh_host_ecdsa_key ssh_host_ecdsa_key
ln -s ssh_host_dsa_key ssh_host_dsa_key
ln -s ssh_host_key ssh_host_key

Your clients, which hopefully have more recent versions of SSH, could have the following settings in /etc/ssh/ssh_config or .ssh/config:

Host all-old-servers

    Ciphers aes256-gcm@openssh.com,aes128-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr
    MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-ripemd160-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-ripemd160
    KexAlgorithms curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256

Note: Sadly, the -ctr ciphers do not provide forward security and hmac-ripemd160 isn’t the strongest MAC. But if you disable these, there are plenty of places you won’t be able to connect to. Upgrade your servers to get rid of these poor auth methods!

Handily, I have made a little script to do all this and more, which you can find in my Gone distribution.

There, done.

sshh obama

Updated Jan 6th to highlight the problems of not upgrading SSH.
Updated Jan 22nd to note CTR mode isn’t any worse.
Go learn about COMSEC if you didn’t get trolled by the title.

by kacper atJanuary 06, 2015 04:33 PM

December 08, 2014


sound sound


Recently I been doing some video editing.. less editing than tweaking my system tho.
If you want your jack output to speak with Kdenlive, a most excellent video editing suite,
and output audio in a nice way without choppyness and popping, which I promise you is not nice,
you’ll want to pipe it through pulseaudio because the alsa to jack stuff doesn’t do well with phonom, at least not on this convoluted setup.

Remember, to get that setup to work, ALSA pipes to jack with the pcm.jack { type jack .. thing, and remove the alsa to pulseaudio stupidity at /usr/share/alsa/alsa.conf.d/50-pulseaudio.conf

So, once that’s in place, it won’t play even though Pulse found your Jack because your clients are defaulting out on some ALSA device… this is when you change /etc/pulse/client.conf and set default-sink = jack_out.

by kacper atDecember 08, 2014 12:18 AM

November 18, 2014

Anders Einar Hilden

Changing the Subnet Mask in Vmware Workstation on Debian Jessie

I’m currently attending SANS SEC504: Hacker Tools, Techniques, Exploits and Incident Handling in London. For some of the labs in the course we need machines on the IPs and with a subnet mask of

Changing the Subnet Mask for the NAT or host-only networks in VMware Workstation seems like such a easy thing to do. According to VMware it should be as easy as opening the Virtual Network Editor and “type a new value in the Subnet mask text box”.

Oh wait … I can’t change it. The field for subnet mask in the Virtual Network Editor is not editable.

VMware Virtual Network Editor: the field for subnet mask is not editable

Let’s keep googling - plenty matches, but everyone keeps insisting it can be changed in the GUI, or mixes the subnet mask with the subnet IP. Some posts blame permission, but since the Virtual Network Editor always runs as root, that’s not the problem. There are no listings for the vmnets in /etc/network/interfaces or /etc/network/interfaces.d/ and changing the subnet mask in NetworkManager does nothing.

After a lot of thinking (and just after I checked /etc/network/interfaces ) I found /etc/vmware/networking - BINGO! This looks like just the file we were looking for.

Before editing the file we should stop any vmware-related services that might use these files.

$ sudo service vm<TAB>
vmamqpd vmware vmware-USBArbitrator vmware-workstation-server

I’m not sure witch of these services use the files we are editing, so we’ll stop them all

$ sudo service vmamqpd
$ sudo service vmware
$ sudo service vmware-USBArbitrator
$ sudo service vmware-workstation-server

For the SANS course I have set up a new host-only network vmnet2. Since we are using static IPs, and will be running malware on these systems, I have disabled DHCP and not connected a host virtual adapter. The shared folder option Map as a network drive in Windows guests still work, don’t ask me how. Below is the configuration for vmnet2 with a subnet mask of

answer VNET_2_DHCP no
answer VNET_2_DHCP_CFG_HASH E9892EF1006EBB5D4996DF1A377B10EB0D542B94

Success! (but continue reading, we update the DHCP configuration below the picture)

VMware Virtual Network Editor: the uneditable field contains the subnet mask we wanted

VMware stores DHCP config and leases in /etc/vmware/vmnet<NUM>/dhcpd/. If we have changed the subnet IP, subnet mask, or turned on or off DHCP, these files need to be updated. The configfile contains autogenerated information surronded by “DO NOT MODIFY SECTION”, so we should probably not edit it manually.

If we open VMware Virtual Network Editor (sudo vmware-netcfg), change a setting (e.g. the subnet IP from to, save, and then change it back again, VMware will update the files for us.

November 18, 2014 02:50 PM

January 29, 2014

Nicolai Langfeldt

git log -p splitting

At work we have two related code bases.  Recently one of them received a lot of loving, and the other needed the same treatment to work better with new Perl and modules. The one ha gotten several hundred patches, and browsing that many and cherrypicking them got tiresome.  It was better for me to split the whole log into separate patches and review and apply one by one and then moving the "done" patches to a different directory.

Here, the small hack to split "git log -p" into one patch pr. file:


awk 'BEGIN { FN=0; }
     /^commit / { FN++; }
     { print $0 >> FN }' $1

by Nicolai Langfeldt (noreply@blogger.com) atJanuary 29, 2014 09:40 AM

February 24, 2013

Bjørn Venn

Chromebook; a real cloud computer – but will it work in the clouds?

<iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/63ZAvyrxkOA" width="470"></iframe>

Lyst på én? Den er ikke i salg i Norge enda, men du kan kjøpe den på Amazon. Les her hvordan jeg kjøpte min på Amazon (bla litt nedover på siden). Med norsk moms, levert til Rimi-butikken 100 meter fra der jeg bor, kom den på 1.850 kroner. Det er den så absolutt verdt:)

by Bjorn Venn atFebruary 24, 2013 07:34 PM

February 22, 2013

Bjørn Venn

Hvem klarer å skaffe meg en slik før påske?

Chromebook pixel

Den nye Chromebook-en til Google, Chromebook Pixel. Foreløbig kun i salg i USA og UK via Google Play og BestBuy.

Verden er urettferdig:)

by Bjorn Venn atFebruary 22, 2013 12:44 PM

January 07, 2013

NUUG events video archive

Utfordringer innen identitetshåndtering og autentisering

Dag-Erling Smørgrav påpeker hvordan Unix har et autentiserings-paradigme som ikke har endret seg på 40 år, mens det har skjedd store utviklinger de siste årene på denne fronten.

January 07, 2013 10:00 PM

May 29, 2012

Salve J. Nilsen

Inviting to the Moving to Moose Hackathon 2012

Oslo Perl Mongers are organizing a hackathon for everyone who would like to dive deep into the details of Moose! We have invited the #p5-mop crowd to work on getting a proper Meta Object Protocol into Perl core, and we’ve invited the #perlrdf crowd to come and convert the Perl RDF toolchain to Moose.

You’re welcome to join us!

Special rebate for members of the Perl and CPAN communities

If you’re working on a project that is considering on moving to Moose then you’re especially welcome! We have a set of promo codes you can use when signing up for the hackathon. Please get in touch with us (or some of the existing participants) to get your promo code and a significant rebate!

Commercial tickets available

Would you like to support the hackathon, but don’t have access to a sponsorship budget? Does your company plan on using Moose, and sees the value of having excellent contacts in the open source communities around this technology? For you, we have a limited amount of commercial tickets. Please check out the hackathon participation page for details.

Sponsorship opportunities

The hackathon is already well sponsored, but there is room for more! If you want to support the us, please contact the organizers as soon as possible!

Who can come?

In short: Everyone who cares about Moose and object-oriented programming in Perl! We’re trying to make the Perl community better by hacking on the stuff that makes the biggest difference (at least in our eyes ;)). If you agree, you’re very welcome to join us! Check out the event site for details, and get in touch with us on IRC if you’re interested.

And finally, keep in mind Oslo.pm’s 2-point plan:

  1. Do something cool
  2. Tell about it!

See you in Stavanger?

by sjn atMay 29, 2012 02:44 PM

October 31, 2011

Anders Nordby

Taile wtmp-logg i 64-bit Linux med Perl?

Jeg liker å la ting skje hendelsesbasert, og har i den forbindelse lagd et script for å rsynce innhold etter opplasting med FTP. Jeg tailer da wtmp-loggen med Perl, og starter sync når brukeren er eller har blitt logget ut (kort idle timeout). Å taile wtmp i FreeBSD var noe jeg for lenge siden fant et fungerende eksempel på nettet:
$typedef = 'A8 A16 A16 L'; $sizeof = length pack($typedef, () ); while ( read(WTMP, $buffer, $sizeof) == $sizeof ) { ($line, $user, $host, $time) = unpack($typedef, $buffer); # Gjør hva du vil med disse verdiene her }
FreeBSD bruker altså bare verdiene line (ut_line), user (ut_name), host (ut_host) og time (ut_time), jfr. utmp.h. Linux (x64, hvem bryr seg om 32-bit?) derimot, lagrer en hel del mer i wtmp-loggen, og etter en del Googling, prøving/feiling og kikking i bits/utmp.h kom jeg frem til:
$typedef = "s x2 i A32 A4 A32 A256 s2 l i2 i4 A20"; $sizeof = length pack($typedef, () ); while ( read(WTMP, $buffer, $sizeof) == $sizeof ) { ($type, $pid, $line, $id, $user, $host, $term, $exit, $session, $sec, $usec, $addr, $unused) = unpack($typedef, $buffer); # Gjør hva du vil med disse verdiene her }
Som bare funker, flott altså. Da ser jeg i sanntid brukere som logger på og av, og kan ta handlinger basert på dette.

by Anders (noreply@blogger.com) atOctober 31, 2011 07:37 PM

A complete feed is available in any of your favourite syndication formats linked by the buttons below.

[RSS 1.0 Feed] [RSS 2.0 Feed] [Atom Feed] [FOAF Subscriptions] [OPML Subscriptions]