Bug 228324

Summary: [NEW PORT] www/miniserve: HTTP server for file sharing with correct MIME types handling
Product: Ports & Packages Reporter: Mateusz Piotrowski <0mp>
Component: Individual Port(s)Assignee: Tobias Kortkamp <tobik>
Status: Closed FIXED    
Severity: Affects Only Me CC: krion, riggs, swills
Priority: --- Keywords: easy, feature, patch-ready
Version: Latest   
Hardware: Any   
OS: Any   
URL: https://github.com/svenstaro/miniserve
Attachments:
Description Flags
Patch adding a new www/miniserve port (v0.1.5)
none
Patch adding a new www/miniserve port (v0.1.5, revision: 1) none

Description Mateusz Piotrowski freebsd_committer 2018-05-17 20:48:36 UTC
miniserve is a small, self-contained cross-platform CLI tool that allows you
to just grab the binary and serve some file(s) via HTTP. Sometimes this is just
a more practical and quick way than doing things properly.

Key features:
 - Easy to use
 - Just works: Correct MIME types handling out of the box
 - Single binary drop-in with no extra dependencies required
 - Authentication support with username and password
 - Mega fast and highly parallel (thanks to Rust and Actix)

----

QA:
 - portlint -AC
 - manual testing on 12.0-CURRENT r333659
Comment 1 Mateusz Piotrowski freebsd_committer 2018-05-17 20:58:45 UTC
Created attachment 193498 [details]
Patch adding a new www/miniserve port (v0.1.5)
Comment 2 Thomas Zander freebsd_committer 2018-05-23 18:06:41 UTC
~ > make fetch                                                        
===>  License not correctly defined: for unknown licenses, defining LICENSE_NAME_UNKNOWNRING is mandatory (otherwise use a known LICENSE)
make: exec(exit) failed (No such file or directory)
*** Error code 1

Stop.
make: stopped in /poudriere/ports/default/www/miniserve
Comment 3 Mateusz Piotrowski freebsd_committer 2018-05-24 13:51:16 UTC
Created attachment 193653 [details]
Patch adding a new www/miniserve port (v0.1.5, revision: 1)

I'm sorry. I should have tested it more thoroughly.

Here's an updated patch. 

BTW, that license could be viewed here: https://crates.io/crates/ring
Comment 5 Mateusz Piotrowski freebsd_committer 2018-05-25 11:02:19 UTC
(In reply to Kirill Ponomarev from comment #4)

Mmmm, I've never seen that.

I'll try to get access to a faster build machine then. It looks like miniserve dependencies are somewhat special and require more testing than most Rust ports. 

I'll report back once I've got the port to build and run reliably.

Thank you for your patience.
Comment 6 Tobias Kortkamp freebsd_committer 2018-06-14 17:03:02 UTC
(In reply to Mateusz Piotrowski from comment #5)
The problem likely is that the backtrace-sys crate expects gmake in the build
environment.   It should just build now after ports r472373 since gmake is now
added as a build dependency on the framework level by cargo.mk.
Comment 7 Tobias Kortkamp freebsd_committer 2019-04-28 19:19:39 UTC
This is several versions out of date. Is this still going anywhere?
Comment 8 commit-hook freebsd_committer 2019-05-11 05:59:20 UTC
A commit references this bug:

Author: tobik
Date: Sat May 11 05:58:43 UTC 2019
New revision: 501222
URL: https://svnweb.freebsd.org/changeset/ports/501222

Log:
  New port: www/miniserve

  Miniserve is a small self-contained ad-hoc HTTP server that allows
  you to quickly serve some files over HTTP.

  Features:
  - Easy to use
  - Just works: Correct MIME types handling out of the box
  - Single binary drop-in with no extra dependencies required
  - Authentication support with username and password
  - Fast and highly parallel (thanks to Rust and Actix)

  It is an interesting alternative to some popular solutions:
  - Python's built-in webserver: Needs to have Python installed, is
    low performance, and also does not handle MIME types correctly
    in some cases.
  - netcat: Not as convenient to use and sending directories is
    nontrivial.

  WWW: https://github.com/svenstaro/miniserve

  PR:		228324
  Submitted by:	0mp (miniserve 0.1.5)

Changes:
  head/www/Makefile
  head/www/miniserve/
  head/www/miniserve/Makefile
  head/www/miniserve/distinfo
  head/www/miniserve/pkg-descr