• Re: Bug#1033747: chromium: Build Chromium without the embedded libtiff

    From Andres Salomon@21:1/5 to Soren Stoutner on Mon Jul 29 22:40:01 2024
    Copy: debian-devel@lists.debian.org

    This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------0JnLR00A0r70H8Qn0Q00u0hR
    Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64

    T24gNy8yOS8yNCAxNjoxMCwgU29yZW4gU3RvdXRuZXIgd3JvdGU6DQo+IE9uIE1vbmRheSwg SnVseSAyOSwgMjAyNCAxOjE4OjA1IEFNIE1TVCBBbmRyZXMgU2Fsb21vbiB3cm90ZToNCj4+ IEl0J3MgdW5mb3J0dW5hdGVseSBnb2luZyB0byBoYXZlIHRvIHdhaXQuIFdlJ3JlIHN3aXRj aGluZyBzdGFuZGFyZA0KPj4gbGlicmFyaWVzLCBhbmQgbGlua2luZyB0byBleHRlcm5hbCBs aWJzIGlzIGEgYml0IHJvY2t5IHJpZ2h0IG5vdy4NCj4gDQo+IFdhaXRpbmcgdW50aWwgdGhp bmdzIHNldHRsZSBpcyBmaW5lLiAgVGhpcyBoYXMgYmVlbiBhbiBpc3N1ZSBmb3Igc28gbG9u ZyB0aGF0IEkNCj4gaGF2ZSBiZWNvbWUgYSBwYXRpZW50IG1hbi4NCj4gICANCj4+IE9uIHRo ZSBwbHVzIHNpZGUsIEkgcmVkdWNlZCB0aGUgdGltZSBpdCB0YWtlcyB0byBnZW5lcmF0ZSB0 aGUNCj4+IG9yaWcudGFyLnh6IGZyb20gfjQwIG1pbnV0ZXMgdG8gfjUgbWludXRlcywgd2hp Y2ggc2hvdWxkIGhlbHAgYSBsb3Qgd2l0aA0KPj4gdGVzdGluZyB0aGUgZGVsZXRpb24gb2Yg dmVuZG9yZWQgbGlicmFyaWVzIGluIHRoZSBmdXR1cmUhDQo+IA0KPiBUaGF04oCZcyBpbXBy ZXNzaXZlLiAgSG93IGRpZCB5b3UgYWNjb21wbGlzaCB0aGF0Pw0KPiANCg0KRGViaWFuJ3Mg bWstb3JpZ3Rhcmd6IHNjcmlwdCAod2hpY2ggaXMgd2hhdCB1c2NhbiBjYWxscykgZG9lc24n dCB3b3JrIA0KZm9yIHVzLCBiZWNhdXNlICd0YXIgLS1kZWxldGUnIGRvZXNuJ3Qgc2NhbGUg YXMgZC9jb3B5cmlnaHQncyANCkZpbGVzLUV4Y2x1ZGVkIGluY3JlYXNlcyAoc2VlICM5OTU3 NzApLg0KDQpNaWtlIChwcmlvciBjaHJvbWl1bSBtYWludGFpbmVyKSBpbnN0ZWFkIHBhdGNo ZWQgbWstb3JpZ3Rhcmd6IHRvICgxKSANCnByaW50IG91dCB0aGUgZmlsZXMgdGhhdCB3b3Vs ZCBiZSBkZWxldGVkLCAoMikgdW50YXIgdGhlIF9lbnRpcmVfIA0KdXBzdHJlYW0gY2hyb21p dW0gdGFyYmFsbCAod2hpY2ggYXQgdGhpcyBwb2ludCBpcyBodWdlIGF0IDYuMkdCKSwgdGhl biANCigzKSBsb29wcyBvdmVyIHRoZSBsaXN0IG9mIGZpbGVzIHRvIGRlbGV0ZSwgZGVsZXRp bmcgdGhlbSBvbmUtYnktb25lIGFuZCANCnRoZW4gKDQpIHBhY2tpbmcgdXAgdGhlIG5ldyB0 YXJiYWxsLiBJdCB3b3JrZWQgb2theSB3aGVuIGNocm9taXVtJ3MgDQp1cHN0cmVhbSB0YXJi YWxsIHdhcyByb3VnaGx5IDFHQiwgYnV0IGl0IGhhcyByZWFsbHkgYmFsbG9vbmVkIGxhdGVs eS4NCg0KSSByZXBsYWNlZCB0aGUgZmlyc3QgdGhyZWUgc3RlcHMgd2l0aCBhIHNpbmdsZSAn dGFyIC0tZXhjbHVkZS1mcm9tJywgc28gDQp0aGF0IHdlIHNhdmUgdGltZSBieSBub3Qgd3Jp dGluZyBkZWxldGVkIGZpbGVzIHRvIGRpc2sgb25seSB0byBtYW51YWxseSANCmRlbGV0ZSB0 aGVtOg0KaHR0cHM6Ly9zYWxzYS5kZWJpYW4ub3JnL2Nocm9taXVtLXRlYW0vY2hyb21pdW0v LS9jb21taXQvY2Q1YmYyZWQ2Yzg0OGVhMDU0NzE4ZDhmNjU4YWEyYjM4YzY4MWQyYw0KDQpJ IHdvdWxkIGxvdmUgdG8gZ2V0IHRoaXMgaW50byBtay1vcmlndGFyZ3ogcHJvcGVyIHNvIHRo YXQgY2hyb21pdW0gY291bGQgDQp1c2UgdXNjYW4gKGFuZCBhbHNvIGV2ZXJ5b25lIGluIGRl YmlhbiBtYWludGFpbmluZyBsYXJnZXIgcGFja2FnZXMgd291bGQgDQpiZW5lZml0KSwgYnV0 IEknbSBub3QgZXZlbiBzdXJlIHdoZXJlIHRvIGJlZ2luLiBNYXliZSBhcyBhIHNlcGFyYXRl IA0KcHl0aG9uIG1rLW9yaWd0YXIgdG9vbD8gTWF5YmUgYXMgYSBwYXRjaCB0byBtay1vcmln dGFyZ3ogd2l0aCBhIA0KY29tbWFuZC1saW5lIG9wdGlvbiB0byBmYWxsIGJhY2sgdG8gdGFy IC0tZGVsZXRlPyBQZXJoYXBzIGQtZCBoYXMgYW4gaWRlYS4NCg0KDQotLSANCkknbSBhdmFp bGFibGUgZm9yIGNvbnRyYWN0ICYgZW1wbG95bWVudCB3b3JrLCBwbGVhc2UgY29udGFjdCBt ZSBpZiANCmludGVyZXN0ZWQuDQo=

    --------------0JnLR00A0r70H8Qn0Q00u0hR--

    -----BEGIN PGP SIGNATURE-----

    wsF5BAABCAAjFiEEUAUk+X1YiTIjs19qZF0CR8NudjcFAman+3AFAwAAAAAACgkQZF0CR8Nudjfb 5w/8DY8PgiRt9Ezk9jGVfMq5mLV/68Apk7EHKp6YPsUZq8I2M/TxusZDLO3rI/2/kPFRDmqTT+JK fDhxgNTKLvTgXZWUcmC0r+WDKyiPoe5Uh34e1xKScynKESGT/e+LGkqI79vMZ2yzwkrUqmRgndbU aBnY4zYZFuLnL43cJ5MI7xqnIBAN4RlftQOzlsGHPHFsoFTJ1kByzVUdBRulsdLmysOfhib08F+K sB4lKfIHO7QPMHqt/bJ60MzTAGkHJmVOTN1g6XxQ58zpYUl10aZjL3xhtsuvlo1r4KSV9T4QQT9b fq+2SvjIoahEc4ss0ukm4U7nGdPCQK6ttQtgVtqJk9fLAKJfoXd55yL6JA5u79YYNOCUi1umrntk DFk2NFUulppwagpzh24ryqkrFysdadYCSZklxXmz9G0/xsO/lBTWeqiywiO6WHYskhqKd3msKNul FwUwn78pxpCN280nke4OGkebPvFL10nt8pJAgL86Wvpkv+izM/o7RYk3Vom1D6kHunioMg5gcdeu Hn6QdMH10kIywbkKseex65RPO/1ct8Yhp8DeD15NIq4jPyARMFDNLxiZwVCnaY/rhVzTaXqEH4S9 cnDuSFTPDAval0fGMPd9YYZmS174BBMTxBuw60CilxDDA+dJp6ajmJjD8gNfnmPum+HjYGRCg/Qn oJA=
    =s1Ng
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Soren Stoutner@21:1/5 to All on Mon Jul 29 14:02:02 2024
    Copy: dilinger@queued.net (Andres Salomon)

    On Monday, July 29, 2024 1:28:31 PM MST Andres Salomon wrote:
    On 7/29/24 16:10, Soren Stoutner wrote:
    I replaced the first three steps with a single 'tar --exclude-from', so
    that we save time by not writing deleted files to disk only to manually delete them:
    https://salsa.debian.org/chromium-team/chromium/-/commit/
    cd5bf2ed6c848ea054718
    d8f658aa2b38c681d2c

    That’s impressive work.

    --
    Soren Stoutner
    soren@debian.org
    -----BEGIN PGP SIGNATURE-----

    iQIzBAABCgAdFiEEJKVN2yNUZnlcqOI+wufLJ66wtgMFAmaoA0oACgkQwufLJ66w tgOOQRAAiGxirn38BZ3BI91xgNhxc/9RUjTDSPNJRRCg5LormNE7o9hEnvMA+EkK kvDifFYpldKwUcB1rl8gMFVhqlUOoWtFhtTpeCDMqcnOog1lD+33h+AlS11uvAs8 bYtnSe1sXTCXQbSHLK/z++5gtv/nVqtT//0MB0PLRkqUNv3N6zk/1XGCtcC9rugw UyaB9/Eg5c80hbv9lwii1GNdPrnVVtkvJ4AnVRGqmL/6A/Ya5kdmgO5k5hzMAsXn HMHhfxxaXkJUB9NVSS8zfXlcoogvIquPpNfQY1Fct9k3LEJGb+H1psPWzFfdETQx Ro6RTAfm4mYF19wChiMYWQv/hKz65VF93lpnwTjl2qg76aeOx1sqCP8o09as0Urn ERhClsOfhwjZOX8/6eZmU9oeK30ZWSW6QKCQLTp6d/mYupZbrhmHwgi6qeO/7KxJ QG3Dy2LS98KCtFL6owIc/hPxR+EWipSEfBR3PS67eRxLnXT9twBAaQWm8XkBS3Kc 1d0x+AfAsZHStKjE53KxlKqapecl6spOS4PoiTcm1ouZc2PAyz5d67Z//JDJK7PE 5CF3YUJtIcZoBuNrX26XwGU2ROSb/rVzLqZ89jr5DEn+qcLe0RbdLFTJq4jZ9tR6 ig5wFcdf8jZAgz7GhNDXgP52uaCjKaRCMYtcmGx/fW0xfpPPpbg=
    =O4IO
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Fabian_Gr=C3=BCnbichler?=@21:1/5 to Andres Salomon on Thu Aug 1 21:10:02 2024
    On Mon, Jul 29, 2024, at 10:28 PM, Andres Salomon wrote:
    On 7/29/24 16:10, Soren Stoutner wrote:
    On Monday, July 29, 2024 1:18:05 AM MST Andres Salomon wrote:
    It's unfortunately going to have to wait. We're switching standard
    libraries, and linking to external libs is a bit rocky right now.

    Waiting until things settle is fine. This has been an issue for so long that I
    have become a patient man.

    On the plus side, I reduced the time it takes to generate the
    orig.tar.xz from ~40 minutes to ~5 minutes, which should help a lot with >>> testing the deletion of vendored libraries in the future!

    That’s impressive. How did you accomplish that?


    Debian's mk-origtargz script (which is what uscan calls) doesn't work
    for us, because 'tar --delete' doesn't scale as d/copyright's
    Files-Excluded increases (see #995770).

    Mike (prior chromium maintainer) instead patched mk-origtargz to (1)
    print out the files that would be deleted, (2) untar the _entire_
    upstream chromium tarball (which at this point is huge at 6.2GB), then
    (3) loops over the list of files to delete, deleting them one-by-one and then (4) packing up the new tarball. It worked okay when chromium's
    upstream tarball was roughly 1GB, but it has really ballooned lately.

    I replaced the first three steps with a single 'tar --exclude-from', so
    that we save time by not writing deleted files to disk only to manually delete them: https://salsa.debian.org/chromium-team/chromium/-/commit/cd5bf2ed6c848ea054718d8f658aa2b38c681d2c

    I would love to get this into mk-origtargz proper so that chromium could
    use uscan (and also everyone in debian maintaining larger packages would benefit), but I'm not even sure where to begin. Maybe as a separate
    python mk-origtar tool? Maybe as a patch to mk-origtargz with a
    command-line option to fall back to tar --delete? Perhaps d-d has an idea.

    FWIW, having this supported in uscan (I don't really care *how* that would be implemented tbh ;)) would be great and save me about an hour or so waiting for repeated repacking every few weeks when updating rustc/cargo. I assume there's a few other
    packages that do involved pruning of bloated upstream tarballs like that that would also benefit. For Rust, we remove about 2/3 of the upstream tarball[0], both file size and file count wise, but it's nowhere near close to what src:chromium does (or
    rather, has to do). It's a mix of embedded copies of other projects (e.g., LLVM) that we don't want since we use those provided by standalone packages, and removing toolchain components and their vendored deps that are not used for the Debian build.
    Technically we could also keep all of that in (or at least, greatly reduce the exclusion list, almost none if it would be undistributable), but it would make both ensuring the build doesn't accidentally pick any of the undesired things up, as well as
    keeping d/copyright current, a lot more difficult.

    0: https://salsa.debian.org/rust-team/rust/-/blob/debian/sid/debian/copyright?ref_type=heads#L4-274

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?B?SsOpcsOpbXkgTGFs?=@21:1/5 to All on Thu Aug 1 21:20:01 2024
    debian/copyright Files-Excluded doesn't do the job I guess (i probably
    missed that part of the conversation) ?

    Le jeu. 1 août 2024 à 21:03, Fabian Grünbichler <debian@fabian.gruenbichler.email> a écrit :

    On Mon, Jul 29, 2024, at 10:28 PM, Andres Salomon wrote:
    On 7/29/24 16:10, Soren Stoutner wrote:
    On Monday, July 29, 2024 1:18:05 AM MST Andres Salomon wrote:
    It's unfortunately going to have to wait. We're switching standard
    libraries, and linking to external libs is a bit rocky right now.

    Waiting until things settle is fine. This has been an issue for so
    long that I
    have become a patient man.

    On the plus side, I reduced the time it takes to generate the
    orig.tar.xz from ~40 minutes to ~5 minutes, which should help a lot
    with
    testing the deletion of vendored libraries in the future!

    That’s impressive. How did you accomplish that?


    Debian's mk-origtargz script (which is what uscan calls) doesn't work
    for us, because 'tar --delete' doesn't scale as d/copyright's Files-Excluded increases (see #995770).

    Mike (prior chromium maintainer) instead patched mk-origtargz to (1)
    print out the files that would be deleted, (2) untar the _entire_
    upstream chromium tarball (which at this point is huge at 6.2GB), then
    (3) loops over the list of files to delete, deleting them one-by-one and then (4) packing up the new tarball. It worked okay when chromium's upstream tarball was roughly 1GB, but it has really ballooned lately.

    I replaced the first three steps with a single 'tar --exclude-from', so that we save time by not writing deleted files to disk only to manually delete them:

    https://salsa.debian.org/chromium-team/chromium/-/commit/cd5bf2ed6c848ea054718d8f658aa2b38c681d2c

    I would love to get this into mk-origtargz proper so that chromium could use uscan (and also everyone in debian maintaining larger packages would benefit), but I'm not even sure where to begin. Maybe as a separate
    python mk-origtar tool? Maybe as a patch to mk-origtargz with a command-line option to fall back to tar --delete? Perhaps d-d has an
    idea.

    FWIW, having this supported in uscan (I don't really care *how* that would
    be implemented tbh ;)) would be great and save me about an hour or so
    waiting for repeated repacking every few weeks when updating rustc/cargo. I assume there's a few other packages that do involved pruning of bloated upstream tarballs like that that would also benefit. For Rust, we remove about 2/3 of the upstream tarball[0], both file size and file count wise,
    but it's nowhere near close to what src:chromium does (or rather, has to
    do). It's a mix of embedded copies of other projects (e.g., LLVM) that we don't want since we use those provided by standalone packages, and removing toolchain components and their vendored deps that are not used for the
    Debian build. Technically we could also keep all of that in (or at least, greatly reduce the exclusion list, almost none if it would be undistributable), but it would make both ensuring the build doesn't accidentally pick any of the undesired things up, as well as keeping d/copyright current, a lot more difficult.

    0: https://salsa.debian.org/rust-team/rust/-/blob/debian/sid/debian/copyright?ref_type=heads#L4-274



    <div dir="ltr">debian/copyright Files-Excluded doesn&#39;t do the job I guess (i probably missed that part of the conversation) ?</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le jeu. 1 août 2024 à 21:03, Fabian Grünbichler &lt;
    debian@fabian.gruenbichler.email&gt; a écrit :<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Mon, Jul 29, 2024, at 10:28 PM, Andres Salomon wrote:<br>
    &gt; On 7/29/24 16:10, Soren Stoutner wrote:<br>
    &gt;&gt; On Monday, July 29, 2024 1:18:05 AM MST Andres Salomon wrote:<br> &gt;&gt;&gt; It&#39;s unfortunately going to have to wait. We&#39;re switching standard<br>
    &gt;&gt;&gt; libraries, and linking to external libs is a bit rocky right now.<br>
    &gt;&gt; <br>
    &gt;&gt; Waiting until things settle is fine.  This has been an issue for so long that I<br>
    &gt;&gt; have become a patient man.<br>
    &gt;&gt;   <br>
    &gt;&gt;&gt; On the plus side, I reduced the time it takes to generate the<br> &gt;&gt;&gt; orig.tar.xz from ~40 minutes to ~5 minutes, which should help a lot with<br>
    &gt;&gt;&gt; testing the deletion of vendored libraries in the future!<br> &gt;&gt; <br>
    &gt;&gt; That’s impressive.  How did you accomplish that?<br>
    &gt;&gt; <br>
    &gt;<br>
    &gt; Debian&#39;s mk-origtargz script (which is what uscan calls) doesn&#39;t work <br>
    &gt; for us, because &#39;tar --delete&#39; doesn&#39;t scale as d/copyright&#39;s <br>
    &gt; Files-Excluded increases (see #995770).<br>
    &gt;<br>
    &gt; Mike (prior chromium maintainer) instead patched mk-origtargz to (1) <br> &gt; print out the files that would be deleted, (2) untar the _entire_ <br> &gt; upstream chromium tarball (which at this point is huge at 6.2GB), then <br>
    &gt; (3) loops over the list of files to delete, deleting them one-by-one and <br>
    &gt; then (4) packing up the new tarball. It worked okay when chromium&#39;s <br>
    &gt; upstream tarball was roughly 1GB, but it has really ballooned lately.<br> &gt;<br>
    &gt; I replaced the first three steps with a single &#39;tar --exclude-from&#39;, so <br>
    &gt; that we save time by not writing deleted files to disk only to manually <br>
    &gt; delete them:<br>
    &gt; <a href="https://salsa.debian.org/chromium-team/chromium/-/commit/cd5bf2ed6c848ea054718d8f658aa2b38c681d2c" rel="noreferrer" target="_blank">https://salsa.debian.org/chromium-team/chromium/-/commit/cd5bf2ed6c848ea054718d8f658aa2b38c681d2c</a><br>
    &gt;<br>
    &gt; I would love to get this into mk-origtargz proper so that chromium could <br>
    &gt; use uscan (and also everyone in debian maintaining larger packages would <br>
    &gt; benefit), but I&#39;m not even sure where to begin. Maybe as a separate <br>
    &gt; python mk-origtar tool? Maybe as a patch to mk-origtargz with a <br>
    &gt; command-line option to fall back to tar --delete? Perhaps d-d has an idea.<br>

    FWIW, having this supported in uscan (I don&#39;t really care *how* that would be implemented tbh ;)) would be great and save me about an hour or so waiting for repeated repacking every few weeks when updating rustc/cargo. I assume there&#39;s a few
    other packages that do involved pruning of bloated upstream tarballs like that that would also benefit. For Rust, we remove about 2/3 of the upstream tarball[0], both file size and file count wise, but it&#39;s nowhere near close to what src:chromium
    does (or rather, has to do). It&#39;s a mix of embedded copies of other projects (e.g., LLVM) that we don&#39;t want since we use those provided by standalone packages, and removing toolchain components and their vendored deps that are not used for the
    Debian build. Technically we could also keep all of that in (or at least, greatly reduce the exclusion list, almost none if it would be undistributable), but it would make both ensuring the build doesn&#39;t accidentally pick any of the undesired things
    up, as well as keeping d/copyright current, a lot more difficult.<br>

    0: <a href="https://salsa.debian.org/rust-team/rust/-/blob/debian/sid/debian/copyright?ref_type=heads#L4-274" rel="noreferrer" target="_blank">https://salsa.debian.org/rust-team/rust/-/blob/debian/sid/debian/copyright?ref_type=heads#L4-274</a><br>

    </blockquote></div>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)