Commit graph

132 commits

Author SHA1 Message Date
Hans-Christoph Steiner
3283ce2510
import: fix error when using python3-git from stretch
closes https://gitlab.com/fdroid/issuebot/-/issues/48#note_646592031
closes issuebot#48
2021-08-09 16:27:56 +02:00
linsui
bf9cbc87a9 use .as_posix() 2021-06-09 10:51:28 +00:00
linsui
d6eece6395 import.py: use pathlib and support Windows 2021-06-08 18:33:22 +08:00
Hans-Christoph Steiner
bf25b4ca03 eliminate app.builds everywhere, it should be app['Builds']
The .txt format was the last place where the lowercase "builds" was used,
this converts references everywhere to be "Builds".  This makes it possible
to load metadata YAML files with any YAML parser, then have it possible to
use fdroidserver methods on that data, like metadata.write_metadata().

The test files in tests/metadata/dump/*.yaml were manually edited by cutting
the builds: block and putting it the sort order for Builds: so the contents
should be unchanged.

```
sed -i \
 -e 's/app\.builds/app.get('Builds', \[\])/g' \
 -e "s/app\.get(Builds, \[\]) =/app\['Builds'] =/g" \
 -e "s/app\.get(Builds, \[\]) =/app\['Builds'] =/g" \
 -e "s/app\.get(Builds, \[\])/app.get('Builds', \[\])/g" \
 -e "s/app\.get('Builds', \[\])\.append/app\['Builds'\].append/g" \
 -e "s/app\['builds'\]/app.get('Builds', [])/g" \
 */*.*
```
2020-12-15 08:55:05 +01:00
Hans-Christoph Steiner
a6c60a908a import: add support for kivy buildozer projects 2020-08-07 12:48:15 +02:00
Hans-Christoph Steiner
960d31af2a import: standardize on 'appid' var name for Application ID
The rest of the fdroidserver code uses 'appid' or 'packageName'.  The official
Android name is "Application ID".  "Package Name" is the Java term, and it
is used in Android in Java code.
2020-07-30 14:57:19 +02:00
Licaon_Kter
72fde0f10b Detect .gitmodules and add submodules build line 2020-06-11 16:36:54 +03:00
Hans-Christoph Steiner
6030445be0 logging.warn() was deprecated in Python 3.3, use logging.warning()
sed -i 's,logging\.warn(,logging.warning(,g' fdroid */*.*

https://docs.python.org/3.3/library/logging.html#logging.Logger.warning
2020-05-27 08:35:14 +02:00
Hans-Christoph Steiner
30f2d62597 import: fix --omit-disable flag, its a boolean 2020-05-14 11:55:09 +02:00
Licaon_Kter
463f6823de Import - sudo refresh repos too and use the newer npm 2020-04-08 10:25:53 +00:00
Hans-Christoph Steiner
138bc73668
import: --omit-disable option to easily work with generated files 2020-03-11 22:13:47 +01:00
Hans-Christoph Steiner
1bb9cf43e1
import: ensure gradle: yes is added for detected Gradle builds 2020-03-11 22:13:45 +01:00
Hans-Christoph Steiner
ab2291475b import: mv reusable functions to common.py to avoid import_proxy.py
import is a strict keyword in Python, so it is not possible to import a
module called 'import', even with things like:

* import fdroidserver.import
* from fdroidserver import import
2020-03-11 13:41:13 +01:00
Hans-Christoph Steiner
5459a461db
common.get_head_commit_id() to get string commit ID from HEAD 2020-02-18 23:16:53 +01:00
Hans-Christoph Steiner
202602937d
import: ignore results if build/appid dir already exists 2020-02-18 23:16:49 +01:00
Hans-Christoph Steiner
32a29b3304
import: get git commit ID from git repo, e.g. master instead of '?' 2020-02-18 23:16:44 +01:00
Hans-Christoph Steiner
68b793e308 support kotlin "*.gradle.kts" files in more places
closes #613
2020-02-13 22:32:51 +01:00
Marcus Hoffmann
9ae41cc1ff add support for gradle kotlin scripts
https://guides.gradle.org/migrating-build-logic-from-groovy-to-kotlin/
Closes fdroid/fdroidserver#613

cherry-picked from Bubu/fdroidserver@7d2e9f9c
2020-02-13 22:32:51 +01:00
Hans-Christoph Steiner
83ffeb855f prefer build.gradle with Android Plugin as source of package/version/code
These days, the location that overrides all the others is in the android{}
block of the build.gradle file that loads the com.android.application
plugin.  So this should be the preferred place to read these values.

test files GPL licensed: https://github.com/Integreight/1Sheeld-Android-App
2020-02-13 22:32:51 +01:00
Hans-Christoph Steiner
e037ee5972 import: generate skeleton build fields for react-native and flutter 2020-02-13 13:51:52 +01:00
Hans-Christoph Steiner
1153ac24fd import: overhaul URL validation to use urllib.parse
Python provides us a lovely URL parser with some level of validation built
in.  The parsed URL is then much easier to validate.
2020-02-13 13:51:52 +01:00
Hans-Christoph Steiner
e9a6c84efd import: split URL parsing from code cloning
This makes things testable and easier to follow.
2020-02-13 13:51:52 +01:00
Hans-Christoph Steiner
bfe587979d import: make it work most of the time with git repos
This includes real tests too.
2020-02-13 13:51:52 +01:00
Hans-Christoph Steiner
3df276cc3c
fix all bandit B310 urllib_urlopen
"Audit url open for permitted schemes. Allowing use of ‘file:’’ or custom
schemes is often unexpected."

https://bandit.readthedocs.io/en/latest/blacklists/blacklist_calls.html#b310-urllib-urlopen
2020-01-31 15:37:30 +01:00
Hans-Christoph Steiner
1d13bbf6b6 import: ensure categories from CLI flag are always a list
categories must always be a list in YAML  closes #472
2018-10-11 11:59:42 +02:00
Hans-Christoph Steiner
bfdf581201 import: use valid placeholder values for versionCode/versionName
fdroid/fdroidserver!559
closes fdroid/fdroidserver#548
2018-10-10 16:02:34 +02:00
Hans-Christoph Steiner
ff90c0246e fix PEP8 W605 invalid escape sequence
Python 3.7 will get a lot stricter with escape sequences.  They must be
valid.

* https://lintlyci.github.io/Flake8Rules/rules/W605.html
* https://docs.python.org/3/whatsnew/3.6.html#deprecated-python-behavior
2018-05-29 13:51:47 +02:00
Hans-Christoph Steiner
e6d5260c3c fix PEP8: W504 line break after binary operator 2018-05-29 12:31:56 +02:00
Hans-Christoph Steiner
a40b79eb9d import: fix crash when importing from local git repo 2018-02-12 12:05:27 +01:00
Hans-Christoph Steiner
559adb207b import: get build dir from settings.gradle
Most projects set a single build dir in settings.gradle, so its worth
trying here.
2018-02-12 12:05:27 +01:00
Hans-Christoph Steiner
64938d9104 import: switch to .yml as default metadata format 2018-02-12 12:05:27 +01:00
Marcus Hoffmann
1c5dccb413 import: fix bitbucket import
repo type can be found on main url, not under /src
2017-10-04 18:54:47 +02:00
Hans-Christoph Steiner
53e4ec47a7 English source string corrections
From @monolifed <monolifed@gmail.com>
2017-09-16 13:19:38 +02:00
Hans-Christoph Steiner
278d67d960 implement gettext localization
This allows all the text to be localized via Weblate.  This is a quick
overview of all the strings, but there are certainly some that were left
out.

closes #342
2017-09-15 11:39:00 +02:00
Alexey Krasilnikov
a3a34cdbd3 Add support for the new Bitbucket look 2017-05-30 18:33:55 +03:00
Torsten Grote
1fcd8e63a3
Replace sys.exit() in non-main functions by exceptions
Also move all exceptions into one module
2017-05-22 16:51:11 -03:00
Boris Kraut
13b276e02f import: add option to specify license and categories, auto-detect build.gradle 2017-03-26 19:00:03 +02:00
Boris Kraut
39f7429c9b import: add notabug.org 2017-03-26 18:05:37 +02:00
Hans-Christoph Steiner
e0f39a7e7b rename Build fields: version -> versionName, vercode -> versionCode
Since the YAML/JSON/etc. field names are now exactly the same as the field
names used in the internal dict in the Build class, this is a global rename

This keeps with the standard names used in Android:
https://developer.android.com/guide/topics/manifest/manifest-element.html
2017-02-24 11:01:01 +01:00
Boris Kraut
e1dda886d7 import: fix raw git-over-https urls 2016-12-21 10:12:20 +01:00
Daniel Martí
82b1d7ad14 all: make newer pycodestyle happy
Apparently the "two empty lines" rule is now stricter.
2016-11-15 20:55:06 +00:00
Hans-Christoph Steiner
d522988d8c make metadata exceptions optional based on CLI flag
In many cases, there are times where metadata errors need to be ignored, or
at least not stop the command from running.  For example, there will
inevitably be new metadata fields added, in which case a packaged version
of fdroidserver will throw errors on each one.  This adds a standard -W
flag to customize the response: ignore, default, or error.

* by default, the errors are still errors
* `fdroid readmeta -W` will just print errors
* `fdroid readmeta -Wignore` will not even print errors

https://gitlab.com/fdroid/fdroidserver/issues/150
2016-09-12 12:55:48 +02:00
Hans-Christoph Steiner
9cd6b444f8 standardize on .yml as the file extension for YAML
Though the YAML people recommend .yaml for the file extension, in Android
land it seems clear that .yml has won out:

* .travis.yml
* .gitlab-ci.yml
* .circle.yml
* Ansible main.yml
2016-03-23 17:16:28 +01:00
Hans-Christoph Steiner
19189b9b04 import app into fdroid directly from git clone
This adds a new method for `fdroid import` that will generate the fdroidserver
metadata based on a local git repo.  This new mode generates the metadata in
the new .fdroid.yaml format in the git repo itself.  It is intended as a quick
way to get starting building apps using the fdroidserver tools.
2016-03-23 17:16:28 +01:00
Hans-Christoph Steiner
994488ad47 rename metadata.write_metadata() to match metadata.parse_*_metadata()
This changes the function name to include the format of the metadata file,
and also changes the order of the args to match the parse_*_metadata()
functions.
2016-03-23 17:16:28 +01:00
Daniel Martí
031bb39961 import: switch to python3 urllib 2016-03-11 13:27:00 +00:00
Daniel Martí
ce18d1cc85 Port to python3's configparser 2016-03-10 16:43:37 +00:00
Daniel Martí
920ae4692f Port all imports to python3 2016-03-10 16:43:37 +00:00
Daniel Martí
99edd64372 Switch all headers to python3 2016-03-10 16:43:36 +00:00
Boris Kraut
f4ce1737d9 import: use .git suffix only for repo-url 2016-03-06 11:20:10 +01:00