Age | Commit message (Collapse) | Author | Files | Lines |
|
Those commands are really hooks that source formats can use and that
will be called by dpkg-buildpackage before and after the actual build.
Source formats "2.0" and "3.0 (quilt)" use this hook to ensure patches
are applied before the build.
|
|
The DEP-3 template is provided in the automatic header of patches in 3.0
(quilt) source packages.
|
|
The variable is defined by default but empty and the check was wrong
leading all files to be ignored.
|
|
tarballs
According the documentation they were never meant to be allowed
but usage of perl's \w allowed them nevertheless. [\w-] has now been
replaced by [[:alnum:]-] everywhere so that the code fits the
documentation.
|
|
Commit 3378e8fa435abe79e9bd3cea07b02f562b906695 broke
"dpkg-source -i -b" on version 1.0 source packages. This restores it.
|
|
It's like debian/source/options but it's not stored in the generated
source package. This is ensured by the way of being part of the default
ignore lists (-i and -I) and being explicitely excluded for the old
1.0 format that doesn't use the default ignore list.
|
|
exists
|
|
|
|
.dsc files haven't always had a Format field. It was introduced in dpkg
1.6.13, in May 2000. This means that it's still not entirely
implausible to run across source packages without Format, for example
when importing the history of a source package into revision control.
Thus, dpkg-source should treat a missing Format field as 1.0, for
compatibility with these old packages.
|
|
A series file should only contain path pointing inside debian/patches/
and thus "../" are forbidden. Given that the path to patches appear
in the patch command-line with -B .pc/$path, a carefully crafted
path could lead patch to overwrite an arbitrary file outside of the
destination directory with a file provided in the source package.
|
|
patch will happily accept filenames like "../../../../stuff" and modify
files outside of the expected destination directory. To avoid problems
we error out when we detect a filename that contains "/../". Any leading
"../" is not a problem since patches are applied with -p1 and it's
stripped.
We also verify that the file to be modified is not accessed through a
symlink as a compromised source package could also provide a symlink in
the orig.tar.gz that points outside of the destination directory.
|
|
Many other modules and scripts are also updated to cope with the new API.
The API of the module should be stable from now on, hence increased
$VERSION to "1.00".
|
|
With this option, dpkg-source will auto-create the main original tarball
when it's missing and when there are supplementary tarballs. This makes it
easier to bundle multiple software together.
dpkg-source needs to be modified since the options have to be parsed
before can_build() is called.
|
|
While parsing diff's output, accept any sentence that contains the word
differ (as specified by POSIX) to identify that binary files could
not be compared.
|
|
Modules whose API should be stable have a version 1.00.
The modules with version 0.01 are expected to have further API
changes in the (near) future or are deemed to be useful mostly
for dpkg-dev's internal usage.
|
|
This implies renaming parse_fh() into parse() and parse() into load().
Update all scripts and modules using those methods.
|
|
|
|
The line was misparsed. Use the print method to avoid any ambiguity.
|
|
The files .pc/.quilt_patches and .pc/.quilt_series are always created so
that any quilt invocation will know where to look for (or where to store)
patches. This will only work with quilt >= 0.48-5.
|
|
Dpkg::Compression::CompressedFile -> Dpkg::Compression::FileHandle
Dpkg::Compression::Compressor -> Dpkg::Compression::Process
The new names are more expressive and avoid repeating "Compress".
Update all scripts and modules to use the new name.
|
|
This API change requires lots of adjustements through the source code.
|
|
Change the Dpkg::Compression::CompressedFile API to make it behave like
a normal filehandle.
Update all users of the object to use the new API.
|
|
|
|
|
|
.pc/applied-patches
The quilt .pc directory was not created when a new automatic patch
was registered and when no other patches were managed by quilt.
Based-on-patch-by: Tommi Vainikainen <thv+debian@iki.fi>
|
|
Since format "3.0 (quilt)" can now modify the content of the .pc
directory, ensure it still uses the supported format (currently version
2). Add an option --allow-version-of-quilt-db=<ver> to be able
to force creation of a source package despite the unexpected version.
|
|
The content of this file is used as header of the automatic patch
generated in formats "2.0" and "3.0 (quilt)".
|
|
With this option, the automatic patch is named
debian/patches/debian-changes instead of
debian/patches/debian-changes-<ver>. With this option, the new format
is closer to 1.0 with its single diff that is always updated.
|
|
Instead of calling quilt to apply patches, we always apply them
by hand and we create the .pc directory used by quilt (version 2 in
.pc/.version). That way we are fully compatible with quilt and we can't
have differing behaviour whether quilt is installed or not.
Update the documentation accordingly. The option --without-quilt is gone
as is debian/patches/.dpkg-source-applied (replaced by
.pc/applied-patches).
|
|
Before accepting to build a 3.0 (quilt) source packages, ensure that
debian/patches is a directory (or non-existing) and that
debian/patches/series is a file (or non-existing).
|
|
When building "3.0 (quilt)" source packages, use QUILT_PATCH_OPTS="-t -F 0
-N -u -V never -g0" so that quilt is as strict as dpkg-source's internal
implementation of quilt that relies on Dpkg::Source::Patch::apply().
|
|
This concerns formats 2.0 and 3.0 (quilt) where the upstream tarball can
be available with different compression schemes. We need precisely one
file otherwise it doesn't know which one should be used and might pick the
wrong one.
|
|
In "3.0 (quilt)" format, dpkg-source can automatically create patches with
the upstream changes applied to the source package. Those patches will now
contain an informative header respecting the DEP-3 proposal where the
Description contains a copy of the last changelog entry, the last uploader
is mentionned in the Author field. Supplementary fields can be added
by a vendor hook "extend-patch-header". The Debian implementation of this
hook automatically adds Bug-Debian and Bug-Ubuntu entries.
Dpkg::Source::Patch has been modified to be able to output a preliminary
header.
|
|
This only applies to "1.0" source packages using orig.tar.gz + diff.gz.
In that case, it also recommends usage of the new format 3.0 (quilt)
to keep changes separate and documented.
|
|
This only applies to "1.0" source packages using orig.tar.gz + diff.gz.
Dpkg::Source::Patch::apply() is modified to return the hashref containing
information about the patch applied so that we can extract the list of
files in Dpkg::Source::Package::V1::do_extract()
|
|
Use “use warnings” instead of passing “-w”. Remove “--” parameters.
Remove shebangs from perl modules. Remove spaces after “#!”.
|
|
|
|
Indent license text to one space after the '#'. Add '#' to blank lines
between paragraphs and remove trailing '#' after the license text.
|
|
Use the <http://www.gnu.org/licenses/> URL, instead of in most cases
the outdated FSF address, which is way more stable, as the latter has
changed several times in the past.
|
|
The calls to File::Spec->abs2rel() are relatively expensive and can be
avoided given that we control the find() invocation and can only receive
filenames below the scanned directory. They are replaced with simple
string extraction with substr(), it gives another 25% speed benefit on big
source packages.
Based-on-patch-by: Mike Hommey <mh@glandium.org>
|
|
Optimize dpkg-source -b by avoiding many diff calls when not required.
Based-on-patch-by: Mike Hommey <mh@glandium.org>
|
|
Checking the validity of new field values at run-time was very expensive.
In order to avoid this check, the design of the object has been changed to
accept arbitrary values, they are simply escaped as necessary during
output. The only data lost in a save()/load() cycle are the
trailing whitespaces on every line of all values.
This API change implies fixes in all scripts/modules reading/creating
values for multiline fields.
The non-regression test also had to be adjusted.
|
|
Remove extra quoting that should not be there while passing an exclude
file to git ls-files during build of 3.0 (git) source package.
Based-on-patch-by: Courtney Bane <debian-bugs-5265@cbane.org>
|
|
Modify logic to also match ignored files based on their relative path
inside the source package (and not only on their filename).
|
|
The find() call that is supposed to look for binary files in the debian
sub-directory was missing the no_chdir option and due to this the
File::Spec->abs2rel() call (inside the wanted function) was returning an
invalid value when find() changed the current directory (since its second
parameter is only valid while being in the current directory).
The parameter got lost by mistake in 3525f79792cff51757d99d45f51c96a15e6fa779
and it was present in lenny's version.
|
|
|
|
Update all modules and scripts to not use those variables of Dpkg::Deps
but instead the two functions field_list_(pkg|src)_dep() of
Dpkg::Control::Fields.
|
|
Update all scripts and module to use Dpkg::Control instead
of parsecdata and Dpkg::Fields::Object.
|
|
Update all scripts and modules to use the new module names.
|
|
|