-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTODO
140 lines (103 loc) · 5.25 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
TODO
Note: Some of these are just ideas and might not get implemented at all.
General List:
* When updating make sure not to cause rebuilds of saved pkgbuilds that
aren't in the AUR.
* Anything marked with 'TODO' in the source
* Add support to build deps recursively from [unsupported] more easily
(Without having to run aurbuild multiple times)
* Add a switch to change AUR url. (Partially Done)
example: aurbuild --url http://aur.test-site.org
Need to add function to verify that the url is valid and to add a
trailing slash/ or leading protocol://
* If a dependency isn't found in the database, don't quit immediately.
Check the rest of the dependencies, THEN exit. (Partially Done)
* When syncing don't go through the whole tree if the package is installed.
* I think I made an oops in removing --revision. Add it back maybe.
* Create a testing AUR specifically for aurbuild testing. With packages for
that purpose.
* Improve search
- Sorting packages by repo and alphabetically.
- Narrowing down and sorting results by location, maintainer
- Narrowing, sorting results by votes
- Add functionality to allow user to browse through search pages
just like in AUR (to review more than 100 results)
* Add support for an aurbuild config file
* When searching for official PKGBUILDs be able to identify duplicate packages
and select the specific repo desired (eg. core|testing, extra|unstable or
any other repo that might have the same pkg as others)
* Find what's causing a delay when building official packages
- aurbuild.find.find_dir() is causing a delay because of some
nasty recursion
- Using pacman -Si to find the repo THEN doing the search in
/var/abs/repo is about five times faster than just searching
/var/abs (Just from shell experimentation)
- find -maxdepth might help as well (decreases search time by about
21 times)
- find <repo_dir> -maxdepth 3 -name <pkgname>
(.200s) is slower than:
find <abs_root> -maxdepth 3 -name <pkgname>
(.065s) which is slower than:
find <repo_dir> -maxdepth 2 -name <pkgname>
(.045s)
Also,
find -maxdepth 3 -name <pkgname> -type d
is slower than when omitting type.
- I had replaced the finding algorithm with a find subprocess.
It made for nice short code and works well, but I don't think
spawning another process is a good approach. I will restore it
to pure Python.
* Make builddeps/syncdeps more sophisticated
I'd like to be able to select whether to sync or build the deps
individually. The logic for selecting to build then reviewing pkgbuild
can be applied to building deps from [unsupported] as well.
* Get all system configuration from the proper places.
- /etc/abs.conf ($ABSROOT)
- /etc/pacman.conf (RootDir,DBPath,CacheDir)
- /etc/makepkg.conf (BUILDSCRIPT, PKGEXT, SRCEXT, ...)
- $HOME/.makepkg.conf (ditto)
* Support to vote, unvote, flag, unflag, upload, write comments
* Add a switch to view user comments.
* Add a switch to take pacman arguments.
* Use the libalpm hooks in pacman3 for python. Only because it would be
faster (and easier to maintain?) than the manual flat file parsing module
pacman.py.
* Work out how source files should be cached
I'm thinking just the tarball with scripts/local sources should be
cached (makepkg --source, instead of individual files), along with
downloaded sources. It might be a good idea to propose a patch to
makepkg as well.
Cache cvs/svn/git sources as well.
Correspond with dev of yaourt and makepkg to get some kind
of standard location for caching sources
* Look at raw_pkg_query to possibly improve search performance
* Make sure root user is used for as few operations as possible
Currently some directories in /var/tmp/aurbuild are owned by root
* Make sure user_makedirs and user_copytree switch user effectively
(Get rid of global variables)
* filter_deps() and main() in scripts/aurbuild need serious rework
* Utilise AUR's JSON interface for search info (simplejson)
* Change menu appearance
- Add more info like package repo, version
* echo_bash_vars() suffers from a potential problem if we wanted to echo
an array along with other variables, or maybe even two arrays.
It splits the bash array output into a python array in a not-so-smart way
which may yield undesirable results.
cleanup() cleanup:
* Move cleanup() to utils. Should be able to take a variable number of
arguments. cleanup() is used in a lot of functions in the main
script and in utils. It probably is being called more than it is needed.
It also uses global variables which should be gotten rid of if possible.
Maybe it can be put into a class.
* Instead of calling cleanup() and sys.exit() in most functions raise an
exception and let calling script deal with cleanup. Also fix functions that
return an extra 'err' variable to raise an exception instead.
Long term:
* Make sure only a few select functions call sys.exit() and cleanup()
eg. Main script, main(), init()
* Get rid of ABS dependency to fetch official build files
* Create a alpm database for packages explicitly installed via aurbuild.
It could be something like /var/cache/aurbuild/aur.archlinux.org
DBs should be on a per-URL basis.
In Progress:
* Move functions out of main script and into appropriate modules