debian-installer support #61

Merged
merged 3 commits into from Jun 7, 2014

Conversation

Projects
None yet
3 participants
@ryanuber
Contributor

ryanuber commented May 30, 2014

Hey @smira!

I recently needed to use a published Aptly repo from d-i, and ran across the following warning on the homepage:

aptly doesn't yet support debian-installer and translations

I found the main problem for debian-installer in the system log, which is that in the dists/<dist>/<repo>/<arch> directory (parallel to Packages[.gz/.bz2]), there is no Release file, one like you would find here. During d-i, a curl request is made to this URL, and if successful, the result is grep'ed for Architecture, at which point it tries to make sure that the repo architecture matches the box it is running on (probably through lsb_release).

I took a quick stab at adding this into Aptly today. I'm not entirely sure what all of the different fields in the file are really supposed to be, but Archive and Architecture alone are enough to make the repo usable from d-i.

Let me know what you think. Thanks!

@smira

This comment has been minimized.

Show comment
Hide comment
@smira

smira May 30, 2014

Member

Ryan, thanks a lot for your pull request! I'll take a look in the next couple of days.

Member

smira commented May 30, 2014

Ryan, thanks a lot for your pull request! I'll take a look in the next couple of days.

@smira

This comment has been minimized.

Show comment
Hide comment
@smira

smira Jun 4, 2014

Member

I believe this doesn't solve whole debian-installer thing (udebs and separate indices), but this should be a first step in that direction).

Member

smira commented Jun 4, 2014

I believe this doesn't solve whole debian-installer thing (udebs and separate indices), but this should be a first step in that direction).

@ryanuber

This comment has been minimized.

Show comment
Hide comment
@ryanuber

ryanuber Jun 4, 2014

Contributor

@smira agreed, I didn't even venture into those things to be honest. This simply gets plain, flat apt repos with standard .deb's working for debian-installer.

Contributor

ryanuber commented Jun 4, 2014

@smira agreed, I didn't even venture into those things to be honest. This simply gets plain, flat apt repos with standard .deb's working for debian-installer.

@smira smira added this to the v0.6 milestone Jun 5, 2014

@smira smira merged commit 9a45435 into aptly-dev:master Jun 7, 2014

1 check passed

continuous-integration/travis-ci The Travis CI build passed
Details
@smira

This comment has been minimized.

Show comment
Hide comment
@smira

smira Jun 7, 2014

Member

@ryanuber Thanks a lot!

Member

smira commented Jun 7, 2014

@ryanuber Thanks a lot!

smira added a commit that referenced this pull request Jun 7, 2014

smira added a commit that referenced this pull request Jun 7, 2014

smira added a commit to aptly-dev/aptly-dev.github.io that referenced this pull request Jun 7, 2014

@ryanuber ryanuber deleted the ryanuber:debinst branch Jun 7, 2014

@jordanrinke

This comment has been minimized.

Show comment
Hide comment
@jordanrinke

jordanrinke Jun 18, 2014

This isn't working for me, I am digging into it but for whatever reason I am not getting the "Archive" bit in my release files. I am getting the extra needed release files but they seem to be missing that component and I haven't figured out why yet (even manually setting -distribution in the publish command)

This isn't working for me, I am digging into it but for whatever reason I am not getting the "Archive" bit in my release files. I am getting the extra needed release files but they seem to be missing that component and I haven't figured out why yet (even manually setting -distribution in the publish command)

@smira

This comment has been minimized.

Show comment
Hide comment
@smira

smira Jun 19, 2014

Member

@jordanrinke, it should create e.g. files <public>/dists/maverick/main/binary-i386/Release with contents like:

Origin: . maverick
Label: . maverick
Architecture: i386
Archive: maverick
Component: main
Member

smira commented Jun 19, 2014

@jordanrinke, it should create e.g. files <public>/dists/maverick/main/binary-i386/Release with contents like:

Origin: . maverick
Label: . maverick
Architecture: i386
Archive: maverick
Component: main
@jordanrinke

This comment has been minimized.

Show comment
Hide comment
@jordanrinke

jordanrinke Jun 30, 2014

Had to leave this for a bit, just returning to it. Rebuilding my repos ground up to see what behaviour I am getting and will debug/report back.

Had to leave this for a bit, just returning to it. Rebuilding my repos ground up to see what behaviour I am getting and will debug/report back.

@jordanrinke

This comment has been minimized.

Show comment
Hide comment
@jordanrinke

jordanrinke Jun 30, 2014

Just rebuilt, and having the same issue. My release file in public/dists/trusty is thus:

Origin: . trusty
Label: . trusty
Codename: trusty
Date: Mon, 30 Jun 2014 21:59:32 UTC
Architectures: amd64 i386
Components: main
Description: Generated by aptly
(MD5/SHA trimmed)

using a config file:

{
  "rootDir": "/aptly",
  "downloadConcurrency": 4,
  "dependencyFollowSuggests": false,
  "dependencyFollowRecommends": false,
  "dependencyFollowAllVariants": false,
  "dependencyFollowSource": false,
  "gpgDisableSign": false,
  "gpgDisableVerify": false,
  "downloadSourcePackages": false,
  "ppaDistributorID": "ubuntu",
  "ppaCodename": ""
}

and doing the following commands....

aptly mirror create -architectures="amd64,i386" trusty http://mirror.csclub.uwaterloo.ca/ubuntu/ trusty main restricted universe
aptly mirror update trusty
aptly snapshot create trusty_20140630 from mirror trusty
aptly publish snapshot trusty-20140630

and for version...
aptly version
aptly version: 0.6

Just rebuilt, and having the same issue. My release file in public/dists/trusty is thus:

Origin: . trusty
Label: . trusty
Codename: trusty
Date: Mon, 30 Jun 2014 21:59:32 UTC
Architectures: amd64 i386
Components: main
Description: Generated by aptly
(MD5/SHA trimmed)

using a config file:

{
  "rootDir": "/aptly",
  "downloadConcurrency": 4,
  "dependencyFollowSuggests": false,
  "dependencyFollowRecommends": false,
  "dependencyFollowAllVariants": false,
  "dependencyFollowSource": false,
  "gpgDisableSign": false,
  "gpgDisableVerify": false,
  "downloadSourcePackages": false,
  "ppaDistributorID": "ubuntu",
  "ppaCodename": ""
}

and doing the following commands....

aptly mirror create -architectures="amd64,i386" trusty http://mirror.csclub.uwaterloo.ca/ubuntu/ trusty main restricted universe
aptly mirror update trusty
aptly snapshot create trusty_20140630 from mirror trusty
aptly publish snapshot trusty-20140630

and for version...
aptly version
aptly version: 0.6

@jordanrinke

This comment has been minimized.

Show comment
Hide comment
@jordanrinke

jordanrinke Jun 30, 2014

Also just noticed, and I don't have the previous one to check now :/ but the components says main only, although the mirror as show in the above command is main, universe and restricted.

Also just realized, I am looking in the wrong file for the archive flag, I was as shown above looking at public/dists/trusty and I needed to be looking at public/dists/trusty/main/binary-* which is correct:

Origin: . trusty
Label: . trusty
Architecture: amd64
Archive: trusty
Component: main

except that component bit, I will go back and see if I did something else foolish somehow.

Ok - ignore me, looks like the way that works changed in .6 due to #36 so, I have to do some stuff different. Let me actually do due diligence, but it looks like everything is correct and I was misguided.

Also just noticed, and I don't have the previous one to check now :/ but the components says main only, although the mirror as show in the above command is main, universe and restricted.

Also just realized, I am looking in the wrong file for the archive flag, I was as shown above looking at public/dists/trusty and I needed to be looking at public/dists/trusty/main/binary-* which is correct:

Origin: . trusty
Label: . trusty
Architecture: amd64
Archive: trusty
Component: main

except that component bit, I will go back and see if I did something else foolish somehow.

Ok - ignore me, looks like the way that works changed in .6 due to #36 so, I have to do some stuff different. Let me actually do due diligence, but it looks like everything is correct and I was misguided.

@jordanrinke

This comment has been minimized.

Show comment
Hide comment
@jordanrinke

jordanrinke Jun 30, 2014

Ok, after much fiddling - everything is being setup as expected and I have determined the problem. The issue is, this minimal package config works for the full blown CD installer. However, I am using the ubuntu mini installer, and it requires the "debian-installer" architecture in addition to the amd64 binaries.

I have confirmed this works properly when using the full installer it is just the custom "download installer components" which fails, and is required by the mini cd.

Ok, after much fiddling - everything is being setup as expected and I have determined the problem. The issue is, this minimal package config works for the full blown CD installer. However, I am using the ubuntu mini installer, and it requires the "debian-installer" architecture in addition to the amd64 binaries.

I have confirmed this works properly when using the full installer it is just the custom "download installer components" which fails, and is required by the mini cd.

@smira

This comment has been minimized.

Show comment
Hide comment
@smira

smira Jul 1, 2014

Member

@jordanrinke, there are several issues here. First, aptly doesn't support .udebs (the debian-installer thing you mentioned). Second, if you would like to publish distribution with several components, you need to follow more complex steps. The steps you mentioned with mirror create trusty would merge all components into single component main. To publish multiple-component distributions please follow instructions from this post: http://smira.ru/en/posts/aptly-06.html

Member

smira commented Jul 1, 2014

@jordanrinke, there are several issues here. First, aptly doesn't support .udebs (the debian-installer thing you mentioned). Second, if you would like to publish distribution with several components, you need to follow more complex steps. The steps you mentioned with mirror create trusty would merge all components into single component main. To publish multiple-component distributions please follow instructions from this post: http://smira.ru/en/posts/aptly-06.html

@jordanrinke

This comment has been minimized.

Show comment
Hide comment
@jordanrinke

jordanrinke Jul 2, 2014

@smira Yeah, I got it all worked out now, I had not noticed the architecture change bit in 0.6. For anyone else that runs across this. Just use the normal installation CD and f4 mode to minimal installation to get the result of a mini install but still be able to use an aptly based repo.

Thanks for the help and the great software.

@smira Yeah, I got it all worked out now, I had not noticed the architecture change bit in 0.6. For anyone else that runs across this. Just use the normal installation CD and f4 mode to minimal installation to get the result of a mini install but still be able to use an aptly based repo.

Thanks for the help and the great software.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment