Aussehen
Suche Einloggen
[c] [meta] [fefe] [erp]

5515 Ergebnisse

[0] ... [264] [265] [266] [267] [268] [269] [270] [271] [272] [273] ... [275]
  • [l] Frickel- Felix Fri, 01 Mar 2019 20:48:10 GMT Nr. 8025
    Dietchan zu kompilieren ist nicht schwierig. Ohne Vorkenntnisse sollte man nach 10-15 Minuten mit dem Hacken anfangen können. Ich habe das hier mal etwas ausführlicher beschrieben:

    1. DIETLIBC

    Lade dir die aktuelle Version (zur Zeit 0.34) von http://www.fefe.de/dietlibc .

    Falls du ihn noch nicht hast, solltest du auch seinen PGP-Schlüssel A534A9C6 laden. Das geht entweder über die Seite selbst (https://dl.fefe.de/felix@fefe.de.asc, du musst ihn noch mit "gpg --import" einlesen) oder mit dem Befehl "gpg --search-key 0xA534A9C6". Kannst du den Schlüssel dann in der Ausgabe von "gpg -k Fefe" finden, kannst du ebenso mit "gpg --verify dietlibc-0.34.tar.xz" die Echtheit des Pakets prüfen.

    Hat GPG nichts zu beanstanden, entpackst du das Archiv, wechselst in das neue Verzeichnis und führst "make" aus. Wenn du hier einen Fehler bekommst, dann hast du vermutlich die Kernel-Header nicht installiert. Ist alles glatt gelaufen, dann schaust du in den Ordner bin-x86 oder bin-x86_64 und wirst dort eine Datei mit dem Namen diet finden. Mit ihrer Hilfe können wir ohne großer Friemelei Dateien mit der dietlibc kompilieren, indem wir einfach das Wort diet vor den gcc-Befehl schreiben.

    Du solltest wissen, wie du auf deinem System diese Datei in deinen Suchpfad kopieren kannst. Tue dies! Nur falls du dies nicht weißt, probier es mit folgendem:
    1. Lege dir ein Verzeichnis ~/bin an.
    2. Starte eine Shell und schreibe PATH=$PATH:~/bin .
    3. Kopiere die diet-Datei nach ~/bin .
    4. Probiere testweise im entpackten Archiv folgendes: "diet -v gcc t.c"
    Dietlibc schreibt einige Warnungen, die uns jetzt nicht interessieren. Schau, ob eine Datei t entstanden ist und ob sie läuft.

    Gut! Du hast jetzt diet in deinem Suchpfad und kannst theoretisch allerhand Dateien mit der Dietlibc kompilieren und auf diese Weise viel kleinere ausführbare Datei erzeugen.

    2. LIBOWFAT

    Sehr einfach: Herunterladen, Verifizieren, Entpacken und make ausführen. Wenn du im letzten Schritt alles richtig gemacht hast, dann wird diet im Suchpfad erkannt und genutzt.

    3. DIETCHAN

    Besorg dir den Kot, indem du das Git-Repositorium klonierst:
    git clone https://gitgud.io/zuse/dietchan.git
    Der eigentliche Quellkot liegt im Unterverzeichnis dietchan/src. Wir machen es uns jetzt sehr einfach und kopieren das Verzeichnis libowfat-0.32/libowfat und die Datei libowfat.a ins dietchan-Verzeichnis. Dann gehst du in das src-Verzeichnis und das "make" sollte ohne Probleme durchlaufen und eine Datei dietchan erzeugen. Wenn du diese ausführst, kannst du in deinem Brausierer die Adresse "127.0.0.1:4000/c" öffnen et voila!

    Du siehst, es ist nicht schwierig. Vielleicht konntest du Einiges überspringen, weil du es schon kennst. Du kannst jetzt jedenfalls alles.jpg im Quelltext verändern. Versuche zum Beispiel mal die Seitenunterschrift ("Proudly made...") zu ändern und pfostiere dein Ergebnis hier.
  • [l] Frickel- Felix Fri, 01 Mar 2019 20:45:53 GMT Nr. 8024
    Ich habe jetzt eine BSD- und eine Linux-Installation und bin soweit ohne CMake klargekommen. Makefile aus >>5875 funktioniert mit einigen Anpassungen. Ich beschreibe den Vorgang im nächsten Pfosten. Hier noch einige Anregungen:

    1. Erste Meldung: "Listening on 127.0.0.1:4000 (try /c)" ist klickbar und deutet gleich auf's Standardbrett
    2. dietchan startet eine unschöne Endlosschleife, wenn captcha im Ordner fehlt (generate_captchas ist bei mir deshalb auskommentiert).
    3. Es wäre schon, wenn der Quelltext wirklich in /src zu finden wäre. captcha kann meinetwegen fliegen. Es ist ein eigenständiges Projekt und man kopiert nur die fertige Datei zu herüber.
  • [l] Felix Mon, 25 Feb 2019 15:39:04 GMT Nr. 7778 SÄGE
    Ist ein erbärmlicher Aufwand, aber es funktioniert. Checkiert sie übrigens.
  • [l] Felix Mon, 25 Feb 2019 15:37:48 GMT Nr. 7777
    Lynx-Captcha-Test
  • [l] Felix Wed, 23 Jan 2019 21:10:06 GMT Nr. 6494
    >>5950
    Mit Iridium auch kein Problem. Eine userContent.css gibt es nicht (mehr) und man soll stattdessen eine eigene Erweiterung schreiben (Wiebitte, WzF?!). Allerdings geht das über 9000 Mal besser als das Mozilla je hinbekommen hat und Felix hat jetzt seine erste Brausererweiterung schreiben können.
  • [l] Frickel- Felix Sun, 20 Jan 2019 10:16:41 GMT Nr. 6344
    Wenn ich das richtig sehe, dann hast du die Bibliotheken aus dem Projekt entfernt. Hier ein Ansatz für dietchan/Makefile, um die aktuellen Bibliotheken herunterzuladen, verifizieren und zu entpacken:
    FETCH=curl -O
    VERIFY=gpg --verify
    LFVER=0.32
    LFURI=http://www.fefe.de/libowfat/
    DLVER=0.34
    DLURI=http://www.fefe.de/dietlibc/
    
    libs: libowfat-$(LFVER) dietlibc-$(DLVER)
    
    libowfat-$(LFVER): libowfat-$(LFVER).tar.xz libowfat-$(LFVER).tar.xz.sig
    	$(VERIFY) libowfat-$(LFVER).tar.xz.sig
    	xzcat libowfat-$(LFVER).tar.xz | tar xf -
    
    dietlibc-$(DLVER): dietlibc-$(DLVER).tar.xz dietlibc-$(DLVER).tar.xz.sig
    	$(VERIFY) dietlibc-$(DLVER).tar.xz.sig
    	xzcat dietlibc-$(DLVER).tar.xz | tar xf -
    
    libowfat-$(LFVER).tar.xz:
    	$(FETCH) $(LFURI)$@
    
    libowfat-$(LFVER).tar.xz.sig:
    	$(FETCH) $(LFURI)$@
    
    dietlibc-$(DLVER).tar.xz:
    	$(FETCH) $(DLURI)$@
    
    dietlibc-$(DLVER).tar.xz.sig:
    	$(FETCH) $(DLURI)$@
    

    Zum Verifizieren braucht man natürlich den Schlüssel (von Fefes Seite holen oder mit gpg --search-key A534A9C6 suchen und importieren).
    Kann es sein, dass GPG bei nicht erfolgreicher Verifizierung trotzdem null zurückgibt? Auch würde ich gerne die letzten vier Regeln in eine zusammenfassen, komme aber gerade nicht drauf wie.
  • [l] Frickel- Felix Mon, 14 Jan 2019 18:41:12 GMT Nr. 6183
    JPG 600×600 102.6k
    Leider noch nicht.

    Gerade ist daheim das Internet futsch, was die Freizeitprojekte etwas ausbremst.
  • [l] Zuse ## Admin Sun, 13 Jan 2019 16:44:48 GMT Nr. 6155
    Bist du inzwischen weitergekommen?
  • [l] Felix Thu, 10 Jan 2019 09:02:54 GMT Nr. 6052
    >>5799
    Beim niedrigen Pfostenaufkommen von dietchan kann man die Pfostennummer auch einfach tippen.
  • [l] Zuse ## Admin Wed, 09 Jan 2019 07:34:08 GMT Nr. 6013
    Alles klar, scheint behoben zu sein. Problem war, dass Lynx für normale Textfelder einen Content-Type sendet, weshalb die Textfelder fälschlich als Dateihochlad identifiziert wurden.

    Danke für die Meldung!
  • [l] Lynx- Wed, 09 Jan 2019 07:32:22 GMT Nr. 6012
    test
  • [l] Lynx-Pfostierungen Felix Wed, 09 Jan 2019 05:25:23 GMT Nr. 6010
    JPG 1152×2048 319.3k
    scheitern mit einem 400 Bad Request aus Felix nicht erkenntlichen Gründen. Bitte um Behebung. Felixens Versuchpfosten kam von der selben IP.
  • [l] Felix Mon, 07 Jan 2019 04:22:38 GMT Nr. 5950
    PNG 642×458 22.3k
    >>5949
    Nett!
    >Ärgerlicherweise bleiben ausgerechnet auf diesem Brett alle Eingabefelder weiß.
    Kann das Problem nicht nachvollziehen, bei mir funktioniert es.
  • [l] Sehr einfache, augenfreundliche userContent.css Felix Mon, 07 Jan 2019 00:38:11 GMT Nr. 5949
    @-moz-document domain("dietchan.org"), domain("kohlchan.net") {
    	a,body,input[type="text"],input[type="password"],textarea,
    	.username,.quote,
    	.banner/*KC*/,
    	h2,.ban,.boardlist,.file,.name,.pages,.post,.quote2,.sage,.sticky/*KC*/
    	{		/* Grundstil */
    		background-color:	#222	!important;
    		color:			#ccc	!important;
    		border-width:		0	!important;
    	}
    	.subject,
    	h1,h2,.banner/*KC*/
    	{		/* hervorgehoben */
    		color:			#0c0	!important;
    	}
    }
    

    Ärgerlicherweise bleiben ausgerechnet auf diesem Brett alle Eingabefelder weiß. Hat Jemand Ahnung, wie ich den Brauserier dazu überreden kann?
  • [l] Zuse ## Admin Sun, 06 Jan 2019 09:57:57 GMT Nr. 5939
    Ich habe mal ein paar der angesprochenen Dinge geändert. Probier mal die neue Version.

    Falls hier demnächst etwas kaputt geht, wisst ihr woran es lag.
  • [l] Zuse ## Admin Sun, 06 Jan 2019 04:11:51 GMT Nr. 5938
    >>5936
    Du brauchst nicht nur dietlibc, sondern auch die richtige Version. Zum Zeitpunkt der Veröffentlichung war das die Trunk-Version und nun die 0.34, weil in der damals aktuellen Version 0.33 noch einige Sachen nicht implementiert waren (z.B. SHA-Hashes und die Race-Condition-freie Version von realpath()). Außerdem muss libowfat dann auch gegen dietlibc gelinkt sein. Das ist alles nicht unbedingt gegeben, wenn man aus einem Repository installiert. Dependencies zu installieren ist sowieso immer mühsam. Ich wollte die Einstiegshürde so gering wie möglich halten. Man sollte es einfach runterladen können und einen Befehl ausführen können, um es zu kompilieren.

    >Ich versuche es immer noch zum laufen zu bekommen. Ich schreibe wie im Beispiel gleich nach dem Öffnen in die neue Datei und der Bus-Error ist verschwunden. Jetzt ist ein neuer in db_hashmap_init und wieder mit byte_zero().
    Versuch mal, die Datei gleich am Anfang auf eine größere Größe zu initialisieren. Die Datei wächst nämlich dynamisch, während sie gefüllt wird. Ich glaube, es ist aber offiziell undefiniertes Verhalten, wie mmap sich verhält, wenn man über das Dateiende hinausmappt (wusste ich zu dem Zeitpunkt aber auch nicht). Beispiel: Sagen wir mal du mappst 10 MB, aber deine Datei ist nur 2 MB groß. POSIX gibt dir die Garantie, dass du auf die ersten 2 MB zugreifen kannst. Wenn jetzt aber die Datei auf 4 MB wächst, dann ist nach POSIX nicht garantiert, dass du auf mehr als die ersten 2 MB zugreifen kannst, obwohl die 4 MB noch in den gemappten 10 MB sind. Unter Linux funktioniert es aber. Vielleicht geht das unter BSD nicht.

    Lösung könnte sein, nach dem Vergrößern der Datei mmap erneut aufzurufen, mit MAP_FIXED als Flag. Dummerweise gibt es aber wiederum keine Garantie, dass MAP_FIXED auch beachtet wird. Aber solange sich die gemappte Größe nicht ändert, sehe ich keinen Grund, warum ein Betriebssystem das Flag nicht beachten sollte.

    Ich würde es erst mal zum Testen damit probieren, die Datei gleich zu Anfang auf eine größere Größe zu initialisieren, z.B. auf 10 MB. Das sollte reichen (die db von dietchan.org ist aktuell 2.1 MB groß).
  • [l] Felix Sat, 05 Jan 2019 22:13:28 GMT Nr. 5936
    PNG 512×512 16.6k
    >Mit dietlibc ist das alles etwas schwierig.
    Elaboriere "das alles". Gibt's kein 'make install' oder tut es einfach nicht das Richtige?

    Ich versuche es immer noch zum laufen zu bekommen. Ich schreibe wie im Beispiel gleich nach dem Öffnen in die neue Datei und der Bus-Error ist verschwunden. Jetzt ist ein neuer in db_hashmap_init und wieder mit byte_zero().
  • [l] Zuse ## Admin Thu, 03 Jan 2019 16:53:35 GMT Nr. 5876
    >>5874
    >Du wirst deine Gründe dafür haben, aber dass es zwei db_init-Prototypen gab
    Hmm, nein, eigentlich nicht. Weiß selber nicht mehr, warum das so ist. Vielleicht war es mal irgendwas zum debuggen, was ich danach nur unvollständig wieder entfernt habe.

    Bezüglich CMake: Zum Entwickeln am besten in src/dietchan wechseln und dort bauen. So habe ich es immer gemacht. Die ExternalProjekt-Funktion von CMake scheint irgendwie etwas verkäfert zu sein. Ich wollte aber etwas haben, was man einfach runterladen und kompilieren kann. Mit dietlibc ist das alles etwas schwierig.
  • [l] Bonus-Frickel- Felix Thu, 03 Jan 2019 14:06:46 GMT Nr. 5875
    Da ich bei mir die mitgelieferten Fefe-Libs ignorieren kann (da BSD-Clib vorhanden und libowfat vorinstalliert), fuhrwerke ich direkt in dietchan/src/dietchan/src rum und da ist mir cmake nach einer Weile auf den Senkel gegangen, weil man nach vielen kleineren Änderungen immer das Makefile neu generieren musste. Meine Variante ist sicher nicht perfekt, aber reicht zum kompilieren:
    CC=gcc
    CFLAGS=-I/usr/local/include -pedantic -std=c99 -O0 -ggdb
    OBJS=arc4random.o bans.o bbcode.o captcha.o context.o db.o db_hashmap.o \
        dietchan.o export.o http.o import.o ip.o job.o mime_types.o \
        params.o permissions.o persistence.o print.o session.o \
        tpl.o upload_job.o util.o
    POBJS=pages/banned.o pages/board.o pages/dashboard.o pages/edit_board.o pages/edit_user.o pages/login.o pages/mod.o pages/post.o pages/static.o pages/thread.o 
    dietchan: $(OBJS) $(POBJS)
            $(CC) -o dietchan -L/usr/local/lib -lowfat $(OBJS) $(POBJS:S/pages\///g)
    
    clean:
            rm -f $(OBJS) $(POBJS:S/pages\///g) dietchan
    

    Hab's auch mit clang geprüft. Kompiliert und die Fehlermeldungen sind dieselben :)

    Auch: rsync benutzt fallocate (--preallocate), allerdings optional.

    Wa alles, beste Grüße


[0] ... [264] [265] [266] [267] [268] [269] [270] [271] [272] [273] ... [275]
[c] [meta] [fefe] [erp]