summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* use the same redirection handling for http and httpsDavid Kalnischkies2016-08-107-101/+102
| | | | | | | | cURL which backs our https implementation can handle redirects on its own, but by dealing with them on our own we gain finer control over which redirections will be performed (we don't like https → http) and by whom so that redirections to other hosts correctly spawn a new https method dealing with these instead of letting the current one deal with it.
* detect redirection loops in acquire instead of workersDavid Kalnischkies2016-08-1010-65/+129
| | | | | | | Having the detection handled in specific (http) workers means that a redirection loop over different hostnames isn't detected. Its also not a good idea have this implement in each method independently even if it would work
* fail on unsupported http/https proxy settingsDavid Kalnischkies2016-08-104-6/+45
| | | | Closes: #623443
* suggest transport-packages based on established nameschemeDavid Kalnischkies2016-08-101-2/+4
| | | | | | | | | | | | apt-transports not shipped in apt directly are usually named apt-transport-% with % being what is in the name of the transport. tor additional introduced aliases via %+something, which isn't a bad idea, so be strip the +something part from the method name before suggesting the installation of an apt-transport-% package. This avoids us the maintainance of a list of existing transports creating a two class system of known and unknown transports which would be quite arbitrary and is unfriendly to backports.
* support all socks-proxy known to curl in https methodDavid Kalnischkies2016-08-101-1/+12
|
* Do not set the binary dir in run-tests, it breaks stuffJulian Andres Klode2016-08-101-6/+0
| | | | | | | This breaks -j and does all sort of other weird stuff I did not notice in the previous (non-parallel) runs. Gbp-Dch: ignore
* Fix some indentation issues in README.mdJulian Andres Klode2016-08-101-3/+3
|
* Merge branch 'cmake'Julian Andres Klode2016-08-10120-3126/+1595
|\
| * test: Automatically discover CMake build directoryJulian Andres Klode2016-08-102-1/+27
| | | | | | | | | | | | | | Look at the project root, and all directories directly below it and pick the directory with the newest CMakeCache.txt file. Gbp-Dch: ignore
| * Update gitignore for cmakeJulian Andres Klode2016-08-101-23/+88
| | | | | | | | | | | | | | We cannot be sure if you are not running the build tree, so this is a bit ugly. Gbp-Dch: ignore
| * Get rid of the old buildsystemJulian Andres Klode2016-08-1043-2732/+0
| | | | | | | | Bye, bye, old friend.
| * Add statvfs.h.in to CMake directoryJulian Andres Klode2016-08-102-1/+14
| | | | | | | | Gbp-Dch: ignore
| * Merge README.cmake into README.mdJulian Andres Klode2016-08-102-37/+15
| | | | | | | | Gbp-Dch: ignore
| * apt-private: Do not include apti18n.h in headersJulian Andres Klode2016-08-102-4/+0
| | | | | | | | This causes build failures when turning translations off.
| * prepare-release: Switch over to CMake, set version in CMakeLists.txtJulian Andres Klode2016-08-102-11/+12
| | | | | | | | | | | | | | | | | | Teach the prepare-release script about the version new locations and also set the version in CMakeLists, as that is better than reading it from the changelog: CMake would not rerun automatically otherwise if the version changed. Gbp-Dch: ignore
| * CMake: Rewrite existing Documentation support and add doxygenJulian Andres Klode2016-08-107-117/+346
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This can now build all documentation. It should also be fairly reusable for other projects, as long as they follow the same naming scheme for the po4a output files and set the PACKAGE_* variables used here. We could have done all translations in a single call to po4a like the makefile based buildsystem does. While that would have made the output slightly nicer, this solution offers a huge performance gain because it can translate the documents in parallel, which also means that the xsltproc stage does not have to wait for all translations to be done first. You might think that the add_custom_command() should list the actual output files as BYPRODUCTS. This is not true however: Because the files are not always generated, Ninja will think missing byproducts mean that the target is out of date - which is not what we want. Finally, also add the missing doxygen support. Note that the packaging script cleans up some md5 and map files created by doxygen, otherwise it is fairly boring.
| * CMake: Misc: Extract command path_join() from TranslationsJulian Andres Klode2016-08-102-14/+11
| | | | | | | | | | | | | | This abstracts the joining of paths a bit better than having basically the same code twice in the Translations module. Gbp-Dch: ignore
| * CMake: Check for ptsname_r() againJulian Andres Klode2016-08-103-1/+5
| | | | | | | | | | | | | | | | This was dropped in autotools as I found no use of the HAVE_PTSNAME_R macro. Turns out it was typoed as HAVE_PTS_NAME_R. Fix the #ifdef and add checks to CMake for it. Closes: #833674
| * CMake: Allow building without dpkgJulian Andres Klode2016-08-101-4/+8
| | | | | | | | | | | | | | | | It's not entirely clear if that is useful, but it cannot hurt. We need to check what is missing to build on foreign systems without dpkg. Gbp-Dch: ignore
| * CMake: Bump minimum required version to 3.4.0Julian Andres Klode2016-08-102-2/+2
| | | | | | | | | | The SOURCE_DIR property is used for the translation building and was introduced in cmake 3.4
| * debian: make autopkgtest run with CMake build dirJulian Andres Klode2016-08-101-5/+6
| |
| * CMake: Add unit testsJulian Andres Klode2016-08-107-9/+34
| | | | | | | | | | | | | | | | Add support for our GTest based unit tests. By default, CMake will look in /usr/src/gtest for the external GTest project, but this can be overriden by defining GTEST_ROOT when invoking cmake. Gbp-Dch: ignore
| * CMake: Translations: Build .pot in po binary dir, not project oneJulian Andres Klode2016-08-101-17/+17
| | | | | | | | | | | | This was cluttering up things all over the place. Gbp-Dch: ignore
| * CMake: Translations: Allow excluding languages from translationJulian Andres Klode2016-08-102-5/+30
| | | | | | | | | | | | This seems to be needed for the hebrew translations. Gbp-Dch: ignore
| * CMake: Translations: Avoid rebuilding .mo if .pot did not changeJulian Andres Klode2016-08-101-4/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use the witness/byproducts approach to build the translations. A byproduct of a command is like an output, but may be older than the input. Here, we generate a normal template with headers in the normal way as a witness (and for Launchpad translations), but we also generate a .pot-tmp0 template file without a header that gets copied to a .pot-tmp byproduct only if it changed. This way, the .pot-tmp is only updated if an actual string translation changed. We also create a custom target for the .pot file that we'll depend on later in the overall target creating the mo files to ensure that the template is build before we try to build mo files. Then we make the msgmerge depend on the .pot-tmp instead of the .pot file, which means that msgmerge and msgfmt only get re-run if a string change occured. Gbp-Dch: ignore
| * CMake: Translations: Add a statistics targetJulian Andres Klode2016-08-102-0/+16
| | | | | | | | | | | | This is really useful stuff to have. Gbp-Dch: ignore
| * CMake: Translations: Build apt-all.pot and update .po filesJulian Andres Klode2016-08-103-3/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | Merge all the per-domain templates into one template file using msgcomm, stripping any line numbers in the input files, and sorting the output per file. This should create reasonably stable .pot and .po files that do not change just because files move around. It should also be resilient against some line changes, as long as one translated line is not moved before/after another translated line. Gbp-Dch: ignore
| * CMake: Translations: Add support for shell scriptsJulian Andres Klode2016-08-103-25/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rework the arguments to apt_add_translation_domain so a user can specify TARGETS and SCRIPTS, the latter being Shell scripts. For each language (TARGETS being C++, SCRIPTS being Shell), a separate template is generated via xgettext. Those templates are then merged together by using msgcomm. In case there are no Shell scripts in the translation domain, msgcomm will receive /dev/null instead of a shell translation template. This also reintroduces line numbers, as msgcomm would otherwise re-order the merged files not only by filename, but also by message string. It's unclear why it does that, it could just leave strings within a file alone. In contrast to the old build system, we use xgettext for shell scripts instead of bash --dump-strings, as it's just easier to use the same tool for everything. We also create valid headers.
| * CMake: Translations: Write a .po file before writing a .mo fileJulian Andres Klode2016-08-101-3/+6
| | | | | | | | | | | | This makes debugging things easier. Gbp-Dch: ignore
| * CMake: Translations: Pass some additional arguments to commandsJulian Andres Klode2016-08-101-1/+2
| | | | | | | | | | | | | | | | This gets rid of the line numbers, adds the plural keyword, and makes msgfmt print statistics, so we know how well translated we are. Gbp-Dch: ignore
| * CMake: Translations: Make po templates depend on input filesJulian Andres Klode2016-08-101-0/+3
| | | | | | | | | | | | | | I wondered why the template was not rebuilt after I changed a file, now I have the answer. Gbp-Dch: ignore
| * CMake: Set PACKAGE_MAIL variableJulian Andres Klode2016-08-102-2/+3
| | | | | | | | | | | | | | This is needed in a lot of places. Also adjust config.h.in to use it instead of the bare email address. Gbp-Dch: ignore
| * CMake: po: Add mirror methodJulian Andres Klode2016-08-101-1/+3
| | | | | | | | I forgot this one, sorry
| * CMake: Improve handling of vendor filesJulian Andres Klode2016-08-102-8/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | First of all, instead of creating the files at configure time, generate the files using normal target. This has the huge advantage that they are rebuilt if their input changes. While we are at it, also add dependencies on the vendor entity files. This also fixes the path to the vendor script, which was given relatively before, which obviously won't work when running from inside a deeper subdirectory. To speed things up, pass the --vendor option to getinfo, so we do not have to find out the current vendor in getinfo all over again. Gbp-Dch: ignore
| * CMake: Cache CURRENT_VENDOR and make it configurableJulian Andres Klode2016-08-101-4/+8
| | | | | | | | | | | | | | | | | | | | Cache the current vendor, so we do not have to rerun getinfo when reconfiguring stuff. This also has the nice effect of making the vendor configurable, so you can manually specify it on a platform that might not have dpkg (not that building without dpkg works yet). Gbp-Dch: ignore
| * vendor/getinfo: Accept --vendor VENDOR optionJulian Andres Klode2016-08-101-4/+9
| | | | | | | | | | | | | | | | This can be used to query a field for a specific vendor. It also speeds up things a lot if we can cache the current vendor in cmake and pass it to further getinfo invocations. Gbp-Dch: ignore
| * CMake: Use find_package() for curl instead of pkg_check_modules()Julian Andres Klode2016-08-101-1/+1
| | | | | | | | | | | | No need to involve pkg-config when CMake has builtin support Gbp-Dch: ignore
| * releasing package apt version 1.3~pre3+cmake21.3_pre3+cmake2Julian Andres Klode2016-08-0618-18/+24
| |
| * Build-depend on pkg-configJulian Andres Klode2016-08-061-1/+1
| |
| * releasing package apt version 1.3~pre3+cmake11.3_pre3+cmake1Julian Andres Klode2016-08-069-7/+36
| |
| * CMake: Adjust abicheck locationsJulian Andres Klode2016-08-062-2/+3
| | | | | | | | | | | | Look in build/apt-pkg and build/apt-inst instead of build/bin. Gbp-Dch: ignore
| * CMake: debian: Switch packaging over to CMake and dh 9Julian Andres Klode2016-08-0623-376/+102
| | | | | | | | | | | | | | | | | | | | | | This new packaging is much easier to read, although the duplication in the install files is a bit annoying. We should probably also get rid of the movefiles for solvers, planners, and https method; but then we have to keep track of which methods exist in the apt package. Another disadvantage is that building only the documentation packages also requires building the code, as there's no way to turn off code building in the project.
| * CMake: Switch integration tests and travis overJulian Andres Klode2016-08-066-11/+30
| | | | | | | | | | | | This early support seems a bit hacky, but it's a hard switch: The integration tests do not understand the old build system anymore afterwards. I don't really like that.
| * CMake: Add initial support for documentation buildingJulian Andres Klode2016-08-065-1/+160
| | | | | | | | | | | | | | | | | | | | Build HTML docbook guides (untranslated) and manual pages (including translations). Also install the examples in the example subdirectory. Translation of docbook guides has not been implemented yet, but should be easy to do. The code also needs some cleanup to automatically detect the available translations.
| * CMake: Add support for building and installing .mo filesJulian Andres Klode2016-08-064-1/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce support for building translation domain-specific templates, merging them with the translations, and building a language-specific .mo file. The invocation of xgettext is done in the project source directory, not in the current source directory, and all paths are made relative to the project root, in order to have clean templates. This only supports the C++ source code for now, it unfortunately does not handle the shell scripts of deselect yet.
| * CMake: Add basic CMake build systemJulian Andres Klode2016-08-0614-0/+601
| | | | | | | | | | | | | | | | | | | | | | Introduce an initial CMake buildsystem. This build system can build a fully working apt system without translation or documentation. The FindBerkelyDB module is from kdelibs, with some small adjustements to also look in db5 directories. Initial work on this CMake build system started in 2009, and was resumed in August 2016.
| * prepare-release: Also search for libraries in CMake locationsJulian Andres Klode2016-08-061-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With this change, the 'library' command looks for a library libX in the directories: build/bin, */X, X. This allows it to find the library when building with the upcoming CMake backend, which places the libraries in a sub directory of the build tree with the same name as the source tree. For example, if building in 'build/', the apt-pkg library will be available at 'build/apt-pkg/libapt-pkg.so.5.0'. In case there are multiple instances of a library, the newest one will be used. Gbp-Dch: ignore
| * debian/control: Use versioned provides for same-ver library depsJulian Andres Klode2016-08-061-1/+3
| | | | | | | | | | | | | | This simplifies the design a bit, as we do not need to read the major ABI version number from some file / command. Gbp-Dch: ignore
| * vendor/getinfo: Teach it about sourceslist-list-formatJulian Andres Klode2016-08-061-1/+1
| | | | | | | | | | | | | | This makes it easier to write a generic subsitution tool for handling substitutions in apt-key.in and sources.list.in Gbp-Dch: ignore
| * vendor/getinfo: Provide command to determine vendor to useJulian Andres Klode2016-08-061-1/+39
| | | | | | | | | | | | | | | | | | Introduce the 'current' command to eventually replace the current symbolic link. The current command does roughly the same as the makefile, the code has just been cleaned up a bit to work better as a shell function. Gbp-Dch: ignore