Commit Graph

3004 Commits

Author SHA1 Message Date
Enno Boland
c992049eb5 xbps-create: fix formatting, set return value on path overflow 2018-07-07 12:23:01 +02:00
Enno Boland
3ef932de2f xbps-create: replace nftw by an implementation that traverses the directory tree in an alphabetic order. 2018-07-07 12:15:00 +02:00
Enno Boland
3f251bea74 Revert "debug"
This reverts commit 29466b128b.
2018-07-06 15:17:42 +02:00
Enno Boland
aa21cb08fd Revert "bin/xbps-create: process dictionary instead of linked list."
This reverts commit 25fa00ea46.
2018-07-06 08:07:59 +02:00
Enno Boland
705a30c63c Revert "bin/xbps-create: process_entry_file uses dictionary instead of linked list now."
This reverts commit 61d2361646.
2018-07-06 08:07:58 +02:00
Enno Boland
e211ae21fe Revert "bin/xbps-create: remove xentry struct and clean up"
This reverts commit aa90201b2d.
2018-07-06 08:07:55 +02:00
Enno Boland
7fe66a1f20 xbps-rindex: make hash check optional 2018-07-03 08:07:23 +02:00
Enno Boland
283aa0efc2 fix travis 2018-07-02 16:15:45 +02:00
Enno Boland
97e56ff486 .travis.yml: do not require sudo 2018-07-02 16:14:21 +02:00
Enno Boland
29466b128b debug 2018-07-02 15:58:55 +02:00
Enno Boland
bfd6b2e88e lib/plist.c: share workload more efficient between threads
Before this patch xbps had a constant slice count for every thread.
This resulted in unbalanced thread usage if the workload was
homogenous over the slices.

This patch replaces the naive slice count approach by spinlock based
reservation.
2018-07-02 13:18:23 +02:00
Enno Boland
3f4d6a93be NEWS: sync 2018-06-29 11:54:00 +02:00
Enno Boland
a717e53ee7 xbps-rindex: fix staging deadlock. 2018-06-28 13:30:14 +02:00
Enno Boland
219f6c2310 xbps-rindex: add test to trigger stage deadlock 2018-06-28 13:30:14 +02:00
Duncaen
daa1b44682 xbps-install: fix "Space available on disk:" padding 2018-05-02 00:46:07 +02:00
Duncaen
ae868eeb30 NEWS: add some missing changes to xbps-0.52 2018-05-01 12:14:59 +02:00
Enno Boland
513bf65c6d uunshare: fix argument parsing 2018-04-30 18:22:28 +02:00
Enno Boland
449dc8a551 Revert "bin/xbps-uunshare: stop option parsing at the first nonoption argument"
This reverts commit 6cca905d64.
2018-04-16 14:00:30 +02:00
Enno Boland
f4060aff6c Revert "bin/xbps-uchroot: stop option parsing at the first nonoption argument"
This reverts commit 948ba8d7d1.
2018-04-16 14:00:29 +02:00
Enno Boland
761f879eca set release date for xbps to the end of april 2018-04-15 20:13:04 +02:00
Toyam Cox
c6359f8a27
Merge pull request #266 from eli-schwartz/master
Consistently use pkg-config to find libssl and document the versions required.
2017-12-26 23:23:51 -05:00
Eli Schwartz
861617a708
configure: correctly detect libssl using pkg-config
This allows the openssl version to be easily overridden using standard
PKG_CONFIG_PATH overrides, which is required for modern distros that use
openssl 1.1 by default.

Also print diagnostics for the libssl flavor in use, and constrain the
version when using openssl to < 1.1.
2017-12-26 09:28:16 -05:00
Eli Schwartz
498d542588
README.md: document the required version of openssl 2017-12-26 09:19:31 -05:00
Juan RP
3012650ba2 configure: require libarchive >= 3.2.0 via pkg-config too. 2017-10-25 09:25:03 +02:00
Juan RP
e0f4199fff Merge pull request #250 from ebfe/infinity
bin/xbps-checkvers: avoid infinite loops when checking reverts
2017-10-25 09:19:10 +02:00
Juan RP
512d39d591 Merge pull request #248 from ebfe/abspath
lib/package_unpack.c: refuse to unpack to absolute paths
2017-10-25 09:18:47 +02:00
Juan RP
c20b37e022 Merge pull request #247 from ebfe/man
manpages: fix invalid escape
2017-10-25 09:18:11 +02:00
Juan RP
eaccf4813d Merge pull request #246 from ebfe/signed_pkgver
lib/package_unpack.c: verify signed pkgver matches
2017-10-25 09:17:55 +02:00
Juan RP
a6df70b8af Merge pull request #245 from ebfe/sign-big-pkgs
bin/xbps-rindex: use xbps_file_hash_raw while signing
2017-10-25 09:17:08 +02:00
Juan RP
9c0d795810 Merge pull request #207 from Duncaen/relative
xbps-uchroot and xbps-uunshare usability improvements
2017-10-25 09:14:40 +02:00
Juan RP
eae215e2a0 Merge pull request #234 from Duncaen/umask
Fix pkgdb and files plist permissions with restictive umask.
2017-10-25 09:13:26 +02:00
Natanael Copa
34fc9416ba configure: fix vasprintf test (#236)
Fix the test for vasprintf function which failed with musl libc and
fortify-headers on aarch64:

_vasprintf.c:4:24: error: incompatible type for argument 3 of 'vasprintf'
  vasprintf(NULL, NULL, NULL);
                        ^~~~
2017-10-25 09:13:07 +02:00
Juan RP
cd7f39421d Merge pull request #254 from AgustinCB/fix-compilation
Fix compilation errors on GCC 7
2017-10-25 09:11:20 +02:00
Agustin Chiappe Berrini
51207b9076 fix compilation of fetch_cb on gcc 7
Original message:

```
fetch_cb.c:80:29: error: ‘h’ directive output may be truncated writing 1 byte into a region of size between 0 and 14 [-Werror=format-truncation=]
   snprintf(str, sizeof str, "%02ldh%02ldm",
                             ^~~~~~~~~~~~~~
fetch_cb.c:80:29: note: directive argument in the range [0, 59]
fetch_cb.c:80:3: note: ‘snprintf’ output between 7 and 21 bytes into a destination of size 16
   snprintf(str, sizeof str, "%02ldh%02ldm",
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       eta / 3600, (eta % 3600) / 60);
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fetch_cb.c:83:30: error: ‘%02ld’ directive output may be truncated writing between 2 and 19 bytes into a region of size 16 [-Werror=format-truncation=]
   snprintf(str, sizeof str, "%02ldm%02lds",
                              ^~~~~
fetch_cb.c:83:29: note: directive argument in the range [-153722867280912930, 60]
   snprintf(str, sizeof str, "%02ldm%02lds",
                             ^~~~~~~~~~~~~~
fetch_cb.c:83:29: note: directive argument in the range [-59, 59]
fetch_cb.c:83:3: note: ‘snprintf’ output between 7 and 25 bytes into a destination of size 16
   snprintf(str, sizeof str, "%02ldm%02lds",
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       eta / 60, eta % 60);
       ~~~~~~~~~~~~~~~~~~~
fetch_cb.c:80:29: error: ‘h’ directive output may be truncated writing 1 byte into a region of size between 0 and 14 [-Werror=format-truncation=]
   snprintf(str, sizeof str, "%02ldh%02ldm",
                             ^~~~~~~~~~~~~~
fetch_cb.c:80:29: note: directive argument in the range [0, 59]
fetch_cb.c:80:3: note: ‘snprintf’ output between 7 and 21 bytes into a destination of size 16
   snprintf(str, sizeof str, "%02ldh%02ldm",
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       eta / 3600, (eta % 3600) / 60);
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fetch_cb.c:83:30: error: ‘%02ld’ directive output may be truncated writing between 2 and 19 bytes into a region of size 16 [-Werror=format-truncation=]
   snprintf(str, sizeof str, "%02ldm%02lds",
                              ^~~~~
fetch_cb.c:83:29: note: directive argument in the range [-153722867280912930, 60]
   snprintf(str, sizeof str, "%02ldm%02lds",
                             ^~~~~~~~~~~~~~
fetch_cb.c:83:29: note: directive argument in the range [-59, 59]
fetch_cb.c:83:3: note: ‘snprintf’ output between 7 and 25 bytes into a destination of size 16
   snprintf(str, sizeof str, "%02ldm%02lds",
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       eta / 60, eta % 60);
       ~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
```
2017-08-22 18:44:32 -04:00
Agustin Chiappe Berrini
2cd0dc688f Fix compilation of initend for gcc 7
This is a trickier situation.

The original message:

```
initend.c:423:10: error: ‘%s’ directive output may be truncated writing 15 bytes into a region of size between 1 and 512 [-Werror=format-truncation=]
       "%s%s", strcmp(xhp->rootdir, "/") ? xhp->rootdir : "",
          ^~
initend.c:422:3: note: ‘snprintf’ output between 16 and 527 bytes into a destination of size 512
   snprintf(xhp->confdir, sizeof(xhp->confdir),
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       "%s%s", strcmp(xhp->rootdir, "/") ? xhp->rootdir : "",
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       XBPS_SYSCONF_PATH);
       ~~~~~~~~~~~~~~~~~~
initend.c:429:7: error: ‘snprintf’ output may be truncated before the last format character [-Werror=format-truncation ]
       "%s/%s", strcmp(xhp->rootdir, "/") ? xhp->rootdir : "", buf);
       ^~~~~~~
initend.c:428:3: note: ‘snprintf’ output 2 or more bytes (assuming 513) into a destination of size 512
   snprintf(xhp->confdir, sizeof(xhp->confdir),
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       "%s/%s", strcmp(xhp->rootdir, "/") ? xhp->rootdir : "", buf);
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
initend.c:434:9: error: ‘%s’ directive output may be truncated writing 17 bytes into a region of size between 1 and 512 [-Werror=format-truncation=]
      "%s%s", strcmp(xhp->rootdir, "/") ? xhp->rootdir : "",
         ^~
initend.c:433:2: note: ‘snprintf’ output between 18 and 529 bytes into a destination of size 512
  snprintf(sysconfdir, sizeof(sysconfdir),
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      "%s%s", strcmp(xhp->rootdir, "/") ? xhp->rootdir : "",
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      XBPS_SYSDEFCONF_PATH);
      ~~~~~~~~~~~~~~~~~~~~~
initend.c:455:11: error: ‘%s’ directive output may be truncated writing 14 bytes into a region of size between 0 and 511 [-Werror=format-truncation=]
       "%s/%s", strcmp(xhp->rootdir, "/") ? xhp->rootdir : "",
           ^~
initend.c:454:3: note: ‘snprintf’ output between 16 and 527 bytes into a destination of size 512
   snprintf(xhp->cachedir, sizeof(xhp->cachedir),
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       "%s/%s", strcmp(xhp->rootdir, "/") ? xhp->rootdir : "",
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       XBPS_CACHE_PATH);
       ~~~~~~~~~~~~~~~~
initend.c:461:7: error: ‘snprintf’ output may be truncated before the last format character [-Werror=format-truncation ]
       "%s/%s", strcmp(xhp->rootdir, "/") ? xhp->rootdir : "", buf);
       ^~~~~~~
initend.c:460:3: note: ‘snprintf’ output 2 or more bytes (assuming 513) into a destination of size 512
   snprintf(xhp->cachedir, sizeof(xhp->cachedir),
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       "%s/%s", strcmp(xhp->rootdir, "/") ? xhp->rootdir : "", buf);
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
initend.c:467:11: error: ‘%s’ directive output may be truncated writing 12 bytes into a region of size between 0 and 511 [-Werror=format-truncation=]
       "%s/%s", strcmp(xhp->rootdir, "/") ? xhp->rootdir : "",
           ^~
initend.c:466:3: note: ‘snprintf’ output between 14 and 525 bytes into a destination of size 512
   snprintf(xhp->metadir, sizeof(xhp->metadir),
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       "%s/%s", strcmp(xhp->rootdir, "/") ? xhp->rootdir : "",
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       XBPS_META_PATH);
       ~~~~~~~~~~~~~~~
initend.c:473:7: error: ‘snprintf’ output may be truncated before the last format character [-Werror=format-truncation ]
       "%s/%s", strcmp(xhp->rootdir, "/") ? xhp->rootdir : "", buf);
       ^~~~~~~
initend.c:472:3: note: ‘snprintf’ output 2 or more bytes (assuming 513) into a destination of size 512
   snprintf(xhp->metadir, sizeof(xhp->metadir),
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       "%s/%s", strcmp(xhp->rootdir, "/") ? xhp->rootdir : "", buf);
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
```

It's basically warning about dangerous operations on strings. And as
far as I could tell, is a valid warning and not a false alarm!

This fix makes the concept of `XBPS_MAXPATH` lose a little bit of sense
as now it doesn't necessarily represent the max size of the paths used
by xbps, but instead the max allowed size of the path configured.

I think this change is ok, but I wasn't able to find any reference to
why it was chosen to be 512. POSIX mandates at least 256, so I'm not
breaking anything that wasn't broken already, and Linux seems to have
a maximum size of 4096, which is pretty safe.

Therefore, this changes should be harmless. I think.
2017-08-22 18:35:45 -04:00
Agustin Chiappe Berrini
be5277591f Fix compilation in ftp.c
When trying to compile the file ftp.c, I get errors related with
warnings that were marked to be reported as error.

This was the original message:

```
fetch/ftp.c:444:8: error: this statement may fall through [-Werror=implicit-fallthrough=]
   type = 'D';
   ~~~~~^~~~~
fetch/ftp.c:445:2: note: here
  case 'D':
  ^~~~
fetch/ftp.c: In function ‘ftp_request’:
fetch/ftp.c:342:3: error: missed loop optimization, the loop counter may overflow [-Werror=unsafe-loop-optimizations]
   for (i = 0; i <= len && i <= end - dst; ++i)
   ^~~
fetch/ftp.c:342:24: error: missed loop optimization, the loop counter may overflow [-Werror=unsafe-loop-optimizations]
   for (i = 0; i <= len && i <= end - dst; ++i)
               ~~~~~~~~~^~~~~~~~~~~~~~~~~
```
2017-08-22 18:03:32 -04:00
Leah Neukirchen
876f9f4a27 xbps-fbulk: use _DEFAULT_SOURCE, required for wait3 in glibc 2.16.
Also these guards need to be defined before including anything.
2017-08-07 16:08:15 +02:00
Michael Gehring
52d3077206 bin/xbps-checkvers: avoid infinite loops when checking reverts 2017-07-16 20:08:25 +00:00
Michael Gehring
a2aec39d74 lib/package_unpack.c: refuse to unpack to absolute paths 2017-07-13 17:17:12 +00:00
Michael Gehring
63596b5a06 xbps-remove.1: fix invalid escape 2017-07-11 04:30:23 +02:00
Michael Gehring
0886012d72 xbps-reconfigure.1: fix invalid escape 2017-07-11 04:30:03 +02:00
Michael Gehring
25418f98af xbps-query.1: fix invalid escape 2017-07-11 04:29:45 +02:00
Michael Gehring
a61fd5f8c1 xbps-pkgdb.1: fix invalid escape 2017-07-11 04:29:19 +02:00
Michael Gehring
b9656b1546 xbps-install.1: fix invalid escape 2017-07-11 04:28:57 +02:00
Michael Gehring
681acd08ef xbps-dgraph.1: fix invalid escape 2017-07-11 04:28:34 +02:00
Michael Gehring
ae3f5546bf xbps-checkvers.1: fix invalid escape 2017-07-11 04:28:13 +02:00
Michael Gehring
13a38fa6ba xbps-alternatives.1: fix invalid escape 2017-07-11 04:27:51 +02:00
Michael Gehring
cdb5bcdd0c xbps.d.5: fix invalid escape 2017-07-11 04:01:38 +02:00
Michael Gehring
4aae026615 lib/package_unpack.c: verify signed pkgver matches
$ARCH-repodata is currently not protected by a signature. While most of
the package metadata is also embedded into the .xbps files, which are
protected by a signature, xbps-install ignores it
(1670ff000d/lib/package_unpack.c (L123))
and relies entirely on $ARCH-repodata.

This enables anyone who is able to modify the $ARCH-repodata to
substitute packages. This patch adds a check that verifies the signed
pkgver matches the one in the repodata, so at least downgrades posing as
updates are detected.

This is an incomplete fix as the whole transaction is still set up with
the unsigned repodata and other issues surely exist. The real fix is
signing $ARCH-repodata.
2017-07-09 12:46:01 +00:00
Michael Gehring
5e4f445b90 bin/xbps-rindex: use xbps_file_hash_raw while signing
Fixes #243
2017-06-27 20:05:15 +02:00