summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/po/hu.po25
-rw-r--r--doc/po/pacman.pot273
-rw-r--r--lib/libalpm/add.c6
-rw-r--r--lib/libalpm/alpm.c54
-rw-r--r--lib/libalpm/alpm.h3
-rw-r--r--lib/libalpm/alpm_list.c16
-rw-r--r--lib/libalpm/conflict.c8
-rw-r--r--lib/libalpm/db.c2
-rw-r--r--lib/libalpm/deps.c10
-rw-r--r--lib/libalpm/error.c2
-rw-r--r--lib/libalpm/group.c4
-rw-r--r--lib/libalpm/handle.c22
-rw-r--r--lib/libalpm/package.c50
-rw-r--r--lib/libalpm/sync.c10
-rw-r--r--lib/libalpm/trans.c4
-rw-r--r--lib/libalpm/util.h4
-rw-r--r--lib/libalpm/versioncmp.c6
-rw-r--r--lib/libalpm/versioncmp.h1
-rw-r--r--src/util/vercmp.c4
19 files changed, 258 insertions, 246 deletions
diff --git a/doc/po/hu.po b/doc/po/hu.po
index bd1d0c3f..936463d2 100644
--- a/doc/po/hu.po
+++ b/doc/po/hu.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pacman\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-12-23 1:35-0600\n"
+"POT-Creation-Date: 2007-01-30 13:43-0600\n"
"PO-Revision-Date: 2006-08-26 14:53+0200\n"
"Last-Translator: Hungarian <frugalware-devel@frugalware.org>\n"
"Language-Team: Hungarian <frugalware-devel@frugalware.org>\n"
@@ -872,7 +872,7 @@ msgid "CONFIG: REPOSITORIES"
msgstr ""
# type: Plain text
-#: pacman.8:308
+#: pacman.8:311
msgid ""
"Each repository section defines a section name and at least one location "
"where the packages can be found. The section name is defined by the string "
@@ -880,17 +880,20 @@ msgid ""
"Locations are defined with the I<Server> directive and follow a URL naming "
"structure. Currently only ftp is supported for remote servers. If you want "
"to use a local directory, you can specify the full path with a 'file://' "
-"prefix, as shown above."
+"prefix, as shown above. The order of repositories in the file matters; "
+"repositories listed first will take precidence over those listed later in "
+"the file when packages in two repositories have identical names, regardless "
+"of version number."
msgstr ""
# type: SH
-#: pacman.8:308
+#: pacman.8:311
#, no-wrap
msgid "USING YOUR OWN REPOSITORY"
msgstr ""
# type: Plain text
-#: pacman.8:312
+#: pacman.8:315
msgid ""
"Let's say you have a bunch of custom packages in I</home/pkgs> and their "
"respective PKGBUILD files are all in I</var/abs/local>. All you need to do "
@@ -899,13 +902,13 @@ msgid ""
msgstr ""
# type: Plain text
-#: pacman.8:316
+#: pacman.8:319
#, no-wrap
msgid "# gensync /var/abs/local /home/pkgs/custom.db.tar.gz\n"
msgstr ""
# type: Plain text
-#: pacman.8:326
+#: pacman.8:329
msgid ""
"The above command will read all PKGBUILD files in /var/abs/local and "
"generate a compressed database called /home/pkgs/custom.db.tar.gz. Note "
@@ -918,24 +921,24 @@ msgid ""
msgstr ""
# type: SH
-#: pacman.8:326 makepkg.8:447 PKGBUILD.8:453
+#: pacman.8:329 makepkg.8:447 PKGBUILD.8:453
#, no-wrap
msgid "SEE ALSO"
msgstr "LÁSD MÉG"
# type: Plain text
-#: pacman.8:328
+#: pacman.8:331
msgid "B<makepkg> is the package-building tool that comes with pacman."
msgstr ""
# type: SH
-#: pacman.8:328 makepkg.8:452 PKGBUILD.8:456
+#: pacman.8:331 makepkg.8:452 PKGBUILD.8:456
#, no-wrap
msgid "AUTHOR"
msgstr "SZERZŐ"
# type: Plain text
-#: pacman.8:331 makepkg.8:455
+#: pacman.8:334 makepkg.8:455
#, no-wrap
msgid "Judd Vinet E<lt>jvinet@zeroflux.orgE<gt>\n"
msgstr ""
diff --git a/doc/po/pacman.pot b/doc/po/pacman.pot
index 729ddeb4..3dc0887c 100644
--- a/doc/po/pacman.pot
+++ b/doc/po/pacman.pot
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2006-12-23 1:35-0600\n"
+"POT-Creation-Date: 2007-01-30 13:43-0600\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -33,7 +33,7 @@ msgid "pacman 3.0.0"
msgstr ""
# type: SH
-#: pacman.8:2 makepkg.8:2 PKGBUILD.8:2
+#: pacman.8:2 makepkg.8:2 ./PKGBUILD.8:2
#, no-wrap
msgid "NAME"
msgstr ""
@@ -55,7 +55,7 @@ msgid "B<pacman E<lt>operationE<gt> [options] E<lt>packageE<gt> [package] ...>"
msgstr ""
# type: SH
-#: pacman.8:6 makepkg.8:6 PKGBUILD.8:4
+#: pacman.8:6 makepkg.8:6 ./PKGBUILD.8:4
#, no-wrap
msgid "DESCRIPTION"
msgstr ""
@@ -873,7 +873,7 @@ msgid "CONFIG: REPOSITORIES"
msgstr ""
# type: Plain text
-#: pacman.8:308
+#: pacman.8:311
msgid ""
"Each repository section defines a section name and at least one location "
"where the packages can be found. The section name is defined by the string "
@@ -881,17 +881,20 @@ msgid ""
"Locations are defined with the I<Server> directive and follow a URL naming "
"structure. Currently only ftp is supported for remote servers. If you want "
"to use a local directory, you can specify the full path with a 'file://' "
-"prefix, as shown above."
+"prefix, as shown above. The order of repositories in the file matters; "
+"repositories listed first will take precidence over those listed later in "
+"the file when packages in two repositories have identical names, regardless "
+"of version number."
msgstr ""
# type: SH
-#: pacman.8:308
+#: pacman.8:311
#, no-wrap
msgid "USING YOUR OWN REPOSITORY"
msgstr ""
# type: Plain text
-#: pacman.8:312
+#: pacman.8:315
msgid ""
"Let's say you have a bunch of custom packages in I</home/pkgs> and their "
"respective PKGBUILD files are all in I</var/abs/local>. All you need to do "
@@ -900,13 +903,13 @@ msgid ""
msgstr ""
# type: Plain text
-#: pacman.8:316
+#: pacman.8:319
#, no-wrap
msgid "# gensync /var/abs/local /home/pkgs/custom.db.tar.gz\n"
msgstr ""
# type: Plain text
-#: pacman.8:326
+#: pacman.8:329
msgid ""
"The above command will read all PKGBUILD files in /var/abs/local and "
"generate a compressed database called /home/pkgs/custom.db.tar.gz. Note "
@@ -919,24 +922,24 @@ msgid ""
msgstr ""
# type: SH
-#: pacman.8:326 makepkg.8:447 PKGBUILD.8:453
+#: pacman.8:329 makepkg.8:447 ./PKGBUILD.8:453
#, no-wrap
msgid "SEE ALSO"
msgstr ""
# type: Plain text
-#: pacman.8:328
+#: pacman.8:331
msgid "B<makepkg> is the package-building tool that comes with pacman."
msgstr ""
# type: SH
-#: pacman.8:328 makepkg.8:452 PKGBUILD.8:456
+#: pacman.8:331 makepkg.8:452 ./PKGBUILD.8:456
#, no-wrap
msgid "AUTHOR"
msgstr ""
# type: Plain text
-#: pacman.8:331 makepkg.8:455
+#: pacman.8:334 makepkg.8:455
#, no-wrap
msgid "Judd Vinet E<lt>jvinet@zeroflux.orgE<gt>\n"
msgstr ""
@@ -1013,7 +1016,7 @@ msgid ""
msgstr ""
# type: SH
-#: makepkg.8:30 PKGBUILD.8:11
+#: makepkg.8:30 ./PKGBUILD.8:11
#, no-wrap
msgid "PKGBUILD Example:"
msgstr ""
@@ -1161,13 +1164,13 @@ msgid ""
msgstr ""
# type: SH
-#: makepkg.8:116 PKGBUILD.8:121
+#: makepkg.8:116 ./PKGBUILD.8:121
#, no-wrap
msgid "Install/Upgrade/Remove Scripting"
msgstr ""
# type: Plain text
-#: makepkg.8:120 PKGBUILD.8:125
+#: makepkg.8:120 ./PKGBUILD.8:125
msgid ""
"Pacman has the ability to store and execute a package-specific script when "
"it installs, removes, or upgrades a package. This allows a package to "
@@ -1176,73 +1179,73 @@ msgid ""
msgstr ""
# type: Plain text
-#: makepkg.8:122 PKGBUILD.8:127
+#: makepkg.8:122 ./PKGBUILD.8:127
msgid "The exact time the script is run varies with each operation:"
msgstr ""
# type: TP
-#: makepkg.8:122 PKGBUILD.8:127
+#: makepkg.8:122 ./PKGBUILD.8:127
#, no-wrap
msgid "B<pre_install>"
msgstr ""
# type: Plain text
-#: makepkg.8:125 makepkg.8:133 PKGBUILD.8:130 PKGBUILD.8:138
+#: makepkg.8:125 makepkg.8:133 ./PKGBUILD.8:130 ./PKGBUILD.8:138
msgid "script is run right before files are extracted."
msgstr ""
# type: TP
-#: makepkg.8:126 PKGBUILD.8:131
+#: makepkg.8:126 ./PKGBUILD.8:131
#, no-wrap
msgid "B<post_install>"
msgstr ""
# type: Plain text
-#: makepkg.8:129 PKGBUILD.8:134
+#: makepkg.8:129 ./PKGBUILD.8:134
msgid "script is run right after files are extracted."
msgstr ""
# type: TP
-#: makepkg.8:130 PKGBUILD.8:135
+#: makepkg.8:130 ./PKGBUILD.8:135
#, no-wrap
msgid "B<pre_upgrade>"
msgstr ""
# type: TP
-#: makepkg.8:134 PKGBUILD.8:139
+#: makepkg.8:134 ./PKGBUILD.8:139
#, no-wrap
msgid "B<post_upgrade>"
msgstr ""
# type: Plain text
-#: makepkg.8:137 PKGBUILD.8:142
+#: makepkg.8:137 ./PKGBUILD.8:142
msgid "script is run after files are extracted."
msgstr ""
# type: TP
-#: makepkg.8:138 PKGBUILD.8:143
+#: makepkg.8:138 ./PKGBUILD.8:143
#, no-wrap
msgid "B<pre_remove>"
msgstr ""
# type: Plain text
-#: makepkg.8:141 PKGBUILD.8:146
+#: makepkg.8:141 ./PKGBUILD.8:146
msgid "script is run right before files are removed."
msgstr ""
# type: TP
-#: makepkg.8:142 PKGBUILD.8:147
+#: makepkg.8:142 ./PKGBUILD.8:147
#, no-wrap
msgid "B<post_remove>"
msgstr ""
# type: Plain text
-#: makepkg.8:145 PKGBUILD.8:150
+#: makepkg.8:145 ./PKGBUILD.8:150
msgid "script is run right after files are removed."
msgstr ""
# type: Plain text
-#: makepkg.8:149 PKGBUILD.8:154
+#: makepkg.8:149 ./PKGBUILD.8:154
msgid ""
"To use this feature, just create a file (eg, pkgname.install) and put it in "
"the same directory as the PKGBUILD script. Then use the I<install> "
@@ -1250,7 +1253,7 @@ msgid ""
msgstr ""
# type: Plain text
-#: makepkg.8:152 PKGBUILD.8:157
+#: makepkg.8:152 ./PKGBUILD.8:157
#, no-wrap
msgid "install=pkgname.install\n"
msgstr ""
@@ -1361,37 +1364,37 @@ msgid "This template is also available in your ABS tree (/var/abs/install.proto)
msgstr ""
# type: SH
-#: makepkg.8:220 PKGBUILD.8:179
+#: makepkg.8:220 ./PKGBUILD.8:179
#, no-wrap
msgid "PKGBUILD Directives"
msgstr ""
# type: TP
-#: makepkg.8:221 PKGBUILD.8:180
+#: makepkg.8:221 ./PKGBUILD.8:180
#, no-wrap
msgid "B<pkgname>"
msgstr ""
# type: Plain text
-#: makepkg.8:225 PKGBUILD.8:184
+#: makepkg.8:225 ./PKGBUILD.8:184
msgid ""
"The name of the package. This has be a unix-friendly name as it will be "
"used in the package filename."
msgstr ""
# type: TP
-#: makepkg.8:226 PKGBUILD.8:185
+#: makepkg.8:226 ./PKGBUILD.8:185
#, no-wrap
msgid "B<pkgver>"
msgstr ""
# type: Plain text
-#: makepkg.8:229 PKGBUILD.8:188
+#: makepkg.8:229 ./PKGBUILD.8:188
msgid "This is the version of the software as released from the author (eg, 2.7.1)."
msgstr ""
# type: TP
-#: makepkg.8:230 PKGBUILD.8:189
+#: makepkg.8:230 ./PKGBUILD.8:189
#, no-wrap
msgid "B<pkgrel>"
msgstr ""
@@ -1402,13 +1405,13 @@ msgid "This is the release number specific to Arch Linux packages."
msgstr ""
# type: TP
-#: makepkg.8:234 PKGBUILD.8:193
+#: makepkg.8:234 ./PKGBUILD.8:193
#, no-wrap
msgid "B<pkgdesc>"
msgstr ""
# type: Plain text
-#: makepkg.8:237 PKGBUILD.8:196
+#: makepkg.8:237 ./PKGBUILD.8:196
msgid "This should be a brief description of the package and its functionality."
msgstr ""
@@ -1467,20 +1470,20 @@ msgid "do not strip debugging symbols from binaries and libraries."
msgstr ""
# type: TP
-#: makepkg.8:260 PKGBUILD.8:204
+#: makepkg.8:260 ./PKGBUILD.8:204
#, no-wrap
msgid "B<url>"
msgstr ""
# type: Plain text
-#: makepkg.8:264 PKGBUILD.8:208
+#: makepkg.8:264 ./PKGBUILD.8:208
msgid ""
"This field contains an optional URL that is associated with the piece of "
"software being packaged. This is typically the project's website."
msgstr ""
# type: TP
-#: makepkg.8:265 PKGBUILD.8:209
+#: makepkg.8:265 ./PKGBUILD.8:209
#, no-wrap
msgid "B<license>"
msgstr ""
@@ -1507,13 +1510,13 @@ msgid ""
msgstr ""
# type: TP
-#: makepkg.8:279 PKGBUILD.8:214
+#: makepkg.8:279 ./PKGBUILD.8:214
#, no-wrap
msgid "B<install>"
msgstr ""
# type: Plain text
-#: makepkg.8:285 PKGBUILD.8:220
+#: makepkg.8:285 ./PKGBUILD.8:220
msgid ""
"Specifies a special install script that is to be included in the package. "
"This file should reside in the same directory as the PKGBUILD, and will be "
@@ -1522,13 +1525,13 @@ msgid ""
msgstr ""
# type: TP
-#: makepkg.8:286 PKGBUILD.8:227
+#: makepkg.8:286 ./PKGBUILD.8:227
#, no-wrap
msgid "B<source >I<(array)>"
msgstr ""
# type: Plain text
-#: makepkg.8:293 PKGBUILD.8:234
+#: makepkg.8:293 ./PKGBUILD.8:234
msgid ""
"The I<source> line is an array of source files required to build the "
"package. Source files must reside in the same directory as the PKGBUILD "
@@ -1537,7 +1540,7 @@ msgid ""
msgstr ""
# type: TP
-#: makepkg.8:294 PKGBUILD.8:235
+#: makepkg.8:294 ./PKGBUILD.8:235
#, no-wrap
msgid "B<md5sums >I<(array)>"
msgstr ""
@@ -1554,13 +1557,13 @@ msgid ""
msgstr ""
# type: TP
-#: makepkg.8:303 PKGBUILD.8:261
+#: makepkg.8:303 ./PKGBUILD.8:261
#, no-wrap
msgid "B<groups >I<(array)>"
msgstr ""
# type: Plain text
-#: makepkg.8:308 PKGBUILD.8:266
+#: makepkg.8:308 ./PKGBUILD.8:266
msgid ""
"This is an array of symbolic names that represent groups of packages, "
"allowing you to install multiple packages by requesting a single target. "
@@ -1569,13 +1572,13 @@ msgid ""
msgstr ""
# type: TP
-#: makepkg.8:309 PKGBUILD.8:273
+#: makepkg.8:309 ./PKGBUILD.8:273
#, no-wrap
msgid "B<backup >I<(array)>"
msgstr ""
# type: Plain text
-#: makepkg.8:316 PKGBUILD.8:280
+#: makepkg.8:316 ./PKGBUILD.8:280
msgid ""
"A space-delimited array of filenames (without a preceding slash). The "
"I<backup> line will be propagated to the package meta-info file for pacman. "
@@ -1585,13 +1588,13 @@ msgid ""
msgstr ""
# type: TP
-#: makepkg.8:317 PKGBUILD.8:281
+#: makepkg.8:317 ./PKGBUILD.8:281
#, no-wrap
msgid "B<depends >I<(array)>"
msgstr ""
# type: Plain text
-#: makepkg.8:325 PKGBUILD.8:289
+#: makepkg.8:325 ./PKGBUILD.8:289
msgid ""
"An array of packages that this package depends on to build and run. "
"Packages in this list should be surrounded with single quotes and contain at "
@@ -1603,26 +1606,26 @@ msgid ""
msgstr ""
# type: TP
-#: makepkg.8:326 PKGBUILD.8:290
+#: makepkg.8:326 ./PKGBUILD.8:290
#, no-wrap
msgid "B<makedepends >I<(array)>"
msgstr ""
# type: Plain text
-#: makepkg.8:330 PKGBUILD.8:294
+#: makepkg.8:330 ./PKGBUILD.8:294
msgid ""
"An array of packages that this package depends on to build (ie, not required "
"to run). Packages in this list should follow the same format as I<depends>."
msgstr ""
# type: TP
-#: makepkg.8:331 PKGBUILD.8:303
+#: makepkg.8:331 ./PKGBUILD.8:303
#, no-wrap
msgid "B<conflicts >I<(array)>"
msgstr ""
# type: Plain text
-#: makepkg.8:336 PKGBUILD.8:308
+#: makepkg.8:336 ./PKGBUILD.8:308
msgid ""
"An array of packages that will conflict with this package (ie, they cannot "
"both be installed at the same time). This directive follows the same format "
@@ -1630,13 +1633,13 @@ msgid ""
msgstr ""
# type: TP
-#: makepkg.8:337 PKGBUILD.8:309
+#: makepkg.8:337 ./PKGBUILD.8:309
#, no-wrap
msgid "B<provides >I<(array)>"
msgstr ""
# type: Plain text
-#: makepkg.8:343 PKGBUILD.8:315
+#: makepkg.8:343 ./PKGBUILD.8:315
msgid ""
"An array of \"virtual provisions\" that this package provides. This allows "
"a package to provide dependency names other than it's own package name. For "
@@ -1646,13 +1649,13 @@ msgid ""
msgstr ""
# type: TP
-#: makepkg.8:344 PKGBUILD.8:316
+#: makepkg.8:344 ./PKGBUILD.8:316
#, no-wrap
msgid "B<replaces >I<(array)>"
msgstr ""
# type: Plain text
-#: makepkg.8:350 PKGBUILD.8:322
+#: makepkg.8:350 ./PKGBUILD.8:322
msgid ""
"This is an array of packages that this package should replace, and can be "
"used to handle renamed/combined packages. For example, if the kernel "
@@ -1930,30 +1933,30 @@ msgid ""
msgstr ""
# type: TH
-#: PKGBUILD.8:1
+#: ./PKGBUILD.8:1
#, no-wrap
msgid "PKGBUILD"
msgstr ""
# type: TH
-#: PKGBUILD.8:1
+#: ./PKGBUILD.8:1
#, no-wrap
msgid "June 13, 2006"
msgstr ""
# type: TH
-#: PKGBUILD.8:1
+#: ./PKGBUILD.8:1
#, no-wrap
msgid "Archlinux Developer Manual"
msgstr ""
# type: Plain text
-#: PKGBUILD.8:4
+#: ./PKGBUILD.8:4
msgid "PKGBUILD - Archlinux package builder descriptor"
msgstr ""
# type: Plain text
-#: PKGBUILD.8:8
+#: ./PKGBUILD.8:8
msgid ""
"This manual page is meant to describe general rules about PKGBUILDs. If "
"you're interested in the package builder B<makepkg> itself, then see its "
@@ -1961,7 +1964,7 @@ msgid ""
msgstr ""
# type: Plain text
-#: PKGBUILD.8:17
+#: ./PKGBUILD.8:17
#, no-wrap
msgid ""
"# Last Modified: Sun, 19 Jun 2005 15:24:32 +0000\n"
@@ -1970,7 +1973,7 @@ msgid ""
msgstr ""
# type: Plain text
-#: PKGBUILD.8:27
+#: ./PKGBUILD.8:27
#, no-wrap
msgid ""
"pkgname=dvdauthor\n"
@@ -1985,27 +1988,27 @@ msgid ""
msgstr ""
# type: Plain text
-#: PKGBUILD.8:29
+#: ./PKGBUILD.8:29
#, no-wrap
msgid "# optimization OK\n"
msgstr ""
# type: Plain text
-#: PKGBUILD.8:34
+#: ./PKGBUILD.8:34
msgid ""
"As you can see, the setup is fairly simple. The first line tracks the time "
"of the last update, this is automatically updated after a successful build."
msgstr ""
# type: Plain text
-#: PKGBUILD.8:37
+#: ./PKGBUILD.8:37
msgid ""
"The next line defines its build time. Of course, it depends on your "
"hardware, so we use SBUs instead of minutes as a unit."
msgstr ""
# type: Plain text
-#: PKGBUILD.8:41
+#: ./PKGBUILD.8:41
msgid ""
"SBU is the Static Binutils Unit, which means the time \"repoman merge "
"binutils\" takes on your machine. By default makepkg will print out how many "
@@ -2014,12 +2017,12 @@ msgid ""
msgstr ""
# type: Plain text
-#: PKGBUILD.8:43
+#: ./PKGBUILD.8:43
msgid "SBU=\"257\""
msgstr ""
# type: Plain text
-#: PKGBUILD.8:47
+#: ./PKGBUILD.8:47
msgid ""
"The line above means compiling binutils on your machine took 257 seconds. "
"Starting from this point, makepkg will print out SBUs instead of seconds "
@@ -2028,7 +2031,7 @@ msgid ""
msgstr ""
# type: Plain text
-#: PKGBUILD.8:53
+#: ./PKGBUILD.8:53
msgid ""
"If you wish to maintain the package, write your name or nick and e-mail "
"address to the third line. If you don't plan to maintain the package just "
@@ -2039,7 +2042,7 @@ msgid ""
msgstr ""
# type: Plain text
-#: PKGBUILD.8:61
+#: ./PKGBUILD.8:61
msgid ""
"pkgname defines the package name. It should not contain any uppercase "
"letters. The package version defines the upstream version, while the "
@@ -2052,14 +2055,14 @@ msgid ""
msgstr ""
# type: Plain text
-#: PKGBUILD.8:64
+#: ./PKGBUILD.8:64
msgid ""
"pkgdesc is a short one-line description for the package. Usually taken from "
"the project's homepage or manpage. Try to keep the lenght under 80 chars."
msgstr ""
# type: Plain text
-#: PKGBUILD.8:69
+#: ./PKGBUILD.8:69
msgid ""
"depends() is a bash array which defines the dependencies of the package. "
"depends() means the other package is required for building and using the "
@@ -2068,7 +2071,7 @@ msgid ""
msgstr ""
# type: Plain text
-#: PKGBUILD.8:78
+#: ./PKGBUILD.8:78
msgid ""
"The next line is a special Finclude commands which allows you to inherit any "
"directive from a PKGBUILD scheme. They can be found in the FST, under "
@@ -2081,7 +2084,7 @@ msgid ""
msgstr ""
# type: Plain text
-#: PKGBUILD.8:82
+#: ./PKGBUILD.8:82
msgid ""
"The groups() array's first element can't be omitted, and it should be a "
"valid \"first group\". This means it should be in a foo or foo-extra format, "
@@ -2089,7 +2092,7 @@ msgid ""
msgstr ""
# type: Plain text
-#: PKGBUILD.8:90
+#: ./PKGBUILD.8:90
msgid ""
"The archs() array defines for which architectures the given package is "
"available. If it's not available, it means that gensync will skip it when "
@@ -2102,7 +2105,7 @@ msgid ""
msgstr ""
# type: Plain text
-#: PKGBUILD.8:95
+#: ./PKGBUILD.8:95
msgid ""
"The sha1sums() array can be generated with the makepkg -g command. Its "
"purpose is to prevent compiling from wrong sources, especially when the "
@@ -2111,7 +2114,7 @@ msgid ""
msgstr ""
# type: Plain text
-#: PKGBUILD.8:103
+#: ./PKGBUILD.8:103
msgid ""
"The last line will be added automatically to the end of the PKGBUILD if the "
"build() function used your $CFLAGS or $CXXFLAGS. This is handy if you want "
@@ -2123,7 +2126,7 @@ msgid ""
msgstr ""
# type: Plain text
-#: PKGBUILD.8:111
+#: ./PKGBUILD.8:111
msgid ""
"Finally we define a build() function that will build the package. If you "
"don't want to do anything special, probably you don't have to specify "
@@ -2135,7 +2138,7 @@ msgid ""
msgstr ""
# type: Plain text
-#: PKGBUILD.8:117
+#: ./PKGBUILD.8:117
msgid ""
"Once the package is successfully installed into the package root, I<makepkg> "
"will prepare some documentation. It will then strip debugging info from "
@@ -2145,14 +2148,14 @@ msgid ""
msgstr ""
# type: Plain text
-#: PKGBUILD.8:120
+#: ./PKGBUILD.8:120
msgid ""
"At this point you should have a package file in the current directory, named "
"something like name-version-release-arch.fpm. Done!"
msgstr ""
# type: Plain text
-#: PKGBUILD.8:163
+#: ./PKGBUILD.8:163
msgid ""
"The install script does not need to be specified in the I<source> array. If "
"you omit the install directive then makepkg will check for the "
@@ -2160,19 +2163,19 @@ msgid ""
msgstr ""
# type: Plain text
-#: PKGBUILD.8:166
+#: ./PKGBUILD.8:166
msgid ""
"You can find a scriptlet skeleton in the /docs/tech/skel/ directory, use it "
"when creating new packages."
msgstr ""
# type: Plain text
-#: PKGBUILD.8:168
+#: ./PKGBUILD.8:168
msgid "The scriptlet messages are parsed, a simple example tells you everything:"
msgstr ""
# type: Plain text
-#: PKGBUILD.8:177
+#: ./PKGBUILD.8:177
#, no-wrap
msgid ""
"post_upgrade()\n"
@@ -2186,41 +2189,41 @@ msgid ""
msgstr ""
# type: Plain text
-#: PKGBUILD.8:192
+#: ./PKGBUILD.8:192
msgid "This is the release number specific to Archlinux Linux packages."
msgstr ""
# type: TP
-#: PKGBUILD.8:197
+#: ./PKGBUILD.8:197
#, no-wrap
msgid "B<pkgdesc_localized>"
msgstr ""
# type: Plain text
-#: PKGBUILD.8:200
+#: ./PKGBUILD.8:200
msgid "Array of the localized package descriptions."
msgstr ""
# type: Plain text
-#: PKGBUILD.8:203
+#: ./PKGBUILD.8:203
msgid "The format is the following: pkgdesc_localized=('xx_YY foo' 'xx_YY bar')"
msgstr ""
# type: Plain text
-#: PKGBUILD.8:213
+#: ./PKGBUILD.8:213
msgid ""
"Sets the license type (eg, \"GPL\", \"BSD\", \"NON-FREE\"). (B<Note>: This "
"option is still in development and may change in the future)"
msgstr ""
# type: TP
-#: PKGBUILD.8:221
+#: ./PKGBUILD.8:221
#, no-wrap
msgid "B<up2date>"
msgstr ""
# type: Plain text
-#: PKGBUILD.8:226
+#: ./PKGBUILD.8:226
msgid ""
"This directive should contain a command that prints the current upstream "
"stable version of the project. This way we can check for newer version "
@@ -2228,7 +2231,7 @@ msgid ""
msgstr ""
# type: Plain text
-#: PKGBUILD.8:243
+#: ./PKGBUILD.8:243
msgid ""
"If this field is present, it should contain an MD5 hash for every source "
"file specified in the I<source> array (in the same order). makepkg will use "
@@ -2239,13 +2242,13 @@ msgid ""
msgstr ""
# type: TP
-#: PKGBUILD.8:244
+#: ./PKGBUILD.8:244
#, no-wrap
msgid "B<sha1sums >I<(array)>"
msgstr ""
# type: Plain text
-#: PKGBUILD.8:252
+#: ./PKGBUILD.8:252
msgid ""
"If this field is present, it should contain an SHA1 hash for every source "
"file specified in the I<source> array (in the same order). makepkg will use "
@@ -2256,13 +2259,13 @@ msgid ""
msgstr ""
# type: TP
-#: PKGBUILD.8:253
+#: ./PKGBUILD.8:253
#, no-wrap
msgid "B<signatures >I<(array)>"
msgstr ""
# type: Plain text
-#: PKGBUILD.8:258
+#: ./PKGBUILD.8:258
msgid ""
"If this field is present, it should contain an array of gpg signatures "
"required to validate the source files. Where there is no signature available "
@@ -2270,18 +2273,18 @@ msgid ""
msgstr ""
# type: Plain text
-#: PKGBUILD.8:260
+#: ./PKGBUILD.8:260
msgid "signatures=(${source[0]}.asc '')"
msgstr ""
# type: TP
-#: PKGBUILD.8:267
+#: ./PKGBUILD.8:267
#, no-wrap
msgid "B<archs >I<(array)>"
msgstr ""
# type: Plain text
-#: PKGBUILD.8:272
+#: ./PKGBUILD.8:272
msgid ""
"This array defines on which architectures the given package is avalibable. "
"If it's not available, that will mean that gensync will skip it when "
@@ -2289,13 +2292,13 @@ msgid ""
msgstr ""
# type: TP
-#: PKGBUILD.8:295
+#: ./PKGBUILD.8:295
#, no-wrap
msgid "B<rodepends >I<(array)>"
msgstr ""
# type: Plain text
-#: PKGBUILD.8:302
+#: ./PKGBUILD.8:302
msgid ""
"An array of packages that this package depends on to run (ie, not required "
"to build). Generally I<rodepends> should be avoided in favour of I<depends> "
@@ -2305,18 +2308,18 @@ msgid ""
msgstr ""
# type: TP
-#: PKGBUILD.8:323
+#: ./PKGBUILD.8:323
#, no-wrap
msgid "B<options >I<(array)>"
msgstr ""
# type: Plain text
-#: PKGBUILD.8:326
+#: ./PKGBUILD.8:326
msgid "This is an array of various boolean options. The possible values are:"
msgstr ""
# type: Plain text
-#: PKGBUILD.8:339
+#: ./PKGBUILD.8:339
#, no-wrap
msgid ""
"nodocs Don't add any documentation automatically (ie. when there'll be\n"
@@ -2337,13 +2340,13 @@ msgid ""
msgstr ""
# type: SH
-#: PKGBUILD.8:341
+#: ./PKGBUILD.8:341
#, no-wrap
msgid "What is the process of chrooted build ?"
msgstr ""
# type: Plain text
-#: PKGBUILD.8:347
+#: ./PKGBUILD.8:347
msgid ""
"First, what is chroot? We currently use fakeroot to prevent build() from "
"modifying the host system, and we use a prefix or DESTDIR directive to "
@@ -2352,7 +2355,7 @@ msgid ""
msgstr ""
# type: Plain text
-#: PKGBUILD.8:355
+#: ./PKGBUILD.8:355
msgid ""
"This system lacks of the ability to control the list of installed packages "
"during the build on the system of a packager, the given compiled package "
@@ -2365,14 +2368,14 @@ msgid ""
msgstr ""
# type: Plain text
-#: PKGBUILD.8:358
+#: ./PKGBUILD.8:358
msgid ""
"Of course there is a sollution to avoid this, to use a real chroot instead "
"of a simple fakeroot. What is this means? The followings:"
msgstr ""
# type: Plain text
-#: PKGBUILD.8:366
+#: ./PKGBUILD.8:366
msgid ""
"When starting the build, a core chroot system is installed under "
"/var/chroot. (Of course you can change this value under /etc/makepkg.conf.) "
@@ -2384,7 +2387,7 @@ msgid ""
msgstr ""
# type: Plain text
-#: PKGBUILD.8:372
+#: ./PKGBUILD.8:372
msgid ""
"When you start building with makepkg -R, pacman will install these packages "
"to /var/chroot if necessary. This will produce a fully \"clean\" Archlinux "
@@ -2394,7 +2397,7 @@ msgid ""
msgstr ""
# type: Plain text
-#: PKGBUILD.8:377
+#: ./PKGBUILD.8:377
msgid ""
"Here comes the fun part. The packages listed in depends() and makedepends() "
"are installed to this clean (/var/chroot) system. From this point, this "
@@ -2403,7 +2406,7 @@ msgid ""
msgstr ""
# type: Plain text
-#: PKGBUILD.8:381
+#: ./PKGBUILD.8:381
msgid ""
"After this the chroot should be cleaned up which means the removal of the "
"installed depends() and makedepends(). This ensures us not to build from "
@@ -2411,7 +2414,7 @@ msgid ""
msgstr ""
# type: Plain text
-#: PKGBUILD.8:385
+#: ./PKGBUILD.8:385
msgid ""
"This way we can prevent lots of dependency problems and it is even possible "
"to build packages for a different Archlinux version. This is quite efficent "
@@ -2419,7 +2422,7 @@ msgid ""
msgstr ""
# type: Plain text
-#: PKGBUILD.8:389
+#: ./PKGBUILD.8:389
msgid ""
"If the build is failed, the working directory will not be deleted, you can "
"find it under /var/chroot/var/tmp/fst. Later if you want to clean your "
@@ -2428,20 +2431,20 @@ msgid ""
msgstr ""
# type: Plain text
-#: PKGBUILD.8:392
+#: ./PKGBUILD.8:392
msgid ""
"To activate building in a chroot, you should run makepkg as root at least "
"with the -R option."
msgstr ""
# type: SH
-#: PKGBUILD.8:393
+#: ./PKGBUILD.8:393
#, no-wrap
msgid "Package splitting"
msgstr ""
# type: Plain text
-#: PKGBUILD.8:397
+#: ./PKGBUILD.8:397
msgid ""
"Package splitting means moving out a list of specifed files to subpackages "
"(like libmysql out of mysql) and then defining the properties of "
@@ -2449,7 +2452,7 @@ msgid ""
msgstr ""
# type: Plain text
-#: PKGBUILD.8:402
+#: ./PKGBUILD.8:402
msgid ""
"NOTE: if you create several subpackages, maintaining those packages will "
"require more and more time. Thus, unnecessary splits aren't welcome. "
@@ -2458,14 +2461,14 @@ msgid ""
msgstr ""
# type: Plain text
-#: PKGBUILD.8:405
+#: ./PKGBUILD.8:405
msgid ""
"The B<subpkgs()> array is to define the pkgnames of the subpackages. From "
"now all the directives has their subfoo equivalent:"
msgstr ""
# type: Plain text
-#: PKGBUILD.8:421
+#: ./PKGBUILD.8:421
#, no-wrap
msgid ""
"pkgname -E<gt> subpkgs()\n"
@@ -2486,7 +2489,7 @@ msgid ""
msgstr ""
# type: Plain text
-#: PKGBUILD.8:425
+#: ./PKGBUILD.8:425
msgid ""
"Also note that bash does not support two-dimensional arrays, so when "
"defining the array of arrays, then quotes are the major separators and "
@@ -2494,12 +2497,12 @@ msgid ""
msgstr ""
# type: Plain text
-#: PKGBUILD.8:427
+#: ./PKGBUILD.8:427
msgid "Simple example:"
msgstr ""
# type: Plain text
-#: PKGBUILD.8:434
+#: ./PKGBUILD.8:434
#, no-wrap
msgid ""
"Add the followings to your bottom of your PKGBUILD\n"
@@ -2511,14 +2514,14 @@ msgid ""
msgstr ""
# type: Plain text
-#: PKGBUILD.8:438
+#: ./PKGBUILD.8:438
msgid ""
"You may define conflicts, replaces and other directives for your "
"subpackages, but the requirement is only to define these 5 ones."
msgstr ""
# type: Plain text
-#: PKGBUILD.8:443
+#: ./PKGBUILD.8:443
msgid ""
"The second part is to move some files to the - just defined - "
"subpackages. You should use the Fsplit command for this at the end of your "
@@ -2527,32 +2530,32 @@ msgid ""
msgstr ""
# type: Plain text
-#: PKGBUILD.8:446
+#: ./PKGBUILD.8:446
#, no-wrap
msgid "Fsplit subpkgname usr/share/\n"
msgstr ""
# type: Plain text
-#: PKGBUILD.8:449
+#: ./PKGBUILD.8:449
msgid ""
"This will move the /usr/share dir of the package to the \"subpkgname\" "
"subpackage."
msgstr ""
# type: Plain text
-#: PKGBUILD.8:452
+#: ./PKGBUILD.8:452
msgid ""
"NOTE: never use a trailing slash when defining file patterns, especially if "
"you use wildcards in it!"
msgstr ""
# type: Plain text
-#: PKGBUILD.8:456
+#: ./PKGBUILD.8:456
msgid "B<makepkg>(8), B<pacman>(8)"
msgstr ""
# type: Plain text
-#: PKGBUILD.8:460
+#: ./PKGBUILD.8:460
#, no-wrap
msgid ""
"Judd Vinet E<lt>jvinet@zeroflux.orgE<gt>\n"
diff --git a/lib/libalpm/add.c b/lib/libalpm/add.c
index f034131b..d6cef0d2 100644
--- a/lib/libalpm/add.c
+++ b/lib/libalpm/add.c
@@ -105,7 +105,7 @@ static int add_faketarget(pmtrans_t *trans, char *name)
return(0);
}
-int _alpm_add_loadtarget(pmtrans_t *trans, pmdb_t *db, char *name)
+int SYMHIDDEN _alpm_add_loadtarget(pmtrans_t *trans, pmdb_t *db, char *name)
{
pmpkg_t *info = NULL;
pmpkg_t *dummy;
@@ -154,7 +154,7 @@ int _alpm_add_loadtarget(pmtrans_t *trans, pmdb_t *db, char *name)
if(trans->flags & PM_TRANS_FLAG_FRESHEN) {
/* only upgrade/install this package if it is already installed and at a lesser version */
dummy = _alpm_db_get_pkgfromcache(db, pkgname);
- if(dummy == NULL || _alpm_versioncmp(dummy->version, pkgver) >= 0) {
+ if(dummy == NULL || alpm_versioncmp(dummy->version, pkgver) >= 0) {
pm_errno = PM_ERR_PKG_CANT_FRESH;
goto error;
}
@@ -166,7 +166,7 @@ int _alpm_add_loadtarget(pmtrans_t *trans, pmdb_t *db, char *name)
for(i = trans->packages; i; i = i->next) {
pmpkg_t *pkg = i->data;
if(strcmp(pkg->name, pkgname) == 0) {
- if(_alpm_versioncmp(pkg->version, pkgver) < 0) {
+ if(alpm_versioncmp(pkg->version, pkgver) < 0) {
pmpkg_t *newpkg;
_alpm_log(PM_LOG_WARNING, _("replacing older version %s-%s by %s in target list"),
pkg->name, pkg->version, pkgver);
diff --git a/lib/libalpm/alpm.c b/lib/libalpm/alpm.c
index a347d74b..8d0536f5 100644
--- a/lib/libalpm/alpm.c
+++ b/lib/libalpm/alpm.c
@@ -63,7 +63,7 @@
/* Globals */
pmhandle_t *handle = NULL;
-enum _pmerrno_t pm_errno;
+enum _pmerrno_t pm_errno SYMEXPORT;
/** \addtogroup alpm_interface Interface Functions
* @brief Functions to initialize and release libalpm
@@ -75,7 +75,7 @@ enum _pmerrno_t pm_errno;
* @param root the full path of the root we'll be installing to (usually /)
* @return 0 on success, -1 on error (pm_errno is set accordingly)
*/
-int alpm_initialize(const char *root)
+int SYMEXPORT alpm_initialize(const char *root)
{
char str[PATH_MAX];
@@ -99,7 +99,7 @@ int alpm_initialize(const char *root)
/** Release the library. This should be the last alpm call you make.
* @return 0 on success, -1 on error (pm_errno is set accordingly)
*/
-int alpm_release()
+int SYMEXPORT alpm_release()
{
int dbs_left = 0;
@@ -139,7 +139,7 @@ int alpm_release()
* @param treename the name of the repository
* @return a pmdb_t* on success (the value), NULL on error
*/
-pmdb_t *alpm_db_register(char *treename)
+pmdb_t SYMEXPORT *alpm_db_register(char *treename)
{
/* Sanity checks */
ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, NULL));
@@ -245,7 +245,7 @@ int alpm_db_setserver(pmdb_t *db, const char *url)
* @return 0 on success, > 0 on error (pm_errno is set accordingly), < 0 if up
* to date
*/
-int alpm_db_update(int force, pmdb_t *db)
+int SYMEXPORT alpm_db_update(int force, pmdb_t *db)
{
alpm_list_t *lp;
char path[PATH_MAX];
@@ -330,7 +330,7 @@ int alpm_db_update(int force, pmdb_t *db)
* @param name of the package
* @return the package entry on success, NULL on error
*/
-pmpkg_t *alpm_db_readpkg(pmdb_t *db, char *name)
+pmpkg_t SYMEXPORT *alpm_db_readpkg(pmdb_t *db, char *name)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
@@ -344,7 +344,7 @@ pmpkg_t *alpm_db_readpkg(pmdb_t *db, char *name)
* @param db pointer to the package database to get the package from
* @return the list of packages on success, NULL on error
*/
-alpm_list_t *alpm_db_getpkgcache(pmdb_t *db)
+alpm_list_t SYMEXPORT *alpm_db_getpkgcache(pmdb_t *db)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
@@ -358,7 +358,7 @@ alpm_list_t *alpm_db_getpkgcache(pmdb_t *db)
* @param name name of the package
* @return the list of packages on success, NULL on error
*/
-alpm_list_t *alpm_db_whatprovides(pmdb_t *db, char *name)
+alpm_list_t SYMEXPORT *alpm_db_whatprovides(pmdb_t *db, char *name)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
@@ -373,7 +373,7 @@ alpm_list_t *alpm_db_whatprovides(pmdb_t *db, char *name)
* @param name of the group
* @return the groups entry on success, NULL on error
*/
-pmgrp_t *alpm_db_readgrp(pmdb_t *db, char *name)
+pmgrp_t SYMEXPORT *alpm_db_readgrp(pmdb_t *db, char *name)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
@@ -387,7 +387,7 @@ pmgrp_t *alpm_db_readgrp(pmdb_t *db, char *name)
* @param db pointer to the package database to get the group from
* @return the list of groups on success, NULL on error
*/
-alpm_list_t *alpm_db_getgrpcache(pmdb_t *db)
+alpm_list_t SYMEXPORT *alpm_db_getgrpcache(pmdb_t *db)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
@@ -408,7 +408,7 @@ alpm_list_t *alpm_db_getgrpcache(pmdb_t *db)
* @param pkg address of the package pointer
* @return 0 on success, -1 on error (pm_errno is set accordingly)
*/
-int alpm_pkg_load(char *filename, pmpkg_t **pkg)
+int SYMEXPORT alpm_pkg_load(char *filename, pmpkg_t **pkg)
{
_alpm_log(PM_LOG_FUNCTION, "enter alpm_pkg_load");
@@ -429,7 +429,7 @@ int alpm_pkg_load(char *filename, pmpkg_t **pkg)
* @param pkg package pointer to free
* @return 0 on success, -1 on error (pm_errno is set accordingly)
*/
-int alpm_pkg_free(pmpkg_t *pkg)
+int SYMEXPORT alpm_pkg_free(pmpkg_t *pkg)
{
_alpm_log(PM_LOG_FUNCTION, "enter alpm_pkg_free");
@@ -543,9 +543,9 @@ int alpm_pkg_checkmd5sum(pmpkg_t *pkg)
* @return postive, 0 or negative if ver1 is less, equal or more
* than ver2, respectively.
*/
-int alpm_pkg_vercmp(const char *ver1, const char *ver2)
+int SYMEXPORT alpm_pkg_vercmp(const char *ver1, const char *ver2)
{
- return(_alpm_versioncmp(ver1, ver2));
+ return(alpm_versioncmp(ver1, ver2));
}
/* internal */
@@ -556,7 +556,7 @@ static char *_supported_archs[] = {
"x86_64",
};
-char *alpm_pkg_name_hasarch(char *pkgname)
+char SYMEXPORT *alpm_pkg_name_hasarch(char *pkgname)
{
/* TODO remove this when we transfer everything over to -ARCH
*
@@ -596,7 +596,7 @@ char *alpm_pkg_name_hasarch(char *pkgname)
* @param db pointer to the package database to search in
* @return the list of packages on success, NULL on error
*/
-alpm_list_t *alpm_db_search(pmdb_t *db)
+alpm_list_t SYMEXPORT *alpm_db_search(pmdb_t *db)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
@@ -622,7 +622,7 @@ alpm_list_t *alpm_db_search(pmdb_t *db)
* @param progress progress callback function pointer
* @return 0 on success, -1 on error (pm_errno is set accordingly)
*/
-int alpm_trans_init(pmtranstype_t type, unsigned int flags,
+int SYMEXPORT alpm_trans_init(pmtranstype_t type, unsigned int flags,
alpm_trans_cb_event event, alpm_trans_cb_conv conv,
alpm_trans_cb_progress progress)
{
@@ -651,7 +651,7 @@ int alpm_trans_init(pmtranstype_t type, unsigned int flags,
/** Search for packages to upgrade and add them to the transaction.
* @return 0 on success, -1 on error (pm_errno is set accordingly)
*/
-int alpm_trans_sysupgrade()
+int SYMEXPORT alpm_trans_sysupgrade()
{
pmtrans_t *trans;
@@ -669,7 +669,7 @@ int alpm_trans_sysupgrade()
* @param target the name of the target to add
* @return 0 on success, -1 on error (pm_errno is set accordingly)
*/
-int alpm_trans_addtarget(char *target)
+int SYMEXPORT alpm_trans_addtarget(char *target)
{
pmtrans_t *trans;
@@ -689,7 +689,7 @@ int alpm_trans_addtarget(char *target)
* of an error can be dumped (ie. list of conflicting files)
* @return 0 on success, -1 on error (pm_errno is set accordingly)
*/
-int alpm_trans_prepare(alpm_list_t **data)
+int SYMEXPORT alpm_trans_prepare(alpm_list_t **data)
{
/* Sanity checks */
ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1));
@@ -706,7 +706,7 @@ int alpm_trans_prepare(alpm_list_t **data)
* of an error can be dumped (ie. list of conflicting files)
* @return 0 on success, -1 on error (pm_errno is set accordingly)
*/
-int alpm_trans_commit(alpm_list_t **data)
+int SYMEXPORT alpm_trans_commit(alpm_list_t **data)
{
/* Sanity checks */
ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1));
@@ -726,7 +726,7 @@ int alpm_trans_commit(alpm_list_t **data)
/** Release a transaction.
* @return 0 on success, -1 on error (pm_errno is set accordingly)
*/
-int alpm_trans_release()
+int SYMEXPORT alpm_trans_release()
{
pmtrans_t *trans;
char path[PATH_MAX];
@@ -774,7 +774,7 @@ int alpm_trans_release()
* @param fmt output format
* @return 0 on success, -1 on error (pm_errno is set accordingly)
*/
-int alpm_logaction(char *fmt, ...)
+int SYMEXPORT alpm_logaction(char *fmt, ...)
{
char str[LOG_STR_LEN];
va_list args;
@@ -812,7 +812,7 @@ int alpm_logaction(char *fmt, ...)
* @param name name of the file
* @return the checksum on success, NULL on error
*/
-char *alpm_get_md5sum(char *name)
+char SYMEXPORT *alpm_get_md5sum(char *name)
{
ASSERT(name != NULL, return(NULL));
@@ -823,7 +823,7 @@ char *alpm_get_md5sum(char *name)
* @param name name of the file
* @return the checksum on success, NULL on error
*/
-char *alpm_get_sha1sum(char *name)
+char SYMEXPORT *alpm_get_sha1sum(char *name)
{
ASSERT(name != NULL, return(NULL));
@@ -834,7 +834,7 @@ char *alpm_get_sha1sum(char *name)
* @param url
* @return the downloaded filename on success, NULL on error
*/
-char *alpm_fetch_pkgurl(char *url)
+char SYMEXPORT *alpm_fetch_pkgurl(char *url)
{
ASSERT(strstr(url, "://"), return(NULL));
@@ -847,7 +847,7 @@ char *alpm_fetch_pkgurl(char *url)
* @param this_section the config current section being parsed
* @return 0 on success, -1 on error (pm_errno is set accordingly)
*/
-int alpm_parse_config(char *file, alpm_cb_db_register callback, const char *this_section)
+int SYMEXPORT alpm_parse_config(char *file, alpm_cb_db_register callback, const char *this_section)
{
FILE *fp = NULL;
char line[PATH_MAX+1];
diff --git a/lib/libalpm/alpm.h b/lib/libalpm/alpm.h
index 68723a0c..9aca946f 100644
--- a/lib/libalpm/alpm.h
+++ b/lib/libalpm/alpm.h
@@ -486,6 +486,9 @@ extern enum _pmerrno_t pm_errno;
char *alpm_strerror(int err);
+/* Version Compare */
+int alpm_versioncmp(const char *a, const char *b);
+
#ifdef __cplusplus
}
#endif
diff --git a/lib/libalpm/alpm_list.c b/lib/libalpm/alpm_list.c
index d553499e..e118a129 100644
--- a/lib/libalpm/alpm_list.c
+++ b/lib/libalpm/alpm_list.c
@@ -52,7 +52,7 @@ alpm_list_t *alpm_list_new()
/** Free a list, but not the contained data
* @param list the list to free
*/
-void alpm_list_free(alpm_list_t *list)
+void SYMEXPORT alpm_list_free(alpm_list_t *list)
{
alpm_list_t *it = list;
@@ -67,7 +67,7 @@ void alpm_list_free(alpm_list_t *list)
* @param list the list to free
* @param fn a free function for the internal data
*/
-void alpm_list_free_inner(alpm_list_t *list, alpm_list_fn_free fn)
+void SYMEXPORT alpm_list_free_inner(alpm_list_t *list, alpm_list_fn_free fn)
{
alpm_list_t *it = list;
@@ -87,7 +87,7 @@ void alpm_list_free_inner(alpm_list_t *list, alpm_list_fn_free fn)
* @param data the new item to be added to the list
* @return the resultant list, or NULL on failure
*/
-alpm_list_t *alpm_list_add(alpm_list_t *list, void *data)
+alpm_list_t SYMEXPORT *alpm_list_add(alpm_list_t *list, void *data)
{
alpm_list_t *ptr, *lp;
@@ -305,7 +305,7 @@ alpm_list_t *alpm_list_remove_node(alpm_list_t *node)
* @param list the list to copy
* @return a NEW list containing non-duplicated items
*/
-alpm_list_t *alpm_list_remove_dupes(alpm_list_t *list)
+alpm_list_t SYMEXPORT *alpm_list_remove_dupes(alpm_list_t *list)
{ /* TODO does removing the strdup here cause invalid free's anywhere? */
alpm_list_t *lp = list, *newlist = NULL;
while(lp) {
@@ -354,7 +354,7 @@ alpm_list_t *alpm_list_reverse(alpm_list_t *list)
* @param list the list
* @return the first element in the list
*/
-alpm_list_t *alpm_list_first(alpm_list_t *list)
+alpm_list_t SYMEXPORT *alpm_list_first(alpm_list_t *list)
{
return(list);
}
@@ -377,7 +377,7 @@ alpm_list_t *alpm_list_nth(alpm_list_t *list, int n)
* @param entry the list entry
* @return the next element, or NULL when no more elements exist
*/
-alpm_list_t *alpm_list_next(alpm_list_t *entry)
+alpm_list_t SYMEXPORT *alpm_list_next(alpm_list_t *entry)
{
return(entry->next);
}
@@ -398,7 +398,7 @@ alpm_list_t *alpm_list_last(alpm_list_t *list)
* @param entry the list entry
* @return the contained data, or NULL if none
*/
-void *alpm_list_getdata(const alpm_list_t *entry)
+void SYMEXPORT *alpm_list_getdata(const alpm_list_t *entry)
{
if(entry == NULL) return(NULL);
return(entry->data);
@@ -410,7 +410,7 @@ void *alpm_list_getdata(const alpm_list_t *entry)
* @param list the list to operate on
* @return the number of list items
*/
-int alpm_list_count(const alpm_list_t *list)
+int SYMEXPORT alpm_list_count(const alpm_list_t *list)
{
unsigned int i = 0;
const alpm_list_t *lp = list;
diff --git a/lib/libalpm/conflict.c b/lib/libalpm/conflict.c
index 0191a187..96d4fd01 100644
--- a/lib/libalpm/conflict.c
+++ b/lib/libalpm/conflict.c
@@ -360,7 +360,7 @@ alpm_list_t *_alpm_db_find_conflicts(pmdb_t *db, pmtrans_t *trans, char *root, a
return(conflicts);
}
-const char *alpm_conflict_get_target(pmconflict_t *conflict)
+const char SYMEXPORT *alpm_conflict_get_target(pmconflict_t *conflict)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
@@ -369,7 +369,7 @@ const char *alpm_conflict_get_target(pmconflict_t *conflict)
return conflict->target;
}
-pmconflicttype_t alpm_conflict_get_type(pmconflict_t *conflict)
+pmconflicttype_t SYMEXPORT alpm_conflict_get_type(pmconflict_t *conflict)
{
/* Sanity checks */
ASSERT(handle != NULL, return(-1));
@@ -378,7 +378,7 @@ pmconflicttype_t alpm_conflict_get_type(pmconflict_t *conflict)
return conflict->type;
}
-const char *alpm_conflict_get_file(pmconflict_t *conflict)
+const char SYMEXPORT *alpm_conflict_get_file(pmconflict_t *conflict)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
@@ -387,7 +387,7 @@ const char *alpm_conflict_get_file(pmconflict_t *conflict)
return conflict->file;
}
-const char *alpm_conflict_get_ctarget(pmconflict_t *conflict)
+const char SYMEXPORT *alpm_conflict_get_ctarget(pmconflict_t *conflict)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
diff --git a/lib/libalpm/db.c b/lib/libalpm/db.c
index 1dece32d..cafd74fa 100644
--- a/lib/libalpm/db.c
+++ b/lib/libalpm/db.c
@@ -199,7 +199,7 @@ pmdb_t *_alpm_db_register(char *treename, alpm_cb_db_register callback)
return(db);
}
-const char *alpm_db_get_name(pmdb_t *db)
+const char SYMEXPORT *alpm_db_get_name(pmdb_t *db)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
diff --git a/lib/libalpm/deps.c b/lib/libalpm/deps.c
index 0de9b930..a8e59f00 100644
--- a/lib/libalpm/deps.c
+++ b/lib/libalpm/deps.c
@@ -646,7 +646,7 @@ error:
return(-1);
}
-const char *alpm_dep_get_target(pmdepmissing_t *miss)
+const char SYMEXPORT *alpm_dep_get_target(pmdepmissing_t *miss)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
@@ -655,7 +655,7 @@ const char *alpm_dep_get_target(pmdepmissing_t *miss)
return miss->target;
}
-pmdeptype_t alpm_dep_get_type(pmdepmissing_t *miss)
+pmdeptype_t SYMEXPORT alpm_dep_get_type(pmdepmissing_t *miss)
{
/* Sanity checks */
ASSERT(handle != NULL, return(-1));
@@ -664,7 +664,7 @@ pmdeptype_t alpm_dep_get_type(pmdepmissing_t *miss)
return miss->type;
}
-pmdepmod_t alpm_dep_get_mod(pmdepmissing_t *miss)
+pmdepmod_t SYMEXPORT alpm_dep_get_mod(pmdepmissing_t *miss)
{
/* Sanity checks */
ASSERT(handle != NULL, return(-1));
@@ -673,7 +673,7 @@ pmdepmod_t alpm_dep_get_mod(pmdepmissing_t *miss)
return miss->depend.mod;
}
-const char *alpm_dep_get_name(pmdepmissing_t *miss)
+const char SYMEXPORT *alpm_dep_get_name(pmdepmissing_t *miss)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
@@ -682,7 +682,7 @@ const char *alpm_dep_get_name(pmdepmissing_t *miss)
return miss->depend.name;
}
-const char *alpm_dep_get_version(pmdepmissing_t *miss)
+const char SYMEXPORT *alpm_dep_get_version(pmdepmissing_t *miss)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
diff --git a/lib/libalpm/error.c b/lib/libalpm/error.c
index 832d8e78..334012d1 100644
--- a/lib/libalpm/error.c
+++ b/lib/libalpm/error.c
@@ -26,7 +26,7 @@
#include "util.h"
#include "alpm.h"
-char *alpm_strerror(int err)
+char SYMEXPORT *alpm_strerror(int err)
{
switch(err) {
/* System */
diff --git a/lib/libalpm/group.c b/lib/libalpm/group.c
index 3ec6338c..922443ed 100644
--- a/lib/libalpm/group.c
+++ b/lib/libalpm/group.c
@@ -70,7 +70,7 @@ int _alpm_grp_cmp(const void *g1, const void *g2)
return(strcmp(grp1->name, grp2->name));
}
-const char *alpm_grp_get_name(pmgrp_t *grp)
+const char SYMEXPORT *alpm_grp_get_name(pmgrp_t *grp)
{
/* Sanity checks */
ASSERT(grp != NULL, return(NULL));
@@ -78,7 +78,7 @@ const char *alpm_grp_get_name(pmgrp_t *grp)
return grp->name;
}
-alpm_list_t *alpm_grp_get_packages(pmgrp_t *grp)
+alpm_list_t SYMEXPORT *alpm_grp_get_packages(pmgrp_t *grp)
{
/* Sanity checks */
ASSERT(grp != NULL, return(NULL));
diff --git a/lib/libalpm/handle.c b/lib/libalpm/handle.c
index 1c31e41d..a8563a17 100644
--- a/lib/libalpm/handle.c
+++ b/lib/libalpm/handle.c
@@ -118,9 +118,9 @@ int _alpm_handle_free(pmhandle_t *handle)
alpm_cb_log alpm_option_get_logcb() { return handle->logcb; }
alpm_cb_download alpm_option_get_dlcb() { return handle->dlcb; }
unsigned short alpm_option_get_logmask() { return handle->logmask; }
-const char *alpm_option_get_root() { return handle->root; }
-const char *alpm_option_get_dbpath() { return handle->dbpath; }
-const char *alpm_option_get_cachedir() { return handle->cachedir; }
+const char SYMEXPORT *alpm_option_get_root() { return handle->root; }
+const char SYMEXPORT *alpm_option_get_dbpath() { return handle->dbpath; }
+const char SYMEXPORT *alpm_option_get_cachedir() { return handle->cachedir; }
const char *alpm_option_get_logfile() { return handle->logfile; }
unsigned short alpm_option_get_usesyslog() { return handle->usesyslog; }
alpm_list_t *alpm_option_get_noupgrades() { return handle->noupgrade; }
@@ -130,21 +130,21 @@ alpm_list_t *alpm_option_get_holdpkgs() { return handle->holdpkg; }
time_t alpm_option_get_upgradedelay() { return handle->upgradedelay; }
const char *alpm_option_get_xfercommand() { return handle->xfercommand; }
unsigned short alpm_option_get_nopassiveftp() { return handle->nopassiveftp; }
-unsigned short alpm_option_get_chomp() { return handle->chomp; }
+unsigned short SYMEXPORT alpm_option_get_chomp() { return handle->chomp; }
alpm_list_t *alpm_option_get_needles() { return handle->needles; }
unsigned short alpm_option_get_usecolor() { return handle->use_color; }
pmdb_t *alpm_option_get_localdb() { return handle->db_local; }
-alpm_list_t *alpm_option_get_syncdbs()
+alpm_list_t SYMEXPORT *alpm_option_get_syncdbs()
{
return handle->dbs_sync;
}
-void alpm_option_set_logcb(alpm_cb_log cb) { handle->logcb = cb; }
+void SYMEXPORT alpm_option_set_logcb(alpm_cb_log cb) { handle->logcb = cb; }
-void alpm_option_set_dlcb(alpm_cb_download cb) { handle->dlcb = cb; }
+void SYMEXPORT alpm_option_set_dlcb(alpm_cb_download cb) { handle->dlcb = cb; }
-void alpm_option_set_logmask(unsigned short mask) { handle->logmask = mask; }
+void SYMEXPORT alpm_option_set_logmask(unsigned short mask) { handle->logmask = mask; }
void alpm_option_set_root(const char *root)
{
@@ -152,7 +152,7 @@ void alpm_option_set_root(const char *root)
if(root) handle->root = strdup(root);
}
-void alpm_option_set_dbpath(const char *dbpath)
+void SYMEXPORT alpm_option_set_dbpath(const char *dbpath)
{
if(handle->dbpath) FREE(handle->dbpath);
if(dbpath) handle->dbpath = strdup(dbpath);
@@ -205,7 +205,7 @@ void alpm_option_set_noextracts(alpm_list_t *noextract)
if(noextract) handle->noextract = noextract;
}
-void alpm_option_add_ignorepkg(char *pkg)
+void SYMEXPORT alpm_option_add_ignorepkg(char *pkg)
{
handle->ignorepkg = alpm_list_add(handle->ignorepkg, strdup(pkg));
}
@@ -243,7 +243,7 @@ void alpm_option_set_nopassiveftp(unsigned short nopasv)
void alpm_option_set_chomp(unsigned short chomp) { handle->chomp = chomp; }
-void alpm_option_add_needle(char *needle)
+void SYMEXPORT alpm_option_add_needle(char *needle)
{
handle->needles = alpm_list_add(handle->needles, strdup(needle));
}
diff --git a/lib/libalpm/package.c b/lib/libalpm/package.c
index beda20a4..5a0106cf 100644
--- a/lib/libalpm/package.c
+++ b/lib/libalpm/package.c
@@ -457,7 +457,7 @@ const char *alpm_pkg_get_filename(pmpkg_t *pkg)
return pkg->filename;
}
-const char *alpm_pkg_get_name(pmpkg_t *pkg)
+const char SYMEXPORT *alpm_pkg_get_name(pmpkg_t *pkg)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
@@ -466,7 +466,7 @@ const char *alpm_pkg_get_name(pmpkg_t *pkg)
return pkg->name;
}
-const char *alpm_pkg_get_version(pmpkg_t *pkg)
+const char SYMEXPORT *alpm_pkg_get_version(pmpkg_t *pkg)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
@@ -475,7 +475,7 @@ const char *alpm_pkg_get_version(pmpkg_t *pkg)
return pkg->version;
}
-const char *alpm_pkg_get_desc(pmpkg_t *pkg)
+const char SYMEXPORT *alpm_pkg_get_desc(pmpkg_t *pkg)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
@@ -487,7 +487,7 @@ const char *alpm_pkg_get_desc(pmpkg_t *pkg)
return pkg->desc;
}
-const char *alpm_pkg_get_url(pmpkg_t *pkg)
+const char SYMEXPORT *alpm_pkg_get_url(pmpkg_t *pkg)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
@@ -499,7 +499,7 @@ const char *alpm_pkg_get_url(pmpkg_t *pkg)
return pkg->url;
}
-const char *alpm_pkg_get_builddate(pmpkg_t *pkg)
+const char SYMEXPORT *alpm_pkg_get_builddate(pmpkg_t *pkg)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
@@ -511,7 +511,7 @@ const char *alpm_pkg_get_builddate(pmpkg_t *pkg)
return pkg->builddate;
}
-const char *alpm_pkg_get_buildtype(pmpkg_t *pkg)
+const char SYMEXPORT *alpm_pkg_get_buildtype(pmpkg_t *pkg)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
@@ -523,7 +523,7 @@ const char *alpm_pkg_get_buildtype(pmpkg_t *pkg)
return pkg->buildtype;
}
-const char *alpm_pkg_get_installdate(pmpkg_t *pkg)
+const char SYMEXPORT *alpm_pkg_get_installdate(pmpkg_t *pkg)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
@@ -535,7 +535,7 @@ const char *alpm_pkg_get_installdate(pmpkg_t *pkg)
return pkg->installdate;
}
-const char *alpm_pkg_get_packager(pmpkg_t *pkg)
+const char SYMEXPORT *alpm_pkg_get_packager(pmpkg_t *pkg)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
@@ -547,7 +547,7 @@ const char *alpm_pkg_get_packager(pmpkg_t *pkg)
return pkg->packager;
}
-const char *alpm_pkg_get_md5sum(pmpkg_t *pkg)
+const char SYMEXPORT *alpm_pkg_get_md5sum(pmpkg_t *pkg)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
@@ -559,7 +559,7 @@ const char *alpm_pkg_get_md5sum(pmpkg_t *pkg)
return pkg->md5sum;
}
-const char *alpm_pkg_get_sha1sum(pmpkg_t *pkg)
+const char SYMEXPORT *alpm_pkg_get_sha1sum(pmpkg_t *pkg)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
@@ -571,7 +571,7 @@ const char *alpm_pkg_get_sha1sum(pmpkg_t *pkg)
return pkg->sha1sum;
}
-const char *alpm_pkg_get_arch(pmpkg_t *pkg)
+const char SYMEXPORT *alpm_pkg_get_arch(pmpkg_t *pkg)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
@@ -583,7 +583,7 @@ const char *alpm_pkg_get_arch(pmpkg_t *pkg)
return pkg->arch;
}
-unsigned long alpm_pkg_get_size(pmpkg_t *pkg)
+unsigned long SYMEXPORT alpm_pkg_get_size(pmpkg_t *pkg)
{
/* Sanity checks */
ASSERT(handle != NULL, return(-1));
@@ -595,7 +595,7 @@ unsigned long alpm_pkg_get_size(pmpkg_t *pkg)
return pkg->size;
}
-unsigned long alpm_pkg_get_isize(pmpkg_t *pkg)
+unsigned long SYMEXPORT alpm_pkg_get_isize(pmpkg_t *pkg)
{
/* Sanity checks */
ASSERT(handle != NULL, return(-1));
@@ -607,7 +607,7 @@ unsigned long alpm_pkg_get_isize(pmpkg_t *pkg)
return pkg->isize;
}
-pmpkgreason_t alpm_pkg_get_reason(pmpkg_t *pkg)
+pmpkgreason_t SYMEXPORT alpm_pkg_get_reason(pmpkg_t *pkg)
{
/* Sanity checks */
ASSERT(handle != NULL, return(-1));
@@ -619,7 +619,7 @@ pmpkgreason_t alpm_pkg_get_reason(pmpkg_t *pkg)
return pkg->reason;
}
-alpm_list_t *alpm_pkg_get_licenses(pmpkg_t *pkg)
+alpm_list_t SYMEXPORT *alpm_pkg_get_licenses(pmpkg_t *pkg)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
@@ -631,7 +631,7 @@ alpm_list_t *alpm_pkg_get_licenses(pmpkg_t *pkg)
return pkg->license;
}
-alpm_list_t *alpm_pkg_get_groups(pmpkg_t *pkg)
+alpm_list_t SYMEXPORT *alpm_pkg_get_groups(pmpkg_t *pkg)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
@@ -644,7 +644,7 @@ alpm_list_t *alpm_pkg_get_groups(pmpkg_t *pkg)
}
/* depends */
-alpm_list_t *alpm_pkg_get_depends(pmpkg_t *pkg)
+alpm_list_t SYMEXPORT *alpm_pkg_get_depends(pmpkg_t *pkg)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
@@ -656,7 +656,7 @@ alpm_list_t *alpm_pkg_get_depends(pmpkg_t *pkg)
return pkg->depends;
}
-alpm_list_t *alpm_pkg_get_removes(pmpkg_t *pkg)
+alpm_list_t SYMEXPORT *alpm_pkg_get_removes(pmpkg_t *pkg)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
@@ -668,7 +668,7 @@ alpm_list_t *alpm_pkg_get_removes(pmpkg_t *pkg)
return pkg->removes;
}
-alpm_list_t *alpm_pkg_get_requiredby(pmpkg_t *pkg)
+alpm_list_t SYMEXPORT *alpm_pkg_get_requiredby(pmpkg_t *pkg)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
@@ -680,7 +680,7 @@ alpm_list_t *alpm_pkg_get_requiredby(pmpkg_t *pkg)
return pkg->requiredby;
}
-alpm_list_t *alpm_pkg_get_conflicts(pmpkg_t *pkg)
+alpm_list_t SYMEXPORT *alpm_pkg_get_conflicts(pmpkg_t *pkg)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
@@ -692,7 +692,7 @@ alpm_list_t *alpm_pkg_get_conflicts(pmpkg_t *pkg)
return pkg->conflicts;
}
-alpm_list_t *alpm_pkg_get_provides(pmpkg_t *pkg)
+alpm_list_t SYMEXPORT *alpm_pkg_get_provides(pmpkg_t *pkg)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
@@ -704,7 +704,7 @@ alpm_list_t *alpm_pkg_get_provides(pmpkg_t *pkg)
return pkg->provides;
}
-alpm_list_t *alpm_pkg_get_replaces(pmpkg_t *pkg)
+alpm_list_t SYMEXPORT *alpm_pkg_get_replaces(pmpkg_t *pkg)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
@@ -716,7 +716,7 @@ alpm_list_t *alpm_pkg_get_replaces(pmpkg_t *pkg)
return pkg->replaces;
}
-alpm_list_t *alpm_pkg_get_files(pmpkg_t *pkg)
+alpm_list_t SYMEXPORT *alpm_pkg_get_files(pmpkg_t *pkg)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
@@ -729,7 +729,7 @@ alpm_list_t *alpm_pkg_get_files(pmpkg_t *pkg)
return pkg->files;
}
-alpm_list_t *alpm_pkg_get_backup(pmpkg_t *pkg)
+alpm_list_t SYMEXPORT *alpm_pkg_get_backup(pmpkg_t *pkg)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
@@ -742,7 +742,7 @@ alpm_list_t *alpm_pkg_get_backup(pmpkg_t *pkg)
return pkg->backup;
}
-unsigned short alpm_pkg_has_scriptlet(pmpkg_t *pkg)
+unsigned short SYMEXPORT alpm_pkg_has_scriptlet(pmpkg_t *pkg)
{
/* Sanity checks */
ASSERT(handle != NULL, return(-1));
diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c
index 301b4917..a3e8e1fd 100644
--- a/lib/libalpm/sync.c
+++ b/lib/libalpm/sync.c
@@ -227,7 +227,7 @@ int _alpm_sync_sysupgrade(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_s
}
/* compare versions and see if we need to upgrade */
- cmp = _alpm_versioncmp(local->version, spkg->version);
+ cmp = alpm_versioncmp(local->version, spkg->version);
if(cmp > 0 && !spkg->force) {
/* local version is newer */
pmdb_t *db = spkg->data;
@@ -340,7 +340,7 @@ int _alpm_sync_addtarget(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sy
local = _alpm_db_get_pkgfromcache(db_local, spkg->name);
if(local) {
- cmp = _alpm_versioncmp(local->version, spkg->version);
+ cmp = alpm_versioncmp(local->version, spkg->version);
if(cmp > 0 && !spkg->force) {
/* local version is newer -- get confirmation before adding */
int resp = 0;
@@ -1069,7 +1069,7 @@ error:
return(-1);
}
-pmsynctype_t alpm_sync_get_type(pmsyncpkg_t *sync)
+pmsynctype_t SYMEXPORT alpm_sync_get_type(pmsyncpkg_t *sync)
{
/* Sanity checks */
ASSERT(sync != NULL, return(-1));
@@ -1077,7 +1077,7 @@ pmsynctype_t alpm_sync_get_type(pmsyncpkg_t *sync)
return sync->type;
}
-pmpkg_t *alpm_sync_get_package(pmsyncpkg_t *sync)
+pmpkg_t SYMEXPORT *alpm_sync_get_package(pmsyncpkg_t *sync)
{
/* Sanity checks */
ASSERT(sync != NULL, return(NULL));
@@ -1085,7 +1085,7 @@ pmpkg_t *alpm_sync_get_package(pmsyncpkg_t *sync)
return sync->pkg;
}
-void *alpm_sync_get_data(pmsyncpkg_t *sync)
+void SYMEXPORT *alpm_sync_get_data(pmsyncpkg_t *sync)
{
/* Sanity checks */
ASSERT(sync != NULL, return(NULL));
diff --git a/lib/libalpm/trans.c b/lib/libalpm/trans.c
index 005fa243..601373d7 100644
--- a/lib/libalpm/trans.c
+++ b/lib/libalpm/trans.c
@@ -237,7 +237,7 @@ pmtranstype_t alpm_trans_get_type()
return handle->trans->type;
}
-unsigned int alpm_trans_get_flags()
+unsigned int SYMEXPORT alpm_trans_get_flags()
{
/* Sanity checks */
ASSERT(handle != NULL, return(-1));
@@ -255,7 +255,7 @@ alpm_list_t * alpm_trans_get_targets()
return handle->trans->targets;
}
-alpm_list_t * alpm_trans_get_packages()
+alpm_list_t SYMEXPORT * alpm_trans_get_packages()
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
diff --git a/lib/libalpm/util.h b/lib/libalpm/util.h
index 098c15a4..4de9f5d8 100644
--- a/lib/libalpm/util.h
+++ b/lib/libalpm/util.h
@@ -76,6 +76,10 @@ char* strsep(char** str, const char* delims);
char* mkdtemp(char *template);
#endif
+/* check exported library symbols with: nm -C -D <lib> */
+#define SYMEXPORT __attribute__((visibility("default")))
+#define SYMHIDDEN __attribute__((visibility("hidden")))
+
#endif /* _ALPM_UTIL_H */
/* vim: set ts=2 sw=2 noet: */
diff --git a/lib/libalpm/versioncmp.c b/lib/libalpm/versioncmp.c
index a5e0f36f..dffdf03d 100644
--- a/lib/libalpm/versioncmp.c
+++ b/lib/libalpm/versioncmp.c
@@ -148,7 +148,7 @@ static int strverscmp (s1, s2)
#endif
/* this function was taken from rpm 4.0.4 and rewritten */
-int _alpm_versioncmp(const char *a, const char *b)
+int SYMEXPORT alpm_versioncmp(const char *a, const char *b)
{
char str1[64], str2[64];
char *ptr1, *ptr2;
@@ -236,7 +236,7 @@ int _alpm_versioncmp(const char *a, const char *b)
if((!*one) && (!*two)) {
/* compare release numbers */
- if(rel1 && rel2) return(_alpm_versioncmp(rel1, rel2));
+ if(rel1 && rel2) return(alpm_versioncmp(rel1, rel2));
return(0);
}
@@ -252,7 +252,7 @@ int _alpm_depcmp(pmpkg_t *pkg, pmdepend_t *dep)
if(dep->mod == PM_DEP_MOD_ANY) {
equal = 1;
} else {
- int cmp = _alpm_versioncmp(pkg->version, dep->version);
+ int cmp = alpm_versioncmp(pkg->version, dep->version);
switch(dep->mod) {
case PM_DEP_MOD_EQ: equal = (cmp == 0); break;
case PM_DEP_MOD_GE: equal = (cmp >= 0); break;
diff --git a/lib/libalpm/versioncmp.h b/lib/libalpm/versioncmp.h
index 3a64888a..34f7a189 100644
--- a/lib/libalpm/versioncmp.h
+++ b/lib/libalpm/versioncmp.h
@@ -26,7 +26,6 @@
#include "deps.h"
#include "package.h"
-int _alpm_versioncmp(const char *a, const char *b);
int _alpm_depcmp(pmpkg_t *pkg, pmdepend_t *dep);
#endif
diff --git a/src/util/vercmp.c b/src/util/vercmp.c
index e7e21695..e1f2345d 100644
--- a/src/util/vercmp.c
+++ b/src/util/vercmp.c
@@ -27,7 +27,7 @@
#ifndef PATH_MAX
#define PATH_MAX 1024
#endif
-#include "versioncmp.h"
+#include <alpm.h>
int main(int argc, char *argv[])
{
@@ -45,7 +45,7 @@ int main(int argc, char *argv[])
return(0);
}
- ret = _alpm_versioncmp(s1, s2);
+ ret = alpm_versioncmp(s1, s2);
printf("%d\n", ret);
return(ret);
}