<ppetrov^>
there is not direct download link to the ISO (because it is 4.7GB), instead the Pkgfile calls httpdirfs to remotely 'mount' it and then extract just what is needed (fonts)
<ppetrov^>
this is not in my main repo available at portdb, but httpdirfs is
<SiFuh>
Probably better you just host the archive of the fonts. Might be some legal issues though
<ppetrov^>
no, i am not hosting the fonts
<ppetrov^>
i already have the fonts from my own (legal) windows install
<ppetrov^>
but i won't upload them, though i found some github repos that do exactly that
<ppetrov^>
my question is: what do you guys think about how the Pkgfile handles the download
<SiFuh>
The insulting version?
<SiFuh>
You are using commands that not everyone has. Commands that are only used one time and probably never again. The assumption is that most people will have loop compiled into the kernel.
<ppetrov^>
do your worst
<SiFuh>
Nah, I am in a good mood today. I just cursed to myself :-)
<ppetrov^>
that bad, huh?
<ppetrov^>
httpdirfs is a dependency
<ppetrov^>
so you would have it present
<SiFuh>
For what? For your port?
<ppetrov^>
ye
<SiFuh>
But for nothing else
<ppetrov^>
the other was was to download the whole ISO, then use loop. It was much simpler and my connection is pretty good so it was not an issue
<SiFuh>
So I am expected to download a tool to access something for your port I may never need again?
<ppetrov^>
but i wanted to try the other way
<ppetrov^>
technically, yes
<SiFuh>
What if I don't have loop? Going to need a README file to explain that loop is needed in your kernel
<ppetrov^>
you mean, not even as a module?
<SiFuh>
Not everyone will have loop built in or as a module.
<ppetrov^>
the readme already states that
<ppetrov^>
mhm
<SiFuh>
Pretty fancy work, but you are calling for more stuff on a system people like stripped down, to install your stuff
<SiFuh>
I do like your port, I just don't think it is acceptable to have to go that far to get that.
<ppetrov^>
ok, point taken. I use p7zip and i think httpdirfs will come in handy to have around; but i'll think about it
<ppetrov^>
> I just don't think it is acceptable to have to go that far
<ppetrov^>
that's exatcly what i meant to ask
<SiFuh>
I use p7zip but today is the first day I ever heard about httpdirfs
<ppetrov^>
ok, thanks
<ppetrov^>
me, too
<SiFuh>
I ever/I've never
<SiFuh>
So you can't host it right? The archive of the fonts?
<SiFuh>
I host some rare/non-existant archives myself
<ppetrov^>
i don't think Microsoft will hunt me down if I do, however i believe it is a copyright thing
<ppetrov^>
I also host some rare archives
<SiFuh>
They are focused on public injections :-P
<ppetrov^>
i hosted the fonts on my home server, for my own use
<ppetrov^>
no idea what you mean by public injections
<SiFuh>
The package 'httpdirfs' could not be found:
<SiFuh>
I am sure there are ports that download other ports but not install them. They only use them to get what is needed. Pretty sure one of them uses poppler
<SiFuh>
SOmething like download, but not install within the system. Installs under /usr/ports/work/<some place>
<SiFuh>
You'd probably better off talking to Romster or beerman about that though.
<ppetrov^>
so, instead of having it as a dependency, just include it
<ppetrov^>
yes, inkscape i think did sth like this
<SiFuh>
Poppler right?
<ppetrov^>
iirc
<ppetrov^>
jeez, you really dislike having httpdirfs
<ppetrov^>
:D
<SiFuh>
I have never used it and never heard of it. So why would I want to install it for one port to access an online ISO?
<SiFuh>
Yeah you are right, it is inkscape
<SiFuh>
They build poppler to build inkscape
<ppetrov^>
> I have never used it and never heard of it.
<ppetrov^>
yes, yes,.. i got it
<SiFuh>
I got my car stuck in a ditch and a local used a buffalo to pull my car out. I don't think I want to keep that buffalo with me, everywhere I go.
<SiFuh>
Even if it can fit in the trunk with the trunk monkey. I am pretty sure I won't need it again.
<ppetrov^>
sigh...
<SiFuh>
Not sure if the trunk monkey will enjoy the company though
<SiFuh>
ppetrov^: To be fair httpdirfs is not a dependency. It is requirement to obtain the font files.
_0bitcount has joined #crux
<ppetrov^>
yes it is
<ppetrov^>
fonts don't depend on anything
<SiFuh>
ppetrov^: So therefore including it as a dependency when it isn't a dependency is not appropriate right?
<farkuhar>
one of the ways where Arch diverged from CRUX was to make a distinction between build-time dependencies and run-time dependencies. CRUX retained a simpler approach and lumped both types of dependencies together.
<farkuhar>
for a source-based distro, there's not much justification for separating the dependencies into these two types. But Arch distributes binary packages, so the end user is saved the trouble of installing packages that are only required during compilation.
<SiFuh>
farkuhar: Yeah but ppetrov^ is calling in a dependency that isn't a dependency. He is requesting a tool to help with accessing files online.
<farkuhar>
to me it looks like httpdirfs is required for the build() function to succeed, so it would qualify as a build-time dependency, imho. Maybe there's another way to get the iso mounted using only the ports in core/opt/contrib, and if so, the build() function could be rewritten.
<SiFuh>
He's basically requesting you to install a tool you may never need again. It may be better to just download and not install that tool and run it under the wor/src directory
<SiFuh>
It isn't required for build.. Am I incorrect?
<farkuhar>
You also pointed out that some users won't have the loop kernel module available. Should the fonts Pkgfile then descend into the kernel source directory and `make modules; make modules_install; modprobe loop` just in case that module is missing? At some point all these accommodations for edge cases become ridiculous, and it's easier just to add an entry to the "Depends on:" line.
<SiFuh>
I have no idea what you are trying to say
<ppetrov^>
SiFuh, i think you kinda take it a bit too far
<SiFuh>
I said that not everyone will have a module or loop built in to the kernel. It would need to be written into a README file.
<ppetrov^>
yes, it is true that it is not a real dependency, exatcly the same way 7zip is not
<SiFuh>
What did I take too far?
<ppetrov^>
the dependencies thing
<SiFuh>
It aint a dependency from what i see. It is a tool that is unesseccary outside of your port
<ppetrov^>
i understand perfectly well what you mean, also i did not see another way. For me, if the port qeruires something in order to do its job, then this something is a dependency
<ppetrov^>
and i did put in the readme file info about loop
<SiFuh>
ppetrov^: Yeah I didn't see that until you had mentioned it before
<ppetrov^>
np :)
<SiFuh>
But somehow farkuhar seems to merge it with a Pkgfile which I am not sure what he is on about
<ppetrov^>
> At some point all these accommodations for edge cases become ridiculous
<ppetrov^>
this
<ppetrov^>
i second that
<ppetrov^>
there's the readme file, the port is made to work as automated as possible and i may actually need httpdirfs
<SiFuh>
Example, some of my older ports needed git so I inculded them as a dependency. It wasn't a dependency for build for downloading. I wanted to have it gone after download but since many use git, I decided it is best to keep it.
<ppetrov^>
my question was mainly about the way the download is handled. Years of maintaining slackbuilds made me always look for a direct download link and to never make the script itself do downloads
<ppetrov^>
well, exactly ^
<farkuhar>
SiFuh: do you regard inkscape a good example of how a build-time dependency can be installed into a temporary work directory but not in the eventual $PKG? That's the kind of accommodation for edge cases that goes against the guideline "Do not combine several separately distributed programs/libraries into one package. Make several packages instead." (3.7 Handbook, section 5.6.1)
<SiFuh>
ppetrov^: I do like your port. I think it is cool. Quite 'talented/crafty/skilful/ingenious' I can't think of the word
<ppetrov^>
i am flattered, however, i just followed the arch's pkgbuild :p
<SiFuh>
farkuhar: You are wrong. This is NOTHING to do with build time.
<SiFuh>
It is merely a tool you install to download something else
<SiFuh>
ffs
<ppetrov^>
so, if i hear the opinion of the core maintainers and they are OK with such port, I will add it to my 'official' repo that is linked at portdb
<SiFuh>
ppetrov^: I saw the Arch version and I was dumbfounded how anyone could understand it :-)
<ppetrov^>
section 5.6.1 is more like: do not package several icon themes if they are available separately
<SiFuh>
Congratulations to you for sure
<ppetrov^>
heh, looked for keywords :p
<ppetrov^>
thanks, thanks, SiFuh
<ppetrov^>
I have a thing for fonts, because last year we published a paper which required us to use the journal's docx template. Turns out, the font `palatino` does not come with the xorg-font-msttcorefonts, nor it comes with the webcore fonts of other distros. I did not realise the problem until it turned out my boss got different layout of the figures, because her Mac had the font
<ppetrov^>
so in the last minute at submission, i was looking for the fucking Palatino font and spent several hours to place the figures at their correct spots once i got it
<SiFuh>
I have a similar issue. My work is done in Libreoffice on OpenBSD. It works find on Linux too. When I sent to the printers (Windows) it comes out on two pages instead of one.
<SiFuh>
The font changes sizes. I think the printer is using XP1 maybe Win7
<ppetrov^>
once i found WPS office, i never looked back
<ppetrov^>
i don't care it is closed source, chinese clone of MS office
<SiFuh>
Mine is fine. I just need to make sure they reduce the size from 10 to 9 before printing
<ppetrov^>
i have used Impress (OOo and LO) since 2005 and I always hated it
<SiFuh>
soffice ;-)
<SiFuh>
I might look into this WPS
<ppetrov^>
well, i used OOo 1.3 or sth at first
<ppetrov^>
i have a port for it :p
<ppetrov^>
read the readme
<ppetrov^>
if you happen to need british english dictionary, i have a port as well. the Bulgarian dict i guess you don't need
<SiFuh>
Not for me. My work is on OpenBSD
<SiFuh>
I am using a British English dictionary on everything. US English is pretty bad.
<SiFuh>
I like the way English is spoken in the US but not the spelling.
<SiFuh>
ppetrov^: no WPS here for OpenBSD
<ppetrov^>
ye :(
<SiFuh>
I would like a Network printer anyway
<SiFuh>
Rather a colour lasor printer but ain't going to happen
<farkuhar>
ppetrov^: I concur with SiFuh about the crafty/skilful/ingenious downloading that your port performs. One question, though: does it still work when you build as an unprivileged user (running fakeroot)? I think the mount command might be problematic.
_0bitcount has quit [Quit: Leaving]
<farkuhar>
One of the comments in the AUR for ttf-ms-win11 suggests using iso-read(1) instead of mount(8). That might be more likely to succeed in a fakeroot build, but then you need to add libcdio as a dependency.
<leah2>
bsdtar can extract from iso files if that helps
<farkuhar>
leah2: can bsdtar also unpack the WIM archive format? If so, then ppetrov^ can eliminate p7zip as a dependency.
<leah2>
oh, wim. idk.
<leah2>
7z can also read iso tho
<farkuhar>
it wouldn't surprise me if bsdtar can handle WIM archives. That format is not mentioned in the 7z man-page, but apparently 7z can extract it just fine.
<leah2>
7z can read almost everything
<leah2>
i guess wim is .cab
<SiFuh>
If it is cab then bsdtar should be able to
<SiFuh>
ppetrov^: You want to test bsdtar with WIM?
<leah2>
hm, wim is a custom thing tho
<farkuhar>
ppetrov^: Is it correct to say that you're using httpdirfs and mount -o loop in order to avoid downloading a DVD-size iso? I wonder whether users of your port will fully appreciate your concern for their bandwidth constraints, if they see the unfamiliar command httpdirfs with no accompanying explanation of its benefits.
<ppetrov^>
farkuhar, that's exactly the reason
<ppetrov^>
at first i had it just download the iso. I have 600 megabit internet, so it was rather fast. However, I thought I may do better and I was curious about this remote iso mounting stuff, did not even imagine this was possible
<ppetrov^>
so I modified a bit
<ppetrov^>
and about 'users': i doubt anyone is using my ports apart from me, but i like to have them publicly available, because someone might :)
<ppetrov^>
and, sure, I can add an explanation about httpdirfs
<js>
oh nice, I saw that there's a .pub file per repo now (I last used CRUX when it was 32-bit only). What is checked against that .pub file?
<js>
ah, just found .signature
<js>
so is prt-get checking all checked out files against .signature before doing anything?
<farkuhar>
js: welcome back to CRUX! You have the right idea, except the signature verification happens in pkgmk(8), not prt-get itself (which just orchestrates the running of pkgmk and pkgadd).
<js>
ah
<js>
so how do I pkgmk an unsigned package then, e.g. one I created myself?
<js>
create a new repo with my own key?
<js>
also interesting idea on removing md5sum and instead putting the distfiles into the .signature as well - but that means everybody who contributes needs access to the private key?
<farkuhar>
pkgmk -is will do it (--ignore-signature is the long option)
<js>
ah 🙂 ok, ,cool
<js>
but if I now update a port, or create or, or whatever - how would I tell people which source file I used, so that the right one is being included in .signature?
<farkuhar>
js: good observation! If multiple parties have write permissions to a repo, they all use the same private key. The OpenBSD tool signify(1) doesn't appear to let you protect the private key with multiple passphrases, the way you can do with gpg private keys.
<js>
wouldn't it then be better to include a .sha256sum file instead, and the repo host itself signs it? devs would have a trusted path to upload to the repo (e.g. via SSH after verifying the FP)
<farkuhar>
js: `pkgmk -us` will create a new signature for you (downloading the sources if necessary).
<js>
ah, so I'd need to get a copy of the priv key, I see
<js>
definitely fun to go back to my first real linux distro 🙂
<js>
if only it would still work on the same machine I had back then, an Athlon XP 2400+ 😉
<farkuhar>
js: you mean a post-git-push hook, that automatically runs `pkgmk -us` on any port directory that got modified? It's an interesting idea, but it puts more work onto an already-stressed server (to download the sources and get their sha256sums, when the maintainers have already done that work on their dev machines).
<js>
farkuhar: No, I meant to not include the distfiles in the .signature, instead have a .sha256sum file that contains hashes for the distfiles, and instead of signing the distfiles instead, sign .sha256sum
<js>
then you could have a git hook that signs everything and doesn't need to download the distfiles
<farkuhar>
ppetrov^: if bsdtar can be used to replace either 'mount -o loop ...' or '7z e ...', that would make your port more robust (compatible with wider variety of CRUX installations). I haven't investigated how well bsdtar behaves with remote-mounted isos, though.