Wurf: Difference between revisions

From Nasqueron Agora
(Created page with "The '''wurf''' (web upload and receive file), allows to spawn a server to allow to download a file, then exit automatically. It's planned to be deployed on Nasqueron servers for the end of the year 2024. The '''wurf''' utility is a fork of '''woof''' (web offer one file) by Simon Budig. As woof is released under a GPLv2+ software, the '''wurf''' utility is also release under a GPLv2+ license, and not under BSD license. We thank Simon for the work on that utility. == No...")
 
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
The '''wurf''' (web upload and receive file), allows to spawn a server to allow to download a file, then exit automatically. It's planned to be deployed on Nasqueron servers for the end of the year 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 is released under a GPLv2+ software, the '''wurf''' utility is also release under a GPLv2+ license, and not under BSD license. We thank Simon for the 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 ==


The name '''wurf''' is more wolfie than doggie, as the acronym of "web upload and receive file".
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:
The goals of the fork are to actively maintain a Python 3.x-compatible version:
* supersede the soft-deprecated getopt module by argparse
* replace the soft-deprecated getopt module with argparse
* accept pull request replacing CGI module
* accept pull requests replacing the deprecated CGI module
* publish man page
* 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 [https://devcentral.nasqueron.org/T1644 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 [[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/


We also need to modernize Web distribution by supporting TLS:
{{Call for action
* allow to document a proxy configuration for woof, so it can be served through nginx with proxy_pass
|link=https://devcentral.nasqueron.org/tag/wurf/
* allow certificates support to directly serve without proxy
|text=Visit the wurf project board
}}


We'd like to try to restore woof in packages distribution:
=== How to report an issue? ===
* the port I maintained was removed from FreeBSD in 2020 as not compatible with Python 3 and a project decision not to distribute packages for unsupported Python versions
You can report issue on DevCentral, attach it to the wurf project.
* the package for Debian was 2.7 only and remove after Jessie (see [https://devcentral.nasqueron.org/T1644 T1644])


That let Nasqueron in a though spot, we rely on that utility on our servers but struggle to keep it maintained
{{Call for action
|link=https://devcentral.nasqueron.org/maniphest/task/edit/form/1/?projects=wurf
|text=Submit a new issue
}}


Hence the fork for our own servers infrastructure.
=== 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.

Latest revision as of 16:22, 19 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.