Bug 203471

Summary: New port: editors/e The minimalistest text editor
Product: Ports & Packages Reporter: Jens K. Loewe <mozilla>
Component: Individual Port(s)Assignee: Alexey Dokuchaev <danfe>
Status: Closed Not Accepted    
Severity: Affects Only Me CC: trebbu
Priority: --- Keywords: needs-qa
Version: Latest   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
The e port none

Description Jens K. Loewe 2015-10-01 12:08:55 UTC
Created attachment 161597 [details]
The e port

I just found some editor on GitHub and thought I'll make it a port.
Comment 1 Bert Burgemeister 2015-10-03 07:37:31 UTC
The editor doesn't work for me.  The only key chord that does anything useful seems to be ^C, which terminates the program.
Comment 2 Jan Beich freebsd_committer freebsd_triage 2015-10-24 04:58:42 UTC
(Hand over to danfe@ as "In Progress" is invalid without Assignee)

Other than comment 1 there're lots of style bugs as well.

$ portlint -AC
FATAL: Makefile: [3]: use a tab (not space) after a variable name
FATAL: Makefile: [4]: use a tab (not space) after a variable name
FATAL: Makefile: [5]: use a tab (not space) after a variable name
FATAL: Makefile: [6]: use a tab (not space) after a variable name
FATAL: Makefile: [8]: use a tab (not space) after a variable name
FATAL: Makefile: [9]: use a tab (not space) after a variable name
FATAL: Makefile: [11]: use a tab (not space) after a variable name
FATAL: Makefile: [12]: use a tab (not space) after a variable name
FATAL: Makefile: [14]: use a tab (not space) after a variable name
FATAL: Makefile: [15]: use a tab (not space) after a variable name
FATAL: Makefile: [16]: use a tab (not space) after a variable name
FATAL: Makefile: [18]: use a tab (not space) after a variable name
FATAL: Makefile: [19]: use a tab (not space) after a variable name
FATAL: Makefile: [20]: use a tab (not space) after a variable name
WARN: Makefile: COMMENT should begin with a capital, and end without a period
14 fatal errors and 1 warning found.

>XPORTVERSION=  1.0
[...]
>XGH_TAGNAME=   2dffcf1c7245142c8bfc813641a5467f6300bf08

Marking a random commit as 1.0 may lead you to bump PORTEPOCH in future if upstream create a tag with lower version e.g., 0.4. Better prepend a few zeros then use the date of the commit e.g., 0.0.20141210.

>XDIST_SUBDIR=  e

This is not necessary as USE_GITHUB makes filenames unique enough, see distinfo.

>XCOMMENT=      e is the minimalistest text editor

"e is the" should be dropped to avoid redundancy.

>XUSE_GCC=      yes

USE_GCC is an implementation detail. Unless it doesn't build for a valid reason (e.g. bug in a compiler, another port or hard to fix) drop or convert to USES=compiler. Clang errors are often verbose enough to tell you how to fix them:

  e.c:84:1: warning: return type of 'main' is not 'int' [-Wmain-return-type]
  unsigned int main(register unsigned int argc, char* argv[]) {
  ^
  e.c:84:1: note: change return type to 'int'
  unsigned int main(register unsigned int argc, char* argv[]) {
  ^~~~~~~~
  int
  e.c:84:14: error: first parameter of 'main' (argument count) must be of type 'int'
  unsigned int main(register unsigned int argc, char* argv[]) {
               ^
  1 warning and 1 error generated.

>Xpost-extract:
>X	@${MV} ${WRKSRC}/makefile ${WRKSRC}/Makefile

Define MAKEFILE instead.

>Xpost-patch:
>X	@${REINPLACE_CMD} -e 's/gcc/${CC}/' ${WRKSRC}/Makefile

Don't use / separator with variables that may contain paths.

  $ make CC=/usr/local/bin/clang37
  ===>  Applying FreeBSD patches for e-1.0
  sed: 1: "s/gcc//usr/local/bin/cl ...": bad flag in substitute command: 'u'
  *** Error code 1

>X+all:
>X	gcc ./e.c ./codes.c -o e

No respect for CFLAGS/LDFLAGS/LIBS ? Either adjust above post-patch or replace "all" target e.g.,

  # Provides both "all" and "install" targets
  USES=		uidfix
  MAKEFILE=	/usr/share/mk/bsd.prog.mk
  MAKE_ENV=	PROG=${PORTNAME} NO_MAN= BINDIR="${PREFIX}/bin" \
  		SRCS="`${ECHO_CMD} *.c`"

https://www.freebsd.org/doc/en/books/porters-handbook/dads-cflags.html

>X+
>X+install: all
>X+	mkdir -p $(DESTDIR)$(PREFIX)/bin/
>X+	install -m 755 e $(DESTDIR)$(PREFIX)/bin/
>X+

If you don't plan to upstream "install" target then move installation into the port. For one, it'd take care of stripping non-debug builds for you.

https://www.freebsd.org/doc/en/books/porters-handbook/install.html#install-strip
Comment 3 Jan Beich freebsd_committer freebsd_triage 2015-10-24 05:04:52 UTC
Second try. Hand over to danfe@ for clarification. "In Progress" is invalid without Assignee.
Comment 4 Alexey Dokuchaev freebsd_committer freebsd_triage 2015-10-24 14:24:48 UTC
Excuse me?  Since when "In Progress" is invalid without assignee?  In progress means that some work/research was done about proposition and reflected in the audit trail (comments).  It really helps to distinguish such ports from truly new.

It does require to have particular committer to be assigned to it.  Thanks for forcing me to deal with this PR. :-(
Comment 5 Alexey Dokuchaev freebsd_committer freebsd_triage 2015-11-17 11:50:08 UTC
After reading its description on the GitHub page (https://github.com/the8thbit/e) I now feel that this "editor" does not really have its place in the Ports Collection, sorry Jens.

It has very little practical value (the goal was to "distill the concept of a text editor down to its bare minimum", quoting the author), while it is fun project and idea to explore, it does not match the burden of maintaining it as part of the Ports Tree.  If someone wants it, they can easily build it from source code and install locally (it does not come with or expect any data or configuration files found anywhere, obviously).

FreeBSD Ports Collection is not the place for everyone's "helloworlds" or otherwise purely experimental/just-for-fun projects.