History log of /haikuporter/HaikuPorter/SourceFetcher.py
Revision Date Author Comments
# f197120d 18-Sep-2023 jurgenwigg <53076001+jurgenwigg@users.noreply.github.com>

Import statements sorted with isort and fixed MockBuilder.py (#266)

* Fixed missing closing bracket in the MockBuilder.py

* Import statements sorted with isort


# 3dc67325 26-May-2022 Alexander von Gluck IV <kallisti5@unixzen.com>

haikuporter/SourceFetcher: guard mkdir for source package fetcher

* While this code worked for single-download packages, multi-download
packages fail due to the already-existing source directory.
* Just guard the mkdir with a check


# 2285f72a 24-May-2022 Alexander von Gluck IV <kallisti5@unixzen.com>

haikuporter/SourceFetcher: Create target directory before extraction

* extract won't extract to a missing directory. This code isn't
used very often, so went unnoticed for a looong time.


# 00f1d699 03-Feb-2020 François Revol <revol@free.fr>

Make sure sourceDir is created before asking tar to change to it

getting git:// sources didn't work anymore.


# 8d5c14b6 31-Jan-2020 Michael Lotz <mmlr@mlotz.ch>

python3: Finish python3 change. python2 breaking

* Based on mmlr's 2017 work to use Python3 with
changes and adjustments for the current codebase


# e2012a3d 31-Jan-2020 Alexander von Gluck IV <kallisti5@unixzen.com>

python3: begin python3 fixes. print -> print()


# f037f839 30-Jan-2019 waddlesplash <waddlesplash@gmail.com>

SourceFetcher: Make progress dots 64KB instead of 1KB.

Most files we download are pretty large and connection speeds are pretty fast,
so this makes more sense.


# a95d5b8b 11-Aug-2018 Adrien Destugues <pulkomandy@pulkomandy.tk>

SourceFetcher: create directory only if missing

Fixes #163.


# 71f2d225 21-Jul-2018 Adrien Destugues <pulkomandy@pulkomandy.tk>

Fix extraction of #noarchive sources

The code assumed that the directory already existed, but it doesn't
anymore since the changes to detect a mis-set SOURCE_DIR. As a result
the file would be copied in the place where a source directory was
expected.

Solution: just create the dir and then copy the file inside it.


# 223684e8 10-Dec-2017 Michael Lotz <mmlr@mlotz.ch>

SourceFetcher: Re-add wget tries argument and set to 1.

Retries were in-sourced, but this caused wget to use its default of 20
retires for some types of errors.


# 04a81d33 10-Dec-2017 Michael Lotz <mmlr@mlotz.ch>

Cleanup: Add missing raw string prefix to regex patterns.


# 9836ce60 10-Dec-2017 Michael Lotz <mmlr@mlotz.ch>

Cleanup: Whitespace and line length cleanup.


# 95628247 20-Nov-2017 linkmauve <linkmauve@linkmauve.fr>

Add support for checkout on a specific revision in Mercurial. (#144)


# dd3b95ca 09-Nov-2017 Michael Lotz <mmlr@mlotz.ch>

SourceFetcher: Internalize download retry handling.

The wget command does not retry for some error cases like DNS resoltion
failures. The tries are moved internally and depend on the reported
error code (taken from the wget man page). Non-final errors are now
retried with a 3 second delay.


# 3bd9a89f 19-Feb-2017 Julian Harnath <julian.harnath@rwth-aachen.de>

Fix git source fetch

Was missing setting the output variable, making the
following info(output) fail (when using verbose mode).


# a7c8774e 09-Feb-2017 Augustin Cavalier <waddlesplash@gmail.com>

Add some big, nasty warnings when using unsafe sources.


# 9eded64e 09-Feb-2017 Augustin Cavalier <waddlesplash@gmail.com>

Revert "Permanently disable downloading from unsafe sources."

This reverts commit a2a800093d927d4372bc4aaada66597d11c8a5ef.


# a2a80009 09-Feb-2017 Augustin Cavalier <waddlesplash@gmail.com>

Permanently disable downloading from unsafe sources.

We've slowly been phasing these out over the past few years,
at this point we might as well disable them (if there are no major
reasons to keep them, I'll remove them totally in a few months.)


# 68e3958c 23-Oct-2016 Jérôme Duval <jerome.duval@gmail.com>

Implement local builders.

* provide info(), warn() to be used instead of print. By default outputs to stdout.
For builders, outputs to files.
* replace most calls to check_call by check_output, and log with info(). Also outputs
the outputs an eventual CalledProcessError output attribute.
* add option --local-builders to be used with --build-master: indicates how many
local builders to use instead of remote builders. If paramiko isn't available,
defaults to 1, otherwise 0.
* rename Builder to RemoteBuilder.
* remove changes of current directory: this doesn't work in a
multithreaded environnement. Policy.py is the most affected as it
expected to run in the packaging directory.


# 71a83f90 18-Dec-2016 Jessica Hamilton <jessica.l.hamilton@gmail.com>

Use Unicode strings for warn() & sysExit().


# c40362e5 10-Jul-2016 Jérôme Duval <jerome.duval@gmail.com>

Add option to select Sourceforge mirror.

* sourceforge mirror selector often returns a bad mirror (for me at least).


# 4fc5d5e9 10-Jul-2016 Jérôme Duval <jerome.duval@gmail.com>

SourceFetcher: use "file://" as prefix for local file...

because we now check that they are actual URI.


# 70b98bc9 26-Jan-2016 waddlesplash <waddlesplash@gmail.com>

SourceFetcher: Check certificates.


# 66b58482 02-Jul-2015 Augustin Cavalier <waddlesplash@gmail.com>

Remove local check_output, we're now using Python 2.7.


# dce406f0 02-Jul-2015 Augustin Cavalier <waddlesplash@gmail.com>

Rename SRC_URI to SOURCE_URI for consistency's sake.


# 7efb4525 25-Dec-2014 Josef Gajdusek <atx@atx.name>

Add ISO date format for CVS source fetching

New versions of CVS no longer support the DD/MM/YYYY format and now use
YYYY-MM-DD


# 797d2b92 21-Nov-2014 Oliver Tappe <zooey@hirschkaefer.de>

Cleanup imports.


# ef5180a3 30-Oct-2014 Oliver Tappe <zooey@hirschkaefer.de>

Let wget use a 10 second network timeout.


# fc1d58c6 29-Oct-2014 Charlie Clark <charlie.clark@clark-consulting.eu>

Revert to tab spacing for Pe's sake.


# a5f922e3 27-Oct-2014 Charlie Clark <charlie.clark@clark-consulting.eu>

Try again with whitespace.


# 558fbdb0 27-Oct-2014 Charlie Clark <charlie.clark@clark-consulting.eu>

Second attempt to fix whitespace. Options are different on OS X.


# 429ec015 27-Oct-2014 Charlie Clark <charlie.clark@clark-consulting.eu>

Convert tabs to spaces.


# 301b55d4 20-Mar-2014 Jonathan Schleifer <js@webkeks.org>

Add configuration option to enable/disable unsafe sources


# cf969fec 04-Sep-2013 Oliver Tappe <zooey@hirschkaefer.de>

Fix bugs in handling of multiple sources.

* make sure to overrule the SRC_URIs for all sources when a port is
based on a source package, as otherwise we'd try to download those
other sources, which isn't needed and might not work (e.g. when
bootstrapping)
* use correct paths for each of multiple sources when populating and
extracting source packages


# 4c065208 30-Aug-2013 Oliver Tappe <zooey@hirschkaefer.de>

Fix base path when extracting from rigged source packages.


# 62430553 12-Aug-2013 Oliver Tappe <zooey@hirschkaefer.de>

Drop debug leftover.


# a30126bf 07-Aug-2013 Oliver Tappe <zooey@hirschkaefer.de>

Fix automatic fetching of non-local revisions in git.


# b9a4c6c8 06-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Fix handling of sources with empty SOURCE_DIR

unpackFile() didn't have enough information to discriminate this case
from the single-component case and thus try to extract a subdir from the
archive.


# 5eff433f 01-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Whitespace cleanup


# 9a71129f 26-Jul-2013 Oliver Tappe <zooey@hirschkaefer.de>

Add source fetcher for source packages (pkg: protocol)


# e5266aef 19-Jul-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Clean up trailing whitespace


# 53fd488f 18-Jul-2013 Oliver Tappe <zooey@hirschkaefer.de>

Add automatic repository update for changed source revisions

* implement support for automatic fetching from remote repository when
a change in the used source revision has been detected (currently
only implemented for git)


# e2419804 17-Jul-2013 Oliver Tappe <zooey@hirschkaefer.de>

Fix warnings about use of reserved internal symbol 'type'.


# 73b919a4 16-Jul-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

SourceFetcherForGit: use a bare repository

... instead of one without a checkout. This seems less weird and makes
it easier to manually update (at least for me). Of course, ideally
haikuporter would automatically recognize that it can just update the
repository instead of checking everything out again.


# 68a18492 16-Jul-2013 Oliver Tappe <zooey@hirschkaefer.de>

Actually make use of a specified rev when fetching via git.


# 74e0c40d 22-Jun-2013 Oliver Tappe <zooey@hirschkaefer.de>

Improve robustness of foldSubdirIntoSourceDir():

* rename the subdir to a (hopefully) unique name to avoid problems
with contained files/folder with an identical name (as is the case
for binutils)


# df58d6d7 18-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

SourceFetcherFor{Download,LocalFile}: fix unpack() with subdir

The assumption that the first subdir component is the source dir name
was incorrect as subdir is relative to the source directory.


# 95fd6a8b 17-Jun-2013 Oliver Tappe <zooey@hirschkaefer.de>

Add license header (MIT)

* additionally: uppercase copyright notices and separate them from the
top by a single line


# ced83575 17-Jun-2013 Oliver Tappe <zooey@hirschkaefer.de>

Squash a TODO that no longer applies.


# dd4aab6e 17-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

SourceFetcherForCvs: quote module name

... in case it contains weird characters (like for keymapswitcher).


# 18237f97 16-Jun-2013 Oliver Tappe <zooey@hirschkaefer.de>

Generalize support for SOURCE_EXPORT_SUBDIR:

* add support for exporting only a subdir to unpackArchive()
* add automatic folding of subdir-contents into source directory,
after unpacking from archive and using tar for "unpacking" a checkout


# 735332c6 16-Jun-2013 Oliver Tappe <zooey@hirschkaefer.de>

Fix SourceFetcherForLocalFile:

* adjusting self.fetchTarget doesn't cut it, as Source has its own
version of it, which it is accessing - so now we simply symlink the
local file into the download directory


# 8d1c2866 16-Jun-2013 Oliver Tappe <zooey@hirschkaefer.de>

Refactor handling of checkouts (and somewhat downloads, too):

* Pull protocol specific SourceFetcher-classes out of Source.
* Do checkouts into download directory and then export the relevant
source revision into the source dir. This way, removing the work
dir no longer drops the precious checkouts and checkouts can be
shared between different port versions.
* Always create an implicit git repo in the source dir, no more need
for two code paths.
* Handle SOURCE_EXPORT_SUBDIR a bit more intelligently, such that only
the stuff living underneath the export subdir is put into the source
dir (i.e. without the export subdir itself as relative path)
* After a source has been fetched, write the URI that has been used
into a marker file, such that during following runs, HaikuPorter knows
that URI and can create an appropriate SourceFetcher object for it.


# 797d2b925aa61ce548f35f9d3b255356c83f5936 21-Nov-2014 Oliver Tappe <zooey@hirschkaefer.de>

Cleanup imports.


# ef5180a36862543d57961a97220e351fdce440cf 30-Oct-2014 Oliver Tappe <zooey@hirschkaefer.de>

Let wget use a 10 second network timeout.


# fc1d58c6abe57c99c11ec02b27be40844fb53572 29-Oct-2014 Charlie Clark <charlie.clark@clark-consulting.eu>

Revert to tab spacing for Pe's sake.


# a5f922e3fded4460be5a3c717862e7e588772487 27-Oct-2014 Charlie Clark <charlie.clark@clark-consulting.eu>

Try again with whitespace.


# 558fbdb04ff6cb063a4afba7f15b6f1bd0343af2 27-Oct-2014 Charlie Clark <charlie.clark@clark-consulting.eu>

Second attempt to fix whitespace. Options are different on OS X.


# 429ec015d0c47da50e302537ed33bc3f80d035a8 27-Oct-2014 Charlie Clark <charlie.clark@clark-consulting.eu>

Convert tabs to spaces.


# 301b55d4fd6ca82bfa64de1178b8f211d4698ada 20-Mar-2014 Jonathan Schleifer <js@webkeks.org>

Add configuration option to enable/disable unsafe sources


# cf969fec86accf8fc86a3aa0109307a475cd104d 04-Sep-2013 Oliver Tappe <zooey@hirschkaefer.de>

Fix bugs in handling of multiple sources.

* make sure to overrule the SRC_URIs for all sources when a port is
based on a source package, as otherwise we'd try to download those
other sources, which isn't needed and might not work (e.g. when
bootstrapping)
* use correct paths for each of multiple sources when populating and
extracting source packages


# 4c065208aaf6fa40c1aca18793bc7d6c84c28055 30-Aug-2013 Oliver Tappe <zooey@hirschkaefer.de>

Fix base path when extracting from rigged source packages.


# 62430553ab34b31b7f0ab82185843e7c04e73c2f 12-Aug-2013 Oliver Tappe <zooey@hirschkaefer.de>

Drop debug leftover.


# a30126bf643ea4f00a0b74f97fc28f26129df5e6 07-Aug-2013 Oliver Tappe <zooey@hirschkaefer.de>

Fix automatic fetching of non-local revisions in git.


# b9a4c6c86368ad6888487c8cc9efdefa2dc1fb30 06-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Fix handling of sources with empty SOURCE_DIR

unpackFile() didn't have enough information to discriminate this case
from the single-component case and thus try to extract a subdir from the
archive.


# 5eff433fb012c56441eeb321250193474da264b6 01-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Whitespace cleanup


# 9a71129f6f34875cba13497c9836e35819cd0139 26-Jul-2013 Oliver Tappe <zooey@hirschkaefer.de>

Add source fetcher for source packages (pkg: protocol)


# e5266aef3a8b81f9e6d29e00fecd9da40aafa23b 19-Jul-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Clean up trailing whitespace


# 53fd488f0392ac5d4986a3b83b6edfdb2087991c 18-Jul-2013 Oliver Tappe <zooey@hirschkaefer.de>

Add automatic repository update for changed source revisions

* implement support for automatic fetching from remote repository when
a change in the used source revision has been detected (currently
only implemented for git)


# e2419804b37ae1079fffa1d7265cd0d8a994dc0d 17-Jul-2013 Oliver Tappe <zooey@hirschkaefer.de>

Fix warnings about use of reserved internal symbol 'type'.


# 73b919a412b46ac8a079b4ae6556cdbcd34e5424 16-Jul-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

SourceFetcherForGit: use a bare repository

... instead of one without a checkout. This seems less weird and makes
it easier to manually update (at least for me). Of course, ideally
haikuporter would automatically recognize that it can just update the
repository instead of checking everything out again.


# 68a18492d7224fd3834a98e3765af749875839d0 16-Jul-2013 Oliver Tappe <zooey@hirschkaefer.de>

Actually make use of a specified rev when fetching via git.


# 74e0c40d74223ae2c6626372cdc341dbd3640839 22-Jun-2013 Oliver Tappe <zooey@hirschkaefer.de>

Improve robustness of foldSubdirIntoSourceDir():

* rename the subdir to a (hopefully) unique name to avoid problems
with contained files/folder with an identical name (as is the case
for binutils)


# df58d6d7648919b9741668d387f504baba65a825 18-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

SourceFetcherFor{Download,LocalFile}: fix unpack() with subdir

The assumption that the first subdir component is the source dir name
was incorrect as subdir is relative to the source directory.


# 95fd6a8bd4d47186696c722b6717b2b073e799a1 17-Jun-2013 Oliver Tappe <zooey@hirschkaefer.de>

Add license header (MIT)

* additionally: uppercase copyright notices and separate them from the
top by a single line


# ced83575c295842f52af55a6aba2bfb5f4f06e63 17-Jun-2013 Oliver Tappe <zooey@hirschkaefer.de>

Squash a TODO that no longer applies.


# dd4aab6e51924454fa9754fce0d39d09fcbb0877 17-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

SourceFetcherForCvs: quote module name

... in case it contains weird characters (like for keymapswitcher).


# 18237f978b4267b84682b64a005f529541545f0e 16-Jun-2013 Oliver Tappe <zooey@hirschkaefer.de>

Generalize support for SOURCE_EXPORT_SUBDIR:

* add support for exporting only a subdir to unpackArchive()
* add automatic folding of subdir-contents into source directory,
after unpacking from archive and using tar for "unpacking" a checkout


# 735332c6331afc12c7bff5381c41c12fa2c91127 16-Jun-2013 Oliver Tappe <zooey@hirschkaefer.de>

Fix SourceFetcherForLocalFile:

* adjusting self.fetchTarget doesn't cut it, as Source has its own
version of it, which it is accessing - so now we simply symlink the
local file into the download directory


# 8d1c28665f02b1e0f56affd2798d9a922694b49d 16-Jun-2013 Oliver Tappe <zooey@hirschkaefer.de>

Refactor handling of checkouts (and somewhat downloads, too):

* Pull protocol specific SourceFetcher-classes out of Source.
* Do checkouts into download directory and then export the relevant
source revision into the source dir. This way, removing the work
dir no longer drops the precious checkouts and checkouts can be
shared between different port versions.
* Always create an implicit git repo in the source dir, no more need
for two code paths.
* Handle SOURCE_EXPORT_SUBDIR a bit more intelligently, such that only
the stuff living underneath the export subdir is put into the source
dir (i.e. without the export subdir itself as relative path)
* After a source has been fetched, write the URI that has been used
into a marker file, such that during following runs, HaikuPorter knows
that URI and can create an appropriate SourceFetcher object for it.