Patrick Uiterwijk [Mon, 26 Sep 2016 12:48:31 +0000 (12:48 +0000)]
Add test to make sure that set_record overrides the current record
Signed-off-by: Patrick Uiterwijk <puiterwijk@redhat.com>
Patrick Uiterwijk [Mon, 26 Sep 2016 12:45:25 +0000 (12:45 +0000)]
Make set_record act like a setter
This will make sure that when set_record is called, all existing
records of the same type are removed.
It makes no sense to have multiple records of the same type,
and it actively breaks libhifs checksum validation.
Signed-off-by: Patrick Uiterwijk <puiterwijk@redhat.com>
Tomas Mlcoch [Thu, 8 Sep 2016 07:48:18 +0000 (09:48 +0200)]
Update cleanup script to remove also packages for Python 3
Tomas Mlcoch [Thu, 8 Sep 2016 07:45:38 +0000 (09:45 +0200)]
cr_lock_repo: Fix double free (RhBz: 1355720)
Tomas Mlcoch [Fri, 19 Aug 2016 12:59:26 +0000 (14:59 +0200)]
cr_lock_repo: Fix segfault caused by freed tmp_repodata_dir variable
Tomas Mlcoch [Wed, 4 May 2016 05:59:23 +0000 (07:59 +0200)]
Merge pull request #55 from sspans/sspans-allow-single
Allow single repos in mergerepo_c
Tomas Mlcoch [Tue, 3 May 2016 14:53:45 +0000 (16:53 +0200)]
Merge pull request #59 from M0ses/disabled_python
added switch to turn of python support
Frank Schreiner [Thu, 14 Apr 2016 10:19:18 +0000 (12:19 +0200)]
added switch to turn of python support
Tomas Mlcoch [Mon, 11 Apr 2016 10:08:01 +0000 (12:08 +0200)]
Update AUTHORS
Tomas Mlcoch [Mon, 11 Apr 2016 09:07:43 +0000 (11:07 +0200)]
Merge pull request #56 from rpm-software-management/split
Add --split option
Tomas Mlcoch [Mon, 11 Apr 2016 08:56:50 +0000 (10:56 +0200)]
Refactor --split option
Frank Schreiner [Wed, 6 Apr 2016 23:03:39 +0000 (23:03 +0000)]
just cleanup to be closer to original code
Frank Schreiner [Wed, 6 Apr 2016 22:38:41 +0000 (22:38 +0000)]
optimized memory usage
Frank Schreiner [Tue, 5 Apr 2016 16:39:01 +0000 (16:39 +0000)]
fixed memory leaks while '--update'
Frank Schreiner [Tue, 5 Apr 2016 14:47:29 +0000 (14:47 +0000)]
fixed problem with baseurl while '--update'
Frank Schreiner [Mon, 4 Apr 2016 20:41:32 +0000 (20:41 +0000)]
check given directories in split mode
Frank Schreiner [Fri, 1 Apr 2016 07:14:45 +0000 (07:14 +0000)]
Merge branch 'split_option' of github.com:M0ses/createrepo_c into split_option
Frank Schreiner [Fri, 1 Apr 2016 07:14:26 +0000 (07:14 +0000)]
changed order of arguments for load_rpm (err last arg now)
Frank Schreiner [Thu, 31 Mar 2016 04:30:03 +0000 (06:30 +0200)]
cli options description now match man page description
Frank Schreiner [Wed, 30 Mar 2016 13:50:36 +0000 (15:50 +0200)]
fixed option description and added split option to man page
Sten Spans [Thu, 24 Mar 2016 09:47:16 +0000 (10:47 +0100)]
Update mergerepo_c.c
Frank Schreiner [Thu, 24 Mar 2016 09:22:22 +0000 (09:22 +0000)]
fixed size of minimal string while checking base url
Frank Schreiner [Tue, 22 Mar 2016 16:47:49 +0000 (16:47 +0000)]
added patch from mls
Frank Schreiner [Fri, 18 Mar 2016 06:32:20 +0000 (06:32 +0000)]
location_base now set to 'media://' if no -u option set
Frank Schreiner [Wed, 16 Mar 2016 22:10:47 +0000 (22:10 +0000)]
made handling of media:// similar to python version
Frank Schreiner [Wed, 16 Mar 2016 20:15:28 +0000 (20:15 +0000)]
improved handling of package_count - working with pointer now
Frank Schreiner [Wed, 16 Mar 2016 13:44:57 +0000 (13:44 +0000)]
cleanup
Frank Schreiner [Wed, 16 Mar 2016 13:30:54 +0000 (13:30 +0000)]
added media_id and unique package_count
Frank Schreiner [Tue, 15 Mar 2016 14:08:28 +0000 (14:08 +0000)]
included loop
Frank Schreiner [Tue, 15 Mar 2016 10:49:04 +0000 (10:49 +0000)]
added '--split' to command line options
Tomas Mlcoch [Mon, 14 Mar 2016 12:34:44 +0000 (13:34 +0100)]
Support for threaded XZ encoding (Issue #53)
Added new CMAKE (compile-time) option ``-DENABLE_THREADED_XZ_ENCODER=ON``
which enable use of threaded ``lzma_stream_encoder_mt`` encoder instead
of single-threaded ``lzma_easy_encoder``.
Note: This option is disabled by default because Createrepo_c
parallelize a lot of tasks (including compression) by default, this
only adds extra threads on XZ library level which causes thread bloat
and doesn't bring any performance boost for most use-cases.
On regular hardware (e.g. less-or-equal 4 cores) this option may even
cause degradation of performance.
Threaded decoding isn't supported yet as it isn't supported
in the xz library [1].
[1] http://comments.gmane.org/gmane.comp.compression.xz.devel/225
Signed-off-by: Tomas Mlcoch <tmlcoch@redhat.com>
Tomas Mlcoch [Fri, 11 Mar 2016 11:36:57 +0000 (12:36 +0100)]
List enabled features in output for --version arg
This patch adds use of cr_version_string_with_features()
when --version info output is printed to stdout
and when version string is printed into verbose log.
This will help with debuging issues caused by a specific
feature enabled during compilation time.
Signed-off-by: Tomas Mlcoch <tmlcoch@redhat.com>
Tomas Mlcoch [Fri, 11 Mar 2016 11:23:45 +0000 (12:23 +0100)]
Misc: Add cr_version_string_with_features() function
This function returns a static string which contains
version of createrepo_c library and list of features
which were enabled during compilation time.
Currently there are only two features:
"DeltaRPM" which means that createrepo_c lib was compiled
with support for generation of Delta RPMS.
"LegacyWeakdeps" which means that createrepo_c was compiled
with support for legacy weakdeps which are (were?) used in
OpenSuse and related distros.
Example string:
"0.10.0 (Features: DeltaRPM )"
Signed-off-by: Tomas Mlcoch <tmlcoch@redhat.com>
Tomas Mlcoch [Fri, 11 Mar 2016 09:22:18 +0000 (10:22 +0100)]
CMake: Add ENABLE_DRPM option
Tomas Mlcoch [Thu, 10 Mar 2016 07:31:48 +0000 (08:31 +0100)]
Merge pull request #52 from M0ses/master
tags for old suse versions
Frank Schreiner [Thu, 3 Mar 2016 15:39:35 +0000 (15:39 +0000)]
cmake option --enable-legacy-weakdeps to enable old SUSE weaktags
Frank Schreiner [Mon, 29 Feb 2016 20:25:34 +0000 (21:25 +0100)]
tags for old suse versions
Tomas Mlcoch [Tue, 5 Jan 2016 12:46:28 +0000 (13:46 +0100)]
Bump version to 0.10.0
Tomas Mlcoch [Tue, 5 Jan 2016 12:40:08 +0000 (13:40 +0100)]
Merge pull request #44 from Conan-Kudo/portable-exit
Replace on_exit() call with atexit() call (Fixes FTBFS on Unity Linux)
Tomas Mlcoch [Tue, 5 Jan 2016 12:36:31 +0000 (13:36 +0100)]
Merge pull request #43 from ralphbean/python3
Python3 support (Issue #41 & RhBug: 1024809)
Neal Gompa (ニール・ゴンパ) [Sun, 6 Dec 2015 04:19:26 +0000 (23:19 -0500)]
Replace on_exit() call with atexit() call
The on_exit() function is non-portable and is not available
in all environments (notably Linux environments running on MUSL
and Solaris based environments). Thus, the function call is
swapped for the portable atexit() call.
Ralph Bean [Tue, 24 Nov 2015 11:30:50 +0000 (06:30 -0500)]
Typofix.
Ralph Bean [Mon, 23 Nov 2015 19:16:41 +0000 (14:16 -0500)]
Cmake niceties for Python3, like librepo does it.
Tomas Mlcoch [Mon, 23 Nov 2015 15:44:52 +0000 (16:44 +0100)]
Merge pull request #39 from Conan-Kudo/manpages-fix
Fix manpage generation and install to create and transfer uncompressed man pages
Neal Gompa (ニール・ゴンパ) [Sun, 8 Nov 2015 16:04:33 +0000 (11:04 -0500)]
Update the man pages to match latest release
Ralph Bean [Mon, 16 Nov 2015 15:10:14 +0000 (10:10 -0500)]
Add myself to AUTHORS file.
Ralph Bean [Mon, 16 Nov 2015 14:28:44 +0000 (09:28 -0500)]
README notes on Python3.
Ralph Bean [Mon, 16 Nov 2015 14:19:29 +0000 (09:19 -0500)]
More explicit string type checking.
Ralph Bean [Mon, 16 Nov 2015 04:30:04 +0000 (23:30 -0500)]
More fixes to the tests.
Ralph Bean [Mon, 16 Nov 2015 04:29:50 +0000 (23:29 -0500)]
Actually, let's go with unicode everywhere over bytes.
Ralph Bean [Mon, 16 Nov 2015 04:27:17 +0000 (23:27 -0500)]
Fix module initialization.
Ralph Bean [Mon, 16 Nov 2015 03:51:39 +0000 (22:51 -0500)]
Fix PyTypeObject initialization.
Ralph Bean [Mon, 16 Nov 2015 03:51:02 +0000 (22:51 -0500)]
Treat strings as explicit byte strings.
Ralph Bean [Sun, 15 Nov 2015 23:02:25 +0000 (18:02 -0500)]
More relative imports.
Ralph Bean [Sun, 15 Nov 2015 23:01:49 +0000 (18:01 -0500)]
Handle floats and ints.
Ralph Bean [Sun, 15 Nov 2015 22:57:53 +0000 (17:57 -0500)]
Fix py2/3 compat issues in the acceptance tests.
Ralph Bean [Sat, 14 Nov 2015 15:21:14 +0000 (10:21 -0500)]
py3 syntax error in the test suite.
Ralph Bean [Sat, 14 Nov 2015 15:21:03 +0000 (10:21 -0500)]
Adjust the build process to be py2/py3 compatible.
Ralph Bean [Sat, 14 Nov 2015 14:30:50 +0000 (09:30 -0500)]
Fix a typo.
Neal Gompa (ニール・ゴンパ) [Sun, 8 Nov 2015 14:20:16 +0000 (09:20 -0500)]
Modify gen_rst.py to indicate --sqliterepo is an option too
Neal Gompa (ニール・ゴンパ) [Sun, 8 Nov 2015 14:18:37 +0000 (09:18 -0500)]
Do not compress manpages at generation time
Neal Gompa (ニール・ゴンパ) [Sun, 8 Nov 2015 13:46:26 +0000 (08:46 -0500)]
Decompress manpage data
The manpages get compressed as part of rpmbuild, and compressed
data isn't properly versioned in git
Tomas Mlcoch [Tue, 20 Oct 2015 11:56:20 +0000 (13:56 +0200)]
Bump to 0.9.1
Tomas Mlcoch [Tue, 20 Oct 2015 11:46:05 +0000 (13:46 +0200)]
Refactoring: Make parse_period_of_time() function static
Tomas Mlcoch [Tue, 20 Oct 2015 11:24:39 +0000 (13:24 +0200)]
Refactoring: Add cr_ prefix to function hascontrollchars()
hascontrollchars -> cr_hascontrollchars
The prefix was added because the function is exported as a symbol
from libcreaterepo_c shared library.
Tomas Mlcoch [Thu, 8 Oct 2015 11:30:58 +0000 (13:30 +0200)]
Fix double free during parsing broken XML metadata (Issue #33)
The issue was reported by Rohan McGovern including excelent
reproducer and detail problem analysis.
Rohan's theory that was absolutely right:
When running in single chunk mode, there is one GStringChunk
which belongs to the cr_Metadata. It's temporarily
assigned/unassigned to/from cr_Package objects in newpkgcb/pkgcb
in load_metadata.c.
If XML parsing stops in the middle of a package element,
pkgcb is not called for the last cr_Package, so the chunk
remains assigned to that object.
The chunk is then freed twice, once when the hash table of
packages is destroyed (end of cr_metadata_load_xml function)
and again when the cr_Metadata object is destroyed.
Tomas Mlcoch [Thu, 8 Oct 2015 09:43:12 +0000 (11:43 +0200)]
Tests: Add acceptance test for --general-compress-type option
Added test_13_createrepo_general_compress_type test
Tomas Mlcoch [Thu, 8 Oct 2015 09:34:01 +0000 (11:34 +0200)]
Fix 'CR_CW_UNKNOWN_COMPRESSION cannot be used' error
This is a bug introduced while implementing
--general-compress-type option.
cmd_options->general_compression_type value was used everytime
without regards if it was set or not.
Tomas Mlcoch [Thu, 8 Oct 2015 09:23:57 +0000 (11:23 +0200)]
Refactoring: Fix compiler warnings
1. Fix usage of "const" modifiers to prevent compiler warnings.
2. In cr_prestodelta_thread() use return value from g_slist_append()
to be sure that we have correct start of the list stored in
the hash table.
3. Add another comment to cr_dumper_thread() to explicitly
tell that stuff we are doing there are modifing package
strucutres and that it's intentional.
Tomas Mlcoch [Wed, 7 Oct 2015 14:45:01 +0000 (16:45 +0200)]
Add --general-compress-type option (RhBug 1253850)
Createrepo_c behaviour is (in most cases) backward compatible
with classical createrepo.
Classical createrepo doesn't provide a possibility to compress
primary, filelists and other xml metadata by different compress
algorithm than GZ.
To be able to enable this feature in createrepo_c, a new option
--general-compress-type was added.
Behaviour of this option is basically same as --compress-type
except that the specified compress type is used also for
the main xml files (primary, filelists, other).
This option has priority over the existing options --compress-type
and --xz.
Tomas Mlcoch [Tue, 29 Sep 2015 12:54:41 +0000 (14:54 +0200)]
Add new contriutors into AUTHORS file
Tomas Mlcoch [Tue, 29 Sep 2015 12:43:52 +0000 (14:43 +0200)]
Merge pull request #34 from lmacken/master
updateinfo: Fix a typo in the package release attribute
Tomas Mlcoch [Tue, 29 Sep 2015 12:42:50 +0000 (14:42 +0200)]
Merge pull request #35 from jaroslawp/master
fix traceback on non-complete datetime information (python)
Tomas Mlcoch [Tue, 29 Sep 2015 12:38:05 +0000 (14:38 +0200)]
Enable drpm support when drpm library is detected on system (RhBug: 1261031) (Issue #37)
Jarek Polok [Thu, 17 Sep 2015 11:37:02 +0000 (13:37 +0200)]
fix traceback on non-complete datetime information
Tomas Mlcoch [Fri, 4 Sep 2015 08:12:06 +0000 (10:12 +0200)]
parsehdr: Skip broken dependency with bad (non-numerical) epoch and print warning about that
Epoch should be always an integer number.
If epoch is undefined, then we expect the epoch to be 0.
If epoch is a string (non-numerical) then it's obviously a bad
dependency and createrepo_c should print a warning and skip
the dep.
We don't want to abort whole generation of repodata and end with error
becuase createrepo_c is used in critical systems which provide software
updates and we don't want to block an update of dozens of packages just
because of one random package that has one broken dep.
Moreover not all deps are always necessary (for example SUGGESTS or ENHANCES, etc.).
Also, the broken package may be a package that is not used by general
audience, for example a devel or debug package and we definitely
don't want to block update because of such package.
See:
https://lists.fedoraproject.org/pipermail/devel/2015-August/213882.html
Tomas Mlcoch [Fri, 4 Sep 2015 07:50:41 +0000 (09:50 +0200)]
misc: cr_str_to_evr(): Return NULL instead of "0" for bad (non-numerical) epoch
Epoch which is defined and isn't an integer number is obviously a bad
epoch and cr_str_to_evr should let us know about such epoch.
See: https://lists.fedoraproject.org/pipermail/devel/2015-September/214019.html
Whole thread:
https://lists.fedoraproject.org/pipermail/devel/2015-August/213132.html
Luke Macken [Thu, 20 Aug 2015 21:54:50 +0000 (15:54 -0600)]
updateinfo: Fix a typo in the package release attribute
Tomas Mlcoch [Tue, 7 Jul 2015 11:29:15 +0000 (13:29 +0200)]
CMake: Don't require CXX compiler
Tomas Mlcoch [Tue, 30 Jun 2015 08:45:23 +0000 (10:45 +0200)]
Tests for different checksum type for RPMs and repodata files (#31)
Tomas Mlcoch [Tue, 30 Jun 2015 08:36:24 +0000 (10:36 +0200)]
Support different checksum type for RPMs and repodata files (#31)
Tomas Mlcoch [Thu, 28 May 2015 10:54:10 +0000 (12:54 +0200)]
Bump version to 0.9.0
Tomas Mlcoch [Tue, 26 May 2015 11:54:44 +0000 (13:54 +0200)]
mergerepo_c: Prepend protocol (file://) for URLs in pkgorigins (if --koji is used)
Tomas Mlcoch [Tue, 26 May 2015 11:25:49 +0000 (13:25 +0200)]
Refactoring: Better handling of gint64 type
Tomas Mlcoch [Mon, 25 May 2015 06:56:55 +0000 (08:56 +0200)]
Update bash completion
Tomas Mlcoch [Mon, 25 May 2015 06:54:19 +0000 (08:54 +0200)]
doc: Update manpages
Tomas Mlcoch [Mon, 25 May 2015 06:03:23 +0000 (08:03 +0200)]
mergerepo: Fix NVR merging method
Tomas Mlcoch [Mon, 25 May 2015 05:55:57 +0000 (07:55 +0200)]
mergerepo: Fix behavior of --all param
Tomas Mlcoch [Fri, 22 May 2015 13:34:33 +0000 (15:34 +0200)]
createrepo: Add --cut-dirs and --location-prefix options
Tomas Mlcoch [Fri, 22 May 2015 13:26:21 +0000 (15:26 +0200)]
misc: Add cr_cut_dirs()
Tomas Mlcoch [Fri, 22 May 2015 11:51:21 +0000 (13:51 +0200)]
createrepo: refactorization
Tomas Mlcoch [Fri, 22 May 2015 11:34:59 +0000 (13:34 +0200)]
mergerepo_c: Use better version comparison algorithm
Tomas Mlcoch [Fri, 22 May 2015 11:17:33 +0000 (13:17 +0200)]
utils: Port cr_cmp_version_str() to rpm's algorithm (rpmvercmp)
Tomas Mlcoch [Fri, 22 May 2015 10:31:24 +0000 (12:31 +0200)]
misc: Rename elements in cr_Version structure
Tomas Mlcoch [Fri, 22 May 2015 10:20:51 +0000 (12:20 +0200)]
mergerepo_c: Fix version-release comparison for packages when --all is used
Tomas Mlcoch [Thu, 21 May 2015 13:30:32 +0000 (15:30 +0200)]
mergerepo: Show warnings if some groupfile cannot be automatically used
Tomas Mlcoch [Thu, 21 May 2015 13:22:14 +0000 (15:22 +0200)]
mergerepo: Fix bug in group file copying
Tomas Mlcoch [Thu, 21 May 2015 13:16:12 +0000 (15:16 +0200)]
mergerepo: Exit with error code when a groupfile cannot be copied
Tomas Mlcoch [Fri, 15 May 2015 06:00:01 +0000 (08:00 +0200)]
Bump to 0.8.3
Tomas Mlcoch [Fri, 15 May 2015 05:59:38 +0000 (07:59 +0200)]
mergerepo: Do not prepend file:// if protocol is already specified