Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 540144 - app-doc/phrack-{01-09} - incorrect SRC_URI, viz. phrack01.tar.gz instead of phrack1.tar.gz
Summary: app-doc/phrack-{01-09} - incorrect SRC_URI, viz. phrack01.tar.gz instead of p...
Status: RESOLVED WONTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Library (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: SpanKY
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-02-15 13:19 UTC by Thibaud CANALE
Modified: 2015-02-17 04:01 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
emerge --info (file_540144.txt,5.66 KB, text/plain)
2015-02-15 13:19 UTC, Thibaud CANALE
Details
ebuild for app-doc/phrack (phrack-1-r1.ebuild,486 bytes, text/plain)
2015-02-16 22:47 UTC, Thibaud CANALE
Details
ebuild for app-doc/phrack-all (phrack-all-68-r1.ebuild,476 bytes, text/plain)
2015-02-16 22:50 UTC, Thibaud CANALE
Details
Manifest for app-doc/phrack (Manifest,49.96 KB, text/plain)
2015-02-16 22:51 UTC, Thibaud CANALE
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Thibaud CANALE 2015-02-15 13:19:12 UTC
Created attachment 396504 [details]
emerge --info

Hello,

I just discovered this new package, and I would like to thank you.
But, I noticed the first nine versions are using leading zero in their version; and I think this is wrong.

First, I think as a developper using leading zeros in a numero for a version are a non-sense.
Second, if you look a the package "app-doc/phrack-all", which is a simple package whom install the complet set of app-doc/phrack, you see this in its code:
RDEPEND=$(printf '=app-doc/phrack-%02i ' {1..68})
Well, this code works, even for versions 100 and above, but I think it may lead to errors (off-topic: I think I should fill an other report for the package "app-doc/phrack-all", but just for thinking about this, this code should be replaced with:
RDEPEND=$(printf 'app-doc/phrack:%i ' {1..${PV}})
)

And third, if you look at the SRC_URI variable, with this problem, wwe can't recah the files from the website, because those files are named phrack1.tar.gz, etc, not phrack01.tar.gz

Well, I think we should just renamed the ebuilds to fit with the real files' name (and do update app-doc/phrack-all's ebuilds at the same purpose)

Thanks for support.
Comment 1 SpanKY gentoo-dev 2015-02-16 09:30:08 UTC
as mentioned on irc, the ebuilds, when written, matched what the phrack site was doing.  you can verify this with the internet archive:
  https://web.archive.org/web/20040204103731/http://www.phrack.org/show.php?p=1
the download link sent you to phrack01.tar.gz.

in fact, if you look in that tarball, it also uses leading zeros:
$ tar tf /usr/portage/distfiles/phrack01.tar.gz 
phrack01/p01-01
phrack01/p01-02
phrack01/p01-03
phrack01/p01-04

it looks like they've regenerated all their tarballs recently.  kicking the archived tarballs off our mirrors in favor of ones that simply have renamed files (but same content) doesn't seem worth the effort.

in that vein, i don't see much point in changing the existing old ebuilds either.  calling it 01 vs 1 is fairly moot.  they've been at this for over 10 years and haven't yet hit 70; they've also been stalled for a long time.  so i'm not sweating the 100 barrier.

wrt phrack-all, the code you propose would be nice, but it also wouldn't work.  brace expansion happens before variable expansion which means {1..${PV}} would produce the literal string "{1..68}" rather than "1 2 3 4 5 6 7 8 ......".
Comment 2 Thibaud CANALE 2015-02-16 15:52:51 UTC
Hello again Mike,

Sorry to be someone who is pushing too much, but the new files on the websites and the URLs are complety differents now. Even the DIST infos in the Manifest files don't fit anymore the new files.

(In reply to SpanKY from comment #1)
> as mentioned on irc, the ebuilds, when written, matched what the phrack site
> was doing.  you can verify this with the internet archive:
>  
> https://web.archive.org/web/20040204103731/http://www.phrack.org/show.php?p=1
> the download link sent you to phrack01.tar.gz.

I am sorry, but the link was:
http://phrack.org/archives/phrack01.tar.gz
and now, it is:
http://phrack.org/archives/tgz/phrack1.tar.gz

Notice the "tbz/" directory in the URL (and the leading 0 we already talked about).

> in fact, if you look in that tarball, it also uses leading zeros:
> $ tar tf /usr/portage/distfiles/phrack01.tar.gz 
> phrack01/p01-01
> phrack01/p01-02
> phrack01/p01-03
> phrack01/p01-04

You are watching on the old archives, which were correct when you created the ebuilds, I don't blame you for that, it's not your fault if the sources changed.

% tar -tzf /tmp/phrack1.tar.gz 
./
./8.txt
./5.txt
./3.txt
./4.txt
./7.txt
./2.txt
./6.txt
./1.txt


> it looks like they've regenerated all their tarballs recently.  kicking the
> archived tarballs off our mirrors in favor of ones that simply have renamed
> files (but same content) doesn't seem worth the effort.

Unfortunately, not really the same content, because the files' name changed:
phrack01/p01-01 → 1.txt
therefore, if we just put all the files in the same directory (insinto /usr/share/doc/${PN}), the new files will overwrite the old ones.

And therefore, the hash of those files changed too. This is now an error in the Manifest file.

> in that vein, i don't see much point in changing the existing old ebuilds
> either.  calling it 01 vs 1 is fairly moot.  they've been at this for over
> 10 years and haven't yet hit 70; they've also been stalled for a long time. 
> so i'm not sweating the 100 barrier.

What I propose is to create myself a new release of those ebuilds (named "-r1" on my system) which are pretty much like the old ones, but with a new Manifest to fit the new archives.
I am doing it, but I am new with ebuilds, so I am not efficient; just wait a little.

> wrt phrack-all, the code you propose would be nice, but it also wouldn't
> work.  brace expansion happens before variable expansion which means
> {1..${PV}} would produce the literal string "{1..68}" rather than "1 2 3 4 5
> 6 7 8 ......".

Yeah, on Bash's implementation, you are right. Notice I used SLOT for the new command, like that, if a new release of an ebuild come, it will work.

But what about this version?
RDEPEND="$(for i in $(seq ${PV}); do printf 'app-doc/phrack:%i ' ${i}; done)"

Pretty much POSIX, so it should work.

Please consider my propositions, I will come back later with a new set of ebuilds.

Thanks for support.
Comment 3 SpanKY gentoo-dev 2015-02-16 22:46:25 UTC
(In reply to Thibaud "thican" CANALE from comment #2)

the archives have only renamed the files.  if you diff the actual text content, it's unchanged.  i'm not seeing the point in refreshing all the ebuilds purely to rename files.
Comment 4 Thibaud CANALE 2015-02-16 22:47:50 UTC
Created attachment 396630 [details]
ebuild for app-doc/phrack

Hello,

I finaly finished my modifications on the ebuild, which work from version 1 to version 68, just duplicate it:

for i in {2..68}; do
	cp 'app-doc/phrack/phrack-1-r1.ebuild' "$(printf 'app-doc/phrack/phrack-%i-r1.ebuild' "${i}")" || break
done

As well, I modified the ebuild for app-doc/phrack-all and the Manifest file for the hash of the files (see attachments).
Comment 5 Thibaud CANALE 2015-02-16 22:50:11 UTC
Created attachment 396632 [details]
ebuild for app-doc/phrack-all

(In reply to SpanKY from comment #3)
> (In reply to Thibaud "thican" CANALE from comment #2)
> 
> the archives have only renamed the files.  if you diff the actual text
> content, it's unchanged.  i'm not seeing the point in refreshing all the
> ebuilds purely to rename files.

Yeah, but then the Manifest file is completly wrong.

Please, consider the ebuild I have done, you just have to push it, and stabilize it later.
Comment 6 Thibaud CANALE 2015-02-16 22:51:07 UTC
Created attachment 396634 [details]
Manifest for app-doc/phrack

The ebuilds will change, because of the header.
Comment 7 SpanKY gentoo-dev 2015-02-17 04:01:26 UTC
(In reply to Thibaud "thican" CANALE from comment #5)

not exactly.  the manifest reflects the files as they exist on Gentoo mirrors.  yes, if you try to fetch them from the phrack site, it'll fail.  but should be easy to update SRC_URI to use mirror://gentoo now.