FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Gentoo > Gentoo Development

 
 
LinkBack Thread Tools
 
Old 07-22-2010, 03:57 PM
Jeremy Olexa
 
Default gentoo-x86 commit in app-backup/bacula: bacula-5.0.2-r2.ebuild ChangeLog

On Thu, 22 Jul 2010 15:48:51 +0000 (UTC), "Thomas Beierlein (tomjbe)"
<tomjbe@gentoo.org> wrote:
> <snip>
> elif [[ "${dbnum}" -gt 1 ]]; then
> eerror
> eerror "You have set ${P} to use multiple database types."
> eerror "I don't know which to set as the default!"
> eerror "You can use /etc/portage/package.use to set per-package USE flags"
> eerror "Set it so only one database type, mysql, postgres, sqlite3"
> eerror
> die "Multiple database types selected."

Hello Thomas,
I've just noticed this code snippet. Please don't die here, instead
pick a default if there are conflicting choices in USE.

For reference, please see "Conflicting USE Flags" section on this page,
http://devmanual.gentoo.org/general-concepts/use-flags/index.html

Thanks,
Jeremy
 
Old 07-22-2010, 04:20 PM
Thomas Beierlein
 
Default gentoo-x86 commit in app-backup/bacula: bacula-5.0.2-r2.ebuild ChangeLog

Did not see the mail here and replied only with p.m. to darkside.

So please find here teh attached copy to keep the discussion on the
right list.

Thomas.

Begin forwarded message:

Date: Thu, 22 Jul 2010 18:07:40 +0200
From: Thomas Beierlein <tomjbe@gentoo.org>
To: Jeremy Olexa <darkside@gentoo.org>
Subject: Re: [gentoo-commits] gentoo-x86 commit in app-backup/bacula:
bacula-5.0.2-r2.ebuild ChangeLog


On Thu, 22 Jul 2010 10:57:32 -0500
Jeremy Olexa <darkside@gentoo.org> wrote:

> On Thu, 22 Jul 2010 15:48:51 +0000 (UTC), "Thomas Beierlein (tomjbe)"
> <tomjbe@gentoo.org> wrote:
> > <snip>
> > elif [[ "${dbnum}" -gt 1 ]]; then
> > eerror
> > eerror "You have set ${P} to use multiple
> > database types." eerror "I don't know which to set as the default!"
> > eerror "You can
> > use /etc/portage/package.use to set per-package USE flags" eerror
> > "Set it so only one database type, mysql, postgres, sqlite3" eerror
> > die "Multiple database types selected."
>
> Hello Thomas,
> I've just noticed this code snippet. Please don't die here, instead
> pick a default if there are conflicting choices in USE.
>
> For reference, please see "Conflicting USE Flags" section on this
> page,
> http://devmanual.gentoo.org/general-concepts/use-flags/index.html
>
> Thanks,
> Jeremy

Hi Jeremy,

thanks for pointing it out.

That is old heritage from former maintainer. I tried to fix the ebuild
step by step and that was atm not on my 'urgent' list .

So maybe as sqlite3 use flag is default now. I should also default to
that database here.

Regards,
Thomas.
 
Old 07-22-2010, 06:04 PM
"Jorge Manuel B. S. Vicetto"
 
Default gentoo-x86 commit in app-backup/bacula: bacula-5.0.2-r2.ebuild ChangeLog

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi Thomas

On 22-07-2010 16:20, Thomas Beierlein wrote:
> Did not see the mail here and replied only with p.m. to darkside.
>
> So please find here teh attached copy to keep the discussion on the
> right list.
>
> Thomas.
>
> Begin forwarded message:
>
> Date: Thu, 22 Jul 2010 18:07:40 +0200
> From: Thomas Beierlein <tomjbe@gentoo.org>
> To: Jeremy Olexa <darkside@gentoo.org>
> Subject: Re: [gentoo-commits] gentoo-x86 commit in app-backup/bacula:
> bacula-5.0.2-r2.ebuild ChangeLog
>
>
> On Thu, 22 Jul 2010 10:57:32 -0500
> Jeremy Olexa <darkside@gentoo.org> wrote:
>
>> On Thu, 22 Jul 2010 15:48:51 +0000 (UTC), "Thomas Beierlein (tomjbe)"
>> <tomjbe@gentoo.org> wrote:
>>> <snip>
>>> elif [[ "${dbnum}" -gt 1 ]]; then
>>> eerror
>>> eerror "You have set ${P} to use multiple
>>> database types." eerror "I don't know which to set as the default!"
>>> eerror "You can
>>> use /etc/portage/package.use to set per-package USE flags" eerror
>>> "Set it so only one database type, mysql, postgres, sqlite3" eerror
>>> die "Multiple database types selected."
>>
>> Hello Thomas,
>> I've just noticed this code snippet. Please don't die here, instead
>> pick a default if there are conflicting choices in USE.
>>
>> For reference, please see "Conflicting USE Flags" section on this
>> page,
>> http://devmanual.gentoo.org/general-concepts/use-flags/index.html
>>
>> Thanks,
>> Jeremy
>
> Hi Jeremy,
>
> thanks for pointing it out.
>
> That is old heritage from former maintainer. I tried to fix the ebuild
> step by step and that was atm not on my 'urgent' list .
>
> So maybe as sqlite3 use flag is default now. I should also default to
> that database here.
>
> Regards,
> Thomas.

If you want to use sqlite3 as default and assuming your prefer postgres
over mysql, you can use the following and drop the die from pkg_setup.

DEPEND="
dev-libs/gmp
sys-libs/ncurses
>=sys-libs/zlib-1.1.4
!bacula-clientonly? (
sqlite3? (
app-backup/bacula[-mysql.-postgres]
dev-db/sqlite:3
)
!sqlite3? (
postgres? (
mysql? ( app-backup/bacula[-mysql] )
dev-db/postgresql-base[threads]
)
!postgres? (
mysql? ( virtual/mysql )
!mysql? ( app-backup/bacula[sqlite3] )
)
!bacula-nodir? ( virtual/mta )
)
logwatch? ( sys-apps/logwatch )
python? ( dev-lang/python[threads] )
qt4? (
x11-libs/qt-svg:4
>=x11-libs/qwt-5
)
readline? ( >=sys-libs/readline-4.1 )
ssl? ( dev-libs/openssl )
tcpd? ( >=sys-apps/tcp-wrappers-7.6 )
"

- --
Regards,

Jorge Vicetto (jmbsvicetto) - jmbsvicetto at gentoo dot org
Gentoo- forums / Userrel / Devrel / KDE / Elections
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.16 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQIcBAEBAgAGBQJMSIhLAAoJEC8ZTXQF1qEPrJkP/1UxpBirLBwfK67MS6o1ydgy
LnrW17cz1kSSOAyrLAKG3Ef0gOLUSTKDvcaSDWg/J/eyQR9zTE88jO8bZggUmZNp
idZpdBHu8KTtcKG+VJ4Y9xqNF1kBJ+qIU3SaY8bmclKo9xL0Ob ro24daxHD6TzdH
aqcoU+CcK64kV2xOGefOFkW6z5SrsqabDIDut19/g3kNK2vt/9R6U6ZaFPFbxNFn
ZakHsLCkb8klAmxQPOdH82UXMZ6AJTBBOoaKSbhlNaUqE1bKns 8Y2oemoSTQfPrA
KFf26pKjLKALvnDuFWLC/k/mBPBtzTiDDY96ux4jJuKGfJM9UcbhqKLt1M6LnpSG
WF4S+DK9RaHGpFCIVI5vwb+G+ZTl4CFWDCz/rJMCO+n7wuTMuytG7UdumaYMdND1
9G6LcHCos+49q1NkpJ+6PO0p2OTmSqNGAx8j92wK1sOaBGJ8GK v6kei+QH0VfWU+
kGTUq3F0kelPtK0YE06U6xIPTaBZcJH5NJOxaWJ0C3uLru1rtw 2aOQvauLezAPWZ
WfeDPz09IuPxRSLRrqgwwUnFGZoJr4e9ALNftwxFvoaVKqYRE/7YgsCsztcmZ0h9
QMahFvYidDK+nDJ8bPVwXNqK6/m/ND+j42fGNA0vHu/wakSrBzzLzotALFRxtMYB
rpkyNyJC7DtpzqWnEycX
=46dt
-----END PGP SIGNATURE-----
 
Old 07-23-2010, 07:06 AM
Thomas Beierlein
 
Default gentoo-x86 commit in app-backup/bacula: bacula-5.0.2-r2.ebuild ChangeLog

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi Jorge,

On Thu, 22 Jul 2010 18:04:59 +0000
"Jorge Manuel B. S. Vicetto" <jmbsvicetto@gentoo.org> wrote:
> If you want to use sqlite3 as default and assuming your prefer
> postgres over mysql, you can use the following and drop the die from
> pkg_setup.
>
> DEPEND="
... snip ...
> !bacula-clientonly? (
> sqlite3? (
> app-backup/bacula[-mysql.-postgres]
> dev-db/sqlite:3
> )
> !sqlite3? (
> postgres? (
> mysql? ( app-backup/bacula[-mysql] )
> dev-db/postgresql-base[threads]
> )
> !postgres? (
> mysql? ( virtual/mysql )
> !mysql? ( app-backup/bacula[sqlite3] )
> )
> !bacula-nodir? ( virtual/mta )
> )
... snip ...
> "

interesting. I did not know that an ebuild can use-depend on itself.
Good to know.

I had implemented a simpler solution in meantime. But I will test your
solution. It would shorten the ebuild by a good amount (It is already
much to big and complicated).

Furthermore it catches the problems very early (before merging the
wrong dependencies).

Only downside I see is that the user has to find out why she gets the
messages about the wrong USE flag requirements. Say, you want to build
it with mysql and have 'sqlite' in make.conf your
USE=mysql emerge bacula
resultes in a
emerge: there are no ebuilds built with USE flags to satisfy
"app-backup/bacula[-mysql,-postgres]".
And than you have to think.

Anyway I will think over it.

Regards,
Thomas.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.15 (GNU/Linux)

iEYEARECAAYFAkxJP2wACgkQQe4uqXYgU9XomwCfeFkb780NSj A0Q7eUCMDmGF0U
1kAAn2pJwIFXbBF0t6gN0eosBxv5c3f4
=jy0D
-----END PGP SIGNATURE-----
 
Old 07-23-2010, 08:38 AM
Tomáš Chvátal
 
Default gentoo-x86 commit in app-backup/bacula: bacula-5.0.2-r2.ebuild ChangeLog

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Dne 23.7.2010 09:06, Thomas Beierlein napsal(a):
> Hi Jorge,

> interesting. I did not know that an ebuild can use-depend on itself.
> Good to know.
>
> I had implemented a simpler solution in meantime. But I will test your
> solution. It would shorten the ebuild by a good amount (It is already
> much to big and complicated).
>
> Furthermore it catches the problems very early (before merging the
> wrong dependencies).
>
> Only downside I see is that the user has to find out why she gets the
> messages about the wrong USE flag requirements. Say, you want to build
> it with mysql and have 'sqlite' in make.conf your
> USE=mysql emerge bacula
> resultes in a
> emerge: there are no ebuilds built with USE flags to satisfy
> "app-backup/bacula[-mysql,-postgres]".
> And than you have to think.
>
> Anyway I will think over it.
>
> Regards,
> Thomas.
So I will help with my 2c :P
I reworked the bacula for the purposes at my company:
http://git.overlays.gentoo.org/gitweb/?p=dev/scarabeus.git;a=blob;f=app-backup/bacula/bacula-3.0.3.ebuild

I implemented most things people complain here, so might be really
really smart to just copy the parts.

Cheers

Tom
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.15 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkxJVR8ACgkQHB6c3gNBRYfDmACfXGtiijVHHM ZKDSvuXpHjpAe9
gloAoMw/lTI6TvW+rt4+eXYakcaRu2Dw
=AaHp
-----END PGP SIGNATURE-----
 
Old 07-23-2010, 09:31 AM
Tiziano Mller
 
Default gentoo-x86 commit in app-backup/bacula: bacula-5.0.2-r2.ebuild ChangeLog

Am Freitag, den 23.07.2010, 09:06 +0200 schrieb Thomas Beierlein:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Hi Jorge,
>
> On Thu, 22 Jul 2010 18:04:59 +0000
> "Jorge Manuel B. S. Vicetto" <jmbsvicetto@gentoo.org> wrote:
> > If you want to use sqlite3 as default and assuming your prefer
> > postgres over mysql, you can use the following and drop the die from
> > pkg_setup.
> >
> > DEPEND="
> ... snip ...
> > !bacula-clientonly? (
> > sqlite3? (
> > app-backup/bacula[-mysql.-postgres]
> > dev-db/sqlite:3
> > )
> > !sqlite3? (
> > postgres? (
> > mysql? ( app-backup/bacula[-mysql] )
> > dev-db/postgresql-base[threads]
> > )
> > !postgres? (
> > mysql? ( virtual/mysql )
> > !mysql? ( app-backup/bacula[sqlite3] )
> > )
> > !bacula-nodir? ( virtual/mta )
> > )
> ... snip ...
> > "
>
> interesting. I did not know that an ebuild can use-depend on itself.
> Good to know.
No, not good. It doesn't make any sense.
We will have a solution for such cases somewhere in the future, but at
the moment you should just display a warning that even though the user
specified more than one db only is going to be used.

Cheers,
Tiziano

--
Tiziano Mller
Gentoo Linux Developer
Areas of responsibility:
Samba, PostgreSQL, CPP, Python, sysadmin, GLEP Editor
E-Mail : dev-zero@gentoo.org
GnuPG FP : F327 283A E769 2E36 18D5 4DE2 1B05 6A63 AE9C 1E30
 
Old 07-23-2010, 11:30 AM
Thomas Beierlein
 
Default gentoo-x86 commit in app-backup/bacula: bacula-5.0.2-r2.ebuild ChangeLog

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Fri, 23 Jul 2010 11:31:30 +0200
Tiziano Mller <dev-zero@gentoo.org> wrote:

> Am Freitag, den 23.07.2010, 09:06 +0200 schrieb Thomas Beierlein:
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA1
> >
> > Hi Jorge,
> >
> > On Thu, 22 Jul 2010 18:04:59 +0000
> > "Jorge Manuel B. S. Vicetto" <jmbsvicetto@gentoo.org> wrote:
> > > If you want to use sqlite3 as default and assuming your prefer
> > > postgres over mysql, you can use the following and drop the die
> > > from pkg_setup.
> > >
> > > DEPEND="
> > ... snip ...
> > > !bacula-clientonly? (
> > > sqlite3? (
> > > app-backup/bacula[-mysql.-postgres]
> > > dev-db/sqlite:3
> > > )
> > > !sqlite3? (
> > > postgres? (
> > > mysql? ( app-backup/bacula[-mysql] )
> > > dev-db/postgresql-base[threads]
> > > )
> > > !postgres? (
> > > mysql? ( virtual/mysql )
> > > !mysql? ( app-backup/bacula[sqlite3] )
> > > )
> > > !bacula-nodir? ( virtual/mta )
> > > )
> > ... snip ...
> > > "
> >
> > interesting. I did not know that an ebuild can use-depend on itself.
> > Good to know.
> No, not good. It doesn't make any sense.

Can you give some reasoning for that?

> We will have a solution for such cases somewhere in the future, but at
> the moment you should just display a warning that even though the user
> specified more than one db only is going to be used.
>
That is what I am doing at the moment. If 0 or more than one backends
are selected I fall back to sqlite3 as default and give an according
warning message.

Thomas


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.15 (GNU/Linux)

iEYEARECAAYFAkxJfUkACgkQQe4uqXYgU9WW7QCbBYthd11EnP rtVJf4RXTqUMVT
q9UAoJ//DyXGQmlFLmU4EM3knn6wv98W
=CsP/
-----END PGP SIGNATURE-----
 
Old 07-23-2010, 11:37 AM
Ciaran McCreesh
 
Default gentoo-x86 commit in app-backup/bacula: bacula-5.0.2-r2.ebuild ChangeLog

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Fri, 23 Jul 2010 13:30:02 +0200
Thomas Beierlein <tomjbe@gentoo.org> wrote:
> > > interesting. I did not know that an ebuild can use-depend on
> > > itself. Good to know.
> >
> > No, not good. It doesn't make any sense.
>
> Can you give some reasoning for that?

It's entirely unclear what deps upon self actually mean. Some people
use them to say that a package needs to be installed before it can
install itself. Thus, things like:

DEPEND="|| ( myself myself-bin )"

So a dependency upon myself[foo] would probably mean "I need
myself[foo] to be installed before I can install myself", not "I need
the foo flag to be set on myself".

In any case, abusing DEPEND isn't a mechanism for implementing use
requirements. You should use the mechanism that's designed for use
requirements to do use requirements, which means waiting for EAPI 4
and pkg_pretend, or just follow existing policy and pick one in the
case of a conflict.

- --
Ciaran McCreesh
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.15 (GNU/Linux)

iEYEARECAAYFAkxJfxcACgkQ96zL6DUtXhGXkQCcDzxMWkqm+S hdOEBOWH0nQJtE
q0gAn0TRU7BtLVyKib6YJLNWtjjWoNFk
=uYQb
-----END PGP SIGNATURE-----
 
Old 07-23-2010, 12:10 PM
Thomas Beierlein
 
Default gentoo-x86 commit in app-backup/bacula: bacula-5.0.2-r2.ebuild ChangeLog

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Fri, 23 Jul 2010 10:38:56 +0200
Tomáš Chvátal <scarabeus@gentoo.org> wrote:
> So I will help with my 2c :P
> I reworked the bacula for the purposes at my company:
> http://git.overlays.gentoo.org/gitweb/?p=dev/scarabeus.git;a=blob;f=app-backup/bacula/bacula-3.0.3.ebuild
>
> I implemented most things people complain here, so might be really
> really smart to just copy the parts.
>
> Cheers
>
> Tom

Thanks for the link Tomáš. I am sure I will do some cherry
pickings .

I agree with you that we need a better set of use flags, as you did in
your in-house solution. The actual set is quite a pain.

Let us see how we can switch to such a new set (like yours or similar).
I was thinking about an accompanying news item, but not before the next
release of a new bacula version. That gives some time for preparation
and a chance for thorough tests.

I am still not sure why some of the old features gets dropped starting
with bacula-5.0.1. I asked the former maintainer, but got no
response at all. So any ideas are welcome.

Thomas.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.15 (GNU/Linux)

iEYEARECAAYFAkxJhqoACgkQQe4uqXYgU9WdMwCgq20FoE1Fqj lPaMYF7QmXEmHX
BKoAnRH5QAzkvIzln6Mylj4Xyh8nLJp9
=5aGB
-----END PGP SIGNATURE-----
 
Old 07-23-2010, 12:28 PM
"Jorge Manuel B. S. Vicetto"
 
Default gentoo-x86 commit in app-backup/bacula: bacula-5.0.2-r2.ebuild ChangeLog

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 23-07-2010 09:31, Tiziano Mller wrote:
> Am Freitag, den 23.07.2010, 09:06 +0200 schrieb Thomas Beierlein:
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>> Hi Jorge,
>>
>> On Thu, 22 Jul 2010 18:04:59 +0000
>> "Jorge Manuel B. S. Vicetto" <jmbsvicetto@gentoo.org> wrote:
>>> If you want to use sqlite3 as default and assuming your prefer
>>> postgres over mysql, you can use the following and drop the die from
>>> pkg_setup.
>>>
>>> DEPEND="
>> ... snip ...
>>> !bacula-clientonly? (
>>> sqlite3? (
>>> app-backup/bacula[-mysql.-postgres]
>>> dev-db/sqlite:3
>>> )
>>> !sqlite3? (
>>> postgres? (
>>> mysql? ( app-backup/bacula[-mysql] )
>>> dev-db/postgresql-base[threads]
>>> )
>>> !postgres? (
>>> mysql? ( virtual/mysql )
>>> !mysql? ( app-backup/bacula[sqlite3] )
>>> )
>>> !bacula-nodir? ( virtual/mta )
>>> )
>> ... snip ...
>>> "
>>
>> interesting. I did not know that an ebuild can use-depend on itself.
>> Good to know.
> No, not good. It doesn't make any sense.

You may not like it, but saying it doesn't make sense is wrong. It does
make sense and ensures what Tom was trying to get and is already being
used in the tree.

> We will have a solution for such cases somewhere in the future, but at
> the moment you should just display a warning that even though the user
> specified more than one db only is going to be used.

Nothing prevents us from using the above, which already produces the
same output as basic use dependencies, so users should be getting used
to it by now. It would be great if PMs could produce more detailed
warnings to the user, but that can wait (may have to wait?) for the new
solutions.

> Cheers,
> Tiziano
>

- --
Regards,

Jorge Vicetto (jmbsvicetto) - jmbsvicetto at gentoo dot org
Gentoo- forums / Userrel / Devrel / KDE / Elections
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.16 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQIcBAEBAgAGBQJMSYrlAAoJEC8ZTXQF1qEPW7oP/0Ct9gGS3xeFjkX1EI2PwkL6
uu9ZMQOnKIrfeWkmN3XCtTB/CHoBKLQlnspiOh47O3Rm+dsOcaWg+sjTp+4UJqO9
ldTjEltcEbAk7PdpVceg4c3vvXJBsVyVWCYY2tXCQA7MQMamLZ 12GxaqfB9un+hl
BuqUwqdvLaZ3EFkOyZR4UfSGd4sRPGaTQjHGtk0/P8LJXOy9RjfMPCYTfyKuSuHG
B0OU5y+GPcjEQtfkIDCQpUoKH/K3IhIwlkNGd9+nmS+x1ny9GZ0XSr4YiR+lVpLq
TU2iHW75HFJa6g0f4HGE01gwRfYy7QX9EZsjenrEiN6dkvI2BO IB92VWXj9Y5Ppa
ZBQey9MfQ7m26V4fJtlzM+PP25uJkIJLHBTPlrE44xuCWxMwKX jtGcFGrAkn1Uof
xJC94OhzGglcGxBcj8oKNRsdLPcPSajctbZgnxyLMUYpQhpQ2t Ag7/loH1MUdbOE
rj943cw4kucHSz/AOBMZVV1nOdqnSvuO7WnbTxjynxe4wDzI+66bg7pEtFfqXaO+
rMPGhp6kUl29j7SIQnGzNcZCOZ4Dm/MXW4BQygFYkVZUsz+AFkCR3AZocrkMMpD2
dXJfn9QHsVaN8t8crYGLI6ya9M+bXYb5yh9O2QEmmJrIHbSweH Geb/nwAs+BtMJH
Gig3dsa7gH19pNYRBoKP
=zddJ
-----END PGP SIGNATURE-----
 

Thread Tools




All times are GMT. The time now is 08:49 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org