Neuen Port erstellen --> MongoDB

hijacker

Active Member
Servus,

ich bin nun das erste Mal auf eine benötigte Applikation gestoßen die noch nicht im Port-Tree vorhanden ist: MongoDB. Ein PR ist dafür wohl auch noch nicht vorhanden.

Jetzt habe ich das Porter-Handbuch gewälzt und porttools angeschaut; jedoch muss ich sagen dass das echt nicht mein Fachgebiet ist. Man will ja auch keinen Murks verzapfen, dafür ist der Respekt vor den Port-Committern einfach zu groß.

Welche Möglichkeiten gibt es sonst um diesen Prozess anzuschubsen? Gerüchten zufolge lesen hier ja einige Geeks mit entsprechenden Skills mit...

Nicht falsch verstehen, ich bin ja auch bereit dazu zu lernen. Vor einiger Zeit hab ich hier von einer Art IRC-Tutorium zum Thema "Ports erstellen" gelesen. Könnte man dieses inklusive Basics wie Tinderbox (laut Porter-Handbuch) mal wiederholen? Alleine trete ich irgendwie auf der Stelle...

Danke und Gruß
 
Porting ist wirklich nicht schwer, wenn die Programme keinen Ärger beim Kompilieren machen. Fehler macht da jeder am Anfang (und später auch noch), da muss man einfach durch.
 
Gnome Network Manager

Ich habe zwar die wpa_gui für solche Zwecke, aber die sieht nicht nur grottig aus, sondern schiesst sich gerne mal ins Nirvana.
 
Das ist jetzt alles Andere als trivial da das massiv ins System eingreift.

Denk daran, das die ifconfig Syntax zu Linux weitgehend inkompatibel ist, der low-level code müsste also für FreeBSD neu geschrieben werden. Das ist kaum machbar ohne Upstream im Projekt involviert zu sein.
 
Ich weiss, deswegen gehe ich da auch nicht dran. Wenn man mal die ML der letzten 2-3 Jahre so nachliest, haben da wohl mehrere sich dran verbissen.
 

Danke, das hab ich vorher nicht gefunden.

Porting ist wirklich nicht schwer, wenn die Programme keinen Ärger beim Kompilieren machen. Fehler macht da jeder am Anfang (und später auch noch), da muss man einfach durch.

Yeah, danke dir für die Aufmunterung! :)

Okee, also ich erzähl am Besten mal wie weit ich komme. Ich versuche mich gerade an porttools...

Code:
Makefile
distinfo
pkg-descr

Diese Files sind bearbeitet, das Fetchen des Quell-Tarballs klappt auch.

Ab jetzt hakts jedoch:

Laut dem Post hier hat die App mehrere Ports mit zusätzlichen Optionen als Abhängigkeiten. Die kommen ja wahrscheinlich wie im Sample in das Makefile.

Auszug aus dem Beispiel:

Code:
[dependencies -- can be empty]
RUN_DEPENDS=   gs:${PORTSDIR}/print/ghostscript
LIB_DEPENDS=   Xpm.5:${PORTSDIR}/graphics/xpm

Was ist der Unterschied zwischen run- und lib_depends? "Run" die zur Laufzeit von Make zur Verfügung stehen müssen und Lib die von der App benötigt werden, so richtig? Also müsste die Zeile allein für Python so aussehen?

Code:
LIB_DEPENDS=   python:${PORTSDIR}/lang/python

Wie erkenne ich denn welche Abhängigkeiten diese App genau hat und braucht. Vor dem Portieren versuchen normal zu bauen und Dateien tracen?

Edit: Die grau markierten Fragen sind obsolet. Antworten hab ich im Porter-Handbook gefunden. Sorry.
 
Zuletzt bearbeitet:
Mittlerweile bin ich ein paar Schritte weiter (neben der regulären Arbeit.. :ugly:).
Ich glaube/hoffe das System der Dependencies nun verstanden zu haben. Vielleicht hätte ich allerdings mit einem kleineren Projekt beginnen sollen.. :)

Der Build-Prozess läuft mit allen Abhängigkeiten sauber durch, die pkg-plist existiert auch, Deinstallation klappt ebenfalls. Portlint sagt: "looks fine". Vielleicht mag trotzdem noch mal einer von euch über das Makefile schauen:

Code:
PORTNAME=	mongodb
PORTVERSION=	1.0.1
#PORTREVISION=	0
#PORTEPOCH=	0
CATEGORIES=	databases
MASTER_SITES=	http://download.github.com/ \
		http://misc.tymnet.dyndns.org/
#MASTER_SITE_SUBDIR=
#PKGNAMEPREFIX=
#PKGNAMESUFFIX=
DISTNAME=	mongodb-mongo-e316c78
#EXTRACT_SUFX=
#DISTFILES=
#DIST_SUBDIR=	${PORTNAME}
#EXTRACT_ONLY=

MAINTAINER=	mail@...de
COMMENT=	High-performance and document-oriented database

LIB_DEPENDS=	pcre.0:${PORTSDIR}/devel/pcre \
		js.1:${PORTSDIR}/lang/spidermonkey \
		execinfo:${PORTSDIR}/devel/libexecinfo
BUILD_DEPENDS=	scons:${PORTSDIR}/devel/scons \
		${LOCALBASE}/lib/libboost_python.so:${PORTSDIR}/devel/boost-python-libs

USE_SCONS=	yes

Ok, bevor es mit Benuter, Gruppe und Startup-Script weitergeht:

Code:
$ mongo
*** warning: spider monkey build without utf8 support.  consider rebuilding with utf8 support
MongoDB shell version: 1.0.1

Der Spidermonkey Port bringt nur leider keine UTF8 Option mit. Und ein zusätzliches

Code:
CFLAGS+=	-DJS_C_STRINGS_ARE_UTF8

im MongoDB Makefile hatte auch beim Neubauen von Spidermonkey keine Auswirkung. Weiß jemand wie man den Neubau einer Abhängigkeit mit anderen Optionen/Flags erzwingen kann? Oder sollte ich den Port-Maintainer kontaktieren?

Danke für die Hilfe!
 
Mittlerweile bin ich ein paar Schritte weiter (neben der regulären Arbeit.. :ugly:).
Ich glaube/hoffe das System der Dependencies nun verstanden zu haben. Vielleicht hätte ich allerdings mit einem kleineren Projekt beginnen sollen.. :)

Der Build-Prozess läuft mit allen Abhängigkeiten sauber durch, die pkg-plist existiert auch, Deinstallation klappt ebenfalls. Portlint sagt: "looks fine". Vielleicht mag trotzdem noch mal einer von euch über das Makefile schauen:

Code:
PORTNAME=	mongodb
PORTVERSION=	1.0.1
#PORTREVISION=	0
#PORTEPOCH=	0
CATEGORIES=	databases
MASTER_SITES=	http://download.github.com/ \
		http://misc.tymnet.dyndns.org/
#MASTER_SITE_SUBDIR=
#PKGNAMEPREFIX=
#PKGNAMESUFFIX=
DISTNAME=	mongodb-mongo-e316c78
#EXTRACT_SUFX=
#DISTFILES=
#DIST_SUBDIR=	${PORTNAME}
#EXTRACT_ONLY=

MAINTAINER=	mail@...de
COMMENT=	High-performance and document-oriented database

LIB_DEPENDS=	pcre.0:${PORTSDIR}/devel/pcre \
		js.1:${PORTSDIR}/lang/spidermonkey \
		execinfo:${PORTSDIR}/devel/libexecinfo
BUILD_DEPENDS=	scons:${PORTSDIR}/devel/scons \
		${LOCALBASE}/lib/libboost_python.so:${PORTSDIR}/devel/boost-python-libs

USE_SCONS=	yes

Ok, bevor es mit Benuter, Gruppe und Startup-Script weitergeht:

Code:
$ mongo
*** warning: spider monkey build without utf8 support.  consider rebuilding with utf8 support
MongoDB shell version: 1.0.1

Der Spidermonkey Port bringt nur leider keine UTF8 Option mit. Und ein zusätzliches

Code:
CFLAGS+=	-DJS_C_STRINGS_ARE_UTF8

im MongoDB Makefile hatte auch beim Neubauen von Spidermonkey keine Auswirkung. Weiß jemand wie man den Neubau einer Abhängigkeit mit anderen Optionen/Flags erzwingen kann? Oder sollte ich den Port-Maintainer kontaktieren?

Danke für die Hilfe!


Moin,

Soweit sieht es garnicht mal schlecht aus, paar kleine tipps.
alle sache mit # wuerde ich entfernen braucht kein mensch :)


scons:${PORTSDIR}/devel/scons

kannst du loeschen, USE_SCONS reicht in dem fall :)

..
 
Zuletzt bearbeitet:
Soweit sieht es garnicht mal schlecht aus, paar kleine tipps.
alle sache mit # wuerde ich entfernen braucht kein mensch :)


scons:${PORTSDIR}/devel/scons

kannst du loeschen, USE_SCONS reicht in dem fall :)

Super, Danke! Wieder was gelernt.

Okee, zu dem Spidermonkey-UTF8-Kram nochmal: Die Möglichkeiten von Slave Ports sind auch fein, dafür aber etwas oversized. Ich habe für Spidermonkey die Option UTF8 geadded und den PR submitted. Demnach sollte doch ein Hinweis in pkg-message - Spidermonkey mit der Option neu zu bauen falls man UTF8 benötigt - locker reichen, oder?
 
Zurück
Oben