-
Notifications
You must be signed in to change notification settings - Fork 32
/
NEWS
937 lines (669 loc) · 39.6 KB
/
NEWS
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
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
xbps-0.17 (???):
* Package metadata files and pkgdb plist are now stored uncompressed.
This improves performance when those files store large chunks of data.
* Fixed "packages on hold". Regression added in 0.16.2.
* xbps-repo(8): fixed crash in the 'search' target when the terminal has
been resized, reported by pancake.
* xbps-bin(8), xbps-repo(8): added a new flag -B to set default repository
to install packages, in case xbps.conf couldn't be found.
* xbps-create(8): a new utility to create XBPS binary packages; package
files must be installed to a directory prior to executing this utility.
* configure: if compiler supports PIE and RELRO, enable them by default.
* xbps-repo(8): the 'show-deps' target does not show the repository from
the matching target package, just the list of dependencies.
* xbps-repo(8): the 'search' target now shows which packages are currently
installed "[*]" or not installed "[-]".
* xbps-repo(8): a new target has been added: 'remove-obsoletes'. This removes
obsolete packages found in a local repository; obsoletes are packages not
registered in repository's index.
* configure: fixes for Ubuntu, which uses ld(1) --as-needed by default and
some function tests were failiing due to this.
* configure: added "--with-static" and if enabled, the static executables
will also be built and installed. By default it's disabled.
* xbps-repo(8): the 'genindex' target has been replaced by the 'index-add' and
'index-clean' targets. The 'index-add' expects a list of binary packages to
be added to repository's index:
$ xbps-repo index-add /path/to/repo/*.xbps
The 'index-clean' removes obsolete entries in repository's index:
$ xbps-repo index-clean /path/to/repo
xbps-0.16.5 (2012-07-14):
* xbps.conf: remove obsolete remote repositories.
* libxbps: extend the list of ignored symlinks in rootfs if they were found
as obsoletes at package upgrade time.
* libxbps: at package register time a new string object in pkgdb is added
"install-date" that records the package installation date with the following
strftime(3) format: "%F %R %Z".
* xbps-bin(8): the 'show' target now prints some objects from pkgdb if found:
"install-date" and "automatic-install".
xbps-0.16.4 (2012-07-10):
* Imported proplib 0.6.1 from http://code.google.com/p/portableproplib.
* libxbps: when finding obsolete files also match against sha256, not
just the filename. Also ignore symlinks found in rootfs to make
the system transition to /usr fully work.
xbps-0.16.3 (2012-07-04):
* libxbps: fixed a regression in 0.16.2.
xbps-0.16.2 (2012-07-04):
* libxbps: fixed 2 bugs while updating packages.
* libxbps: after removing a pkg the state cb was passing dangling pointers in
its pkgname and version members.
xbps-0.16.1 (2012-06-30):
* xbps-repo(8): fixed a regression in the 'genindex' target. It was looking
at wrong repository subdirectory when removing obsolete files.
This also fixes issue 24 from googlecode.
xbps-0.16 (2012-06-20):
* Added support for package conflicts. If any conflicting pkg has been found
in a transaction, xbps_transaction_prepare() will return EAGAIN and
the array object "conflicts" in transaction dictionary must be inspected
to know what conflicts have been found.
* Always require an underscore at package versions, if any provided
pkgver (i.e 'foo-1.0_1') does not contain an underscore the name/version
won't be detected for a string. That means that now any package can contain
any character in pkgname and all characters in version except hyphens ('-'),
and as bonus there's no need to make some tricks to perform installation
of exact package versions.
* xbps-bin(8): the 'install' target now can (re)install an exact package
version as specified on its arguments, i.e:
$ xbps-bin install foo-1.0_1
If that version is not available no other version will be installed.
* xbps-repo(8): 'genindex' target is now able to remove binary packages
when a greater version exists on the index.
* xbps-repo(8): 'sync' target now is able to sync just a single repository
by passing the repository URI as argument, i.e:
$ xbps-repo sync http://xbps.mirror.org/repo
* xbps-repo(8): 'pkg-list' target now expects the repository URI than
the index number, i.e:
$ xbps-repo pkg-list http://xbps.mirror.org/repo
* xbps-bin(8): -n flag (dry-run mode) now also prints the pkg architecture
as last component and if the transaction reason supports it.
* Repository index format 1.5. The files are now named properly:
index.plist for XBPS_PKGINDEX and index-files.plist for XBPS_PKGINDEX_FILES.
The difference in XBPS_PKGINDEX is that now a single plist file can store
all metadata from any package with any architecture. XBPS_PKGINDEX_FILES
has been modified to speed up 'xbps-repo find-files'. That means
that in xbps.conf now you'd only have to use the directory where the
index.plist is stored, i.e:
/path/to/my/repo <- 1st repository
|-- i686
|-- index-files.plist
|-- index.plist
|-- noarch
|-- nonfree <- 2nd repository
| |-- i686
| |-- index-files.plist
| |-- index.plist
| |-- noarch
| `-- x86_64
`-- x86_64
Any other directory not named "noarch" or "$(uname -m)" must be specified
as another different repository, such case is "nonfree" or any other with
unmatched names.
* xbps-bin(8): new flag: -S which syncs rpool indexes before executing
the "dist-upgrade", "install" or "update" targets.
* libxbps: renamed xbps_repository_pool_xxx to xbps_rpool_xxx
(API/ABI incompat changes).
* libxbps: extended rpool with a new function:
xbps_repository_pool_find_virtualpkg_conf. This function will match
a virtual package as was specified in configuration file. That means
that the find_xxx functions now do exactly what the API documents.
While resolving packages, the order to look for them is the following:
find_virtualpkg_conf -> find_pkg -> find_virtualpkg
If no virtual pkg from conf matched, look for a real pkg, otherwise
use the first virtual package from rpool that matches our pattern.
* libxbps: introduce the concept of "soft replace". When a package
contains that boolean object set in pkg's metadata props.plist,
some steps will be skipped at remove time for the package being
replaced: its files won't be removed and the post action in REMOVE
file won't be executed.
* libxbps: change the order in which package files are removed:
current: files, conf_files, links, directories.
previous: links, files, conf_files, directories.
This is required to avoid removing working symlinks, which could be
owned by another installed package. Now only dangling symlinks are now
removed.
* libxbps: when removing package files and if metadata files.plist wasn't
found, do not error out and rather just continue until the package is
fully removed.
* xbps-bin(8): renamed "autoupdate" target to "dist-upgrade" and
"autoremove" to "remove-orphans". For compatibility with previous
versions the old targets are still kept, but will be removed in future
releases.
* Added support to put packages "on hold". Packages on hold
won't be updated by system upgrades even if there is a newer version.
The configuration string list "PackagesOnHold" in xbps.conf expects
a list of package names.
* xbps-bin(8): miscellaneous cosmetic improvements while unpacking
package files and add a counter for the 'check all' target.
* xbps-repo(8): new target: 'clean'. This removes obsolete binpkgs
from cachedir, either because the binpkg is not available in repository
pool anymore or because its sha256 hash doesn't match with the
one matched in repository index file.
* Miscellanous API cleanups (API/ABI incompat changes).
xbps-0.15 (2012-04-06):
* xbps-bin(8): a new test for the 'check' target to find stale entries
in 'requiredby' package metadata object from pkgdb.
* When reinstalling existing packages (xbps-bin -f install), make sure
to remove previous entry in the "requiredby" pkgdb's array object.
* When sorting required dependencies make sure that a pkg with
required version is taken into account, not just the first
one matching its pkgname.
* When resolving required dependencies also find the best pkg
available in repository pool. Thanks to dave for testing!
* Started a test suite for libxbps. Tests are written for Kyua
(http://code.google.com/p/kyua) and can be built and installed
with the --with-tests configure option, by default will be installed
to EPREFIX/tests but can be overriden with --testsdir. ATF 0.15
(part of Kyua) is required to build the test suite.
* Enabled assertions by default even if --debug not enabled. We want
to enforce correct behaviour even in release builds.
* Fixed issue 22: "Updating a package doesn't set correct perms when
file not modified". When extracting package files, always set
permissions from binary package, even if file has not been modified.
xbps-0.14 (2012-02-28):
* Fixed 'xbps-bin reconfigure all' (regression added in 0.13).
* While resolving dependencies check if required dependency is matched
with any virtual package already added in transaction, on match use it.
* Only accept binary packages compressed in gzip, bzip2 and xz formats.
Profiling tests showed that libarchive wasted a considerable amount of
time checking if archive was compressed in zip format.
* xbps-bin(8)/xbps-repo(8): redirect some more warnings/errors to stderr.
xbps-0.13.0 (2012-02-20):
* libxbps: skip checking for obsolete files if a package in a transaction
replaces another one that is going to be updated. In such cases that means
new package now owns some files previously owned by the package to be
updated, therefore the updated package must not check for obsolete files.
* xbps-repo(8): the `show', `show-deps' and `show-files' targets now accept
package patterns, i.e "xbps-repo show 'foo>=2.0'". If only a `pkgname`
has been specified, the newest package available in repositories will be
shown.
* xbps-repo(8): print meaningful help usage, added -h option.
* xbps-bin(8): print a meaningful help usage, added -h option.
* libxbps: fixed xbps_transaction_install_pkg return value if package
is already installed: this must be EEXIST not ENODEV.
xbps-0.12.0 (2012-02-06):
* xbps-bin: new dry-run mode (-n) to show the actions that would
be executed in a transaction. This mode takes effect in the
autoremove, autoupdate, install, remove and update targets. Example:
$ xbps-bin -n install kernel-snapshot
<pkgname> <install|remove|update|configure> <version> <repository> <filename>
$
The format is "%s %s %s[ %s %s]\n" for `pkgname', `action', `version',
`repository' and `filename' (optional).
* xbps-bin: the install target will now install the best package
version available in repository pool if just package name has
been specified, otherwise the first repository matching the
specified pattern wins, i.e:
$ xbps-bin install foo 'blah>=1.2<2.0'
* Massive pkgdb API rototill. The xbps-uhelper command gained support
for the 'updatepkgdb' target which will migrate old pkgdb
format to the new 0.12 format. ALERT: make sure to execute
"xbps-uhelper -r <rootdir> updatepkgdb" to update to the new 0.12
pkgdb format before installing/removing/updating any package.
* Repository index 1.4: the file is now externalized to a proplib array
and has been renamed to "rindex.plist" to not break compatibility
with previous XBPS versions. This helps in simplifying the API
implementation substantially.
* Added a pkg-config file to simplify writing code with libxbps.
* libxbps: improved support for finding newest package versions available
in repository pool.
* libxbps: added support for finding exact package name/version matches
in repository pool.
* Fixed registering repositories with trailing '/' chars in
configuration file: xbps.conf.
* xbps-repo(8): the 'genindex' target now creates a plist file to cache
all files provided by binary packages in a repository. This makes
the 'find-files' target marginally faster, because this avoids having
to fetch data from network in remote repositories. The new file
'index-files.plist' will be downloaded every time the 'sync' target
is issued but only iff the file has been modified.
This fixes Issue 21 "`xbps-repo find-files` is awfully slow".
* It's now possible to fetch files thru xbps_fetch_file() from HTTP
servers that don't set the Content-Length header. This fixes issue 19:
"xbps-src cannot fetch source with unknown Content-Length" reported
by ojab.
* Renamed some options in xbps.conf to not have dashes, such as:
fetch-timeout-connection -> FetchTimeoutConnection
fetch-cache-connections-host -> FetchCacheConnections
fetch-cache-connections-per-host -> FetchCacheConnectionsPerHost
* Implemented memory caching for regpkgdb and configurable transaction
flushing. Can be changed in xbps.conf with "TransactionFrequencyFlusing".
By default set to 5. That means that every 5 packages processed in
a transaction there will be a regpkgdb plist flush to disk.
Setting it to 0 enables automatic mode which will only flush in
two required points. Setting it to 1 makes the behaviour used in XBPS<=0.11,
which flushed it on every package.
That feature provides a 25% (and in some cases even more!) of performance
when executing a transaction.
* Merged purge code into remove. It wasn't necessary to have this splitted,
so it now has been merged into xbps_remove_pkg(). That also means that
'-p' flag in xbps-bin(8) and xbps-repo(8) doesn't exist anymore.
* xbps-repo(8): the 'find-files' target accepts multiple patterns, such as:
$ xbps-repo find-files /bin/cat '/bin/f*' ...
* xbps-bin(8): the 'find-files' target accepts multiple patterns, such as:
$ xbps-bin find-files /bin/cat '/bin/f*' ...
* xbps-repo(8): the 'search' target accepts multiple patterns, such as:
$ xbps-repo search 'foo-[0-9]*' '*blah*' ...
* libxbps: more paranoid type checking and allocation results, to make
sure that out of memory conditions are handled gracefully.
xbps-0.11.0 (2011-12-20):
* xbps-bin(8): it is possible now to reinstall a package even if it's
installed with the '-f' option. If reinstalling the same package version,
only unexistent files or files not matching its hash will be extracted.
* While unpacking a binary package, always check that file to be extracted
exists on filesystem, if true and its hash is matched, skip extraction.
* While installing a package always preserve configuration files if they
exist, but if hash don't match rename configuration files to
<filename>.old.
* New shared configuration file via libconfuse that replaces the
plist configuration files: xbps.conf. That means that libxbps
now requires confuse >= 2.7 available at
http://www.nongnu.org/confuse/.
* Support for syslog logging common operations, such as install, update,
remove and purge via LOG_NOTICE, and errors with LOG_ERR.
By default it's always enabled, can be disabled thru the conf file.
* xbps-repo(8): new target: pkg-list [index]. This target will list all
packages from repository with index [index]. If optional argument
[index] (decimal) not set, all repositories will be used.
* libxbps: when registering new packages, existing entries in
requiredby matching the same pkgname/version touple are now
simply skipped.
* Repositories with missing index file are now simply ignored.
It's expected that user executes 'xbps-repo sync' to fetch the
index for all remote repositories specified in configuration file.
* Faster binary package unpacking. Only files and symlinks are now
extracted from binary packages, thus directories are not extracted
anymore. The package builder is responsible to create required
directories where appropiate and set correct permissions.
While being here, some stuff is skipped now if a package uses the
"preserve" keyword or package is being installed, resulting in a
faster operation.
* Implemented "New repository scheme and configuration file" from issue 16.
The plist index file has been renamed to "index.plist", version bumped
to 1.3. The configuration file (repositories.plist) now expect the full
path to the directory storing the index.plist file. This will allow us
to use other directories (such as non-free, or alike) for such purpose.
* libxbps: improve xbps_purge_pkg() in case that the process was
unexpectedly interrupted, do not error out unless the unregister
phase returns an error value.
* libxbps: when unpacking a package that replaced another package
due to virtual packages, preserve its configuration files if
they already existed.
* xbps-bin(8)/xbps-repo(8): new flag '-o' (option). This can be used
in the 'show' target to print only a set of objects stored in package's
properties dictionary, example:
$ xbps-bin -olicense show xbps
Simplified BSD
$ xbps-bin -oversion,build_date show xbps
0.10.1
Wednesday 26 October, 2011, 14:37:31 UTC
$
* libxbpps: when fetching new pkg-index.plist from a repository,
make sure that it's a plist file and can be internalized; otherwise
remove downloaded file and return error.
* xbps-bin(8): new test for the 'check' target to fix missing
entries in requiredby array, i.e reverse dependencies in
the package database plist.
* xbps-bin(8): the 'check' target now works virtual packages.
* libxbps: failed to properly match installed virtualpkgs that were
dependencies in a transaction, therefore resulting in real packages
being reinstalled and replacing installed virtual packages.
xbps-0.10.1 (2011-10-26):
* libxbps: fixed multiple free(3) calls in error paths (via closedir(3))
when some virtualpkg plist file couldn't be internalized.
* xbps-bin(8): 'remove' with recursive flag (-R) now removes first
the specified packages and puts its automatic dependencies at the
tail of the array.
* libxbps: xbps_pkgpattern_{name,version} now return expected
pkgname/version if pattern is a shell wildcard pattern (fnmatch(3)).
* libxbps: removed csh alternate code from the NetBSD's match code.
We weren't using this code anyway and this only slowed down
xbps_pkgpattern_match().
xbps-0.10.0 (2011-10-21):
* Fixed issue 11 "xbps-bin fails to update properly some pkgs".
http://code.google.com/p/xbps/issues/detail?id=11
* xbps-bin(8): the 'check' target now is able to detect if a package
was installed manually and other packages are currently depending
on it and change its mode to "automatic", i.e as dependency of those
packages.
* xbps-bin(8), xbps-repo(8): the -C flag now expects a path to a
directory where the configuration files (conf.plist and
repositories.plist) are stored.
* New configuration scheme for virtual packages as defined in
http://code.google.com/p/xbps/issues/detail?id=12
XBPS now reads all plist files in PREFIX/etc/xbps/virtualpkg.d.wants
directory with settings for the wanted virtual packages.
* New configuration scheme as defined in
http://code.google.com/p/xbps/issues/detail?id=12
A directory to store XBPS configuration files is now used, by default
set to PREFIX/etc/xbps. Configuration options are now set via
conf.plist, and repositories in repositories.plist.
* It is possible now to reinstall packages that provide virtual packages
and put it back the original package, such as jpeg <-> libjpeg-turbo
multiple times, without loosing important objects set when the
original package was installed, i.e reverse dependencies and
automatic installation. This is a requisite to really make a system
that can be fully customizable and restored back to its original
state with the virtual packages feature.
* Fixed issue 10 "HTTP repositories in non standard HTTP port currently segfault".
You can now use any HTTP server in non standard ports, such as:
http://yourhost:8080/your/repo
* xbps-bin(8): the 'check' target now detects broken symlinks and marks
them as critical errors.
* libxbps: when updating packages, only files that have been modified
(compared to current installed file) are now unpacked. This should
save some writes to storage and make the process a bit smoother as well.
* Moved install transaction code to libxbps. The API has been extended
with xbps_transaction_commit() which expects the transaction dictionary
as its argument. This function will execute transaction tasks, like
removing, updating, installing and configuring packages as defined
in the transaction dictionary.
* The 'cachedir' option in configuration file now can be changed to
be relative to the rootdir if the first character is not '/'. The
-c flag in xbps-bin(8) still expects a full path and if set, overrides
the setting in configuration file.
* xbps-bin(8): the 'show', 'show-deps' and 'show-revdeps' targets now
work with virtual packages.
* libxbps: fixed NetBSD's dewey matching code to properly identify
that a version X.Y.Z should be greater than X.Y_Z.
* libxbps: revamped virtual package handling. The public API find
functions (xbps_find_pkg_*) don't know anything about virtual packages.
To find virtual packages the xbps_find_virtualpkg_* functions must be
used instead of the "classic" ones.
* libxbps: the xbps_find_foo_in_array functions have been renamed
to xbps_match_foo_in_array because its task is only matching against
the provided package name, package pattern or string.
xbps-0.9.1 (2011-07-15):
* libxbps: xbps_repository_pool no longer loops forever if a package
index plist file cannot be fetched due to network problems, or
if the file is not available anymore; the repository will be
ignored.
* xbps-repo(8): the 'genindex' failed to register in pkg-index
packages less than on equal than any other package providing the
same package name. Ignore packages providing virtual packages.
* xbps-repo(8): the 'genindex' target now removes entries in existent
package index files for unexistent packages that were previously
registered (removed, not enough permissions, etc).
* xbps-repo(8): the 'genindex' target creates required directories
in local repositories if it's necessary.
* xbps-repo(8): the 'search' target now matches patterns in
case insensitive mode.
* A bug has been fixed while updating a package and another package
providing a virtual package with a greater version was available
in repositories. Only accept this if the virtual package is explicitly
enabled in the "virtual-packages" section in the configuration file.
xbps-0.9.0 (2011-07-08):
* configure doesn't require a zlib package with a pkg-config file, to
workaround some distribution that don't provide it (hi Ubuntu!). Rather
it now checks for a required function. Fixes issue 6 in googlecode.
* The configuration file now accepts a new option "fetch-timeout-connection",
to specify the limit to wait (in seconds) of timed out connections when
fetching files. It's set to 30 in configuration file, and if not set it
also defaults to 30 seconds.
* The configuration file now accepts new options to change rootdir
(same than -r in xbps-bin(8)), cachedir (same than -c in xbps-bin(8))
and fetching cache connection limits. If settings are specified via
the flags -r and -c in xbps-bin(8)/xbps-repo(8), they are prefered
over the ones in the configuration file.
* Fixed some bugs with virtual packages, to not adding duplicate package
dictionaries in the transaction dictionary.
* xbps-bin(8)/xbps-repo(8): the 'show-files' target now prints the target
file on symlinks, i.e: "/sbin/foo -> /sbin/blah".
* Changed the package pattern match code to the one available on NetBSD.
It's much better and provides more alternative pattern matching options.
* A new configuration file in plist format to specify repositories and
virtual packages has been created, defaults to "/etc/xbps-conf.plist".
That means that you no longer need to register/unregister repositories;
just add your favourite local or remote repository and the first time
XBPS needs to access the pkg-index file it will be downloaded.
More options and properties will be added to the configuration file in
the future. By default we use the official public remote repository,
and "dcron" package for a cron daemon package.
The ABI/API is not compatible anymore with previous versions, you've
been advised :-)
* xbps-bin(8): the 'check' target now also checks for modified symlinks,
and warns if any of them has been modified. For this to work, the package
metadata files.plist should contain the 'target' object in the 'links'
array (created automatically by xbps-src since 20110531).
* Improved repository package index format (v1.2). The index now contains all
package objects, so that it's not necessary to fetch info from binpkgs.
The file will also be a bit bigger, but not to worry about.
xbps-0.8.1 (2011-05-27):
* xbps-bin(8)/xbps-repo(8): more meaningful messages when a package couldn't
be found in the show, show-deps and show-files targets, rather than exiting
silently with only the error return value.
* Added three new objects for the package props.plist metadata file to
specify homepage, license and build date.
* Minor improvements to the generation of API documentation.
xbps-0.8.0 (2011-05-24):
* xbps-bin(8): added -A and -M options, for setting package install reason
to automatic or manual. Obviously both cannot be used togeter.
* xbps-{bin,repo}(8): -c (cachedir) argument now is an absolute path and
not relative to the root directory.
* Fixed finally when a package should replace an installed package, but
at the same time the package to be replaced also needs to be updated
in the transaction. A real example:
- sg3_utils-1.28 is currently installed.
- Installed package udisks-1.0.2_1 depends on sg3_utils-1.28.
- sg3_utils-1.28 has been splitted into libsgutils for 1.31,
and libsgutils-1.31 has "replaces=sg3_utils<1.31".
- udisks-1.0.2_2 depends on libsgutils-1.31.
So now the old sg3_utils-1.28 package will be marked in its transaction
object as "remove" and the new sg3_utils-1.31 package as "update".
Therefore both packages (sg3_utils old/new) will be in the transaction
but one will be removed and the other one updated.
* Fixed a bug that made all registered repositories to fail when the first
one couldn't be internalized in xbps_repository_pool_init().
* Added the concept of package properties in the API. At this moment
only one property is fully working, "virtual". When xbps-bin(8)
sets this property for a package, its virtual package list will be
set in the XBPS_REGPKGDB plist in a package dictionary and the matching
logic will always prefer its virtual packages over the real ones.
You can do wonderful things with this, like always using development
package versions, or simply customize what packages you want to
install rather than the default ones. As a real example, you can now
use the 'xbps-devel' package rather than the stable package version
'xbps' before installing the system and package dependencies will
still be resolved:
"$ xbps-bin set-prop virtual xbps-devel"
"$ xbps-bin install xbps-base-system"
Only packages that have the "provides" object are valid for the
"virtual" property.
* Moved the "replaces" handling logic into the API. But instead of
removing any package, the packages that should be replaced are
added into the transaction dictionary and marked as "remove".
The frontend is responsible to install, update, configure and remove
all packages by using the properties set in the transaction dictionary.
* xbps-dgraph: now parses the "provides" object in the package properties
metadata plist file for packages providing virtual packages.
* xbps-bin(8): added -R option for the "remove" target, to recursively
remove packages that were installed automatically by the package(s)
that we want to remove, and no other package currently depends on.
This is much like the remove and autoremove targets together, i.e
"xbps-bin -yp remove foo && xbps-bin -yp autoremove".
* xbps-bin(8): added -D option to only show the URLs to download the binary
packages required by the "install", "update" and "autoupdate" targets.
* xbps-bin(8): make the list target (without arguments) only show
packages that are fully installed. Previously packages in unpacked
state were also shown.
* Added support for virtual packages. A virtual package is one that doesn't
exist in the repository, but other packages can provide it. A new array
in the package properties dictionary has been added to specify which
virtual packages the package supports. As an example, the `rsyslog'
package provides the virtual package `syslog-daemon-0'. Other packages
can depend in `syslog-daemon>=0' and `rsyslog' will satisfy the dependency.
* Merged the `progress_callback' branch that makes possible to specify a
function callback to update progress while unpacking binary packages
and while fetching files. xbps-bin(8) now lists current extract files
with its size in bytes if -v flag is set.
* Improved package dependency resolution in repositories by using a new
function, xbps_repository_pool_find_pkg() that returns a package dictionary
found in the first repository registered in the pool. It can also be used
to find the newest version found in all registered repositories.
* Improved package dependency sorting algorithm that uses less memory,
it is 60% faster approximately and as bonus sorts all packages in the way
they should be (previously the sorting was a bit different for packages
with no run-time dependencies).
* Many structural changes in the API. Made some stuff private and changed
some function arguments in the API, the ABI is not compatible anymore with
previous versions... anyway you shouldn't be using libxbps just yet.
The API documentation has been modified to stay in sync with reality.
xbps-0.7.3 (2011-01-16):
* Fixed a bug that made libxbps fail to detect properly configuration files.
This made all updates in configuration files to be lost.
* It is now possible to properly build against an external portable proplib
(with pkg-config support) and libfetch.
* Enabled a bunch of compiler warnings in the configure script (if supported
by the compiler), and made symbol visibility dependent of configure tests.
* Added --silent argument to the configure script, hiding compilation
details in the build process (disabled by default).
xbps-0.7.2 (2010-12-28):
* Fixed some memleaks in libxbps and its clients, found by valgrind.
xbps-0.7.1 (2010-12-23):
* xbps-dgraph: fixed small build error on x86 shown in buildbot tests.
* libxbps: xbps_repository_pool_init(): don't loop forever if repository
pkg-index.plist files cannot be internalized.
* libxbps: xbps_fetch_file(): set a 30 seconds timeout for transfers.
* xbps-repo(8): fixed the 'genindex' target for the API changes in 0.7.0.
* xbps-uhelper: fixed the 'unregister' target for the API changes in 0.7.0.
xbps-0.7.0 (2010-12-15):
* xbps-repo(8): implemented the 'find-files' target to print which packages
own a file, link, directory, etc. Analogue to the one implemented in
xbps-bin(8). Works for local and remote repository, fetching info on-the-fly.
* Fixed a typo in the configure script that broke detection of strlcat(),
reported and patch provided by Min Sik Kim in issue 2.
* xbps-bin(8): added -F flag for the remove target. Unless it's set,
packages that are dependencies of other installed packages won't be removed.
This flag overrides this behaviour and forces the package removal.
* xbps-{bin,repo}(8): indent uniformly all lines while listing packages
in xbps-bin or while searching for packages in xbps-repo.
* xbps-repo(8): while searching for packages also try to find strings
in the short description object.
* xbps-{bin,repo}(8): added -d arg to enable debugging output to stderr.
* While updating packages, obsolete directories are also removed when
necessary. This helped to remove some empty dirs for python 2.6 > 2.7
update, just to mention a real example.
* Cleaned up the API. Still not finished and there's a long way to have this
finished and ready for public consumption.
* xbps-dgraph: new utility to generate graphviz' dot(1) graphs for package
metadata properties, such as dependencies, reverse dependencies, etc.
Extracts the info from installed package metadata plist files.
* Performance improvements in libxbps and all utilities, by avoiding
unnecessary access(2) and chdir(2) calls while executing the
INSTALL/REMOVE scripts at pre/post (de)install time.
* Fixed some memleaks on libxbps found while working on the xbps-dgraph
utility.
xbps-0.6.2 (2010-10-31):
* libxbps: xbps_repository_unregister(): in remote repositories, also
remove the pkg index file and its directory.
* libxbps: xbps_get_pkg_index_plist(): fixed a memleak.
* xbps-bin(8): modify the 'list' target to accept an optional argument to
list packages in the specified state, so that you can list packages that
need to be purged, configured and broken (will be used in the future).
* xbps-bin(8): added a new target 'find-files' to find which installed
package(s) own a file. Exact matches "/bin/mount" or patterns
"/usr/lib/libb[ao]b\*" can be specified.
* When updating a package and removing obsolete files, don't forget to
remove those directories if they were empty.
xbps-0.6.1 (2010-10-23):
* When replacing a package that is going to be updated in the transaction
do not remove it, just overwrite its files and continue. The updated
package will find that old files didn't match the SHA256 hash and will
skip them. This solves the issue of new package updates requiring new
dependencies with files that were previously stored in the old version.
For example gtk+-2.20 containing gdk-pixbuf, and gtk+-2.22 requiring
gdk-pixbuf externally.
xbps-0.6.0 (2010-06-03):
* Synced libfetch code with NetBSD pkgsrc, updated to 2.31.
* libxbps: improved xbps_get_file_hash() to mmap(2) rather than read(2)
the file we have to process. With mmap'ed files the hash can be
processed 5x faster than before, or even more in some cases.
* libxbps: switch to OpenSSL SHA256 implementation and remove the one
previously used. It's faster and OpenSSL is required for libfetch so
there is not point in using it.
* Added strlcpy() and strlcat() from OpenBSD. Use them if they weren't
found by the configure script on the system.
* Added a configure script that emulates GNU autoconf but simplified, to
simplify customization for build options, flags, etc.
xbps-0.5.2.2 (2010-05-18):
* libxbps: do not forget to reset a variable to 0 when removing obsolete files
that are unexistent or its hash didn't match.
xbps-0.5.2.1 (2010-05-18):
* Due to human error, last fix in 0.5.2 was completely wrong and the
INSTALL/REMOVE scripts were simply empty so ENOENT was returned, clearly
this is expected and shouldn't be ignored.
xbps-0.5.2 (2010-05-18):
* libxbps: while running INSTALL/REMOVE scripts, do not fail if a script
returns ENOENT but the script exists; that means the script did not match
the expected action on its switch statement and the fact can be simply
ignored.
* libxbps: while upgrading packages and searching for obsolete files,
do not remove the files that did not match previous SHA256 hash. Also,
only remove obsolete dangling symlinks.
* xbps-repo(8): fixed the 'genindex' target to not return error if any
package is already registered in the index.
* xbps-repo(8): improved the 'search' target to also match substrings in
package/version tuples.
xbps-0.5.1 (2010-05-12):
* Fixed build issues in RHEL5, Ubuntu and others distributions.
* libxbps: changed the epoch component in version strings to the ':'
character to be differentiated from '-' in pkgname, and '_' in revision.
* xbps-bin(8): added a new target 'show-orphans' that list all package
orphans currently installed.
* Removed asciidoc build dependency, simply use the troff manpages.
xbps-0.5.0 (2010-05-01):
* xbps-repo(8): fixed the 'search' target to also match patterns against
its description, and not only from the package/version tuple.
* Cleaned up the code by using the LLVM's clang static analyzer, found
two possible NULL pointer dereferences in error branches and dead code.
* xbps-bin(8): added new flag '-p' for the 'remove' and 'autoremove'
targets, to also purge the package(s) after successful removal.
* xbps-repo(8): print a warning when registering a repository that has
been already added previously.
* Add proplib-0.4.1 source and use it in XBPS. This is to avoid
an external dependency, so that we depend on the features of the
internal library. This also means that proplib is not required anymore.
* Added support to read/write gzip compressed plists by default, thanks
to proplib-0.4 that gained new functionality.
xbps-0.4.1 (2010-02-28):
* xbps-bin(8): fixed the install target to work with package names containing
multiple '-', thus resulting in incorrect package name.
[ https://bugs.launchpad.net/bugs/528212 ]
* xbps-bin(8): fixed printing of incorrect message for packages containing
the 'preserve' object in its props dictionary.
[ https://bugs.launchpad.net/xbps/bugs/528216 ]
xbps-0.4 (2010-02-01):
* libxbps, xbps-bin(8), xbps-repo(8): redirect all warning and error
messages to stderr.
* libxbps: changes xbps_yesno() and xbps_noyes() to only accept "yes" or "no"
(case insensitive) answers rather than 'y' or 'n', to avoid mistaken answers.
* xbps-repo(8): added support to the 'search' target to find exact matches,
i.e 'xbps-repo search bash'.
* xbps-bin(8) added support to the 'install', 'remove' and 'update'
targets to accept any arbitrary number of package names, i.e
"xbps-bin install foo blah baz".
See https://blueprints.launchpad.net/xbps/+spec/arbitrary-pkgname-args
* xbps-bin(8): added support to the 'install' and 'update' targets to
accept package patterns, i.e "xbps-bin install 'foo<=3.0'.
See https://blueprints.launchpad.net/xbps/+spec/install-pkg-by-pkgmatch
* libxbps: fixed some bugs while upgrading essential packages when new package
didn't have an INSTALL or REMOVE script and old package had them.
* libxbps: fixed some memleaks found by cppcheck and valgrind.
* Makefiles reworked to support parallel builds.
* libxbps: many exported functions to the API are now internal and not
exported, because they were only used internally. The API is still not
finished and may be changed without notice.
* libxbps: be more strict finding required metadata plist files in binary
packages. Now the code checks for the two required plist files to be at
index <= 4 and doesn't write any entry to storage until they aren't found.
* Added doxygen documentation for the API, enabled with BUILD_API_DOCS.
* libxbps: synced libfetch code with NetBSD's pkgsrc, updated to 2.30.
* xbps-bin(8): when downloading binary packages, it now sets default
libfetch cache connection limits, thus reusing connections to the same host.
* xbps-uhelper: the 'fetch' target now accepts an arbitrary number of
arguments, and sets default libfetch cache connection limits.
* xbps-bin(8): enable -f option for the 'purge' and 'remove' targets.
If set, files will be removed even if its hash doesn't match for the
'remove' target, and configuration files for the 'purge' target.
* libxbps: if updating a package, always overwrite files while unpacking;
compare old and new files to remove obsoletes if necessary. This makes
the "essential" object in package dictionary unnecessary, because all
packages are treated as they were essential.