aboutsummaryrefslogtreecommitdiff
path: root/doc/overview/features.html
blob: 31f6e17c4ce763853e3c47a074024ec8d59a6843 (plain)
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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Paludis, the Other Package Mangler</title>
<link rel="stylesheet" href="../paludis.css" type="text/css" />
</head>
<body>

    <div class="topnav">
        
<!-- vim: set tw=120 ft=html sw=4 sts=4 et : -->

<div class="topnavinner">
    <table border="0" cellspacing="0">
        <tr>
            <td rowspan="7" class="logotab">
                <a href="../" class="noarrow"><img style="border: 0px; padding-right: 50px;"
                    src="../paludis_270.png" alt="Paludis Logo"
                    /></a>
            </td>

            <td>
                <a href="../">Introduction</a>
            </td>

            <td class="currentpage">
                <a href="../overview/features.html">Features</a>
            </td>
        </tr>

        <tr>
            <td>
                <a href="http://paludis.pioto.org/trac/">Bugs, Requests, Support</a>
            </td>

            <td class="currentpage">
                <a href="../overview/gettingstarted.html">Getting Started</a>
            </td>
        </tr>

        <tr>
            <td class="currenttab">
                <a href="../overview/">Overview</a>
            </td>

            <td class="currentpage">
                <a href="../overview/contact.html">Contact</a>
            </td>
        </tr>

        <tr>
            <td>
                <a href="../faq/">FAQ</a>
            </td>

            <td class="currentpage">
                &nbsp;
            </td>
        </tr>

        <tr>
            <td>
                <a href="../clients/">Clients</a>
            </td>

            <td class="currentpage">
                &nbsp;
            </td>
        </tr>

        <tr>
            <td>
                <a href="../configuration/">Configuration</a>
            </td>

            <td class="currentpage">
                &nbsp;
            </td>
        </tr>

        <tr>
            <td>
                <a href="../api/">API</a>
            </td>

            <td class="currentpage">
                &nbsp;
            </td>
        </tr>
    </table>
</div>


    </div>

    <div class="main">

<!-- vim: set tw=120 ft=html sw=4 sts=4 et : -->

<h1>Features</h1>

<h2>For the End User</h2>

<ul>
    <li>An optional new configuration system, making it much easier to operate upon
    groups of related packages, much easier to maintain multiple systems (or chroots)
    and much easier to set options on a per-package or per-repository basis.</li>

    <li>Performance. Paludis can be an order of magnitude faster than other package
    managers.</li>

    <li>Low dependency bloat. No Python, no big external crypto libraries.</li>

    <li>Native security (GLSA) integration.</li>

    <li>Proper multiple repository support, not constrained by a limited 'overlay'
    model.</li>

    <li>Support for repositories containing things other than ebuilds.</li>

    <li>License filtering.</li>

    <li>Hook scripts, for running code after a certain action occurs.</li>

    <li>User definable package sets.</li>

    <li>Ability to sync multiple repositories, natively, using SVN, CVS, Git etc.</li>

    <li>Ability to uninstall packages with dependencies, and safely remove unneeded
    packages.</li>

    <li>Ability to continue with a collection of installs after a failure, and to resume
    failed compiles far more flexibly than offered by Portage.</li>

    <li>Ability to see why a package is really being pulled in, rather than relying
    upon the rather crude 'tree' offered by Portage.</li>

    <li>Much improved output: <code>--query</code> makes it easy to get a useful summary
    of information about a package, and <code>--pretend</code> can be configured to show
    relevant information (e.g. USE flag descriptions and an explanation of why a package
    is being pulled in).</li>

    <li>Secure (un)installation of set*id files, preventing your system from being left
    vulnerable after having replaced a vulnerable application.</li>

    <li>Ability to use slot, use, repository and ranged version dependencies when selecting
    a version.</li>

    <li>Ability to see all packages that need unmasking in one go, rather than one package
    at a time.</li>

    <li>Ability to automatically reinstall scm (svn, cvs etc.) packages after a given period
    (daily, weekly, ...).</li>

    <li>Ability to manage packages even where no ebuild is available.</li>
</ul>

<h2>For the Ebuild Developer</h2>

<ul>
    <li>Full and correct circular dependency resolution.</li>

    <li>Default deep dependency resolution.</li>

    <li>Support for 'experimental' (read: 'still not implemented in Portage') EAPI proposals
    (use dependencies, ranged version specs, -scm and -try version specs, src_uri arrows etc).</li>

    <li>Ability to deliver news items to the end user.</li>

    <li>Much more useful diagnostics.</li>
</ul>

<h2>For the Programmer</h2>

<ul>
    <li>Proper client / library separation.</li>

    <li>API documentation and code examples.</li>

    <li>A sane OO API.</li>

    <li>Consistent interfaces for different repository types.</li>

    <li>Test suites and extensive static checking, to check the impact of changes.</li>

    <li>Type safe interfaces, for catching programming errors at compile time.</li>

    <li>A choice of programming language for external tools.</li>
</ul>

<!-- vim: set tw=120 ft=html sw=4 sts=4 et : -->
</div>
</body>
</html>