Cgmail Port

Discussion in 'Porting New Software' started by sistematico, Oct 22, 2012.

  1. sistematico

    sistematico Member

    Messages:
    24
    Thanks Received:
    1
    I read the FreeBSD Porter's Handbook, but I'm still having some doubts, I used the example of the Handbook to try to create a port.

    Code:
    # $FreeBSD$
    
    PORTNAME=		cgmail
    PORTVERSION=	        0.5
    CATEGORIES=		mail
    MASTER_SITES=	        https://launchpadlibrarian.net/51644655/
    
    MAINTAINER=		sistematico@gmail.com
    COMMENT=		Gnome mail checker relased under GPL terms.
    
    MAN1=			cgmail.1
    MANCOMPRESSED=	yes
    #USE_IMAKE=		yes
    USE_PYDISTUTILS= yes
    #USE_GNOME=		gtk20
    GCONF_SCHEMAS= 	cgmail.schemas 
    
    .include <bsd.port.mk>


    Will it work?
    Does anyone have a better model?
    I can save this Makefile out of /usr/ports?

    Someone can help me?
     
  2. sistematico

    sistematico Member

    Messages:
    24
    Thanks Received:
    1
    Code:
    [root@jazz cgmail]:# make install PREFIX=/var/tmp/`make -V PORTNAME`
    ===>  Building for cgmail-0.6.2
    make: cannot open Makefile.
    *** [do-build] Error code 1
    
    Stop in /usr/home/lucas/apps/ports/cgmail.
    
     
  3. SirDice

    SirDice Administrator Staff Member Administrator Moderator

    Messages:
    25,254
    Thanks Received:
    5,283
    You made it, didn't you test it?
     
  4. sistematico

    sistematico Member

    Messages:
    24
    Thanks Received:
    1
    You're right.
    Anyway, I progressed to some extent.
    Code:
    # $FreeBSD$
    
    PORTNAME=		cgmail
    PORTVERSION=	0.6.2
    CATEGORIES=		mail
    MASTER_SITES=	https://launchpadlibrarian.net/51644655/
    MAINTAINER=		sistematico@gmail.com
    COMMENT=		Gnome mail checker relased under GPL terms.
    
    MAN1=			cgmail.1
    MANCOMPRESSED=	yes
    #NO_BUILD=		yes
    #USE_PYDISTUTILS=yes
    #USE_GNOME=		gtk20
    GCONF_SCHEMAS= 	cgmail.schemas 
    
    do-make:
            cd ${WRKSRC}/${PORTNAME}-${PORTVERSION}/ && ./waf configure --prefix=/usr/local
            cd ${WRKSRC}/${PORTNAME}-${PORTVERSION}/ && ./waf
    
    do-install:
            cd ${WRKSRC}/${PORTNAME}-${PORTVERSION}/ && ./waf install
    
    .include <bsd.port.mk>


    Code:
    [lucas@jazz cgmail]:$ make
    "Makefile", line 18: Need an operator
    "Makefile", line 19: Need an operator
    "Makefile", line 22: Need an operator
    make: fatal errors encountered -- cannot continue
    
     
  5. sistematico

    sistematico Member

    Messages:
    24
    Thanks Received:
    1
  6. sistematico

    sistematico Member

    Messages:
    24
    Thanks Received:
    1
    Code:
    [lucas@jazz cgmail]:$ make install
    ===>  Extracting for cgmail-0.6.2
    => No checksum file (/usr/home/lucas/apps/ports/cgmail/distinfo).
    ===>  Patching for cgmail-0.6.2
    ===>  Configuring for cgmail-0.6.2
    ===>  Building for cgmail-0.6.2
    make: cannot open Makefile.
    *** [do-build] Error code 1
    
     
  7. wblock@

    wblock@ Administrator Staff Member Administrator Moderator Developer

    Messages:
    13,856
    Thanks Received:
    3,553
  8. sistematico

    sistematico Member

    Messages:
    24
    Thanks Received:
    1
    Thank you for attention.

    BTW, huge progress here:
    Code:
    # $FreeBSD$
    
    PORTNAME=		cgmail
    PORTVERSION=	0.6.2
    CATEGORIES=		mail
    MASTER_SITES=	https://launchpadlibrarian.net/51644655/
    MAINTAINER=		sistematico@gmail.com
    COMMENT=		Gnome mail checker relased under GPL terms
    
    MAN1=			cgmail.1
    MANCOMPRESSED=	yes
    NO_BUILD=		yes
    
    LIB_DEPENDS=	feedparser:${PORTSDIR}/textproc/py-feedparser
    
    WRKSRC=			${WRKDIR}/${PORTNAME}-${PORTVERSION}
    
    pre-install:
    	cd ${WRKSRC} && ./waf configure --prefix=/usr/local
    	cd ${WRKSRC} && ./waf
    
    do-install:
    	cd ${WRKSRC} && ./waf install
    
    .include <bsd.port.mk>

    But something wrong with LIB_DEPENDS.
    Code:
    # make install
    [snip]
    ...
    [snip]
    ===>   Registering installation for py27-feedparser-5.1.2
    ===>   Returning to build of cgmail-0.6.2
    Error: shared library "feedparser" does not exist
    *** [lib-depends] Error code 1
    
    Stop in /usr/home/lucas/apps/ports/cgmail.
    


    Im little lost here.
     
  9. sistematico

    sistematico Member

    Messages:
    24
    Thanks Received:
    1
    Almost done, with big contribution of FreeBSD Ports List and #FreeBSD-br on Freenode.
    Code:
    # $FreeBSD$
    
    PORTNAME=		cgmail
    PORTVERSION=	0.6.2
    CATEGORIES=		mail
    MASTER_SITES=	https://launchpadlibrarian.net/51644655/
    MAINTAINER=		sistematico@gmail.com
    COMMENT=		Gnome mail checker relased under GPL terms
    NO_BUILD=		yes
    
    RUN_DEPENDS=	${PYTHON_SITELIBDIR}/feedparser.py:${PORTSDIR}/textproc/py-feedparser
    BUILD_DEPENDS=	intltoolize:${PORTSDIR}/textproc/intltool
    
    WRKSRC=			${WRKDIR}/${PORTNAME}-${PORTVERSION}
    
    pre-install:
    	cd ${WRKSRC} && ./waf configure --prefix=/usr/local
    	cd ${WRKSRC} && ./waf
    
    do-install:
    	cd ${WRKSRC} && ./waf install
    
    .include <bsd.port.mk>

    http://ports.sistematico.org/cgmail.tar.gz

    Thank you all, again.
     
  10. wblock@

    wblock@ Administrator Staff Member Administrator Moderator Developer

    Messages:
    13,856
    Thanks Received:
    3,553
    Don't hard-code /usr/local.
     
  11. sistematico

    sistematico Member

    Messages:
    24
    Thanks Received:
    1
    Thank you, changed to ${PREFIX}.
     
  12. sistematico

    sistematico Member

    Messages:
    24
    Thanks Received:
    1
    99% done:
    Code:
    # $FreeBSD$
    
    PORTNAME=		cgmail
    PORTVERSION=	0.6.2
    CATEGORIES=		mail
    MASTER_SITES=	https://launchpadlibrarian.net/51644655/
    
    MAINTAINER=		sistematico@gmail.com
    
    COMMENT=		Gnome mail checker relased under GPL terms
    
    NO_BUILD=		yes
    
    #BUILD_DEPENDS=	${PYTHON_SITELIBDIR}/py-gnome-desktop:${PORTSDIR}/x11-toolkits/py-gnome-desktop
    BUILD_DEPENDS=	${PYTHON_SITELIBDIR}/feedparser.py:${PORTSDIR}/textproc/py-feedparser
    BUILD_DEPENDS=	intltoolize:${PORTSDIR}/textproc/intltool
    
    WRKSRC=			${WRKDIR}/${PORTNAME}-${PORTVERSION}
    
    pre-install:
    	cd ${WRKSRC} && ./waf configure --prefix=${PREFIX}
    	cd ${WRKSRC} && ./waf
    
    do-install:
    	cd ${WRKSRC} && ./waf install
    
    .include <bsd.port.mk>


    Just commented line is wrong, can someone help me?
    I can not find the lib name.

    SRC: http://ports.sistematico.org/cgmail.tar.gz
     
  13. SirDice

    SirDice Administrator Staff Member Administrator Moderator

    Messages:
    25,254
    Thanks Received:
    5,283
    Replace it with:
    Code:
    USE_GNOME=           pygnomedesktop
    
     
  14. sistematico

    sistematico Member

    Messages:
    24
    Thanks Received:
    1
    Thank you wblock and SirDice!
    Someone can test?
    Code:
    # This is a shell archive.  Save it in a file, remove anything before
    # this line, and then unpack it by entering "sh file".  Note, it may
    # create directories; files and directories will be owned by you and
    # have default permissions.
    #
    # This archive contains:
    #
    #	cgmail/
    #	cgmail/Makefile
    #	cgmail/files
    #	cgmail/files/patch-cgmail.py
    #	cgmail/files/patch-cgmailservice.py
    #	cgmail/distinfo
    #	cgmail/pkg-descr
    #	cgmail/pkg-plist
    #
    echo c - cgmail/
    mkdir -p cgmail/ > /dev/null 2>&1
    echo x - cgmail/Makefile
    sed 's/^X//' >cgmail/Makefile << '147cb47d6c779a076d2b1bd0bd00094f'
    X# $FreeBSD$
    X
    XPORTNAME=	cgmail
    XPORTVERSION=	0.6.2
    XCATEGORIES=	mail
    XMASTER_SITES=	https://launchpadlibrarian.net/51644655/
    X
    XMAINTAINER=	sistematico@gmail.com
    XCOMMENT=	Gnome mail checker relased under GPL terms
    X
    XBUILD_DEPENDS=	${PYTHON_SITELIBDIR}/feedparser.py:${PORTSDIR}/textproc/py-feedparser \
    X	intltoolize:${PORTSDIR}/textproc/intltool
    X
    XGCONF_SCHEMAS=	cgmail.schemas
    X
    XUSE_GETTEXT=	yes
    XWITHOUT_NLS=	yes
    XINSTALLS_ICONS=	yes
    XUSE_GNOME=	pygnomedesktop
    X
    Xpost-patch:
    X	@${REINPLACE_CMD} -e "s|/bin/bash|${LOCALBASE}/bin/bash|" ${WRKSRC}/cgmail-run.sh
    X	@${REINPLACE_CMD} -e "s|/bin/bash|${LOCALBASE}/bin/bash|" ${WRKSRC}/cgmailservice-run.sh
    X
    Xdo-configure:
    X	cd ${WRKSRC} && ./waf configure --prefix=${PREFIX}
    X
    Xdo-build:
    X	cd ${WRKSRC} && ./waf
    X
    Xdo-install:
    X	cd ${WRKSRC} && ./waf install
    X
    X.include <bsd.port.mk>
    147cb47d6c779a076d2b1bd0bd00094f
    echo c - cgmail/files
    mkdir -p cgmail/files > /dev/null 2>&1
    echo x - cgmail/files/patch-cgmail.py
    sed 's/^X//' >cgmail/files/patch-cgmail.py << 'ba7d9d651451386b5548a18bcd772113'
    X--- cGmail/cgmail.py.orig	2012-10-30 20:22:30.000000000 -0300
    X+++ cGmail/cgmail.py	2012-10-30 20:22:49.000000000 -0300
    X@@ -33,14 +33,14 @@
    X 	gettext.install(package_name, localedir=None, unicode=True,
    X 			names=("ngettext",))
    X 	# also bind this for gtkbuilder (wtf?)
    X-	locale.bindtextdomain(package_name, localedir)
    X+	#locale.bindtextdomain(package_name, localedir)
    X 	# to load in current locale properly for sorting etc
    X 	try:
    X 		locale.setlocale(locale.LC_ALL, "")
    X 	except locale.Error, e:
    X 		pass
    X 
    X-setup_locale_and_gettext()
    X+#setup_locale_and_gettext()
    X 
    X iface = get_dbus_interface()
    X if iface:
    ba7d9d651451386b5548a18bcd772113
    echo x - cgmail/files/patch-cgmailservice.py
    sed 's/^X//' >cgmail/files/patch-cgmailservice.py << 'ade81f39b9c3b7351bc7261c7d37131f'
    X--- cGmail/cgmailservice.py.orig	2012-10-30 20:13:56.000000000 -0300
    X+++ cGmail/cgmailservice.py	2012-10-30 20:13:21.000000000 -0300
    X@@ -33,14 +33,14 @@
    X 	gettext.install(package_name, localedir=None, unicode=True,
    X 			names=("ngettext",))
    X 	# also bind this for gtkbuilder (wtf?)
    X-	locale.bindtextdomain(package_name, localedir)
    X+	#locale.bindtextdomain(package_name, localedir)
    X 	# to load in current locale properly for sorting etc
    X 	try:
    X 		locale.setlocale(locale.LC_ALL, "")
    X 	except locale.Error, e:
    X 		pass
    X 
    X-setup_locale_and_gettext()
    X+#setup_locale_and_gettext()
    X 
    X iface = get_dbus_interface()
    X if iface:
    ade81f39b9c3b7351bc7261c7d37131f
    echo x - cgmail/distinfo
    sed 's/^X//' >cgmail/distinfo << '951f27f1aa247e1378e640644f34cec2'
    XSHA256 (cgmail-0.6.2.tar.gz) = eda5059d8e29ccd6d0967499c031bc86ddab74a26e11a6f9b90403214e01f2de
    XSIZE (cgmail-0.6.2.tar.gz) = 444916
    951f27f1aa247e1378e640644f34cec2
    echo x - cgmail/pkg-descr
    sed 's/^X//' >cgmail/pkg-descr << '17ae4ae1d12fab967b4b5185e9eac6e6'
    XcGmail (check gnome mail) is an email checker and notifier applet for the 
    Xgnome desktop written in python. cGmail will check periodically your 
    Xaccount/s and will notify you on new incoming mails. 
    X
    XWWW: http://cgmail.tuxfamily.org/
    17ae4ae1d12fab967b4b5185e9eac6e6
    echo x - cgmail/pkg-plist
    sed 's/^X//' >cgmail/pkg-plist << '42320ed529658d7d12380db42b7d4fc8'
    Xbin/cgmail
    Xbin/cgmailservice
    Xshare/applications/cgmail.desktop
    Xshare/cgmail/0.png
    Xshare/cgmail/1.png
    Xshare/cgmail/2.png
    Xshare/cgmail/3.png
    Xshare/cgmail/4.png
    Xshare/cgmail/5.png
    Xshare/cgmail/6.png
    Xshare/cgmail/7.png
    Xshare/cgmail/8.png
    Xshare/cgmail/9.png
    Xshare/cgmail/account_add_dialog.ui
    Xshare/cgmail/accounts_treeview_popupmenu.ui
    Xshare/cgmail/accounts_window.ui
    Xshare/cgmail/authdialog.ui
    Xshare/cgmail/cGmail/__init__.py
    Xshare/cgmail/cGmail/__init__.pyc
    Xshare/cgmail/cGmail/cgmail.py
    Xshare/cgmail/cGmail/cgmail.pyc
    Xshare/cgmail/cGmail/cgmailservice.py
    Xshare/cgmail/cGmail/cgmailservice.pyc
    Xshare/cgmail/cGmail/checkers/__init__.py
    Xshare/cgmail/cGmail/checkers/__init__.pyc
    Xshare/cgmail/cGmail/checkers/base.py
    Xshare/cgmail/cGmail/checkers/base.pyc
    Xshare/cgmail/cGmail/checkers/gmailchecker.py
    Xshare/cgmail/cGmail/checkers/gmailchecker.pyc
    Xshare/cgmail/cGmail/checkers/imapchecker.py
    Xshare/cgmail/cGmail/checkers/imapchecker.pyc
    Xshare/cgmail/cGmail/checkers/pop3checker.py
    Xshare/cgmail/cGmail/checkers/pop3checker.pyc
    Xshare/cgmail/cGmail/lib/__init__.py
    Xshare/cgmail/cGmail/lib/__init__.pyc
    Xshare/cgmail/cGmail/lib/accountmanager.py
    Xshare/cgmail/cGmail/lib/accountmanager.pyc
    Xshare/cgmail/cGmail/lib/checkersutils.py
    Xshare/cgmail/cGmail/lib/checkersutils.pyc
    Xshare/cgmail/cGmail/lib/common.py
    Xshare/cgmail/cGmail/lib/common.pyc
    Xshare/cgmail/cGmail/lib/dicthelper.py
    Xshare/cgmail/cGmail/lib/dicthelper.pyc
    Xshare/cgmail/cGmail/lib/filedicthelper.py
    Xshare/cgmail/cGmail/lib/filedicthelper.pyc
    Xshare/cgmail/cGmail/lib/gconfhelper.py
    Xshare/cgmail/cGmail/lib/gconfhelper.pyc
    Xshare/cgmail/cGmail/lib/imap.py
    Xshare/cgmail/cGmail/lib/imap.pyc
    Xshare/cgmail/cGmail/lib/iniman.py
    Xshare/cgmail/cGmail/lib/iniman.pyc
    Xshare/cgmail/cGmail/lib/junkfilter.py
    Xshare/cgmail/cGmail/lib/junkfilter.pyc
    Xshare/cgmail/cGmail/lib/keyringdicthelper.py
    Xshare/cgmail/cGmail/lib/keyringdicthelper.pyc
    Xshare/cgmail/cGmail/lib/pop3.py
    Xshare/cgmail/cGmail/lib/pop3.pyc
    Xshare/cgmail/cGmail/lib/resources.py
    Xshare/cgmail/cGmail/lib/resources.pyc
    Xshare/cgmail/cGmail/lib/storagehandler.py
    Xshare/cgmail/cGmail/lib/storagehandler.pyc
    Xshare/cgmail/cGmail/lib/utils.py
    Xshare/cgmail/cGmail/lib/utils.pyc
    Xshare/cgmail/cGmail/manager/__init__.py
    Xshare/cgmail/cGmail/manager/__init__.pyc
    Xshare/cgmail/cGmail/manager/accadddialog.py
    Xshare/cgmail/cGmail/manager/accadddialog.pyc
    Xshare/cgmail/cGmail/manager/accountswindow.py
    Xshare/cgmail/cGmail/manager/accountswindow.pyc
    Xshare/cgmail/cGmail/manager/dbusinterface.py
    Xshare/cgmail/cGmail/manager/dbusinterface.pyc
    Xshare/cgmail/cGmail/manager/junkfilterdialog.py
    Xshare/cgmail/cGmail/manager/junkfilterdialog.pyc
    Xshare/cgmail/cGmail/manager/preferencesdialog.py
    Xshare/cgmail/cGmail/manager/preferencesdialog.pyc
    Xshare/cgmail/cGmail/service/__init__.py
    Xshare/cgmail/cGmail/service/__init__.pyc
    Xshare/cgmail/cGmail/service/checkersrunner.py
    Xshare/cgmail/cGmail/service/checkersrunner.pyc
    Xshare/cgmail/cGmail/service/dbusinterface.py
    Xshare/cgmail/cGmail/service/dbusinterface.pyc
    Xshare/cgmail/cGmail/service/mainloop.py
    Xshare/cgmail/cGmail/service/mainloop.pyc
    Xshare/cgmail/cGmail/service/statusicon.py
    Xshare/cgmail/cGmail/service/statusicon.pyc
    Xshare/cgmail/cGmail/service/statuslistener.py
    Xshare/cgmail/cGmail/service/statuslistener.pyc
    Xshare/cgmail/cGmail/service/statusnotifier.py
    Xshare/cgmail/cGmail/service/statusnotifier.pyc
    Xshare/cgmail/cgmail.png
    Xshare/cgmail/cgmail.py
    Xshare/cgmail/cgmail.pyc
    Xshare/cgmail/cgmail.svg
    Xshare/cgmail/cgmailservice.desktop
    Xshare/cgmail/cgmailservice.py
    Xshare/cgmail/cgmailservice.pyc
    Xshare/cgmail/gmail.png
    Xshare/cgmail/imap.png
    Xshare/cgmail/junkfilter_dialog.ui
    Xshare/cgmail/junkfilter_popupmenu.ui
    Xshare/cgmail/mail.png
    Xshare/cgmail/malert.png
    Xshare/cgmail/nomail.png
    Xshare/cgmail/notify.wav
    Xshare/cgmail/pop3.png
    Xshare/cgmail/preferences_dialog.ui
    Xshare/cgmail/statusicon_popupmenu.ui
    Xshare/cgmail/sync_cgmail.png
    Xshare/icons/hicolor/icon-theme.cache
    Xshare/icons/hicolor/scalable/apps/cgmail.svg
    Xshare/locale/ar/LC_MESSAGES/cgmail.mo
    Xshare/locale/br/LC_MESSAGES/cgmail.mo
    Xshare/locale/ca/LC_MESSAGES/cgmail.mo
    Xshare/locale/cs/LC_MESSAGES/cgmail.mo
    Xshare/locale/de/LC_MESSAGES/cgmail.mo
    Xshare/locale/el/LC_MESSAGES/cgmail.mo
    Xshare/locale/es/LC_MESSAGES/cgmail.mo
    Xshare/locale/et/LC_MESSAGES/cgmail.mo
    Xshare/locale/fr/LC_MESSAGES/cgmail.mo
    Xshare/locale/gl/LC_MESSAGES/cgmail.mo
    Xshare/locale/he/LC_MESSAGES/cgmail.mo
    Xshare/locale/it/LC_MESSAGES/cgmail.mo
    Xshare/locale/nb/LC_MESSAGES/cgmail.mo
    Xshare/locale/nl/LC_MESSAGES/cgmail.mo
    Xshare/locale/pl/LC_MESSAGES/cgmail.mo
    Xshare/locale/pt_BR/LC_MESSAGES/cgmail.mo
    Xshare/locale/ru/LC_MESSAGES/cgmail.mo
    Xshare/locale/sv/LC_MESSAGES/cgmail.mo
    Xshare/locale/uk/LC_MESSAGES/cgmail.mo
    Xshare/locale/zh_CN/LC_MESSAGES/cgmail.mo
    Xshare/locale/zh_TW/LC_MESSAGES/cgmail.mo
    X@dirrm share/cgmail
    42320ed529658d7d12380db42b7d4fc8
    exit
    


    To test:
    Code:
    # cd /tmp
    # fetch "https://www.friendpaste.com/pGNFOG6TDq3TBwe98oB23/raw"
    # mv raw cgmail.shar
    # sh cgmail.shar
    # cd cgmail
    # make install clean
    # exit
    # su - user
    $ rahash
    $ cgmailservice
    


    Screenshot: http://imageshack.us/a/img24/6346/cgmail.png (thumbnails allowed?)

    Thank you all, sorry for bad English, and maybe buggy port?
     
  15. wblock@

    wblock@ Administrator Staff Member Administrator Moderator Developer

    Messages:
    13,856
    Thanks Received:
    3,553
    I'm not equipped to test, but you can't assume bash will be present to use. You could add a dependency on it, but better would be to see if the sh stuff it does will run in sh(1) and substitute that.

    Use ports-mgmt/portlint.