Wurf: Difference between revisions

From Nasqueron Agora
No edit summary
No edit summary
 
(6 intermediate revisions by the same user not shown)
Line 2: Line 2:


The '''wurf''' utility is a fork of '''woof''' (Web Offer One File) by Simon Budig. As woof has been released under the GPLv2+ license, the '''wurf''' utility is also released under the GPLv2+ license, and not under a BSD license. We thank Simon for their work on that utility.
The '''wurf''' utility is a fork of '''woof''' (Web Offer One File) by Simon Budig. As woof has been released under the GPLv2+ license, the '''wurf''' utility is also released under the GPLv2+ license, and not under a BSD license. We thank Simon for their work on that utility.
== Installation ==
As a PyPI package:
    $ pip install wurf
On FreeBSD 14:
    $ pkg add https://packages.nasqueron.org/freebsd/FreeBSD%3A14%3Aamd64/wurf-1.0.0.pkg
Manually:
    $ sudo wget -O /usr/local/bin/wurf https://raw.githubusercontent.com/nasqueron/wurf/refs/heads/main/src/wurf.py
    $ sudo chmod +x /usr/local/bin/wurf
If you still want to use woof as command name for transition you can alias it in your shell (<code>alias woof=wurf</code>) or provide a system-wide symlink:
    $ sudo ln -s $(which wurf) /usr/local/bin/woof


== Notes on the fork ==
== Notes on the fork ==
Line 9: Line 28:
The goals of the fork are to actively maintain a Python 3.x-compatible version:
The goals of the fork are to actively maintain a Python 3.x-compatible version:
* replace the soft-deprecated getopt module with argparse
* replace the soft-deprecated getopt module with argparse
* accept pull requests replacing the deprecated CGI module
* accept pull requests replacing the deprecated CGI module
* publish a man page
* publish a man page


We also aim to modernize web distribution by supporting TLS:
We also aim to modernize web distribution by supporting TLS:
Line 26: Line 45:
== FAQ ==
== FAQ ==
=== Can I use wurf outside of Nasqueron servers? ===
=== Can I use wurf outside of Nasqueron servers? ===
While the primary goal of the '''wurf''' utility is to deploy it on Nasqueron servers, we would be delighted if others find it useful as well. We welcome contributions and feedback from anyone who sees potential in the tool and would like to use it.
While the primary goal of the '''wurf''' preparation was to deploy it on Nasqueron servers, we would be delighted if others find it useful as well. We welcome contributions and feedback from anyone who sees potential in the tool and would like to use it.


=== Is wurf open-source? ===
=== Is wurf open-source? ===
Line 36: Line 55:
=== Can I contribute to wurf? ===
=== Can I contribute to wurf? ===
Absolutely! We welcome contributions from anyone who finds the tool useful and would like to improve or extend its functionality. Feel free [[How to contribute code|to submit pull requests]], especially those that help modernize and maintain the codebase.
Absolutely! We welcome contributions from anyone who finds the tool useful and would like to improve or extend its functionality. Feel free [[How to contribute code|to submit pull requests]], especially those that help modernize and maintain the codebase.
Project tasks: https://devcentral.nasqueron.org/tag/wurf/
{{Call for action
|link=https://devcentral.nasqueron.org/tag/wurf/
|text=Visit the wurf project board
}}
=== How to report an issue? ===
You can report issue on DevCentral, attach it to the wurf project.
{{Call for action
|link=https://devcentral.nasqueron.org/maniphest/task/edit/form/1/?projects=wurf
|text=Submit a new issue
}}


=== Why not keep the name woof? ===
=== Why not keep the name woof? ===
We chose to rename the fork to '''wurf''' to reflect its new direction and functionality. '''wurf''' stands for "Web Upload and Receive File," emphasizing the enhanced features and modernization efforts we would like to make, particularly for Python 3.x compatibility and TLS support. The name change also helps signal that this is an actively maintained project, distinct from the original '''woof'''. While we respect the origins of '''woof''', '''wurf''' represents a fresh, forward-looking approach for our needs and contributions.
We chose to rename the fork to '''wurf''' to reflect its new direction and functionality. '''wurf''' stands for "Web Upload and Receive File," emphasizing the enhanced features and modernization efforts we would like to make, particularly for Python 3.x compatibility and TLS support. The name change also helps signal that this is an actively maintained project, distinct from the original '''woof'''. While we respect the origins of '''woof''', '''wurf''' represents a fresh, forward-looking approach for our needs and contributions.
[[Category:Python]]
[[Category:Projects]]

Latest revision as of 13:34, 26 October 2024

The wurf (Web Upload and Receive Files) utility allows spawning a server to allow to download a file and then automatically exits. It's planned to be deployed on Nasqueron servers by the end of 2024.

The wurf utility is a fork of woof (Web Offer One File) by Simon Budig. As woof has been released under the GPLv2+ license, the wurf utility is also released under the GPLv2+ license, and not under a BSD license. We thank Simon for their work on that utility.

Installation

As a PyPI package:

   $ pip install wurf

On FreeBSD 14:

   $ pkg add https://packages.nasqueron.org/freebsd/FreeBSD%3A14%3Aamd64/wurf-1.0.0.pkg

Manually:

   $ sudo wget -O /usr/local/bin/wurf https://raw.githubusercontent.com/nasqueron/wurf/refs/heads/main/src/wurf.py
   $ sudo chmod +x /usr/local/bin/wurf

If you still want to use woof as command name for transition you can alias it in your shell (alias woof=wurf) or provide a system-wide symlink:

   $ sudo ln -s $(which wurf) /usr/local/bin/woof

Notes on the fork

The name wurf has a more wolfish feel than dog-like. It was picked first, before picking Web Upload and Receive Files as a backronym.

The goals of the fork are to actively maintain a Python 3.x-compatible version:

  • replace the soft-deprecated getopt module with argparse
  • accept pull requests replacing the deprecated CGI module ✅
  • publish a man page ✅

We also aim to modernize web distribution by supporting TLS:

  • allow to write a configuration file with to document an existing proxy (nginx, haproxy, ...) to a specific wurf port, and expose the URL when that port is available
  • enable certificate support to serve fiels directly without a proxy

We would also like to restore the utility in package distributions:

  • The FreeBSD port I maintained was removed in 2020 due to incompatibility with Python 3 and the project's decision not to distribute packages for unsupported Python versions.
  • The Debian package was Python 2.7-only and was removed after Jessie (see T1644).

This situation has left Nasqueron in a tough spot, as we rely on this utility on our servers but have struggled to keep it maintained.

Hence, the fork for our own servers infrastructure.

FAQ

Can I use wurf outside of Nasqueron servers?

While the primary goal of the wurf preparation was to deploy it on Nasqueron servers, we would be delighted if others find it useful as well. We welcome contributions and feedback from anyone who sees potential in the tool and would like to use it.

Is wurf open-source?

Yes, wurf is open-source and released under the GPLv2+ license, the same as the original woof utility. This ensures that wurf remains freely available for modification and redistribution under the same terms.

Why isn't wurf licensed under BSD?

Because wurf is a direct fork of woof, which is licensed under GPLv2+, it must adhere to the same licensing conditions. This means it cannot be released under the BSD license.

Can I contribute to wurf?

Absolutely! We welcome contributions from anyone who finds the tool useful and would like to improve or extend its functionality. Feel free to submit pull requests, especially those that help modernize and maintain the codebase.

Project tasks: https://devcentral.nasqueron.org/tag/wurf/

How to report an issue?

You can report issue on DevCentral, attach it to the wurf project.

Why not keep the name woof?

We chose to rename the fork to wurf to reflect its new direction and functionality. wurf stands for "Web Upload and Receive File," emphasizing the enhanced features and modernization efforts we would like to make, particularly for Python 3.x compatibility and TLS support. The name change also helps signal that this is an actively maintained project, distinct from the original woof. While we respect the origins of woof, wurf represents a fresh, forward-looking approach for our needs and contributions.