Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

What version? #61

Open
Lee551 opened this issue Aug 3, 2019 · 7 comments
Open

What version? #61

Lee551 opened this issue Aug 3, 2019 · 7 comments

Comments

@Lee551
Copy link

Lee551 commented Aug 3, 2019

I currently have version 1.5.1. I seem to have download from here version 1.5.2 and now when I download I get 1.9.0.

I really like this software for my Pi but this confusion of what version is the current release has really got me confused.

So what version are we on non beta?

Leon

@knghtbrd
Copy link
Member

knghtbrd commented Aug 4, 2019

I'll answer this in two parts. (If part 2 makes your eyes glaze over, don't worry.)

1.5.x on Ivan's page is stable. It doesn't work on current versions of Debian, however. It works on old versions (up to Jessie), which should not be connected to the Internet in any way at this point, but it does work. The version of netatalk we use also has security vulnerabilities.

The devel efforts (called 1.9.x) have exposed some major fragility in the original scripts. Debian changed a lot since 2012 and we kinda bolted stuff onto the side that made assumptions about Debian/Raspbian without telling it what we were doing. Oops. So … rewrite! But rewrites are never fast or easy.

The good news is when it's done you'll be able to sudo apt install a2server and it'll do everything the Debian way. The bad news is that it's not all done. If you know a little Linux or at least have familiarity with MS-DOS commands or an Apple II shell like davex, prosel, or orca, you'll be able to use the pieces before the whole thing is finished.

For now, you can use an older Raspbian (Jessie or Wheezy) if you DON'T connect it to the Internet during installation of Raspbian, then use a2server 1.5.x. Keep it behind a firewall, there's major security vulnerabilities.

If you wanna know about using pieces as I finish rebuilding them, I'll start writing part 2 to lay out some road map for that now. :)

@Lee551
Copy link
Author

Lee551 commented Aug 4, 2019

Thank you for the details!

I am not afraid to try something for as long as it does not hold someone else back.

I have some working knowledge in MS-DOS and Linux and accept the challenge.

Leon

@knghtbrd
Copy link
Member

knghtbrd commented Aug 4, 2019

Part 2:

There's a bunch of pieces of a2server, but if you know some Linux (or are comfortable enough with the idea of using a CLI in general to type a few commands and edit files with some guidance), you'll be able to start using it before all the pieces are finished. When they are, the stuff you do by hand will just be incorporated in.

Here's what goes into a2server:

  • [100%] appletalk.ko. The part of the old a2server scripts that builds the Linux AppleTalk driver just doesn't work. Good news! If you use something called "dkms", it'll just do it for you, the same way it would if you were compiling it in as part of your kernel. It just works in the background. Technically desktop Debian systems should already have this driver, but it doesn't work with macipgw, so we build one everywhere that will.

  • [80%] netatalk. Debian's version was never set up for Apple II support, and now that they've moved to 3.1.x, their netatalk supports AFP over TCP/IP only. No AppleTalk DDP for pre-Rhapsody systems at all. I've forked the last version of their package that could work with an Apple II amd am nearly ready with a beta. This package doesn't set up an Apple II compatible share, but you'll be able to do so. Fortunately, I can tell you exactly what to do to set up netatalk the same way the old a2server scripts did.

  • [20%] ciopfs. The Case-Insensitive On Purpose (virtual) Filesystem is pretty easy to package, but I haven't done it yet. It's something called a FUSE filesystem, and it makes the files in directory A appear in directory B. If accessed in directory B, though, it's as though the directory were a case-insensitive filesystem.

  • [100%] samba. This is how you share files with Windows, Linux, and modern Macs. It's already in Debian, but you'll need to tell it to share your AppleTalk share if you want it to do that.

  • [100%] avahi-daemon. It provides DNS-SD (Bonjour) service advertising. Debian already includes it but we need to add service files to it if we want it to tell other computers on the LAN that there are services running.

  • [0%] macipgw. This program provides encapsulation of TCP/IP over AppleTalk (DDP). Last time I tried to build it with a Debian netatalk, some files were missing. This means I need to figure out what's not getting installed and fix that. Once that's done, I can duplicate the configuration of the old a2server scripts, but Marinetti isn't something I've ever played with, and it's a bit complex. Someone else is going to need to test this, it's a bit beyond me.

  • [0%] a2server. The glue package! It will require all the others, and it will:

    • Create a case-insensitive directory as an AppleTalk share
    • Ensure netatalk is configured to share the new a2server share
    • (Optionally) configure samba to share your netatalk share over SMB
    • (Optionally) advertise some or all of our services using avahi-daemon
  • [10%] "5-netboot". sigh Yeah. This is a script that runs as part of the old a2server scripts. It depends on a few other components I haven't mentioned yet, most of which are pretty easy to package if they don't already exist in Debian. It's just that this script is kinda crazy. It's really long, does a million things, and it's hard to maintain as-is. Most of what's in this script will probably be done after everything else, including the a2server glue package is finished. The reason is that it's more than one piece, really. The netboot script does many things and needs to be broke into smaller pieces. The install for Marinetti alone should be its own separate tool, even if it all resides within one Apple II utilities installer package. The netboot script:

    • Downloads and extracts the Apple II boot blocks for netatalk
    • Downloads one of three different versions of GS/OS
    • Unpacks the GS/OS disks into a directory
    • Emulates the GS/OS installer program to install GS/OS to the AppleTalk share
    • Downloads, extracts, and installs a ton of software!

A few other pieces we use are already in Debian (unar, zip/unzip, etc.), a few we should provide (Ivan's scripts for updating the AppleTalk CNID database when needed), a couple we need to package (nulib2 is the major one), and then we need to figure out what we're going to do for on-system documentation and configuration. The old scripts installed a custom Message of the Day (MOTD) file, a bunch of aliases, a help command, etc.

Point is that as soon as netatalk is ready to go, more advanced users can do all that needs to be done themselves, if I include the information how to do it (and I will.) The only other major piece most people are going to need right away is ciopfs and the netatalk Apple II boot blocks. After that, things pick up steam up to the creation of the a2server package itself, and then things will start slowing down again as I figure out what to do with the rest of 5-netboot.

@knghtbrd
Copy link
Member

knghtbrd commented Aug 4, 2019

Basically, I have all the information for how stuff gets configured in the old a2server scripts. All I have to do there is give people the files those scripts create and the instructions for what they change.

@Lee551
Copy link
Author

Lee551 commented Aug 4, 2019

I am comfortable working in a CLI. I read through everything you have listed... I got through most of it, the rest I might understand as I work through the process and a little Google fu.

I do most of my work on my Pi 3 via CLI and before I knew about A2server I had compiled and installed Netatalk so I could access the Pi from my Mac to put disk images on the SD card for use with GSPlus emulation.

Leon

@mgederberg
Copy link

Hey Joseph, I hope you are well? So now that I pretty much have my Apple //e's built out the way I want, I have begun the process of configuring this A2SERVER stuff. Ivan X's site is down but before it went bye bye, I managed to grab the RasappleII image as a Wheezy Distro and yeah I got it running. However, Tight VNC server will not install as expected anymore due to broken links and it would be a nice to have since for the most part my pi will be headless unless using the Apple II pi stuff. Now I really wanna get a build running as expected with Buster for all the stuff that is working on the Wheezy distro I have as an image 'cause Buster is now the "official" Raspbian legacy OS. image it and be done so I always have a backup that I can restore without the headaches of broken links. I will eventually be procuring a Pi card for my //e and if all is cool with the testing, I can use my super serial card for other stuff. Hell, if it works I will try and scare up another 2 cards for my other earlier Apple II and my IIGS. Is there a buster image out there I can work with quicker than having to piece this all together as you've suggested here? Having the LinApple, GS emu and the server stuff all working would be MORE than handy for my museum I am building here in my lab. Many thanks brother!

@knghtbrd
Copy link
Member

I've been doing more thinking about this and I think I really do need to rebuild stuff from the ground up. Stuff built with Wheezy/Jesse doesn't just work anymore even if you don't connect it to the Internet, and it's kinda time to get things working. I wrote the above … thing … about the pieces, but the above is still trying to turn this existing framework into something cohesive. The more I've been thinking about it, the more I'm realizing that's a mistake.

The major reason why it's a mistake is that I have to actually make everything work before anything works! Yikes, it'll never be done at that rate. Whereas if I start building pieces that are independent, I might actually get this done. I scribbled out a quick roadmap in #64 but didn't really explain it.

Basically, if I start by building an a2server-common package … it can install an a2server user and group and create a +F directory (which eliminates need for ciopfs all together) to put all your Apple II network shares and disk images into. Is that all it would do? Probably not. But it should do those things, and if it exists, anything else that needs the things it does can depend on you installing it. How about setting up netatalk and samba and macipgw and installing all the tools like cppo and the afp shell scripts? What about archivers and ADTPro and all the shell-based Internet tools? Well, wouldn't it make sense to do those one at a time?

Mac users might also appreciate netatalk2 being packaged. Nothing else depends on netatalk3, so it's easy to downgrade. The netatalk 2.2.6 package is a mess, but I could just run the installer we have for a2server now and fix it up to run via systemd and not start without a configuration. Include an example, but … don't set anything up. Not an ideal package, should break the AppleTalk stuff into a sub-package, should break the development stuff into a sub-package. I can improve upon that later, get it packaged first in a way that using it is possible, then enhance it.

Actually, my suggestion in the linked roadmap is that a separate package called a2server-appletalk will configure netatalk for the Apple II. And how it does that can evolve as I figure out how to make it do more and more of what we want.

You get the idea. Smaller pieces that actually accomplish something toward the goal.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants