directory-discuss
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Suggestions for FSD Documentation Regarding Adding New Pages


From: Adonay Felipe Nogueira
Subject: Re: Suggestions for FSD Documentation Regarding Adding New Pages
Date: Mon, 30 Sep 2024 22:25:42 -0300
User-agent: Icedove Mail

Hi all,

Regarding the lack of tools to aid on the review/evaluation, I also felt the same some years ago. Often the tools suggested in some of the pages required installing a software that wasn't even updated when downloading from the system distribution's repository that I used. At one point I made a script aid to ease some of the review process [1].

My script aid generates a CSV that can be opened with LibreOffice. It's been a while since my last contribution, but the script aid still exists at [1], which in turn is linked from the list of scripts to manage the directory [2], and that is referenced by the page about the directory's workflow and in turn is referred by the "Administration" section of the Participate page [3].

I know that finding the above script normally requires lots of clicks, but given that not all directory contributors are reviewers/evaluators, then I think that section is mostly fine.

Particularly, I'm not in favor of approving entries just because they have a given license. This may create a scenario where a distribution package may have metadata suggesting that the contents of such package are supposedly under a free/libre software license, but the *only* usage and function of that package [5] is to download a proprietary software for use as it is or the package itself has that piece of malware, and in the last case the metadata is just there to please automated license checkers. I know of one package that has metadata like so, but as far as I know it is not in any free/libre system distribution repository.

As for how to get a list of dependencies, I may have some hints, but they may not be ready-to-use tools:

a) The README, and general documentation regarding the source files are mostly your friend.

b) You'll often face source files using a minifier or obfuscator, which function somewhat like compilers. I know little on whether these are any good, but sticking to the point, I advise you to disarm or understand how those work before reading into other points. Try to catch the reviewed source code's configuration used for the minifier/obfuscator, which is mostly like a configuration file. For example, disregarding the software freedom status, there are projects in Lua which use a tool called Squish, and that expects a 'squishy' file to tell what to do.

c) Know the programming language and build system you're dealing with. Throwing out some of the names that may be involved here: ldconfig; pkg-config; make; Python's setuptools. Most languages also have a standard on how some dependencies should be called inside the project prior to the first use, you may leverage that to build a quick recursive search using `grep`.

# References and notes

[1]: https://directory.fsf.org/wiki/Free_Software_Directory:Participate/Script_aid

[2]: https://directory.fsf.org/wiki/Free_Software_Directory:Scripts

[3]: https://directory.fsf.org/wiki/Free_Software_Directory:Workflow

[4]: https://directory.fsf.org/wiki/Free_Software_Directory:Participate

[5]: I know that there are distinctions to be made for generic downloaders which accept any address the user wants and do not predefine such addresses.

Em 06/09/2024 18:25, Jacob K escreveu:
Hello,

When adding a new entry to the FSD, it's not clear to me what the expectations are for how we should make sure that the program fits the directory. The Requirements page [1] is good but it mostly focuses on what the problems are and not how to check for them. There's also some instructions on the Custom entries page [2], and it mentions some tools like licensecheck but doesn't elaborate on how to use them.

I knew how to check if software is free based on discussions in #fsf , but clearer documentation could make this easier, and mentioning a single script that runs the checks currently listed on the wiki would be helpful.

Currently when I check software I run scancode and get a csv with lots of licenses and files, and then I manually filter out the free/compatible licenses. This means I have to know what all of those licenses are. I don't have a good consistent way to get dependencies. A better script could automate some of this work.

I propose we combine information from those pages as well as information from IRC logs about how to scan [3] and new information that makes checking whether a program is free software as easy as possible while increasing accuracy. This page would have a list of steps as well as a script to automate what can be automated, for example, getting dependencies in some cases using deplock [4] or hiding licenses that never cause conflicts like CC0 and Expat (probably also hiding copyleft licenses is fine [5]).

If we want people who submit entries to scan them, maybe this info should go on the Custom entries page [6]. Otherwise, maybe there could be a new page called Scan or something, with encouragement to scan entries people have submitted that haven't been approved yet [7].

  - Jacob K

[1] https://directory.fsf.org/wiki/Free_Software_Directory:Requirements
[2] https://directory.fsf.org/wiki/Free_Software_Directory:Custom_entries#Searching_in_source_trees [3] e.g. a suggestion I got one time to use `./scancode -n `nproc` -l -p --license --csv file-name.csv ../directory-of-code-base/`
[4] https://github.com/aboutcode-org/dependency-inspector
[5] I think it's okay to auto-approve all free licenses because the only reason there would be a problem here is if some licenses are incompatible, in which case the project would be copyright infringing and addressing this can be the project's responsibility.
[6] https://directory.fsf.org/wiki/Free_Software_Directory:Custom_entries
[7] https://directory.fsf.org/wiki?title=Special:ApprovedRevs&show=unapproved

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]