Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 12 Jul 2017 12:42:31 +1000
From:      Kubilay Kocak <koobs@FreeBSD.org>
To:        blubee blubeeme <gurenchan@gmail.com>, freebsd-ports@freebsd.org
Subject:   Re: Writing a port make deinstall
Message-ID:  <08c7851c-e145-76b9-db3a-6aba495d2f1c@FreeBSD.org>
In-Reply-To: <CALM2mEn4T4mgsY3n1-5h7JQB0wt5eeeZRNsfVv0rLLy5B_g0cg@mail.gmail.com>
References:  <CALM2mEn4T4mgsY3n1-5h7JQB0wt5eeeZRNsfVv0rLLy5B_g0cg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 7/12/17 12:38 PM, blubee blubeeme wrote:
> Hello FreeBSD ports team
> 
> I am writing a Makefile to install a port
> 
> I've written this much so far
> 
> PORTNAME=       epson-inkjet-printer-201401w
> PORTVERSION=   201401w
> PORTREVISION=   1
> PORTEPOCH=       0
> CATEGORIES=       print
> MASTER_SITES=
> https://download3.ebz.epson.net/dsc/f/03/00/03/45/41/d95c03482376873661d7a8d4c165b385cd082cf3/:amd64
> \
> 
> https://download3.ebz.epson.net/dsc/f/03/00/03/45/41/0c527f1eef727e350302db951a45d31319ee501b/:i386
> 
> DISTFILES_amd64=
> epson-inkjet-printer-201401w-1.0.0-1lsb3.2.x86_64.rpm:amd64
> DISTFILES_i386=    epson-inkjet-printer-201401w-1.0.0-1lsb3.2.i486.rpm:i386
> 
> 
> LICENSE=       GPLv2
> DIST_SUBDIR=   ${PORTNAME}/${PORTVERSION}
> 
> COMMENT=       CUPS filter for Seiko Epson Color Ink Jet Printers
> 
> RESTRICTED=       GNU Lesser General Public License version 2.1. \
>                    This program links the following object codes  \
>       which are distributed under the conditions of  \
>           SEIKO EPSON CORPORATION SOFTWARE LICENSE AGREEMENT. \
>           *libEpson_201401w.so.1.0.0 \
>           *libEpson_201401w.MT.so.1.0.0
> 
> 
> NO_BUILD=       yes
> NO_WRKSUBDIR=   yes
> PLIST_SUB=       LINUXBASE=${LINUXBASE}
> USES=       linux
> USE_LINUX=       cups-libs jpeg
> 
> do-install:
> (gunzip ${WRKSRC}/opt/${PORTNAME}/ppds/Epson/*)
> (find ${WRKSRC}/opt/${PORTNAME}/ppds/Epson -type f -exec sed -i ""
> 's/\/opt\/epson/\/compat\/linux\/opt\/epson/g' {} \;)
> (cp -r ${WRKSRC}/opt/${PORTNAME} /compat/linux/opt/)
> (ln -s /compat/linux/opt/${PORTNAME}/ppds/Epson
> /usr/local/share/cups/model/)
> 
> #cleanup?
> # rm -r /usr/local/share/cups/model/Epson
> # rm -r /compat/linux/opt/epson-inkjet-printer-201401w/
> # rm -r ${WRKSRC}
> .include <bsd.port.mk>
> 
> 
> I don't know how to make the cleanup work.
> 
> This Makefile passes works for installing the drivers and they work but
> doing
> 
> make deinstall clean
> 
> doesn't remove the files that I placed, the symlinks, etc.
> 
> How do I properly write this Makefile so deinstall works as expected?
> 
> Best,
> Owen

Hi Owen,

deinstall automatically works if and when all files/directories are
correctly referenced in the pkg-plist. Writing a deinstallation
procedure manually is not necessary.

Porters Handbook:

https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/book.html#porting-desc

See Also: PLIST_FILES and other pkg-plist related entries

Testing the port with poudriere and other tools will help you determine
what is not working, in particular which files were installed but not
referenced in the pkg-plist, and vice-versa.

https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/testing.html

For more help, there's also the #freebsd-ports IRC channel on freenode

Hope that helps :)

./koobs






Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?08c7851c-e145-76b9-db3a-6aba495d2f1c>